xref: /freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
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, do not edit!
9//===----------------------------------------------------------------------===//
10
11def A2_abs : HInst<
12(outs IntRegs:$Rd32),
13(ins IntRegs:$Rs32),
14"$Rd32 = abs($Rs32)",
15tc_d61dfdc3, 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_d61dfdc3, 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_d61dfdc3, 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_713b66bf, 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 BaseOpcode = "A2_add";
54let CextOpcode = "A2_add";
55let InputType = "reg";
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_01d44cb2, 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_01d44cb2, 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_01d44cb2, 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_01d44cb2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_f34c1c21, 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_f34c1c21, 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_8a825db2, 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_8a825db2, 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_713b66bf, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel {
214let Inst{31-28} = 0b1011;
215let hasNewValue = 1;
216let opNewValue = 0;
217let BaseOpcode = "A2_addi";
218let CextOpcode = "A2_add";
219let InputType = "imm";
220let isAdd = 1;
221let isPredicable = 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_5da50c4b, TypeALU64>, Enc_a56825 {
233let Inst{7-5} = 0b111;
234let Inst{13-13} = 0b0;
235let Inst{31-21} = 0b11010011000;
236let isAdd = 1;
237let isCommutable = 1;
238}
239def A2_addpsat : HInst<
240(outs DoubleRegs:$Rdd32),
241(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
242"$Rdd32 = add($Rss32,$Rtt32):sat",
243tc_8a825db2, 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_95a33176, 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_01d44cb2, 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_01d44cb2, 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_01d44cb2, 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_713b66bf, 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 BaseOpcode = "A2_and";
304let CextOpcode = "A2_and";
305let InputType = "reg";
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_713b66bf, 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_5da50c4b, 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_c57d9f39, 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_c57d9f39, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_713b66bf, TypeALU32_2op>, Enc_18c338 {
412let Inst{31-23} = 0b011111000;
413let isAsCheapAsAMove = 1;
414let isMoveImm = 1;
415let isReMaterializable = 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_713b66bf, TypeALU32_3op>, Enc_be32a5, PredNewRel {
427let Inst{7-5} = 0b000;
428let Inst{13-13} = 0b0;
429let Inst{31-21} = 0b11110101000;
430let BaseOpcode = "A2_combinew";
431let InputType = "reg";
432let isPredicable = 1;
433}
434def A2_max : HInst<
435(outs IntRegs:$Rd32),
436(ins IntRegs:$Rs32, IntRegs:$Rt32),
437"$Rd32 = max($Rs32,$Rt32)",
438tc_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_c57d9f39, 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_9f6cd987, 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_d61dfdc3, 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_b837298f, 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_c57d9f39, 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_9f6cd987, 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_713b66bf, 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 BaseOpcode = "A2_or";
589let CextOpcode = "A2_or";
590let InputType = "reg";
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_713b66bf, 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_5da50c4b, 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_1c2c7a4a, 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 BaseOpcode = "A2_add";
633let CextOpcode = "A2_add";
634let InputType = "reg";
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_442395f3, 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 BaseOpcode = "A2_add";
650let CextOpcode = "A2_add";
651let InputType = "reg";
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_1c2c7a4a, 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 BaseOpcode = "A2_addi";
665let CextOpcode = "A2_add";
666let InputType = "imm";
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_442395f3, 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 BaseOpcode = "A2_addi";
686let CextOpcode = "A2_add";
687let InputType = "imm";
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_1c2c7a4a, 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 BaseOpcode = "A2_addi";
705let CextOpcode = "A2_add";
706let InputType = "imm";
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_442395f3, 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 BaseOpcode = "A2_addi";
725let CextOpcode = "A2_add";
726let InputType = "imm";
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_1c2c7a4a, 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 BaseOpcode = "A2_add";
745let CextOpcode = "A2_add";
746let InputType = "reg";
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_442395f3, 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 BaseOpcode = "A2_add";
761let CextOpcode = "A2_add";
762let InputType = "reg";
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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_1c2c7a4a, 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_442395f3, 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_d61dfdc3, 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_9f6cd987, 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_9f6cd987, 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_9f6cd987, 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_9f6cd987, 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_9f6cd987, 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_713b66bf, 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 BaseOpcode = "A2_sub";
1066let CextOpcode = "A2_sub";
1067let InputType = "reg";
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_01d44cb2, 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_01d44cb2, 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_01d44cb2, 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_01d44cb2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_f34c1c21, 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_f34c1c21, 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_8a825db2, 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_8a825db2, 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_5da50c4b, 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_713b66bf, 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_95a33176, 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_713b66bf, 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_95a33176, 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_95a33176, 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_8b5bd4f5, 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_84a7500d, 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_8b5bd4f5, 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_713b66bf, 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_95a33176, 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_95a33176, 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_9f6cd987, 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_c57d9f39, 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_c57d9f39, 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_9f6cd987, 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_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1430let Inst{13-5} = 0b000000000;
1431let Inst{31-21} = 0b01110000011;
1432let hasNewValue = 1;
1433let opNewValue = 0;
1434let BaseOpcode = "A2_tfr";
1435let InputType = "reg";
1436let isPredicable = 1;
1437}
1438def A2_tfrcrr : HInst<
1439(outs IntRegs:$Rd32),
1440(ins CtrRegs:$Cs32),
1441"$Rd32 = $Cs32",
1442tc_7476d766, 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_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel {
1453let isPredicated = 1;
1454let isPredicatedFalse = 1;
1455let hasNewValue = 1;
1456let opNewValue = 0;
1457let BaseOpcode = "A2_tfr";
1458let CextOpcode = "A2_tfr";
1459let InputType = "reg";
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_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel {
1468let isPredicated = 1;
1469let isPredicatedFalse = 1;
1470let hasNewValue = 1;
1471let opNewValue = 0;
1472let isPredicatedNew = 1;
1473let BaseOpcode = "A2_tfr";
1474let CextOpcode = "A2_tfr";
1475let InputType = "reg";
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_713b66bf, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_86173609, 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_713b66bf, TypeALU64> {
1536let isAsCheapAsAMove = 1;
1537let isMoveImm = 1;
1538let isReMaterializable = 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_713b66bf, 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_86173609, 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_49fdfd4b, 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_c57d9f39, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel {
1575let Inst{21-21} = 0b0;
1576let Inst{31-24} = 0b01111000;
1577let hasNewValue = 1;
1578let opNewValue = 0;
1579let BaseOpcode = "A2_tfrsi";
1580let CextOpcode = "A2_tfr";
1581let InputType = "imm";
1582let isAsCheapAsAMove = 1;
1583let isMoveImm = 1;
1584let isPredicable = 1;
1585let isReMaterializable = 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_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel {
1597let isPredicated = 1;
1598let hasNewValue = 1;
1599let opNewValue = 0;
1600let BaseOpcode = "A2_tfr";
1601let CextOpcode = "A2_tfr";
1602let InputType = "reg";
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_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel {
1611let isPredicated = 1;
1612let hasNewValue = 1;
1613let opNewValue = 0;
1614let isPredicatedNew = 1;
1615let BaseOpcode = "A2_tfr";
1616let CextOpcode = "A2_tfr";
1617let InputType = "reg";
1618let isPseudo = 1;
1619let isCodeGenOnly = 1;
1620}
1621def A2_vabsh : HInst<
1622(outs DoubleRegs:$Rdd32),
1623(ins DoubleRegs:$Rss32),
1624"$Rdd32 = vabsh($Rss32)",
1625tc_d61dfdc3, 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_d61dfdc3, 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_d61dfdc3, 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_d61dfdc3, 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_5da50c4b, 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_5da50c4b, 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_8a825db2, 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_5da50c4b, 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_8a825db2, 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_8a825db2, 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_5da50c4b, 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_8a825db2, 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_f098b237, 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_0dfac0a7, 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_20131976, 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_f098b237, 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_20131976, 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_f098b237, 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_20131976, 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_f098b237, 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_20131976, 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_f098b237, 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_0dfac0a7, 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_20131976, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_d61dfdc3, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_8a825db2, 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_f098b237, 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_0dfac0a7, 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_0dfac0a7, 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_f098b237, 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_0dfac0a7, 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_0dfac0a7, 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_c21d7447, 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_7f8ae742, 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_c21d7447, 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_7f8ae742, 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_5da50c4b, 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_5da50c4b, 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_8a825db2, 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_5da50c4b, 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_8a825db2, 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_8a825db2, 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_5da50c4b, 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_8a825db2, 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_713b66bf, 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 BaseOpcode = "A2_xor";
2256let InputType = "reg";
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_5da50c4b, 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_713b66bf, 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_c57d9f39, 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_1d41f8b7, 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_713b66bf, 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_5da50c4b, 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_f34c1c21, 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_f34c1c21, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_0dfac0a7, 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_0dfac0a7, 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_112d30d6, 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_8a825db2, 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_713b66bf, 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_5da50c4b, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_86173609, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_713b66bf, 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_0dfac0a7, 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_0dfac0a7, 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_0dfac0a7, 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_0dfac0a7, 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_1d41f8b7, 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_7476d766, 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_49fdfd4b, 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_d68dca5c, 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_4a55d03c, 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_a1297125, 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_4a55d03c, 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_a1297125, 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_a1297125, 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_a1297125, 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_a1297125, 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_a1297125, 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_a1297125, 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_a1297125, 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_a1297125, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_788b1d09, 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_38e0bae9, 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_0dfac0a7, 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_407e96f9, 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_7401744f, 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 A7_clip : HInst<
3360(outs IntRegs:$Rd32),
3361(ins IntRegs:$Rs32, u5_0Imm:$Ii),
3362"$Rd32 = clip($Rs32,#$Ii)",
3363tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV67,UseAudio]> {
3364let Inst{7-5} = 0b101;
3365let Inst{13-13} = 0b0;
3366let Inst{31-21} = 0b10001000110;
3367let hasNewValue = 1;
3368let opNewValue = 0;
3369}
3370def A7_croundd_ri : HInst<
3371(outs DoubleRegs:$Rdd32),
3372(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
3373"$Rdd32 = cround($Rss32,#$Ii)",
3374tc_9b3c0462, TypeS_2op>, Enc_5eac98, Requires<[HasV67,UseAudio]> {
3375let Inst{7-5} = 0b010;
3376let Inst{31-21} = 0b10001100111;
3377let prefersSlot3 = 1;
3378}
3379def A7_croundd_rr : HInst<
3380(outs DoubleRegs:$Rdd32),
3381(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3382"$Rdd32 = cround($Rss32,$Rt32)",
3383tc_9b3c0462, TypeS_3op>, Enc_927852, Requires<[HasV67,UseAudio]> {
3384let Inst{7-5} = 0b010;
3385let Inst{13-13} = 0b0;
3386let Inst{31-21} = 0b11000110110;
3387let prefersSlot3 = 1;
3388}
3389def A7_vclip : HInst<
3390(outs DoubleRegs:$Rdd32),
3391(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
3392"$Rdd32 = vclip($Rss32,#$Ii)",
3393tc_407e96f9, TypeS_2op>, Enc_7e5a82, Requires<[HasV67,UseAudio]> {
3394let Inst{7-5} = 0b110;
3395let Inst{13-13} = 0b0;
3396let Inst{31-21} = 0b10001000110;
3397}
3398def C2_all8 : HInst<
3399(outs PredRegs:$Pd4),
3400(ins PredRegs:$Ps4),
3401"$Pd4 = all8($Ps4)",
3402tc_151bf368, TypeCR>, Enc_65d691 {
3403let Inst{13-2} = 0b000000000000;
3404let Inst{31-18} = 0b01101011101000;
3405}
3406def C2_and : HInst<
3407(outs PredRegs:$Pd4),
3408(ins PredRegs:$Pt4, PredRegs:$Ps4),
3409"$Pd4 = and($Pt4,$Ps4)",
3410tc_651cbe02, TypeCR>, Enc_454a26 {
3411let Inst{7-2} = 0b000000;
3412let Inst{13-10} = 0b0000;
3413let Inst{31-18} = 0b01101011000000;
3414}
3415def C2_andn : HInst<
3416(outs PredRegs:$Pd4),
3417(ins PredRegs:$Pt4, PredRegs:$Ps4),
3418"$Pd4 = and($Pt4,!$Ps4)",
3419tc_651cbe02, TypeCR>, Enc_454a26 {
3420let Inst{7-2} = 0b000000;
3421let Inst{13-10} = 0b0000;
3422let Inst{31-18} = 0b01101011011000;
3423}
3424def C2_any8 : HInst<
3425(outs PredRegs:$Pd4),
3426(ins PredRegs:$Ps4),
3427"$Pd4 = any8($Ps4)",
3428tc_151bf368, TypeCR>, Enc_65d691 {
3429let Inst{13-2} = 0b000000000000;
3430let Inst{31-18} = 0b01101011100000;
3431}
3432def C2_bitsclr : HInst<
3433(outs PredRegs:$Pd4),
3434(ins IntRegs:$Rs32, IntRegs:$Rt32),
3435"$Pd4 = bitsclr($Rs32,$Rt32)",
3436tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
3437let Inst{7-2} = 0b000000;
3438let Inst{13-13} = 0b0;
3439let Inst{31-21} = 0b11000111100;
3440}
3441def C2_bitsclri : HInst<
3442(outs PredRegs:$Pd4),
3443(ins IntRegs:$Rs32, u6_0Imm:$Ii),
3444"$Pd4 = bitsclr($Rs32,#$Ii)",
3445tc_a1297125, TypeS_2op>, Enc_5d6c34 {
3446let Inst{7-2} = 0b000000;
3447let Inst{31-21} = 0b10000101100;
3448}
3449def C2_bitsset : HInst<
3450(outs PredRegs:$Pd4),
3451(ins IntRegs:$Rs32, IntRegs:$Rt32),
3452"$Pd4 = bitsset($Rs32,$Rt32)",
3453tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
3454let Inst{7-2} = 0b000000;
3455let Inst{13-13} = 0b0;
3456let Inst{31-21} = 0b11000111010;
3457}
3458def C2_ccombinewf : HInst<
3459(outs DoubleRegs:$Rdd32),
3460(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3461"if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3462tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3463let Inst{7-7} = 0b1;
3464let Inst{13-13} = 0b0;
3465let Inst{31-21} = 0b11111101000;
3466let isPredicated = 1;
3467let isPredicatedFalse = 1;
3468let BaseOpcode = "A2_combinew";
3469}
3470def C2_ccombinewnewf : HInst<
3471(outs DoubleRegs:$Rdd32),
3472(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3473"if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3474tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3475let Inst{7-7} = 0b1;
3476let Inst{13-13} = 0b1;
3477let Inst{31-21} = 0b11111101000;
3478let isPredicated = 1;
3479let isPredicatedFalse = 1;
3480let isPredicatedNew = 1;
3481let BaseOpcode = "A2_combinew";
3482}
3483def C2_ccombinewnewt : HInst<
3484(outs DoubleRegs:$Rdd32),
3485(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3486"if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3487tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3488let Inst{7-7} = 0b0;
3489let Inst{13-13} = 0b1;
3490let Inst{31-21} = 0b11111101000;
3491let isPredicated = 1;
3492let isPredicatedNew = 1;
3493let BaseOpcode = "A2_combinew";
3494}
3495def C2_ccombinewt : HInst<
3496(outs DoubleRegs:$Rdd32),
3497(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3498"if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3499tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3500let Inst{7-7} = 0b0;
3501let Inst{13-13} = 0b0;
3502let Inst{31-21} = 0b11111101000;
3503let isPredicated = 1;
3504let BaseOpcode = "A2_combinew";
3505}
3506def C2_cmoveif : HInst<
3507(outs IntRegs:$Rd32),
3508(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3509"if (!$Pu4) $Rd32 = #$Ii",
3510tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3511let Inst{13-13} = 0b0;
3512let Inst{20-20} = 0b0;
3513let Inst{31-23} = 0b011111101;
3514let isPredicated = 1;
3515let isPredicatedFalse = 1;
3516let hasNewValue = 1;
3517let opNewValue = 0;
3518let BaseOpcode = "A2_tfrsi";
3519let CextOpcode = "A2_tfr";
3520let InputType = "imm";
3521let isMoveImm = 1;
3522let isExtendable = 1;
3523let opExtendable = 2;
3524let isExtentSigned = 1;
3525let opExtentBits = 12;
3526let opExtentAlign = 0;
3527}
3528def C2_cmoveit : HInst<
3529(outs IntRegs:$Rd32),
3530(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3531"if ($Pu4) $Rd32 = #$Ii",
3532tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3533let Inst{13-13} = 0b0;
3534let Inst{20-20} = 0b0;
3535let Inst{31-23} = 0b011111100;
3536let isPredicated = 1;
3537let hasNewValue = 1;
3538let opNewValue = 0;
3539let BaseOpcode = "A2_tfrsi";
3540let CextOpcode = "A2_tfr";
3541let InputType = "imm";
3542let isMoveImm = 1;
3543let isExtendable = 1;
3544let opExtendable = 2;
3545let isExtentSigned = 1;
3546let opExtentBits = 12;
3547let opExtentAlign = 0;
3548}
3549def C2_cmovenewif : HInst<
3550(outs IntRegs:$Rd32),
3551(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3552"if (!$Pu4.new) $Rd32 = #$Ii",
3553tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3554let Inst{13-13} = 0b1;
3555let Inst{20-20} = 0b0;
3556let Inst{31-23} = 0b011111101;
3557let isPredicated = 1;
3558let isPredicatedFalse = 1;
3559let hasNewValue = 1;
3560let opNewValue = 0;
3561let isPredicatedNew = 1;
3562let BaseOpcode = "A2_tfrsi";
3563let CextOpcode = "A2_tfr";
3564let InputType = "imm";
3565let isMoveImm = 1;
3566let isExtendable = 1;
3567let opExtendable = 2;
3568let isExtentSigned = 1;
3569let opExtentBits = 12;
3570let opExtentAlign = 0;
3571}
3572def C2_cmovenewit : HInst<
3573(outs IntRegs:$Rd32),
3574(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3575"if ($Pu4.new) $Rd32 = #$Ii",
3576tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3577let Inst{13-13} = 0b1;
3578let Inst{20-20} = 0b0;
3579let Inst{31-23} = 0b011111100;
3580let isPredicated = 1;
3581let hasNewValue = 1;
3582let opNewValue = 0;
3583let isPredicatedNew = 1;
3584let BaseOpcode = "A2_tfrsi";
3585let CextOpcode = "A2_tfr";
3586let InputType = "imm";
3587let isMoveImm = 1;
3588let isExtendable = 1;
3589let opExtendable = 2;
3590let isExtentSigned = 1;
3591let opExtentBits = 12;
3592let opExtentAlign = 0;
3593}
3594def C2_cmpeq : HInst<
3595(outs PredRegs:$Pd4),
3596(ins IntRegs:$Rs32, IntRegs:$Rt32),
3597"$Pd4 = cmp.eq($Rs32,$Rt32)",
3598tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3599let Inst{7-2} = 0b000000;
3600let Inst{13-13} = 0b0;
3601let Inst{31-21} = 0b11110010000;
3602let CextOpcode = "C2_cmpeq";
3603let InputType = "reg";
3604let isCommutable = 1;
3605let isCompare = 1;
3606}
3607def C2_cmpeqi : HInst<
3608(outs PredRegs:$Pd4),
3609(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3610"$Pd4 = cmp.eq($Rs32,#$Ii)",
3611tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3612let Inst{4-2} = 0b000;
3613let Inst{31-22} = 0b0111010100;
3614let CextOpcode = "C2_cmpeq";
3615let InputType = "imm";
3616let isCompare = 1;
3617let isExtendable = 1;
3618let opExtendable = 2;
3619let isExtentSigned = 1;
3620let opExtentBits = 10;
3621let opExtentAlign = 0;
3622}
3623def C2_cmpeqp : HInst<
3624(outs PredRegs:$Pd4),
3625(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3626"$Pd4 = cmp.eq($Rss32,$Rtt32)",
3627tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3628let Inst{7-2} = 0b000000;
3629let Inst{13-13} = 0b0;
3630let Inst{31-21} = 0b11010010100;
3631let isCommutable = 1;
3632let isCompare = 1;
3633}
3634def C2_cmpgei : HInst<
3635(outs PredRegs:$Pd4),
3636(ins IntRegs:$Rs32, s8_0Imm:$Ii),
3637"$Pd4 = cmp.ge($Rs32,#$Ii)",
3638tc_d33e5eee, TypeALU32_2op> {
3639let isCompare = 1;
3640let isPseudo = 1;
3641}
3642def C2_cmpgeui : HInst<
3643(outs PredRegs:$Pd4),
3644(ins IntRegs:$Rs32, u8_0Imm:$Ii),
3645"$Pd4 = cmp.geu($Rs32,#$Ii)",
3646tc_d33e5eee, TypeALU32_2op> {
3647let isCompare = 1;
3648let isPseudo = 1;
3649}
3650def C2_cmpgt : HInst<
3651(outs PredRegs:$Pd4),
3652(ins IntRegs:$Rs32, IntRegs:$Rt32),
3653"$Pd4 = cmp.gt($Rs32,$Rt32)",
3654tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3655let Inst{7-2} = 0b000000;
3656let Inst{13-13} = 0b0;
3657let Inst{31-21} = 0b11110010010;
3658let CextOpcode = "C2_cmpgt";
3659let InputType = "reg";
3660let isCompare = 1;
3661}
3662def C2_cmpgti : HInst<
3663(outs PredRegs:$Pd4),
3664(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3665"$Pd4 = cmp.gt($Rs32,#$Ii)",
3666tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3667let Inst{4-2} = 0b000;
3668let Inst{31-22} = 0b0111010101;
3669let CextOpcode = "C2_cmpgt";
3670let InputType = "imm";
3671let isCompare = 1;
3672let isExtendable = 1;
3673let opExtendable = 2;
3674let isExtentSigned = 1;
3675let opExtentBits = 10;
3676let opExtentAlign = 0;
3677}
3678def C2_cmpgtp : HInst<
3679(outs PredRegs:$Pd4),
3680(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3681"$Pd4 = cmp.gt($Rss32,$Rtt32)",
3682tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3683let Inst{7-2} = 0b010000;
3684let Inst{13-13} = 0b0;
3685let Inst{31-21} = 0b11010010100;
3686let isCompare = 1;
3687}
3688def C2_cmpgtu : HInst<
3689(outs PredRegs:$Pd4),
3690(ins IntRegs:$Rs32, IntRegs:$Rt32),
3691"$Pd4 = cmp.gtu($Rs32,$Rt32)",
3692tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3693let Inst{7-2} = 0b000000;
3694let Inst{13-13} = 0b0;
3695let Inst{31-21} = 0b11110010011;
3696let CextOpcode = "C2_cmpgtu";
3697let InputType = "reg";
3698let isCompare = 1;
3699}
3700def C2_cmpgtui : HInst<
3701(outs PredRegs:$Pd4),
3702(ins IntRegs:$Rs32, u32_0Imm:$Ii),
3703"$Pd4 = cmp.gtu($Rs32,#$Ii)",
3704tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3705let Inst{4-2} = 0b000;
3706let Inst{31-21} = 0b01110101100;
3707let CextOpcode = "C2_cmpgtu";
3708let InputType = "imm";
3709let isCompare = 1;
3710let isExtendable = 1;
3711let opExtendable = 2;
3712let isExtentSigned = 0;
3713let opExtentBits = 9;
3714let opExtentAlign = 0;
3715}
3716def C2_cmpgtup : HInst<
3717(outs PredRegs:$Pd4),
3718(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3719"$Pd4 = cmp.gtu($Rss32,$Rtt32)",
3720tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3721let Inst{7-2} = 0b100000;
3722let Inst{13-13} = 0b0;
3723let Inst{31-21} = 0b11010010100;
3724let isCompare = 1;
3725}
3726def C2_cmplt : HInst<
3727(outs PredRegs:$Pd4),
3728(ins IntRegs:$Rs32, IntRegs:$Rt32),
3729"$Pd4 = cmp.lt($Rs32,$Rt32)",
3730tc_d33e5eee, TypeALU32_3op> {
3731let isCompare = 1;
3732let isPseudo = 1;
3733let isCodeGenOnly = 1;
3734}
3735def C2_cmpltu : HInst<
3736(outs PredRegs:$Pd4),
3737(ins IntRegs:$Rs32, IntRegs:$Rt32),
3738"$Pd4 = cmp.ltu($Rs32,$Rt32)",
3739tc_d33e5eee, TypeALU32_3op> {
3740let isCompare = 1;
3741let isPseudo = 1;
3742let isCodeGenOnly = 1;
3743}
3744def C2_mask : HInst<
3745(outs DoubleRegs:$Rdd32),
3746(ins PredRegs:$Pt4),
3747"$Rdd32 = mask($Pt4)",
3748tc_9f6cd987, TypeS_2op>, Enc_78e566 {
3749let Inst{7-5} = 0b000;
3750let Inst{13-10} = 0b0000;
3751let Inst{31-16} = 0b1000011000000000;
3752}
3753def C2_mux : HInst<
3754(outs IntRegs:$Rd32),
3755(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3756"$Rd32 = mux($Pu4,$Rs32,$Rt32)",
3757tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54 {
3758let Inst{7-7} = 0b0;
3759let Inst{13-13} = 0b0;
3760let Inst{31-21} = 0b11110100000;
3761let hasNewValue = 1;
3762let opNewValue = 0;
3763let InputType = "reg";
3764}
3765def C2_muxii : HInst<
3766(outs IntRegs:$Rd32),
3767(ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II),
3768"$Rd32 = mux($Pu4,#$Ii,#$II)",
3769tc_1c2c7a4a, TypeALU32_2op>, Enc_830e5d {
3770let Inst{31-25} = 0b0111101;
3771let hasNewValue = 1;
3772let opNewValue = 0;
3773let isExtendable = 1;
3774let opExtendable = 2;
3775let isExtentSigned = 1;
3776let opExtentBits = 8;
3777let opExtentAlign = 0;
3778}
3779def C2_muxir : HInst<
3780(outs IntRegs:$Rd32),
3781(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
3782"$Rd32 = mux($Pu4,$Rs32,#$Ii)",
3783tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f {
3784let Inst{13-13} = 0b0;
3785let Inst{31-23} = 0b011100110;
3786let hasNewValue = 1;
3787let opNewValue = 0;
3788let InputType = "imm";
3789let isExtendable = 1;
3790let opExtendable = 3;
3791let isExtentSigned = 1;
3792let opExtentBits = 8;
3793let opExtentAlign = 0;
3794}
3795def C2_muxri : HInst<
3796(outs IntRegs:$Rd32),
3797(ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32),
3798"$Rd32 = mux($Pu4,#$Ii,$Rs32)",
3799tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f {
3800let Inst{13-13} = 0b0;
3801let Inst{31-23} = 0b011100111;
3802let hasNewValue = 1;
3803let opNewValue = 0;
3804let InputType = "imm";
3805let isExtendable = 1;
3806let opExtendable = 2;
3807let isExtentSigned = 1;
3808let opExtentBits = 8;
3809let opExtentAlign = 0;
3810}
3811def C2_not : HInst<
3812(outs PredRegs:$Pd4),
3813(ins PredRegs:$Ps4),
3814"$Pd4 = not($Ps4)",
3815tc_151bf368, TypeCR>, Enc_65d691 {
3816let Inst{13-2} = 0b000000000000;
3817let Inst{31-18} = 0b01101011110000;
3818}
3819def C2_or : HInst<
3820(outs PredRegs:$Pd4),
3821(ins PredRegs:$Pt4, PredRegs:$Ps4),
3822"$Pd4 = or($Pt4,$Ps4)",
3823tc_651cbe02, TypeCR>, Enc_454a26 {
3824let Inst{7-2} = 0b000000;
3825let Inst{13-10} = 0b0000;
3826let Inst{31-18} = 0b01101011001000;
3827}
3828def C2_orn : HInst<
3829(outs PredRegs:$Pd4),
3830(ins PredRegs:$Pt4, PredRegs:$Ps4),
3831"$Pd4 = or($Pt4,!$Ps4)",
3832tc_651cbe02, TypeCR>, Enc_454a26 {
3833let Inst{7-2} = 0b000000;
3834let Inst{13-10} = 0b0000;
3835let Inst{31-18} = 0b01101011111000;
3836}
3837def C2_pxfer_map : HInst<
3838(outs PredRegs:$Pd4),
3839(ins PredRegs:$Ps4),
3840"$Pd4 = $Ps4",
3841tc_651cbe02, TypeMAPPING> {
3842let isPseudo = 1;
3843let isCodeGenOnly = 1;
3844}
3845def C2_tfrpr : HInst<
3846(outs IntRegs:$Rd32),
3847(ins PredRegs:$Ps4),
3848"$Rd32 = $Ps4",
3849tc_9f6cd987, TypeS_2op>, Enc_f5e933 {
3850let Inst{13-5} = 0b000000000;
3851let Inst{31-18} = 0b10001001010000;
3852let hasNewValue = 1;
3853let opNewValue = 0;
3854}
3855def C2_tfrrp : HInst<
3856(outs PredRegs:$Pd4),
3857(ins IntRegs:$Rs32),
3858"$Pd4 = $Rs32",
3859tc_55b33fda, TypeS_2op>, Enc_48b75f {
3860let Inst{13-2} = 0b000000000000;
3861let Inst{31-21} = 0b10000101010;
3862}
3863def C2_vitpack : HInst<
3864(outs IntRegs:$Rd32),
3865(ins PredRegs:$Ps4, PredRegs:$Pt4),
3866"$Rd32 = vitpack($Ps4,$Pt4)",
3867tc_f34c1c21, TypeS_2op>, Enc_527412 {
3868let Inst{7-5} = 0b000;
3869let Inst{13-10} = 0b0000;
3870let Inst{31-18} = 0b10001001000000;
3871let hasNewValue = 1;
3872let opNewValue = 0;
3873let prefersSlot3 = 1;
3874}
3875def C2_vmux : HInst<
3876(outs DoubleRegs:$Rdd32),
3877(ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3878"$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)",
3879tc_6fc5dbea, TypeALU64>, Enc_329361 {
3880let Inst{7-7} = 0b0;
3881let Inst{13-13} = 0b0;
3882let Inst{31-21} = 0b11010001000;
3883}
3884def C2_xor : HInst<
3885(outs PredRegs:$Pd4),
3886(ins PredRegs:$Ps4, PredRegs:$Pt4),
3887"$Pd4 = xor($Ps4,$Pt4)",
3888tc_651cbe02, TypeCR>, Enc_284ebb {
3889let Inst{7-2} = 0b000000;
3890let Inst{13-10} = 0b0000;
3891let Inst{31-18} = 0b01101011010000;
3892}
3893def C4_addipc : HInst<
3894(outs IntRegs:$Rd32),
3895(ins u32_0Imm:$Ii),
3896"$Rd32 = add(pc,#$Ii)",
3897tc_3edca78f, TypeCR>, Enc_607661 {
3898let Inst{6-5} = 0b00;
3899let Inst{13-13} = 0b0;
3900let Inst{31-16} = 0b0110101001001001;
3901let hasNewValue = 1;
3902let opNewValue = 0;
3903let isExtendable = 1;
3904let opExtendable = 1;
3905let isExtentSigned = 0;
3906let opExtentBits = 6;
3907let opExtentAlign = 0;
3908}
3909def C4_and_and : HInst<
3910(outs PredRegs:$Pd4),
3911(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3912"$Pd4 = and($Ps4,and($Pt4,$Pu4))",
3913tc_a7a13fac, TypeCR>, Enc_9ac432 {
3914let Inst{5-2} = 0b0000;
3915let Inst{13-10} = 0b0000;
3916let Inst{31-18} = 0b01101011000100;
3917}
3918def C4_and_andn : HInst<
3919(outs PredRegs:$Pd4),
3920(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3921"$Pd4 = and($Ps4,and($Pt4,!$Pu4))",
3922tc_a7a13fac, TypeCR>, Enc_9ac432 {
3923let Inst{5-2} = 0b0000;
3924let Inst{13-10} = 0b0000;
3925let Inst{31-18} = 0b01101011100100;
3926}
3927def C4_and_or : HInst<
3928(outs PredRegs:$Pd4),
3929(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3930"$Pd4 = and($Ps4,or($Pt4,$Pu4))",
3931tc_a7a13fac, TypeCR>, Enc_9ac432 {
3932let Inst{5-2} = 0b0000;
3933let Inst{13-10} = 0b0000;
3934let Inst{31-18} = 0b01101011001100;
3935}
3936def C4_and_orn : HInst<
3937(outs PredRegs:$Pd4),
3938(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3939"$Pd4 = and($Ps4,or($Pt4,!$Pu4))",
3940tc_a7a13fac, TypeCR>, Enc_9ac432 {
3941let Inst{5-2} = 0b0000;
3942let Inst{13-10} = 0b0000;
3943let Inst{31-18} = 0b01101011101100;
3944}
3945def C4_cmplte : HInst<
3946(outs PredRegs:$Pd4),
3947(ins IntRegs:$Rs32, IntRegs:$Rt32),
3948"$Pd4 = !cmp.gt($Rs32,$Rt32)",
3949tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3950let Inst{7-2} = 0b000100;
3951let Inst{13-13} = 0b0;
3952let Inst{31-21} = 0b11110010010;
3953let CextOpcode = "C4_cmplte";
3954let InputType = "reg";
3955let isCompare = 1;
3956}
3957def C4_cmpltei : HInst<
3958(outs PredRegs:$Pd4),
3959(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3960"$Pd4 = !cmp.gt($Rs32,#$Ii)",
3961tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3962let Inst{4-2} = 0b100;
3963let Inst{31-22} = 0b0111010101;
3964let CextOpcode = "C4_cmplte";
3965let InputType = "imm";
3966let isCompare = 1;
3967let isExtendable = 1;
3968let opExtendable = 2;
3969let isExtentSigned = 1;
3970let opExtentBits = 10;
3971let opExtentAlign = 0;
3972}
3973def C4_cmplteu : HInst<
3974(outs PredRegs:$Pd4),
3975(ins IntRegs:$Rs32, IntRegs:$Rt32),
3976"$Pd4 = !cmp.gtu($Rs32,$Rt32)",
3977tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3978let Inst{7-2} = 0b000100;
3979let Inst{13-13} = 0b0;
3980let Inst{31-21} = 0b11110010011;
3981let CextOpcode = "C4_cmplteu";
3982let InputType = "reg";
3983let isCompare = 1;
3984}
3985def C4_cmplteui : HInst<
3986(outs PredRegs:$Pd4),
3987(ins IntRegs:$Rs32, u32_0Imm:$Ii),
3988"$Pd4 = !cmp.gtu($Rs32,#$Ii)",
3989tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3990let Inst{4-2} = 0b100;
3991let Inst{31-21} = 0b01110101100;
3992let CextOpcode = "C4_cmplteu";
3993let InputType = "imm";
3994let isCompare = 1;
3995let isExtendable = 1;
3996let opExtendable = 2;
3997let isExtentSigned = 0;
3998let opExtentBits = 9;
3999let opExtentAlign = 0;
4000}
4001def C4_cmpneq : HInst<
4002(outs PredRegs:$Pd4),
4003(ins IntRegs:$Rs32, IntRegs:$Rt32),
4004"$Pd4 = !cmp.eq($Rs32,$Rt32)",
4005tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
4006let Inst{7-2} = 0b000100;
4007let Inst{13-13} = 0b0;
4008let Inst{31-21} = 0b11110010000;
4009let CextOpcode = "C4_cmpneq";
4010let InputType = "reg";
4011let isCommutable = 1;
4012let isCompare = 1;
4013}
4014def C4_cmpneqi : HInst<
4015(outs PredRegs:$Pd4),
4016(ins IntRegs:$Rs32, s32_0Imm:$Ii),
4017"$Pd4 = !cmp.eq($Rs32,#$Ii)",
4018tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
4019let Inst{4-2} = 0b100;
4020let Inst{31-22} = 0b0111010100;
4021let CextOpcode = "C4_cmpneq";
4022let InputType = "imm";
4023let isCompare = 1;
4024let isExtendable = 1;
4025let opExtendable = 2;
4026let isExtentSigned = 1;
4027let opExtentBits = 10;
4028let opExtentAlign = 0;
4029}
4030def C4_fastcorner9 : HInst<
4031(outs PredRegs:$Pd4),
4032(ins PredRegs:$Ps4, PredRegs:$Pt4),
4033"$Pd4 = fastcorner9($Ps4,$Pt4)",
4034tc_651cbe02, TypeCR>, Enc_284ebb {
4035let Inst{7-2} = 0b100100;
4036let Inst{13-10} = 0b1000;
4037let Inst{31-18} = 0b01101011000000;
4038}
4039def C4_fastcorner9_not : HInst<
4040(outs PredRegs:$Pd4),
4041(ins PredRegs:$Ps4, PredRegs:$Pt4),
4042"$Pd4 = !fastcorner9($Ps4,$Pt4)",
4043tc_651cbe02, TypeCR>, Enc_284ebb {
4044let Inst{7-2} = 0b100100;
4045let Inst{13-10} = 0b1000;
4046let Inst{31-18} = 0b01101011000100;
4047}
4048def C4_nbitsclr : HInst<
4049(outs PredRegs:$Pd4),
4050(ins IntRegs:$Rs32, IntRegs:$Rt32),
4051"$Pd4 = !bitsclr($Rs32,$Rt32)",
4052tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4053let Inst{7-2} = 0b000000;
4054let Inst{13-13} = 0b0;
4055let Inst{31-21} = 0b11000111101;
4056}
4057def C4_nbitsclri : HInst<
4058(outs PredRegs:$Pd4),
4059(ins IntRegs:$Rs32, u6_0Imm:$Ii),
4060"$Pd4 = !bitsclr($Rs32,#$Ii)",
4061tc_a1297125, TypeS_2op>, Enc_5d6c34 {
4062let Inst{7-2} = 0b000000;
4063let Inst{31-21} = 0b10000101101;
4064}
4065def C4_nbitsset : HInst<
4066(outs PredRegs:$Pd4),
4067(ins IntRegs:$Rs32, IntRegs:$Rt32),
4068"$Pd4 = !bitsset($Rs32,$Rt32)",
4069tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4070let Inst{7-2} = 0b000000;
4071let Inst{13-13} = 0b0;
4072let Inst{31-21} = 0b11000111011;
4073}
4074def C4_or_and : HInst<
4075(outs PredRegs:$Pd4),
4076(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4077"$Pd4 = or($Ps4,and($Pt4,$Pu4))",
4078tc_a7a13fac, TypeCR>, Enc_9ac432 {
4079let Inst{5-2} = 0b0000;
4080let Inst{13-10} = 0b0000;
4081let Inst{31-18} = 0b01101011010100;
4082}
4083def C4_or_andn : HInst<
4084(outs PredRegs:$Pd4),
4085(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4086"$Pd4 = or($Ps4,and($Pt4,!$Pu4))",
4087tc_a7a13fac, TypeCR>, Enc_9ac432 {
4088let Inst{5-2} = 0b0000;
4089let Inst{13-10} = 0b0000;
4090let Inst{31-18} = 0b01101011110100;
4091}
4092def C4_or_or : HInst<
4093(outs PredRegs:$Pd4),
4094(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4095"$Pd4 = or($Ps4,or($Pt4,$Pu4))",
4096tc_a7a13fac, TypeCR>, Enc_9ac432 {
4097let Inst{5-2} = 0b0000;
4098let Inst{13-10} = 0b0000;
4099let Inst{31-18} = 0b01101011011100;
4100}
4101def C4_or_orn : HInst<
4102(outs PredRegs:$Pd4),
4103(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4104"$Pd4 = or($Ps4,or($Pt4,!$Pu4))",
4105tc_a7a13fac, TypeCR>, Enc_9ac432 {
4106let Inst{5-2} = 0b0000;
4107let Inst{13-10} = 0b0000;
4108let Inst{31-18} = 0b01101011111100;
4109}
4110def F2_conv_d2df : HInst<
4111(outs DoubleRegs:$Rdd32),
4112(ins DoubleRegs:$Rss32),
4113"$Rdd32 = convert_d2df($Rss32)",
4114tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4115let Inst{13-5} = 0b000000011;
4116let Inst{31-21} = 0b10000000111;
4117let isFP = 1;
4118let Uses = [USR];
4119}
4120def F2_conv_d2sf : HInst<
4121(outs IntRegs:$Rd32),
4122(ins DoubleRegs:$Rss32),
4123"$Rd32 = convert_d2sf($Rss32)",
4124tc_9783714b, TypeS_2op>, Enc_90cd8b {
4125let Inst{13-5} = 0b000000001;
4126let Inst{31-21} = 0b10001000010;
4127let hasNewValue = 1;
4128let opNewValue = 0;
4129let isFP = 1;
4130let Uses = [USR];
4131}
4132def F2_conv_df2d : HInst<
4133(outs DoubleRegs:$Rdd32),
4134(ins DoubleRegs:$Rss32),
4135"$Rdd32 = convert_df2d($Rss32)",
4136tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4137let Inst{13-5} = 0b000000000;
4138let Inst{31-21} = 0b10000000111;
4139let isFP = 1;
4140let Uses = [USR];
4141}
4142def F2_conv_df2d_chop : HInst<
4143(outs DoubleRegs:$Rdd32),
4144(ins DoubleRegs:$Rss32),
4145"$Rdd32 = convert_df2d($Rss32):chop",
4146tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4147let Inst{13-5} = 0b000000110;
4148let Inst{31-21} = 0b10000000111;
4149let isFP = 1;
4150let Uses = [USR];
4151}
4152def F2_conv_df2sf : HInst<
4153(outs IntRegs:$Rd32),
4154(ins DoubleRegs:$Rss32),
4155"$Rd32 = convert_df2sf($Rss32)",
4156tc_9783714b, TypeS_2op>, Enc_90cd8b {
4157let Inst{13-5} = 0b000000001;
4158let Inst{31-21} = 0b10001000000;
4159let hasNewValue = 1;
4160let opNewValue = 0;
4161let isFP = 1;
4162let Uses = [USR];
4163}
4164def F2_conv_df2ud : HInst<
4165(outs DoubleRegs:$Rdd32),
4166(ins DoubleRegs:$Rss32),
4167"$Rdd32 = convert_df2ud($Rss32)",
4168tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4169let Inst{13-5} = 0b000000001;
4170let Inst{31-21} = 0b10000000111;
4171let isFP = 1;
4172let Uses = [USR];
4173}
4174def F2_conv_df2ud_chop : HInst<
4175(outs DoubleRegs:$Rdd32),
4176(ins DoubleRegs:$Rss32),
4177"$Rdd32 = convert_df2ud($Rss32):chop",
4178tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4179let Inst{13-5} = 0b000000111;
4180let Inst{31-21} = 0b10000000111;
4181let isFP = 1;
4182let Uses = [USR];
4183}
4184def F2_conv_df2uw : HInst<
4185(outs IntRegs:$Rd32),
4186(ins DoubleRegs:$Rss32),
4187"$Rd32 = convert_df2uw($Rss32)",
4188tc_9783714b, TypeS_2op>, Enc_90cd8b {
4189let Inst{13-5} = 0b000000001;
4190let Inst{31-21} = 0b10001000011;
4191let hasNewValue = 1;
4192let opNewValue = 0;
4193let isFP = 1;
4194let Uses = [USR];
4195}
4196def F2_conv_df2uw_chop : HInst<
4197(outs IntRegs:$Rd32),
4198(ins DoubleRegs:$Rss32),
4199"$Rd32 = convert_df2uw($Rss32):chop",
4200tc_9783714b, TypeS_2op>, Enc_90cd8b {
4201let Inst{13-5} = 0b000000001;
4202let Inst{31-21} = 0b10001000101;
4203let hasNewValue = 1;
4204let opNewValue = 0;
4205let isFP = 1;
4206let Uses = [USR];
4207}
4208def F2_conv_df2w : HInst<
4209(outs IntRegs:$Rd32),
4210(ins DoubleRegs:$Rss32),
4211"$Rd32 = convert_df2w($Rss32)",
4212tc_9783714b, TypeS_2op>, Enc_90cd8b {
4213let Inst{13-5} = 0b000000001;
4214let Inst{31-21} = 0b10001000100;
4215let hasNewValue = 1;
4216let opNewValue = 0;
4217let isFP = 1;
4218let Uses = [USR];
4219}
4220def F2_conv_df2w_chop : HInst<
4221(outs IntRegs:$Rd32),
4222(ins DoubleRegs:$Rss32),
4223"$Rd32 = convert_df2w($Rss32):chop",
4224tc_9783714b, TypeS_2op>, Enc_90cd8b {
4225let Inst{13-5} = 0b000000001;
4226let Inst{31-21} = 0b10001000111;
4227let hasNewValue = 1;
4228let opNewValue = 0;
4229let isFP = 1;
4230let Uses = [USR];
4231}
4232def F2_conv_sf2d : HInst<
4233(outs DoubleRegs:$Rdd32),
4234(ins IntRegs:$Rs32),
4235"$Rdd32 = convert_sf2d($Rs32)",
4236tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4237let Inst{13-5} = 0b000000100;
4238let Inst{31-21} = 0b10000100100;
4239let isFP = 1;
4240let Uses = [USR];
4241}
4242def F2_conv_sf2d_chop : HInst<
4243(outs DoubleRegs:$Rdd32),
4244(ins IntRegs:$Rs32),
4245"$Rdd32 = convert_sf2d($Rs32):chop",
4246tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4247let Inst{13-5} = 0b000000110;
4248let Inst{31-21} = 0b10000100100;
4249let isFP = 1;
4250let Uses = [USR];
4251}
4252def F2_conv_sf2df : HInst<
4253(outs DoubleRegs:$Rdd32),
4254(ins IntRegs:$Rs32),
4255"$Rdd32 = convert_sf2df($Rs32)",
4256tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4257let Inst{13-5} = 0b000000000;
4258let Inst{31-21} = 0b10000100100;
4259let isFP = 1;
4260let Uses = [USR];
4261}
4262def F2_conv_sf2ud : HInst<
4263(outs DoubleRegs:$Rdd32),
4264(ins IntRegs:$Rs32),
4265"$Rdd32 = convert_sf2ud($Rs32)",
4266tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4267let Inst{13-5} = 0b000000011;
4268let Inst{31-21} = 0b10000100100;
4269let isFP = 1;
4270let Uses = [USR];
4271}
4272def F2_conv_sf2ud_chop : HInst<
4273(outs DoubleRegs:$Rdd32),
4274(ins IntRegs:$Rs32),
4275"$Rdd32 = convert_sf2ud($Rs32):chop",
4276tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4277let Inst{13-5} = 0b000000101;
4278let Inst{31-21} = 0b10000100100;
4279let isFP = 1;
4280let Uses = [USR];
4281}
4282def F2_conv_sf2uw : HInst<
4283(outs IntRegs:$Rd32),
4284(ins IntRegs:$Rs32),
4285"$Rd32 = convert_sf2uw($Rs32)",
4286tc_9783714b, TypeS_2op>, Enc_5e2823 {
4287let Inst{13-5} = 0b000000000;
4288let Inst{31-21} = 0b10001011011;
4289let hasNewValue = 1;
4290let opNewValue = 0;
4291let isFP = 1;
4292let Uses = [USR];
4293}
4294def F2_conv_sf2uw_chop : HInst<
4295(outs IntRegs:$Rd32),
4296(ins IntRegs:$Rs32),
4297"$Rd32 = convert_sf2uw($Rs32):chop",
4298tc_9783714b, TypeS_2op>, Enc_5e2823 {
4299let Inst{13-5} = 0b000000001;
4300let Inst{31-21} = 0b10001011011;
4301let hasNewValue = 1;
4302let opNewValue = 0;
4303let isFP = 1;
4304let Uses = [USR];
4305}
4306def F2_conv_sf2w : HInst<
4307(outs IntRegs:$Rd32),
4308(ins IntRegs:$Rs32),
4309"$Rd32 = convert_sf2w($Rs32)",
4310tc_9783714b, TypeS_2op>, Enc_5e2823 {
4311let Inst{13-5} = 0b000000000;
4312let Inst{31-21} = 0b10001011100;
4313let hasNewValue = 1;
4314let opNewValue = 0;
4315let isFP = 1;
4316let Uses = [USR];
4317}
4318def F2_conv_sf2w_chop : HInst<
4319(outs IntRegs:$Rd32),
4320(ins IntRegs:$Rs32),
4321"$Rd32 = convert_sf2w($Rs32):chop",
4322tc_9783714b, TypeS_2op>, Enc_5e2823 {
4323let Inst{13-5} = 0b000000001;
4324let Inst{31-21} = 0b10001011100;
4325let hasNewValue = 1;
4326let opNewValue = 0;
4327let isFP = 1;
4328let Uses = [USR];
4329}
4330def F2_conv_ud2df : HInst<
4331(outs DoubleRegs:$Rdd32),
4332(ins DoubleRegs:$Rss32),
4333"$Rdd32 = convert_ud2df($Rss32)",
4334tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4335let Inst{13-5} = 0b000000010;
4336let Inst{31-21} = 0b10000000111;
4337let isFP = 1;
4338let Uses = [USR];
4339}
4340def F2_conv_ud2sf : HInst<
4341(outs IntRegs:$Rd32),
4342(ins DoubleRegs:$Rss32),
4343"$Rd32 = convert_ud2sf($Rss32)",
4344tc_9783714b, TypeS_2op>, Enc_90cd8b {
4345let Inst{13-5} = 0b000000001;
4346let Inst{31-21} = 0b10001000001;
4347let hasNewValue = 1;
4348let opNewValue = 0;
4349let isFP = 1;
4350let Uses = [USR];
4351}
4352def F2_conv_uw2df : HInst<
4353(outs DoubleRegs:$Rdd32),
4354(ins IntRegs:$Rs32),
4355"$Rdd32 = convert_uw2df($Rs32)",
4356tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4357let Inst{13-5} = 0b000000001;
4358let Inst{31-21} = 0b10000100100;
4359let isFP = 1;
4360let Uses = [USR];
4361}
4362def F2_conv_uw2sf : HInst<
4363(outs IntRegs:$Rd32),
4364(ins IntRegs:$Rs32),
4365"$Rd32 = convert_uw2sf($Rs32)",
4366tc_9783714b, TypeS_2op>, Enc_5e2823 {
4367let Inst{13-5} = 0b000000000;
4368let Inst{31-21} = 0b10001011001;
4369let hasNewValue = 1;
4370let opNewValue = 0;
4371let isFP = 1;
4372let Uses = [USR];
4373}
4374def F2_conv_w2df : HInst<
4375(outs DoubleRegs:$Rdd32),
4376(ins IntRegs:$Rs32),
4377"$Rdd32 = convert_w2df($Rs32)",
4378tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4379let Inst{13-5} = 0b000000010;
4380let Inst{31-21} = 0b10000100100;
4381let isFP = 1;
4382let Uses = [USR];
4383}
4384def F2_conv_w2sf : HInst<
4385(outs IntRegs:$Rd32),
4386(ins IntRegs:$Rs32),
4387"$Rd32 = convert_w2sf($Rs32)",
4388tc_9783714b, TypeS_2op>, Enc_5e2823 {
4389let Inst{13-5} = 0b000000000;
4390let Inst{31-21} = 0b10001011010;
4391let hasNewValue = 1;
4392let opNewValue = 0;
4393let isFP = 1;
4394let Uses = [USR];
4395}
4396def F2_dfadd : HInst<
4397(outs DoubleRegs:$Rdd32),
4398(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4399"$Rdd32 = dfadd($Rss32,$Rtt32)",
4400tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> {
4401let Inst{7-5} = 0b011;
4402let Inst{13-13} = 0b0;
4403let Inst{31-21} = 0b11101000000;
4404let isFP = 1;
4405let Uses = [USR];
4406}
4407def F2_dfclass : HInst<
4408(outs PredRegs:$Pd4),
4409(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
4410"$Pd4 = dfclass($Rss32,#$Ii)",
4411tc_a1297125, TypeALU64>, Enc_1f19b5 {
4412let Inst{4-2} = 0b100;
4413let Inst{13-10} = 0b0000;
4414let Inst{31-21} = 0b11011100100;
4415let isFP = 1;
4416let Uses = [USR];
4417}
4418def F2_dfcmpeq : HInst<
4419(outs PredRegs:$Pd4),
4420(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4421"$Pd4 = dfcmp.eq($Rss32,$Rtt32)",
4422tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4423let Inst{7-2} = 0b000000;
4424let Inst{13-13} = 0b0;
4425let Inst{31-21} = 0b11010010111;
4426let isFP = 1;
4427let Uses = [USR];
4428let isCompare = 1;
4429}
4430def F2_dfcmpge : HInst<
4431(outs PredRegs:$Pd4),
4432(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4433"$Pd4 = dfcmp.ge($Rss32,$Rtt32)",
4434tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4435let Inst{7-2} = 0b010000;
4436let Inst{13-13} = 0b0;
4437let Inst{31-21} = 0b11010010111;
4438let isFP = 1;
4439let Uses = [USR];
4440let isCompare = 1;
4441}
4442def F2_dfcmpgt : HInst<
4443(outs PredRegs:$Pd4),
4444(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4445"$Pd4 = dfcmp.gt($Rss32,$Rtt32)",
4446tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4447let Inst{7-2} = 0b001000;
4448let Inst{13-13} = 0b0;
4449let Inst{31-21} = 0b11010010111;
4450let isFP = 1;
4451let Uses = [USR];
4452let isCompare = 1;
4453}
4454def F2_dfcmpuo : HInst<
4455(outs PredRegs:$Pd4),
4456(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4457"$Pd4 = dfcmp.uo($Rss32,$Rtt32)",
4458tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4459let Inst{7-2} = 0b011000;
4460let Inst{13-13} = 0b0;
4461let Inst{31-21} = 0b11010010111;
4462let isFP = 1;
4463let Uses = [USR];
4464let isCompare = 1;
4465}
4466def F2_dfimm_n : HInst<
4467(outs DoubleRegs:$Rdd32),
4468(ins u10_0Imm:$Ii),
4469"$Rdd32 = dfmake(#$Ii):neg",
4470tc_65279839, TypeALU64>, Enc_e6c957 {
4471let Inst{20-16} = 0b00000;
4472let Inst{31-22} = 0b1101100101;
4473let prefersSlot3 = 1;
4474}
4475def F2_dfimm_p : HInst<
4476(outs DoubleRegs:$Rdd32),
4477(ins u10_0Imm:$Ii),
4478"$Rdd32 = dfmake(#$Ii):pos",
4479tc_65279839, TypeALU64>, Enc_e6c957 {
4480let Inst{20-16} = 0b00000;
4481let Inst{31-22} = 0b1101100100;
4482let prefersSlot3 = 1;
4483}
4484def F2_dfmax : HInst<
4485(outs DoubleRegs:$Rdd32),
4486(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4487"$Rdd32 = dfmax($Rss32,$Rtt32)",
4488tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> {
4489let Inst{7-5} = 0b011;
4490let Inst{13-13} = 0b0;
4491let Inst{31-21} = 0b11101000001;
4492let isFP = 1;
4493let prefersSlot3 = 1;
4494let Uses = [USR];
4495}
4496def F2_dfmin : HInst<
4497(outs DoubleRegs:$Rdd32),
4498(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4499"$Rdd32 = dfmin($Rss32,$Rtt32)",
4500tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> {
4501let Inst{7-5} = 0b011;
4502let Inst{13-13} = 0b0;
4503let Inst{31-21} = 0b11101000110;
4504let isFP = 1;
4505let prefersSlot3 = 1;
4506let Uses = [USR];
4507}
4508def F2_dfmpyfix : HInst<
4509(outs DoubleRegs:$Rdd32),
4510(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4511"$Rdd32 = dfmpyfix($Rss32,$Rtt32)",
4512tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV67]> {
4513let Inst{7-5} = 0b011;
4514let Inst{13-13} = 0b0;
4515let Inst{31-21} = 0b11101000010;
4516let isFP = 1;
4517let Uses = [USR];
4518}
4519def F2_dfmpyhh : HInst<
4520(outs DoubleRegs:$Rxx32),
4521(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4522"$Rxx32 += dfmpyhh($Rss32,$Rtt32)",
4523tc_0a195f2c, TypeM>, Enc_88c16c, Requires<[HasV67]> {
4524let Inst{7-5} = 0b011;
4525let Inst{13-13} = 0b0;
4526let Inst{31-21} = 0b11101010100;
4527let isFP = 1;
4528let Uses = [USR];
4529let Constraints = "$Rxx32 = $Rxx32in";
4530}
4531def F2_dfmpylh : HInst<
4532(outs DoubleRegs:$Rxx32),
4533(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4534"$Rxx32 += dfmpylh($Rss32,$Rtt32)",
4535tc_01e1be3b, TypeM>, Enc_88c16c, Requires<[HasV67]> {
4536let Inst{7-5} = 0b011;
4537let Inst{13-13} = 0b0;
4538let Inst{31-21} = 0b11101010000;
4539let prefersSlot3 = 1;
4540let Constraints = "$Rxx32 = $Rxx32in";
4541}
4542def F2_dfmpyll : HInst<
4543(outs DoubleRegs:$Rdd32),
4544(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4545"$Rdd32 = dfmpyll($Rss32,$Rtt32)",
4546tc_556f6577, TypeM>, Enc_a56825, Requires<[HasV67]> {
4547let Inst{7-5} = 0b011;
4548let Inst{13-13} = 0b0;
4549let Inst{31-21} = 0b11101000101;
4550let prefersSlot3 = 1;
4551}
4552def F2_dfsub : HInst<
4553(outs DoubleRegs:$Rdd32),
4554(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4555"$Rdd32 = dfsub($Rss32,$Rtt32)",
4556tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> {
4557let Inst{7-5} = 0b011;
4558let Inst{13-13} = 0b0;
4559let Inst{31-21} = 0b11101000100;
4560let isFP = 1;
4561let Uses = [USR];
4562}
4563def F2_sfadd : HInst<
4564(outs IntRegs:$Rd32),
4565(ins IntRegs:$Rs32, IntRegs:$Rt32),
4566"$Rd32 = sfadd($Rs32,$Rt32)",
4567tc_02fe1c65, TypeM>, Enc_5ab2be {
4568let Inst{7-5} = 0b000;
4569let Inst{13-13} = 0b0;
4570let Inst{31-21} = 0b11101011000;
4571let hasNewValue = 1;
4572let opNewValue = 0;
4573let isFP = 1;
4574let Uses = [USR];
4575let isCommutable = 1;
4576}
4577def F2_sfclass : HInst<
4578(outs PredRegs:$Pd4),
4579(ins IntRegs:$Rs32, u5_0Imm:$Ii),
4580"$Pd4 = sfclass($Rs32,#$Ii)",
4581tc_a1297125, TypeS_2op>, Enc_83ee64 {
4582let Inst{7-2} = 0b000000;
4583let Inst{13-13} = 0b0;
4584let Inst{31-21} = 0b10000101111;
4585let isFP = 1;
4586let Uses = [USR];
4587}
4588def F2_sfcmpeq : HInst<
4589(outs PredRegs:$Pd4),
4590(ins IntRegs:$Rs32, IntRegs:$Rt32),
4591"$Pd4 = sfcmp.eq($Rs32,$Rt32)",
4592tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4593let Inst{7-2} = 0b011000;
4594let Inst{13-13} = 0b0;
4595let Inst{31-21} = 0b11000111111;
4596let isFP = 1;
4597let Uses = [USR];
4598let isCompare = 1;
4599}
4600def F2_sfcmpge : HInst<
4601(outs PredRegs:$Pd4),
4602(ins IntRegs:$Rs32, IntRegs:$Rt32),
4603"$Pd4 = sfcmp.ge($Rs32,$Rt32)",
4604tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4605let Inst{7-2} = 0b000000;
4606let Inst{13-13} = 0b0;
4607let Inst{31-21} = 0b11000111111;
4608let isFP = 1;
4609let Uses = [USR];
4610let isCompare = 1;
4611}
4612def F2_sfcmpgt : HInst<
4613(outs PredRegs:$Pd4),
4614(ins IntRegs:$Rs32, IntRegs:$Rt32),
4615"$Pd4 = sfcmp.gt($Rs32,$Rt32)",
4616tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4617let Inst{7-2} = 0b100000;
4618let Inst{13-13} = 0b0;
4619let Inst{31-21} = 0b11000111111;
4620let isFP = 1;
4621let Uses = [USR];
4622let isCompare = 1;
4623}
4624def F2_sfcmpuo : HInst<
4625(outs PredRegs:$Pd4),
4626(ins IntRegs:$Rs32, IntRegs:$Rt32),
4627"$Pd4 = sfcmp.uo($Rs32,$Rt32)",
4628tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4629let Inst{7-2} = 0b001000;
4630let Inst{13-13} = 0b0;
4631let Inst{31-21} = 0b11000111111;
4632let isFP = 1;
4633let Uses = [USR];
4634let isCompare = 1;
4635}
4636def F2_sffixupd : HInst<
4637(outs IntRegs:$Rd32),
4638(ins IntRegs:$Rs32, IntRegs:$Rt32),
4639"$Rd32 = sffixupd($Rs32,$Rt32)",
4640tc_02fe1c65, TypeM>, Enc_5ab2be {
4641let Inst{7-5} = 0b001;
4642let Inst{13-13} = 0b0;
4643let Inst{31-21} = 0b11101011110;
4644let hasNewValue = 1;
4645let opNewValue = 0;
4646let isFP = 1;
4647}
4648def F2_sffixupn : HInst<
4649(outs IntRegs:$Rd32),
4650(ins IntRegs:$Rs32, IntRegs:$Rt32),
4651"$Rd32 = sffixupn($Rs32,$Rt32)",
4652tc_02fe1c65, TypeM>, Enc_5ab2be {
4653let Inst{7-5} = 0b000;
4654let Inst{13-13} = 0b0;
4655let Inst{31-21} = 0b11101011110;
4656let hasNewValue = 1;
4657let opNewValue = 0;
4658let isFP = 1;
4659}
4660def F2_sffixupr : HInst<
4661(outs IntRegs:$Rd32),
4662(ins IntRegs:$Rs32),
4663"$Rd32 = sffixupr($Rs32)",
4664tc_9783714b, TypeS_2op>, Enc_5e2823 {
4665let Inst{13-5} = 0b000000000;
4666let Inst{31-21} = 0b10001011101;
4667let hasNewValue = 1;
4668let opNewValue = 0;
4669let isFP = 1;
4670}
4671def F2_sffma : HInst<
4672(outs IntRegs:$Rx32),
4673(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4674"$Rx32 += sfmpy($Rs32,$Rt32)",
4675tc_9e72dc89, TypeM>, Enc_2ae154 {
4676let Inst{7-5} = 0b100;
4677let Inst{13-13} = 0b0;
4678let Inst{31-21} = 0b11101111000;
4679let hasNewValue = 1;
4680let opNewValue = 0;
4681let isFP = 1;
4682let Uses = [USR];
4683let Constraints = "$Rx32 = $Rx32in";
4684}
4685def F2_sffma_lib : HInst<
4686(outs IntRegs:$Rx32),
4687(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4688"$Rx32 += sfmpy($Rs32,$Rt32):lib",
4689tc_9e72dc89, TypeM>, Enc_2ae154 {
4690let Inst{7-5} = 0b110;
4691let Inst{13-13} = 0b0;
4692let Inst{31-21} = 0b11101111000;
4693let hasNewValue = 1;
4694let opNewValue = 0;
4695let isFP = 1;
4696let Uses = [USR];
4697let Constraints = "$Rx32 = $Rx32in";
4698}
4699def F2_sffma_sc : HInst<
4700(outs IntRegs:$Rx32),
4701(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4),
4702"$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale",
4703tc_9edb7c77, TypeM>, Enc_437f33 {
4704let Inst{7-7} = 0b1;
4705let Inst{13-13} = 0b0;
4706let Inst{31-21} = 0b11101111011;
4707let hasNewValue = 1;
4708let opNewValue = 0;
4709let isFP = 1;
4710let Uses = [USR];
4711let Constraints = "$Rx32 = $Rx32in";
4712}
4713def F2_sffms : HInst<
4714(outs IntRegs:$Rx32),
4715(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4716"$Rx32 -= sfmpy($Rs32,$Rt32)",
4717tc_9e72dc89, TypeM>, Enc_2ae154 {
4718let Inst{7-5} = 0b101;
4719let Inst{13-13} = 0b0;
4720let Inst{31-21} = 0b11101111000;
4721let hasNewValue = 1;
4722let opNewValue = 0;
4723let isFP = 1;
4724let Uses = [USR];
4725let Constraints = "$Rx32 = $Rx32in";
4726}
4727def F2_sffms_lib : HInst<
4728(outs IntRegs:$Rx32),
4729(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4730"$Rx32 -= sfmpy($Rs32,$Rt32):lib",
4731tc_9e72dc89, TypeM>, Enc_2ae154 {
4732let Inst{7-5} = 0b111;
4733let Inst{13-13} = 0b0;
4734let Inst{31-21} = 0b11101111000;
4735let hasNewValue = 1;
4736let opNewValue = 0;
4737let isFP = 1;
4738let Uses = [USR];
4739let Constraints = "$Rx32 = $Rx32in";
4740}
4741def F2_sfimm_n : HInst<
4742(outs IntRegs:$Rd32),
4743(ins u10_0Imm:$Ii),
4744"$Rd32 = sfmake(#$Ii):neg",
4745tc_65279839, TypeALU64>, Enc_6c9440 {
4746let Inst{20-16} = 0b00000;
4747let Inst{31-22} = 0b1101011001;
4748let hasNewValue = 1;
4749let opNewValue = 0;
4750let prefersSlot3 = 1;
4751}
4752def F2_sfimm_p : HInst<
4753(outs IntRegs:$Rd32),
4754(ins u10_0Imm:$Ii),
4755"$Rd32 = sfmake(#$Ii):pos",
4756tc_65279839, TypeALU64>, Enc_6c9440 {
4757let Inst{20-16} = 0b00000;
4758let Inst{31-22} = 0b1101011000;
4759let hasNewValue = 1;
4760let opNewValue = 0;
4761let prefersSlot3 = 1;
4762}
4763def F2_sfinvsqrta : HInst<
4764(outs IntRegs:$Rd32, PredRegs:$Pe4),
4765(ins IntRegs:$Rs32),
4766"$Rd32,$Pe4 = sfinvsqrta($Rs32)",
4767tc_7f7f45f5, TypeS_2op>, Enc_890909 {
4768let Inst{13-7} = 0b0000000;
4769let Inst{31-21} = 0b10001011111;
4770let hasNewValue = 1;
4771let opNewValue = 0;
4772let isFP = 1;
4773let isPredicateLate = 1;
4774}
4775def F2_sfmax : HInst<
4776(outs IntRegs:$Rd32),
4777(ins IntRegs:$Rs32, IntRegs:$Rt32),
4778"$Rd32 = sfmax($Rs32,$Rt32)",
4779tc_c20701f0, TypeM>, Enc_5ab2be {
4780let Inst{7-5} = 0b000;
4781let Inst{13-13} = 0b0;
4782let Inst{31-21} = 0b11101011100;
4783let hasNewValue = 1;
4784let opNewValue = 0;
4785let isFP = 1;
4786let prefersSlot3 = 1;
4787let Uses = [USR];
4788}
4789def F2_sfmin : HInst<
4790(outs IntRegs:$Rd32),
4791(ins IntRegs:$Rs32, IntRegs:$Rt32),
4792"$Rd32 = sfmin($Rs32,$Rt32)",
4793tc_c20701f0, TypeM>, Enc_5ab2be {
4794let Inst{7-5} = 0b001;
4795let Inst{13-13} = 0b0;
4796let Inst{31-21} = 0b11101011100;
4797let hasNewValue = 1;
4798let opNewValue = 0;
4799let isFP = 1;
4800let prefersSlot3 = 1;
4801let Uses = [USR];
4802}
4803def F2_sfmpy : HInst<
4804(outs IntRegs:$Rd32),
4805(ins IntRegs:$Rs32, IntRegs:$Rt32),
4806"$Rd32 = sfmpy($Rs32,$Rt32)",
4807tc_02fe1c65, TypeM>, Enc_5ab2be {
4808let Inst{7-5} = 0b000;
4809let Inst{13-13} = 0b0;
4810let Inst{31-21} = 0b11101011010;
4811let hasNewValue = 1;
4812let opNewValue = 0;
4813let isFP = 1;
4814let Uses = [USR];
4815let isCommutable = 1;
4816}
4817def F2_sfrecipa : HInst<
4818(outs IntRegs:$Rd32, PredRegs:$Pe4),
4819(ins IntRegs:$Rs32, IntRegs:$Rt32),
4820"$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)",
4821tc_f7569068, TypeM>, Enc_a94f3b {
4822let Inst{7-7} = 0b1;
4823let Inst{13-13} = 0b0;
4824let Inst{31-21} = 0b11101011111;
4825let hasNewValue = 1;
4826let opNewValue = 0;
4827let isFP = 1;
4828let isPredicateLate = 1;
4829}
4830def F2_sfsub : HInst<
4831(outs IntRegs:$Rd32),
4832(ins IntRegs:$Rs32, IntRegs:$Rt32),
4833"$Rd32 = sfsub($Rs32,$Rt32)",
4834tc_02fe1c65, TypeM>, Enc_5ab2be {
4835let Inst{7-5} = 0b001;
4836let Inst{13-13} = 0b0;
4837let Inst{31-21} = 0b11101011000;
4838let hasNewValue = 1;
4839let opNewValue = 0;
4840let isFP = 1;
4841let Uses = [USR];
4842}
4843def G4_tfrgcpp : HInst<
4844(outs DoubleRegs:$Rdd32),
4845(ins GuestRegs64:$Gss32),
4846"$Rdd32 = $Gss32",
4847tc_fae9dfa5, TypeCR>, Enc_0aa344 {
4848let Inst{13-5} = 0b000000000;
4849let Inst{31-21} = 0b01101000001;
4850}
4851def G4_tfrgcrr : HInst<
4852(outs IntRegs:$Rd32),
4853(ins GuestRegs:$Gs32),
4854"$Rd32 = $Gs32",
4855tc_fae9dfa5, TypeCR>, Enc_44271f {
4856let Inst{13-5} = 0b000000000;
4857let Inst{31-21} = 0b01101010001;
4858let hasNewValue = 1;
4859let opNewValue = 0;
4860}
4861def G4_tfrgpcp : HInst<
4862(outs GuestRegs64:$Gdd32),
4863(ins DoubleRegs:$Rss32),
4864"$Gdd32 = $Rss32",
4865tc_6ae3426b, TypeCR>, Enc_ed5027 {
4866let Inst{13-5} = 0b000000000;
4867let Inst{31-21} = 0b01100011000;
4868let hasNewValue = 1;
4869let opNewValue = 0;
4870}
4871def G4_tfrgrcr : HInst<
4872(outs GuestRegs:$Gd32),
4873(ins IntRegs:$Rs32),
4874"$Gd32 = $Rs32",
4875tc_6ae3426b, TypeCR>, Enc_621fba {
4876let Inst{13-5} = 0b000000000;
4877let Inst{31-21} = 0b01100010000;
4878let hasNewValue = 1;
4879let opNewValue = 0;
4880}
4881def J2_call : HInst<
4882(outs),
4883(ins a30_2Imm:$Ii),
4884"call $Ii",
4885tc_44fffc58, TypeJ>, Enc_81ac1d, PredRel {
4886let Inst{0-0} = 0b0;
4887let Inst{31-25} = 0b0101101;
4888let isCall = 1;
4889let prefersSlot3 = 1;
4890let cofRelax2 = 1;
4891let cofMax1 = 1;
4892let Uses = [R29];
4893let Defs = [PC, R31];
4894let BaseOpcode = "J2_call";
4895let hasSideEffects = 1;
4896let isPredicable = 1;
4897let isExtendable = 1;
4898let opExtendable = 0;
4899let isExtentSigned = 1;
4900let opExtentBits = 24;
4901let opExtentAlign = 2;
4902}
4903def J2_callf : HInst<
4904(outs),
4905(ins PredRegs:$Pu4, a30_2Imm:$Ii),
4906"if (!$Pu4) call $Ii",
4907tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4908let Inst{0-0} = 0b0;
4909let Inst{12-10} = 0b000;
4910let Inst{21-21} = 0b1;
4911let Inst{31-24} = 0b01011101;
4912let isPredicated = 1;
4913let isPredicatedFalse = 1;
4914let isCall = 1;
4915let prefersSlot3 = 1;
4916let cofRelax1 = 1;
4917let cofRelax2 = 1;
4918let cofMax1 = 1;
4919let Uses = [R29];
4920let Defs = [PC, R31];
4921let BaseOpcode = "J2_call";
4922let hasSideEffects = 1;
4923let isTaken = Inst{12};
4924let isExtendable = 1;
4925let opExtendable = 1;
4926let isExtentSigned = 1;
4927let opExtentBits = 17;
4928let opExtentAlign = 2;
4929}
4930def J2_callr : HInst<
4931(outs),
4932(ins IntRegs:$Rs32),
4933"callr $Rs32",
4934tc_362b0be2, TypeJ>, Enc_ecbcc8 {
4935let Inst{13-0} = 0b00000000000000;
4936let Inst{31-21} = 0b01010000101;
4937let isCall = 1;
4938let prefersSlot3 = 1;
4939let cofMax1 = 1;
4940let Uses = [R29];
4941let Defs = [PC, R31];
4942let hasSideEffects = 1;
4943}
4944def J2_callrf : HInst<
4945(outs),
4946(ins PredRegs:$Pu4, IntRegs:$Rs32),
4947"if (!$Pu4) callr $Rs32",
4948tc_dc51281d, TypeJ>, Enc_88d4d9 {
4949let Inst{7-0} = 0b00000000;
4950let Inst{13-10} = 0b0000;
4951let Inst{31-21} = 0b01010001001;
4952let isPredicated = 1;
4953let isPredicatedFalse = 1;
4954let isCall = 1;
4955let prefersSlot3 = 1;
4956let cofMax1 = 1;
4957let Uses = [R29];
4958let Defs = [PC, R31];
4959let hasSideEffects = 1;
4960let isTaken = Inst{12};
4961}
4962def J2_callrh : HInst<
4963(outs),
4964(ins IntRegs:$Rs32),
4965"callrh $Rs32",
4966tc_95f43c5e, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> {
4967let Inst{13-0} = 0b00000000000000;
4968let Inst{31-21} = 0b01010000110;
4969let isCall = 1;
4970let prefersSlot3 = 1;
4971let cofMax1 = 1;
4972let Defs = [PC, R31];
4973}
4974def J2_callrt : HInst<
4975(outs),
4976(ins PredRegs:$Pu4, IntRegs:$Rs32),
4977"if ($Pu4) callr $Rs32",
4978tc_dc51281d, TypeJ>, Enc_88d4d9 {
4979let Inst{7-0} = 0b00000000;
4980let Inst{13-10} = 0b0000;
4981let Inst{31-21} = 0b01010001000;
4982let isPredicated = 1;
4983let isCall = 1;
4984let prefersSlot3 = 1;
4985let cofMax1 = 1;
4986let Uses = [R29];
4987let Defs = [PC, R31];
4988let hasSideEffects = 1;
4989let isTaken = Inst{12};
4990}
4991def J2_callt : HInst<
4992(outs),
4993(ins PredRegs:$Pu4, a30_2Imm:$Ii),
4994"if ($Pu4) call $Ii",
4995tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4996let Inst{0-0} = 0b0;
4997let Inst{12-10} = 0b000;
4998let Inst{21-21} = 0b0;
4999let Inst{31-24} = 0b01011101;
5000let isPredicated = 1;
5001let isCall = 1;
5002let prefersSlot3 = 1;
5003let cofRelax1 = 1;
5004let cofRelax2 = 1;
5005let cofMax1 = 1;
5006let Uses = [R29];
5007let Defs = [PC, R31];
5008let BaseOpcode = "J2_call";
5009let hasSideEffects = 1;
5010let isTaken = Inst{12};
5011let isExtendable = 1;
5012let opExtendable = 1;
5013let isExtentSigned = 1;
5014let opExtentBits = 17;
5015let opExtentAlign = 2;
5016}
5017def J2_endloop0 : HInst<
5018(outs),
5019(ins),
5020"endloop0",
5021tc_23708a21, TypeJ> {
5022let Uses = [LC0, SA0];
5023let Defs = [LC0, P3, PC, USR];
5024let isBranch = 1;
5025let isTerminator = 1;
5026let isPseudo = 1;
5027}
5028def J2_endloop01 : HInst<
5029(outs),
5030(ins),
5031"endloop01",
5032tc_23708a21, TypeJ> {
5033let Uses = [LC0, LC1, SA0, SA1];
5034let Defs = [LC0, LC1, P3, PC, USR];
5035let isPseudo = 1;
5036}
5037def J2_endloop1 : HInst<
5038(outs),
5039(ins),
5040"endloop1",
5041tc_23708a21, TypeJ> {
5042let Uses = [LC1, SA1];
5043let Defs = [LC1, PC];
5044let isBranch = 1;
5045let isTerminator = 1;
5046let isPseudo = 1;
5047}
5048def J2_jump : HInst<
5049(outs),
5050(ins b30_2Imm:$Ii),
5051"jump $Ii",
5052tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel {
5053let Inst{0-0} = 0b0;
5054let Inst{31-25} = 0b0101100;
5055let isTerminator = 1;
5056let isBranch = 1;
5057let cofRelax2 = 1;
5058let cofMax1 = 1;
5059let Defs = [PC];
5060let BaseOpcode = "J2_jump";
5061let InputType = "imm";
5062let isBarrier = 1;
5063let isPredicable = 1;
5064let isExtendable = 1;
5065let opExtendable = 0;
5066let isExtentSigned = 1;
5067let opExtentBits = 24;
5068let opExtentAlign = 2;
5069}
5070def J2_jumpf : HInst<
5071(outs),
5072(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5073"if (!$Pu4) jump:nt $Ii",
5074tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5075let Inst{0-0} = 0b0;
5076let Inst{12-10} = 0b000;
5077let Inst{21-21} = 0b1;
5078let Inst{31-24} = 0b01011100;
5079let isPredicated = 1;
5080let isPredicatedFalse = 1;
5081let isTerminator = 1;
5082let isBranch = 1;
5083let cofRelax1 = 1;
5084let cofRelax2 = 1;
5085let cofMax1 = 1;
5086let Defs = [PC];
5087let BaseOpcode = "J2_jump";
5088let InputType = "imm";
5089let isTaken = Inst{12};
5090let isExtendable = 1;
5091let opExtendable = 1;
5092let isExtentSigned = 1;
5093let opExtentBits = 17;
5094let opExtentAlign = 2;
5095}
5096def J2_jumpf_nopred_map : HInst<
5097(outs),
5098(ins PredRegs:$Pu4, b15_2Imm:$Ii),
5099"if (!$Pu4) jump $Ii",
5100tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5101let isPseudo = 1;
5102let isCodeGenOnly = 1;
5103}
5104def J2_jumpfnew : HInst<
5105(outs),
5106(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5107"if (!$Pu4.new) jump:nt $Ii",
5108tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5109let Inst{0-0} = 0b0;
5110let Inst{12-10} = 0b010;
5111let Inst{21-21} = 0b1;
5112let Inst{31-24} = 0b01011100;
5113let isPredicated = 1;
5114let isPredicatedFalse = 1;
5115let isTerminator = 1;
5116let isBranch = 1;
5117let isPredicatedNew = 1;
5118let cofRelax1 = 1;
5119let cofRelax2 = 1;
5120let cofMax1 = 1;
5121let Defs = [PC];
5122let BaseOpcode = "J2_jump";
5123let InputType = "imm";
5124let isTaken = Inst{12};
5125let isExtendable = 1;
5126let opExtendable = 1;
5127let isExtentSigned = 1;
5128let opExtentBits = 17;
5129let opExtentAlign = 2;
5130}
5131def J2_jumpfnewpt : HInst<
5132(outs),
5133(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5134"if (!$Pu4.new) jump:t $Ii",
5135tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5136let Inst{0-0} = 0b0;
5137let Inst{12-10} = 0b110;
5138let Inst{21-21} = 0b1;
5139let Inst{31-24} = 0b01011100;
5140let isPredicated = 1;
5141let isPredicatedFalse = 1;
5142let isTerminator = 1;
5143let isBranch = 1;
5144let isPredicatedNew = 1;
5145let cofRelax1 = 1;
5146let cofRelax2 = 1;
5147let cofMax1 = 1;
5148let Defs = [PC];
5149let BaseOpcode = "J2_jump";
5150let InputType = "imm";
5151let isTaken = Inst{12};
5152let isExtendable = 1;
5153let opExtendable = 1;
5154let isExtentSigned = 1;
5155let opExtentBits = 17;
5156let opExtentAlign = 2;
5157}
5158def J2_jumpfpt : HInst<
5159(outs),
5160(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5161"if (!$Pu4) jump:t $Ii",
5162tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5163let Inst{0-0} = 0b0;
5164let Inst{12-10} = 0b100;
5165let Inst{21-21} = 0b1;
5166let Inst{31-24} = 0b01011100;
5167let isPredicated = 1;
5168let isPredicatedFalse = 1;
5169let isTerminator = 1;
5170let isBranch = 1;
5171let cofRelax1 = 1;
5172let cofRelax2 = 1;
5173let cofMax1 = 1;
5174let Defs = [PC];
5175let BaseOpcode = "J2_jump";
5176let InputType = "imm";
5177let isTaken = Inst{12};
5178let isExtendable = 1;
5179let opExtendable = 1;
5180let isExtentSigned = 1;
5181let opExtentBits = 17;
5182let opExtentAlign = 2;
5183}
5184def J2_jumpr : HInst<
5185(outs),
5186(ins IntRegs:$Rs32),
5187"jumpr $Rs32",
5188tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel {
5189let Inst{13-0} = 0b00000000000000;
5190let Inst{31-21} = 0b01010010100;
5191let isTerminator = 1;
5192let isIndirectBranch = 1;
5193let isBranch = 1;
5194let cofMax1 = 1;
5195let Defs = [PC];
5196let BaseOpcode = "J2_jumpr";
5197let InputType = "reg";
5198let isBarrier = 1;
5199let isPredicable = 1;
5200}
5201def J2_jumprf : HInst<
5202(outs),
5203(ins PredRegs:$Pu4, IntRegs:$Rs32),
5204"if (!$Pu4) jumpr:nt $Rs32",
5205tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5206let Inst{7-0} = 0b00000000;
5207let Inst{13-10} = 0b0000;
5208let Inst{31-21} = 0b01010011011;
5209let isPredicated = 1;
5210let isPredicatedFalse = 1;
5211let isTerminator = 1;
5212let isIndirectBranch = 1;
5213let isBranch = 1;
5214let cofMax1 = 1;
5215let Defs = [PC];
5216let BaseOpcode = "J2_jumpr";
5217let InputType = "reg";
5218let isTaken = Inst{12};
5219}
5220def J2_jumprf_nopred_map : HInst<
5221(outs),
5222(ins PredRegs:$Pu4, IntRegs:$Rs32),
5223"if (!$Pu4) jumpr $Rs32",
5224tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5225let isPseudo = 1;
5226let isCodeGenOnly = 1;
5227}
5228def J2_jumprfnew : HInst<
5229(outs),
5230(ins PredRegs:$Pu4, IntRegs:$Rs32),
5231"if (!$Pu4.new) jumpr:nt $Rs32",
5232tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5233let Inst{7-0} = 0b00000000;
5234let Inst{13-10} = 0b0010;
5235let Inst{31-21} = 0b01010011011;
5236let isPredicated = 1;
5237let isPredicatedFalse = 1;
5238let isTerminator = 1;
5239let isIndirectBranch = 1;
5240let isBranch = 1;
5241let isPredicatedNew = 1;
5242let cofMax1 = 1;
5243let Defs = [PC];
5244let BaseOpcode = "J2_jumpr";
5245let InputType = "reg";
5246let isTaken = Inst{12};
5247}
5248def J2_jumprfnewpt : HInst<
5249(outs),
5250(ins PredRegs:$Pu4, IntRegs:$Rs32),
5251"if (!$Pu4.new) jumpr:t $Rs32",
5252tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5253let Inst{7-0} = 0b00000000;
5254let Inst{13-10} = 0b0110;
5255let Inst{31-21} = 0b01010011011;
5256let isPredicated = 1;
5257let isPredicatedFalse = 1;
5258let isTerminator = 1;
5259let isIndirectBranch = 1;
5260let isBranch = 1;
5261let isPredicatedNew = 1;
5262let cofMax1 = 1;
5263let Defs = [PC];
5264let BaseOpcode = "J2_jumpr";
5265let InputType = "reg";
5266let isTaken = Inst{12};
5267}
5268def J2_jumprfpt : HInst<
5269(outs),
5270(ins PredRegs:$Pu4, IntRegs:$Rs32),
5271"if (!$Pu4) jumpr:t $Rs32",
5272tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5273let Inst{7-0} = 0b00000000;
5274let Inst{13-10} = 0b0100;
5275let Inst{31-21} = 0b01010011011;
5276let isPredicated = 1;
5277let isPredicatedFalse = 1;
5278let isTerminator = 1;
5279let isIndirectBranch = 1;
5280let isBranch = 1;
5281let cofMax1 = 1;
5282let Defs = [PC];
5283let BaseOpcode = "J2_jumpr";
5284let InputType = "reg";
5285let isTaken = Inst{12};
5286}
5287def J2_jumprgtez : HInst<
5288(outs),
5289(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5290"if ($Rs32>=#0) jump:nt $Ii",
5291tc_57a55b54, TypeCR>, Enc_0fa531 {
5292let Inst{0-0} = 0b0;
5293let Inst{12-12} = 0b0;
5294let Inst{31-22} = 0b0110000101;
5295let isPredicated = 1;
5296let isTerminator = 1;
5297let isBranch = 1;
5298let isPredicatedNew = 1;
5299let cofRelax1 = 1;
5300let cofRelax2 = 1;
5301let cofMax1 = 1;
5302let Defs = [PC];
5303let isTaken = Inst{12};
5304}
5305def J2_jumprgtezpt : HInst<
5306(outs),
5307(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5308"if ($Rs32>=#0) jump:t $Ii",
5309tc_57a55b54, TypeCR>, Enc_0fa531 {
5310let Inst{0-0} = 0b0;
5311let Inst{12-12} = 0b1;
5312let Inst{31-22} = 0b0110000101;
5313let isPredicated = 1;
5314let isTerminator = 1;
5315let isBranch = 1;
5316let isPredicatedNew = 1;
5317let cofRelax1 = 1;
5318let cofRelax2 = 1;
5319let cofMax1 = 1;
5320let Defs = [PC];
5321let isTaken = Inst{12};
5322}
5323def J2_jumprh : HInst<
5324(outs),
5325(ins IntRegs:$Rs32),
5326"jumprh $Rs32",
5327tc_f97707c1, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> {
5328let Inst{13-0} = 0b00000000000000;
5329let Inst{31-21} = 0b01010010110;
5330let isTerminator = 1;
5331let isIndirectBranch = 1;
5332let isBranch = 1;
5333let cofMax1 = 1;
5334let Defs = [PC];
5335}
5336def J2_jumprltez : HInst<
5337(outs),
5338(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5339"if ($Rs32<=#0) jump:nt $Ii",
5340tc_57a55b54, TypeCR>, Enc_0fa531 {
5341let Inst{0-0} = 0b0;
5342let Inst{12-12} = 0b0;
5343let Inst{31-22} = 0b0110000111;
5344let isPredicated = 1;
5345let isTerminator = 1;
5346let isBranch = 1;
5347let isPredicatedNew = 1;
5348let cofRelax1 = 1;
5349let cofRelax2 = 1;
5350let cofMax1 = 1;
5351let Defs = [PC];
5352let isTaken = Inst{12};
5353}
5354def J2_jumprltezpt : HInst<
5355(outs),
5356(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5357"if ($Rs32<=#0) jump:t $Ii",
5358tc_57a55b54, TypeCR>, Enc_0fa531 {
5359let Inst{0-0} = 0b0;
5360let Inst{12-12} = 0b1;
5361let Inst{31-22} = 0b0110000111;
5362let isPredicated = 1;
5363let isTerminator = 1;
5364let isBranch = 1;
5365let isPredicatedNew = 1;
5366let cofRelax1 = 1;
5367let cofRelax2 = 1;
5368let cofMax1 = 1;
5369let Defs = [PC];
5370let isTaken = Inst{12};
5371}
5372def J2_jumprnz : HInst<
5373(outs),
5374(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5375"if ($Rs32==#0) jump:nt $Ii",
5376tc_57a55b54, TypeCR>, Enc_0fa531 {
5377let Inst{0-0} = 0b0;
5378let Inst{12-12} = 0b0;
5379let Inst{31-22} = 0b0110000110;
5380let isPredicated = 1;
5381let isTerminator = 1;
5382let isBranch = 1;
5383let isPredicatedNew = 1;
5384let cofRelax1 = 1;
5385let cofRelax2 = 1;
5386let cofMax1 = 1;
5387let Defs = [PC];
5388let isTaken = Inst{12};
5389}
5390def J2_jumprnzpt : HInst<
5391(outs),
5392(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5393"if ($Rs32==#0) jump:t $Ii",
5394tc_57a55b54, TypeCR>, Enc_0fa531 {
5395let Inst{0-0} = 0b0;
5396let Inst{12-12} = 0b1;
5397let Inst{31-22} = 0b0110000110;
5398let isPredicated = 1;
5399let isTerminator = 1;
5400let isBranch = 1;
5401let isPredicatedNew = 1;
5402let cofRelax1 = 1;
5403let cofRelax2 = 1;
5404let cofMax1 = 1;
5405let Defs = [PC];
5406let isTaken = Inst{12};
5407}
5408def J2_jumprt : HInst<
5409(outs),
5410(ins PredRegs:$Pu4, IntRegs:$Rs32),
5411"if ($Pu4) jumpr:nt $Rs32",
5412tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5413let Inst{7-0} = 0b00000000;
5414let Inst{13-10} = 0b0000;
5415let Inst{31-21} = 0b01010011010;
5416let isPredicated = 1;
5417let isTerminator = 1;
5418let isIndirectBranch = 1;
5419let isBranch = 1;
5420let cofMax1 = 1;
5421let Defs = [PC];
5422let BaseOpcode = "J2_jumpr";
5423let InputType = "reg";
5424let isTaken = Inst{12};
5425}
5426def J2_jumprt_nopred_map : HInst<
5427(outs),
5428(ins PredRegs:$Pu4, IntRegs:$Rs32),
5429"if ($Pu4) jumpr $Rs32",
5430tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5431let isPseudo = 1;
5432let isCodeGenOnly = 1;
5433}
5434def J2_jumprtnew : HInst<
5435(outs),
5436(ins PredRegs:$Pu4, IntRegs:$Rs32),
5437"if ($Pu4.new) jumpr:nt $Rs32",
5438tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5439let Inst{7-0} = 0b00000000;
5440let Inst{13-10} = 0b0010;
5441let Inst{31-21} = 0b01010011010;
5442let isPredicated = 1;
5443let isTerminator = 1;
5444let isIndirectBranch = 1;
5445let isBranch = 1;
5446let isPredicatedNew = 1;
5447let cofMax1 = 1;
5448let Defs = [PC];
5449let BaseOpcode = "J2_jumpr";
5450let InputType = "reg";
5451let isTaken = Inst{12};
5452}
5453def J2_jumprtnewpt : HInst<
5454(outs),
5455(ins PredRegs:$Pu4, IntRegs:$Rs32),
5456"if ($Pu4.new) jumpr:t $Rs32",
5457tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5458let Inst{7-0} = 0b00000000;
5459let Inst{13-10} = 0b0110;
5460let Inst{31-21} = 0b01010011010;
5461let isPredicated = 1;
5462let isTerminator = 1;
5463let isIndirectBranch = 1;
5464let isBranch = 1;
5465let isPredicatedNew = 1;
5466let cofMax1 = 1;
5467let Defs = [PC];
5468let BaseOpcode = "J2_jumpr";
5469let InputType = "reg";
5470let isTaken = Inst{12};
5471}
5472def J2_jumprtpt : HInst<
5473(outs),
5474(ins PredRegs:$Pu4, IntRegs:$Rs32),
5475"if ($Pu4) jumpr:t $Rs32",
5476tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5477let Inst{7-0} = 0b00000000;
5478let Inst{13-10} = 0b0100;
5479let Inst{31-21} = 0b01010011010;
5480let isPredicated = 1;
5481let isTerminator = 1;
5482let isIndirectBranch = 1;
5483let isBranch = 1;
5484let cofMax1 = 1;
5485let Defs = [PC];
5486let BaseOpcode = "J2_jumpr";
5487let InputType = "reg";
5488let isTaken = Inst{12};
5489}
5490def J2_jumprz : HInst<
5491(outs),
5492(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5493"if ($Rs32!=#0) jump:nt $Ii",
5494tc_57a55b54, TypeCR>, Enc_0fa531 {
5495let Inst{0-0} = 0b0;
5496let Inst{12-12} = 0b0;
5497let Inst{31-22} = 0b0110000100;
5498let isPredicated = 1;
5499let isTerminator = 1;
5500let isBranch = 1;
5501let isPredicatedNew = 1;
5502let cofRelax1 = 1;
5503let cofRelax2 = 1;
5504let cofMax1 = 1;
5505let Defs = [PC];
5506let isTaken = Inst{12};
5507}
5508def J2_jumprzpt : HInst<
5509(outs),
5510(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5511"if ($Rs32!=#0) jump:t $Ii",
5512tc_57a55b54, TypeCR>, Enc_0fa531 {
5513let Inst{0-0} = 0b0;
5514let Inst{12-12} = 0b1;
5515let Inst{31-22} = 0b0110000100;
5516let isPredicated = 1;
5517let isTerminator = 1;
5518let isBranch = 1;
5519let isPredicatedNew = 1;
5520let cofRelax1 = 1;
5521let cofRelax2 = 1;
5522let cofMax1 = 1;
5523let Defs = [PC];
5524let isTaken = Inst{12};
5525}
5526def J2_jumpt : HInst<
5527(outs),
5528(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5529"if ($Pu4) jump:nt $Ii",
5530tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5531let Inst{0-0} = 0b0;
5532let Inst{12-10} = 0b000;
5533let Inst{21-21} = 0b0;
5534let Inst{31-24} = 0b01011100;
5535let isPredicated = 1;
5536let isTerminator = 1;
5537let isBranch = 1;
5538let cofRelax1 = 1;
5539let cofRelax2 = 1;
5540let cofMax1 = 1;
5541let Defs = [PC];
5542let BaseOpcode = "J2_jump";
5543let InputType = "imm";
5544let isTaken = Inst{12};
5545let isExtendable = 1;
5546let opExtendable = 1;
5547let isExtentSigned = 1;
5548let opExtentBits = 17;
5549let opExtentAlign = 2;
5550}
5551def J2_jumpt_nopred_map : HInst<
5552(outs),
5553(ins PredRegs:$Pu4, b15_2Imm:$Ii),
5554"if ($Pu4) jump $Ii",
5555tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5556let isPseudo = 1;
5557let isCodeGenOnly = 1;
5558}
5559def J2_jumptnew : HInst<
5560(outs),
5561(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5562"if ($Pu4.new) jump:nt $Ii",
5563tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5564let Inst{0-0} = 0b0;
5565let Inst{12-10} = 0b010;
5566let Inst{21-21} = 0b0;
5567let Inst{31-24} = 0b01011100;
5568let isPredicated = 1;
5569let isTerminator = 1;
5570let isBranch = 1;
5571let isPredicatedNew = 1;
5572let cofRelax1 = 1;
5573let cofRelax2 = 1;
5574let cofMax1 = 1;
5575let Defs = [PC];
5576let BaseOpcode = "J2_jump";
5577let InputType = "imm";
5578let isTaken = Inst{12};
5579let isExtendable = 1;
5580let opExtendable = 1;
5581let isExtentSigned = 1;
5582let opExtentBits = 17;
5583let opExtentAlign = 2;
5584}
5585def J2_jumptnewpt : HInst<
5586(outs),
5587(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5588"if ($Pu4.new) jump:t $Ii",
5589tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5590let Inst{0-0} = 0b0;
5591let Inst{12-10} = 0b110;
5592let Inst{21-21} = 0b0;
5593let Inst{31-24} = 0b01011100;
5594let isPredicated = 1;
5595let isTerminator = 1;
5596let isBranch = 1;
5597let isPredicatedNew = 1;
5598let cofRelax1 = 1;
5599let cofRelax2 = 1;
5600let cofMax1 = 1;
5601let Defs = [PC];
5602let BaseOpcode = "J2_jump";
5603let InputType = "imm";
5604let isTaken = Inst{12};
5605let isExtendable = 1;
5606let opExtendable = 1;
5607let isExtentSigned = 1;
5608let opExtentBits = 17;
5609let opExtentAlign = 2;
5610}
5611def J2_jumptpt : HInst<
5612(outs),
5613(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5614"if ($Pu4) jump:t $Ii",
5615tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5616let Inst{0-0} = 0b0;
5617let Inst{12-10} = 0b100;
5618let Inst{21-21} = 0b0;
5619let Inst{31-24} = 0b01011100;
5620let isPredicated = 1;
5621let isTerminator = 1;
5622let isBranch = 1;
5623let cofRelax1 = 1;
5624let cofRelax2 = 1;
5625let cofMax1 = 1;
5626let Defs = [PC];
5627let BaseOpcode = "J2_jump";
5628let InputType = "imm";
5629let isTaken = Inst{12};
5630let isExtendable = 1;
5631let opExtendable = 1;
5632let isExtentSigned = 1;
5633let opExtentBits = 17;
5634let opExtentAlign = 2;
5635}
5636def J2_loop0i : HInst<
5637(outs),
5638(ins b30_2Imm:$Ii, u10_0Imm:$II),
5639"loop0($Ii,#$II)",
5640tc_1248597c, TypeCR>, Enc_4dc228 {
5641let Inst{2-2} = 0b0;
5642let Inst{13-13} = 0b0;
5643let Inst{31-21} = 0b01101001000;
5644let cofRelax1 = 1;
5645let cofRelax2 = 1;
5646let Defs = [LC0, SA0, USR];
5647let isExtendable = 1;
5648let opExtendable = 0;
5649let isExtentSigned = 1;
5650let opExtentBits = 9;
5651let opExtentAlign = 2;
5652}
5653def J2_loop0r : HInst<
5654(outs),
5655(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5656"loop0($Ii,$Rs32)",
5657tc_9406230a, TypeCR>, Enc_864a5a {
5658let Inst{2-0} = 0b000;
5659let Inst{7-5} = 0b000;
5660let Inst{13-13} = 0b0;
5661let Inst{31-21} = 0b01100000000;
5662let cofRelax1 = 1;
5663let cofRelax2 = 1;
5664let Defs = [LC0, SA0, USR];
5665let isExtendable = 1;
5666let opExtendable = 0;
5667let isExtentSigned = 1;
5668let opExtentBits = 9;
5669let opExtentAlign = 2;
5670}
5671def J2_loop1i : HInst<
5672(outs),
5673(ins b30_2Imm:$Ii, u10_0Imm:$II),
5674"loop1($Ii,#$II)",
5675tc_1248597c, TypeCR>, Enc_4dc228 {
5676let Inst{2-2} = 0b0;
5677let Inst{13-13} = 0b0;
5678let Inst{31-21} = 0b01101001001;
5679let cofRelax1 = 1;
5680let cofRelax2 = 1;
5681let Defs = [LC1, SA1];
5682let isExtendable = 1;
5683let opExtendable = 0;
5684let isExtentSigned = 1;
5685let opExtentBits = 9;
5686let opExtentAlign = 2;
5687}
5688def J2_loop1r : HInst<
5689(outs),
5690(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5691"loop1($Ii,$Rs32)",
5692tc_9406230a, TypeCR>, Enc_864a5a {
5693let Inst{2-0} = 0b000;
5694let Inst{7-5} = 0b000;
5695let Inst{13-13} = 0b0;
5696let Inst{31-21} = 0b01100000001;
5697let cofRelax1 = 1;
5698let cofRelax2 = 1;
5699let Defs = [LC1, SA1];
5700let isExtendable = 1;
5701let opExtendable = 0;
5702let isExtentSigned = 1;
5703let opExtentBits = 9;
5704let opExtentAlign = 2;
5705}
5706def J2_pause : HInst<
5707(outs),
5708(ins u10_0Imm:$Ii),
5709"pause(#$Ii)",
5710tc_d57d649c, TypeJ>, Enc_bea5da {
5711let Inst{1-0} = 0b00;
5712let Inst{7-5} = 0b000;
5713let Inst{13-13} = 0b0;
5714let Inst{31-18} = 0b01010100010000;
5715let isSolo = 1;
5716}
5717def J2_ploop1si : HInst<
5718(outs),
5719(ins b30_2Imm:$Ii, u10_0Imm:$II),
5720"p3 = sp1loop0($Ii,#$II)",
5721tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5722let Inst{2-2} = 0b0;
5723let Inst{13-13} = 0b0;
5724let Inst{31-21} = 0b01101001101;
5725let isPredicateLate = 1;
5726let cofRelax1 = 1;
5727let cofRelax2 = 1;
5728let Defs = [LC0, P3, SA0, USR];
5729let isExtendable = 1;
5730let opExtendable = 0;
5731let isExtentSigned = 1;
5732let opExtentBits = 9;
5733let opExtentAlign = 2;
5734}
5735def J2_ploop1sr : HInst<
5736(outs),
5737(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5738"p3 = sp1loop0($Ii,$Rs32)",
5739tc_6d861a95, TypeCR>, Enc_864a5a {
5740let Inst{2-0} = 0b000;
5741let Inst{7-5} = 0b000;
5742let Inst{13-13} = 0b0;
5743let Inst{31-21} = 0b01100000101;
5744let isPredicateLate = 1;
5745let cofRelax1 = 1;
5746let cofRelax2 = 1;
5747let Defs = [LC0, P3, SA0, USR];
5748let isExtendable = 1;
5749let opExtendable = 0;
5750let isExtentSigned = 1;
5751let opExtentBits = 9;
5752let opExtentAlign = 2;
5753}
5754def J2_ploop2si : HInst<
5755(outs),
5756(ins b30_2Imm:$Ii, u10_0Imm:$II),
5757"p3 = sp2loop0($Ii,#$II)",
5758tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5759let Inst{2-2} = 0b0;
5760let Inst{13-13} = 0b0;
5761let Inst{31-21} = 0b01101001110;
5762let isPredicateLate = 1;
5763let cofRelax1 = 1;
5764let cofRelax2 = 1;
5765let Defs = [LC0, P3, SA0, USR];
5766let isExtendable = 1;
5767let opExtendable = 0;
5768let isExtentSigned = 1;
5769let opExtentBits = 9;
5770let opExtentAlign = 2;
5771}
5772def J2_ploop2sr : HInst<
5773(outs),
5774(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5775"p3 = sp2loop0($Ii,$Rs32)",
5776tc_6d861a95, TypeCR>, Enc_864a5a {
5777let Inst{2-0} = 0b000;
5778let Inst{7-5} = 0b000;
5779let Inst{13-13} = 0b0;
5780let Inst{31-21} = 0b01100000110;
5781let isPredicateLate = 1;
5782let cofRelax1 = 1;
5783let cofRelax2 = 1;
5784let Defs = [LC0, P3, SA0, USR];
5785let isExtendable = 1;
5786let opExtendable = 0;
5787let isExtentSigned = 1;
5788let opExtentBits = 9;
5789let opExtentAlign = 2;
5790}
5791def J2_ploop3si : HInst<
5792(outs),
5793(ins b30_2Imm:$Ii, u10_0Imm:$II),
5794"p3 = sp3loop0($Ii,#$II)",
5795tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5796let Inst{2-2} = 0b0;
5797let Inst{13-13} = 0b0;
5798let Inst{31-21} = 0b01101001111;
5799let isPredicateLate = 1;
5800let cofRelax1 = 1;
5801let cofRelax2 = 1;
5802let Defs = [LC0, P3, SA0, USR];
5803let isExtendable = 1;
5804let opExtendable = 0;
5805let isExtentSigned = 1;
5806let opExtentBits = 9;
5807let opExtentAlign = 2;
5808}
5809def J2_ploop3sr : HInst<
5810(outs),
5811(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5812"p3 = sp3loop0($Ii,$Rs32)",
5813tc_6d861a95, TypeCR>, Enc_864a5a {
5814let Inst{2-0} = 0b000;
5815let Inst{7-5} = 0b000;
5816let Inst{13-13} = 0b0;
5817let Inst{31-21} = 0b01100000111;
5818let isPredicateLate = 1;
5819let cofRelax1 = 1;
5820let cofRelax2 = 1;
5821let Defs = [LC0, P3, SA0, USR];
5822let isExtendable = 1;
5823let opExtendable = 0;
5824let isExtentSigned = 1;
5825let opExtentBits = 9;
5826let opExtentAlign = 2;
5827}
5828def J2_trap0 : HInst<
5829(outs),
5830(ins u8_0Imm:$Ii),
5831"trap0(#$Ii)",
5832tc_45f9d1be, TypeJ>, Enc_a51a9a {
5833let Inst{1-0} = 0b00;
5834let Inst{7-5} = 0b000;
5835let Inst{13-13} = 0b0;
5836let Inst{31-16} = 0b0101010000000000;
5837let isSolo = 1;
5838let hasSideEffects = 1;
5839}
5840def J2_trap1 : HInst<
5841(outs IntRegs:$Rx32),
5842(ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5843"trap1($Rx32,#$Ii)",
5844tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> {
5845let Inst{1-0} = 0b00;
5846let Inst{7-5} = 0b000;
5847let Inst{13-13} = 0b0;
5848let Inst{31-21} = 0b01010100100;
5849let hasNewValue = 1;
5850let opNewValue = 0;
5851let isSolo = 1;
5852let Uses = [CCR, GOSP];
5853let Defs = [CCR, GOSP, PC];
5854let hasSideEffects = 1;
5855let Constraints = "$Rx32 = $Rx32in";
5856}
5857def J2_trap1_noregmap : HInst<
5858(outs),
5859(ins u8_0Imm:$Ii),
5860"trap1(#$Ii)",
5861tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> {
5862let hasSideEffects = 1;
5863let isPseudo = 1;
5864let isCodeGenOnly = 1;
5865}
5866def J2_unpause : HInst<
5867(outs),
5868(ins),
5869"unpause",
5870tc_33e7e673, TypeJ>, Enc_e3b0c4, Requires<[HasV73]> {
5871let Inst{13-0} = 0b01000000000000;
5872let Inst{31-16} = 0b0101011111100000;
5873let isSolo = 1;
5874}
5875def J4_cmpeq_f_jumpnv_nt : HInst<
5876(outs),
5877(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5878"if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5879tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5880let Inst{0-0} = 0b0;
5881let Inst{13-13} = 0b0;
5882let Inst{19-19} = 0b0;
5883let Inst{31-22} = 0b0010000001;
5884let isPredicated = 1;
5885let isPredicatedFalse = 1;
5886let isTerminator = 1;
5887let isBranch = 1;
5888let isNewValue = 1;
5889let cofMax1 = 1;
5890let isRestrictNoSlot1Store = 1;
5891let Defs = [PC];
5892let BaseOpcode = "J4_cmpeqr";
5893let isTaken = Inst{13};
5894let isExtendable = 1;
5895let opExtendable = 2;
5896let isExtentSigned = 1;
5897let opExtentBits = 11;
5898let opExtentAlign = 2;
5899let opNewValue = 0;
5900}
5901def J4_cmpeq_f_jumpnv_t : HInst<
5902(outs),
5903(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5904"if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5905tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5906let Inst{0-0} = 0b0;
5907let Inst{13-13} = 0b1;
5908let Inst{19-19} = 0b0;
5909let Inst{31-22} = 0b0010000001;
5910let isPredicated = 1;
5911let isPredicatedFalse = 1;
5912let isTerminator = 1;
5913let isBranch = 1;
5914let isNewValue = 1;
5915let cofMax1 = 1;
5916let isRestrictNoSlot1Store = 1;
5917let Defs = [PC];
5918let BaseOpcode = "J4_cmpeqr";
5919let isTaken = Inst{13};
5920let isExtendable = 1;
5921let opExtendable = 2;
5922let isExtentSigned = 1;
5923let opExtentBits = 11;
5924let opExtentAlign = 2;
5925let opNewValue = 0;
5926}
5927def J4_cmpeq_fp0_jump_nt : HInst<
5928(outs),
5929(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5930"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5931tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5932let Inst{0-0} = 0b0;
5933let Inst{13-12} = 0b00;
5934let Inst{31-22} = 0b0001010001;
5935let isPredicated = 1;
5936let isPredicatedFalse = 1;
5937let isTerminator = 1;
5938let isBranch = 1;
5939let isPredicatedNew = 1;
5940let cofRelax1 = 1;
5941let cofRelax2 = 1;
5942let cofMax1 = 1;
5943let Uses = [P0];
5944let Defs = [P0, PC];
5945let BaseOpcode = "J4_cmpeqp0";
5946let isTaken = Inst{13};
5947let isExtendable = 1;
5948let opExtendable = 2;
5949let isExtentSigned = 1;
5950let opExtentBits = 11;
5951let opExtentAlign = 2;
5952}
5953def J4_cmpeq_fp0_jump_t : HInst<
5954(outs),
5955(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5956"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5957tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5958let Inst{0-0} = 0b0;
5959let Inst{13-12} = 0b10;
5960let Inst{31-22} = 0b0001010001;
5961let isPredicated = 1;
5962let isPredicatedFalse = 1;
5963let isTerminator = 1;
5964let isBranch = 1;
5965let isPredicatedNew = 1;
5966let cofRelax1 = 1;
5967let cofRelax2 = 1;
5968let cofMax1 = 1;
5969let Uses = [P0];
5970let Defs = [P0, PC];
5971let BaseOpcode = "J4_cmpeqp0";
5972let isTaken = Inst{13};
5973let isExtendable = 1;
5974let opExtendable = 2;
5975let isExtentSigned = 1;
5976let opExtentBits = 11;
5977let opExtentAlign = 2;
5978}
5979def J4_cmpeq_fp1_jump_nt : HInst<
5980(outs),
5981(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5982"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5983tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5984let Inst{0-0} = 0b0;
5985let Inst{13-12} = 0b01;
5986let Inst{31-22} = 0b0001010001;
5987let isPredicated = 1;
5988let isPredicatedFalse = 1;
5989let isTerminator = 1;
5990let isBranch = 1;
5991let isPredicatedNew = 1;
5992let cofRelax1 = 1;
5993let cofRelax2 = 1;
5994let cofMax1 = 1;
5995let Uses = [P1];
5996let Defs = [P1, PC];
5997let BaseOpcode = "J4_cmpeqp1";
5998let isTaken = Inst{13};
5999let isExtendable = 1;
6000let opExtendable = 2;
6001let isExtentSigned = 1;
6002let opExtentBits = 11;
6003let opExtentAlign = 2;
6004}
6005def J4_cmpeq_fp1_jump_t : HInst<
6006(outs),
6007(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6008"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6009tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6010let Inst{0-0} = 0b0;
6011let Inst{13-12} = 0b11;
6012let Inst{31-22} = 0b0001010001;
6013let isPredicated = 1;
6014let isPredicatedFalse = 1;
6015let isTerminator = 1;
6016let isBranch = 1;
6017let isPredicatedNew = 1;
6018let cofRelax1 = 1;
6019let cofRelax2 = 1;
6020let cofMax1 = 1;
6021let Uses = [P1];
6022let Defs = [P1, PC];
6023let BaseOpcode = "J4_cmpeqp1";
6024let isTaken = Inst{13};
6025let isExtendable = 1;
6026let opExtendable = 2;
6027let isExtentSigned = 1;
6028let opExtentBits = 11;
6029let opExtentAlign = 2;
6030}
6031def J4_cmpeq_t_jumpnv_nt : HInst<
6032(outs),
6033(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6034"if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
6035tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6036let Inst{0-0} = 0b0;
6037let Inst{13-13} = 0b0;
6038let Inst{19-19} = 0b0;
6039let Inst{31-22} = 0b0010000000;
6040let isPredicated = 1;
6041let isTerminator = 1;
6042let isBranch = 1;
6043let isNewValue = 1;
6044let cofMax1 = 1;
6045let isRestrictNoSlot1Store = 1;
6046let Defs = [PC];
6047let BaseOpcode = "J4_cmpeqr";
6048let isTaken = Inst{13};
6049let isExtendable = 1;
6050let opExtendable = 2;
6051let isExtentSigned = 1;
6052let opExtentBits = 11;
6053let opExtentAlign = 2;
6054let opNewValue = 0;
6055}
6056def J4_cmpeq_t_jumpnv_t : HInst<
6057(outs),
6058(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6059"if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
6060tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6061let Inst{0-0} = 0b0;
6062let Inst{13-13} = 0b1;
6063let Inst{19-19} = 0b0;
6064let Inst{31-22} = 0b0010000000;
6065let isPredicated = 1;
6066let isTerminator = 1;
6067let isBranch = 1;
6068let isNewValue = 1;
6069let cofMax1 = 1;
6070let isRestrictNoSlot1Store = 1;
6071let Defs = [PC];
6072let BaseOpcode = "J4_cmpeqr";
6073let isTaken = Inst{13};
6074let isExtendable = 1;
6075let opExtendable = 2;
6076let isExtentSigned = 1;
6077let opExtentBits = 11;
6078let opExtentAlign = 2;
6079let opNewValue = 0;
6080}
6081def J4_cmpeq_tp0_jump_nt : HInst<
6082(outs),
6083(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6084"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6085tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6086let Inst{0-0} = 0b0;
6087let Inst{13-12} = 0b00;
6088let Inst{31-22} = 0b0001010000;
6089let isPredicated = 1;
6090let isTerminator = 1;
6091let isBranch = 1;
6092let isPredicatedNew = 1;
6093let cofRelax1 = 1;
6094let cofRelax2 = 1;
6095let cofMax1 = 1;
6096let Uses = [P0];
6097let Defs = [P0, PC];
6098let BaseOpcode = "J4_cmpeqp0";
6099let isTaken = Inst{13};
6100let isExtendable = 1;
6101let opExtendable = 2;
6102let isExtentSigned = 1;
6103let opExtentBits = 11;
6104let opExtentAlign = 2;
6105}
6106def J4_cmpeq_tp0_jump_t : HInst<
6107(outs),
6108(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6109"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6110tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6111let Inst{0-0} = 0b0;
6112let Inst{13-12} = 0b10;
6113let Inst{31-22} = 0b0001010000;
6114let isPredicated = 1;
6115let isTerminator = 1;
6116let isBranch = 1;
6117let isPredicatedNew = 1;
6118let cofRelax1 = 1;
6119let cofRelax2 = 1;
6120let cofMax1 = 1;
6121let Uses = [P0];
6122let Defs = [P0, PC];
6123let BaseOpcode = "J4_cmpeqp0";
6124let isTaken = Inst{13};
6125let isExtendable = 1;
6126let opExtendable = 2;
6127let isExtentSigned = 1;
6128let opExtentBits = 11;
6129let opExtentAlign = 2;
6130}
6131def J4_cmpeq_tp1_jump_nt : HInst<
6132(outs),
6133(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6134"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6135tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6136let Inst{0-0} = 0b0;
6137let Inst{13-12} = 0b01;
6138let Inst{31-22} = 0b0001010000;
6139let isPredicated = 1;
6140let isTerminator = 1;
6141let isBranch = 1;
6142let isPredicatedNew = 1;
6143let cofRelax1 = 1;
6144let cofRelax2 = 1;
6145let cofMax1 = 1;
6146let Uses = [P1];
6147let Defs = [P1, PC];
6148let BaseOpcode = "J4_cmpeqp1";
6149let isTaken = Inst{13};
6150let isExtendable = 1;
6151let opExtendable = 2;
6152let isExtentSigned = 1;
6153let opExtentBits = 11;
6154let opExtentAlign = 2;
6155}
6156def J4_cmpeq_tp1_jump_t : HInst<
6157(outs),
6158(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6159"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6160tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6161let Inst{0-0} = 0b0;
6162let Inst{13-12} = 0b11;
6163let Inst{31-22} = 0b0001010000;
6164let isPredicated = 1;
6165let isTerminator = 1;
6166let isBranch = 1;
6167let isPredicatedNew = 1;
6168let cofRelax1 = 1;
6169let cofRelax2 = 1;
6170let cofMax1 = 1;
6171let Uses = [P1];
6172let Defs = [P1, PC];
6173let BaseOpcode = "J4_cmpeqp1";
6174let isTaken = Inst{13};
6175let isExtendable = 1;
6176let opExtendable = 2;
6177let isExtentSigned = 1;
6178let opExtentBits = 11;
6179let opExtentAlign = 2;
6180}
6181def J4_cmpeqi_f_jumpnv_nt : HInst<
6182(outs),
6183(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6184"if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6185tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6186let Inst{0-0} = 0b0;
6187let Inst{13-13} = 0b0;
6188let Inst{19-19} = 0b0;
6189let Inst{31-22} = 0b0010010001;
6190let isPredicated = 1;
6191let isPredicatedFalse = 1;
6192let isTerminator = 1;
6193let isBranch = 1;
6194let isNewValue = 1;
6195let cofMax1 = 1;
6196let isRestrictNoSlot1Store = 1;
6197let Defs = [PC];
6198let BaseOpcode = "J4_cmpeqi";
6199let isTaken = Inst{13};
6200let isExtendable = 1;
6201let opExtendable = 2;
6202let isExtentSigned = 1;
6203let opExtentBits = 11;
6204let opExtentAlign = 2;
6205let opNewValue = 0;
6206}
6207def J4_cmpeqi_f_jumpnv_t : HInst<
6208(outs),
6209(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6210"if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6211tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6212let Inst{0-0} = 0b0;
6213let Inst{13-13} = 0b1;
6214let Inst{19-19} = 0b0;
6215let Inst{31-22} = 0b0010010001;
6216let isPredicated = 1;
6217let isPredicatedFalse = 1;
6218let isTerminator = 1;
6219let isBranch = 1;
6220let isNewValue = 1;
6221let cofMax1 = 1;
6222let isRestrictNoSlot1Store = 1;
6223let Defs = [PC];
6224let BaseOpcode = "J4_cmpeqi";
6225let isTaken = Inst{13};
6226let isExtendable = 1;
6227let opExtendable = 2;
6228let isExtentSigned = 1;
6229let opExtentBits = 11;
6230let opExtentAlign = 2;
6231let opNewValue = 0;
6232}
6233def J4_cmpeqi_fp0_jump_nt : HInst<
6234(outs),
6235(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6236"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6237tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6238let Inst{0-0} = 0b0;
6239let Inst{13-13} = 0b0;
6240let Inst{31-22} = 0b0001000001;
6241let isPredicated = 1;
6242let isPredicatedFalse = 1;
6243let isTerminator = 1;
6244let isBranch = 1;
6245let isPredicatedNew = 1;
6246let cofRelax1 = 1;
6247let cofRelax2 = 1;
6248let cofMax1 = 1;
6249let Uses = [P0];
6250let Defs = [P0, PC];
6251let BaseOpcode = "J4_cmpeqip0";
6252let isTaken = Inst{13};
6253let isExtendable = 1;
6254let opExtendable = 2;
6255let isExtentSigned = 1;
6256let opExtentBits = 11;
6257let opExtentAlign = 2;
6258}
6259def J4_cmpeqi_fp0_jump_t : HInst<
6260(outs),
6261(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6262"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
6263tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6264let Inst{0-0} = 0b0;
6265let Inst{13-13} = 0b1;
6266let Inst{31-22} = 0b0001000001;
6267let isPredicated = 1;
6268let isPredicatedFalse = 1;
6269let isTerminator = 1;
6270let isBranch = 1;
6271let isPredicatedNew = 1;
6272let cofRelax1 = 1;
6273let cofRelax2 = 1;
6274let cofMax1 = 1;
6275let Uses = [P0];
6276let Defs = [P0, PC];
6277let BaseOpcode = "J4_cmpeqip0";
6278let isTaken = Inst{13};
6279let isExtendable = 1;
6280let opExtendable = 2;
6281let isExtentSigned = 1;
6282let opExtentBits = 11;
6283let opExtentAlign = 2;
6284}
6285def J4_cmpeqi_fp1_jump_nt : HInst<
6286(outs),
6287(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6288"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6289tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6290let Inst{0-0} = 0b0;
6291let Inst{13-13} = 0b0;
6292let Inst{31-22} = 0b0001001001;
6293let isPredicated = 1;
6294let isPredicatedFalse = 1;
6295let isTerminator = 1;
6296let isBranch = 1;
6297let isPredicatedNew = 1;
6298let cofRelax1 = 1;
6299let cofRelax2 = 1;
6300let cofMax1 = 1;
6301let Uses = [P1];
6302let Defs = [P1, PC];
6303let BaseOpcode = "J4_cmpeqip1";
6304let isTaken = Inst{13};
6305let isExtendable = 1;
6306let opExtendable = 2;
6307let isExtentSigned = 1;
6308let opExtentBits = 11;
6309let opExtentAlign = 2;
6310}
6311def J4_cmpeqi_fp1_jump_t : HInst<
6312(outs),
6313(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6314"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
6315tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6316let Inst{0-0} = 0b0;
6317let Inst{13-13} = 0b1;
6318let Inst{31-22} = 0b0001001001;
6319let isPredicated = 1;
6320let isPredicatedFalse = 1;
6321let isTerminator = 1;
6322let isBranch = 1;
6323let isPredicatedNew = 1;
6324let cofRelax1 = 1;
6325let cofRelax2 = 1;
6326let cofMax1 = 1;
6327let Uses = [P1];
6328let Defs = [P1, PC];
6329let BaseOpcode = "J4_cmpeqip1";
6330let isTaken = Inst{13};
6331let isExtendable = 1;
6332let opExtendable = 2;
6333let isExtentSigned = 1;
6334let opExtentBits = 11;
6335let opExtentAlign = 2;
6336}
6337def J4_cmpeqi_t_jumpnv_nt : HInst<
6338(outs),
6339(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6340"if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6341tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6342let Inst{0-0} = 0b0;
6343let Inst{13-13} = 0b0;
6344let Inst{19-19} = 0b0;
6345let Inst{31-22} = 0b0010010000;
6346let isPredicated = 1;
6347let isTerminator = 1;
6348let isBranch = 1;
6349let isNewValue = 1;
6350let cofMax1 = 1;
6351let isRestrictNoSlot1Store = 1;
6352let Defs = [PC];
6353let BaseOpcode = "J4_cmpeqi";
6354let isTaken = Inst{13};
6355let isExtendable = 1;
6356let opExtendable = 2;
6357let isExtentSigned = 1;
6358let opExtentBits = 11;
6359let opExtentAlign = 2;
6360let opNewValue = 0;
6361}
6362def J4_cmpeqi_t_jumpnv_t : HInst<
6363(outs),
6364(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6365"if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6366tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6367let Inst{0-0} = 0b0;
6368let Inst{13-13} = 0b1;
6369let Inst{19-19} = 0b0;
6370let Inst{31-22} = 0b0010010000;
6371let isPredicated = 1;
6372let isTerminator = 1;
6373let isBranch = 1;
6374let isNewValue = 1;
6375let cofMax1 = 1;
6376let isRestrictNoSlot1Store = 1;
6377let Defs = [PC];
6378let BaseOpcode = "J4_cmpeqi";
6379let isTaken = Inst{13};
6380let isExtendable = 1;
6381let opExtendable = 2;
6382let isExtentSigned = 1;
6383let opExtentBits = 11;
6384let opExtentAlign = 2;
6385let opNewValue = 0;
6386}
6387def J4_cmpeqi_tp0_jump_nt : HInst<
6388(outs),
6389(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6390"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6391tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6392let Inst{0-0} = 0b0;
6393let Inst{13-13} = 0b0;
6394let Inst{31-22} = 0b0001000000;
6395let isPredicated = 1;
6396let isTerminator = 1;
6397let isBranch = 1;
6398let isPredicatedNew = 1;
6399let cofRelax1 = 1;
6400let cofRelax2 = 1;
6401let cofMax1 = 1;
6402let Uses = [P0];
6403let Defs = [P0, PC];
6404let BaseOpcode = "J4_cmpeqip0";
6405let isTaken = Inst{13};
6406let isExtendable = 1;
6407let opExtendable = 2;
6408let isExtentSigned = 1;
6409let opExtentBits = 11;
6410let opExtentAlign = 2;
6411}
6412def J4_cmpeqi_tp0_jump_t : HInst<
6413(outs),
6414(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6415"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6416tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6417let Inst{0-0} = 0b0;
6418let Inst{13-13} = 0b1;
6419let Inst{31-22} = 0b0001000000;
6420let isPredicated = 1;
6421let isTerminator = 1;
6422let isBranch = 1;
6423let isPredicatedNew = 1;
6424let cofRelax1 = 1;
6425let cofRelax2 = 1;
6426let cofMax1 = 1;
6427let Uses = [P0];
6428let Defs = [P0, PC];
6429let BaseOpcode = "J4_cmpeqip0";
6430let isTaken = Inst{13};
6431let isExtendable = 1;
6432let opExtendable = 2;
6433let isExtentSigned = 1;
6434let opExtentBits = 11;
6435let opExtentAlign = 2;
6436}
6437def J4_cmpeqi_tp1_jump_nt : HInst<
6438(outs),
6439(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6440"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6441tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6442let Inst{0-0} = 0b0;
6443let Inst{13-13} = 0b0;
6444let Inst{31-22} = 0b0001001000;
6445let isPredicated = 1;
6446let isTerminator = 1;
6447let isBranch = 1;
6448let isPredicatedNew = 1;
6449let cofRelax1 = 1;
6450let cofRelax2 = 1;
6451let cofMax1 = 1;
6452let Uses = [P1];
6453let Defs = [P1, PC];
6454let BaseOpcode = "J4_cmpeqip1";
6455let isTaken = Inst{13};
6456let isExtendable = 1;
6457let opExtendable = 2;
6458let isExtentSigned = 1;
6459let opExtentBits = 11;
6460let opExtentAlign = 2;
6461}
6462def J4_cmpeqi_tp1_jump_t : HInst<
6463(outs),
6464(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6465"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6466tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6467let Inst{0-0} = 0b0;
6468let Inst{13-13} = 0b1;
6469let Inst{31-22} = 0b0001001000;
6470let isPredicated = 1;
6471let isTerminator = 1;
6472let isBranch = 1;
6473let isPredicatedNew = 1;
6474let cofRelax1 = 1;
6475let cofRelax2 = 1;
6476let cofMax1 = 1;
6477let Uses = [P1];
6478let Defs = [P1, PC];
6479let BaseOpcode = "J4_cmpeqip1";
6480let isTaken = Inst{13};
6481let isExtendable = 1;
6482let opExtendable = 2;
6483let isExtentSigned = 1;
6484let opExtentBits = 11;
6485let opExtentAlign = 2;
6486}
6487def J4_cmpeqn1_f_jumpnv_nt : HInst<
6488(outs),
6489(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6490"if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6491tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel {
6492let Inst{0-0} = 0b0;
6493let Inst{13-8} = 0b000000;
6494let Inst{19-19} = 0b0;
6495let Inst{31-22} = 0b0010011001;
6496let isPredicated = 1;
6497let isPredicatedFalse = 1;
6498let isTerminator = 1;
6499let isBranch = 1;
6500let isNewValue = 1;
6501let cofMax1 = 1;
6502let isRestrictNoSlot1Store = 1;
6503let Defs = [PC];
6504let BaseOpcode = "J4_cmpeqn1r";
6505let isTaken = Inst{13};
6506let isExtendable = 1;
6507let opExtendable = 2;
6508let isExtentSigned = 1;
6509let opExtentBits = 11;
6510let opExtentAlign = 2;
6511let opNewValue = 0;
6512}
6513def J4_cmpeqn1_f_jumpnv_t : HInst<
6514(outs),
6515(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6516"if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6517tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel {
6518let Inst{0-0} = 0b0;
6519let Inst{13-8} = 0b100000;
6520let Inst{19-19} = 0b0;
6521let Inst{31-22} = 0b0010011001;
6522let isPredicated = 1;
6523let isPredicatedFalse = 1;
6524let isTerminator = 1;
6525let isBranch = 1;
6526let isNewValue = 1;
6527let cofMax1 = 1;
6528let isRestrictNoSlot1Store = 1;
6529let Defs = [PC];
6530let BaseOpcode = "J4_cmpeqn1r";
6531let isTaken = Inst{13};
6532let isExtendable = 1;
6533let opExtendable = 2;
6534let isExtentSigned = 1;
6535let opExtentBits = 11;
6536let opExtentAlign = 2;
6537let opNewValue = 0;
6538}
6539def J4_cmpeqn1_fp0_jump_nt : HInst<
6540(outs),
6541(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6542"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6543tc_24f426ab, TypeCJ>, Enc_1de724, PredRel {
6544let Inst{0-0} = 0b0;
6545let Inst{13-8} = 0b000000;
6546let Inst{31-22} = 0b0001000111;
6547let isPredicated = 1;
6548let isPredicatedFalse = 1;
6549let isTerminator = 1;
6550let isBranch = 1;
6551let isPredicatedNew = 1;
6552let cofRelax1 = 1;
6553let cofRelax2 = 1;
6554let cofMax1 = 1;
6555let Uses = [P0];
6556let Defs = [P0, PC];
6557let BaseOpcode = "J4_cmpeqn1p0";
6558let isTaken = Inst{13};
6559let isExtendable = 1;
6560let opExtendable = 2;
6561let isExtentSigned = 1;
6562let opExtentBits = 11;
6563let opExtentAlign = 2;
6564}
6565def J4_cmpeqn1_fp0_jump_t : HInst<
6566(outs),
6567(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6568"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6569tc_24f426ab, TypeCJ>, Enc_14640c, PredRel {
6570let Inst{0-0} = 0b0;
6571let Inst{13-8} = 0b100000;
6572let Inst{31-22} = 0b0001000111;
6573let isPredicated = 1;
6574let isPredicatedFalse = 1;
6575let isTerminator = 1;
6576let isBranch = 1;
6577let isPredicatedNew = 1;
6578let cofRelax1 = 1;
6579let cofRelax2 = 1;
6580let cofMax1 = 1;
6581let Uses = [P0];
6582let Defs = [P0, PC];
6583let BaseOpcode = "J4_cmpeqn1p0";
6584let isTaken = Inst{13};
6585let isExtendable = 1;
6586let opExtendable = 2;
6587let isExtentSigned = 1;
6588let opExtentBits = 11;
6589let opExtentAlign = 2;
6590}
6591def J4_cmpeqn1_fp1_jump_nt : HInst<
6592(outs),
6593(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6594"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6595tc_24f426ab, TypeCJ>, Enc_668704, PredRel {
6596let Inst{0-0} = 0b0;
6597let Inst{13-8} = 0b000000;
6598let Inst{31-22} = 0b0001001111;
6599let isPredicated = 1;
6600let isPredicatedFalse = 1;
6601let isTerminator = 1;
6602let isBranch = 1;
6603let isPredicatedNew = 1;
6604let cofRelax1 = 1;
6605let cofRelax2 = 1;
6606let cofMax1 = 1;
6607let Uses = [P1];
6608let Defs = [P1, PC];
6609let BaseOpcode = "J4_cmpeqn1p1";
6610let isTaken = Inst{13};
6611let isExtendable = 1;
6612let opExtendable = 2;
6613let isExtentSigned = 1;
6614let opExtentBits = 11;
6615let opExtentAlign = 2;
6616}
6617def J4_cmpeqn1_fp1_jump_t : HInst<
6618(outs),
6619(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6620"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6621tc_24f426ab, TypeCJ>, Enc_800e04, PredRel {
6622let Inst{0-0} = 0b0;
6623let Inst{13-8} = 0b100000;
6624let Inst{31-22} = 0b0001001111;
6625let isPredicated = 1;
6626let isPredicatedFalse = 1;
6627let isTerminator = 1;
6628let isBranch = 1;
6629let isPredicatedNew = 1;
6630let cofRelax1 = 1;
6631let cofRelax2 = 1;
6632let cofMax1 = 1;
6633let Uses = [P1];
6634let Defs = [P1, PC];
6635let BaseOpcode = "J4_cmpeqn1p1";
6636let isTaken = Inst{13};
6637let isExtendable = 1;
6638let opExtendable = 2;
6639let isExtentSigned = 1;
6640let opExtentBits = 11;
6641let opExtentAlign = 2;
6642}
6643def J4_cmpeqn1_t_jumpnv_nt : HInst<
6644(outs),
6645(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6646"if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6647tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel {
6648let Inst{0-0} = 0b0;
6649let Inst{13-8} = 0b000000;
6650let Inst{19-19} = 0b0;
6651let Inst{31-22} = 0b0010011000;
6652let isPredicated = 1;
6653let isTerminator = 1;
6654let isBranch = 1;
6655let isNewValue = 1;
6656let cofMax1 = 1;
6657let isRestrictNoSlot1Store = 1;
6658let Defs = [PC];
6659let BaseOpcode = "J4_cmpeqn1r";
6660let isTaken = Inst{13};
6661let isExtendable = 1;
6662let opExtendable = 2;
6663let isExtentSigned = 1;
6664let opExtentBits = 11;
6665let opExtentAlign = 2;
6666let opNewValue = 0;
6667}
6668def J4_cmpeqn1_t_jumpnv_t : HInst<
6669(outs),
6670(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6671"if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6672tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel {
6673let Inst{0-0} = 0b0;
6674let Inst{13-8} = 0b100000;
6675let Inst{19-19} = 0b0;
6676let Inst{31-22} = 0b0010011000;
6677let isPredicated = 1;
6678let isTerminator = 1;
6679let isBranch = 1;
6680let isNewValue = 1;
6681let cofMax1 = 1;
6682let isRestrictNoSlot1Store = 1;
6683let Defs = [PC];
6684let BaseOpcode = "J4_cmpeqn1r";
6685let isTaken = Inst{13};
6686let isExtendable = 1;
6687let opExtendable = 2;
6688let isExtentSigned = 1;
6689let opExtentBits = 11;
6690let opExtentAlign = 2;
6691let opNewValue = 0;
6692}
6693def J4_cmpeqn1_tp0_jump_nt : HInst<
6694(outs),
6695(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6696"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6697tc_24f426ab, TypeCJ>, Enc_405228, PredRel {
6698let Inst{0-0} = 0b0;
6699let Inst{13-8} = 0b000000;
6700let Inst{31-22} = 0b0001000110;
6701let isPredicated = 1;
6702let isTerminator = 1;
6703let isBranch = 1;
6704let isPredicatedNew = 1;
6705let cofRelax1 = 1;
6706let cofRelax2 = 1;
6707let cofMax1 = 1;
6708let Uses = [P0];
6709let Defs = [P0, PC];
6710let BaseOpcode = "J4_cmpeqn1p0";
6711let isTaken = Inst{13};
6712let isExtendable = 1;
6713let opExtendable = 2;
6714let isExtentSigned = 1;
6715let opExtentBits = 11;
6716let opExtentAlign = 2;
6717}
6718def J4_cmpeqn1_tp0_jump_t : HInst<
6719(outs),
6720(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6721"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6722tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel {
6723let Inst{0-0} = 0b0;
6724let Inst{13-8} = 0b100000;
6725let Inst{31-22} = 0b0001000110;
6726let isPredicated = 1;
6727let isTerminator = 1;
6728let isBranch = 1;
6729let isPredicatedNew = 1;
6730let cofRelax1 = 1;
6731let cofRelax2 = 1;
6732let cofMax1 = 1;
6733let Uses = [P0];
6734let Defs = [P0, PC];
6735let BaseOpcode = "J4_cmpeqn1p0";
6736let isTaken = Inst{13};
6737let isExtendable = 1;
6738let opExtendable = 2;
6739let isExtentSigned = 1;
6740let opExtentBits = 11;
6741let opExtentAlign = 2;
6742}
6743def J4_cmpeqn1_tp1_jump_nt : HInst<
6744(outs),
6745(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6746"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6747tc_24f426ab, TypeCJ>, Enc_736575, PredRel {
6748let Inst{0-0} = 0b0;
6749let Inst{13-8} = 0b000000;
6750let Inst{31-22} = 0b0001001110;
6751let isPredicated = 1;
6752let isTerminator = 1;
6753let isBranch = 1;
6754let isPredicatedNew = 1;
6755let cofRelax1 = 1;
6756let cofRelax2 = 1;
6757let cofMax1 = 1;
6758let Uses = [P1];
6759let Defs = [P1, PC];
6760let BaseOpcode = "J4_cmpeqn1p1";
6761let isTaken = Inst{13};
6762let isExtendable = 1;
6763let opExtendable = 2;
6764let isExtentSigned = 1;
6765let opExtentBits = 11;
6766let opExtentAlign = 2;
6767}
6768def J4_cmpeqn1_tp1_jump_t : HInst<
6769(outs),
6770(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6771"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6772tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel {
6773let Inst{0-0} = 0b0;
6774let Inst{13-8} = 0b100000;
6775let Inst{31-22} = 0b0001001110;
6776let isPredicated = 1;
6777let isTerminator = 1;
6778let isBranch = 1;
6779let isPredicatedNew = 1;
6780let cofRelax1 = 1;
6781let cofRelax2 = 1;
6782let cofMax1 = 1;
6783let Uses = [P1];
6784let Defs = [P1, PC];
6785let BaseOpcode = "J4_cmpeqn1p1";
6786let isTaken = Inst{13};
6787let isExtendable = 1;
6788let opExtendable = 2;
6789let isExtentSigned = 1;
6790let opExtentBits = 11;
6791let opExtentAlign = 2;
6792}
6793def J4_cmpgt_f_jumpnv_nt : HInst<
6794(outs),
6795(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6796"if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6797tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6798let Inst{0-0} = 0b0;
6799let Inst{13-13} = 0b0;
6800let Inst{19-19} = 0b0;
6801let Inst{31-22} = 0b0010000011;
6802let isPredicated = 1;
6803let isPredicatedFalse = 1;
6804let isTerminator = 1;
6805let isBranch = 1;
6806let isNewValue = 1;
6807let cofMax1 = 1;
6808let isRestrictNoSlot1Store = 1;
6809let Defs = [PC];
6810let BaseOpcode = "J4_cmpgtr";
6811let isTaken = Inst{13};
6812let isExtendable = 1;
6813let opExtendable = 2;
6814let isExtentSigned = 1;
6815let opExtentBits = 11;
6816let opExtentAlign = 2;
6817let opNewValue = 0;
6818}
6819def J4_cmpgt_f_jumpnv_t : HInst<
6820(outs),
6821(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6822"if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6823tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6824let Inst{0-0} = 0b0;
6825let Inst{13-13} = 0b1;
6826let Inst{19-19} = 0b0;
6827let Inst{31-22} = 0b0010000011;
6828let isPredicated = 1;
6829let isPredicatedFalse = 1;
6830let isTerminator = 1;
6831let isBranch = 1;
6832let isNewValue = 1;
6833let cofMax1 = 1;
6834let isRestrictNoSlot1Store = 1;
6835let Defs = [PC];
6836let BaseOpcode = "J4_cmpgtr";
6837let isTaken = Inst{13};
6838let isExtendable = 1;
6839let opExtendable = 2;
6840let isExtentSigned = 1;
6841let opExtentBits = 11;
6842let opExtentAlign = 2;
6843let opNewValue = 0;
6844}
6845def J4_cmpgt_fp0_jump_nt : HInst<
6846(outs),
6847(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6848"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6849tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6850let Inst{0-0} = 0b0;
6851let Inst{13-12} = 0b00;
6852let Inst{31-22} = 0b0001010011;
6853let isPredicated = 1;
6854let isPredicatedFalse = 1;
6855let isTerminator = 1;
6856let isBranch = 1;
6857let isPredicatedNew = 1;
6858let cofRelax1 = 1;
6859let cofRelax2 = 1;
6860let cofMax1 = 1;
6861let Uses = [P0];
6862let Defs = [P0, PC];
6863let BaseOpcode = "J4_cmpgtp0";
6864let isTaken = Inst{13};
6865let isExtendable = 1;
6866let opExtendable = 2;
6867let isExtentSigned = 1;
6868let opExtentBits = 11;
6869let opExtentAlign = 2;
6870}
6871def J4_cmpgt_fp0_jump_t : HInst<
6872(outs),
6873(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6874"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6875tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6876let Inst{0-0} = 0b0;
6877let Inst{13-12} = 0b10;
6878let Inst{31-22} = 0b0001010011;
6879let isPredicated = 1;
6880let isPredicatedFalse = 1;
6881let isTerminator = 1;
6882let isBranch = 1;
6883let isPredicatedNew = 1;
6884let cofRelax1 = 1;
6885let cofRelax2 = 1;
6886let cofMax1 = 1;
6887let Uses = [P0];
6888let Defs = [P0, PC];
6889let BaseOpcode = "J4_cmpgtp0";
6890let isTaken = Inst{13};
6891let isExtendable = 1;
6892let opExtendable = 2;
6893let isExtentSigned = 1;
6894let opExtentBits = 11;
6895let opExtentAlign = 2;
6896}
6897def J4_cmpgt_fp1_jump_nt : HInst<
6898(outs),
6899(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6900"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6901tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6902let Inst{0-0} = 0b0;
6903let Inst{13-12} = 0b01;
6904let Inst{31-22} = 0b0001010011;
6905let isPredicated = 1;
6906let isPredicatedFalse = 1;
6907let isTerminator = 1;
6908let isBranch = 1;
6909let isPredicatedNew = 1;
6910let cofRelax1 = 1;
6911let cofRelax2 = 1;
6912let cofMax1 = 1;
6913let Uses = [P1];
6914let Defs = [P1, PC];
6915let BaseOpcode = "J4_cmpgtp1";
6916let isTaken = Inst{13};
6917let isExtendable = 1;
6918let opExtendable = 2;
6919let isExtentSigned = 1;
6920let opExtentBits = 11;
6921let opExtentAlign = 2;
6922}
6923def J4_cmpgt_fp1_jump_t : HInst<
6924(outs),
6925(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6926"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6927tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6928let Inst{0-0} = 0b0;
6929let Inst{13-12} = 0b11;
6930let Inst{31-22} = 0b0001010011;
6931let isPredicated = 1;
6932let isPredicatedFalse = 1;
6933let isTerminator = 1;
6934let isBranch = 1;
6935let isPredicatedNew = 1;
6936let cofRelax1 = 1;
6937let cofRelax2 = 1;
6938let cofMax1 = 1;
6939let Uses = [P1];
6940let Defs = [P1, PC];
6941let BaseOpcode = "J4_cmpgtp1";
6942let isTaken = Inst{13};
6943let isExtendable = 1;
6944let opExtendable = 2;
6945let isExtentSigned = 1;
6946let opExtentBits = 11;
6947let opExtentAlign = 2;
6948}
6949def J4_cmpgt_t_jumpnv_nt : HInst<
6950(outs),
6951(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6952"if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6953tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6954let Inst{0-0} = 0b0;
6955let Inst{13-13} = 0b0;
6956let Inst{19-19} = 0b0;
6957let Inst{31-22} = 0b0010000010;
6958let isPredicated = 1;
6959let isTerminator = 1;
6960let isBranch = 1;
6961let isNewValue = 1;
6962let cofMax1 = 1;
6963let isRestrictNoSlot1Store = 1;
6964let Defs = [PC];
6965let BaseOpcode = "J4_cmpgtr";
6966let isTaken = Inst{13};
6967let isExtendable = 1;
6968let opExtendable = 2;
6969let isExtentSigned = 1;
6970let opExtentBits = 11;
6971let opExtentAlign = 2;
6972let opNewValue = 0;
6973}
6974def J4_cmpgt_t_jumpnv_t : HInst<
6975(outs),
6976(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6977"if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6978tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6979let Inst{0-0} = 0b0;
6980let Inst{13-13} = 0b1;
6981let Inst{19-19} = 0b0;
6982let Inst{31-22} = 0b0010000010;
6983let isPredicated = 1;
6984let isTerminator = 1;
6985let isBranch = 1;
6986let isNewValue = 1;
6987let cofMax1 = 1;
6988let isRestrictNoSlot1Store = 1;
6989let Defs = [PC];
6990let BaseOpcode = "J4_cmpgtr";
6991let isTaken = Inst{13};
6992let isExtendable = 1;
6993let opExtendable = 2;
6994let isExtentSigned = 1;
6995let opExtentBits = 11;
6996let opExtentAlign = 2;
6997let opNewValue = 0;
6998}
6999def J4_cmpgt_tp0_jump_nt : HInst<
7000(outs),
7001(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7002"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7003tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7004let Inst{0-0} = 0b0;
7005let Inst{13-12} = 0b00;
7006let Inst{31-22} = 0b0001010010;
7007let isPredicated = 1;
7008let isTerminator = 1;
7009let isBranch = 1;
7010let isPredicatedNew = 1;
7011let cofRelax1 = 1;
7012let cofRelax2 = 1;
7013let cofMax1 = 1;
7014let Uses = [P0];
7015let Defs = [P0, PC];
7016let BaseOpcode = "J4_cmpgtp0";
7017let isTaken = Inst{13};
7018let isExtendable = 1;
7019let opExtendable = 2;
7020let isExtentSigned = 1;
7021let opExtentBits = 11;
7022let opExtentAlign = 2;
7023}
7024def J4_cmpgt_tp0_jump_t : HInst<
7025(outs),
7026(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7027"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7028tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7029let Inst{0-0} = 0b0;
7030let Inst{13-12} = 0b10;
7031let Inst{31-22} = 0b0001010010;
7032let isPredicated = 1;
7033let isTerminator = 1;
7034let isBranch = 1;
7035let isPredicatedNew = 1;
7036let cofRelax1 = 1;
7037let cofRelax2 = 1;
7038let cofMax1 = 1;
7039let Uses = [P0];
7040let Defs = [P0, PC];
7041let BaseOpcode = "J4_cmpgtp0";
7042let isTaken = Inst{13};
7043let isExtendable = 1;
7044let opExtendable = 2;
7045let isExtentSigned = 1;
7046let opExtentBits = 11;
7047let opExtentAlign = 2;
7048}
7049def J4_cmpgt_tp1_jump_nt : HInst<
7050(outs),
7051(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7052"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7053tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7054let Inst{0-0} = 0b0;
7055let Inst{13-12} = 0b01;
7056let Inst{31-22} = 0b0001010010;
7057let isPredicated = 1;
7058let isTerminator = 1;
7059let isBranch = 1;
7060let isPredicatedNew = 1;
7061let cofRelax1 = 1;
7062let cofRelax2 = 1;
7063let cofMax1 = 1;
7064let Uses = [P1];
7065let Defs = [P1, PC];
7066let BaseOpcode = "J4_cmpgtp1";
7067let isTaken = Inst{13};
7068let isExtendable = 1;
7069let opExtendable = 2;
7070let isExtentSigned = 1;
7071let opExtentBits = 11;
7072let opExtentAlign = 2;
7073}
7074def J4_cmpgt_tp1_jump_t : HInst<
7075(outs),
7076(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7077"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7078tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7079let Inst{0-0} = 0b0;
7080let Inst{13-12} = 0b11;
7081let Inst{31-22} = 0b0001010010;
7082let isPredicated = 1;
7083let isTerminator = 1;
7084let isBranch = 1;
7085let isPredicatedNew = 1;
7086let cofRelax1 = 1;
7087let cofRelax2 = 1;
7088let cofMax1 = 1;
7089let Uses = [P1];
7090let Defs = [P1, PC];
7091let BaseOpcode = "J4_cmpgtp1";
7092let isTaken = Inst{13};
7093let isExtendable = 1;
7094let opExtendable = 2;
7095let isExtentSigned = 1;
7096let opExtentBits = 11;
7097let opExtentAlign = 2;
7098}
7099def J4_cmpgti_f_jumpnv_nt : HInst<
7100(outs),
7101(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7102"if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7103tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7104let Inst{0-0} = 0b0;
7105let Inst{13-13} = 0b0;
7106let Inst{19-19} = 0b0;
7107let Inst{31-22} = 0b0010010011;
7108let isPredicated = 1;
7109let isPredicatedFalse = 1;
7110let isTerminator = 1;
7111let isBranch = 1;
7112let isNewValue = 1;
7113let cofMax1 = 1;
7114let isRestrictNoSlot1Store = 1;
7115let Defs = [PC];
7116let BaseOpcode = "J4_cmpgtir";
7117let isTaken = Inst{13};
7118let isExtendable = 1;
7119let opExtendable = 2;
7120let isExtentSigned = 1;
7121let opExtentBits = 11;
7122let opExtentAlign = 2;
7123let opNewValue = 0;
7124}
7125def J4_cmpgti_f_jumpnv_t : HInst<
7126(outs),
7127(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7128"if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7129tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7130let Inst{0-0} = 0b0;
7131let Inst{13-13} = 0b1;
7132let Inst{19-19} = 0b0;
7133let Inst{31-22} = 0b0010010011;
7134let isPredicated = 1;
7135let isPredicatedFalse = 1;
7136let isTerminator = 1;
7137let isBranch = 1;
7138let isNewValue = 1;
7139let cofMax1 = 1;
7140let isRestrictNoSlot1Store = 1;
7141let Defs = [PC];
7142let BaseOpcode = "J4_cmpgtir";
7143let isTaken = Inst{13};
7144let isExtendable = 1;
7145let opExtendable = 2;
7146let isExtentSigned = 1;
7147let opExtentBits = 11;
7148let opExtentAlign = 2;
7149let opNewValue = 0;
7150}
7151def J4_cmpgti_fp0_jump_nt : HInst<
7152(outs),
7153(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7154"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7155tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7156let Inst{0-0} = 0b0;
7157let Inst{13-13} = 0b0;
7158let Inst{31-22} = 0b0001000011;
7159let isPredicated = 1;
7160let isPredicatedFalse = 1;
7161let isTerminator = 1;
7162let isBranch = 1;
7163let isPredicatedNew = 1;
7164let cofRelax1 = 1;
7165let cofRelax2 = 1;
7166let cofMax1 = 1;
7167let Uses = [P0];
7168let Defs = [P0, PC];
7169let BaseOpcode = "J4_cmpgtip0";
7170let isTaken = Inst{13};
7171let isExtendable = 1;
7172let opExtendable = 2;
7173let isExtentSigned = 1;
7174let opExtentBits = 11;
7175let opExtentAlign = 2;
7176}
7177def J4_cmpgti_fp0_jump_t : HInst<
7178(outs),
7179(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7180"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
7181tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7182let Inst{0-0} = 0b0;
7183let Inst{13-13} = 0b1;
7184let Inst{31-22} = 0b0001000011;
7185let isPredicated = 1;
7186let isPredicatedFalse = 1;
7187let isTerminator = 1;
7188let isBranch = 1;
7189let isPredicatedNew = 1;
7190let cofRelax1 = 1;
7191let cofRelax2 = 1;
7192let cofMax1 = 1;
7193let Uses = [P0];
7194let Defs = [P0, PC];
7195let BaseOpcode = "J4_cmpgtip0";
7196let isTaken = Inst{13};
7197let isExtendable = 1;
7198let opExtendable = 2;
7199let isExtentSigned = 1;
7200let opExtentBits = 11;
7201let opExtentAlign = 2;
7202}
7203def J4_cmpgti_fp1_jump_nt : HInst<
7204(outs),
7205(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7206"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7207tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7208let Inst{0-0} = 0b0;
7209let Inst{13-13} = 0b0;
7210let Inst{31-22} = 0b0001001011;
7211let isPredicated = 1;
7212let isPredicatedFalse = 1;
7213let isTerminator = 1;
7214let isBranch = 1;
7215let isPredicatedNew = 1;
7216let cofRelax1 = 1;
7217let cofRelax2 = 1;
7218let cofMax1 = 1;
7219let Uses = [P1];
7220let Defs = [P1, PC];
7221let BaseOpcode = "J4_cmpgtip1";
7222let isTaken = Inst{13};
7223let isExtendable = 1;
7224let opExtendable = 2;
7225let isExtentSigned = 1;
7226let opExtentBits = 11;
7227let opExtentAlign = 2;
7228}
7229def J4_cmpgti_fp1_jump_t : HInst<
7230(outs),
7231(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7232"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
7233tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7234let Inst{0-0} = 0b0;
7235let Inst{13-13} = 0b1;
7236let Inst{31-22} = 0b0001001011;
7237let isPredicated = 1;
7238let isPredicatedFalse = 1;
7239let isTerminator = 1;
7240let isBranch = 1;
7241let isPredicatedNew = 1;
7242let cofRelax1 = 1;
7243let cofRelax2 = 1;
7244let cofMax1 = 1;
7245let Uses = [P1];
7246let Defs = [P1, PC];
7247let BaseOpcode = "J4_cmpgtip1";
7248let isTaken = Inst{13};
7249let isExtendable = 1;
7250let opExtendable = 2;
7251let isExtentSigned = 1;
7252let opExtentBits = 11;
7253let opExtentAlign = 2;
7254}
7255def J4_cmpgti_t_jumpnv_nt : HInst<
7256(outs),
7257(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7258"if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7259tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7260let Inst{0-0} = 0b0;
7261let Inst{13-13} = 0b0;
7262let Inst{19-19} = 0b0;
7263let Inst{31-22} = 0b0010010010;
7264let isPredicated = 1;
7265let isTerminator = 1;
7266let isBranch = 1;
7267let isNewValue = 1;
7268let cofMax1 = 1;
7269let isRestrictNoSlot1Store = 1;
7270let Defs = [PC];
7271let BaseOpcode = "J4_cmpgtir";
7272let isTaken = Inst{13};
7273let isExtendable = 1;
7274let opExtendable = 2;
7275let isExtentSigned = 1;
7276let opExtentBits = 11;
7277let opExtentAlign = 2;
7278let opNewValue = 0;
7279}
7280def J4_cmpgti_t_jumpnv_t : HInst<
7281(outs),
7282(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7283"if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7284tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7285let Inst{0-0} = 0b0;
7286let Inst{13-13} = 0b1;
7287let Inst{19-19} = 0b0;
7288let Inst{31-22} = 0b0010010010;
7289let isPredicated = 1;
7290let isTerminator = 1;
7291let isBranch = 1;
7292let isNewValue = 1;
7293let cofMax1 = 1;
7294let isRestrictNoSlot1Store = 1;
7295let Defs = [PC];
7296let BaseOpcode = "J4_cmpgtir";
7297let isTaken = Inst{13};
7298let isExtendable = 1;
7299let opExtendable = 2;
7300let isExtentSigned = 1;
7301let opExtentBits = 11;
7302let opExtentAlign = 2;
7303let opNewValue = 0;
7304}
7305def J4_cmpgti_tp0_jump_nt : HInst<
7306(outs),
7307(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7308"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
7309tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7310let Inst{0-0} = 0b0;
7311let Inst{13-13} = 0b0;
7312let Inst{31-22} = 0b0001000010;
7313let isPredicated = 1;
7314let isTerminator = 1;
7315let isBranch = 1;
7316let isPredicatedNew = 1;
7317let cofRelax1 = 1;
7318let cofRelax2 = 1;
7319let cofMax1 = 1;
7320let Uses = [P0];
7321let Defs = [P0, PC];
7322let BaseOpcode = "J4_cmpgtip0";
7323let isTaken = Inst{13};
7324let isExtendable = 1;
7325let opExtendable = 2;
7326let isExtentSigned = 1;
7327let opExtentBits = 11;
7328let opExtentAlign = 2;
7329}
7330def J4_cmpgti_tp0_jump_t : HInst<
7331(outs),
7332(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7333"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
7334tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7335let Inst{0-0} = 0b0;
7336let Inst{13-13} = 0b1;
7337let Inst{31-22} = 0b0001000010;
7338let isPredicated = 1;
7339let isTerminator = 1;
7340let isBranch = 1;
7341let isPredicatedNew = 1;
7342let cofRelax1 = 1;
7343let cofRelax2 = 1;
7344let cofMax1 = 1;
7345let Uses = [P0];
7346let Defs = [P0, PC];
7347let BaseOpcode = "J4_cmpgtip0";
7348let isTaken = Inst{13};
7349let isExtendable = 1;
7350let opExtendable = 2;
7351let isExtentSigned = 1;
7352let opExtentBits = 11;
7353let opExtentAlign = 2;
7354}
7355def J4_cmpgti_tp1_jump_nt : HInst<
7356(outs),
7357(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7358"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
7359tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7360let Inst{0-0} = 0b0;
7361let Inst{13-13} = 0b0;
7362let Inst{31-22} = 0b0001001010;
7363let isPredicated = 1;
7364let isTerminator = 1;
7365let isBranch = 1;
7366let isPredicatedNew = 1;
7367let cofRelax1 = 1;
7368let cofRelax2 = 1;
7369let cofMax1 = 1;
7370let Uses = [P1];
7371let Defs = [P1, PC];
7372let BaseOpcode = "J4_cmpgtip1";
7373let isTaken = Inst{13};
7374let isExtendable = 1;
7375let opExtendable = 2;
7376let isExtentSigned = 1;
7377let opExtentBits = 11;
7378let opExtentAlign = 2;
7379}
7380def J4_cmpgti_tp1_jump_t : HInst<
7381(outs),
7382(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7383"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
7384tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7385let Inst{0-0} = 0b0;
7386let Inst{13-13} = 0b1;
7387let Inst{31-22} = 0b0001001010;
7388let isPredicated = 1;
7389let isTerminator = 1;
7390let isBranch = 1;
7391let isPredicatedNew = 1;
7392let cofRelax1 = 1;
7393let cofRelax2 = 1;
7394let cofMax1 = 1;
7395let Uses = [P1];
7396let Defs = [P1, PC];
7397let BaseOpcode = "J4_cmpgtip1";
7398let isTaken = Inst{13};
7399let isExtendable = 1;
7400let opExtendable = 2;
7401let isExtentSigned = 1;
7402let opExtentBits = 11;
7403let opExtentAlign = 2;
7404}
7405def J4_cmpgtn1_f_jumpnv_nt : HInst<
7406(outs),
7407(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7408"if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7409tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel {
7410let Inst{0-0} = 0b0;
7411let Inst{13-8} = 0b000000;
7412let Inst{19-19} = 0b0;
7413let Inst{31-22} = 0b0010011011;
7414let isPredicated = 1;
7415let isPredicatedFalse = 1;
7416let isTerminator = 1;
7417let isBranch = 1;
7418let isNewValue = 1;
7419let cofMax1 = 1;
7420let isRestrictNoSlot1Store = 1;
7421let Defs = [PC];
7422let BaseOpcode = "J4_cmpgtn1r";
7423let isTaken = Inst{13};
7424let isExtendable = 1;
7425let opExtendable = 2;
7426let isExtentSigned = 1;
7427let opExtentBits = 11;
7428let opExtentAlign = 2;
7429let opNewValue = 0;
7430}
7431def J4_cmpgtn1_f_jumpnv_t : HInst<
7432(outs),
7433(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7434"if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7435tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel {
7436let Inst{0-0} = 0b0;
7437let Inst{13-8} = 0b100000;
7438let Inst{19-19} = 0b0;
7439let Inst{31-22} = 0b0010011011;
7440let isPredicated = 1;
7441let isPredicatedFalse = 1;
7442let isTerminator = 1;
7443let isBranch = 1;
7444let isNewValue = 1;
7445let cofMax1 = 1;
7446let isRestrictNoSlot1Store = 1;
7447let Defs = [PC];
7448let BaseOpcode = "J4_cmpgtn1r";
7449let isTaken = Inst{13};
7450let isExtendable = 1;
7451let opExtendable = 2;
7452let isExtentSigned = 1;
7453let opExtentBits = 11;
7454let opExtentAlign = 2;
7455let opNewValue = 0;
7456}
7457def J4_cmpgtn1_fp0_jump_nt : HInst<
7458(outs),
7459(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7460"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7461tc_24f426ab, TypeCJ>, Enc_a42857, PredRel {
7462let Inst{0-0} = 0b0;
7463let Inst{13-8} = 0b000001;
7464let Inst{31-22} = 0b0001000111;
7465let isPredicated = 1;
7466let isPredicatedFalse = 1;
7467let isTerminator = 1;
7468let isBranch = 1;
7469let isPredicatedNew = 1;
7470let cofRelax1 = 1;
7471let cofRelax2 = 1;
7472let cofMax1 = 1;
7473let Uses = [P0];
7474let Defs = [P0, PC];
7475let BaseOpcode = "J4_cmpgtn1p0";
7476let isTaken = Inst{13};
7477let isExtendable = 1;
7478let opExtendable = 2;
7479let isExtentSigned = 1;
7480let opExtentBits = 11;
7481let opExtentAlign = 2;
7482}
7483def J4_cmpgtn1_fp0_jump_t : HInst<
7484(outs),
7485(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7486"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7487tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel {
7488let Inst{0-0} = 0b0;
7489let Inst{13-8} = 0b100001;
7490let Inst{31-22} = 0b0001000111;
7491let isPredicated = 1;
7492let isPredicatedFalse = 1;
7493let isTerminator = 1;
7494let isBranch = 1;
7495let isPredicatedNew = 1;
7496let cofRelax1 = 1;
7497let cofRelax2 = 1;
7498let cofMax1 = 1;
7499let Uses = [P0];
7500let Defs = [P0, PC];
7501let BaseOpcode = "J4_cmpgtn1p0";
7502let isTaken = Inst{13};
7503let isExtendable = 1;
7504let opExtendable = 2;
7505let isExtentSigned = 1;
7506let opExtentBits = 11;
7507let opExtentAlign = 2;
7508}
7509def J4_cmpgtn1_fp1_jump_nt : HInst<
7510(outs),
7511(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7512"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7513tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel {
7514let Inst{0-0} = 0b0;
7515let Inst{13-8} = 0b000001;
7516let Inst{31-22} = 0b0001001111;
7517let isPredicated = 1;
7518let isPredicatedFalse = 1;
7519let isTerminator = 1;
7520let isBranch = 1;
7521let isPredicatedNew = 1;
7522let cofRelax1 = 1;
7523let cofRelax2 = 1;
7524let cofMax1 = 1;
7525let Uses = [P1];
7526let Defs = [P1, PC];
7527let BaseOpcode = "J4_cmpgtn1p1";
7528let isTaken = Inst{13};
7529let isExtendable = 1;
7530let opExtendable = 2;
7531let isExtentSigned = 1;
7532let opExtentBits = 11;
7533let opExtentAlign = 2;
7534}
7535def J4_cmpgtn1_fp1_jump_t : HInst<
7536(outs),
7537(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7538"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7539tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel {
7540let Inst{0-0} = 0b0;
7541let Inst{13-8} = 0b100001;
7542let Inst{31-22} = 0b0001001111;
7543let isPredicated = 1;
7544let isPredicatedFalse = 1;
7545let isTerminator = 1;
7546let isBranch = 1;
7547let isPredicatedNew = 1;
7548let cofRelax1 = 1;
7549let cofRelax2 = 1;
7550let cofMax1 = 1;
7551let Uses = [P1];
7552let Defs = [P1, PC];
7553let BaseOpcode = "J4_cmpgtn1p1";
7554let isTaken = Inst{13};
7555let isExtendable = 1;
7556let opExtendable = 2;
7557let isExtentSigned = 1;
7558let opExtentBits = 11;
7559let opExtentAlign = 2;
7560}
7561def J4_cmpgtn1_t_jumpnv_nt : HInst<
7562(outs),
7563(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7564"if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7565tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel {
7566let Inst{0-0} = 0b0;
7567let Inst{13-8} = 0b000000;
7568let Inst{19-19} = 0b0;
7569let Inst{31-22} = 0b0010011010;
7570let isPredicated = 1;
7571let isTerminator = 1;
7572let isBranch = 1;
7573let isNewValue = 1;
7574let cofMax1 = 1;
7575let isRestrictNoSlot1Store = 1;
7576let Defs = [PC];
7577let BaseOpcode = "J4_cmpgtn1r";
7578let isTaken = Inst{13};
7579let isExtendable = 1;
7580let opExtendable = 2;
7581let isExtentSigned = 1;
7582let opExtentBits = 11;
7583let opExtentAlign = 2;
7584let opNewValue = 0;
7585}
7586def J4_cmpgtn1_t_jumpnv_t : HInst<
7587(outs),
7588(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7589"if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7590tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel {
7591let Inst{0-0} = 0b0;
7592let Inst{13-8} = 0b100000;
7593let Inst{19-19} = 0b0;
7594let Inst{31-22} = 0b0010011010;
7595let isPredicated = 1;
7596let isTerminator = 1;
7597let isBranch = 1;
7598let isNewValue = 1;
7599let cofMax1 = 1;
7600let isRestrictNoSlot1Store = 1;
7601let Defs = [PC];
7602let BaseOpcode = "J4_cmpgtn1r";
7603let isTaken = Inst{13};
7604let isExtendable = 1;
7605let opExtendable = 2;
7606let isExtentSigned = 1;
7607let opExtentBits = 11;
7608let opExtentAlign = 2;
7609let opNewValue = 0;
7610}
7611def J4_cmpgtn1_tp0_jump_nt : HInst<
7612(outs),
7613(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7614"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7615tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel {
7616let Inst{0-0} = 0b0;
7617let Inst{13-8} = 0b000001;
7618let Inst{31-22} = 0b0001000110;
7619let isPredicated = 1;
7620let isTerminator = 1;
7621let isBranch = 1;
7622let isPredicatedNew = 1;
7623let cofRelax1 = 1;
7624let cofRelax2 = 1;
7625let cofMax1 = 1;
7626let Uses = [P0];
7627let Defs = [P0, PC];
7628let BaseOpcode = "J4_cmpgtn1p0";
7629let isTaken = Inst{13};
7630let isExtendable = 1;
7631let opExtendable = 2;
7632let isExtentSigned = 1;
7633let opExtentBits = 11;
7634let opExtentAlign = 2;
7635}
7636def J4_cmpgtn1_tp0_jump_t : HInst<
7637(outs),
7638(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7639"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7640tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel {
7641let Inst{0-0} = 0b0;
7642let Inst{13-8} = 0b100001;
7643let Inst{31-22} = 0b0001000110;
7644let isPredicated = 1;
7645let isTerminator = 1;
7646let isBranch = 1;
7647let isPredicatedNew = 1;
7648let cofRelax1 = 1;
7649let cofRelax2 = 1;
7650let cofMax1 = 1;
7651let Uses = [P0];
7652let Defs = [P0, PC];
7653let BaseOpcode = "J4_cmpgtn1p0";
7654let isTaken = Inst{13};
7655let isExtendable = 1;
7656let opExtendable = 2;
7657let isExtentSigned = 1;
7658let opExtentBits = 11;
7659let opExtentAlign = 2;
7660}
7661def J4_cmpgtn1_tp1_jump_nt : HInst<
7662(outs),
7663(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7664"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7665tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel {
7666let Inst{0-0} = 0b0;
7667let Inst{13-8} = 0b000001;
7668let Inst{31-22} = 0b0001001110;
7669let isPredicated = 1;
7670let isTerminator = 1;
7671let isBranch = 1;
7672let isPredicatedNew = 1;
7673let cofRelax1 = 1;
7674let cofRelax2 = 1;
7675let cofMax1 = 1;
7676let Uses = [P1];
7677let Defs = [P1, PC];
7678let BaseOpcode = "J4_cmpgtn1p1";
7679let isTaken = Inst{13};
7680let isExtendable = 1;
7681let opExtendable = 2;
7682let isExtentSigned = 1;
7683let opExtentBits = 11;
7684let opExtentAlign = 2;
7685}
7686def J4_cmpgtn1_tp1_jump_t : HInst<
7687(outs),
7688(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7689"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7690tc_24f426ab, TypeCJ>, Enc_178717, PredRel {
7691let Inst{0-0} = 0b0;
7692let Inst{13-8} = 0b100001;
7693let Inst{31-22} = 0b0001001110;
7694let isPredicated = 1;
7695let isTerminator = 1;
7696let isBranch = 1;
7697let isPredicatedNew = 1;
7698let cofRelax1 = 1;
7699let cofRelax2 = 1;
7700let cofMax1 = 1;
7701let Uses = [P1];
7702let Defs = [P1, PC];
7703let BaseOpcode = "J4_cmpgtn1p1";
7704let isTaken = Inst{13};
7705let isExtendable = 1;
7706let opExtendable = 2;
7707let isExtentSigned = 1;
7708let opExtentBits = 11;
7709let opExtentAlign = 2;
7710}
7711def J4_cmpgtu_f_jumpnv_nt : HInst<
7712(outs),
7713(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7714"if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7715tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7716let Inst{0-0} = 0b0;
7717let Inst{13-13} = 0b0;
7718let Inst{19-19} = 0b0;
7719let Inst{31-22} = 0b0010000101;
7720let isPredicated = 1;
7721let isPredicatedFalse = 1;
7722let isTerminator = 1;
7723let isBranch = 1;
7724let isNewValue = 1;
7725let cofMax1 = 1;
7726let isRestrictNoSlot1Store = 1;
7727let Defs = [PC];
7728let BaseOpcode = "J4_cmpgtur";
7729let isTaken = Inst{13};
7730let isExtendable = 1;
7731let opExtendable = 2;
7732let isExtentSigned = 1;
7733let opExtentBits = 11;
7734let opExtentAlign = 2;
7735let opNewValue = 0;
7736}
7737def J4_cmpgtu_f_jumpnv_t : HInst<
7738(outs),
7739(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7740"if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7741tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7742let Inst{0-0} = 0b0;
7743let Inst{13-13} = 0b1;
7744let Inst{19-19} = 0b0;
7745let Inst{31-22} = 0b0010000101;
7746let isPredicated = 1;
7747let isPredicatedFalse = 1;
7748let isTerminator = 1;
7749let isBranch = 1;
7750let isNewValue = 1;
7751let cofMax1 = 1;
7752let isRestrictNoSlot1Store = 1;
7753let Defs = [PC];
7754let BaseOpcode = "J4_cmpgtur";
7755let isTaken = Inst{13};
7756let isExtendable = 1;
7757let opExtendable = 2;
7758let isExtentSigned = 1;
7759let opExtentBits = 11;
7760let opExtentAlign = 2;
7761let opNewValue = 0;
7762}
7763def J4_cmpgtu_fp0_jump_nt : HInst<
7764(outs),
7765(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7766"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7767tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7768let Inst{0-0} = 0b0;
7769let Inst{13-12} = 0b00;
7770let Inst{31-22} = 0b0001010101;
7771let isPredicated = 1;
7772let isPredicatedFalse = 1;
7773let isTerminator = 1;
7774let isBranch = 1;
7775let isPredicatedNew = 1;
7776let cofRelax1 = 1;
7777let cofRelax2 = 1;
7778let cofMax1 = 1;
7779let Uses = [P0];
7780let Defs = [P0, PC];
7781let BaseOpcode = "J4_cmpgtup0";
7782let isTaken = Inst{13};
7783let isExtendable = 1;
7784let opExtendable = 2;
7785let isExtentSigned = 1;
7786let opExtentBits = 11;
7787let opExtentAlign = 2;
7788}
7789def J4_cmpgtu_fp0_jump_t : HInst<
7790(outs),
7791(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7792"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7793tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7794let Inst{0-0} = 0b0;
7795let Inst{13-12} = 0b10;
7796let Inst{31-22} = 0b0001010101;
7797let isPredicated = 1;
7798let isPredicatedFalse = 1;
7799let isTerminator = 1;
7800let isBranch = 1;
7801let isPredicatedNew = 1;
7802let cofRelax1 = 1;
7803let cofRelax2 = 1;
7804let cofMax1 = 1;
7805let Uses = [P0];
7806let Defs = [P0, PC];
7807let BaseOpcode = "J4_cmpgtup0";
7808let isTaken = Inst{13};
7809let isExtendable = 1;
7810let opExtendable = 2;
7811let isExtentSigned = 1;
7812let opExtentBits = 11;
7813let opExtentAlign = 2;
7814}
7815def J4_cmpgtu_fp1_jump_nt : HInst<
7816(outs),
7817(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7818"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7819tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7820let Inst{0-0} = 0b0;
7821let Inst{13-12} = 0b01;
7822let Inst{31-22} = 0b0001010101;
7823let isPredicated = 1;
7824let isPredicatedFalse = 1;
7825let isTerminator = 1;
7826let isBranch = 1;
7827let isPredicatedNew = 1;
7828let cofRelax1 = 1;
7829let cofRelax2 = 1;
7830let cofMax1 = 1;
7831let Uses = [P1];
7832let Defs = [P1, PC];
7833let BaseOpcode = "J4_cmpgtup1";
7834let isTaken = Inst{13};
7835let isExtendable = 1;
7836let opExtendable = 2;
7837let isExtentSigned = 1;
7838let opExtentBits = 11;
7839let opExtentAlign = 2;
7840}
7841def J4_cmpgtu_fp1_jump_t : HInst<
7842(outs),
7843(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7844"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7845tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7846let Inst{0-0} = 0b0;
7847let Inst{13-12} = 0b11;
7848let Inst{31-22} = 0b0001010101;
7849let isPredicated = 1;
7850let isPredicatedFalse = 1;
7851let isTerminator = 1;
7852let isBranch = 1;
7853let isPredicatedNew = 1;
7854let cofRelax1 = 1;
7855let cofRelax2 = 1;
7856let cofMax1 = 1;
7857let Uses = [P1];
7858let Defs = [P1, PC];
7859let BaseOpcode = "J4_cmpgtup1";
7860let isTaken = Inst{13};
7861let isExtendable = 1;
7862let opExtendable = 2;
7863let isExtentSigned = 1;
7864let opExtentBits = 11;
7865let opExtentAlign = 2;
7866}
7867def J4_cmpgtu_t_jumpnv_nt : HInst<
7868(outs),
7869(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7870"if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7871tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7872let Inst{0-0} = 0b0;
7873let Inst{13-13} = 0b0;
7874let Inst{19-19} = 0b0;
7875let Inst{31-22} = 0b0010000100;
7876let isPredicated = 1;
7877let isTerminator = 1;
7878let isBranch = 1;
7879let isNewValue = 1;
7880let cofMax1 = 1;
7881let isRestrictNoSlot1Store = 1;
7882let Defs = [PC];
7883let BaseOpcode = "J4_cmpgtur";
7884let isTaken = Inst{13};
7885let isExtendable = 1;
7886let opExtendable = 2;
7887let isExtentSigned = 1;
7888let opExtentBits = 11;
7889let opExtentAlign = 2;
7890let opNewValue = 0;
7891}
7892def J4_cmpgtu_t_jumpnv_t : HInst<
7893(outs),
7894(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7895"if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7896tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7897let Inst{0-0} = 0b0;
7898let Inst{13-13} = 0b1;
7899let Inst{19-19} = 0b0;
7900let Inst{31-22} = 0b0010000100;
7901let isPredicated = 1;
7902let isTerminator = 1;
7903let isBranch = 1;
7904let isNewValue = 1;
7905let cofMax1 = 1;
7906let isRestrictNoSlot1Store = 1;
7907let Defs = [PC];
7908let BaseOpcode = "J4_cmpgtur";
7909let isTaken = Inst{13};
7910let isExtendable = 1;
7911let opExtendable = 2;
7912let isExtentSigned = 1;
7913let opExtentBits = 11;
7914let opExtentAlign = 2;
7915let opNewValue = 0;
7916}
7917def J4_cmpgtu_tp0_jump_nt : HInst<
7918(outs),
7919(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7920"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7921tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7922let Inst{0-0} = 0b0;
7923let Inst{13-12} = 0b00;
7924let Inst{31-22} = 0b0001010100;
7925let isPredicated = 1;
7926let isTerminator = 1;
7927let isBranch = 1;
7928let isPredicatedNew = 1;
7929let cofRelax1 = 1;
7930let cofRelax2 = 1;
7931let cofMax1 = 1;
7932let Uses = [P0];
7933let Defs = [P0, PC];
7934let BaseOpcode = "J4_cmpgtup0";
7935let isTaken = Inst{13};
7936let isExtendable = 1;
7937let opExtendable = 2;
7938let isExtentSigned = 1;
7939let opExtentBits = 11;
7940let opExtentAlign = 2;
7941}
7942def J4_cmpgtu_tp0_jump_t : HInst<
7943(outs),
7944(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7945"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7946tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7947let Inst{0-0} = 0b0;
7948let Inst{13-12} = 0b10;
7949let Inst{31-22} = 0b0001010100;
7950let isPredicated = 1;
7951let isTerminator = 1;
7952let isBranch = 1;
7953let isPredicatedNew = 1;
7954let cofRelax1 = 1;
7955let cofRelax2 = 1;
7956let cofMax1 = 1;
7957let Uses = [P0];
7958let Defs = [P0, PC];
7959let BaseOpcode = "J4_cmpgtup0";
7960let isTaken = Inst{13};
7961let isExtendable = 1;
7962let opExtendable = 2;
7963let isExtentSigned = 1;
7964let opExtentBits = 11;
7965let opExtentAlign = 2;
7966}
7967def J4_cmpgtu_tp1_jump_nt : HInst<
7968(outs),
7969(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7970"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7971tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7972let Inst{0-0} = 0b0;
7973let Inst{13-12} = 0b01;
7974let Inst{31-22} = 0b0001010100;
7975let isPredicated = 1;
7976let isTerminator = 1;
7977let isBranch = 1;
7978let isPredicatedNew = 1;
7979let cofRelax1 = 1;
7980let cofRelax2 = 1;
7981let cofMax1 = 1;
7982let Uses = [P1];
7983let Defs = [P1, PC];
7984let BaseOpcode = "J4_cmpgtup1";
7985let isTaken = Inst{13};
7986let isExtendable = 1;
7987let opExtendable = 2;
7988let isExtentSigned = 1;
7989let opExtentBits = 11;
7990let opExtentAlign = 2;
7991}
7992def J4_cmpgtu_tp1_jump_t : HInst<
7993(outs),
7994(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7995"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7996tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7997let Inst{0-0} = 0b0;
7998let Inst{13-12} = 0b11;
7999let Inst{31-22} = 0b0001010100;
8000let isPredicated = 1;
8001let isTerminator = 1;
8002let isBranch = 1;
8003let isPredicatedNew = 1;
8004let cofRelax1 = 1;
8005let cofRelax2 = 1;
8006let cofMax1 = 1;
8007let Uses = [P1];
8008let Defs = [P1, PC];
8009let BaseOpcode = "J4_cmpgtup1";
8010let isTaken = Inst{13};
8011let isExtendable = 1;
8012let opExtendable = 2;
8013let isExtentSigned = 1;
8014let opExtentBits = 11;
8015let opExtentAlign = 2;
8016}
8017def J4_cmpgtui_f_jumpnv_nt : HInst<
8018(outs),
8019(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8020"if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8021tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8022let Inst{0-0} = 0b0;
8023let Inst{13-13} = 0b0;
8024let Inst{19-19} = 0b0;
8025let Inst{31-22} = 0b0010010101;
8026let isPredicated = 1;
8027let isPredicatedFalse = 1;
8028let isTerminator = 1;
8029let isBranch = 1;
8030let isNewValue = 1;
8031let cofMax1 = 1;
8032let isRestrictNoSlot1Store = 1;
8033let Defs = [PC];
8034let BaseOpcode = "J4_cmpgtuir";
8035let isTaken = Inst{13};
8036let isExtendable = 1;
8037let opExtendable = 2;
8038let isExtentSigned = 1;
8039let opExtentBits = 11;
8040let opExtentAlign = 2;
8041let opNewValue = 0;
8042}
8043def J4_cmpgtui_f_jumpnv_t : HInst<
8044(outs),
8045(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8046"if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8047tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8048let Inst{0-0} = 0b0;
8049let Inst{13-13} = 0b1;
8050let Inst{19-19} = 0b0;
8051let Inst{31-22} = 0b0010010101;
8052let isPredicated = 1;
8053let isPredicatedFalse = 1;
8054let isTerminator = 1;
8055let isBranch = 1;
8056let isNewValue = 1;
8057let cofMax1 = 1;
8058let isRestrictNoSlot1Store = 1;
8059let Defs = [PC];
8060let BaseOpcode = "J4_cmpgtuir";
8061let isTaken = Inst{13};
8062let isExtendable = 1;
8063let opExtendable = 2;
8064let isExtentSigned = 1;
8065let opExtentBits = 11;
8066let opExtentAlign = 2;
8067let opNewValue = 0;
8068}
8069def J4_cmpgtui_fp0_jump_nt : HInst<
8070(outs),
8071(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8072"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
8073tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8074let Inst{0-0} = 0b0;
8075let Inst{13-13} = 0b0;
8076let Inst{31-22} = 0b0001000101;
8077let isPredicated = 1;
8078let isPredicatedFalse = 1;
8079let isTerminator = 1;
8080let isBranch = 1;
8081let isPredicatedNew = 1;
8082let cofRelax1 = 1;
8083let cofRelax2 = 1;
8084let cofMax1 = 1;
8085let Uses = [P0];
8086let Defs = [P0, PC];
8087let BaseOpcode = "J4_cmpgtuip0";
8088let isTaken = Inst{13};
8089let isExtendable = 1;
8090let opExtendable = 2;
8091let isExtentSigned = 1;
8092let opExtentBits = 11;
8093let opExtentAlign = 2;
8094}
8095def J4_cmpgtui_fp0_jump_t : HInst<
8096(outs),
8097(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8098"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
8099tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8100let Inst{0-0} = 0b0;
8101let Inst{13-13} = 0b1;
8102let Inst{31-22} = 0b0001000101;
8103let isPredicated = 1;
8104let isPredicatedFalse = 1;
8105let isTerminator = 1;
8106let isBranch = 1;
8107let isPredicatedNew = 1;
8108let cofRelax1 = 1;
8109let cofRelax2 = 1;
8110let cofMax1 = 1;
8111let Uses = [P0];
8112let Defs = [P0, PC];
8113let BaseOpcode = "J4_cmpgtuip0";
8114let isTaken = Inst{13};
8115let isExtendable = 1;
8116let opExtendable = 2;
8117let isExtentSigned = 1;
8118let opExtentBits = 11;
8119let opExtentAlign = 2;
8120}
8121def J4_cmpgtui_fp1_jump_nt : HInst<
8122(outs),
8123(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8124"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
8125tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8126let Inst{0-0} = 0b0;
8127let Inst{13-13} = 0b0;
8128let Inst{31-22} = 0b0001001101;
8129let isPredicated = 1;
8130let isPredicatedFalse = 1;
8131let isTerminator = 1;
8132let isBranch = 1;
8133let isPredicatedNew = 1;
8134let cofRelax1 = 1;
8135let cofRelax2 = 1;
8136let cofMax1 = 1;
8137let Uses = [P1];
8138let Defs = [P1, PC];
8139let BaseOpcode = "J4_cmpgtuip1";
8140let isTaken = Inst{13};
8141let isExtendable = 1;
8142let opExtendable = 2;
8143let isExtentSigned = 1;
8144let opExtentBits = 11;
8145let opExtentAlign = 2;
8146}
8147def J4_cmpgtui_fp1_jump_t : HInst<
8148(outs),
8149(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8150"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
8151tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8152let Inst{0-0} = 0b0;
8153let Inst{13-13} = 0b1;
8154let Inst{31-22} = 0b0001001101;
8155let isPredicated = 1;
8156let isPredicatedFalse = 1;
8157let isTerminator = 1;
8158let isBranch = 1;
8159let isPredicatedNew = 1;
8160let cofRelax1 = 1;
8161let cofRelax2 = 1;
8162let cofMax1 = 1;
8163let Uses = [P1];
8164let Defs = [P1, PC];
8165let BaseOpcode = "J4_cmpgtuip1";
8166let isTaken = Inst{13};
8167let isExtendable = 1;
8168let opExtendable = 2;
8169let isExtentSigned = 1;
8170let opExtentBits = 11;
8171let opExtentAlign = 2;
8172}
8173def J4_cmpgtui_t_jumpnv_nt : HInst<
8174(outs),
8175(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8176"if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8177tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8178let Inst{0-0} = 0b0;
8179let Inst{13-13} = 0b0;
8180let Inst{19-19} = 0b0;
8181let Inst{31-22} = 0b0010010100;
8182let isPredicated = 1;
8183let isTerminator = 1;
8184let isBranch = 1;
8185let isNewValue = 1;
8186let cofMax1 = 1;
8187let isRestrictNoSlot1Store = 1;
8188let Defs = [PC];
8189let BaseOpcode = "J4_cmpgtuir";
8190let isTaken = Inst{13};
8191let isExtendable = 1;
8192let opExtendable = 2;
8193let isExtentSigned = 1;
8194let opExtentBits = 11;
8195let opExtentAlign = 2;
8196let opNewValue = 0;
8197}
8198def J4_cmpgtui_t_jumpnv_t : HInst<
8199(outs),
8200(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8201"if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8202tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8203let Inst{0-0} = 0b0;
8204let Inst{13-13} = 0b1;
8205let Inst{19-19} = 0b0;
8206let Inst{31-22} = 0b0010010100;
8207let isPredicated = 1;
8208let isTerminator = 1;
8209let isBranch = 1;
8210let isNewValue = 1;
8211let cofMax1 = 1;
8212let isRestrictNoSlot1Store = 1;
8213let Defs = [PC];
8214let BaseOpcode = "J4_cmpgtuir";
8215let isTaken = Inst{13};
8216let isExtendable = 1;
8217let opExtendable = 2;
8218let isExtentSigned = 1;
8219let opExtentBits = 11;
8220let opExtentAlign = 2;
8221let opNewValue = 0;
8222}
8223def J4_cmpgtui_tp0_jump_nt : HInst<
8224(outs),
8225(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8226"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
8227tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8228let Inst{0-0} = 0b0;
8229let Inst{13-13} = 0b0;
8230let Inst{31-22} = 0b0001000100;
8231let isPredicated = 1;
8232let isTerminator = 1;
8233let isBranch = 1;
8234let isPredicatedNew = 1;
8235let cofRelax1 = 1;
8236let cofRelax2 = 1;
8237let cofMax1 = 1;
8238let Uses = [P0];
8239let Defs = [P0, PC];
8240let BaseOpcode = "J4_cmpgtuip0";
8241let isTaken = Inst{13};
8242let isExtendable = 1;
8243let opExtendable = 2;
8244let isExtentSigned = 1;
8245let opExtentBits = 11;
8246let opExtentAlign = 2;
8247}
8248def J4_cmpgtui_tp0_jump_t : HInst<
8249(outs),
8250(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8251"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
8252tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8253let Inst{0-0} = 0b0;
8254let Inst{13-13} = 0b1;
8255let Inst{31-22} = 0b0001000100;
8256let isPredicated = 1;
8257let isTerminator = 1;
8258let isBranch = 1;
8259let isPredicatedNew = 1;
8260let cofRelax1 = 1;
8261let cofRelax2 = 1;
8262let cofMax1 = 1;
8263let Uses = [P0];
8264let Defs = [P0, PC];
8265let BaseOpcode = "J4_cmpgtuip0";
8266let isTaken = Inst{13};
8267let isExtendable = 1;
8268let opExtendable = 2;
8269let isExtentSigned = 1;
8270let opExtentBits = 11;
8271let opExtentAlign = 2;
8272}
8273def J4_cmpgtui_tp1_jump_nt : HInst<
8274(outs),
8275(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8276"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
8277tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8278let Inst{0-0} = 0b0;
8279let Inst{13-13} = 0b0;
8280let Inst{31-22} = 0b0001001100;
8281let isPredicated = 1;
8282let isTerminator = 1;
8283let isBranch = 1;
8284let isPredicatedNew = 1;
8285let cofRelax1 = 1;
8286let cofRelax2 = 1;
8287let cofMax1 = 1;
8288let Uses = [P1];
8289let Defs = [P1, PC];
8290let BaseOpcode = "J4_cmpgtuip1";
8291let isTaken = Inst{13};
8292let isExtendable = 1;
8293let opExtendable = 2;
8294let isExtentSigned = 1;
8295let opExtentBits = 11;
8296let opExtentAlign = 2;
8297}
8298def J4_cmpgtui_tp1_jump_t : HInst<
8299(outs),
8300(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8301"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
8302tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8303let Inst{0-0} = 0b0;
8304let Inst{13-13} = 0b1;
8305let Inst{31-22} = 0b0001001100;
8306let isPredicated = 1;
8307let isTerminator = 1;
8308let isBranch = 1;
8309let isPredicatedNew = 1;
8310let cofRelax1 = 1;
8311let cofRelax2 = 1;
8312let cofMax1 = 1;
8313let Uses = [P1];
8314let Defs = [P1, PC];
8315let BaseOpcode = "J4_cmpgtuip1";
8316let isTaken = Inst{13};
8317let isExtendable = 1;
8318let opExtendable = 2;
8319let isExtentSigned = 1;
8320let opExtentBits = 11;
8321let opExtentAlign = 2;
8322}
8323def J4_cmplt_f_jumpnv_nt : HInst<
8324(outs),
8325(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8326"if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8327tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8328let Inst{0-0} = 0b0;
8329let Inst{13-13} = 0b0;
8330let Inst{19-19} = 0b0;
8331let Inst{31-22} = 0b0010000111;
8332let isPredicated = 1;
8333let isPredicatedFalse = 1;
8334let isTerminator = 1;
8335let isBranch = 1;
8336let isNewValue = 1;
8337let cofMax1 = 1;
8338let isRestrictNoSlot1Store = 1;
8339let Defs = [PC];
8340let BaseOpcode = "J4_cmpltr";
8341let isTaken = Inst{13};
8342let isExtendable = 1;
8343let opExtendable = 2;
8344let isExtentSigned = 1;
8345let opExtentBits = 11;
8346let opExtentAlign = 2;
8347let opNewValue = 1;
8348}
8349def J4_cmplt_f_jumpnv_t : HInst<
8350(outs),
8351(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8352"if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8353tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8354let Inst{0-0} = 0b0;
8355let Inst{13-13} = 0b1;
8356let Inst{19-19} = 0b0;
8357let Inst{31-22} = 0b0010000111;
8358let isPredicated = 1;
8359let isPredicatedFalse = 1;
8360let isTerminator = 1;
8361let isBranch = 1;
8362let isNewValue = 1;
8363let cofMax1 = 1;
8364let isRestrictNoSlot1Store = 1;
8365let Defs = [PC];
8366let BaseOpcode = "J4_cmpltr";
8367let isTaken = Inst{13};
8368let isExtendable = 1;
8369let opExtendable = 2;
8370let isExtentSigned = 1;
8371let opExtentBits = 11;
8372let opExtentAlign = 2;
8373let opNewValue = 1;
8374}
8375def J4_cmplt_t_jumpnv_nt : HInst<
8376(outs),
8377(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8378"if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8379tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8380let Inst{0-0} = 0b0;
8381let Inst{13-13} = 0b0;
8382let Inst{19-19} = 0b0;
8383let Inst{31-22} = 0b0010000110;
8384let isPredicated = 1;
8385let isTerminator = 1;
8386let isBranch = 1;
8387let isNewValue = 1;
8388let cofMax1 = 1;
8389let isRestrictNoSlot1Store = 1;
8390let Defs = [PC];
8391let BaseOpcode = "J4_cmpltr";
8392let isTaken = Inst{13};
8393let isExtendable = 1;
8394let opExtendable = 2;
8395let isExtentSigned = 1;
8396let opExtentBits = 11;
8397let opExtentAlign = 2;
8398let opNewValue = 1;
8399}
8400def J4_cmplt_t_jumpnv_t : HInst<
8401(outs),
8402(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8403"if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8404tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8405let Inst{0-0} = 0b0;
8406let Inst{13-13} = 0b1;
8407let Inst{19-19} = 0b0;
8408let Inst{31-22} = 0b0010000110;
8409let isPredicated = 1;
8410let isTerminator = 1;
8411let isBranch = 1;
8412let isNewValue = 1;
8413let cofMax1 = 1;
8414let isRestrictNoSlot1Store = 1;
8415let Defs = [PC];
8416let BaseOpcode = "J4_cmpltr";
8417let isTaken = Inst{13};
8418let isExtendable = 1;
8419let opExtendable = 2;
8420let isExtentSigned = 1;
8421let opExtentBits = 11;
8422let opExtentAlign = 2;
8423let opNewValue = 1;
8424}
8425def J4_cmpltu_f_jumpnv_nt : HInst<
8426(outs),
8427(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8428"if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8429tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8430let Inst{0-0} = 0b0;
8431let Inst{13-13} = 0b0;
8432let Inst{19-19} = 0b0;
8433let Inst{31-22} = 0b0010001001;
8434let isPredicated = 1;
8435let isPredicatedFalse = 1;
8436let isTerminator = 1;
8437let isBranch = 1;
8438let isNewValue = 1;
8439let cofMax1 = 1;
8440let isRestrictNoSlot1Store = 1;
8441let Defs = [PC];
8442let BaseOpcode = "J4_cmpltur";
8443let isTaken = Inst{13};
8444let isExtendable = 1;
8445let opExtendable = 2;
8446let isExtentSigned = 1;
8447let opExtentBits = 11;
8448let opExtentAlign = 2;
8449let opNewValue = 1;
8450}
8451def J4_cmpltu_f_jumpnv_t : HInst<
8452(outs),
8453(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8454"if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8455tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8456let Inst{0-0} = 0b0;
8457let Inst{13-13} = 0b1;
8458let Inst{19-19} = 0b0;
8459let Inst{31-22} = 0b0010001001;
8460let isPredicated = 1;
8461let isPredicatedFalse = 1;
8462let isTerminator = 1;
8463let isBranch = 1;
8464let isNewValue = 1;
8465let cofMax1 = 1;
8466let isRestrictNoSlot1Store = 1;
8467let Defs = [PC];
8468let BaseOpcode = "J4_cmpltur";
8469let isTaken = Inst{13};
8470let isExtendable = 1;
8471let opExtendable = 2;
8472let isExtentSigned = 1;
8473let opExtentBits = 11;
8474let opExtentAlign = 2;
8475let opNewValue = 1;
8476}
8477def J4_cmpltu_t_jumpnv_nt : HInst<
8478(outs),
8479(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8480"if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8481tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8482let Inst{0-0} = 0b0;
8483let Inst{13-13} = 0b0;
8484let Inst{19-19} = 0b0;
8485let Inst{31-22} = 0b0010001000;
8486let isPredicated = 1;
8487let isTerminator = 1;
8488let isBranch = 1;
8489let isNewValue = 1;
8490let cofMax1 = 1;
8491let isRestrictNoSlot1Store = 1;
8492let Defs = [PC];
8493let BaseOpcode = "J4_cmpltur";
8494let isTaken = Inst{13};
8495let isExtendable = 1;
8496let opExtendable = 2;
8497let isExtentSigned = 1;
8498let opExtentBits = 11;
8499let opExtentAlign = 2;
8500let opNewValue = 1;
8501}
8502def J4_cmpltu_t_jumpnv_t : HInst<
8503(outs),
8504(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8505"if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8506tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8507let Inst{0-0} = 0b0;
8508let Inst{13-13} = 0b1;
8509let Inst{19-19} = 0b0;
8510let Inst{31-22} = 0b0010001000;
8511let isPredicated = 1;
8512let isTerminator = 1;
8513let isBranch = 1;
8514let isNewValue = 1;
8515let cofMax1 = 1;
8516let isRestrictNoSlot1Store = 1;
8517let Defs = [PC];
8518let BaseOpcode = "J4_cmpltur";
8519let isTaken = Inst{13};
8520let isExtendable = 1;
8521let opExtendable = 2;
8522let isExtentSigned = 1;
8523let opExtentBits = 11;
8524let opExtentAlign = 2;
8525let opNewValue = 1;
8526}
8527def J4_hintjumpr : HInst<
8528(outs),
8529(ins IntRegs:$Rs32),
8530"hintjr($Rs32)",
8531tc_e60def48, TypeJ>, Enc_ecbcc8 {
8532let Inst{13-0} = 0b00000000000000;
8533let Inst{31-21} = 0b01010010101;
8534let isTerminator = 1;
8535let isIndirectBranch = 1;
8536let isBranch = 1;
8537let cofRelax1 = 1;
8538let cofRelax2 = 1;
8539let cofMax1 = 1;
8540}
8541def J4_jumpseti : HInst<
8542(outs GeneralSubRegs:$Rd16),
8543(ins u6_0Imm:$II, b30_2Imm:$Ii),
8544"$Rd16 = #$II ; jump $Ii",
8545tc_5502c366, TypeCJ>, Enc_9e4c3f {
8546let Inst{0-0} = 0b0;
8547let Inst{31-22} = 0b0001011000;
8548let hasNewValue = 1;
8549let opNewValue = 0;
8550let isTerminator = 1;
8551let isBranch = 1;
8552let cofRelax2 = 1;
8553let cofMax1 = 1;
8554let Defs = [PC];
8555let isExtendable = 1;
8556let opExtendable = 2;
8557let isExtentSigned = 1;
8558let opExtentBits = 11;
8559let opExtentAlign = 2;
8560}
8561def J4_jumpsetr : HInst<
8562(outs GeneralSubRegs:$Rd16),
8563(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8564"$Rd16 = $Rs16 ; jump $Ii",
8565tc_5502c366, TypeCJ>, Enc_66bce1 {
8566let Inst{0-0} = 0b0;
8567let Inst{13-12} = 0b00;
8568let Inst{31-22} = 0b0001011100;
8569let hasNewValue = 1;
8570let opNewValue = 0;
8571let isTerminator = 1;
8572let isBranch = 1;
8573let cofRelax2 = 1;
8574let cofMax1 = 1;
8575let Defs = [PC];
8576let isExtendable = 1;
8577let opExtendable = 2;
8578let isExtentSigned = 1;
8579let opExtentBits = 11;
8580let opExtentAlign = 2;
8581}
8582def J4_tstbit0_f_jumpnv_nt : HInst<
8583(outs),
8584(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8585"if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8586tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8587let Inst{0-0} = 0b0;
8588let Inst{13-8} = 0b000000;
8589let Inst{19-19} = 0b0;
8590let Inst{31-22} = 0b0010010111;
8591let isPredicated = 1;
8592let isPredicatedFalse = 1;
8593let isTerminator = 1;
8594let isBranch = 1;
8595let isNewValue = 1;
8596let cofMax1 = 1;
8597let isRestrictNoSlot1Store = 1;
8598let Defs = [PC];
8599let isTaken = Inst{13};
8600let isExtendable = 1;
8601let opExtendable = 1;
8602let isExtentSigned = 1;
8603let opExtentBits = 11;
8604let opExtentAlign = 2;
8605let opNewValue = 0;
8606}
8607def J4_tstbit0_f_jumpnv_t : HInst<
8608(outs),
8609(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8610"if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8611tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8612let Inst{0-0} = 0b0;
8613let Inst{13-8} = 0b100000;
8614let Inst{19-19} = 0b0;
8615let Inst{31-22} = 0b0010010111;
8616let isPredicated = 1;
8617let isPredicatedFalse = 1;
8618let isTerminator = 1;
8619let isBranch = 1;
8620let isNewValue = 1;
8621let cofMax1 = 1;
8622let isRestrictNoSlot1Store = 1;
8623let Defs = [PC];
8624let isTaken = Inst{13};
8625let isExtendable = 1;
8626let opExtendable = 1;
8627let isExtentSigned = 1;
8628let opExtentBits = 11;
8629let opExtentAlign = 2;
8630let opNewValue = 0;
8631}
8632def J4_tstbit0_fp0_jump_nt : HInst<
8633(outs),
8634(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8635"p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8636tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8637let Inst{0-0} = 0b0;
8638let Inst{13-8} = 0b000011;
8639let Inst{31-22} = 0b0001000111;
8640let isPredicated = 1;
8641let isPredicatedFalse = 1;
8642let isTerminator = 1;
8643let isBranch = 1;
8644let isPredicatedNew = 1;
8645let cofRelax1 = 1;
8646let cofRelax2 = 1;
8647let cofMax1 = 1;
8648let Uses = [P0];
8649let Defs = [P0, PC];
8650let isTaken = Inst{13};
8651let isExtendable = 1;
8652let opExtendable = 1;
8653let isExtentSigned = 1;
8654let opExtentBits = 11;
8655let opExtentAlign = 2;
8656}
8657def J4_tstbit0_fp0_jump_t : HInst<
8658(outs),
8659(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8660"p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8661tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8662let Inst{0-0} = 0b0;
8663let Inst{13-8} = 0b100011;
8664let Inst{31-22} = 0b0001000111;
8665let isPredicated = 1;
8666let isPredicatedFalse = 1;
8667let isTerminator = 1;
8668let isBranch = 1;
8669let isPredicatedNew = 1;
8670let cofRelax1 = 1;
8671let cofRelax2 = 1;
8672let cofMax1 = 1;
8673let Uses = [P0];
8674let Defs = [P0, PC];
8675let isTaken = Inst{13};
8676let isExtendable = 1;
8677let opExtendable = 1;
8678let isExtentSigned = 1;
8679let opExtentBits = 11;
8680let opExtentAlign = 2;
8681}
8682def J4_tstbit0_fp1_jump_nt : HInst<
8683(outs),
8684(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8685"p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8686tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8687let Inst{0-0} = 0b0;
8688let Inst{13-8} = 0b000011;
8689let Inst{31-22} = 0b0001001111;
8690let isPredicated = 1;
8691let isPredicatedFalse = 1;
8692let isTerminator = 1;
8693let isBranch = 1;
8694let isPredicatedNew = 1;
8695let cofRelax1 = 1;
8696let cofRelax2 = 1;
8697let cofMax1 = 1;
8698let Uses = [P1];
8699let Defs = [P1, PC];
8700let isTaken = Inst{13};
8701let isExtendable = 1;
8702let opExtendable = 1;
8703let isExtentSigned = 1;
8704let opExtentBits = 11;
8705let opExtentAlign = 2;
8706}
8707def J4_tstbit0_fp1_jump_t : HInst<
8708(outs),
8709(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8710"p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8711tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8712let Inst{0-0} = 0b0;
8713let Inst{13-8} = 0b100011;
8714let Inst{31-22} = 0b0001001111;
8715let isPredicated = 1;
8716let isPredicatedFalse = 1;
8717let isTerminator = 1;
8718let isBranch = 1;
8719let isPredicatedNew = 1;
8720let cofRelax1 = 1;
8721let cofRelax2 = 1;
8722let cofMax1 = 1;
8723let Uses = [P1];
8724let Defs = [P1, PC];
8725let isTaken = Inst{13};
8726let isExtendable = 1;
8727let opExtendable = 1;
8728let isExtentSigned = 1;
8729let opExtentBits = 11;
8730let opExtentAlign = 2;
8731}
8732def J4_tstbit0_t_jumpnv_nt : HInst<
8733(outs),
8734(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8735"if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8736tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8737let Inst{0-0} = 0b0;
8738let Inst{13-8} = 0b000000;
8739let Inst{19-19} = 0b0;
8740let Inst{31-22} = 0b0010010110;
8741let isPredicated = 1;
8742let isTerminator = 1;
8743let isBranch = 1;
8744let isNewValue = 1;
8745let cofMax1 = 1;
8746let isRestrictNoSlot1Store = 1;
8747let Defs = [PC];
8748let isTaken = Inst{13};
8749let isExtendable = 1;
8750let opExtendable = 1;
8751let isExtentSigned = 1;
8752let opExtentBits = 11;
8753let opExtentAlign = 2;
8754let opNewValue = 0;
8755}
8756def J4_tstbit0_t_jumpnv_t : HInst<
8757(outs),
8758(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8759"if (tstbit($Ns8.new,#0)) jump:t $Ii",
8760tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8761let Inst{0-0} = 0b0;
8762let Inst{13-8} = 0b100000;
8763let Inst{19-19} = 0b0;
8764let Inst{31-22} = 0b0010010110;
8765let isPredicated = 1;
8766let isTerminator = 1;
8767let isBranch = 1;
8768let isNewValue = 1;
8769let cofMax1 = 1;
8770let isRestrictNoSlot1Store = 1;
8771let Defs = [PC];
8772let isTaken = Inst{13};
8773let isExtendable = 1;
8774let opExtendable = 1;
8775let isExtentSigned = 1;
8776let opExtentBits = 11;
8777let opExtentAlign = 2;
8778let opNewValue = 0;
8779}
8780def J4_tstbit0_tp0_jump_nt : HInst<
8781(outs),
8782(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8783"p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8784tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8785let Inst{0-0} = 0b0;
8786let Inst{13-8} = 0b000011;
8787let Inst{31-22} = 0b0001000110;
8788let isPredicated = 1;
8789let isTerminator = 1;
8790let isBranch = 1;
8791let isPredicatedNew = 1;
8792let cofRelax1 = 1;
8793let cofRelax2 = 1;
8794let cofMax1 = 1;
8795let Uses = [P0];
8796let Defs = [P0, PC];
8797let isTaken = Inst{13};
8798let isExtendable = 1;
8799let opExtendable = 1;
8800let isExtentSigned = 1;
8801let opExtentBits = 11;
8802let opExtentAlign = 2;
8803}
8804def J4_tstbit0_tp0_jump_t : HInst<
8805(outs),
8806(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8807"p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8808tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8809let Inst{0-0} = 0b0;
8810let Inst{13-8} = 0b100011;
8811let Inst{31-22} = 0b0001000110;
8812let isPredicated = 1;
8813let isTerminator = 1;
8814let isBranch = 1;
8815let isPredicatedNew = 1;
8816let cofRelax1 = 1;
8817let cofRelax2 = 1;
8818let cofMax1 = 1;
8819let Uses = [P0];
8820let Defs = [P0, PC];
8821let isTaken = Inst{13};
8822let isExtendable = 1;
8823let opExtendable = 1;
8824let isExtentSigned = 1;
8825let opExtentBits = 11;
8826let opExtentAlign = 2;
8827}
8828def J4_tstbit0_tp1_jump_nt : HInst<
8829(outs),
8830(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8831"p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8832tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8833let Inst{0-0} = 0b0;
8834let Inst{13-8} = 0b000011;
8835let Inst{31-22} = 0b0001001110;
8836let isPredicated = 1;
8837let isTerminator = 1;
8838let isBranch = 1;
8839let isPredicatedNew = 1;
8840let cofRelax1 = 1;
8841let cofRelax2 = 1;
8842let cofMax1 = 1;
8843let Uses = [P1];
8844let Defs = [P1, PC];
8845let isTaken = Inst{13};
8846let isExtendable = 1;
8847let opExtendable = 1;
8848let isExtentSigned = 1;
8849let opExtentBits = 11;
8850let opExtentAlign = 2;
8851}
8852def J4_tstbit0_tp1_jump_t : HInst<
8853(outs),
8854(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8855"p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8856tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8857let Inst{0-0} = 0b0;
8858let Inst{13-8} = 0b100011;
8859let Inst{31-22} = 0b0001001110;
8860let isPredicated = 1;
8861let isTerminator = 1;
8862let isBranch = 1;
8863let isPredicatedNew = 1;
8864let cofRelax1 = 1;
8865let cofRelax2 = 1;
8866let cofMax1 = 1;
8867let Uses = [P1];
8868let Defs = [P1, PC];
8869let isTaken = Inst{13};
8870let isExtendable = 1;
8871let opExtendable = 1;
8872let isExtentSigned = 1;
8873let opExtentBits = 11;
8874let opExtentAlign = 2;
8875}
8876def L2_deallocframe : HInst<
8877(outs DoubleRegs:$Rdd32),
8878(ins IntRegs:$Rs32),
8879"$Rdd32 = deallocframe($Rs32):raw",
8880tc_e9170fb7, TypeLD>, Enc_3a3d62 {
8881let Inst{13-5} = 0b000000000;
8882let Inst{31-21} = 0b10010000000;
8883let accessSize = DoubleWordAccess;
8884let mayLoad = 1;
8885let Uses = [FRAMEKEY];
8886let Defs = [R29];
8887}
8888def L2_loadalignb_io : HInst<
8889(outs DoubleRegs:$Ryy32),
8890(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8891"$Ryy32 = memb_fifo($Rs32+#$Ii)",
8892tc_fedb7e19, TypeLD>, Enc_a27588 {
8893let Inst{24-21} = 0b0100;
8894let Inst{31-27} = 0b10010;
8895let addrMode = BaseImmOffset;
8896let accessSize = ByteAccess;
8897let mayLoad = 1;
8898let isExtendable = 1;
8899let opExtendable = 3;
8900let isExtentSigned = 1;
8901let opExtentBits = 11;
8902let opExtentAlign = 0;
8903let Constraints = "$Ryy32 = $Ryy32in";
8904}
8905def L2_loadalignb_pbr : HInst<
8906(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8907(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8908"$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8909tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8910let Inst{12-5} = 0b00000000;
8911let Inst{31-21} = 0b10011110100;
8912let addrMode = PostInc;
8913let accessSize = ByteAccess;
8914let mayLoad = 1;
8915let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8916}
8917def L2_loadalignb_pci : HInst<
8918(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8919(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8920"$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8921tc_76bb5435, TypeLD>, Enc_74aef2 {
8922let Inst{12-9} = 0b0000;
8923let Inst{31-21} = 0b10011000100;
8924let addrMode = PostInc;
8925let accessSize = ByteAccess;
8926let mayLoad = 1;
8927let Uses = [CS];
8928let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8929}
8930def L2_loadalignb_pcr : HInst<
8931(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8932(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8933"$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8934tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8935let Inst{12-5} = 0b00010000;
8936let Inst{31-21} = 0b10011000100;
8937let addrMode = PostInc;
8938let accessSize = ByteAccess;
8939let mayLoad = 1;
8940let Uses = [CS];
8941let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8942}
8943def L2_loadalignb_pi : HInst<
8944(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8945(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8946"$Ryy32 = memb_fifo($Rx32++#$Ii)",
8947tc_1c7522a8, TypeLD>, Enc_6b197f {
8948let Inst{13-9} = 0b00000;
8949let Inst{31-21} = 0b10011010100;
8950let addrMode = PostInc;
8951let accessSize = ByteAccess;
8952let mayLoad = 1;
8953let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8954}
8955def L2_loadalignb_pr : HInst<
8956(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8957(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8958"$Ryy32 = memb_fifo($Rx32++$Mu2)",
8959tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8960let Inst{12-5} = 0b00000000;
8961let Inst{31-21} = 0b10011100100;
8962let addrMode = PostInc;
8963let accessSize = ByteAccess;
8964let mayLoad = 1;
8965let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8966}
8967def L2_loadalignb_zomap : HInst<
8968(outs DoubleRegs:$Ryy32),
8969(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8970"$Ryy32 = memb_fifo($Rs32)",
8971tc_fedb7e19, TypeMAPPING> {
8972let isPseudo = 1;
8973let isCodeGenOnly = 1;
8974let Constraints = "$Ryy32 = $Ryy32in";
8975}
8976def L2_loadalignh_io : HInst<
8977(outs DoubleRegs:$Ryy32),
8978(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8979"$Ryy32 = memh_fifo($Rs32+#$Ii)",
8980tc_fedb7e19, TypeLD>, Enc_5cd7e9 {
8981let Inst{24-21} = 0b0010;
8982let Inst{31-27} = 0b10010;
8983let addrMode = BaseImmOffset;
8984let accessSize = HalfWordAccess;
8985let mayLoad = 1;
8986let isExtendable = 1;
8987let opExtendable = 3;
8988let isExtentSigned = 1;
8989let opExtentBits = 12;
8990let opExtentAlign = 1;
8991let Constraints = "$Ryy32 = $Ryy32in";
8992}
8993def L2_loadalignh_pbr : HInst<
8994(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8995(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8996"$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8997tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8998let Inst{12-5} = 0b00000000;
8999let Inst{31-21} = 0b10011110010;
9000let addrMode = PostInc;
9001let accessSize = HalfWordAccess;
9002let mayLoad = 1;
9003let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9004}
9005def L2_loadalignh_pci : HInst<
9006(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9007(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9008"$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
9009tc_76bb5435, TypeLD>, Enc_9e2e1c {
9010let Inst{12-9} = 0b0000;
9011let Inst{31-21} = 0b10011000010;
9012let addrMode = PostInc;
9013let accessSize = HalfWordAccess;
9014let mayLoad = 1;
9015let Uses = [CS];
9016let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9017}
9018def L2_loadalignh_pcr : HInst<
9019(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9020(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9021"$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
9022tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9023let Inst{12-5} = 0b00010000;
9024let Inst{31-21} = 0b10011000010;
9025let addrMode = PostInc;
9026let accessSize = HalfWordAccess;
9027let mayLoad = 1;
9028let Uses = [CS];
9029let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9030}
9031def L2_loadalignh_pi : HInst<
9032(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9033(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
9034"$Ryy32 = memh_fifo($Rx32++#$Ii)",
9035tc_1c7522a8, TypeLD>, Enc_bd1cbc {
9036let Inst{13-9} = 0b00000;
9037let Inst{31-21} = 0b10011010010;
9038let addrMode = PostInc;
9039let accessSize = HalfWordAccess;
9040let mayLoad = 1;
9041let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9042}
9043def L2_loadalignh_pr : HInst<
9044(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9045(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9046"$Ryy32 = memh_fifo($Rx32++$Mu2)",
9047tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9048let Inst{12-5} = 0b00000000;
9049let Inst{31-21} = 0b10011100010;
9050let addrMode = PostInc;
9051let accessSize = HalfWordAccess;
9052let mayLoad = 1;
9053let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9054}
9055def L2_loadalignh_zomap : HInst<
9056(outs DoubleRegs:$Ryy32),
9057(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
9058"$Ryy32 = memh_fifo($Rs32)",
9059tc_fedb7e19, TypeMAPPING> {
9060let isPseudo = 1;
9061let isCodeGenOnly = 1;
9062let Constraints = "$Ryy32 = $Ryy32in";
9063}
9064def L2_loadbsw2_io : HInst<
9065(outs IntRegs:$Rd32),
9066(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9067"$Rd32 = membh($Rs32+#$Ii)",
9068tc_4222e6bf, TypeLD>, Enc_de0214 {
9069let Inst{24-21} = 0b0001;
9070let Inst{31-27} = 0b10010;
9071let hasNewValue = 1;
9072let opNewValue = 0;
9073let addrMode = BaseImmOffset;
9074let accessSize = HalfWordAccess;
9075let mayLoad = 1;
9076let isExtendable = 1;
9077let opExtendable = 2;
9078let isExtentSigned = 1;
9079let opExtentBits = 12;
9080let opExtentAlign = 1;
9081}
9082def L2_loadbsw2_pbr : HInst<
9083(outs IntRegs:$Rd32, IntRegs:$Rx32),
9084(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9085"$Rd32 = membh($Rx32++$Mu2:brev)",
9086tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9087let Inst{12-5} = 0b00000000;
9088let Inst{31-21} = 0b10011110001;
9089let hasNewValue = 1;
9090let opNewValue = 0;
9091let addrMode = PostInc;
9092let accessSize = HalfWordAccess;
9093let mayLoad = 1;
9094let Constraints = "$Rx32 = $Rx32in";
9095}
9096def L2_loadbsw2_pci : HInst<
9097(outs IntRegs:$Rd32, IntRegs:$Rx32),
9098(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9099"$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
9100tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9101let Inst{12-9} = 0b0000;
9102let Inst{31-21} = 0b10011000001;
9103let hasNewValue = 1;
9104let opNewValue = 0;
9105let addrMode = PostInc;
9106let accessSize = HalfWordAccess;
9107let mayLoad = 1;
9108let Uses = [CS];
9109let Constraints = "$Rx32 = $Rx32in";
9110}
9111def L2_loadbsw2_pcr : HInst<
9112(outs IntRegs:$Rd32, IntRegs:$Rx32),
9113(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9114"$Rd32 = membh($Rx32++I:circ($Mu2))",
9115tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9116let Inst{12-5} = 0b00010000;
9117let Inst{31-21} = 0b10011000001;
9118let hasNewValue = 1;
9119let opNewValue = 0;
9120let addrMode = PostInc;
9121let accessSize = HalfWordAccess;
9122let mayLoad = 1;
9123let Uses = [CS];
9124let Constraints = "$Rx32 = $Rx32in";
9125}
9126def L2_loadbsw2_pi : HInst<
9127(outs IntRegs:$Rd32, IntRegs:$Rx32),
9128(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9129"$Rd32 = membh($Rx32++#$Ii)",
9130tc_075c8dd8, TypeLD>, Enc_152467 {
9131let Inst{13-9} = 0b00000;
9132let Inst{31-21} = 0b10011010001;
9133let hasNewValue = 1;
9134let opNewValue = 0;
9135let addrMode = PostInc;
9136let accessSize = HalfWordAccess;
9137let mayLoad = 1;
9138let Constraints = "$Rx32 = $Rx32in";
9139}
9140def L2_loadbsw2_pr : HInst<
9141(outs IntRegs:$Rd32, IntRegs:$Rx32),
9142(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9143"$Rd32 = membh($Rx32++$Mu2)",
9144tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9145let Inst{12-5} = 0b00000000;
9146let Inst{31-21} = 0b10011100001;
9147let hasNewValue = 1;
9148let opNewValue = 0;
9149let addrMode = PostInc;
9150let accessSize = HalfWordAccess;
9151let mayLoad = 1;
9152let Constraints = "$Rx32 = $Rx32in";
9153}
9154def L2_loadbsw2_zomap : HInst<
9155(outs IntRegs:$Rd32),
9156(ins IntRegs:$Rs32),
9157"$Rd32 = membh($Rs32)",
9158tc_4222e6bf, TypeMAPPING> {
9159let hasNewValue = 1;
9160let opNewValue = 0;
9161let isPseudo = 1;
9162let isCodeGenOnly = 1;
9163}
9164def L2_loadbsw4_io : HInst<
9165(outs DoubleRegs:$Rdd32),
9166(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9167"$Rdd32 = membh($Rs32+#$Ii)",
9168tc_4222e6bf, TypeLD>, Enc_2d7491 {
9169let Inst{24-21} = 0b0111;
9170let Inst{31-27} = 0b10010;
9171let addrMode = BaseImmOffset;
9172let accessSize = WordAccess;
9173let mayLoad = 1;
9174let isExtendable = 1;
9175let opExtendable = 2;
9176let isExtentSigned = 1;
9177let opExtentBits = 13;
9178let opExtentAlign = 2;
9179}
9180def L2_loadbsw4_pbr : HInst<
9181(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9182(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9183"$Rdd32 = membh($Rx32++$Mu2:brev)",
9184tc_075c8dd8, TypeLD>, Enc_7eee72 {
9185let Inst{12-5} = 0b00000000;
9186let Inst{31-21} = 0b10011110111;
9187let addrMode = PostInc;
9188let accessSize = WordAccess;
9189let mayLoad = 1;
9190let Constraints = "$Rx32 = $Rx32in";
9191}
9192def L2_loadbsw4_pci : HInst<
9193(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9194(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9195"$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9196tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9197let Inst{12-9} = 0b0000;
9198let Inst{31-21} = 0b10011000111;
9199let addrMode = PostInc;
9200let accessSize = WordAccess;
9201let mayLoad = 1;
9202let Uses = [CS];
9203let Constraints = "$Rx32 = $Rx32in";
9204}
9205def L2_loadbsw4_pcr : HInst<
9206(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9207(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9208"$Rdd32 = membh($Rx32++I:circ($Mu2))",
9209tc_075c8dd8, TypeLD>, Enc_7eee72 {
9210let Inst{12-5} = 0b00010000;
9211let Inst{31-21} = 0b10011000111;
9212let addrMode = PostInc;
9213let accessSize = WordAccess;
9214let mayLoad = 1;
9215let Uses = [CS];
9216let Constraints = "$Rx32 = $Rx32in";
9217}
9218def L2_loadbsw4_pi : HInst<
9219(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9220(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9221"$Rdd32 = membh($Rx32++#$Ii)",
9222tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9223let Inst{13-9} = 0b00000;
9224let Inst{31-21} = 0b10011010111;
9225let addrMode = PostInc;
9226let accessSize = WordAccess;
9227let mayLoad = 1;
9228let Constraints = "$Rx32 = $Rx32in";
9229}
9230def L2_loadbsw4_pr : HInst<
9231(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9232(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9233"$Rdd32 = membh($Rx32++$Mu2)",
9234tc_075c8dd8, TypeLD>, Enc_7eee72 {
9235let Inst{12-5} = 0b00000000;
9236let Inst{31-21} = 0b10011100111;
9237let addrMode = PostInc;
9238let accessSize = WordAccess;
9239let mayLoad = 1;
9240let Constraints = "$Rx32 = $Rx32in";
9241}
9242def L2_loadbsw4_zomap : HInst<
9243(outs DoubleRegs:$Rdd32),
9244(ins IntRegs:$Rs32),
9245"$Rdd32 = membh($Rs32)",
9246tc_4222e6bf, TypeMAPPING> {
9247let isPseudo = 1;
9248let isCodeGenOnly = 1;
9249}
9250def L2_loadbzw2_io : HInst<
9251(outs IntRegs:$Rd32),
9252(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9253"$Rd32 = memubh($Rs32+#$Ii)",
9254tc_4222e6bf, TypeLD>, Enc_de0214 {
9255let Inst{24-21} = 0b0011;
9256let Inst{31-27} = 0b10010;
9257let hasNewValue = 1;
9258let opNewValue = 0;
9259let addrMode = BaseImmOffset;
9260let accessSize = HalfWordAccess;
9261let mayLoad = 1;
9262let isExtendable = 1;
9263let opExtendable = 2;
9264let isExtentSigned = 1;
9265let opExtentBits = 12;
9266let opExtentAlign = 1;
9267}
9268def L2_loadbzw2_pbr : HInst<
9269(outs IntRegs:$Rd32, IntRegs:$Rx32),
9270(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9271"$Rd32 = memubh($Rx32++$Mu2:brev)",
9272tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9273let Inst{12-5} = 0b00000000;
9274let Inst{31-21} = 0b10011110011;
9275let hasNewValue = 1;
9276let opNewValue = 0;
9277let addrMode = PostInc;
9278let accessSize = HalfWordAccess;
9279let mayLoad = 1;
9280let Constraints = "$Rx32 = $Rx32in";
9281}
9282def L2_loadbzw2_pci : HInst<
9283(outs IntRegs:$Rd32, IntRegs:$Rx32),
9284(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9285"$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9286tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9287let Inst{12-9} = 0b0000;
9288let Inst{31-21} = 0b10011000011;
9289let hasNewValue = 1;
9290let opNewValue = 0;
9291let addrMode = PostInc;
9292let accessSize = HalfWordAccess;
9293let mayLoad = 1;
9294let Uses = [CS];
9295let Constraints = "$Rx32 = $Rx32in";
9296}
9297def L2_loadbzw2_pcr : HInst<
9298(outs IntRegs:$Rd32, IntRegs:$Rx32),
9299(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9300"$Rd32 = memubh($Rx32++I:circ($Mu2))",
9301tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9302let Inst{12-5} = 0b00010000;
9303let Inst{31-21} = 0b10011000011;
9304let hasNewValue = 1;
9305let opNewValue = 0;
9306let addrMode = PostInc;
9307let accessSize = HalfWordAccess;
9308let mayLoad = 1;
9309let Uses = [CS];
9310let Constraints = "$Rx32 = $Rx32in";
9311}
9312def L2_loadbzw2_pi : HInst<
9313(outs IntRegs:$Rd32, IntRegs:$Rx32),
9314(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9315"$Rd32 = memubh($Rx32++#$Ii)",
9316tc_075c8dd8, TypeLD>, Enc_152467 {
9317let Inst{13-9} = 0b00000;
9318let Inst{31-21} = 0b10011010011;
9319let hasNewValue = 1;
9320let opNewValue = 0;
9321let addrMode = PostInc;
9322let accessSize = HalfWordAccess;
9323let mayLoad = 1;
9324let Constraints = "$Rx32 = $Rx32in";
9325}
9326def L2_loadbzw2_pr : HInst<
9327(outs IntRegs:$Rd32, IntRegs:$Rx32),
9328(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9329"$Rd32 = memubh($Rx32++$Mu2)",
9330tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9331let Inst{12-5} = 0b00000000;
9332let Inst{31-21} = 0b10011100011;
9333let hasNewValue = 1;
9334let opNewValue = 0;
9335let addrMode = PostInc;
9336let accessSize = HalfWordAccess;
9337let mayLoad = 1;
9338let Constraints = "$Rx32 = $Rx32in";
9339}
9340def L2_loadbzw2_zomap : HInst<
9341(outs IntRegs:$Rd32),
9342(ins IntRegs:$Rs32),
9343"$Rd32 = memubh($Rs32)",
9344tc_4222e6bf, TypeMAPPING> {
9345let hasNewValue = 1;
9346let opNewValue = 0;
9347let isPseudo = 1;
9348let isCodeGenOnly = 1;
9349}
9350def L2_loadbzw4_io : HInst<
9351(outs DoubleRegs:$Rdd32),
9352(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9353"$Rdd32 = memubh($Rs32+#$Ii)",
9354tc_4222e6bf, TypeLD>, Enc_2d7491 {
9355let Inst{24-21} = 0b0101;
9356let Inst{31-27} = 0b10010;
9357let addrMode = BaseImmOffset;
9358let accessSize = WordAccess;
9359let mayLoad = 1;
9360let isExtendable = 1;
9361let opExtendable = 2;
9362let isExtentSigned = 1;
9363let opExtentBits = 13;
9364let opExtentAlign = 2;
9365}
9366def L2_loadbzw4_pbr : HInst<
9367(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9368(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9369"$Rdd32 = memubh($Rx32++$Mu2:brev)",
9370tc_075c8dd8, TypeLD>, Enc_7eee72 {
9371let Inst{12-5} = 0b00000000;
9372let Inst{31-21} = 0b10011110101;
9373let addrMode = PostInc;
9374let accessSize = WordAccess;
9375let mayLoad = 1;
9376let Constraints = "$Rx32 = $Rx32in";
9377}
9378def L2_loadbzw4_pci : HInst<
9379(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9380(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9381"$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9382tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9383let Inst{12-9} = 0b0000;
9384let Inst{31-21} = 0b10011000101;
9385let addrMode = PostInc;
9386let accessSize = WordAccess;
9387let mayLoad = 1;
9388let Uses = [CS];
9389let Constraints = "$Rx32 = $Rx32in";
9390}
9391def L2_loadbzw4_pcr : HInst<
9392(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9393(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9394"$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9395tc_075c8dd8, TypeLD>, Enc_7eee72 {
9396let Inst{12-5} = 0b00010000;
9397let Inst{31-21} = 0b10011000101;
9398let addrMode = PostInc;
9399let accessSize = WordAccess;
9400let mayLoad = 1;
9401let Uses = [CS];
9402let Constraints = "$Rx32 = $Rx32in";
9403}
9404def L2_loadbzw4_pi : HInst<
9405(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9406(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9407"$Rdd32 = memubh($Rx32++#$Ii)",
9408tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9409let Inst{13-9} = 0b00000;
9410let Inst{31-21} = 0b10011010101;
9411let addrMode = PostInc;
9412let accessSize = WordAccess;
9413let mayLoad = 1;
9414let Constraints = "$Rx32 = $Rx32in";
9415}
9416def L2_loadbzw4_pr : HInst<
9417(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9418(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9419"$Rdd32 = memubh($Rx32++$Mu2)",
9420tc_075c8dd8, TypeLD>, Enc_7eee72 {
9421let Inst{12-5} = 0b00000000;
9422let Inst{31-21} = 0b10011100101;
9423let addrMode = PostInc;
9424let accessSize = WordAccess;
9425let mayLoad = 1;
9426let Constraints = "$Rx32 = $Rx32in";
9427}
9428def L2_loadbzw4_zomap : HInst<
9429(outs DoubleRegs:$Rdd32),
9430(ins IntRegs:$Rs32),
9431"$Rdd32 = memubh($Rs32)",
9432tc_4222e6bf, TypeMAPPING> {
9433let isPseudo = 1;
9434let isCodeGenOnly = 1;
9435}
9436def L2_loadrb_io : HInst<
9437(outs IntRegs:$Rd32),
9438(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9439"$Rd32 = memb($Rs32+#$Ii)",
9440tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9441let Inst{24-21} = 0b1000;
9442let Inst{31-27} = 0b10010;
9443let hasNewValue = 1;
9444let opNewValue = 0;
9445let addrMode = BaseImmOffset;
9446let accessSize = ByteAccess;
9447let mayLoad = 1;
9448let BaseOpcode = "L2_loadrb_io";
9449let CextOpcode = "L2_loadrb";
9450let isPredicable = 1;
9451let isExtendable = 1;
9452let opExtendable = 2;
9453let isExtentSigned = 1;
9454let opExtentBits = 11;
9455let opExtentAlign = 0;
9456}
9457def L2_loadrb_pbr : HInst<
9458(outs IntRegs:$Rd32, IntRegs:$Rx32),
9459(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9460"$Rd32 = memb($Rx32++$Mu2:brev)",
9461tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9462let Inst{12-5} = 0b00000000;
9463let Inst{31-21} = 0b10011111000;
9464let hasNewValue = 1;
9465let opNewValue = 0;
9466let addrMode = PostInc;
9467let accessSize = ByteAccess;
9468let mayLoad = 1;
9469let Constraints = "$Rx32 = $Rx32in";
9470}
9471def L2_loadrb_pci : HInst<
9472(outs IntRegs:$Rd32, IntRegs:$Rx32),
9473(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9474"$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9475tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9476let Inst{12-9} = 0b0000;
9477let Inst{31-21} = 0b10011001000;
9478let hasNewValue = 1;
9479let opNewValue = 0;
9480let addrMode = PostInc;
9481let accessSize = ByteAccess;
9482let mayLoad = 1;
9483let Uses = [CS];
9484let Constraints = "$Rx32 = $Rx32in";
9485}
9486def L2_loadrb_pcr : HInst<
9487(outs IntRegs:$Rd32, IntRegs:$Rx32),
9488(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9489"$Rd32 = memb($Rx32++I:circ($Mu2))",
9490tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9491let Inst{12-5} = 0b00010000;
9492let Inst{31-21} = 0b10011001000;
9493let hasNewValue = 1;
9494let opNewValue = 0;
9495let addrMode = PostInc;
9496let accessSize = ByteAccess;
9497let mayLoad = 1;
9498let Uses = [CS];
9499let Constraints = "$Rx32 = $Rx32in";
9500}
9501def L2_loadrb_pi : HInst<
9502(outs IntRegs:$Rd32, IntRegs:$Rx32),
9503(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9504"$Rd32 = memb($Rx32++#$Ii)",
9505tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9506let Inst{13-9} = 0b00000;
9507let Inst{31-21} = 0b10011011000;
9508let hasNewValue = 1;
9509let opNewValue = 0;
9510let addrMode = PostInc;
9511let accessSize = ByteAccess;
9512let mayLoad = 1;
9513let BaseOpcode = "L2_loadrb_pi";
9514let CextOpcode = "L2_loadrb";
9515let isPredicable = 1;
9516let Constraints = "$Rx32 = $Rx32in";
9517}
9518def L2_loadrb_pr : HInst<
9519(outs IntRegs:$Rd32, IntRegs:$Rx32),
9520(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9521"$Rd32 = memb($Rx32++$Mu2)",
9522tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9523let Inst{12-5} = 0b00000000;
9524let Inst{31-21} = 0b10011101000;
9525let hasNewValue = 1;
9526let opNewValue = 0;
9527let addrMode = PostInc;
9528let accessSize = ByteAccess;
9529let mayLoad = 1;
9530let Constraints = "$Rx32 = $Rx32in";
9531}
9532def L2_loadrb_zomap : HInst<
9533(outs IntRegs:$Rd32),
9534(ins IntRegs:$Rs32),
9535"$Rd32 = memb($Rs32)",
9536tc_4222e6bf, TypeMAPPING> {
9537let hasNewValue = 1;
9538let opNewValue = 0;
9539let isPseudo = 1;
9540let isCodeGenOnly = 1;
9541}
9542def L2_loadrbgp : HInst<
9543(outs IntRegs:$Rd32),
9544(ins u32_0Imm:$Ii),
9545"$Rd32 = memb(gp+#$Ii)",
9546tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9547let Inst{24-21} = 0b1000;
9548let Inst{31-27} = 0b01001;
9549let hasNewValue = 1;
9550let opNewValue = 0;
9551let accessSize = ByteAccess;
9552let mayLoad = 1;
9553let Uses = [GP];
9554let BaseOpcode = "L4_loadrb_abs";
9555let isPredicable = 1;
9556let opExtendable = 1;
9557let isExtentSigned = 0;
9558let opExtentBits = 16;
9559let opExtentAlign = 0;
9560}
9561def L2_loadrd_io : HInst<
9562(outs DoubleRegs:$Rdd32),
9563(ins IntRegs:$Rs32, s29_3Imm:$Ii),
9564"$Rdd32 = memd($Rs32+#$Ii)",
9565tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9566let Inst{24-21} = 0b1110;
9567let Inst{31-27} = 0b10010;
9568let addrMode = BaseImmOffset;
9569let accessSize = DoubleWordAccess;
9570let mayLoad = 1;
9571let BaseOpcode = "L2_loadrd_io";
9572let CextOpcode = "L2_loadrd";
9573let isPredicable = 1;
9574let isExtendable = 1;
9575let opExtendable = 2;
9576let isExtentSigned = 1;
9577let opExtentBits = 14;
9578let opExtentAlign = 3;
9579}
9580def L2_loadrd_pbr : HInst<
9581(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9582(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9583"$Rdd32 = memd($Rx32++$Mu2:brev)",
9584tc_075c8dd8, TypeLD>, Enc_7eee72 {
9585let Inst{12-5} = 0b00000000;
9586let Inst{31-21} = 0b10011111110;
9587let addrMode = PostInc;
9588let accessSize = DoubleWordAccess;
9589let mayLoad = 1;
9590let Constraints = "$Rx32 = $Rx32in";
9591}
9592def L2_loadrd_pci : HInst<
9593(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9594(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9595"$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9596tc_5ceb2f9e, TypeLD>, Enc_b05839 {
9597let Inst{12-9} = 0b0000;
9598let Inst{31-21} = 0b10011001110;
9599let addrMode = PostInc;
9600let accessSize = DoubleWordAccess;
9601let mayLoad = 1;
9602let Uses = [CS];
9603let Constraints = "$Rx32 = $Rx32in";
9604}
9605def L2_loadrd_pcr : HInst<
9606(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9607(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9608"$Rdd32 = memd($Rx32++I:circ($Mu2))",
9609tc_075c8dd8, TypeLD>, Enc_7eee72 {
9610let Inst{12-5} = 0b00010000;
9611let Inst{31-21} = 0b10011001110;
9612let addrMode = PostInc;
9613let accessSize = DoubleWordAccess;
9614let mayLoad = 1;
9615let Uses = [CS];
9616let Constraints = "$Rx32 = $Rx32in";
9617}
9618def L2_loadrd_pi : HInst<
9619(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9620(ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9621"$Rdd32 = memd($Rx32++#$Ii)",
9622tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9623let Inst{13-9} = 0b00000;
9624let Inst{31-21} = 0b10011011110;
9625let addrMode = PostInc;
9626let accessSize = DoubleWordAccess;
9627let mayLoad = 1;
9628let BaseOpcode = "L2_loadrd_pi";
9629let CextOpcode = "L2_loadrd";
9630let isPredicable = 1;
9631let Constraints = "$Rx32 = $Rx32in";
9632}
9633def L2_loadrd_pr : HInst<
9634(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9635(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9636"$Rdd32 = memd($Rx32++$Mu2)",
9637tc_075c8dd8, TypeLD>, Enc_7eee72 {
9638let Inst{12-5} = 0b00000000;
9639let Inst{31-21} = 0b10011101110;
9640let addrMode = PostInc;
9641let accessSize = DoubleWordAccess;
9642let mayLoad = 1;
9643let Constraints = "$Rx32 = $Rx32in";
9644}
9645def L2_loadrd_zomap : HInst<
9646(outs DoubleRegs:$Rdd32),
9647(ins IntRegs:$Rs32),
9648"$Rdd32 = memd($Rs32)",
9649tc_4222e6bf, TypeMAPPING> {
9650let isPseudo = 1;
9651let isCodeGenOnly = 1;
9652}
9653def L2_loadrdgp : HInst<
9654(outs DoubleRegs:$Rdd32),
9655(ins u29_3Imm:$Ii),
9656"$Rdd32 = memd(gp+#$Ii)",
9657tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
9658let Inst{24-21} = 0b1110;
9659let Inst{31-27} = 0b01001;
9660let accessSize = DoubleWordAccess;
9661let mayLoad = 1;
9662let Uses = [GP];
9663let BaseOpcode = "L4_loadrd_abs";
9664let isPredicable = 1;
9665let opExtendable = 1;
9666let isExtentSigned = 0;
9667let opExtentBits = 19;
9668let opExtentAlign = 3;
9669}
9670def L2_loadrh_io : HInst<
9671(outs IntRegs:$Rd32),
9672(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9673"$Rd32 = memh($Rs32+#$Ii)",
9674tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9675let Inst{24-21} = 0b1010;
9676let Inst{31-27} = 0b10010;
9677let hasNewValue = 1;
9678let opNewValue = 0;
9679let addrMode = BaseImmOffset;
9680let accessSize = HalfWordAccess;
9681let mayLoad = 1;
9682let BaseOpcode = "L2_loadrh_io";
9683let CextOpcode = "L2_loadrh";
9684let isPredicable = 1;
9685let isExtendable = 1;
9686let opExtendable = 2;
9687let isExtentSigned = 1;
9688let opExtentBits = 12;
9689let opExtentAlign = 1;
9690}
9691def L2_loadrh_pbr : HInst<
9692(outs IntRegs:$Rd32, IntRegs:$Rx32),
9693(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9694"$Rd32 = memh($Rx32++$Mu2:brev)",
9695tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9696let Inst{12-5} = 0b00000000;
9697let Inst{31-21} = 0b10011111010;
9698let hasNewValue = 1;
9699let opNewValue = 0;
9700let addrMode = PostInc;
9701let accessSize = HalfWordAccess;
9702let mayLoad = 1;
9703let Constraints = "$Rx32 = $Rx32in";
9704}
9705def L2_loadrh_pci : HInst<
9706(outs IntRegs:$Rd32, IntRegs:$Rx32),
9707(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9708"$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9709tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9710let Inst{12-9} = 0b0000;
9711let Inst{31-21} = 0b10011001010;
9712let hasNewValue = 1;
9713let opNewValue = 0;
9714let addrMode = PostInc;
9715let accessSize = HalfWordAccess;
9716let mayLoad = 1;
9717let Uses = [CS];
9718let Constraints = "$Rx32 = $Rx32in";
9719}
9720def L2_loadrh_pcr : HInst<
9721(outs IntRegs:$Rd32, IntRegs:$Rx32),
9722(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9723"$Rd32 = memh($Rx32++I:circ($Mu2))",
9724tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9725let Inst{12-5} = 0b00010000;
9726let Inst{31-21} = 0b10011001010;
9727let hasNewValue = 1;
9728let opNewValue = 0;
9729let addrMode = PostInc;
9730let accessSize = HalfWordAccess;
9731let mayLoad = 1;
9732let Uses = [CS];
9733let Constraints = "$Rx32 = $Rx32in";
9734}
9735def L2_loadrh_pi : HInst<
9736(outs IntRegs:$Rd32, IntRegs:$Rx32),
9737(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9738"$Rd32 = memh($Rx32++#$Ii)",
9739tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9740let Inst{13-9} = 0b00000;
9741let Inst{31-21} = 0b10011011010;
9742let hasNewValue = 1;
9743let opNewValue = 0;
9744let addrMode = PostInc;
9745let accessSize = HalfWordAccess;
9746let mayLoad = 1;
9747let BaseOpcode = "L2_loadrh_pi";
9748let CextOpcode = "L2_loadrh";
9749let isPredicable = 1;
9750let Constraints = "$Rx32 = $Rx32in";
9751}
9752def L2_loadrh_pr : HInst<
9753(outs IntRegs:$Rd32, IntRegs:$Rx32),
9754(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9755"$Rd32 = memh($Rx32++$Mu2)",
9756tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9757let Inst{12-5} = 0b00000000;
9758let Inst{31-21} = 0b10011101010;
9759let hasNewValue = 1;
9760let opNewValue = 0;
9761let addrMode = PostInc;
9762let accessSize = HalfWordAccess;
9763let mayLoad = 1;
9764let Constraints = "$Rx32 = $Rx32in";
9765}
9766def L2_loadrh_zomap : HInst<
9767(outs IntRegs:$Rd32),
9768(ins IntRegs:$Rs32),
9769"$Rd32 = memh($Rs32)",
9770tc_4222e6bf, TypeMAPPING> {
9771let hasNewValue = 1;
9772let opNewValue = 0;
9773let isPseudo = 1;
9774let isCodeGenOnly = 1;
9775}
9776def L2_loadrhgp : HInst<
9777(outs IntRegs:$Rd32),
9778(ins u31_1Imm:$Ii),
9779"$Rd32 = memh(gp+#$Ii)",
9780tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9781let Inst{24-21} = 0b1010;
9782let Inst{31-27} = 0b01001;
9783let hasNewValue = 1;
9784let opNewValue = 0;
9785let accessSize = HalfWordAccess;
9786let mayLoad = 1;
9787let Uses = [GP];
9788let BaseOpcode = "L4_loadrh_abs";
9789let isPredicable = 1;
9790let opExtendable = 1;
9791let isExtentSigned = 0;
9792let opExtentBits = 17;
9793let opExtentAlign = 1;
9794}
9795def L2_loadri_io : HInst<
9796(outs IntRegs:$Rd32),
9797(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9798"$Rd32 = memw($Rs32+#$Ii)",
9799tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9800let Inst{24-21} = 0b1100;
9801let Inst{31-27} = 0b10010;
9802let hasNewValue = 1;
9803let opNewValue = 0;
9804let addrMode = BaseImmOffset;
9805let accessSize = WordAccess;
9806let mayLoad = 1;
9807let BaseOpcode = "L2_loadri_io";
9808let CextOpcode = "L2_loadri";
9809let isPredicable = 1;
9810let isExtendable = 1;
9811let opExtendable = 2;
9812let isExtentSigned = 1;
9813let opExtentBits = 13;
9814let opExtentAlign = 2;
9815}
9816def L2_loadri_pbr : HInst<
9817(outs IntRegs:$Rd32, IntRegs:$Rx32),
9818(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9819"$Rd32 = memw($Rx32++$Mu2:brev)",
9820tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9821let Inst{12-5} = 0b00000000;
9822let Inst{31-21} = 0b10011111100;
9823let hasNewValue = 1;
9824let opNewValue = 0;
9825let addrMode = PostInc;
9826let accessSize = WordAccess;
9827let mayLoad = 1;
9828let Constraints = "$Rx32 = $Rx32in";
9829}
9830def L2_loadri_pci : HInst<
9831(outs IntRegs:$Rd32, IntRegs:$Rx32),
9832(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9833"$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9834tc_5ceb2f9e, TypeLD>, Enc_27fd0e {
9835let Inst{12-9} = 0b0000;
9836let Inst{31-21} = 0b10011001100;
9837let hasNewValue = 1;
9838let opNewValue = 0;
9839let addrMode = PostInc;
9840let accessSize = WordAccess;
9841let mayLoad = 1;
9842let Uses = [CS];
9843let Constraints = "$Rx32 = $Rx32in";
9844}
9845def L2_loadri_pcr : HInst<
9846(outs IntRegs:$Rd32, IntRegs:$Rx32),
9847(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9848"$Rd32 = memw($Rx32++I:circ($Mu2))",
9849tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9850let Inst{12-5} = 0b00010000;
9851let Inst{31-21} = 0b10011001100;
9852let hasNewValue = 1;
9853let opNewValue = 0;
9854let addrMode = PostInc;
9855let accessSize = WordAccess;
9856let mayLoad = 1;
9857let Uses = [CS];
9858let Constraints = "$Rx32 = $Rx32in";
9859}
9860def L2_loadri_pi : HInst<
9861(outs IntRegs:$Rd32, IntRegs:$Rx32),
9862(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9863"$Rd32 = memw($Rx32++#$Ii)",
9864tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9865let Inst{13-9} = 0b00000;
9866let Inst{31-21} = 0b10011011100;
9867let hasNewValue = 1;
9868let opNewValue = 0;
9869let addrMode = PostInc;
9870let accessSize = WordAccess;
9871let mayLoad = 1;
9872let BaseOpcode = "L2_loadri_pi";
9873let CextOpcode = "L2_loadri";
9874let isPredicable = 1;
9875let Constraints = "$Rx32 = $Rx32in";
9876}
9877def L2_loadri_pr : HInst<
9878(outs IntRegs:$Rd32, IntRegs:$Rx32),
9879(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9880"$Rd32 = memw($Rx32++$Mu2)",
9881tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9882let Inst{12-5} = 0b00000000;
9883let Inst{31-21} = 0b10011101100;
9884let hasNewValue = 1;
9885let opNewValue = 0;
9886let addrMode = PostInc;
9887let accessSize = WordAccess;
9888let mayLoad = 1;
9889let Constraints = "$Rx32 = $Rx32in";
9890}
9891def L2_loadri_zomap : HInst<
9892(outs IntRegs:$Rd32),
9893(ins IntRegs:$Rs32),
9894"$Rd32 = memw($Rs32)",
9895tc_4222e6bf, TypeMAPPING> {
9896let hasNewValue = 1;
9897let opNewValue = 0;
9898let isPseudo = 1;
9899let isCodeGenOnly = 1;
9900}
9901def L2_loadrigp : HInst<
9902(outs IntRegs:$Rd32),
9903(ins u30_2Imm:$Ii),
9904"$Rd32 = memw(gp+#$Ii)",
9905tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9906let Inst{24-21} = 0b1100;
9907let Inst{31-27} = 0b01001;
9908let hasNewValue = 1;
9909let opNewValue = 0;
9910let accessSize = WordAccess;
9911let mayLoad = 1;
9912let Uses = [GP];
9913let BaseOpcode = "L4_loadri_abs";
9914let isPredicable = 1;
9915let opExtendable = 1;
9916let isExtentSigned = 0;
9917let opExtentBits = 18;
9918let opExtentAlign = 2;
9919}
9920def L2_loadrub_io : HInst<
9921(outs IntRegs:$Rd32),
9922(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9923"$Rd32 = memub($Rs32+#$Ii)",
9924tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9925let Inst{24-21} = 0b1001;
9926let Inst{31-27} = 0b10010;
9927let hasNewValue = 1;
9928let opNewValue = 0;
9929let addrMode = BaseImmOffset;
9930let accessSize = ByteAccess;
9931let mayLoad = 1;
9932let BaseOpcode = "L2_loadrub_io";
9933let CextOpcode = "L2_loadrub";
9934let isPredicable = 1;
9935let isExtendable = 1;
9936let opExtendable = 2;
9937let isExtentSigned = 1;
9938let opExtentBits = 11;
9939let opExtentAlign = 0;
9940}
9941def L2_loadrub_pbr : HInst<
9942(outs IntRegs:$Rd32, IntRegs:$Rx32),
9943(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9944"$Rd32 = memub($Rx32++$Mu2:brev)",
9945tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9946let Inst{12-5} = 0b00000000;
9947let Inst{31-21} = 0b10011111001;
9948let hasNewValue = 1;
9949let opNewValue = 0;
9950let addrMode = PostInc;
9951let accessSize = ByteAccess;
9952let mayLoad = 1;
9953let Constraints = "$Rx32 = $Rx32in";
9954}
9955def L2_loadrub_pci : HInst<
9956(outs IntRegs:$Rd32, IntRegs:$Rx32),
9957(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9958"$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9959tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9960let Inst{12-9} = 0b0000;
9961let Inst{31-21} = 0b10011001001;
9962let hasNewValue = 1;
9963let opNewValue = 0;
9964let addrMode = PostInc;
9965let accessSize = ByteAccess;
9966let mayLoad = 1;
9967let Uses = [CS];
9968let Constraints = "$Rx32 = $Rx32in";
9969}
9970def L2_loadrub_pcr : HInst<
9971(outs IntRegs:$Rd32, IntRegs:$Rx32),
9972(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9973"$Rd32 = memub($Rx32++I:circ($Mu2))",
9974tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9975let Inst{12-5} = 0b00010000;
9976let Inst{31-21} = 0b10011001001;
9977let hasNewValue = 1;
9978let opNewValue = 0;
9979let addrMode = PostInc;
9980let accessSize = ByteAccess;
9981let mayLoad = 1;
9982let Uses = [CS];
9983let Constraints = "$Rx32 = $Rx32in";
9984}
9985def L2_loadrub_pi : HInst<
9986(outs IntRegs:$Rd32, IntRegs:$Rx32),
9987(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9988"$Rd32 = memub($Rx32++#$Ii)",
9989tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9990let Inst{13-9} = 0b00000;
9991let Inst{31-21} = 0b10011011001;
9992let hasNewValue = 1;
9993let opNewValue = 0;
9994let addrMode = PostInc;
9995let accessSize = ByteAccess;
9996let mayLoad = 1;
9997let BaseOpcode = "L2_loadrub_pi";
9998let CextOpcode = "L2_loadrub";
9999let isPredicable = 1;
10000let Constraints = "$Rx32 = $Rx32in";
10001}
10002def L2_loadrub_pr : HInst<
10003(outs IntRegs:$Rd32, IntRegs:$Rx32),
10004(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10005"$Rd32 = memub($Rx32++$Mu2)",
10006tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10007let Inst{12-5} = 0b00000000;
10008let Inst{31-21} = 0b10011101001;
10009let hasNewValue = 1;
10010let opNewValue = 0;
10011let addrMode = PostInc;
10012let accessSize = ByteAccess;
10013let mayLoad = 1;
10014let Constraints = "$Rx32 = $Rx32in";
10015}
10016def L2_loadrub_zomap : HInst<
10017(outs IntRegs:$Rd32),
10018(ins IntRegs:$Rs32),
10019"$Rd32 = memub($Rs32)",
10020tc_4222e6bf, TypeMAPPING> {
10021let hasNewValue = 1;
10022let opNewValue = 0;
10023let isPseudo = 1;
10024let isCodeGenOnly = 1;
10025}
10026def L2_loadrubgp : HInst<
10027(outs IntRegs:$Rd32),
10028(ins u32_0Imm:$Ii),
10029"$Rd32 = memub(gp+#$Ii)",
10030tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
10031let Inst{24-21} = 0b1001;
10032let Inst{31-27} = 0b01001;
10033let hasNewValue = 1;
10034let opNewValue = 0;
10035let accessSize = ByteAccess;
10036let mayLoad = 1;
10037let Uses = [GP];
10038let BaseOpcode = "L4_loadrub_abs";
10039let isPredicable = 1;
10040let opExtendable = 1;
10041let isExtentSigned = 0;
10042let opExtentBits = 16;
10043let opExtentAlign = 0;
10044}
10045def L2_loadruh_io : HInst<
10046(outs IntRegs:$Rd32),
10047(ins IntRegs:$Rs32, s31_1Imm:$Ii),
10048"$Rd32 = memuh($Rs32+#$Ii)",
10049tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
10050let Inst{24-21} = 0b1011;
10051let Inst{31-27} = 0b10010;
10052let hasNewValue = 1;
10053let opNewValue = 0;
10054let addrMode = BaseImmOffset;
10055let accessSize = HalfWordAccess;
10056let mayLoad = 1;
10057let BaseOpcode = "L2_loadruh_io";
10058let CextOpcode = "L2_loadruh";
10059let isPredicable = 1;
10060let isExtendable = 1;
10061let opExtendable = 2;
10062let isExtentSigned = 1;
10063let opExtentBits = 12;
10064let opExtentAlign = 1;
10065}
10066def L2_loadruh_pbr : HInst<
10067(outs IntRegs:$Rd32, IntRegs:$Rx32),
10068(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10069"$Rd32 = memuh($Rx32++$Mu2:brev)",
10070tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10071let Inst{12-5} = 0b00000000;
10072let Inst{31-21} = 0b10011111011;
10073let hasNewValue = 1;
10074let opNewValue = 0;
10075let addrMode = PostInc;
10076let accessSize = HalfWordAccess;
10077let mayLoad = 1;
10078let Constraints = "$Rx32 = $Rx32in";
10079}
10080def L2_loadruh_pci : HInst<
10081(outs IntRegs:$Rd32, IntRegs:$Rx32),
10082(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
10083"$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
10084tc_5ceb2f9e, TypeLD>, Enc_e83554 {
10085let Inst{12-9} = 0b0000;
10086let Inst{31-21} = 0b10011001011;
10087let hasNewValue = 1;
10088let opNewValue = 0;
10089let addrMode = PostInc;
10090let accessSize = HalfWordAccess;
10091let mayLoad = 1;
10092let Uses = [CS];
10093let Constraints = "$Rx32 = $Rx32in";
10094}
10095def L2_loadruh_pcr : HInst<
10096(outs IntRegs:$Rd32, IntRegs:$Rx32),
10097(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10098"$Rd32 = memuh($Rx32++I:circ($Mu2))",
10099tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10100let Inst{12-5} = 0b00010000;
10101let Inst{31-21} = 0b10011001011;
10102let hasNewValue = 1;
10103let opNewValue = 0;
10104let addrMode = PostInc;
10105let accessSize = HalfWordAccess;
10106let mayLoad = 1;
10107let Uses = [CS];
10108let Constraints = "$Rx32 = $Rx32in";
10109}
10110def L2_loadruh_pi : HInst<
10111(outs IntRegs:$Rd32, IntRegs:$Rx32),
10112(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
10113"$Rd32 = memuh($Rx32++#$Ii)",
10114tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
10115let Inst{13-9} = 0b00000;
10116let Inst{31-21} = 0b10011011011;
10117let hasNewValue = 1;
10118let opNewValue = 0;
10119let addrMode = PostInc;
10120let accessSize = HalfWordAccess;
10121let mayLoad = 1;
10122let BaseOpcode = "L2_loadruh_pi";
10123let CextOpcode = "L2_loadruh";
10124let isPredicable = 1;
10125let Constraints = "$Rx32 = $Rx32in";
10126}
10127def L2_loadruh_pr : HInst<
10128(outs IntRegs:$Rd32, IntRegs:$Rx32),
10129(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10130"$Rd32 = memuh($Rx32++$Mu2)",
10131tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10132let Inst{12-5} = 0b00000000;
10133let Inst{31-21} = 0b10011101011;
10134let hasNewValue = 1;
10135let opNewValue = 0;
10136let addrMode = PostInc;
10137let accessSize = HalfWordAccess;
10138let mayLoad = 1;
10139let Constraints = "$Rx32 = $Rx32in";
10140}
10141def L2_loadruh_zomap : HInst<
10142(outs IntRegs:$Rd32),
10143(ins IntRegs:$Rs32),
10144"$Rd32 = memuh($Rs32)",
10145tc_4222e6bf, TypeMAPPING> {
10146let hasNewValue = 1;
10147let opNewValue = 0;
10148let isPseudo = 1;
10149let isCodeGenOnly = 1;
10150}
10151def L2_loadruhgp : HInst<
10152(outs IntRegs:$Rd32),
10153(ins u31_1Imm:$Ii),
10154"$Rd32 = memuh(gp+#$Ii)",
10155tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10156let Inst{24-21} = 0b1011;
10157let Inst{31-27} = 0b01001;
10158let hasNewValue = 1;
10159let opNewValue = 0;
10160let accessSize = HalfWordAccess;
10161let mayLoad = 1;
10162let Uses = [GP];
10163let BaseOpcode = "L4_loadruh_abs";
10164let isPredicable = 1;
10165let opExtendable = 1;
10166let isExtentSigned = 0;
10167let opExtentBits = 17;
10168let opExtentAlign = 1;
10169}
10170def L2_loadw_aq : HInst<
10171(outs IntRegs:$Rd32),
10172(ins IntRegs:$Rs32),
10173"$Rd32 = memw_aq($Rs32)",
10174tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> {
10175let Inst{13-5} = 0b001000000;
10176let Inst{31-21} = 0b10010010000;
10177let hasNewValue = 1;
10178let opNewValue = 0;
10179let accessSize = WordAccess;
10180let mayLoad = 1;
10181}
10182def L2_loadw_locked : HInst<
10183(outs IntRegs:$Rd32),
10184(ins IntRegs:$Rs32),
10185"$Rd32 = memw_locked($Rs32)",
10186tc_64b00d8a, TypeLD>, Enc_5e2823 {
10187let Inst{13-5} = 0b000000000;
10188let Inst{31-21} = 0b10010010000;
10189let hasNewValue = 1;
10190let opNewValue = 0;
10191let accessSize = WordAccess;
10192let mayLoad = 1;
10193let isSoloAX = 1;
10194}
10195def L2_ploadrbf_io : HInst<
10196(outs IntRegs:$Rd32),
10197(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10198"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10199tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10200let Inst{13-13} = 0b0;
10201let Inst{31-21} = 0b01000101000;
10202let isPredicated = 1;
10203let isPredicatedFalse = 1;
10204let hasNewValue = 1;
10205let opNewValue = 0;
10206let addrMode = BaseImmOffset;
10207let accessSize = ByteAccess;
10208let mayLoad = 1;
10209let BaseOpcode = "L2_loadrb_io";
10210let CextOpcode = "L2_loadrb";
10211let isExtendable = 1;
10212let opExtendable = 3;
10213let isExtentSigned = 0;
10214let opExtentBits = 6;
10215let opExtentAlign = 0;
10216}
10217def L2_ploadrbf_pi : HInst<
10218(outs IntRegs:$Rd32, IntRegs:$Rx32),
10219(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10220"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10221tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10222let Inst{13-11} = 0b101;
10223let Inst{31-21} = 0b10011011000;
10224let isPredicated = 1;
10225let isPredicatedFalse = 1;
10226let hasNewValue = 1;
10227let opNewValue = 0;
10228let addrMode = PostInc;
10229let accessSize = ByteAccess;
10230let mayLoad = 1;
10231let BaseOpcode = "L2_loadrb_pi";
10232let Constraints = "$Rx32 = $Rx32in";
10233}
10234def L2_ploadrbf_zomap : HInst<
10235(outs IntRegs:$Rd32),
10236(ins PredRegs:$Pt4, IntRegs:$Rs32),
10237"if (!$Pt4) $Rd32 = memb($Rs32)",
10238tc_fedb7e19, TypeMAPPING> {
10239let hasNewValue = 1;
10240let opNewValue = 0;
10241let isPseudo = 1;
10242let isCodeGenOnly = 1;
10243}
10244def L2_ploadrbfnew_io : HInst<
10245(outs IntRegs:$Rd32),
10246(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10247"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10248tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10249let Inst{13-13} = 0b0;
10250let Inst{31-21} = 0b01000111000;
10251let isPredicated = 1;
10252let isPredicatedFalse = 1;
10253let hasNewValue = 1;
10254let opNewValue = 0;
10255let addrMode = BaseImmOffset;
10256let accessSize = ByteAccess;
10257let isPredicatedNew = 1;
10258let mayLoad = 1;
10259let BaseOpcode = "L2_loadrb_io";
10260let CextOpcode = "L2_loadrb";
10261let isExtendable = 1;
10262let opExtendable = 3;
10263let isExtentSigned = 0;
10264let opExtentBits = 6;
10265let opExtentAlign = 0;
10266}
10267def L2_ploadrbfnew_pi : HInst<
10268(outs IntRegs:$Rd32, IntRegs:$Rx32),
10269(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10270"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10271tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10272let Inst{13-11} = 0b111;
10273let Inst{31-21} = 0b10011011000;
10274let isPredicated = 1;
10275let isPredicatedFalse = 1;
10276let hasNewValue = 1;
10277let opNewValue = 0;
10278let addrMode = PostInc;
10279let accessSize = ByteAccess;
10280let isPredicatedNew = 1;
10281let mayLoad = 1;
10282let BaseOpcode = "L2_loadrb_pi";
10283let Constraints = "$Rx32 = $Rx32in";
10284}
10285def L2_ploadrbfnew_zomap : HInst<
10286(outs IntRegs:$Rd32),
10287(ins PredRegs:$Pt4, IntRegs:$Rs32),
10288"if (!$Pt4.new) $Rd32 = memb($Rs32)",
10289tc_075c8dd8, TypeMAPPING> {
10290let hasNewValue = 1;
10291let opNewValue = 0;
10292let isPseudo = 1;
10293let isCodeGenOnly = 1;
10294}
10295def L2_ploadrbt_io : HInst<
10296(outs IntRegs:$Rd32),
10297(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10298"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10299tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10300let Inst{13-13} = 0b0;
10301let Inst{31-21} = 0b01000001000;
10302let isPredicated = 1;
10303let hasNewValue = 1;
10304let opNewValue = 0;
10305let addrMode = BaseImmOffset;
10306let accessSize = ByteAccess;
10307let mayLoad = 1;
10308let BaseOpcode = "L2_loadrb_io";
10309let CextOpcode = "L2_loadrb";
10310let isExtendable = 1;
10311let opExtendable = 3;
10312let isExtentSigned = 0;
10313let opExtentBits = 6;
10314let opExtentAlign = 0;
10315}
10316def L2_ploadrbt_pi : HInst<
10317(outs IntRegs:$Rd32, IntRegs:$Rx32),
10318(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10319"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10320tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10321let Inst{13-11} = 0b100;
10322let Inst{31-21} = 0b10011011000;
10323let isPredicated = 1;
10324let hasNewValue = 1;
10325let opNewValue = 0;
10326let addrMode = PostInc;
10327let accessSize = ByteAccess;
10328let mayLoad = 1;
10329let BaseOpcode = "L2_loadrb_pi";
10330let Constraints = "$Rx32 = $Rx32in";
10331}
10332def L2_ploadrbt_zomap : HInst<
10333(outs IntRegs:$Rd32),
10334(ins PredRegs:$Pt4, IntRegs:$Rs32),
10335"if ($Pt4) $Rd32 = memb($Rs32)",
10336tc_fedb7e19, TypeMAPPING> {
10337let hasNewValue = 1;
10338let opNewValue = 0;
10339let isPseudo = 1;
10340let isCodeGenOnly = 1;
10341}
10342def L2_ploadrbtnew_io : HInst<
10343(outs IntRegs:$Rd32),
10344(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10345"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10346tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10347let Inst{13-13} = 0b0;
10348let Inst{31-21} = 0b01000011000;
10349let isPredicated = 1;
10350let hasNewValue = 1;
10351let opNewValue = 0;
10352let addrMode = BaseImmOffset;
10353let accessSize = ByteAccess;
10354let isPredicatedNew = 1;
10355let mayLoad = 1;
10356let BaseOpcode = "L2_loadrb_io";
10357let CextOpcode = "L2_loadrb";
10358let isExtendable = 1;
10359let opExtendable = 3;
10360let isExtentSigned = 0;
10361let opExtentBits = 6;
10362let opExtentAlign = 0;
10363}
10364def L2_ploadrbtnew_pi : HInst<
10365(outs IntRegs:$Rd32, IntRegs:$Rx32),
10366(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10367"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10368tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10369let Inst{13-11} = 0b110;
10370let Inst{31-21} = 0b10011011000;
10371let isPredicated = 1;
10372let hasNewValue = 1;
10373let opNewValue = 0;
10374let addrMode = PostInc;
10375let accessSize = ByteAccess;
10376let isPredicatedNew = 1;
10377let mayLoad = 1;
10378let BaseOpcode = "L2_loadrb_pi";
10379let Constraints = "$Rx32 = $Rx32in";
10380}
10381def L2_ploadrbtnew_zomap : HInst<
10382(outs IntRegs:$Rd32),
10383(ins PredRegs:$Pt4, IntRegs:$Rs32),
10384"if ($Pt4.new) $Rd32 = memb($Rs32)",
10385tc_075c8dd8, TypeMAPPING> {
10386let hasNewValue = 1;
10387let opNewValue = 0;
10388let isPseudo = 1;
10389let isCodeGenOnly = 1;
10390}
10391def L2_ploadrdf_io : HInst<
10392(outs DoubleRegs:$Rdd32),
10393(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10394"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10395tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10396let Inst{13-13} = 0b0;
10397let Inst{31-21} = 0b01000101110;
10398let isPredicated = 1;
10399let isPredicatedFalse = 1;
10400let addrMode = BaseImmOffset;
10401let accessSize = DoubleWordAccess;
10402let mayLoad = 1;
10403let BaseOpcode = "L2_loadrd_io";
10404let CextOpcode = "L2_loadrd";
10405let isExtendable = 1;
10406let opExtendable = 3;
10407let isExtentSigned = 0;
10408let opExtentBits = 9;
10409let opExtentAlign = 3;
10410}
10411def L2_ploadrdf_pi : HInst<
10412(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10413(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10414"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10415tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10416let Inst{13-11} = 0b101;
10417let Inst{31-21} = 0b10011011110;
10418let isPredicated = 1;
10419let isPredicatedFalse = 1;
10420let addrMode = PostInc;
10421let accessSize = DoubleWordAccess;
10422let mayLoad = 1;
10423let BaseOpcode = "L2_loadrd_pi";
10424let Constraints = "$Rx32 = $Rx32in";
10425}
10426def L2_ploadrdf_zomap : HInst<
10427(outs DoubleRegs:$Rdd32),
10428(ins PredRegs:$Pt4, IntRegs:$Rs32),
10429"if (!$Pt4) $Rdd32 = memd($Rs32)",
10430tc_fedb7e19, TypeMAPPING> {
10431let isPseudo = 1;
10432let isCodeGenOnly = 1;
10433}
10434def L2_ploadrdfnew_io : HInst<
10435(outs DoubleRegs:$Rdd32),
10436(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10437"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10438tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10439let Inst{13-13} = 0b0;
10440let Inst{31-21} = 0b01000111110;
10441let isPredicated = 1;
10442let isPredicatedFalse = 1;
10443let addrMode = BaseImmOffset;
10444let accessSize = DoubleWordAccess;
10445let isPredicatedNew = 1;
10446let mayLoad = 1;
10447let BaseOpcode = "L2_loadrd_io";
10448let CextOpcode = "L2_loadrd";
10449let isExtendable = 1;
10450let opExtendable = 3;
10451let isExtentSigned = 0;
10452let opExtentBits = 9;
10453let opExtentAlign = 3;
10454}
10455def L2_ploadrdfnew_pi : HInst<
10456(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10457(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10458"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10459tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10460let Inst{13-11} = 0b111;
10461let Inst{31-21} = 0b10011011110;
10462let isPredicated = 1;
10463let isPredicatedFalse = 1;
10464let addrMode = PostInc;
10465let accessSize = DoubleWordAccess;
10466let isPredicatedNew = 1;
10467let mayLoad = 1;
10468let BaseOpcode = "L2_loadrd_pi";
10469let Constraints = "$Rx32 = $Rx32in";
10470}
10471def L2_ploadrdfnew_zomap : HInst<
10472(outs DoubleRegs:$Rdd32),
10473(ins PredRegs:$Pt4, IntRegs:$Rs32),
10474"if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10475tc_075c8dd8, TypeMAPPING> {
10476let isPseudo = 1;
10477let isCodeGenOnly = 1;
10478}
10479def L2_ploadrdt_io : HInst<
10480(outs DoubleRegs:$Rdd32),
10481(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10482"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10483tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10484let Inst{13-13} = 0b0;
10485let Inst{31-21} = 0b01000001110;
10486let isPredicated = 1;
10487let addrMode = BaseImmOffset;
10488let accessSize = DoubleWordAccess;
10489let mayLoad = 1;
10490let BaseOpcode = "L2_loadrd_io";
10491let CextOpcode = "L2_loadrd";
10492let isExtendable = 1;
10493let opExtendable = 3;
10494let isExtentSigned = 0;
10495let opExtentBits = 9;
10496let opExtentAlign = 3;
10497}
10498def L2_ploadrdt_pi : HInst<
10499(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10500(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10501"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10502tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10503let Inst{13-11} = 0b100;
10504let Inst{31-21} = 0b10011011110;
10505let isPredicated = 1;
10506let addrMode = PostInc;
10507let accessSize = DoubleWordAccess;
10508let mayLoad = 1;
10509let BaseOpcode = "L2_loadrd_pi";
10510let Constraints = "$Rx32 = $Rx32in";
10511}
10512def L2_ploadrdt_zomap : HInst<
10513(outs DoubleRegs:$Rdd32),
10514(ins PredRegs:$Pt4, IntRegs:$Rs32),
10515"if ($Pt4) $Rdd32 = memd($Rs32)",
10516tc_fedb7e19, TypeMAPPING> {
10517let isPseudo = 1;
10518let isCodeGenOnly = 1;
10519}
10520def L2_ploadrdtnew_io : HInst<
10521(outs DoubleRegs:$Rdd32),
10522(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10523"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10524tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10525let Inst{13-13} = 0b0;
10526let Inst{31-21} = 0b01000011110;
10527let isPredicated = 1;
10528let addrMode = BaseImmOffset;
10529let accessSize = DoubleWordAccess;
10530let isPredicatedNew = 1;
10531let mayLoad = 1;
10532let BaseOpcode = "L2_loadrd_io";
10533let CextOpcode = "L2_loadrd";
10534let isExtendable = 1;
10535let opExtendable = 3;
10536let isExtentSigned = 0;
10537let opExtentBits = 9;
10538let opExtentAlign = 3;
10539}
10540def L2_ploadrdtnew_pi : HInst<
10541(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10542(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10543"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10544tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10545let Inst{13-11} = 0b110;
10546let Inst{31-21} = 0b10011011110;
10547let isPredicated = 1;
10548let addrMode = PostInc;
10549let accessSize = DoubleWordAccess;
10550let isPredicatedNew = 1;
10551let mayLoad = 1;
10552let BaseOpcode = "L2_loadrd_pi";
10553let Constraints = "$Rx32 = $Rx32in";
10554}
10555def L2_ploadrdtnew_zomap : HInst<
10556(outs DoubleRegs:$Rdd32),
10557(ins PredRegs:$Pt4, IntRegs:$Rs32),
10558"if ($Pt4.new) $Rdd32 = memd($Rs32)",
10559tc_075c8dd8, TypeMAPPING> {
10560let isPseudo = 1;
10561let isCodeGenOnly = 1;
10562}
10563def L2_ploadrhf_io : HInst<
10564(outs IntRegs:$Rd32),
10565(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10566"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10567tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10568let Inst{13-13} = 0b0;
10569let Inst{31-21} = 0b01000101010;
10570let isPredicated = 1;
10571let isPredicatedFalse = 1;
10572let hasNewValue = 1;
10573let opNewValue = 0;
10574let addrMode = BaseImmOffset;
10575let accessSize = HalfWordAccess;
10576let mayLoad = 1;
10577let BaseOpcode = "L2_loadrh_io";
10578let CextOpcode = "L2_loadrh";
10579let isExtendable = 1;
10580let opExtendable = 3;
10581let isExtentSigned = 0;
10582let opExtentBits = 7;
10583let opExtentAlign = 1;
10584}
10585def L2_ploadrhf_pi : HInst<
10586(outs IntRegs:$Rd32, IntRegs:$Rx32),
10587(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10588"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10589tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10590let Inst{13-11} = 0b101;
10591let Inst{31-21} = 0b10011011010;
10592let isPredicated = 1;
10593let isPredicatedFalse = 1;
10594let hasNewValue = 1;
10595let opNewValue = 0;
10596let addrMode = PostInc;
10597let accessSize = HalfWordAccess;
10598let mayLoad = 1;
10599let BaseOpcode = "L2_loadrh_pi";
10600let Constraints = "$Rx32 = $Rx32in";
10601}
10602def L2_ploadrhf_zomap : HInst<
10603(outs IntRegs:$Rd32),
10604(ins PredRegs:$Pt4, IntRegs:$Rs32),
10605"if (!$Pt4) $Rd32 = memh($Rs32)",
10606tc_fedb7e19, TypeMAPPING> {
10607let hasNewValue = 1;
10608let opNewValue = 0;
10609let isPseudo = 1;
10610let isCodeGenOnly = 1;
10611}
10612def L2_ploadrhfnew_io : HInst<
10613(outs IntRegs:$Rd32),
10614(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10615"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10616tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10617let Inst{13-13} = 0b0;
10618let Inst{31-21} = 0b01000111010;
10619let isPredicated = 1;
10620let isPredicatedFalse = 1;
10621let hasNewValue = 1;
10622let opNewValue = 0;
10623let addrMode = BaseImmOffset;
10624let accessSize = HalfWordAccess;
10625let isPredicatedNew = 1;
10626let mayLoad = 1;
10627let BaseOpcode = "L2_loadrh_io";
10628let CextOpcode = "L2_loadrh";
10629let isExtendable = 1;
10630let opExtendable = 3;
10631let isExtentSigned = 0;
10632let opExtentBits = 7;
10633let opExtentAlign = 1;
10634}
10635def L2_ploadrhfnew_pi : HInst<
10636(outs IntRegs:$Rd32, IntRegs:$Rx32),
10637(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10638"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10639tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10640let Inst{13-11} = 0b111;
10641let Inst{31-21} = 0b10011011010;
10642let isPredicated = 1;
10643let isPredicatedFalse = 1;
10644let hasNewValue = 1;
10645let opNewValue = 0;
10646let addrMode = PostInc;
10647let accessSize = HalfWordAccess;
10648let isPredicatedNew = 1;
10649let mayLoad = 1;
10650let BaseOpcode = "L2_loadrh_pi";
10651let Constraints = "$Rx32 = $Rx32in";
10652}
10653def L2_ploadrhfnew_zomap : HInst<
10654(outs IntRegs:$Rd32),
10655(ins PredRegs:$Pt4, IntRegs:$Rs32),
10656"if (!$Pt4.new) $Rd32 = memh($Rs32)",
10657tc_075c8dd8, TypeMAPPING> {
10658let hasNewValue = 1;
10659let opNewValue = 0;
10660let isPseudo = 1;
10661let isCodeGenOnly = 1;
10662}
10663def L2_ploadrht_io : HInst<
10664(outs IntRegs:$Rd32),
10665(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10666"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10667tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10668let Inst{13-13} = 0b0;
10669let Inst{31-21} = 0b01000001010;
10670let isPredicated = 1;
10671let hasNewValue = 1;
10672let opNewValue = 0;
10673let addrMode = BaseImmOffset;
10674let accessSize = HalfWordAccess;
10675let mayLoad = 1;
10676let BaseOpcode = "L2_loadrh_io";
10677let CextOpcode = "L2_loadrh";
10678let isExtendable = 1;
10679let opExtendable = 3;
10680let isExtentSigned = 0;
10681let opExtentBits = 7;
10682let opExtentAlign = 1;
10683}
10684def L2_ploadrht_pi : HInst<
10685(outs IntRegs:$Rd32, IntRegs:$Rx32),
10686(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10687"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10688tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10689let Inst{13-11} = 0b100;
10690let Inst{31-21} = 0b10011011010;
10691let isPredicated = 1;
10692let hasNewValue = 1;
10693let opNewValue = 0;
10694let addrMode = PostInc;
10695let accessSize = HalfWordAccess;
10696let mayLoad = 1;
10697let BaseOpcode = "L2_loadrh_pi";
10698let Constraints = "$Rx32 = $Rx32in";
10699}
10700def L2_ploadrht_zomap : HInst<
10701(outs IntRegs:$Rd32),
10702(ins PredRegs:$Pt4, IntRegs:$Rs32),
10703"if ($Pt4) $Rd32 = memh($Rs32)",
10704tc_fedb7e19, TypeMAPPING> {
10705let hasNewValue = 1;
10706let opNewValue = 0;
10707let isPseudo = 1;
10708let isCodeGenOnly = 1;
10709}
10710def L2_ploadrhtnew_io : HInst<
10711(outs IntRegs:$Rd32),
10712(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10713"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10714tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10715let Inst{13-13} = 0b0;
10716let Inst{31-21} = 0b01000011010;
10717let isPredicated = 1;
10718let hasNewValue = 1;
10719let opNewValue = 0;
10720let addrMode = BaseImmOffset;
10721let accessSize = HalfWordAccess;
10722let isPredicatedNew = 1;
10723let mayLoad = 1;
10724let BaseOpcode = "L2_loadrh_io";
10725let CextOpcode = "L2_loadrh";
10726let isExtendable = 1;
10727let opExtendable = 3;
10728let isExtentSigned = 0;
10729let opExtentBits = 7;
10730let opExtentAlign = 1;
10731}
10732def L2_ploadrhtnew_pi : HInst<
10733(outs IntRegs:$Rd32, IntRegs:$Rx32),
10734(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10735"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10736tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10737let Inst{13-11} = 0b110;
10738let Inst{31-21} = 0b10011011010;
10739let isPredicated = 1;
10740let hasNewValue = 1;
10741let opNewValue = 0;
10742let addrMode = PostInc;
10743let accessSize = HalfWordAccess;
10744let isPredicatedNew = 1;
10745let mayLoad = 1;
10746let BaseOpcode = "L2_loadrh_pi";
10747let Constraints = "$Rx32 = $Rx32in";
10748}
10749def L2_ploadrhtnew_zomap : HInst<
10750(outs IntRegs:$Rd32),
10751(ins PredRegs:$Pt4, IntRegs:$Rs32),
10752"if ($Pt4.new) $Rd32 = memh($Rs32)",
10753tc_075c8dd8, TypeMAPPING> {
10754let hasNewValue = 1;
10755let opNewValue = 0;
10756let isPseudo = 1;
10757let isCodeGenOnly = 1;
10758}
10759def L2_ploadrif_io : HInst<
10760(outs IntRegs:$Rd32),
10761(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10762"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10763tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10764let Inst{13-13} = 0b0;
10765let Inst{31-21} = 0b01000101100;
10766let isPredicated = 1;
10767let isPredicatedFalse = 1;
10768let hasNewValue = 1;
10769let opNewValue = 0;
10770let addrMode = BaseImmOffset;
10771let accessSize = WordAccess;
10772let mayLoad = 1;
10773let BaseOpcode = "L2_loadri_io";
10774let CextOpcode = "L2_loadri";
10775let isExtendable = 1;
10776let opExtendable = 3;
10777let isExtentSigned = 0;
10778let opExtentBits = 8;
10779let opExtentAlign = 2;
10780}
10781def L2_ploadrif_pi : HInst<
10782(outs IntRegs:$Rd32, IntRegs:$Rx32),
10783(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10784"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10785tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10786let Inst{13-11} = 0b101;
10787let Inst{31-21} = 0b10011011100;
10788let isPredicated = 1;
10789let isPredicatedFalse = 1;
10790let hasNewValue = 1;
10791let opNewValue = 0;
10792let addrMode = PostInc;
10793let accessSize = WordAccess;
10794let mayLoad = 1;
10795let BaseOpcode = "L2_loadri_pi";
10796let Constraints = "$Rx32 = $Rx32in";
10797}
10798def L2_ploadrif_zomap : HInst<
10799(outs IntRegs:$Rd32),
10800(ins PredRegs:$Pt4, IntRegs:$Rs32),
10801"if (!$Pt4) $Rd32 = memw($Rs32)",
10802tc_fedb7e19, TypeMAPPING> {
10803let hasNewValue = 1;
10804let opNewValue = 0;
10805let isPseudo = 1;
10806let isCodeGenOnly = 1;
10807}
10808def L2_ploadrifnew_io : HInst<
10809(outs IntRegs:$Rd32),
10810(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10811"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10812tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10813let Inst{13-13} = 0b0;
10814let Inst{31-21} = 0b01000111100;
10815let isPredicated = 1;
10816let isPredicatedFalse = 1;
10817let hasNewValue = 1;
10818let opNewValue = 0;
10819let addrMode = BaseImmOffset;
10820let accessSize = WordAccess;
10821let isPredicatedNew = 1;
10822let mayLoad = 1;
10823let BaseOpcode = "L2_loadri_io";
10824let CextOpcode = "L2_loadri";
10825let isExtendable = 1;
10826let opExtendable = 3;
10827let isExtentSigned = 0;
10828let opExtentBits = 8;
10829let opExtentAlign = 2;
10830}
10831def L2_ploadrifnew_pi : HInst<
10832(outs IntRegs:$Rd32, IntRegs:$Rx32),
10833(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10834"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10835tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10836let Inst{13-11} = 0b111;
10837let Inst{31-21} = 0b10011011100;
10838let isPredicated = 1;
10839let isPredicatedFalse = 1;
10840let hasNewValue = 1;
10841let opNewValue = 0;
10842let addrMode = PostInc;
10843let accessSize = WordAccess;
10844let isPredicatedNew = 1;
10845let mayLoad = 1;
10846let BaseOpcode = "L2_loadri_pi";
10847let Constraints = "$Rx32 = $Rx32in";
10848}
10849def L2_ploadrifnew_zomap : HInst<
10850(outs IntRegs:$Rd32),
10851(ins PredRegs:$Pt4, IntRegs:$Rs32),
10852"if (!$Pt4.new) $Rd32 = memw($Rs32)",
10853tc_075c8dd8, TypeMAPPING> {
10854let hasNewValue = 1;
10855let opNewValue = 0;
10856let isPseudo = 1;
10857let isCodeGenOnly = 1;
10858}
10859def L2_ploadrit_io : HInst<
10860(outs IntRegs:$Rd32),
10861(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10862"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10863tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10864let Inst{13-13} = 0b0;
10865let Inst{31-21} = 0b01000001100;
10866let isPredicated = 1;
10867let hasNewValue = 1;
10868let opNewValue = 0;
10869let addrMode = BaseImmOffset;
10870let accessSize = WordAccess;
10871let mayLoad = 1;
10872let BaseOpcode = "L2_loadri_io";
10873let CextOpcode = "L2_loadri";
10874let isExtendable = 1;
10875let opExtendable = 3;
10876let isExtentSigned = 0;
10877let opExtentBits = 8;
10878let opExtentAlign = 2;
10879}
10880def L2_ploadrit_pi : HInst<
10881(outs IntRegs:$Rd32, IntRegs:$Rx32),
10882(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10883"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10884tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10885let Inst{13-11} = 0b100;
10886let Inst{31-21} = 0b10011011100;
10887let isPredicated = 1;
10888let hasNewValue = 1;
10889let opNewValue = 0;
10890let addrMode = PostInc;
10891let accessSize = WordAccess;
10892let mayLoad = 1;
10893let BaseOpcode = "L2_loadri_pi";
10894let Constraints = "$Rx32 = $Rx32in";
10895}
10896def L2_ploadrit_zomap : HInst<
10897(outs IntRegs:$Rd32),
10898(ins PredRegs:$Pt4, IntRegs:$Rs32),
10899"if ($Pt4) $Rd32 = memw($Rs32)",
10900tc_fedb7e19, TypeMAPPING> {
10901let hasNewValue = 1;
10902let opNewValue = 0;
10903let isPseudo = 1;
10904let isCodeGenOnly = 1;
10905}
10906def L2_ploadritnew_io : HInst<
10907(outs IntRegs:$Rd32),
10908(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10909"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10910tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10911let Inst{13-13} = 0b0;
10912let Inst{31-21} = 0b01000011100;
10913let isPredicated = 1;
10914let hasNewValue = 1;
10915let opNewValue = 0;
10916let addrMode = BaseImmOffset;
10917let accessSize = WordAccess;
10918let isPredicatedNew = 1;
10919let mayLoad = 1;
10920let BaseOpcode = "L2_loadri_io";
10921let CextOpcode = "L2_loadri";
10922let isExtendable = 1;
10923let opExtendable = 3;
10924let isExtentSigned = 0;
10925let opExtentBits = 8;
10926let opExtentAlign = 2;
10927}
10928def L2_ploadritnew_pi : HInst<
10929(outs IntRegs:$Rd32, IntRegs:$Rx32),
10930(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10931"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10932tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10933let Inst{13-11} = 0b110;
10934let Inst{31-21} = 0b10011011100;
10935let isPredicated = 1;
10936let hasNewValue = 1;
10937let opNewValue = 0;
10938let addrMode = PostInc;
10939let accessSize = WordAccess;
10940let isPredicatedNew = 1;
10941let mayLoad = 1;
10942let BaseOpcode = "L2_loadri_pi";
10943let Constraints = "$Rx32 = $Rx32in";
10944}
10945def L2_ploadritnew_zomap : HInst<
10946(outs IntRegs:$Rd32),
10947(ins PredRegs:$Pt4, IntRegs:$Rs32),
10948"if ($Pt4.new) $Rd32 = memw($Rs32)",
10949tc_075c8dd8, TypeMAPPING> {
10950let hasNewValue = 1;
10951let opNewValue = 0;
10952let isPseudo = 1;
10953let isCodeGenOnly = 1;
10954}
10955def L2_ploadrubf_io : HInst<
10956(outs IntRegs:$Rd32),
10957(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10958"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10959tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10960let Inst{13-13} = 0b0;
10961let Inst{31-21} = 0b01000101001;
10962let isPredicated = 1;
10963let isPredicatedFalse = 1;
10964let hasNewValue = 1;
10965let opNewValue = 0;
10966let addrMode = BaseImmOffset;
10967let accessSize = ByteAccess;
10968let mayLoad = 1;
10969let BaseOpcode = "L2_loadrub_io";
10970let CextOpcode = "L2_loadrub";
10971let isExtendable = 1;
10972let opExtendable = 3;
10973let isExtentSigned = 0;
10974let opExtentBits = 6;
10975let opExtentAlign = 0;
10976}
10977def L2_ploadrubf_pi : HInst<
10978(outs IntRegs:$Rd32, IntRegs:$Rx32),
10979(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10980"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10981tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10982let Inst{13-11} = 0b101;
10983let Inst{31-21} = 0b10011011001;
10984let isPredicated = 1;
10985let isPredicatedFalse = 1;
10986let hasNewValue = 1;
10987let opNewValue = 0;
10988let addrMode = PostInc;
10989let accessSize = ByteAccess;
10990let mayLoad = 1;
10991let BaseOpcode = "L2_loadrub_pi";
10992let Constraints = "$Rx32 = $Rx32in";
10993}
10994def L2_ploadrubf_zomap : HInst<
10995(outs IntRegs:$Rd32),
10996(ins PredRegs:$Pt4, IntRegs:$Rs32),
10997"if (!$Pt4) $Rd32 = memub($Rs32)",
10998tc_fedb7e19, TypeMAPPING> {
10999let hasNewValue = 1;
11000let opNewValue = 0;
11001let isPseudo = 1;
11002let isCodeGenOnly = 1;
11003}
11004def L2_ploadrubfnew_io : HInst<
11005(outs IntRegs:$Rd32),
11006(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11007"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11008tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11009let Inst{13-13} = 0b0;
11010let Inst{31-21} = 0b01000111001;
11011let isPredicated = 1;
11012let isPredicatedFalse = 1;
11013let hasNewValue = 1;
11014let opNewValue = 0;
11015let addrMode = BaseImmOffset;
11016let accessSize = ByteAccess;
11017let isPredicatedNew = 1;
11018let mayLoad = 1;
11019let BaseOpcode = "L2_loadrub_io";
11020let CextOpcode = "L2_loadrub";
11021let isExtendable = 1;
11022let opExtendable = 3;
11023let isExtentSigned = 0;
11024let opExtentBits = 6;
11025let opExtentAlign = 0;
11026}
11027def L2_ploadrubfnew_pi : HInst<
11028(outs IntRegs:$Rd32, IntRegs:$Rx32),
11029(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11030"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11031tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11032let Inst{13-11} = 0b111;
11033let Inst{31-21} = 0b10011011001;
11034let isPredicated = 1;
11035let isPredicatedFalse = 1;
11036let hasNewValue = 1;
11037let opNewValue = 0;
11038let addrMode = PostInc;
11039let accessSize = ByteAccess;
11040let isPredicatedNew = 1;
11041let mayLoad = 1;
11042let BaseOpcode = "L2_loadrub_pi";
11043let Constraints = "$Rx32 = $Rx32in";
11044}
11045def L2_ploadrubfnew_zomap : HInst<
11046(outs IntRegs:$Rd32),
11047(ins PredRegs:$Pt4, IntRegs:$Rs32),
11048"if (!$Pt4.new) $Rd32 = memub($Rs32)",
11049tc_075c8dd8, TypeMAPPING> {
11050let hasNewValue = 1;
11051let opNewValue = 0;
11052let isPseudo = 1;
11053let isCodeGenOnly = 1;
11054}
11055def L2_ploadrubt_io : HInst<
11056(outs IntRegs:$Rd32),
11057(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11058"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
11059tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11060let Inst{13-13} = 0b0;
11061let Inst{31-21} = 0b01000001001;
11062let isPredicated = 1;
11063let hasNewValue = 1;
11064let opNewValue = 0;
11065let addrMode = BaseImmOffset;
11066let accessSize = ByteAccess;
11067let mayLoad = 1;
11068let BaseOpcode = "L2_loadrub_io";
11069let CextOpcode = "L2_loadrub";
11070let isExtendable = 1;
11071let opExtendable = 3;
11072let isExtentSigned = 0;
11073let opExtentBits = 6;
11074let opExtentAlign = 0;
11075}
11076def L2_ploadrubt_pi : HInst<
11077(outs IntRegs:$Rd32, IntRegs:$Rx32),
11078(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11079"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
11080tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
11081let Inst{13-11} = 0b100;
11082let Inst{31-21} = 0b10011011001;
11083let isPredicated = 1;
11084let hasNewValue = 1;
11085let opNewValue = 0;
11086let addrMode = PostInc;
11087let accessSize = ByteAccess;
11088let mayLoad = 1;
11089let BaseOpcode = "L2_loadrub_pi";
11090let Constraints = "$Rx32 = $Rx32in";
11091}
11092def L2_ploadrubt_zomap : HInst<
11093(outs IntRegs:$Rd32),
11094(ins PredRegs:$Pt4, IntRegs:$Rs32),
11095"if ($Pt4) $Rd32 = memub($Rs32)",
11096tc_fedb7e19, TypeMAPPING> {
11097let hasNewValue = 1;
11098let opNewValue = 0;
11099let isPseudo = 1;
11100let isCodeGenOnly = 1;
11101}
11102def L2_ploadrubtnew_io : HInst<
11103(outs IntRegs:$Rd32),
11104(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11105"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11106tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11107let Inst{13-13} = 0b0;
11108let Inst{31-21} = 0b01000011001;
11109let isPredicated = 1;
11110let hasNewValue = 1;
11111let opNewValue = 0;
11112let addrMode = BaseImmOffset;
11113let accessSize = ByteAccess;
11114let isPredicatedNew = 1;
11115let mayLoad = 1;
11116let BaseOpcode = "L2_loadrub_io";
11117let CextOpcode = "L2_loadrub";
11118let isExtendable = 1;
11119let opExtendable = 3;
11120let isExtentSigned = 0;
11121let opExtentBits = 6;
11122let opExtentAlign = 0;
11123}
11124def L2_ploadrubtnew_pi : HInst<
11125(outs IntRegs:$Rd32, IntRegs:$Rx32),
11126(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11127"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11128tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11129let Inst{13-11} = 0b110;
11130let Inst{31-21} = 0b10011011001;
11131let isPredicated = 1;
11132let hasNewValue = 1;
11133let opNewValue = 0;
11134let addrMode = PostInc;
11135let accessSize = ByteAccess;
11136let isPredicatedNew = 1;
11137let mayLoad = 1;
11138let BaseOpcode = "L2_loadrub_pi";
11139let Constraints = "$Rx32 = $Rx32in";
11140}
11141def L2_ploadrubtnew_zomap : HInst<
11142(outs IntRegs:$Rd32),
11143(ins PredRegs:$Pt4, IntRegs:$Rs32),
11144"if ($Pt4.new) $Rd32 = memub($Rs32)",
11145tc_075c8dd8, TypeMAPPING> {
11146let hasNewValue = 1;
11147let opNewValue = 0;
11148let isPseudo = 1;
11149let isCodeGenOnly = 1;
11150}
11151def L2_ploadruhf_io : HInst<
11152(outs IntRegs:$Rd32),
11153(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11154"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11155tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11156let Inst{13-13} = 0b0;
11157let Inst{31-21} = 0b01000101011;
11158let isPredicated = 1;
11159let isPredicatedFalse = 1;
11160let hasNewValue = 1;
11161let opNewValue = 0;
11162let addrMode = BaseImmOffset;
11163let accessSize = HalfWordAccess;
11164let mayLoad = 1;
11165let BaseOpcode = "L2_loadruh_io";
11166let CextOpcode = "L2_loadruh";
11167let isExtendable = 1;
11168let opExtendable = 3;
11169let isExtentSigned = 0;
11170let opExtentBits = 7;
11171let opExtentAlign = 1;
11172}
11173def L2_ploadruhf_pi : HInst<
11174(outs IntRegs:$Rd32, IntRegs:$Rx32),
11175(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11176"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11177tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11178let Inst{13-11} = 0b101;
11179let Inst{31-21} = 0b10011011011;
11180let isPredicated = 1;
11181let isPredicatedFalse = 1;
11182let hasNewValue = 1;
11183let opNewValue = 0;
11184let addrMode = PostInc;
11185let accessSize = HalfWordAccess;
11186let mayLoad = 1;
11187let BaseOpcode = "L2_loadruh_pi";
11188let Constraints = "$Rx32 = $Rx32in";
11189}
11190def L2_ploadruhf_zomap : HInst<
11191(outs IntRegs:$Rd32),
11192(ins PredRegs:$Pt4, IntRegs:$Rs32),
11193"if (!$Pt4) $Rd32 = memuh($Rs32)",
11194tc_fedb7e19, TypeMAPPING> {
11195let hasNewValue = 1;
11196let opNewValue = 0;
11197let isPseudo = 1;
11198let isCodeGenOnly = 1;
11199}
11200def L2_ploadruhfnew_io : HInst<
11201(outs IntRegs:$Rd32),
11202(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11203"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11204tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11205let Inst{13-13} = 0b0;
11206let Inst{31-21} = 0b01000111011;
11207let isPredicated = 1;
11208let isPredicatedFalse = 1;
11209let hasNewValue = 1;
11210let opNewValue = 0;
11211let addrMode = BaseImmOffset;
11212let accessSize = HalfWordAccess;
11213let isPredicatedNew = 1;
11214let mayLoad = 1;
11215let BaseOpcode = "L2_loadruh_io";
11216let CextOpcode = "L2_loadruh";
11217let isExtendable = 1;
11218let opExtendable = 3;
11219let isExtentSigned = 0;
11220let opExtentBits = 7;
11221let opExtentAlign = 1;
11222}
11223def L2_ploadruhfnew_pi : HInst<
11224(outs IntRegs:$Rd32, IntRegs:$Rx32),
11225(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11226"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11227tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11228let Inst{13-11} = 0b111;
11229let Inst{31-21} = 0b10011011011;
11230let isPredicated = 1;
11231let isPredicatedFalse = 1;
11232let hasNewValue = 1;
11233let opNewValue = 0;
11234let addrMode = PostInc;
11235let accessSize = HalfWordAccess;
11236let isPredicatedNew = 1;
11237let mayLoad = 1;
11238let BaseOpcode = "L2_loadruh_pi";
11239let Constraints = "$Rx32 = $Rx32in";
11240}
11241def L2_ploadruhfnew_zomap : HInst<
11242(outs IntRegs:$Rd32),
11243(ins PredRegs:$Pt4, IntRegs:$Rs32),
11244"if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11245tc_075c8dd8, TypeMAPPING> {
11246let hasNewValue = 1;
11247let opNewValue = 0;
11248let isPseudo = 1;
11249let isCodeGenOnly = 1;
11250}
11251def L2_ploadruht_io : HInst<
11252(outs IntRegs:$Rd32),
11253(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11254"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11255tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11256let Inst{13-13} = 0b0;
11257let Inst{31-21} = 0b01000001011;
11258let isPredicated = 1;
11259let hasNewValue = 1;
11260let opNewValue = 0;
11261let addrMode = BaseImmOffset;
11262let accessSize = HalfWordAccess;
11263let mayLoad = 1;
11264let BaseOpcode = "L2_loadruh_io";
11265let CextOpcode = "L2_loadruh";
11266let isExtendable = 1;
11267let opExtendable = 3;
11268let isExtentSigned = 0;
11269let opExtentBits = 7;
11270let opExtentAlign = 1;
11271}
11272def L2_ploadruht_pi : HInst<
11273(outs IntRegs:$Rd32, IntRegs:$Rx32),
11274(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11275"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11276tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11277let Inst{13-11} = 0b100;
11278let Inst{31-21} = 0b10011011011;
11279let isPredicated = 1;
11280let hasNewValue = 1;
11281let opNewValue = 0;
11282let addrMode = PostInc;
11283let accessSize = HalfWordAccess;
11284let mayLoad = 1;
11285let BaseOpcode = "L2_loadruh_pi";
11286let Constraints = "$Rx32 = $Rx32in";
11287}
11288def L2_ploadruht_zomap : HInst<
11289(outs IntRegs:$Rd32),
11290(ins PredRegs:$Pt4, IntRegs:$Rs32),
11291"if ($Pt4) $Rd32 = memuh($Rs32)",
11292tc_fedb7e19, TypeMAPPING> {
11293let hasNewValue = 1;
11294let opNewValue = 0;
11295let isPseudo = 1;
11296let isCodeGenOnly = 1;
11297}
11298def L2_ploadruhtnew_io : HInst<
11299(outs IntRegs:$Rd32),
11300(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11301"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11302tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11303let Inst{13-13} = 0b0;
11304let Inst{31-21} = 0b01000011011;
11305let isPredicated = 1;
11306let hasNewValue = 1;
11307let opNewValue = 0;
11308let addrMode = BaseImmOffset;
11309let accessSize = HalfWordAccess;
11310let isPredicatedNew = 1;
11311let mayLoad = 1;
11312let BaseOpcode = "L2_loadruh_io";
11313let CextOpcode = "L2_loadruh";
11314let isExtendable = 1;
11315let opExtendable = 3;
11316let isExtentSigned = 0;
11317let opExtentBits = 7;
11318let opExtentAlign = 1;
11319}
11320def L2_ploadruhtnew_pi : HInst<
11321(outs IntRegs:$Rd32, IntRegs:$Rx32),
11322(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11323"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11324tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11325let Inst{13-11} = 0b110;
11326let Inst{31-21} = 0b10011011011;
11327let isPredicated = 1;
11328let hasNewValue = 1;
11329let opNewValue = 0;
11330let addrMode = PostInc;
11331let accessSize = HalfWordAccess;
11332let isPredicatedNew = 1;
11333let mayLoad = 1;
11334let BaseOpcode = "L2_loadruh_pi";
11335let Constraints = "$Rx32 = $Rx32in";
11336}
11337def L2_ploadruhtnew_zomap : HInst<
11338(outs IntRegs:$Rd32),
11339(ins PredRegs:$Pt4, IntRegs:$Rs32),
11340"if ($Pt4.new) $Rd32 = memuh($Rs32)",
11341tc_075c8dd8, TypeMAPPING> {
11342let hasNewValue = 1;
11343let opNewValue = 0;
11344let isPseudo = 1;
11345let isCodeGenOnly = 1;
11346}
11347def L4_add_memopb_io : HInst<
11348(outs),
11349(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11350"memb($Rs32+#$Ii) += $Rt32",
11351tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11352let Inst{6-5} = 0b00;
11353let Inst{13-13} = 0b0;
11354let Inst{31-21} = 0b00111110000;
11355let addrMode = BaseImmOffset;
11356let accessSize = ByteAccess;
11357let mayLoad = 1;
11358let isRestrictNoSlot1Store = 1;
11359let mayStore = 1;
11360let isExtendable = 1;
11361let opExtendable = 1;
11362let isExtentSigned = 0;
11363let opExtentBits = 6;
11364let opExtentAlign = 0;
11365}
11366def L4_add_memopb_zomap : HInst<
11367(outs),
11368(ins IntRegs:$Rs32, IntRegs:$Rt32),
11369"memb($Rs32) += $Rt32",
11370tc_9bcfb2ee, TypeMAPPING> {
11371let isPseudo = 1;
11372let isCodeGenOnly = 1;
11373}
11374def L4_add_memoph_io : HInst<
11375(outs),
11376(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11377"memh($Rs32+#$Ii) += $Rt32",
11378tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11379let Inst{6-5} = 0b00;
11380let Inst{13-13} = 0b0;
11381let Inst{31-21} = 0b00111110001;
11382let addrMode = BaseImmOffset;
11383let accessSize = HalfWordAccess;
11384let mayLoad = 1;
11385let isRestrictNoSlot1Store = 1;
11386let mayStore = 1;
11387let isExtendable = 1;
11388let opExtendable = 1;
11389let isExtentSigned = 0;
11390let opExtentBits = 7;
11391let opExtentAlign = 1;
11392}
11393def L4_add_memoph_zomap : HInst<
11394(outs),
11395(ins IntRegs:$Rs32, IntRegs:$Rt32),
11396"memh($Rs32) += $Rt32",
11397tc_9bcfb2ee, TypeMAPPING> {
11398let isPseudo = 1;
11399let isCodeGenOnly = 1;
11400}
11401def L4_add_memopw_io : HInst<
11402(outs),
11403(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11404"memw($Rs32+#$Ii) += $Rt32",
11405tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11406let Inst{6-5} = 0b00;
11407let Inst{13-13} = 0b0;
11408let Inst{31-21} = 0b00111110010;
11409let addrMode = BaseImmOffset;
11410let accessSize = WordAccess;
11411let mayLoad = 1;
11412let isRestrictNoSlot1Store = 1;
11413let mayStore = 1;
11414let isExtendable = 1;
11415let opExtendable = 1;
11416let isExtentSigned = 0;
11417let opExtentBits = 8;
11418let opExtentAlign = 2;
11419}
11420def L4_add_memopw_zomap : HInst<
11421(outs),
11422(ins IntRegs:$Rs32, IntRegs:$Rt32),
11423"memw($Rs32) += $Rt32",
11424tc_9bcfb2ee, TypeMAPPING> {
11425let isPseudo = 1;
11426let isCodeGenOnly = 1;
11427}
11428def L4_and_memopb_io : HInst<
11429(outs),
11430(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11431"memb($Rs32+#$Ii) &= $Rt32",
11432tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11433let Inst{6-5} = 0b10;
11434let Inst{13-13} = 0b0;
11435let Inst{31-21} = 0b00111110000;
11436let addrMode = BaseImmOffset;
11437let accessSize = ByteAccess;
11438let mayLoad = 1;
11439let isRestrictNoSlot1Store = 1;
11440let mayStore = 1;
11441let isExtendable = 1;
11442let opExtendable = 1;
11443let isExtentSigned = 0;
11444let opExtentBits = 6;
11445let opExtentAlign = 0;
11446}
11447def L4_and_memopb_zomap : HInst<
11448(outs),
11449(ins IntRegs:$Rs32, IntRegs:$Rt32),
11450"memb($Rs32) &= $Rt32",
11451tc_9bcfb2ee, TypeMAPPING> {
11452let isPseudo = 1;
11453let isCodeGenOnly = 1;
11454}
11455def L4_and_memoph_io : HInst<
11456(outs),
11457(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11458"memh($Rs32+#$Ii) &= $Rt32",
11459tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11460let Inst{6-5} = 0b10;
11461let Inst{13-13} = 0b0;
11462let Inst{31-21} = 0b00111110001;
11463let addrMode = BaseImmOffset;
11464let accessSize = HalfWordAccess;
11465let mayLoad = 1;
11466let isRestrictNoSlot1Store = 1;
11467let mayStore = 1;
11468let isExtendable = 1;
11469let opExtendable = 1;
11470let isExtentSigned = 0;
11471let opExtentBits = 7;
11472let opExtentAlign = 1;
11473}
11474def L4_and_memoph_zomap : HInst<
11475(outs),
11476(ins IntRegs:$Rs32, IntRegs:$Rt32),
11477"memh($Rs32) &= $Rt32",
11478tc_9bcfb2ee, TypeMAPPING> {
11479let isPseudo = 1;
11480let isCodeGenOnly = 1;
11481}
11482def L4_and_memopw_io : HInst<
11483(outs),
11484(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11485"memw($Rs32+#$Ii) &= $Rt32",
11486tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11487let Inst{6-5} = 0b10;
11488let Inst{13-13} = 0b0;
11489let Inst{31-21} = 0b00111110010;
11490let addrMode = BaseImmOffset;
11491let accessSize = WordAccess;
11492let mayLoad = 1;
11493let isRestrictNoSlot1Store = 1;
11494let mayStore = 1;
11495let isExtendable = 1;
11496let opExtendable = 1;
11497let isExtentSigned = 0;
11498let opExtentBits = 8;
11499let opExtentAlign = 2;
11500}
11501def L4_and_memopw_zomap : HInst<
11502(outs),
11503(ins IntRegs:$Rs32, IntRegs:$Rt32),
11504"memw($Rs32) &= $Rt32",
11505tc_9bcfb2ee, TypeMAPPING> {
11506let isPseudo = 1;
11507let isCodeGenOnly = 1;
11508}
11509def L4_iadd_memopb_io : HInst<
11510(outs),
11511(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11512"memb($Rs32+#$Ii) += #$II",
11513tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11514let Inst{6-5} = 0b00;
11515let Inst{13-13} = 0b0;
11516let Inst{31-21} = 0b00111111000;
11517let addrMode = BaseImmOffset;
11518let accessSize = ByteAccess;
11519let mayLoad = 1;
11520let isRestrictNoSlot1Store = 1;
11521let mayStore = 1;
11522let isExtendable = 1;
11523let opExtendable = 1;
11524let isExtentSigned = 0;
11525let opExtentBits = 6;
11526let opExtentAlign = 0;
11527}
11528def L4_iadd_memopb_zomap : HInst<
11529(outs),
11530(ins IntRegs:$Rs32, u5_0Imm:$II),
11531"memb($Rs32) += #$II",
11532tc_158aa3f7, TypeMAPPING> {
11533let isPseudo = 1;
11534let isCodeGenOnly = 1;
11535}
11536def L4_iadd_memoph_io : HInst<
11537(outs),
11538(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11539"memh($Rs32+#$Ii) += #$II",
11540tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11541let Inst{6-5} = 0b00;
11542let Inst{13-13} = 0b0;
11543let Inst{31-21} = 0b00111111001;
11544let addrMode = BaseImmOffset;
11545let accessSize = HalfWordAccess;
11546let mayLoad = 1;
11547let isRestrictNoSlot1Store = 1;
11548let mayStore = 1;
11549let isExtendable = 1;
11550let opExtendable = 1;
11551let isExtentSigned = 0;
11552let opExtentBits = 7;
11553let opExtentAlign = 1;
11554}
11555def L4_iadd_memoph_zomap : HInst<
11556(outs),
11557(ins IntRegs:$Rs32, u5_0Imm:$II),
11558"memh($Rs32) += #$II",
11559tc_158aa3f7, TypeMAPPING> {
11560let isPseudo = 1;
11561let isCodeGenOnly = 1;
11562}
11563def L4_iadd_memopw_io : HInst<
11564(outs),
11565(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11566"memw($Rs32+#$Ii) += #$II",
11567tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11568let Inst{6-5} = 0b00;
11569let Inst{13-13} = 0b0;
11570let Inst{31-21} = 0b00111111010;
11571let addrMode = BaseImmOffset;
11572let accessSize = WordAccess;
11573let mayLoad = 1;
11574let isRestrictNoSlot1Store = 1;
11575let mayStore = 1;
11576let isExtendable = 1;
11577let opExtendable = 1;
11578let isExtentSigned = 0;
11579let opExtentBits = 8;
11580let opExtentAlign = 2;
11581}
11582def L4_iadd_memopw_zomap : HInst<
11583(outs),
11584(ins IntRegs:$Rs32, u5_0Imm:$II),
11585"memw($Rs32) += #$II",
11586tc_158aa3f7, TypeMAPPING> {
11587let isPseudo = 1;
11588let isCodeGenOnly = 1;
11589}
11590def L4_iand_memopb_io : HInst<
11591(outs),
11592(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11593"memb($Rs32+#$Ii) = clrbit(#$II)",
11594tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11595let Inst{6-5} = 0b10;
11596let Inst{13-13} = 0b0;
11597let Inst{31-21} = 0b00111111000;
11598let addrMode = BaseImmOffset;
11599let accessSize = ByteAccess;
11600let mayLoad = 1;
11601let isRestrictNoSlot1Store = 1;
11602let mayStore = 1;
11603let isExtendable = 1;
11604let opExtendable = 1;
11605let isExtentSigned = 0;
11606let opExtentBits = 6;
11607let opExtentAlign = 0;
11608}
11609def L4_iand_memopb_zomap : HInst<
11610(outs),
11611(ins IntRegs:$Rs32, u5_0Imm:$II),
11612"memb($Rs32) = clrbit(#$II)",
11613tc_158aa3f7, TypeMAPPING> {
11614let isPseudo = 1;
11615let isCodeGenOnly = 1;
11616}
11617def L4_iand_memoph_io : HInst<
11618(outs),
11619(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11620"memh($Rs32+#$Ii) = clrbit(#$II)",
11621tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11622let Inst{6-5} = 0b10;
11623let Inst{13-13} = 0b0;
11624let Inst{31-21} = 0b00111111001;
11625let addrMode = BaseImmOffset;
11626let accessSize = HalfWordAccess;
11627let mayLoad = 1;
11628let isRestrictNoSlot1Store = 1;
11629let mayStore = 1;
11630let isExtendable = 1;
11631let opExtendable = 1;
11632let isExtentSigned = 0;
11633let opExtentBits = 7;
11634let opExtentAlign = 1;
11635}
11636def L4_iand_memoph_zomap : HInst<
11637(outs),
11638(ins IntRegs:$Rs32, u5_0Imm:$II),
11639"memh($Rs32) = clrbit(#$II)",
11640tc_158aa3f7, TypeMAPPING> {
11641let isPseudo = 1;
11642let isCodeGenOnly = 1;
11643}
11644def L4_iand_memopw_io : HInst<
11645(outs),
11646(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11647"memw($Rs32+#$Ii) = clrbit(#$II)",
11648tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11649let Inst{6-5} = 0b10;
11650let Inst{13-13} = 0b0;
11651let Inst{31-21} = 0b00111111010;
11652let addrMode = BaseImmOffset;
11653let accessSize = WordAccess;
11654let mayLoad = 1;
11655let isRestrictNoSlot1Store = 1;
11656let mayStore = 1;
11657let isExtendable = 1;
11658let opExtendable = 1;
11659let isExtentSigned = 0;
11660let opExtentBits = 8;
11661let opExtentAlign = 2;
11662}
11663def L4_iand_memopw_zomap : HInst<
11664(outs),
11665(ins IntRegs:$Rs32, u5_0Imm:$II),
11666"memw($Rs32) = clrbit(#$II)",
11667tc_158aa3f7, TypeMAPPING> {
11668let isPseudo = 1;
11669let isCodeGenOnly = 1;
11670}
11671def L4_ior_memopb_io : HInst<
11672(outs),
11673(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11674"memb($Rs32+#$Ii) = setbit(#$II)",
11675tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11676let Inst{6-5} = 0b11;
11677let Inst{13-13} = 0b0;
11678let Inst{31-21} = 0b00111111000;
11679let addrMode = BaseImmOffset;
11680let accessSize = ByteAccess;
11681let mayLoad = 1;
11682let isRestrictNoSlot1Store = 1;
11683let mayStore = 1;
11684let isExtendable = 1;
11685let opExtendable = 1;
11686let isExtentSigned = 0;
11687let opExtentBits = 6;
11688let opExtentAlign = 0;
11689}
11690def L4_ior_memopb_zomap : HInst<
11691(outs),
11692(ins IntRegs:$Rs32, u5_0Imm:$II),
11693"memb($Rs32) = setbit(#$II)",
11694tc_158aa3f7, TypeMAPPING> {
11695let isPseudo = 1;
11696let isCodeGenOnly = 1;
11697}
11698def L4_ior_memoph_io : HInst<
11699(outs),
11700(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11701"memh($Rs32+#$Ii) = setbit(#$II)",
11702tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11703let Inst{6-5} = 0b11;
11704let Inst{13-13} = 0b0;
11705let Inst{31-21} = 0b00111111001;
11706let addrMode = BaseImmOffset;
11707let accessSize = HalfWordAccess;
11708let mayLoad = 1;
11709let isRestrictNoSlot1Store = 1;
11710let mayStore = 1;
11711let isExtendable = 1;
11712let opExtendable = 1;
11713let isExtentSigned = 0;
11714let opExtentBits = 7;
11715let opExtentAlign = 1;
11716}
11717def L4_ior_memoph_zomap : HInst<
11718(outs),
11719(ins IntRegs:$Rs32, u5_0Imm:$II),
11720"memh($Rs32) = setbit(#$II)",
11721tc_158aa3f7, TypeMAPPING> {
11722let isPseudo = 1;
11723let isCodeGenOnly = 1;
11724}
11725def L4_ior_memopw_io : HInst<
11726(outs),
11727(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11728"memw($Rs32+#$Ii) = setbit(#$II)",
11729tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11730let Inst{6-5} = 0b11;
11731let Inst{13-13} = 0b0;
11732let Inst{31-21} = 0b00111111010;
11733let addrMode = BaseImmOffset;
11734let accessSize = WordAccess;
11735let mayLoad = 1;
11736let isRestrictNoSlot1Store = 1;
11737let mayStore = 1;
11738let isExtendable = 1;
11739let opExtendable = 1;
11740let isExtentSigned = 0;
11741let opExtentBits = 8;
11742let opExtentAlign = 2;
11743}
11744def L4_ior_memopw_zomap : HInst<
11745(outs),
11746(ins IntRegs:$Rs32, u5_0Imm:$II),
11747"memw($Rs32) = setbit(#$II)",
11748tc_158aa3f7, TypeMAPPING> {
11749let isPseudo = 1;
11750let isCodeGenOnly = 1;
11751}
11752def L4_isub_memopb_io : HInst<
11753(outs),
11754(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11755"memb($Rs32+#$Ii) -= #$II",
11756tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11757let Inst{6-5} = 0b01;
11758let Inst{13-13} = 0b0;
11759let Inst{31-21} = 0b00111111000;
11760let addrMode = BaseImmOffset;
11761let accessSize = ByteAccess;
11762let mayLoad = 1;
11763let isRestrictNoSlot1Store = 1;
11764let mayStore = 1;
11765let isExtendable = 1;
11766let opExtendable = 1;
11767let isExtentSigned = 0;
11768let opExtentBits = 6;
11769let opExtentAlign = 0;
11770}
11771def L4_isub_memopb_zomap : HInst<
11772(outs),
11773(ins IntRegs:$Rs32, u5_0Imm:$II),
11774"memb($Rs32) -= #$II",
11775tc_158aa3f7, TypeMAPPING> {
11776let isPseudo = 1;
11777let isCodeGenOnly = 1;
11778}
11779def L4_isub_memoph_io : HInst<
11780(outs),
11781(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11782"memh($Rs32+#$Ii) -= #$II",
11783tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11784let Inst{6-5} = 0b01;
11785let Inst{13-13} = 0b0;
11786let Inst{31-21} = 0b00111111001;
11787let addrMode = BaseImmOffset;
11788let accessSize = HalfWordAccess;
11789let mayLoad = 1;
11790let isRestrictNoSlot1Store = 1;
11791let mayStore = 1;
11792let isExtendable = 1;
11793let opExtendable = 1;
11794let isExtentSigned = 0;
11795let opExtentBits = 7;
11796let opExtentAlign = 1;
11797}
11798def L4_isub_memoph_zomap : HInst<
11799(outs),
11800(ins IntRegs:$Rs32, u5_0Imm:$II),
11801"memh($Rs32) -= #$II",
11802tc_158aa3f7, TypeMAPPING> {
11803let isPseudo = 1;
11804let isCodeGenOnly = 1;
11805}
11806def L4_isub_memopw_io : HInst<
11807(outs),
11808(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11809"memw($Rs32+#$Ii) -= #$II",
11810tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11811let Inst{6-5} = 0b01;
11812let Inst{13-13} = 0b0;
11813let Inst{31-21} = 0b00111111010;
11814let addrMode = BaseImmOffset;
11815let accessSize = WordAccess;
11816let mayLoad = 1;
11817let isRestrictNoSlot1Store = 1;
11818let mayStore = 1;
11819let isExtendable = 1;
11820let opExtendable = 1;
11821let isExtentSigned = 0;
11822let opExtentBits = 8;
11823let opExtentAlign = 2;
11824}
11825def L4_isub_memopw_zomap : HInst<
11826(outs),
11827(ins IntRegs:$Rs32, u5_0Imm:$II),
11828"memw($Rs32) -= #$II",
11829tc_158aa3f7, TypeMAPPING> {
11830let isPseudo = 1;
11831let isCodeGenOnly = 1;
11832}
11833def L4_loadalignb_ap : HInst<
11834(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11835(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11836"$Ryy32 = memb_fifo($Re32=#$II)",
11837tc_ac65613f, TypeLD>, Enc_f394d3 {
11838let Inst{7-7} = 0b0;
11839let Inst{13-12} = 0b01;
11840let Inst{31-21} = 0b10011010100;
11841let addrMode = AbsoluteSet;
11842let accessSize = ByteAccess;
11843let mayLoad = 1;
11844let isExtended = 1;
11845let DecoderNamespace = "MustExtend";
11846let isExtendable = 1;
11847let opExtendable = 3;
11848let isExtentSigned = 0;
11849let opExtentBits = 6;
11850let opExtentAlign = 0;
11851let Constraints = "$Ryy32 = $Ryy32in";
11852}
11853def L4_loadalignb_ur : HInst<
11854(outs DoubleRegs:$Ryy32),
11855(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11856"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11857tc_a32e03e7, TypeLD>, Enc_04c959 {
11858let Inst{12-12} = 0b1;
11859let Inst{31-21} = 0b10011100100;
11860let addrMode = BaseLongOffset;
11861let accessSize = ByteAccess;
11862let mayLoad = 1;
11863let isExtended = 1;
11864let InputType = "imm";
11865let DecoderNamespace = "MustExtend";
11866let isExtendable = 1;
11867let opExtendable = 4;
11868let isExtentSigned = 0;
11869let opExtentBits = 6;
11870let opExtentAlign = 0;
11871let Constraints = "$Ryy32 = $Ryy32in";
11872}
11873def L4_loadalignh_ap : HInst<
11874(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11875(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11876"$Ryy32 = memh_fifo($Re32=#$II)",
11877tc_ac65613f, TypeLD>, Enc_f394d3 {
11878let Inst{7-7} = 0b0;
11879let Inst{13-12} = 0b01;
11880let Inst{31-21} = 0b10011010010;
11881let addrMode = AbsoluteSet;
11882let accessSize = HalfWordAccess;
11883let mayLoad = 1;
11884let isExtended = 1;
11885let DecoderNamespace = "MustExtend";
11886let isExtendable = 1;
11887let opExtendable = 3;
11888let isExtentSigned = 0;
11889let opExtentBits = 6;
11890let opExtentAlign = 0;
11891let Constraints = "$Ryy32 = $Ryy32in";
11892}
11893def L4_loadalignh_ur : HInst<
11894(outs DoubleRegs:$Ryy32),
11895(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11896"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11897tc_a32e03e7, TypeLD>, Enc_04c959 {
11898let Inst{12-12} = 0b1;
11899let Inst{31-21} = 0b10011100010;
11900let addrMode = BaseLongOffset;
11901let accessSize = HalfWordAccess;
11902let mayLoad = 1;
11903let isExtended = 1;
11904let InputType = "imm";
11905let DecoderNamespace = "MustExtend";
11906let isExtendable = 1;
11907let opExtendable = 4;
11908let isExtentSigned = 0;
11909let opExtentBits = 6;
11910let opExtentAlign = 0;
11911let Constraints = "$Ryy32 = $Ryy32in";
11912}
11913def L4_loadbsw2_ap : HInst<
11914(outs IntRegs:$Rd32, IntRegs:$Re32),
11915(ins u32_0Imm:$II),
11916"$Rd32 = membh($Re32=#$II)",
11917tc_822c3c68, TypeLD>, Enc_323f2d {
11918let Inst{7-7} = 0b0;
11919let Inst{13-12} = 0b01;
11920let Inst{31-21} = 0b10011010001;
11921let hasNewValue = 1;
11922let opNewValue = 0;
11923let addrMode = AbsoluteSet;
11924let accessSize = HalfWordAccess;
11925let mayLoad = 1;
11926let isExtended = 1;
11927let DecoderNamespace = "MustExtend";
11928let isExtendable = 1;
11929let opExtendable = 2;
11930let isExtentSigned = 0;
11931let opExtentBits = 6;
11932let opExtentAlign = 0;
11933}
11934def L4_loadbsw2_ur : HInst<
11935(outs IntRegs:$Rd32),
11936(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11937"$Rd32 = membh($Rt32<<#$Ii+#$II)",
11938tc_abfd9a6d, TypeLD>, Enc_4f677b {
11939let Inst{12-12} = 0b1;
11940let Inst{31-21} = 0b10011100001;
11941let hasNewValue = 1;
11942let opNewValue = 0;
11943let addrMode = BaseLongOffset;
11944let accessSize = HalfWordAccess;
11945let mayLoad = 1;
11946let isExtended = 1;
11947let InputType = "imm";
11948let DecoderNamespace = "MustExtend";
11949let isExtendable = 1;
11950let opExtendable = 3;
11951let isExtentSigned = 0;
11952let opExtentBits = 6;
11953let opExtentAlign = 0;
11954}
11955def L4_loadbsw4_ap : HInst<
11956(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11957(ins u32_0Imm:$II),
11958"$Rdd32 = membh($Re32=#$II)",
11959tc_822c3c68, TypeLD>, Enc_7fa7f6 {
11960let Inst{7-7} = 0b0;
11961let Inst{13-12} = 0b01;
11962let Inst{31-21} = 0b10011010111;
11963let addrMode = AbsoluteSet;
11964let accessSize = WordAccess;
11965let mayLoad = 1;
11966let isExtended = 1;
11967let DecoderNamespace = "MustExtend";
11968let isExtendable = 1;
11969let opExtendable = 2;
11970let isExtentSigned = 0;
11971let opExtentBits = 6;
11972let opExtentAlign = 0;
11973}
11974def L4_loadbsw4_ur : HInst<
11975(outs DoubleRegs:$Rdd32),
11976(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11977"$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11978tc_abfd9a6d, TypeLD>, Enc_6185fe {
11979let Inst{12-12} = 0b1;
11980let Inst{31-21} = 0b10011100111;
11981let addrMode = BaseLongOffset;
11982let accessSize = WordAccess;
11983let mayLoad = 1;
11984let isExtended = 1;
11985let InputType = "imm";
11986let DecoderNamespace = "MustExtend";
11987let isExtendable = 1;
11988let opExtendable = 3;
11989let isExtentSigned = 0;
11990let opExtentBits = 6;
11991let opExtentAlign = 0;
11992}
11993def L4_loadbzw2_ap : HInst<
11994(outs IntRegs:$Rd32, IntRegs:$Re32),
11995(ins u32_0Imm:$II),
11996"$Rd32 = memubh($Re32=#$II)",
11997tc_822c3c68, TypeLD>, Enc_323f2d {
11998let Inst{7-7} = 0b0;
11999let Inst{13-12} = 0b01;
12000let Inst{31-21} = 0b10011010011;
12001let hasNewValue = 1;
12002let opNewValue = 0;
12003let addrMode = AbsoluteSet;
12004let accessSize = HalfWordAccess;
12005let mayLoad = 1;
12006let isExtended = 1;
12007let DecoderNamespace = "MustExtend";
12008let isExtendable = 1;
12009let opExtendable = 2;
12010let isExtentSigned = 0;
12011let opExtentBits = 6;
12012let opExtentAlign = 0;
12013}
12014def L4_loadbzw2_ur : HInst<
12015(outs IntRegs:$Rd32),
12016(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12017"$Rd32 = memubh($Rt32<<#$Ii+#$II)",
12018tc_abfd9a6d, TypeLD>, Enc_4f677b {
12019let Inst{12-12} = 0b1;
12020let Inst{31-21} = 0b10011100011;
12021let hasNewValue = 1;
12022let opNewValue = 0;
12023let addrMode = BaseLongOffset;
12024let accessSize = HalfWordAccess;
12025let mayLoad = 1;
12026let isExtended = 1;
12027let InputType = "imm";
12028let DecoderNamespace = "MustExtend";
12029let isExtendable = 1;
12030let opExtendable = 3;
12031let isExtentSigned = 0;
12032let opExtentBits = 6;
12033let opExtentAlign = 0;
12034}
12035def L4_loadbzw4_ap : HInst<
12036(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12037(ins u32_0Imm:$II),
12038"$Rdd32 = memubh($Re32=#$II)",
12039tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12040let Inst{7-7} = 0b0;
12041let Inst{13-12} = 0b01;
12042let Inst{31-21} = 0b10011010101;
12043let addrMode = AbsoluteSet;
12044let accessSize = WordAccess;
12045let mayLoad = 1;
12046let isExtended = 1;
12047let DecoderNamespace = "MustExtend";
12048let isExtendable = 1;
12049let opExtendable = 2;
12050let isExtentSigned = 0;
12051let opExtentBits = 6;
12052let opExtentAlign = 0;
12053}
12054def L4_loadbzw4_ur : HInst<
12055(outs DoubleRegs:$Rdd32),
12056(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12057"$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
12058tc_abfd9a6d, TypeLD>, Enc_6185fe {
12059let Inst{12-12} = 0b1;
12060let Inst{31-21} = 0b10011100101;
12061let addrMode = BaseLongOffset;
12062let accessSize = WordAccess;
12063let mayLoad = 1;
12064let isExtended = 1;
12065let InputType = "imm";
12066let DecoderNamespace = "MustExtend";
12067let isExtendable = 1;
12068let opExtendable = 3;
12069let isExtentSigned = 0;
12070let opExtentBits = 6;
12071let opExtentAlign = 0;
12072}
12073def L4_loadd_aq : HInst<
12074(outs DoubleRegs:$Rdd32),
12075(ins IntRegs:$Rs32),
12076"$Rdd32 = memd_aq($Rs32)",
12077tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> {
12078let Inst{13-5} = 0b011000000;
12079let Inst{31-21} = 0b10010010000;
12080let accessSize = DoubleWordAccess;
12081let mayLoad = 1;
12082}
12083def L4_loadd_locked : HInst<
12084(outs DoubleRegs:$Rdd32),
12085(ins IntRegs:$Rs32),
12086"$Rdd32 = memd_locked($Rs32)",
12087tc_64b00d8a, TypeLD>, Enc_3a3d62 {
12088let Inst{13-5} = 0b010000000;
12089let Inst{31-21} = 0b10010010000;
12090let accessSize = DoubleWordAccess;
12091let mayLoad = 1;
12092let isSoloAX = 1;
12093}
12094def L4_loadrb_ap : HInst<
12095(outs IntRegs:$Rd32, IntRegs:$Re32),
12096(ins u32_0Imm:$II),
12097"$Rd32 = memb($Re32=#$II)",
12098tc_822c3c68, TypeLD>, Enc_323f2d {
12099let Inst{7-7} = 0b0;
12100let Inst{13-12} = 0b01;
12101let Inst{31-21} = 0b10011011000;
12102let hasNewValue = 1;
12103let opNewValue = 0;
12104let addrMode = AbsoluteSet;
12105let accessSize = ByteAccess;
12106let mayLoad = 1;
12107let isExtended = 1;
12108let DecoderNamespace = "MustExtend";
12109let isExtendable = 1;
12110let opExtendable = 2;
12111let isExtentSigned = 0;
12112let opExtentBits = 6;
12113let opExtentAlign = 0;
12114}
12115def L4_loadrb_rr : HInst<
12116(outs IntRegs:$Rd32),
12117(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12118"$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12119tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12120let Inst{6-5} = 0b00;
12121let Inst{31-21} = 0b00111010000;
12122let hasNewValue = 1;
12123let opNewValue = 0;
12124let addrMode = BaseRegOffset;
12125let accessSize = ByteAccess;
12126let mayLoad = 1;
12127let BaseOpcode = "L4_loadrb_rr";
12128let CextOpcode = "L2_loadrb";
12129let InputType = "reg";
12130let isPredicable = 1;
12131}
12132def L4_loadrb_ur : HInst<
12133(outs IntRegs:$Rd32),
12134(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12135"$Rd32 = memb($Rt32<<#$Ii+#$II)",
12136tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12137let Inst{12-12} = 0b1;
12138let Inst{31-21} = 0b10011101000;
12139let hasNewValue = 1;
12140let opNewValue = 0;
12141let addrMode = BaseLongOffset;
12142let accessSize = ByteAccess;
12143let mayLoad = 1;
12144let isExtended = 1;
12145let CextOpcode = "L2_loadrb";
12146let InputType = "imm";
12147let DecoderNamespace = "MustExtend";
12148let isExtendable = 1;
12149let opExtendable = 3;
12150let isExtentSigned = 0;
12151let opExtentBits = 6;
12152let opExtentAlign = 0;
12153}
12154def L4_loadrd_ap : HInst<
12155(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12156(ins u32_0Imm:$II),
12157"$Rdd32 = memd($Re32=#$II)",
12158tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12159let Inst{7-7} = 0b0;
12160let Inst{13-12} = 0b01;
12161let Inst{31-21} = 0b10011011110;
12162let addrMode = AbsoluteSet;
12163let accessSize = DoubleWordAccess;
12164let mayLoad = 1;
12165let isExtended = 1;
12166let DecoderNamespace = "MustExtend";
12167let isExtendable = 1;
12168let opExtendable = 2;
12169let isExtentSigned = 0;
12170let opExtentBits = 6;
12171let opExtentAlign = 0;
12172}
12173def L4_loadrd_rr : HInst<
12174(outs DoubleRegs:$Rdd32),
12175(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12176"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12177tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12178let Inst{6-5} = 0b00;
12179let Inst{31-21} = 0b00111010110;
12180let addrMode = BaseRegOffset;
12181let accessSize = DoubleWordAccess;
12182let mayLoad = 1;
12183let BaseOpcode = "L4_loadrd_rr";
12184let CextOpcode = "L2_loadrd";
12185let InputType = "reg";
12186let isPredicable = 1;
12187}
12188def L4_loadrd_ur : HInst<
12189(outs DoubleRegs:$Rdd32),
12190(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12191"$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12192tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12193let Inst{12-12} = 0b1;
12194let Inst{31-21} = 0b10011101110;
12195let addrMode = BaseLongOffset;
12196let accessSize = DoubleWordAccess;
12197let mayLoad = 1;
12198let isExtended = 1;
12199let CextOpcode = "L2_loadrd";
12200let InputType = "imm";
12201let DecoderNamespace = "MustExtend";
12202let isExtendable = 1;
12203let opExtendable = 3;
12204let isExtentSigned = 0;
12205let opExtentBits = 6;
12206let opExtentAlign = 0;
12207}
12208def L4_loadrh_ap : HInst<
12209(outs IntRegs:$Rd32, IntRegs:$Re32),
12210(ins u32_0Imm:$II),
12211"$Rd32 = memh($Re32=#$II)",
12212tc_822c3c68, TypeLD>, Enc_323f2d {
12213let Inst{7-7} = 0b0;
12214let Inst{13-12} = 0b01;
12215let Inst{31-21} = 0b10011011010;
12216let hasNewValue = 1;
12217let opNewValue = 0;
12218let addrMode = AbsoluteSet;
12219let accessSize = HalfWordAccess;
12220let mayLoad = 1;
12221let isExtended = 1;
12222let DecoderNamespace = "MustExtend";
12223let isExtendable = 1;
12224let opExtendable = 2;
12225let isExtentSigned = 0;
12226let opExtentBits = 6;
12227let opExtentAlign = 0;
12228}
12229def L4_loadrh_rr : HInst<
12230(outs IntRegs:$Rd32),
12231(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12232"$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12233tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12234let Inst{6-5} = 0b00;
12235let Inst{31-21} = 0b00111010010;
12236let hasNewValue = 1;
12237let opNewValue = 0;
12238let addrMode = BaseRegOffset;
12239let accessSize = HalfWordAccess;
12240let mayLoad = 1;
12241let BaseOpcode = "L4_loadrh_rr";
12242let CextOpcode = "L2_loadrh";
12243let InputType = "reg";
12244let isPredicable = 1;
12245}
12246def L4_loadrh_ur : HInst<
12247(outs IntRegs:$Rd32),
12248(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12249"$Rd32 = memh($Rt32<<#$Ii+#$II)",
12250tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12251let Inst{12-12} = 0b1;
12252let Inst{31-21} = 0b10011101010;
12253let hasNewValue = 1;
12254let opNewValue = 0;
12255let addrMode = BaseLongOffset;
12256let accessSize = HalfWordAccess;
12257let mayLoad = 1;
12258let isExtended = 1;
12259let CextOpcode = "L2_loadrh";
12260let InputType = "imm";
12261let DecoderNamespace = "MustExtend";
12262let isExtendable = 1;
12263let opExtendable = 3;
12264let isExtentSigned = 0;
12265let opExtentBits = 6;
12266let opExtentAlign = 0;
12267}
12268def L4_loadri_ap : HInst<
12269(outs IntRegs:$Rd32, IntRegs:$Re32),
12270(ins u32_0Imm:$II),
12271"$Rd32 = memw($Re32=#$II)",
12272tc_822c3c68, TypeLD>, Enc_323f2d {
12273let Inst{7-7} = 0b0;
12274let Inst{13-12} = 0b01;
12275let Inst{31-21} = 0b10011011100;
12276let hasNewValue = 1;
12277let opNewValue = 0;
12278let addrMode = AbsoluteSet;
12279let accessSize = WordAccess;
12280let mayLoad = 1;
12281let isExtended = 1;
12282let DecoderNamespace = "MustExtend";
12283let isExtendable = 1;
12284let opExtendable = 2;
12285let isExtentSigned = 0;
12286let opExtentBits = 6;
12287let opExtentAlign = 0;
12288}
12289def L4_loadri_rr : HInst<
12290(outs IntRegs:$Rd32),
12291(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12292"$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12293tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12294let Inst{6-5} = 0b00;
12295let Inst{31-21} = 0b00111010100;
12296let hasNewValue = 1;
12297let opNewValue = 0;
12298let addrMode = BaseRegOffset;
12299let accessSize = WordAccess;
12300let mayLoad = 1;
12301let BaseOpcode = "L4_loadri_rr";
12302let CextOpcode = "L2_loadri";
12303let InputType = "reg";
12304let isPredicable = 1;
12305}
12306def L4_loadri_ur : HInst<
12307(outs IntRegs:$Rd32),
12308(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12309"$Rd32 = memw($Rt32<<#$Ii+#$II)",
12310tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12311let Inst{12-12} = 0b1;
12312let Inst{31-21} = 0b10011101100;
12313let hasNewValue = 1;
12314let opNewValue = 0;
12315let addrMode = BaseLongOffset;
12316let accessSize = WordAccess;
12317let mayLoad = 1;
12318let isExtended = 1;
12319let CextOpcode = "L2_loadri";
12320let InputType = "imm";
12321let DecoderNamespace = "MustExtend";
12322let isExtendable = 1;
12323let opExtendable = 3;
12324let isExtentSigned = 0;
12325let opExtentBits = 6;
12326let opExtentAlign = 0;
12327}
12328def L4_loadrub_ap : HInst<
12329(outs IntRegs:$Rd32, IntRegs:$Re32),
12330(ins u32_0Imm:$II),
12331"$Rd32 = memub($Re32=#$II)",
12332tc_822c3c68, TypeLD>, Enc_323f2d {
12333let Inst{7-7} = 0b0;
12334let Inst{13-12} = 0b01;
12335let Inst{31-21} = 0b10011011001;
12336let hasNewValue = 1;
12337let opNewValue = 0;
12338let addrMode = AbsoluteSet;
12339let accessSize = ByteAccess;
12340let mayLoad = 1;
12341let isExtended = 1;
12342let DecoderNamespace = "MustExtend";
12343let isExtendable = 1;
12344let opExtendable = 2;
12345let isExtentSigned = 0;
12346let opExtentBits = 6;
12347let opExtentAlign = 0;
12348}
12349def L4_loadrub_rr : HInst<
12350(outs IntRegs:$Rd32),
12351(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12352"$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12353tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12354let Inst{6-5} = 0b00;
12355let Inst{31-21} = 0b00111010001;
12356let hasNewValue = 1;
12357let opNewValue = 0;
12358let addrMode = BaseRegOffset;
12359let accessSize = ByteAccess;
12360let mayLoad = 1;
12361let BaseOpcode = "L4_loadrub_rr";
12362let CextOpcode = "L2_loadrub";
12363let InputType = "reg";
12364let isPredicable = 1;
12365}
12366def L4_loadrub_ur : HInst<
12367(outs IntRegs:$Rd32),
12368(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12369"$Rd32 = memub($Rt32<<#$Ii+#$II)",
12370tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12371let Inst{12-12} = 0b1;
12372let Inst{31-21} = 0b10011101001;
12373let hasNewValue = 1;
12374let opNewValue = 0;
12375let addrMode = BaseLongOffset;
12376let accessSize = ByteAccess;
12377let mayLoad = 1;
12378let isExtended = 1;
12379let CextOpcode = "L2_loadrub";
12380let InputType = "imm";
12381let DecoderNamespace = "MustExtend";
12382let isExtendable = 1;
12383let opExtendable = 3;
12384let isExtentSigned = 0;
12385let opExtentBits = 6;
12386let opExtentAlign = 0;
12387}
12388def L4_loadruh_ap : HInst<
12389(outs IntRegs:$Rd32, IntRegs:$Re32),
12390(ins u32_0Imm:$II),
12391"$Rd32 = memuh($Re32=#$II)",
12392tc_822c3c68, TypeLD>, Enc_323f2d {
12393let Inst{7-7} = 0b0;
12394let Inst{13-12} = 0b01;
12395let Inst{31-21} = 0b10011011011;
12396let hasNewValue = 1;
12397let opNewValue = 0;
12398let addrMode = AbsoluteSet;
12399let accessSize = HalfWordAccess;
12400let mayLoad = 1;
12401let isExtended = 1;
12402let DecoderNamespace = "MustExtend";
12403let isExtendable = 1;
12404let opExtendable = 2;
12405let isExtentSigned = 0;
12406let opExtentBits = 6;
12407let opExtentAlign = 0;
12408}
12409def L4_loadruh_rr : HInst<
12410(outs IntRegs:$Rd32),
12411(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12412"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12413tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12414let Inst{6-5} = 0b00;
12415let Inst{31-21} = 0b00111010011;
12416let hasNewValue = 1;
12417let opNewValue = 0;
12418let addrMode = BaseRegOffset;
12419let accessSize = HalfWordAccess;
12420let mayLoad = 1;
12421let BaseOpcode = "L4_loadruh_rr";
12422let CextOpcode = "L2_loadruh";
12423let InputType = "reg";
12424let isPredicable = 1;
12425}
12426def L4_loadruh_ur : HInst<
12427(outs IntRegs:$Rd32),
12428(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12429"$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12430tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12431let Inst{12-12} = 0b1;
12432let Inst{31-21} = 0b10011101011;
12433let hasNewValue = 1;
12434let opNewValue = 0;
12435let addrMode = BaseLongOffset;
12436let accessSize = HalfWordAccess;
12437let mayLoad = 1;
12438let isExtended = 1;
12439let CextOpcode = "L2_loadruh";
12440let InputType = "imm";
12441let DecoderNamespace = "MustExtend";
12442let isExtendable = 1;
12443let opExtendable = 3;
12444let isExtentSigned = 0;
12445let opExtentBits = 6;
12446let opExtentAlign = 0;
12447}
12448def L4_or_memopb_io : HInst<
12449(outs),
12450(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12451"memb($Rs32+#$Ii) |= $Rt32",
12452tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
12453let Inst{6-5} = 0b11;
12454let Inst{13-13} = 0b0;
12455let Inst{31-21} = 0b00111110000;
12456let addrMode = BaseImmOffset;
12457let accessSize = ByteAccess;
12458let mayLoad = 1;
12459let isRestrictNoSlot1Store = 1;
12460let mayStore = 1;
12461let isExtendable = 1;
12462let opExtendable = 1;
12463let isExtentSigned = 0;
12464let opExtentBits = 6;
12465let opExtentAlign = 0;
12466}
12467def L4_or_memopb_zomap : HInst<
12468(outs),
12469(ins IntRegs:$Rs32, IntRegs:$Rt32),
12470"memb($Rs32) |= $Rt32",
12471tc_9bcfb2ee, TypeMAPPING> {
12472let isPseudo = 1;
12473let isCodeGenOnly = 1;
12474}
12475def L4_or_memoph_io : HInst<
12476(outs),
12477(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12478"memh($Rs32+#$Ii) |= $Rt32",
12479tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
12480let Inst{6-5} = 0b11;
12481let Inst{13-13} = 0b0;
12482let Inst{31-21} = 0b00111110001;
12483let addrMode = BaseImmOffset;
12484let accessSize = HalfWordAccess;
12485let mayLoad = 1;
12486let isRestrictNoSlot1Store = 1;
12487let mayStore = 1;
12488let isExtendable = 1;
12489let opExtendable = 1;
12490let isExtentSigned = 0;
12491let opExtentBits = 7;
12492let opExtentAlign = 1;
12493}
12494def L4_or_memoph_zomap : HInst<
12495(outs),
12496(ins IntRegs:$Rs32, IntRegs:$Rt32),
12497"memh($Rs32) |= $Rt32",
12498tc_9bcfb2ee, TypeMAPPING> {
12499let isPseudo = 1;
12500let isCodeGenOnly = 1;
12501}
12502def L4_or_memopw_io : HInst<
12503(outs),
12504(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12505"memw($Rs32+#$Ii) |= $Rt32",
12506tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
12507let Inst{6-5} = 0b11;
12508let Inst{13-13} = 0b0;
12509let Inst{31-21} = 0b00111110010;
12510let addrMode = BaseImmOffset;
12511let accessSize = WordAccess;
12512let mayLoad = 1;
12513let isRestrictNoSlot1Store = 1;
12514let mayStore = 1;
12515let isExtendable = 1;
12516let opExtendable = 1;
12517let isExtentSigned = 0;
12518let opExtentBits = 8;
12519let opExtentAlign = 2;
12520}
12521def L4_or_memopw_zomap : HInst<
12522(outs),
12523(ins IntRegs:$Rs32, IntRegs:$Rt32),
12524"memw($Rs32) |= $Rt32",
12525tc_9bcfb2ee, TypeMAPPING> {
12526let isPseudo = 1;
12527let isCodeGenOnly = 1;
12528}
12529def L4_ploadrbf_abs : HInst<
12530(outs IntRegs:$Rd32),
12531(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12532"if (!$Pt4) $Rd32 = memb(#$Ii)",
12533tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12534let Inst{7-5} = 0b100;
12535let Inst{13-11} = 0b101;
12536let Inst{31-21} = 0b10011111000;
12537let isPredicated = 1;
12538let isPredicatedFalse = 1;
12539let hasNewValue = 1;
12540let opNewValue = 0;
12541let addrMode = Absolute;
12542let accessSize = ByteAccess;
12543let mayLoad = 1;
12544let isExtended = 1;
12545let BaseOpcode = "L4_loadrb_abs";
12546let CextOpcode = "L2_loadrb";
12547let DecoderNamespace = "MustExtend";
12548let isExtendable = 1;
12549let opExtendable = 2;
12550let isExtentSigned = 0;
12551let opExtentBits = 6;
12552let opExtentAlign = 0;
12553}
12554def L4_ploadrbf_rr : HInst<
12555(outs IntRegs:$Rd32),
12556(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12557"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12558tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12559let Inst{31-21} = 0b00110001000;
12560let isPredicated = 1;
12561let isPredicatedFalse = 1;
12562let hasNewValue = 1;
12563let opNewValue = 0;
12564let addrMode = BaseRegOffset;
12565let accessSize = ByteAccess;
12566let mayLoad = 1;
12567let BaseOpcode = "L4_loadrb_rr";
12568let CextOpcode = "L2_loadrb";
12569let InputType = "reg";
12570}
12571def L4_ploadrbfnew_abs : HInst<
12572(outs IntRegs:$Rd32),
12573(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12574"if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12575tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12576let Inst{7-5} = 0b100;
12577let Inst{13-11} = 0b111;
12578let Inst{31-21} = 0b10011111000;
12579let isPredicated = 1;
12580let isPredicatedFalse = 1;
12581let hasNewValue = 1;
12582let opNewValue = 0;
12583let addrMode = Absolute;
12584let accessSize = ByteAccess;
12585let isPredicatedNew = 1;
12586let mayLoad = 1;
12587let isExtended = 1;
12588let BaseOpcode = "L4_loadrb_abs";
12589let CextOpcode = "L2_loadrb";
12590let DecoderNamespace = "MustExtend";
12591let isExtendable = 1;
12592let opExtendable = 2;
12593let isExtentSigned = 0;
12594let opExtentBits = 6;
12595let opExtentAlign = 0;
12596}
12597def L4_ploadrbfnew_rr : HInst<
12598(outs IntRegs:$Rd32),
12599(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12600"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12601tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12602let Inst{31-21} = 0b00110011000;
12603let isPredicated = 1;
12604let isPredicatedFalse = 1;
12605let hasNewValue = 1;
12606let opNewValue = 0;
12607let addrMode = BaseRegOffset;
12608let accessSize = ByteAccess;
12609let isPredicatedNew = 1;
12610let mayLoad = 1;
12611let BaseOpcode = "L4_loadrb_rr";
12612let CextOpcode = "L2_loadrb";
12613let InputType = "reg";
12614}
12615def L4_ploadrbt_abs : HInst<
12616(outs IntRegs:$Rd32),
12617(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12618"if ($Pt4) $Rd32 = memb(#$Ii)",
12619tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12620let Inst{7-5} = 0b100;
12621let Inst{13-11} = 0b100;
12622let Inst{31-21} = 0b10011111000;
12623let isPredicated = 1;
12624let hasNewValue = 1;
12625let opNewValue = 0;
12626let addrMode = Absolute;
12627let accessSize = ByteAccess;
12628let mayLoad = 1;
12629let isExtended = 1;
12630let BaseOpcode = "L4_loadrb_abs";
12631let CextOpcode = "L2_loadrb";
12632let DecoderNamespace = "MustExtend";
12633let isExtendable = 1;
12634let opExtendable = 2;
12635let isExtentSigned = 0;
12636let opExtentBits = 6;
12637let opExtentAlign = 0;
12638}
12639def L4_ploadrbt_rr : HInst<
12640(outs IntRegs:$Rd32),
12641(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12642"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12643tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12644let Inst{31-21} = 0b00110000000;
12645let isPredicated = 1;
12646let hasNewValue = 1;
12647let opNewValue = 0;
12648let addrMode = BaseRegOffset;
12649let accessSize = ByteAccess;
12650let mayLoad = 1;
12651let BaseOpcode = "L4_loadrb_rr";
12652let CextOpcode = "L2_loadrb";
12653let InputType = "reg";
12654}
12655def L4_ploadrbtnew_abs : HInst<
12656(outs IntRegs:$Rd32),
12657(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12658"if ($Pt4.new) $Rd32 = memb(#$Ii)",
12659tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12660let Inst{7-5} = 0b100;
12661let Inst{13-11} = 0b110;
12662let Inst{31-21} = 0b10011111000;
12663let isPredicated = 1;
12664let hasNewValue = 1;
12665let opNewValue = 0;
12666let addrMode = Absolute;
12667let accessSize = ByteAccess;
12668let isPredicatedNew = 1;
12669let mayLoad = 1;
12670let isExtended = 1;
12671let BaseOpcode = "L4_loadrb_abs";
12672let CextOpcode = "L2_loadrb";
12673let DecoderNamespace = "MustExtend";
12674let isExtendable = 1;
12675let opExtendable = 2;
12676let isExtentSigned = 0;
12677let opExtentBits = 6;
12678let opExtentAlign = 0;
12679}
12680def L4_ploadrbtnew_rr : HInst<
12681(outs IntRegs:$Rd32),
12682(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12683"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12684tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12685let Inst{31-21} = 0b00110010000;
12686let isPredicated = 1;
12687let hasNewValue = 1;
12688let opNewValue = 0;
12689let addrMode = BaseRegOffset;
12690let accessSize = ByteAccess;
12691let isPredicatedNew = 1;
12692let mayLoad = 1;
12693let BaseOpcode = "L4_loadrb_rr";
12694let CextOpcode = "L2_loadrb";
12695let InputType = "reg";
12696}
12697def L4_ploadrdf_abs : HInst<
12698(outs DoubleRegs:$Rdd32),
12699(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12700"if (!$Pt4) $Rdd32 = memd(#$Ii)",
12701tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12702let Inst{7-5} = 0b100;
12703let Inst{13-11} = 0b101;
12704let Inst{31-21} = 0b10011111110;
12705let isPredicated = 1;
12706let isPredicatedFalse = 1;
12707let addrMode = Absolute;
12708let accessSize = DoubleWordAccess;
12709let mayLoad = 1;
12710let isExtended = 1;
12711let BaseOpcode = "L4_loadrd_abs";
12712let CextOpcode = "L2_loadrd";
12713let DecoderNamespace = "MustExtend";
12714let isExtendable = 1;
12715let opExtendable = 2;
12716let isExtentSigned = 0;
12717let opExtentBits = 6;
12718let opExtentAlign = 0;
12719}
12720def L4_ploadrdf_rr : HInst<
12721(outs DoubleRegs:$Rdd32),
12722(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12723"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12724tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12725let Inst{31-21} = 0b00110001110;
12726let isPredicated = 1;
12727let isPredicatedFalse = 1;
12728let addrMode = BaseRegOffset;
12729let accessSize = DoubleWordAccess;
12730let mayLoad = 1;
12731let BaseOpcode = "L4_loadrd_rr";
12732let CextOpcode = "L2_loadrd";
12733let InputType = "reg";
12734}
12735def L4_ploadrdfnew_abs : HInst<
12736(outs DoubleRegs:$Rdd32),
12737(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12738"if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12739tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12740let Inst{7-5} = 0b100;
12741let Inst{13-11} = 0b111;
12742let Inst{31-21} = 0b10011111110;
12743let isPredicated = 1;
12744let isPredicatedFalse = 1;
12745let addrMode = Absolute;
12746let accessSize = DoubleWordAccess;
12747let isPredicatedNew = 1;
12748let mayLoad = 1;
12749let isExtended = 1;
12750let BaseOpcode = "L4_loadrd_abs";
12751let CextOpcode = "L2_loadrd";
12752let DecoderNamespace = "MustExtend";
12753let isExtendable = 1;
12754let opExtendable = 2;
12755let isExtentSigned = 0;
12756let opExtentBits = 6;
12757let opExtentAlign = 0;
12758}
12759def L4_ploadrdfnew_rr : HInst<
12760(outs DoubleRegs:$Rdd32),
12761(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12762"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12763tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12764let Inst{31-21} = 0b00110011110;
12765let isPredicated = 1;
12766let isPredicatedFalse = 1;
12767let addrMode = BaseRegOffset;
12768let accessSize = DoubleWordAccess;
12769let isPredicatedNew = 1;
12770let mayLoad = 1;
12771let BaseOpcode = "L4_loadrd_rr";
12772let CextOpcode = "L2_loadrd";
12773let InputType = "reg";
12774}
12775def L4_ploadrdt_abs : HInst<
12776(outs DoubleRegs:$Rdd32),
12777(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12778"if ($Pt4) $Rdd32 = memd(#$Ii)",
12779tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12780let Inst{7-5} = 0b100;
12781let Inst{13-11} = 0b100;
12782let Inst{31-21} = 0b10011111110;
12783let isPredicated = 1;
12784let addrMode = Absolute;
12785let accessSize = DoubleWordAccess;
12786let mayLoad = 1;
12787let isExtended = 1;
12788let BaseOpcode = "L4_loadrd_abs";
12789let CextOpcode = "L2_loadrd";
12790let DecoderNamespace = "MustExtend";
12791let isExtendable = 1;
12792let opExtendable = 2;
12793let isExtentSigned = 0;
12794let opExtentBits = 6;
12795let opExtentAlign = 0;
12796}
12797def L4_ploadrdt_rr : HInst<
12798(outs DoubleRegs:$Rdd32),
12799(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12800"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12801tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12802let Inst{31-21} = 0b00110000110;
12803let isPredicated = 1;
12804let addrMode = BaseRegOffset;
12805let accessSize = DoubleWordAccess;
12806let mayLoad = 1;
12807let BaseOpcode = "L4_loadrd_rr";
12808let CextOpcode = "L2_loadrd";
12809let InputType = "reg";
12810}
12811def L4_ploadrdtnew_abs : HInst<
12812(outs DoubleRegs:$Rdd32),
12813(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12814"if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12815tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12816let Inst{7-5} = 0b100;
12817let Inst{13-11} = 0b110;
12818let Inst{31-21} = 0b10011111110;
12819let isPredicated = 1;
12820let addrMode = Absolute;
12821let accessSize = DoubleWordAccess;
12822let isPredicatedNew = 1;
12823let mayLoad = 1;
12824let isExtended = 1;
12825let BaseOpcode = "L4_loadrd_abs";
12826let CextOpcode = "L2_loadrd";
12827let DecoderNamespace = "MustExtend";
12828let isExtendable = 1;
12829let opExtendable = 2;
12830let isExtentSigned = 0;
12831let opExtentBits = 6;
12832let opExtentAlign = 0;
12833}
12834def L4_ploadrdtnew_rr : HInst<
12835(outs DoubleRegs:$Rdd32),
12836(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12837"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12838tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12839let Inst{31-21} = 0b00110010110;
12840let isPredicated = 1;
12841let addrMode = BaseRegOffset;
12842let accessSize = DoubleWordAccess;
12843let isPredicatedNew = 1;
12844let mayLoad = 1;
12845let BaseOpcode = "L4_loadrd_rr";
12846let CextOpcode = "L2_loadrd";
12847let InputType = "reg";
12848}
12849def L4_ploadrhf_abs : HInst<
12850(outs IntRegs:$Rd32),
12851(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12852"if (!$Pt4) $Rd32 = memh(#$Ii)",
12853tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12854let Inst{7-5} = 0b100;
12855let Inst{13-11} = 0b101;
12856let Inst{31-21} = 0b10011111010;
12857let isPredicated = 1;
12858let isPredicatedFalse = 1;
12859let hasNewValue = 1;
12860let opNewValue = 0;
12861let addrMode = Absolute;
12862let accessSize = HalfWordAccess;
12863let mayLoad = 1;
12864let isExtended = 1;
12865let BaseOpcode = "L4_loadrh_abs";
12866let CextOpcode = "L2_loadrh";
12867let DecoderNamespace = "MustExtend";
12868let isExtendable = 1;
12869let opExtendable = 2;
12870let isExtentSigned = 0;
12871let opExtentBits = 6;
12872let opExtentAlign = 0;
12873}
12874def L4_ploadrhf_rr : HInst<
12875(outs IntRegs:$Rd32),
12876(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12877"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12878tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12879let Inst{31-21} = 0b00110001010;
12880let isPredicated = 1;
12881let isPredicatedFalse = 1;
12882let hasNewValue = 1;
12883let opNewValue = 0;
12884let addrMode = BaseRegOffset;
12885let accessSize = HalfWordAccess;
12886let mayLoad = 1;
12887let BaseOpcode = "L4_loadrh_rr";
12888let CextOpcode = "L2_loadrh";
12889let InputType = "reg";
12890}
12891def L4_ploadrhfnew_abs : HInst<
12892(outs IntRegs:$Rd32),
12893(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12894"if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12895tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12896let Inst{7-5} = 0b100;
12897let Inst{13-11} = 0b111;
12898let Inst{31-21} = 0b10011111010;
12899let isPredicated = 1;
12900let isPredicatedFalse = 1;
12901let hasNewValue = 1;
12902let opNewValue = 0;
12903let addrMode = Absolute;
12904let accessSize = HalfWordAccess;
12905let isPredicatedNew = 1;
12906let mayLoad = 1;
12907let isExtended = 1;
12908let BaseOpcode = "L4_loadrh_abs";
12909let CextOpcode = "L2_loadrh";
12910let DecoderNamespace = "MustExtend";
12911let isExtendable = 1;
12912let opExtendable = 2;
12913let isExtentSigned = 0;
12914let opExtentBits = 6;
12915let opExtentAlign = 0;
12916}
12917def L4_ploadrhfnew_rr : HInst<
12918(outs IntRegs:$Rd32),
12919(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12920"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12921tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12922let Inst{31-21} = 0b00110011010;
12923let isPredicated = 1;
12924let isPredicatedFalse = 1;
12925let hasNewValue = 1;
12926let opNewValue = 0;
12927let addrMode = BaseRegOffset;
12928let accessSize = HalfWordAccess;
12929let isPredicatedNew = 1;
12930let mayLoad = 1;
12931let BaseOpcode = "L4_loadrh_rr";
12932let CextOpcode = "L2_loadrh";
12933let InputType = "reg";
12934}
12935def L4_ploadrht_abs : HInst<
12936(outs IntRegs:$Rd32),
12937(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12938"if ($Pt4) $Rd32 = memh(#$Ii)",
12939tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12940let Inst{7-5} = 0b100;
12941let Inst{13-11} = 0b100;
12942let Inst{31-21} = 0b10011111010;
12943let isPredicated = 1;
12944let hasNewValue = 1;
12945let opNewValue = 0;
12946let addrMode = Absolute;
12947let accessSize = HalfWordAccess;
12948let mayLoad = 1;
12949let isExtended = 1;
12950let BaseOpcode = "L4_loadrh_abs";
12951let CextOpcode = "L2_loadrh";
12952let DecoderNamespace = "MustExtend";
12953let isExtendable = 1;
12954let opExtendable = 2;
12955let isExtentSigned = 0;
12956let opExtentBits = 6;
12957let opExtentAlign = 0;
12958}
12959def L4_ploadrht_rr : HInst<
12960(outs IntRegs:$Rd32),
12961(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12962"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12963tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12964let Inst{31-21} = 0b00110000010;
12965let isPredicated = 1;
12966let hasNewValue = 1;
12967let opNewValue = 0;
12968let addrMode = BaseRegOffset;
12969let accessSize = HalfWordAccess;
12970let mayLoad = 1;
12971let BaseOpcode = "L4_loadrh_rr";
12972let CextOpcode = "L2_loadrh";
12973let InputType = "reg";
12974}
12975def L4_ploadrhtnew_abs : HInst<
12976(outs IntRegs:$Rd32),
12977(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12978"if ($Pt4.new) $Rd32 = memh(#$Ii)",
12979tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12980let Inst{7-5} = 0b100;
12981let Inst{13-11} = 0b110;
12982let Inst{31-21} = 0b10011111010;
12983let isPredicated = 1;
12984let hasNewValue = 1;
12985let opNewValue = 0;
12986let addrMode = Absolute;
12987let accessSize = HalfWordAccess;
12988let isPredicatedNew = 1;
12989let mayLoad = 1;
12990let isExtended = 1;
12991let BaseOpcode = "L4_loadrh_abs";
12992let CextOpcode = "L2_loadrh";
12993let DecoderNamespace = "MustExtend";
12994let isExtendable = 1;
12995let opExtendable = 2;
12996let isExtentSigned = 0;
12997let opExtentBits = 6;
12998let opExtentAlign = 0;
12999}
13000def L4_ploadrhtnew_rr : HInst<
13001(outs IntRegs:$Rd32),
13002(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13003"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
13004tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13005let Inst{31-21} = 0b00110010010;
13006let isPredicated = 1;
13007let hasNewValue = 1;
13008let opNewValue = 0;
13009let addrMode = BaseRegOffset;
13010let accessSize = HalfWordAccess;
13011let isPredicatedNew = 1;
13012let mayLoad = 1;
13013let BaseOpcode = "L4_loadrh_rr";
13014let CextOpcode = "L2_loadrh";
13015let InputType = "reg";
13016}
13017def L4_ploadrif_abs : HInst<
13018(outs IntRegs:$Rd32),
13019(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13020"if (!$Pt4) $Rd32 = memw(#$Ii)",
13021tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13022let Inst{7-5} = 0b100;
13023let Inst{13-11} = 0b101;
13024let Inst{31-21} = 0b10011111100;
13025let isPredicated = 1;
13026let isPredicatedFalse = 1;
13027let hasNewValue = 1;
13028let opNewValue = 0;
13029let addrMode = Absolute;
13030let accessSize = WordAccess;
13031let mayLoad = 1;
13032let isExtended = 1;
13033let BaseOpcode = "L4_loadri_abs";
13034let CextOpcode = "L2_loadri";
13035let DecoderNamespace = "MustExtend";
13036let isExtendable = 1;
13037let opExtendable = 2;
13038let isExtentSigned = 0;
13039let opExtentBits = 6;
13040let opExtentAlign = 0;
13041}
13042def L4_ploadrif_rr : HInst<
13043(outs IntRegs:$Rd32),
13044(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13045"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13046tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13047let Inst{31-21} = 0b00110001100;
13048let isPredicated = 1;
13049let isPredicatedFalse = 1;
13050let hasNewValue = 1;
13051let opNewValue = 0;
13052let addrMode = BaseRegOffset;
13053let accessSize = WordAccess;
13054let mayLoad = 1;
13055let BaseOpcode = "L4_loadri_rr";
13056let CextOpcode = "L2_loadri";
13057let InputType = "reg";
13058}
13059def L4_ploadrifnew_abs : HInst<
13060(outs IntRegs:$Rd32),
13061(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13062"if (!$Pt4.new) $Rd32 = memw(#$Ii)",
13063tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13064let Inst{7-5} = 0b100;
13065let Inst{13-11} = 0b111;
13066let Inst{31-21} = 0b10011111100;
13067let isPredicated = 1;
13068let isPredicatedFalse = 1;
13069let hasNewValue = 1;
13070let opNewValue = 0;
13071let addrMode = Absolute;
13072let accessSize = WordAccess;
13073let isPredicatedNew = 1;
13074let mayLoad = 1;
13075let isExtended = 1;
13076let BaseOpcode = "L4_loadri_abs";
13077let CextOpcode = "L2_loadri";
13078let DecoderNamespace = "MustExtend";
13079let isExtendable = 1;
13080let opExtendable = 2;
13081let isExtentSigned = 0;
13082let opExtentBits = 6;
13083let opExtentAlign = 0;
13084}
13085def L4_ploadrifnew_rr : HInst<
13086(outs IntRegs:$Rd32),
13087(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13088"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13089tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13090let Inst{31-21} = 0b00110011100;
13091let isPredicated = 1;
13092let isPredicatedFalse = 1;
13093let hasNewValue = 1;
13094let opNewValue = 0;
13095let addrMode = BaseRegOffset;
13096let accessSize = WordAccess;
13097let isPredicatedNew = 1;
13098let mayLoad = 1;
13099let BaseOpcode = "L4_loadri_rr";
13100let CextOpcode = "L2_loadri";
13101let InputType = "reg";
13102}
13103def L4_ploadrit_abs : HInst<
13104(outs IntRegs:$Rd32),
13105(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13106"if ($Pt4) $Rd32 = memw(#$Ii)",
13107tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13108let Inst{7-5} = 0b100;
13109let Inst{13-11} = 0b100;
13110let Inst{31-21} = 0b10011111100;
13111let isPredicated = 1;
13112let hasNewValue = 1;
13113let opNewValue = 0;
13114let addrMode = Absolute;
13115let accessSize = WordAccess;
13116let mayLoad = 1;
13117let isExtended = 1;
13118let BaseOpcode = "L4_loadri_abs";
13119let CextOpcode = "L2_loadri";
13120let DecoderNamespace = "MustExtend";
13121let isExtendable = 1;
13122let opExtendable = 2;
13123let isExtentSigned = 0;
13124let opExtentBits = 6;
13125let opExtentAlign = 0;
13126}
13127def L4_ploadrit_rr : HInst<
13128(outs IntRegs:$Rd32),
13129(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13130"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13131tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13132let Inst{31-21} = 0b00110000100;
13133let isPredicated = 1;
13134let hasNewValue = 1;
13135let opNewValue = 0;
13136let addrMode = BaseRegOffset;
13137let accessSize = WordAccess;
13138let mayLoad = 1;
13139let BaseOpcode = "L4_loadri_rr";
13140let CextOpcode = "L2_loadri";
13141let InputType = "reg";
13142}
13143def L4_ploadritnew_abs : HInst<
13144(outs IntRegs:$Rd32),
13145(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13146"if ($Pt4.new) $Rd32 = memw(#$Ii)",
13147tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13148let Inst{7-5} = 0b100;
13149let Inst{13-11} = 0b110;
13150let Inst{31-21} = 0b10011111100;
13151let isPredicated = 1;
13152let hasNewValue = 1;
13153let opNewValue = 0;
13154let addrMode = Absolute;
13155let accessSize = WordAccess;
13156let isPredicatedNew = 1;
13157let mayLoad = 1;
13158let isExtended = 1;
13159let BaseOpcode = "L4_loadri_abs";
13160let CextOpcode = "L2_loadri";
13161let DecoderNamespace = "MustExtend";
13162let isExtendable = 1;
13163let opExtendable = 2;
13164let isExtentSigned = 0;
13165let opExtentBits = 6;
13166let opExtentAlign = 0;
13167}
13168def L4_ploadritnew_rr : HInst<
13169(outs IntRegs:$Rd32),
13170(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13171"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13172tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13173let Inst{31-21} = 0b00110010100;
13174let isPredicated = 1;
13175let hasNewValue = 1;
13176let opNewValue = 0;
13177let addrMode = BaseRegOffset;
13178let accessSize = WordAccess;
13179let isPredicatedNew = 1;
13180let mayLoad = 1;
13181let BaseOpcode = "L4_loadri_rr";
13182let CextOpcode = "L2_loadri";
13183let InputType = "reg";
13184}
13185def L4_ploadrubf_abs : HInst<
13186(outs IntRegs:$Rd32),
13187(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13188"if (!$Pt4) $Rd32 = memub(#$Ii)",
13189tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13190let Inst{7-5} = 0b100;
13191let Inst{13-11} = 0b101;
13192let Inst{31-21} = 0b10011111001;
13193let isPredicated = 1;
13194let isPredicatedFalse = 1;
13195let hasNewValue = 1;
13196let opNewValue = 0;
13197let addrMode = Absolute;
13198let accessSize = ByteAccess;
13199let mayLoad = 1;
13200let isExtended = 1;
13201let BaseOpcode = "L4_loadrub_abs";
13202let CextOpcode = "L2_loadrub";
13203let DecoderNamespace = "MustExtend";
13204let isExtendable = 1;
13205let opExtendable = 2;
13206let isExtentSigned = 0;
13207let opExtentBits = 6;
13208let opExtentAlign = 0;
13209}
13210def L4_ploadrubf_rr : HInst<
13211(outs IntRegs:$Rd32),
13212(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13213"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13214tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13215let Inst{31-21} = 0b00110001001;
13216let isPredicated = 1;
13217let isPredicatedFalse = 1;
13218let hasNewValue = 1;
13219let opNewValue = 0;
13220let addrMode = BaseRegOffset;
13221let accessSize = ByteAccess;
13222let mayLoad = 1;
13223let BaseOpcode = "L4_loadrub_rr";
13224let CextOpcode = "L2_loadrub";
13225let InputType = "reg";
13226}
13227def L4_ploadrubfnew_abs : HInst<
13228(outs IntRegs:$Rd32),
13229(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13230"if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13231tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13232let Inst{7-5} = 0b100;
13233let Inst{13-11} = 0b111;
13234let Inst{31-21} = 0b10011111001;
13235let isPredicated = 1;
13236let isPredicatedFalse = 1;
13237let hasNewValue = 1;
13238let opNewValue = 0;
13239let addrMode = Absolute;
13240let accessSize = ByteAccess;
13241let isPredicatedNew = 1;
13242let mayLoad = 1;
13243let isExtended = 1;
13244let BaseOpcode = "L4_loadrub_abs";
13245let CextOpcode = "L2_loadrub";
13246let DecoderNamespace = "MustExtend";
13247let isExtendable = 1;
13248let opExtendable = 2;
13249let isExtentSigned = 0;
13250let opExtentBits = 6;
13251let opExtentAlign = 0;
13252}
13253def L4_ploadrubfnew_rr : HInst<
13254(outs IntRegs:$Rd32),
13255(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13256"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13257tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13258let Inst{31-21} = 0b00110011001;
13259let isPredicated = 1;
13260let isPredicatedFalse = 1;
13261let hasNewValue = 1;
13262let opNewValue = 0;
13263let addrMode = BaseRegOffset;
13264let accessSize = ByteAccess;
13265let isPredicatedNew = 1;
13266let mayLoad = 1;
13267let BaseOpcode = "L4_loadrub_rr";
13268let CextOpcode = "L2_loadrub";
13269let InputType = "reg";
13270}
13271def L4_ploadrubt_abs : HInst<
13272(outs IntRegs:$Rd32),
13273(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13274"if ($Pt4) $Rd32 = memub(#$Ii)",
13275tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13276let Inst{7-5} = 0b100;
13277let Inst{13-11} = 0b100;
13278let Inst{31-21} = 0b10011111001;
13279let isPredicated = 1;
13280let hasNewValue = 1;
13281let opNewValue = 0;
13282let addrMode = Absolute;
13283let accessSize = ByteAccess;
13284let mayLoad = 1;
13285let isExtended = 1;
13286let BaseOpcode = "L4_loadrub_abs";
13287let CextOpcode = "L2_loadrub";
13288let DecoderNamespace = "MustExtend";
13289let isExtendable = 1;
13290let opExtendable = 2;
13291let isExtentSigned = 0;
13292let opExtentBits = 6;
13293let opExtentAlign = 0;
13294}
13295def L4_ploadrubt_rr : HInst<
13296(outs IntRegs:$Rd32),
13297(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13298"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13299tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13300let Inst{31-21} = 0b00110000001;
13301let isPredicated = 1;
13302let hasNewValue = 1;
13303let opNewValue = 0;
13304let addrMode = BaseRegOffset;
13305let accessSize = ByteAccess;
13306let mayLoad = 1;
13307let BaseOpcode = "L4_loadrub_rr";
13308let CextOpcode = "L2_loadrub";
13309let InputType = "reg";
13310}
13311def L4_ploadrubtnew_abs : HInst<
13312(outs IntRegs:$Rd32),
13313(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13314"if ($Pt4.new) $Rd32 = memub(#$Ii)",
13315tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13316let Inst{7-5} = 0b100;
13317let Inst{13-11} = 0b110;
13318let Inst{31-21} = 0b10011111001;
13319let isPredicated = 1;
13320let hasNewValue = 1;
13321let opNewValue = 0;
13322let addrMode = Absolute;
13323let accessSize = ByteAccess;
13324let isPredicatedNew = 1;
13325let mayLoad = 1;
13326let isExtended = 1;
13327let BaseOpcode = "L4_loadrub_abs";
13328let CextOpcode = "L2_loadrub";
13329let DecoderNamespace = "MustExtend";
13330let isExtendable = 1;
13331let opExtendable = 2;
13332let isExtentSigned = 0;
13333let opExtentBits = 6;
13334let opExtentAlign = 0;
13335}
13336def L4_ploadrubtnew_rr : HInst<
13337(outs IntRegs:$Rd32),
13338(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13339"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13340tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13341let Inst{31-21} = 0b00110010001;
13342let isPredicated = 1;
13343let hasNewValue = 1;
13344let opNewValue = 0;
13345let addrMode = BaseRegOffset;
13346let accessSize = ByteAccess;
13347let isPredicatedNew = 1;
13348let mayLoad = 1;
13349let BaseOpcode = "L4_loadrub_rr";
13350let CextOpcode = "L2_loadrub";
13351let InputType = "reg";
13352}
13353def L4_ploadruhf_abs : HInst<
13354(outs IntRegs:$Rd32),
13355(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13356"if (!$Pt4) $Rd32 = memuh(#$Ii)",
13357tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13358let Inst{7-5} = 0b100;
13359let Inst{13-11} = 0b101;
13360let Inst{31-21} = 0b10011111011;
13361let isPredicated = 1;
13362let isPredicatedFalse = 1;
13363let hasNewValue = 1;
13364let opNewValue = 0;
13365let addrMode = Absolute;
13366let accessSize = HalfWordAccess;
13367let mayLoad = 1;
13368let isExtended = 1;
13369let BaseOpcode = "L4_loadruh_abs";
13370let CextOpcode = "L2_loadruh";
13371let DecoderNamespace = "MustExtend";
13372let isExtendable = 1;
13373let opExtendable = 2;
13374let isExtentSigned = 0;
13375let opExtentBits = 6;
13376let opExtentAlign = 0;
13377}
13378def L4_ploadruhf_rr : HInst<
13379(outs IntRegs:$Rd32),
13380(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13381"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13382tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13383let Inst{31-21} = 0b00110001011;
13384let isPredicated = 1;
13385let isPredicatedFalse = 1;
13386let hasNewValue = 1;
13387let opNewValue = 0;
13388let addrMode = BaseRegOffset;
13389let accessSize = HalfWordAccess;
13390let mayLoad = 1;
13391let BaseOpcode = "L4_loadruh_rr";
13392let CextOpcode = "L2_loadruh";
13393let InputType = "reg";
13394}
13395def L4_ploadruhfnew_abs : HInst<
13396(outs IntRegs:$Rd32),
13397(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13398"if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13399tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13400let Inst{7-5} = 0b100;
13401let Inst{13-11} = 0b111;
13402let Inst{31-21} = 0b10011111011;
13403let isPredicated = 1;
13404let isPredicatedFalse = 1;
13405let hasNewValue = 1;
13406let opNewValue = 0;
13407let addrMode = Absolute;
13408let accessSize = HalfWordAccess;
13409let isPredicatedNew = 1;
13410let mayLoad = 1;
13411let isExtended = 1;
13412let BaseOpcode = "L4_loadruh_abs";
13413let CextOpcode = "L2_loadruh";
13414let DecoderNamespace = "MustExtend";
13415let isExtendable = 1;
13416let opExtendable = 2;
13417let isExtentSigned = 0;
13418let opExtentBits = 6;
13419let opExtentAlign = 0;
13420}
13421def L4_ploadruhfnew_rr : HInst<
13422(outs IntRegs:$Rd32),
13423(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13424"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13425tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13426let Inst{31-21} = 0b00110011011;
13427let isPredicated = 1;
13428let isPredicatedFalse = 1;
13429let hasNewValue = 1;
13430let opNewValue = 0;
13431let addrMode = BaseRegOffset;
13432let accessSize = HalfWordAccess;
13433let isPredicatedNew = 1;
13434let mayLoad = 1;
13435let BaseOpcode = "L4_loadruh_rr";
13436let CextOpcode = "L2_loadruh";
13437let InputType = "reg";
13438}
13439def L4_ploadruht_abs : HInst<
13440(outs IntRegs:$Rd32),
13441(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13442"if ($Pt4) $Rd32 = memuh(#$Ii)",
13443tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13444let Inst{7-5} = 0b100;
13445let Inst{13-11} = 0b100;
13446let Inst{31-21} = 0b10011111011;
13447let isPredicated = 1;
13448let hasNewValue = 1;
13449let opNewValue = 0;
13450let addrMode = Absolute;
13451let accessSize = HalfWordAccess;
13452let mayLoad = 1;
13453let isExtended = 1;
13454let BaseOpcode = "L4_loadruh_abs";
13455let CextOpcode = "L2_loadruh";
13456let DecoderNamespace = "MustExtend";
13457let isExtendable = 1;
13458let opExtendable = 2;
13459let isExtentSigned = 0;
13460let opExtentBits = 6;
13461let opExtentAlign = 0;
13462}
13463def L4_ploadruht_rr : HInst<
13464(outs IntRegs:$Rd32),
13465(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13466"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13467tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13468let Inst{31-21} = 0b00110000011;
13469let isPredicated = 1;
13470let hasNewValue = 1;
13471let opNewValue = 0;
13472let addrMode = BaseRegOffset;
13473let accessSize = HalfWordAccess;
13474let mayLoad = 1;
13475let BaseOpcode = "L4_loadruh_rr";
13476let CextOpcode = "L2_loadruh";
13477let InputType = "reg";
13478}
13479def L4_ploadruhtnew_abs : HInst<
13480(outs IntRegs:$Rd32),
13481(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13482"if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13483tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13484let Inst{7-5} = 0b100;
13485let Inst{13-11} = 0b110;
13486let Inst{31-21} = 0b10011111011;
13487let isPredicated = 1;
13488let hasNewValue = 1;
13489let opNewValue = 0;
13490let addrMode = Absolute;
13491let accessSize = HalfWordAccess;
13492let isPredicatedNew = 1;
13493let mayLoad = 1;
13494let isExtended = 1;
13495let BaseOpcode = "L4_loadruh_abs";
13496let CextOpcode = "L2_loadruh";
13497let DecoderNamespace = "MustExtend";
13498let isExtendable = 1;
13499let opExtendable = 2;
13500let isExtentSigned = 0;
13501let opExtentBits = 6;
13502let opExtentAlign = 0;
13503}
13504def L4_ploadruhtnew_rr : HInst<
13505(outs IntRegs:$Rd32),
13506(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13507"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13508tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13509let Inst{31-21} = 0b00110010011;
13510let isPredicated = 1;
13511let hasNewValue = 1;
13512let opNewValue = 0;
13513let addrMode = BaseRegOffset;
13514let accessSize = HalfWordAccess;
13515let isPredicatedNew = 1;
13516let mayLoad = 1;
13517let BaseOpcode = "L4_loadruh_rr";
13518let CextOpcode = "L2_loadruh";
13519let InputType = "reg";
13520}
13521def L4_return : HInst<
13522(outs DoubleRegs:$Rdd32),
13523(ins IntRegs:$Rs32),
13524"$Rdd32 = dealloc_return($Rs32):raw",
13525tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel {
13526let Inst{13-5} = 0b000000000;
13527let Inst{31-21} = 0b10010110000;
13528let isTerminator = 1;
13529let isIndirectBranch = 1;
13530let accessSize = DoubleWordAccess;
13531let mayLoad = 1;
13532let cofMax1 = 1;
13533let isRestrictNoSlot1Store = 1;
13534let isReturn = 1;
13535let Uses = [FRAMEKEY];
13536let Defs = [PC, R29];
13537let BaseOpcode = "L4_return";
13538let isBarrier = 1;
13539let isPredicable = 1;
13540let isTaken = 1;
13541}
13542def L4_return_f : HInst<
13543(outs DoubleRegs:$Rdd32),
13544(ins PredRegs:$Pv4, IntRegs:$Rs32),
13545"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13546tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13547let Inst{7-5} = 0b000;
13548let Inst{13-10} = 0b1100;
13549let Inst{31-21} = 0b10010110000;
13550let isPredicated = 1;
13551let isPredicatedFalse = 1;
13552let isTerminator = 1;
13553let isIndirectBranch = 1;
13554let accessSize = DoubleWordAccess;
13555let mayLoad = 1;
13556let cofMax1 = 1;
13557let isRestrictNoSlot1Store = 1;
13558let isReturn = 1;
13559let Uses = [FRAMEKEY];
13560let Defs = [PC, R29];
13561let BaseOpcode = "L4_return";
13562let isTaken = Inst{12};
13563}
13564def L4_return_fnew_pnt : HInst<
13565(outs DoubleRegs:$Rdd32),
13566(ins PredRegs:$Pv4, IntRegs:$Rs32),
13567"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13568tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13569let Inst{7-5} = 0b000;
13570let Inst{13-10} = 0b1010;
13571let Inst{31-21} = 0b10010110000;
13572let isPredicated = 1;
13573let isPredicatedFalse = 1;
13574let isTerminator = 1;
13575let isIndirectBranch = 1;
13576let accessSize = DoubleWordAccess;
13577let isPredicatedNew = 1;
13578let mayLoad = 1;
13579let cofMax1 = 1;
13580let isRestrictNoSlot1Store = 1;
13581let isReturn = 1;
13582let Uses = [FRAMEKEY];
13583let Defs = [PC, R29];
13584let BaseOpcode = "L4_return";
13585let isTaken = Inst{12};
13586}
13587def L4_return_fnew_pt : HInst<
13588(outs DoubleRegs:$Rdd32),
13589(ins PredRegs:$Pv4, IntRegs:$Rs32),
13590"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13591tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13592let Inst{7-5} = 0b000;
13593let Inst{13-10} = 0b1110;
13594let Inst{31-21} = 0b10010110000;
13595let isPredicated = 1;
13596let isPredicatedFalse = 1;
13597let isTerminator = 1;
13598let isIndirectBranch = 1;
13599let accessSize = DoubleWordAccess;
13600let isPredicatedNew = 1;
13601let mayLoad = 1;
13602let cofMax1 = 1;
13603let isRestrictNoSlot1Store = 1;
13604let isReturn = 1;
13605let Uses = [FRAMEKEY];
13606let Defs = [PC, R29];
13607let BaseOpcode = "L4_return";
13608let isTaken = Inst{12};
13609}
13610def L4_return_map_to_raw_f : HInst<
13611(outs),
13612(ins PredRegs:$Pv4),
13613"if (!$Pv4) dealloc_return",
13614tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> {
13615let isPseudo = 1;
13616let isCodeGenOnly = 1;
13617}
13618def L4_return_map_to_raw_fnew_pnt : HInst<
13619(outs),
13620(ins PredRegs:$Pv4),
13621"if (!$Pv4.new) dealloc_return:nt",
13622tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13623let isPseudo = 1;
13624let isCodeGenOnly = 1;
13625}
13626def L4_return_map_to_raw_fnew_pt : HInst<
13627(outs),
13628(ins PredRegs:$Pv4),
13629"if (!$Pv4.new) dealloc_return:t",
13630tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13631let isPseudo = 1;
13632let isCodeGenOnly = 1;
13633}
13634def L4_return_map_to_raw_t : HInst<
13635(outs),
13636(ins PredRegs:$Pv4),
13637"if ($Pv4) dealloc_return",
13638tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> {
13639let isPseudo = 1;
13640let isCodeGenOnly = 1;
13641}
13642def L4_return_map_to_raw_tnew_pnt : HInst<
13643(outs),
13644(ins PredRegs:$Pv4),
13645"if ($Pv4.new) dealloc_return:nt",
13646tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13647let isPseudo = 1;
13648let isCodeGenOnly = 1;
13649}
13650def L4_return_map_to_raw_tnew_pt : HInst<
13651(outs),
13652(ins PredRegs:$Pv4),
13653"if ($Pv4.new) dealloc_return:t",
13654tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13655let isPseudo = 1;
13656let isCodeGenOnly = 1;
13657}
13658def L4_return_t : HInst<
13659(outs DoubleRegs:$Rdd32),
13660(ins PredRegs:$Pv4, IntRegs:$Rs32),
13661"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13662tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13663let Inst{7-5} = 0b000;
13664let Inst{13-10} = 0b0100;
13665let Inst{31-21} = 0b10010110000;
13666let isPredicated = 1;
13667let isTerminator = 1;
13668let isIndirectBranch = 1;
13669let accessSize = DoubleWordAccess;
13670let mayLoad = 1;
13671let cofMax1 = 1;
13672let isRestrictNoSlot1Store = 1;
13673let isReturn = 1;
13674let Uses = [FRAMEKEY];
13675let Defs = [PC, R29];
13676let BaseOpcode = "L4_return";
13677let isTaken = Inst{12};
13678}
13679def L4_return_tnew_pnt : HInst<
13680(outs DoubleRegs:$Rdd32),
13681(ins PredRegs:$Pv4, IntRegs:$Rs32),
13682"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13683tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13684let Inst{7-5} = 0b000;
13685let Inst{13-10} = 0b0010;
13686let Inst{31-21} = 0b10010110000;
13687let isPredicated = 1;
13688let isTerminator = 1;
13689let isIndirectBranch = 1;
13690let accessSize = DoubleWordAccess;
13691let isPredicatedNew = 1;
13692let mayLoad = 1;
13693let cofMax1 = 1;
13694let isRestrictNoSlot1Store = 1;
13695let isReturn = 1;
13696let Uses = [FRAMEKEY];
13697let Defs = [PC, R29];
13698let BaseOpcode = "L4_return";
13699let isTaken = Inst{12};
13700}
13701def L4_return_tnew_pt : HInst<
13702(outs DoubleRegs:$Rdd32),
13703(ins PredRegs:$Pv4, IntRegs:$Rs32),
13704"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13705tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13706let Inst{7-5} = 0b000;
13707let Inst{13-10} = 0b0110;
13708let Inst{31-21} = 0b10010110000;
13709let isPredicated = 1;
13710let isTerminator = 1;
13711let isIndirectBranch = 1;
13712let accessSize = DoubleWordAccess;
13713let isPredicatedNew = 1;
13714let mayLoad = 1;
13715let cofMax1 = 1;
13716let isRestrictNoSlot1Store = 1;
13717let isReturn = 1;
13718let Uses = [FRAMEKEY];
13719let Defs = [PC, R29];
13720let BaseOpcode = "L4_return";
13721let isTaken = Inst{12};
13722}
13723def L4_sub_memopb_io : HInst<
13724(outs),
13725(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13726"memb($Rs32+#$Ii) -= $Rt32",
13727tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
13728let Inst{6-5} = 0b01;
13729let Inst{13-13} = 0b0;
13730let Inst{31-21} = 0b00111110000;
13731let addrMode = BaseImmOffset;
13732let accessSize = ByteAccess;
13733let mayLoad = 1;
13734let isRestrictNoSlot1Store = 1;
13735let mayStore = 1;
13736let isExtendable = 1;
13737let opExtendable = 1;
13738let isExtentSigned = 0;
13739let opExtentBits = 6;
13740let opExtentAlign = 0;
13741}
13742def L4_sub_memopb_zomap : HInst<
13743(outs),
13744(ins IntRegs:$Rs32, IntRegs:$Rt32),
13745"memb($Rs32) -= $Rt32",
13746tc_9bcfb2ee, TypeMAPPING> {
13747let isPseudo = 1;
13748let isCodeGenOnly = 1;
13749}
13750def L4_sub_memoph_io : HInst<
13751(outs),
13752(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13753"memh($Rs32+#$Ii) -= $Rt32",
13754tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
13755let Inst{6-5} = 0b01;
13756let Inst{13-13} = 0b0;
13757let Inst{31-21} = 0b00111110001;
13758let addrMode = BaseImmOffset;
13759let accessSize = HalfWordAccess;
13760let mayLoad = 1;
13761let isRestrictNoSlot1Store = 1;
13762let mayStore = 1;
13763let isExtendable = 1;
13764let opExtendable = 1;
13765let isExtentSigned = 0;
13766let opExtentBits = 7;
13767let opExtentAlign = 1;
13768}
13769def L4_sub_memoph_zomap : HInst<
13770(outs),
13771(ins IntRegs:$Rs32, IntRegs:$Rt32),
13772"memh($Rs32) -= $Rt32",
13773tc_9bcfb2ee, TypeMAPPING> {
13774let isPseudo = 1;
13775let isCodeGenOnly = 1;
13776}
13777def L4_sub_memopw_io : HInst<
13778(outs),
13779(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13780"memw($Rs32+#$Ii) -= $Rt32",
13781tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
13782let Inst{6-5} = 0b01;
13783let Inst{13-13} = 0b0;
13784let Inst{31-21} = 0b00111110010;
13785let addrMode = BaseImmOffset;
13786let accessSize = WordAccess;
13787let mayLoad = 1;
13788let isRestrictNoSlot1Store = 1;
13789let mayStore = 1;
13790let isExtendable = 1;
13791let opExtendable = 1;
13792let isExtentSigned = 0;
13793let opExtentBits = 8;
13794let opExtentAlign = 2;
13795}
13796def L4_sub_memopw_zomap : HInst<
13797(outs),
13798(ins IntRegs:$Rs32, IntRegs:$Rt32),
13799"memw($Rs32) -= $Rt32",
13800tc_9bcfb2ee, TypeMAPPING> {
13801let isPseudo = 1;
13802let isCodeGenOnly = 1;
13803}
13804def L6_deallocframe_map_to_raw : HInst<
13805(outs),
13806(ins),
13807"deallocframe",
13808tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> {
13809let isPseudo = 1;
13810let isCodeGenOnly = 1;
13811}
13812def L6_memcpy : HInst<
13813(outs),
13814(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13815"memcpy($Rs32,$Rt32,$Mu2)",
13816tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13817let Inst{7-0} = 0b01000000;
13818let Inst{31-21} = 0b10010010000;
13819let mayLoad = 1;
13820let isSolo = 1;
13821let mayStore = 1;
13822}
13823def L6_return_map_to_raw : HInst<
13824(outs),
13825(ins),
13826"dealloc_return",
13827tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> {
13828let isPseudo = 1;
13829let isCodeGenOnly = 1;
13830}
13831def M2_acci : HInst<
13832(outs IntRegs:$Rx32),
13833(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13834"$Rx32 += add($Rs32,$Rt32)",
13835tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel {
13836let Inst{7-5} = 0b001;
13837let Inst{13-13} = 0b0;
13838let Inst{31-21} = 0b11101111000;
13839let hasNewValue = 1;
13840let opNewValue = 0;
13841let prefersSlot3 = 1;
13842let CextOpcode = "M2_acci";
13843let InputType = "reg";
13844let Constraints = "$Rx32 = $Rx32in";
13845}
13846def M2_accii : HInst<
13847(outs IntRegs:$Rx32),
13848(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13849"$Rx32 += add($Rs32,#$Ii)",
13850tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel {
13851let Inst{13-13} = 0b0;
13852let Inst{31-21} = 0b11100010000;
13853let hasNewValue = 1;
13854let opNewValue = 0;
13855let prefersSlot3 = 1;
13856let CextOpcode = "M2_acci";
13857let InputType = "imm";
13858let isExtendable = 1;
13859let opExtendable = 3;
13860let isExtentSigned = 1;
13861let opExtentBits = 8;
13862let opExtentAlign = 0;
13863let Constraints = "$Rx32 = $Rx32in";
13864}
13865def M2_cmaci_s0 : HInst<
13866(outs DoubleRegs:$Rxx32),
13867(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13868"$Rxx32 += cmpyi($Rs32,$Rt32)",
13869tc_7f8ae742, TypeM>, Enc_61f0b0 {
13870let Inst{7-5} = 0b001;
13871let Inst{13-13} = 0b0;
13872let Inst{31-21} = 0b11100111000;
13873let prefersSlot3 = 1;
13874let Constraints = "$Rxx32 = $Rxx32in";
13875}
13876def M2_cmacr_s0 : HInst<
13877(outs DoubleRegs:$Rxx32),
13878(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13879"$Rxx32 += cmpyr($Rs32,$Rt32)",
13880tc_7f8ae742, TypeM>, Enc_61f0b0 {
13881let Inst{7-5} = 0b010;
13882let Inst{13-13} = 0b0;
13883let Inst{31-21} = 0b11100111000;
13884let prefersSlot3 = 1;
13885let Constraints = "$Rxx32 = $Rxx32in";
13886}
13887def M2_cmacs_s0 : HInst<
13888(outs DoubleRegs:$Rxx32),
13889(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13890"$Rxx32 += cmpy($Rs32,$Rt32):sat",
13891tc_7f8ae742, TypeM>, Enc_61f0b0 {
13892let Inst{7-5} = 0b110;
13893let Inst{13-13} = 0b0;
13894let Inst{31-21} = 0b11100111000;
13895let prefersSlot3 = 1;
13896let Defs = [USR_OVF];
13897let Constraints = "$Rxx32 = $Rxx32in";
13898}
13899def M2_cmacs_s1 : HInst<
13900(outs DoubleRegs:$Rxx32),
13901(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13902"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13903tc_7f8ae742, TypeM>, Enc_61f0b0 {
13904let Inst{7-5} = 0b110;
13905let Inst{13-13} = 0b0;
13906let Inst{31-21} = 0b11100111100;
13907let prefersSlot3 = 1;
13908let Defs = [USR_OVF];
13909let Constraints = "$Rxx32 = $Rxx32in";
13910}
13911def M2_cmacsc_s0 : HInst<
13912(outs DoubleRegs:$Rxx32),
13913(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13914"$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13915tc_7f8ae742, TypeM>, Enc_61f0b0 {
13916let Inst{7-5} = 0b110;
13917let Inst{13-13} = 0b0;
13918let Inst{31-21} = 0b11100111010;
13919let prefersSlot3 = 1;
13920let Defs = [USR_OVF];
13921let Constraints = "$Rxx32 = $Rxx32in";
13922}
13923def M2_cmacsc_s1 : HInst<
13924(outs DoubleRegs:$Rxx32),
13925(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13926"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13927tc_7f8ae742, TypeM>, Enc_61f0b0 {
13928let Inst{7-5} = 0b110;
13929let Inst{13-13} = 0b0;
13930let Inst{31-21} = 0b11100111110;
13931let prefersSlot3 = 1;
13932let Defs = [USR_OVF];
13933let Constraints = "$Rxx32 = $Rxx32in";
13934}
13935def M2_cmpyi_s0 : HInst<
13936(outs DoubleRegs:$Rdd32),
13937(ins IntRegs:$Rs32, IntRegs:$Rt32),
13938"$Rdd32 = cmpyi($Rs32,$Rt32)",
13939tc_c21d7447, TypeM>, Enc_be32a5 {
13940let Inst{7-5} = 0b001;
13941let Inst{13-13} = 0b0;
13942let Inst{31-21} = 0b11100101000;
13943let prefersSlot3 = 1;
13944}
13945def M2_cmpyr_s0 : HInst<
13946(outs DoubleRegs:$Rdd32),
13947(ins IntRegs:$Rs32, IntRegs:$Rt32),
13948"$Rdd32 = cmpyr($Rs32,$Rt32)",
13949tc_c21d7447, TypeM>, Enc_be32a5 {
13950let Inst{7-5} = 0b010;
13951let Inst{13-13} = 0b0;
13952let Inst{31-21} = 0b11100101000;
13953let prefersSlot3 = 1;
13954}
13955def M2_cmpyrs_s0 : HInst<
13956(outs IntRegs:$Rd32),
13957(ins IntRegs:$Rs32, IntRegs:$Rt32),
13958"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13959tc_c21d7447, TypeM>, Enc_5ab2be {
13960let Inst{7-5} = 0b110;
13961let Inst{13-13} = 0b0;
13962let Inst{31-21} = 0b11101101001;
13963let hasNewValue = 1;
13964let opNewValue = 0;
13965let prefersSlot3 = 1;
13966let Defs = [USR_OVF];
13967}
13968def M2_cmpyrs_s1 : HInst<
13969(outs IntRegs:$Rd32),
13970(ins IntRegs:$Rs32, IntRegs:$Rt32),
13971"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13972tc_c21d7447, TypeM>, Enc_5ab2be {
13973let Inst{7-5} = 0b110;
13974let Inst{13-13} = 0b0;
13975let Inst{31-21} = 0b11101101101;
13976let hasNewValue = 1;
13977let opNewValue = 0;
13978let prefersSlot3 = 1;
13979let Defs = [USR_OVF];
13980}
13981def M2_cmpyrsc_s0 : HInst<
13982(outs IntRegs:$Rd32),
13983(ins IntRegs:$Rs32, IntRegs:$Rt32),
13984"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13985tc_c21d7447, TypeM>, Enc_5ab2be {
13986let Inst{7-5} = 0b110;
13987let Inst{13-13} = 0b0;
13988let Inst{31-21} = 0b11101101011;
13989let hasNewValue = 1;
13990let opNewValue = 0;
13991let prefersSlot3 = 1;
13992let Defs = [USR_OVF];
13993}
13994def M2_cmpyrsc_s1 : HInst<
13995(outs IntRegs:$Rd32),
13996(ins IntRegs:$Rs32, IntRegs:$Rt32),
13997"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13998tc_c21d7447, TypeM>, Enc_5ab2be {
13999let Inst{7-5} = 0b110;
14000let Inst{13-13} = 0b0;
14001let Inst{31-21} = 0b11101101111;
14002let hasNewValue = 1;
14003let opNewValue = 0;
14004let prefersSlot3 = 1;
14005let Defs = [USR_OVF];
14006}
14007def M2_cmpys_s0 : HInst<
14008(outs DoubleRegs:$Rdd32),
14009(ins IntRegs:$Rs32, IntRegs:$Rt32),
14010"$Rdd32 = cmpy($Rs32,$Rt32):sat",
14011tc_c21d7447, TypeM>, Enc_be32a5 {
14012let Inst{7-5} = 0b110;
14013let Inst{13-13} = 0b0;
14014let Inst{31-21} = 0b11100101000;
14015let prefersSlot3 = 1;
14016let Defs = [USR_OVF];
14017}
14018def M2_cmpys_s1 : HInst<
14019(outs DoubleRegs:$Rdd32),
14020(ins IntRegs:$Rs32, IntRegs:$Rt32),
14021"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
14022tc_c21d7447, TypeM>, Enc_be32a5 {
14023let Inst{7-5} = 0b110;
14024let Inst{13-13} = 0b0;
14025let Inst{31-21} = 0b11100101100;
14026let prefersSlot3 = 1;
14027let Defs = [USR_OVF];
14028}
14029def M2_cmpysc_s0 : HInst<
14030(outs DoubleRegs:$Rdd32),
14031(ins IntRegs:$Rs32, IntRegs:$Rt32),
14032"$Rdd32 = cmpy($Rs32,$Rt32*):sat",
14033tc_c21d7447, TypeM>, Enc_be32a5 {
14034let Inst{7-5} = 0b110;
14035let Inst{13-13} = 0b0;
14036let Inst{31-21} = 0b11100101010;
14037let prefersSlot3 = 1;
14038let Defs = [USR_OVF];
14039}
14040def M2_cmpysc_s1 : HInst<
14041(outs DoubleRegs:$Rdd32),
14042(ins IntRegs:$Rs32, IntRegs:$Rt32),
14043"$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
14044tc_c21d7447, TypeM>, Enc_be32a5 {
14045let Inst{7-5} = 0b110;
14046let Inst{13-13} = 0b0;
14047let Inst{31-21} = 0b11100101110;
14048let prefersSlot3 = 1;
14049let Defs = [USR_OVF];
14050}
14051def M2_cnacs_s0 : HInst<
14052(outs DoubleRegs:$Rxx32),
14053(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14054"$Rxx32 -= cmpy($Rs32,$Rt32):sat",
14055tc_7f8ae742, TypeM>, Enc_61f0b0 {
14056let Inst{7-5} = 0b111;
14057let Inst{13-13} = 0b0;
14058let Inst{31-21} = 0b11100111000;
14059let prefersSlot3 = 1;
14060let Defs = [USR_OVF];
14061let Constraints = "$Rxx32 = $Rxx32in";
14062}
14063def M2_cnacs_s1 : HInst<
14064(outs DoubleRegs:$Rxx32),
14065(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14066"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
14067tc_7f8ae742, TypeM>, Enc_61f0b0 {
14068let Inst{7-5} = 0b111;
14069let Inst{13-13} = 0b0;
14070let Inst{31-21} = 0b11100111100;
14071let prefersSlot3 = 1;
14072let Defs = [USR_OVF];
14073let Constraints = "$Rxx32 = $Rxx32in";
14074}
14075def M2_cnacsc_s0 : HInst<
14076(outs DoubleRegs:$Rxx32),
14077(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14078"$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
14079tc_7f8ae742, TypeM>, Enc_61f0b0 {
14080let Inst{7-5} = 0b111;
14081let Inst{13-13} = 0b0;
14082let Inst{31-21} = 0b11100111010;
14083let prefersSlot3 = 1;
14084let Defs = [USR_OVF];
14085let Constraints = "$Rxx32 = $Rxx32in";
14086}
14087def M2_cnacsc_s1 : HInst<
14088(outs DoubleRegs:$Rxx32),
14089(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14090"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
14091tc_7f8ae742, TypeM>, Enc_61f0b0 {
14092let Inst{7-5} = 0b111;
14093let Inst{13-13} = 0b0;
14094let Inst{31-21} = 0b11100111110;
14095let prefersSlot3 = 1;
14096let Defs = [USR_OVF];
14097let Constraints = "$Rxx32 = $Rxx32in";
14098}
14099def M2_dpmpyss_acc_s0 : HInst<
14100(outs DoubleRegs:$Rxx32),
14101(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14102"$Rxx32 += mpy($Rs32,$Rt32)",
14103tc_7f8ae742, TypeM>, Enc_61f0b0 {
14104let Inst{7-5} = 0b000;
14105let Inst{13-13} = 0b0;
14106let Inst{31-21} = 0b11100111000;
14107let prefersSlot3 = 1;
14108let Constraints = "$Rxx32 = $Rxx32in";
14109}
14110def M2_dpmpyss_nac_s0 : HInst<
14111(outs DoubleRegs:$Rxx32),
14112(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14113"$Rxx32 -= mpy($Rs32,$Rt32)",
14114tc_7f8ae742, TypeM>, Enc_61f0b0 {
14115let Inst{7-5} = 0b000;
14116let Inst{13-13} = 0b0;
14117let Inst{31-21} = 0b11100111001;
14118let prefersSlot3 = 1;
14119let Constraints = "$Rxx32 = $Rxx32in";
14120}
14121def M2_dpmpyss_rnd_s0 : HInst<
14122(outs IntRegs:$Rd32),
14123(ins IntRegs:$Rs32, IntRegs:$Rt32),
14124"$Rd32 = mpy($Rs32,$Rt32):rnd",
14125tc_c21d7447, TypeM>, Enc_5ab2be {
14126let Inst{7-5} = 0b001;
14127let Inst{13-13} = 0b0;
14128let Inst{31-21} = 0b11101101001;
14129let hasNewValue = 1;
14130let opNewValue = 0;
14131let prefersSlot3 = 1;
14132}
14133def M2_dpmpyss_s0 : HInst<
14134(outs DoubleRegs:$Rdd32),
14135(ins IntRegs:$Rs32, IntRegs:$Rt32),
14136"$Rdd32 = mpy($Rs32,$Rt32)",
14137tc_c21d7447, TypeM>, Enc_be32a5 {
14138let Inst{7-5} = 0b000;
14139let Inst{13-13} = 0b0;
14140let Inst{31-21} = 0b11100101000;
14141let prefersSlot3 = 1;
14142}
14143def M2_dpmpyuu_acc_s0 : HInst<
14144(outs DoubleRegs:$Rxx32),
14145(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14146"$Rxx32 += mpyu($Rs32,$Rt32)",
14147tc_7f8ae742, TypeM>, Enc_61f0b0 {
14148let Inst{7-5} = 0b000;
14149let Inst{13-13} = 0b0;
14150let Inst{31-21} = 0b11100111010;
14151let prefersSlot3 = 1;
14152let Constraints = "$Rxx32 = $Rxx32in";
14153}
14154def M2_dpmpyuu_nac_s0 : HInst<
14155(outs DoubleRegs:$Rxx32),
14156(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14157"$Rxx32 -= mpyu($Rs32,$Rt32)",
14158tc_7f8ae742, TypeM>, Enc_61f0b0 {
14159let Inst{7-5} = 0b000;
14160let Inst{13-13} = 0b0;
14161let Inst{31-21} = 0b11100111011;
14162let prefersSlot3 = 1;
14163let Constraints = "$Rxx32 = $Rxx32in";
14164}
14165def M2_dpmpyuu_s0 : HInst<
14166(outs DoubleRegs:$Rdd32),
14167(ins IntRegs:$Rs32, IntRegs:$Rt32),
14168"$Rdd32 = mpyu($Rs32,$Rt32)",
14169tc_c21d7447, TypeM>, Enc_be32a5 {
14170let Inst{7-5} = 0b000;
14171let Inst{13-13} = 0b0;
14172let Inst{31-21} = 0b11100101010;
14173let prefersSlot3 = 1;
14174}
14175def M2_hmmpyh_rs1 : HInst<
14176(outs IntRegs:$Rd32),
14177(ins IntRegs:$Rs32, IntRegs:$Rt32),
14178"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14179tc_c21d7447, TypeM>, Enc_5ab2be {
14180let Inst{7-5} = 0b100;
14181let Inst{13-13} = 0b0;
14182let Inst{31-21} = 0b11101101101;
14183let hasNewValue = 1;
14184let opNewValue = 0;
14185let prefersSlot3 = 1;
14186let Defs = [USR_OVF];
14187}
14188def M2_hmmpyh_s1 : HInst<
14189(outs IntRegs:$Rd32),
14190(ins IntRegs:$Rs32, IntRegs:$Rt32),
14191"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14192tc_c21d7447, TypeM>, Enc_5ab2be {
14193let Inst{7-5} = 0b000;
14194let Inst{13-13} = 0b0;
14195let Inst{31-21} = 0b11101101101;
14196let hasNewValue = 1;
14197let opNewValue = 0;
14198let prefersSlot3 = 1;
14199let Defs = [USR_OVF];
14200}
14201def M2_hmmpyl_rs1 : HInst<
14202(outs IntRegs:$Rd32),
14203(ins IntRegs:$Rs32, IntRegs:$Rt32),
14204"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14205tc_c21d7447, TypeM>, Enc_5ab2be {
14206let Inst{7-5} = 0b100;
14207let Inst{13-13} = 0b0;
14208let Inst{31-21} = 0b11101101111;
14209let hasNewValue = 1;
14210let opNewValue = 0;
14211let prefersSlot3 = 1;
14212let Defs = [USR_OVF];
14213}
14214def M2_hmmpyl_s1 : HInst<
14215(outs IntRegs:$Rd32),
14216(ins IntRegs:$Rs32, IntRegs:$Rt32),
14217"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14218tc_c21d7447, TypeM>, Enc_5ab2be {
14219let Inst{7-5} = 0b001;
14220let Inst{13-13} = 0b0;
14221let Inst{31-21} = 0b11101101101;
14222let hasNewValue = 1;
14223let opNewValue = 0;
14224let prefersSlot3 = 1;
14225let Defs = [USR_OVF];
14226}
14227def M2_maci : HInst<
14228(outs IntRegs:$Rx32),
14229(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14230"$Rx32 += mpyi($Rs32,$Rt32)",
14231tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel {
14232let Inst{7-5} = 0b000;
14233let Inst{13-13} = 0b0;
14234let Inst{31-21} = 0b11101111000;
14235let hasNewValue = 1;
14236let opNewValue = 0;
14237let prefersSlot3 = 1;
14238let CextOpcode = "M2_maci";
14239let InputType = "reg";
14240let Constraints = "$Rx32 = $Rx32in";
14241}
14242def M2_macsin : HInst<
14243(outs IntRegs:$Rx32),
14244(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14245"$Rx32 -= mpyi($Rs32,#$Ii)",
14246tc_a154b476, TypeM>, Enc_c90aca {
14247let Inst{13-13} = 0b0;
14248let Inst{31-21} = 0b11100001100;
14249let hasNewValue = 1;
14250let opNewValue = 0;
14251let prefersSlot3 = 1;
14252let InputType = "imm";
14253let isExtendable = 1;
14254let opExtendable = 3;
14255let isExtentSigned = 0;
14256let opExtentBits = 8;
14257let opExtentAlign = 0;
14258let Constraints = "$Rx32 = $Rx32in";
14259}
14260def M2_macsip : HInst<
14261(outs IntRegs:$Rx32),
14262(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14263"$Rx32 += mpyi($Rs32,#$Ii)",
14264tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel {
14265let Inst{13-13} = 0b0;
14266let Inst{31-21} = 0b11100001000;
14267let hasNewValue = 1;
14268let opNewValue = 0;
14269let prefersSlot3 = 1;
14270let CextOpcode = "M2_maci";
14271let InputType = "imm";
14272let isExtendable = 1;
14273let opExtendable = 3;
14274let isExtentSigned = 0;
14275let opExtentBits = 8;
14276let opExtentAlign = 0;
14277let Constraints = "$Rx32 = $Rx32in";
14278}
14279def M2_mmachs_rs0 : HInst<
14280(outs DoubleRegs:$Rxx32),
14281(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14282"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14283tc_7f8ae742, TypeM>, Enc_88c16c {
14284let Inst{7-5} = 0b111;
14285let Inst{13-13} = 0b0;
14286let Inst{31-21} = 0b11101010001;
14287let prefersSlot3 = 1;
14288let Defs = [USR_OVF];
14289let Constraints = "$Rxx32 = $Rxx32in";
14290}
14291def M2_mmachs_rs1 : HInst<
14292(outs DoubleRegs:$Rxx32),
14293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14294"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14295tc_7f8ae742, TypeM>, Enc_88c16c {
14296let Inst{7-5} = 0b111;
14297let Inst{13-13} = 0b0;
14298let Inst{31-21} = 0b11101010101;
14299let prefersSlot3 = 1;
14300let Defs = [USR_OVF];
14301let Constraints = "$Rxx32 = $Rxx32in";
14302}
14303def M2_mmachs_s0 : HInst<
14304(outs DoubleRegs:$Rxx32),
14305(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14306"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14307tc_7f8ae742, TypeM>, Enc_88c16c {
14308let Inst{7-5} = 0b111;
14309let Inst{13-13} = 0b0;
14310let Inst{31-21} = 0b11101010000;
14311let prefersSlot3 = 1;
14312let Defs = [USR_OVF];
14313let Constraints = "$Rxx32 = $Rxx32in";
14314}
14315def M2_mmachs_s1 : HInst<
14316(outs DoubleRegs:$Rxx32),
14317(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14318"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14319tc_7f8ae742, TypeM>, Enc_88c16c {
14320let Inst{7-5} = 0b111;
14321let Inst{13-13} = 0b0;
14322let Inst{31-21} = 0b11101010100;
14323let prefersSlot3 = 1;
14324let Defs = [USR_OVF];
14325let Constraints = "$Rxx32 = $Rxx32in";
14326}
14327def M2_mmacls_rs0 : HInst<
14328(outs DoubleRegs:$Rxx32),
14329(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14330"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14331tc_7f8ae742, TypeM>, Enc_88c16c {
14332let Inst{7-5} = 0b101;
14333let Inst{13-13} = 0b0;
14334let Inst{31-21} = 0b11101010001;
14335let prefersSlot3 = 1;
14336let Defs = [USR_OVF];
14337let Constraints = "$Rxx32 = $Rxx32in";
14338}
14339def M2_mmacls_rs1 : HInst<
14340(outs DoubleRegs:$Rxx32),
14341(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14342"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14343tc_7f8ae742, TypeM>, Enc_88c16c {
14344let Inst{7-5} = 0b101;
14345let Inst{13-13} = 0b0;
14346let Inst{31-21} = 0b11101010101;
14347let prefersSlot3 = 1;
14348let Defs = [USR_OVF];
14349let Constraints = "$Rxx32 = $Rxx32in";
14350}
14351def M2_mmacls_s0 : HInst<
14352(outs DoubleRegs:$Rxx32),
14353(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14354"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14355tc_7f8ae742, TypeM>, Enc_88c16c {
14356let Inst{7-5} = 0b101;
14357let Inst{13-13} = 0b0;
14358let Inst{31-21} = 0b11101010000;
14359let prefersSlot3 = 1;
14360let Defs = [USR_OVF];
14361let Constraints = "$Rxx32 = $Rxx32in";
14362}
14363def M2_mmacls_s1 : HInst<
14364(outs DoubleRegs:$Rxx32),
14365(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14366"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14367tc_7f8ae742, TypeM>, Enc_88c16c {
14368let Inst{7-5} = 0b101;
14369let Inst{13-13} = 0b0;
14370let Inst{31-21} = 0b11101010100;
14371let prefersSlot3 = 1;
14372let Defs = [USR_OVF];
14373let Constraints = "$Rxx32 = $Rxx32in";
14374}
14375def M2_mmacuhs_rs0 : HInst<
14376(outs DoubleRegs:$Rxx32),
14377(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14378"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14379tc_7f8ae742, TypeM>, Enc_88c16c {
14380let Inst{7-5} = 0b111;
14381let Inst{13-13} = 0b0;
14382let Inst{31-21} = 0b11101010011;
14383let prefersSlot3 = 1;
14384let Defs = [USR_OVF];
14385let Constraints = "$Rxx32 = $Rxx32in";
14386}
14387def M2_mmacuhs_rs1 : HInst<
14388(outs DoubleRegs:$Rxx32),
14389(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14390"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14391tc_7f8ae742, TypeM>, Enc_88c16c {
14392let Inst{7-5} = 0b111;
14393let Inst{13-13} = 0b0;
14394let Inst{31-21} = 0b11101010111;
14395let prefersSlot3 = 1;
14396let Defs = [USR_OVF];
14397let Constraints = "$Rxx32 = $Rxx32in";
14398}
14399def M2_mmacuhs_s0 : HInst<
14400(outs DoubleRegs:$Rxx32),
14401(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14402"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14403tc_7f8ae742, TypeM>, Enc_88c16c {
14404let Inst{7-5} = 0b111;
14405let Inst{13-13} = 0b0;
14406let Inst{31-21} = 0b11101010010;
14407let prefersSlot3 = 1;
14408let Defs = [USR_OVF];
14409let Constraints = "$Rxx32 = $Rxx32in";
14410}
14411def M2_mmacuhs_s1 : HInst<
14412(outs DoubleRegs:$Rxx32),
14413(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14414"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14415tc_7f8ae742, TypeM>, Enc_88c16c {
14416let Inst{7-5} = 0b111;
14417let Inst{13-13} = 0b0;
14418let Inst{31-21} = 0b11101010110;
14419let prefersSlot3 = 1;
14420let Defs = [USR_OVF];
14421let Constraints = "$Rxx32 = $Rxx32in";
14422}
14423def M2_mmaculs_rs0 : HInst<
14424(outs DoubleRegs:$Rxx32),
14425(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14426"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14427tc_7f8ae742, TypeM>, Enc_88c16c {
14428let Inst{7-5} = 0b101;
14429let Inst{13-13} = 0b0;
14430let Inst{31-21} = 0b11101010011;
14431let prefersSlot3 = 1;
14432let Defs = [USR_OVF];
14433let Constraints = "$Rxx32 = $Rxx32in";
14434}
14435def M2_mmaculs_rs1 : HInst<
14436(outs DoubleRegs:$Rxx32),
14437(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14438"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14439tc_7f8ae742, TypeM>, Enc_88c16c {
14440let Inst{7-5} = 0b101;
14441let Inst{13-13} = 0b0;
14442let Inst{31-21} = 0b11101010111;
14443let prefersSlot3 = 1;
14444let Defs = [USR_OVF];
14445let Constraints = "$Rxx32 = $Rxx32in";
14446}
14447def M2_mmaculs_s0 : HInst<
14448(outs DoubleRegs:$Rxx32),
14449(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14450"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14451tc_7f8ae742, TypeM>, Enc_88c16c {
14452let Inst{7-5} = 0b101;
14453let Inst{13-13} = 0b0;
14454let Inst{31-21} = 0b11101010010;
14455let prefersSlot3 = 1;
14456let Defs = [USR_OVF];
14457let Constraints = "$Rxx32 = $Rxx32in";
14458}
14459def M2_mmaculs_s1 : HInst<
14460(outs DoubleRegs:$Rxx32),
14461(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14462"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14463tc_7f8ae742, TypeM>, Enc_88c16c {
14464let Inst{7-5} = 0b101;
14465let Inst{13-13} = 0b0;
14466let Inst{31-21} = 0b11101010110;
14467let prefersSlot3 = 1;
14468let Defs = [USR_OVF];
14469let Constraints = "$Rxx32 = $Rxx32in";
14470}
14471def M2_mmpyh_rs0 : HInst<
14472(outs DoubleRegs:$Rdd32),
14473(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14474"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14475tc_c21d7447, TypeM>, Enc_a56825 {
14476let Inst{7-5} = 0b111;
14477let Inst{13-13} = 0b0;
14478let Inst{31-21} = 0b11101000001;
14479let prefersSlot3 = 1;
14480let Defs = [USR_OVF];
14481}
14482def M2_mmpyh_rs1 : HInst<
14483(outs DoubleRegs:$Rdd32),
14484(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14485"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14486tc_c21d7447, TypeM>, Enc_a56825 {
14487let Inst{7-5} = 0b111;
14488let Inst{13-13} = 0b0;
14489let Inst{31-21} = 0b11101000101;
14490let prefersSlot3 = 1;
14491let Defs = [USR_OVF];
14492}
14493def M2_mmpyh_s0 : HInst<
14494(outs DoubleRegs:$Rdd32),
14495(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14496"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14497tc_c21d7447, TypeM>, Enc_a56825 {
14498let Inst{7-5} = 0b111;
14499let Inst{13-13} = 0b0;
14500let Inst{31-21} = 0b11101000000;
14501let prefersSlot3 = 1;
14502let Defs = [USR_OVF];
14503}
14504def M2_mmpyh_s1 : HInst<
14505(outs DoubleRegs:$Rdd32),
14506(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14507"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14508tc_c21d7447, TypeM>, Enc_a56825 {
14509let Inst{7-5} = 0b111;
14510let Inst{13-13} = 0b0;
14511let Inst{31-21} = 0b11101000100;
14512let prefersSlot3 = 1;
14513let Defs = [USR_OVF];
14514}
14515def M2_mmpyl_rs0 : HInst<
14516(outs DoubleRegs:$Rdd32),
14517(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14518"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14519tc_c21d7447, TypeM>, Enc_a56825 {
14520let Inst{7-5} = 0b101;
14521let Inst{13-13} = 0b0;
14522let Inst{31-21} = 0b11101000001;
14523let prefersSlot3 = 1;
14524let Defs = [USR_OVF];
14525}
14526def M2_mmpyl_rs1 : HInst<
14527(outs DoubleRegs:$Rdd32),
14528(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14529"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14530tc_c21d7447, TypeM>, Enc_a56825 {
14531let Inst{7-5} = 0b101;
14532let Inst{13-13} = 0b0;
14533let Inst{31-21} = 0b11101000101;
14534let prefersSlot3 = 1;
14535let Defs = [USR_OVF];
14536}
14537def M2_mmpyl_s0 : HInst<
14538(outs DoubleRegs:$Rdd32),
14539(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14540"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14541tc_c21d7447, TypeM>, Enc_a56825 {
14542let Inst{7-5} = 0b101;
14543let Inst{13-13} = 0b0;
14544let Inst{31-21} = 0b11101000000;
14545let prefersSlot3 = 1;
14546let Defs = [USR_OVF];
14547}
14548def M2_mmpyl_s1 : HInst<
14549(outs DoubleRegs:$Rdd32),
14550(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14551"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14552tc_c21d7447, TypeM>, Enc_a56825 {
14553let Inst{7-5} = 0b101;
14554let Inst{13-13} = 0b0;
14555let Inst{31-21} = 0b11101000100;
14556let prefersSlot3 = 1;
14557let Defs = [USR_OVF];
14558}
14559def M2_mmpyuh_rs0 : HInst<
14560(outs DoubleRegs:$Rdd32),
14561(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14562"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14563tc_c21d7447, TypeM>, Enc_a56825 {
14564let Inst{7-5} = 0b111;
14565let Inst{13-13} = 0b0;
14566let Inst{31-21} = 0b11101000011;
14567let prefersSlot3 = 1;
14568let Defs = [USR_OVF];
14569}
14570def M2_mmpyuh_rs1 : HInst<
14571(outs DoubleRegs:$Rdd32),
14572(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14573"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14574tc_c21d7447, TypeM>, Enc_a56825 {
14575let Inst{7-5} = 0b111;
14576let Inst{13-13} = 0b0;
14577let Inst{31-21} = 0b11101000111;
14578let prefersSlot3 = 1;
14579let Defs = [USR_OVF];
14580}
14581def M2_mmpyuh_s0 : HInst<
14582(outs DoubleRegs:$Rdd32),
14583(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14584"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14585tc_c21d7447, TypeM>, Enc_a56825 {
14586let Inst{7-5} = 0b111;
14587let Inst{13-13} = 0b0;
14588let Inst{31-21} = 0b11101000010;
14589let prefersSlot3 = 1;
14590let Defs = [USR_OVF];
14591}
14592def M2_mmpyuh_s1 : HInst<
14593(outs DoubleRegs:$Rdd32),
14594(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14595"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14596tc_c21d7447, TypeM>, Enc_a56825 {
14597let Inst{7-5} = 0b111;
14598let Inst{13-13} = 0b0;
14599let Inst{31-21} = 0b11101000110;
14600let prefersSlot3 = 1;
14601let Defs = [USR_OVF];
14602}
14603def M2_mmpyul_rs0 : HInst<
14604(outs DoubleRegs:$Rdd32),
14605(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14606"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14607tc_c21d7447, TypeM>, Enc_a56825 {
14608let Inst{7-5} = 0b101;
14609let Inst{13-13} = 0b0;
14610let Inst{31-21} = 0b11101000011;
14611let prefersSlot3 = 1;
14612let Defs = [USR_OVF];
14613}
14614def M2_mmpyul_rs1 : HInst<
14615(outs DoubleRegs:$Rdd32),
14616(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14617"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14618tc_c21d7447, TypeM>, Enc_a56825 {
14619let Inst{7-5} = 0b101;
14620let Inst{13-13} = 0b0;
14621let Inst{31-21} = 0b11101000111;
14622let prefersSlot3 = 1;
14623let Defs = [USR_OVF];
14624}
14625def M2_mmpyul_s0 : HInst<
14626(outs DoubleRegs:$Rdd32),
14627(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14628"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14629tc_c21d7447, TypeM>, Enc_a56825 {
14630let Inst{7-5} = 0b101;
14631let Inst{13-13} = 0b0;
14632let Inst{31-21} = 0b11101000010;
14633let prefersSlot3 = 1;
14634let Defs = [USR_OVF];
14635}
14636def M2_mmpyul_s1 : HInst<
14637(outs DoubleRegs:$Rdd32),
14638(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14639"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14640tc_c21d7447, TypeM>, Enc_a56825 {
14641let Inst{7-5} = 0b101;
14642let Inst{13-13} = 0b0;
14643let Inst{31-21} = 0b11101000110;
14644let prefersSlot3 = 1;
14645let Defs = [USR_OVF];
14646}
14647def M2_mnaci : HInst<
14648(outs IntRegs:$Rx32),
14649(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14650"$Rx32 -= mpyi($Rs32,$Rt32)",
14651tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14652let Inst{7-5} = 0b000;
14653let Inst{13-13} = 0b0;
14654let Inst{31-21} = 0b11101111100;
14655let hasNewValue = 1;
14656let opNewValue = 0;
14657let prefersSlot3 = 1;
14658let Constraints = "$Rx32 = $Rx32in";
14659}
14660def M2_mpy_acc_hh_s0 : HInst<
14661(outs IntRegs:$Rx32),
14662(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14663"$Rx32 += mpy($Rs32.h,$Rt32.h)",
14664tc_7f8ae742, TypeM>, Enc_2ae154 {
14665let Inst{7-5} = 0b011;
14666let Inst{13-13} = 0b0;
14667let Inst{31-21} = 0b11101110000;
14668let hasNewValue = 1;
14669let opNewValue = 0;
14670let prefersSlot3 = 1;
14671let Constraints = "$Rx32 = $Rx32in";
14672}
14673def M2_mpy_acc_hh_s1 : HInst<
14674(outs IntRegs:$Rx32),
14675(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14676"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14677tc_7f8ae742, TypeM>, Enc_2ae154 {
14678let Inst{7-5} = 0b011;
14679let Inst{13-13} = 0b0;
14680let Inst{31-21} = 0b11101110100;
14681let hasNewValue = 1;
14682let opNewValue = 0;
14683let prefersSlot3 = 1;
14684let Constraints = "$Rx32 = $Rx32in";
14685}
14686def M2_mpy_acc_hl_s0 : HInst<
14687(outs IntRegs:$Rx32),
14688(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14689"$Rx32 += mpy($Rs32.h,$Rt32.l)",
14690tc_7f8ae742, TypeM>, Enc_2ae154 {
14691let Inst{7-5} = 0b010;
14692let Inst{13-13} = 0b0;
14693let Inst{31-21} = 0b11101110000;
14694let hasNewValue = 1;
14695let opNewValue = 0;
14696let prefersSlot3 = 1;
14697let Constraints = "$Rx32 = $Rx32in";
14698}
14699def M2_mpy_acc_hl_s1 : HInst<
14700(outs IntRegs:$Rx32),
14701(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14702"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14703tc_7f8ae742, TypeM>, Enc_2ae154 {
14704let Inst{7-5} = 0b010;
14705let Inst{13-13} = 0b0;
14706let Inst{31-21} = 0b11101110100;
14707let hasNewValue = 1;
14708let opNewValue = 0;
14709let prefersSlot3 = 1;
14710let Constraints = "$Rx32 = $Rx32in";
14711}
14712def M2_mpy_acc_lh_s0 : HInst<
14713(outs IntRegs:$Rx32),
14714(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14715"$Rx32 += mpy($Rs32.l,$Rt32.h)",
14716tc_7f8ae742, TypeM>, Enc_2ae154 {
14717let Inst{7-5} = 0b001;
14718let Inst{13-13} = 0b0;
14719let Inst{31-21} = 0b11101110000;
14720let hasNewValue = 1;
14721let opNewValue = 0;
14722let prefersSlot3 = 1;
14723let Constraints = "$Rx32 = $Rx32in";
14724}
14725def M2_mpy_acc_lh_s1 : HInst<
14726(outs IntRegs:$Rx32),
14727(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14728"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14729tc_7f8ae742, TypeM>, Enc_2ae154 {
14730let Inst{7-5} = 0b001;
14731let Inst{13-13} = 0b0;
14732let Inst{31-21} = 0b11101110100;
14733let hasNewValue = 1;
14734let opNewValue = 0;
14735let prefersSlot3 = 1;
14736let Constraints = "$Rx32 = $Rx32in";
14737}
14738def M2_mpy_acc_ll_s0 : HInst<
14739(outs IntRegs:$Rx32),
14740(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14741"$Rx32 += mpy($Rs32.l,$Rt32.l)",
14742tc_7f8ae742, TypeM>, Enc_2ae154 {
14743let Inst{7-5} = 0b000;
14744let Inst{13-13} = 0b0;
14745let Inst{31-21} = 0b11101110000;
14746let hasNewValue = 1;
14747let opNewValue = 0;
14748let prefersSlot3 = 1;
14749let Constraints = "$Rx32 = $Rx32in";
14750}
14751def M2_mpy_acc_ll_s1 : HInst<
14752(outs IntRegs:$Rx32),
14753(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14754"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14755tc_7f8ae742, TypeM>, Enc_2ae154 {
14756let Inst{7-5} = 0b000;
14757let Inst{13-13} = 0b0;
14758let Inst{31-21} = 0b11101110100;
14759let hasNewValue = 1;
14760let opNewValue = 0;
14761let prefersSlot3 = 1;
14762let Constraints = "$Rx32 = $Rx32in";
14763}
14764def M2_mpy_acc_sat_hh_s0 : HInst<
14765(outs IntRegs:$Rx32),
14766(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14767"$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14768tc_7f8ae742, TypeM>, Enc_2ae154 {
14769let Inst{7-5} = 0b111;
14770let Inst{13-13} = 0b0;
14771let Inst{31-21} = 0b11101110000;
14772let hasNewValue = 1;
14773let opNewValue = 0;
14774let prefersSlot3 = 1;
14775let Defs = [USR_OVF];
14776let Constraints = "$Rx32 = $Rx32in";
14777}
14778def M2_mpy_acc_sat_hh_s1 : HInst<
14779(outs IntRegs:$Rx32),
14780(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14781"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14782tc_7f8ae742, TypeM>, Enc_2ae154 {
14783let Inst{7-5} = 0b111;
14784let Inst{13-13} = 0b0;
14785let Inst{31-21} = 0b11101110100;
14786let hasNewValue = 1;
14787let opNewValue = 0;
14788let prefersSlot3 = 1;
14789let Defs = [USR_OVF];
14790let Constraints = "$Rx32 = $Rx32in";
14791}
14792def M2_mpy_acc_sat_hl_s0 : HInst<
14793(outs IntRegs:$Rx32),
14794(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14795"$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14796tc_7f8ae742, TypeM>, Enc_2ae154 {
14797let Inst{7-5} = 0b110;
14798let Inst{13-13} = 0b0;
14799let Inst{31-21} = 0b11101110000;
14800let hasNewValue = 1;
14801let opNewValue = 0;
14802let prefersSlot3 = 1;
14803let Defs = [USR_OVF];
14804let Constraints = "$Rx32 = $Rx32in";
14805}
14806def M2_mpy_acc_sat_hl_s1 : HInst<
14807(outs IntRegs:$Rx32),
14808(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14809"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14810tc_7f8ae742, TypeM>, Enc_2ae154 {
14811let Inst{7-5} = 0b110;
14812let Inst{13-13} = 0b0;
14813let Inst{31-21} = 0b11101110100;
14814let hasNewValue = 1;
14815let opNewValue = 0;
14816let prefersSlot3 = 1;
14817let Defs = [USR_OVF];
14818let Constraints = "$Rx32 = $Rx32in";
14819}
14820def M2_mpy_acc_sat_lh_s0 : HInst<
14821(outs IntRegs:$Rx32),
14822(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14823"$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14824tc_7f8ae742, TypeM>, Enc_2ae154 {
14825let Inst{7-5} = 0b101;
14826let Inst{13-13} = 0b0;
14827let Inst{31-21} = 0b11101110000;
14828let hasNewValue = 1;
14829let opNewValue = 0;
14830let prefersSlot3 = 1;
14831let Defs = [USR_OVF];
14832let Constraints = "$Rx32 = $Rx32in";
14833}
14834def M2_mpy_acc_sat_lh_s1 : HInst<
14835(outs IntRegs:$Rx32),
14836(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14837"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14838tc_7f8ae742, TypeM>, Enc_2ae154 {
14839let Inst{7-5} = 0b101;
14840let Inst{13-13} = 0b0;
14841let Inst{31-21} = 0b11101110100;
14842let hasNewValue = 1;
14843let opNewValue = 0;
14844let prefersSlot3 = 1;
14845let Defs = [USR_OVF];
14846let Constraints = "$Rx32 = $Rx32in";
14847}
14848def M2_mpy_acc_sat_ll_s0 : HInst<
14849(outs IntRegs:$Rx32),
14850(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14851"$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14852tc_7f8ae742, TypeM>, Enc_2ae154 {
14853let Inst{7-5} = 0b100;
14854let Inst{13-13} = 0b0;
14855let Inst{31-21} = 0b11101110000;
14856let hasNewValue = 1;
14857let opNewValue = 0;
14858let prefersSlot3 = 1;
14859let Defs = [USR_OVF];
14860let Constraints = "$Rx32 = $Rx32in";
14861}
14862def M2_mpy_acc_sat_ll_s1 : HInst<
14863(outs IntRegs:$Rx32),
14864(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14865"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14866tc_7f8ae742, TypeM>, Enc_2ae154 {
14867let Inst{7-5} = 0b100;
14868let Inst{13-13} = 0b0;
14869let Inst{31-21} = 0b11101110100;
14870let hasNewValue = 1;
14871let opNewValue = 0;
14872let prefersSlot3 = 1;
14873let Defs = [USR_OVF];
14874let Constraints = "$Rx32 = $Rx32in";
14875}
14876def M2_mpy_hh_s0 : HInst<
14877(outs IntRegs:$Rd32),
14878(ins IntRegs:$Rs32, IntRegs:$Rt32),
14879"$Rd32 = mpy($Rs32.h,$Rt32.h)",
14880tc_c21d7447, TypeM>, Enc_5ab2be {
14881let Inst{7-5} = 0b011;
14882let Inst{13-13} = 0b0;
14883let Inst{31-21} = 0b11101100000;
14884let hasNewValue = 1;
14885let opNewValue = 0;
14886let prefersSlot3 = 1;
14887}
14888def M2_mpy_hh_s1 : HInst<
14889(outs IntRegs:$Rd32),
14890(ins IntRegs:$Rs32, IntRegs:$Rt32),
14891"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14892tc_c21d7447, TypeM>, Enc_5ab2be {
14893let Inst{7-5} = 0b011;
14894let Inst{13-13} = 0b0;
14895let Inst{31-21} = 0b11101100100;
14896let hasNewValue = 1;
14897let opNewValue = 0;
14898let prefersSlot3 = 1;
14899}
14900def M2_mpy_hl_s0 : HInst<
14901(outs IntRegs:$Rd32),
14902(ins IntRegs:$Rs32, IntRegs:$Rt32),
14903"$Rd32 = mpy($Rs32.h,$Rt32.l)",
14904tc_c21d7447, TypeM>, Enc_5ab2be {
14905let Inst{7-5} = 0b010;
14906let Inst{13-13} = 0b0;
14907let Inst{31-21} = 0b11101100000;
14908let hasNewValue = 1;
14909let opNewValue = 0;
14910let prefersSlot3 = 1;
14911}
14912def M2_mpy_hl_s1 : HInst<
14913(outs IntRegs:$Rd32),
14914(ins IntRegs:$Rs32, IntRegs:$Rt32),
14915"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14916tc_c21d7447, TypeM>, Enc_5ab2be {
14917let Inst{7-5} = 0b010;
14918let Inst{13-13} = 0b0;
14919let Inst{31-21} = 0b11101100100;
14920let hasNewValue = 1;
14921let opNewValue = 0;
14922let prefersSlot3 = 1;
14923}
14924def M2_mpy_lh_s0 : HInst<
14925(outs IntRegs:$Rd32),
14926(ins IntRegs:$Rs32, IntRegs:$Rt32),
14927"$Rd32 = mpy($Rs32.l,$Rt32.h)",
14928tc_c21d7447, TypeM>, Enc_5ab2be {
14929let Inst{7-5} = 0b001;
14930let Inst{13-13} = 0b0;
14931let Inst{31-21} = 0b11101100000;
14932let hasNewValue = 1;
14933let opNewValue = 0;
14934let prefersSlot3 = 1;
14935}
14936def M2_mpy_lh_s1 : HInst<
14937(outs IntRegs:$Rd32),
14938(ins IntRegs:$Rs32, IntRegs:$Rt32),
14939"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14940tc_c21d7447, TypeM>, Enc_5ab2be {
14941let Inst{7-5} = 0b001;
14942let Inst{13-13} = 0b0;
14943let Inst{31-21} = 0b11101100100;
14944let hasNewValue = 1;
14945let opNewValue = 0;
14946let prefersSlot3 = 1;
14947}
14948def M2_mpy_ll_s0 : HInst<
14949(outs IntRegs:$Rd32),
14950(ins IntRegs:$Rs32, IntRegs:$Rt32),
14951"$Rd32 = mpy($Rs32.l,$Rt32.l)",
14952tc_c21d7447, TypeM>, Enc_5ab2be {
14953let Inst{7-5} = 0b000;
14954let Inst{13-13} = 0b0;
14955let Inst{31-21} = 0b11101100000;
14956let hasNewValue = 1;
14957let opNewValue = 0;
14958let prefersSlot3 = 1;
14959}
14960def M2_mpy_ll_s1 : HInst<
14961(outs IntRegs:$Rd32),
14962(ins IntRegs:$Rs32, IntRegs:$Rt32),
14963"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14964tc_c21d7447, TypeM>, Enc_5ab2be {
14965let Inst{7-5} = 0b000;
14966let Inst{13-13} = 0b0;
14967let Inst{31-21} = 0b11101100100;
14968let hasNewValue = 1;
14969let opNewValue = 0;
14970let prefersSlot3 = 1;
14971}
14972def M2_mpy_nac_hh_s0 : HInst<
14973(outs IntRegs:$Rx32),
14974(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14975"$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14976tc_7f8ae742, TypeM>, Enc_2ae154 {
14977let Inst{7-5} = 0b011;
14978let Inst{13-13} = 0b0;
14979let Inst{31-21} = 0b11101110001;
14980let hasNewValue = 1;
14981let opNewValue = 0;
14982let prefersSlot3 = 1;
14983let Constraints = "$Rx32 = $Rx32in";
14984}
14985def M2_mpy_nac_hh_s1 : HInst<
14986(outs IntRegs:$Rx32),
14987(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14988"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14989tc_7f8ae742, TypeM>, Enc_2ae154 {
14990let Inst{7-5} = 0b011;
14991let Inst{13-13} = 0b0;
14992let Inst{31-21} = 0b11101110101;
14993let hasNewValue = 1;
14994let opNewValue = 0;
14995let prefersSlot3 = 1;
14996let Constraints = "$Rx32 = $Rx32in";
14997}
14998def M2_mpy_nac_hl_s0 : HInst<
14999(outs IntRegs:$Rx32),
15000(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15001"$Rx32 -= mpy($Rs32.h,$Rt32.l)",
15002tc_7f8ae742, TypeM>, Enc_2ae154 {
15003let Inst{7-5} = 0b010;
15004let Inst{13-13} = 0b0;
15005let Inst{31-21} = 0b11101110001;
15006let hasNewValue = 1;
15007let opNewValue = 0;
15008let prefersSlot3 = 1;
15009let Constraints = "$Rx32 = $Rx32in";
15010}
15011def M2_mpy_nac_hl_s1 : HInst<
15012(outs IntRegs:$Rx32),
15013(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15014"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15015tc_7f8ae742, TypeM>, Enc_2ae154 {
15016let Inst{7-5} = 0b010;
15017let Inst{13-13} = 0b0;
15018let Inst{31-21} = 0b11101110101;
15019let hasNewValue = 1;
15020let opNewValue = 0;
15021let prefersSlot3 = 1;
15022let Constraints = "$Rx32 = $Rx32in";
15023}
15024def M2_mpy_nac_lh_s0 : HInst<
15025(outs IntRegs:$Rx32),
15026(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15027"$Rx32 -= mpy($Rs32.l,$Rt32.h)",
15028tc_7f8ae742, TypeM>, Enc_2ae154 {
15029let Inst{7-5} = 0b001;
15030let Inst{13-13} = 0b0;
15031let Inst{31-21} = 0b11101110001;
15032let hasNewValue = 1;
15033let opNewValue = 0;
15034let prefersSlot3 = 1;
15035let Constraints = "$Rx32 = $Rx32in";
15036}
15037def M2_mpy_nac_lh_s1 : HInst<
15038(outs IntRegs:$Rx32),
15039(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15040"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15041tc_7f8ae742, TypeM>, Enc_2ae154 {
15042let Inst{7-5} = 0b001;
15043let Inst{13-13} = 0b0;
15044let Inst{31-21} = 0b11101110101;
15045let hasNewValue = 1;
15046let opNewValue = 0;
15047let prefersSlot3 = 1;
15048let Constraints = "$Rx32 = $Rx32in";
15049}
15050def M2_mpy_nac_ll_s0 : HInst<
15051(outs IntRegs:$Rx32),
15052(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15053"$Rx32 -= mpy($Rs32.l,$Rt32.l)",
15054tc_7f8ae742, TypeM>, Enc_2ae154 {
15055let Inst{7-5} = 0b000;
15056let Inst{13-13} = 0b0;
15057let Inst{31-21} = 0b11101110001;
15058let hasNewValue = 1;
15059let opNewValue = 0;
15060let prefersSlot3 = 1;
15061let Constraints = "$Rx32 = $Rx32in";
15062}
15063def M2_mpy_nac_ll_s1 : HInst<
15064(outs IntRegs:$Rx32),
15065(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15066"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15067tc_7f8ae742, TypeM>, Enc_2ae154 {
15068let Inst{7-5} = 0b000;
15069let Inst{13-13} = 0b0;
15070let Inst{31-21} = 0b11101110101;
15071let hasNewValue = 1;
15072let opNewValue = 0;
15073let prefersSlot3 = 1;
15074let Constraints = "$Rx32 = $Rx32in";
15075}
15076def M2_mpy_nac_sat_hh_s0 : HInst<
15077(outs IntRegs:$Rx32),
15078(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15079"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
15080tc_7f8ae742, TypeM>, Enc_2ae154 {
15081let Inst{7-5} = 0b111;
15082let Inst{13-13} = 0b0;
15083let Inst{31-21} = 0b11101110001;
15084let hasNewValue = 1;
15085let opNewValue = 0;
15086let prefersSlot3 = 1;
15087let Defs = [USR_OVF];
15088let Constraints = "$Rx32 = $Rx32in";
15089}
15090def M2_mpy_nac_sat_hh_s1 : HInst<
15091(outs IntRegs:$Rx32),
15092(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15093"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
15094tc_7f8ae742, TypeM>, Enc_2ae154 {
15095let Inst{7-5} = 0b111;
15096let Inst{13-13} = 0b0;
15097let Inst{31-21} = 0b11101110101;
15098let hasNewValue = 1;
15099let opNewValue = 0;
15100let prefersSlot3 = 1;
15101let Defs = [USR_OVF];
15102let Constraints = "$Rx32 = $Rx32in";
15103}
15104def M2_mpy_nac_sat_hl_s0 : HInst<
15105(outs IntRegs:$Rx32),
15106(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15107"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
15108tc_7f8ae742, TypeM>, Enc_2ae154 {
15109let Inst{7-5} = 0b110;
15110let Inst{13-13} = 0b0;
15111let Inst{31-21} = 0b11101110001;
15112let hasNewValue = 1;
15113let opNewValue = 0;
15114let prefersSlot3 = 1;
15115let Defs = [USR_OVF];
15116let Constraints = "$Rx32 = $Rx32in";
15117}
15118def M2_mpy_nac_sat_hl_s1 : HInst<
15119(outs IntRegs:$Rx32),
15120(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15121"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
15122tc_7f8ae742, TypeM>, Enc_2ae154 {
15123let Inst{7-5} = 0b110;
15124let Inst{13-13} = 0b0;
15125let Inst{31-21} = 0b11101110101;
15126let hasNewValue = 1;
15127let opNewValue = 0;
15128let prefersSlot3 = 1;
15129let Defs = [USR_OVF];
15130let Constraints = "$Rx32 = $Rx32in";
15131}
15132def M2_mpy_nac_sat_lh_s0 : HInst<
15133(outs IntRegs:$Rx32),
15134(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15135"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
15136tc_7f8ae742, TypeM>, Enc_2ae154 {
15137let Inst{7-5} = 0b101;
15138let Inst{13-13} = 0b0;
15139let Inst{31-21} = 0b11101110001;
15140let hasNewValue = 1;
15141let opNewValue = 0;
15142let prefersSlot3 = 1;
15143let Defs = [USR_OVF];
15144let Constraints = "$Rx32 = $Rx32in";
15145}
15146def M2_mpy_nac_sat_lh_s1 : HInst<
15147(outs IntRegs:$Rx32),
15148(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15149"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
15150tc_7f8ae742, TypeM>, Enc_2ae154 {
15151let Inst{7-5} = 0b101;
15152let Inst{13-13} = 0b0;
15153let Inst{31-21} = 0b11101110101;
15154let hasNewValue = 1;
15155let opNewValue = 0;
15156let prefersSlot3 = 1;
15157let Defs = [USR_OVF];
15158let Constraints = "$Rx32 = $Rx32in";
15159}
15160def M2_mpy_nac_sat_ll_s0 : HInst<
15161(outs IntRegs:$Rx32),
15162(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15163"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
15164tc_7f8ae742, TypeM>, Enc_2ae154 {
15165let Inst{7-5} = 0b100;
15166let Inst{13-13} = 0b0;
15167let Inst{31-21} = 0b11101110001;
15168let hasNewValue = 1;
15169let opNewValue = 0;
15170let prefersSlot3 = 1;
15171let Defs = [USR_OVF];
15172let Constraints = "$Rx32 = $Rx32in";
15173}
15174def M2_mpy_nac_sat_ll_s1 : HInst<
15175(outs IntRegs:$Rx32),
15176(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15177"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15178tc_7f8ae742, TypeM>, Enc_2ae154 {
15179let Inst{7-5} = 0b100;
15180let Inst{13-13} = 0b0;
15181let Inst{31-21} = 0b11101110101;
15182let hasNewValue = 1;
15183let opNewValue = 0;
15184let prefersSlot3 = 1;
15185let Defs = [USR_OVF];
15186let Constraints = "$Rx32 = $Rx32in";
15187}
15188def M2_mpy_rnd_hh_s0 : HInst<
15189(outs IntRegs:$Rd32),
15190(ins IntRegs:$Rs32, IntRegs:$Rt32),
15191"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15192tc_c21d7447, TypeM>, Enc_5ab2be {
15193let Inst{7-5} = 0b011;
15194let Inst{13-13} = 0b0;
15195let Inst{31-21} = 0b11101100001;
15196let hasNewValue = 1;
15197let opNewValue = 0;
15198let prefersSlot3 = 1;
15199}
15200def M2_mpy_rnd_hh_s1 : HInst<
15201(outs IntRegs:$Rd32),
15202(ins IntRegs:$Rs32, IntRegs:$Rt32),
15203"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15204tc_c21d7447, TypeM>, Enc_5ab2be {
15205let Inst{7-5} = 0b011;
15206let Inst{13-13} = 0b0;
15207let Inst{31-21} = 0b11101100101;
15208let hasNewValue = 1;
15209let opNewValue = 0;
15210let prefersSlot3 = 1;
15211}
15212def M2_mpy_rnd_hl_s0 : HInst<
15213(outs IntRegs:$Rd32),
15214(ins IntRegs:$Rs32, IntRegs:$Rt32),
15215"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15216tc_c21d7447, TypeM>, Enc_5ab2be {
15217let Inst{7-5} = 0b010;
15218let Inst{13-13} = 0b0;
15219let Inst{31-21} = 0b11101100001;
15220let hasNewValue = 1;
15221let opNewValue = 0;
15222let prefersSlot3 = 1;
15223}
15224def M2_mpy_rnd_hl_s1 : HInst<
15225(outs IntRegs:$Rd32),
15226(ins IntRegs:$Rs32, IntRegs:$Rt32),
15227"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15228tc_c21d7447, TypeM>, Enc_5ab2be {
15229let Inst{7-5} = 0b010;
15230let Inst{13-13} = 0b0;
15231let Inst{31-21} = 0b11101100101;
15232let hasNewValue = 1;
15233let opNewValue = 0;
15234let prefersSlot3 = 1;
15235}
15236def M2_mpy_rnd_lh_s0 : HInst<
15237(outs IntRegs:$Rd32),
15238(ins IntRegs:$Rs32, IntRegs:$Rt32),
15239"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15240tc_c21d7447, TypeM>, Enc_5ab2be {
15241let Inst{7-5} = 0b001;
15242let Inst{13-13} = 0b0;
15243let Inst{31-21} = 0b11101100001;
15244let hasNewValue = 1;
15245let opNewValue = 0;
15246let prefersSlot3 = 1;
15247}
15248def M2_mpy_rnd_lh_s1 : HInst<
15249(outs IntRegs:$Rd32),
15250(ins IntRegs:$Rs32, IntRegs:$Rt32),
15251"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15252tc_c21d7447, TypeM>, Enc_5ab2be {
15253let Inst{7-5} = 0b001;
15254let Inst{13-13} = 0b0;
15255let Inst{31-21} = 0b11101100101;
15256let hasNewValue = 1;
15257let opNewValue = 0;
15258let prefersSlot3 = 1;
15259}
15260def M2_mpy_rnd_ll_s0 : HInst<
15261(outs IntRegs:$Rd32),
15262(ins IntRegs:$Rs32, IntRegs:$Rt32),
15263"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15264tc_c21d7447, TypeM>, Enc_5ab2be {
15265let Inst{7-5} = 0b000;
15266let Inst{13-13} = 0b0;
15267let Inst{31-21} = 0b11101100001;
15268let hasNewValue = 1;
15269let opNewValue = 0;
15270let prefersSlot3 = 1;
15271}
15272def M2_mpy_rnd_ll_s1 : HInst<
15273(outs IntRegs:$Rd32),
15274(ins IntRegs:$Rs32, IntRegs:$Rt32),
15275"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15276tc_c21d7447, TypeM>, Enc_5ab2be {
15277let Inst{7-5} = 0b000;
15278let Inst{13-13} = 0b0;
15279let Inst{31-21} = 0b11101100101;
15280let hasNewValue = 1;
15281let opNewValue = 0;
15282let prefersSlot3 = 1;
15283}
15284def M2_mpy_sat_hh_s0 : HInst<
15285(outs IntRegs:$Rd32),
15286(ins IntRegs:$Rs32, IntRegs:$Rt32),
15287"$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15288tc_c21d7447, TypeM>, Enc_5ab2be {
15289let Inst{7-5} = 0b111;
15290let Inst{13-13} = 0b0;
15291let Inst{31-21} = 0b11101100000;
15292let hasNewValue = 1;
15293let opNewValue = 0;
15294let prefersSlot3 = 1;
15295let Defs = [USR_OVF];
15296}
15297def M2_mpy_sat_hh_s1 : HInst<
15298(outs IntRegs:$Rd32),
15299(ins IntRegs:$Rs32, IntRegs:$Rt32),
15300"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15301tc_c21d7447, TypeM>, Enc_5ab2be {
15302let Inst{7-5} = 0b111;
15303let Inst{13-13} = 0b0;
15304let Inst{31-21} = 0b11101100100;
15305let hasNewValue = 1;
15306let opNewValue = 0;
15307let prefersSlot3 = 1;
15308let Defs = [USR_OVF];
15309}
15310def M2_mpy_sat_hl_s0 : HInst<
15311(outs IntRegs:$Rd32),
15312(ins IntRegs:$Rs32, IntRegs:$Rt32),
15313"$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15314tc_c21d7447, TypeM>, Enc_5ab2be {
15315let Inst{7-5} = 0b110;
15316let Inst{13-13} = 0b0;
15317let Inst{31-21} = 0b11101100000;
15318let hasNewValue = 1;
15319let opNewValue = 0;
15320let prefersSlot3 = 1;
15321let Defs = [USR_OVF];
15322}
15323def M2_mpy_sat_hl_s1 : HInst<
15324(outs IntRegs:$Rd32),
15325(ins IntRegs:$Rs32, IntRegs:$Rt32),
15326"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15327tc_c21d7447, TypeM>, Enc_5ab2be {
15328let Inst{7-5} = 0b110;
15329let Inst{13-13} = 0b0;
15330let Inst{31-21} = 0b11101100100;
15331let hasNewValue = 1;
15332let opNewValue = 0;
15333let prefersSlot3 = 1;
15334let Defs = [USR_OVF];
15335}
15336def M2_mpy_sat_lh_s0 : HInst<
15337(outs IntRegs:$Rd32),
15338(ins IntRegs:$Rs32, IntRegs:$Rt32),
15339"$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15340tc_c21d7447, TypeM>, Enc_5ab2be {
15341let Inst{7-5} = 0b101;
15342let Inst{13-13} = 0b0;
15343let Inst{31-21} = 0b11101100000;
15344let hasNewValue = 1;
15345let opNewValue = 0;
15346let prefersSlot3 = 1;
15347let Defs = [USR_OVF];
15348}
15349def M2_mpy_sat_lh_s1 : HInst<
15350(outs IntRegs:$Rd32),
15351(ins IntRegs:$Rs32, IntRegs:$Rt32),
15352"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15353tc_c21d7447, TypeM>, Enc_5ab2be {
15354let Inst{7-5} = 0b101;
15355let Inst{13-13} = 0b0;
15356let Inst{31-21} = 0b11101100100;
15357let hasNewValue = 1;
15358let opNewValue = 0;
15359let prefersSlot3 = 1;
15360let Defs = [USR_OVF];
15361}
15362def M2_mpy_sat_ll_s0 : HInst<
15363(outs IntRegs:$Rd32),
15364(ins IntRegs:$Rs32, IntRegs:$Rt32),
15365"$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15366tc_c21d7447, TypeM>, Enc_5ab2be {
15367let Inst{7-5} = 0b100;
15368let Inst{13-13} = 0b0;
15369let Inst{31-21} = 0b11101100000;
15370let hasNewValue = 1;
15371let opNewValue = 0;
15372let prefersSlot3 = 1;
15373let Defs = [USR_OVF];
15374}
15375def M2_mpy_sat_ll_s1 : HInst<
15376(outs IntRegs:$Rd32),
15377(ins IntRegs:$Rs32, IntRegs:$Rt32),
15378"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15379tc_c21d7447, TypeM>, Enc_5ab2be {
15380let Inst{7-5} = 0b100;
15381let Inst{13-13} = 0b0;
15382let Inst{31-21} = 0b11101100100;
15383let hasNewValue = 1;
15384let opNewValue = 0;
15385let prefersSlot3 = 1;
15386let Defs = [USR_OVF];
15387}
15388def M2_mpy_sat_rnd_hh_s0 : HInst<
15389(outs IntRegs:$Rd32),
15390(ins IntRegs:$Rs32, IntRegs:$Rt32),
15391"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15392tc_c21d7447, TypeM>, Enc_5ab2be {
15393let Inst{7-5} = 0b111;
15394let Inst{13-13} = 0b0;
15395let Inst{31-21} = 0b11101100001;
15396let hasNewValue = 1;
15397let opNewValue = 0;
15398let prefersSlot3 = 1;
15399let Defs = [USR_OVF];
15400}
15401def M2_mpy_sat_rnd_hh_s1 : HInst<
15402(outs IntRegs:$Rd32),
15403(ins IntRegs:$Rs32, IntRegs:$Rt32),
15404"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15405tc_c21d7447, TypeM>, Enc_5ab2be {
15406let Inst{7-5} = 0b111;
15407let Inst{13-13} = 0b0;
15408let Inst{31-21} = 0b11101100101;
15409let hasNewValue = 1;
15410let opNewValue = 0;
15411let prefersSlot3 = 1;
15412let Defs = [USR_OVF];
15413}
15414def M2_mpy_sat_rnd_hl_s0 : HInst<
15415(outs IntRegs:$Rd32),
15416(ins IntRegs:$Rs32, IntRegs:$Rt32),
15417"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15418tc_c21d7447, TypeM>, Enc_5ab2be {
15419let Inst{7-5} = 0b110;
15420let Inst{13-13} = 0b0;
15421let Inst{31-21} = 0b11101100001;
15422let hasNewValue = 1;
15423let opNewValue = 0;
15424let prefersSlot3 = 1;
15425let Defs = [USR_OVF];
15426}
15427def M2_mpy_sat_rnd_hl_s1 : HInst<
15428(outs IntRegs:$Rd32),
15429(ins IntRegs:$Rs32, IntRegs:$Rt32),
15430"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15431tc_c21d7447, TypeM>, Enc_5ab2be {
15432let Inst{7-5} = 0b110;
15433let Inst{13-13} = 0b0;
15434let Inst{31-21} = 0b11101100101;
15435let hasNewValue = 1;
15436let opNewValue = 0;
15437let prefersSlot3 = 1;
15438let Defs = [USR_OVF];
15439}
15440def M2_mpy_sat_rnd_lh_s0 : HInst<
15441(outs IntRegs:$Rd32),
15442(ins IntRegs:$Rs32, IntRegs:$Rt32),
15443"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15444tc_c21d7447, TypeM>, Enc_5ab2be {
15445let Inst{7-5} = 0b101;
15446let Inst{13-13} = 0b0;
15447let Inst{31-21} = 0b11101100001;
15448let hasNewValue = 1;
15449let opNewValue = 0;
15450let prefersSlot3 = 1;
15451let Defs = [USR_OVF];
15452}
15453def M2_mpy_sat_rnd_lh_s1 : HInst<
15454(outs IntRegs:$Rd32),
15455(ins IntRegs:$Rs32, IntRegs:$Rt32),
15456"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15457tc_c21d7447, TypeM>, Enc_5ab2be {
15458let Inst{7-5} = 0b101;
15459let Inst{13-13} = 0b0;
15460let Inst{31-21} = 0b11101100101;
15461let hasNewValue = 1;
15462let opNewValue = 0;
15463let prefersSlot3 = 1;
15464let Defs = [USR_OVF];
15465}
15466def M2_mpy_sat_rnd_ll_s0 : HInst<
15467(outs IntRegs:$Rd32),
15468(ins IntRegs:$Rs32, IntRegs:$Rt32),
15469"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15470tc_c21d7447, TypeM>, Enc_5ab2be {
15471let Inst{7-5} = 0b100;
15472let Inst{13-13} = 0b0;
15473let Inst{31-21} = 0b11101100001;
15474let hasNewValue = 1;
15475let opNewValue = 0;
15476let prefersSlot3 = 1;
15477let Defs = [USR_OVF];
15478}
15479def M2_mpy_sat_rnd_ll_s1 : HInst<
15480(outs IntRegs:$Rd32),
15481(ins IntRegs:$Rs32, IntRegs:$Rt32),
15482"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15483tc_c21d7447, TypeM>, Enc_5ab2be {
15484let Inst{7-5} = 0b100;
15485let Inst{13-13} = 0b0;
15486let Inst{31-21} = 0b11101100101;
15487let hasNewValue = 1;
15488let opNewValue = 0;
15489let prefersSlot3 = 1;
15490let Defs = [USR_OVF];
15491}
15492def M2_mpy_up : HInst<
15493(outs IntRegs:$Rd32),
15494(ins IntRegs:$Rs32, IntRegs:$Rt32),
15495"$Rd32 = mpy($Rs32,$Rt32)",
15496tc_c21d7447, TypeM>, Enc_5ab2be {
15497let Inst{7-5} = 0b001;
15498let Inst{13-13} = 0b0;
15499let Inst{31-21} = 0b11101101000;
15500let hasNewValue = 1;
15501let opNewValue = 0;
15502let prefersSlot3 = 1;
15503}
15504def M2_mpy_up_s1 : HInst<
15505(outs IntRegs:$Rd32),
15506(ins IntRegs:$Rs32, IntRegs:$Rt32),
15507"$Rd32 = mpy($Rs32,$Rt32):<<1",
15508tc_c21d7447, TypeM>, Enc_5ab2be {
15509let Inst{7-5} = 0b010;
15510let Inst{13-13} = 0b0;
15511let Inst{31-21} = 0b11101101101;
15512let hasNewValue = 1;
15513let opNewValue = 0;
15514let prefersSlot3 = 1;
15515}
15516def M2_mpy_up_s1_sat : HInst<
15517(outs IntRegs:$Rd32),
15518(ins IntRegs:$Rs32, IntRegs:$Rt32),
15519"$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15520tc_c21d7447, TypeM>, Enc_5ab2be {
15521let Inst{7-5} = 0b000;
15522let Inst{13-13} = 0b0;
15523let Inst{31-21} = 0b11101101111;
15524let hasNewValue = 1;
15525let opNewValue = 0;
15526let prefersSlot3 = 1;
15527let Defs = [USR_OVF];
15528}
15529def M2_mpyd_acc_hh_s0 : HInst<
15530(outs DoubleRegs:$Rxx32),
15531(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15532"$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15533tc_7f8ae742, TypeM>, Enc_61f0b0 {
15534let Inst{7-5} = 0b011;
15535let Inst{13-13} = 0b0;
15536let Inst{31-21} = 0b11100110000;
15537let prefersSlot3 = 1;
15538let Constraints = "$Rxx32 = $Rxx32in";
15539}
15540def M2_mpyd_acc_hh_s1 : HInst<
15541(outs DoubleRegs:$Rxx32),
15542(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15543"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15544tc_7f8ae742, TypeM>, Enc_61f0b0 {
15545let Inst{7-5} = 0b011;
15546let Inst{13-13} = 0b0;
15547let Inst{31-21} = 0b11100110100;
15548let prefersSlot3 = 1;
15549let Constraints = "$Rxx32 = $Rxx32in";
15550}
15551def M2_mpyd_acc_hl_s0 : HInst<
15552(outs DoubleRegs:$Rxx32),
15553(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15554"$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15555tc_7f8ae742, TypeM>, Enc_61f0b0 {
15556let Inst{7-5} = 0b010;
15557let Inst{13-13} = 0b0;
15558let Inst{31-21} = 0b11100110000;
15559let prefersSlot3 = 1;
15560let Constraints = "$Rxx32 = $Rxx32in";
15561}
15562def M2_mpyd_acc_hl_s1 : HInst<
15563(outs DoubleRegs:$Rxx32),
15564(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15565"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15566tc_7f8ae742, TypeM>, Enc_61f0b0 {
15567let Inst{7-5} = 0b010;
15568let Inst{13-13} = 0b0;
15569let Inst{31-21} = 0b11100110100;
15570let prefersSlot3 = 1;
15571let Constraints = "$Rxx32 = $Rxx32in";
15572}
15573def M2_mpyd_acc_lh_s0 : HInst<
15574(outs DoubleRegs:$Rxx32),
15575(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15576"$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15577tc_7f8ae742, TypeM>, Enc_61f0b0 {
15578let Inst{7-5} = 0b001;
15579let Inst{13-13} = 0b0;
15580let Inst{31-21} = 0b11100110000;
15581let prefersSlot3 = 1;
15582let Constraints = "$Rxx32 = $Rxx32in";
15583}
15584def M2_mpyd_acc_lh_s1 : HInst<
15585(outs DoubleRegs:$Rxx32),
15586(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15587"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15588tc_7f8ae742, TypeM>, Enc_61f0b0 {
15589let Inst{7-5} = 0b001;
15590let Inst{13-13} = 0b0;
15591let Inst{31-21} = 0b11100110100;
15592let prefersSlot3 = 1;
15593let Constraints = "$Rxx32 = $Rxx32in";
15594}
15595def M2_mpyd_acc_ll_s0 : HInst<
15596(outs DoubleRegs:$Rxx32),
15597(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15598"$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15599tc_7f8ae742, TypeM>, Enc_61f0b0 {
15600let Inst{7-5} = 0b000;
15601let Inst{13-13} = 0b0;
15602let Inst{31-21} = 0b11100110000;
15603let prefersSlot3 = 1;
15604let Constraints = "$Rxx32 = $Rxx32in";
15605}
15606def M2_mpyd_acc_ll_s1 : HInst<
15607(outs DoubleRegs:$Rxx32),
15608(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15609"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15610tc_7f8ae742, TypeM>, Enc_61f0b0 {
15611let Inst{7-5} = 0b000;
15612let Inst{13-13} = 0b0;
15613let Inst{31-21} = 0b11100110100;
15614let prefersSlot3 = 1;
15615let Constraints = "$Rxx32 = $Rxx32in";
15616}
15617def M2_mpyd_hh_s0 : HInst<
15618(outs DoubleRegs:$Rdd32),
15619(ins IntRegs:$Rs32, IntRegs:$Rt32),
15620"$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15621tc_c21d7447, TypeM>, Enc_be32a5 {
15622let Inst{7-5} = 0b011;
15623let Inst{13-13} = 0b0;
15624let Inst{31-21} = 0b11100100000;
15625let prefersSlot3 = 1;
15626}
15627def M2_mpyd_hh_s1 : HInst<
15628(outs DoubleRegs:$Rdd32),
15629(ins IntRegs:$Rs32, IntRegs:$Rt32),
15630"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15631tc_c21d7447, TypeM>, Enc_be32a5 {
15632let Inst{7-5} = 0b011;
15633let Inst{13-13} = 0b0;
15634let Inst{31-21} = 0b11100100100;
15635let prefersSlot3 = 1;
15636}
15637def M2_mpyd_hl_s0 : HInst<
15638(outs DoubleRegs:$Rdd32),
15639(ins IntRegs:$Rs32, IntRegs:$Rt32),
15640"$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15641tc_c21d7447, TypeM>, Enc_be32a5 {
15642let Inst{7-5} = 0b010;
15643let Inst{13-13} = 0b0;
15644let Inst{31-21} = 0b11100100000;
15645let prefersSlot3 = 1;
15646}
15647def M2_mpyd_hl_s1 : HInst<
15648(outs DoubleRegs:$Rdd32),
15649(ins IntRegs:$Rs32, IntRegs:$Rt32),
15650"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15651tc_c21d7447, TypeM>, Enc_be32a5 {
15652let Inst{7-5} = 0b010;
15653let Inst{13-13} = 0b0;
15654let Inst{31-21} = 0b11100100100;
15655let prefersSlot3 = 1;
15656}
15657def M2_mpyd_lh_s0 : HInst<
15658(outs DoubleRegs:$Rdd32),
15659(ins IntRegs:$Rs32, IntRegs:$Rt32),
15660"$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15661tc_c21d7447, TypeM>, Enc_be32a5 {
15662let Inst{7-5} = 0b001;
15663let Inst{13-13} = 0b0;
15664let Inst{31-21} = 0b11100100000;
15665let prefersSlot3 = 1;
15666}
15667def M2_mpyd_lh_s1 : HInst<
15668(outs DoubleRegs:$Rdd32),
15669(ins IntRegs:$Rs32, IntRegs:$Rt32),
15670"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15671tc_c21d7447, TypeM>, Enc_be32a5 {
15672let Inst{7-5} = 0b001;
15673let Inst{13-13} = 0b0;
15674let Inst{31-21} = 0b11100100100;
15675let prefersSlot3 = 1;
15676}
15677def M2_mpyd_ll_s0 : HInst<
15678(outs DoubleRegs:$Rdd32),
15679(ins IntRegs:$Rs32, IntRegs:$Rt32),
15680"$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15681tc_c21d7447, TypeM>, Enc_be32a5 {
15682let Inst{7-5} = 0b000;
15683let Inst{13-13} = 0b0;
15684let Inst{31-21} = 0b11100100000;
15685let prefersSlot3 = 1;
15686}
15687def M2_mpyd_ll_s1 : HInst<
15688(outs DoubleRegs:$Rdd32),
15689(ins IntRegs:$Rs32, IntRegs:$Rt32),
15690"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15691tc_c21d7447, TypeM>, Enc_be32a5 {
15692let Inst{7-5} = 0b000;
15693let Inst{13-13} = 0b0;
15694let Inst{31-21} = 0b11100100100;
15695let prefersSlot3 = 1;
15696}
15697def M2_mpyd_nac_hh_s0 : HInst<
15698(outs DoubleRegs:$Rxx32),
15699(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15700"$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15701tc_7f8ae742, TypeM>, Enc_61f0b0 {
15702let Inst{7-5} = 0b011;
15703let Inst{13-13} = 0b0;
15704let Inst{31-21} = 0b11100110001;
15705let prefersSlot3 = 1;
15706let Constraints = "$Rxx32 = $Rxx32in";
15707}
15708def M2_mpyd_nac_hh_s1 : HInst<
15709(outs DoubleRegs:$Rxx32),
15710(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15711"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15712tc_7f8ae742, TypeM>, Enc_61f0b0 {
15713let Inst{7-5} = 0b011;
15714let Inst{13-13} = 0b0;
15715let Inst{31-21} = 0b11100110101;
15716let prefersSlot3 = 1;
15717let Constraints = "$Rxx32 = $Rxx32in";
15718}
15719def M2_mpyd_nac_hl_s0 : HInst<
15720(outs DoubleRegs:$Rxx32),
15721(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15722"$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15723tc_7f8ae742, TypeM>, Enc_61f0b0 {
15724let Inst{7-5} = 0b010;
15725let Inst{13-13} = 0b0;
15726let Inst{31-21} = 0b11100110001;
15727let prefersSlot3 = 1;
15728let Constraints = "$Rxx32 = $Rxx32in";
15729}
15730def M2_mpyd_nac_hl_s1 : HInst<
15731(outs DoubleRegs:$Rxx32),
15732(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15733"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15734tc_7f8ae742, TypeM>, Enc_61f0b0 {
15735let Inst{7-5} = 0b010;
15736let Inst{13-13} = 0b0;
15737let Inst{31-21} = 0b11100110101;
15738let prefersSlot3 = 1;
15739let Constraints = "$Rxx32 = $Rxx32in";
15740}
15741def M2_mpyd_nac_lh_s0 : HInst<
15742(outs DoubleRegs:$Rxx32),
15743(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15744"$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15745tc_7f8ae742, TypeM>, Enc_61f0b0 {
15746let Inst{7-5} = 0b001;
15747let Inst{13-13} = 0b0;
15748let Inst{31-21} = 0b11100110001;
15749let prefersSlot3 = 1;
15750let Constraints = "$Rxx32 = $Rxx32in";
15751}
15752def M2_mpyd_nac_lh_s1 : HInst<
15753(outs DoubleRegs:$Rxx32),
15754(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15755"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15756tc_7f8ae742, TypeM>, Enc_61f0b0 {
15757let Inst{7-5} = 0b001;
15758let Inst{13-13} = 0b0;
15759let Inst{31-21} = 0b11100110101;
15760let prefersSlot3 = 1;
15761let Constraints = "$Rxx32 = $Rxx32in";
15762}
15763def M2_mpyd_nac_ll_s0 : HInst<
15764(outs DoubleRegs:$Rxx32),
15765(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15766"$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15767tc_7f8ae742, TypeM>, Enc_61f0b0 {
15768let Inst{7-5} = 0b000;
15769let Inst{13-13} = 0b0;
15770let Inst{31-21} = 0b11100110001;
15771let prefersSlot3 = 1;
15772let Constraints = "$Rxx32 = $Rxx32in";
15773}
15774def M2_mpyd_nac_ll_s1 : HInst<
15775(outs DoubleRegs:$Rxx32),
15776(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15777"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15778tc_7f8ae742, TypeM>, Enc_61f0b0 {
15779let Inst{7-5} = 0b000;
15780let Inst{13-13} = 0b0;
15781let Inst{31-21} = 0b11100110101;
15782let prefersSlot3 = 1;
15783let Constraints = "$Rxx32 = $Rxx32in";
15784}
15785def M2_mpyd_rnd_hh_s0 : HInst<
15786(outs DoubleRegs:$Rdd32),
15787(ins IntRegs:$Rs32, IntRegs:$Rt32),
15788"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15789tc_c21d7447, TypeM>, Enc_be32a5 {
15790let Inst{7-5} = 0b011;
15791let Inst{13-13} = 0b0;
15792let Inst{31-21} = 0b11100100001;
15793let prefersSlot3 = 1;
15794}
15795def M2_mpyd_rnd_hh_s1 : HInst<
15796(outs DoubleRegs:$Rdd32),
15797(ins IntRegs:$Rs32, IntRegs:$Rt32),
15798"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15799tc_c21d7447, TypeM>, Enc_be32a5 {
15800let Inst{7-5} = 0b011;
15801let Inst{13-13} = 0b0;
15802let Inst{31-21} = 0b11100100101;
15803let prefersSlot3 = 1;
15804}
15805def M2_mpyd_rnd_hl_s0 : HInst<
15806(outs DoubleRegs:$Rdd32),
15807(ins IntRegs:$Rs32, IntRegs:$Rt32),
15808"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15809tc_c21d7447, TypeM>, Enc_be32a5 {
15810let Inst{7-5} = 0b010;
15811let Inst{13-13} = 0b0;
15812let Inst{31-21} = 0b11100100001;
15813let prefersSlot3 = 1;
15814}
15815def M2_mpyd_rnd_hl_s1 : HInst<
15816(outs DoubleRegs:$Rdd32),
15817(ins IntRegs:$Rs32, IntRegs:$Rt32),
15818"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15819tc_c21d7447, TypeM>, Enc_be32a5 {
15820let Inst{7-5} = 0b010;
15821let Inst{13-13} = 0b0;
15822let Inst{31-21} = 0b11100100101;
15823let prefersSlot3 = 1;
15824}
15825def M2_mpyd_rnd_lh_s0 : HInst<
15826(outs DoubleRegs:$Rdd32),
15827(ins IntRegs:$Rs32, IntRegs:$Rt32),
15828"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15829tc_c21d7447, TypeM>, Enc_be32a5 {
15830let Inst{7-5} = 0b001;
15831let Inst{13-13} = 0b0;
15832let Inst{31-21} = 0b11100100001;
15833let prefersSlot3 = 1;
15834}
15835def M2_mpyd_rnd_lh_s1 : HInst<
15836(outs DoubleRegs:$Rdd32),
15837(ins IntRegs:$Rs32, IntRegs:$Rt32),
15838"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15839tc_c21d7447, TypeM>, Enc_be32a5 {
15840let Inst{7-5} = 0b001;
15841let Inst{13-13} = 0b0;
15842let Inst{31-21} = 0b11100100101;
15843let prefersSlot3 = 1;
15844}
15845def M2_mpyd_rnd_ll_s0 : HInst<
15846(outs DoubleRegs:$Rdd32),
15847(ins IntRegs:$Rs32, IntRegs:$Rt32),
15848"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15849tc_c21d7447, TypeM>, Enc_be32a5 {
15850let Inst{7-5} = 0b000;
15851let Inst{13-13} = 0b0;
15852let Inst{31-21} = 0b11100100001;
15853let prefersSlot3 = 1;
15854}
15855def M2_mpyd_rnd_ll_s1 : HInst<
15856(outs DoubleRegs:$Rdd32),
15857(ins IntRegs:$Rs32, IntRegs:$Rt32),
15858"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15859tc_c21d7447, TypeM>, Enc_be32a5 {
15860let Inst{7-5} = 0b000;
15861let Inst{13-13} = 0b0;
15862let Inst{31-21} = 0b11100100101;
15863let prefersSlot3 = 1;
15864}
15865def M2_mpyi : HInst<
15866(outs IntRegs:$Rd32),
15867(ins IntRegs:$Rs32, IntRegs:$Rt32),
15868"$Rd32 = mpyi($Rs32,$Rt32)",
15869tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel {
15870let Inst{7-5} = 0b000;
15871let Inst{13-13} = 0b0;
15872let Inst{31-21} = 0b11101101000;
15873let hasNewValue = 1;
15874let opNewValue = 0;
15875let prefersSlot3 = 1;
15876let CextOpcode = "M2_mpyi";
15877let InputType = "reg";
15878}
15879def M2_mpysin : HInst<
15880(outs IntRegs:$Rd32),
15881(ins IntRegs:$Rs32, u8_0Imm:$Ii),
15882"$Rd32 = -mpyi($Rs32,#$Ii)",
15883tc_38382228, TypeM>, Enc_b8c967 {
15884let Inst{13-13} = 0b0;
15885let Inst{31-21} = 0b11100000100;
15886let hasNewValue = 1;
15887let opNewValue = 0;
15888let prefersSlot3 = 1;
15889}
15890def M2_mpysip : HInst<
15891(outs IntRegs:$Rd32),
15892(ins IntRegs:$Rs32, u32_0Imm:$Ii),
15893"$Rd32 = +mpyi($Rs32,#$Ii)",
15894tc_38382228, TypeM>, Enc_b8c967 {
15895let Inst{13-13} = 0b0;
15896let Inst{31-21} = 0b11100000000;
15897let hasNewValue = 1;
15898let opNewValue = 0;
15899let prefersSlot3 = 1;
15900let isExtendable = 1;
15901let opExtendable = 2;
15902let isExtentSigned = 0;
15903let opExtentBits = 8;
15904let opExtentAlign = 0;
15905}
15906def M2_mpysmi : HInst<
15907(outs IntRegs:$Rd32),
15908(ins IntRegs:$Rs32, m32_0Imm:$Ii),
15909"$Rd32 = mpyi($Rs32,#$Ii)",
15910tc_38382228, TypeM>, ImmRegRel {
15911let hasNewValue = 1;
15912let opNewValue = 0;
15913let CextOpcode = "M2_mpyi";
15914let InputType = "imm";
15915let isPseudo = 1;
15916let isExtendable = 1;
15917let opExtendable = 2;
15918let isExtentSigned = 1;
15919let opExtentBits = 9;
15920let opExtentAlign = 0;
15921}
15922def M2_mpysu_up : HInst<
15923(outs IntRegs:$Rd32),
15924(ins IntRegs:$Rs32, IntRegs:$Rt32),
15925"$Rd32 = mpysu($Rs32,$Rt32)",
15926tc_c21d7447, TypeM>, Enc_5ab2be {
15927let Inst{7-5} = 0b001;
15928let Inst{13-13} = 0b0;
15929let Inst{31-21} = 0b11101101011;
15930let hasNewValue = 1;
15931let opNewValue = 0;
15932let prefersSlot3 = 1;
15933}
15934def M2_mpyu_acc_hh_s0 : HInst<
15935(outs IntRegs:$Rx32),
15936(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15937"$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15938tc_7f8ae742, TypeM>, Enc_2ae154 {
15939let Inst{7-5} = 0b011;
15940let Inst{13-13} = 0b0;
15941let Inst{31-21} = 0b11101110010;
15942let hasNewValue = 1;
15943let opNewValue = 0;
15944let prefersSlot3 = 1;
15945let Constraints = "$Rx32 = $Rx32in";
15946}
15947def M2_mpyu_acc_hh_s1 : HInst<
15948(outs IntRegs:$Rx32),
15949(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15950"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15951tc_7f8ae742, TypeM>, Enc_2ae154 {
15952let Inst{7-5} = 0b011;
15953let Inst{13-13} = 0b0;
15954let Inst{31-21} = 0b11101110110;
15955let hasNewValue = 1;
15956let opNewValue = 0;
15957let prefersSlot3 = 1;
15958let Constraints = "$Rx32 = $Rx32in";
15959}
15960def M2_mpyu_acc_hl_s0 : HInst<
15961(outs IntRegs:$Rx32),
15962(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15963"$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15964tc_7f8ae742, TypeM>, Enc_2ae154 {
15965let Inst{7-5} = 0b010;
15966let Inst{13-13} = 0b0;
15967let Inst{31-21} = 0b11101110010;
15968let hasNewValue = 1;
15969let opNewValue = 0;
15970let prefersSlot3 = 1;
15971let Constraints = "$Rx32 = $Rx32in";
15972}
15973def M2_mpyu_acc_hl_s1 : HInst<
15974(outs IntRegs:$Rx32),
15975(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15976"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15977tc_7f8ae742, TypeM>, Enc_2ae154 {
15978let Inst{7-5} = 0b010;
15979let Inst{13-13} = 0b0;
15980let Inst{31-21} = 0b11101110110;
15981let hasNewValue = 1;
15982let opNewValue = 0;
15983let prefersSlot3 = 1;
15984let Constraints = "$Rx32 = $Rx32in";
15985}
15986def M2_mpyu_acc_lh_s0 : HInst<
15987(outs IntRegs:$Rx32),
15988(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15989"$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15990tc_7f8ae742, TypeM>, Enc_2ae154 {
15991let Inst{7-5} = 0b001;
15992let Inst{13-13} = 0b0;
15993let Inst{31-21} = 0b11101110010;
15994let hasNewValue = 1;
15995let opNewValue = 0;
15996let prefersSlot3 = 1;
15997let Constraints = "$Rx32 = $Rx32in";
15998}
15999def M2_mpyu_acc_lh_s1 : HInst<
16000(outs IntRegs:$Rx32),
16001(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16002"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16003tc_7f8ae742, TypeM>, Enc_2ae154 {
16004let Inst{7-5} = 0b001;
16005let Inst{13-13} = 0b0;
16006let Inst{31-21} = 0b11101110110;
16007let hasNewValue = 1;
16008let opNewValue = 0;
16009let prefersSlot3 = 1;
16010let Constraints = "$Rx32 = $Rx32in";
16011}
16012def M2_mpyu_acc_ll_s0 : HInst<
16013(outs IntRegs:$Rx32),
16014(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16015"$Rx32 += mpyu($Rs32.l,$Rt32.l)",
16016tc_7f8ae742, TypeM>, Enc_2ae154 {
16017let Inst{7-5} = 0b000;
16018let Inst{13-13} = 0b0;
16019let Inst{31-21} = 0b11101110010;
16020let hasNewValue = 1;
16021let opNewValue = 0;
16022let prefersSlot3 = 1;
16023let Constraints = "$Rx32 = $Rx32in";
16024}
16025def M2_mpyu_acc_ll_s1 : HInst<
16026(outs IntRegs:$Rx32),
16027(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16028"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16029tc_7f8ae742, TypeM>, Enc_2ae154 {
16030let Inst{7-5} = 0b000;
16031let Inst{13-13} = 0b0;
16032let Inst{31-21} = 0b11101110110;
16033let hasNewValue = 1;
16034let opNewValue = 0;
16035let prefersSlot3 = 1;
16036let Constraints = "$Rx32 = $Rx32in";
16037}
16038def M2_mpyu_hh_s0 : HInst<
16039(outs IntRegs:$Rd32),
16040(ins IntRegs:$Rs32, IntRegs:$Rt32),
16041"$Rd32 = mpyu($Rs32.h,$Rt32.h)",
16042tc_c21d7447, TypeM>, Enc_5ab2be {
16043let Inst{7-5} = 0b011;
16044let Inst{13-13} = 0b0;
16045let Inst{31-21} = 0b11101100010;
16046let hasNewValue = 1;
16047let opNewValue = 0;
16048let prefersSlot3 = 1;
16049}
16050def M2_mpyu_hh_s1 : HInst<
16051(outs IntRegs:$Rd32),
16052(ins IntRegs:$Rs32, IntRegs:$Rt32),
16053"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16054tc_c21d7447, TypeM>, Enc_5ab2be {
16055let Inst{7-5} = 0b011;
16056let Inst{13-13} = 0b0;
16057let Inst{31-21} = 0b11101100110;
16058let hasNewValue = 1;
16059let opNewValue = 0;
16060let prefersSlot3 = 1;
16061}
16062def M2_mpyu_hl_s0 : HInst<
16063(outs IntRegs:$Rd32),
16064(ins IntRegs:$Rs32, IntRegs:$Rt32),
16065"$Rd32 = mpyu($Rs32.h,$Rt32.l)",
16066tc_c21d7447, TypeM>, Enc_5ab2be {
16067let Inst{7-5} = 0b010;
16068let Inst{13-13} = 0b0;
16069let Inst{31-21} = 0b11101100010;
16070let hasNewValue = 1;
16071let opNewValue = 0;
16072let prefersSlot3 = 1;
16073}
16074def M2_mpyu_hl_s1 : HInst<
16075(outs IntRegs:$Rd32),
16076(ins IntRegs:$Rs32, IntRegs:$Rt32),
16077"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16078tc_c21d7447, TypeM>, Enc_5ab2be {
16079let Inst{7-5} = 0b010;
16080let Inst{13-13} = 0b0;
16081let Inst{31-21} = 0b11101100110;
16082let hasNewValue = 1;
16083let opNewValue = 0;
16084let prefersSlot3 = 1;
16085}
16086def M2_mpyu_lh_s0 : HInst<
16087(outs IntRegs:$Rd32),
16088(ins IntRegs:$Rs32, IntRegs:$Rt32),
16089"$Rd32 = mpyu($Rs32.l,$Rt32.h)",
16090tc_c21d7447, TypeM>, Enc_5ab2be {
16091let Inst{7-5} = 0b001;
16092let Inst{13-13} = 0b0;
16093let Inst{31-21} = 0b11101100010;
16094let hasNewValue = 1;
16095let opNewValue = 0;
16096let prefersSlot3 = 1;
16097}
16098def M2_mpyu_lh_s1 : HInst<
16099(outs IntRegs:$Rd32),
16100(ins IntRegs:$Rs32, IntRegs:$Rt32),
16101"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16102tc_c21d7447, TypeM>, Enc_5ab2be {
16103let Inst{7-5} = 0b001;
16104let Inst{13-13} = 0b0;
16105let Inst{31-21} = 0b11101100110;
16106let hasNewValue = 1;
16107let opNewValue = 0;
16108let prefersSlot3 = 1;
16109}
16110def M2_mpyu_ll_s0 : HInst<
16111(outs IntRegs:$Rd32),
16112(ins IntRegs:$Rs32, IntRegs:$Rt32),
16113"$Rd32 = mpyu($Rs32.l,$Rt32.l)",
16114tc_c21d7447, TypeM>, Enc_5ab2be {
16115let Inst{7-5} = 0b000;
16116let Inst{13-13} = 0b0;
16117let Inst{31-21} = 0b11101100010;
16118let hasNewValue = 1;
16119let opNewValue = 0;
16120let prefersSlot3 = 1;
16121}
16122def M2_mpyu_ll_s1 : HInst<
16123(outs IntRegs:$Rd32),
16124(ins IntRegs:$Rs32, IntRegs:$Rt32),
16125"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16126tc_c21d7447, TypeM>, Enc_5ab2be {
16127let Inst{7-5} = 0b000;
16128let Inst{13-13} = 0b0;
16129let Inst{31-21} = 0b11101100110;
16130let hasNewValue = 1;
16131let opNewValue = 0;
16132let prefersSlot3 = 1;
16133}
16134def M2_mpyu_nac_hh_s0 : HInst<
16135(outs IntRegs:$Rx32),
16136(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16137"$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
16138tc_7f8ae742, TypeM>, Enc_2ae154 {
16139let Inst{7-5} = 0b011;
16140let Inst{13-13} = 0b0;
16141let Inst{31-21} = 0b11101110011;
16142let hasNewValue = 1;
16143let opNewValue = 0;
16144let prefersSlot3 = 1;
16145let Constraints = "$Rx32 = $Rx32in";
16146}
16147def M2_mpyu_nac_hh_s1 : HInst<
16148(outs IntRegs:$Rx32),
16149(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16150"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16151tc_7f8ae742, TypeM>, Enc_2ae154 {
16152let Inst{7-5} = 0b011;
16153let Inst{13-13} = 0b0;
16154let Inst{31-21} = 0b11101110111;
16155let hasNewValue = 1;
16156let opNewValue = 0;
16157let prefersSlot3 = 1;
16158let Constraints = "$Rx32 = $Rx32in";
16159}
16160def M2_mpyu_nac_hl_s0 : HInst<
16161(outs IntRegs:$Rx32),
16162(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16163"$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
16164tc_7f8ae742, TypeM>, Enc_2ae154 {
16165let Inst{7-5} = 0b010;
16166let Inst{13-13} = 0b0;
16167let Inst{31-21} = 0b11101110011;
16168let hasNewValue = 1;
16169let opNewValue = 0;
16170let prefersSlot3 = 1;
16171let Constraints = "$Rx32 = $Rx32in";
16172}
16173def M2_mpyu_nac_hl_s1 : HInst<
16174(outs IntRegs:$Rx32),
16175(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16176"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16177tc_7f8ae742, TypeM>, Enc_2ae154 {
16178let Inst{7-5} = 0b010;
16179let Inst{13-13} = 0b0;
16180let Inst{31-21} = 0b11101110111;
16181let hasNewValue = 1;
16182let opNewValue = 0;
16183let prefersSlot3 = 1;
16184let Constraints = "$Rx32 = $Rx32in";
16185}
16186def M2_mpyu_nac_lh_s0 : HInst<
16187(outs IntRegs:$Rx32),
16188(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16189"$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16190tc_7f8ae742, TypeM>, Enc_2ae154 {
16191let Inst{7-5} = 0b001;
16192let Inst{13-13} = 0b0;
16193let Inst{31-21} = 0b11101110011;
16194let hasNewValue = 1;
16195let opNewValue = 0;
16196let prefersSlot3 = 1;
16197let Constraints = "$Rx32 = $Rx32in";
16198}
16199def M2_mpyu_nac_lh_s1 : HInst<
16200(outs IntRegs:$Rx32),
16201(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16202"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16203tc_7f8ae742, TypeM>, Enc_2ae154 {
16204let Inst{7-5} = 0b001;
16205let Inst{13-13} = 0b0;
16206let Inst{31-21} = 0b11101110111;
16207let hasNewValue = 1;
16208let opNewValue = 0;
16209let prefersSlot3 = 1;
16210let Constraints = "$Rx32 = $Rx32in";
16211}
16212def M2_mpyu_nac_ll_s0 : HInst<
16213(outs IntRegs:$Rx32),
16214(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16215"$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16216tc_7f8ae742, TypeM>, Enc_2ae154 {
16217let Inst{7-5} = 0b000;
16218let Inst{13-13} = 0b0;
16219let Inst{31-21} = 0b11101110011;
16220let hasNewValue = 1;
16221let opNewValue = 0;
16222let prefersSlot3 = 1;
16223let Constraints = "$Rx32 = $Rx32in";
16224}
16225def M2_mpyu_nac_ll_s1 : HInst<
16226(outs IntRegs:$Rx32),
16227(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16228"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16229tc_7f8ae742, TypeM>, Enc_2ae154 {
16230let Inst{7-5} = 0b000;
16231let Inst{13-13} = 0b0;
16232let Inst{31-21} = 0b11101110111;
16233let hasNewValue = 1;
16234let opNewValue = 0;
16235let prefersSlot3 = 1;
16236let Constraints = "$Rx32 = $Rx32in";
16237}
16238def M2_mpyu_up : HInst<
16239(outs IntRegs:$Rd32),
16240(ins IntRegs:$Rs32, IntRegs:$Rt32),
16241"$Rd32 = mpyu($Rs32,$Rt32)",
16242tc_c21d7447, TypeM>, Enc_5ab2be {
16243let Inst{7-5} = 0b001;
16244let Inst{13-13} = 0b0;
16245let Inst{31-21} = 0b11101101010;
16246let hasNewValue = 1;
16247let opNewValue = 0;
16248let prefersSlot3 = 1;
16249}
16250def M2_mpyud_acc_hh_s0 : HInst<
16251(outs DoubleRegs:$Rxx32),
16252(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16253"$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16254tc_7f8ae742, TypeM>, Enc_61f0b0 {
16255let Inst{7-5} = 0b011;
16256let Inst{13-13} = 0b0;
16257let Inst{31-21} = 0b11100110010;
16258let prefersSlot3 = 1;
16259let Constraints = "$Rxx32 = $Rxx32in";
16260}
16261def M2_mpyud_acc_hh_s1 : HInst<
16262(outs DoubleRegs:$Rxx32),
16263(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16264"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16265tc_7f8ae742, TypeM>, Enc_61f0b0 {
16266let Inst{7-5} = 0b011;
16267let Inst{13-13} = 0b0;
16268let Inst{31-21} = 0b11100110110;
16269let prefersSlot3 = 1;
16270let Constraints = "$Rxx32 = $Rxx32in";
16271}
16272def M2_mpyud_acc_hl_s0 : HInst<
16273(outs DoubleRegs:$Rxx32),
16274(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16275"$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16276tc_7f8ae742, TypeM>, Enc_61f0b0 {
16277let Inst{7-5} = 0b010;
16278let Inst{13-13} = 0b0;
16279let Inst{31-21} = 0b11100110010;
16280let prefersSlot3 = 1;
16281let Constraints = "$Rxx32 = $Rxx32in";
16282}
16283def M2_mpyud_acc_hl_s1 : HInst<
16284(outs DoubleRegs:$Rxx32),
16285(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16286"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16287tc_7f8ae742, TypeM>, Enc_61f0b0 {
16288let Inst{7-5} = 0b010;
16289let Inst{13-13} = 0b0;
16290let Inst{31-21} = 0b11100110110;
16291let prefersSlot3 = 1;
16292let Constraints = "$Rxx32 = $Rxx32in";
16293}
16294def M2_mpyud_acc_lh_s0 : HInst<
16295(outs DoubleRegs:$Rxx32),
16296(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16297"$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16298tc_7f8ae742, TypeM>, Enc_61f0b0 {
16299let Inst{7-5} = 0b001;
16300let Inst{13-13} = 0b0;
16301let Inst{31-21} = 0b11100110010;
16302let prefersSlot3 = 1;
16303let Constraints = "$Rxx32 = $Rxx32in";
16304}
16305def M2_mpyud_acc_lh_s1 : HInst<
16306(outs DoubleRegs:$Rxx32),
16307(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16308"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16309tc_7f8ae742, TypeM>, Enc_61f0b0 {
16310let Inst{7-5} = 0b001;
16311let Inst{13-13} = 0b0;
16312let Inst{31-21} = 0b11100110110;
16313let prefersSlot3 = 1;
16314let Constraints = "$Rxx32 = $Rxx32in";
16315}
16316def M2_mpyud_acc_ll_s0 : HInst<
16317(outs DoubleRegs:$Rxx32),
16318(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16319"$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16320tc_7f8ae742, TypeM>, Enc_61f0b0 {
16321let Inst{7-5} = 0b000;
16322let Inst{13-13} = 0b0;
16323let Inst{31-21} = 0b11100110010;
16324let prefersSlot3 = 1;
16325let Constraints = "$Rxx32 = $Rxx32in";
16326}
16327def M2_mpyud_acc_ll_s1 : HInst<
16328(outs DoubleRegs:$Rxx32),
16329(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16330"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16331tc_7f8ae742, TypeM>, Enc_61f0b0 {
16332let Inst{7-5} = 0b000;
16333let Inst{13-13} = 0b0;
16334let Inst{31-21} = 0b11100110110;
16335let prefersSlot3 = 1;
16336let Constraints = "$Rxx32 = $Rxx32in";
16337}
16338def M2_mpyud_hh_s0 : HInst<
16339(outs DoubleRegs:$Rdd32),
16340(ins IntRegs:$Rs32, IntRegs:$Rt32),
16341"$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16342tc_c21d7447, TypeM>, Enc_be32a5 {
16343let Inst{7-5} = 0b011;
16344let Inst{13-13} = 0b0;
16345let Inst{31-21} = 0b11100100010;
16346let prefersSlot3 = 1;
16347}
16348def M2_mpyud_hh_s1 : HInst<
16349(outs DoubleRegs:$Rdd32),
16350(ins IntRegs:$Rs32, IntRegs:$Rt32),
16351"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16352tc_c21d7447, TypeM>, Enc_be32a5 {
16353let Inst{7-5} = 0b011;
16354let Inst{13-13} = 0b0;
16355let Inst{31-21} = 0b11100100110;
16356let prefersSlot3 = 1;
16357}
16358def M2_mpyud_hl_s0 : HInst<
16359(outs DoubleRegs:$Rdd32),
16360(ins IntRegs:$Rs32, IntRegs:$Rt32),
16361"$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16362tc_c21d7447, TypeM>, Enc_be32a5 {
16363let Inst{7-5} = 0b010;
16364let Inst{13-13} = 0b0;
16365let Inst{31-21} = 0b11100100010;
16366let prefersSlot3 = 1;
16367}
16368def M2_mpyud_hl_s1 : HInst<
16369(outs DoubleRegs:$Rdd32),
16370(ins IntRegs:$Rs32, IntRegs:$Rt32),
16371"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16372tc_c21d7447, TypeM>, Enc_be32a5 {
16373let Inst{7-5} = 0b010;
16374let Inst{13-13} = 0b0;
16375let Inst{31-21} = 0b11100100110;
16376let prefersSlot3 = 1;
16377}
16378def M2_mpyud_lh_s0 : HInst<
16379(outs DoubleRegs:$Rdd32),
16380(ins IntRegs:$Rs32, IntRegs:$Rt32),
16381"$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16382tc_c21d7447, TypeM>, Enc_be32a5 {
16383let Inst{7-5} = 0b001;
16384let Inst{13-13} = 0b0;
16385let Inst{31-21} = 0b11100100010;
16386let prefersSlot3 = 1;
16387}
16388def M2_mpyud_lh_s1 : HInst<
16389(outs DoubleRegs:$Rdd32),
16390(ins IntRegs:$Rs32, IntRegs:$Rt32),
16391"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16392tc_c21d7447, TypeM>, Enc_be32a5 {
16393let Inst{7-5} = 0b001;
16394let Inst{13-13} = 0b0;
16395let Inst{31-21} = 0b11100100110;
16396let prefersSlot3 = 1;
16397}
16398def M2_mpyud_ll_s0 : HInst<
16399(outs DoubleRegs:$Rdd32),
16400(ins IntRegs:$Rs32, IntRegs:$Rt32),
16401"$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16402tc_c21d7447, TypeM>, Enc_be32a5 {
16403let Inst{7-5} = 0b000;
16404let Inst{13-13} = 0b0;
16405let Inst{31-21} = 0b11100100010;
16406let prefersSlot3 = 1;
16407}
16408def M2_mpyud_ll_s1 : HInst<
16409(outs DoubleRegs:$Rdd32),
16410(ins IntRegs:$Rs32, IntRegs:$Rt32),
16411"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16412tc_c21d7447, TypeM>, Enc_be32a5 {
16413let Inst{7-5} = 0b000;
16414let Inst{13-13} = 0b0;
16415let Inst{31-21} = 0b11100100110;
16416let prefersSlot3 = 1;
16417}
16418def M2_mpyud_nac_hh_s0 : HInst<
16419(outs DoubleRegs:$Rxx32),
16420(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16421"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16422tc_7f8ae742, TypeM>, Enc_61f0b0 {
16423let Inst{7-5} = 0b011;
16424let Inst{13-13} = 0b0;
16425let Inst{31-21} = 0b11100110011;
16426let prefersSlot3 = 1;
16427let Constraints = "$Rxx32 = $Rxx32in";
16428}
16429def M2_mpyud_nac_hh_s1 : HInst<
16430(outs DoubleRegs:$Rxx32),
16431(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16432"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16433tc_7f8ae742, TypeM>, Enc_61f0b0 {
16434let Inst{7-5} = 0b011;
16435let Inst{13-13} = 0b0;
16436let Inst{31-21} = 0b11100110111;
16437let prefersSlot3 = 1;
16438let Constraints = "$Rxx32 = $Rxx32in";
16439}
16440def M2_mpyud_nac_hl_s0 : HInst<
16441(outs DoubleRegs:$Rxx32),
16442(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16443"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16444tc_7f8ae742, TypeM>, Enc_61f0b0 {
16445let Inst{7-5} = 0b010;
16446let Inst{13-13} = 0b0;
16447let Inst{31-21} = 0b11100110011;
16448let prefersSlot3 = 1;
16449let Constraints = "$Rxx32 = $Rxx32in";
16450}
16451def M2_mpyud_nac_hl_s1 : HInst<
16452(outs DoubleRegs:$Rxx32),
16453(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16454"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16455tc_7f8ae742, TypeM>, Enc_61f0b0 {
16456let Inst{7-5} = 0b010;
16457let Inst{13-13} = 0b0;
16458let Inst{31-21} = 0b11100110111;
16459let prefersSlot3 = 1;
16460let Constraints = "$Rxx32 = $Rxx32in";
16461}
16462def M2_mpyud_nac_lh_s0 : HInst<
16463(outs DoubleRegs:$Rxx32),
16464(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16465"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16466tc_7f8ae742, TypeM>, Enc_61f0b0 {
16467let Inst{7-5} = 0b001;
16468let Inst{13-13} = 0b0;
16469let Inst{31-21} = 0b11100110011;
16470let prefersSlot3 = 1;
16471let Constraints = "$Rxx32 = $Rxx32in";
16472}
16473def M2_mpyud_nac_lh_s1 : HInst<
16474(outs DoubleRegs:$Rxx32),
16475(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16476"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16477tc_7f8ae742, TypeM>, Enc_61f0b0 {
16478let Inst{7-5} = 0b001;
16479let Inst{13-13} = 0b0;
16480let Inst{31-21} = 0b11100110111;
16481let prefersSlot3 = 1;
16482let Constraints = "$Rxx32 = $Rxx32in";
16483}
16484def M2_mpyud_nac_ll_s0 : HInst<
16485(outs DoubleRegs:$Rxx32),
16486(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16487"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16488tc_7f8ae742, TypeM>, Enc_61f0b0 {
16489let Inst{7-5} = 0b000;
16490let Inst{13-13} = 0b0;
16491let Inst{31-21} = 0b11100110011;
16492let prefersSlot3 = 1;
16493let Constraints = "$Rxx32 = $Rxx32in";
16494}
16495def M2_mpyud_nac_ll_s1 : HInst<
16496(outs DoubleRegs:$Rxx32),
16497(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16498"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16499tc_7f8ae742, TypeM>, Enc_61f0b0 {
16500let Inst{7-5} = 0b000;
16501let Inst{13-13} = 0b0;
16502let Inst{31-21} = 0b11100110111;
16503let prefersSlot3 = 1;
16504let Constraints = "$Rxx32 = $Rxx32in";
16505}
16506def M2_mpyui : HInst<
16507(outs IntRegs:$Rd32),
16508(ins IntRegs:$Rs32, IntRegs:$Rt32),
16509"$Rd32 = mpyui($Rs32,$Rt32)",
16510tc_c21d7447, TypeM> {
16511let hasNewValue = 1;
16512let opNewValue = 0;
16513let isPseudo = 1;
16514let isCodeGenOnly = 1;
16515}
16516def M2_nacci : HInst<
16517(outs IntRegs:$Rx32),
16518(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16519"$Rx32 -= add($Rs32,$Rt32)",
16520tc_2c13e7f5, TypeM>, Enc_2ae154 {
16521let Inst{7-5} = 0b001;
16522let Inst{13-13} = 0b0;
16523let Inst{31-21} = 0b11101111100;
16524let hasNewValue = 1;
16525let opNewValue = 0;
16526let prefersSlot3 = 1;
16527let InputType = "reg";
16528let Constraints = "$Rx32 = $Rx32in";
16529}
16530def M2_naccii : HInst<
16531(outs IntRegs:$Rx32),
16532(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16533"$Rx32 -= add($Rs32,#$Ii)",
16534tc_2c13e7f5, TypeM>, Enc_c90aca {
16535let Inst{13-13} = 0b0;
16536let Inst{31-21} = 0b11100010100;
16537let hasNewValue = 1;
16538let opNewValue = 0;
16539let prefersSlot3 = 1;
16540let InputType = "imm";
16541let isExtendable = 1;
16542let opExtendable = 3;
16543let isExtentSigned = 1;
16544let opExtentBits = 8;
16545let opExtentAlign = 0;
16546let Constraints = "$Rx32 = $Rx32in";
16547}
16548def M2_subacc : HInst<
16549(outs IntRegs:$Rx32),
16550(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16551"$Rx32 += sub($Rt32,$Rs32)",
16552tc_2c13e7f5, TypeM>, Enc_a568d4 {
16553let Inst{7-5} = 0b011;
16554let Inst{13-13} = 0b0;
16555let Inst{31-21} = 0b11101111000;
16556let hasNewValue = 1;
16557let opNewValue = 0;
16558let prefersSlot3 = 1;
16559let InputType = "reg";
16560let Constraints = "$Rx32 = $Rx32in";
16561}
16562def M2_vabsdiffh : HInst<
16563(outs DoubleRegs:$Rdd32),
16564(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16565"$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16566tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16567let Inst{7-5} = 0b000;
16568let Inst{13-13} = 0b0;
16569let Inst{31-21} = 0b11101000011;
16570let prefersSlot3 = 1;
16571}
16572def M2_vabsdiffw : HInst<
16573(outs DoubleRegs:$Rdd32),
16574(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16575"$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16576tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16577let Inst{7-5} = 0b000;
16578let Inst{13-13} = 0b0;
16579let Inst{31-21} = 0b11101000001;
16580let prefersSlot3 = 1;
16581}
16582def M2_vcmac_s0_sat_i : HInst<
16583(outs DoubleRegs:$Rxx32),
16584(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16585"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16586tc_7f8ae742, TypeM>, Enc_88c16c {
16587let Inst{7-5} = 0b100;
16588let Inst{13-13} = 0b0;
16589let Inst{31-21} = 0b11101010010;
16590let prefersSlot3 = 1;
16591let Defs = [USR_OVF];
16592let Constraints = "$Rxx32 = $Rxx32in";
16593}
16594def M2_vcmac_s0_sat_r : HInst<
16595(outs DoubleRegs:$Rxx32),
16596(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16597"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16598tc_7f8ae742, TypeM>, Enc_88c16c {
16599let Inst{7-5} = 0b100;
16600let Inst{13-13} = 0b0;
16601let Inst{31-21} = 0b11101010001;
16602let prefersSlot3 = 1;
16603let Defs = [USR_OVF];
16604let Constraints = "$Rxx32 = $Rxx32in";
16605}
16606def M2_vcmpy_s0_sat_i : HInst<
16607(outs DoubleRegs:$Rdd32),
16608(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16609"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16610tc_c21d7447, TypeM>, Enc_a56825 {
16611let Inst{7-5} = 0b110;
16612let Inst{13-13} = 0b0;
16613let Inst{31-21} = 0b11101000010;
16614let prefersSlot3 = 1;
16615let Defs = [USR_OVF];
16616}
16617def M2_vcmpy_s0_sat_r : HInst<
16618(outs DoubleRegs:$Rdd32),
16619(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16620"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16621tc_c21d7447, TypeM>, Enc_a56825 {
16622let Inst{7-5} = 0b110;
16623let Inst{13-13} = 0b0;
16624let Inst{31-21} = 0b11101000001;
16625let prefersSlot3 = 1;
16626let Defs = [USR_OVF];
16627}
16628def M2_vcmpy_s1_sat_i : HInst<
16629(outs DoubleRegs:$Rdd32),
16630(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16631"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16632tc_c21d7447, TypeM>, Enc_a56825 {
16633let Inst{7-5} = 0b110;
16634let Inst{13-13} = 0b0;
16635let Inst{31-21} = 0b11101000110;
16636let prefersSlot3 = 1;
16637let Defs = [USR_OVF];
16638}
16639def M2_vcmpy_s1_sat_r : HInst<
16640(outs DoubleRegs:$Rdd32),
16641(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16642"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16643tc_c21d7447, TypeM>, Enc_a56825 {
16644let Inst{7-5} = 0b110;
16645let Inst{13-13} = 0b0;
16646let Inst{31-21} = 0b11101000101;
16647let prefersSlot3 = 1;
16648let Defs = [USR_OVF];
16649}
16650def M2_vdmacs_s0 : HInst<
16651(outs DoubleRegs:$Rxx32),
16652(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16653"$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16654tc_7f8ae742, TypeM>, Enc_88c16c {
16655let Inst{7-5} = 0b100;
16656let Inst{13-13} = 0b0;
16657let Inst{31-21} = 0b11101010000;
16658let prefersSlot3 = 1;
16659let Defs = [USR_OVF];
16660let Constraints = "$Rxx32 = $Rxx32in";
16661}
16662def M2_vdmacs_s1 : HInst<
16663(outs DoubleRegs:$Rxx32),
16664(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16665"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16666tc_7f8ae742, TypeM>, Enc_88c16c {
16667let Inst{7-5} = 0b100;
16668let Inst{13-13} = 0b0;
16669let Inst{31-21} = 0b11101010100;
16670let prefersSlot3 = 1;
16671let Defs = [USR_OVF];
16672let Constraints = "$Rxx32 = $Rxx32in";
16673}
16674def M2_vdmpyrs_s0 : HInst<
16675(outs IntRegs:$Rd32),
16676(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16677"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16678tc_c21d7447, TypeM>, Enc_d2216a {
16679let Inst{7-5} = 0b000;
16680let Inst{13-13} = 0b0;
16681let Inst{31-21} = 0b11101001000;
16682let hasNewValue = 1;
16683let opNewValue = 0;
16684let prefersSlot3 = 1;
16685let Defs = [USR_OVF];
16686}
16687def M2_vdmpyrs_s1 : HInst<
16688(outs IntRegs:$Rd32),
16689(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16690"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16691tc_c21d7447, TypeM>, Enc_d2216a {
16692let Inst{7-5} = 0b000;
16693let Inst{13-13} = 0b0;
16694let Inst{31-21} = 0b11101001100;
16695let hasNewValue = 1;
16696let opNewValue = 0;
16697let prefersSlot3 = 1;
16698let Defs = [USR_OVF];
16699}
16700def M2_vdmpys_s0 : HInst<
16701(outs DoubleRegs:$Rdd32),
16702(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16703"$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16704tc_c21d7447, TypeM>, Enc_a56825 {
16705let Inst{7-5} = 0b100;
16706let Inst{13-13} = 0b0;
16707let Inst{31-21} = 0b11101000000;
16708let prefersSlot3 = 1;
16709let Defs = [USR_OVF];
16710}
16711def M2_vdmpys_s1 : HInst<
16712(outs DoubleRegs:$Rdd32),
16713(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16714"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16715tc_c21d7447, TypeM>, Enc_a56825 {
16716let Inst{7-5} = 0b100;
16717let Inst{13-13} = 0b0;
16718let Inst{31-21} = 0b11101000100;
16719let prefersSlot3 = 1;
16720let Defs = [USR_OVF];
16721}
16722def M2_vmac2 : HInst<
16723(outs DoubleRegs:$Rxx32),
16724(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16725"$Rxx32 += vmpyh($Rs32,$Rt32)",
16726tc_7f8ae742, TypeM>, Enc_61f0b0 {
16727let Inst{7-5} = 0b001;
16728let Inst{13-13} = 0b0;
16729let Inst{31-21} = 0b11100111001;
16730let prefersSlot3 = 1;
16731let Constraints = "$Rxx32 = $Rxx32in";
16732}
16733def M2_vmac2es : HInst<
16734(outs DoubleRegs:$Rxx32),
16735(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16736"$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16737tc_7f8ae742, TypeM>, Enc_88c16c {
16738let Inst{7-5} = 0b010;
16739let Inst{13-13} = 0b0;
16740let Inst{31-21} = 0b11101010001;
16741let prefersSlot3 = 1;
16742let Constraints = "$Rxx32 = $Rxx32in";
16743}
16744def M2_vmac2es_s0 : HInst<
16745(outs DoubleRegs:$Rxx32),
16746(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16747"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16748tc_7f8ae742, TypeM>, Enc_88c16c {
16749let Inst{7-5} = 0b110;
16750let Inst{13-13} = 0b0;
16751let Inst{31-21} = 0b11101010000;
16752let prefersSlot3 = 1;
16753let Defs = [USR_OVF];
16754let Constraints = "$Rxx32 = $Rxx32in";
16755}
16756def M2_vmac2es_s1 : HInst<
16757(outs DoubleRegs:$Rxx32),
16758(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16759"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16760tc_7f8ae742, TypeM>, Enc_88c16c {
16761let Inst{7-5} = 0b110;
16762let Inst{13-13} = 0b0;
16763let Inst{31-21} = 0b11101010100;
16764let prefersSlot3 = 1;
16765let Defs = [USR_OVF];
16766let Constraints = "$Rxx32 = $Rxx32in";
16767}
16768def M2_vmac2s_s0 : HInst<
16769(outs DoubleRegs:$Rxx32),
16770(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16771"$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16772tc_7f8ae742, TypeM>, Enc_61f0b0 {
16773let Inst{7-5} = 0b101;
16774let Inst{13-13} = 0b0;
16775let Inst{31-21} = 0b11100111000;
16776let prefersSlot3 = 1;
16777let Defs = [USR_OVF];
16778let Constraints = "$Rxx32 = $Rxx32in";
16779}
16780def M2_vmac2s_s1 : HInst<
16781(outs DoubleRegs:$Rxx32),
16782(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16783"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16784tc_7f8ae742, TypeM>, Enc_61f0b0 {
16785let Inst{7-5} = 0b101;
16786let Inst{13-13} = 0b0;
16787let Inst{31-21} = 0b11100111100;
16788let prefersSlot3 = 1;
16789let Defs = [USR_OVF];
16790let Constraints = "$Rxx32 = $Rxx32in";
16791}
16792def M2_vmac2su_s0 : HInst<
16793(outs DoubleRegs:$Rxx32),
16794(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16795"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16796tc_7f8ae742, TypeM>, Enc_61f0b0 {
16797let Inst{7-5} = 0b101;
16798let Inst{13-13} = 0b0;
16799let Inst{31-21} = 0b11100111011;
16800let prefersSlot3 = 1;
16801let Defs = [USR_OVF];
16802let Constraints = "$Rxx32 = $Rxx32in";
16803}
16804def M2_vmac2su_s1 : HInst<
16805(outs DoubleRegs:$Rxx32),
16806(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16807"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16808tc_7f8ae742, TypeM>, Enc_61f0b0 {
16809let Inst{7-5} = 0b101;
16810let Inst{13-13} = 0b0;
16811let Inst{31-21} = 0b11100111111;
16812let prefersSlot3 = 1;
16813let Defs = [USR_OVF];
16814let Constraints = "$Rxx32 = $Rxx32in";
16815}
16816def M2_vmpy2es_s0 : HInst<
16817(outs DoubleRegs:$Rdd32),
16818(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16819"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16820tc_c21d7447, TypeM>, Enc_a56825 {
16821let Inst{7-5} = 0b110;
16822let Inst{13-13} = 0b0;
16823let Inst{31-21} = 0b11101000000;
16824let prefersSlot3 = 1;
16825let Defs = [USR_OVF];
16826}
16827def M2_vmpy2es_s1 : HInst<
16828(outs DoubleRegs:$Rdd32),
16829(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16830"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16831tc_c21d7447, TypeM>, Enc_a56825 {
16832let Inst{7-5} = 0b110;
16833let Inst{13-13} = 0b0;
16834let Inst{31-21} = 0b11101000100;
16835let prefersSlot3 = 1;
16836let Defs = [USR_OVF];
16837}
16838def M2_vmpy2s_s0 : HInst<
16839(outs DoubleRegs:$Rdd32),
16840(ins IntRegs:$Rs32, IntRegs:$Rt32),
16841"$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16842tc_c21d7447, TypeM>, Enc_be32a5 {
16843let Inst{7-5} = 0b101;
16844let Inst{13-13} = 0b0;
16845let Inst{31-21} = 0b11100101000;
16846let prefersSlot3 = 1;
16847let Defs = [USR_OVF];
16848}
16849def M2_vmpy2s_s0pack : HInst<
16850(outs IntRegs:$Rd32),
16851(ins IntRegs:$Rs32, IntRegs:$Rt32),
16852"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16853tc_c21d7447, TypeM>, Enc_5ab2be {
16854let Inst{7-5} = 0b111;
16855let Inst{13-13} = 0b0;
16856let Inst{31-21} = 0b11101101001;
16857let hasNewValue = 1;
16858let opNewValue = 0;
16859let prefersSlot3 = 1;
16860let Defs = [USR_OVF];
16861}
16862def M2_vmpy2s_s1 : HInst<
16863(outs DoubleRegs:$Rdd32),
16864(ins IntRegs:$Rs32, IntRegs:$Rt32),
16865"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16866tc_c21d7447, TypeM>, Enc_be32a5 {
16867let Inst{7-5} = 0b101;
16868let Inst{13-13} = 0b0;
16869let Inst{31-21} = 0b11100101100;
16870let prefersSlot3 = 1;
16871let Defs = [USR_OVF];
16872}
16873def M2_vmpy2s_s1pack : HInst<
16874(outs IntRegs:$Rd32),
16875(ins IntRegs:$Rs32, IntRegs:$Rt32),
16876"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16877tc_c21d7447, TypeM>, Enc_5ab2be {
16878let Inst{7-5} = 0b111;
16879let Inst{13-13} = 0b0;
16880let Inst{31-21} = 0b11101101101;
16881let hasNewValue = 1;
16882let opNewValue = 0;
16883let prefersSlot3 = 1;
16884let Defs = [USR_OVF];
16885}
16886def M2_vmpy2su_s0 : HInst<
16887(outs DoubleRegs:$Rdd32),
16888(ins IntRegs:$Rs32, IntRegs:$Rt32),
16889"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16890tc_c21d7447, TypeM>, Enc_be32a5 {
16891let Inst{7-5} = 0b111;
16892let Inst{13-13} = 0b0;
16893let Inst{31-21} = 0b11100101000;
16894let prefersSlot3 = 1;
16895let Defs = [USR_OVF];
16896}
16897def M2_vmpy2su_s1 : HInst<
16898(outs DoubleRegs:$Rdd32),
16899(ins IntRegs:$Rs32, IntRegs:$Rt32),
16900"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16901tc_c21d7447, TypeM>, Enc_be32a5 {
16902let Inst{7-5} = 0b111;
16903let Inst{13-13} = 0b0;
16904let Inst{31-21} = 0b11100101100;
16905let prefersSlot3 = 1;
16906let Defs = [USR_OVF];
16907}
16908def M2_vraddh : HInst<
16909(outs IntRegs:$Rd32),
16910(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16911"$Rd32 = vraddh($Rss32,$Rtt32)",
16912tc_c21d7447, TypeM>, Enc_d2216a {
16913let Inst{7-5} = 0b111;
16914let Inst{13-13} = 0b0;
16915let Inst{31-21} = 0b11101001001;
16916let hasNewValue = 1;
16917let opNewValue = 0;
16918let prefersSlot3 = 1;
16919}
16920def M2_vradduh : HInst<
16921(outs IntRegs:$Rd32),
16922(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16923"$Rd32 = vradduh($Rss32,$Rtt32)",
16924tc_c21d7447, TypeM>, Enc_d2216a {
16925let Inst{7-5} = 0b001;
16926let Inst{13-13} = 0b0;
16927let Inst{31-21} = 0b11101001000;
16928let hasNewValue = 1;
16929let opNewValue = 0;
16930let prefersSlot3 = 1;
16931}
16932def M2_vrcmaci_s0 : HInst<
16933(outs DoubleRegs:$Rxx32),
16934(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16935"$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16936tc_7f8ae742, TypeM>, Enc_88c16c {
16937let Inst{7-5} = 0b000;
16938let Inst{13-13} = 0b0;
16939let Inst{31-21} = 0b11101010000;
16940let prefersSlot3 = 1;
16941let Constraints = "$Rxx32 = $Rxx32in";
16942}
16943def M2_vrcmaci_s0c : HInst<
16944(outs DoubleRegs:$Rxx32),
16945(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16946"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16947tc_7f8ae742, TypeM>, Enc_88c16c {
16948let Inst{7-5} = 0b000;
16949let Inst{13-13} = 0b0;
16950let Inst{31-21} = 0b11101010010;
16951let prefersSlot3 = 1;
16952let Constraints = "$Rxx32 = $Rxx32in";
16953}
16954def M2_vrcmacr_s0 : HInst<
16955(outs DoubleRegs:$Rxx32),
16956(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16957"$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16958tc_7f8ae742, TypeM>, Enc_88c16c {
16959let Inst{7-5} = 0b001;
16960let Inst{13-13} = 0b0;
16961let Inst{31-21} = 0b11101010000;
16962let prefersSlot3 = 1;
16963let Constraints = "$Rxx32 = $Rxx32in";
16964}
16965def M2_vrcmacr_s0c : HInst<
16966(outs DoubleRegs:$Rxx32),
16967(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16968"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16969tc_7f8ae742, TypeM>, Enc_88c16c {
16970let Inst{7-5} = 0b001;
16971let Inst{13-13} = 0b0;
16972let Inst{31-21} = 0b11101010011;
16973let prefersSlot3 = 1;
16974let Constraints = "$Rxx32 = $Rxx32in";
16975}
16976def M2_vrcmpyi_s0 : HInst<
16977(outs DoubleRegs:$Rdd32),
16978(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16979"$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16980tc_c21d7447, TypeM>, Enc_a56825 {
16981let Inst{7-5} = 0b000;
16982let Inst{13-13} = 0b0;
16983let Inst{31-21} = 0b11101000000;
16984let prefersSlot3 = 1;
16985}
16986def M2_vrcmpyi_s0c : HInst<
16987(outs DoubleRegs:$Rdd32),
16988(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16989"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16990tc_c21d7447, TypeM>, Enc_a56825 {
16991let Inst{7-5} = 0b000;
16992let Inst{13-13} = 0b0;
16993let Inst{31-21} = 0b11101000010;
16994let prefersSlot3 = 1;
16995}
16996def M2_vrcmpyr_s0 : HInst<
16997(outs DoubleRegs:$Rdd32),
16998(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16999"$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
17000tc_c21d7447, TypeM>, Enc_a56825 {
17001let Inst{7-5} = 0b001;
17002let Inst{13-13} = 0b0;
17003let Inst{31-21} = 0b11101000000;
17004let prefersSlot3 = 1;
17005}
17006def M2_vrcmpyr_s0c : HInst<
17007(outs DoubleRegs:$Rdd32),
17008(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17009"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
17010tc_c21d7447, TypeM>, Enc_a56825 {
17011let Inst{7-5} = 0b001;
17012let Inst{13-13} = 0b0;
17013let Inst{31-21} = 0b11101000011;
17014let prefersSlot3 = 1;
17015}
17016def M2_vrcmpys_acc_s1 : HInst<
17017(outs DoubleRegs:$Rxx32),
17018(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17019"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
17020tc_7f8ae742, TypeM> {
17021let isPseudo = 1;
17022let Constraints = "$Rxx32 = $Rxx32in";
17023}
17024def M2_vrcmpys_acc_s1_h : HInst<
17025(outs DoubleRegs:$Rxx32),
17026(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17027"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17028tc_7f8ae742, TypeM>, Enc_88c16c {
17029let Inst{7-5} = 0b100;
17030let Inst{13-13} = 0b0;
17031let Inst{31-21} = 0b11101010101;
17032let prefersSlot3 = 1;
17033let Defs = [USR_OVF];
17034let Constraints = "$Rxx32 = $Rxx32in";
17035}
17036def M2_vrcmpys_acc_s1_l : HInst<
17037(outs DoubleRegs:$Rxx32),
17038(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17039"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17040tc_7f8ae742, TypeM>, Enc_88c16c {
17041let Inst{7-5} = 0b100;
17042let Inst{13-13} = 0b0;
17043let Inst{31-21} = 0b11101010111;
17044let prefersSlot3 = 1;
17045let Defs = [USR_OVF];
17046let Constraints = "$Rxx32 = $Rxx32in";
17047}
17048def M2_vrcmpys_s1 : HInst<
17049(outs DoubleRegs:$Rdd32),
17050(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17051"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
17052tc_c21d7447, TypeM> {
17053let isPseudo = 1;
17054}
17055def M2_vrcmpys_s1_h : HInst<
17056(outs DoubleRegs:$Rdd32),
17057(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17058"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17059tc_c21d7447, TypeM>, Enc_a56825 {
17060let Inst{7-5} = 0b100;
17061let Inst{13-13} = 0b0;
17062let Inst{31-21} = 0b11101000101;
17063let prefersSlot3 = 1;
17064let Defs = [USR_OVF];
17065}
17066def M2_vrcmpys_s1_l : HInst<
17067(outs DoubleRegs:$Rdd32),
17068(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17069"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17070tc_c21d7447, TypeM>, Enc_a56825 {
17071let Inst{7-5} = 0b100;
17072let Inst{13-13} = 0b0;
17073let Inst{31-21} = 0b11101000111;
17074let prefersSlot3 = 1;
17075let Defs = [USR_OVF];
17076}
17077def M2_vrcmpys_s1rp : HInst<
17078(outs IntRegs:$Rd32),
17079(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17080"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
17081tc_c21d7447, TypeM> {
17082let hasNewValue = 1;
17083let opNewValue = 0;
17084let isPseudo = 1;
17085}
17086def M2_vrcmpys_s1rp_h : HInst<
17087(outs IntRegs:$Rd32),
17088(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17089"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
17090tc_c21d7447, TypeM>, Enc_d2216a {
17091let Inst{7-5} = 0b110;
17092let Inst{13-13} = 0b0;
17093let Inst{31-21} = 0b11101001101;
17094let hasNewValue = 1;
17095let opNewValue = 0;
17096let prefersSlot3 = 1;
17097let Defs = [USR_OVF];
17098}
17099def M2_vrcmpys_s1rp_l : HInst<
17100(outs IntRegs:$Rd32),
17101(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17102"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
17103tc_c21d7447, TypeM>, Enc_d2216a {
17104let Inst{7-5} = 0b111;
17105let Inst{13-13} = 0b0;
17106let Inst{31-21} = 0b11101001101;
17107let hasNewValue = 1;
17108let opNewValue = 0;
17109let prefersSlot3 = 1;
17110let Defs = [USR_OVF];
17111}
17112def M2_vrmac_s0 : HInst<
17113(outs DoubleRegs:$Rxx32),
17114(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17115"$Rxx32 += vrmpyh($Rss32,$Rtt32)",
17116tc_7f8ae742, TypeM>, Enc_88c16c {
17117let Inst{7-5} = 0b010;
17118let Inst{13-13} = 0b0;
17119let Inst{31-21} = 0b11101010000;
17120let prefersSlot3 = 1;
17121let Constraints = "$Rxx32 = $Rxx32in";
17122}
17123def M2_vrmpy_s0 : HInst<
17124(outs DoubleRegs:$Rdd32),
17125(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17126"$Rdd32 = vrmpyh($Rss32,$Rtt32)",
17127tc_c21d7447, TypeM>, Enc_a56825 {
17128let Inst{7-5} = 0b010;
17129let Inst{13-13} = 0b0;
17130let Inst{31-21} = 0b11101000000;
17131let prefersSlot3 = 1;
17132}
17133def M2_xor_xacc : HInst<
17134(outs IntRegs:$Rx32),
17135(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17136"$Rx32 ^= xor($Rs32,$Rt32)",
17137tc_a4e22bbd, TypeM>, Enc_2ae154 {
17138let Inst{7-5} = 0b011;
17139let Inst{13-13} = 0b0;
17140let Inst{31-21} = 0b11101111100;
17141let hasNewValue = 1;
17142let opNewValue = 0;
17143let prefersSlot3 = 1;
17144let InputType = "reg";
17145let Constraints = "$Rx32 = $Rx32in";
17146}
17147def M4_and_and : HInst<
17148(outs IntRegs:$Rx32),
17149(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17150"$Rx32 &= and($Rs32,$Rt32)",
17151tc_a4e22bbd, TypeM>, Enc_2ae154 {
17152let Inst{7-5} = 0b000;
17153let Inst{13-13} = 0b0;
17154let Inst{31-21} = 0b11101111010;
17155let hasNewValue = 1;
17156let opNewValue = 0;
17157let prefersSlot3 = 1;
17158let InputType = "reg";
17159let Constraints = "$Rx32 = $Rx32in";
17160}
17161def M4_and_andn : HInst<
17162(outs IntRegs:$Rx32),
17163(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17164"$Rx32 &= and($Rs32,~$Rt32)",
17165tc_a4e22bbd, TypeM>, Enc_2ae154 {
17166let Inst{7-5} = 0b001;
17167let Inst{13-13} = 0b0;
17168let Inst{31-21} = 0b11101111001;
17169let hasNewValue = 1;
17170let opNewValue = 0;
17171let prefersSlot3 = 1;
17172let InputType = "reg";
17173let Constraints = "$Rx32 = $Rx32in";
17174}
17175def M4_and_or : HInst<
17176(outs IntRegs:$Rx32),
17177(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17178"$Rx32 &= or($Rs32,$Rt32)",
17179tc_a4e22bbd, TypeM>, Enc_2ae154 {
17180let Inst{7-5} = 0b001;
17181let Inst{13-13} = 0b0;
17182let Inst{31-21} = 0b11101111010;
17183let hasNewValue = 1;
17184let opNewValue = 0;
17185let prefersSlot3 = 1;
17186let InputType = "reg";
17187let Constraints = "$Rx32 = $Rx32in";
17188}
17189def M4_and_xor : HInst<
17190(outs IntRegs:$Rx32),
17191(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17192"$Rx32 &= xor($Rs32,$Rt32)",
17193tc_a4e22bbd, TypeM>, Enc_2ae154 {
17194let Inst{7-5} = 0b010;
17195let Inst{13-13} = 0b0;
17196let Inst{31-21} = 0b11101111010;
17197let hasNewValue = 1;
17198let opNewValue = 0;
17199let prefersSlot3 = 1;
17200let InputType = "reg";
17201let Constraints = "$Rx32 = $Rx32in";
17202}
17203def M4_cmpyi_wh : HInst<
17204(outs IntRegs:$Rd32),
17205(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17206"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17207tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17208let Inst{7-5} = 0b100;
17209let Inst{13-13} = 0b0;
17210let Inst{31-21} = 0b11000101000;
17211let hasNewValue = 1;
17212let opNewValue = 0;
17213let prefersSlot3 = 1;
17214let Defs = [USR_OVF];
17215}
17216def M4_cmpyi_whc : HInst<
17217(outs IntRegs:$Rd32),
17218(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17219"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17220tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17221let Inst{7-5} = 0b101;
17222let Inst{13-13} = 0b0;
17223let Inst{31-21} = 0b11000101000;
17224let hasNewValue = 1;
17225let opNewValue = 0;
17226let prefersSlot3 = 1;
17227let Defs = [USR_OVF];
17228}
17229def M4_cmpyr_wh : HInst<
17230(outs IntRegs:$Rd32),
17231(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17232"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17233tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17234let Inst{7-5} = 0b110;
17235let Inst{13-13} = 0b0;
17236let Inst{31-21} = 0b11000101000;
17237let hasNewValue = 1;
17238let opNewValue = 0;
17239let prefersSlot3 = 1;
17240let Defs = [USR_OVF];
17241}
17242def M4_cmpyr_whc : HInst<
17243(outs IntRegs:$Rd32),
17244(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17245"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17246tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17247let Inst{7-5} = 0b111;
17248let Inst{13-13} = 0b0;
17249let Inst{31-21} = 0b11000101000;
17250let hasNewValue = 1;
17251let opNewValue = 0;
17252let prefersSlot3 = 1;
17253let Defs = [USR_OVF];
17254}
17255def M4_mac_up_s1_sat : HInst<
17256(outs IntRegs:$Rx32),
17257(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17258"$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17259tc_7f8ae742, TypeM>, Enc_2ae154 {
17260let Inst{7-5} = 0b000;
17261let Inst{13-13} = 0b0;
17262let Inst{31-21} = 0b11101111011;
17263let hasNewValue = 1;
17264let opNewValue = 0;
17265let prefersSlot3 = 1;
17266let Defs = [USR_OVF];
17267let InputType = "reg";
17268let Constraints = "$Rx32 = $Rx32in";
17269}
17270def M4_mpyri_addi : HInst<
17271(outs IntRegs:$Rd32),
17272(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17273"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17274tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel {
17275let Inst{31-24} = 0b11011000;
17276let hasNewValue = 1;
17277let opNewValue = 0;
17278let prefersSlot3 = 1;
17279let CextOpcode = "M4_mpyri_addr";
17280let isExtendable = 1;
17281let opExtendable = 1;
17282let isExtentSigned = 0;
17283let opExtentBits = 6;
17284let opExtentAlign = 0;
17285}
17286def M4_mpyri_addr : HInst<
17287(outs IntRegs:$Rd32),
17288(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17289"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17290tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel {
17291let Inst{31-23} = 0b110111111;
17292let hasNewValue = 1;
17293let opNewValue = 0;
17294let prefersSlot3 = 1;
17295let CextOpcode = "M4_mpyri_addr";
17296let InputType = "imm";
17297let isExtendable = 1;
17298let opExtendable = 3;
17299let isExtentSigned = 0;
17300let opExtentBits = 6;
17301let opExtentAlign = 0;
17302}
17303def M4_mpyri_addr_u2 : HInst<
17304(outs IntRegs:$Rd32),
17305(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17306"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17307tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> {
17308let Inst{31-23} = 0b110111110;
17309let hasNewValue = 1;
17310let opNewValue = 0;
17311let prefersSlot3 = 1;
17312}
17313def M4_mpyrr_addi : HInst<
17314(outs IntRegs:$Rd32),
17315(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17316"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17317tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel {
17318let Inst{31-23} = 0b110101110;
17319let hasNewValue = 1;
17320let opNewValue = 0;
17321let prefersSlot3 = 1;
17322let CextOpcode = "M4_mpyrr_addr";
17323let InputType = "imm";
17324let isExtendable = 1;
17325let opExtendable = 1;
17326let isExtentSigned = 0;
17327let opExtentBits = 6;
17328let opExtentAlign = 0;
17329}
17330def M4_mpyrr_addr : HInst<
17331(outs IntRegs:$Ry32),
17332(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17333"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17334tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel {
17335let Inst{7-5} = 0b000;
17336let Inst{13-13} = 0b0;
17337let Inst{31-21} = 0b11100011000;
17338let hasNewValue = 1;
17339let opNewValue = 0;
17340let prefersSlot3 = 1;
17341let CextOpcode = "M4_mpyrr_addr";
17342let InputType = "reg";
17343let Constraints = "$Ry32 = $Ry32in";
17344}
17345def M4_nac_up_s1_sat : HInst<
17346(outs IntRegs:$Rx32),
17347(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17348"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17349tc_7f8ae742, TypeM>, Enc_2ae154 {
17350let Inst{7-5} = 0b001;
17351let Inst{13-13} = 0b0;
17352let Inst{31-21} = 0b11101111011;
17353let hasNewValue = 1;
17354let opNewValue = 0;
17355let prefersSlot3 = 1;
17356let Defs = [USR_OVF];
17357let InputType = "reg";
17358let Constraints = "$Rx32 = $Rx32in";
17359}
17360def M4_or_and : HInst<
17361(outs IntRegs:$Rx32),
17362(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17363"$Rx32 |= and($Rs32,$Rt32)",
17364tc_a4e22bbd, TypeM>, Enc_2ae154 {
17365let Inst{7-5} = 0b011;
17366let Inst{13-13} = 0b0;
17367let Inst{31-21} = 0b11101111010;
17368let hasNewValue = 1;
17369let opNewValue = 0;
17370let prefersSlot3 = 1;
17371let InputType = "reg";
17372let Constraints = "$Rx32 = $Rx32in";
17373}
17374def M4_or_andn : HInst<
17375(outs IntRegs:$Rx32),
17376(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17377"$Rx32 |= and($Rs32,~$Rt32)",
17378tc_a4e22bbd, TypeM>, Enc_2ae154 {
17379let Inst{7-5} = 0b000;
17380let Inst{13-13} = 0b0;
17381let Inst{31-21} = 0b11101111001;
17382let hasNewValue = 1;
17383let opNewValue = 0;
17384let prefersSlot3 = 1;
17385let InputType = "reg";
17386let Constraints = "$Rx32 = $Rx32in";
17387}
17388def M4_or_or : HInst<
17389(outs IntRegs:$Rx32),
17390(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17391"$Rx32 |= or($Rs32,$Rt32)",
17392tc_a4e22bbd, TypeM>, Enc_2ae154 {
17393let Inst{7-5} = 0b000;
17394let Inst{13-13} = 0b0;
17395let Inst{31-21} = 0b11101111110;
17396let hasNewValue = 1;
17397let opNewValue = 0;
17398let prefersSlot3 = 1;
17399let InputType = "reg";
17400let Constraints = "$Rx32 = $Rx32in";
17401}
17402def M4_or_xor : HInst<
17403(outs IntRegs:$Rx32),
17404(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17405"$Rx32 |= xor($Rs32,$Rt32)",
17406tc_a4e22bbd, TypeM>, Enc_2ae154 {
17407let Inst{7-5} = 0b001;
17408let Inst{13-13} = 0b0;
17409let Inst{31-21} = 0b11101111110;
17410let hasNewValue = 1;
17411let opNewValue = 0;
17412let prefersSlot3 = 1;
17413let InputType = "reg";
17414let Constraints = "$Rx32 = $Rx32in";
17415}
17416def M4_pmpyw : HInst<
17417(outs DoubleRegs:$Rdd32),
17418(ins IntRegs:$Rs32, IntRegs:$Rt32),
17419"$Rdd32 = pmpyw($Rs32,$Rt32)",
17420tc_c21d7447, TypeM>, Enc_be32a5 {
17421let Inst{7-5} = 0b111;
17422let Inst{13-13} = 0b0;
17423let Inst{31-21} = 0b11100101010;
17424let prefersSlot3 = 1;
17425}
17426def M4_pmpyw_acc : HInst<
17427(outs DoubleRegs:$Rxx32),
17428(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17429"$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17430tc_7f8ae742, TypeM>, Enc_61f0b0 {
17431let Inst{7-5} = 0b111;
17432let Inst{13-13} = 0b0;
17433let Inst{31-21} = 0b11100111001;
17434let prefersSlot3 = 1;
17435let Constraints = "$Rxx32 = $Rxx32in";
17436}
17437def M4_vpmpyh : HInst<
17438(outs DoubleRegs:$Rdd32),
17439(ins IntRegs:$Rs32, IntRegs:$Rt32),
17440"$Rdd32 = vpmpyh($Rs32,$Rt32)",
17441tc_c21d7447, TypeM>, Enc_be32a5 {
17442let Inst{7-5} = 0b111;
17443let Inst{13-13} = 0b0;
17444let Inst{31-21} = 0b11100101110;
17445let prefersSlot3 = 1;
17446}
17447def M4_vpmpyh_acc : HInst<
17448(outs DoubleRegs:$Rxx32),
17449(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17450"$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17451tc_7f8ae742, TypeM>, Enc_61f0b0 {
17452let Inst{7-5} = 0b111;
17453let Inst{13-13} = 0b0;
17454let Inst{31-21} = 0b11100111101;
17455let prefersSlot3 = 1;
17456let Constraints = "$Rxx32 = $Rxx32in";
17457}
17458def M4_vrmpyeh_acc_s0 : HInst<
17459(outs DoubleRegs:$Rxx32),
17460(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17461"$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17462tc_7f8ae742, TypeM>, Enc_88c16c {
17463let Inst{7-5} = 0b110;
17464let Inst{13-13} = 0b0;
17465let Inst{31-21} = 0b11101010001;
17466let prefersSlot3 = 1;
17467let Constraints = "$Rxx32 = $Rxx32in";
17468}
17469def M4_vrmpyeh_acc_s1 : HInst<
17470(outs DoubleRegs:$Rxx32),
17471(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17472"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17473tc_7f8ae742, TypeM>, Enc_88c16c {
17474let Inst{7-5} = 0b110;
17475let Inst{13-13} = 0b0;
17476let Inst{31-21} = 0b11101010101;
17477let prefersSlot3 = 1;
17478let Constraints = "$Rxx32 = $Rxx32in";
17479}
17480def M4_vrmpyeh_s0 : HInst<
17481(outs DoubleRegs:$Rdd32),
17482(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17483"$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17484tc_c21d7447, TypeM>, Enc_a56825 {
17485let Inst{7-5} = 0b100;
17486let Inst{13-13} = 0b0;
17487let Inst{31-21} = 0b11101000010;
17488let prefersSlot3 = 1;
17489}
17490def M4_vrmpyeh_s1 : HInst<
17491(outs DoubleRegs:$Rdd32),
17492(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17493"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17494tc_c21d7447, TypeM>, Enc_a56825 {
17495let Inst{7-5} = 0b100;
17496let Inst{13-13} = 0b0;
17497let Inst{31-21} = 0b11101000110;
17498let prefersSlot3 = 1;
17499}
17500def M4_vrmpyoh_acc_s0 : HInst<
17501(outs DoubleRegs:$Rxx32),
17502(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17503"$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17504tc_7f8ae742, TypeM>, Enc_88c16c {
17505let Inst{7-5} = 0b110;
17506let Inst{13-13} = 0b0;
17507let Inst{31-21} = 0b11101010011;
17508let prefersSlot3 = 1;
17509let Constraints = "$Rxx32 = $Rxx32in";
17510}
17511def M4_vrmpyoh_acc_s1 : HInst<
17512(outs DoubleRegs:$Rxx32),
17513(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17514"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17515tc_7f8ae742, TypeM>, Enc_88c16c {
17516let Inst{7-5} = 0b110;
17517let Inst{13-13} = 0b0;
17518let Inst{31-21} = 0b11101010111;
17519let prefersSlot3 = 1;
17520let Constraints = "$Rxx32 = $Rxx32in";
17521}
17522def M4_vrmpyoh_s0 : HInst<
17523(outs DoubleRegs:$Rdd32),
17524(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17525"$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17526tc_c21d7447, TypeM>, Enc_a56825 {
17527let Inst{7-5} = 0b010;
17528let Inst{13-13} = 0b0;
17529let Inst{31-21} = 0b11101000001;
17530let prefersSlot3 = 1;
17531}
17532def M4_vrmpyoh_s1 : HInst<
17533(outs DoubleRegs:$Rdd32),
17534(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17535"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17536tc_c21d7447, TypeM>, Enc_a56825 {
17537let Inst{7-5} = 0b010;
17538let Inst{13-13} = 0b0;
17539let Inst{31-21} = 0b11101000101;
17540let prefersSlot3 = 1;
17541}
17542def M4_xor_and : HInst<
17543(outs IntRegs:$Rx32),
17544(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17545"$Rx32 ^= and($Rs32,$Rt32)",
17546tc_a4e22bbd, TypeM>, Enc_2ae154 {
17547let Inst{7-5} = 0b010;
17548let Inst{13-13} = 0b0;
17549let Inst{31-21} = 0b11101111110;
17550let hasNewValue = 1;
17551let opNewValue = 0;
17552let prefersSlot3 = 1;
17553let InputType = "reg";
17554let Constraints = "$Rx32 = $Rx32in";
17555}
17556def M4_xor_andn : HInst<
17557(outs IntRegs:$Rx32),
17558(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17559"$Rx32 ^= and($Rs32,~$Rt32)",
17560tc_a4e22bbd, TypeM>, Enc_2ae154 {
17561let Inst{7-5} = 0b010;
17562let Inst{13-13} = 0b0;
17563let Inst{31-21} = 0b11101111001;
17564let hasNewValue = 1;
17565let opNewValue = 0;
17566let prefersSlot3 = 1;
17567let InputType = "reg";
17568let Constraints = "$Rx32 = $Rx32in";
17569}
17570def M4_xor_or : HInst<
17571(outs IntRegs:$Rx32),
17572(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17573"$Rx32 ^= or($Rs32,$Rt32)",
17574tc_a4e22bbd, TypeM>, Enc_2ae154 {
17575let Inst{7-5} = 0b011;
17576let Inst{13-13} = 0b0;
17577let Inst{31-21} = 0b11101111110;
17578let hasNewValue = 1;
17579let opNewValue = 0;
17580let prefersSlot3 = 1;
17581let InputType = "reg";
17582let Constraints = "$Rx32 = $Rx32in";
17583}
17584def M4_xor_xacc : HInst<
17585(outs DoubleRegs:$Rxx32),
17586(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17587"$Rxx32 ^= xor($Rss32,$Rtt32)",
17588tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
17589let Inst{7-5} = 0b000;
17590let Inst{13-13} = 0b0;
17591let Inst{31-21} = 0b11001010100;
17592let prefersSlot3 = 1;
17593let Constraints = "$Rxx32 = $Rxx32in";
17594}
17595def M5_vdmacbsu : HInst<
17596(outs DoubleRegs:$Rxx32),
17597(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17598"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17599tc_7f8ae742, TypeM>, Enc_88c16c {
17600let Inst{7-5} = 0b001;
17601let Inst{13-13} = 0b0;
17602let Inst{31-21} = 0b11101010001;
17603let prefersSlot3 = 1;
17604let Defs = [USR_OVF];
17605let Constraints = "$Rxx32 = $Rxx32in";
17606}
17607def M5_vdmpybsu : HInst<
17608(outs DoubleRegs:$Rdd32),
17609(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17610"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17611tc_c21d7447, TypeM>, Enc_a56825 {
17612let Inst{7-5} = 0b001;
17613let Inst{13-13} = 0b0;
17614let Inst{31-21} = 0b11101000101;
17615let prefersSlot3 = 1;
17616let Defs = [USR_OVF];
17617}
17618def M5_vmacbsu : HInst<
17619(outs DoubleRegs:$Rxx32),
17620(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17621"$Rxx32 += vmpybsu($Rs32,$Rt32)",
17622tc_7f8ae742, TypeM>, Enc_61f0b0 {
17623let Inst{7-5} = 0b001;
17624let Inst{13-13} = 0b0;
17625let Inst{31-21} = 0b11100111110;
17626let prefersSlot3 = 1;
17627let Constraints = "$Rxx32 = $Rxx32in";
17628}
17629def M5_vmacbuu : HInst<
17630(outs DoubleRegs:$Rxx32),
17631(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17632"$Rxx32 += vmpybu($Rs32,$Rt32)",
17633tc_7f8ae742, TypeM>, Enc_61f0b0 {
17634let Inst{7-5} = 0b001;
17635let Inst{13-13} = 0b0;
17636let Inst{31-21} = 0b11100111100;
17637let prefersSlot3 = 1;
17638let Constraints = "$Rxx32 = $Rxx32in";
17639}
17640def M5_vmpybsu : HInst<
17641(outs DoubleRegs:$Rdd32),
17642(ins IntRegs:$Rs32, IntRegs:$Rt32),
17643"$Rdd32 = vmpybsu($Rs32,$Rt32)",
17644tc_c21d7447, TypeM>, Enc_be32a5 {
17645let Inst{7-5} = 0b001;
17646let Inst{13-13} = 0b0;
17647let Inst{31-21} = 0b11100101010;
17648let prefersSlot3 = 1;
17649}
17650def M5_vmpybuu : HInst<
17651(outs DoubleRegs:$Rdd32),
17652(ins IntRegs:$Rs32, IntRegs:$Rt32),
17653"$Rdd32 = vmpybu($Rs32,$Rt32)",
17654tc_c21d7447, TypeM>, Enc_be32a5 {
17655let Inst{7-5} = 0b001;
17656let Inst{13-13} = 0b0;
17657let Inst{31-21} = 0b11100101100;
17658let prefersSlot3 = 1;
17659}
17660def M5_vrmacbsu : HInst<
17661(outs DoubleRegs:$Rxx32),
17662(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17663"$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17664tc_7f8ae742, TypeM>, Enc_88c16c {
17665let Inst{7-5} = 0b001;
17666let Inst{13-13} = 0b0;
17667let Inst{31-21} = 0b11101010110;
17668let prefersSlot3 = 1;
17669let Constraints = "$Rxx32 = $Rxx32in";
17670}
17671def M5_vrmacbuu : HInst<
17672(outs DoubleRegs:$Rxx32),
17673(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17674"$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17675tc_7f8ae742, TypeM>, Enc_88c16c {
17676let Inst{7-5} = 0b001;
17677let Inst{13-13} = 0b0;
17678let Inst{31-21} = 0b11101010100;
17679let prefersSlot3 = 1;
17680let Constraints = "$Rxx32 = $Rxx32in";
17681}
17682def M5_vrmpybsu : HInst<
17683(outs DoubleRegs:$Rdd32),
17684(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17685"$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17686tc_c21d7447, TypeM>, Enc_a56825 {
17687let Inst{7-5} = 0b001;
17688let Inst{13-13} = 0b0;
17689let Inst{31-21} = 0b11101000110;
17690let prefersSlot3 = 1;
17691}
17692def M5_vrmpybuu : HInst<
17693(outs DoubleRegs:$Rdd32),
17694(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17695"$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17696tc_c21d7447, TypeM>, Enc_a56825 {
17697let Inst{7-5} = 0b001;
17698let Inst{13-13} = 0b0;
17699let Inst{31-21} = 0b11101000100;
17700let prefersSlot3 = 1;
17701}
17702def M6_vabsdiffb : HInst<
17703(outs DoubleRegs:$Rdd32),
17704(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17705"$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17706tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17707let Inst{7-5} = 0b000;
17708let Inst{13-13} = 0b0;
17709let Inst{31-21} = 0b11101000111;
17710let prefersSlot3 = 1;
17711}
17712def M6_vabsdiffub : HInst<
17713(outs DoubleRegs:$Rdd32),
17714(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17715"$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17716tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17717let Inst{7-5} = 0b000;
17718let Inst{13-13} = 0b0;
17719let Inst{31-21} = 0b11101000101;
17720let prefersSlot3 = 1;
17721}
17722def M7_dcmpyiw : HInst<
17723(outs DoubleRegs:$Rdd32),
17724(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17725"$Rdd32 = cmpyiw($Rss32,$Rtt32)",
17726tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17727let Inst{7-5} = 0b010;
17728let Inst{13-13} = 0b0;
17729let Inst{31-21} = 0b11101000011;
17730let prefersSlot3 = 1;
17731}
17732def M7_dcmpyiw_acc : HInst<
17733(outs DoubleRegs:$Rxx32),
17734(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17735"$Rxx32 += cmpyiw($Rss32,$Rtt32)",
17736tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17737let Inst{7-5} = 0b010;
17738let Inst{13-13} = 0b0;
17739let Inst{31-21} = 0b11101010011;
17740let prefersSlot3 = 1;
17741let Constraints = "$Rxx32 = $Rxx32in";
17742}
17743def M7_dcmpyiwc : HInst<
17744(outs DoubleRegs:$Rdd32),
17745(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17746"$Rdd32 = cmpyiw($Rss32,$Rtt32*)",
17747tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17748let Inst{7-5} = 0b010;
17749let Inst{13-13} = 0b0;
17750let Inst{31-21} = 0b11101000111;
17751let prefersSlot3 = 1;
17752}
17753def M7_dcmpyiwc_acc : HInst<
17754(outs DoubleRegs:$Rxx32),
17755(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17756"$Rxx32 += cmpyiw($Rss32,$Rtt32*)",
17757tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17758let Inst{7-5} = 0b110;
17759let Inst{13-13} = 0b0;
17760let Inst{31-21} = 0b11101010010;
17761let prefersSlot3 = 1;
17762let Constraints = "$Rxx32 = $Rxx32in";
17763}
17764def M7_dcmpyrw : HInst<
17765(outs DoubleRegs:$Rdd32),
17766(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17767"$Rdd32 = cmpyrw($Rss32,$Rtt32)",
17768tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17769let Inst{7-5} = 0b010;
17770let Inst{13-13} = 0b0;
17771let Inst{31-21} = 0b11101000100;
17772let prefersSlot3 = 1;
17773}
17774def M7_dcmpyrw_acc : HInst<
17775(outs DoubleRegs:$Rxx32),
17776(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17777"$Rxx32 += cmpyrw($Rss32,$Rtt32)",
17778tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17779let Inst{7-5} = 0b010;
17780let Inst{13-13} = 0b0;
17781let Inst{31-21} = 0b11101010100;
17782let prefersSlot3 = 1;
17783let Constraints = "$Rxx32 = $Rxx32in";
17784}
17785def M7_dcmpyrwc : HInst<
17786(outs DoubleRegs:$Rdd32),
17787(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17788"$Rdd32 = cmpyrw($Rss32,$Rtt32*)",
17789tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17790let Inst{7-5} = 0b010;
17791let Inst{13-13} = 0b0;
17792let Inst{31-21} = 0b11101000110;
17793let prefersSlot3 = 1;
17794}
17795def M7_dcmpyrwc_acc : HInst<
17796(outs DoubleRegs:$Rxx32),
17797(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17798"$Rxx32 += cmpyrw($Rss32,$Rtt32*)",
17799tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17800let Inst{7-5} = 0b010;
17801let Inst{13-13} = 0b0;
17802let Inst{31-21} = 0b11101010110;
17803let prefersSlot3 = 1;
17804let Constraints = "$Rxx32 = $Rxx32in";
17805}
17806def M7_vdmpy : HInst<
17807(outs DoubleRegs:$Rdd32),
17808(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17809"$Rdd32 = vdmpyw($Rss32,$Rtt32)",
17810tc_5a4b5e58, TypeM>, Requires<[HasV67]> {
17811let isPseudo = 1;
17812let isCodeGenOnly = 1;
17813}
17814def M7_vdmpy_acc : HInst<
17815(outs DoubleRegs:$Rxx32),
17816(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17817"$Rxx32 += vdmpyw($Rss32,$Rtt32)",
17818tc_197dce51, TypeM>, Requires<[HasV67]> {
17819let isPseudo = 1;
17820let isCodeGenOnly = 1;
17821let Constraints = "$Rxx32 = $Rxx32in";
17822}
17823def M7_wcmpyiw : HInst<
17824(outs IntRegs:$Rd32),
17825(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17826"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat",
17827tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17828let Inst{7-5} = 0b000;
17829let Inst{13-13} = 0b0;
17830let Inst{31-21} = 0b11101001001;
17831let hasNewValue = 1;
17832let opNewValue = 0;
17833let prefersSlot3 = 1;
17834let Defs = [USR_OVF];
17835}
17836def M7_wcmpyiw_rnd : HInst<
17837(outs IntRegs:$Rd32),
17838(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17839"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat",
17840tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17841let Inst{7-5} = 0b000;
17842let Inst{13-13} = 0b0;
17843let Inst{31-21} = 0b11101001101;
17844let hasNewValue = 1;
17845let opNewValue = 0;
17846let prefersSlot3 = 1;
17847let Defs = [USR_OVF];
17848}
17849def M7_wcmpyiwc : HInst<
17850(outs IntRegs:$Rd32),
17851(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17852"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat",
17853tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17854let Inst{7-5} = 0b100;
17855let Inst{13-13} = 0b0;
17856let Inst{31-21} = 0b11101001000;
17857let hasNewValue = 1;
17858let opNewValue = 0;
17859let prefersSlot3 = 1;
17860let Defs = [USR_OVF];
17861}
17862def M7_wcmpyiwc_rnd : HInst<
17863(outs IntRegs:$Rd32),
17864(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17865"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat",
17866tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17867let Inst{7-5} = 0b100;
17868let Inst{13-13} = 0b0;
17869let Inst{31-21} = 0b11101001100;
17870let hasNewValue = 1;
17871let opNewValue = 0;
17872let prefersSlot3 = 1;
17873let Defs = [USR_OVF];
17874}
17875def M7_wcmpyrw : HInst<
17876(outs IntRegs:$Rd32),
17877(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17878"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat",
17879tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17880let Inst{7-5} = 0b000;
17881let Inst{13-13} = 0b0;
17882let Inst{31-21} = 0b11101001010;
17883let hasNewValue = 1;
17884let opNewValue = 0;
17885let prefersSlot3 = 1;
17886let Defs = [USR_OVF];
17887}
17888def M7_wcmpyrw_rnd : HInst<
17889(outs IntRegs:$Rd32),
17890(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17891"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat",
17892tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17893let Inst{7-5} = 0b000;
17894let Inst{13-13} = 0b0;
17895let Inst{31-21} = 0b11101001110;
17896let hasNewValue = 1;
17897let opNewValue = 0;
17898let prefersSlot3 = 1;
17899let Defs = [USR_OVF];
17900}
17901def M7_wcmpyrwc : HInst<
17902(outs IntRegs:$Rd32),
17903(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17904"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat",
17905tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17906let Inst{7-5} = 0b000;
17907let Inst{13-13} = 0b0;
17908let Inst{31-21} = 0b11101001011;
17909let hasNewValue = 1;
17910let opNewValue = 0;
17911let prefersSlot3 = 1;
17912let Defs = [USR_OVF];
17913}
17914def M7_wcmpyrwc_rnd : HInst<
17915(outs IntRegs:$Rd32),
17916(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17917"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat",
17918tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17919let Inst{7-5} = 0b000;
17920let Inst{13-13} = 0b0;
17921let Inst{31-21} = 0b11101001111;
17922let hasNewValue = 1;
17923let opNewValue = 0;
17924let prefersSlot3 = 1;
17925let Defs = [USR_OVF];
17926}
17927def PS_loadrbabs : HInst<
17928(outs IntRegs:$Rd32),
17929(ins u32_0Imm:$Ii),
17930"$Rd32 = memb(#$Ii)",
17931tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17932let Inst{24-21} = 0b1000;
17933let Inst{31-27} = 0b01001;
17934let hasNewValue = 1;
17935let opNewValue = 0;
17936let addrMode = Absolute;
17937let accessSize = ByteAccess;
17938let mayLoad = 1;
17939let isExtended = 1;
17940let BaseOpcode = "L4_loadrb_abs";
17941let CextOpcode = "L2_loadrb";
17942let isPredicable = 1;
17943let DecoderNamespace = "MustExtend";
17944let isExtended = 1;
17945let opExtendable = 1;
17946let isExtentSigned = 0;
17947let opExtentBits = 16;
17948let opExtentAlign = 0;
17949}
17950def PS_loadrdabs : HInst<
17951(outs DoubleRegs:$Rdd32),
17952(ins u29_3Imm:$Ii),
17953"$Rdd32 = memd(#$Ii)",
17954tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
17955let Inst{24-21} = 0b1110;
17956let Inst{31-27} = 0b01001;
17957let addrMode = Absolute;
17958let accessSize = DoubleWordAccess;
17959let mayLoad = 1;
17960let isExtended = 1;
17961let BaseOpcode = "L4_loadrd_abs";
17962let CextOpcode = "L2_loadrd";
17963let isPredicable = 1;
17964let DecoderNamespace = "MustExtend";
17965let isExtended = 1;
17966let opExtendable = 1;
17967let isExtentSigned = 0;
17968let opExtentBits = 19;
17969let opExtentAlign = 3;
17970}
17971def PS_loadrhabs : HInst<
17972(outs IntRegs:$Rd32),
17973(ins u31_1Imm:$Ii),
17974"$Rd32 = memh(#$Ii)",
17975tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17976let Inst{24-21} = 0b1010;
17977let Inst{31-27} = 0b01001;
17978let hasNewValue = 1;
17979let opNewValue = 0;
17980let addrMode = Absolute;
17981let accessSize = HalfWordAccess;
17982let mayLoad = 1;
17983let isExtended = 1;
17984let BaseOpcode = "L4_loadrh_abs";
17985let CextOpcode = "L2_loadrh";
17986let isPredicable = 1;
17987let DecoderNamespace = "MustExtend";
17988let isExtended = 1;
17989let opExtendable = 1;
17990let isExtentSigned = 0;
17991let opExtentBits = 17;
17992let opExtentAlign = 1;
17993}
17994def PS_loadriabs : HInst<
17995(outs IntRegs:$Rd32),
17996(ins u30_2Imm:$Ii),
17997"$Rd32 = memw(#$Ii)",
17998tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17999let Inst{24-21} = 0b1100;
18000let Inst{31-27} = 0b01001;
18001let hasNewValue = 1;
18002let opNewValue = 0;
18003let addrMode = Absolute;
18004let accessSize = WordAccess;
18005let mayLoad = 1;
18006let isExtended = 1;
18007let BaseOpcode = "L4_loadri_abs";
18008let CextOpcode = "L2_loadri";
18009let isPredicable = 1;
18010let DecoderNamespace = "MustExtend";
18011let isExtended = 1;
18012let opExtendable = 1;
18013let isExtentSigned = 0;
18014let opExtentBits = 18;
18015let opExtentAlign = 2;
18016}
18017def PS_loadrubabs : HInst<
18018(outs IntRegs:$Rd32),
18019(ins u32_0Imm:$Ii),
18020"$Rd32 = memub(#$Ii)",
18021tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
18022let Inst{24-21} = 0b1001;
18023let Inst{31-27} = 0b01001;
18024let hasNewValue = 1;
18025let opNewValue = 0;
18026let addrMode = Absolute;
18027let accessSize = ByteAccess;
18028let mayLoad = 1;
18029let isExtended = 1;
18030let BaseOpcode = "L4_loadrub_abs";
18031let CextOpcode = "L2_loadrub";
18032let isPredicable = 1;
18033let DecoderNamespace = "MustExtend";
18034let isExtended = 1;
18035let opExtendable = 1;
18036let isExtentSigned = 0;
18037let opExtentBits = 16;
18038let opExtentAlign = 0;
18039}
18040def PS_loadruhabs : HInst<
18041(outs IntRegs:$Rd32),
18042(ins u31_1Imm:$Ii),
18043"$Rd32 = memuh(#$Ii)",
18044tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
18045let Inst{24-21} = 0b1011;
18046let Inst{31-27} = 0b01001;
18047let hasNewValue = 1;
18048let opNewValue = 0;
18049let addrMode = Absolute;
18050let accessSize = HalfWordAccess;
18051let mayLoad = 1;
18052let isExtended = 1;
18053let BaseOpcode = "L4_loadruh_abs";
18054let CextOpcode = "L2_loadruh";
18055let isPredicable = 1;
18056let DecoderNamespace = "MustExtend";
18057let isExtended = 1;
18058let opExtendable = 1;
18059let isExtentSigned = 0;
18060let opExtentBits = 17;
18061let opExtentAlign = 1;
18062}
18063def PS_storerbabs : HInst<
18064(outs),
18065(ins u32_0Imm:$Ii, IntRegs:$Rt32),
18066"memb(#$Ii) = $Rt32",
18067tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
18068let Inst{24-21} = 0b0000;
18069let Inst{31-27} = 0b01001;
18070let addrMode = Absolute;
18071let accessSize = ByteAccess;
18072let isExtended = 1;
18073let mayStore = 1;
18074let BaseOpcode = "S2_storerbabs";
18075let CextOpcode = "S2_storerb";
18076let isNVStorable = 1;
18077let isPredicable = 1;
18078let DecoderNamespace = "MustExtend";
18079let isExtended = 1;
18080let opExtendable = 0;
18081let isExtentSigned = 0;
18082let opExtentBits = 16;
18083let opExtentAlign = 0;
18084}
18085def PS_storerbnewabs : HInst<
18086(outs),
18087(ins u32_0Imm:$Ii, IntRegs:$Nt8),
18088"memb(#$Ii) = $Nt8.new",
18089tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
18090let Inst{12-11} = 0b00;
18091let Inst{24-21} = 0b0101;
18092let Inst{31-27} = 0b01001;
18093let addrMode = Absolute;
18094let accessSize = ByteAccess;
18095let isNVStore = 1;
18096let isNewValue = 1;
18097let isExtended = 1;
18098let isRestrictNoSlot1Store = 1;
18099let mayStore = 1;
18100let BaseOpcode = "S2_storerbabs";
18101let CextOpcode = "S2_storerb";
18102let isPredicable = 1;
18103let DecoderNamespace = "MustExtend";
18104let isExtended = 1;
18105let opExtendable = 0;
18106let isExtentSigned = 0;
18107let opExtentBits = 16;
18108let opExtentAlign = 0;
18109let opNewValue = 1;
18110}
18111def PS_storerdabs : HInst<
18112(outs),
18113(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
18114"memd(#$Ii) = $Rtt32",
18115tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
18116let Inst{24-21} = 0b0110;
18117let Inst{31-27} = 0b01001;
18118let addrMode = Absolute;
18119let accessSize = DoubleWordAccess;
18120let isExtended = 1;
18121let mayStore = 1;
18122let BaseOpcode = "S2_storerdabs";
18123let CextOpcode = "S2_storerd";
18124let isPredicable = 1;
18125let DecoderNamespace = "MustExtend";
18126let isExtended = 1;
18127let opExtendable = 0;
18128let isExtentSigned = 0;
18129let opExtentBits = 19;
18130let opExtentAlign = 3;
18131}
18132def PS_storerfabs : HInst<
18133(outs),
18134(ins u31_1Imm:$Ii, IntRegs:$Rt32),
18135"memh(#$Ii) = $Rt32.h",
18136tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18137let Inst{24-21} = 0b0011;
18138let Inst{31-27} = 0b01001;
18139let addrMode = Absolute;
18140let accessSize = HalfWordAccess;
18141let isExtended = 1;
18142let mayStore = 1;
18143let BaseOpcode = "S2_storerfabs";
18144let CextOpcode = "S2_storerf";
18145let isPredicable = 1;
18146let DecoderNamespace = "MustExtend";
18147let isExtended = 1;
18148let opExtendable = 0;
18149let isExtentSigned = 0;
18150let opExtentBits = 17;
18151let opExtentAlign = 1;
18152}
18153def PS_storerhabs : HInst<
18154(outs),
18155(ins u31_1Imm:$Ii, IntRegs:$Rt32),
18156"memh(#$Ii) = $Rt32",
18157tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18158let Inst{24-21} = 0b0010;
18159let Inst{31-27} = 0b01001;
18160let addrMode = Absolute;
18161let accessSize = HalfWordAccess;
18162let isExtended = 1;
18163let mayStore = 1;
18164let BaseOpcode = "S2_storerhabs";
18165let CextOpcode = "S2_storerh";
18166let isNVStorable = 1;
18167let isPredicable = 1;
18168let DecoderNamespace = "MustExtend";
18169let isExtended = 1;
18170let opExtendable = 0;
18171let isExtentSigned = 0;
18172let opExtentBits = 17;
18173let opExtentAlign = 1;
18174}
18175def PS_storerhnewabs : HInst<
18176(outs),
18177(ins u31_1Imm:$Ii, IntRegs:$Nt8),
18178"memh(#$Ii) = $Nt8.new",
18179tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
18180let Inst{12-11} = 0b01;
18181let Inst{24-21} = 0b0101;
18182let Inst{31-27} = 0b01001;
18183let addrMode = Absolute;
18184let accessSize = HalfWordAccess;
18185let isNVStore = 1;
18186let isNewValue = 1;
18187let isExtended = 1;
18188let isRestrictNoSlot1Store = 1;
18189let mayStore = 1;
18190let BaseOpcode = "S2_storerhabs";
18191let CextOpcode = "S2_storerh";
18192let isPredicable = 1;
18193let DecoderNamespace = "MustExtend";
18194let isExtended = 1;
18195let opExtendable = 0;
18196let isExtentSigned = 0;
18197let opExtentBits = 17;
18198let opExtentAlign = 1;
18199let opNewValue = 1;
18200}
18201def PS_storeriabs : HInst<
18202(outs),
18203(ins u30_2Imm:$Ii, IntRegs:$Rt32),
18204"memw(#$Ii) = $Rt32",
18205tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
18206let Inst{24-21} = 0b0100;
18207let Inst{31-27} = 0b01001;
18208let addrMode = Absolute;
18209let accessSize = WordAccess;
18210let isExtended = 1;
18211let mayStore = 1;
18212let BaseOpcode = "S2_storeriabs";
18213let CextOpcode = "S2_storeri";
18214let isNVStorable = 1;
18215let isPredicable = 1;
18216let DecoderNamespace = "MustExtend";
18217let isExtended = 1;
18218let opExtendable = 0;
18219let isExtentSigned = 0;
18220let opExtentBits = 18;
18221let opExtentAlign = 2;
18222}
18223def PS_storerinewabs : HInst<
18224(outs),
18225(ins u30_2Imm:$Ii, IntRegs:$Nt8),
18226"memw(#$Ii) = $Nt8.new",
18227tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
18228let Inst{12-11} = 0b10;
18229let Inst{24-21} = 0b0101;
18230let Inst{31-27} = 0b01001;
18231let addrMode = Absolute;
18232let accessSize = WordAccess;
18233let isNVStore = 1;
18234let isNewValue = 1;
18235let isExtended = 1;
18236let isRestrictNoSlot1Store = 1;
18237let mayStore = 1;
18238let BaseOpcode = "S2_storeriabs";
18239let CextOpcode = "S2_storeri";
18240let isPredicable = 1;
18241let DecoderNamespace = "MustExtend";
18242let isExtended = 1;
18243let opExtendable = 0;
18244let isExtentSigned = 0;
18245let opExtentBits = 18;
18246let opExtentAlign = 2;
18247let opNewValue = 1;
18248}
18249def R6_release_at_vi : HInst<
18250(outs),
18251(ins IntRegs:$Rs32),
18252"release($Rs32):at",
18253tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18254let Inst{7-2} = 0b000011;
18255let Inst{13-13} = 0b0;
18256let Inst{31-21} = 0b10100000111;
18257let isSolo = 1;
18258let mayStore = 1;
18259}
18260def R6_release_st_vi : HInst<
18261(outs),
18262(ins IntRegs:$Rs32),
18263"release($Rs32):st",
18264tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18265let Inst{7-2} = 0b001011;
18266let Inst{13-13} = 0b0;
18267let Inst{31-21} = 0b10100000111;
18268let isSolo = 1;
18269let mayStore = 1;
18270}
18271def S2_addasl_rrri : HInst<
18272(outs IntRegs:$Rd32),
18273(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
18274"$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
18275tc_2c13e7f5, TypeS_3op>, Enc_47ef61 {
18276let Inst{13-13} = 0b0;
18277let Inst{31-21} = 0b11000100000;
18278let hasNewValue = 1;
18279let opNewValue = 0;
18280let prefersSlot3 = 1;
18281}
18282def S2_allocframe : HInst<
18283(outs IntRegs:$Rx32),
18284(ins IntRegs:$Rx32in, u11_3Imm:$Ii),
18285"allocframe($Rx32,#$Ii):raw",
18286tc_934753bb, TypeST>, Enc_22c845 {
18287let Inst{13-11} = 0b000;
18288let Inst{31-21} = 0b10100000100;
18289let hasNewValue = 1;
18290let opNewValue = 0;
18291let addrMode = BaseImmOffset;
18292let accessSize = DoubleWordAccess;
18293let mayStore = 1;
18294let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
18295let Defs = [R30];
18296let Constraints = "$Rx32 = $Rx32in";
18297}
18298def S2_asl_i_p : HInst<
18299(outs DoubleRegs:$Rdd32),
18300(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18301"$Rdd32 = asl($Rss32,#$Ii)",
18302tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18303let Inst{7-5} = 0b010;
18304let Inst{31-21} = 0b10000000000;
18305}
18306def S2_asl_i_p_acc : HInst<
18307(outs DoubleRegs:$Rxx32),
18308(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18309"$Rxx32 += asl($Rss32,#$Ii)",
18310tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18311let Inst{7-5} = 0b110;
18312let Inst{31-21} = 0b10000010000;
18313let prefersSlot3 = 1;
18314let Constraints = "$Rxx32 = $Rxx32in";
18315}
18316def S2_asl_i_p_and : HInst<
18317(outs DoubleRegs:$Rxx32),
18318(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18319"$Rxx32 &= asl($Rss32,#$Ii)",
18320tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18321let Inst{7-5} = 0b010;
18322let Inst{31-21} = 0b10000010010;
18323let prefersSlot3 = 1;
18324let Constraints = "$Rxx32 = $Rxx32in";
18325}
18326def S2_asl_i_p_nac : HInst<
18327(outs DoubleRegs:$Rxx32),
18328(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18329"$Rxx32 -= asl($Rss32,#$Ii)",
18330tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18331let Inst{7-5} = 0b010;
18332let Inst{31-21} = 0b10000010000;
18333let prefersSlot3 = 1;
18334let Constraints = "$Rxx32 = $Rxx32in";
18335}
18336def S2_asl_i_p_or : HInst<
18337(outs DoubleRegs:$Rxx32),
18338(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18339"$Rxx32 |= asl($Rss32,#$Ii)",
18340tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18341let Inst{7-5} = 0b110;
18342let Inst{31-21} = 0b10000010010;
18343let prefersSlot3 = 1;
18344let Constraints = "$Rxx32 = $Rxx32in";
18345}
18346def S2_asl_i_p_xacc : HInst<
18347(outs DoubleRegs:$Rxx32),
18348(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18349"$Rxx32 ^= asl($Rss32,#$Ii)",
18350tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18351let Inst{7-5} = 0b010;
18352let Inst{31-21} = 0b10000010100;
18353let prefersSlot3 = 1;
18354let Constraints = "$Rxx32 = $Rxx32in";
18355}
18356def S2_asl_i_r : HInst<
18357(outs IntRegs:$Rd32),
18358(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18359"$Rd32 = asl($Rs32,#$Ii)",
18360tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18361let Inst{7-5} = 0b010;
18362let Inst{13-13} = 0b0;
18363let Inst{31-21} = 0b10001100000;
18364let hasNewValue = 1;
18365let opNewValue = 0;
18366}
18367def S2_asl_i_r_acc : HInst<
18368(outs IntRegs:$Rx32),
18369(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18370"$Rx32 += asl($Rs32,#$Ii)",
18371tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18372let Inst{7-5} = 0b110;
18373let Inst{13-13} = 0b0;
18374let Inst{31-21} = 0b10001110000;
18375let hasNewValue = 1;
18376let opNewValue = 0;
18377let prefersSlot3 = 1;
18378let Constraints = "$Rx32 = $Rx32in";
18379}
18380def S2_asl_i_r_and : HInst<
18381(outs IntRegs:$Rx32),
18382(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18383"$Rx32 &= asl($Rs32,#$Ii)",
18384tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18385let Inst{7-5} = 0b010;
18386let Inst{13-13} = 0b0;
18387let Inst{31-21} = 0b10001110010;
18388let hasNewValue = 1;
18389let opNewValue = 0;
18390let prefersSlot3 = 1;
18391let Constraints = "$Rx32 = $Rx32in";
18392}
18393def S2_asl_i_r_nac : HInst<
18394(outs IntRegs:$Rx32),
18395(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18396"$Rx32 -= asl($Rs32,#$Ii)",
18397tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18398let Inst{7-5} = 0b010;
18399let Inst{13-13} = 0b0;
18400let Inst{31-21} = 0b10001110000;
18401let hasNewValue = 1;
18402let opNewValue = 0;
18403let prefersSlot3 = 1;
18404let Constraints = "$Rx32 = $Rx32in";
18405}
18406def S2_asl_i_r_or : HInst<
18407(outs IntRegs:$Rx32),
18408(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18409"$Rx32 |= asl($Rs32,#$Ii)",
18410tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18411let Inst{7-5} = 0b110;
18412let Inst{13-13} = 0b0;
18413let Inst{31-21} = 0b10001110010;
18414let hasNewValue = 1;
18415let opNewValue = 0;
18416let prefersSlot3 = 1;
18417let Constraints = "$Rx32 = $Rx32in";
18418}
18419def S2_asl_i_r_sat : HInst<
18420(outs IntRegs:$Rd32),
18421(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18422"$Rd32 = asl($Rs32,#$Ii):sat",
18423tc_8a825db2, TypeS_2op>, Enc_a05677 {
18424let Inst{7-5} = 0b010;
18425let Inst{13-13} = 0b0;
18426let Inst{31-21} = 0b10001100010;
18427let hasNewValue = 1;
18428let opNewValue = 0;
18429let prefersSlot3 = 1;
18430let Defs = [USR_OVF];
18431}
18432def S2_asl_i_r_xacc : HInst<
18433(outs IntRegs:$Rx32),
18434(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18435"$Rx32 ^= asl($Rs32,#$Ii)",
18436tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18437let Inst{7-5} = 0b010;
18438let Inst{13-13} = 0b0;
18439let Inst{31-21} = 0b10001110100;
18440let hasNewValue = 1;
18441let opNewValue = 0;
18442let prefersSlot3 = 1;
18443let Constraints = "$Rx32 = $Rx32in";
18444}
18445def S2_asl_i_vh : HInst<
18446(outs DoubleRegs:$Rdd32),
18447(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18448"$Rdd32 = vaslh($Rss32,#$Ii)",
18449tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18450let Inst{7-5} = 0b010;
18451let Inst{13-12} = 0b00;
18452let Inst{31-21} = 0b10000000100;
18453}
18454def S2_asl_i_vw : HInst<
18455(outs DoubleRegs:$Rdd32),
18456(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18457"$Rdd32 = vaslw($Rss32,#$Ii)",
18458tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18459let Inst{7-5} = 0b010;
18460let Inst{13-13} = 0b0;
18461let Inst{31-21} = 0b10000000010;
18462}
18463def S2_asl_r_p : HInst<
18464(outs DoubleRegs:$Rdd32),
18465(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18466"$Rdd32 = asl($Rss32,$Rt32)",
18467tc_5da50c4b, TypeS_3op>, Enc_927852 {
18468let Inst{7-5} = 0b100;
18469let Inst{13-13} = 0b0;
18470let Inst{31-21} = 0b11000011100;
18471}
18472def S2_asl_r_p_acc : HInst<
18473(outs DoubleRegs:$Rxx32),
18474(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18475"$Rxx32 += asl($Rss32,$Rt32)",
18476tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18477let Inst{7-5} = 0b100;
18478let Inst{13-13} = 0b0;
18479let Inst{31-21} = 0b11001011110;
18480let prefersSlot3 = 1;
18481let Constraints = "$Rxx32 = $Rxx32in";
18482}
18483def S2_asl_r_p_and : HInst<
18484(outs DoubleRegs:$Rxx32),
18485(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18486"$Rxx32 &= asl($Rss32,$Rt32)",
18487tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18488let Inst{7-5} = 0b100;
18489let Inst{13-13} = 0b0;
18490let Inst{31-21} = 0b11001011010;
18491let prefersSlot3 = 1;
18492let Constraints = "$Rxx32 = $Rxx32in";
18493}
18494def S2_asl_r_p_nac : HInst<
18495(outs DoubleRegs:$Rxx32),
18496(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18497"$Rxx32 -= asl($Rss32,$Rt32)",
18498tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18499let Inst{7-5} = 0b100;
18500let Inst{13-13} = 0b0;
18501let Inst{31-21} = 0b11001011100;
18502let prefersSlot3 = 1;
18503let Constraints = "$Rxx32 = $Rxx32in";
18504}
18505def S2_asl_r_p_or : HInst<
18506(outs DoubleRegs:$Rxx32),
18507(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18508"$Rxx32 |= asl($Rss32,$Rt32)",
18509tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18510let Inst{7-5} = 0b100;
18511let Inst{13-13} = 0b0;
18512let Inst{31-21} = 0b11001011000;
18513let prefersSlot3 = 1;
18514let Constraints = "$Rxx32 = $Rxx32in";
18515}
18516def S2_asl_r_p_xor : HInst<
18517(outs DoubleRegs:$Rxx32),
18518(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18519"$Rxx32 ^= asl($Rss32,$Rt32)",
18520tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18521let Inst{7-5} = 0b100;
18522let Inst{13-13} = 0b0;
18523let Inst{31-21} = 0b11001011011;
18524let prefersSlot3 = 1;
18525let Constraints = "$Rxx32 = $Rxx32in";
18526}
18527def S2_asl_r_r : HInst<
18528(outs IntRegs:$Rd32),
18529(ins IntRegs:$Rs32, IntRegs:$Rt32),
18530"$Rd32 = asl($Rs32,$Rt32)",
18531tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18532let Inst{7-5} = 0b100;
18533let Inst{13-13} = 0b0;
18534let Inst{31-21} = 0b11000110010;
18535let hasNewValue = 1;
18536let opNewValue = 0;
18537}
18538def S2_asl_r_r_acc : HInst<
18539(outs IntRegs:$Rx32),
18540(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18541"$Rx32 += asl($Rs32,$Rt32)",
18542tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18543let Inst{7-5} = 0b100;
18544let Inst{13-13} = 0b0;
18545let Inst{31-21} = 0b11001100110;
18546let hasNewValue = 1;
18547let opNewValue = 0;
18548let prefersSlot3 = 1;
18549let Constraints = "$Rx32 = $Rx32in";
18550}
18551def S2_asl_r_r_and : HInst<
18552(outs IntRegs:$Rx32),
18553(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18554"$Rx32 &= asl($Rs32,$Rt32)",
18555tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18556let Inst{7-5} = 0b100;
18557let Inst{13-13} = 0b0;
18558let Inst{31-21} = 0b11001100010;
18559let hasNewValue = 1;
18560let opNewValue = 0;
18561let prefersSlot3 = 1;
18562let Constraints = "$Rx32 = $Rx32in";
18563}
18564def S2_asl_r_r_nac : HInst<
18565(outs IntRegs:$Rx32),
18566(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18567"$Rx32 -= asl($Rs32,$Rt32)",
18568tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18569let Inst{7-5} = 0b100;
18570let Inst{13-13} = 0b0;
18571let Inst{31-21} = 0b11001100100;
18572let hasNewValue = 1;
18573let opNewValue = 0;
18574let prefersSlot3 = 1;
18575let Constraints = "$Rx32 = $Rx32in";
18576}
18577def S2_asl_r_r_or : HInst<
18578(outs IntRegs:$Rx32),
18579(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18580"$Rx32 |= asl($Rs32,$Rt32)",
18581tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18582let Inst{7-5} = 0b100;
18583let Inst{13-13} = 0b0;
18584let Inst{31-21} = 0b11001100000;
18585let hasNewValue = 1;
18586let opNewValue = 0;
18587let prefersSlot3 = 1;
18588let Constraints = "$Rx32 = $Rx32in";
18589}
18590def S2_asl_r_r_sat : HInst<
18591(outs IntRegs:$Rd32),
18592(ins IntRegs:$Rs32, IntRegs:$Rt32),
18593"$Rd32 = asl($Rs32,$Rt32):sat",
18594tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18595let Inst{7-5} = 0b100;
18596let Inst{13-13} = 0b0;
18597let Inst{31-21} = 0b11000110000;
18598let hasNewValue = 1;
18599let opNewValue = 0;
18600let prefersSlot3 = 1;
18601let Defs = [USR_OVF];
18602}
18603def S2_asl_r_vh : HInst<
18604(outs DoubleRegs:$Rdd32),
18605(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18606"$Rdd32 = vaslh($Rss32,$Rt32)",
18607tc_5da50c4b, TypeS_3op>, Enc_927852 {
18608let Inst{7-5} = 0b100;
18609let Inst{13-13} = 0b0;
18610let Inst{31-21} = 0b11000011010;
18611}
18612def S2_asl_r_vw : HInst<
18613(outs DoubleRegs:$Rdd32),
18614(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18615"$Rdd32 = vaslw($Rss32,$Rt32)",
18616tc_5da50c4b, TypeS_3op>, Enc_927852 {
18617let Inst{7-5} = 0b100;
18618let Inst{13-13} = 0b0;
18619let Inst{31-21} = 0b11000011000;
18620}
18621def S2_asr_i_p : HInst<
18622(outs DoubleRegs:$Rdd32),
18623(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18624"$Rdd32 = asr($Rss32,#$Ii)",
18625tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18626let Inst{7-5} = 0b000;
18627let Inst{31-21} = 0b10000000000;
18628}
18629def S2_asr_i_p_acc : HInst<
18630(outs DoubleRegs:$Rxx32),
18631(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18632"$Rxx32 += asr($Rss32,#$Ii)",
18633tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18634let Inst{7-5} = 0b100;
18635let Inst{31-21} = 0b10000010000;
18636let prefersSlot3 = 1;
18637let Constraints = "$Rxx32 = $Rxx32in";
18638}
18639def S2_asr_i_p_and : HInst<
18640(outs DoubleRegs:$Rxx32),
18641(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18642"$Rxx32 &= asr($Rss32,#$Ii)",
18643tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18644let Inst{7-5} = 0b000;
18645let Inst{31-21} = 0b10000010010;
18646let prefersSlot3 = 1;
18647let Constraints = "$Rxx32 = $Rxx32in";
18648}
18649def S2_asr_i_p_nac : HInst<
18650(outs DoubleRegs:$Rxx32),
18651(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18652"$Rxx32 -= asr($Rss32,#$Ii)",
18653tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18654let Inst{7-5} = 0b000;
18655let Inst{31-21} = 0b10000010000;
18656let prefersSlot3 = 1;
18657let Constraints = "$Rxx32 = $Rxx32in";
18658}
18659def S2_asr_i_p_or : HInst<
18660(outs DoubleRegs:$Rxx32),
18661(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18662"$Rxx32 |= asr($Rss32,#$Ii)",
18663tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18664let Inst{7-5} = 0b100;
18665let Inst{31-21} = 0b10000010010;
18666let prefersSlot3 = 1;
18667let Constraints = "$Rxx32 = $Rxx32in";
18668}
18669def S2_asr_i_p_rnd : HInst<
18670(outs DoubleRegs:$Rdd32),
18671(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18672"$Rdd32 = asr($Rss32,#$Ii):rnd",
18673tc_0dfac0a7, TypeS_2op>, Enc_5eac98 {
18674let Inst{7-5} = 0b111;
18675let Inst{31-21} = 0b10000000110;
18676let prefersSlot3 = 1;
18677}
18678def S2_asr_i_p_rnd_goodsyntax : HInst<
18679(outs DoubleRegs:$Rdd32),
18680(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18681"$Rdd32 = asrrnd($Rss32,#$Ii)",
18682tc_0dfac0a7, TypeS_2op> {
18683let isPseudo = 1;
18684}
18685def S2_asr_i_r : HInst<
18686(outs IntRegs:$Rd32),
18687(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18688"$Rd32 = asr($Rs32,#$Ii)",
18689tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18690let Inst{7-5} = 0b000;
18691let Inst{13-13} = 0b0;
18692let Inst{31-21} = 0b10001100000;
18693let hasNewValue = 1;
18694let opNewValue = 0;
18695}
18696def S2_asr_i_r_acc : HInst<
18697(outs IntRegs:$Rx32),
18698(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18699"$Rx32 += asr($Rs32,#$Ii)",
18700tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18701let Inst{7-5} = 0b100;
18702let Inst{13-13} = 0b0;
18703let Inst{31-21} = 0b10001110000;
18704let hasNewValue = 1;
18705let opNewValue = 0;
18706let prefersSlot3 = 1;
18707let Constraints = "$Rx32 = $Rx32in";
18708}
18709def S2_asr_i_r_and : HInst<
18710(outs IntRegs:$Rx32),
18711(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18712"$Rx32 &= asr($Rs32,#$Ii)",
18713tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18714let Inst{7-5} = 0b000;
18715let Inst{13-13} = 0b0;
18716let Inst{31-21} = 0b10001110010;
18717let hasNewValue = 1;
18718let opNewValue = 0;
18719let prefersSlot3 = 1;
18720let Constraints = "$Rx32 = $Rx32in";
18721}
18722def S2_asr_i_r_nac : HInst<
18723(outs IntRegs:$Rx32),
18724(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18725"$Rx32 -= asr($Rs32,#$Ii)",
18726tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18727let Inst{7-5} = 0b000;
18728let Inst{13-13} = 0b0;
18729let Inst{31-21} = 0b10001110000;
18730let hasNewValue = 1;
18731let opNewValue = 0;
18732let prefersSlot3 = 1;
18733let Constraints = "$Rx32 = $Rx32in";
18734}
18735def S2_asr_i_r_or : HInst<
18736(outs IntRegs:$Rx32),
18737(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18738"$Rx32 |= asr($Rs32,#$Ii)",
18739tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18740let Inst{7-5} = 0b100;
18741let Inst{13-13} = 0b0;
18742let Inst{31-21} = 0b10001110010;
18743let hasNewValue = 1;
18744let opNewValue = 0;
18745let prefersSlot3 = 1;
18746let Constraints = "$Rx32 = $Rx32in";
18747}
18748def S2_asr_i_r_rnd : HInst<
18749(outs IntRegs:$Rd32),
18750(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18751"$Rd32 = asr($Rs32,#$Ii):rnd",
18752tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
18753let Inst{7-5} = 0b000;
18754let Inst{13-13} = 0b0;
18755let Inst{31-21} = 0b10001100010;
18756let hasNewValue = 1;
18757let opNewValue = 0;
18758let prefersSlot3 = 1;
18759}
18760def S2_asr_i_r_rnd_goodsyntax : HInst<
18761(outs IntRegs:$Rd32),
18762(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18763"$Rd32 = asrrnd($Rs32,#$Ii)",
18764tc_0dfac0a7, TypeS_2op> {
18765let hasNewValue = 1;
18766let opNewValue = 0;
18767let isPseudo = 1;
18768}
18769def S2_asr_i_svw_trun : HInst<
18770(outs IntRegs:$Rd32),
18771(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18772"$Rd32 = vasrw($Rss32,#$Ii)",
18773tc_f34c1c21, TypeS_2op>, Enc_8dec2e {
18774let Inst{7-5} = 0b010;
18775let Inst{13-13} = 0b0;
18776let Inst{31-21} = 0b10001000110;
18777let hasNewValue = 1;
18778let opNewValue = 0;
18779let prefersSlot3 = 1;
18780}
18781def S2_asr_i_vh : HInst<
18782(outs DoubleRegs:$Rdd32),
18783(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18784"$Rdd32 = vasrh($Rss32,#$Ii)",
18785tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18786let Inst{7-5} = 0b000;
18787let Inst{13-12} = 0b00;
18788let Inst{31-21} = 0b10000000100;
18789}
18790def S2_asr_i_vw : HInst<
18791(outs DoubleRegs:$Rdd32),
18792(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18793"$Rdd32 = vasrw($Rss32,#$Ii)",
18794tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18795let Inst{7-5} = 0b000;
18796let Inst{13-13} = 0b0;
18797let Inst{31-21} = 0b10000000010;
18798}
18799def S2_asr_r_p : HInst<
18800(outs DoubleRegs:$Rdd32),
18801(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18802"$Rdd32 = asr($Rss32,$Rt32)",
18803tc_5da50c4b, TypeS_3op>, Enc_927852 {
18804let Inst{7-5} = 0b000;
18805let Inst{13-13} = 0b0;
18806let Inst{31-21} = 0b11000011100;
18807}
18808def S2_asr_r_p_acc : HInst<
18809(outs DoubleRegs:$Rxx32),
18810(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18811"$Rxx32 += asr($Rss32,$Rt32)",
18812tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18813let Inst{7-5} = 0b000;
18814let Inst{13-13} = 0b0;
18815let Inst{31-21} = 0b11001011110;
18816let prefersSlot3 = 1;
18817let Constraints = "$Rxx32 = $Rxx32in";
18818}
18819def S2_asr_r_p_and : HInst<
18820(outs DoubleRegs:$Rxx32),
18821(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18822"$Rxx32 &= asr($Rss32,$Rt32)",
18823tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18824let Inst{7-5} = 0b000;
18825let Inst{13-13} = 0b0;
18826let Inst{31-21} = 0b11001011010;
18827let prefersSlot3 = 1;
18828let Constraints = "$Rxx32 = $Rxx32in";
18829}
18830def S2_asr_r_p_nac : HInst<
18831(outs DoubleRegs:$Rxx32),
18832(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18833"$Rxx32 -= asr($Rss32,$Rt32)",
18834tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18835let Inst{7-5} = 0b000;
18836let Inst{13-13} = 0b0;
18837let Inst{31-21} = 0b11001011100;
18838let prefersSlot3 = 1;
18839let Constraints = "$Rxx32 = $Rxx32in";
18840}
18841def S2_asr_r_p_or : HInst<
18842(outs DoubleRegs:$Rxx32),
18843(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18844"$Rxx32 |= asr($Rss32,$Rt32)",
18845tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18846let Inst{7-5} = 0b000;
18847let Inst{13-13} = 0b0;
18848let Inst{31-21} = 0b11001011000;
18849let prefersSlot3 = 1;
18850let Constraints = "$Rxx32 = $Rxx32in";
18851}
18852def S2_asr_r_p_xor : HInst<
18853(outs DoubleRegs:$Rxx32),
18854(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18855"$Rxx32 ^= asr($Rss32,$Rt32)",
18856tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18857let Inst{7-5} = 0b000;
18858let Inst{13-13} = 0b0;
18859let Inst{31-21} = 0b11001011011;
18860let prefersSlot3 = 1;
18861let Constraints = "$Rxx32 = $Rxx32in";
18862}
18863def S2_asr_r_r : HInst<
18864(outs IntRegs:$Rd32),
18865(ins IntRegs:$Rs32, IntRegs:$Rt32),
18866"$Rd32 = asr($Rs32,$Rt32)",
18867tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18868let Inst{7-5} = 0b000;
18869let Inst{13-13} = 0b0;
18870let Inst{31-21} = 0b11000110010;
18871let hasNewValue = 1;
18872let opNewValue = 0;
18873}
18874def S2_asr_r_r_acc : HInst<
18875(outs IntRegs:$Rx32),
18876(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18877"$Rx32 += asr($Rs32,$Rt32)",
18878tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18879let Inst{7-5} = 0b000;
18880let Inst{13-13} = 0b0;
18881let Inst{31-21} = 0b11001100110;
18882let hasNewValue = 1;
18883let opNewValue = 0;
18884let prefersSlot3 = 1;
18885let Constraints = "$Rx32 = $Rx32in";
18886}
18887def S2_asr_r_r_and : HInst<
18888(outs IntRegs:$Rx32),
18889(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18890"$Rx32 &= asr($Rs32,$Rt32)",
18891tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18892let Inst{7-5} = 0b000;
18893let Inst{13-13} = 0b0;
18894let Inst{31-21} = 0b11001100010;
18895let hasNewValue = 1;
18896let opNewValue = 0;
18897let prefersSlot3 = 1;
18898let Constraints = "$Rx32 = $Rx32in";
18899}
18900def S2_asr_r_r_nac : HInst<
18901(outs IntRegs:$Rx32),
18902(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18903"$Rx32 -= asr($Rs32,$Rt32)",
18904tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18905let Inst{7-5} = 0b000;
18906let Inst{13-13} = 0b0;
18907let Inst{31-21} = 0b11001100100;
18908let hasNewValue = 1;
18909let opNewValue = 0;
18910let prefersSlot3 = 1;
18911let Constraints = "$Rx32 = $Rx32in";
18912}
18913def S2_asr_r_r_or : HInst<
18914(outs IntRegs:$Rx32),
18915(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18916"$Rx32 |= asr($Rs32,$Rt32)",
18917tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18918let Inst{7-5} = 0b000;
18919let Inst{13-13} = 0b0;
18920let Inst{31-21} = 0b11001100000;
18921let hasNewValue = 1;
18922let opNewValue = 0;
18923let prefersSlot3 = 1;
18924let Constraints = "$Rx32 = $Rx32in";
18925}
18926def S2_asr_r_r_sat : HInst<
18927(outs IntRegs:$Rd32),
18928(ins IntRegs:$Rs32, IntRegs:$Rt32),
18929"$Rd32 = asr($Rs32,$Rt32):sat",
18930tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18931let Inst{7-5} = 0b000;
18932let Inst{13-13} = 0b0;
18933let Inst{31-21} = 0b11000110000;
18934let hasNewValue = 1;
18935let opNewValue = 0;
18936let prefersSlot3 = 1;
18937let Defs = [USR_OVF];
18938}
18939def S2_asr_r_svw_trun : HInst<
18940(outs IntRegs:$Rd32),
18941(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18942"$Rd32 = vasrw($Rss32,$Rt32)",
18943tc_f34c1c21, TypeS_3op>, Enc_3d5b28 {
18944let Inst{7-5} = 0b010;
18945let Inst{13-13} = 0b0;
18946let Inst{31-21} = 0b11000101000;
18947let hasNewValue = 1;
18948let opNewValue = 0;
18949let prefersSlot3 = 1;
18950}
18951def S2_asr_r_vh : HInst<
18952(outs DoubleRegs:$Rdd32),
18953(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18954"$Rdd32 = vasrh($Rss32,$Rt32)",
18955tc_5da50c4b, TypeS_3op>, Enc_927852 {
18956let Inst{7-5} = 0b000;
18957let Inst{13-13} = 0b0;
18958let Inst{31-21} = 0b11000011010;
18959}
18960def S2_asr_r_vw : HInst<
18961(outs DoubleRegs:$Rdd32),
18962(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18963"$Rdd32 = vasrw($Rss32,$Rt32)",
18964tc_5da50c4b, TypeS_3op>, Enc_927852 {
18965let Inst{7-5} = 0b000;
18966let Inst{13-13} = 0b0;
18967let Inst{31-21} = 0b11000011000;
18968}
18969def S2_brev : HInst<
18970(outs IntRegs:$Rd32),
18971(ins IntRegs:$Rs32),
18972"$Rd32 = brev($Rs32)",
18973tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18974let Inst{13-5} = 0b000000110;
18975let Inst{31-21} = 0b10001100010;
18976let hasNewValue = 1;
18977let opNewValue = 0;
18978let prefersSlot3 = 1;
18979}
18980def S2_brevp : HInst<
18981(outs DoubleRegs:$Rdd32),
18982(ins DoubleRegs:$Rss32),
18983"$Rdd32 = brev($Rss32)",
18984tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
18985let Inst{13-5} = 0b000000110;
18986let Inst{31-21} = 0b10000000110;
18987let prefersSlot3 = 1;
18988}
18989def S2_cabacdecbin : HInst<
18990(outs DoubleRegs:$Rdd32),
18991(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18992"$Rdd32 = decbin($Rss32,$Rtt32)",
18993tc_db596beb, TypeS_3op>, Enc_a56825, Requires<[UseCabac]> {
18994let Inst{7-5} = 0b110;
18995let Inst{13-13} = 0b0;
18996let Inst{31-21} = 0b11000001110;
18997let isPredicateLate = 1;
18998let prefersSlot3 = 1;
18999let Defs = [P0];
19000}
19001def S2_cl0 : HInst<
19002(outs IntRegs:$Rd32),
19003(ins IntRegs:$Rs32),
19004"$Rd32 = cl0($Rs32)",
19005tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19006let Inst{13-5} = 0b000000101;
19007let Inst{31-21} = 0b10001100000;
19008let hasNewValue = 1;
19009let opNewValue = 0;
19010let prefersSlot3 = 1;
19011}
19012def S2_cl0p : HInst<
19013(outs IntRegs:$Rd32),
19014(ins DoubleRegs:$Rss32),
19015"$Rd32 = cl0($Rss32)",
19016tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19017let Inst{13-5} = 0b000000010;
19018let Inst{31-21} = 0b10001000010;
19019let hasNewValue = 1;
19020let opNewValue = 0;
19021let prefersSlot3 = 1;
19022}
19023def S2_cl1 : HInst<
19024(outs IntRegs:$Rd32),
19025(ins IntRegs:$Rs32),
19026"$Rd32 = cl1($Rs32)",
19027tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19028let Inst{13-5} = 0b000000110;
19029let Inst{31-21} = 0b10001100000;
19030let hasNewValue = 1;
19031let opNewValue = 0;
19032let prefersSlot3 = 1;
19033}
19034def S2_cl1p : HInst<
19035(outs IntRegs:$Rd32),
19036(ins DoubleRegs:$Rss32),
19037"$Rd32 = cl1($Rss32)",
19038tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19039let Inst{13-5} = 0b000000100;
19040let Inst{31-21} = 0b10001000010;
19041let hasNewValue = 1;
19042let opNewValue = 0;
19043let prefersSlot3 = 1;
19044}
19045def S2_clb : HInst<
19046(outs IntRegs:$Rd32),
19047(ins IntRegs:$Rs32),
19048"$Rd32 = clb($Rs32)",
19049tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19050let Inst{13-5} = 0b000000100;
19051let Inst{31-21} = 0b10001100000;
19052let hasNewValue = 1;
19053let opNewValue = 0;
19054let prefersSlot3 = 1;
19055}
19056def S2_clbnorm : HInst<
19057(outs IntRegs:$Rd32),
19058(ins IntRegs:$Rs32),
19059"$Rd32 = normamt($Rs32)",
19060tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19061let Inst{13-5} = 0b000000111;
19062let Inst{31-21} = 0b10001100000;
19063let hasNewValue = 1;
19064let opNewValue = 0;
19065let prefersSlot3 = 1;
19066}
19067def S2_clbp : HInst<
19068(outs IntRegs:$Rd32),
19069(ins DoubleRegs:$Rss32),
19070"$Rd32 = clb($Rss32)",
19071tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19072let Inst{13-5} = 0b000000000;
19073let Inst{31-21} = 0b10001000010;
19074let hasNewValue = 1;
19075let opNewValue = 0;
19076let prefersSlot3 = 1;
19077}
19078def S2_clrbit_i : HInst<
19079(outs IntRegs:$Rd32),
19080(ins IntRegs:$Rs32, u5_0Imm:$Ii),
19081"$Rd32 = clrbit($Rs32,#$Ii)",
19082tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19083let Inst{7-5} = 0b001;
19084let Inst{13-13} = 0b0;
19085let Inst{31-21} = 0b10001100110;
19086let hasNewValue = 1;
19087let opNewValue = 0;
19088}
19089def S2_clrbit_r : HInst<
19090(outs IntRegs:$Rd32),
19091(ins IntRegs:$Rs32, IntRegs:$Rt32),
19092"$Rd32 = clrbit($Rs32,$Rt32)",
19093tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19094let Inst{7-5} = 0b010;
19095let Inst{13-13} = 0b0;
19096let Inst{31-21} = 0b11000110100;
19097let hasNewValue = 1;
19098let opNewValue = 0;
19099}
19100def S2_ct0 : HInst<
19101(outs IntRegs:$Rd32),
19102(ins IntRegs:$Rs32),
19103"$Rd32 = ct0($Rs32)",
19104tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19105let Inst{13-5} = 0b000000100;
19106let Inst{31-21} = 0b10001100010;
19107let hasNewValue = 1;
19108let opNewValue = 0;
19109let prefersSlot3 = 1;
19110}
19111def S2_ct0p : HInst<
19112(outs IntRegs:$Rd32),
19113(ins DoubleRegs:$Rss32),
19114"$Rd32 = ct0($Rss32)",
19115tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19116let Inst{13-5} = 0b000000010;
19117let Inst{31-21} = 0b10001000111;
19118let hasNewValue = 1;
19119let opNewValue = 0;
19120let prefersSlot3 = 1;
19121}
19122def S2_ct1 : HInst<
19123(outs IntRegs:$Rd32),
19124(ins IntRegs:$Rs32),
19125"$Rd32 = ct1($Rs32)",
19126tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19127let Inst{13-5} = 0b000000101;
19128let Inst{31-21} = 0b10001100010;
19129let hasNewValue = 1;
19130let opNewValue = 0;
19131let prefersSlot3 = 1;
19132}
19133def S2_ct1p : HInst<
19134(outs IntRegs:$Rd32),
19135(ins DoubleRegs:$Rss32),
19136"$Rd32 = ct1($Rss32)",
19137tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19138let Inst{13-5} = 0b000000100;
19139let Inst{31-21} = 0b10001000111;
19140let hasNewValue = 1;
19141let opNewValue = 0;
19142let prefersSlot3 = 1;
19143}
19144def S2_deinterleave : HInst<
19145(outs DoubleRegs:$Rdd32),
19146(ins DoubleRegs:$Rss32),
19147"$Rdd32 = deinterleave($Rss32)",
19148tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19149let Inst{13-5} = 0b000000100;
19150let Inst{31-21} = 0b10000000110;
19151let prefersSlot3 = 1;
19152}
19153def S2_extractu : HInst<
19154(outs IntRegs:$Rd32),
19155(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19156"$Rd32 = extractu($Rs32,#$Ii,#$II)",
19157tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
19158let Inst{13-13} = 0b0;
19159let Inst{31-23} = 0b100011010;
19160let hasNewValue = 1;
19161let opNewValue = 0;
19162let prefersSlot3 = 1;
19163}
19164def S2_extractu_rp : HInst<
19165(outs IntRegs:$Rd32),
19166(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
19167"$Rd32 = extractu($Rs32,$Rtt32)",
19168tc_a08b630b, TypeS_3op>, Enc_e07374 {
19169let Inst{7-5} = 0b000;
19170let Inst{13-13} = 0b0;
19171let Inst{31-21} = 0b11001001000;
19172let hasNewValue = 1;
19173let opNewValue = 0;
19174let prefersSlot3 = 1;
19175}
19176def S2_extractup : HInst<
19177(outs DoubleRegs:$Rdd32),
19178(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19179"$Rdd32 = extractu($Rss32,#$Ii,#$II)",
19180tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
19181let Inst{31-24} = 0b10000001;
19182let prefersSlot3 = 1;
19183}
19184def S2_extractup_rp : HInst<
19185(outs DoubleRegs:$Rdd32),
19186(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19187"$Rdd32 = extractu($Rss32,$Rtt32)",
19188tc_a08b630b, TypeS_3op>, Enc_a56825 {
19189let Inst{7-5} = 0b000;
19190let Inst{13-13} = 0b0;
19191let Inst{31-21} = 0b11000001000;
19192let prefersSlot3 = 1;
19193}
19194def S2_insert : HInst<
19195(outs IntRegs:$Rx32),
19196(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19197"$Rx32 = insert($Rs32,#$Ii,#$II)",
19198tc_bb831a7c, TypeS_2op>, Enc_a1e29d {
19199let Inst{13-13} = 0b0;
19200let Inst{31-23} = 0b100011110;
19201let hasNewValue = 1;
19202let opNewValue = 0;
19203let prefersSlot3 = 1;
19204let Constraints = "$Rx32 = $Rx32in";
19205}
19206def S2_insert_rp : HInst<
19207(outs IntRegs:$Rx32),
19208(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19209"$Rx32 = insert($Rs32,$Rtt32)",
19210tc_a4e22bbd, TypeS_3op>, Enc_179b35 {
19211let Inst{7-5} = 0b000;
19212let Inst{13-13} = 0b0;
19213let Inst{31-21} = 0b11001000000;
19214let hasNewValue = 1;
19215let opNewValue = 0;
19216let prefersSlot3 = 1;
19217let Constraints = "$Rx32 = $Rx32in";
19218}
19219def S2_insertp : HInst<
19220(outs DoubleRegs:$Rxx32),
19221(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19222"$Rxx32 = insert($Rss32,#$Ii,#$II)",
19223tc_bb831a7c, TypeS_2op>, Enc_143a3c {
19224let Inst{31-24} = 0b10000011;
19225let prefersSlot3 = 1;
19226let Constraints = "$Rxx32 = $Rxx32in";
19227}
19228def S2_insertp_rp : HInst<
19229(outs DoubleRegs:$Rxx32),
19230(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19231"$Rxx32 = insert($Rss32,$Rtt32)",
19232tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
19233let Inst{7-5} = 0b000;
19234let Inst{13-13} = 0b0;
19235let Inst{31-21} = 0b11001010000;
19236let prefersSlot3 = 1;
19237let Constraints = "$Rxx32 = $Rxx32in";
19238}
19239def S2_interleave : HInst<
19240(outs DoubleRegs:$Rdd32),
19241(ins DoubleRegs:$Rss32),
19242"$Rdd32 = interleave($Rss32)",
19243tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19244let Inst{13-5} = 0b000000101;
19245let Inst{31-21} = 0b10000000110;
19246let prefersSlot3 = 1;
19247}
19248def S2_lfsp : HInst<
19249(outs DoubleRegs:$Rdd32),
19250(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19251"$Rdd32 = lfs($Rss32,$Rtt32)",
19252tc_a08b630b, TypeS_3op>, Enc_a56825 {
19253let Inst{7-5} = 0b110;
19254let Inst{13-13} = 0b0;
19255let Inst{31-21} = 0b11000001100;
19256let prefersSlot3 = 1;
19257}
19258def S2_lsl_r_p : HInst<
19259(outs DoubleRegs:$Rdd32),
19260(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19261"$Rdd32 = lsl($Rss32,$Rt32)",
19262tc_5da50c4b, TypeS_3op>, Enc_927852 {
19263let Inst{7-5} = 0b110;
19264let Inst{13-13} = 0b0;
19265let Inst{31-21} = 0b11000011100;
19266}
19267def S2_lsl_r_p_acc : HInst<
19268(outs DoubleRegs:$Rxx32),
19269(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19270"$Rxx32 += lsl($Rss32,$Rt32)",
19271tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19272let Inst{7-5} = 0b110;
19273let Inst{13-13} = 0b0;
19274let Inst{31-21} = 0b11001011110;
19275let prefersSlot3 = 1;
19276let Constraints = "$Rxx32 = $Rxx32in";
19277}
19278def S2_lsl_r_p_and : HInst<
19279(outs DoubleRegs:$Rxx32),
19280(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19281"$Rxx32 &= lsl($Rss32,$Rt32)",
19282tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19283let Inst{7-5} = 0b110;
19284let Inst{13-13} = 0b0;
19285let Inst{31-21} = 0b11001011010;
19286let prefersSlot3 = 1;
19287let Constraints = "$Rxx32 = $Rxx32in";
19288}
19289def S2_lsl_r_p_nac : HInst<
19290(outs DoubleRegs:$Rxx32),
19291(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19292"$Rxx32 -= lsl($Rss32,$Rt32)",
19293tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19294let Inst{7-5} = 0b110;
19295let Inst{13-13} = 0b0;
19296let Inst{31-21} = 0b11001011100;
19297let prefersSlot3 = 1;
19298let Constraints = "$Rxx32 = $Rxx32in";
19299}
19300def S2_lsl_r_p_or : HInst<
19301(outs DoubleRegs:$Rxx32),
19302(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19303"$Rxx32 |= lsl($Rss32,$Rt32)",
19304tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19305let Inst{7-5} = 0b110;
19306let Inst{13-13} = 0b0;
19307let Inst{31-21} = 0b11001011000;
19308let prefersSlot3 = 1;
19309let Constraints = "$Rxx32 = $Rxx32in";
19310}
19311def S2_lsl_r_p_xor : HInst<
19312(outs DoubleRegs:$Rxx32),
19313(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19314"$Rxx32 ^= lsl($Rss32,$Rt32)",
19315tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19316let Inst{7-5} = 0b110;
19317let Inst{13-13} = 0b0;
19318let Inst{31-21} = 0b11001011011;
19319let prefersSlot3 = 1;
19320let Constraints = "$Rxx32 = $Rxx32in";
19321}
19322def S2_lsl_r_r : HInst<
19323(outs IntRegs:$Rd32),
19324(ins IntRegs:$Rs32, IntRegs:$Rt32),
19325"$Rd32 = lsl($Rs32,$Rt32)",
19326tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19327let Inst{7-5} = 0b110;
19328let Inst{13-13} = 0b0;
19329let Inst{31-21} = 0b11000110010;
19330let hasNewValue = 1;
19331let opNewValue = 0;
19332}
19333def S2_lsl_r_r_acc : HInst<
19334(outs IntRegs:$Rx32),
19335(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19336"$Rx32 += lsl($Rs32,$Rt32)",
19337tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19338let Inst{7-5} = 0b110;
19339let Inst{13-13} = 0b0;
19340let Inst{31-21} = 0b11001100110;
19341let hasNewValue = 1;
19342let opNewValue = 0;
19343let prefersSlot3 = 1;
19344let Constraints = "$Rx32 = $Rx32in";
19345}
19346def S2_lsl_r_r_and : HInst<
19347(outs IntRegs:$Rx32),
19348(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19349"$Rx32 &= lsl($Rs32,$Rt32)",
19350tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19351let Inst{7-5} = 0b110;
19352let Inst{13-13} = 0b0;
19353let Inst{31-21} = 0b11001100010;
19354let hasNewValue = 1;
19355let opNewValue = 0;
19356let prefersSlot3 = 1;
19357let Constraints = "$Rx32 = $Rx32in";
19358}
19359def S2_lsl_r_r_nac : HInst<
19360(outs IntRegs:$Rx32),
19361(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19362"$Rx32 -= lsl($Rs32,$Rt32)",
19363tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19364let Inst{7-5} = 0b110;
19365let Inst{13-13} = 0b0;
19366let Inst{31-21} = 0b11001100100;
19367let hasNewValue = 1;
19368let opNewValue = 0;
19369let prefersSlot3 = 1;
19370let Constraints = "$Rx32 = $Rx32in";
19371}
19372def S2_lsl_r_r_or : HInst<
19373(outs IntRegs:$Rx32),
19374(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19375"$Rx32 |= lsl($Rs32,$Rt32)",
19376tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19377let Inst{7-5} = 0b110;
19378let Inst{13-13} = 0b0;
19379let Inst{31-21} = 0b11001100000;
19380let hasNewValue = 1;
19381let opNewValue = 0;
19382let prefersSlot3 = 1;
19383let Constraints = "$Rx32 = $Rx32in";
19384}
19385def S2_lsl_r_vh : HInst<
19386(outs DoubleRegs:$Rdd32),
19387(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19388"$Rdd32 = vlslh($Rss32,$Rt32)",
19389tc_5da50c4b, TypeS_3op>, Enc_927852 {
19390let Inst{7-5} = 0b110;
19391let Inst{13-13} = 0b0;
19392let Inst{31-21} = 0b11000011010;
19393}
19394def S2_lsl_r_vw : HInst<
19395(outs DoubleRegs:$Rdd32),
19396(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19397"$Rdd32 = vlslw($Rss32,$Rt32)",
19398tc_5da50c4b, TypeS_3op>, Enc_927852 {
19399let Inst{7-5} = 0b110;
19400let Inst{13-13} = 0b0;
19401let Inst{31-21} = 0b11000011000;
19402}
19403def S2_lsr_i_p : HInst<
19404(outs DoubleRegs:$Rdd32),
19405(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19406"$Rdd32 = lsr($Rss32,#$Ii)",
19407tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
19408let Inst{7-5} = 0b001;
19409let Inst{31-21} = 0b10000000000;
19410}
19411def S2_lsr_i_p_acc : HInst<
19412(outs DoubleRegs:$Rxx32),
19413(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19414"$Rxx32 += lsr($Rss32,#$Ii)",
19415tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19416let Inst{7-5} = 0b101;
19417let Inst{31-21} = 0b10000010000;
19418let prefersSlot3 = 1;
19419let Constraints = "$Rxx32 = $Rxx32in";
19420}
19421def S2_lsr_i_p_and : HInst<
19422(outs DoubleRegs:$Rxx32),
19423(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19424"$Rxx32 &= lsr($Rss32,#$Ii)",
19425tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19426let Inst{7-5} = 0b001;
19427let Inst{31-21} = 0b10000010010;
19428let prefersSlot3 = 1;
19429let Constraints = "$Rxx32 = $Rxx32in";
19430}
19431def S2_lsr_i_p_nac : HInst<
19432(outs DoubleRegs:$Rxx32),
19433(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19434"$Rxx32 -= lsr($Rss32,#$Ii)",
19435tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19436let Inst{7-5} = 0b001;
19437let Inst{31-21} = 0b10000010000;
19438let prefersSlot3 = 1;
19439let Constraints = "$Rxx32 = $Rxx32in";
19440}
19441def S2_lsr_i_p_or : HInst<
19442(outs DoubleRegs:$Rxx32),
19443(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19444"$Rxx32 |= lsr($Rss32,#$Ii)",
19445tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19446let Inst{7-5} = 0b101;
19447let Inst{31-21} = 0b10000010010;
19448let prefersSlot3 = 1;
19449let Constraints = "$Rxx32 = $Rxx32in";
19450}
19451def S2_lsr_i_p_xacc : HInst<
19452(outs DoubleRegs:$Rxx32),
19453(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19454"$Rxx32 ^= lsr($Rss32,#$Ii)",
19455tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19456let Inst{7-5} = 0b001;
19457let Inst{31-21} = 0b10000010100;
19458let prefersSlot3 = 1;
19459let Constraints = "$Rxx32 = $Rxx32in";
19460}
19461def S2_lsr_i_r : HInst<
19462(outs IntRegs:$Rd32),
19463(ins IntRegs:$Rs32, u5_0Imm:$Ii),
19464"$Rd32 = lsr($Rs32,#$Ii)",
19465tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19466let Inst{7-5} = 0b001;
19467let Inst{13-13} = 0b0;
19468let Inst{31-21} = 0b10001100000;
19469let hasNewValue = 1;
19470let opNewValue = 0;
19471}
19472def S2_lsr_i_r_acc : HInst<
19473(outs IntRegs:$Rx32),
19474(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19475"$Rx32 += lsr($Rs32,#$Ii)",
19476tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19477let Inst{7-5} = 0b101;
19478let Inst{13-13} = 0b0;
19479let Inst{31-21} = 0b10001110000;
19480let hasNewValue = 1;
19481let opNewValue = 0;
19482let prefersSlot3 = 1;
19483let Constraints = "$Rx32 = $Rx32in";
19484}
19485def S2_lsr_i_r_and : HInst<
19486(outs IntRegs:$Rx32),
19487(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19488"$Rx32 &= lsr($Rs32,#$Ii)",
19489tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19490let Inst{7-5} = 0b001;
19491let Inst{13-13} = 0b0;
19492let Inst{31-21} = 0b10001110010;
19493let hasNewValue = 1;
19494let opNewValue = 0;
19495let prefersSlot3 = 1;
19496let Constraints = "$Rx32 = $Rx32in";
19497}
19498def S2_lsr_i_r_nac : HInst<
19499(outs IntRegs:$Rx32),
19500(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19501"$Rx32 -= lsr($Rs32,#$Ii)",
19502tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19503let Inst{7-5} = 0b001;
19504let Inst{13-13} = 0b0;
19505let Inst{31-21} = 0b10001110000;
19506let hasNewValue = 1;
19507let opNewValue = 0;
19508let prefersSlot3 = 1;
19509let Constraints = "$Rx32 = $Rx32in";
19510}
19511def S2_lsr_i_r_or : HInst<
19512(outs IntRegs:$Rx32),
19513(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19514"$Rx32 |= lsr($Rs32,#$Ii)",
19515tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19516let Inst{7-5} = 0b101;
19517let Inst{13-13} = 0b0;
19518let Inst{31-21} = 0b10001110010;
19519let hasNewValue = 1;
19520let opNewValue = 0;
19521let prefersSlot3 = 1;
19522let Constraints = "$Rx32 = $Rx32in";
19523}
19524def S2_lsr_i_r_xacc : HInst<
19525(outs IntRegs:$Rx32),
19526(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19527"$Rx32 ^= lsr($Rs32,#$Ii)",
19528tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19529let Inst{7-5} = 0b001;
19530let Inst{13-13} = 0b0;
19531let Inst{31-21} = 0b10001110100;
19532let hasNewValue = 1;
19533let opNewValue = 0;
19534let prefersSlot3 = 1;
19535let Constraints = "$Rx32 = $Rx32in";
19536}
19537def S2_lsr_i_vh : HInst<
19538(outs DoubleRegs:$Rdd32),
19539(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19540"$Rdd32 = vlsrh($Rss32,#$Ii)",
19541tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
19542let Inst{7-5} = 0b001;
19543let Inst{13-12} = 0b00;
19544let Inst{31-21} = 0b10000000100;
19545}
19546def S2_lsr_i_vw : HInst<
19547(outs DoubleRegs:$Rdd32),
19548(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19549"$Rdd32 = vlsrw($Rss32,#$Ii)",
19550tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
19551let Inst{7-5} = 0b001;
19552let Inst{13-13} = 0b0;
19553let Inst{31-21} = 0b10000000010;
19554}
19555def S2_lsr_r_p : HInst<
19556(outs DoubleRegs:$Rdd32),
19557(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19558"$Rdd32 = lsr($Rss32,$Rt32)",
19559tc_5da50c4b, TypeS_3op>, Enc_927852 {
19560let Inst{7-5} = 0b010;
19561let Inst{13-13} = 0b0;
19562let Inst{31-21} = 0b11000011100;
19563}
19564def S2_lsr_r_p_acc : HInst<
19565(outs DoubleRegs:$Rxx32),
19566(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19567"$Rxx32 += lsr($Rss32,$Rt32)",
19568tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19569let Inst{7-5} = 0b010;
19570let Inst{13-13} = 0b0;
19571let Inst{31-21} = 0b11001011110;
19572let prefersSlot3 = 1;
19573let Constraints = "$Rxx32 = $Rxx32in";
19574}
19575def S2_lsr_r_p_and : HInst<
19576(outs DoubleRegs:$Rxx32),
19577(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19578"$Rxx32 &= lsr($Rss32,$Rt32)",
19579tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19580let Inst{7-5} = 0b010;
19581let Inst{13-13} = 0b0;
19582let Inst{31-21} = 0b11001011010;
19583let prefersSlot3 = 1;
19584let Constraints = "$Rxx32 = $Rxx32in";
19585}
19586def S2_lsr_r_p_nac : HInst<
19587(outs DoubleRegs:$Rxx32),
19588(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19589"$Rxx32 -= lsr($Rss32,$Rt32)",
19590tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19591let Inst{7-5} = 0b010;
19592let Inst{13-13} = 0b0;
19593let Inst{31-21} = 0b11001011100;
19594let prefersSlot3 = 1;
19595let Constraints = "$Rxx32 = $Rxx32in";
19596}
19597def S2_lsr_r_p_or : HInst<
19598(outs DoubleRegs:$Rxx32),
19599(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19600"$Rxx32 |= lsr($Rss32,$Rt32)",
19601tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19602let Inst{7-5} = 0b010;
19603let Inst{13-13} = 0b0;
19604let Inst{31-21} = 0b11001011000;
19605let prefersSlot3 = 1;
19606let Constraints = "$Rxx32 = $Rxx32in";
19607}
19608def S2_lsr_r_p_xor : HInst<
19609(outs DoubleRegs:$Rxx32),
19610(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19611"$Rxx32 ^= lsr($Rss32,$Rt32)",
19612tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19613let Inst{7-5} = 0b010;
19614let Inst{13-13} = 0b0;
19615let Inst{31-21} = 0b11001011011;
19616let prefersSlot3 = 1;
19617let Constraints = "$Rxx32 = $Rxx32in";
19618}
19619def S2_lsr_r_r : HInst<
19620(outs IntRegs:$Rd32),
19621(ins IntRegs:$Rs32, IntRegs:$Rt32),
19622"$Rd32 = lsr($Rs32,$Rt32)",
19623tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19624let Inst{7-5} = 0b010;
19625let Inst{13-13} = 0b0;
19626let Inst{31-21} = 0b11000110010;
19627let hasNewValue = 1;
19628let opNewValue = 0;
19629}
19630def S2_lsr_r_r_acc : HInst<
19631(outs IntRegs:$Rx32),
19632(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19633"$Rx32 += lsr($Rs32,$Rt32)",
19634tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19635let Inst{7-5} = 0b010;
19636let Inst{13-13} = 0b0;
19637let Inst{31-21} = 0b11001100110;
19638let hasNewValue = 1;
19639let opNewValue = 0;
19640let prefersSlot3 = 1;
19641let Constraints = "$Rx32 = $Rx32in";
19642}
19643def S2_lsr_r_r_and : HInst<
19644(outs IntRegs:$Rx32),
19645(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19646"$Rx32 &= lsr($Rs32,$Rt32)",
19647tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19648let Inst{7-5} = 0b010;
19649let Inst{13-13} = 0b0;
19650let Inst{31-21} = 0b11001100010;
19651let hasNewValue = 1;
19652let opNewValue = 0;
19653let prefersSlot3 = 1;
19654let Constraints = "$Rx32 = $Rx32in";
19655}
19656def S2_lsr_r_r_nac : HInst<
19657(outs IntRegs:$Rx32),
19658(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19659"$Rx32 -= lsr($Rs32,$Rt32)",
19660tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19661let Inst{7-5} = 0b010;
19662let Inst{13-13} = 0b0;
19663let Inst{31-21} = 0b11001100100;
19664let hasNewValue = 1;
19665let opNewValue = 0;
19666let prefersSlot3 = 1;
19667let Constraints = "$Rx32 = $Rx32in";
19668}
19669def S2_lsr_r_r_or : HInst<
19670(outs IntRegs:$Rx32),
19671(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19672"$Rx32 |= lsr($Rs32,$Rt32)",
19673tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19674let Inst{7-5} = 0b010;
19675let Inst{13-13} = 0b0;
19676let Inst{31-21} = 0b11001100000;
19677let hasNewValue = 1;
19678let opNewValue = 0;
19679let prefersSlot3 = 1;
19680let Constraints = "$Rx32 = $Rx32in";
19681}
19682def S2_lsr_r_vh : HInst<
19683(outs DoubleRegs:$Rdd32),
19684(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19685"$Rdd32 = vlsrh($Rss32,$Rt32)",
19686tc_5da50c4b, TypeS_3op>, Enc_927852 {
19687let Inst{7-5} = 0b010;
19688let Inst{13-13} = 0b0;
19689let Inst{31-21} = 0b11000011010;
19690}
19691def S2_lsr_r_vw : HInst<
19692(outs DoubleRegs:$Rdd32),
19693(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19694"$Rdd32 = vlsrw($Rss32,$Rt32)",
19695tc_5da50c4b, TypeS_3op>, Enc_927852 {
19696let Inst{7-5} = 0b010;
19697let Inst{13-13} = 0b0;
19698let Inst{31-21} = 0b11000011000;
19699}
19700def S2_mask : HInst<
19701(outs IntRegs:$Rd32),
19702(ins u5_0Imm:$Ii, u5_0Imm:$II),
19703"$Rd32 = mask(#$Ii,#$II)",
19704tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19705let Inst{13-13} = 0b1;
19706let Inst{20-16} = 0b00000;
19707let Inst{31-23} = 0b100011010;
19708let hasNewValue = 1;
19709let opNewValue = 0;
19710let prefersSlot3 = 1;
19711}
19712def S2_packhl : HInst<
19713(outs DoubleRegs:$Rdd32),
19714(ins IntRegs:$Rs32, IntRegs:$Rt32),
19715"$Rdd32 = packhl($Rs32,$Rt32)",
19716tc_713b66bf, TypeALU32_3op>, Enc_be32a5 {
19717let Inst{7-5} = 0b000;
19718let Inst{13-13} = 0b0;
19719let Inst{31-21} = 0b11110101100;
19720let InputType = "reg";
19721}
19722def S2_parityp : HInst<
19723(outs IntRegs:$Rd32),
19724(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19725"$Rd32 = parity($Rss32,$Rtt32)",
19726tc_a08b630b, TypeALU64>, Enc_d2216a {
19727let Inst{7-5} = 0b000;
19728let Inst{13-13} = 0b0;
19729let Inst{31-21} = 0b11010000000;
19730let hasNewValue = 1;
19731let opNewValue = 0;
19732let prefersSlot3 = 1;
19733}
19734def S2_pstorerbf_io : HInst<
19735(outs),
19736(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19737"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19738tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19739let Inst{2-2} = 0b0;
19740let Inst{31-21} = 0b01000100000;
19741let isPredicated = 1;
19742let isPredicatedFalse = 1;
19743let addrMode = BaseImmOffset;
19744let accessSize = ByteAccess;
19745let mayStore = 1;
19746let BaseOpcode = "S2_storerb_io";
19747let CextOpcode = "S2_storerb";
19748let InputType = "imm";
19749let isNVStorable = 1;
19750let isExtendable = 1;
19751let opExtendable = 2;
19752let isExtentSigned = 0;
19753let opExtentBits = 6;
19754let opExtentAlign = 0;
19755}
19756def S2_pstorerbf_pi : HInst<
19757(outs IntRegs:$Rx32),
19758(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19759"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19760tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19761let Inst{2-2} = 0b1;
19762let Inst{7-7} = 0b0;
19763let Inst{13-13} = 0b1;
19764let Inst{31-21} = 0b10101011000;
19765let isPredicated = 1;
19766let isPredicatedFalse = 1;
19767let addrMode = PostInc;
19768let accessSize = ByteAccess;
19769let mayStore = 1;
19770let BaseOpcode = "S2_storerb_pi";
19771let isNVStorable = 1;
19772let Constraints = "$Rx32 = $Rx32in";
19773}
19774def S2_pstorerbf_zomap : HInst<
19775(outs),
19776(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19777"if (!$Pv4) memb($Rs32) = $Rt32",
19778tc_8035e91f, TypeMAPPING> {
19779let isPseudo = 1;
19780let isCodeGenOnly = 1;
19781}
19782def S2_pstorerbfnew_pi : HInst<
19783(outs IntRegs:$Rx32),
19784(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19785"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19786tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19787let Inst{2-2} = 0b1;
19788let Inst{7-7} = 0b1;
19789let Inst{13-13} = 0b1;
19790let Inst{31-21} = 0b10101011000;
19791let isPredicated = 1;
19792let isPredicatedFalse = 1;
19793let addrMode = PostInc;
19794let accessSize = ByteAccess;
19795let isPredicatedNew = 1;
19796let mayStore = 1;
19797let BaseOpcode = "S2_storerb_pi";
19798let isNVStorable = 1;
19799let Constraints = "$Rx32 = $Rx32in";
19800}
19801def S2_pstorerbnewf_io : HInst<
19802(outs),
19803(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19804"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19805tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19806let Inst{2-2} = 0b0;
19807let Inst{12-11} = 0b00;
19808let Inst{31-21} = 0b01000100101;
19809let isPredicated = 1;
19810let isPredicatedFalse = 1;
19811let addrMode = BaseImmOffset;
19812let accessSize = ByteAccess;
19813let isNVStore = 1;
19814let isNewValue = 1;
19815let isRestrictNoSlot1Store = 1;
19816let mayStore = 1;
19817let BaseOpcode = "S2_storerb_io";
19818let CextOpcode = "S2_storerb";
19819let InputType = "imm";
19820let isExtendable = 1;
19821let opExtendable = 2;
19822let isExtentSigned = 0;
19823let opExtentBits = 6;
19824let opExtentAlign = 0;
19825let opNewValue = 3;
19826}
19827def S2_pstorerbnewf_pi : HInst<
19828(outs IntRegs:$Rx32),
19829(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19830"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19831tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19832let Inst{2-2} = 0b1;
19833let Inst{7-7} = 0b0;
19834let Inst{13-11} = 0b100;
19835let Inst{31-21} = 0b10101011101;
19836let isPredicated = 1;
19837let isPredicatedFalse = 1;
19838let addrMode = PostInc;
19839let accessSize = ByteAccess;
19840let isNVStore = 1;
19841let isNewValue = 1;
19842let isRestrictNoSlot1Store = 1;
19843let mayStore = 1;
19844let BaseOpcode = "S2_storerb_pi";
19845let CextOpcode = "S2_storerb";
19846let opNewValue = 4;
19847let Constraints = "$Rx32 = $Rx32in";
19848}
19849def S2_pstorerbnewf_zomap : HInst<
19850(outs),
19851(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19852"if (!$Pv4) memb($Rs32) = $Nt8.new",
19853tc_011e0e9d, TypeMAPPING> {
19854let isPseudo = 1;
19855let isCodeGenOnly = 1;
19856let opNewValue = 2;
19857}
19858def S2_pstorerbnewfnew_pi : HInst<
19859(outs IntRegs:$Rx32),
19860(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19861"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19862tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19863let Inst{2-2} = 0b1;
19864let Inst{7-7} = 0b1;
19865let Inst{13-11} = 0b100;
19866let Inst{31-21} = 0b10101011101;
19867let isPredicated = 1;
19868let isPredicatedFalse = 1;
19869let addrMode = PostInc;
19870let accessSize = ByteAccess;
19871let isNVStore = 1;
19872let isPredicatedNew = 1;
19873let isNewValue = 1;
19874let isRestrictNoSlot1Store = 1;
19875let mayStore = 1;
19876let BaseOpcode = "S2_storerb_pi";
19877let CextOpcode = "S2_storerb";
19878let opNewValue = 4;
19879let Constraints = "$Rx32 = $Rx32in";
19880}
19881def S2_pstorerbnewt_io : HInst<
19882(outs),
19883(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19884"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19885tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19886let Inst{2-2} = 0b0;
19887let Inst{12-11} = 0b00;
19888let Inst{31-21} = 0b01000000101;
19889let isPredicated = 1;
19890let addrMode = BaseImmOffset;
19891let accessSize = ByteAccess;
19892let isNVStore = 1;
19893let isNewValue = 1;
19894let isRestrictNoSlot1Store = 1;
19895let mayStore = 1;
19896let BaseOpcode = "S2_storerb_io";
19897let CextOpcode = "S2_storerb";
19898let InputType = "imm";
19899let isExtendable = 1;
19900let opExtendable = 2;
19901let isExtentSigned = 0;
19902let opExtentBits = 6;
19903let opExtentAlign = 0;
19904let opNewValue = 3;
19905}
19906def S2_pstorerbnewt_pi : HInst<
19907(outs IntRegs:$Rx32),
19908(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19909"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19910tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19911let Inst{2-2} = 0b0;
19912let Inst{7-7} = 0b0;
19913let Inst{13-11} = 0b100;
19914let Inst{31-21} = 0b10101011101;
19915let isPredicated = 1;
19916let addrMode = PostInc;
19917let accessSize = ByteAccess;
19918let isNVStore = 1;
19919let isNewValue = 1;
19920let isRestrictNoSlot1Store = 1;
19921let mayStore = 1;
19922let BaseOpcode = "S2_storerb_pi";
19923let CextOpcode = "S2_storerb";
19924let opNewValue = 4;
19925let Constraints = "$Rx32 = $Rx32in";
19926}
19927def S2_pstorerbnewt_zomap : HInst<
19928(outs),
19929(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19930"if ($Pv4) memb($Rs32) = $Nt8.new",
19931tc_011e0e9d, TypeMAPPING> {
19932let isPseudo = 1;
19933let isCodeGenOnly = 1;
19934let opNewValue = 2;
19935}
19936def S2_pstorerbnewtnew_pi : HInst<
19937(outs IntRegs:$Rx32),
19938(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19939"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19940tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19941let Inst{2-2} = 0b0;
19942let Inst{7-7} = 0b1;
19943let Inst{13-11} = 0b100;
19944let Inst{31-21} = 0b10101011101;
19945let isPredicated = 1;
19946let addrMode = PostInc;
19947let accessSize = ByteAccess;
19948let isNVStore = 1;
19949let isPredicatedNew = 1;
19950let isNewValue = 1;
19951let isRestrictNoSlot1Store = 1;
19952let mayStore = 1;
19953let BaseOpcode = "S2_storerb_pi";
19954let CextOpcode = "S2_storerb";
19955let opNewValue = 4;
19956let Constraints = "$Rx32 = $Rx32in";
19957}
19958def S2_pstorerbt_io : HInst<
19959(outs),
19960(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19961"if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19962tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19963let Inst{2-2} = 0b0;
19964let Inst{31-21} = 0b01000000000;
19965let isPredicated = 1;
19966let addrMode = BaseImmOffset;
19967let accessSize = ByteAccess;
19968let mayStore = 1;
19969let BaseOpcode = "S2_storerb_io";
19970let CextOpcode = "S2_storerb";
19971let InputType = "imm";
19972let isNVStorable = 1;
19973let isExtendable = 1;
19974let opExtendable = 2;
19975let isExtentSigned = 0;
19976let opExtentBits = 6;
19977let opExtentAlign = 0;
19978}
19979def S2_pstorerbt_pi : HInst<
19980(outs IntRegs:$Rx32),
19981(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19982"if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19983tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19984let Inst{2-2} = 0b0;
19985let Inst{7-7} = 0b0;
19986let Inst{13-13} = 0b1;
19987let Inst{31-21} = 0b10101011000;
19988let isPredicated = 1;
19989let addrMode = PostInc;
19990let accessSize = ByteAccess;
19991let mayStore = 1;
19992let BaseOpcode = "S2_storerb_pi";
19993let isNVStorable = 1;
19994let Constraints = "$Rx32 = $Rx32in";
19995}
19996def S2_pstorerbt_zomap : HInst<
19997(outs),
19998(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19999"if ($Pv4) memb($Rs32) = $Rt32",
20000tc_8035e91f, TypeMAPPING> {
20001let isPseudo = 1;
20002let isCodeGenOnly = 1;
20003}
20004def S2_pstorerbtnew_pi : HInst<
20005(outs IntRegs:$Rx32),
20006(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20007"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
20008tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
20009let Inst{2-2} = 0b0;
20010let Inst{7-7} = 0b1;
20011let Inst{13-13} = 0b1;
20012let Inst{31-21} = 0b10101011000;
20013let isPredicated = 1;
20014let addrMode = PostInc;
20015let accessSize = ByteAccess;
20016let isPredicatedNew = 1;
20017let mayStore = 1;
20018let BaseOpcode = "S2_storerb_pi";
20019let isNVStorable = 1;
20020let Constraints = "$Rx32 = $Rx32in";
20021}
20022def S2_pstorerdf_io : HInst<
20023(outs),
20024(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20025"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
20026tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20027let Inst{2-2} = 0b0;
20028let Inst{31-21} = 0b01000100110;
20029let isPredicated = 1;
20030let isPredicatedFalse = 1;
20031let addrMode = BaseImmOffset;
20032let accessSize = DoubleWordAccess;
20033let mayStore = 1;
20034let BaseOpcode = "S2_storerd_io";
20035let CextOpcode = "S2_storerd";
20036let InputType = "imm";
20037let isExtendable = 1;
20038let opExtendable = 2;
20039let isExtentSigned = 0;
20040let opExtentBits = 9;
20041let opExtentAlign = 3;
20042}
20043def S2_pstorerdf_pi : HInst<
20044(outs IntRegs:$Rx32),
20045(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20046"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
20047tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20048let Inst{2-2} = 0b1;
20049let Inst{7-7} = 0b0;
20050let Inst{13-13} = 0b1;
20051let Inst{31-21} = 0b10101011110;
20052let isPredicated = 1;
20053let isPredicatedFalse = 1;
20054let addrMode = PostInc;
20055let accessSize = DoubleWordAccess;
20056let mayStore = 1;
20057let BaseOpcode = "S2_storerd_pi";
20058let CextOpcode = "S2_storerd";
20059let Constraints = "$Rx32 = $Rx32in";
20060}
20061def S2_pstorerdf_zomap : HInst<
20062(outs),
20063(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20064"if (!$Pv4) memd($Rs32) = $Rtt32",
20065tc_8035e91f, TypeMAPPING> {
20066let isPseudo = 1;
20067let isCodeGenOnly = 1;
20068}
20069def S2_pstorerdfnew_pi : HInst<
20070(outs IntRegs:$Rx32),
20071(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20072"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20073tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20074let Inst{2-2} = 0b1;
20075let Inst{7-7} = 0b1;
20076let Inst{13-13} = 0b1;
20077let Inst{31-21} = 0b10101011110;
20078let isPredicated = 1;
20079let isPredicatedFalse = 1;
20080let addrMode = PostInc;
20081let accessSize = DoubleWordAccess;
20082let isPredicatedNew = 1;
20083let mayStore = 1;
20084let BaseOpcode = "S2_storerd_pi";
20085let CextOpcode = "S2_storerd";
20086let Constraints = "$Rx32 = $Rx32in";
20087}
20088def S2_pstorerdt_io : HInst<
20089(outs),
20090(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20091"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
20092tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20093let Inst{2-2} = 0b0;
20094let Inst{31-21} = 0b01000000110;
20095let isPredicated = 1;
20096let addrMode = BaseImmOffset;
20097let accessSize = DoubleWordAccess;
20098let mayStore = 1;
20099let BaseOpcode = "S2_storerd_io";
20100let CextOpcode = "S2_storerd";
20101let InputType = "imm";
20102let isExtendable = 1;
20103let opExtendable = 2;
20104let isExtentSigned = 0;
20105let opExtentBits = 9;
20106let opExtentAlign = 3;
20107}
20108def S2_pstorerdt_pi : HInst<
20109(outs IntRegs:$Rx32),
20110(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20111"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
20112tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20113let Inst{2-2} = 0b0;
20114let Inst{7-7} = 0b0;
20115let Inst{13-13} = 0b1;
20116let Inst{31-21} = 0b10101011110;
20117let isPredicated = 1;
20118let addrMode = PostInc;
20119let accessSize = DoubleWordAccess;
20120let mayStore = 1;
20121let BaseOpcode = "S2_storerd_pi";
20122let CextOpcode = "S2_storerd";
20123let Constraints = "$Rx32 = $Rx32in";
20124}
20125def S2_pstorerdt_zomap : HInst<
20126(outs),
20127(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20128"if ($Pv4) memd($Rs32) = $Rtt32",
20129tc_8035e91f, TypeMAPPING> {
20130let isPseudo = 1;
20131let isCodeGenOnly = 1;
20132}
20133def S2_pstorerdtnew_pi : HInst<
20134(outs IntRegs:$Rx32),
20135(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20136"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20137tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20138let Inst{2-2} = 0b0;
20139let Inst{7-7} = 0b1;
20140let Inst{13-13} = 0b1;
20141let Inst{31-21} = 0b10101011110;
20142let isPredicated = 1;
20143let addrMode = PostInc;
20144let accessSize = DoubleWordAccess;
20145let isPredicatedNew = 1;
20146let mayStore = 1;
20147let BaseOpcode = "S2_storerd_pi";
20148let CextOpcode = "S2_storerd";
20149let Constraints = "$Rx32 = $Rx32in";
20150}
20151def S2_pstorerff_io : HInst<
20152(outs),
20153(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20154"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20155tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20156let Inst{2-2} = 0b0;
20157let Inst{31-21} = 0b01000100011;
20158let isPredicated = 1;
20159let isPredicatedFalse = 1;
20160let addrMode = BaseImmOffset;
20161let accessSize = HalfWordAccess;
20162let mayStore = 1;
20163let BaseOpcode = "S2_storerf_io";
20164let CextOpcode = "S2_storerf";
20165let InputType = "imm";
20166let isExtendable = 1;
20167let opExtendable = 2;
20168let isExtentSigned = 0;
20169let opExtentBits = 7;
20170let opExtentAlign = 1;
20171}
20172def S2_pstorerff_pi : HInst<
20173(outs IntRegs:$Rx32),
20174(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20175"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20176tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20177let Inst{2-2} = 0b1;
20178let Inst{7-7} = 0b0;
20179let Inst{13-13} = 0b1;
20180let Inst{31-21} = 0b10101011011;
20181let isPredicated = 1;
20182let isPredicatedFalse = 1;
20183let addrMode = PostInc;
20184let accessSize = HalfWordAccess;
20185let mayStore = 1;
20186let BaseOpcode = "S2_storerf_pi";
20187let CextOpcode = "S2_storerf";
20188let Constraints = "$Rx32 = $Rx32in";
20189}
20190def S2_pstorerff_zomap : HInst<
20191(outs),
20192(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20193"if (!$Pv4) memh($Rs32) = $Rt32.h",
20194tc_8035e91f, TypeMAPPING> {
20195let isPseudo = 1;
20196let isCodeGenOnly = 1;
20197}
20198def S2_pstorerffnew_pi : HInst<
20199(outs IntRegs:$Rx32),
20200(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20201"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20202tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20203let Inst{2-2} = 0b1;
20204let Inst{7-7} = 0b1;
20205let Inst{13-13} = 0b1;
20206let Inst{31-21} = 0b10101011011;
20207let isPredicated = 1;
20208let isPredicatedFalse = 1;
20209let addrMode = PostInc;
20210let accessSize = HalfWordAccess;
20211let isPredicatedNew = 1;
20212let mayStore = 1;
20213let BaseOpcode = "S2_storerf_pi";
20214let CextOpcode = "S2_storerf";
20215let Constraints = "$Rx32 = $Rx32in";
20216}
20217def S2_pstorerft_io : HInst<
20218(outs),
20219(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20220"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20221tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20222let Inst{2-2} = 0b0;
20223let Inst{31-21} = 0b01000000011;
20224let isPredicated = 1;
20225let addrMode = BaseImmOffset;
20226let accessSize = HalfWordAccess;
20227let mayStore = 1;
20228let BaseOpcode = "S2_storerf_io";
20229let CextOpcode = "S2_storerf";
20230let InputType = "imm";
20231let isExtendable = 1;
20232let opExtendable = 2;
20233let isExtentSigned = 0;
20234let opExtentBits = 7;
20235let opExtentAlign = 1;
20236}
20237def S2_pstorerft_pi : HInst<
20238(outs IntRegs:$Rx32),
20239(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20240"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20241tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20242let Inst{2-2} = 0b0;
20243let Inst{7-7} = 0b0;
20244let Inst{13-13} = 0b1;
20245let Inst{31-21} = 0b10101011011;
20246let isPredicated = 1;
20247let addrMode = PostInc;
20248let accessSize = HalfWordAccess;
20249let mayStore = 1;
20250let BaseOpcode = "S2_storerf_pi";
20251let CextOpcode = "S2_storerf";
20252let Constraints = "$Rx32 = $Rx32in";
20253}
20254def S2_pstorerft_zomap : HInst<
20255(outs),
20256(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20257"if ($Pv4) memh($Rs32) = $Rt32.h",
20258tc_8035e91f, TypeMAPPING> {
20259let isPseudo = 1;
20260let isCodeGenOnly = 1;
20261}
20262def S2_pstorerftnew_pi : HInst<
20263(outs IntRegs:$Rx32),
20264(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20265"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20266tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20267let Inst{2-2} = 0b0;
20268let Inst{7-7} = 0b1;
20269let Inst{13-13} = 0b1;
20270let Inst{31-21} = 0b10101011011;
20271let isPredicated = 1;
20272let addrMode = PostInc;
20273let accessSize = HalfWordAccess;
20274let isPredicatedNew = 1;
20275let mayStore = 1;
20276let BaseOpcode = "S2_storerf_pi";
20277let CextOpcode = "S2_storerf";
20278let Constraints = "$Rx32 = $Rx32in";
20279}
20280def S2_pstorerhf_io : HInst<
20281(outs),
20282(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20283"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
20284tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20285let Inst{2-2} = 0b0;
20286let Inst{31-21} = 0b01000100010;
20287let isPredicated = 1;
20288let isPredicatedFalse = 1;
20289let addrMode = BaseImmOffset;
20290let accessSize = HalfWordAccess;
20291let mayStore = 1;
20292let BaseOpcode = "S2_storerh_io";
20293let CextOpcode = "S2_storerh";
20294let InputType = "imm";
20295let isNVStorable = 1;
20296let isExtendable = 1;
20297let opExtendable = 2;
20298let isExtentSigned = 0;
20299let opExtentBits = 7;
20300let opExtentAlign = 1;
20301}
20302def S2_pstorerhf_pi : HInst<
20303(outs IntRegs:$Rx32),
20304(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20305"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
20306tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20307let Inst{2-2} = 0b1;
20308let Inst{7-7} = 0b0;
20309let Inst{13-13} = 0b1;
20310let Inst{31-21} = 0b10101011010;
20311let isPredicated = 1;
20312let isPredicatedFalse = 1;
20313let addrMode = PostInc;
20314let accessSize = HalfWordAccess;
20315let mayStore = 1;
20316let BaseOpcode = "S2_storerh_pi";
20317let isNVStorable = 1;
20318let Constraints = "$Rx32 = $Rx32in";
20319}
20320def S2_pstorerhf_zomap : HInst<
20321(outs),
20322(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20323"if (!$Pv4) memh($Rs32) = $Rt32",
20324tc_8035e91f, TypeMAPPING> {
20325let isPseudo = 1;
20326let isCodeGenOnly = 1;
20327}
20328def S2_pstorerhfnew_pi : HInst<
20329(outs IntRegs:$Rx32),
20330(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20331"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20332tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20333let Inst{2-2} = 0b1;
20334let Inst{7-7} = 0b1;
20335let Inst{13-13} = 0b1;
20336let Inst{31-21} = 0b10101011010;
20337let isPredicated = 1;
20338let isPredicatedFalse = 1;
20339let addrMode = PostInc;
20340let accessSize = HalfWordAccess;
20341let isPredicatedNew = 1;
20342let mayStore = 1;
20343let BaseOpcode = "S2_storerh_pi";
20344let isNVStorable = 1;
20345let Constraints = "$Rx32 = $Rx32in";
20346}
20347def S2_pstorerhnewf_io : HInst<
20348(outs),
20349(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20350"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20351tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20352let Inst{2-2} = 0b0;
20353let Inst{12-11} = 0b01;
20354let Inst{31-21} = 0b01000100101;
20355let isPredicated = 1;
20356let isPredicatedFalse = 1;
20357let addrMode = BaseImmOffset;
20358let accessSize = HalfWordAccess;
20359let isNVStore = 1;
20360let isNewValue = 1;
20361let isRestrictNoSlot1Store = 1;
20362let mayStore = 1;
20363let BaseOpcode = "S2_storerh_io";
20364let CextOpcode = "S2_storerh";
20365let InputType = "imm";
20366let isExtendable = 1;
20367let opExtendable = 2;
20368let isExtentSigned = 0;
20369let opExtentBits = 7;
20370let opExtentAlign = 1;
20371let opNewValue = 3;
20372}
20373def S2_pstorerhnewf_pi : HInst<
20374(outs IntRegs:$Rx32),
20375(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20376"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20377tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20378let Inst{2-2} = 0b1;
20379let Inst{7-7} = 0b0;
20380let Inst{13-11} = 0b101;
20381let Inst{31-21} = 0b10101011101;
20382let isPredicated = 1;
20383let isPredicatedFalse = 1;
20384let addrMode = PostInc;
20385let accessSize = HalfWordAccess;
20386let isNVStore = 1;
20387let isNewValue = 1;
20388let isRestrictNoSlot1Store = 1;
20389let mayStore = 1;
20390let BaseOpcode = "S2_storerh_pi";
20391let CextOpcode = "S2_storerh";
20392let opNewValue = 4;
20393let Constraints = "$Rx32 = $Rx32in";
20394}
20395def S2_pstorerhnewf_zomap : HInst<
20396(outs),
20397(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20398"if (!$Pv4) memh($Rs32) = $Nt8.new",
20399tc_011e0e9d, TypeMAPPING> {
20400let isPseudo = 1;
20401let isCodeGenOnly = 1;
20402let opNewValue = 2;
20403}
20404def S2_pstorerhnewfnew_pi : HInst<
20405(outs IntRegs:$Rx32),
20406(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20407"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20408tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20409let Inst{2-2} = 0b1;
20410let Inst{7-7} = 0b1;
20411let Inst{13-11} = 0b101;
20412let Inst{31-21} = 0b10101011101;
20413let isPredicated = 1;
20414let isPredicatedFalse = 1;
20415let addrMode = PostInc;
20416let accessSize = HalfWordAccess;
20417let isNVStore = 1;
20418let isPredicatedNew = 1;
20419let isNewValue = 1;
20420let isRestrictNoSlot1Store = 1;
20421let mayStore = 1;
20422let BaseOpcode = "S2_storerh_pi";
20423let CextOpcode = "S2_storerh";
20424let opNewValue = 4;
20425let Constraints = "$Rx32 = $Rx32in";
20426}
20427def S2_pstorerhnewt_io : HInst<
20428(outs),
20429(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20430"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20431tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20432let Inst{2-2} = 0b0;
20433let Inst{12-11} = 0b01;
20434let Inst{31-21} = 0b01000000101;
20435let isPredicated = 1;
20436let addrMode = BaseImmOffset;
20437let accessSize = HalfWordAccess;
20438let isNVStore = 1;
20439let isNewValue = 1;
20440let isRestrictNoSlot1Store = 1;
20441let mayStore = 1;
20442let BaseOpcode = "S2_storerh_io";
20443let CextOpcode = "S2_storerh";
20444let InputType = "imm";
20445let isExtendable = 1;
20446let opExtendable = 2;
20447let isExtentSigned = 0;
20448let opExtentBits = 7;
20449let opExtentAlign = 1;
20450let opNewValue = 3;
20451}
20452def S2_pstorerhnewt_pi : HInst<
20453(outs IntRegs:$Rx32),
20454(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20455"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20456tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20457let Inst{2-2} = 0b0;
20458let Inst{7-7} = 0b0;
20459let Inst{13-11} = 0b101;
20460let Inst{31-21} = 0b10101011101;
20461let isPredicated = 1;
20462let addrMode = PostInc;
20463let accessSize = HalfWordAccess;
20464let isNVStore = 1;
20465let isNewValue = 1;
20466let isRestrictNoSlot1Store = 1;
20467let mayStore = 1;
20468let BaseOpcode = "S2_storerh_pi";
20469let CextOpcode = "S2_storerh";
20470let opNewValue = 4;
20471let Constraints = "$Rx32 = $Rx32in";
20472}
20473def S2_pstorerhnewt_zomap : HInst<
20474(outs),
20475(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20476"if ($Pv4) memh($Rs32) = $Nt8.new",
20477tc_011e0e9d, TypeMAPPING> {
20478let isPseudo = 1;
20479let isCodeGenOnly = 1;
20480let opNewValue = 2;
20481}
20482def S2_pstorerhnewtnew_pi : HInst<
20483(outs IntRegs:$Rx32),
20484(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20485"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20486tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20487let Inst{2-2} = 0b0;
20488let Inst{7-7} = 0b1;
20489let Inst{13-11} = 0b101;
20490let Inst{31-21} = 0b10101011101;
20491let isPredicated = 1;
20492let addrMode = PostInc;
20493let accessSize = HalfWordAccess;
20494let isNVStore = 1;
20495let isPredicatedNew = 1;
20496let isNewValue = 1;
20497let isRestrictNoSlot1Store = 1;
20498let mayStore = 1;
20499let BaseOpcode = "S2_storerh_pi";
20500let CextOpcode = "S2_storerh";
20501let opNewValue = 4;
20502let Constraints = "$Rx32 = $Rx32in";
20503}
20504def S2_pstorerht_io : HInst<
20505(outs),
20506(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20507"if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20508tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20509let Inst{2-2} = 0b0;
20510let Inst{31-21} = 0b01000000010;
20511let isPredicated = 1;
20512let addrMode = BaseImmOffset;
20513let accessSize = HalfWordAccess;
20514let mayStore = 1;
20515let BaseOpcode = "S2_storerh_io";
20516let CextOpcode = "S2_storerh";
20517let InputType = "imm";
20518let isNVStorable = 1;
20519let isExtendable = 1;
20520let opExtendable = 2;
20521let isExtentSigned = 0;
20522let opExtentBits = 7;
20523let opExtentAlign = 1;
20524}
20525def S2_pstorerht_pi : HInst<
20526(outs IntRegs:$Rx32),
20527(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20528"if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20529tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20530let Inst{2-2} = 0b0;
20531let Inst{7-7} = 0b0;
20532let Inst{13-13} = 0b1;
20533let Inst{31-21} = 0b10101011010;
20534let isPredicated = 1;
20535let addrMode = PostInc;
20536let accessSize = HalfWordAccess;
20537let mayStore = 1;
20538let BaseOpcode = "S2_storerh_pi";
20539let isNVStorable = 1;
20540let Constraints = "$Rx32 = $Rx32in";
20541}
20542def S2_pstorerht_zomap : HInst<
20543(outs),
20544(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20545"if ($Pv4) memh($Rs32) = $Rt32",
20546tc_8035e91f, TypeMAPPING> {
20547let isPseudo = 1;
20548let isCodeGenOnly = 1;
20549}
20550def S2_pstorerhtnew_pi : HInst<
20551(outs IntRegs:$Rx32),
20552(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20553"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20554tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20555let Inst{2-2} = 0b0;
20556let Inst{7-7} = 0b1;
20557let Inst{13-13} = 0b1;
20558let Inst{31-21} = 0b10101011010;
20559let isPredicated = 1;
20560let addrMode = PostInc;
20561let accessSize = HalfWordAccess;
20562let isPredicatedNew = 1;
20563let mayStore = 1;
20564let BaseOpcode = "S2_storerh_pi";
20565let isNVStorable = 1;
20566let Constraints = "$Rx32 = $Rx32in";
20567}
20568def S2_pstorerif_io : HInst<
20569(outs),
20570(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20571"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20572tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20573let Inst{2-2} = 0b0;
20574let Inst{31-21} = 0b01000100100;
20575let isPredicated = 1;
20576let isPredicatedFalse = 1;
20577let addrMode = BaseImmOffset;
20578let accessSize = WordAccess;
20579let mayStore = 1;
20580let BaseOpcode = "S2_storeri_io";
20581let CextOpcode = "S2_storeri";
20582let InputType = "imm";
20583let isNVStorable = 1;
20584let isExtendable = 1;
20585let opExtendable = 2;
20586let isExtentSigned = 0;
20587let opExtentBits = 8;
20588let opExtentAlign = 2;
20589}
20590def S2_pstorerif_pi : HInst<
20591(outs IntRegs:$Rx32),
20592(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20593"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20594tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20595let Inst{2-2} = 0b1;
20596let Inst{7-7} = 0b0;
20597let Inst{13-13} = 0b1;
20598let Inst{31-21} = 0b10101011100;
20599let isPredicated = 1;
20600let isPredicatedFalse = 1;
20601let addrMode = PostInc;
20602let accessSize = WordAccess;
20603let mayStore = 1;
20604let BaseOpcode = "S2_storeri_pi";
20605let isNVStorable = 1;
20606let Constraints = "$Rx32 = $Rx32in";
20607}
20608def S2_pstorerif_zomap : HInst<
20609(outs),
20610(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20611"if (!$Pv4) memw($Rs32) = $Rt32",
20612tc_8035e91f, TypeMAPPING> {
20613let isPseudo = 1;
20614let isCodeGenOnly = 1;
20615}
20616def S2_pstorerifnew_pi : HInst<
20617(outs IntRegs:$Rx32),
20618(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20619"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20620tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20621let Inst{2-2} = 0b1;
20622let Inst{7-7} = 0b1;
20623let Inst{13-13} = 0b1;
20624let Inst{31-21} = 0b10101011100;
20625let isPredicated = 1;
20626let isPredicatedFalse = 1;
20627let addrMode = PostInc;
20628let accessSize = WordAccess;
20629let isPredicatedNew = 1;
20630let mayStore = 1;
20631let BaseOpcode = "S2_storeri_pi";
20632let CextOpcode = "S2_storeri";
20633let isNVStorable = 1;
20634let Constraints = "$Rx32 = $Rx32in";
20635}
20636def S2_pstorerinewf_io : HInst<
20637(outs),
20638(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20639"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20640tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20641let Inst{2-2} = 0b0;
20642let Inst{12-11} = 0b10;
20643let Inst{31-21} = 0b01000100101;
20644let isPredicated = 1;
20645let isPredicatedFalse = 1;
20646let addrMode = BaseImmOffset;
20647let accessSize = WordAccess;
20648let isNVStore = 1;
20649let isNewValue = 1;
20650let isRestrictNoSlot1Store = 1;
20651let mayStore = 1;
20652let BaseOpcode = "S2_storeri_io";
20653let CextOpcode = "S2_storeri";
20654let InputType = "imm";
20655let isExtendable = 1;
20656let opExtendable = 2;
20657let isExtentSigned = 0;
20658let opExtentBits = 8;
20659let opExtentAlign = 2;
20660let opNewValue = 3;
20661}
20662def S2_pstorerinewf_pi : HInst<
20663(outs IntRegs:$Rx32),
20664(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20665"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20666tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20667let Inst{2-2} = 0b1;
20668let Inst{7-7} = 0b0;
20669let Inst{13-11} = 0b110;
20670let Inst{31-21} = 0b10101011101;
20671let isPredicated = 1;
20672let isPredicatedFalse = 1;
20673let addrMode = PostInc;
20674let accessSize = WordAccess;
20675let isNVStore = 1;
20676let isNewValue = 1;
20677let isRestrictNoSlot1Store = 1;
20678let mayStore = 1;
20679let BaseOpcode = "S2_storeri_pi";
20680let CextOpcode = "S2_storeri";
20681let opNewValue = 4;
20682let Constraints = "$Rx32 = $Rx32in";
20683}
20684def S2_pstorerinewf_zomap : HInst<
20685(outs),
20686(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20687"if (!$Pv4) memw($Rs32) = $Nt8.new",
20688tc_011e0e9d, TypeMAPPING> {
20689let isPseudo = 1;
20690let isCodeGenOnly = 1;
20691let opNewValue = 2;
20692}
20693def S2_pstorerinewfnew_pi : HInst<
20694(outs IntRegs:$Rx32),
20695(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20696"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20697tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20698let Inst{2-2} = 0b1;
20699let Inst{7-7} = 0b1;
20700let Inst{13-11} = 0b110;
20701let Inst{31-21} = 0b10101011101;
20702let isPredicated = 1;
20703let isPredicatedFalse = 1;
20704let addrMode = PostInc;
20705let accessSize = WordAccess;
20706let isNVStore = 1;
20707let isPredicatedNew = 1;
20708let isNewValue = 1;
20709let isRestrictNoSlot1Store = 1;
20710let mayStore = 1;
20711let BaseOpcode = "S2_storeri_pi";
20712let CextOpcode = "S2_storeri";
20713let opNewValue = 4;
20714let Constraints = "$Rx32 = $Rx32in";
20715}
20716def S2_pstorerinewt_io : HInst<
20717(outs),
20718(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20719"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20720tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20721let Inst{2-2} = 0b0;
20722let Inst{12-11} = 0b10;
20723let Inst{31-21} = 0b01000000101;
20724let isPredicated = 1;
20725let addrMode = BaseImmOffset;
20726let accessSize = WordAccess;
20727let isNVStore = 1;
20728let isNewValue = 1;
20729let isRestrictNoSlot1Store = 1;
20730let mayStore = 1;
20731let BaseOpcode = "S2_storeri_io";
20732let CextOpcode = "S2_storeri";
20733let InputType = "imm";
20734let isExtendable = 1;
20735let opExtendable = 2;
20736let isExtentSigned = 0;
20737let opExtentBits = 8;
20738let opExtentAlign = 2;
20739let opNewValue = 3;
20740}
20741def S2_pstorerinewt_pi : HInst<
20742(outs IntRegs:$Rx32),
20743(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20744"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20745tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20746let Inst{2-2} = 0b0;
20747let Inst{7-7} = 0b0;
20748let Inst{13-11} = 0b110;
20749let Inst{31-21} = 0b10101011101;
20750let isPredicated = 1;
20751let addrMode = PostInc;
20752let accessSize = WordAccess;
20753let isNVStore = 1;
20754let isNewValue = 1;
20755let isRestrictNoSlot1Store = 1;
20756let mayStore = 1;
20757let BaseOpcode = "S2_storeri_pi";
20758let CextOpcode = "S2_storeri";
20759let opNewValue = 4;
20760let Constraints = "$Rx32 = $Rx32in";
20761}
20762def S2_pstorerinewt_zomap : HInst<
20763(outs),
20764(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20765"if ($Pv4) memw($Rs32) = $Nt8.new",
20766tc_011e0e9d, TypeMAPPING> {
20767let isPseudo = 1;
20768let isCodeGenOnly = 1;
20769let opNewValue = 2;
20770}
20771def S2_pstorerinewtnew_pi : HInst<
20772(outs IntRegs:$Rx32),
20773(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20774"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20775tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20776let Inst{2-2} = 0b0;
20777let Inst{7-7} = 0b1;
20778let Inst{13-11} = 0b110;
20779let Inst{31-21} = 0b10101011101;
20780let isPredicated = 1;
20781let addrMode = PostInc;
20782let accessSize = WordAccess;
20783let isNVStore = 1;
20784let isPredicatedNew = 1;
20785let isNewValue = 1;
20786let isRestrictNoSlot1Store = 1;
20787let mayStore = 1;
20788let BaseOpcode = "S2_storeri_pi";
20789let CextOpcode = "S2_storeri";
20790let opNewValue = 4;
20791let Constraints = "$Rx32 = $Rx32in";
20792}
20793def S2_pstorerit_io : HInst<
20794(outs),
20795(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20796"if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20797tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20798let Inst{2-2} = 0b0;
20799let Inst{31-21} = 0b01000000100;
20800let isPredicated = 1;
20801let addrMode = BaseImmOffset;
20802let accessSize = WordAccess;
20803let mayStore = 1;
20804let BaseOpcode = "S2_storeri_io";
20805let CextOpcode = "S2_storeri";
20806let InputType = "imm";
20807let isNVStorable = 1;
20808let isExtendable = 1;
20809let opExtendable = 2;
20810let isExtentSigned = 0;
20811let opExtentBits = 8;
20812let opExtentAlign = 2;
20813}
20814def S2_pstorerit_pi : HInst<
20815(outs IntRegs:$Rx32),
20816(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20817"if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20818tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20819let Inst{2-2} = 0b0;
20820let Inst{7-7} = 0b0;
20821let Inst{13-13} = 0b1;
20822let Inst{31-21} = 0b10101011100;
20823let isPredicated = 1;
20824let addrMode = PostInc;
20825let accessSize = WordAccess;
20826let mayStore = 1;
20827let BaseOpcode = "S2_storeri_pi";
20828let isNVStorable = 1;
20829let Constraints = "$Rx32 = $Rx32in";
20830}
20831def S2_pstorerit_zomap : HInst<
20832(outs),
20833(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20834"if ($Pv4) memw($Rs32) = $Rt32",
20835tc_8035e91f, TypeMAPPING> {
20836let isPseudo = 1;
20837let isCodeGenOnly = 1;
20838}
20839def S2_pstoreritnew_pi : HInst<
20840(outs IntRegs:$Rx32),
20841(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20842"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20843tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20844let Inst{2-2} = 0b0;
20845let Inst{7-7} = 0b1;
20846let Inst{13-13} = 0b1;
20847let Inst{31-21} = 0b10101011100;
20848let isPredicated = 1;
20849let addrMode = PostInc;
20850let accessSize = WordAccess;
20851let isPredicatedNew = 1;
20852let mayStore = 1;
20853let BaseOpcode = "S2_storeri_pi";
20854let isNVStorable = 1;
20855let Constraints = "$Rx32 = $Rx32in";
20856}
20857def S2_setbit_i : HInst<
20858(outs IntRegs:$Rd32),
20859(ins IntRegs:$Rs32, u5_0Imm:$Ii),
20860"$Rd32 = setbit($Rs32,#$Ii)",
20861tc_5da50c4b, TypeS_2op>, Enc_a05677 {
20862let Inst{7-5} = 0b000;
20863let Inst{13-13} = 0b0;
20864let Inst{31-21} = 0b10001100110;
20865let hasNewValue = 1;
20866let opNewValue = 0;
20867}
20868def S2_setbit_r : HInst<
20869(outs IntRegs:$Rd32),
20870(ins IntRegs:$Rs32, IntRegs:$Rt32),
20871"$Rd32 = setbit($Rs32,$Rt32)",
20872tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
20873let Inst{7-5} = 0b000;
20874let Inst{13-13} = 0b0;
20875let Inst{31-21} = 0b11000110100;
20876let hasNewValue = 1;
20877let opNewValue = 0;
20878}
20879def S2_shuffeb : HInst<
20880(outs DoubleRegs:$Rdd32),
20881(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20882"$Rdd32 = shuffeb($Rss32,$Rtt32)",
20883tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20884let Inst{7-5} = 0b010;
20885let Inst{13-13} = 0b0;
20886let Inst{31-21} = 0b11000001000;
20887}
20888def S2_shuffeh : HInst<
20889(outs DoubleRegs:$Rdd32),
20890(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20891"$Rdd32 = shuffeh($Rss32,$Rtt32)",
20892tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20893let Inst{7-5} = 0b110;
20894let Inst{13-13} = 0b0;
20895let Inst{31-21} = 0b11000001000;
20896}
20897def S2_shuffob : HInst<
20898(outs DoubleRegs:$Rdd32),
20899(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20900"$Rdd32 = shuffob($Rtt32,$Rss32)",
20901tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20902let Inst{7-5} = 0b100;
20903let Inst{13-13} = 0b0;
20904let Inst{31-21} = 0b11000001000;
20905}
20906def S2_shuffoh : HInst<
20907(outs DoubleRegs:$Rdd32),
20908(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20909"$Rdd32 = shuffoh($Rtt32,$Rss32)",
20910tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20911let Inst{7-5} = 0b000;
20912let Inst{13-13} = 0b0;
20913let Inst{31-21} = 0b11000001100;
20914}
20915def S2_storerb_io : HInst<
20916(outs),
20917(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20918"memb($Rs32+#$Ii) = $Rt32",
20919tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20920let Inst{24-21} = 0b1000;
20921let Inst{31-27} = 0b10100;
20922let addrMode = BaseImmOffset;
20923let accessSize = ByteAccess;
20924let mayStore = 1;
20925let BaseOpcode = "S2_storerb_io";
20926let CextOpcode = "S2_storerb";
20927let InputType = "imm";
20928let isNVStorable = 1;
20929let isPredicable = 1;
20930let isExtendable = 1;
20931let opExtendable = 1;
20932let isExtentSigned = 1;
20933let opExtentBits = 11;
20934let opExtentAlign = 0;
20935}
20936def S2_storerb_pbr : HInst<
20937(outs IntRegs:$Rx32),
20938(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20939"memb($Rx32++$Mu2:brev) = $Rt32",
20940tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20941let Inst{7-0} = 0b00000000;
20942let Inst{31-21} = 0b10101111000;
20943let addrMode = PostInc;
20944let accessSize = ByteAccess;
20945let mayStore = 1;
20946let BaseOpcode = "S2_storerb_pbr";
20947let isNVStorable = 1;
20948let Constraints = "$Rx32 = $Rx32in";
20949}
20950def S2_storerb_pci : HInst<
20951(outs IntRegs:$Rx32),
20952(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20953"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20954tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel {
20955let Inst{2-0} = 0b000;
20956let Inst{7-7} = 0b0;
20957let Inst{31-21} = 0b10101001000;
20958let addrMode = PostInc;
20959let accessSize = ByteAccess;
20960let mayStore = 1;
20961let Uses = [CS];
20962let BaseOpcode = "S2_storerb_pci";
20963let isNVStorable = 1;
20964let Constraints = "$Rx32 = $Rx32in";
20965}
20966def S2_storerb_pcr : HInst<
20967(outs IntRegs:$Rx32),
20968(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20969"memb($Rx32++I:circ($Mu2)) = $Rt32",
20970tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20971let Inst{7-0} = 0b00000010;
20972let Inst{31-21} = 0b10101001000;
20973let addrMode = PostInc;
20974let accessSize = ByteAccess;
20975let mayStore = 1;
20976let Uses = [CS];
20977let BaseOpcode = "S2_storerb_pcr";
20978let isNVStorable = 1;
20979let Constraints = "$Rx32 = $Rx32in";
20980}
20981def S2_storerb_pi : HInst<
20982(outs IntRegs:$Rx32),
20983(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20984"memb($Rx32++#$Ii) = $Rt32",
20985tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
20986let Inst{2-0} = 0b000;
20987let Inst{7-7} = 0b0;
20988let Inst{13-13} = 0b0;
20989let Inst{31-21} = 0b10101011000;
20990let addrMode = PostInc;
20991let accessSize = ByteAccess;
20992let mayStore = 1;
20993let BaseOpcode = "S2_storerb_pi";
20994let CextOpcode = "S2_storerb";
20995let isNVStorable = 1;
20996let isPredicable = 1;
20997let Constraints = "$Rx32 = $Rx32in";
20998}
20999def S2_storerb_pr : HInst<
21000(outs IntRegs:$Rx32),
21001(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21002"memb($Rx32++$Mu2) = $Rt32",
21003tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21004let Inst{7-0} = 0b00000000;
21005let Inst{31-21} = 0b10101101000;
21006let addrMode = PostInc;
21007let accessSize = ByteAccess;
21008let mayStore = 1;
21009let BaseOpcode = "S2_storerb_pr";
21010let isNVStorable = 1;
21011let Constraints = "$Rx32 = $Rx32in";
21012}
21013def S2_storerb_zomap : HInst<
21014(outs),
21015(ins IntRegs:$Rs32, IntRegs:$Rt32),
21016"memb($Rs32) = $Rt32",
21017tc_ae5babd7, TypeMAPPING> {
21018let isPseudo = 1;
21019let isCodeGenOnly = 1;
21020}
21021def S2_storerbgp : HInst<
21022(outs),
21023(ins u32_0Imm:$Ii, IntRegs:$Rt32),
21024"memb(gp+#$Ii) = $Rt32",
21025tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
21026let Inst{24-21} = 0b0000;
21027let Inst{31-27} = 0b01001;
21028let accessSize = ByteAccess;
21029let mayStore = 1;
21030let Uses = [GP];
21031let BaseOpcode = "S2_storerbabs";
21032let isNVStorable = 1;
21033let isPredicable = 1;
21034let opExtendable = 0;
21035let isExtentSigned = 0;
21036let opExtentBits = 16;
21037let opExtentAlign = 0;
21038}
21039def S2_storerbnew_io : HInst<
21040(outs),
21041(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
21042"memb($Rs32+#$Ii) = $Nt8.new",
21043tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel {
21044let Inst{12-11} = 0b00;
21045let Inst{24-21} = 0b1101;
21046let Inst{31-27} = 0b10100;
21047let addrMode = BaseImmOffset;
21048let accessSize = ByteAccess;
21049let isNVStore = 1;
21050let isNewValue = 1;
21051let isRestrictNoSlot1Store = 1;
21052let mayStore = 1;
21053let BaseOpcode = "S2_storerb_io";
21054let CextOpcode = "S2_storerb";
21055let InputType = "imm";
21056let isPredicable = 1;
21057let isExtendable = 1;
21058let opExtendable = 1;
21059let isExtentSigned = 1;
21060let opExtentBits = 11;
21061let opExtentAlign = 0;
21062let opNewValue = 2;
21063}
21064def S2_storerbnew_pbr : HInst<
21065(outs IntRegs:$Rx32),
21066(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21067"memb($Rx32++$Mu2:brev) = $Nt8.new",
21068tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21069let Inst{7-0} = 0b00000000;
21070let Inst{12-11} = 0b00;
21071let Inst{31-21} = 0b10101111101;
21072let addrMode = PostInc;
21073let accessSize = ByteAccess;
21074let isNVStore = 1;
21075let isNewValue = 1;
21076let isRestrictNoSlot1Store = 1;
21077let mayStore = 1;
21078let BaseOpcode = "S2_storerb_pbr";
21079let opNewValue = 3;
21080let Constraints = "$Rx32 = $Rx32in";
21081}
21082def S2_storerbnew_pci : HInst<
21083(outs IntRegs:$Rx32),
21084(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21085"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21086tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel {
21087let Inst{2-0} = 0b000;
21088let Inst{7-7} = 0b0;
21089let Inst{12-11} = 0b00;
21090let Inst{31-21} = 0b10101001101;
21091let addrMode = PostInc;
21092let accessSize = ByteAccess;
21093let isNVStore = 1;
21094let isNewValue = 1;
21095let isRestrictNoSlot1Store = 1;
21096let mayStore = 1;
21097let Uses = [CS];
21098let BaseOpcode = "S2_storerb_pci";
21099let opNewValue = 4;
21100let Constraints = "$Rx32 = $Rx32in";
21101}
21102def S2_storerbnew_pcr : HInst<
21103(outs IntRegs:$Rx32),
21104(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21105"memb($Rx32++I:circ($Mu2)) = $Nt8.new",
21106tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21107let Inst{7-0} = 0b00000010;
21108let Inst{12-11} = 0b00;
21109let Inst{31-21} = 0b10101001101;
21110let addrMode = PostInc;
21111let accessSize = ByteAccess;
21112let isNVStore = 1;
21113let isNewValue = 1;
21114let isRestrictNoSlot1Store = 1;
21115let mayStore = 1;
21116let Uses = [CS];
21117let BaseOpcode = "S2_storerb_pcr";
21118let opNewValue = 3;
21119let Constraints = "$Rx32 = $Rx32in";
21120}
21121def S2_storerbnew_pi : HInst<
21122(outs IntRegs:$Rx32),
21123(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
21124"memb($Rx32++#$Ii) = $Nt8.new",
21125tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel {
21126let Inst{2-0} = 0b000;
21127let Inst{7-7} = 0b0;
21128let Inst{13-11} = 0b000;
21129let Inst{31-21} = 0b10101011101;
21130let addrMode = PostInc;
21131let accessSize = ByteAccess;
21132let isNVStore = 1;
21133let isNewValue = 1;
21134let isRestrictNoSlot1Store = 1;
21135let mayStore = 1;
21136let BaseOpcode = "S2_storerb_pi";
21137let isNVStorable = 1;
21138let isPredicable = 1;
21139let opNewValue = 3;
21140let Constraints = "$Rx32 = $Rx32in";
21141}
21142def S2_storerbnew_pr : HInst<
21143(outs IntRegs:$Rx32),
21144(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21145"memb($Rx32++$Mu2) = $Nt8.new",
21146tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21147let Inst{7-0} = 0b00000000;
21148let Inst{12-11} = 0b00;
21149let Inst{31-21} = 0b10101101101;
21150let addrMode = PostInc;
21151let accessSize = ByteAccess;
21152let isNVStore = 1;
21153let isNewValue = 1;
21154let isRestrictNoSlot1Store = 1;
21155let mayStore = 1;
21156let BaseOpcode = "S2_storerb_pr";
21157let opNewValue = 3;
21158let Constraints = "$Rx32 = $Rx32in";
21159}
21160def S2_storerbnew_zomap : HInst<
21161(outs),
21162(ins IntRegs:$Rs32, IntRegs:$Nt8),
21163"memb($Rs32) = $Nt8.new",
21164tc_5deb5e47, TypeMAPPING> {
21165let isPseudo = 1;
21166let isCodeGenOnly = 1;
21167let opNewValue = 1;
21168}
21169def S2_storerbnewgp : HInst<
21170(outs),
21171(ins u32_0Imm:$Ii, IntRegs:$Nt8),
21172"memb(gp+#$Ii) = $Nt8.new",
21173tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
21174let Inst{12-11} = 0b00;
21175let Inst{24-21} = 0b0101;
21176let Inst{31-27} = 0b01001;
21177let accessSize = ByteAccess;
21178let isNVStore = 1;
21179let isNewValue = 1;
21180let isRestrictNoSlot1Store = 1;
21181let mayStore = 1;
21182let Uses = [GP];
21183let BaseOpcode = "S2_storerbabs";
21184let isPredicable = 1;
21185let opExtendable = 0;
21186let isExtentSigned = 0;
21187let opExtentBits = 16;
21188let opExtentAlign = 0;
21189let opNewValue = 1;
21190}
21191def S2_storerd_io : HInst<
21192(outs),
21193(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
21194"memd($Rs32+#$Ii) = $Rtt32",
21195tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
21196let Inst{24-21} = 0b1110;
21197let Inst{31-27} = 0b10100;
21198let addrMode = BaseImmOffset;
21199let accessSize = DoubleWordAccess;
21200let mayStore = 1;
21201let BaseOpcode = "S2_storerd_io";
21202let CextOpcode = "S2_storerd";
21203let InputType = "imm";
21204let isPredicable = 1;
21205let isExtendable = 1;
21206let opExtendable = 1;
21207let isExtentSigned = 1;
21208let opExtentBits = 14;
21209let opExtentAlign = 3;
21210}
21211def S2_storerd_pbr : HInst<
21212(outs IntRegs:$Rx32),
21213(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21214"memd($Rx32++$Mu2:brev) = $Rtt32",
21215tc_a2b365d2, TypeST>, Enc_928ca1 {
21216let Inst{7-0} = 0b00000000;
21217let Inst{31-21} = 0b10101111110;
21218let addrMode = PostInc;
21219let accessSize = DoubleWordAccess;
21220let mayStore = 1;
21221let Constraints = "$Rx32 = $Rx32in";
21222}
21223def S2_storerd_pci : HInst<
21224(outs IntRegs:$Rx32),
21225(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21226"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
21227tc_b4dc7630, TypeST>, Enc_395cc4 {
21228let Inst{2-0} = 0b000;
21229let Inst{7-7} = 0b0;
21230let Inst{31-21} = 0b10101001110;
21231let addrMode = PostInc;
21232let accessSize = DoubleWordAccess;
21233let mayStore = 1;
21234let Uses = [CS];
21235let Constraints = "$Rx32 = $Rx32in";
21236}
21237def S2_storerd_pcr : HInst<
21238(outs IntRegs:$Rx32),
21239(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21240"memd($Rx32++I:circ($Mu2)) = $Rtt32",
21241tc_a2b365d2, TypeST>, Enc_928ca1 {
21242let Inst{7-0} = 0b00000010;
21243let Inst{31-21} = 0b10101001110;
21244let addrMode = PostInc;
21245let accessSize = DoubleWordAccess;
21246let mayStore = 1;
21247let Uses = [CS];
21248let Constraints = "$Rx32 = $Rx32in";
21249}
21250def S2_storerd_pi : HInst<
21251(outs IntRegs:$Rx32),
21252(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
21253"memd($Rx32++#$Ii) = $Rtt32",
21254tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
21255let Inst{2-0} = 0b000;
21256let Inst{7-7} = 0b0;
21257let Inst{13-13} = 0b0;
21258let Inst{31-21} = 0b10101011110;
21259let addrMode = PostInc;
21260let accessSize = DoubleWordAccess;
21261let mayStore = 1;
21262let BaseOpcode = "S2_storerd_pi";
21263let CextOpcode = "S2_storerd";
21264let isPredicable = 1;
21265let Constraints = "$Rx32 = $Rx32in";
21266}
21267def S2_storerd_pr : HInst<
21268(outs IntRegs:$Rx32),
21269(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21270"memd($Rx32++$Mu2) = $Rtt32",
21271tc_a2b365d2, TypeST>, Enc_928ca1 {
21272let Inst{7-0} = 0b00000000;
21273let Inst{31-21} = 0b10101101110;
21274let addrMode = PostInc;
21275let accessSize = DoubleWordAccess;
21276let mayStore = 1;
21277let Constraints = "$Rx32 = $Rx32in";
21278}
21279def S2_storerd_zomap : HInst<
21280(outs),
21281(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
21282"memd($Rs32) = $Rtt32",
21283tc_ae5babd7, TypeMAPPING> {
21284let isPseudo = 1;
21285let isCodeGenOnly = 1;
21286}
21287def S2_storerdgp : HInst<
21288(outs),
21289(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
21290"memd(gp+#$Ii) = $Rtt32",
21291tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
21292let Inst{24-21} = 0b0110;
21293let Inst{31-27} = 0b01001;
21294let accessSize = DoubleWordAccess;
21295let mayStore = 1;
21296let Uses = [GP];
21297let BaseOpcode = "S2_storerdabs";
21298let isPredicable = 1;
21299let opExtendable = 0;
21300let isExtentSigned = 0;
21301let opExtentBits = 19;
21302let opExtentAlign = 3;
21303}
21304def S2_storerf_io : HInst<
21305(outs),
21306(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21307"memh($Rs32+#$Ii) = $Rt32.h",
21308tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21309let Inst{24-21} = 0b1011;
21310let Inst{31-27} = 0b10100;
21311let addrMode = BaseImmOffset;
21312let accessSize = HalfWordAccess;
21313let mayStore = 1;
21314let BaseOpcode = "S2_storerf_io";
21315let CextOpcode = "S2_storerf";
21316let InputType = "imm";
21317let isPredicable = 1;
21318let isExtendable = 1;
21319let opExtendable = 1;
21320let isExtentSigned = 1;
21321let opExtentBits = 12;
21322let opExtentAlign = 1;
21323}
21324def S2_storerf_pbr : HInst<
21325(outs IntRegs:$Rx32),
21326(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21327"memh($Rx32++$Mu2:brev) = $Rt32.h",
21328tc_a2b365d2, TypeST>, Enc_d5c73f {
21329let Inst{7-0} = 0b00000000;
21330let Inst{31-21} = 0b10101111011;
21331let addrMode = PostInc;
21332let accessSize = HalfWordAccess;
21333let mayStore = 1;
21334let Constraints = "$Rx32 = $Rx32in";
21335}
21336def S2_storerf_pci : HInst<
21337(outs IntRegs:$Rx32),
21338(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21339"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
21340tc_b4dc7630, TypeST>, Enc_935d9b {
21341let Inst{2-0} = 0b000;
21342let Inst{7-7} = 0b0;
21343let Inst{31-21} = 0b10101001011;
21344let addrMode = PostInc;
21345let accessSize = HalfWordAccess;
21346let mayStore = 1;
21347let Uses = [CS];
21348let Constraints = "$Rx32 = $Rx32in";
21349}
21350def S2_storerf_pcr : HInst<
21351(outs IntRegs:$Rx32),
21352(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21353"memh($Rx32++I:circ($Mu2)) = $Rt32.h",
21354tc_a2b365d2, TypeST>, Enc_d5c73f {
21355let Inst{7-0} = 0b00000010;
21356let Inst{31-21} = 0b10101001011;
21357let addrMode = PostInc;
21358let accessSize = HalfWordAccess;
21359let mayStore = 1;
21360let Uses = [CS];
21361let Constraints = "$Rx32 = $Rx32in";
21362}
21363def S2_storerf_pi : HInst<
21364(outs IntRegs:$Rx32),
21365(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21366"memh($Rx32++#$Ii) = $Rt32.h",
21367tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21368let Inst{2-0} = 0b000;
21369let Inst{7-7} = 0b0;
21370let Inst{13-13} = 0b0;
21371let Inst{31-21} = 0b10101011011;
21372let addrMode = PostInc;
21373let accessSize = HalfWordAccess;
21374let mayStore = 1;
21375let BaseOpcode = "S2_storerf_pi";
21376let CextOpcode = "S2_storerf";
21377let isPredicable = 1;
21378let Constraints = "$Rx32 = $Rx32in";
21379}
21380def S2_storerf_pr : HInst<
21381(outs IntRegs:$Rx32),
21382(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21383"memh($Rx32++$Mu2) = $Rt32.h",
21384tc_a2b365d2, TypeST>, Enc_d5c73f {
21385let Inst{7-0} = 0b00000000;
21386let Inst{31-21} = 0b10101101011;
21387let addrMode = PostInc;
21388let accessSize = HalfWordAccess;
21389let mayStore = 1;
21390let Constraints = "$Rx32 = $Rx32in";
21391}
21392def S2_storerf_zomap : HInst<
21393(outs),
21394(ins IntRegs:$Rs32, IntRegs:$Rt32),
21395"memh($Rs32) = $Rt32.h",
21396tc_ae5babd7, TypeMAPPING> {
21397let isPseudo = 1;
21398let isCodeGenOnly = 1;
21399}
21400def S2_storerfgp : HInst<
21401(outs),
21402(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21403"memh(gp+#$Ii) = $Rt32.h",
21404tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21405let Inst{24-21} = 0b0011;
21406let Inst{31-27} = 0b01001;
21407let accessSize = HalfWordAccess;
21408let mayStore = 1;
21409let Uses = [GP];
21410let BaseOpcode = "S2_storerfabs";
21411let isPredicable = 1;
21412let opExtendable = 0;
21413let isExtentSigned = 0;
21414let opExtentBits = 17;
21415let opExtentAlign = 1;
21416}
21417def S2_storerh_io : HInst<
21418(outs),
21419(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21420"memh($Rs32+#$Ii) = $Rt32",
21421tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21422let Inst{24-21} = 0b1010;
21423let Inst{31-27} = 0b10100;
21424let addrMode = BaseImmOffset;
21425let accessSize = HalfWordAccess;
21426let mayStore = 1;
21427let BaseOpcode = "S2_storerh_io";
21428let CextOpcode = "S2_storerh";
21429let InputType = "imm";
21430let isNVStorable = 1;
21431let isPredicable = 1;
21432let isExtendable = 1;
21433let opExtendable = 1;
21434let isExtentSigned = 1;
21435let opExtentBits = 12;
21436let opExtentAlign = 1;
21437}
21438def S2_storerh_pbr : HInst<
21439(outs IntRegs:$Rx32),
21440(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21441"memh($Rx32++$Mu2:brev) = $Rt32",
21442tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21443let Inst{7-0} = 0b00000000;
21444let Inst{31-21} = 0b10101111010;
21445let addrMode = PostInc;
21446let accessSize = HalfWordAccess;
21447let mayStore = 1;
21448let BaseOpcode = "S2_storerh_pbr";
21449let isNVStorable = 1;
21450let Constraints = "$Rx32 = $Rx32in";
21451}
21452def S2_storerh_pci : HInst<
21453(outs IntRegs:$Rx32),
21454(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21455"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21456tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel {
21457let Inst{2-0} = 0b000;
21458let Inst{7-7} = 0b0;
21459let Inst{31-21} = 0b10101001010;
21460let addrMode = PostInc;
21461let accessSize = HalfWordAccess;
21462let mayStore = 1;
21463let Uses = [CS];
21464let BaseOpcode = "S2_storerh_pci";
21465let isNVStorable = 1;
21466let Constraints = "$Rx32 = $Rx32in";
21467}
21468def S2_storerh_pcr : HInst<
21469(outs IntRegs:$Rx32),
21470(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21471"memh($Rx32++I:circ($Mu2)) = $Rt32",
21472tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21473let Inst{7-0} = 0b00000010;
21474let Inst{31-21} = 0b10101001010;
21475let addrMode = PostInc;
21476let accessSize = HalfWordAccess;
21477let mayStore = 1;
21478let Uses = [CS];
21479let BaseOpcode = "S2_storerh_pcr";
21480let isNVStorable = 1;
21481let Constraints = "$Rx32 = $Rx32in";
21482}
21483def S2_storerh_pi : HInst<
21484(outs IntRegs:$Rx32),
21485(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21486"memh($Rx32++#$Ii) = $Rt32",
21487tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21488let Inst{2-0} = 0b000;
21489let Inst{7-7} = 0b0;
21490let Inst{13-13} = 0b0;
21491let Inst{31-21} = 0b10101011010;
21492let addrMode = PostInc;
21493let accessSize = HalfWordAccess;
21494let mayStore = 1;
21495let BaseOpcode = "S2_storerh_pi";
21496let CextOpcode = "S2_storerh";
21497let isNVStorable = 1;
21498let isPredicable = 1;
21499let Constraints = "$Rx32 = $Rx32in";
21500}
21501def S2_storerh_pr : HInst<
21502(outs IntRegs:$Rx32),
21503(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21504"memh($Rx32++$Mu2) = $Rt32",
21505tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21506let Inst{7-0} = 0b00000000;
21507let Inst{31-21} = 0b10101101010;
21508let addrMode = PostInc;
21509let accessSize = HalfWordAccess;
21510let mayStore = 1;
21511let BaseOpcode = "S2_storerh_pr";
21512let isNVStorable = 1;
21513let Constraints = "$Rx32 = $Rx32in";
21514}
21515def S2_storerh_zomap : HInst<
21516(outs),
21517(ins IntRegs:$Rs32, IntRegs:$Rt32),
21518"memh($Rs32) = $Rt32",
21519tc_ae5babd7, TypeMAPPING> {
21520let isPseudo = 1;
21521let isCodeGenOnly = 1;
21522}
21523def S2_storerhgp : HInst<
21524(outs),
21525(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21526"memh(gp+#$Ii) = $Rt32",
21527tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21528let Inst{24-21} = 0b0010;
21529let Inst{31-27} = 0b01001;
21530let accessSize = HalfWordAccess;
21531let mayStore = 1;
21532let Uses = [GP];
21533let BaseOpcode = "S2_storerhabs";
21534let isNVStorable = 1;
21535let isPredicable = 1;
21536let opExtendable = 0;
21537let isExtentSigned = 0;
21538let opExtentBits = 17;
21539let opExtentAlign = 1;
21540}
21541def S2_storerhnew_io : HInst<
21542(outs),
21543(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21544"memh($Rs32+#$Ii) = $Nt8.new",
21545tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel {
21546let Inst{12-11} = 0b01;
21547let Inst{24-21} = 0b1101;
21548let Inst{31-27} = 0b10100;
21549let addrMode = BaseImmOffset;
21550let accessSize = HalfWordAccess;
21551let isNVStore = 1;
21552let isNewValue = 1;
21553let isRestrictNoSlot1Store = 1;
21554let mayStore = 1;
21555let BaseOpcode = "S2_storerh_io";
21556let CextOpcode = "S2_storerh";
21557let InputType = "imm";
21558let isPredicable = 1;
21559let isExtendable = 1;
21560let opExtendable = 1;
21561let isExtentSigned = 1;
21562let opExtentBits = 12;
21563let opExtentAlign = 1;
21564let opNewValue = 2;
21565}
21566def S2_storerhnew_pbr : HInst<
21567(outs IntRegs:$Rx32),
21568(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21569"memh($Rx32++$Mu2:brev) = $Nt8.new",
21570tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21571let Inst{7-0} = 0b00000000;
21572let Inst{12-11} = 0b01;
21573let Inst{31-21} = 0b10101111101;
21574let addrMode = PostInc;
21575let accessSize = HalfWordAccess;
21576let isNVStore = 1;
21577let isNewValue = 1;
21578let isRestrictNoSlot1Store = 1;
21579let mayStore = 1;
21580let BaseOpcode = "S2_storerh_pbr";
21581let opNewValue = 3;
21582let Constraints = "$Rx32 = $Rx32in";
21583}
21584def S2_storerhnew_pci : HInst<
21585(outs IntRegs:$Rx32),
21586(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21587"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21588tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel {
21589let Inst{2-0} = 0b000;
21590let Inst{7-7} = 0b0;
21591let Inst{12-11} = 0b01;
21592let Inst{31-21} = 0b10101001101;
21593let addrMode = PostInc;
21594let accessSize = HalfWordAccess;
21595let isNVStore = 1;
21596let isNewValue = 1;
21597let isRestrictNoSlot1Store = 1;
21598let mayStore = 1;
21599let Uses = [CS];
21600let BaseOpcode = "S2_storerh_pci";
21601let opNewValue = 4;
21602let Constraints = "$Rx32 = $Rx32in";
21603}
21604def S2_storerhnew_pcr : HInst<
21605(outs IntRegs:$Rx32),
21606(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21607"memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21608tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21609let Inst{7-0} = 0b00000010;
21610let Inst{12-11} = 0b01;
21611let Inst{31-21} = 0b10101001101;
21612let addrMode = PostInc;
21613let accessSize = HalfWordAccess;
21614let isNVStore = 1;
21615let isNewValue = 1;
21616let isRestrictNoSlot1Store = 1;
21617let mayStore = 1;
21618let Uses = [CS];
21619let BaseOpcode = "S2_storerh_pcr";
21620let opNewValue = 3;
21621let Constraints = "$Rx32 = $Rx32in";
21622}
21623def S2_storerhnew_pi : HInst<
21624(outs IntRegs:$Rx32),
21625(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21626"memh($Rx32++#$Ii) = $Nt8.new",
21627tc_92240447, TypeST>, Enc_e26546, AddrModeRel {
21628let Inst{2-0} = 0b000;
21629let Inst{7-7} = 0b0;
21630let Inst{13-11} = 0b001;
21631let Inst{31-21} = 0b10101011101;
21632let addrMode = PostInc;
21633let accessSize = HalfWordAccess;
21634let isNVStore = 1;
21635let isNewValue = 1;
21636let isRestrictNoSlot1Store = 1;
21637let mayStore = 1;
21638let BaseOpcode = "S2_storerh_pi";
21639let isNVStorable = 1;
21640let isPredicable = 1;
21641let opNewValue = 3;
21642let Constraints = "$Rx32 = $Rx32in";
21643}
21644def S2_storerhnew_pr : HInst<
21645(outs IntRegs:$Rx32),
21646(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21647"memh($Rx32++$Mu2) = $Nt8.new",
21648tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21649let Inst{7-0} = 0b00000000;
21650let Inst{12-11} = 0b01;
21651let Inst{31-21} = 0b10101101101;
21652let addrMode = PostInc;
21653let accessSize = HalfWordAccess;
21654let isNVStore = 1;
21655let isNewValue = 1;
21656let isRestrictNoSlot1Store = 1;
21657let mayStore = 1;
21658let BaseOpcode = "S2_storerh_pr";
21659let opNewValue = 3;
21660let Constraints = "$Rx32 = $Rx32in";
21661}
21662def S2_storerhnew_zomap : HInst<
21663(outs),
21664(ins IntRegs:$Rs32, IntRegs:$Nt8),
21665"memh($Rs32) = $Nt8.new",
21666tc_5deb5e47, TypeMAPPING> {
21667let isPseudo = 1;
21668let isCodeGenOnly = 1;
21669let opNewValue = 1;
21670}
21671def S2_storerhnewgp : HInst<
21672(outs),
21673(ins u31_1Imm:$Ii, IntRegs:$Nt8),
21674"memh(gp+#$Ii) = $Nt8.new",
21675tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21676let Inst{12-11} = 0b01;
21677let Inst{24-21} = 0b0101;
21678let Inst{31-27} = 0b01001;
21679let accessSize = HalfWordAccess;
21680let isNVStore = 1;
21681let isNewValue = 1;
21682let isRestrictNoSlot1Store = 1;
21683let mayStore = 1;
21684let Uses = [GP];
21685let BaseOpcode = "S2_storerhabs";
21686let isPredicable = 1;
21687let opExtendable = 0;
21688let isExtentSigned = 0;
21689let opExtentBits = 17;
21690let opExtentAlign = 1;
21691let opNewValue = 1;
21692}
21693def S2_storeri_io : HInst<
21694(outs),
21695(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21696"memw($Rs32+#$Ii) = $Rt32",
21697tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21698let Inst{24-21} = 0b1100;
21699let Inst{31-27} = 0b10100;
21700let addrMode = BaseImmOffset;
21701let accessSize = WordAccess;
21702let mayStore = 1;
21703let BaseOpcode = "S2_storeri_io";
21704let CextOpcode = "S2_storeri";
21705let InputType = "imm";
21706let isNVStorable = 1;
21707let isPredicable = 1;
21708let isExtendable = 1;
21709let opExtendable = 1;
21710let isExtentSigned = 1;
21711let opExtentBits = 13;
21712let opExtentAlign = 2;
21713}
21714def S2_storeri_pbr : HInst<
21715(outs IntRegs:$Rx32),
21716(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21717"memw($Rx32++$Mu2:brev) = $Rt32",
21718tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21719let Inst{7-0} = 0b00000000;
21720let Inst{31-21} = 0b10101111100;
21721let addrMode = PostInc;
21722let accessSize = WordAccess;
21723let mayStore = 1;
21724let BaseOpcode = "S2_storeri_pbr";
21725let isNVStorable = 1;
21726let Constraints = "$Rx32 = $Rx32in";
21727}
21728def S2_storeri_pci : HInst<
21729(outs IntRegs:$Rx32),
21730(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21731"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21732tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel {
21733let Inst{2-0} = 0b000;
21734let Inst{7-7} = 0b0;
21735let Inst{31-21} = 0b10101001100;
21736let addrMode = PostInc;
21737let accessSize = WordAccess;
21738let mayStore = 1;
21739let Uses = [CS];
21740let BaseOpcode = "S2_storeri_pci";
21741let isNVStorable = 1;
21742let Constraints = "$Rx32 = $Rx32in";
21743}
21744def S2_storeri_pcr : HInst<
21745(outs IntRegs:$Rx32),
21746(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21747"memw($Rx32++I:circ($Mu2)) = $Rt32",
21748tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21749let Inst{7-0} = 0b00000010;
21750let Inst{31-21} = 0b10101001100;
21751let addrMode = PostInc;
21752let accessSize = WordAccess;
21753let mayStore = 1;
21754let Uses = [CS];
21755let BaseOpcode = "S2_storeri_pcr";
21756let isNVStorable = 1;
21757let Constraints = "$Rx32 = $Rx32in";
21758}
21759def S2_storeri_pi : HInst<
21760(outs IntRegs:$Rx32),
21761(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21762"memw($Rx32++#$Ii) = $Rt32",
21763tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21764let Inst{2-0} = 0b000;
21765let Inst{7-7} = 0b0;
21766let Inst{13-13} = 0b0;
21767let Inst{31-21} = 0b10101011100;
21768let addrMode = PostInc;
21769let accessSize = WordAccess;
21770let mayStore = 1;
21771let BaseOpcode = "S2_storeri_pi";
21772let CextOpcode = "S2_storeri";
21773let isNVStorable = 1;
21774let isPredicable = 1;
21775let Constraints = "$Rx32 = $Rx32in";
21776}
21777def S2_storeri_pr : HInst<
21778(outs IntRegs:$Rx32),
21779(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21780"memw($Rx32++$Mu2) = $Rt32",
21781tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21782let Inst{7-0} = 0b00000000;
21783let Inst{31-21} = 0b10101101100;
21784let addrMode = PostInc;
21785let accessSize = WordAccess;
21786let mayStore = 1;
21787let BaseOpcode = "S2_storeri_pr";
21788let isNVStorable = 1;
21789let Constraints = "$Rx32 = $Rx32in";
21790}
21791def S2_storeri_zomap : HInst<
21792(outs),
21793(ins IntRegs:$Rs32, IntRegs:$Rt32),
21794"memw($Rs32) = $Rt32",
21795tc_ae5babd7, TypeMAPPING> {
21796let isPseudo = 1;
21797let isCodeGenOnly = 1;
21798}
21799def S2_storerigp : HInst<
21800(outs),
21801(ins u30_2Imm:$Ii, IntRegs:$Rt32),
21802"memw(gp+#$Ii) = $Rt32",
21803tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
21804let Inst{24-21} = 0b0100;
21805let Inst{31-27} = 0b01001;
21806let accessSize = WordAccess;
21807let mayStore = 1;
21808let Uses = [GP];
21809let BaseOpcode = "S2_storeriabs";
21810let isNVStorable = 1;
21811let isPredicable = 1;
21812let opExtendable = 0;
21813let isExtentSigned = 0;
21814let opExtentBits = 18;
21815let opExtentAlign = 2;
21816}
21817def S2_storerinew_io : HInst<
21818(outs),
21819(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21820"memw($Rs32+#$Ii) = $Nt8.new",
21821tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel {
21822let Inst{12-11} = 0b10;
21823let Inst{24-21} = 0b1101;
21824let Inst{31-27} = 0b10100;
21825let addrMode = BaseImmOffset;
21826let accessSize = WordAccess;
21827let isNVStore = 1;
21828let isNewValue = 1;
21829let isRestrictNoSlot1Store = 1;
21830let mayStore = 1;
21831let BaseOpcode = "S2_storeri_io";
21832let CextOpcode = "S2_storeri";
21833let InputType = "imm";
21834let isPredicable = 1;
21835let isExtendable = 1;
21836let opExtendable = 1;
21837let isExtentSigned = 1;
21838let opExtentBits = 13;
21839let opExtentAlign = 2;
21840let opNewValue = 2;
21841}
21842def S2_storerinew_pbr : HInst<
21843(outs IntRegs:$Rx32),
21844(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21845"memw($Rx32++$Mu2:brev) = $Nt8.new",
21846tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21847let Inst{7-0} = 0b00000000;
21848let Inst{12-11} = 0b10;
21849let Inst{31-21} = 0b10101111101;
21850let addrMode = PostInc;
21851let accessSize = WordAccess;
21852let isNVStore = 1;
21853let isNewValue = 1;
21854let isRestrictNoSlot1Store = 1;
21855let mayStore = 1;
21856let BaseOpcode = "S2_storeri_pbr";
21857let opNewValue = 3;
21858let Constraints = "$Rx32 = $Rx32in";
21859}
21860def S2_storerinew_pci : HInst<
21861(outs IntRegs:$Rx32),
21862(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21863"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21864tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel {
21865let Inst{2-0} = 0b000;
21866let Inst{7-7} = 0b0;
21867let Inst{12-11} = 0b10;
21868let Inst{31-21} = 0b10101001101;
21869let addrMode = PostInc;
21870let accessSize = WordAccess;
21871let isNVStore = 1;
21872let isNewValue = 1;
21873let isRestrictNoSlot1Store = 1;
21874let mayStore = 1;
21875let Uses = [CS];
21876let BaseOpcode = "S2_storeri_pci";
21877let opNewValue = 4;
21878let Constraints = "$Rx32 = $Rx32in";
21879}
21880def S2_storerinew_pcr : HInst<
21881(outs IntRegs:$Rx32),
21882(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21883"memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21884tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21885let Inst{7-0} = 0b00000010;
21886let Inst{12-11} = 0b10;
21887let Inst{31-21} = 0b10101001101;
21888let addrMode = PostInc;
21889let accessSize = WordAccess;
21890let isNVStore = 1;
21891let isNewValue = 1;
21892let isRestrictNoSlot1Store = 1;
21893let mayStore = 1;
21894let Uses = [CS];
21895let BaseOpcode = "S2_storeri_pcr";
21896let opNewValue = 3;
21897let Constraints = "$Rx32 = $Rx32in";
21898}
21899def S2_storerinew_pi : HInst<
21900(outs IntRegs:$Rx32),
21901(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21902"memw($Rx32++#$Ii) = $Nt8.new",
21903tc_92240447, TypeST>, Enc_223005, AddrModeRel {
21904let Inst{2-0} = 0b000;
21905let Inst{7-7} = 0b0;
21906let Inst{13-11} = 0b010;
21907let Inst{31-21} = 0b10101011101;
21908let addrMode = PostInc;
21909let accessSize = WordAccess;
21910let isNVStore = 1;
21911let isNewValue = 1;
21912let isRestrictNoSlot1Store = 1;
21913let mayStore = 1;
21914let BaseOpcode = "S2_storeri_pi";
21915let isPredicable = 1;
21916let opNewValue = 3;
21917let Constraints = "$Rx32 = $Rx32in";
21918}
21919def S2_storerinew_pr : HInst<
21920(outs IntRegs:$Rx32),
21921(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21922"memw($Rx32++$Mu2) = $Nt8.new",
21923tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21924let Inst{7-0} = 0b00000000;
21925let Inst{12-11} = 0b10;
21926let Inst{31-21} = 0b10101101101;
21927let addrMode = PostInc;
21928let accessSize = WordAccess;
21929let isNVStore = 1;
21930let isNewValue = 1;
21931let isRestrictNoSlot1Store = 1;
21932let mayStore = 1;
21933let BaseOpcode = "S2_storeri_pr";
21934let opNewValue = 3;
21935let Constraints = "$Rx32 = $Rx32in";
21936}
21937def S2_storerinew_zomap : HInst<
21938(outs),
21939(ins IntRegs:$Rs32, IntRegs:$Nt8),
21940"memw($Rs32) = $Nt8.new",
21941tc_5deb5e47, TypeMAPPING> {
21942let isPseudo = 1;
21943let isCodeGenOnly = 1;
21944let opNewValue = 1;
21945}
21946def S2_storerinewgp : HInst<
21947(outs),
21948(ins u30_2Imm:$Ii, IntRegs:$Nt8),
21949"memw(gp+#$Ii) = $Nt8.new",
21950tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21951let Inst{12-11} = 0b10;
21952let Inst{24-21} = 0b0101;
21953let Inst{31-27} = 0b01001;
21954let accessSize = WordAccess;
21955let isNVStore = 1;
21956let isNewValue = 1;
21957let isRestrictNoSlot1Store = 1;
21958let mayStore = 1;
21959let Uses = [GP];
21960let BaseOpcode = "S2_storeriabs";
21961let isPredicable = 1;
21962let opExtendable = 0;
21963let isExtentSigned = 0;
21964let opExtentBits = 18;
21965let opExtentAlign = 2;
21966let opNewValue = 1;
21967}
21968def S2_storew_locked : HInst<
21969(outs PredRegs:$Pd4),
21970(ins IntRegs:$Rs32, IntRegs:$Rt32),
21971"memw_locked($Rs32,$Pd4) = $Rt32",
21972tc_6f42bc60, TypeST>, Enc_c2b48e {
21973let Inst{7-2} = 0b000000;
21974let Inst{13-13} = 0b0;
21975let Inst{31-21} = 0b10100000101;
21976let accessSize = WordAccess;
21977let isPredicateLate = 1;
21978let isSoloAX = 1;
21979let mayStore = 1;
21980}
21981def S2_storew_rl_at_vi : HInst<
21982(outs),
21983(ins IntRegs:$Rs32, IntRegs:$Rt32),
21984"memw_rl($Rs32):at = $Rt32",
21985tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21986let Inst{7-2} = 0b000010;
21987let Inst{13-13} = 0b0;
21988let Inst{31-21} = 0b10100000101;
21989let accessSize = WordAccess;
21990let isSolo = 1;
21991let mayStore = 1;
21992}
21993def S2_storew_rl_st_vi : HInst<
21994(outs),
21995(ins IntRegs:$Rs32, IntRegs:$Rt32),
21996"memw_rl($Rs32):st = $Rt32",
21997tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21998let Inst{7-2} = 0b001010;
21999let Inst{13-13} = 0b0;
22000let Inst{31-21} = 0b10100000101;
22001let accessSize = WordAccess;
22002let isSolo = 1;
22003let mayStore = 1;
22004}
22005def S2_svsathb : HInst<
22006(outs IntRegs:$Rd32),
22007(ins IntRegs:$Rs32),
22008"$Rd32 = vsathb($Rs32)",
22009tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22010let Inst{13-5} = 0b000000000;
22011let Inst{31-21} = 0b10001100100;
22012let hasNewValue = 1;
22013let opNewValue = 0;
22014let Defs = [USR_OVF];
22015}
22016def S2_svsathub : HInst<
22017(outs IntRegs:$Rd32),
22018(ins IntRegs:$Rs32),
22019"$Rd32 = vsathub($Rs32)",
22020tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22021let Inst{13-5} = 0b000000010;
22022let Inst{31-21} = 0b10001100100;
22023let hasNewValue = 1;
22024let opNewValue = 0;
22025let Defs = [USR_OVF];
22026}
22027def S2_tableidxb : HInst<
22028(outs IntRegs:$Rx32),
22029(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22030"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
22031tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22032let Inst{31-22} = 0b1000011100;
22033let hasNewValue = 1;
22034let opNewValue = 0;
22035let prefersSlot3 = 1;
22036let Constraints = "$Rx32 = $Rx32in";
22037}
22038def S2_tableidxb_goodsyntax : HInst<
22039(outs IntRegs:$Rx32),
22040(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22041"$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
22042tc_bb831a7c, TypeS_2op> {
22043let hasNewValue = 1;
22044let opNewValue = 0;
22045let isPseudo = 1;
22046let isCodeGenOnly = 1;
22047let Constraints = "$Rx32 = $Rx32in";
22048}
22049def S2_tableidxd : HInst<
22050(outs IntRegs:$Rx32),
22051(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22052"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
22053tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22054let Inst{31-22} = 0b1000011111;
22055let hasNewValue = 1;
22056let opNewValue = 0;
22057let prefersSlot3 = 1;
22058let Constraints = "$Rx32 = $Rx32in";
22059}
22060def S2_tableidxd_goodsyntax : HInst<
22061(outs IntRegs:$Rx32),
22062(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22063"$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
22064tc_bb831a7c, TypeS_2op> {
22065let hasNewValue = 1;
22066let opNewValue = 0;
22067let isPseudo = 1;
22068let Constraints = "$Rx32 = $Rx32in";
22069}
22070def S2_tableidxh : HInst<
22071(outs IntRegs:$Rx32),
22072(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22073"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
22074tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22075let Inst{31-22} = 0b1000011101;
22076let hasNewValue = 1;
22077let opNewValue = 0;
22078let prefersSlot3 = 1;
22079let Constraints = "$Rx32 = $Rx32in";
22080}
22081def S2_tableidxh_goodsyntax : HInst<
22082(outs IntRegs:$Rx32),
22083(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22084"$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
22085tc_bb831a7c, TypeS_2op> {
22086let hasNewValue = 1;
22087let opNewValue = 0;
22088let isPseudo = 1;
22089let Constraints = "$Rx32 = $Rx32in";
22090}
22091def S2_tableidxw : HInst<
22092(outs IntRegs:$Rx32),
22093(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22094"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
22095tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22096let Inst{31-22} = 0b1000011110;
22097let hasNewValue = 1;
22098let opNewValue = 0;
22099let prefersSlot3 = 1;
22100let Constraints = "$Rx32 = $Rx32in";
22101}
22102def S2_tableidxw_goodsyntax : HInst<
22103(outs IntRegs:$Rx32),
22104(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22105"$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
22106tc_bb831a7c, TypeS_2op> {
22107let hasNewValue = 1;
22108let opNewValue = 0;
22109let isPseudo = 1;
22110let Constraints = "$Rx32 = $Rx32in";
22111}
22112def S2_togglebit_i : HInst<
22113(outs IntRegs:$Rd32),
22114(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22115"$Rd32 = togglebit($Rs32,#$Ii)",
22116tc_5da50c4b, TypeS_2op>, Enc_a05677 {
22117let Inst{7-5} = 0b010;
22118let Inst{13-13} = 0b0;
22119let Inst{31-21} = 0b10001100110;
22120let hasNewValue = 1;
22121let opNewValue = 0;
22122}
22123def S2_togglebit_r : HInst<
22124(outs IntRegs:$Rd32),
22125(ins IntRegs:$Rs32, IntRegs:$Rt32),
22126"$Rd32 = togglebit($Rs32,$Rt32)",
22127tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
22128let Inst{7-5} = 0b100;
22129let Inst{13-13} = 0b0;
22130let Inst{31-21} = 0b11000110100;
22131let hasNewValue = 1;
22132let opNewValue = 0;
22133}
22134def S2_tstbit_i : HInst<
22135(outs PredRegs:$Pd4),
22136(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22137"$Pd4 = tstbit($Rs32,#$Ii)",
22138tc_a1297125, TypeS_2op>, Enc_83ee64 {
22139let Inst{7-2} = 0b000000;
22140let Inst{13-13} = 0b0;
22141let Inst{31-21} = 0b10000101000;
22142}
22143def S2_tstbit_r : HInst<
22144(outs PredRegs:$Pd4),
22145(ins IntRegs:$Rs32, IntRegs:$Rt32),
22146"$Pd4 = tstbit($Rs32,$Rt32)",
22147tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22148let Inst{7-2} = 0b000000;
22149let Inst{13-13} = 0b0;
22150let Inst{31-21} = 0b11000111000;
22151}
22152def S2_valignib : HInst<
22153(outs DoubleRegs:$Rdd32),
22154(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
22155"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
22156tc_6fc5dbea, TypeS_3op>, Enc_729ff7 {
22157let Inst{13-13} = 0b0;
22158let Inst{31-21} = 0b11000000000;
22159}
22160def S2_valignrb : HInst<
22161(outs DoubleRegs:$Rdd32),
22162(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
22163"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
22164tc_6fc5dbea, TypeS_3op>, Enc_8c6530 {
22165let Inst{7-7} = 0b0;
22166let Inst{13-13} = 0b0;
22167let Inst{31-21} = 0b11000010000;
22168}
22169def S2_vcnegh : HInst<
22170(outs DoubleRegs:$Rdd32),
22171(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22172"$Rdd32 = vcnegh($Rss32,$Rt32)",
22173tc_8a825db2, TypeS_3op>, Enc_927852 {
22174let Inst{7-5} = 0b010;
22175let Inst{13-13} = 0b0;
22176let Inst{31-21} = 0b11000011110;
22177let prefersSlot3 = 1;
22178let Defs = [USR_OVF];
22179}
22180def S2_vcrotate : HInst<
22181(outs DoubleRegs:$Rdd32),
22182(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22183"$Rdd32 = vcrotate($Rss32,$Rt32)",
22184tc_0dfac0a7, TypeS_3op>, Enc_927852 {
22185let Inst{7-5} = 0b000;
22186let Inst{13-13} = 0b0;
22187let Inst{31-21} = 0b11000011110;
22188let prefersSlot3 = 1;
22189let Defs = [USR_OVF];
22190}
22191def S2_vrcnegh : HInst<
22192(outs DoubleRegs:$Rxx32),
22193(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
22194"$Rxx32 += vrcnegh($Rss32,$Rt32)",
22195tc_7f8ae742, TypeS_3op>, Enc_1aa186 {
22196let Inst{7-5} = 0b111;
22197let Inst{13-13} = 0b1;
22198let Inst{31-21} = 0b11001011001;
22199let prefersSlot3 = 1;
22200let Constraints = "$Rxx32 = $Rxx32in";
22201}
22202def S2_vrndpackwh : HInst<
22203(outs IntRegs:$Rd32),
22204(ins DoubleRegs:$Rss32),
22205"$Rd32 = vrndwh($Rss32)",
22206tc_e3d699e3, TypeS_2op>, Enc_90cd8b {
22207let Inst{13-5} = 0b000000100;
22208let Inst{31-21} = 0b10001000100;
22209let hasNewValue = 1;
22210let opNewValue = 0;
22211let prefersSlot3 = 1;
22212}
22213def S2_vrndpackwhs : HInst<
22214(outs IntRegs:$Rd32),
22215(ins DoubleRegs:$Rss32),
22216"$Rd32 = vrndwh($Rss32):sat",
22217tc_d61dfdc3, TypeS_2op>, Enc_90cd8b {
22218let Inst{13-5} = 0b000000110;
22219let Inst{31-21} = 0b10001000100;
22220let hasNewValue = 1;
22221let opNewValue = 0;
22222let prefersSlot3 = 1;
22223let Defs = [USR_OVF];
22224}
22225def S2_vsathb : HInst<
22226(outs IntRegs:$Rd32),
22227(ins DoubleRegs:$Rss32),
22228"$Rd32 = vsathb($Rss32)",
22229tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22230let Inst{13-5} = 0b000000110;
22231let Inst{31-21} = 0b10001000000;
22232let hasNewValue = 1;
22233let opNewValue = 0;
22234let Defs = [USR_OVF];
22235}
22236def S2_vsathb_nopack : HInst<
22237(outs DoubleRegs:$Rdd32),
22238(ins DoubleRegs:$Rss32),
22239"$Rdd32 = vsathb($Rss32)",
22240tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22241let Inst{13-5} = 0b000000111;
22242let Inst{31-21} = 0b10000000000;
22243let Defs = [USR_OVF];
22244}
22245def S2_vsathub : HInst<
22246(outs IntRegs:$Rd32),
22247(ins DoubleRegs:$Rss32),
22248"$Rd32 = vsathub($Rss32)",
22249tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22250let Inst{13-5} = 0b000000000;
22251let Inst{31-21} = 0b10001000000;
22252let hasNewValue = 1;
22253let opNewValue = 0;
22254let Defs = [USR_OVF];
22255}
22256def S2_vsathub_nopack : HInst<
22257(outs DoubleRegs:$Rdd32),
22258(ins DoubleRegs:$Rss32),
22259"$Rdd32 = vsathub($Rss32)",
22260tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22261let Inst{13-5} = 0b000000100;
22262let Inst{31-21} = 0b10000000000;
22263let Defs = [USR_OVF];
22264}
22265def S2_vsatwh : HInst<
22266(outs IntRegs:$Rd32),
22267(ins DoubleRegs:$Rss32),
22268"$Rd32 = vsatwh($Rss32)",
22269tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22270let Inst{13-5} = 0b000000010;
22271let Inst{31-21} = 0b10001000000;
22272let hasNewValue = 1;
22273let opNewValue = 0;
22274let Defs = [USR_OVF];
22275}
22276def S2_vsatwh_nopack : HInst<
22277(outs DoubleRegs:$Rdd32),
22278(ins DoubleRegs:$Rss32),
22279"$Rdd32 = vsatwh($Rss32)",
22280tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22281let Inst{13-5} = 0b000000110;
22282let Inst{31-21} = 0b10000000000;
22283let Defs = [USR_OVF];
22284}
22285def S2_vsatwuh : HInst<
22286(outs IntRegs:$Rd32),
22287(ins DoubleRegs:$Rss32),
22288"$Rd32 = vsatwuh($Rss32)",
22289tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22290let Inst{13-5} = 0b000000100;
22291let Inst{31-21} = 0b10001000000;
22292let hasNewValue = 1;
22293let opNewValue = 0;
22294let Defs = [USR_OVF];
22295}
22296def S2_vsatwuh_nopack : HInst<
22297(outs DoubleRegs:$Rdd32),
22298(ins DoubleRegs:$Rss32),
22299"$Rdd32 = vsatwuh($Rss32)",
22300tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22301let Inst{13-5} = 0b000000101;
22302let Inst{31-21} = 0b10000000000;
22303let Defs = [USR_OVF];
22304}
22305def S2_vsplatrb : HInst<
22306(outs IntRegs:$Rd32),
22307(ins IntRegs:$Rs32),
22308"$Rd32 = vsplatb($Rs32)",
22309tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22310let Inst{13-5} = 0b000000111;
22311let Inst{31-21} = 0b10001100010;
22312let hasNewValue = 1;
22313let opNewValue = 0;
22314let isAsCheapAsAMove = 1;
22315let isReMaterializable = 1;
22316}
22317def S2_vsplatrh : HInst<
22318(outs DoubleRegs:$Rdd32),
22319(ins IntRegs:$Rs32),
22320"$Rdd32 = vsplath($Rs32)",
22321tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22322let Inst{13-5} = 0b000000010;
22323let Inst{31-21} = 0b10000100010;
22324let isAsCheapAsAMove = 1;
22325let isReMaterializable = 1;
22326}
22327def S2_vspliceib : HInst<
22328(outs DoubleRegs:$Rdd32),
22329(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
22330"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
22331tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 {
22332let Inst{13-13} = 0b0;
22333let Inst{31-21} = 0b11000000100;
22334}
22335def S2_vsplicerb : HInst<
22336(outs DoubleRegs:$Rdd32),
22337(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
22338"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
22339tc_6fc5dbea, TypeS_3op>, Enc_dbd70c {
22340let Inst{7-7} = 0b0;
22341let Inst{13-13} = 0b0;
22342let Inst{31-21} = 0b11000010100;
22343}
22344def S2_vsxtbh : HInst<
22345(outs DoubleRegs:$Rdd32),
22346(ins IntRegs:$Rs32),
22347"$Rdd32 = vsxtbh($Rs32)",
22348tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22349let Inst{13-5} = 0b000000000;
22350let Inst{31-21} = 0b10000100000;
22351let isAsCheapAsAMove = 1;
22352let isReMaterializable = 1;
22353}
22354def S2_vsxthw : HInst<
22355(outs DoubleRegs:$Rdd32),
22356(ins IntRegs:$Rs32),
22357"$Rdd32 = vsxthw($Rs32)",
22358tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22359let Inst{13-5} = 0b000000100;
22360let Inst{31-21} = 0b10000100000;
22361let isAsCheapAsAMove = 1;
22362let isReMaterializable = 1;
22363}
22364def S2_vtrunehb : HInst<
22365(outs IntRegs:$Rd32),
22366(ins DoubleRegs:$Rss32),
22367"$Rd32 = vtrunehb($Rss32)",
22368tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22369let Inst{13-5} = 0b000000010;
22370let Inst{31-21} = 0b10001000100;
22371let hasNewValue = 1;
22372let opNewValue = 0;
22373}
22374def S2_vtrunewh : HInst<
22375(outs DoubleRegs:$Rdd32),
22376(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22377"$Rdd32 = vtrunewh($Rss32,$Rtt32)",
22378tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22379let Inst{7-5} = 0b010;
22380let Inst{13-13} = 0b0;
22381let Inst{31-21} = 0b11000001100;
22382}
22383def S2_vtrunohb : HInst<
22384(outs IntRegs:$Rd32),
22385(ins DoubleRegs:$Rss32),
22386"$Rd32 = vtrunohb($Rss32)",
22387tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22388let Inst{13-5} = 0b000000000;
22389let Inst{31-21} = 0b10001000100;
22390let hasNewValue = 1;
22391let opNewValue = 0;
22392}
22393def S2_vtrunowh : HInst<
22394(outs DoubleRegs:$Rdd32),
22395(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22396"$Rdd32 = vtrunowh($Rss32,$Rtt32)",
22397tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22398let Inst{7-5} = 0b100;
22399let Inst{13-13} = 0b0;
22400let Inst{31-21} = 0b11000001100;
22401}
22402def S2_vzxtbh : HInst<
22403(outs DoubleRegs:$Rdd32),
22404(ins IntRegs:$Rs32),
22405"$Rdd32 = vzxtbh($Rs32)",
22406tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22407let Inst{13-5} = 0b000000010;
22408let Inst{31-21} = 0b10000100000;
22409let isAsCheapAsAMove = 1;
22410let isReMaterializable = 1;
22411}
22412def S2_vzxthw : HInst<
22413(outs DoubleRegs:$Rdd32),
22414(ins IntRegs:$Rs32),
22415"$Rdd32 = vzxthw($Rs32)",
22416tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22417let Inst{13-5} = 0b000000110;
22418let Inst{31-21} = 0b10000100000;
22419let isAsCheapAsAMove = 1;
22420let isReMaterializable = 1;
22421}
22422def S4_addaddi : HInst<
22423(outs IntRegs:$Rd32),
22424(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22425"$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22426tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
22427let Inst{31-23} = 0b110110110;
22428let hasNewValue = 1;
22429let opNewValue = 0;
22430let prefersSlot3 = 1;
22431let isExtendable = 1;
22432let opExtendable = 3;
22433let isExtentSigned = 1;
22434let opExtentBits = 6;
22435let opExtentAlign = 0;
22436}
22437def S4_addi_asl_ri : HInst<
22438(outs IntRegs:$Rx32),
22439(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22440"$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22441tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22442let Inst{2-0} = 0b100;
22443let Inst{4-4} = 0b0;
22444let Inst{31-24} = 0b11011110;
22445let hasNewValue = 1;
22446let opNewValue = 0;
22447let prefersSlot3 = 1;
22448let isExtendable = 1;
22449let opExtendable = 1;
22450let isExtentSigned = 0;
22451let opExtentBits = 8;
22452let opExtentAlign = 0;
22453let Constraints = "$Rx32 = $Rx32in";
22454}
22455def S4_addi_lsr_ri : HInst<
22456(outs IntRegs:$Rx32),
22457(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22458"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22459tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22460let Inst{2-0} = 0b100;
22461let Inst{4-4} = 0b1;
22462let Inst{31-24} = 0b11011110;
22463let hasNewValue = 1;
22464let opNewValue = 0;
22465let prefersSlot3 = 1;
22466let isExtendable = 1;
22467let opExtendable = 1;
22468let isExtentSigned = 0;
22469let opExtentBits = 8;
22470let opExtentAlign = 0;
22471let Constraints = "$Rx32 = $Rx32in";
22472}
22473def S4_andi_asl_ri : HInst<
22474(outs IntRegs:$Rx32),
22475(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22476"$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22477tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22478let Inst{2-0} = 0b000;
22479let Inst{4-4} = 0b0;
22480let Inst{31-24} = 0b11011110;
22481let hasNewValue = 1;
22482let opNewValue = 0;
22483let prefersSlot3 = 1;
22484let isExtendable = 1;
22485let opExtendable = 1;
22486let isExtentSigned = 0;
22487let opExtentBits = 8;
22488let opExtentAlign = 0;
22489let Constraints = "$Rx32 = $Rx32in";
22490}
22491def S4_andi_lsr_ri : HInst<
22492(outs IntRegs:$Rx32),
22493(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22494"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22495tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22496let Inst{2-0} = 0b000;
22497let Inst{4-4} = 0b1;
22498let Inst{31-24} = 0b11011110;
22499let hasNewValue = 1;
22500let opNewValue = 0;
22501let prefersSlot3 = 1;
22502let isExtendable = 1;
22503let opExtendable = 1;
22504let isExtentSigned = 0;
22505let opExtentBits = 8;
22506let opExtentAlign = 0;
22507let Constraints = "$Rx32 = $Rx32in";
22508}
22509def S4_clbaddi : HInst<
22510(outs IntRegs:$Rd32),
22511(ins IntRegs:$Rs32, s6_0Imm:$Ii),
22512"$Rd32 = add(clb($Rs32),#$Ii)",
22513tc_a08b630b, TypeS_2op>, Enc_9fae8a {
22514let Inst{7-5} = 0b000;
22515let Inst{31-21} = 0b10001100001;
22516let hasNewValue = 1;
22517let opNewValue = 0;
22518let prefersSlot3 = 1;
22519}
22520def S4_clbpaddi : HInst<
22521(outs IntRegs:$Rd32),
22522(ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22523"$Rd32 = add(clb($Rss32),#$Ii)",
22524tc_a08b630b, TypeS_2op>, Enc_a1640c {
22525let Inst{7-5} = 0b010;
22526let Inst{31-21} = 0b10001000011;
22527let hasNewValue = 1;
22528let opNewValue = 0;
22529let prefersSlot3 = 1;
22530}
22531def S4_clbpnorm : HInst<
22532(outs IntRegs:$Rd32),
22533(ins DoubleRegs:$Rss32),
22534"$Rd32 = normamt($Rss32)",
22535tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
22536let Inst{13-5} = 0b000000000;
22537let Inst{31-21} = 0b10001000011;
22538let hasNewValue = 1;
22539let opNewValue = 0;
22540let prefersSlot3 = 1;
22541}
22542def S4_extract : HInst<
22543(outs IntRegs:$Rd32),
22544(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22545"$Rd32 = extract($Rs32,#$Ii,#$II)",
22546tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
22547let Inst{13-13} = 0b0;
22548let Inst{31-23} = 0b100011011;
22549let hasNewValue = 1;
22550let opNewValue = 0;
22551let prefersSlot3 = 1;
22552}
22553def S4_extract_rp : HInst<
22554(outs IntRegs:$Rd32),
22555(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22556"$Rd32 = extract($Rs32,$Rtt32)",
22557tc_a08b630b, TypeS_3op>, Enc_e07374 {
22558let Inst{7-5} = 0b010;
22559let Inst{13-13} = 0b0;
22560let Inst{31-21} = 0b11001001000;
22561let hasNewValue = 1;
22562let opNewValue = 0;
22563let prefersSlot3 = 1;
22564}
22565def S4_extractp : HInst<
22566(outs DoubleRegs:$Rdd32),
22567(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22568"$Rdd32 = extract($Rss32,#$Ii,#$II)",
22569tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
22570let Inst{31-24} = 0b10001010;
22571let prefersSlot3 = 1;
22572}
22573def S4_extractp_rp : HInst<
22574(outs DoubleRegs:$Rdd32),
22575(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22576"$Rdd32 = extract($Rss32,$Rtt32)",
22577tc_a08b630b, TypeS_3op>, Enc_a56825 {
22578let Inst{7-5} = 0b100;
22579let Inst{13-13} = 0b0;
22580let Inst{31-21} = 0b11000001110;
22581let prefersSlot3 = 1;
22582}
22583def S4_lsli : HInst<
22584(outs IntRegs:$Rd32),
22585(ins s6_0Imm:$Ii, IntRegs:$Rt32),
22586"$Rd32 = lsl(#$Ii,$Rt32)",
22587tc_5da50c4b, TypeS_3op>, Enc_fef969 {
22588let Inst{7-6} = 0b11;
22589let Inst{13-13} = 0b0;
22590let Inst{31-21} = 0b11000110100;
22591let hasNewValue = 1;
22592let opNewValue = 0;
22593}
22594def S4_ntstbit_i : HInst<
22595(outs PredRegs:$Pd4),
22596(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22597"$Pd4 = !tstbit($Rs32,#$Ii)",
22598tc_a1297125, TypeS_2op>, Enc_83ee64 {
22599let Inst{7-2} = 0b000000;
22600let Inst{13-13} = 0b0;
22601let Inst{31-21} = 0b10000101001;
22602}
22603def S4_ntstbit_r : HInst<
22604(outs PredRegs:$Pd4),
22605(ins IntRegs:$Rs32, IntRegs:$Rt32),
22606"$Pd4 = !tstbit($Rs32,$Rt32)",
22607tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22608let Inst{7-2} = 0b000000;
22609let Inst{13-13} = 0b0;
22610let Inst{31-21} = 0b11000111001;
22611}
22612def S4_or_andi : HInst<
22613(outs IntRegs:$Rx32),
22614(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22615"$Rx32 |= and($Rs32,#$Ii)",
22616tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22617let Inst{31-22} = 0b1101101000;
22618let hasNewValue = 1;
22619let opNewValue = 0;
22620let prefersSlot3 = 1;
22621let InputType = "imm";
22622let isExtendable = 1;
22623let opExtendable = 3;
22624let isExtentSigned = 1;
22625let opExtentBits = 10;
22626let opExtentAlign = 0;
22627let Constraints = "$Rx32 = $Rx32in";
22628}
22629def S4_or_andix : HInst<
22630(outs IntRegs:$Rx32),
22631(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22632"$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22633tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> {
22634let Inst{31-22} = 0b1101101001;
22635let hasNewValue = 1;
22636let opNewValue = 0;
22637let prefersSlot3 = 1;
22638let isExtendable = 1;
22639let opExtendable = 3;
22640let isExtentSigned = 1;
22641let opExtentBits = 10;
22642let opExtentAlign = 0;
22643let Constraints = "$Rx32 = $Rx32in";
22644}
22645def S4_or_ori : HInst<
22646(outs IntRegs:$Rx32),
22647(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22648"$Rx32 |= or($Rs32,#$Ii)",
22649tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22650let Inst{31-22} = 0b1101101010;
22651let hasNewValue = 1;
22652let opNewValue = 0;
22653let prefersSlot3 = 1;
22654let InputType = "imm";
22655let isExtendable = 1;
22656let opExtendable = 3;
22657let isExtentSigned = 1;
22658let opExtentBits = 10;
22659let opExtentAlign = 0;
22660let Constraints = "$Rx32 = $Rx32in";
22661}
22662def S4_ori_asl_ri : HInst<
22663(outs IntRegs:$Rx32),
22664(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22665"$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22666tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22667let Inst{2-0} = 0b010;
22668let Inst{4-4} = 0b0;
22669let Inst{31-24} = 0b11011110;
22670let hasNewValue = 1;
22671let opNewValue = 0;
22672let prefersSlot3 = 1;
22673let isExtendable = 1;
22674let opExtendable = 1;
22675let isExtentSigned = 0;
22676let opExtentBits = 8;
22677let opExtentAlign = 0;
22678let Constraints = "$Rx32 = $Rx32in";
22679}
22680def S4_ori_lsr_ri : HInst<
22681(outs IntRegs:$Rx32),
22682(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22683"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22684tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22685let Inst{2-0} = 0b010;
22686let Inst{4-4} = 0b1;
22687let Inst{31-24} = 0b11011110;
22688let hasNewValue = 1;
22689let opNewValue = 0;
22690let prefersSlot3 = 1;
22691let isExtendable = 1;
22692let opExtendable = 1;
22693let isExtentSigned = 0;
22694let opExtentBits = 8;
22695let opExtentAlign = 0;
22696let Constraints = "$Rx32 = $Rx32in";
22697}
22698def S4_parity : HInst<
22699(outs IntRegs:$Rd32),
22700(ins IntRegs:$Rs32, IntRegs:$Rt32),
22701"$Rd32 = parity($Rs32,$Rt32)",
22702tc_a08b630b, TypeALU64>, Enc_5ab2be {
22703let Inst{7-5} = 0b000;
22704let Inst{13-13} = 0b0;
22705let Inst{31-21} = 0b11010101111;
22706let hasNewValue = 1;
22707let opNewValue = 0;
22708let prefersSlot3 = 1;
22709}
22710def S4_pstorerbf_abs : HInst<
22711(outs),
22712(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22713"if (!$Pv4) memb(#$Ii) = $Rt32",
22714tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
22715let Inst{2-2} = 0b1;
22716let Inst{7-7} = 0b1;
22717let Inst{13-13} = 0b0;
22718let Inst{31-18} = 0b10101111000000;
22719let isPredicated = 1;
22720let isPredicatedFalse = 1;
22721let addrMode = Absolute;
22722let accessSize = ByteAccess;
22723let isExtended = 1;
22724let mayStore = 1;
22725let BaseOpcode = "S2_storerbabs";
22726let CextOpcode = "S2_storerb";
22727let isNVStorable = 1;
22728let DecoderNamespace = "MustExtend";
22729let isExtendable = 1;
22730let opExtendable = 1;
22731let isExtentSigned = 0;
22732let opExtentBits = 6;
22733let opExtentAlign = 0;
22734}
22735def S4_pstorerbf_rr : HInst<
22736(outs),
22737(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22738"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22739tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
22740let Inst{31-21} = 0b00110101000;
22741let isPredicated = 1;
22742let isPredicatedFalse = 1;
22743let addrMode = BaseRegOffset;
22744let accessSize = ByteAccess;
22745let mayStore = 1;
22746let BaseOpcode = "S4_storerb_rr";
22747let CextOpcode = "S2_storerb";
22748let InputType = "reg";
22749let isNVStorable = 1;
22750}
22751def S4_pstorerbfnew_abs : HInst<
22752(outs),
22753(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22754"if (!$Pv4.new) memb(#$Ii) = $Rt32",
22755tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
22756let Inst{2-2} = 0b1;
22757let Inst{7-7} = 0b1;
22758let Inst{13-13} = 0b1;
22759let Inst{31-18} = 0b10101111000000;
22760let isPredicated = 1;
22761let isPredicatedFalse = 1;
22762let addrMode = Absolute;
22763let accessSize = ByteAccess;
22764let isPredicatedNew = 1;
22765let isExtended = 1;
22766let mayStore = 1;
22767let BaseOpcode = "S2_storerbabs";
22768let CextOpcode = "S2_storerb";
22769let isNVStorable = 1;
22770let DecoderNamespace = "MustExtend";
22771let isExtendable = 1;
22772let opExtendable = 1;
22773let isExtentSigned = 0;
22774let opExtentBits = 6;
22775let opExtentAlign = 0;
22776}
22777def S4_pstorerbfnew_io : HInst<
22778(outs),
22779(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22780"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22781tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22782let Inst{2-2} = 0b0;
22783let Inst{31-21} = 0b01000110000;
22784let isPredicated = 1;
22785let isPredicatedFalse = 1;
22786let addrMode = BaseImmOffset;
22787let accessSize = ByteAccess;
22788let isPredicatedNew = 1;
22789let mayStore = 1;
22790let BaseOpcode = "S2_storerb_io";
22791let CextOpcode = "S2_storerb";
22792let InputType = "imm";
22793let isNVStorable = 1;
22794let isExtendable = 1;
22795let opExtendable = 2;
22796let isExtentSigned = 0;
22797let opExtentBits = 6;
22798let opExtentAlign = 0;
22799}
22800def S4_pstorerbfnew_rr : HInst<
22801(outs),
22802(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22803"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22804tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
22805let Inst{31-21} = 0b00110111000;
22806let isPredicated = 1;
22807let isPredicatedFalse = 1;
22808let addrMode = BaseRegOffset;
22809let accessSize = ByteAccess;
22810let isPredicatedNew = 1;
22811let mayStore = 1;
22812let BaseOpcode = "S4_storerb_rr";
22813let CextOpcode = "S2_storerb";
22814let InputType = "reg";
22815let isNVStorable = 1;
22816}
22817def S4_pstorerbfnew_zomap : HInst<
22818(outs),
22819(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22820"if (!$Pv4.new) memb($Rs32) = $Rt32",
22821tc_a2b365d2, TypeMAPPING> {
22822let isPseudo = 1;
22823let isCodeGenOnly = 1;
22824}
22825def S4_pstorerbnewf_abs : HInst<
22826(outs),
22827(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22828"if (!$Pv4) memb(#$Ii) = $Nt8.new",
22829tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22830let Inst{2-2} = 0b1;
22831let Inst{7-7} = 0b1;
22832let Inst{13-11} = 0b000;
22833let Inst{31-18} = 0b10101111101000;
22834let isPredicated = 1;
22835let isPredicatedFalse = 1;
22836let addrMode = Absolute;
22837let accessSize = ByteAccess;
22838let isNVStore = 1;
22839let isNewValue = 1;
22840let isExtended = 1;
22841let isRestrictNoSlot1Store = 1;
22842let mayStore = 1;
22843let BaseOpcode = "S2_storerbabs";
22844let CextOpcode = "S2_storerb";
22845let DecoderNamespace = "MustExtend";
22846let isExtendable = 1;
22847let opExtendable = 1;
22848let isExtentSigned = 0;
22849let opExtentBits = 6;
22850let opExtentAlign = 0;
22851let opNewValue = 2;
22852}
22853def S4_pstorerbnewf_rr : HInst<
22854(outs),
22855(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22856"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22857tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22858let Inst{4-3} = 0b00;
22859let Inst{31-21} = 0b00110101101;
22860let isPredicated = 1;
22861let isPredicatedFalse = 1;
22862let addrMode = BaseRegOffset;
22863let accessSize = ByteAccess;
22864let isNVStore = 1;
22865let isNewValue = 1;
22866let isRestrictNoSlot1Store = 1;
22867let mayStore = 1;
22868let BaseOpcode = "S4_storerb_rr";
22869let CextOpcode = "S2_storerb";
22870let InputType = "reg";
22871let opNewValue = 4;
22872}
22873def S4_pstorerbnewfnew_abs : HInst<
22874(outs),
22875(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22876"if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22877tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22878let Inst{2-2} = 0b1;
22879let Inst{7-7} = 0b1;
22880let Inst{13-11} = 0b100;
22881let Inst{31-18} = 0b10101111101000;
22882let isPredicated = 1;
22883let isPredicatedFalse = 1;
22884let addrMode = Absolute;
22885let accessSize = ByteAccess;
22886let isNVStore = 1;
22887let isPredicatedNew = 1;
22888let isNewValue = 1;
22889let isExtended = 1;
22890let isRestrictNoSlot1Store = 1;
22891let mayStore = 1;
22892let BaseOpcode = "S2_storerbabs";
22893let CextOpcode = "S2_storerb";
22894let DecoderNamespace = "MustExtend";
22895let isExtendable = 1;
22896let opExtendable = 1;
22897let isExtentSigned = 0;
22898let opExtentBits = 6;
22899let opExtentAlign = 0;
22900let opNewValue = 2;
22901}
22902def S4_pstorerbnewfnew_io : HInst<
22903(outs),
22904(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22905"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22906tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
22907let Inst{2-2} = 0b0;
22908let Inst{12-11} = 0b00;
22909let Inst{31-21} = 0b01000110101;
22910let isPredicated = 1;
22911let isPredicatedFalse = 1;
22912let addrMode = BaseImmOffset;
22913let accessSize = ByteAccess;
22914let isNVStore = 1;
22915let isPredicatedNew = 1;
22916let isNewValue = 1;
22917let isRestrictNoSlot1Store = 1;
22918let mayStore = 1;
22919let BaseOpcode = "S2_storerb_io";
22920let CextOpcode = "S2_storerb";
22921let InputType = "imm";
22922let isExtendable = 1;
22923let opExtendable = 2;
22924let isExtentSigned = 0;
22925let opExtentBits = 6;
22926let opExtentAlign = 0;
22927let opNewValue = 3;
22928}
22929def S4_pstorerbnewfnew_rr : HInst<
22930(outs),
22931(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22932"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22933tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
22934let Inst{4-3} = 0b00;
22935let Inst{31-21} = 0b00110111101;
22936let isPredicated = 1;
22937let isPredicatedFalse = 1;
22938let addrMode = BaseRegOffset;
22939let accessSize = ByteAccess;
22940let isNVStore = 1;
22941let isPredicatedNew = 1;
22942let isNewValue = 1;
22943let isRestrictNoSlot1Store = 1;
22944let mayStore = 1;
22945let BaseOpcode = "S4_storerb_rr";
22946let CextOpcode = "S2_storerb";
22947let InputType = "reg";
22948let opNewValue = 4;
22949}
22950def S4_pstorerbnewfnew_zomap : HInst<
22951(outs),
22952(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22953"if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22954tc_92240447, TypeMAPPING> {
22955let isPseudo = 1;
22956let isCodeGenOnly = 1;
22957let opNewValue = 2;
22958}
22959def S4_pstorerbnewt_abs : HInst<
22960(outs),
22961(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22962"if ($Pv4) memb(#$Ii) = $Nt8.new",
22963tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22964let Inst{2-2} = 0b0;
22965let Inst{7-7} = 0b1;
22966let Inst{13-11} = 0b000;
22967let Inst{31-18} = 0b10101111101000;
22968let isPredicated = 1;
22969let addrMode = Absolute;
22970let accessSize = ByteAccess;
22971let isNVStore = 1;
22972let isNewValue = 1;
22973let isExtended = 1;
22974let isRestrictNoSlot1Store = 1;
22975let mayStore = 1;
22976let BaseOpcode = "S2_storerbabs";
22977let CextOpcode = "S2_storerb";
22978let DecoderNamespace = "MustExtend";
22979let isExtendable = 1;
22980let opExtendable = 1;
22981let isExtentSigned = 0;
22982let opExtentBits = 6;
22983let opExtentAlign = 0;
22984let opNewValue = 2;
22985}
22986def S4_pstorerbnewt_rr : HInst<
22987(outs),
22988(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22989"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22990tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22991let Inst{4-3} = 0b00;
22992let Inst{31-21} = 0b00110100101;
22993let isPredicated = 1;
22994let addrMode = BaseRegOffset;
22995let accessSize = ByteAccess;
22996let isNVStore = 1;
22997let isNewValue = 1;
22998let isRestrictNoSlot1Store = 1;
22999let mayStore = 1;
23000let BaseOpcode = "S4_storerb_rr";
23001let CextOpcode = "S2_storerb";
23002let InputType = "reg";
23003let opNewValue = 4;
23004}
23005def S4_pstorerbnewtnew_abs : HInst<
23006(outs),
23007(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23008"if ($Pv4.new) memb(#$Ii) = $Nt8.new",
23009tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23010let Inst{2-2} = 0b0;
23011let Inst{7-7} = 0b1;
23012let Inst{13-11} = 0b100;
23013let Inst{31-18} = 0b10101111101000;
23014let isPredicated = 1;
23015let addrMode = Absolute;
23016let accessSize = ByteAccess;
23017let isNVStore = 1;
23018let isPredicatedNew = 1;
23019let isNewValue = 1;
23020let isExtended = 1;
23021let isRestrictNoSlot1Store = 1;
23022let mayStore = 1;
23023let BaseOpcode = "S2_storerbabs";
23024let CextOpcode = "S2_storerb";
23025let DecoderNamespace = "MustExtend";
23026let isExtendable = 1;
23027let opExtendable = 1;
23028let isExtentSigned = 0;
23029let opExtentBits = 6;
23030let opExtentAlign = 0;
23031let opNewValue = 2;
23032}
23033def S4_pstorerbnewtnew_io : HInst<
23034(outs),
23035(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
23036"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
23037tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
23038let Inst{2-2} = 0b0;
23039let Inst{12-11} = 0b00;
23040let Inst{31-21} = 0b01000010101;
23041let isPredicated = 1;
23042let addrMode = BaseImmOffset;
23043let accessSize = ByteAccess;
23044let isNVStore = 1;
23045let isPredicatedNew = 1;
23046let isNewValue = 1;
23047let isRestrictNoSlot1Store = 1;
23048let mayStore = 1;
23049let BaseOpcode = "S2_storerb_io";
23050let CextOpcode = "S2_storerb";
23051let InputType = "imm";
23052let isExtendable = 1;
23053let opExtendable = 2;
23054let isExtentSigned = 0;
23055let opExtentBits = 6;
23056let opExtentAlign = 0;
23057let opNewValue = 3;
23058}
23059def S4_pstorerbnewtnew_rr : HInst<
23060(outs),
23061(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23062"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23063tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23064let Inst{4-3} = 0b00;
23065let Inst{31-21} = 0b00110110101;
23066let isPredicated = 1;
23067let addrMode = BaseRegOffset;
23068let accessSize = ByteAccess;
23069let isNVStore = 1;
23070let isPredicatedNew = 1;
23071let isNewValue = 1;
23072let isRestrictNoSlot1Store = 1;
23073let mayStore = 1;
23074let BaseOpcode = "S4_storerb_rr";
23075let CextOpcode = "S2_storerb";
23076let InputType = "reg";
23077let opNewValue = 4;
23078}
23079def S4_pstorerbnewtnew_zomap : HInst<
23080(outs),
23081(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23082"if ($Pv4.new) memb($Rs32) = $Nt8.new",
23083tc_92240447, TypeMAPPING> {
23084let isPseudo = 1;
23085let isCodeGenOnly = 1;
23086let opNewValue = 2;
23087}
23088def S4_pstorerbt_abs : HInst<
23089(outs),
23090(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23091"if ($Pv4) memb(#$Ii) = $Rt32",
23092tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23093let Inst{2-2} = 0b0;
23094let Inst{7-7} = 0b1;
23095let Inst{13-13} = 0b0;
23096let Inst{31-18} = 0b10101111000000;
23097let isPredicated = 1;
23098let addrMode = Absolute;
23099let accessSize = ByteAccess;
23100let isExtended = 1;
23101let mayStore = 1;
23102let BaseOpcode = "S2_storerbabs";
23103let CextOpcode = "S2_storerb";
23104let isNVStorable = 1;
23105let DecoderNamespace = "MustExtend";
23106let isExtendable = 1;
23107let opExtendable = 1;
23108let isExtentSigned = 0;
23109let opExtentBits = 6;
23110let opExtentAlign = 0;
23111}
23112def S4_pstorerbt_rr : HInst<
23113(outs),
23114(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23115"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23116tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23117let Inst{31-21} = 0b00110100000;
23118let isPredicated = 1;
23119let addrMode = BaseRegOffset;
23120let accessSize = ByteAccess;
23121let mayStore = 1;
23122let BaseOpcode = "S4_storerb_rr";
23123let CextOpcode = "S2_storerb";
23124let InputType = "reg";
23125let isNVStorable = 1;
23126}
23127def S4_pstorerbtnew_abs : HInst<
23128(outs),
23129(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23130"if ($Pv4.new) memb(#$Ii) = $Rt32",
23131tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23132let Inst{2-2} = 0b0;
23133let Inst{7-7} = 0b1;
23134let Inst{13-13} = 0b1;
23135let Inst{31-18} = 0b10101111000000;
23136let isPredicated = 1;
23137let addrMode = Absolute;
23138let accessSize = ByteAccess;
23139let isPredicatedNew = 1;
23140let isExtended = 1;
23141let mayStore = 1;
23142let BaseOpcode = "S2_storerbabs";
23143let CextOpcode = "S2_storerb";
23144let isNVStorable = 1;
23145let DecoderNamespace = "MustExtend";
23146let isExtendable = 1;
23147let opExtendable = 1;
23148let isExtentSigned = 0;
23149let opExtentBits = 6;
23150let opExtentAlign = 0;
23151}
23152def S4_pstorerbtnew_io : HInst<
23153(outs),
23154(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
23155"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
23156tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
23157let Inst{2-2} = 0b0;
23158let Inst{31-21} = 0b01000010000;
23159let isPredicated = 1;
23160let addrMode = BaseImmOffset;
23161let accessSize = ByteAccess;
23162let isPredicatedNew = 1;
23163let mayStore = 1;
23164let BaseOpcode = "S2_storerb_io";
23165let CextOpcode = "S2_storerb";
23166let InputType = "imm";
23167let isNVStorable = 1;
23168let isExtendable = 1;
23169let opExtendable = 2;
23170let isExtentSigned = 0;
23171let opExtentBits = 6;
23172let opExtentAlign = 0;
23173}
23174def S4_pstorerbtnew_rr : HInst<
23175(outs),
23176(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23177"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23178tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23179let Inst{31-21} = 0b00110110000;
23180let isPredicated = 1;
23181let addrMode = BaseRegOffset;
23182let accessSize = ByteAccess;
23183let isPredicatedNew = 1;
23184let mayStore = 1;
23185let BaseOpcode = "S4_storerb_rr";
23186let CextOpcode = "S2_storerb";
23187let InputType = "reg";
23188let isNVStorable = 1;
23189}
23190def S4_pstorerbtnew_zomap : HInst<
23191(outs),
23192(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23193"if ($Pv4.new) memb($Rs32) = $Rt32",
23194tc_a2b365d2, TypeMAPPING> {
23195let isPseudo = 1;
23196let isCodeGenOnly = 1;
23197}
23198def S4_pstorerdf_abs : HInst<
23199(outs),
23200(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23201"if (!$Pv4) memd(#$Ii) = $Rtt32",
23202tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23203let Inst{2-2} = 0b1;
23204let Inst{7-7} = 0b1;
23205let Inst{13-13} = 0b0;
23206let Inst{31-18} = 0b10101111110000;
23207let isPredicated = 1;
23208let isPredicatedFalse = 1;
23209let addrMode = Absolute;
23210let accessSize = DoubleWordAccess;
23211let isExtended = 1;
23212let mayStore = 1;
23213let BaseOpcode = "S2_storerdabs";
23214let CextOpcode = "S2_storerd";
23215let DecoderNamespace = "MustExtend";
23216let isExtendable = 1;
23217let opExtendable = 1;
23218let isExtentSigned = 0;
23219let opExtentBits = 6;
23220let opExtentAlign = 0;
23221}
23222def S4_pstorerdf_rr : HInst<
23223(outs),
23224(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23225"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23226tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23227let Inst{31-21} = 0b00110101110;
23228let isPredicated = 1;
23229let isPredicatedFalse = 1;
23230let addrMode = BaseRegOffset;
23231let accessSize = DoubleWordAccess;
23232let mayStore = 1;
23233let BaseOpcode = "S2_storerd_rr";
23234let CextOpcode = "S2_storerd";
23235let InputType = "reg";
23236}
23237def S4_pstorerdfnew_abs : HInst<
23238(outs),
23239(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23240"if (!$Pv4.new) memd(#$Ii) = $Rtt32",
23241tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23242let Inst{2-2} = 0b1;
23243let Inst{7-7} = 0b1;
23244let Inst{13-13} = 0b1;
23245let Inst{31-18} = 0b10101111110000;
23246let isPredicated = 1;
23247let isPredicatedFalse = 1;
23248let addrMode = Absolute;
23249let accessSize = DoubleWordAccess;
23250let isPredicatedNew = 1;
23251let isExtended = 1;
23252let mayStore = 1;
23253let BaseOpcode = "S2_storerdabs";
23254let CextOpcode = "S2_storerd";
23255let DecoderNamespace = "MustExtend";
23256let isExtendable = 1;
23257let opExtendable = 1;
23258let isExtentSigned = 0;
23259let opExtentBits = 6;
23260let opExtentAlign = 0;
23261}
23262def S4_pstorerdfnew_io : HInst<
23263(outs),
23264(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23265"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23266tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23267let Inst{2-2} = 0b0;
23268let Inst{31-21} = 0b01000110110;
23269let isPredicated = 1;
23270let isPredicatedFalse = 1;
23271let addrMode = BaseImmOffset;
23272let accessSize = DoubleWordAccess;
23273let isPredicatedNew = 1;
23274let mayStore = 1;
23275let BaseOpcode = "S2_storerd_io";
23276let CextOpcode = "S2_storerd";
23277let InputType = "imm";
23278let isExtendable = 1;
23279let opExtendable = 2;
23280let isExtentSigned = 0;
23281let opExtentBits = 9;
23282let opExtentAlign = 3;
23283}
23284def S4_pstorerdfnew_rr : HInst<
23285(outs),
23286(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23287"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23288tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23289let Inst{31-21} = 0b00110111110;
23290let isPredicated = 1;
23291let isPredicatedFalse = 1;
23292let addrMode = BaseRegOffset;
23293let accessSize = DoubleWordAccess;
23294let isPredicatedNew = 1;
23295let mayStore = 1;
23296let BaseOpcode = "S2_storerd_rr";
23297let CextOpcode = "S2_storerd";
23298let InputType = "reg";
23299}
23300def S4_pstorerdfnew_zomap : HInst<
23301(outs),
23302(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23303"if (!$Pv4.new) memd($Rs32) = $Rtt32",
23304tc_a2b365d2, TypeMAPPING> {
23305let isPseudo = 1;
23306let isCodeGenOnly = 1;
23307}
23308def S4_pstorerdt_abs : HInst<
23309(outs),
23310(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23311"if ($Pv4) memd(#$Ii) = $Rtt32",
23312tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23313let Inst{2-2} = 0b0;
23314let Inst{7-7} = 0b1;
23315let Inst{13-13} = 0b0;
23316let Inst{31-18} = 0b10101111110000;
23317let isPredicated = 1;
23318let addrMode = Absolute;
23319let accessSize = DoubleWordAccess;
23320let isExtended = 1;
23321let mayStore = 1;
23322let BaseOpcode = "S2_storerdabs";
23323let CextOpcode = "S2_storerd";
23324let DecoderNamespace = "MustExtend";
23325let isExtendable = 1;
23326let opExtendable = 1;
23327let isExtentSigned = 0;
23328let opExtentBits = 6;
23329let opExtentAlign = 0;
23330}
23331def S4_pstorerdt_rr : HInst<
23332(outs),
23333(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23334"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23335tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23336let Inst{31-21} = 0b00110100110;
23337let isPredicated = 1;
23338let addrMode = BaseRegOffset;
23339let accessSize = DoubleWordAccess;
23340let mayStore = 1;
23341let BaseOpcode = "S2_storerd_rr";
23342let CextOpcode = "S2_storerd";
23343let InputType = "reg";
23344}
23345def S4_pstorerdtnew_abs : HInst<
23346(outs),
23347(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23348"if ($Pv4.new) memd(#$Ii) = $Rtt32",
23349tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23350let Inst{2-2} = 0b0;
23351let Inst{7-7} = 0b1;
23352let Inst{13-13} = 0b1;
23353let Inst{31-18} = 0b10101111110000;
23354let isPredicated = 1;
23355let addrMode = Absolute;
23356let accessSize = DoubleWordAccess;
23357let isPredicatedNew = 1;
23358let isExtended = 1;
23359let mayStore = 1;
23360let BaseOpcode = "S2_storerdabs";
23361let CextOpcode = "S2_storerd";
23362let DecoderNamespace = "MustExtend";
23363let isExtendable = 1;
23364let opExtendable = 1;
23365let isExtentSigned = 0;
23366let opExtentBits = 6;
23367let opExtentAlign = 0;
23368}
23369def S4_pstorerdtnew_io : HInst<
23370(outs),
23371(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23372"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23373tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23374let Inst{2-2} = 0b0;
23375let Inst{31-21} = 0b01000010110;
23376let isPredicated = 1;
23377let addrMode = BaseImmOffset;
23378let accessSize = DoubleWordAccess;
23379let isPredicatedNew = 1;
23380let mayStore = 1;
23381let BaseOpcode = "S2_storerd_io";
23382let CextOpcode = "S2_storerd";
23383let InputType = "imm";
23384let isExtendable = 1;
23385let opExtendable = 2;
23386let isExtentSigned = 0;
23387let opExtentBits = 9;
23388let opExtentAlign = 3;
23389}
23390def S4_pstorerdtnew_rr : HInst<
23391(outs),
23392(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23393"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23394tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23395let Inst{31-21} = 0b00110110110;
23396let isPredicated = 1;
23397let addrMode = BaseRegOffset;
23398let accessSize = DoubleWordAccess;
23399let isPredicatedNew = 1;
23400let mayStore = 1;
23401let BaseOpcode = "S2_storerd_rr";
23402let CextOpcode = "S2_storerd";
23403let InputType = "reg";
23404}
23405def S4_pstorerdtnew_zomap : HInst<
23406(outs),
23407(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23408"if ($Pv4.new) memd($Rs32) = $Rtt32",
23409tc_a2b365d2, TypeMAPPING> {
23410let isPseudo = 1;
23411let isCodeGenOnly = 1;
23412}
23413def S4_pstorerff_abs : HInst<
23414(outs),
23415(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23416"if (!$Pv4) memh(#$Ii) = $Rt32.h",
23417tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23418let Inst{2-2} = 0b1;
23419let Inst{7-7} = 0b1;
23420let Inst{13-13} = 0b0;
23421let Inst{31-18} = 0b10101111011000;
23422let isPredicated = 1;
23423let isPredicatedFalse = 1;
23424let addrMode = Absolute;
23425let accessSize = HalfWordAccess;
23426let isExtended = 1;
23427let mayStore = 1;
23428let BaseOpcode = "S2_storerfabs";
23429let CextOpcode = "S2_storerf";
23430let DecoderNamespace = "MustExtend";
23431let isExtendable = 1;
23432let opExtendable = 1;
23433let isExtentSigned = 0;
23434let opExtentBits = 6;
23435let opExtentAlign = 0;
23436}
23437def S4_pstorerff_rr : HInst<
23438(outs),
23439(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23440"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23441tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23442let Inst{31-21} = 0b00110101011;
23443let isPredicated = 1;
23444let isPredicatedFalse = 1;
23445let addrMode = BaseRegOffset;
23446let accessSize = HalfWordAccess;
23447let mayStore = 1;
23448let BaseOpcode = "S4_storerf_rr";
23449let CextOpcode = "S2_storerf";
23450let InputType = "reg";
23451}
23452def S4_pstorerffnew_abs : HInst<
23453(outs),
23454(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23455"if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23456tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23457let Inst{2-2} = 0b1;
23458let Inst{7-7} = 0b1;
23459let Inst{13-13} = 0b1;
23460let Inst{31-18} = 0b10101111011000;
23461let isPredicated = 1;
23462let isPredicatedFalse = 1;
23463let addrMode = Absolute;
23464let accessSize = HalfWordAccess;
23465let isPredicatedNew = 1;
23466let isExtended = 1;
23467let mayStore = 1;
23468let BaseOpcode = "S2_storerfabs";
23469let CextOpcode = "S2_storerf";
23470let DecoderNamespace = "MustExtend";
23471let isExtendable = 1;
23472let opExtendable = 1;
23473let isExtentSigned = 0;
23474let opExtentBits = 6;
23475let opExtentAlign = 0;
23476}
23477def S4_pstorerffnew_io : HInst<
23478(outs),
23479(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23480"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23481tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23482let Inst{2-2} = 0b0;
23483let Inst{31-21} = 0b01000110011;
23484let isPredicated = 1;
23485let isPredicatedFalse = 1;
23486let addrMode = BaseImmOffset;
23487let accessSize = HalfWordAccess;
23488let isPredicatedNew = 1;
23489let mayStore = 1;
23490let BaseOpcode = "S2_storerf_io";
23491let CextOpcode = "S2_storerf";
23492let InputType = "imm";
23493let isExtendable = 1;
23494let opExtendable = 2;
23495let isExtentSigned = 0;
23496let opExtentBits = 7;
23497let opExtentAlign = 1;
23498}
23499def S4_pstorerffnew_rr : HInst<
23500(outs),
23501(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23502"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23503tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23504let Inst{31-21} = 0b00110111011;
23505let isPredicated = 1;
23506let isPredicatedFalse = 1;
23507let addrMode = BaseRegOffset;
23508let accessSize = HalfWordAccess;
23509let isPredicatedNew = 1;
23510let mayStore = 1;
23511let BaseOpcode = "S4_storerf_rr";
23512let CextOpcode = "S2_storerf";
23513let InputType = "reg";
23514}
23515def S4_pstorerffnew_zomap : HInst<
23516(outs),
23517(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23518"if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23519tc_a2b365d2, TypeMAPPING> {
23520let isPseudo = 1;
23521let isCodeGenOnly = 1;
23522}
23523def S4_pstorerft_abs : HInst<
23524(outs),
23525(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23526"if ($Pv4) memh(#$Ii) = $Rt32.h",
23527tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23528let Inst{2-2} = 0b0;
23529let Inst{7-7} = 0b1;
23530let Inst{13-13} = 0b0;
23531let Inst{31-18} = 0b10101111011000;
23532let isPredicated = 1;
23533let addrMode = Absolute;
23534let accessSize = HalfWordAccess;
23535let isExtended = 1;
23536let mayStore = 1;
23537let BaseOpcode = "S2_storerfabs";
23538let CextOpcode = "S2_storerf";
23539let DecoderNamespace = "MustExtend";
23540let isExtendable = 1;
23541let opExtendable = 1;
23542let isExtentSigned = 0;
23543let opExtentBits = 6;
23544let opExtentAlign = 0;
23545}
23546def S4_pstorerft_rr : HInst<
23547(outs),
23548(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23549"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23550tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23551let Inst{31-21} = 0b00110100011;
23552let isPredicated = 1;
23553let addrMode = BaseRegOffset;
23554let accessSize = HalfWordAccess;
23555let mayStore = 1;
23556let BaseOpcode = "S4_storerf_rr";
23557let CextOpcode = "S2_storerf";
23558let InputType = "reg";
23559}
23560def S4_pstorerftnew_abs : HInst<
23561(outs),
23562(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23563"if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23564tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23565let Inst{2-2} = 0b0;
23566let Inst{7-7} = 0b1;
23567let Inst{13-13} = 0b1;
23568let Inst{31-18} = 0b10101111011000;
23569let isPredicated = 1;
23570let addrMode = Absolute;
23571let accessSize = HalfWordAccess;
23572let isPredicatedNew = 1;
23573let isExtended = 1;
23574let mayStore = 1;
23575let BaseOpcode = "S2_storerfabs";
23576let CextOpcode = "S2_storerf";
23577let DecoderNamespace = "MustExtend";
23578let isExtendable = 1;
23579let opExtendable = 1;
23580let isExtentSigned = 0;
23581let opExtentBits = 6;
23582let opExtentAlign = 0;
23583}
23584def S4_pstorerftnew_io : HInst<
23585(outs),
23586(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23587"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23588tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23589let Inst{2-2} = 0b0;
23590let Inst{31-21} = 0b01000010011;
23591let isPredicated = 1;
23592let addrMode = BaseImmOffset;
23593let accessSize = HalfWordAccess;
23594let isPredicatedNew = 1;
23595let mayStore = 1;
23596let BaseOpcode = "S2_storerf_io";
23597let CextOpcode = "S2_storerf";
23598let InputType = "imm";
23599let isExtendable = 1;
23600let opExtendable = 2;
23601let isExtentSigned = 0;
23602let opExtentBits = 7;
23603let opExtentAlign = 1;
23604}
23605def S4_pstorerftnew_rr : HInst<
23606(outs),
23607(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23608"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23609tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23610let Inst{31-21} = 0b00110110011;
23611let isPredicated = 1;
23612let addrMode = BaseRegOffset;
23613let accessSize = HalfWordAccess;
23614let isPredicatedNew = 1;
23615let mayStore = 1;
23616let BaseOpcode = "S4_storerf_rr";
23617let CextOpcode = "S2_storerf";
23618let InputType = "reg";
23619}
23620def S4_pstorerftnew_zomap : HInst<
23621(outs),
23622(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23623"if ($Pv4.new) memh($Rs32) = $Rt32.h",
23624tc_a2b365d2, TypeMAPPING> {
23625let isPseudo = 1;
23626let isCodeGenOnly = 1;
23627}
23628def S4_pstorerhf_abs : HInst<
23629(outs),
23630(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23631"if (!$Pv4) memh(#$Ii) = $Rt32",
23632tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23633let Inst{2-2} = 0b1;
23634let Inst{7-7} = 0b1;
23635let Inst{13-13} = 0b0;
23636let Inst{31-18} = 0b10101111010000;
23637let isPredicated = 1;
23638let isPredicatedFalse = 1;
23639let addrMode = Absolute;
23640let accessSize = HalfWordAccess;
23641let isExtended = 1;
23642let mayStore = 1;
23643let BaseOpcode = "S2_storerhabs";
23644let CextOpcode = "S2_storerh";
23645let isNVStorable = 1;
23646let DecoderNamespace = "MustExtend";
23647let isExtendable = 1;
23648let opExtendable = 1;
23649let isExtentSigned = 0;
23650let opExtentBits = 6;
23651let opExtentAlign = 0;
23652}
23653def S4_pstorerhf_rr : HInst<
23654(outs),
23655(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23656"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23657tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23658let Inst{31-21} = 0b00110101010;
23659let isPredicated = 1;
23660let isPredicatedFalse = 1;
23661let addrMode = BaseRegOffset;
23662let accessSize = HalfWordAccess;
23663let mayStore = 1;
23664let BaseOpcode = "S2_storerh_rr";
23665let CextOpcode = "S2_storerh";
23666let InputType = "reg";
23667let isNVStorable = 1;
23668}
23669def S4_pstorerhfnew_abs : HInst<
23670(outs),
23671(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23672"if (!$Pv4.new) memh(#$Ii) = $Rt32",
23673tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23674let Inst{2-2} = 0b1;
23675let Inst{7-7} = 0b1;
23676let Inst{13-13} = 0b1;
23677let Inst{31-18} = 0b10101111010000;
23678let isPredicated = 1;
23679let isPredicatedFalse = 1;
23680let addrMode = Absolute;
23681let accessSize = HalfWordAccess;
23682let isPredicatedNew = 1;
23683let isExtended = 1;
23684let mayStore = 1;
23685let BaseOpcode = "S2_storerhabs";
23686let CextOpcode = "S2_storerh";
23687let isNVStorable = 1;
23688let DecoderNamespace = "MustExtend";
23689let isExtendable = 1;
23690let opExtendable = 1;
23691let isExtentSigned = 0;
23692let opExtentBits = 6;
23693let opExtentAlign = 0;
23694}
23695def S4_pstorerhfnew_io : HInst<
23696(outs),
23697(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23698"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23699tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23700let Inst{2-2} = 0b0;
23701let Inst{31-21} = 0b01000110010;
23702let isPredicated = 1;
23703let isPredicatedFalse = 1;
23704let addrMode = BaseImmOffset;
23705let accessSize = HalfWordAccess;
23706let isPredicatedNew = 1;
23707let mayStore = 1;
23708let BaseOpcode = "S2_storerh_io";
23709let CextOpcode = "S2_storerh";
23710let InputType = "imm";
23711let isNVStorable = 1;
23712let isExtendable = 1;
23713let opExtendable = 2;
23714let isExtentSigned = 0;
23715let opExtentBits = 7;
23716let opExtentAlign = 1;
23717}
23718def S4_pstorerhfnew_rr : HInst<
23719(outs),
23720(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23721"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23722tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23723let Inst{31-21} = 0b00110111010;
23724let isPredicated = 1;
23725let isPredicatedFalse = 1;
23726let addrMode = BaseRegOffset;
23727let accessSize = HalfWordAccess;
23728let isPredicatedNew = 1;
23729let mayStore = 1;
23730let BaseOpcode = "S2_storerh_rr";
23731let CextOpcode = "S2_storerh";
23732let InputType = "reg";
23733let isNVStorable = 1;
23734}
23735def S4_pstorerhfnew_zomap : HInst<
23736(outs),
23737(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23738"if (!$Pv4.new) memh($Rs32) = $Rt32",
23739tc_a2b365d2, TypeMAPPING> {
23740let isPseudo = 1;
23741let isCodeGenOnly = 1;
23742}
23743def S4_pstorerhnewf_abs : HInst<
23744(outs),
23745(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23746"if (!$Pv4) memh(#$Ii) = $Nt8.new",
23747tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23748let Inst{2-2} = 0b1;
23749let Inst{7-7} = 0b1;
23750let Inst{13-11} = 0b001;
23751let Inst{31-18} = 0b10101111101000;
23752let isPredicated = 1;
23753let isPredicatedFalse = 1;
23754let addrMode = Absolute;
23755let accessSize = HalfWordAccess;
23756let isNVStore = 1;
23757let isNewValue = 1;
23758let isExtended = 1;
23759let isRestrictNoSlot1Store = 1;
23760let mayStore = 1;
23761let BaseOpcode = "S2_storerhabs";
23762let CextOpcode = "S2_storerh";
23763let DecoderNamespace = "MustExtend";
23764let isExtendable = 1;
23765let opExtendable = 1;
23766let isExtentSigned = 0;
23767let opExtentBits = 6;
23768let opExtentAlign = 0;
23769let opNewValue = 2;
23770}
23771def S4_pstorerhnewf_rr : HInst<
23772(outs),
23773(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23774"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23775tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23776let Inst{4-3} = 0b01;
23777let Inst{31-21} = 0b00110101101;
23778let isPredicated = 1;
23779let isPredicatedFalse = 1;
23780let addrMode = BaseRegOffset;
23781let accessSize = HalfWordAccess;
23782let isNVStore = 1;
23783let isNewValue = 1;
23784let isRestrictNoSlot1Store = 1;
23785let mayStore = 1;
23786let BaseOpcode = "S2_storerh_rr";
23787let CextOpcode = "S2_storerh";
23788let InputType = "reg";
23789let opNewValue = 4;
23790}
23791def S4_pstorerhnewfnew_abs : HInst<
23792(outs),
23793(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23794"if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23795tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23796let Inst{2-2} = 0b1;
23797let Inst{7-7} = 0b1;
23798let Inst{13-11} = 0b101;
23799let Inst{31-18} = 0b10101111101000;
23800let isPredicated = 1;
23801let isPredicatedFalse = 1;
23802let addrMode = Absolute;
23803let accessSize = HalfWordAccess;
23804let isNVStore = 1;
23805let isPredicatedNew = 1;
23806let isNewValue = 1;
23807let isExtended = 1;
23808let isRestrictNoSlot1Store = 1;
23809let mayStore = 1;
23810let BaseOpcode = "S2_storerhabs";
23811let CextOpcode = "S2_storerh";
23812let DecoderNamespace = "MustExtend";
23813let isExtendable = 1;
23814let opExtendable = 1;
23815let isExtentSigned = 0;
23816let opExtentBits = 6;
23817let opExtentAlign = 0;
23818let opNewValue = 2;
23819}
23820def S4_pstorerhnewfnew_io : HInst<
23821(outs),
23822(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23823"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23824tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23825let Inst{2-2} = 0b0;
23826let Inst{12-11} = 0b01;
23827let Inst{31-21} = 0b01000110101;
23828let isPredicated = 1;
23829let isPredicatedFalse = 1;
23830let addrMode = BaseImmOffset;
23831let accessSize = HalfWordAccess;
23832let isNVStore = 1;
23833let isPredicatedNew = 1;
23834let isNewValue = 1;
23835let isRestrictNoSlot1Store = 1;
23836let mayStore = 1;
23837let BaseOpcode = "S2_storerh_io";
23838let CextOpcode = "S2_storerh";
23839let InputType = "imm";
23840let isExtendable = 1;
23841let opExtendable = 2;
23842let isExtentSigned = 0;
23843let opExtentBits = 7;
23844let opExtentAlign = 1;
23845let opNewValue = 3;
23846}
23847def S4_pstorerhnewfnew_rr : HInst<
23848(outs),
23849(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23850"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23851tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23852let Inst{4-3} = 0b01;
23853let Inst{31-21} = 0b00110111101;
23854let isPredicated = 1;
23855let isPredicatedFalse = 1;
23856let addrMode = BaseRegOffset;
23857let accessSize = HalfWordAccess;
23858let isNVStore = 1;
23859let isPredicatedNew = 1;
23860let isNewValue = 1;
23861let isRestrictNoSlot1Store = 1;
23862let mayStore = 1;
23863let BaseOpcode = "S2_storerh_rr";
23864let CextOpcode = "S2_storerh";
23865let InputType = "reg";
23866let opNewValue = 4;
23867}
23868def S4_pstorerhnewfnew_zomap : HInst<
23869(outs),
23870(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23871"if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23872tc_92240447, TypeMAPPING> {
23873let isPseudo = 1;
23874let isCodeGenOnly = 1;
23875let opNewValue = 2;
23876}
23877def S4_pstorerhnewt_abs : HInst<
23878(outs),
23879(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23880"if ($Pv4) memh(#$Ii) = $Nt8.new",
23881tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23882let Inst{2-2} = 0b0;
23883let Inst{7-7} = 0b1;
23884let Inst{13-11} = 0b001;
23885let Inst{31-18} = 0b10101111101000;
23886let isPredicated = 1;
23887let addrMode = Absolute;
23888let accessSize = HalfWordAccess;
23889let isNVStore = 1;
23890let isNewValue = 1;
23891let isExtended = 1;
23892let isRestrictNoSlot1Store = 1;
23893let mayStore = 1;
23894let BaseOpcode = "S2_storerhabs";
23895let CextOpcode = "S2_storerh";
23896let DecoderNamespace = "MustExtend";
23897let isExtendable = 1;
23898let opExtendable = 1;
23899let isExtentSigned = 0;
23900let opExtentBits = 6;
23901let opExtentAlign = 0;
23902let opNewValue = 2;
23903}
23904def S4_pstorerhnewt_rr : HInst<
23905(outs),
23906(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23907"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23908tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23909let Inst{4-3} = 0b01;
23910let Inst{31-21} = 0b00110100101;
23911let isPredicated = 1;
23912let addrMode = BaseRegOffset;
23913let accessSize = HalfWordAccess;
23914let isNVStore = 1;
23915let isNewValue = 1;
23916let isRestrictNoSlot1Store = 1;
23917let mayStore = 1;
23918let BaseOpcode = "S2_storerh_rr";
23919let CextOpcode = "S2_storerh";
23920let InputType = "reg";
23921let opNewValue = 4;
23922}
23923def S4_pstorerhnewtnew_abs : HInst<
23924(outs),
23925(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23926"if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23927tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23928let Inst{2-2} = 0b0;
23929let Inst{7-7} = 0b1;
23930let Inst{13-11} = 0b101;
23931let Inst{31-18} = 0b10101111101000;
23932let isPredicated = 1;
23933let addrMode = Absolute;
23934let accessSize = HalfWordAccess;
23935let isNVStore = 1;
23936let isPredicatedNew = 1;
23937let isNewValue = 1;
23938let isExtended = 1;
23939let isRestrictNoSlot1Store = 1;
23940let mayStore = 1;
23941let BaseOpcode = "S2_storerhabs";
23942let CextOpcode = "S2_storerh";
23943let DecoderNamespace = "MustExtend";
23944let isExtendable = 1;
23945let opExtendable = 1;
23946let isExtentSigned = 0;
23947let opExtentBits = 6;
23948let opExtentAlign = 0;
23949let opNewValue = 2;
23950}
23951def S4_pstorerhnewtnew_io : HInst<
23952(outs),
23953(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23954"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23955tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23956let Inst{2-2} = 0b0;
23957let Inst{12-11} = 0b01;
23958let Inst{31-21} = 0b01000010101;
23959let isPredicated = 1;
23960let addrMode = BaseImmOffset;
23961let accessSize = HalfWordAccess;
23962let isNVStore = 1;
23963let isPredicatedNew = 1;
23964let isNewValue = 1;
23965let isRestrictNoSlot1Store = 1;
23966let mayStore = 1;
23967let BaseOpcode = "S2_storerh_io";
23968let CextOpcode = "S2_storerh";
23969let InputType = "imm";
23970let isExtendable = 1;
23971let opExtendable = 2;
23972let isExtentSigned = 0;
23973let opExtentBits = 7;
23974let opExtentAlign = 1;
23975let opNewValue = 3;
23976}
23977def S4_pstorerhnewtnew_rr : HInst<
23978(outs),
23979(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23980"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23981tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23982let Inst{4-3} = 0b01;
23983let Inst{31-21} = 0b00110110101;
23984let isPredicated = 1;
23985let addrMode = BaseRegOffset;
23986let accessSize = HalfWordAccess;
23987let isNVStore = 1;
23988let isPredicatedNew = 1;
23989let isNewValue = 1;
23990let isRestrictNoSlot1Store = 1;
23991let mayStore = 1;
23992let BaseOpcode = "S2_storerh_rr";
23993let CextOpcode = "S2_storerh";
23994let InputType = "reg";
23995let opNewValue = 4;
23996}
23997def S4_pstorerhnewtnew_zomap : HInst<
23998(outs),
23999(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24000"if ($Pv4.new) memh($Rs32) = $Nt8.new",
24001tc_92240447, TypeMAPPING> {
24002let isPseudo = 1;
24003let isCodeGenOnly = 1;
24004let opNewValue = 2;
24005}
24006def S4_pstorerht_abs : HInst<
24007(outs),
24008(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24009"if ($Pv4) memh(#$Ii) = $Rt32",
24010tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24011let Inst{2-2} = 0b0;
24012let Inst{7-7} = 0b1;
24013let Inst{13-13} = 0b0;
24014let Inst{31-18} = 0b10101111010000;
24015let isPredicated = 1;
24016let addrMode = Absolute;
24017let accessSize = HalfWordAccess;
24018let isExtended = 1;
24019let mayStore = 1;
24020let BaseOpcode = "S2_storerhabs";
24021let CextOpcode = "S2_storerh";
24022let isNVStorable = 1;
24023let DecoderNamespace = "MustExtend";
24024let isExtendable = 1;
24025let opExtendable = 1;
24026let isExtentSigned = 0;
24027let opExtentBits = 6;
24028let opExtentAlign = 0;
24029}
24030def S4_pstorerht_rr : HInst<
24031(outs),
24032(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24033"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24034tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24035let Inst{31-21} = 0b00110100010;
24036let isPredicated = 1;
24037let addrMode = BaseRegOffset;
24038let accessSize = HalfWordAccess;
24039let mayStore = 1;
24040let BaseOpcode = "S2_storerh_rr";
24041let CextOpcode = "S2_storerh";
24042let InputType = "reg";
24043let isNVStorable = 1;
24044}
24045def S4_pstorerhtnew_abs : HInst<
24046(outs),
24047(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24048"if ($Pv4.new) memh(#$Ii) = $Rt32",
24049tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24050let Inst{2-2} = 0b0;
24051let Inst{7-7} = 0b1;
24052let Inst{13-13} = 0b1;
24053let Inst{31-18} = 0b10101111010000;
24054let isPredicated = 1;
24055let addrMode = Absolute;
24056let accessSize = HalfWordAccess;
24057let isPredicatedNew = 1;
24058let isExtended = 1;
24059let mayStore = 1;
24060let BaseOpcode = "S2_storerhabs";
24061let CextOpcode = "S2_storerh";
24062let isNVStorable = 1;
24063let DecoderNamespace = "MustExtend";
24064let isExtendable = 1;
24065let opExtendable = 1;
24066let isExtentSigned = 0;
24067let opExtentBits = 6;
24068let opExtentAlign = 0;
24069}
24070def S4_pstorerhtnew_io : HInst<
24071(outs),
24072(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
24073"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
24074tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
24075let Inst{2-2} = 0b0;
24076let Inst{31-21} = 0b01000010010;
24077let isPredicated = 1;
24078let addrMode = BaseImmOffset;
24079let accessSize = HalfWordAccess;
24080let isPredicatedNew = 1;
24081let mayStore = 1;
24082let BaseOpcode = "S2_storerh_io";
24083let CextOpcode = "S2_storerh";
24084let InputType = "imm";
24085let isNVStorable = 1;
24086let isExtendable = 1;
24087let opExtendable = 2;
24088let isExtentSigned = 0;
24089let opExtentBits = 7;
24090let opExtentAlign = 1;
24091}
24092def S4_pstorerhtnew_rr : HInst<
24093(outs),
24094(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24095"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24096tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24097let Inst{31-21} = 0b00110110010;
24098let isPredicated = 1;
24099let addrMode = BaseRegOffset;
24100let accessSize = HalfWordAccess;
24101let isPredicatedNew = 1;
24102let mayStore = 1;
24103let BaseOpcode = "S2_storerh_rr";
24104let CextOpcode = "S2_storerh";
24105let InputType = "reg";
24106let isNVStorable = 1;
24107}
24108def S4_pstorerhtnew_zomap : HInst<
24109(outs),
24110(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24111"if ($Pv4.new) memh($Rs32) = $Rt32",
24112tc_a2b365d2, TypeMAPPING> {
24113let isPseudo = 1;
24114let isCodeGenOnly = 1;
24115}
24116def S4_pstorerif_abs : HInst<
24117(outs),
24118(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24119"if (!$Pv4) memw(#$Ii) = $Rt32",
24120tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24121let Inst{2-2} = 0b1;
24122let Inst{7-7} = 0b1;
24123let Inst{13-13} = 0b0;
24124let Inst{31-18} = 0b10101111100000;
24125let isPredicated = 1;
24126let isPredicatedFalse = 1;
24127let addrMode = Absolute;
24128let accessSize = WordAccess;
24129let isExtended = 1;
24130let mayStore = 1;
24131let BaseOpcode = "S2_storeriabs";
24132let CextOpcode = "S2_storeri";
24133let isNVStorable = 1;
24134let DecoderNamespace = "MustExtend";
24135let isExtendable = 1;
24136let opExtendable = 1;
24137let isExtentSigned = 0;
24138let opExtentBits = 6;
24139let opExtentAlign = 0;
24140}
24141def S4_pstorerif_rr : HInst<
24142(outs),
24143(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24144"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24145tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24146let Inst{31-21} = 0b00110101100;
24147let isPredicated = 1;
24148let isPredicatedFalse = 1;
24149let addrMode = BaseRegOffset;
24150let accessSize = WordAccess;
24151let mayStore = 1;
24152let BaseOpcode = "S2_storeri_rr";
24153let CextOpcode = "S2_storeri";
24154let InputType = "reg";
24155let isNVStorable = 1;
24156}
24157def S4_pstorerifnew_abs : HInst<
24158(outs),
24159(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24160"if (!$Pv4.new) memw(#$Ii) = $Rt32",
24161tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24162let Inst{2-2} = 0b1;
24163let Inst{7-7} = 0b1;
24164let Inst{13-13} = 0b1;
24165let Inst{31-18} = 0b10101111100000;
24166let isPredicated = 1;
24167let isPredicatedFalse = 1;
24168let addrMode = Absolute;
24169let accessSize = WordAccess;
24170let isPredicatedNew = 1;
24171let isExtended = 1;
24172let mayStore = 1;
24173let BaseOpcode = "S2_storeriabs";
24174let CextOpcode = "S2_storeri";
24175let isNVStorable = 1;
24176let DecoderNamespace = "MustExtend";
24177let isExtendable = 1;
24178let opExtendable = 1;
24179let isExtentSigned = 0;
24180let opExtentBits = 6;
24181let opExtentAlign = 0;
24182}
24183def S4_pstorerifnew_io : HInst<
24184(outs),
24185(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24186"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24187tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24188let Inst{2-2} = 0b0;
24189let Inst{31-21} = 0b01000110100;
24190let isPredicated = 1;
24191let isPredicatedFalse = 1;
24192let addrMode = BaseImmOffset;
24193let accessSize = WordAccess;
24194let isPredicatedNew = 1;
24195let mayStore = 1;
24196let BaseOpcode = "S2_storeri_io";
24197let CextOpcode = "S2_storeri";
24198let InputType = "imm";
24199let isNVStorable = 1;
24200let isExtendable = 1;
24201let opExtendable = 2;
24202let isExtentSigned = 0;
24203let opExtentBits = 8;
24204let opExtentAlign = 2;
24205}
24206def S4_pstorerifnew_rr : HInst<
24207(outs),
24208(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24209"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24210tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24211let Inst{31-21} = 0b00110111100;
24212let isPredicated = 1;
24213let isPredicatedFalse = 1;
24214let addrMode = BaseRegOffset;
24215let accessSize = WordAccess;
24216let isPredicatedNew = 1;
24217let mayStore = 1;
24218let BaseOpcode = "S2_storeri_rr";
24219let CextOpcode = "S2_storeri";
24220let InputType = "reg";
24221let isNVStorable = 1;
24222}
24223def S4_pstorerifnew_zomap : HInst<
24224(outs),
24225(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24226"if (!$Pv4.new) memw($Rs32) = $Rt32",
24227tc_a2b365d2, TypeMAPPING> {
24228let isPseudo = 1;
24229let isCodeGenOnly = 1;
24230}
24231def S4_pstorerinewf_abs : HInst<
24232(outs),
24233(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24234"if (!$Pv4) memw(#$Ii) = $Nt8.new",
24235tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24236let Inst{2-2} = 0b1;
24237let Inst{7-7} = 0b1;
24238let Inst{13-11} = 0b010;
24239let Inst{31-18} = 0b10101111101000;
24240let isPredicated = 1;
24241let isPredicatedFalse = 1;
24242let addrMode = Absolute;
24243let accessSize = WordAccess;
24244let isNVStore = 1;
24245let isNewValue = 1;
24246let isExtended = 1;
24247let isRestrictNoSlot1Store = 1;
24248let mayStore = 1;
24249let BaseOpcode = "S2_storeriabs";
24250let CextOpcode = "S2_storeri";
24251let DecoderNamespace = "MustExtend";
24252let isExtendable = 1;
24253let opExtendable = 1;
24254let isExtentSigned = 0;
24255let opExtentBits = 6;
24256let opExtentAlign = 0;
24257let opNewValue = 2;
24258}
24259def S4_pstorerinewf_rr : HInst<
24260(outs),
24261(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24262"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24263tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24264let Inst{4-3} = 0b10;
24265let Inst{31-21} = 0b00110101101;
24266let isPredicated = 1;
24267let isPredicatedFalse = 1;
24268let addrMode = BaseRegOffset;
24269let accessSize = WordAccess;
24270let isNVStore = 1;
24271let isNewValue = 1;
24272let isRestrictNoSlot1Store = 1;
24273let mayStore = 1;
24274let BaseOpcode = "S2_storeri_rr";
24275let CextOpcode = "S2_storeri";
24276let InputType = "reg";
24277let opNewValue = 4;
24278}
24279def S4_pstorerinewfnew_abs : HInst<
24280(outs),
24281(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24282"if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
24283tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24284let Inst{2-2} = 0b1;
24285let Inst{7-7} = 0b1;
24286let Inst{13-11} = 0b110;
24287let Inst{31-18} = 0b10101111101000;
24288let isPredicated = 1;
24289let isPredicatedFalse = 1;
24290let addrMode = Absolute;
24291let accessSize = WordAccess;
24292let isNVStore = 1;
24293let isPredicatedNew = 1;
24294let isNewValue = 1;
24295let isExtended = 1;
24296let isRestrictNoSlot1Store = 1;
24297let mayStore = 1;
24298let BaseOpcode = "S2_storeriabs";
24299let CextOpcode = "S2_storeri";
24300let DecoderNamespace = "MustExtend";
24301let isExtendable = 1;
24302let opExtendable = 1;
24303let isExtentSigned = 0;
24304let opExtentBits = 6;
24305let opExtentAlign = 0;
24306let opNewValue = 2;
24307}
24308def S4_pstorerinewfnew_io : HInst<
24309(outs),
24310(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24311"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24312tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24313let Inst{2-2} = 0b0;
24314let Inst{12-11} = 0b10;
24315let Inst{31-21} = 0b01000110101;
24316let isPredicated = 1;
24317let isPredicatedFalse = 1;
24318let addrMode = BaseImmOffset;
24319let accessSize = WordAccess;
24320let isNVStore = 1;
24321let isPredicatedNew = 1;
24322let isNewValue = 1;
24323let isRestrictNoSlot1Store = 1;
24324let mayStore = 1;
24325let BaseOpcode = "S2_storeri_io";
24326let CextOpcode = "S2_storeri";
24327let InputType = "imm";
24328let isExtendable = 1;
24329let opExtendable = 2;
24330let isExtentSigned = 0;
24331let opExtentBits = 8;
24332let opExtentAlign = 2;
24333let opNewValue = 3;
24334}
24335def S4_pstorerinewfnew_rr : HInst<
24336(outs),
24337(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24338"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24339tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24340let Inst{4-3} = 0b10;
24341let Inst{31-21} = 0b00110111101;
24342let isPredicated = 1;
24343let isPredicatedFalse = 1;
24344let addrMode = BaseRegOffset;
24345let accessSize = WordAccess;
24346let isNVStore = 1;
24347let isPredicatedNew = 1;
24348let isNewValue = 1;
24349let isRestrictNoSlot1Store = 1;
24350let mayStore = 1;
24351let BaseOpcode = "S2_storeri_rr";
24352let CextOpcode = "S2_storeri";
24353let InputType = "reg";
24354let opNewValue = 4;
24355}
24356def S4_pstorerinewfnew_zomap : HInst<
24357(outs),
24358(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24359"if (!$Pv4.new) memw($Rs32) = $Nt8.new",
24360tc_92240447, TypeMAPPING> {
24361let isPseudo = 1;
24362let isCodeGenOnly = 1;
24363let opNewValue = 2;
24364}
24365def S4_pstorerinewt_abs : HInst<
24366(outs),
24367(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24368"if ($Pv4) memw(#$Ii) = $Nt8.new",
24369tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24370let Inst{2-2} = 0b0;
24371let Inst{7-7} = 0b1;
24372let Inst{13-11} = 0b010;
24373let Inst{31-18} = 0b10101111101000;
24374let isPredicated = 1;
24375let addrMode = Absolute;
24376let accessSize = WordAccess;
24377let isNVStore = 1;
24378let isNewValue = 1;
24379let isExtended = 1;
24380let isRestrictNoSlot1Store = 1;
24381let mayStore = 1;
24382let BaseOpcode = "S2_storeriabs";
24383let CextOpcode = "S2_storeri";
24384let DecoderNamespace = "MustExtend";
24385let isExtendable = 1;
24386let opExtendable = 1;
24387let isExtentSigned = 0;
24388let opExtentBits = 6;
24389let opExtentAlign = 0;
24390let opNewValue = 2;
24391}
24392def S4_pstorerinewt_rr : HInst<
24393(outs),
24394(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24395"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24396tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24397let Inst{4-3} = 0b10;
24398let Inst{31-21} = 0b00110100101;
24399let isPredicated = 1;
24400let addrMode = BaseRegOffset;
24401let accessSize = WordAccess;
24402let isNVStore = 1;
24403let isNewValue = 1;
24404let isRestrictNoSlot1Store = 1;
24405let mayStore = 1;
24406let BaseOpcode = "S2_storeri_rr";
24407let CextOpcode = "S2_storeri";
24408let InputType = "reg";
24409let opNewValue = 4;
24410}
24411def S4_pstorerinewtnew_abs : HInst<
24412(outs),
24413(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24414"if ($Pv4.new) memw(#$Ii) = $Nt8.new",
24415tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24416let Inst{2-2} = 0b0;
24417let Inst{7-7} = 0b1;
24418let Inst{13-11} = 0b110;
24419let Inst{31-18} = 0b10101111101000;
24420let isPredicated = 1;
24421let addrMode = Absolute;
24422let accessSize = WordAccess;
24423let isNVStore = 1;
24424let isPredicatedNew = 1;
24425let isNewValue = 1;
24426let isExtended = 1;
24427let isRestrictNoSlot1Store = 1;
24428let mayStore = 1;
24429let BaseOpcode = "S2_storeriabs";
24430let CextOpcode = "S2_storeri";
24431let DecoderNamespace = "MustExtend";
24432let isExtendable = 1;
24433let opExtendable = 1;
24434let isExtentSigned = 0;
24435let opExtentBits = 6;
24436let opExtentAlign = 0;
24437let opNewValue = 2;
24438}
24439def S4_pstorerinewtnew_io : HInst<
24440(outs),
24441(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24442"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24443tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24444let Inst{2-2} = 0b0;
24445let Inst{12-11} = 0b10;
24446let Inst{31-21} = 0b01000010101;
24447let isPredicated = 1;
24448let addrMode = BaseImmOffset;
24449let accessSize = WordAccess;
24450let isNVStore = 1;
24451let isPredicatedNew = 1;
24452let isNewValue = 1;
24453let isRestrictNoSlot1Store = 1;
24454let mayStore = 1;
24455let BaseOpcode = "S2_storeri_io";
24456let CextOpcode = "S2_storeri";
24457let InputType = "imm";
24458let isExtendable = 1;
24459let opExtendable = 2;
24460let isExtentSigned = 0;
24461let opExtentBits = 8;
24462let opExtentAlign = 2;
24463let opNewValue = 3;
24464}
24465def S4_pstorerinewtnew_rr : HInst<
24466(outs),
24467(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24468"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24469tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24470let Inst{4-3} = 0b10;
24471let Inst{31-21} = 0b00110110101;
24472let isPredicated = 1;
24473let addrMode = BaseRegOffset;
24474let accessSize = WordAccess;
24475let isNVStore = 1;
24476let isPredicatedNew = 1;
24477let isNewValue = 1;
24478let isRestrictNoSlot1Store = 1;
24479let mayStore = 1;
24480let BaseOpcode = "S2_storeri_rr";
24481let CextOpcode = "S2_storeri";
24482let InputType = "reg";
24483let opNewValue = 4;
24484}
24485def S4_pstorerinewtnew_zomap : HInst<
24486(outs),
24487(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24488"if ($Pv4.new) memw($Rs32) = $Nt8.new",
24489tc_92240447, TypeMAPPING> {
24490let isPseudo = 1;
24491let isCodeGenOnly = 1;
24492let opNewValue = 2;
24493}
24494def S4_pstorerit_abs : HInst<
24495(outs),
24496(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24497"if ($Pv4) memw(#$Ii) = $Rt32",
24498tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24499let Inst{2-2} = 0b0;
24500let Inst{7-7} = 0b1;
24501let Inst{13-13} = 0b0;
24502let Inst{31-18} = 0b10101111100000;
24503let isPredicated = 1;
24504let addrMode = Absolute;
24505let accessSize = WordAccess;
24506let isExtended = 1;
24507let mayStore = 1;
24508let BaseOpcode = "S2_storeriabs";
24509let CextOpcode = "S2_storeri";
24510let isNVStorable = 1;
24511let DecoderNamespace = "MustExtend";
24512let isExtendable = 1;
24513let opExtendable = 1;
24514let isExtentSigned = 0;
24515let opExtentBits = 6;
24516let opExtentAlign = 0;
24517}
24518def S4_pstorerit_rr : HInst<
24519(outs),
24520(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24521"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24522tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24523let Inst{31-21} = 0b00110100100;
24524let isPredicated = 1;
24525let addrMode = BaseRegOffset;
24526let accessSize = WordAccess;
24527let mayStore = 1;
24528let BaseOpcode = "S2_storeri_rr";
24529let CextOpcode = "S2_storeri";
24530let InputType = "reg";
24531let isNVStorable = 1;
24532}
24533def S4_pstoreritnew_abs : HInst<
24534(outs),
24535(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24536"if ($Pv4.new) memw(#$Ii) = $Rt32",
24537tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24538let Inst{2-2} = 0b0;
24539let Inst{7-7} = 0b1;
24540let Inst{13-13} = 0b1;
24541let Inst{31-18} = 0b10101111100000;
24542let isPredicated = 1;
24543let addrMode = Absolute;
24544let accessSize = WordAccess;
24545let isPredicatedNew = 1;
24546let isExtended = 1;
24547let mayStore = 1;
24548let BaseOpcode = "S2_storeriabs";
24549let CextOpcode = "S2_storeri";
24550let isNVStorable = 1;
24551let DecoderNamespace = "MustExtend";
24552let isExtendable = 1;
24553let opExtendable = 1;
24554let isExtentSigned = 0;
24555let opExtentBits = 6;
24556let opExtentAlign = 0;
24557}
24558def S4_pstoreritnew_io : HInst<
24559(outs),
24560(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24561"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24562tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24563let Inst{2-2} = 0b0;
24564let Inst{31-21} = 0b01000010100;
24565let isPredicated = 1;
24566let addrMode = BaseImmOffset;
24567let accessSize = WordAccess;
24568let isPredicatedNew = 1;
24569let mayStore = 1;
24570let BaseOpcode = "S2_storeri_io";
24571let CextOpcode = "S2_storeri";
24572let InputType = "imm";
24573let isNVStorable = 1;
24574let isExtendable = 1;
24575let opExtendable = 2;
24576let isExtentSigned = 0;
24577let opExtentBits = 8;
24578let opExtentAlign = 2;
24579}
24580def S4_pstoreritnew_rr : HInst<
24581(outs),
24582(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24583"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24584tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24585let Inst{31-21} = 0b00110110100;
24586let isPredicated = 1;
24587let addrMode = BaseRegOffset;
24588let accessSize = WordAccess;
24589let isPredicatedNew = 1;
24590let mayStore = 1;
24591let BaseOpcode = "S2_storeri_rr";
24592let CextOpcode = "S2_storeri";
24593let InputType = "reg";
24594let isNVStorable = 1;
24595}
24596def S4_pstoreritnew_zomap : HInst<
24597(outs),
24598(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24599"if ($Pv4.new) memw($Rs32) = $Rt32",
24600tc_a2b365d2, TypeMAPPING> {
24601let isPseudo = 1;
24602let isCodeGenOnly = 1;
24603}
24604def S4_stored_locked : HInst<
24605(outs PredRegs:$Pd4),
24606(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24607"memd_locked($Rs32,$Pd4) = $Rtt32",
24608tc_6f42bc60, TypeST>, Enc_d7dc10 {
24609let Inst{7-2} = 0b000000;
24610let Inst{13-13} = 0b0;
24611let Inst{31-21} = 0b10100000111;
24612let accessSize = DoubleWordAccess;
24613let isPredicateLate = 1;
24614let isSoloAX = 1;
24615let mayStore = 1;
24616}
24617def S4_stored_rl_at_vi : HInst<
24618(outs),
24619(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24620"memd_rl($Rs32):at = $Rtt32",
24621tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24622let Inst{7-2} = 0b000010;
24623let Inst{13-13} = 0b0;
24624let Inst{31-21} = 0b10100000111;
24625let accessSize = DoubleWordAccess;
24626let isSolo = 1;
24627let mayStore = 1;
24628}
24629def S4_stored_rl_st_vi : HInst<
24630(outs),
24631(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24632"memd_rl($Rs32):st = $Rtt32",
24633tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24634let Inst{7-2} = 0b001010;
24635let Inst{13-13} = 0b0;
24636let Inst{31-21} = 0b10100000111;
24637let accessSize = DoubleWordAccess;
24638let isSolo = 1;
24639let mayStore = 1;
24640}
24641def S4_storeirb_io : HInst<
24642(outs),
24643(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24644"memb($Rs32+#$Ii) = #$II",
24645tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel {
24646let Inst{31-21} = 0b00111100000;
24647let addrMode = BaseImmOffset;
24648let accessSize = ByteAccess;
24649let mayStore = 1;
24650let BaseOpcode = "S4_storeirb_io";
24651let CextOpcode = "S2_storerb";
24652let InputType = "imm";
24653let isPredicable = 1;
24654let isExtendable = 1;
24655let opExtendable = 2;
24656let isExtentSigned = 1;
24657let opExtentBits = 8;
24658let opExtentAlign = 0;
24659}
24660def S4_storeirb_zomap : HInst<
24661(outs),
24662(ins IntRegs:$Rs32, s8_0Imm:$II),
24663"memb($Rs32) = #$II",
24664tc_7c31e19a, TypeMAPPING> {
24665let isPseudo = 1;
24666let isCodeGenOnly = 1;
24667}
24668def S4_storeirbf_io : HInst<
24669(outs),
24670(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24671"if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24672tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24673let Inst{31-21} = 0b00111000100;
24674let isPredicated = 1;
24675let isPredicatedFalse = 1;
24676let addrMode = BaseImmOffset;
24677let accessSize = ByteAccess;
24678let mayStore = 1;
24679let BaseOpcode = "S4_storeirb_io";
24680let CextOpcode = "S2_storerb";
24681let InputType = "imm";
24682let isExtendable = 1;
24683let opExtendable = 3;
24684let isExtentSigned = 1;
24685let opExtentBits = 6;
24686let opExtentAlign = 0;
24687}
24688def S4_storeirbf_zomap : HInst<
24689(outs),
24690(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24691"if (!$Pv4) memb($Rs32) = #$II",
24692tc_d03278fd, TypeMAPPING> {
24693let isPseudo = 1;
24694let isCodeGenOnly = 1;
24695}
24696def S4_storeirbfnew_io : HInst<
24697(outs),
24698(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24699"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24700tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24701let Inst{31-21} = 0b00111001100;
24702let isPredicated = 1;
24703let isPredicatedFalse = 1;
24704let addrMode = BaseImmOffset;
24705let accessSize = ByteAccess;
24706let isPredicatedNew = 1;
24707let mayStore = 1;
24708let BaseOpcode = "S4_storeirb_io";
24709let CextOpcode = "S2_storerb";
24710let InputType = "imm";
24711let isExtendable = 1;
24712let opExtendable = 3;
24713let isExtentSigned = 1;
24714let opExtentBits = 6;
24715let opExtentAlign = 0;
24716}
24717def S4_storeirbfnew_zomap : HInst<
24718(outs),
24719(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24720"if (!$Pv4.new) memb($Rs32) = #$II",
24721tc_65cbd974, TypeMAPPING> {
24722let isPseudo = 1;
24723let isCodeGenOnly = 1;
24724}
24725def S4_storeirbt_io : HInst<
24726(outs),
24727(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24728"if ($Pv4) memb($Rs32+#$Ii) = #$II",
24729tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24730let Inst{31-21} = 0b00111000000;
24731let isPredicated = 1;
24732let addrMode = BaseImmOffset;
24733let accessSize = ByteAccess;
24734let mayStore = 1;
24735let BaseOpcode = "S4_storeirb_io";
24736let CextOpcode = "S2_storerb";
24737let InputType = "imm";
24738let isExtendable = 1;
24739let opExtendable = 3;
24740let isExtentSigned = 1;
24741let opExtentBits = 6;
24742let opExtentAlign = 0;
24743}
24744def S4_storeirbt_zomap : HInst<
24745(outs),
24746(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24747"if ($Pv4) memb($Rs32) = #$II",
24748tc_d03278fd, TypeMAPPING> {
24749let isPseudo = 1;
24750let isCodeGenOnly = 1;
24751}
24752def S4_storeirbtnew_io : HInst<
24753(outs),
24754(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24755"if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24756tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24757let Inst{31-21} = 0b00111001000;
24758let isPredicated = 1;
24759let addrMode = BaseImmOffset;
24760let accessSize = ByteAccess;
24761let isPredicatedNew = 1;
24762let mayStore = 1;
24763let BaseOpcode = "S4_storeirb_io";
24764let CextOpcode = "S2_storerb";
24765let InputType = "imm";
24766let isExtendable = 1;
24767let opExtendable = 3;
24768let isExtentSigned = 1;
24769let opExtentBits = 6;
24770let opExtentAlign = 0;
24771}
24772def S4_storeirbtnew_zomap : HInst<
24773(outs),
24774(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24775"if ($Pv4.new) memb($Rs32) = #$II",
24776tc_65cbd974, TypeMAPPING> {
24777let isPseudo = 1;
24778let isCodeGenOnly = 1;
24779}
24780def S4_storeirh_io : HInst<
24781(outs),
24782(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24783"memh($Rs32+#$Ii) = #$II",
24784tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel {
24785let Inst{31-21} = 0b00111100001;
24786let addrMode = BaseImmOffset;
24787let accessSize = HalfWordAccess;
24788let mayStore = 1;
24789let BaseOpcode = "S4_storeirh_io";
24790let CextOpcode = "S2_storerh";
24791let InputType = "imm";
24792let isPredicable = 1;
24793let isExtendable = 1;
24794let opExtendable = 2;
24795let isExtentSigned = 1;
24796let opExtentBits = 8;
24797let opExtentAlign = 0;
24798}
24799def S4_storeirh_zomap : HInst<
24800(outs),
24801(ins IntRegs:$Rs32, s8_0Imm:$II),
24802"memh($Rs32) = #$II",
24803tc_7c31e19a, TypeMAPPING> {
24804let isPseudo = 1;
24805let isCodeGenOnly = 1;
24806}
24807def S4_storeirhf_io : HInst<
24808(outs),
24809(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24810"if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24811tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24812let Inst{31-21} = 0b00111000101;
24813let isPredicated = 1;
24814let isPredicatedFalse = 1;
24815let addrMode = BaseImmOffset;
24816let accessSize = HalfWordAccess;
24817let mayStore = 1;
24818let BaseOpcode = "S4_storeirh_io";
24819let CextOpcode = "S2_storerh";
24820let InputType = "imm";
24821let isExtendable = 1;
24822let opExtendable = 3;
24823let isExtentSigned = 1;
24824let opExtentBits = 6;
24825let opExtentAlign = 0;
24826}
24827def S4_storeirhf_zomap : HInst<
24828(outs),
24829(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24830"if (!$Pv4) memh($Rs32) = #$II",
24831tc_d03278fd, TypeMAPPING> {
24832let isPseudo = 1;
24833let isCodeGenOnly = 1;
24834}
24835def S4_storeirhfnew_io : HInst<
24836(outs),
24837(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24838"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24839tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24840let Inst{31-21} = 0b00111001101;
24841let isPredicated = 1;
24842let isPredicatedFalse = 1;
24843let addrMode = BaseImmOffset;
24844let accessSize = HalfWordAccess;
24845let isPredicatedNew = 1;
24846let mayStore = 1;
24847let BaseOpcode = "S4_storeirh_io";
24848let CextOpcode = "S2_storerh";
24849let InputType = "imm";
24850let isExtendable = 1;
24851let opExtendable = 3;
24852let isExtentSigned = 1;
24853let opExtentBits = 6;
24854let opExtentAlign = 0;
24855}
24856def S4_storeirhfnew_zomap : HInst<
24857(outs),
24858(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24859"if (!$Pv4.new) memh($Rs32) = #$II",
24860tc_65cbd974, TypeMAPPING> {
24861let isPseudo = 1;
24862let isCodeGenOnly = 1;
24863}
24864def S4_storeirht_io : HInst<
24865(outs),
24866(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24867"if ($Pv4) memh($Rs32+#$Ii) = #$II",
24868tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24869let Inst{31-21} = 0b00111000001;
24870let isPredicated = 1;
24871let addrMode = BaseImmOffset;
24872let accessSize = HalfWordAccess;
24873let mayStore = 1;
24874let BaseOpcode = "S4_storeirh_io";
24875let CextOpcode = "S2_storerh";
24876let InputType = "imm";
24877let isExtendable = 1;
24878let opExtendable = 3;
24879let isExtentSigned = 1;
24880let opExtentBits = 6;
24881let opExtentAlign = 0;
24882}
24883def S4_storeirht_zomap : HInst<
24884(outs),
24885(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24886"if ($Pv4) memh($Rs32) = #$II",
24887tc_d03278fd, TypeMAPPING> {
24888let isPseudo = 1;
24889let isCodeGenOnly = 1;
24890}
24891def S4_storeirhtnew_io : HInst<
24892(outs),
24893(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24894"if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24895tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24896let Inst{31-21} = 0b00111001001;
24897let isPredicated = 1;
24898let addrMode = BaseImmOffset;
24899let accessSize = HalfWordAccess;
24900let isPredicatedNew = 1;
24901let mayStore = 1;
24902let BaseOpcode = "S4_storeirh_io";
24903let CextOpcode = "S2_storerh";
24904let InputType = "imm";
24905let isExtendable = 1;
24906let opExtendable = 3;
24907let isExtentSigned = 1;
24908let opExtentBits = 6;
24909let opExtentAlign = 0;
24910}
24911def S4_storeirhtnew_zomap : HInst<
24912(outs),
24913(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24914"if ($Pv4.new) memh($Rs32) = #$II",
24915tc_65cbd974, TypeMAPPING> {
24916let isPseudo = 1;
24917let isCodeGenOnly = 1;
24918}
24919def S4_storeiri_io : HInst<
24920(outs),
24921(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24922"memw($Rs32+#$Ii) = #$II",
24923tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel {
24924let Inst{31-21} = 0b00111100010;
24925let addrMode = BaseImmOffset;
24926let accessSize = WordAccess;
24927let mayStore = 1;
24928let BaseOpcode = "S4_storeiri_io";
24929let CextOpcode = "S2_storeri";
24930let InputType = "imm";
24931let isPredicable = 1;
24932let isExtendable = 1;
24933let opExtendable = 2;
24934let isExtentSigned = 1;
24935let opExtentBits = 8;
24936let opExtentAlign = 0;
24937}
24938def S4_storeiri_zomap : HInst<
24939(outs),
24940(ins IntRegs:$Rs32, s8_0Imm:$II),
24941"memw($Rs32) = #$II",
24942tc_7c31e19a, TypeMAPPING> {
24943let isPseudo = 1;
24944let isCodeGenOnly = 1;
24945}
24946def S4_storeirif_io : HInst<
24947(outs),
24948(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24949"if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24950tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24951let Inst{31-21} = 0b00111000110;
24952let isPredicated = 1;
24953let isPredicatedFalse = 1;
24954let addrMode = BaseImmOffset;
24955let accessSize = WordAccess;
24956let mayStore = 1;
24957let BaseOpcode = "S4_storeiri_io";
24958let CextOpcode = "S2_storeri";
24959let InputType = "imm";
24960let isExtendable = 1;
24961let opExtendable = 3;
24962let isExtentSigned = 1;
24963let opExtentBits = 6;
24964let opExtentAlign = 0;
24965}
24966def S4_storeirif_zomap : HInst<
24967(outs),
24968(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24969"if (!$Pv4) memw($Rs32) = #$II",
24970tc_d03278fd, TypeMAPPING> {
24971let isPseudo = 1;
24972let isCodeGenOnly = 1;
24973}
24974def S4_storeirifnew_io : HInst<
24975(outs),
24976(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24977"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
24978tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
24979let Inst{31-21} = 0b00111001110;
24980let isPredicated = 1;
24981let isPredicatedFalse = 1;
24982let addrMode = BaseImmOffset;
24983let accessSize = WordAccess;
24984let isPredicatedNew = 1;
24985let mayStore = 1;
24986let BaseOpcode = "S4_storeiri_io";
24987let CextOpcode = "S2_storeri";
24988let InputType = "imm";
24989let isExtendable = 1;
24990let opExtendable = 3;
24991let isExtentSigned = 1;
24992let opExtentBits = 6;
24993let opExtentAlign = 0;
24994}
24995def S4_storeirifnew_zomap : HInst<
24996(outs),
24997(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24998"if (!$Pv4.new) memw($Rs32) = #$II",
24999tc_65cbd974, TypeMAPPING> {
25000let isPseudo = 1;
25001let isCodeGenOnly = 1;
25002}
25003def S4_storeirit_io : HInst<
25004(outs),
25005(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25006"if ($Pv4) memw($Rs32+#$Ii) = #$II",
25007tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
25008let Inst{31-21} = 0b00111000010;
25009let isPredicated = 1;
25010let addrMode = BaseImmOffset;
25011let accessSize = WordAccess;
25012let mayStore = 1;
25013let BaseOpcode = "S4_storeiri_io";
25014let CextOpcode = "S2_storeri";
25015let InputType = "imm";
25016let isExtendable = 1;
25017let opExtendable = 3;
25018let isExtentSigned = 1;
25019let opExtentBits = 6;
25020let opExtentAlign = 0;
25021}
25022def S4_storeirit_zomap : HInst<
25023(outs),
25024(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25025"if ($Pv4) memw($Rs32) = #$II",
25026tc_d03278fd, TypeMAPPING> {
25027let isPseudo = 1;
25028let isCodeGenOnly = 1;
25029}
25030def S4_storeiritnew_io : HInst<
25031(outs),
25032(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25033"if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
25034tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
25035let Inst{31-21} = 0b00111001010;
25036let isPredicated = 1;
25037let addrMode = BaseImmOffset;
25038let accessSize = WordAccess;
25039let isPredicatedNew = 1;
25040let mayStore = 1;
25041let BaseOpcode = "S4_storeiri_io";
25042let CextOpcode = "S2_storeri";
25043let InputType = "imm";
25044let isExtendable = 1;
25045let opExtendable = 3;
25046let isExtentSigned = 1;
25047let opExtentBits = 6;
25048let opExtentAlign = 0;
25049}
25050def S4_storeiritnew_zomap : HInst<
25051(outs),
25052(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25053"if ($Pv4.new) memw($Rs32) = #$II",
25054tc_65cbd974, TypeMAPPING> {
25055let isPseudo = 1;
25056let isCodeGenOnly = 1;
25057}
25058def S4_storerb_ap : HInst<
25059(outs IntRegs:$Re32),
25060(ins u32_0Imm:$II, IntRegs:$Rt32),
25061"memb($Re32=#$II) = $Rt32",
25062tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25063let Inst{7-6} = 0b10;
25064let Inst{13-13} = 0b0;
25065let Inst{31-21} = 0b10101011000;
25066let addrMode = AbsoluteSet;
25067let accessSize = ByteAccess;
25068let isExtended = 1;
25069let mayStore = 1;
25070let BaseOpcode = "S2_storerb_ap";
25071let isNVStorable = 1;
25072let DecoderNamespace = "MustExtend";
25073let isExtendable = 1;
25074let opExtendable = 1;
25075let isExtentSigned = 0;
25076let opExtentBits = 6;
25077let opExtentAlign = 0;
25078}
25079def S4_storerb_rr : HInst<
25080(outs),
25081(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25082"memb($Rs32+$Ru32<<#$Ii) = $Rt32",
25083tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25084let Inst{6-5} = 0b00;
25085let Inst{31-21} = 0b00111011000;
25086let addrMode = BaseRegOffset;
25087let accessSize = ByteAccess;
25088let mayStore = 1;
25089let BaseOpcode = "S4_storerb_rr";
25090let CextOpcode = "S2_storerb";
25091let InputType = "reg";
25092let isNVStorable = 1;
25093let isPredicable = 1;
25094}
25095def S4_storerb_ur : HInst<
25096(outs),
25097(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25098"memb($Ru32<<#$Ii+#$II) = $Rt32",
25099tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25100let Inst{7-7} = 0b1;
25101let Inst{31-21} = 0b10101101000;
25102let addrMode = BaseLongOffset;
25103let accessSize = ByteAccess;
25104let isExtended = 1;
25105let mayStore = 1;
25106let BaseOpcode = "S4_storerb_ur";
25107let CextOpcode = "S2_storerb";
25108let InputType = "imm";
25109let isNVStorable = 1;
25110let DecoderNamespace = "MustExtend";
25111let isExtendable = 1;
25112let opExtendable = 2;
25113let isExtentSigned = 0;
25114let opExtentBits = 6;
25115let opExtentAlign = 0;
25116}
25117def S4_storerbnew_ap : HInst<
25118(outs IntRegs:$Re32),
25119(ins u32_0Imm:$II, IntRegs:$Nt8),
25120"memb($Re32=#$II) = $Nt8.new",
25121tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25122let Inst{7-6} = 0b10;
25123let Inst{13-11} = 0b000;
25124let Inst{31-21} = 0b10101011101;
25125let addrMode = AbsoluteSet;
25126let accessSize = ByteAccess;
25127let isNVStore = 1;
25128let isNewValue = 1;
25129let isExtended = 1;
25130let isRestrictNoSlot1Store = 1;
25131let mayStore = 1;
25132let BaseOpcode = "S2_storerb_ap";
25133let DecoderNamespace = "MustExtend";
25134let isExtendable = 1;
25135let opExtendable = 1;
25136let isExtentSigned = 0;
25137let opExtentBits = 6;
25138let opExtentAlign = 0;
25139let opNewValue = 2;
25140}
25141def S4_storerbnew_rr : HInst<
25142(outs),
25143(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25144"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25145tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25146let Inst{6-3} = 0b0000;
25147let Inst{31-21} = 0b00111011101;
25148let addrMode = BaseRegOffset;
25149let accessSize = ByteAccess;
25150let isNVStore = 1;
25151let isNewValue = 1;
25152let isRestrictNoSlot1Store = 1;
25153let mayStore = 1;
25154let BaseOpcode = "S4_storerb_rr";
25155let CextOpcode = "S2_storerb";
25156let InputType = "reg";
25157let isPredicable = 1;
25158let opNewValue = 3;
25159}
25160def S4_storerbnew_ur : HInst<
25161(outs),
25162(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25163"memb($Ru32<<#$Ii+#$II) = $Nt8.new",
25164tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25165let Inst{7-7} = 0b1;
25166let Inst{12-11} = 0b00;
25167let Inst{31-21} = 0b10101101101;
25168let addrMode = BaseLongOffset;
25169let accessSize = ByteAccess;
25170let isNVStore = 1;
25171let isNewValue = 1;
25172let isExtended = 1;
25173let isRestrictNoSlot1Store = 1;
25174let mayStore = 1;
25175let BaseOpcode = "S4_storerb_ur";
25176let CextOpcode = "S2_storerb";
25177let DecoderNamespace = "MustExtend";
25178let isExtendable = 1;
25179let opExtendable = 2;
25180let isExtentSigned = 0;
25181let opExtentBits = 6;
25182let opExtentAlign = 0;
25183let opNewValue = 3;
25184}
25185def S4_storerd_ap : HInst<
25186(outs IntRegs:$Re32),
25187(ins u32_0Imm:$II, DoubleRegs:$Rtt32),
25188"memd($Re32=#$II) = $Rtt32",
25189tc_bb07f2c5, TypeST>, Enc_c7a204 {
25190let Inst{7-6} = 0b10;
25191let Inst{13-13} = 0b0;
25192let Inst{31-21} = 0b10101011110;
25193let addrMode = AbsoluteSet;
25194let accessSize = DoubleWordAccess;
25195let isExtended = 1;
25196let mayStore = 1;
25197let BaseOpcode = "S4_storerd_ap";
25198let DecoderNamespace = "MustExtend";
25199let isExtendable = 1;
25200let opExtendable = 1;
25201let isExtentSigned = 0;
25202let opExtentBits = 6;
25203let opExtentAlign = 0;
25204}
25205def S4_storerd_rr : HInst<
25206(outs),
25207(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
25208"memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
25209tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
25210let Inst{6-5} = 0b00;
25211let Inst{31-21} = 0b00111011110;
25212let addrMode = BaseRegOffset;
25213let accessSize = DoubleWordAccess;
25214let mayStore = 1;
25215let BaseOpcode = "S2_storerd_rr";
25216let CextOpcode = "S2_storerd";
25217let InputType = "reg";
25218let isPredicable = 1;
25219}
25220def S4_storerd_ur : HInst<
25221(outs),
25222(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
25223"memd($Ru32<<#$Ii+#$II) = $Rtt32",
25224tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
25225let Inst{7-7} = 0b1;
25226let Inst{31-21} = 0b10101101110;
25227let addrMode = BaseLongOffset;
25228let accessSize = DoubleWordAccess;
25229let isExtended = 1;
25230let mayStore = 1;
25231let BaseOpcode = "S2_storerd_ur";
25232let CextOpcode = "S2_storerd";
25233let InputType = "imm";
25234let DecoderNamespace = "MustExtend";
25235let isExtendable = 1;
25236let opExtendable = 2;
25237let isExtentSigned = 0;
25238let opExtentBits = 6;
25239let opExtentAlign = 0;
25240}
25241def S4_storerf_ap : HInst<
25242(outs IntRegs:$Re32),
25243(ins u32_0Imm:$II, IntRegs:$Rt32),
25244"memh($Re32=#$II) = $Rt32.h",
25245tc_bb07f2c5, TypeST>, Enc_8bcba4 {
25246let Inst{7-6} = 0b10;
25247let Inst{13-13} = 0b0;
25248let Inst{31-21} = 0b10101011011;
25249let addrMode = AbsoluteSet;
25250let accessSize = HalfWordAccess;
25251let isExtended = 1;
25252let mayStore = 1;
25253let BaseOpcode = "S4_storerf_ap";
25254let DecoderNamespace = "MustExtend";
25255let isExtendable = 1;
25256let opExtendable = 1;
25257let isExtentSigned = 0;
25258let opExtentBits = 6;
25259let opExtentAlign = 0;
25260}
25261def S4_storerf_rr : HInst<
25262(outs),
25263(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25264"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
25265tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25266let Inst{6-5} = 0b00;
25267let Inst{31-21} = 0b00111011011;
25268let addrMode = BaseRegOffset;
25269let accessSize = HalfWordAccess;
25270let mayStore = 1;
25271let BaseOpcode = "S4_storerf_rr";
25272let CextOpcode = "S2_storerf";
25273let InputType = "reg";
25274let isPredicable = 1;
25275}
25276def S4_storerf_ur : HInst<
25277(outs),
25278(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25279"memh($Ru32<<#$Ii+#$II) = $Rt32.h",
25280tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25281let Inst{7-7} = 0b1;
25282let Inst{31-21} = 0b10101101011;
25283let addrMode = BaseLongOffset;
25284let accessSize = HalfWordAccess;
25285let isExtended = 1;
25286let mayStore = 1;
25287let BaseOpcode = "S4_storerf_rr";
25288let CextOpcode = "S2_storerf";
25289let InputType = "imm";
25290let DecoderNamespace = "MustExtend";
25291let isExtendable = 1;
25292let opExtendable = 2;
25293let isExtentSigned = 0;
25294let opExtentBits = 6;
25295let opExtentAlign = 0;
25296}
25297def S4_storerh_ap : HInst<
25298(outs IntRegs:$Re32),
25299(ins u32_0Imm:$II, IntRegs:$Rt32),
25300"memh($Re32=#$II) = $Rt32",
25301tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25302let Inst{7-6} = 0b10;
25303let Inst{13-13} = 0b0;
25304let Inst{31-21} = 0b10101011010;
25305let addrMode = AbsoluteSet;
25306let accessSize = HalfWordAccess;
25307let isExtended = 1;
25308let mayStore = 1;
25309let BaseOpcode = "S2_storerh_ap";
25310let isNVStorable = 1;
25311let DecoderNamespace = "MustExtend";
25312let isExtendable = 1;
25313let opExtendable = 1;
25314let isExtentSigned = 0;
25315let opExtentBits = 6;
25316let opExtentAlign = 0;
25317}
25318def S4_storerh_rr : HInst<
25319(outs),
25320(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25321"memh($Rs32+$Ru32<<#$Ii) = $Rt32",
25322tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25323let Inst{6-5} = 0b00;
25324let Inst{31-21} = 0b00111011010;
25325let addrMode = BaseRegOffset;
25326let accessSize = HalfWordAccess;
25327let mayStore = 1;
25328let BaseOpcode = "S2_storerh_rr";
25329let CextOpcode = "S2_storerh";
25330let InputType = "reg";
25331let isNVStorable = 1;
25332let isPredicable = 1;
25333}
25334def S4_storerh_ur : HInst<
25335(outs),
25336(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25337"memh($Ru32<<#$Ii+#$II) = $Rt32",
25338tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25339let Inst{7-7} = 0b1;
25340let Inst{31-21} = 0b10101101010;
25341let addrMode = BaseLongOffset;
25342let accessSize = HalfWordAccess;
25343let isExtended = 1;
25344let mayStore = 1;
25345let BaseOpcode = "S2_storerh_ur";
25346let CextOpcode = "S2_storerh";
25347let InputType = "imm";
25348let isNVStorable = 1;
25349let DecoderNamespace = "MustExtend";
25350let isExtendable = 1;
25351let opExtendable = 2;
25352let isExtentSigned = 0;
25353let opExtentBits = 6;
25354let opExtentAlign = 0;
25355}
25356def S4_storerhnew_ap : HInst<
25357(outs IntRegs:$Re32),
25358(ins u32_0Imm:$II, IntRegs:$Nt8),
25359"memh($Re32=#$II) = $Nt8.new",
25360tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25361let Inst{7-6} = 0b10;
25362let Inst{13-11} = 0b001;
25363let Inst{31-21} = 0b10101011101;
25364let addrMode = AbsoluteSet;
25365let accessSize = HalfWordAccess;
25366let isNVStore = 1;
25367let isNewValue = 1;
25368let isExtended = 1;
25369let isRestrictNoSlot1Store = 1;
25370let mayStore = 1;
25371let BaseOpcode = "S2_storerh_ap";
25372let DecoderNamespace = "MustExtend";
25373let isExtendable = 1;
25374let opExtendable = 1;
25375let isExtentSigned = 0;
25376let opExtentBits = 6;
25377let opExtentAlign = 0;
25378let opNewValue = 2;
25379}
25380def S4_storerhnew_rr : HInst<
25381(outs),
25382(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25383"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25384tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25385let Inst{6-3} = 0b0001;
25386let Inst{31-21} = 0b00111011101;
25387let addrMode = BaseRegOffset;
25388let accessSize = HalfWordAccess;
25389let isNVStore = 1;
25390let isNewValue = 1;
25391let isRestrictNoSlot1Store = 1;
25392let mayStore = 1;
25393let BaseOpcode = "S2_storerh_rr";
25394let CextOpcode = "S2_storerh";
25395let InputType = "reg";
25396let isPredicable = 1;
25397let opNewValue = 3;
25398}
25399def S4_storerhnew_ur : HInst<
25400(outs),
25401(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25402"memh($Ru32<<#$Ii+#$II) = $Nt8.new",
25403tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25404let Inst{7-7} = 0b1;
25405let Inst{12-11} = 0b01;
25406let Inst{31-21} = 0b10101101101;
25407let addrMode = BaseLongOffset;
25408let accessSize = HalfWordAccess;
25409let isNVStore = 1;
25410let isNewValue = 1;
25411let isExtended = 1;
25412let isRestrictNoSlot1Store = 1;
25413let mayStore = 1;
25414let BaseOpcode = "S2_storerh_ur";
25415let CextOpcode = "S2_storerh";
25416let DecoderNamespace = "MustExtend";
25417let isExtendable = 1;
25418let opExtendable = 2;
25419let isExtentSigned = 0;
25420let opExtentBits = 6;
25421let opExtentAlign = 0;
25422let opNewValue = 3;
25423}
25424def S4_storeri_ap : HInst<
25425(outs IntRegs:$Re32),
25426(ins u32_0Imm:$II, IntRegs:$Rt32),
25427"memw($Re32=#$II) = $Rt32",
25428tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25429let Inst{7-6} = 0b10;
25430let Inst{13-13} = 0b0;
25431let Inst{31-21} = 0b10101011100;
25432let addrMode = AbsoluteSet;
25433let accessSize = WordAccess;
25434let isExtended = 1;
25435let mayStore = 1;
25436let BaseOpcode = "S2_storeri_ap";
25437let isNVStorable = 1;
25438let DecoderNamespace = "MustExtend";
25439let isExtendable = 1;
25440let opExtendable = 1;
25441let isExtentSigned = 0;
25442let opExtentBits = 6;
25443let opExtentAlign = 0;
25444}
25445def S4_storeri_rr : HInst<
25446(outs),
25447(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25448"memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25449tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25450let Inst{6-5} = 0b00;
25451let Inst{31-21} = 0b00111011100;
25452let addrMode = BaseRegOffset;
25453let accessSize = WordAccess;
25454let mayStore = 1;
25455let BaseOpcode = "S2_storeri_rr";
25456let CextOpcode = "S2_storeri";
25457let InputType = "reg";
25458let isNVStorable = 1;
25459let isPredicable = 1;
25460}
25461def S4_storeri_ur : HInst<
25462(outs),
25463(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25464"memw($Ru32<<#$Ii+#$II) = $Rt32",
25465tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25466let Inst{7-7} = 0b1;
25467let Inst{31-21} = 0b10101101100;
25468let addrMode = BaseLongOffset;
25469let accessSize = WordAccess;
25470let isExtended = 1;
25471let mayStore = 1;
25472let BaseOpcode = "S2_storeri_ur";
25473let CextOpcode = "S2_storeri";
25474let InputType = "imm";
25475let isNVStorable = 1;
25476let DecoderNamespace = "MustExtend";
25477let isExtendable = 1;
25478let opExtendable = 2;
25479let isExtentSigned = 0;
25480let opExtentBits = 6;
25481let opExtentAlign = 0;
25482}
25483def S4_storerinew_ap : HInst<
25484(outs IntRegs:$Re32),
25485(ins u32_0Imm:$II, IntRegs:$Nt8),
25486"memw($Re32=#$II) = $Nt8.new",
25487tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25488let Inst{7-6} = 0b10;
25489let Inst{13-11} = 0b010;
25490let Inst{31-21} = 0b10101011101;
25491let addrMode = AbsoluteSet;
25492let accessSize = WordAccess;
25493let isNVStore = 1;
25494let isNewValue = 1;
25495let isExtended = 1;
25496let isRestrictNoSlot1Store = 1;
25497let mayStore = 1;
25498let BaseOpcode = "S2_storeri_ap";
25499let DecoderNamespace = "MustExtend";
25500let isExtendable = 1;
25501let opExtendable = 1;
25502let isExtentSigned = 0;
25503let opExtentBits = 6;
25504let opExtentAlign = 0;
25505let opNewValue = 2;
25506}
25507def S4_storerinew_rr : HInst<
25508(outs),
25509(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25510"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25511tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25512let Inst{6-3} = 0b0010;
25513let Inst{31-21} = 0b00111011101;
25514let addrMode = BaseRegOffset;
25515let accessSize = WordAccess;
25516let isNVStore = 1;
25517let isNewValue = 1;
25518let isRestrictNoSlot1Store = 1;
25519let mayStore = 1;
25520let BaseOpcode = "S2_storeri_rr";
25521let CextOpcode = "S2_storeri";
25522let InputType = "reg";
25523let isPredicable = 1;
25524let opNewValue = 3;
25525}
25526def S4_storerinew_ur : HInst<
25527(outs),
25528(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25529"memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25530tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25531let Inst{7-7} = 0b1;
25532let Inst{12-11} = 0b10;
25533let Inst{31-21} = 0b10101101101;
25534let addrMode = BaseLongOffset;
25535let accessSize = WordAccess;
25536let isNVStore = 1;
25537let isNewValue = 1;
25538let isExtended = 1;
25539let isRestrictNoSlot1Store = 1;
25540let mayStore = 1;
25541let BaseOpcode = "S2_storeri_ur";
25542let CextOpcode = "S2_storeri";
25543let DecoderNamespace = "MustExtend";
25544let isExtendable = 1;
25545let opExtendable = 2;
25546let isExtentSigned = 0;
25547let opExtentBits = 6;
25548let opExtentAlign = 0;
25549let opNewValue = 3;
25550}
25551def S4_subaddi : HInst<
25552(outs IntRegs:$Rd32),
25553(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25554"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25555tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
25556let Inst{31-23} = 0b110110111;
25557let hasNewValue = 1;
25558let opNewValue = 0;
25559let prefersSlot3 = 1;
25560let isExtendable = 1;
25561let opExtendable = 2;
25562let isExtentSigned = 1;
25563let opExtentBits = 6;
25564let opExtentAlign = 0;
25565}
25566def S4_subi_asl_ri : HInst<
25567(outs IntRegs:$Rx32),
25568(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25569"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25570tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25571let Inst{2-0} = 0b110;
25572let Inst{4-4} = 0b0;
25573let Inst{31-24} = 0b11011110;
25574let hasNewValue = 1;
25575let opNewValue = 0;
25576let prefersSlot3 = 1;
25577let isExtendable = 1;
25578let opExtendable = 1;
25579let isExtentSigned = 0;
25580let opExtentBits = 8;
25581let opExtentAlign = 0;
25582let Constraints = "$Rx32 = $Rx32in";
25583}
25584def S4_subi_lsr_ri : HInst<
25585(outs IntRegs:$Rx32),
25586(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25587"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25588tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25589let Inst{2-0} = 0b110;
25590let Inst{4-4} = 0b1;
25591let Inst{31-24} = 0b11011110;
25592let hasNewValue = 1;
25593let opNewValue = 0;
25594let prefersSlot3 = 1;
25595let isExtendable = 1;
25596let opExtendable = 1;
25597let isExtentSigned = 0;
25598let opExtentBits = 8;
25599let opExtentAlign = 0;
25600let Constraints = "$Rx32 = $Rx32in";
25601}
25602def S4_vrcrotate : HInst<
25603(outs DoubleRegs:$Rdd32),
25604(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25605"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25606tc_f0cdeccf, TypeS_3op>, Enc_645d54 {
25607let Inst{7-6} = 0b11;
25608let Inst{31-21} = 0b11000011110;
25609let prefersSlot3 = 1;
25610}
25611def S4_vrcrotate_acc : HInst<
25612(outs DoubleRegs:$Rxx32),
25613(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25614"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25615tc_a38c45dc, TypeS_3op>, Enc_b72622 {
25616let Inst{7-6} = 0b00;
25617let Inst{31-21} = 0b11001011101;
25618let prefersSlot3 = 1;
25619let Constraints = "$Rxx32 = $Rxx32in";
25620}
25621def S4_vxaddsubh : HInst<
25622(outs DoubleRegs:$Rdd32),
25623(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25624"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25625tc_8a825db2, TypeS_3op>, Enc_a56825 {
25626let Inst{7-5} = 0b100;
25627let Inst{13-13} = 0b0;
25628let Inst{31-21} = 0b11000001010;
25629let prefersSlot3 = 1;
25630let Defs = [USR_OVF];
25631}
25632def S4_vxaddsubhr : HInst<
25633(outs DoubleRegs:$Rdd32),
25634(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25635"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25636tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25637let Inst{7-5} = 0b000;
25638let Inst{13-13} = 0b0;
25639let Inst{31-21} = 0b11000001110;
25640let prefersSlot3 = 1;
25641let Defs = [USR_OVF];
25642}
25643def S4_vxaddsubw : HInst<
25644(outs DoubleRegs:$Rdd32),
25645(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25646"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25647tc_8a825db2, TypeS_3op>, Enc_a56825 {
25648let Inst{7-5} = 0b000;
25649let Inst{13-13} = 0b0;
25650let Inst{31-21} = 0b11000001010;
25651let prefersSlot3 = 1;
25652let Defs = [USR_OVF];
25653}
25654def S4_vxsubaddh : HInst<
25655(outs DoubleRegs:$Rdd32),
25656(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25657"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25658tc_8a825db2, TypeS_3op>, Enc_a56825 {
25659let Inst{7-5} = 0b110;
25660let Inst{13-13} = 0b0;
25661let Inst{31-21} = 0b11000001010;
25662let prefersSlot3 = 1;
25663let Defs = [USR_OVF];
25664}
25665def S4_vxsubaddhr : HInst<
25666(outs DoubleRegs:$Rdd32),
25667(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25668"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25669tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25670let Inst{7-5} = 0b010;
25671let Inst{13-13} = 0b0;
25672let Inst{31-21} = 0b11000001110;
25673let prefersSlot3 = 1;
25674let Defs = [USR_OVF];
25675}
25676def S4_vxsubaddw : HInst<
25677(outs DoubleRegs:$Rdd32),
25678(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25679"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25680tc_8a825db2, TypeS_3op>, Enc_a56825 {
25681let Inst{7-5} = 0b010;
25682let Inst{13-13} = 0b0;
25683let Inst{31-21} = 0b11000001010;
25684let prefersSlot3 = 1;
25685let Defs = [USR_OVF];
25686}
25687def S5_asrhub_rnd_sat : HInst<
25688(outs IntRegs:$Rd32),
25689(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25690"$Rd32 = vasrhub($Rss32,#$Ii):raw",
25691tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25692let Inst{7-5} = 0b100;
25693let Inst{13-12} = 0b00;
25694let Inst{31-21} = 0b10001000011;
25695let hasNewValue = 1;
25696let opNewValue = 0;
25697let prefersSlot3 = 1;
25698let Defs = [USR_OVF];
25699}
25700def S5_asrhub_rnd_sat_goodsyntax : HInst<
25701(outs IntRegs:$Rd32),
25702(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25703"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25704tc_0dfac0a7, TypeS_2op> {
25705let hasNewValue = 1;
25706let opNewValue = 0;
25707let isPseudo = 1;
25708}
25709def S5_asrhub_sat : HInst<
25710(outs IntRegs:$Rd32),
25711(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25712"$Rd32 = vasrhub($Rss32,#$Ii):sat",
25713tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25714let Inst{7-5} = 0b101;
25715let Inst{13-12} = 0b00;
25716let Inst{31-21} = 0b10001000011;
25717let hasNewValue = 1;
25718let opNewValue = 0;
25719let prefersSlot3 = 1;
25720let Defs = [USR_OVF];
25721}
25722def S5_popcountp : HInst<
25723(outs IntRegs:$Rd32),
25724(ins DoubleRegs:$Rss32),
25725"$Rd32 = popcount($Rss32)",
25726tc_d3632d88, TypeS_2op>, Enc_90cd8b {
25727let Inst{13-5} = 0b000000011;
25728let Inst{31-21} = 0b10001000011;
25729let hasNewValue = 1;
25730let opNewValue = 0;
25731let prefersSlot3 = 1;
25732}
25733def S5_vasrhrnd : HInst<
25734(outs DoubleRegs:$Rdd32),
25735(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25736"$Rdd32 = vasrh($Rss32,#$Ii):raw",
25737tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 {
25738let Inst{7-5} = 0b000;
25739let Inst{13-12} = 0b00;
25740let Inst{31-21} = 0b10000000001;
25741let prefersSlot3 = 1;
25742}
25743def S5_vasrhrnd_goodsyntax : HInst<
25744(outs DoubleRegs:$Rdd32),
25745(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25746"$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25747tc_0dfac0a7, TypeS_2op> {
25748let isPseudo = 1;
25749}
25750def S6_allocframe_to_raw : HInst<
25751(outs),
25752(ins u11_3Imm:$Ii),
25753"allocframe(#$Ii)",
25754tc_934753bb, TypeMAPPING>, Requires<[HasV65]> {
25755let isPseudo = 1;
25756let isCodeGenOnly = 1;
25757}
25758def S6_rol_i_p : HInst<
25759(outs DoubleRegs:$Rdd32),
25760(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25761"$Rdd32 = rol($Rss32,#$Ii)",
25762tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25763let Inst{7-5} = 0b011;
25764let Inst{31-21} = 0b10000000000;
25765}
25766def S6_rol_i_p_acc : HInst<
25767(outs DoubleRegs:$Rxx32),
25768(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25769"$Rxx32 += rol($Rss32,#$Ii)",
25770tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25771let Inst{7-5} = 0b111;
25772let Inst{31-21} = 0b10000010000;
25773let prefersSlot3 = 1;
25774let Constraints = "$Rxx32 = $Rxx32in";
25775}
25776def S6_rol_i_p_and : HInst<
25777(outs DoubleRegs:$Rxx32),
25778(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25779"$Rxx32 &= rol($Rss32,#$Ii)",
25780tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25781let Inst{7-5} = 0b011;
25782let Inst{31-21} = 0b10000010010;
25783let prefersSlot3 = 1;
25784let Constraints = "$Rxx32 = $Rxx32in";
25785}
25786def S6_rol_i_p_nac : HInst<
25787(outs DoubleRegs:$Rxx32),
25788(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25789"$Rxx32 -= rol($Rss32,#$Ii)",
25790tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25791let Inst{7-5} = 0b011;
25792let Inst{31-21} = 0b10000010000;
25793let prefersSlot3 = 1;
25794let Constraints = "$Rxx32 = $Rxx32in";
25795}
25796def S6_rol_i_p_or : HInst<
25797(outs DoubleRegs:$Rxx32),
25798(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25799"$Rxx32 |= rol($Rss32,#$Ii)",
25800tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25801let Inst{7-5} = 0b111;
25802let Inst{31-21} = 0b10000010010;
25803let prefersSlot3 = 1;
25804let Constraints = "$Rxx32 = $Rxx32in";
25805}
25806def S6_rol_i_p_xacc : HInst<
25807(outs DoubleRegs:$Rxx32),
25808(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25809"$Rxx32 ^= rol($Rss32,#$Ii)",
25810tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25811let Inst{7-5} = 0b011;
25812let Inst{31-21} = 0b10000010100;
25813let prefersSlot3 = 1;
25814let Constraints = "$Rxx32 = $Rxx32in";
25815}
25816def S6_rol_i_r : HInst<
25817(outs IntRegs:$Rd32),
25818(ins IntRegs:$Rs32, u5_0Imm:$Ii),
25819"$Rd32 = rol($Rs32,#$Ii)",
25820tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25821let Inst{7-5} = 0b011;
25822let Inst{13-13} = 0b0;
25823let Inst{31-21} = 0b10001100000;
25824let hasNewValue = 1;
25825let opNewValue = 0;
25826}
25827def S6_rol_i_r_acc : HInst<
25828(outs IntRegs:$Rx32),
25829(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25830"$Rx32 += rol($Rs32,#$Ii)",
25831tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25832let Inst{7-5} = 0b111;
25833let Inst{13-13} = 0b0;
25834let Inst{31-21} = 0b10001110000;
25835let hasNewValue = 1;
25836let opNewValue = 0;
25837let prefersSlot3 = 1;
25838let Constraints = "$Rx32 = $Rx32in";
25839}
25840def S6_rol_i_r_and : HInst<
25841(outs IntRegs:$Rx32),
25842(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25843"$Rx32 &= rol($Rs32,#$Ii)",
25844tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25845let Inst{7-5} = 0b011;
25846let Inst{13-13} = 0b0;
25847let Inst{31-21} = 0b10001110010;
25848let hasNewValue = 1;
25849let opNewValue = 0;
25850let prefersSlot3 = 1;
25851let Constraints = "$Rx32 = $Rx32in";
25852}
25853def S6_rol_i_r_nac : HInst<
25854(outs IntRegs:$Rx32),
25855(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25856"$Rx32 -= rol($Rs32,#$Ii)",
25857tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25858let Inst{7-5} = 0b011;
25859let Inst{13-13} = 0b0;
25860let Inst{31-21} = 0b10001110000;
25861let hasNewValue = 1;
25862let opNewValue = 0;
25863let prefersSlot3 = 1;
25864let Constraints = "$Rx32 = $Rx32in";
25865}
25866def S6_rol_i_r_or : HInst<
25867(outs IntRegs:$Rx32),
25868(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25869"$Rx32 |= rol($Rs32,#$Ii)",
25870tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25871let Inst{7-5} = 0b111;
25872let Inst{13-13} = 0b0;
25873let Inst{31-21} = 0b10001110010;
25874let hasNewValue = 1;
25875let opNewValue = 0;
25876let prefersSlot3 = 1;
25877let Constraints = "$Rx32 = $Rx32in";
25878}
25879def S6_rol_i_r_xacc : HInst<
25880(outs IntRegs:$Rx32),
25881(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25882"$Rx32 ^= rol($Rs32,#$Ii)",
25883tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25884let Inst{7-5} = 0b011;
25885let Inst{13-13} = 0b0;
25886let Inst{31-21} = 0b10001110100;
25887let hasNewValue = 1;
25888let opNewValue = 0;
25889let prefersSlot3 = 1;
25890let Constraints = "$Rx32 = $Rx32in";
25891}
25892def S6_vsplatrbp : HInst<
25893(outs DoubleRegs:$Rdd32),
25894(ins IntRegs:$Rs32),
25895"$Rdd32 = vsplatb($Rs32)",
25896tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25897let Inst{13-5} = 0b000000100;
25898let Inst{31-21} = 0b10000100010;
25899}
25900def S6_vtrunehb_ppp : HInst<
25901(outs DoubleRegs:$Rdd32),
25902(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25903"$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25904tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25905let Inst{7-5} = 0b011;
25906let Inst{13-13} = 0b0;
25907let Inst{31-21} = 0b11000001100;
25908}
25909def S6_vtrunohb_ppp : HInst<
25910(outs DoubleRegs:$Rdd32),
25911(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25912"$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25913tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25914let Inst{7-5} = 0b101;
25915let Inst{13-13} = 0b0;
25916let Inst{31-21} = 0b11000001100;
25917}
25918def SA1_addi : HInst<
25919(outs GeneralSubRegs:$Rx16),
25920(ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii),
25921"$Rx16 = add($Rx16in,#$Ii)",
25922tc_5b347363, TypeSUBINSN>, Enc_93af4c {
25923let Inst{12-11} = 0b00;
25924let hasNewValue = 1;
25925let opNewValue = 0;
25926let AsmVariantName = "NonParsable";
25927let DecoderNamespace = "SUBINSN_A";
25928let isExtendable = 1;
25929let opExtendable = 2;
25930let isExtentSigned = 1;
25931let opExtentBits = 7;
25932let opExtentAlign = 0;
25933let Constraints = "$Rx16 = $Rx16in";
25934}
25935def SA1_addrx : HInst<
25936(outs GeneralSubRegs:$Rx16),
25937(ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16),
25938"$Rx16 = add($Rx16in,$Rs16)",
25939tc_5b347363, TypeSUBINSN>, Enc_0527db {
25940let Inst{12-8} = 0b11000;
25941let hasNewValue = 1;
25942let opNewValue = 0;
25943let AsmVariantName = "NonParsable";
25944let DecoderNamespace = "SUBINSN_A";
25945let Constraints = "$Rx16 = $Rx16in";
25946}
25947def SA1_addsp : HInst<
25948(outs GeneralSubRegs:$Rd16),
25949(ins u6_2Imm:$Ii),
25950"$Rd16 = add(r29,#$Ii)",
25951tc_3d14a17b, TypeSUBINSN>, Enc_2df31d {
25952let Inst{12-10} = 0b011;
25953let hasNewValue = 1;
25954let opNewValue = 0;
25955let AsmVariantName = "NonParsable";
25956let Uses = [R29];
25957let DecoderNamespace = "SUBINSN_A";
25958}
25959def SA1_and1 : HInst<
25960(outs GeneralSubRegs:$Rd16),
25961(ins GeneralSubRegs:$Rs16),
25962"$Rd16 = and($Rs16,#1)",
25963tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
25964let Inst{12-8} = 0b10010;
25965let hasNewValue = 1;
25966let opNewValue = 0;
25967let AsmVariantName = "NonParsable";
25968let DecoderNamespace = "SUBINSN_A";
25969}
25970def SA1_clrf : HInst<
25971(outs GeneralSubRegs:$Rd16),
25972(ins),
25973"if (!p0) $Rd16 = #0",
25974tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25975let Inst{12-4} = 0b110100111;
25976let isPredicated = 1;
25977let isPredicatedFalse = 1;
25978let hasNewValue = 1;
25979let opNewValue = 0;
25980let AsmVariantName = "NonParsable";
25981let Uses = [P0];
25982let DecoderNamespace = "SUBINSN_A";
25983}
25984def SA1_clrfnew : HInst<
25985(outs GeneralSubRegs:$Rd16),
25986(ins),
25987"if (!p0.new) $Rd16 = #0",
25988tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
25989let Inst{12-4} = 0b110100101;
25990let isPredicated = 1;
25991let isPredicatedFalse = 1;
25992let hasNewValue = 1;
25993let opNewValue = 0;
25994let AsmVariantName = "NonParsable";
25995let isPredicatedNew = 1;
25996let Uses = [P0];
25997let DecoderNamespace = "SUBINSN_A";
25998}
25999def SA1_clrt : HInst<
26000(outs GeneralSubRegs:$Rd16),
26001(ins),
26002"if (p0) $Rd16 = #0",
26003tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
26004let Inst{12-4} = 0b110100110;
26005let isPredicated = 1;
26006let hasNewValue = 1;
26007let opNewValue = 0;
26008let AsmVariantName = "NonParsable";
26009let Uses = [P0];
26010let DecoderNamespace = "SUBINSN_A";
26011}
26012def SA1_clrtnew : HInst<
26013(outs GeneralSubRegs:$Rd16),
26014(ins),
26015"if (p0.new) $Rd16 = #0",
26016tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
26017let Inst{12-4} = 0b110100100;
26018let isPredicated = 1;
26019let hasNewValue = 1;
26020let opNewValue = 0;
26021let AsmVariantName = "NonParsable";
26022let isPredicatedNew = 1;
26023let Uses = [P0];
26024let DecoderNamespace = "SUBINSN_A";
26025}
26026def SA1_cmpeqi : HInst<
26027(outs),
26028(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
26029"p0 = cmp.eq($Rs16,#$Ii)",
26030tc_59a7822c, TypeSUBINSN>, Enc_63eaeb {
26031let Inst{3-2} = 0b00;
26032let Inst{12-8} = 0b11001;
26033let AsmVariantName = "NonParsable";
26034let Defs = [P0];
26035let DecoderNamespace = "SUBINSN_A";
26036}
26037def SA1_combine0i : HInst<
26038(outs GeneralDoubleLow8Regs:$Rdd8),
26039(ins u2_0Imm:$Ii),
26040"$Rdd8 = combine(#0,#$Ii)",
26041tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26042let Inst{4-3} = 0b00;
26043let Inst{12-7} = 0b111000;
26044let hasNewValue = 1;
26045let opNewValue = 0;
26046let AsmVariantName = "NonParsable";
26047let DecoderNamespace = "SUBINSN_A";
26048}
26049def SA1_combine1i : HInst<
26050(outs GeneralDoubleLow8Regs:$Rdd8),
26051(ins u2_0Imm:$Ii),
26052"$Rdd8 = combine(#1,#$Ii)",
26053tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26054let Inst{4-3} = 0b01;
26055let Inst{12-7} = 0b111000;
26056let hasNewValue = 1;
26057let opNewValue = 0;
26058let AsmVariantName = "NonParsable";
26059let DecoderNamespace = "SUBINSN_A";
26060}
26061def SA1_combine2i : HInst<
26062(outs GeneralDoubleLow8Regs:$Rdd8),
26063(ins u2_0Imm:$Ii),
26064"$Rdd8 = combine(#2,#$Ii)",
26065tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26066let Inst{4-3} = 0b10;
26067let Inst{12-7} = 0b111000;
26068let hasNewValue = 1;
26069let opNewValue = 0;
26070let AsmVariantName = "NonParsable";
26071let DecoderNamespace = "SUBINSN_A";
26072}
26073def SA1_combine3i : HInst<
26074(outs GeneralDoubleLow8Regs:$Rdd8),
26075(ins u2_0Imm:$Ii),
26076"$Rdd8 = combine(#3,#$Ii)",
26077tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26078let Inst{4-3} = 0b11;
26079let Inst{12-7} = 0b111000;
26080let hasNewValue = 1;
26081let opNewValue = 0;
26082let AsmVariantName = "NonParsable";
26083let DecoderNamespace = "SUBINSN_A";
26084}
26085def SA1_combinerz : HInst<
26086(outs GeneralDoubleLow8Regs:$Rdd8),
26087(ins GeneralSubRegs:$Rs16),
26088"$Rdd8 = combine($Rs16,#0)",
26089tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26090let Inst{3-3} = 0b1;
26091let Inst{12-8} = 0b11101;
26092let hasNewValue = 1;
26093let opNewValue = 0;
26094let AsmVariantName = "NonParsable";
26095let DecoderNamespace = "SUBINSN_A";
26096}
26097def SA1_combinezr : HInst<
26098(outs GeneralDoubleLow8Regs:$Rdd8),
26099(ins GeneralSubRegs:$Rs16),
26100"$Rdd8 = combine(#0,$Rs16)",
26101tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26102let Inst{3-3} = 0b0;
26103let Inst{12-8} = 0b11101;
26104let hasNewValue = 1;
26105let opNewValue = 0;
26106let AsmVariantName = "NonParsable";
26107let DecoderNamespace = "SUBINSN_A";
26108}
26109def SA1_dec : HInst<
26110(outs GeneralSubRegs:$Rd16),
26111(ins GeneralSubRegs:$Rs16, n1Const:$n1),
26112"$Rd16 = add($Rs16,#$n1)",
26113tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 {
26114let Inst{12-8} = 0b10011;
26115let hasNewValue = 1;
26116let opNewValue = 0;
26117let AsmVariantName = "NonParsable";
26118let DecoderNamespace = "SUBINSN_A";
26119}
26120def SA1_inc : HInst<
26121(outs GeneralSubRegs:$Rd16),
26122(ins GeneralSubRegs:$Rs16),
26123"$Rd16 = add($Rs16,#1)",
26124tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26125let Inst{12-8} = 0b10001;
26126let hasNewValue = 1;
26127let opNewValue = 0;
26128let AsmVariantName = "NonParsable";
26129let DecoderNamespace = "SUBINSN_A";
26130}
26131def SA1_seti : HInst<
26132(outs GeneralSubRegs:$Rd16),
26133(ins u32_0Imm:$Ii),
26134"$Rd16 = #$Ii",
26135tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 {
26136let Inst{12-10} = 0b010;
26137let hasNewValue = 1;
26138let opNewValue = 0;
26139let AsmVariantName = "NonParsable";
26140let DecoderNamespace = "SUBINSN_A";
26141let isExtendable = 1;
26142let opExtendable = 1;
26143let isExtentSigned = 0;
26144let opExtentBits = 6;
26145let opExtentAlign = 0;
26146}
26147def SA1_setin1 : HInst<
26148(outs GeneralSubRegs:$Rd16),
26149(ins n1Const:$n1),
26150"$Rd16 = #$n1",
26151tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 {
26152let Inst{12-4} = 0b110100000;
26153let hasNewValue = 1;
26154let opNewValue = 0;
26155let AsmVariantName = "NonParsable";
26156let DecoderNamespace = "SUBINSN_A";
26157}
26158def SA1_sxtb : HInst<
26159(outs GeneralSubRegs:$Rd16),
26160(ins GeneralSubRegs:$Rs16),
26161"$Rd16 = sxtb($Rs16)",
26162tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26163let Inst{12-8} = 0b10101;
26164let hasNewValue = 1;
26165let opNewValue = 0;
26166let AsmVariantName = "NonParsable";
26167let DecoderNamespace = "SUBINSN_A";
26168}
26169def SA1_sxth : HInst<
26170(outs GeneralSubRegs:$Rd16),
26171(ins GeneralSubRegs:$Rs16),
26172"$Rd16 = sxth($Rs16)",
26173tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26174let Inst{12-8} = 0b10100;
26175let hasNewValue = 1;
26176let opNewValue = 0;
26177let AsmVariantName = "NonParsable";
26178let DecoderNamespace = "SUBINSN_A";
26179}
26180def SA1_tfr : HInst<
26181(outs GeneralSubRegs:$Rd16),
26182(ins GeneralSubRegs:$Rs16),
26183"$Rd16 = $Rs16",
26184tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26185let Inst{12-8} = 0b10000;
26186let hasNewValue = 1;
26187let opNewValue = 0;
26188let AsmVariantName = "NonParsable";
26189let DecoderNamespace = "SUBINSN_A";
26190}
26191def SA1_zxtb : HInst<
26192(outs GeneralSubRegs:$Rd16),
26193(ins GeneralSubRegs:$Rs16),
26194"$Rd16 = and($Rs16,#255)",
26195tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26196let Inst{12-8} = 0b10111;
26197let hasNewValue = 1;
26198let opNewValue = 0;
26199let AsmVariantName = "NonParsable";
26200let DecoderNamespace = "SUBINSN_A";
26201}
26202def SA1_zxth : HInst<
26203(outs GeneralSubRegs:$Rd16),
26204(ins GeneralSubRegs:$Rs16),
26205"$Rd16 = zxth($Rs16)",
26206tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26207let Inst{12-8} = 0b10110;
26208let hasNewValue = 1;
26209let opNewValue = 0;
26210let AsmVariantName = "NonParsable";
26211let DecoderNamespace = "SUBINSN_A";
26212}
26213def SL1_loadri_io : HInst<
26214(outs GeneralSubRegs:$Rd16),
26215(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26216"$Rd16 = memw($Rs16+#$Ii)",
26217tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 {
26218let Inst{12-12} = 0b0;
26219let hasNewValue = 1;
26220let opNewValue = 0;
26221let addrMode = BaseImmOffset;
26222let accessSize = WordAccess;
26223let AsmVariantName = "NonParsable";
26224let mayLoad = 1;
26225let DecoderNamespace = "SUBINSN_L1";
26226}
26227def SL1_loadrub_io : HInst<
26228(outs GeneralSubRegs:$Rd16),
26229(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26230"$Rd16 = memub($Rs16+#$Ii)",
26231tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 {
26232let Inst{12-12} = 0b1;
26233let hasNewValue = 1;
26234let opNewValue = 0;
26235let addrMode = BaseImmOffset;
26236let accessSize = ByteAccess;
26237let AsmVariantName = "NonParsable";
26238let mayLoad = 1;
26239let DecoderNamespace = "SUBINSN_L1";
26240}
26241def SL2_deallocframe : HInst<
26242(outs),
26243(ins),
26244"deallocframe",
26245tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 {
26246let Inst{12-0} = 0b1111100000000;
26247let accessSize = DoubleWordAccess;
26248let AsmVariantName = "NonParsable";
26249let mayLoad = 1;
26250let Uses = [FRAMEKEY, R30];
26251let Defs = [R29, R30, R31];
26252let DecoderNamespace = "SUBINSN_L2";
26253}
26254def SL2_jumpr31 : HInst<
26255(outs),
26256(ins),
26257"jumpr r31",
26258tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26259let Inst{12-0} = 0b1111111000000;
26260let isTerminator = 1;
26261let isIndirectBranch = 1;
26262let AsmVariantName = "NonParsable";
26263let cofMax1 = 1;
26264let isReturn = 1;
26265let Uses = [R31];
26266let Defs = [PC];
26267let DecoderNamespace = "SUBINSN_L2";
26268}
26269def SL2_jumpr31_f : HInst<
26270(outs),
26271(ins),
26272"if (!p0) jumpr r31",
26273tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26274let Inst{12-0} = 0b1111111000101;
26275let isPredicated = 1;
26276let isPredicatedFalse = 1;
26277let isTerminator = 1;
26278let isIndirectBranch = 1;
26279let AsmVariantName = "NonParsable";
26280let cofMax1 = 1;
26281let isReturn = 1;
26282let Uses = [P0, R31];
26283let Defs = [PC];
26284let isTaken = Inst{4};
26285let DecoderNamespace = "SUBINSN_L2";
26286}
26287def SL2_jumpr31_fnew : HInst<
26288(outs),
26289(ins),
26290"if (!p0.new) jumpr:nt r31",
26291tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26292let Inst{12-0} = 0b1111111000111;
26293let isPredicated = 1;
26294let isPredicatedFalse = 1;
26295let isTerminator = 1;
26296let isIndirectBranch = 1;
26297let AsmVariantName = "NonParsable";
26298let isPredicatedNew = 1;
26299let cofMax1 = 1;
26300let isReturn = 1;
26301let Uses = [P0, R31];
26302let Defs = [PC];
26303let isTaken = Inst{4};
26304let DecoderNamespace = "SUBINSN_L2";
26305}
26306def SL2_jumpr31_t : HInst<
26307(outs),
26308(ins),
26309"if (p0) jumpr r31",
26310tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26311let Inst{12-0} = 0b1111111000100;
26312let isPredicated = 1;
26313let isTerminator = 1;
26314let isIndirectBranch = 1;
26315let AsmVariantName = "NonParsable";
26316let cofMax1 = 1;
26317let isReturn = 1;
26318let Uses = [P0, R31];
26319let Defs = [PC];
26320let isTaken = Inst{4};
26321let DecoderNamespace = "SUBINSN_L2";
26322}
26323def SL2_jumpr31_tnew : HInst<
26324(outs),
26325(ins),
26326"if (p0.new) jumpr:nt r31",
26327tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26328let Inst{12-0} = 0b1111111000110;
26329let isPredicated = 1;
26330let isTerminator = 1;
26331let isIndirectBranch = 1;
26332let AsmVariantName = "NonParsable";
26333let isPredicatedNew = 1;
26334let cofMax1 = 1;
26335let isReturn = 1;
26336let Uses = [P0, R31];
26337let Defs = [PC];
26338let isTaken = Inst{4};
26339let DecoderNamespace = "SUBINSN_L2";
26340}
26341def SL2_loadrb_io : HInst<
26342(outs GeneralSubRegs:$Rd16),
26343(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
26344"$Rd16 = memb($Rs16+#$Ii)",
26345tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c {
26346let Inst{12-11} = 0b10;
26347let hasNewValue = 1;
26348let opNewValue = 0;
26349let addrMode = BaseImmOffset;
26350let accessSize = ByteAccess;
26351let AsmVariantName = "NonParsable";
26352let mayLoad = 1;
26353let DecoderNamespace = "SUBINSN_L2";
26354}
26355def SL2_loadrd_sp : HInst<
26356(outs GeneralDoubleLow8Regs:$Rdd8),
26357(ins u5_3Imm:$Ii),
26358"$Rdd8 = memd(r29+#$Ii)",
26359tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b {
26360let Inst{12-8} = 0b11110;
26361let hasNewValue = 1;
26362let opNewValue = 0;
26363let addrMode = BaseImmOffset;
26364let accessSize = DoubleWordAccess;
26365let AsmVariantName = "NonParsable";
26366let mayLoad = 1;
26367let Uses = [R29];
26368let DecoderNamespace = "SUBINSN_L2";
26369}
26370def SL2_loadrh_io : HInst<
26371(outs GeneralSubRegs:$Rd16),
26372(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26373"$Rd16 = memh($Rs16+#$Ii)",
26374tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26375let Inst{12-11} = 0b00;
26376let hasNewValue = 1;
26377let opNewValue = 0;
26378let addrMode = BaseImmOffset;
26379let accessSize = HalfWordAccess;
26380let AsmVariantName = "NonParsable";
26381let mayLoad = 1;
26382let DecoderNamespace = "SUBINSN_L2";
26383}
26384def SL2_loadri_sp : HInst<
26385(outs GeneralSubRegs:$Rd16),
26386(ins u5_2Imm:$Ii),
26387"$Rd16 = memw(r29+#$Ii)",
26388tc_8a6d0d94, TypeSUBINSN>, Enc_51635c {
26389let Inst{12-9} = 0b1110;
26390let hasNewValue = 1;
26391let opNewValue = 0;
26392let addrMode = BaseImmOffset;
26393let accessSize = WordAccess;
26394let AsmVariantName = "NonParsable";
26395let mayLoad = 1;
26396let Uses = [R29];
26397let DecoderNamespace = "SUBINSN_L2";
26398}
26399def SL2_loadruh_io : HInst<
26400(outs GeneralSubRegs:$Rd16),
26401(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26402"$Rd16 = memuh($Rs16+#$Ii)",
26403tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26404let Inst{12-11} = 0b01;
26405let hasNewValue = 1;
26406let opNewValue = 0;
26407let addrMode = BaseImmOffset;
26408let accessSize = HalfWordAccess;
26409let AsmVariantName = "NonParsable";
26410let mayLoad = 1;
26411let DecoderNamespace = "SUBINSN_L2";
26412}
26413def SL2_return : HInst<
26414(outs),
26415(ins),
26416"dealloc_return",
26417tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26418let Inst{12-0} = 0b1111101000000;
26419let isTerminator = 1;
26420let isIndirectBranch = 1;
26421let accessSize = DoubleWordAccess;
26422let AsmVariantName = "NonParsable";
26423let mayLoad = 1;
26424let cofMax1 = 1;
26425let isRestrictNoSlot1Store = 1;
26426let isReturn = 1;
26427let Uses = [FRAMEKEY, R30];
26428let Defs = [PC, R29, R30, R31];
26429let DecoderNamespace = "SUBINSN_L2";
26430}
26431def SL2_return_f : HInst<
26432(outs),
26433(ins),
26434"if (!p0) dealloc_return",
26435tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26436let Inst{12-0} = 0b1111101000101;
26437let isPredicated = 1;
26438let isPredicatedFalse = 1;
26439let isTerminator = 1;
26440let isIndirectBranch = 1;
26441let accessSize = DoubleWordAccess;
26442let AsmVariantName = "NonParsable";
26443let mayLoad = 1;
26444let cofMax1 = 1;
26445let isRestrictNoSlot1Store = 1;
26446let isReturn = 1;
26447let Uses = [FRAMEKEY, P0, R30];
26448let Defs = [PC, R29, R30, R31];
26449let isTaken = Inst{4};
26450let DecoderNamespace = "SUBINSN_L2";
26451}
26452def SL2_return_fnew : HInst<
26453(outs),
26454(ins),
26455"if (!p0.new) dealloc_return:nt",
26456tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26457let Inst{12-0} = 0b1111101000111;
26458let isPredicated = 1;
26459let isPredicatedFalse = 1;
26460let isTerminator = 1;
26461let isIndirectBranch = 1;
26462let accessSize = DoubleWordAccess;
26463let AsmVariantName = "NonParsable";
26464let isPredicatedNew = 1;
26465let mayLoad = 1;
26466let cofMax1 = 1;
26467let isRestrictNoSlot1Store = 1;
26468let isReturn = 1;
26469let Uses = [FRAMEKEY, P0, R30];
26470let Defs = [PC, R29, R30, R31];
26471let isTaken = Inst{4};
26472let DecoderNamespace = "SUBINSN_L2";
26473}
26474def SL2_return_t : HInst<
26475(outs),
26476(ins),
26477"if (p0) dealloc_return",
26478tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26479let Inst{12-0} = 0b1111101000100;
26480let isPredicated = 1;
26481let isTerminator = 1;
26482let isIndirectBranch = 1;
26483let accessSize = DoubleWordAccess;
26484let AsmVariantName = "NonParsable";
26485let mayLoad = 1;
26486let cofMax1 = 1;
26487let isRestrictNoSlot1Store = 1;
26488let isReturn = 1;
26489let Uses = [FRAMEKEY, P0, R30];
26490let Defs = [PC, R29, R30, R31];
26491let isTaken = Inst{4};
26492let DecoderNamespace = "SUBINSN_L2";
26493}
26494def SL2_return_tnew : HInst<
26495(outs),
26496(ins),
26497"if (p0.new) dealloc_return:nt",
26498tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26499let Inst{12-0} = 0b1111101000110;
26500let isPredicated = 1;
26501let isTerminator = 1;
26502let isIndirectBranch = 1;
26503let accessSize = DoubleWordAccess;
26504let AsmVariantName = "NonParsable";
26505let isPredicatedNew = 1;
26506let mayLoad = 1;
26507let cofMax1 = 1;
26508let isRestrictNoSlot1Store = 1;
26509let isReturn = 1;
26510let Uses = [FRAMEKEY, P0, R30];
26511let Defs = [PC, R29, R30, R31];
26512let isTaken = Inst{4};
26513let DecoderNamespace = "SUBINSN_L2";
26514}
26515def SS1_storeb_io : HInst<
26516(outs),
26517(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26518"memb($Rs16+#$Ii) = $Rt16",
26519tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc {
26520let Inst{12-12} = 0b1;
26521let addrMode = BaseImmOffset;
26522let accessSize = ByteAccess;
26523let AsmVariantName = "NonParsable";
26524let mayStore = 1;
26525let DecoderNamespace = "SUBINSN_S1";
26526}
26527def SS1_storew_io : HInst<
26528(outs),
26529(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26530"memw($Rs16+#$Ii) = $Rt16",
26531tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c {
26532let Inst{12-12} = 0b0;
26533let addrMode = BaseImmOffset;
26534let accessSize = WordAccess;
26535let AsmVariantName = "NonParsable";
26536let mayStore = 1;
26537let DecoderNamespace = "SUBINSN_S1";
26538}
26539def SS2_allocframe : HInst<
26540(outs),
26541(ins u5_3Imm:$Ii),
26542"allocframe(#$Ii)",
26543tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca {
26544let Inst{3-0} = 0b0000;
26545let Inst{12-9} = 0b1110;
26546let addrMode = BaseImmOffset;
26547let accessSize = DoubleWordAccess;
26548let AsmVariantName = "NonParsable";
26549let mayStore = 1;
26550let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31];
26551let Defs = [R29, R30];
26552let DecoderNamespace = "SUBINSN_S2";
26553}
26554def SS2_storebi0 : HInst<
26555(outs),
26556(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26557"memb($Rs16+#$Ii) = #0",
26558tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26559let Inst{12-8} = 0b10010;
26560let addrMode = BaseImmOffset;
26561let accessSize = ByteAccess;
26562let AsmVariantName = "NonParsable";
26563let mayStore = 1;
26564let DecoderNamespace = "SUBINSN_S2";
26565}
26566def SS2_storebi1 : HInst<
26567(outs),
26568(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26569"memb($Rs16+#$Ii) = #1",
26570tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26571let Inst{12-8} = 0b10011;
26572let addrMode = BaseImmOffset;
26573let accessSize = ByteAccess;
26574let AsmVariantName = "NonParsable";
26575let mayStore = 1;
26576let DecoderNamespace = "SUBINSN_S2";
26577}
26578def SS2_stored_sp : HInst<
26579(outs),
26580(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26581"memd(r29+#$Ii) = $Rtt8",
26582tc_0655b949, TypeSUBINSN>, Enc_b8309d {
26583let Inst{12-9} = 0b0101;
26584let addrMode = BaseImmOffset;
26585let accessSize = DoubleWordAccess;
26586let AsmVariantName = "NonParsable";
26587let mayStore = 1;
26588let Uses = [R29];
26589let DecoderNamespace = "SUBINSN_S2";
26590}
26591def SS2_storeh_io : HInst<
26592(outs),
26593(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26594"memh($Rs16+#$Ii) = $Rt16",
26595tc_ae5babd7, TypeSUBINSN>, Enc_625deb {
26596let Inst{12-11} = 0b00;
26597let addrMode = BaseImmOffset;
26598let accessSize = HalfWordAccess;
26599let AsmVariantName = "NonParsable";
26600let mayStore = 1;
26601let DecoderNamespace = "SUBINSN_S2";
26602}
26603def SS2_storew_sp : HInst<
26604(outs),
26605(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26606"memw(r29+#$Ii) = $Rt16",
26607tc_0655b949, TypeSUBINSN>, Enc_87c142 {
26608let Inst{12-9} = 0b0100;
26609let addrMode = BaseImmOffset;
26610let accessSize = WordAccess;
26611let AsmVariantName = "NonParsable";
26612let mayStore = 1;
26613let Uses = [R29];
26614let DecoderNamespace = "SUBINSN_S2";
26615}
26616def SS2_storewi0 : HInst<
26617(outs),
26618(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26619"memw($Rs16+#$Ii) = #0",
26620tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26621let Inst{12-8} = 0b10000;
26622let addrMode = BaseImmOffset;
26623let accessSize = WordAccess;
26624let AsmVariantName = "NonParsable";
26625let mayStore = 1;
26626let DecoderNamespace = "SUBINSN_S2";
26627}
26628def SS2_storewi1 : HInst<
26629(outs),
26630(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26631"memw($Rs16+#$Ii) = #1",
26632tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26633let Inst{12-8} = 0b10001;
26634let addrMode = BaseImmOffset;
26635let accessSize = WordAccess;
26636let AsmVariantName = "NonParsable";
26637let mayStore = 1;
26638let DecoderNamespace = "SUBINSN_S2";
26639}
26640def V6_MAP_equb : HInst<
26641(outs HvxQR:$Qd4),
26642(ins HvxVR:$Vu32, HvxVR:$Vv32),
26643"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26644PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26645let hasNewValue = 1;
26646let opNewValue = 0;
26647let isCVI = 1;
26648let isPseudo = 1;
26649let isCodeGenOnly = 1;
26650let DecoderNamespace = "EXT_mmvec";
26651}
26652def V6_MAP_equb_and : HInst<
26653(outs HvxQR:$Qx4),
26654(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26655"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26656PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26657let isCVI = 1;
26658let isPseudo = 1;
26659let isCodeGenOnly = 1;
26660let DecoderNamespace = "EXT_mmvec";
26661let Constraints = "$Qx4 = $Qx4in";
26662}
26663def V6_MAP_equb_ior : HInst<
26664(outs HvxQR:$Qx4),
26665(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26666"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26667PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26668let isAccumulator = 1;
26669let isCVI = 1;
26670let isPseudo = 1;
26671let isCodeGenOnly = 1;
26672let DecoderNamespace = "EXT_mmvec";
26673let Constraints = "$Qx4 = $Qx4in";
26674}
26675def V6_MAP_equb_xor : HInst<
26676(outs HvxQR:$Qx4),
26677(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26678"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26679PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26680let isCVI = 1;
26681let isPseudo = 1;
26682let isCodeGenOnly = 1;
26683let DecoderNamespace = "EXT_mmvec";
26684let Constraints = "$Qx4 = $Qx4in";
26685}
26686def V6_MAP_equh : HInst<
26687(outs HvxQR:$Qd4),
26688(ins HvxVR:$Vu32, HvxVR:$Vv32),
26689"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26690PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26691let hasNewValue = 1;
26692let opNewValue = 0;
26693let isCVI = 1;
26694let isPseudo = 1;
26695let isCodeGenOnly = 1;
26696let DecoderNamespace = "EXT_mmvec";
26697}
26698def V6_MAP_equh_and : HInst<
26699(outs HvxQR:$Qx4),
26700(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26701"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26702PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26703let isCVI = 1;
26704let isPseudo = 1;
26705let isCodeGenOnly = 1;
26706let DecoderNamespace = "EXT_mmvec";
26707let Constraints = "$Qx4 = $Qx4in";
26708}
26709def V6_MAP_equh_ior : HInst<
26710(outs HvxQR:$Qx4),
26711(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26712"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26713PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26714let isAccumulator = 1;
26715let isCVI = 1;
26716let isPseudo = 1;
26717let isCodeGenOnly = 1;
26718let DecoderNamespace = "EXT_mmvec";
26719let Constraints = "$Qx4 = $Qx4in";
26720}
26721def V6_MAP_equh_xor : HInst<
26722(outs HvxQR:$Qx4),
26723(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26724"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26725PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26726let isCVI = 1;
26727let isPseudo = 1;
26728let isCodeGenOnly = 1;
26729let DecoderNamespace = "EXT_mmvec";
26730let Constraints = "$Qx4 = $Qx4in";
26731}
26732def V6_MAP_equw : HInst<
26733(outs HvxQR:$Qd4),
26734(ins HvxVR:$Vu32, HvxVR:$Vv32),
26735"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26736PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26737let hasNewValue = 1;
26738let opNewValue = 0;
26739let isCVI = 1;
26740let isPseudo = 1;
26741let isCodeGenOnly = 1;
26742let DecoderNamespace = "EXT_mmvec";
26743}
26744def V6_MAP_equw_and : HInst<
26745(outs HvxQR:$Qx4),
26746(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26747"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26748PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26749let isCVI = 1;
26750let isPseudo = 1;
26751let isCodeGenOnly = 1;
26752let DecoderNamespace = "EXT_mmvec";
26753let Constraints = "$Qx4 = $Qx4in";
26754}
26755def V6_MAP_equw_ior : HInst<
26756(outs HvxQR:$Qx4),
26757(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26758"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26759PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26760let isAccumulator = 1;
26761let isCVI = 1;
26762let isPseudo = 1;
26763let isCodeGenOnly = 1;
26764let DecoderNamespace = "EXT_mmvec";
26765let Constraints = "$Qx4 = $Qx4in";
26766}
26767def V6_MAP_equw_xor : HInst<
26768(outs HvxQR:$Qx4),
26769(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26770"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26771PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26772let isCVI = 1;
26773let isPseudo = 1;
26774let isCodeGenOnly = 1;
26775let DecoderNamespace = "EXT_mmvec";
26776let Constraints = "$Qx4 = $Qx4in";
26777}
26778def V6_dbl_ld0 : HInst<
26779(outs HvxWR:$Vdd32),
26780(ins IntRegs:$Rt32),
26781"$Vdd32 = vmem($Rt32)",
26782PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> {
26783let hasNewValue = 1;
26784let opNewValue = 0;
26785let isCVLoad = 1;
26786let isCVI = 1;
26787let mayLoad = 1;
26788let isPseudo = 1;
26789let isCodeGenOnly = 1;
26790let DecoderNamespace = "EXT_mmvec";
26791}
26792def V6_dbl_st0 : HInst<
26793(outs),
26794(ins IntRegs:$Rt32, HvxWR:$Vss32),
26795"vmem($Rt32) = $Vss32",
26796PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> {
26797let isCVI = 1;
26798let mayStore = 1;
26799let isPseudo = 1;
26800let isCodeGenOnly = 1;
26801let DecoderNamespace = "EXT_mmvec";
26802}
26803def V6_extractw : HInst<
26804(outs IntRegs:$Rd32),
26805(ins HvxVR:$Vu32, IntRegs:$Rs32),
26806"$Rd32 = vextract($Vu32,$Rs32)",
26807tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26808let Inst{7-5} = 0b001;
26809let Inst{13-13} = 0b0;
26810let Inst{31-21} = 0b10010010000;
26811let hasNewValue = 1;
26812let opNewValue = 0;
26813let isCVI = 1;
26814let isHVXALU = 1;
26815let isHVXALU2SRC = 1;
26816let isSolo = 1;
26817let mayLoad = 1;
26818let DecoderNamespace = "EXT_mmvec";
26819}
26820def V6_extractw_alt : HInst<
26821(outs IntRegs:$Rd32),
26822(ins HvxVR:$Vu32, IntRegs:$Rs32),
26823"$Rd32.w = vextract($Vu32,$Rs32)",
26824PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26825let hasNewValue = 1;
26826let opNewValue = 0;
26827let isCVI = 1;
26828let isPseudo = 1;
26829let isCodeGenOnly = 1;
26830let DecoderNamespace = "EXT_mmvec";
26831}
26832def V6_hi : HInst<
26833(outs HvxVR:$Vd32),
26834(ins HvxWR:$Vss32),
26835"$Vd32 = hi($Vss32)",
26836CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26837let hasNewValue = 1;
26838let opNewValue = 0;
26839let isCVI = 1;
26840let isPseudo = 1;
26841let DecoderNamespace = "EXT_mmvec";
26842}
26843def V6_ld0 : HInst<
26844(outs HvxVR:$Vd32),
26845(ins IntRegs:$Rt32),
26846"$Vd32 = vmem($Rt32)",
26847PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26848let hasNewValue = 1;
26849let opNewValue = 0;
26850let isCVI = 1;
26851let isPseudo = 1;
26852let isCodeGenOnly = 1;
26853let DecoderNamespace = "EXT_mmvec";
26854}
26855def V6_ldcnp0 : HInst<
26856(outs HvxVR:$Vd32),
26857(ins PredRegs:$Pv4, IntRegs:$Rt32),
26858"if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26859PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26860let hasNewValue = 1;
26861let opNewValue = 0;
26862let isCVI = 1;
26863let isPseudo = 1;
26864let isCodeGenOnly = 1;
26865let DecoderNamespace = "EXT_mmvec";
26866}
26867def V6_ldcnpnt0 : HInst<
26868(outs HvxVR:$Vd32),
26869(ins PredRegs:$Pv4, IntRegs:$Rt32),
26870"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26871PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26872let hasNewValue = 1;
26873let opNewValue = 0;
26874let isCVI = 1;
26875let isPseudo = 1;
26876let isCodeGenOnly = 1;
26877let DecoderNamespace = "EXT_mmvec";
26878}
26879def V6_ldcp0 : HInst<
26880(outs HvxVR:$Vd32),
26881(ins PredRegs:$Pv4, IntRegs:$Rt32),
26882"if ($Pv4) $Vd32.cur = vmem($Rt32)",
26883PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26884let hasNewValue = 1;
26885let opNewValue = 0;
26886let isCVI = 1;
26887let isPseudo = 1;
26888let isCodeGenOnly = 1;
26889let DecoderNamespace = "EXT_mmvec";
26890}
26891def V6_ldcpnt0 : HInst<
26892(outs HvxVR:$Vd32),
26893(ins PredRegs:$Pv4, IntRegs:$Rt32),
26894"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26895PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26896let hasNewValue = 1;
26897let opNewValue = 0;
26898let isCVI = 1;
26899let isPseudo = 1;
26900let isCodeGenOnly = 1;
26901let DecoderNamespace = "EXT_mmvec";
26902}
26903def V6_ldnp0 : HInst<
26904(outs HvxVR:$Vd32),
26905(ins PredRegs:$Pv4, IntRegs:$Rt32),
26906"if (!$Pv4) $Vd32 = vmem($Rt32)",
26907PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26908let hasNewValue = 1;
26909let opNewValue = 0;
26910let isCVI = 1;
26911let isPseudo = 1;
26912let isCodeGenOnly = 1;
26913let DecoderNamespace = "EXT_mmvec";
26914}
26915def V6_ldnpnt0 : HInst<
26916(outs HvxVR:$Vd32),
26917(ins PredRegs:$Pv4, IntRegs:$Rt32),
26918"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26919PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26920let hasNewValue = 1;
26921let opNewValue = 0;
26922let isCVI = 1;
26923let isPseudo = 1;
26924let isCodeGenOnly = 1;
26925let DecoderNamespace = "EXT_mmvec";
26926}
26927def V6_ldnt0 : HInst<
26928(outs HvxVR:$Vd32),
26929(ins IntRegs:$Rt32),
26930"$Vd32 = vmem($Rt32):nt",
26931PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26932let hasNewValue = 1;
26933let opNewValue = 0;
26934let isCVI = 1;
26935let isPseudo = 1;
26936let isCodeGenOnly = 1;
26937let DecoderNamespace = "EXT_mmvec";
26938}
26939def V6_ldp0 : HInst<
26940(outs HvxVR:$Vd32),
26941(ins PredRegs:$Pv4, IntRegs:$Rt32),
26942"if ($Pv4) $Vd32 = vmem($Rt32)",
26943PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26944let hasNewValue = 1;
26945let opNewValue = 0;
26946let isCVI = 1;
26947let isPseudo = 1;
26948let isCodeGenOnly = 1;
26949let DecoderNamespace = "EXT_mmvec";
26950}
26951def V6_ldpnt0 : HInst<
26952(outs HvxVR:$Vd32),
26953(ins PredRegs:$Pv4, IntRegs:$Rt32),
26954"if ($Pv4) $Vd32 = vmem($Rt32):nt",
26955PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26956let hasNewValue = 1;
26957let opNewValue = 0;
26958let isCVI = 1;
26959let isPseudo = 1;
26960let isCodeGenOnly = 1;
26961let DecoderNamespace = "EXT_mmvec";
26962}
26963def V6_ldtnp0 : HInst<
26964(outs HvxVR:$Vd32),
26965(ins PredRegs:$Pv4, IntRegs:$Rt32),
26966"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26967PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26968let hasNewValue = 1;
26969let opNewValue = 0;
26970let isCVI = 1;
26971let isPseudo = 1;
26972let isCodeGenOnly = 1;
26973let DecoderNamespace = "EXT_mmvec";
26974}
26975def V6_ldtnpnt0 : HInst<
26976(outs HvxVR:$Vd32),
26977(ins PredRegs:$Pv4, IntRegs:$Rt32),
26978"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26979PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26980let hasNewValue = 1;
26981let opNewValue = 0;
26982let isCVI = 1;
26983let isPseudo = 1;
26984let isCodeGenOnly = 1;
26985let DecoderNamespace = "EXT_mmvec";
26986}
26987def V6_ldtp0 : HInst<
26988(outs HvxVR:$Vd32),
26989(ins PredRegs:$Pv4, IntRegs:$Rt32),
26990"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26991PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26992let hasNewValue = 1;
26993let opNewValue = 0;
26994let isCVI = 1;
26995let isPseudo = 1;
26996let isCodeGenOnly = 1;
26997let DecoderNamespace = "EXT_mmvec";
26998}
26999def V6_ldtpnt0 : HInst<
27000(outs HvxVR:$Vd32),
27001(ins PredRegs:$Pv4, IntRegs:$Rt32),
27002"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
27003PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
27004let hasNewValue = 1;
27005let opNewValue = 0;
27006let isCVI = 1;
27007let isPseudo = 1;
27008let isCodeGenOnly = 1;
27009let DecoderNamespace = "EXT_mmvec";
27010}
27011def V6_ldu0 : HInst<
27012(outs HvxVR:$Vd32),
27013(ins IntRegs:$Rt32),
27014"$Vd32 = vmemu($Rt32)",
27015PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
27016let hasNewValue = 1;
27017let opNewValue = 0;
27018let isCVI = 1;
27019let isPseudo = 1;
27020let isCodeGenOnly = 1;
27021let DecoderNamespace = "EXT_mmvec";
27022}
27023def V6_lo : HInst<
27024(outs HvxVR:$Vd32),
27025(ins HvxWR:$Vss32),
27026"$Vd32 = lo($Vss32)",
27027CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
27028let hasNewValue = 1;
27029let opNewValue = 0;
27030let isCVI = 1;
27031let isPseudo = 1;
27032let DecoderNamespace = "EXT_mmvec";
27033}
27034def V6_lvsplatb : HInst<
27035(outs HvxVR:$Vd32),
27036(ins IntRegs:$Rt32),
27037"$Vd32.b = vsplat($Rt32)",
27038tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
27039let Inst{13-5} = 0b000000010;
27040let Inst{31-21} = 0b00011001110;
27041let hasNewValue = 1;
27042let opNewValue = 0;
27043let isCVI = 1;
27044let DecoderNamespace = "EXT_mmvec";
27045}
27046def V6_lvsplath : HInst<
27047(outs HvxVR:$Vd32),
27048(ins IntRegs:$Rt32),
27049"$Vd32.h = vsplat($Rt32)",
27050tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
27051let Inst{13-5} = 0b000000001;
27052let Inst{31-21} = 0b00011001110;
27053let hasNewValue = 1;
27054let opNewValue = 0;
27055let isCVI = 1;
27056let DecoderNamespace = "EXT_mmvec";
27057}
27058def V6_lvsplatw : HInst<
27059(outs HvxVR:$Vd32),
27060(ins IntRegs:$Rt32),
27061"$Vd32 = vsplat($Rt32)",
27062tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
27063let Inst{13-5} = 0b000000001;
27064let Inst{31-21} = 0b00011001101;
27065let hasNewValue = 1;
27066let opNewValue = 0;
27067let isCVI = 1;
27068let DecoderNamespace = "EXT_mmvec";
27069}
27070def V6_pred_and : HInst<
27071(outs HvxQR:$Qd4),
27072(ins HvxQR:$Qs4, HvxQR:$Qt4),
27073"$Qd4 = and($Qs4,$Qt4)",
27074tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27075let Inst{7-2} = 0b000000;
27076let Inst{13-10} = 0b0000;
27077let Inst{21-16} = 0b000011;
27078let Inst{31-24} = 0b00011110;
27079let hasNewValue = 1;
27080let opNewValue = 0;
27081let isCVI = 1;
27082let DecoderNamespace = "EXT_mmvec";
27083}
27084def V6_pred_and_n : HInst<
27085(outs HvxQR:$Qd4),
27086(ins HvxQR:$Qs4, HvxQR:$Qt4),
27087"$Qd4 = and($Qs4,!$Qt4)",
27088tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27089let Inst{7-2} = 0b000101;
27090let Inst{13-10} = 0b0000;
27091let Inst{21-16} = 0b000011;
27092let Inst{31-24} = 0b00011110;
27093let hasNewValue = 1;
27094let opNewValue = 0;
27095let isCVI = 1;
27096let DecoderNamespace = "EXT_mmvec";
27097}
27098def V6_pred_not : HInst<
27099(outs HvxQR:$Qd4),
27100(ins HvxQR:$Qs4),
27101"$Qd4 = not($Qs4)",
27102tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
27103let Inst{7-2} = 0b000010;
27104let Inst{13-10} = 0b0000;
27105let Inst{31-16} = 0b0001111000000011;
27106let hasNewValue = 1;
27107let opNewValue = 0;
27108let isCVI = 1;
27109let isHVXALU = 1;
27110let isHVXALU2SRC = 1;
27111let DecoderNamespace = "EXT_mmvec";
27112}
27113def V6_pred_or : HInst<
27114(outs HvxQR:$Qd4),
27115(ins HvxQR:$Qs4, HvxQR:$Qt4),
27116"$Qd4 = or($Qs4,$Qt4)",
27117tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27118let Inst{7-2} = 0b000001;
27119let Inst{13-10} = 0b0000;
27120let Inst{21-16} = 0b000011;
27121let Inst{31-24} = 0b00011110;
27122let hasNewValue = 1;
27123let opNewValue = 0;
27124let isCVI = 1;
27125let DecoderNamespace = "EXT_mmvec";
27126}
27127def V6_pred_or_n : HInst<
27128(outs HvxQR:$Qd4),
27129(ins HvxQR:$Qs4, HvxQR:$Qt4),
27130"$Qd4 = or($Qs4,!$Qt4)",
27131tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27132let Inst{7-2} = 0b000100;
27133let Inst{13-10} = 0b0000;
27134let Inst{21-16} = 0b000011;
27135let Inst{31-24} = 0b00011110;
27136let hasNewValue = 1;
27137let opNewValue = 0;
27138let isCVI = 1;
27139let DecoderNamespace = "EXT_mmvec";
27140}
27141def V6_pred_scalar2 : HInst<
27142(outs HvxQR:$Qd4),
27143(ins IntRegs:$Rt32),
27144"$Qd4 = vsetq($Rt32)",
27145tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
27146let Inst{13-2} = 0b000000010001;
27147let Inst{31-21} = 0b00011001101;
27148let hasNewValue = 1;
27149let opNewValue = 0;
27150let isCVI = 1;
27151let DecoderNamespace = "EXT_mmvec";
27152}
27153def V6_pred_scalar2v2 : HInst<
27154(outs HvxQR:$Qd4),
27155(ins IntRegs:$Rt32),
27156"$Qd4 = vsetq2($Rt32)",
27157tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
27158let Inst{13-2} = 0b000000010011;
27159let Inst{31-21} = 0b00011001101;
27160let hasNewValue = 1;
27161let opNewValue = 0;
27162let isCVI = 1;
27163let DecoderNamespace = "EXT_mmvec";
27164}
27165def V6_pred_xor : HInst<
27166(outs HvxQR:$Qd4),
27167(ins HvxQR:$Qs4, HvxQR:$Qt4),
27168"$Qd4 = xor($Qs4,$Qt4)",
27169tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27170let Inst{7-2} = 0b000011;
27171let Inst{13-10} = 0b0000;
27172let Inst{21-16} = 0b000011;
27173let Inst{31-24} = 0b00011110;
27174let hasNewValue = 1;
27175let opNewValue = 0;
27176let isCVI = 1;
27177let DecoderNamespace = "EXT_mmvec";
27178}
27179def V6_shuffeqh : HInst<
27180(outs HvxQR:$Qd4),
27181(ins HvxQR:$Qs4, HvxQR:$Qt4),
27182"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
27183tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27184let Inst{7-2} = 0b000110;
27185let Inst{13-10} = 0b0000;
27186let Inst{21-16} = 0b000011;
27187let Inst{31-24} = 0b00011110;
27188let hasNewValue = 1;
27189let opNewValue = 0;
27190let isCVI = 1;
27191let DecoderNamespace = "EXT_mmvec";
27192}
27193def V6_shuffeqw : HInst<
27194(outs HvxQR:$Qd4),
27195(ins HvxQR:$Qs4, HvxQR:$Qt4),
27196"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
27197tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27198let Inst{7-2} = 0b000111;
27199let Inst{13-10} = 0b0000;
27200let Inst{21-16} = 0b000011;
27201let Inst{31-24} = 0b00011110;
27202let hasNewValue = 1;
27203let opNewValue = 0;
27204let isCVI = 1;
27205let DecoderNamespace = "EXT_mmvec";
27206}
27207def V6_st0 : HInst<
27208(outs),
27209(ins IntRegs:$Rt32, HvxVR:$Vs32),
27210"vmem($Rt32) = $Vs32",
27211PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27212let isCVI = 1;
27213let isPseudo = 1;
27214let isCodeGenOnly = 1;
27215let DecoderNamespace = "EXT_mmvec";
27216}
27217def V6_stn0 : HInst<
27218(outs),
27219(ins IntRegs:$Rt32, HvxVR:$Os8),
27220"vmem($Rt32) = $Os8.new",
27221PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27222let isCVI = 1;
27223let isPseudo = 1;
27224let isCodeGenOnly = 1;
27225let DecoderNamespace = "EXT_mmvec";
27226let opNewValue = 1;
27227}
27228def V6_stnnt0 : HInst<
27229(outs),
27230(ins IntRegs:$Rt32, HvxVR:$Os8),
27231"vmem($Rt32):nt = $Os8.new",
27232PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27233let isCVI = 1;
27234let isPseudo = 1;
27235let isCodeGenOnly = 1;
27236let DecoderNamespace = "EXT_mmvec";
27237let opNewValue = 1;
27238}
27239def V6_stnp0 : HInst<
27240(outs),
27241(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27242"if (!$Pv4) vmem($Rt32) = $Vs32",
27243PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27244let isCVI = 1;
27245let isPseudo = 1;
27246let isCodeGenOnly = 1;
27247let DecoderNamespace = "EXT_mmvec";
27248}
27249def V6_stnpnt0 : HInst<
27250(outs),
27251(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27252"if (!$Pv4) vmem($Rt32):nt = $Vs32",
27253PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27254let isCVI = 1;
27255let isPseudo = 1;
27256let isCodeGenOnly = 1;
27257let DecoderNamespace = "EXT_mmvec";
27258}
27259def V6_stnq0 : HInst<
27260(outs),
27261(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27262"if (!$Qv4) vmem($Rt32) = $Vs32",
27263PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27264let isCVI = 1;
27265let isPseudo = 1;
27266let isCodeGenOnly = 1;
27267let DecoderNamespace = "EXT_mmvec";
27268}
27269def V6_stnqnt0 : HInst<
27270(outs),
27271(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27272"if (!$Qv4) vmem($Rt32):nt = $Vs32",
27273PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27274let isCVI = 1;
27275let isPseudo = 1;
27276let isCodeGenOnly = 1;
27277let DecoderNamespace = "EXT_mmvec";
27278}
27279def V6_stnt0 : HInst<
27280(outs),
27281(ins IntRegs:$Rt32, HvxVR:$Vs32),
27282"vmem($Rt32):nt = $Vs32",
27283PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27284let isCVI = 1;
27285let isPseudo = 1;
27286let isCodeGenOnly = 1;
27287let DecoderNamespace = "EXT_mmvec";
27288}
27289def V6_stp0 : HInst<
27290(outs),
27291(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27292"if ($Pv4) vmem($Rt32) = $Vs32",
27293PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27294let isCVI = 1;
27295let isPseudo = 1;
27296let isCodeGenOnly = 1;
27297let DecoderNamespace = "EXT_mmvec";
27298}
27299def V6_stpnt0 : HInst<
27300(outs),
27301(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27302"if ($Pv4) vmem($Rt32):nt = $Vs32",
27303PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27304let isCVI = 1;
27305let isPseudo = 1;
27306let isCodeGenOnly = 1;
27307let DecoderNamespace = "EXT_mmvec";
27308}
27309def V6_stq0 : HInst<
27310(outs),
27311(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27312"if ($Qv4) vmem($Rt32) = $Vs32",
27313PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27314let isCVI = 1;
27315let isPseudo = 1;
27316let isCodeGenOnly = 1;
27317let DecoderNamespace = "EXT_mmvec";
27318}
27319def V6_stqnt0 : HInst<
27320(outs),
27321(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27322"if ($Qv4) vmem($Rt32):nt = $Vs32",
27323PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27324let isCVI = 1;
27325let isPseudo = 1;
27326let isCodeGenOnly = 1;
27327let DecoderNamespace = "EXT_mmvec";
27328}
27329def V6_stu0 : HInst<
27330(outs),
27331(ins IntRegs:$Rt32, HvxVR:$Vs32),
27332"vmemu($Rt32) = $Vs32",
27333PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27334let isCVI = 1;
27335let isPseudo = 1;
27336let isCodeGenOnly = 1;
27337let DecoderNamespace = "EXT_mmvec";
27338}
27339def V6_stunp0 : HInst<
27340(outs),
27341(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27342"if (!$Pv4) vmemu($Rt32) = $Vs32",
27343PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27344let isCVI = 1;
27345let isPseudo = 1;
27346let isCodeGenOnly = 1;
27347let DecoderNamespace = "EXT_mmvec";
27348}
27349def V6_stup0 : HInst<
27350(outs),
27351(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27352"if ($Pv4) vmemu($Rt32) = $Vs32",
27353PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27354let isCVI = 1;
27355let isPseudo = 1;
27356let isCodeGenOnly = 1;
27357let DecoderNamespace = "EXT_mmvec";
27358}
27359def V6_v10mpyubs10 : HInst<
27360(outs HvxWR:$Vdd32),
27361(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27362"$Vdd32.w = v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27363tc_f175e046, TypeCVI_VX>, Requires<[UseHVXV69]> {
27364let hasNewValue = 1;
27365let opNewValue = 0;
27366let isCVI = 1;
27367let isPseudo = 1;
27368let DecoderNamespace = "EXT_mmvec";
27369}
27370def V6_v10mpyubs10_vxx : HInst<
27371(outs HvxWR:$Vxx32),
27372(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27373"$Vxx32.w += v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27374tc_4942646a, TypeCVI_VX>, Requires<[UseHVXV69]> {
27375let hasNewValue = 1;
27376let opNewValue = 0;
27377let isAccumulator = 1;
27378let isCVI = 1;
27379let isPseudo = 1;
27380let DecoderNamespace = "EXT_mmvec";
27381let Constraints = "$Vxx32 = $Vxx32in";
27382}
27383def V6_v6mpyhubs10 : HInst<
27384(outs HvxWR:$Vdd32),
27385(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27386"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27387tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27388let Inst{7-7} = 0b1;
27389let Inst{13-13} = 0b1;
27390let Inst{31-21} = 0b00011111010;
27391let hasNewValue = 1;
27392let opNewValue = 0;
27393let isCVI = 1;
27394let DecoderNamespace = "EXT_mmvec";
27395}
27396def V6_v6mpyhubs10_alt : HInst<
27397(outs HvxWR:$Vdd32),
27398(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27399"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h",
27400PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27401let hasNewValue = 1;
27402let opNewValue = 0;
27403let isCVI = 1;
27404let isPseudo = 1;
27405let isCodeGenOnly = 1;
27406let DecoderNamespace = "EXT_mmvec";
27407}
27408def V6_v6mpyhubs10_vxx : HInst<
27409(outs HvxWR:$Vxx32),
27410(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27411"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27412tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27413let Inst{7-7} = 0b1;
27414let Inst{13-13} = 0b1;
27415let Inst{31-21} = 0b00011111001;
27416let hasNewValue = 1;
27417let opNewValue = 0;
27418let isAccumulator = 1;
27419let isCVI = 1;
27420let DecoderNamespace = "EXT_mmvec";
27421let Constraints = "$Vxx32 = $Vxx32in";
27422}
27423def V6_v6mpyvubs10 : HInst<
27424(outs HvxWR:$Vdd32),
27425(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27426"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27427tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27428let Inst{7-7} = 0b0;
27429let Inst{13-13} = 0b1;
27430let Inst{31-21} = 0b00011111010;
27431let hasNewValue = 1;
27432let opNewValue = 0;
27433let isCVI = 1;
27434let DecoderNamespace = "EXT_mmvec";
27435}
27436def V6_v6mpyvubs10_alt : HInst<
27437(outs HvxWR:$Vdd32),
27438(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27439"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v",
27440PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27441let hasNewValue = 1;
27442let opNewValue = 0;
27443let isCVI = 1;
27444let isPseudo = 1;
27445let isCodeGenOnly = 1;
27446let DecoderNamespace = "EXT_mmvec";
27447}
27448def V6_v6mpyvubs10_vxx : HInst<
27449(outs HvxWR:$Vxx32),
27450(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27451"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27452tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27453let Inst{7-7} = 0b0;
27454let Inst{13-13} = 0b1;
27455let Inst{31-21} = 0b00011111001;
27456let hasNewValue = 1;
27457let opNewValue = 0;
27458let isAccumulator = 1;
27459let isCVI = 1;
27460let DecoderNamespace = "EXT_mmvec";
27461let Constraints = "$Vxx32 = $Vxx32in";
27462}
27463def V6_vL32Ub_ai : HInst<
27464(outs HvxVR:$Vd32),
27465(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27466"$Vd32 = vmemu($Rt32+#$Ii)",
27467tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]>, PostInc_BaseImm {
27468let Inst{7-5} = 0b111;
27469let Inst{12-11} = 0b00;
27470let Inst{31-21} = 0b00101000000;
27471let hasNewValue = 1;
27472let opNewValue = 0;
27473let addrMode = BaseImmOffset;
27474let accessSize = HVXVectorAccess;
27475let isCVLoad = 1;
27476let isCVI = 1;
27477let mayLoad = 1;
27478let isRestrictNoSlot1Store = 1;
27479let BaseOpcode = "V6_vL32Ub_ai";
27480let CextOpcode = "V6_vL32Ub";
27481let DecoderNamespace = "EXT_mmvec";
27482}
27483def V6_vL32Ub_pi : HInst<
27484(outs HvxVR:$Vd32, IntRegs:$Rx32),
27485(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27486"$Vd32 = vmemu($Rx32++#$Ii)",
27487tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]>, PostInc_BaseImm {
27488let Inst{7-5} = 0b111;
27489let Inst{13-11} = 0b000;
27490let Inst{31-21} = 0b00101001000;
27491let hasNewValue = 1;
27492let opNewValue = 0;
27493let addrMode = PostInc;
27494let accessSize = HVXVectorAccess;
27495let isCVLoad = 1;
27496let isCVI = 1;
27497let mayLoad = 1;
27498let isRestrictNoSlot1Store = 1;
27499let BaseOpcode = "V6_vL32b_pi";
27500let CextOpcode = "V6_vL32Ub";
27501let DecoderNamespace = "EXT_mmvec";
27502let Constraints = "$Rx32 = $Rx32in";
27503}
27504def V6_vL32Ub_ppu : HInst<
27505(outs HvxVR:$Vd32, IntRegs:$Rx32),
27506(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27507"$Vd32 = vmemu($Rx32++$Mu2)",
27508tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
27509let Inst{12-5} = 0b00000111;
27510let Inst{31-21} = 0b00101011000;
27511let hasNewValue = 1;
27512let opNewValue = 0;
27513let addrMode = PostInc;
27514let accessSize = HVXVectorAccess;
27515let isCVLoad = 1;
27516let isCVI = 1;
27517let mayLoad = 1;
27518let isRestrictNoSlot1Store = 1;
27519let DecoderNamespace = "EXT_mmvec";
27520let Constraints = "$Rx32 = $Rx32in";
27521}
27522def V6_vL32b_ai : HInst<
27523(outs HvxVR:$Vd32),
27524(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27525"$Vd32 = vmem($Rt32+#$Ii)",
27526tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27527let Inst{7-5} = 0b000;
27528let Inst{12-11} = 0b00;
27529let Inst{31-21} = 0b00101000000;
27530let hasNewValue = 1;
27531let opNewValue = 0;
27532let addrMode = BaseImmOffset;
27533let accessSize = HVXVectorAccess;
27534let isCVLoad = 1;
27535let isCVI = 1;
27536let isHVXALU = 1;
27537let mayLoad = 1;
27538let isRestrictNoSlot1Store = 1;
27539let BaseOpcode = "V6_vL32b_ai";
27540let CextOpcode = "V6_vL32b";
27541let isCVLoadable = 1;
27542let isPredicable = 1;
27543let DecoderNamespace = "EXT_mmvec";
27544}
27545def V6_vL32b_cur_ai : HInst<
27546(outs HvxVR:$Vd32),
27547(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27548"$Vd32.cur = vmem($Rt32+#$Ii)",
27549tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27550let Inst{7-5} = 0b001;
27551let Inst{12-11} = 0b00;
27552let Inst{31-21} = 0b00101000000;
27553let hasNewValue = 1;
27554let opNewValue = 0;
27555let addrMode = BaseImmOffset;
27556let accessSize = HVXVectorAccess;
27557let isCVLoad = 1;
27558let isCVI = 1;
27559let CVINew = 1;
27560let isHVXALU = 1;
27561let mayLoad = 1;
27562let isRestrictNoSlot1Store = 1;
27563let BaseOpcode = "V6_vL32b_cur_ai";
27564let CextOpcode = "V6_vL32b_cur";
27565let isPredicable = 1;
27566let DecoderNamespace = "EXT_mmvec";
27567}
27568def V6_vL32b_cur_npred_ai : HInst<
27569(outs HvxVR:$Vd32),
27570(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27571"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27572tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27573let Inst{7-5} = 0b101;
27574let Inst{31-21} = 0b00101000100;
27575let isPredicated = 1;
27576let isPredicatedFalse = 1;
27577let hasNewValue = 1;
27578let opNewValue = 0;
27579let addrMode = BaseImmOffset;
27580let accessSize = HVXVectorAccess;
27581let isCVLoad = 1;
27582let isCVI = 1;
27583let CVINew = 1;
27584let isHVXALU = 1;
27585let mayLoad = 1;
27586let isRestrictNoSlot1Store = 1;
27587let BaseOpcode = "V6_vL32b_cur_ai";
27588let DecoderNamespace = "EXT_mmvec";
27589}
27590def V6_vL32b_cur_npred_pi : HInst<
27591(outs HvxVR:$Vd32, IntRegs:$Rx32),
27592(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27593"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27594tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27595let Inst{7-5} = 0b101;
27596let Inst{13-13} = 0b0;
27597let Inst{31-21} = 0b00101001100;
27598let isPredicated = 1;
27599let isPredicatedFalse = 1;
27600let hasNewValue = 1;
27601let opNewValue = 0;
27602let addrMode = PostInc;
27603let accessSize = HVXVectorAccess;
27604let isCVLoad = 1;
27605let isCVI = 1;
27606let CVINew = 1;
27607let isHVXALU = 1;
27608let mayLoad = 1;
27609let isRestrictNoSlot1Store = 1;
27610let BaseOpcode = "V6_vL32b_cur_pi";
27611let DecoderNamespace = "EXT_mmvec";
27612let Constraints = "$Rx32 = $Rx32in";
27613}
27614def V6_vL32b_cur_npred_ppu : HInst<
27615(outs HvxVR:$Vd32, IntRegs:$Rx32),
27616(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27617"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27618tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27619let Inst{10-5} = 0b000101;
27620let Inst{31-21} = 0b00101011100;
27621let isPredicated = 1;
27622let isPredicatedFalse = 1;
27623let hasNewValue = 1;
27624let opNewValue = 0;
27625let addrMode = PostInc;
27626let accessSize = HVXVectorAccess;
27627let isCVLoad = 1;
27628let isCVI = 1;
27629let CVINew = 1;
27630let isHVXALU = 1;
27631let mayLoad = 1;
27632let isRestrictNoSlot1Store = 1;
27633let BaseOpcode = "V6_vL32b_cur_ppu";
27634let DecoderNamespace = "EXT_mmvec";
27635let Constraints = "$Rx32 = $Rx32in";
27636}
27637def V6_vL32b_cur_pi : HInst<
27638(outs HvxVR:$Vd32, IntRegs:$Rx32),
27639(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27640"$Vd32.cur = vmem($Rx32++#$Ii)",
27641tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27642let Inst{7-5} = 0b001;
27643let Inst{13-11} = 0b000;
27644let Inst{31-21} = 0b00101001000;
27645let hasNewValue = 1;
27646let opNewValue = 0;
27647let addrMode = PostInc;
27648let accessSize = HVXVectorAccess;
27649let isCVLoad = 1;
27650let isCVI = 1;
27651let CVINew = 1;
27652let isHVXALU = 1;
27653let mayLoad = 1;
27654let isRestrictNoSlot1Store = 1;
27655let BaseOpcode = "V6_vL32b_cur_pi";
27656let CextOpcode = "V6_vL32b_cur";
27657let isPredicable = 1;
27658let DecoderNamespace = "EXT_mmvec";
27659let Constraints = "$Rx32 = $Rx32in";
27660}
27661def V6_vL32b_cur_ppu : HInst<
27662(outs HvxVR:$Vd32, IntRegs:$Rx32),
27663(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27664"$Vd32.cur = vmem($Rx32++$Mu2)",
27665tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27666let Inst{12-5} = 0b00000001;
27667let Inst{31-21} = 0b00101011000;
27668let hasNewValue = 1;
27669let opNewValue = 0;
27670let addrMode = PostInc;
27671let accessSize = HVXVectorAccess;
27672let isCVLoad = 1;
27673let isCVI = 1;
27674let CVINew = 1;
27675let isHVXALU = 1;
27676let mayLoad = 1;
27677let isRestrictNoSlot1Store = 1;
27678let BaseOpcode = "V6_vL32b_cur_ppu";
27679let isPredicable = 1;
27680let DecoderNamespace = "EXT_mmvec";
27681let Constraints = "$Rx32 = $Rx32in";
27682}
27683def V6_vL32b_cur_pred_ai : HInst<
27684(outs HvxVR:$Vd32),
27685(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27686"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27687tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27688let Inst{7-5} = 0b100;
27689let Inst{31-21} = 0b00101000100;
27690let isPredicated = 1;
27691let hasNewValue = 1;
27692let opNewValue = 0;
27693let addrMode = BaseImmOffset;
27694let accessSize = HVXVectorAccess;
27695let isCVLoad = 1;
27696let isCVI = 1;
27697let CVINew = 1;
27698let isHVXALU = 1;
27699let mayLoad = 1;
27700let isRestrictNoSlot1Store = 1;
27701let BaseOpcode = "V6_vL32b_cur_ai";
27702let DecoderNamespace = "EXT_mmvec";
27703}
27704def V6_vL32b_cur_pred_pi : HInst<
27705(outs HvxVR:$Vd32, IntRegs:$Rx32),
27706(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27707"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27708tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27709let Inst{7-5} = 0b100;
27710let Inst{13-13} = 0b0;
27711let Inst{31-21} = 0b00101001100;
27712let isPredicated = 1;
27713let hasNewValue = 1;
27714let opNewValue = 0;
27715let addrMode = PostInc;
27716let accessSize = HVXVectorAccess;
27717let isCVLoad = 1;
27718let isCVI = 1;
27719let CVINew = 1;
27720let isHVXALU = 1;
27721let mayLoad = 1;
27722let isRestrictNoSlot1Store = 1;
27723let BaseOpcode = "V6_vL32b_cur_pi";
27724let DecoderNamespace = "EXT_mmvec";
27725let Constraints = "$Rx32 = $Rx32in";
27726}
27727def V6_vL32b_cur_pred_ppu : HInst<
27728(outs HvxVR:$Vd32, IntRegs:$Rx32),
27729(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27730"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27731tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27732let Inst{10-5} = 0b000100;
27733let Inst{31-21} = 0b00101011100;
27734let isPredicated = 1;
27735let hasNewValue = 1;
27736let opNewValue = 0;
27737let addrMode = PostInc;
27738let accessSize = HVXVectorAccess;
27739let isCVLoad = 1;
27740let isCVI = 1;
27741let CVINew = 1;
27742let isHVXALU = 1;
27743let mayLoad = 1;
27744let isRestrictNoSlot1Store = 1;
27745let BaseOpcode = "V6_vL32b_cur_ppu";
27746let DecoderNamespace = "EXT_mmvec";
27747let Constraints = "$Rx32 = $Rx32in";
27748}
27749def V6_vL32b_npred_ai : HInst<
27750(outs HvxVR:$Vd32),
27751(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27752"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27753tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27754let Inst{7-5} = 0b011;
27755let Inst{31-21} = 0b00101000100;
27756let isPredicated = 1;
27757let isPredicatedFalse = 1;
27758let hasNewValue = 1;
27759let opNewValue = 0;
27760let addrMode = BaseImmOffset;
27761let accessSize = HVXVectorAccess;
27762let isCVLoad = 1;
27763let isCVI = 1;
27764let isHVXALU = 1;
27765let mayLoad = 1;
27766let isRestrictNoSlot1Store = 1;
27767let BaseOpcode = "V6_vL32b_ai";
27768let DecoderNamespace = "EXT_mmvec";
27769}
27770def V6_vL32b_npred_pi : HInst<
27771(outs HvxVR:$Vd32, IntRegs:$Rx32),
27772(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27773"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27774tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27775let Inst{7-5} = 0b011;
27776let Inst{13-13} = 0b0;
27777let Inst{31-21} = 0b00101001100;
27778let isPredicated = 1;
27779let isPredicatedFalse = 1;
27780let hasNewValue = 1;
27781let opNewValue = 0;
27782let addrMode = PostInc;
27783let accessSize = HVXVectorAccess;
27784let isCVLoad = 1;
27785let isCVI = 1;
27786let isHVXALU = 1;
27787let mayLoad = 1;
27788let isRestrictNoSlot1Store = 1;
27789let BaseOpcode = "V6_vL32b_pi";
27790let DecoderNamespace = "EXT_mmvec";
27791let Constraints = "$Rx32 = $Rx32in";
27792}
27793def V6_vL32b_npred_ppu : HInst<
27794(outs HvxVR:$Vd32, IntRegs:$Rx32),
27795(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27796"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27797tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27798let Inst{10-5} = 0b000011;
27799let Inst{31-21} = 0b00101011100;
27800let isPredicated = 1;
27801let isPredicatedFalse = 1;
27802let hasNewValue = 1;
27803let opNewValue = 0;
27804let addrMode = PostInc;
27805let accessSize = HVXVectorAccess;
27806let isCVLoad = 1;
27807let isCVI = 1;
27808let isHVXALU = 1;
27809let mayLoad = 1;
27810let isRestrictNoSlot1Store = 1;
27811let BaseOpcode = "V6_vL32b_ppu";
27812let DecoderNamespace = "EXT_mmvec";
27813let Constraints = "$Rx32 = $Rx32in";
27814}
27815def V6_vL32b_nt_ai : HInst<
27816(outs HvxVR:$Vd32),
27817(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27818"$Vd32 = vmem($Rt32+#$Ii):nt",
27819tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27820let Inst{7-5} = 0b000;
27821let Inst{12-11} = 0b00;
27822let Inst{31-21} = 0b00101000010;
27823let hasNewValue = 1;
27824let opNewValue = 0;
27825let addrMode = BaseImmOffset;
27826let accessSize = HVXVectorAccess;
27827let isCVLoad = 1;
27828let isCVI = 1;
27829let isHVXALU = 1;
27830let mayLoad = 1;
27831let isNonTemporal = 1;
27832let isRestrictNoSlot1Store = 1;
27833let BaseOpcode = "V6_vL32b_nt_ai";
27834let CextOpcode = "V6_vL32b_nt";
27835let isCVLoadable = 1;
27836let isPredicable = 1;
27837let DecoderNamespace = "EXT_mmvec";
27838}
27839def V6_vL32b_nt_cur_ai : HInst<
27840(outs HvxVR:$Vd32),
27841(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27842"$Vd32.cur = vmem($Rt32+#$Ii):nt",
27843tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27844let Inst{7-5} = 0b001;
27845let Inst{12-11} = 0b00;
27846let Inst{31-21} = 0b00101000010;
27847let hasNewValue = 1;
27848let opNewValue = 0;
27849let addrMode = BaseImmOffset;
27850let accessSize = HVXVectorAccess;
27851let isCVLoad = 1;
27852let isCVI = 1;
27853let CVINew = 1;
27854let isHVXALU = 1;
27855let mayLoad = 1;
27856let isNonTemporal = 1;
27857let isRestrictNoSlot1Store = 1;
27858let BaseOpcode = "V6_vL32b_nt_cur_ai";
27859let CextOpcode = "V6_vL32b_nt_cur";
27860let isPredicable = 1;
27861let DecoderNamespace = "EXT_mmvec";
27862}
27863def V6_vL32b_nt_cur_npred_ai : HInst<
27864(outs HvxVR:$Vd32),
27865(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27866"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27867tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27868let Inst{7-5} = 0b101;
27869let Inst{31-21} = 0b00101000110;
27870let isPredicated = 1;
27871let isPredicatedFalse = 1;
27872let hasNewValue = 1;
27873let opNewValue = 0;
27874let addrMode = BaseImmOffset;
27875let accessSize = HVXVectorAccess;
27876let isCVLoad = 1;
27877let isCVI = 1;
27878let CVINew = 1;
27879let isHVXALU = 1;
27880let mayLoad = 1;
27881let isNonTemporal = 1;
27882let isRestrictNoSlot1Store = 1;
27883let BaseOpcode = "V6_vL32b_nt_cur_ai";
27884let DecoderNamespace = "EXT_mmvec";
27885}
27886def V6_vL32b_nt_cur_npred_pi : HInst<
27887(outs HvxVR:$Vd32, IntRegs:$Rx32),
27888(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27889"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27890tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27891let Inst{7-5} = 0b101;
27892let Inst{13-13} = 0b0;
27893let Inst{31-21} = 0b00101001110;
27894let isPredicated = 1;
27895let isPredicatedFalse = 1;
27896let hasNewValue = 1;
27897let opNewValue = 0;
27898let addrMode = PostInc;
27899let accessSize = HVXVectorAccess;
27900let isCVLoad = 1;
27901let isCVI = 1;
27902let CVINew = 1;
27903let isHVXALU = 1;
27904let mayLoad = 1;
27905let isNonTemporal = 1;
27906let isRestrictNoSlot1Store = 1;
27907let BaseOpcode = "V6_vL32b_nt_cur_pi";
27908let DecoderNamespace = "EXT_mmvec";
27909let Constraints = "$Rx32 = $Rx32in";
27910}
27911def V6_vL32b_nt_cur_npred_ppu : HInst<
27912(outs HvxVR:$Vd32, IntRegs:$Rx32),
27913(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27914"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27915tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27916let Inst{10-5} = 0b000101;
27917let Inst{31-21} = 0b00101011110;
27918let isPredicated = 1;
27919let isPredicatedFalse = 1;
27920let hasNewValue = 1;
27921let opNewValue = 0;
27922let addrMode = PostInc;
27923let accessSize = HVXVectorAccess;
27924let isCVLoad = 1;
27925let isCVI = 1;
27926let CVINew = 1;
27927let isHVXALU = 1;
27928let mayLoad = 1;
27929let isNonTemporal = 1;
27930let isRestrictNoSlot1Store = 1;
27931let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27932let DecoderNamespace = "EXT_mmvec";
27933let Constraints = "$Rx32 = $Rx32in";
27934}
27935def V6_vL32b_nt_cur_pi : HInst<
27936(outs HvxVR:$Vd32, IntRegs:$Rx32),
27937(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27938"$Vd32.cur = vmem($Rx32++#$Ii):nt",
27939tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27940let Inst{7-5} = 0b001;
27941let Inst{13-11} = 0b000;
27942let Inst{31-21} = 0b00101001010;
27943let hasNewValue = 1;
27944let opNewValue = 0;
27945let addrMode = PostInc;
27946let accessSize = HVXVectorAccess;
27947let isCVLoad = 1;
27948let isCVI = 1;
27949let CVINew = 1;
27950let isHVXALU = 1;
27951let mayLoad = 1;
27952let isNonTemporal = 1;
27953let isRestrictNoSlot1Store = 1;
27954let BaseOpcode = "V6_vL32b_nt_cur_pi";
27955let CextOpcode = "V6_vL32b_nt_cur";
27956let isPredicable = 1;
27957let DecoderNamespace = "EXT_mmvec";
27958let Constraints = "$Rx32 = $Rx32in";
27959}
27960def V6_vL32b_nt_cur_ppu : HInst<
27961(outs HvxVR:$Vd32, IntRegs:$Rx32),
27962(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27963"$Vd32.cur = vmem($Rx32++$Mu2):nt",
27964tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27965let Inst{12-5} = 0b00000001;
27966let Inst{31-21} = 0b00101011010;
27967let hasNewValue = 1;
27968let opNewValue = 0;
27969let addrMode = PostInc;
27970let accessSize = HVXVectorAccess;
27971let isCVLoad = 1;
27972let isCVI = 1;
27973let CVINew = 1;
27974let isHVXALU = 1;
27975let mayLoad = 1;
27976let isNonTemporal = 1;
27977let isRestrictNoSlot1Store = 1;
27978let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27979let isPredicable = 1;
27980let DecoderNamespace = "EXT_mmvec";
27981let Constraints = "$Rx32 = $Rx32in";
27982}
27983def V6_vL32b_nt_cur_pred_ai : HInst<
27984(outs HvxVR:$Vd32),
27985(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27986"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27987tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27988let Inst{7-5} = 0b100;
27989let Inst{31-21} = 0b00101000110;
27990let isPredicated = 1;
27991let hasNewValue = 1;
27992let opNewValue = 0;
27993let addrMode = BaseImmOffset;
27994let accessSize = HVXVectorAccess;
27995let isCVLoad = 1;
27996let isCVI = 1;
27997let CVINew = 1;
27998let isHVXALU = 1;
27999let mayLoad = 1;
28000let isNonTemporal = 1;
28001let isRestrictNoSlot1Store = 1;
28002let BaseOpcode = "V6_vL32b_nt_cur_ai";
28003let DecoderNamespace = "EXT_mmvec";
28004}
28005def V6_vL32b_nt_cur_pred_pi : HInst<
28006(outs HvxVR:$Vd32, IntRegs:$Rx32),
28007(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28008"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
28009tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28010let Inst{7-5} = 0b100;
28011let Inst{13-13} = 0b0;
28012let Inst{31-21} = 0b00101001110;
28013let isPredicated = 1;
28014let hasNewValue = 1;
28015let opNewValue = 0;
28016let addrMode = PostInc;
28017let accessSize = HVXVectorAccess;
28018let isCVLoad = 1;
28019let isCVI = 1;
28020let CVINew = 1;
28021let isHVXALU = 1;
28022let mayLoad = 1;
28023let isNonTemporal = 1;
28024let isRestrictNoSlot1Store = 1;
28025let BaseOpcode = "V6_vL32b_nt_cur_pi";
28026let DecoderNamespace = "EXT_mmvec";
28027let Constraints = "$Rx32 = $Rx32in";
28028}
28029def V6_vL32b_nt_cur_pred_ppu : HInst<
28030(outs HvxVR:$Vd32, IntRegs:$Rx32),
28031(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28032"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
28033tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28034let Inst{10-5} = 0b000100;
28035let Inst{31-21} = 0b00101011110;
28036let isPredicated = 1;
28037let hasNewValue = 1;
28038let opNewValue = 0;
28039let addrMode = PostInc;
28040let accessSize = HVXVectorAccess;
28041let isCVLoad = 1;
28042let isCVI = 1;
28043let CVINew = 1;
28044let isHVXALU = 1;
28045let mayLoad = 1;
28046let isNonTemporal = 1;
28047let isRestrictNoSlot1Store = 1;
28048let BaseOpcode = "V6_vL32b_nt_cur_ppu";
28049let DecoderNamespace = "EXT_mmvec";
28050let Constraints = "$Rx32 = $Rx32in";
28051}
28052def V6_vL32b_nt_npred_ai : HInst<
28053(outs HvxVR:$Vd32),
28054(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28055"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28056tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28057let Inst{7-5} = 0b011;
28058let Inst{31-21} = 0b00101000110;
28059let isPredicated = 1;
28060let isPredicatedFalse = 1;
28061let hasNewValue = 1;
28062let opNewValue = 0;
28063let addrMode = BaseImmOffset;
28064let accessSize = HVXVectorAccess;
28065let isCVLoad = 1;
28066let isCVI = 1;
28067let isHVXALU = 1;
28068let mayLoad = 1;
28069let isNonTemporal = 1;
28070let isRestrictNoSlot1Store = 1;
28071let BaseOpcode = "V6_vL32b_nt_ai";
28072let DecoderNamespace = "EXT_mmvec";
28073}
28074def V6_vL32b_nt_npred_pi : HInst<
28075(outs HvxVR:$Vd32, IntRegs:$Rx32),
28076(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28077"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28078tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28079let Inst{7-5} = 0b011;
28080let Inst{13-13} = 0b0;
28081let Inst{31-21} = 0b00101001110;
28082let isPredicated = 1;
28083let isPredicatedFalse = 1;
28084let hasNewValue = 1;
28085let opNewValue = 0;
28086let addrMode = PostInc;
28087let accessSize = HVXVectorAccess;
28088let isCVLoad = 1;
28089let isCVI = 1;
28090let isHVXALU = 1;
28091let mayLoad = 1;
28092let isNonTemporal = 1;
28093let isRestrictNoSlot1Store = 1;
28094let BaseOpcode = "V6_vL32b_nt_pi";
28095let DecoderNamespace = "EXT_mmvec";
28096let Constraints = "$Rx32 = $Rx32in";
28097}
28098def V6_vL32b_nt_npred_ppu : HInst<
28099(outs HvxVR:$Vd32, IntRegs:$Rx32),
28100(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28101"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28102tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28103let Inst{10-5} = 0b000011;
28104let Inst{31-21} = 0b00101011110;
28105let isPredicated = 1;
28106let isPredicatedFalse = 1;
28107let hasNewValue = 1;
28108let opNewValue = 0;
28109let addrMode = PostInc;
28110let accessSize = HVXVectorAccess;
28111let isCVLoad = 1;
28112let isCVI = 1;
28113let isHVXALU = 1;
28114let mayLoad = 1;
28115let isNonTemporal = 1;
28116let isRestrictNoSlot1Store = 1;
28117let BaseOpcode = "V6_vL32b_nt_ppu";
28118let DecoderNamespace = "EXT_mmvec";
28119let Constraints = "$Rx32 = $Rx32in";
28120}
28121def V6_vL32b_nt_pi : HInst<
28122(outs HvxVR:$Vd32, IntRegs:$Rx32),
28123(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28124"$Vd32 = vmem($Rx32++#$Ii):nt",
28125tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28126let Inst{7-5} = 0b000;
28127let Inst{13-11} = 0b000;
28128let Inst{31-21} = 0b00101001010;
28129let hasNewValue = 1;
28130let opNewValue = 0;
28131let addrMode = PostInc;
28132let accessSize = HVXVectorAccess;
28133let isCVLoad = 1;
28134let isCVI = 1;
28135let isHVXALU = 1;
28136let mayLoad = 1;
28137let isNonTemporal = 1;
28138let isRestrictNoSlot1Store = 1;
28139let BaseOpcode = "V6_vL32b_nt_pi";
28140let CextOpcode = "V6_vL32b_nt";
28141let isCVLoadable = 1;
28142let isPredicable = 1;
28143let DecoderNamespace = "EXT_mmvec";
28144let Constraints = "$Rx32 = $Rx32in";
28145}
28146def V6_vL32b_nt_ppu : HInst<
28147(outs HvxVR:$Vd32, IntRegs:$Rx32),
28148(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28149"$Vd32 = vmem($Rx32++$Mu2):nt",
28150tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28151let Inst{12-5} = 0b00000000;
28152let Inst{31-21} = 0b00101011010;
28153let hasNewValue = 1;
28154let opNewValue = 0;
28155let addrMode = PostInc;
28156let accessSize = HVXVectorAccess;
28157let isCVLoad = 1;
28158let isCVI = 1;
28159let isHVXALU = 1;
28160let mayLoad = 1;
28161let isNonTemporal = 1;
28162let isRestrictNoSlot1Store = 1;
28163let BaseOpcode = "V6_vL32b_nt_ppu";
28164let isCVLoadable = 1;
28165let isPredicable = 1;
28166let DecoderNamespace = "EXT_mmvec";
28167let Constraints = "$Rx32 = $Rx32in";
28168}
28169def V6_vL32b_nt_pred_ai : HInst<
28170(outs HvxVR:$Vd32),
28171(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28172"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28173tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28174let Inst{7-5} = 0b010;
28175let Inst{31-21} = 0b00101000110;
28176let isPredicated = 1;
28177let hasNewValue = 1;
28178let opNewValue = 0;
28179let addrMode = BaseImmOffset;
28180let accessSize = HVXVectorAccess;
28181let isCVLoad = 1;
28182let isCVI = 1;
28183let isHVXALU = 1;
28184let mayLoad = 1;
28185let isNonTemporal = 1;
28186let isRestrictNoSlot1Store = 1;
28187let BaseOpcode = "V6_vL32b_nt_ai";
28188let DecoderNamespace = "EXT_mmvec";
28189}
28190def V6_vL32b_nt_pred_pi : HInst<
28191(outs HvxVR:$Vd32, IntRegs:$Rx32),
28192(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28193"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28194tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28195let Inst{7-5} = 0b010;
28196let Inst{13-13} = 0b0;
28197let Inst{31-21} = 0b00101001110;
28198let isPredicated = 1;
28199let hasNewValue = 1;
28200let opNewValue = 0;
28201let addrMode = PostInc;
28202let accessSize = HVXVectorAccess;
28203let isCVLoad = 1;
28204let isCVI = 1;
28205let isHVXALU = 1;
28206let mayLoad = 1;
28207let isNonTemporal = 1;
28208let isRestrictNoSlot1Store = 1;
28209let BaseOpcode = "V6_vL32b_nt_pi";
28210let DecoderNamespace = "EXT_mmvec";
28211let Constraints = "$Rx32 = $Rx32in";
28212}
28213def V6_vL32b_nt_pred_ppu : HInst<
28214(outs HvxVR:$Vd32, IntRegs:$Rx32),
28215(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28216"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28217tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28218let Inst{10-5} = 0b000010;
28219let Inst{31-21} = 0b00101011110;
28220let isPredicated = 1;
28221let hasNewValue = 1;
28222let opNewValue = 0;
28223let addrMode = PostInc;
28224let accessSize = HVXVectorAccess;
28225let isCVLoad = 1;
28226let isCVI = 1;
28227let isHVXALU = 1;
28228let mayLoad = 1;
28229let isNonTemporal = 1;
28230let isRestrictNoSlot1Store = 1;
28231let BaseOpcode = "V6_vL32b_nt_ppu";
28232let DecoderNamespace = "EXT_mmvec";
28233let Constraints = "$Rx32 = $Rx32in";
28234}
28235def V6_vL32b_nt_tmp_ai : HInst<
28236(outs HvxVR:$Vd32),
28237(ins IntRegs:$Rt32, s4_0Imm:$Ii),
28238"$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28239tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28240let Inst{7-5} = 0b010;
28241let Inst{12-11} = 0b00;
28242let Inst{31-21} = 0b00101000010;
28243let hasNewValue = 1;
28244let opNewValue = 0;
28245let addrMode = BaseImmOffset;
28246let accessSize = HVXVectorAccess;
28247let isCVLoad = 1;
28248let isCVI = 1;
28249let hasHvxTmp = 1;
28250let mayLoad = 1;
28251let isNonTemporal = 1;
28252let isRestrictNoSlot1Store = 1;
28253let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28254let CextOpcode = "V6_vL32b_nt_tmp";
28255let isPredicable = 1;
28256let DecoderNamespace = "EXT_mmvec";
28257}
28258def V6_vL32b_nt_tmp_npred_ai : HInst<
28259(outs HvxVR:$Vd32),
28260(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28261"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28262tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28263let Inst{7-5} = 0b111;
28264let Inst{31-21} = 0b00101000110;
28265let isPredicated = 1;
28266let isPredicatedFalse = 1;
28267let hasNewValue = 1;
28268let opNewValue = 0;
28269let addrMode = BaseImmOffset;
28270let accessSize = HVXVectorAccess;
28271let isCVLoad = 1;
28272let isCVI = 1;
28273let hasHvxTmp = 1;
28274let mayLoad = 1;
28275let isNonTemporal = 1;
28276let isRestrictNoSlot1Store = 1;
28277let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28278let DecoderNamespace = "EXT_mmvec";
28279}
28280def V6_vL32b_nt_tmp_npred_pi : HInst<
28281(outs HvxVR:$Vd32, IntRegs:$Rx32),
28282(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28283"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28284tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28285let Inst{7-5} = 0b111;
28286let Inst{13-13} = 0b0;
28287let Inst{31-21} = 0b00101001110;
28288let isPredicated = 1;
28289let isPredicatedFalse = 1;
28290let hasNewValue = 1;
28291let opNewValue = 0;
28292let addrMode = PostInc;
28293let accessSize = HVXVectorAccess;
28294let isCVLoad = 1;
28295let isCVI = 1;
28296let hasHvxTmp = 1;
28297let mayLoad = 1;
28298let isNonTemporal = 1;
28299let isRestrictNoSlot1Store = 1;
28300let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28301let DecoderNamespace = "EXT_mmvec";
28302let Constraints = "$Rx32 = $Rx32in";
28303}
28304def V6_vL32b_nt_tmp_npred_ppu : HInst<
28305(outs HvxVR:$Vd32, IntRegs:$Rx32),
28306(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28307"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28308tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28309let Inst{10-5} = 0b000111;
28310let Inst{31-21} = 0b00101011110;
28311let isPredicated = 1;
28312let isPredicatedFalse = 1;
28313let hasNewValue = 1;
28314let opNewValue = 0;
28315let addrMode = PostInc;
28316let accessSize = HVXVectorAccess;
28317let isCVLoad = 1;
28318let isCVI = 1;
28319let hasHvxTmp = 1;
28320let mayLoad = 1;
28321let isNonTemporal = 1;
28322let isRestrictNoSlot1Store = 1;
28323let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28324let DecoderNamespace = "EXT_mmvec";
28325let Constraints = "$Rx32 = $Rx32in";
28326}
28327def V6_vL32b_nt_tmp_pi : HInst<
28328(outs HvxVR:$Vd32, IntRegs:$Rx32),
28329(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28330"$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28331tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28332let Inst{7-5} = 0b010;
28333let Inst{13-11} = 0b000;
28334let Inst{31-21} = 0b00101001010;
28335let hasNewValue = 1;
28336let opNewValue = 0;
28337let addrMode = PostInc;
28338let accessSize = HVXVectorAccess;
28339let isCVLoad = 1;
28340let isCVI = 1;
28341let hasHvxTmp = 1;
28342let mayLoad = 1;
28343let isNonTemporal = 1;
28344let isRestrictNoSlot1Store = 1;
28345let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28346let CextOpcode = "V6_vL32b_nt_tmp";
28347let isPredicable = 1;
28348let DecoderNamespace = "EXT_mmvec";
28349let Constraints = "$Rx32 = $Rx32in";
28350}
28351def V6_vL32b_nt_tmp_ppu : HInst<
28352(outs HvxVR:$Vd32, IntRegs:$Rx32),
28353(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28354"$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28355tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28356let Inst{12-5} = 0b00000010;
28357let Inst{31-21} = 0b00101011010;
28358let hasNewValue = 1;
28359let opNewValue = 0;
28360let addrMode = PostInc;
28361let accessSize = HVXVectorAccess;
28362let isCVLoad = 1;
28363let isCVI = 1;
28364let hasHvxTmp = 1;
28365let mayLoad = 1;
28366let isNonTemporal = 1;
28367let isRestrictNoSlot1Store = 1;
28368let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28369let isPredicable = 1;
28370let DecoderNamespace = "EXT_mmvec";
28371let Constraints = "$Rx32 = $Rx32in";
28372}
28373def V6_vL32b_nt_tmp_pred_ai : HInst<
28374(outs HvxVR:$Vd32),
28375(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28376"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28377tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28378let Inst{7-5} = 0b110;
28379let Inst{31-21} = 0b00101000110;
28380let isPredicated = 1;
28381let hasNewValue = 1;
28382let opNewValue = 0;
28383let addrMode = BaseImmOffset;
28384let accessSize = HVXVectorAccess;
28385let isCVLoad = 1;
28386let isCVI = 1;
28387let hasHvxTmp = 1;
28388let mayLoad = 1;
28389let isNonTemporal = 1;
28390let isRestrictNoSlot1Store = 1;
28391let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28392let DecoderNamespace = "EXT_mmvec";
28393}
28394def V6_vL32b_nt_tmp_pred_pi : HInst<
28395(outs HvxVR:$Vd32, IntRegs:$Rx32),
28396(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28397"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28398tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28399let Inst{7-5} = 0b110;
28400let Inst{13-13} = 0b0;
28401let Inst{31-21} = 0b00101001110;
28402let isPredicated = 1;
28403let hasNewValue = 1;
28404let opNewValue = 0;
28405let addrMode = PostInc;
28406let accessSize = HVXVectorAccess;
28407let isCVLoad = 1;
28408let isCVI = 1;
28409let hasHvxTmp = 1;
28410let mayLoad = 1;
28411let isNonTemporal = 1;
28412let isRestrictNoSlot1Store = 1;
28413let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28414let DecoderNamespace = "EXT_mmvec";
28415let Constraints = "$Rx32 = $Rx32in";
28416}
28417def V6_vL32b_nt_tmp_pred_ppu : HInst<
28418(outs HvxVR:$Vd32, IntRegs:$Rx32),
28419(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28420"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28421tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28422let Inst{10-5} = 0b000110;
28423let Inst{31-21} = 0b00101011110;
28424let isPredicated = 1;
28425let hasNewValue = 1;
28426let opNewValue = 0;
28427let addrMode = PostInc;
28428let accessSize = HVXVectorAccess;
28429let isCVLoad = 1;
28430let isCVI = 1;
28431let hasHvxTmp = 1;
28432let mayLoad = 1;
28433let isNonTemporal = 1;
28434let isRestrictNoSlot1Store = 1;
28435let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28436let DecoderNamespace = "EXT_mmvec";
28437let Constraints = "$Rx32 = $Rx32in";
28438}
28439def V6_vL32b_pi : HInst<
28440(outs HvxVR:$Vd32, IntRegs:$Rx32),
28441(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28442"$Vd32 = vmem($Rx32++#$Ii)",
28443tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28444let Inst{7-5} = 0b000;
28445let Inst{13-11} = 0b000;
28446let Inst{31-21} = 0b00101001000;
28447let hasNewValue = 1;
28448let opNewValue = 0;
28449let addrMode = PostInc;
28450let accessSize = HVXVectorAccess;
28451let isCVLoad = 1;
28452let isCVI = 1;
28453let isHVXALU = 1;
28454let mayLoad = 1;
28455let isRestrictNoSlot1Store = 1;
28456let BaseOpcode = "V6_vL32b_pi";
28457let CextOpcode = "V6_vL32b";
28458let isCVLoadable = 1;
28459let isPredicable = 1;
28460let DecoderNamespace = "EXT_mmvec";
28461let Constraints = "$Rx32 = $Rx32in";
28462}
28463def V6_vL32b_ppu : HInst<
28464(outs HvxVR:$Vd32, IntRegs:$Rx32),
28465(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28466"$Vd32 = vmem($Rx32++$Mu2)",
28467tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28468let Inst{12-5} = 0b00000000;
28469let Inst{31-21} = 0b00101011000;
28470let hasNewValue = 1;
28471let opNewValue = 0;
28472let addrMode = PostInc;
28473let accessSize = HVXVectorAccess;
28474let isCVLoad = 1;
28475let isCVI = 1;
28476let isHVXALU = 1;
28477let mayLoad = 1;
28478let isRestrictNoSlot1Store = 1;
28479let BaseOpcode = "V6_vL32b_ppu";
28480let isCVLoadable = 1;
28481let isPredicable = 1;
28482let DecoderNamespace = "EXT_mmvec";
28483let Constraints = "$Rx32 = $Rx32in";
28484}
28485def V6_vL32b_pred_ai : HInst<
28486(outs HvxVR:$Vd32),
28487(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28488"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28489tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28490let Inst{7-5} = 0b010;
28491let Inst{31-21} = 0b00101000100;
28492let isPredicated = 1;
28493let hasNewValue = 1;
28494let opNewValue = 0;
28495let addrMode = BaseImmOffset;
28496let accessSize = HVXVectorAccess;
28497let isCVLoad = 1;
28498let isCVI = 1;
28499let isHVXALU = 1;
28500let mayLoad = 1;
28501let isRestrictNoSlot1Store = 1;
28502let BaseOpcode = "V6_vL32b_ai";
28503let DecoderNamespace = "EXT_mmvec";
28504}
28505def V6_vL32b_pred_pi : HInst<
28506(outs HvxVR:$Vd32, IntRegs:$Rx32),
28507(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28508"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28509tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28510let Inst{7-5} = 0b010;
28511let Inst{13-13} = 0b0;
28512let Inst{31-21} = 0b00101001100;
28513let isPredicated = 1;
28514let hasNewValue = 1;
28515let opNewValue = 0;
28516let addrMode = PostInc;
28517let accessSize = HVXVectorAccess;
28518let isCVLoad = 1;
28519let isCVI = 1;
28520let isHVXALU = 1;
28521let mayLoad = 1;
28522let isRestrictNoSlot1Store = 1;
28523let BaseOpcode = "V6_vL32b_pi";
28524let DecoderNamespace = "EXT_mmvec";
28525let Constraints = "$Rx32 = $Rx32in";
28526}
28527def V6_vL32b_pred_ppu : HInst<
28528(outs HvxVR:$Vd32, IntRegs:$Rx32),
28529(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28530"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28531tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28532let Inst{10-5} = 0b000010;
28533let Inst{31-21} = 0b00101011100;
28534let isPredicated = 1;
28535let hasNewValue = 1;
28536let opNewValue = 0;
28537let addrMode = PostInc;
28538let accessSize = HVXVectorAccess;
28539let isCVLoad = 1;
28540let isCVI = 1;
28541let isHVXALU = 1;
28542let mayLoad = 1;
28543let isRestrictNoSlot1Store = 1;
28544let BaseOpcode = "V6_vL32b_ppu";
28545let DecoderNamespace = "EXT_mmvec";
28546let Constraints = "$Rx32 = $Rx32in";
28547}
28548def V6_vL32b_tmp_ai : HInst<
28549(outs HvxVR:$Vd32),
28550(ins IntRegs:$Rt32, s4_0Imm:$Ii),
28551"$Vd32.tmp = vmem($Rt32+#$Ii)",
28552tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28553let Inst{7-5} = 0b010;
28554let Inst{12-11} = 0b00;
28555let Inst{31-21} = 0b00101000000;
28556let hasNewValue = 1;
28557let opNewValue = 0;
28558let addrMode = BaseImmOffset;
28559let accessSize = HVXVectorAccess;
28560let isCVLoad = 1;
28561let isCVI = 1;
28562let hasHvxTmp = 1;
28563let mayLoad = 1;
28564let isRestrictNoSlot1Store = 1;
28565let BaseOpcode = "V6_vL32b_tmp_ai";
28566let CextOpcode = "V6_vL32b_tmp";
28567let isPredicable = 1;
28568let DecoderNamespace = "EXT_mmvec";
28569}
28570def V6_vL32b_tmp_npred_ai : HInst<
28571(outs HvxVR:$Vd32),
28572(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28573"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28574tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28575let Inst{7-5} = 0b111;
28576let Inst{31-21} = 0b00101000100;
28577let isPredicated = 1;
28578let isPredicatedFalse = 1;
28579let hasNewValue = 1;
28580let opNewValue = 0;
28581let addrMode = BaseImmOffset;
28582let accessSize = HVXVectorAccess;
28583let isCVLoad = 1;
28584let isCVI = 1;
28585let hasHvxTmp = 1;
28586let mayLoad = 1;
28587let isRestrictNoSlot1Store = 1;
28588let BaseOpcode = "V6_vL32b_tmp_ai";
28589let DecoderNamespace = "EXT_mmvec";
28590}
28591def V6_vL32b_tmp_npred_pi : HInst<
28592(outs HvxVR:$Vd32, IntRegs:$Rx32),
28593(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28594"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28595tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28596let Inst{7-5} = 0b111;
28597let Inst{13-13} = 0b0;
28598let Inst{31-21} = 0b00101001100;
28599let isPredicated = 1;
28600let isPredicatedFalse = 1;
28601let hasNewValue = 1;
28602let opNewValue = 0;
28603let addrMode = PostInc;
28604let accessSize = HVXVectorAccess;
28605let isCVLoad = 1;
28606let isCVI = 1;
28607let hasHvxTmp = 1;
28608let mayLoad = 1;
28609let isRestrictNoSlot1Store = 1;
28610let BaseOpcode = "V6_vL32b_tmp_pi";
28611let DecoderNamespace = "EXT_mmvec";
28612let Constraints = "$Rx32 = $Rx32in";
28613}
28614def V6_vL32b_tmp_npred_ppu : HInst<
28615(outs HvxVR:$Vd32, IntRegs:$Rx32),
28616(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28617"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28618tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28619let Inst{10-5} = 0b000111;
28620let Inst{31-21} = 0b00101011100;
28621let isPredicated = 1;
28622let isPredicatedFalse = 1;
28623let hasNewValue = 1;
28624let opNewValue = 0;
28625let addrMode = PostInc;
28626let accessSize = HVXVectorAccess;
28627let isCVLoad = 1;
28628let isCVI = 1;
28629let hasHvxTmp = 1;
28630let mayLoad = 1;
28631let isRestrictNoSlot1Store = 1;
28632let BaseOpcode = "V6_vL32b_tmp_ppu";
28633let DecoderNamespace = "EXT_mmvec";
28634let Constraints = "$Rx32 = $Rx32in";
28635}
28636def V6_vL32b_tmp_pi : HInst<
28637(outs HvxVR:$Vd32, IntRegs:$Rx32),
28638(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28639"$Vd32.tmp = vmem($Rx32++#$Ii)",
28640tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28641let Inst{7-5} = 0b010;
28642let Inst{13-11} = 0b000;
28643let Inst{31-21} = 0b00101001000;
28644let hasNewValue = 1;
28645let opNewValue = 0;
28646let addrMode = PostInc;
28647let accessSize = HVXVectorAccess;
28648let isCVLoad = 1;
28649let isCVI = 1;
28650let hasHvxTmp = 1;
28651let mayLoad = 1;
28652let isRestrictNoSlot1Store = 1;
28653let BaseOpcode = "V6_vL32b_tmp_pi";
28654let CextOpcode = "V6_vL32b_tmp";
28655let isPredicable = 1;
28656let DecoderNamespace = "EXT_mmvec";
28657let Constraints = "$Rx32 = $Rx32in";
28658}
28659def V6_vL32b_tmp_ppu : HInst<
28660(outs HvxVR:$Vd32, IntRegs:$Rx32),
28661(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28662"$Vd32.tmp = vmem($Rx32++$Mu2)",
28663tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28664let Inst{12-5} = 0b00000010;
28665let Inst{31-21} = 0b00101011000;
28666let hasNewValue = 1;
28667let opNewValue = 0;
28668let addrMode = PostInc;
28669let accessSize = HVXVectorAccess;
28670let isCVLoad = 1;
28671let isCVI = 1;
28672let hasHvxTmp = 1;
28673let mayLoad = 1;
28674let isRestrictNoSlot1Store = 1;
28675let BaseOpcode = "V6_vL32b_tmp_ppu";
28676let isPredicable = 1;
28677let DecoderNamespace = "EXT_mmvec";
28678let Constraints = "$Rx32 = $Rx32in";
28679}
28680def V6_vL32b_tmp_pred_ai : HInst<
28681(outs HvxVR:$Vd32),
28682(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28683"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28684tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28685let Inst{7-5} = 0b110;
28686let Inst{31-21} = 0b00101000100;
28687let isPredicated = 1;
28688let hasNewValue = 1;
28689let opNewValue = 0;
28690let addrMode = BaseImmOffset;
28691let accessSize = HVXVectorAccess;
28692let isCVLoad = 1;
28693let isCVI = 1;
28694let hasHvxTmp = 1;
28695let mayLoad = 1;
28696let isRestrictNoSlot1Store = 1;
28697let BaseOpcode = "V6_vL32b_tmp_ai";
28698let DecoderNamespace = "EXT_mmvec";
28699}
28700def V6_vL32b_tmp_pred_pi : HInst<
28701(outs HvxVR:$Vd32, IntRegs:$Rx32),
28702(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28703"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28704tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28705let Inst{7-5} = 0b110;
28706let Inst{13-13} = 0b0;
28707let Inst{31-21} = 0b00101001100;
28708let isPredicated = 1;
28709let hasNewValue = 1;
28710let opNewValue = 0;
28711let addrMode = PostInc;
28712let accessSize = HVXVectorAccess;
28713let isCVLoad = 1;
28714let isCVI = 1;
28715let hasHvxTmp = 1;
28716let mayLoad = 1;
28717let isRestrictNoSlot1Store = 1;
28718let BaseOpcode = "V6_vL32b_tmp_pi";
28719let DecoderNamespace = "EXT_mmvec";
28720let Constraints = "$Rx32 = $Rx32in";
28721}
28722def V6_vL32b_tmp_pred_ppu : HInst<
28723(outs HvxVR:$Vd32, IntRegs:$Rx32),
28724(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28725"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28726tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28727let Inst{10-5} = 0b000110;
28728let Inst{31-21} = 0b00101011100;
28729let isPredicated = 1;
28730let hasNewValue = 1;
28731let opNewValue = 0;
28732let addrMode = PostInc;
28733let accessSize = HVXVectorAccess;
28734let isCVLoad = 1;
28735let isCVI = 1;
28736let hasHvxTmp = 1;
28737let mayLoad = 1;
28738let isRestrictNoSlot1Store = 1;
28739let BaseOpcode = "V6_vL32b_tmp_ppu";
28740let DecoderNamespace = "EXT_mmvec";
28741let Constraints = "$Rx32 = $Rx32in";
28742}
28743def V6_vS32Ub_ai : HInst<
28744(outs),
28745(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28746"vmemu($Rt32+#$Ii) = $Vs32",
28747tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28748let Inst{7-5} = 0b111;
28749let Inst{12-11} = 0b00;
28750let Inst{31-21} = 0b00101000001;
28751let addrMode = BaseImmOffset;
28752let accessSize = HVXVectorAccess;
28753let isCVI = 1;
28754let mayStore = 1;
28755let BaseOpcode = "V6_vS32Ub_ai";
28756let CextOpcode = "V6_vS32Ub";
28757let isPredicable = 1;
28758let DecoderNamespace = "EXT_mmvec";
28759}
28760def V6_vS32Ub_npred_ai : HInst<
28761(outs),
28762(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28763"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28764tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28765let Inst{7-5} = 0b111;
28766let Inst{31-21} = 0b00101000101;
28767let isPredicated = 1;
28768let isPredicatedFalse = 1;
28769let addrMode = BaseImmOffset;
28770let accessSize = HVXVectorAccess;
28771let isCVI = 1;
28772let mayStore = 1;
28773let BaseOpcode = "V6_vS32Ub_ai";
28774let DecoderNamespace = "EXT_mmvec";
28775}
28776def V6_vS32Ub_npred_pi : HInst<
28777(outs IntRegs:$Rx32),
28778(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28779"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28780tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28781let Inst{7-5} = 0b111;
28782let Inst{13-13} = 0b0;
28783let Inst{31-21} = 0b00101001101;
28784let isPredicated = 1;
28785let isPredicatedFalse = 1;
28786let addrMode = PostInc;
28787let accessSize = HVXVectorAccess;
28788let isCVI = 1;
28789let mayStore = 1;
28790let BaseOpcode = "V6_vS32Ub_pi";
28791let DecoderNamespace = "EXT_mmvec";
28792let Constraints = "$Rx32 = $Rx32in";
28793}
28794def V6_vS32Ub_npred_ppu : HInst<
28795(outs IntRegs:$Rx32),
28796(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28797"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28798tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28799let Inst{10-5} = 0b000111;
28800let Inst{31-21} = 0b00101011101;
28801let isPredicated = 1;
28802let isPredicatedFalse = 1;
28803let addrMode = PostInc;
28804let accessSize = HVXVectorAccess;
28805let isCVI = 1;
28806let mayStore = 1;
28807let BaseOpcode = "V6_vS32Ub_ppu";
28808let DecoderNamespace = "EXT_mmvec";
28809let Constraints = "$Rx32 = $Rx32in";
28810}
28811def V6_vS32Ub_pi : HInst<
28812(outs IntRegs:$Rx32),
28813(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28814"vmemu($Rx32++#$Ii) = $Vs32",
28815tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28816let Inst{7-5} = 0b111;
28817let Inst{13-11} = 0b000;
28818let Inst{31-21} = 0b00101001001;
28819let addrMode = PostInc;
28820let accessSize = HVXVectorAccess;
28821let isCVI = 1;
28822let mayStore = 1;
28823let BaseOpcode = "V6_vS32Ub_pi";
28824let CextOpcode = "V6_vS32Ub";
28825let isPredicable = 1;
28826let DecoderNamespace = "EXT_mmvec";
28827let Constraints = "$Rx32 = $Rx32in";
28828}
28829def V6_vS32Ub_ppu : HInst<
28830(outs IntRegs:$Rx32),
28831(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28832"vmemu($Rx32++$Mu2) = $Vs32",
28833tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28834let Inst{12-5} = 0b00000111;
28835let Inst{31-21} = 0b00101011001;
28836let addrMode = PostInc;
28837let accessSize = HVXVectorAccess;
28838let isCVI = 1;
28839let mayStore = 1;
28840let BaseOpcode = "V6_vS32Ub_ppu";
28841let isPredicable = 1;
28842let DecoderNamespace = "EXT_mmvec";
28843let Constraints = "$Rx32 = $Rx32in";
28844}
28845def V6_vS32Ub_pred_ai : HInst<
28846(outs),
28847(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28848"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28849tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28850let Inst{7-5} = 0b110;
28851let Inst{31-21} = 0b00101000101;
28852let isPredicated = 1;
28853let addrMode = BaseImmOffset;
28854let accessSize = HVXVectorAccess;
28855let isCVI = 1;
28856let mayStore = 1;
28857let BaseOpcode = "V6_vS32Ub_ai";
28858let DecoderNamespace = "EXT_mmvec";
28859}
28860def V6_vS32Ub_pred_pi : HInst<
28861(outs IntRegs:$Rx32),
28862(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28863"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28864tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28865let Inst{7-5} = 0b110;
28866let Inst{13-13} = 0b0;
28867let Inst{31-21} = 0b00101001101;
28868let isPredicated = 1;
28869let addrMode = PostInc;
28870let accessSize = HVXVectorAccess;
28871let isCVI = 1;
28872let mayStore = 1;
28873let BaseOpcode = "V6_vS32Ub_pi";
28874let DecoderNamespace = "EXT_mmvec";
28875let Constraints = "$Rx32 = $Rx32in";
28876}
28877def V6_vS32Ub_pred_ppu : HInst<
28878(outs IntRegs:$Rx32),
28879(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28880"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28881tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28882let Inst{10-5} = 0b000110;
28883let Inst{31-21} = 0b00101011101;
28884let isPredicated = 1;
28885let addrMode = PostInc;
28886let accessSize = HVXVectorAccess;
28887let isCVI = 1;
28888let mayStore = 1;
28889let BaseOpcode = "V6_vS32Ub_ppu";
28890let DecoderNamespace = "EXT_mmvec";
28891let Constraints = "$Rx32 = $Rx32in";
28892}
28893def V6_vS32b_ai : HInst<
28894(outs),
28895(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28896"vmem($Rt32+#$Ii) = $Vs32",
28897tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28898let Inst{7-5} = 0b000;
28899let Inst{12-11} = 0b00;
28900let Inst{31-21} = 0b00101000001;
28901let addrMode = BaseImmOffset;
28902let accessSize = HVXVectorAccess;
28903let isCVI = 1;
28904let isHVXALU = 1;
28905let mayStore = 1;
28906let BaseOpcode = "V6_vS32b_ai";
28907let CextOpcode = "V6_vS32b";
28908let isNVStorable = 1;
28909let isPredicable = 1;
28910let DecoderNamespace = "EXT_mmvec";
28911}
28912def V6_vS32b_new_ai : HInst<
28913(outs),
28914(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28915"vmem($Rt32+#$Ii) = $Os8.new",
28916tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28917let Inst{7-3} = 0b00100;
28918let Inst{12-11} = 0b00;
28919let Inst{31-21} = 0b00101000001;
28920let addrMode = BaseImmOffset;
28921let accessSize = HVXVectorAccess;
28922let isNVStore = 1;
28923let isCVI = 1;
28924let CVINew = 1;
28925let isNewValue = 1;
28926let mayStore = 1;
28927let BaseOpcode = "V6_vS32b_ai";
28928let CextOpcode = "V6_vS32b_new";
28929let isPredicable = 1;
28930let DecoderNamespace = "EXT_mmvec";
28931let opNewValue = 2;
28932}
28933def V6_vS32b_new_npred_ai : HInst<
28934(outs),
28935(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28936"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28937tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28938let Inst{7-3} = 0b01101;
28939let Inst{31-21} = 0b00101000101;
28940let isPredicated = 1;
28941let isPredicatedFalse = 1;
28942let addrMode = BaseImmOffset;
28943let accessSize = HVXVectorAccess;
28944let isNVStore = 1;
28945let isCVI = 1;
28946let CVINew = 1;
28947let isNewValue = 1;
28948let mayStore = 1;
28949let BaseOpcode = "V6_vS32b_ai";
28950let DecoderNamespace = "EXT_mmvec";
28951let opNewValue = 3;
28952}
28953def V6_vS32b_new_npred_pi : HInst<
28954(outs IntRegs:$Rx32),
28955(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28956"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28957tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28958let Inst{7-3} = 0b01101;
28959let Inst{13-13} = 0b0;
28960let Inst{31-21} = 0b00101001101;
28961let isPredicated = 1;
28962let isPredicatedFalse = 1;
28963let addrMode = PostInc;
28964let accessSize = HVXVectorAccess;
28965let isNVStore = 1;
28966let isCVI = 1;
28967let CVINew = 1;
28968let isNewValue = 1;
28969let mayStore = 1;
28970let BaseOpcode = "V6_vS32b_pi";
28971let DecoderNamespace = "EXT_mmvec";
28972let opNewValue = 4;
28973let Constraints = "$Rx32 = $Rx32in";
28974}
28975def V6_vS32b_new_npred_ppu : HInst<
28976(outs IntRegs:$Rx32),
28977(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28978"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28979tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28980let Inst{10-3} = 0b00001101;
28981let Inst{31-21} = 0b00101011101;
28982let isPredicated = 1;
28983let isPredicatedFalse = 1;
28984let addrMode = PostInc;
28985let accessSize = HVXVectorAccess;
28986let isNVStore = 1;
28987let isCVI = 1;
28988let CVINew = 1;
28989let isNewValue = 1;
28990let mayStore = 1;
28991let BaseOpcode = "V6_vS32b_ppu";
28992let DecoderNamespace = "EXT_mmvec";
28993let opNewValue = 4;
28994let Constraints = "$Rx32 = $Rx32in";
28995}
28996def V6_vS32b_new_pi : HInst<
28997(outs IntRegs:$Rx32),
28998(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28999"vmem($Rx32++#$Ii) = $Os8.new",
29000tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29001let Inst{7-3} = 0b00100;
29002let Inst{13-11} = 0b000;
29003let Inst{31-21} = 0b00101001001;
29004let addrMode = PostInc;
29005let accessSize = HVXVectorAccess;
29006let isNVStore = 1;
29007let isCVI = 1;
29008let CVINew = 1;
29009let isNewValue = 1;
29010let mayStore = 1;
29011let BaseOpcode = "V6_vS32b_pi";
29012let CextOpcode = "V6_vS32b_new";
29013let isPredicable = 1;
29014let DecoderNamespace = "EXT_mmvec";
29015let opNewValue = 3;
29016let Constraints = "$Rx32 = $Rx32in";
29017}
29018def V6_vS32b_new_ppu : HInst<
29019(outs IntRegs:$Rx32),
29020(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29021"vmem($Rx32++$Mu2) = $Os8.new",
29022tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29023let Inst{12-3} = 0b0000000100;
29024let Inst{31-21} = 0b00101011001;
29025let addrMode = PostInc;
29026let accessSize = HVXVectorAccess;
29027let isNVStore = 1;
29028let isCVI = 1;
29029let CVINew = 1;
29030let isNewValue = 1;
29031let mayStore = 1;
29032let BaseOpcode = "V6_vS32b_ppu";
29033let isPredicable = 1;
29034let DecoderNamespace = "EXT_mmvec";
29035let opNewValue = 3;
29036let Constraints = "$Rx32 = $Rx32in";
29037}
29038def V6_vS32b_new_pred_ai : HInst<
29039(outs),
29040(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29041"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29042tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29043let Inst{7-3} = 0b01000;
29044let Inst{31-21} = 0b00101000101;
29045let isPredicated = 1;
29046let addrMode = BaseImmOffset;
29047let accessSize = HVXVectorAccess;
29048let isNVStore = 1;
29049let isCVI = 1;
29050let CVINew = 1;
29051let isNewValue = 1;
29052let mayStore = 1;
29053let BaseOpcode = "V6_vS32b_ai";
29054let DecoderNamespace = "EXT_mmvec";
29055let opNewValue = 3;
29056}
29057def V6_vS32b_new_pred_pi : HInst<
29058(outs IntRegs:$Rx32),
29059(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29060"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29061tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29062let Inst{7-3} = 0b01000;
29063let Inst{13-13} = 0b0;
29064let Inst{31-21} = 0b00101001101;
29065let isPredicated = 1;
29066let addrMode = PostInc;
29067let accessSize = HVXVectorAccess;
29068let isNVStore = 1;
29069let isCVI = 1;
29070let CVINew = 1;
29071let isNewValue = 1;
29072let mayStore = 1;
29073let BaseOpcode = "V6_vS32b_pi";
29074let DecoderNamespace = "EXT_mmvec";
29075let opNewValue = 4;
29076let Constraints = "$Rx32 = $Rx32in";
29077}
29078def V6_vS32b_new_pred_ppu : HInst<
29079(outs IntRegs:$Rx32),
29080(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29081"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29082tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29083let Inst{10-3} = 0b00001000;
29084let Inst{31-21} = 0b00101011101;
29085let isPredicated = 1;
29086let addrMode = PostInc;
29087let accessSize = HVXVectorAccess;
29088let isNVStore = 1;
29089let isCVI = 1;
29090let CVINew = 1;
29091let isNewValue = 1;
29092let mayStore = 1;
29093let BaseOpcode = "V6_vS32b_ppu";
29094let DecoderNamespace = "EXT_mmvec";
29095let opNewValue = 4;
29096let Constraints = "$Rx32 = $Rx32in";
29097}
29098def V6_vS32b_npred_ai : HInst<
29099(outs),
29100(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29101"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
29102tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29103let Inst{7-5} = 0b001;
29104let Inst{31-21} = 0b00101000101;
29105let isPredicated = 1;
29106let isPredicatedFalse = 1;
29107let addrMode = BaseImmOffset;
29108let accessSize = HVXVectorAccess;
29109let isCVI = 1;
29110let isHVXALU = 1;
29111let mayStore = 1;
29112let BaseOpcode = "V6_vS32b_ai";
29113let isNVStorable = 1;
29114let DecoderNamespace = "EXT_mmvec";
29115}
29116def V6_vS32b_npred_pi : HInst<
29117(outs IntRegs:$Rx32),
29118(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29119"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
29120tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29121let Inst{7-5} = 0b001;
29122let Inst{13-13} = 0b0;
29123let Inst{31-21} = 0b00101001101;
29124let isPredicated = 1;
29125let isPredicatedFalse = 1;
29126let addrMode = PostInc;
29127let accessSize = HVXVectorAccess;
29128let isCVI = 1;
29129let isHVXALU = 1;
29130let mayStore = 1;
29131let BaseOpcode = "V6_vS32b_pi";
29132let isNVStorable = 1;
29133let DecoderNamespace = "EXT_mmvec";
29134let Constraints = "$Rx32 = $Rx32in";
29135}
29136def V6_vS32b_npred_ppu : HInst<
29137(outs IntRegs:$Rx32),
29138(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29139"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29140tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29141let Inst{10-5} = 0b000001;
29142let Inst{31-21} = 0b00101011101;
29143let isPredicated = 1;
29144let isPredicatedFalse = 1;
29145let addrMode = PostInc;
29146let accessSize = HVXVectorAccess;
29147let isCVI = 1;
29148let isHVXALU = 1;
29149let mayStore = 1;
29150let BaseOpcode = "V6_vS32b_ppu";
29151let isNVStorable = 1;
29152let DecoderNamespace = "EXT_mmvec";
29153let Constraints = "$Rx32 = $Rx32in";
29154}
29155def V6_vS32b_nqpred_ai : HInst<
29156(outs),
29157(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29158"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29159tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29160let Inst{7-5} = 0b001;
29161let Inst{31-21} = 0b00101000100;
29162let addrMode = BaseImmOffset;
29163let accessSize = HVXVectorAccess;
29164let isCVI = 1;
29165let isHVXALU = 1;
29166let mayStore = 1;
29167let DecoderNamespace = "EXT_mmvec";
29168}
29169def V6_vS32b_nqpred_pi : HInst<
29170(outs IntRegs:$Rx32),
29171(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29172"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29173tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29174let Inst{7-5} = 0b001;
29175let Inst{13-13} = 0b0;
29176let Inst{31-21} = 0b00101001100;
29177let addrMode = PostInc;
29178let accessSize = HVXVectorAccess;
29179let isCVI = 1;
29180let isHVXALU = 1;
29181let mayStore = 1;
29182let DecoderNamespace = "EXT_mmvec";
29183let Constraints = "$Rx32 = $Rx32in";
29184}
29185def V6_vS32b_nqpred_ppu : HInst<
29186(outs IntRegs:$Rx32),
29187(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29188"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29189tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29190let Inst{10-5} = 0b000001;
29191let Inst{31-21} = 0b00101011100;
29192let addrMode = PostInc;
29193let accessSize = HVXVectorAccess;
29194let isCVI = 1;
29195let isHVXALU = 1;
29196let mayStore = 1;
29197let DecoderNamespace = "EXT_mmvec";
29198let Constraints = "$Rx32 = $Rx32in";
29199}
29200def V6_vS32b_nt_ai : HInst<
29201(outs),
29202(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29203"vmem($Rt32+#$Ii):nt = $Vs32",
29204tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29205let Inst{7-5} = 0b000;
29206let Inst{12-11} = 0b00;
29207let Inst{31-21} = 0b00101000011;
29208let addrMode = BaseImmOffset;
29209let accessSize = HVXVectorAccess;
29210let isCVI = 1;
29211let isHVXALU = 1;
29212let isNonTemporal = 1;
29213let mayStore = 1;
29214let BaseOpcode = "V6_vS32b_ai";
29215let CextOpcode = "V6_vS32b_nt";
29216let isNVStorable = 1;
29217let isPredicable = 1;
29218let DecoderNamespace = "EXT_mmvec";
29219}
29220def V6_vS32b_nt_new_ai : HInst<
29221(outs),
29222(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29223"vmem($Rt32+#$Ii):nt = $Os8.new",
29224tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29225let Inst{7-3} = 0b00100;
29226let Inst{12-11} = 0b00;
29227let Inst{31-21} = 0b00101000011;
29228let addrMode = BaseImmOffset;
29229let accessSize = HVXVectorAccess;
29230let isNVStore = 1;
29231let isCVI = 1;
29232let CVINew = 1;
29233let isNewValue = 1;
29234let isNonTemporal = 1;
29235let mayStore = 1;
29236let BaseOpcode = "V6_vS32b_ai";
29237let CextOpcode = "V6_vS32b_nt_new";
29238let isPredicable = 1;
29239let DecoderNamespace = "EXT_mmvec";
29240let opNewValue = 2;
29241}
29242def V6_vS32b_nt_new_npred_ai : HInst<
29243(outs),
29244(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29245"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29246tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29247let Inst{7-3} = 0b01111;
29248let Inst{31-21} = 0b00101000111;
29249let isPredicated = 1;
29250let isPredicatedFalse = 1;
29251let addrMode = BaseImmOffset;
29252let accessSize = HVXVectorAccess;
29253let isNVStore = 1;
29254let isCVI = 1;
29255let CVINew = 1;
29256let isNewValue = 1;
29257let isNonTemporal = 1;
29258let mayStore = 1;
29259let BaseOpcode = "V6_vS32b_ai";
29260let DecoderNamespace = "EXT_mmvec";
29261let opNewValue = 3;
29262}
29263def V6_vS32b_nt_new_npred_pi : HInst<
29264(outs IntRegs:$Rx32),
29265(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29266"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29267tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29268let Inst{7-3} = 0b01111;
29269let Inst{13-13} = 0b0;
29270let Inst{31-21} = 0b00101001111;
29271let isPredicated = 1;
29272let isPredicatedFalse = 1;
29273let addrMode = PostInc;
29274let accessSize = HVXVectorAccess;
29275let isNVStore = 1;
29276let isCVI = 1;
29277let CVINew = 1;
29278let isNewValue = 1;
29279let isNonTemporal = 1;
29280let mayStore = 1;
29281let BaseOpcode = "V6_vS32b_pi";
29282let DecoderNamespace = "EXT_mmvec";
29283let opNewValue = 4;
29284let Constraints = "$Rx32 = $Rx32in";
29285}
29286def V6_vS32b_nt_new_npred_ppu : HInst<
29287(outs IntRegs:$Rx32),
29288(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29289"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29290tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29291let Inst{10-3} = 0b00001111;
29292let Inst{31-21} = 0b00101011111;
29293let isPredicated = 1;
29294let isPredicatedFalse = 1;
29295let addrMode = PostInc;
29296let accessSize = HVXVectorAccess;
29297let isNVStore = 1;
29298let isCVI = 1;
29299let CVINew = 1;
29300let isNewValue = 1;
29301let isNonTemporal = 1;
29302let mayStore = 1;
29303let BaseOpcode = "V6_vS32b_ppu";
29304let DecoderNamespace = "EXT_mmvec";
29305let opNewValue = 4;
29306let Constraints = "$Rx32 = $Rx32in";
29307}
29308def V6_vS32b_nt_new_pi : HInst<
29309(outs IntRegs:$Rx32),
29310(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29311"vmem($Rx32++#$Ii):nt = $Os8.new",
29312tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29313let Inst{7-3} = 0b00100;
29314let Inst{13-11} = 0b000;
29315let Inst{31-21} = 0b00101001011;
29316let addrMode = PostInc;
29317let accessSize = HVXVectorAccess;
29318let isNVStore = 1;
29319let isCVI = 1;
29320let CVINew = 1;
29321let isNewValue = 1;
29322let isNonTemporal = 1;
29323let mayStore = 1;
29324let BaseOpcode = "V6_vS32b_pi";
29325let CextOpcode = "V6_vS32b_nt_new";
29326let isPredicable = 1;
29327let DecoderNamespace = "EXT_mmvec";
29328let opNewValue = 3;
29329let Constraints = "$Rx32 = $Rx32in";
29330}
29331def V6_vS32b_nt_new_ppu : HInst<
29332(outs IntRegs:$Rx32),
29333(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29334"vmem($Rx32++$Mu2):nt = $Os8.new",
29335tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29336let Inst{12-3} = 0b0000000100;
29337let Inst{31-21} = 0b00101011011;
29338let addrMode = PostInc;
29339let accessSize = HVXVectorAccess;
29340let isNVStore = 1;
29341let isCVI = 1;
29342let CVINew = 1;
29343let isNewValue = 1;
29344let isNonTemporal = 1;
29345let mayStore = 1;
29346let BaseOpcode = "V6_vS32b_ppu";
29347let isPredicable = 1;
29348let DecoderNamespace = "EXT_mmvec";
29349let opNewValue = 3;
29350let Constraints = "$Rx32 = $Rx32in";
29351}
29352def V6_vS32b_nt_new_pred_ai : HInst<
29353(outs),
29354(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29355"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29356tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29357let Inst{7-3} = 0b01010;
29358let Inst{31-21} = 0b00101000111;
29359let isPredicated = 1;
29360let addrMode = BaseImmOffset;
29361let accessSize = HVXVectorAccess;
29362let isNVStore = 1;
29363let isCVI = 1;
29364let CVINew = 1;
29365let isNewValue = 1;
29366let isNonTemporal = 1;
29367let mayStore = 1;
29368let BaseOpcode = "V6_vS32b_ai";
29369let DecoderNamespace = "EXT_mmvec";
29370let opNewValue = 3;
29371}
29372def V6_vS32b_nt_new_pred_pi : HInst<
29373(outs IntRegs:$Rx32),
29374(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29375"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29376tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29377let Inst{7-3} = 0b01010;
29378let Inst{13-13} = 0b0;
29379let Inst{31-21} = 0b00101001111;
29380let isPredicated = 1;
29381let addrMode = PostInc;
29382let accessSize = HVXVectorAccess;
29383let isNVStore = 1;
29384let isCVI = 1;
29385let CVINew = 1;
29386let isNewValue = 1;
29387let isNonTemporal = 1;
29388let mayStore = 1;
29389let BaseOpcode = "V6_vS32b_pi";
29390let DecoderNamespace = "EXT_mmvec";
29391let opNewValue = 4;
29392let Constraints = "$Rx32 = $Rx32in";
29393}
29394def V6_vS32b_nt_new_pred_ppu : HInst<
29395(outs IntRegs:$Rx32),
29396(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29397"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29398tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29399let Inst{10-3} = 0b00001010;
29400let Inst{31-21} = 0b00101011111;
29401let isPredicated = 1;
29402let addrMode = PostInc;
29403let accessSize = HVXVectorAccess;
29404let isNVStore = 1;
29405let isCVI = 1;
29406let CVINew = 1;
29407let isNewValue = 1;
29408let isNonTemporal = 1;
29409let mayStore = 1;
29410let BaseOpcode = "V6_vS32b_ppu";
29411let DecoderNamespace = "EXT_mmvec";
29412let opNewValue = 4;
29413let Constraints = "$Rx32 = $Rx32in";
29414}
29415def V6_vS32b_nt_npred_ai : HInst<
29416(outs),
29417(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29418"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29419tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29420let Inst{7-5} = 0b001;
29421let Inst{31-21} = 0b00101000111;
29422let isPredicated = 1;
29423let isPredicatedFalse = 1;
29424let addrMode = BaseImmOffset;
29425let accessSize = HVXVectorAccess;
29426let isCVI = 1;
29427let isHVXALU = 1;
29428let isNonTemporal = 1;
29429let mayStore = 1;
29430let BaseOpcode = "V6_vS32b_ai";
29431let isNVStorable = 1;
29432let DecoderNamespace = "EXT_mmvec";
29433}
29434def V6_vS32b_nt_npred_pi : HInst<
29435(outs IntRegs:$Rx32),
29436(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29437"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29438tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29439let Inst{7-5} = 0b001;
29440let Inst{13-13} = 0b0;
29441let Inst{31-21} = 0b00101001111;
29442let isPredicated = 1;
29443let isPredicatedFalse = 1;
29444let addrMode = PostInc;
29445let accessSize = HVXVectorAccess;
29446let isCVI = 1;
29447let isHVXALU = 1;
29448let isNonTemporal = 1;
29449let mayStore = 1;
29450let BaseOpcode = "V6_vS32b_pi";
29451let isNVStorable = 1;
29452let DecoderNamespace = "EXT_mmvec";
29453let Constraints = "$Rx32 = $Rx32in";
29454}
29455def V6_vS32b_nt_npred_ppu : HInst<
29456(outs IntRegs:$Rx32),
29457(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29458"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29459tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29460let Inst{10-5} = 0b000001;
29461let Inst{31-21} = 0b00101011111;
29462let isPredicated = 1;
29463let isPredicatedFalse = 1;
29464let addrMode = PostInc;
29465let accessSize = HVXVectorAccess;
29466let isCVI = 1;
29467let isHVXALU = 1;
29468let isNonTemporal = 1;
29469let mayStore = 1;
29470let BaseOpcode = "V6_vS32b_ppu";
29471let isNVStorable = 1;
29472let DecoderNamespace = "EXT_mmvec";
29473let Constraints = "$Rx32 = $Rx32in";
29474}
29475def V6_vS32b_nt_nqpred_ai : HInst<
29476(outs),
29477(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29478"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29479tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29480let Inst{7-5} = 0b001;
29481let Inst{31-21} = 0b00101000110;
29482let addrMode = BaseImmOffset;
29483let accessSize = HVXVectorAccess;
29484let isCVI = 1;
29485let isHVXALU = 1;
29486let isNonTemporal = 1;
29487let mayStore = 1;
29488let DecoderNamespace = "EXT_mmvec";
29489}
29490def V6_vS32b_nt_nqpred_pi : HInst<
29491(outs IntRegs:$Rx32),
29492(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29493"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29494tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29495let Inst{7-5} = 0b001;
29496let Inst{13-13} = 0b0;
29497let Inst{31-21} = 0b00101001110;
29498let addrMode = PostInc;
29499let accessSize = HVXVectorAccess;
29500let isCVI = 1;
29501let isHVXALU = 1;
29502let isNonTemporal = 1;
29503let mayStore = 1;
29504let DecoderNamespace = "EXT_mmvec";
29505let Constraints = "$Rx32 = $Rx32in";
29506}
29507def V6_vS32b_nt_nqpred_ppu : HInst<
29508(outs IntRegs:$Rx32),
29509(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29510"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29511tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29512let Inst{10-5} = 0b000001;
29513let Inst{31-21} = 0b00101011110;
29514let addrMode = PostInc;
29515let accessSize = HVXVectorAccess;
29516let isCVI = 1;
29517let isHVXALU = 1;
29518let isNonTemporal = 1;
29519let mayStore = 1;
29520let DecoderNamespace = "EXT_mmvec";
29521let Constraints = "$Rx32 = $Rx32in";
29522}
29523def V6_vS32b_nt_pi : HInst<
29524(outs IntRegs:$Rx32),
29525(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29526"vmem($Rx32++#$Ii):nt = $Vs32",
29527tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29528let Inst{7-5} = 0b000;
29529let Inst{13-11} = 0b000;
29530let Inst{31-21} = 0b00101001011;
29531let addrMode = PostInc;
29532let accessSize = HVXVectorAccess;
29533let isCVI = 1;
29534let isHVXALU = 1;
29535let isNonTemporal = 1;
29536let mayStore = 1;
29537let BaseOpcode = "V6_vS32b_pi";
29538let CextOpcode = "V6_vS32b_nt";
29539let isNVStorable = 1;
29540let isPredicable = 1;
29541let DecoderNamespace = "EXT_mmvec";
29542let Constraints = "$Rx32 = $Rx32in";
29543}
29544def V6_vS32b_nt_ppu : HInst<
29545(outs IntRegs:$Rx32),
29546(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29547"vmem($Rx32++$Mu2):nt = $Vs32",
29548tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29549let Inst{12-5} = 0b00000000;
29550let Inst{31-21} = 0b00101011011;
29551let addrMode = PostInc;
29552let accessSize = HVXVectorAccess;
29553let isCVI = 1;
29554let isHVXALU = 1;
29555let isNonTemporal = 1;
29556let mayStore = 1;
29557let BaseOpcode = "V6_vS32b_ppu";
29558let isNVStorable = 1;
29559let isPredicable = 1;
29560let DecoderNamespace = "EXT_mmvec";
29561let Constraints = "$Rx32 = $Rx32in";
29562}
29563def V6_vS32b_nt_pred_ai : HInst<
29564(outs),
29565(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29566"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29567tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29568let Inst{7-5} = 0b000;
29569let Inst{31-21} = 0b00101000111;
29570let isPredicated = 1;
29571let addrMode = BaseImmOffset;
29572let accessSize = HVXVectorAccess;
29573let isCVI = 1;
29574let isHVXALU = 1;
29575let isNonTemporal = 1;
29576let mayStore = 1;
29577let BaseOpcode = "V6_vS32b_ai";
29578let isNVStorable = 1;
29579let DecoderNamespace = "EXT_mmvec";
29580}
29581def V6_vS32b_nt_pred_pi : HInst<
29582(outs IntRegs:$Rx32),
29583(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29584"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29585tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29586let Inst{7-5} = 0b000;
29587let Inst{13-13} = 0b0;
29588let Inst{31-21} = 0b00101001111;
29589let isPredicated = 1;
29590let addrMode = PostInc;
29591let accessSize = HVXVectorAccess;
29592let isCVI = 1;
29593let isHVXALU = 1;
29594let isNonTemporal = 1;
29595let mayStore = 1;
29596let BaseOpcode = "V6_vS32b_pi";
29597let isNVStorable = 1;
29598let DecoderNamespace = "EXT_mmvec";
29599let Constraints = "$Rx32 = $Rx32in";
29600}
29601def V6_vS32b_nt_pred_ppu : HInst<
29602(outs IntRegs:$Rx32),
29603(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29604"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29605tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29606let Inst{10-5} = 0b000000;
29607let Inst{31-21} = 0b00101011111;
29608let isPredicated = 1;
29609let addrMode = PostInc;
29610let accessSize = HVXVectorAccess;
29611let isCVI = 1;
29612let isHVXALU = 1;
29613let isNonTemporal = 1;
29614let mayStore = 1;
29615let BaseOpcode = "V6_vS32b_ppu";
29616let isNVStorable = 1;
29617let DecoderNamespace = "EXT_mmvec";
29618let Constraints = "$Rx32 = $Rx32in";
29619}
29620def V6_vS32b_nt_qpred_ai : HInst<
29621(outs),
29622(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29623"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29624tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29625let Inst{7-5} = 0b000;
29626let Inst{31-21} = 0b00101000110;
29627let addrMode = BaseImmOffset;
29628let accessSize = HVXVectorAccess;
29629let isCVI = 1;
29630let isHVXALU = 1;
29631let isNonTemporal = 1;
29632let mayStore = 1;
29633let DecoderNamespace = "EXT_mmvec";
29634}
29635def V6_vS32b_nt_qpred_pi : HInst<
29636(outs IntRegs:$Rx32),
29637(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29638"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29639tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29640let Inst{7-5} = 0b000;
29641let Inst{13-13} = 0b0;
29642let Inst{31-21} = 0b00101001110;
29643let addrMode = PostInc;
29644let accessSize = HVXVectorAccess;
29645let isCVI = 1;
29646let isHVXALU = 1;
29647let isNonTemporal = 1;
29648let mayStore = 1;
29649let DecoderNamespace = "EXT_mmvec";
29650let Constraints = "$Rx32 = $Rx32in";
29651}
29652def V6_vS32b_nt_qpred_ppu : HInst<
29653(outs IntRegs:$Rx32),
29654(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29655"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29656tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29657let Inst{10-5} = 0b000000;
29658let Inst{31-21} = 0b00101011110;
29659let addrMode = PostInc;
29660let accessSize = HVXVectorAccess;
29661let isCVI = 1;
29662let isHVXALU = 1;
29663let isNonTemporal = 1;
29664let mayStore = 1;
29665let DecoderNamespace = "EXT_mmvec";
29666let Constraints = "$Rx32 = $Rx32in";
29667}
29668def V6_vS32b_pi : HInst<
29669(outs IntRegs:$Rx32),
29670(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29671"vmem($Rx32++#$Ii) = $Vs32",
29672tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29673let Inst{7-5} = 0b000;
29674let Inst{13-11} = 0b000;
29675let Inst{31-21} = 0b00101001001;
29676let addrMode = PostInc;
29677let accessSize = HVXVectorAccess;
29678let isCVI = 1;
29679let isHVXALU = 1;
29680let mayStore = 1;
29681let BaseOpcode = "V6_vS32b_pi";
29682let CextOpcode = "V6_vS32b";
29683let isNVStorable = 1;
29684let isPredicable = 1;
29685let DecoderNamespace = "EXT_mmvec";
29686let Constraints = "$Rx32 = $Rx32in";
29687}
29688def V6_vS32b_ppu : HInst<
29689(outs IntRegs:$Rx32),
29690(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29691"vmem($Rx32++$Mu2) = $Vs32",
29692tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29693let Inst{12-5} = 0b00000000;
29694let Inst{31-21} = 0b00101011001;
29695let addrMode = PostInc;
29696let accessSize = HVXVectorAccess;
29697let isCVI = 1;
29698let isHVXALU = 1;
29699let mayStore = 1;
29700let BaseOpcode = "V6_vS32b_ppu";
29701let isNVStorable = 1;
29702let isPredicable = 1;
29703let DecoderNamespace = "EXT_mmvec";
29704let Constraints = "$Rx32 = $Rx32in";
29705}
29706def V6_vS32b_pred_ai : HInst<
29707(outs),
29708(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29709"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
29710tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29711let Inst{7-5} = 0b000;
29712let Inst{31-21} = 0b00101000101;
29713let isPredicated = 1;
29714let addrMode = BaseImmOffset;
29715let accessSize = HVXVectorAccess;
29716let isCVI = 1;
29717let isHVXALU = 1;
29718let mayStore = 1;
29719let BaseOpcode = "V6_vS32b_ai";
29720let isNVStorable = 1;
29721let DecoderNamespace = "EXT_mmvec";
29722}
29723def V6_vS32b_pred_pi : HInst<
29724(outs IntRegs:$Rx32),
29725(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29726"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
29727tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29728let Inst{7-5} = 0b000;
29729let Inst{13-13} = 0b0;
29730let Inst{31-21} = 0b00101001101;
29731let isPredicated = 1;
29732let addrMode = PostInc;
29733let accessSize = HVXVectorAccess;
29734let isCVI = 1;
29735let isHVXALU = 1;
29736let mayStore = 1;
29737let BaseOpcode = "V6_vS32b_pi";
29738let isNVStorable = 1;
29739let DecoderNamespace = "EXT_mmvec";
29740let Constraints = "$Rx32 = $Rx32in";
29741}
29742def V6_vS32b_pred_ppu : HInst<
29743(outs IntRegs:$Rx32),
29744(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29745"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
29746tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29747let Inst{10-5} = 0b000000;
29748let Inst{31-21} = 0b00101011101;
29749let isPredicated = 1;
29750let addrMode = PostInc;
29751let accessSize = HVXVectorAccess;
29752let isCVI = 1;
29753let isHVXALU = 1;
29754let mayStore = 1;
29755let BaseOpcode = "V6_vS32b_ppu";
29756let isNVStorable = 1;
29757let DecoderNamespace = "EXT_mmvec";
29758let Constraints = "$Rx32 = $Rx32in";
29759}
29760def V6_vS32b_qpred_ai : HInst<
29761(outs),
29762(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29763"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
29764tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29765let Inst{7-5} = 0b000;
29766let Inst{31-21} = 0b00101000100;
29767let addrMode = BaseImmOffset;
29768let accessSize = HVXVectorAccess;
29769let isCVI = 1;
29770let isHVXALU = 1;
29771let mayStore = 1;
29772let DecoderNamespace = "EXT_mmvec";
29773}
29774def V6_vS32b_qpred_pi : HInst<
29775(outs IntRegs:$Rx32),
29776(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29777"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
29778tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29779let Inst{7-5} = 0b000;
29780let Inst{13-13} = 0b0;
29781let Inst{31-21} = 0b00101001100;
29782let addrMode = PostInc;
29783let accessSize = HVXVectorAccess;
29784let isCVI = 1;
29785let isHVXALU = 1;
29786let mayStore = 1;
29787let DecoderNamespace = "EXT_mmvec";
29788let Constraints = "$Rx32 = $Rx32in";
29789}
29790def V6_vS32b_qpred_ppu : HInst<
29791(outs IntRegs:$Rx32),
29792(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29793"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
29794tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29795let Inst{10-5} = 0b000000;
29796let Inst{31-21} = 0b00101011100;
29797let addrMode = PostInc;
29798let accessSize = HVXVectorAccess;
29799let isCVI = 1;
29800let isHVXALU = 1;
29801let mayStore = 1;
29802let DecoderNamespace = "EXT_mmvec";
29803let Constraints = "$Rx32 = $Rx32in";
29804}
29805def V6_vS32b_srls_ai : HInst<
29806(outs),
29807(ins IntRegs:$Rt32, s4_0Imm:$Ii),
29808"vmem($Rt32+#$Ii):scatter_release",
29809tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
29810let Inst{7-0} = 0b00101000;
29811let Inst{12-11} = 0b00;
29812let Inst{31-21} = 0b00101000001;
29813let addrMode = BaseImmOffset;
29814let accessSize = HVXVectorAccess;
29815let isCVI = 1;
29816let CVINew = 1;
29817let mayStore = 1;
29818let DecoderNamespace = "EXT_mmvec";
29819}
29820def V6_vS32b_srls_pi : HInst<
29821(outs IntRegs:$Rx32),
29822(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
29823"vmem($Rx32++#$Ii):scatter_release",
29824tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
29825let Inst{7-0} = 0b00101000;
29826let Inst{13-11} = 0b000;
29827let Inst{31-21} = 0b00101001001;
29828let addrMode = PostInc;
29829let accessSize = HVXVectorAccess;
29830let isCVI = 1;
29831let CVINew = 1;
29832let mayStore = 1;
29833let DecoderNamespace = "EXT_mmvec";
29834let Constraints = "$Rx32 = $Rx32in";
29835}
29836def V6_vS32b_srls_ppu : HInst<
29837(outs IntRegs:$Rx32),
29838(ins IntRegs:$Rx32in, ModRegs:$Mu2),
29839"vmem($Rx32++$Mu2):scatter_release",
29840tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
29841let Inst{12-0} = 0b0000000101000;
29842let Inst{31-21} = 0b00101011001;
29843let addrMode = PostInc;
29844let accessSize = HVXVectorAccess;
29845let isCVI = 1;
29846let CVINew = 1;
29847let mayStore = 1;
29848let DecoderNamespace = "EXT_mmvec";
29849let Constraints = "$Rx32 = $Rx32in";
29850}
29851def V6_vabs_hf : HInst<
29852(outs HvxVR:$Vd32),
29853(ins HvxVR:$Vu32),
29854"$Vd32.hf = vabs($Vu32.hf)",
29855tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29856let Inst{7-5} = 0b100;
29857let Inst{13-13} = 0b1;
29858let Inst{31-16} = 0b0001111000000110;
29859let hasNewValue = 1;
29860let opNewValue = 0;
29861let isCVI = 1;
29862let DecoderNamespace = "EXT_mmvec";
29863}
29864def V6_vabs_sf : HInst<
29865(outs HvxVR:$Vd32),
29866(ins HvxVR:$Vu32),
29867"$Vd32.sf = vabs($Vu32.sf)",
29868tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29869let Inst{7-5} = 0b101;
29870let Inst{13-13} = 0b1;
29871let Inst{31-16} = 0b0001111000000110;
29872let hasNewValue = 1;
29873let opNewValue = 0;
29874let isCVI = 1;
29875let DecoderNamespace = "EXT_mmvec";
29876}
29877def V6_vabsb : HInst<
29878(outs HvxVR:$Vd32),
29879(ins HvxVR:$Vu32),
29880"$Vd32.b = vabs($Vu32.b)",
29881tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29882let Inst{7-5} = 0b100;
29883let Inst{13-13} = 0b0;
29884let Inst{31-16} = 0b0001111000000001;
29885let hasNewValue = 1;
29886let opNewValue = 0;
29887let isCVI = 1;
29888let isHVXALU = 1;
29889let isHVXALU2SRC = 1;
29890let DecoderNamespace = "EXT_mmvec";
29891}
29892def V6_vabsb_alt : HInst<
29893(outs HvxVR:$Vd32),
29894(ins HvxVR:$Vu32),
29895"$Vd32 = vabsb($Vu32)",
29896PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29897let hasNewValue = 1;
29898let opNewValue = 0;
29899let isCVI = 1;
29900let isPseudo = 1;
29901let isCodeGenOnly = 1;
29902let DecoderNamespace = "EXT_mmvec";
29903}
29904def V6_vabsb_sat : HInst<
29905(outs HvxVR:$Vd32),
29906(ins HvxVR:$Vu32),
29907"$Vd32.b = vabs($Vu32.b):sat",
29908tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29909let Inst{7-5} = 0b101;
29910let Inst{13-13} = 0b0;
29911let Inst{31-16} = 0b0001111000000001;
29912let hasNewValue = 1;
29913let opNewValue = 0;
29914let isCVI = 1;
29915let isHVXALU = 1;
29916let isHVXALU2SRC = 1;
29917let DecoderNamespace = "EXT_mmvec";
29918}
29919def V6_vabsb_sat_alt : HInst<
29920(outs HvxVR:$Vd32),
29921(ins HvxVR:$Vu32),
29922"$Vd32 = vabsb($Vu32):sat",
29923PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29924let hasNewValue = 1;
29925let opNewValue = 0;
29926let isCVI = 1;
29927let isPseudo = 1;
29928let isCodeGenOnly = 1;
29929let DecoderNamespace = "EXT_mmvec";
29930}
29931def V6_vabsdiffh : HInst<
29932(outs HvxVR:$Vd32),
29933(ins HvxVR:$Vu32, HvxVR:$Vv32),
29934"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29935tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29936let Inst{7-5} = 0b001;
29937let Inst{13-13} = 0b0;
29938let Inst{31-21} = 0b00011100110;
29939let hasNewValue = 1;
29940let opNewValue = 0;
29941let isCVI = 1;
29942let DecoderNamespace = "EXT_mmvec";
29943}
29944def V6_vabsdiffh_alt : HInst<
29945(outs HvxVR:$Vd32),
29946(ins HvxVR:$Vu32, HvxVR:$Vv32),
29947"$Vd32 = vabsdiffh($Vu32,$Vv32)",
29948PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29949let hasNewValue = 1;
29950let opNewValue = 0;
29951let isCVI = 1;
29952let isPseudo = 1;
29953let isCodeGenOnly = 1;
29954let DecoderNamespace = "EXT_mmvec";
29955}
29956def V6_vabsdiffub : HInst<
29957(outs HvxVR:$Vd32),
29958(ins HvxVR:$Vu32, HvxVR:$Vv32),
29959"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29960tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29961let Inst{7-5} = 0b000;
29962let Inst{13-13} = 0b0;
29963let Inst{31-21} = 0b00011100110;
29964let hasNewValue = 1;
29965let opNewValue = 0;
29966let isCVI = 1;
29967let DecoderNamespace = "EXT_mmvec";
29968}
29969def V6_vabsdiffub_alt : HInst<
29970(outs HvxVR:$Vd32),
29971(ins HvxVR:$Vu32, HvxVR:$Vv32),
29972"$Vd32 = vabsdiffub($Vu32,$Vv32)",
29973PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29974let hasNewValue = 1;
29975let opNewValue = 0;
29976let isCVI = 1;
29977let isPseudo = 1;
29978let isCodeGenOnly = 1;
29979let DecoderNamespace = "EXT_mmvec";
29980}
29981def V6_vabsdiffuh : HInst<
29982(outs HvxVR:$Vd32),
29983(ins HvxVR:$Vu32, HvxVR:$Vv32),
29984"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
29985tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29986let Inst{7-5} = 0b010;
29987let Inst{13-13} = 0b0;
29988let Inst{31-21} = 0b00011100110;
29989let hasNewValue = 1;
29990let opNewValue = 0;
29991let isCVI = 1;
29992let DecoderNamespace = "EXT_mmvec";
29993}
29994def V6_vabsdiffuh_alt : HInst<
29995(outs HvxVR:$Vd32),
29996(ins HvxVR:$Vu32, HvxVR:$Vv32),
29997"$Vd32 = vabsdiffuh($Vu32,$Vv32)",
29998PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29999let hasNewValue = 1;
30000let opNewValue = 0;
30001let isCVI = 1;
30002let isPseudo = 1;
30003let isCodeGenOnly = 1;
30004let DecoderNamespace = "EXT_mmvec";
30005}
30006def V6_vabsdiffw : HInst<
30007(outs HvxVR:$Vd32),
30008(ins HvxVR:$Vu32, HvxVR:$Vv32),
30009"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
30010tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
30011let Inst{7-5} = 0b011;
30012let Inst{13-13} = 0b0;
30013let Inst{31-21} = 0b00011100110;
30014let hasNewValue = 1;
30015let opNewValue = 0;
30016let isCVI = 1;
30017let DecoderNamespace = "EXT_mmvec";
30018}
30019def V6_vabsdiffw_alt : HInst<
30020(outs HvxVR:$Vd32),
30021(ins HvxVR:$Vu32, HvxVR:$Vv32),
30022"$Vd32 = vabsdiffw($Vu32,$Vv32)",
30023PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30024let hasNewValue = 1;
30025let opNewValue = 0;
30026let isCVI = 1;
30027let isPseudo = 1;
30028let isCodeGenOnly = 1;
30029let DecoderNamespace = "EXT_mmvec";
30030}
30031def V6_vabsh : HInst<
30032(outs HvxVR:$Vd32),
30033(ins HvxVR:$Vu32),
30034"$Vd32.h = vabs($Vu32.h)",
30035tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30036let Inst{7-5} = 0b000;
30037let Inst{13-13} = 0b0;
30038let Inst{31-16} = 0b0001111000000000;
30039let hasNewValue = 1;
30040let opNewValue = 0;
30041let isCVI = 1;
30042let isHVXALU = 1;
30043let isHVXALU2SRC = 1;
30044let DecoderNamespace = "EXT_mmvec";
30045}
30046def V6_vabsh_alt : HInst<
30047(outs HvxVR:$Vd32),
30048(ins HvxVR:$Vu32),
30049"$Vd32 = vabsh($Vu32)",
30050PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30051let hasNewValue = 1;
30052let opNewValue = 0;
30053let isCVI = 1;
30054let isPseudo = 1;
30055let isCodeGenOnly = 1;
30056let DecoderNamespace = "EXT_mmvec";
30057}
30058def V6_vabsh_sat : HInst<
30059(outs HvxVR:$Vd32),
30060(ins HvxVR:$Vu32),
30061"$Vd32.h = vabs($Vu32.h):sat",
30062tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30063let Inst{7-5} = 0b001;
30064let Inst{13-13} = 0b0;
30065let Inst{31-16} = 0b0001111000000000;
30066let hasNewValue = 1;
30067let opNewValue = 0;
30068let isCVI = 1;
30069let isHVXALU = 1;
30070let isHVXALU2SRC = 1;
30071let DecoderNamespace = "EXT_mmvec";
30072}
30073def V6_vabsh_sat_alt : HInst<
30074(outs HvxVR:$Vd32),
30075(ins HvxVR:$Vu32),
30076"$Vd32 = vabsh($Vu32):sat",
30077PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30078let hasNewValue = 1;
30079let opNewValue = 0;
30080let isCVI = 1;
30081let isPseudo = 1;
30082let isCodeGenOnly = 1;
30083let DecoderNamespace = "EXT_mmvec";
30084}
30085def V6_vabsub_alt : HInst<
30086(outs HvxVR:$Vd32),
30087(ins HvxVR:$Vu32),
30088"$Vd32.ub = vabs($Vu32.b)",
30089tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30090let hasNewValue = 1;
30091let opNewValue = 0;
30092let isCVI = 1;
30093let isPseudo = 1;
30094let isCodeGenOnly = 1;
30095let DecoderNamespace = "EXT_mmvec";
30096}
30097def V6_vabsuh_alt : HInst<
30098(outs HvxVR:$Vd32),
30099(ins HvxVR:$Vu32),
30100"$Vd32.uh = vabs($Vu32.h)",
30101tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30102let hasNewValue = 1;
30103let opNewValue = 0;
30104let isCVI = 1;
30105let isPseudo = 1;
30106let isCodeGenOnly = 1;
30107let DecoderNamespace = "EXT_mmvec";
30108}
30109def V6_vabsuw_alt : HInst<
30110(outs HvxVR:$Vd32),
30111(ins HvxVR:$Vu32),
30112"$Vd32.uw = vabs($Vu32.w)",
30113tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30114let hasNewValue = 1;
30115let opNewValue = 0;
30116let isCVI = 1;
30117let isPseudo = 1;
30118let isCodeGenOnly = 1;
30119let DecoderNamespace = "EXT_mmvec";
30120}
30121def V6_vabsw : HInst<
30122(outs HvxVR:$Vd32),
30123(ins HvxVR:$Vu32),
30124"$Vd32.w = vabs($Vu32.w)",
30125tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30126let Inst{7-5} = 0b010;
30127let Inst{13-13} = 0b0;
30128let Inst{31-16} = 0b0001111000000000;
30129let hasNewValue = 1;
30130let opNewValue = 0;
30131let isCVI = 1;
30132let isHVXALU = 1;
30133let isHVXALU2SRC = 1;
30134let DecoderNamespace = "EXT_mmvec";
30135}
30136def V6_vabsw_alt : HInst<
30137(outs HvxVR:$Vd32),
30138(ins HvxVR:$Vu32),
30139"$Vd32 = vabsw($Vu32)",
30140PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30141let hasNewValue = 1;
30142let opNewValue = 0;
30143let isCVI = 1;
30144let isPseudo = 1;
30145let isCodeGenOnly = 1;
30146let DecoderNamespace = "EXT_mmvec";
30147}
30148def V6_vabsw_sat : HInst<
30149(outs HvxVR:$Vd32),
30150(ins HvxVR:$Vu32),
30151"$Vd32.w = vabs($Vu32.w):sat",
30152tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30153let Inst{7-5} = 0b011;
30154let Inst{13-13} = 0b0;
30155let Inst{31-16} = 0b0001111000000000;
30156let hasNewValue = 1;
30157let opNewValue = 0;
30158let isCVI = 1;
30159let isHVXALU = 1;
30160let isHVXALU2SRC = 1;
30161let DecoderNamespace = "EXT_mmvec";
30162}
30163def V6_vabsw_sat_alt : HInst<
30164(outs HvxVR:$Vd32),
30165(ins HvxVR:$Vu32),
30166"$Vd32 = vabsw($Vu32):sat",
30167PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30168let hasNewValue = 1;
30169let opNewValue = 0;
30170let isCVI = 1;
30171let isPseudo = 1;
30172let isCodeGenOnly = 1;
30173let DecoderNamespace = "EXT_mmvec";
30174}
30175def V6_vadd_hf : HInst<
30176(outs HvxVR:$Vd32),
30177(ins HvxVR:$Vu32, HvxVR:$Vv32),
30178"$Vd32.qf16 = vadd($Vu32.hf,$Vv32.hf)",
30179tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30180let Inst{7-5} = 0b011;
30181let Inst{13-13} = 0b1;
30182let Inst{31-21} = 0b00011111011;
30183let hasNewValue = 1;
30184let opNewValue = 0;
30185let isCVI = 1;
30186let DecoderNamespace = "EXT_mmvec";
30187}
30188def V6_vadd_hf_hf : HInst<
30189(outs HvxVR:$Vd32),
30190(ins HvxVR:$Vu32, HvxVR:$Vv32),
30191"$Vd32.hf = vadd($Vu32.hf,$Vv32.hf)",
30192tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30193let Inst{7-5} = 0b111;
30194let Inst{13-13} = 0b1;
30195let Inst{31-21} = 0b00011111101;
30196let hasNewValue = 1;
30197let opNewValue = 0;
30198let isCVI = 1;
30199let DecoderNamespace = "EXT_mmvec";
30200}
30201def V6_vadd_qf16 : HInst<
30202(outs HvxVR:$Vd32),
30203(ins HvxVR:$Vu32, HvxVR:$Vv32),
30204"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.qf16)",
30205tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30206let Inst{7-5} = 0b010;
30207let Inst{13-13} = 0b1;
30208let Inst{31-21} = 0b00011111011;
30209let hasNewValue = 1;
30210let opNewValue = 0;
30211let isCVI = 1;
30212let DecoderNamespace = "EXT_mmvec";
30213}
30214def V6_vadd_qf16_mix : HInst<
30215(outs HvxVR:$Vd32),
30216(ins HvxVR:$Vu32, HvxVR:$Vv32),
30217"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.hf)",
30218tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30219let Inst{7-5} = 0b100;
30220let Inst{13-13} = 0b1;
30221let Inst{31-21} = 0b00011111011;
30222let hasNewValue = 1;
30223let opNewValue = 0;
30224let isCVI = 1;
30225let DecoderNamespace = "EXT_mmvec";
30226}
30227def V6_vadd_qf32 : HInst<
30228(outs HvxVR:$Vd32),
30229(ins HvxVR:$Vu32, HvxVR:$Vv32),
30230"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.qf32)",
30231tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30232let Inst{7-5} = 0b000;
30233let Inst{13-13} = 0b1;
30234let Inst{31-21} = 0b00011111101;
30235let hasNewValue = 1;
30236let opNewValue = 0;
30237let isCVI = 1;
30238let DecoderNamespace = "EXT_mmvec";
30239}
30240def V6_vadd_qf32_mix : HInst<
30241(outs HvxVR:$Vd32),
30242(ins HvxVR:$Vu32, HvxVR:$Vv32),
30243"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.sf)",
30244tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30245let Inst{7-5} = 0b010;
30246let Inst{13-13} = 0b1;
30247let Inst{31-21} = 0b00011111101;
30248let hasNewValue = 1;
30249let opNewValue = 0;
30250let isCVI = 1;
30251let DecoderNamespace = "EXT_mmvec";
30252}
30253def V6_vadd_sf : HInst<
30254(outs HvxVR:$Vd32),
30255(ins HvxVR:$Vu32, HvxVR:$Vv32),
30256"$Vd32.qf32 = vadd($Vu32.sf,$Vv32.sf)",
30257tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30258let Inst{7-5} = 0b001;
30259let Inst{13-13} = 0b1;
30260let Inst{31-21} = 0b00011111101;
30261let hasNewValue = 1;
30262let opNewValue = 0;
30263let isCVI = 1;
30264let DecoderNamespace = "EXT_mmvec";
30265}
30266def V6_vadd_sf_bf : HInst<
30267(outs HvxWR:$Vdd32),
30268(ins HvxVR:$Vu32, HvxVR:$Vv32),
30269"$Vdd32.sf = vadd($Vu32.bf,$Vv32.bf)",
30270tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
30271let Inst{7-5} = 0b110;
30272let Inst{13-13} = 0b1;
30273let Inst{31-21} = 0b00011101010;
30274let hasNewValue = 1;
30275let opNewValue = 0;
30276let isCVI = 1;
30277let DecoderNamespace = "EXT_mmvec";
30278}
30279def V6_vadd_sf_hf : HInst<
30280(outs HvxWR:$Vdd32),
30281(ins HvxVR:$Vu32, HvxVR:$Vv32),
30282"$Vdd32.sf = vadd($Vu32.hf,$Vv32.hf)",
30283tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30284let Inst{7-5} = 0b100;
30285let Inst{13-13} = 0b1;
30286let Inst{31-21} = 0b00011111100;
30287let hasNewValue = 1;
30288let opNewValue = 0;
30289let isCVI = 1;
30290let DecoderNamespace = "EXT_mmvec";
30291}
30292def V6_vadd_sf_sf : HInst<
30293(outs HvxVR:$Vd32),
30294(ins HvxVR:$Vu32, HvxVR:$Vv32),
30295"$Vd32.sf = vadd($Vu32.sf,$Vv32.sf)",
30296tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30297let Inst{7-5} = 0b110;
30298let Inst{13-13} = 0b1;
30299let Inst{31-21} = 0b00011111100;
30300let hasNewValue = 1;
30301let opNewValue = 0;
30302let isCVI = 1;
30303let DecoderNamespace = "EXT_mmvec";
30304}
30305def V6_vaddb : HInst<
30306(outs HvxVR:$Vd32),
30307(ins HvxVR:$Vu32, HvxVR:$Vv32),
30308"$Vd32.b = vadd($Vu32.b,$Vv32.b)",
30309tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30310let Inst{7-5} = 0b110;
30311let Inst{13-13} = 0b0;
30312let Inst{31-21} = 0b00011111101;
30313let hasNewValue = 1;
30314let opNewValue = 0;
30315let isCVI = 1;
30316let isHVXALU = 1;
30317let isHVXALU2SRC = 1;
30318let DecoderNamespace = "EXT_mmvec";
30319}
30320def V6_vaddb_alt : HInst<
30321(outs HvxVR:$Vd32),
30322(ins HvxVR:$Vu32, HvxVR:$Vv32),
30323"$Vd32 = vaddb($Vu32,$Vv32)",
30324PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30325let hasNewValue = 1;
30326let opNewValue = 0;
30327let isCVI = 1;
30328let isPseudo = 1;
30329let isCodeGenOnly = 1;
30330let DecoderNamespace = "EXT_mmvec";
30331}
30332def V6_vaddb_dv : HInst<
30333(outs HvxWR:$Vdd32),
30334(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30335"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
30336tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30337let Inst{7-5} = 0b100;
30338let Inst{13-13} = 0b0;
30339let Inst{31-21} = 0b00011100011;
30340let hasNewValue = 1;
30341let opNewValue = 0;
30342let isCVI = 1;
30343let DecoderNamespace = "EXT_mmvec";
30344}
30345def V6_vaddb_dv_alt : HInst<
30346(outs HvxWR:$Vdd32),
30347(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30348"$Vdd32 = vaddb($Vuu32,$Vvv32)",
30349PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30350let hasNewValue = 1;
30351let opNewValue = 0;
30352let isCVI = 1;
30353let isPseudo = 1;
30354let isCodeGenOnly = 1;
30355let DecoderNamespace = "EXT_mmvec";
30356}
30357def V6_vaddbnq : HInst<
30358(outs HvxVR:$Vx32),
30359(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30360"if (!$Qv4) $Vx32.b += $Vu32.b",
30361tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30362let Inst{7-5} = 0b011;
30363let Inst{13-13} = 0b1;
30364let Inst{21-16} = 0b000001;
30365let Inst{31-24} = 0b00011110;
30366let hasNewValue = 1;
30367let opNewValue = 0;
30368let isAccumulator = 1;
30369let isCVI = 1;
30370let isHVXALU = 1;
30371let isHVXALU2SRC = 1;
30372let DecoderNamespace = "EXT_mmvec";
30373let Constraints = "$Vx32 = $Vx32in";
30374}
30375def V6_vaddbnq_alt : HInst<
30376(outs HvxVR:$Vx32),
30377(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30378"if (!$Qv4.b) $Vx32.b += $Vu32.b",
30379PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30380let hasNewValue = 1;
30381let opNewValue = 0;
30382let isAccumulator = 1;
30383let isCVI = 1;
30384let isPseudo = 1;
30385let isCodeGenOnly = 1;
30386let DecoderNamespace = "EXT_mmvec";
30387let Constraints = "$Vx32 = $Vx32in";
30388}
30389def V6_vaddbq : HInst<
30390(outs HvxVR:$Vx32),
30391(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30392"if ($Qv4) $Vx32.b += $Vu32.b",
30393tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30394let Inst{7-5} = 0b000;
30395let Inst{13-13} = 0b1;
30396let Inst{21-16} = 0b000001;
30397let Inst{31-24} = 0b00011110;
30398let hasNewValue = 1;
30399let opNewValue = 0;
30400let isAccumulator = 1;
30401let isCVI = 1;
30402let isHVXALU = 1;
30403let isHVXALU2SRC = 1;
30404let DecoderNamespace = "EXT_mmvec";
30405let Constraints = "$Vx32 = $Vx32in";
30406}
30407def V6_vaddbq_alt : HInst<
30408(outs HvxVR:$Vx32),
30409(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30410"if ($Qv4.b) $Vx32.b += $Vu32.b",
30411PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30412let hasNewValue = 1;
30413let opNewValue = 0;
30414let isAccumulator = 1;
30415let isCVI = 1;
30416let isPseudo = 1;
30417let isCodeGenOnly = 1;
30418let DecoderNamespace = "EXT_mmvec";
30419let Constraints = "$Vx32 = $Vx32in";
30420}
30421def V6_vaddbsat : HInst<
30422(outs HvxVR:$Vd32),
30423(ins HvxVR:$Vu32, HvxVR:$Vv32),
30424"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
30425tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30426let Inst{7-5} = 0b000;
30427let Inst{13-13} = 0b0;
30428let Inst{31-21} = 0b00011111000;
30429let hasNewValue = 1;
30430let opNewValue = 0;
30431let isCVI = 1;
30432let isHVXALU = 1;
30433let isHVXALU2SRC = 1;
30434let DecoderNamespace = "EXT_mmvec";
30435}
30436def V6_vaddbsat_alt : HInst<
30437(outs HvxVR:$Vd32),
30438(ins HvxVR:$Vu32, HvxVR:$Vv32),
30439"$Vd32 = vaddb($Vu32,$Vv32):sat",
30440PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30441let hasNewValue = 1;
30442let opNewValue = 0;
30443let isCVI = 1;
30444let isPseudo = 1;
30445let isCodeGenOnly = 1;
30446let DecoderNamespace = "EXT_mmvec";
30447}
30448def V6_vaddbsat_dv : HInst<
30449(outs HvxWR:$Vdd32),
30450(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30451"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
30452tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30453let Inst{7-5} = 0b000;
30454let Inst{13-13} = 0b0;
30455let Inst{31-21} = 0b00011110101;
30456let hasNewValue = 1;
30457let opNewValue = 0;
30458let isCVI = 1;
30459let DecoderNamespace = "EXT_mmvec";
30460}
30461def V6_vaddbsat_dv_alt : HInst<
30462(outs HvxWR:$Vdd32),
30463(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30464"$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
30465PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30466let hasNewValue = 1;
30467let opNewValue = 0;
30468let isCVI = 1;
30469let isPseudo = 1;
30470let isCodeGenOnly = 1;
30471let DecoderNamespace = "EXT_mmvec";
30472}
30473def V6_vaddcarry : HInst<
30474(outs HvxVR:$Vd32, HvxQR:$Qx4),
30475(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
30476"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
30477tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
30478let Inst{7-7} = 0b0;
30479let Inst{13-13} = 0b1;
30480let Inst{31-21} = 0b00011100101;
30481let hasNewValue = 1;
30482let opNewValue = 0;
30483let isCVI = 1;
30484let isHVXALU = 1;
30485let isHVXALU2SRC = 1;
30486let DecoderNamespace = "EXT_mmvec";
30487let Constraints = "$Qx4 = $Qx4in";
30488}
30489def V6_vaddcarryo : HInst<
30490(outs HvxVR:$Vd32, HvxQR:$Qe4),
30491(ins HvxVR:$Vu32, HvxVR:$Vv32),
30492"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
30493tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
30494let Inst{7-7} = 0b0;
30495let Inst{13-13} = 0b1;
30496let Inst{31-21} = 0b00011101101;
30497let hasNewValue = 1;
30498let opNewValue = 0;
30499let isCVI = 1;
30500let isHVXALU = 1;
30501let isHVXALU2SRC = 1;
30502let DecoderNamespace = "EXT_mmvec";
30503}
30504def V6_vaddcarrysat : HInst<
30505(outs HvxVR:$Vd32),
30506(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
30507"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
30508tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
30509let Inst{7-7} = 0b0;
30510let Inst{13-13} = 0b1;
30511let Inst{31-21} = 0b00011101100;
30512let hasNewValue = 1;
30513let opNewValue = 0;
30514let isCVI = 1;
30515let isHVXALU = 1;
30516let isHVXALU2SRC = 1;
30517let DecoderNamespace = "EXT_mmvec";
30518}
30519def V6_vaddclbh : HInst<
30520(outs HvxVR:$Vd32),
30521(ins HvxVR:$Vu32, HvxVR:$Vv32),
30522"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
30523tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30524let Inst{7-5} = 0b000;
30525let Inst{13-13} = 0b1;
30526let Inst{31-21} = 0b00011111000;
30527let hasNewValue = 1;
30528let opNewValue = 0;
30529let isCVI = 1;
30530let DecoderNamespace = "EXT_mmvec";
30531}
30532def V6_vaddclbw : HInst<
30533(outs HvxVR:$Vd32),
30534(ins HvxVR:$Vu32, HvxVR:$Vv32),
30535"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
30536tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30537let Inst{7-5} = 0b001;
30538let Inst{13-13} = 0b1;
30539let Inst{31-21} = 0b00011111000;
30540let hasNewValue = 1;
30541let opNewValue = 0;
30542let isCVI = 1;
30543let DecoderNamespace = "EXT_mmvec";
30544}
30545def V6_vaddh : HInst<
30546(outs HvxVR:$Vd32),
30547(ins HvxVR:$Vu32, HvxVR:$Vv32),
30548"$Vd32.h = vadd($Vu32.h,$Vv32.h)",
30549tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30550let Inst{7-5} = 0b111;
30551let Inst{13-13} = 0b0;
30552let Inst{31-21} = 0b00011111101;
30553let hasNewValue = 1;
30554let opNewValue = 0;
30555let isCVI = 1;
30556let isHVXALU = 1;
30557let isHVXALU2SRC = 1;
30558let DecoderNamespace = "EXT_mmvec";
30559}
30560def V6_vaddh_alt : HInst<
30561(outs HvxVR:$Vd32),
30562(ins HvxVR:$Vu32, HvxVR:$Vv32),
30563"$Vd32 = vaddh($Vu32,$Vv32)",
30564PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30565let hasNewValue = 1;
30566let opNewValue = 0;
30567let isCVI = 1;
30568let isPseudo = 1;
30569let isCodeGenOnly = 1;
30570let DecoderNamespace = "EXT_mmvec";
30571}
30572def V6_vaddh_dv : HInst<
30573(outs HvxWR:$Vdd32),
30574(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30575"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
30576tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30577let Inst{7-5} = 0b101;
30578let Inst{13-13} = 0b0;
30579let Inst{31-21} = 0b00011100011;
30580let hasNewValue = 1;
30581let opNewValue = 0;
30582let isCVI = 1;
30583let DecoderNamespace = "EXT_mmvec";
30584}
30585def V6_vaddh_dv_alt : HInst<
30586(outs HvxWR:$Vdd32),
30587(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30588"$Vdd32 = vaddh($Vuu32,$Vvv32)",
30589PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30590let hasNewValue = 1;
30591let opNewValue = 0;
30592let isCVI = 1;
30593let isPseudo = 1;
30594let isCodeGenOnly = 1;
30595let DecoderNamespace = "EXT_mmvec";
30596}
30597def V6_vaddhnq : HInst<
30598(outs HvxVR:$Vx32),
30599(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30600"if (!$Qv4) $Vx32.h += $Vu32.h",
30601tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30602let Inst{7-5} = 0b100;
30603let Inst{13-13} = 0b1;
30604let Inst{21-16} = 0b000001;
30605let Inst{31-24} = 0b00011110;
30606let hasNewValue = 1;
30607let opNewValue = 0;
30608let isAccumulator = 1;
30609let isCVI = 1;
30610let isHVXALU = 1;
30611let isHVXALU2SRC = 1;
30612let DecoderNamespace = "EXT_mmvec";
30613let Constraints = "$Vx32 = $Vx32in";
30614}
30615def V6_vaddhnq_alt : HInst<
30616(outs HvxVR:$Vx32),
30617(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30618"if (!$Qv4.h) $Vx32.h += $Vu32.h",
30619PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30620let hasNewValue = 1;
30621let opNewValue = 0;
30622let isAccumulator = 1;
30623let isCVI = 1;
30624let isPseudo = 1;
30625let isCodeGenOnly = 1;
30626let DecoderNamespace = "EXT_mmvec";
30627let Constraints = "$Vx32 = $Vx32in";
30628}
30629def V6_vaddhq : HInst<
30630(outs HvxVR:$Vx32),
30631(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30632"if ($Qv4) $Vx32.h += $Vu32.h",
30633tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30634let Inst{7-5} = 0b001;
30635let Inst{13-13} = 0b1;
30636let Inst{21-16} = 0b000001;
30637let Inst{31-24} = 0b00011110;
30638let hasNewValue = 1;
30639let opNewValue = 0;
30640let isAccumulator = 1;
30641let isCVI = 1;
30642let isHVXALU = 1;
30643let isHVXALU2SRC = 1;
30644let DecoderNamespace = "EXT_mmvec";
30645let Constraints = "$Vx32 = $Vx32in";
30646}
30647def V6_vaddhq_alt : HInst<
30648(outs HvxVR:$Vx32),
30649(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30650"if ($Qv4.h) $Vx32.h += $Vu32.h",
30651PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30652let hasNewValue = 1;
30653let opNewValue = 0;
30654let isAccumulator = 1;
30655let isCVI = 1;
30656let isPseudo = 1;
30657let isCodeGenOnly = 1;
30658let DecoderNamespace = "EXT_mmvec";
30659let Constraints = "$Vx32 = $Vx32in";
30660}
30661def V6_vaddhsat : HInst<
30662(outs HvxVR:$Vd32),
30663(ins HvxVR:$Vu32, HvxVR:$Vv32),
30664"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
30665tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30666let Inst{7-5} = 0b011;
30667let Inst{13-13} = 0b0;
30668let Inst{31-21} = 0b00011100010;
30669let hasNewValue = 1;
30670let opNewValue = 0;
30671let isCVI = 1;
30672let isHVXALU = 1;
30673let isHVXALU2SRC = 1;
30674let DecoderNamespace = "EXT_mmvec";
30675}
30676def V6_vaddhsat_alt : HInst<
30677(outs HvxVR:$Vd32),
30678(ins HvxVR:$Vu32, HvxVR:$Vv32),
30679"$Vd32 = vaddh($Vu32,$Vv32):sat",
30680PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30681let hasNewValue = 1;
30682let opNewValue = 0;
30683let isCVI = 1;
30684let isPseudo = 1;
30685let isCodeGenOnly = 1;
30686let DecoderNamespace = "EXT_mmvec";
30687}
30688def V6_vaddhsat_dv : HInst<
30689(outs HvxWR:$Vdd32),
30690(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30691"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
30692tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30693let Inst{7-5} = 0b001;
30694let Inst{13-13} = 0b0;
30695let Inst{31-21} = 0b00011100100;
30696let hasNewValue = 1;
30697let opNewValue = 0;
30698let isCVI = 1;
30699let DecoderNamespace = "EXT_mmvec";
30700}
30701def V6_vaddhsat_dv_alt : HInst<
30702(outs HvxWR:$Vdd32),
30703(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30704"$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
30705PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30706let hasNewValue = 1;
30707let opNewValue = 0;
30708let isCVI = 1;
30709let isPseudo = 1;
30710let isCodeGenOnly = 1;
30711let DecoderNamespace = "EXT_mmvec";
30712}
30713def V6_vaddhw : HInst<
30714(outs HvxWR:$Vdd32),
30715(ins HvxVR:$Vu32, HvxVR:$Vv32),
30716"$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
30717tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30718let Inst{7-5} = 0b100;
30719let Inst{13-13} = 0b0;
30720let Inst{31-21} = 0b00011100101;
30721let hasNewValue = 1;
30722let opNewValue = 0;
30723let isCVI = 1;
30724let DecoderNamespace = "EXT_mmvec";
30725}
30726def V6_vaddhw_acc : HInst<
30727(outs HvxWR:$Vxx32),
30728(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30729"$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
30730tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30731let Inst{7-5} = 0b010;
30732let Inst{13-13} = 0b1;
30733let Inst{31-21} = 0b00011100001;
30734let hasNewValue = 1;
30735let opNewValue = 0;
30736let isAccumulator = 1;
30737let isCVI = 1;
30738let DecoderNamespace = "EXT_mmvec";
30739let Constraints = "$Vxx32 = $Vxx32in";
30740}
30741def V6_vaddhw_acc_alt : HInst<
30742(outs HvxWR:$Vxx32),
30743(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30744"$Vxx32 += vaddh($Vu32,$Vv32)",
30745PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30746let hasNewValue = 1;
30747let opNewValue = 0;
30748let isAccumulator = 1;
30749let isCVI = 1;
30750let isPseudo = 1;
30751let isCodeGenOnly = 1;
30752let DecoderNamespace = "EXT_mmvec";
30753let Constraints = "$Vxx32 = $Vxx32in";
30754}
30755def V6_vaddhw_alt : HInst<
30756(outs HvxWR:$Vdd32),
30757(ins HvxVR:$Vu32, HvxVR:$Vv32),
30758"$Vdd32 = vaddh($Vu32,$Vv32)",
30759PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30760let hasNewValue = 1;
30761let opNewValue = 0;
30762let isCVI = 1;
30763let isPseudo = 1;
30764let isCodeGenOnly = 1;
30765let DecoderNamespace = "EXT_mmvec";
30766}
30767def V6_vaddubh : HInst<
30768(outs HvxWR:$Vdd32),
30769(ins HvxVR:$Vu32, HvxVR:$Vv32),
30770"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
30771tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30772let Inst{7-5} = 0b010;
30773let Inst{13-13} = 0b0;
30774let Inst{31-21} = 0b00011100101;
30775let hasNewValue = 1;
30776let opNewValue = 0;
30777let isCVI = 1;
30778let DecoderNamespace = "EXT_mmvec";
30779}
30780def V6_vaddubh_acc : HInst<
30781(outs HvxWR:$Vxx32),
30782(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30783"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
30784tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30785let Inst{7-5} = 0b101;
30786let Inst{13-13} = 0b1;
30787let Inst{31-21} = 0b00011100010;
30788let hasNewValue = 1;
30789let opNewValue = 0;
30790let isAccumulator = 1;
30791let isCVI = 1;
30792let DecoderNamespace = "EXT_mmvec";
30793let Constraints = "$Vxx32 = $Vxx32in";
30794}
30795def V6_vaddubh_acc_alt : HInst<
30796(outs HvxWR:$Vxx32),
30797(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30798"$Vxx32 += vaddub($Vu32,$Vv32)",
30799PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30800let hasNewValue = 1;
30801let opNewValue = 0;
30802let isAccumulator = 1;
30803let isCVI = 1;
30804let isPseudo = 1;
30805let isCodeGenOnly = 1;
30806let DecoderNamespace = "EXT_mmvec";
30807let Constraints = "$Vxx32 = $Vxx32in";
30808}
30809def V6_vaddubh_alt : HInst<
30810(outs HvxWR:$Vdd32),
30811(ins HvxVR:$Vu32, HvxVR:$Vv32),
30812"$Vdd32 = vaddub($Vu32,$Vv32)",
30813PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30814let hasNewValue = 1;
30815let opNewValue = 0;
30816let isCVI = 1;
30817let isPseudo = 1;
30818let isCodeGenOnly = 1;
30819let DecoderNamespace = "EXT_mmvec";
30820}
30821def V6_vaddubsat : HInst<
30822(outs HvxVR:$Vd32),
30823(ins HvxVR:$Vu32, HvxVR:$Vv32),
30824"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
30825tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30826let Inst{7-5} = 0b001;
30827let Inst{13-13} = 0b0;
30828let Inst{31-21} = 0b00011100010;
30829let hasNewValue = 1;
30830let opNewValue = 0;
30831let isCVI = 1;
30832let isHVXALU = 1;
30833let isHVXALU2SRC = 1;
30834let DecoderNamespace = "EXT_mmvec";
30835}
30836def V6_vaddubsat_alt : HInst<
30837(outs HvxVR:$Vd32),
30838(ins HvxVR:$Vu32, HvxVR:$Vv32),
30839"$Vd32 = vaddub($Vu32,$Vv32):sat",
30840PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30841let hasNewValue = 1;
30842let opNewValue = 0;
30843let isCVI = 1;
30844let isPseudo = 1;
30845let isCodeGenOnly = 1;
30846let DecoderNamespace = "EXT_mmvec";
30847}
30848def V6_vaddubsat_dv : HInst<
30849(outs HvxWR:$Vdd32),
30850(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30851"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
30852tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30853let Inst{7-5} = 0b111;
30854let Inst{13-13} = 0b0;
30855let Inst{31-21} = 0b00011100011;
30856let hasNewValue = 1;
30857let opNewValue = 0;
30858let isCVI = 1;
30859let DecoderNamespace = "EXT_mmvec";
30860}
30861def V6_vaddubsat_dv_alt : HInst<
30862(outs HvxWR:$Vdd32),
30863(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30864"$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
30865PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30866let hasNewValue = 1;
30867let opNewValue = 0;
30868let isCVI = 1;
30869let isPseudo = 1;
30870let isCodeGenOnly = 1;
30871let DecoderNamespace = "EXT_mmvec";
30872}
30873def V6_vaddububb_sat : HInst<
30874(outs HvxVR:$Vd32),
30875(ins HvxVR:$Vu32, HvxVR:$Vv32),
30876"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
30877tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30878let Inst{7-5} = 0b100;
30879let Inst{13-13} = 0b0;
30880let Inst{31-21} = 0b00011110101;
30881let hasNewValue = 1;
30882let opNewValue = 0;
30883let isCVI = 1;
30884let isHVXALU = 1;
30885let isHVXALU2SRC = 1;
30886let DecoderNamespace = "EXT_mmvec";
30887}
30888def V6_vadduhsat : HInst<
30889(outs HvxVR:$Vd32),
30890(ins HvxVR:$Vu32, HvxVR:$Vv32),
30891"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
30892tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30893let Inst{7-5} = 0b010;
30894let Inst{13-13} = 0b0;
30895let Inst{31-21} = 0b00011100010;
30896let hasNewValue = 1;
30897let opNewValue = 0;
30898let isCVI = 1;
30899let isHVXALU = 1;
30900let isHVXALU2SRC = 1;
30901let DecoderNamespace = "EXT_mmvec";
30902}
30903def V6_vadduhsat_alt : HInst<
30904(outs HvxVR:$Vd32),
30905(ins HvxVR:$Vu32, HvxVR:$Vv32),
30906"$Vd32 = vadduh($Vu32,$Vv32):sat",
30907PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30908let hasNewValue = 1;
30909let opNewValue = 0;
30910let isCVI = 1;
30911let isPseudo = 1;
30912let isCodeGenOnly = 1;
30913let DecoderNamespace = "EXT_mmvec";
30914}
30915def V6_vadduhsat_dv : HInst<
30916(outs HvxWR:$Vdd32),
30917(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30918"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
30919tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30920let Inst{7-5} = 0b000;
30921let Inst{13-13} = 0b0;
30922let Inst{31-21} = 0b00011100100;
30923let hasNewValue = 1;
30924let opNewValue = 0;
30925let isCVI = 1;
30926let DecoderNamespace = "EXT_mmvec";
30927}
30928def V6_vadduhsat_dv_alt : HInst<
30929(outs HvxWR:$Vdd32),
30930(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30931"$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
30932PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30933let hasNewValue = 1;
30934let opNewValue = 0;
30935let isCVI = 1;
30936let isPseudo = 1;
30937let isCodeGenOnly = 1;
30938let DecoderNamespace = "EXT_mmvec";
30939}
30940def V6_vadduhw : HInst<
30941(outs HvxWR:$Vdd32),
30942(ins HvxVR:$Vu32, HvxVR:$Vv32),
30943"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
30944tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30945let Inst{7-5} = 0b011;
30946let Inst{13-13} = 0b0;
30947let Inst{31-21} = 0b00011100101;
30948let hasNewValue = 1;
30949let opNewValue = 0;
30950let isCVI = 1;
30951let DecoderNamespace = "EXT_mmvec";
30952}
30953def V6_vadduhw_acc : HInst<
30954(outs HvxWR:$Vxx32),
30955(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30956"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
30957tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30958let Inst{7-5} = 0b100;
30959let Inst{13-13} = 0b1;
30960let Inst{31-21} = 0b00011100010;
30961let hasNewValue = 1;
30962let opNewValue = 0;
30963let isAccumulator = 1;
30964let isCVI = 1;
30965let DecoderNamespace = "EXT_mmvec";
30966let Constraints = "$Vxx32 = $Vxx32in";
30967}
30968def V6_vadduhw_acc_alt : HInst<
30969(outs HvxWR:$Vxx32),
30970(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30971"$Vxx32 += vadduh($Vu32,$Vv32)",
30972PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30973let hasNewValue = 1;
30974let opNewValue = 0;
30975let isAccumulator = 1;
30976let isCVI = 1;
30977let isPseudo = 1;
30978let isCodeGenOnly = 1;
30979let DecoderNamespace = "EXT_mmvec";
30980let Constraints = "$Vxx32 = $Vxx32in";
30981}
30982def V6_vadduhw_alt : HInst<
30983(outs HvxWR:$Vdd32),
30984(ins HvxVR:$Vu32, HvxVR:$Vv32),
30985"$Vdd32 = vadduh($Vu32,$Vv32)",
30986PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30987let hasNewValue = 1;
30988let opNewValue = 0;
30989let isCVI = 1;
30990let isPseudo = 1;
30991let isCodeGenOnly = 1;
30992let DecoderNamespace = "EXT_mmvec";
30993}
30994def V6_vadduwsat : HInst<
30995(outs HvxVR:$Vd32),
30996(ins HvxVR:$Vu32, HvxVR:$Vv32),
30997"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
30998tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30999let Inst{7-5} = 0b001;
31000let Inst{13-13} = 0b0;
31001let Inst{31-21} = 0b00011111011;
31002let hasNewValue = 1;
31003let opNewValue = 0;
31004let isCVI = 1;
31005let isHVXALU = 1;
31006let isHVXALU2SRC = 1;
31007let DecoderNamespace = "EXT_mmvec";
31008}
31009def V6_vadduwsat_alt : HInst<
31010(outs HvxVR:$Vd32),
31011(ins HvxVR:$Vu32, HvxVR:$Vv32),
31012"$Vd32 = vadduw($Vu32,$Vv32):sat",
31013PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31014let hasNewValue = 1;
31015let opNewValue = 0;
31016let isCVI = 1;
31017let isPseudo = 1;
31018let isCodeGenOnly = 1;
31019let DecoderNamespace = "EXT_mmvec";
31020}
31021def V6_vadduwsat_dv : HInst<
31022(outs HvxWR:$Vdd32),
31023(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31024"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
31025tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
31026let Inst{7-5} = 0b010;
31027let Inst{13-13} = 0b0;
31028let Inst{31-21} = 0b00011110101;
31029let hasNewValue = 1;
31030let opNewValue = 0;
31031let isCVI = 1;
31032let DecoderNamespace = "EXT_mmvec";
31033}
31034def V6_vadduwsat_dv_alt : HInst<
31035(outs HvxWR:$Vdd32),
31036(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31037"$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
31038PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31039let hasNewValue = 1;
31040let opNewValue = 0;
31041let isCVI = 1;
31042let isPseudo = 1;
31043let isCodeGenOnly = 1;
31044let DecoderNamespace = "EXT_mmvec";
31045}
31046def V6_vaddw : HInst<
31047(outs HvxVR:$Vd32),
31048(ins HvxVR:$Vu32, HvxVR:$Vv32),
31049"$Vd32.w = vadd($Vu32.w,$Vv32.w)",
31050tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31051let Inst{7-5} = 0b000;
31052let Inst{13-13} = 0b0;
31053let Inst{31-21} = 0b00011100010;
31054let hasNewValue = 1;
31055let opNewValue = 0;
31056let isCVI = 1;
31057let isHVXALU = 1;
31058let isHVXALU2SRC = 1;
31059let DecoderNamespace = "EXT_mmvec";
31060}
31061def V6_vaddw_alt : HInst<
31062(outs HvxVR:$Vd32),
31063(ins HvxVR:$Vu32, HvxVR:$Vv32),
31064"$Vd32 = vaddw($Vu32,$Vv32)",
31065PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31066let hasNewValue = 1;
31067let opNewValue = 0;
31068let isCVI = 1;
31069let isPseudo = 1;
31070let isCodeGenOnly = 1;
31071let DecoderNamespace = "EXT_mmvec";
31072}
31073def V6_vaddw_dv : HInst<
31074(outs HvxWR:$Vdd32),
31075(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31076"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
31077tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
31078let Inst{7-5} = 0b110;
31079let Inst{13-13} = 0b0;
31080let Inst{31-21} = 0b00011100011;
31081let hasNewValue = 1;
31082let opNewValue = 0;
31083let isCVI = 1;
31084let DecoderNamespace = "EXT_mmvec";
31085}
31086def V6_vaddw_dv_alt : HInst<
31087(outs HvxWR:$Vdd32),
31088(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31089"$Vdd32 = vaddw($Vuu32,$Vvv32)",
31090PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31091let hasNewValue = 1;
31092let opNewValue = 0;
31093let isCVI = 1;
31094let isPseudo = 1;
31095let isCodeGenOnly = 1;
31096let DecoderNamespace = "EXT_mmvec";
31097}
31098def V6_vaddwnq : HInst<
31099(outs HvxVR:$Vx32),
31100(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31101"if (!$Qv4) $Vx32.w += $Vu32.w",
31102tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
31103let Inst{7-5} = 0b101;
31104let Inst{13-13} = 0b1;
31105let Inst{21-16} = 0b000001;
31106let Inst{31-24} = 0b00011110;
31107let hasNewValue = 1;
31108let opNewValue = 0;
31109let isAccumulator = 1;
31110let isCVI = 1;
31111let isHVXALU = 1;
31112let isHVXALU2SRC = 1;
31113let DecoderNamespace = "EXT_mmvec";
31114let Constraints = "$Vx32 = $Vx32in";
31115}
31116def V6_vaddwnq_alt : HInst<
31117(outs HvxVR:$Vx32),
31118(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31119"if (!$Qv4.w) $Vx32.w += $Vu32.w",
31120PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31121let hasNewValue = 1;
31122let opNewValue = 0;
31123let isAccumulator = 1;
31124let isCVI = 1;
31125let isPseudo = 1;
31126let isCodeGenOnly = 1;
31127let DecoderNamespace = "EXT_mmvec";
31128let Constraints = "$Vx32 = $Vx32in";
31129}
31130def V6_vaddwq : HInst<
31131(outs HvxVR:$Vx32),
31132(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31133"if ($Qv4) $Vx32.w += $Vu32.w",
31134tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
31135let Inst{7-5} = 0b010;
31136let Inst{13-13} = 0b1;
31137let Inst{21-16} = 0b000001;
31138let Inst{31-24} = 0b00011110;
31139let hasNewValue = 1;
31140let opNewValue = 0;
31141let isAccumulator = 1;
31142let isCVI = 1;
31143let isHVXALU = 1;
31144let isHVXALU2SRC = 1;
31145let DecoderNamespace = "EXT_mmvec";
31146let Constraints = "$Vx32 = $Vx32in";
31147}
31148def V6_vaddwq_alt : HInst<
31149(outs HvxVR:$Vx32),
31150(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31151"if ($Qv4.w) $Vx32.w += $Vu32.w",
31152PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31153let hasNewValue = 1;
31154let opNewValue = 0;
31155let isAccumulator = 1;
31156let isCVI = 1;
31157let isPseudo = 1;
31158let isCodeGenOnly = 1;
31159let DecoderNamespace = "EXT_mmvec";
31160let Constraints = "$Vx32 = $Vx32in";
31161}
31162def V6_vaddwsat : HInst<
31163(outs HvxVR:$Vd32),
31164(ins HvxVR:$Vu32, HvxVR:$Vv32),
31165"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
31166tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31167let Inst{7-5} = 0b100;
31168let Inst{13-13} = 0b0;
31169let Inst{31-21} = 0b00011100010;
31170let hasNewValue = 1;
31171let opNewValue = 0;
31172let isCVI = 1;
31173let isHVXALU = 1;
31174let isHVXALU2SRC = 1;
31175let DecoderNamespace = "EXT_mmvec";
31176}
31177def V6_vaddwsat_alt : HInst<
31178(outs HvxVR:$Vd32),
31179(ins HvxVR:$Vu32, HvxVR:$Vv32),
31180"$Vd32 = vaddw($Vu32,$Vv32):sat",
31181PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31182let hasNewValue = 1;
31183let opNewValue = 0;
31184let isCVI = 1;
31185let isPseudo = 1;
31186let isCodeGenOnly = 1;
31187let DecoderNamespace = "EXT_mmvec";
31188}
31189def V6_vaddwsat_dv : HInst<
31190(outs HvxWR:$Vdd32),
31191(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31192"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
31193tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
31194let Inst{7-5} = 0b010;
31195let Inst{13-13} = 0b0;
31196let Inst{31-21} = 0b00011100100;
31197let hasNewValue = 1;
31198let opNewValue = 0;
31199let isCVI = 1;
31200let DecoderNamespace = "EXT_mmvec";
31201}
31202def V6_vaddwsat_dv_alt : HInst<
31203(outs HvxWR:$Vdd32),
31204(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31205"$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
31206PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31207let hasNewValue = 1;
31208let opNewValue = 0;
31209let isCVI = 1;
31210let isPseudo = 1;
31211let isCodeGenOnly = 1;
31212let DecoderNamespace = "EXT_mmvec";
31213}
31214def V6_valignb : HInst<
31215(outs HvxVR:$Vd32),
31216(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31217"$Vd32 = valign($Vu32,$Vv32,$Rt8)",
31218tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
31219let Inst{7-5} = 0b000;
31220let Inst{13-13} = 0b0;
31221let Inst{31-24} = 0b00011011;
31222let hasNewValue = 1;
31223let opNewValue = 0;
31224let isCVI = 1;
31225let DecoderNamespace = "EXT_mmvec";
31226}
31227def V6_valignbi : HInst<
31228(outs HvxVR:$Vd32),
31229(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
31230"$Vd32 = valign($Vu32,$Vv32,#$Ii)",
31231tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
31232let Inst{13-13} = 0b1;
31233let Inst{31-21} = 0b00011110001;
31234let hasNewValue = 1;
31235let opNewValue = 0;
31236let isCVI = 1;
31237let DecoderNamespace = "EXT_mmvec";
31238}
31239def V6_vand : HInst<
31240(outs HvxVR:$Vd32),
31241(ins HvxVR:$Vu32, HvxVR:$Vv32),
31242"$Vd32 = vand($Vu32,$Vv32)",
31243tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31244let Inst{7-5} = 0b101;
31245let Inst{13-13} = 0b0;
31246let Inst{31-21} = 0b00011100001;
31247let hasNewValue = 1;
31248let opNewValue = 0;
31249let isCVI = 1;
31250let isHVXALU = 1;
31251let isHVXALU2SRC = 1;
31252let DecoderNamespace = "EXT_mmvec";
31253}
31254def V6_vandnqrt : HInst<
31255(outs HvxVR:$Vd32),
31256(ins HvxQR:$Qu4, IntRegs:$Rt32),
31257"$Vd32 = vand(!$Qu4,$Rt32)",
31258tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> {
31259let Inst{7-5} = 0b101;
31260let Inst{13-10} = 0b0001;
31261let Inst{31-21} = 0b00011001101;
31262let hasNewValue = 1;
31263let opNewValue = 0;
31264let isCVI = 1;
31265let DecoderNamespace = "EXT_mmvec";
31266}
31267def V6_vandnqrt_acc : HInst<
31268(outs HvxVR:$Vx32),
31269(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31270"$Vx32 |= vand(!$Qu4,$Rt32)",
31271tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> {
31272let Inst{7-5} = 0b011;
31273let Inst{13-10} = 0b1001;
31274let Inst{31-21} = 0b00011001011;
31275let hasNewValue = 1;
31276let opNewValue = 0;
31277let isAccumulator = 1;
31278let isCVI = 1;
31279let DecoderNamespace = "EXT_mmvec";
31280let Constraints = "$Vx32 = $Vx32in";
31281}
31282def V6_vandnqrt_acc_alt : HInst<
31283(outs HvxVR:$Vx32),
31284(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31285"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
31286PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31287let hasNewValue = 1;
31288let opNewValue = 0;
31289let isAccumulator = 1;
31290let isCVI = 1;
31291let isPseudo = 1;
31292let isCodeGenOnly = 1;
31293let DecoderNamespace = "EXT_mmvec";
31294let Constraints = "$Vx32 = $Vx32in";
31295}
31296def V6_vandnqrt_alt : HInst<
31297(outs HvxVR:$Vd32),
31298(ins HvxQR:$Qu4, IntRegs:$Rt32),
31299"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
31300PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31301let hasNewValue = 1;
31302let opNewValue = 0;
31303let isCVI = 1;
31304let isPseudo = 1;
31305let isCodeGenOnly = 1;
31306let DecoderNamespace = "EXT_mmvec";
31307}
31308def V6_vandqrt : HInst<
31309(outs HvxVR:$Vd32),
31310(ins HvxQR:$Qu4, IntRegs:$Rt32),
31311"$Vd32 = vand($Qu4,$Rt32)",
31312tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
31313let Inst{7-5} = 0b101;
31314let Inst{13-10} = 0b0000;
31315let Inst{31-21} = 0b00011001101;
31316let hasNewValue = 1;
31317let opNewValue = 0;
31318let isCVI = 1;
31319let DecoderNamespace = "EXT_mmvec";
31320}
31321def V6_vandqrt_acc : HInst<
31322(outs HvxVR:$Vx32),
31323(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31324"$Vx32 |= vand($Qu4,$Rt32)",
31325tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
31326let Inst{7-5} = 0b011;
31327let Inst{13-10} = 0b1000;
31328let Inst{31-21} = 0b00011001011;
31329let hasNewValue = 1;
31330let opNewValue = 0;
31331let isAccumulator = 1;
31332let isCVI = 1;
31333let DecoderNamespace = "EXT_mmvec";
31334let Constraints = "$Vx32 = $Vx32in";
31335}
31336def V6_vandqrt_acc_alt : HInst<
31337(outs HvxVR:$Vx32),
31338(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31339"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
31340PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31341let hasNewValue = 1;
31342let opNewValue = 0;
31343let isAccumulator = 1;
31344let isCVI = 1;
31345let isPseudo = 1;
31346let isCodeGenOnly = 1;
31347let DecoderNamespace = "EXT_mmvec";
31348let Constraints = "$Vx32 = $Vx32in";
31349}
31350def V6_vandqrt_alt : HInst<
31351(outs HvxVR:$Vd32),
31352(ins HvxQR:$Qu4, IntRegs:$Rt32),
31353"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
31354PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31355let hasNewValue = 1;
31356let opNewValue = 0;
31357let isCVI = 1;
31358let isPseudo = 1;
31359let isCodeGenOnly = 1;
31360let DecoderNamespace = "EXT_mmvec";
31361}
31362def V6_vandvnqv : HInst<
31363(outs HvxVR:$Vd32),
31364(ins HvxQR:$Qv4, HvxVR:$Vu32),
31365"$Vd32 = vand(!$Qv4,$Vu32)",
31366tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31367let Inst{7-5} = 0b001;
31368let Inst{13-13} = 0b1;
31369let Inst{21-16} = 0b000011;
31370let Inst{31-24} = 0b00011110;
31371let hasNewValue = 1;
31372let opNewValue = 0;
31373let isCVI = 1;
31374let isHVXALU = 1;
31375let isHVXALU2SRC = 1;
31376let DecoderNamespace = "EXT_mmvec";
31377}
31378def V6_vandvqv : HInst<
31379(outs HvxVR:$Vd32),
31380(ins HvxQR:$Qv4, HvxVR:$Vu32),
31381"$Vd32 = vand($Qv4,$Vu32)",
31382tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31383let Inst{7-5} = 0b000;
31384let Inst{13-13} = 0b1;
31385let Inst{21-16} = 0b000011;
31386let Inst{31-24} = 0b00011110;
31387let hasNewValue = 1;
31388let opNewValue = 0;
31389let isCVI = 1;
31390let isHVXALU = 1;
31391let isHVXALU2SRC = 1;
31392let DecoderNamespace = "EXT_mmvec";
31393}
31394def V6_vandvrt : HInst<
31395(outs HvxQR:$Qd4),
31396(ins HvxVR:$Vu32, IntRegs:$Rt32),
31397"$Qd4 = vand($Vu32,$Rt32)",
31398tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
31399let Inst{7-2} = 0b010010;
31400let Inst{13-13} = 0b0;
31401let Inst{31-21} = 0b00011001101;
31402let hasNewValue = 1;
31403let opNewValue = 0;
31404let isCVI = 1;
31405let DecoderNamespace = "EXT_mmvec";
31406}
31407def V6_vandvrt_acc : HInst<
31408(outs HvxQR:$Qx4),
31409(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31410"$Qx4 |= vand($Vu32,$Rt32)",
31411tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
31412let Inst{7-2} = 0b100000;
31413let Inst{13-13} = 0b1;
31414let Inst{31-21} = 0b00011001011;
31415let isAccumulator = 1;
31416let isCVI = 1;
31417let DecoderNamespace = "EXT_mmvec";
31418let Constraints = "$Qx4 = $Qx4in";
31419}
31420def V6_vandvrt_acc_alt : HInst<
31421(outs HvxQR:$Qx4),
31422(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31423"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
31424PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31425let isAccumulator = 1;
31426let isCVI = 1;
31427let isPseudo = 1;
31428let isCodeGenOnly = 1;
31429let DecoderNamespace = "EXT_mmvec";
31430let Constraints = "$Qx4 = $Qx4in";
31431}
31432def V6_vandvrt_alt : HInst<
31433(outs HvxQR:$Qd4),
31434(ins HvxVR:$Vu32, IntRegs:$Rt32),
31435"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
31436PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31437let hasNewValue = 1;
31438let opNewValue = 0;
31439let isCVI = 1;
31440let isPseudo = 1;
31441let isCodeGenOnly = 1;
31442let DecoderNamespace = "EXT_mmvec";
31443}
31444def V6_vaslh : HInst<
31445(outs HvxVR:$Vd32),
31446(ins HvxVR:$Vu32, IntRegs:$Rt32),
31447"$Vd32.h = vasl($Vu32.h,$Rt32)",
31448tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31449let Inst{7-5} = 0b000;
31450let Inst{13-13} = 0b0;
31451let Inst{31-21} = 0b00011001100;
31452let hasNewValue = 1;
31453let opNewValue = 0;
31454let isCVI = 1;
31455let DecoderNamespace = "EXT_mmvec";
31456}
31457def V6_vaslh_acc : HInst<
31458(outs HvxVR:$Vx32),
31459(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31460"$Vx32.h += vasl($Vu32.h,$Rt32)",
31461tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31462let Inst{7-5} = 0b101;
31463let Inst{13-13} = 0b1;
31464let Inst{31-21} = 0b00011001101;
31465let hasNewValue = 1;
31466let opNewValue = 0;
31467let isAccumulator = 1;
31468let isCVI = 1;
31469let DecoderNamespace = "EXT_mmvec";
31470let Constraints = "$Vx32 = $Vx32in";
31471}
31472def V6_vaslh_acc_alt : HInst<
31473(outs HvxVR:$Vx32),
31474(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31475"$Vx32 += vaslh($Vu32,$Rt32)",
31476PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31477let hasNewValue = 1;
31478let opNewValue = 0;
31479let isAccumulator = 1;
31480let isCVI = 1;
31481let isPseudo = 1;
31482let isCodeGenOnly = 1;
31483let DecoderNamespace = "EXT_mmvec";
31484let Constraints = "$Vx32 = $Vx32in";
31485}
31486def V6_vaslh_alt : HInst<
31487(outs HvxVR:$Vd32),
31488(ins HvxVR:$Vu32, IntRegs:$Rt32),
31489"$Vd32 = vaslh($Vu32,$Rt32)",
31490PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31491let hasNewValue = 1;
31492let opNewValue = 0;
31493let isCVI = 1;
31494let isPseudo = 1;
31495let isCodeGenOnly = 1;
31496let DecoderNamespace = "EXT_mmvec";
31497}
31498def V6_vaslhv : HInst<
31499(outs HvxVR:$Vd32),
31500(ins HvxVR:$Vu32, HvxVR:$Vv32),
31501"$Vd32.h = vasl($Vu32.h,$Vv32.h)",
31502tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31503let Inst{7-5} = 0b101;
31504let Inst{13-13} = 0b0;
31505let Inst{31-21} = 0b00011111101;
31506let hasNewValue = 1;
31507let opNewValue = 0;
31508let isCVI = 1;
31509let DecoderNamespace = "EXT_mmvec";
31510}
31511def V6_vaslhv_alt : HInst<
31512(outs HvxVR:$Vd32),
31513(ins HvxVR:$Vu32, HvxVR:$Vv32),
31514"$Vd32 = vaslh($Vu32,$Vv32)",
31515PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31516let hasNewValue = 1;
31517let opNewValue = 0;
31518let isCVI = 1;
31519let isPseudo = 1;
31520let isCodeGenOnly = 1;
31521let DecoderNamespace = "EXT_mmvec";
31522}
31523def V6_vaslw : HInst<
31524(outs HvxVR:$Vd32),
31525(ins HvxVR:$Vu32, IntRegs:$Rt32),
31526"$Vd32.w = vasl($Vu32.w,$Rt32)",
31527tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31528let Inst{7-5} = 0b111;
31529let Inst{13-13} = 0b0;
31530let Inst{31-21} = 0b00011001011;
31531let hasNewValue = 1;
31532let opNewValue = 0;
31533let isCVI = 1;
31534let DecoderNamespace = "EXT_mmvec";
31535}
31536def V6_vaslw_acc : HInst<
31537(outs HvxVR:$Vx32),
31538(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31539"$Vx32.w += vasl($Vu32.w,$Rt32)",
31540tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31541let Inst{7-5} = 0b010;
31542let Inst{13-13} = 0b1;
31543let Inst{31-21} = 0b00011001011;
31544let hasNewValue = 1;
31545let opNewValue = 0;
31546let isAccumulator = 1;
31547let isCVI = 1;
31548let DecoderNamespace = "EXT_mmvec";
31549let Constraints = "$Vx32 = $Vx32in";
31550}
31551def V6_vaslw_acc_alt : HInst<
31552(outs HvxVR:$Vx32),
31553(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31554"$Vx32 += vaslw($Vu32,$Rt32)",
31555PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31556let hasNewValue = 1;
31557let opNewValue = 0;
31558let isAccumulator = 1;
31559let isCVI = 1;
31560let isPseudo = 1;
31561let isCodeGenOnly = 1;
31562let DecoderNamespace = "EXT_mmvec";
31563let Constraints = "$Vx32 = $Vx32in";
31564}
31565def V6_vaslw_alt : HInst<
31566(outs HvxVR:$Vd32),
31567(ins HvxVR:$Vu32, IntRegs:$Rt32),
31568"$Vd32 = vaslw($Vu32,$Rt32)",
31569PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31570let hasNewValue = 1;
31571let opNewValue = 0;
31572let isCVI = 1;
31573let isPseudo = 1;
31574let isCodeGenOnly = 1;
31575let DecoderNamespace = "EXT_mmvec";
31576}
31577def V6_vaslwv : HInst<
31578(outs HvxVR:$Vd32),
31579(ins HvxVR:$Vu32, HvxVR:$Vv32),
31580"$Vd32.w = vasl($Vu32.w,$Vv32.w)",
31581tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31582let Inst{7-5} = 0b100;
31583let Inst{13-13} = 0b0;
31584let Inst{31-21} = 0b00011111101;
31585let hasNewValue = 1;
31586let opNewValue = 0;
31587let isCVI = 1;
31588let DecoderNamespace = "EXT_mmvec";
31589}
31590def V6_vaslwv_alt : HInst<
31591(outs HvxVR:$Vd32),
31592(ins HvxVR:$Vu32, HvxVR:$Vv32),
31593"$Vd32 = vaslw($Vu32,$Vv32)",
31594PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31595let hasNewValue = 1;
31596let opNewValue = 0;
31597let isCVI = 1;
31598let isPseudo = 1;
31599let isCodeGenOnly = 1;
31600let DecoderNamespace = "EXT_mmvec";
31601}
31602def V6_vasr_into : HInst<
31603(outs HvxWR:$Vxx32),
31604(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31605"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
31606tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
31607let Inst{7-5} = 0b111;
31608let Inst{13-13} = 0b1;
31609let Inst{31-21} = 0b00011010101;
31610let hasNewValue = 1;
31611let opNewValue = 0;
31612let isCVI = 1;
31613let DecoderNamespace = "EXT_mmvec";
31614let Constraints = "$Vxx32 = $Vxx32in";
31615}
31616def V6_vasr_into_alt : HInst<
31617(outs HvxWR:$Vxx32),
31618(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31619"$Vxx32 = vasrinto($Vu32,$Vv32)",
31620PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
31621let hasNewValue = 1;
31622let opNewValue = 0;
31623let isCVI = 1;
31624let isPseudo = 1;
31625let isCodeGenOnly = 1;
31626let DecoderNamespace = "EXT_mmvec";
31627let Constraints = "$Vxx32 = $Vxx32in";
31628}
31629def V6_vasrh : HInst<
31630(outs HvxVR:$Vd32),
31631(ins HvxVR:$Vu32, IntRegs:$Rt32),
31632"$Vd32.h = vasr($Vu32.h,$Rt32)",
31633tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31634let Inst{7-5} = 0b110;
31635let Inst{13-13} = 0b0;
31636let Inst{31-21} = 0b00011001011;
31637let hasNewValue = 1;
31638let opNewValue = 0;
31639let isCVI = 1;
31640let DecoderNamespace = "EXT_mmvec";
31641}
31642def V6_vasrh_acc : HInst<
31643(outs HvxVR:$Vx32),
31644(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31645"$Vx32.h += vasr($Vu32.h,$Rt32)",
31646tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31647let Inst{7-5} = 0b111;
31648let Inst{13-13} = 0b1;
31649let Inst{31-21} = 0b00011001100;
31650let hasNewValue = 1;
31651let opNewValue = 0;
31652let isAccumulator = 1;
31653let isCVI = 1;
31654let DecoderNamespace = "EXT_mmvec";
31655let Constraints = "$Vx32 = $Vx32in";
31656}
31657def V6_vasrh_acc_alt : HInst<
31658(outs HvxVR:$Vx32),
31659(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31660"$Vx32 += vasrh($Vu32,$Rt32)",
31661PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31662let hasNewValue = 1;
31663let opNewValue = 0;
31664let isAccumulator = 1;
31665let isCVI = 1;
31666let isPseudo = 1;
31667let isCodeGenOnly = 1;
31668let DecoderNamespace = "EXT_mmvec";
31669let Constraints = "$Vx32 = $Vx32in";
31670}
31671def V6_vasrh_alt : HInst<
31672(outs HvxVR:$Vd32),
31673(ins HvxVR:$Vu32, IntRegs:$Rt32),
31674"$Vd32 = vasrh($Vu32,$Rt32)",
31675PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31676let hasNewValue = 1;
31677let opNewValue = 0;
31678let isCVI = 1;
31679let isPseudo = 1;
31680let isCodeGenOnly = 1;
31681let DecoderNamespace = "EXT_mmvec";
31682}
31683def V6_vasrhbrndsat : HInst<
31684(outs HvxVR:$Vd32),
31685(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31686"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31687tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31688let Inst{7-5} = 0b000;
31689let Inst{13-13} = 0b1;
31690let Inst{31-24} = 0b00011011;
31691let hasNewValue = 1;
31692let opNewValue = 0;
31693let isCVI = 1;
31694let DecoderNamespace = "EXT_mmvec";
31695}
31696def V6_vasrhbsat : HInst<
31697(outs HvxVR:$Vd32),
31698(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31699"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31700tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31701let Inst{7-5} = 0b000;
31702let Inst{13-13} = 0b0;
31703let Inst{31-24} = 0b00011000;
31704let hasNewValue = 1;
31705let opNewValue = 0;
31706let isCVI = 1;
31707let DecoderNamespace = "EXT_mmvec";
31708}
31709def V6_vasrhubrndsat : HInst<
31710(outs HvxVR:$Vd32),
31711(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31712"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31713tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31714let Inst{7-5} = 0b111;
31715let Inst{13-13} = 0b0;
31716let Inst{31-24} = 0b00011011;
31717let hasNewValue = 1;
31718let opNewValue = 0;
31719let isCVI = 1;
31720let DecoderNamespace = "EXT_mmvec";
31721}
31722def V6_vasrhubsat : HInst<
31723(outs HvxVR:$Vd32),
31724(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31725"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31726tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31727let Inst{7-5} = 0b110;
31728let Inst{13-13} = 0b0;
31729let Inst{31-24} = 0b00011011;
31730let hasNewValue = 1;
31731let opNewValue = 0;
31732let isCVI = 1;
31733let DecoderNamespace = "EXT_mmvec";
31734}
31735def V6_vasrhv : HInst<
31736(outs HvxVR:$Vd32),
31737(ins HvxVR:$Vu32, HvxVR:$Vv32),
31738"$Vd32.h = vasr($Vu32.h,$Vv32.h)",
31739tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31740let Inst{7-5} = 0b011;
31741let Inst{13-13} = 0b0;
31742let Inst{31-21} = 0b00011111101;
31743let hasNewValue = 1;
31744let opNewValue = 0;
31745let isCVI = 1;
31746let DecoderNamespace = "EXT_mmvec";
31747}
31748def V6_vasrhv_alt : HInst<
31749(outs HvxVR:$Vd32),
31750(ins HvxVR:$Vu32, HvxVR:$Vv32),
31751"$Vd32 = vasrh($Vu32,$Vv32)",
31752PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31753let hasNewValue = 1;
31754let opNewValue = 0;
31755let isCVI = 1;
31756let isPseudo = 1;
31757let isCodeGenOnly = 1;
31758let DecoderNamespace = "EXT_mmvec";
31759}
31760def V6_vasruhubrndsat : HInst<
31761(outs HvxVR:$Vd32),
31762(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31763"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
31764tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31765let Inst{7-5} = 0b111;
31766let Inst{13-13} = 0b0;
31767let Inst{31-24} = 0b00011000;
31768let hasNewValue = 1;
31769let opNewValue = 0;
31770let isCVI = 1;
31771let DecoderNamespace = "EXT_mmvec";
31772}
31773def V6_vasruhubsat : HInst<
31774(outs HvxVR:$Vd32),
31775(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31776"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
31777tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31778let Inst{7-5} = 0b101;
31779let Inst{13-13} = 0b1;
31780let Inst{31-24} = 0b00011000;
31781let hasNewValue = 1;
31782let opNewValue = 0;
31783let isCVI = 1;
31784let DecoderNamespace = "EXT_mmvec";
31785}
31786def V6_vasruwuhrndsat : HInst<
31787(outs HvxVR:$Vd32),
31788(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31789"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
31790tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31791let Inst{7-5} = 0b001;
31792let Inst{13-13} = 0b0;
31793let Inst{31-24} = 0b00011000;
31794let hasNewValue = 1;
31795let opNewValue = 0;
31796let isCVI = 1;
31797let DecoderNamespace = "EXT_mmvec";
31798}
31799def V6_vasruwuhsat : HInst<
31800(outs HvxVR:$Vd32),
31801(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31802"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
31803tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31804let Inst{7-5} = 0b100;
31805let Inst{13-13} = 0b1;
31806let Inst{31-24} = 0b00011000;
31807let hasNewValue = 1;
31808let opNewValue = 0;
31809let isCVI = 1;
31810let DecoderNamespace = "EXT_mmvec";
31811}
31812def V6_vasrvuhubrndsat : HInst<
31813(outs HvxVR:$Vd32),
31814(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31815"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):rnd:sat",
31816tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31817let Inst{7-5} = 0b011;
31818let Inst{13-13} = 0b0;
31819let Inst{31-21} = 0b00011101000;
31820let hasNewValue = 1;
31821let opNewValue = 0;
31822let isCVI = 1;
31823let hasUnaryRestriction = 1;
31824let DecoderNamespace = "EXT_mmvec";
31825}
31826def V6_vasrvuhubsat : HInst<
31827(outs HvxVR:$Vd32),
31828(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31829"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):sat",
31830tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31831let Inst{7-5} = 0b010;
31832let Inst{13-13} = 0b0;
31833let Inst{31-21} = 0b00011101000;
31834let hasNewValue = 1;
31835let opNewValue = 0;
31836let isCVI = 1;
31837let hasUnaryRestriction = 1;
31838let DecoderNamespace = "EXT_mmvec";
31839}
31840def V6_vasrvwuhrndsat : HInst<
31841(outs HvxVR:$Vd32),
31842(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31843"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):rnd:sat",
31844tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31845let Inst{7-5} = 0b001;
31846let Inst{13-13} = 0b0;
31847let Inst{31-21} = 0b00011101000;
31848let hasNewValue = 1;
31849let opNewValue = 0;
31850let isCVI = 1;
31851let hasUnaryRestriction = 1;
31852let DecoderNamespace = "EXT_mmvec";
31853}
31854def V6_vasrvwuhsat : HInst<
31855(outs HvxVR:$Vd32),
31856(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31857"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):sat",
31858tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31859let Inst{7-5} = 0b000;
31860let Inst{13-13} = 0b0;
31861let Inst{31-21} = 0b00011101000;
31862let hasNewValue = 1;
31863let opNewValue = 0;
31864let isCVI = 1;
31865let hasUnaryRestriction = 1;
31866let DecoderNamespace = "EXT_mmvec";
31867}
31868def V6_vasrw : HInst<
31869(outs HvxVR:$Vd32),
31870(ins HvxVR:$Vu32, IntRegs:$Rt32),
31871"$Vd32.w = vasr($Vu32.w,$Rt32)",
31872tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31873let Inst{7-5} = 0b101;
31874let Inst{13-13} = 0b0;
31875let Inst{31-21} = 0b00011001011;
31876let hasNewValue = 1;
31877let opNewValue = 0;
31878let isCVI = 1;
31879let DecoderNamespace = "EXT_mmvec";
31880}
31881def V6_vasrw_acc : HInst<
31882(outs HvxVR:$Vx32),
31883(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31884"$Vx32.w += vasr($Vu32.w,$Rt32)",
31885tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31886let Inst{7-5} = 0b101;
31887let Inst{13-13} = 0b1;
31888let Inst{31-21} = 0b00011001011;
31889let hasNewValue = 1;
31890let opNewValue = 0;
31891let isAccumulator = 1;
31892let isCVI = 1;
31893let DecoderNamespace = "EXT_mmvec";
31894let Constraints = "$Vx32 = $Vx32in";
31895}
31896def V6_vasrw_acc_alt : HInst<
31897(outs HvxVR:$Vx32),
31898(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31899"$Vx32 += vasrw($Vu32,$Rt32)",
31900PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31901let hasNewValue = 1;
31902let opNewValue = 0;
31903let isAccumulator = 1;
31904let isCVI = 1;
31905let isPseudo = 1;
31906let isCodeGenOnly = 1;
31907let DecoderNamespace = "EXT_mmvec";
31908let Constraints = "$Vx32 = $Vx32in";
31909}
31910def V6_vasrw_alt : HInst<
31911(outs HvxVR:$Vd32),
31912(ins HvxVR:$Vu32, IntRegs:$Rt32),
31913"$Vd32 = vasrw($Vu32,$Rt32)",
31914PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31915let hasNewValue = 1;
31916let opNewValue = 0;
31917let isCVI = 1;
31918let isPseudo = 1;
31919let isCodeGenOnly = 1;
31920let DecoderNamespace = "EXT_mmvec";
31921}
31922def V6_vasrwh : HInst<
31923(outs HvxVR:$Vd32),
31924(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31925"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
31926tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31927let Inst{7-5} = 0b010;
31928let Inst{13-13} = 0b0;
31929let Inst{31-24} = 0b00011011;
31930let hasNewValue = 1;
31931let opNewValue = 0;
31932let isCVI = 1;
31933let DecoderNamespace = "EXT_mmvec";
31934}
31935def V6_vasrwhrndsat : HInst<
31936(outs HvxVR:$Vd32),
31937(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31938"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31939tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31940let Inst{7-5} = 0b100;
31941let Inst{13-13} = 0b0;
31942let Inst{31-24} = 0b00011011;
31943let hasNewValue = 1;
31944let opNewValue = 0;
31945let isCVI = 1;
31946let DecoderNamespace = "EXT_mmvec";
31947}
31948def V6_vasrwhsat : HInst<
31949(outs HvxVR:$Vd32),
31950(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31951"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31952tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31953let Inst{7-5} = 0b011;
31954let Inst{13-13} = 0b0;
31955let Inst{31-24} = 0b00011011;
31956let hasNewValue = 1;
31957let opNewValue = 0;
31958let isCVI = 1;
31959let DecoderNamespace = "EXT_mmvec";
31960}
31961def V6_vasrwuhrndsat : HInst<
31962(outs HvxVR:$Vd32),
31963(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31964"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31965tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31966let Inst{7-5} = 0b010;
31967let Inst{13-13} = 0b0;
31968let Inst{31-24} = 0b00011000;
31969let hasNewValue = 1;
31970let opNewValue = 0;
31971let isCVI = 1;
31972let DecoderNamespace = "EXT_mmvec";
31973}
31974def V6_vasrwuhsat : HInst<
31975(outs HvxVR:$Vd32),
31976(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31977"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31978tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31979let Inst{7-5} = 0b101;
31980let Inst{13-13} = 0b0;
31981let Inst{31-24} = 0b00011011;
31982let hasNewValue = 1;
31983let opNewValue = 0;
31984let isCVI = 1;
31985let DecoderNamespace = "EXT_mmvec";
31986}
31987def V6_vasrwv : HInst<
31988(outs HvxVR:$Vd32),
31989(ins HvxVR:$Vu32, HvxVR:$Vv32),
31990"$Vd32.w = vasr($Vu32.w,$Vv32.w)",
31991tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31992let Inst{7-5} = 0b000;
31993let Inst{13-13} = 0b0;
31994let Inst{31-21} = 0b00011111101;
31995let hasNewValue = 1;
31996let opNewValue = 0;
31997let isCVI = 1;
31998let DecoderNamespace = "EXT_mmvec";
31999}
32000def V6_vasrwv_alt : HInst<
32001(outs HvxVR:$Vd32),
32002(ins HvxVR:$Vu32, HvxVR:$Vv32),
32003"$Vd32 = vasrw($Vu32,$Vv32)",
32004PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32005let hasNewValue = 1;
32006let opNewValue = 0;
32007let isCVI = 1;
32008let isPseudo = 1;
32009let isCodeGenOnly = 1;
32010let DecoderNamespace = "EXT_mmvec";
32011}
32012def V6_vassign : HInst<
32013(outs HvxVR:$Vd32),
32014(ins HvxVR:$Vu32),
32015"$Vd32 = $Vu32",
32016tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
32017let Inst{7-5} = 0b111;
32018let Inst{13-13} = 0b1;
32019let Inst{31-16} = 0b0001111000000011;
32020let hasNewValue = 1;
32021let opNewValue = 0;
32022let isCVI = 1;
32023let isHVXALU = 1;
32024let DecoderNamespace = "EXT_mmvec";
32025}
32026def V6_vassign_fp : HInst<
32027(outs HvxVR:$Vd32),
32028(ins HvxVR:$Vu32),
32029"$Vd32.w = vfmv($Vu32.w)",
32030tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32031let Inst{7-5} = 0b001;
32032let Inst{13-13} = 0b1;
32033let Inst{31-16} = 0b0001111000000110;
32034let hasNewValue = 1;
32035let opNewValue = 0;
32036let isCVI = 1;
32037let DecoderNamespace = "EXT_mmvec";
32038}
32039def V6_vassign_tmp : HInst<
32040(outs HvxVR:$Vd32),
32041(ins HvxVR:$Vu32),
32042"$Vd32.tmp = $Vu32",
32043tc_e2fdd6e6, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV69]> {
32044let Inst{7-5} = 0b110;
32045let Inst{13-13} = 0b0;
32046let Inst{31-16} = 0b0001111000000001;
32047let hasNewValue = 1;
32048let opNewValue = 0;
32049let isCVI = 1;
32050let hasHvxTmp = 1;
32051let DecoderNamespace = "EXT_mmvec";
32052}
32053def V6_vassignp : HInst<
32054(outs HvxWR:$Vdd32),
32055(ins HvxWR:$Vuu32),
32056"$Vdd32 = $Vuu32",
32057CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
32058let hasNewValue = 1;
32059let opNewValue = 0;
32060let isCVI = 1;
32061let isPseudo = 1;
32062let DecoderNamespace = "EXT_mmvec";
32063}
32064def V6_vavgb : HInst<
32065(outs HvxVR:$Vd32),
32066(ins HvxVR:$Vu32, HvxVR:$Vv32),
32067"$Vd32.b = vavg($Vu32.b,$Vv32.b)",
32068tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32069let Inst{7-5} = 0b100;
32070let Inst{13-13} = 0b1;
32071let Inst{31-21} = 0b00011111000;
32072let hasNewValue = 1;
32073let opNewValue = 0;
32074let isCVI = 1;
32075let isHVXALU = 1;
32076let isHVXALU2SRC = 1;
32077let DecoderNamespace = "EXT_mmvec";
32078}
32079def V6_vavgb_alt : HInst<
32080(outs HvxVR:$Vd32),
32081(ins HvxVR:$Vu32, HvxVR:$Vv32),
32082"$Vd32 = vavgb($Vu32,$Vv32)",
32083PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32084let hasNewValue = 1;
32085let opNewValue = 0;
32086let isCVI = 1;
32087let isPseudo = 1;
32088let isCodeGenOnly = 1;
32089let DecoderNamespace = "EXT_mmvec";
32090}
32091def V6_vavgbrnd : HInst<
32092(outs HvxVR:$Vd32),
32093(ins HvxVR:$Vu32, HvxVR:$Vv32),
32094"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
32095tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32096let Inst{7-5} = 0b101;
32097let Inst{13-13} = 0b1;
32098let Inst{31-21} = 0b00011111000;
32099let hasNewValue = 1;
32100let opNewValue = 0;
32101let isCVI = 1;
32102let isHVXALU = 1;
32103let isHVXALU2SRC = 1;
32104let DecoderNamespace = "EXT_mmvec";
32105}
32106def V6_vavgbrnd_alt : HInst<
32107(outs HvxVR:$Vd32),
32108(ins HvxVR:$Vu32, HvxVR:$Vv32),
32109"$Vd32 = vavgb($Vu32,$Vv32):rnd",
32110PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32111let hasNewValue = 1;
32112let opNewValue = 0;
32113let isCVI = 1;
32114let isPseudo = 1;
32115let isCodeGenOnly = 1;
32116let DecoderNamespace = "EXT_mmvec";
32117}
32118def V6_vavgh : HInst<
32119(outs HvxVR:$Vd32),
32120(ins HvxVR:$Vu32, HvxVR:$Vv32),
32121"$Vd32.h = vavg($Vu32.h,$Vv32.h)",
32122tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32123let Inst{7-5} = 0b110;
32124let Inst{13-13} = 0b0;
32125let Inst{31-21} = 0b00011100110;
32126let hasNewValue = 1;
32127let opNewValue = 0;
32128let isCVI = 1;
32129let isHVXALU = 1;
32130let isHVXALU2SRC = 1;
32131let DecoderNamespace = "EXT_mmvec";
32132}
32133def V6_vavgh_alt : HInst<
32134(outs HvxVR:$Vd32),
32135(ins HvxVR:$Vu32, HvxVR:$Vv32),
32136"$Vd32 = vavgh($Vu32,$Vv32)",
32137PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32138let hasNewValue = 1;
32139let opNewValue = 0;
32140let isCVI = 1;
32141let isPseudo = 1;
32142let isCodeGenOnly = 1;
32143let DecoderNamespace = "EXT_mmvec";
32144}
32145def V6_vavghrnd : HInst<
32146(outs HvxVR:$Vd32),
32147(ins HvxVR:$Vu32, HvxVR:$Vv32),
32148"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
32149tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32150let Inst{7-5} = 0b101;
32151let Inst{13-13} = 0b0;
32152let Inst{31-21} = 0b00011100111;
32153let hasNewValue = 1;
32154let opNewValue = 0;
32155let isCVI = 1;
32156let isHVXALU = 1;
32157let isHVXALU2SRC = 1;
32158let DecoderNamespace = "EXT_mmvec";
32159}
32160def V6_vavghrnd_alt : HInst<
32161(outs HvxVR:$Vd32),
32162(ins HvxVR:$Vu32, HvxVR:$Vv32),
32163"$Vd32 = vavgh($Vu32,$Vv32):rnd",
32164PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32165let hasNewValue = 1;
32166let opNewValue = 0;
32167let isCVI = 1;
32168let isPseudo = 1;
32169let isCodeGenOnly = 1;
32170let DecoderNamespace = "EXT_mmvec";
32171}
32172def V6_vavgub : HInst<
32173(outs HvxVR:$Vd32),
32174(ins HvxVR:$Vu32, HvxVR:$Vv32),
32175"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
32176tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32177let Inst{7-5} = 0b100;
32178let Inst{13-13} = 0b0;
32179let Inst{31-21} = 0b00011100110;
32180let hasNewValue = 1;
32181let opNewValue = 0;
32182let isCVI = 1;
32183let isHVXALU = 1;
32184let isHVXALU2SRC = 1;
32185let DecoderNamespace = "EXT_mmvec";
32186}
32187def V6_vavgub_alt : HInst<
32188(outs HvxVR:$Vd32),
32189(ins HvxVR:$Vu32, HvxVR:$Vv32),
32190"$Vd32 = vavgub($Vu32,$Vv32)",
32191PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32192let hasNewValue = 1;
32193let opNewValue = 0;
32194let isCVI = 1;
32195let isPseudo = 1;
32196let isCodeGenOnly = 1;
32197let DecoderNamespace = "EXT_mmvec";
32198}
32199def V6_vavgubrnd : HInst<
32200(outs HvxVR:$Vd32),
32201(ins HvxVR:$Vu32, HvxVR:$Vv32),
32202"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
32203tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32204let Inst{7-5} = 0b011;
32205let Inst{13-13} = 0b0;
32206let Inst{31-21} = 0b00011100111;
32207let hasNewValue = 1;
32208let opNewValue = 0;
32209let isCVI = 1;
32210let isHVXALU = 1;
32211let isHVXALU2SRC = 1;
32212let DecoderNamespace = "EXT_mmvec";
32213}
32214def V6_vavgubrnd_alt : HInst<
32215(outs HvxVR:$Vd32),
32216(ins HvxVR:$Vu32, HvxVR:$Vv32),
32217"$Vd32 = vavgub($Vu32,$Vv32):rnd",
32218PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32219let hasNewValue = 1;
32220let opNewValue = 0;
32221let isCVI = 1;
32222let isPseudo = 1;
32223let isCodeGenOnly = 1;
32224let DecoderNamespace = "EXT_mmvec";
32225}
32226def V6_vavguh : HInst<
32227(outs HvxVR:$Vd32),
32228(ins HvxVR:$Vu32, HvxVR:$Vv32),
32229"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
32230tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32231let Inst{7-5} = 0b101;
32232let Inst{13-13} = 0b0;
32233let Inst{31-21} = 0b00011100110;
32234let hasNewValue = 1;
32235let opNewValue = 0;
32236let isCVI = 1;
32237let isHVXALU = 1;
32238let isHVXALU2SRC = 1;
32239let DecoderNamespace = "EXT_mmvec";
32240}
32241def V6_vavguh_alt : HInst<
32242(outs HvxVR:$Vd32),
32243(ins HvxVR:$Vu32, HvxVR:$Vv32),
32244"$Vd32 = vavguh($Vu32,$Vv32)",
32245PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32246let hasNewValue = 1;
32247let opNewValue = 0;
32248let isCVI = 1;
32249let isPseudo = 1;
32250let isCodeGenOnly = 1;
32251let DecoderNamespace = "EXT_mmvec";
32252}
32253def V6_vavguhrnd : HInst<
32254(outs HvxVR:$Vd32),
32255(ins HvxVR:$Vu32, HvxVR:$Vv32),
32256"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
32257tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32258let Inst{7-5} = 0b100;
32259let Inst{13-13} = 0b0;
32260let Inst{31-21} = 0b00011100111;
32261let hasNewValue = 1;
32262let opNewValue = 0;
32263let isCVI = 1;
32264let isHVXALU = 1;
32265let isHVXALU2SRC = 1;
32266let DecoderNamespace = "EXT_mmvec";
32267}
32268def V6_vavguhrnd_alt : HInst<
32269(outs HvxVR:$Vd32),
32270(ins HvxVR:$Vu32, HvxVR:$Vv32),
32271"$Vd32 = vavguh($Vu32,$Vv32):rnd",
32272PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32273let hasNewValue = 1;
32274let opNewValue = 0;
32275let isCVI = 1;
32276let isPseudo = 1;
32277let isCodeGenOnly = 1;
32278let DecoderNamespace = "EXT_mmvec";
32279}
32280def V6_vavguw : HInst<
32281(outs HvxVR:$Vd32),
32282(ins HvxVR:$Vu32, HvxVR:$Vv32),
32283"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
32284tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32285let Inst{7-5} = 0b010;
32286let Inst{13-13} = 0b1;
32287let Inst{31-21} = 0b00011111000;
32288let hasNewValue = 1;
32289let opNewValue = 0;
32290let isCVI = 1;
32291let isHVXALU = 1;
32292let isHVXALU2SRC = 1;
32293let DecoderNamespace = "EXT_mmvec";
32294}
32295def V6_vavguw_alt : HInst<
32296(outs HvxVR:$Vd32),
32297(ins HvxVR:$Vu32, HvxVR:$Vv32),
32298"$Vd32 = vavguw($Vu32,$Vv32)",
32299PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32300let hasNewValue = 1;
32301let opNewValue = 0;
32302let isCVI = 1;
32303let isPseudo = 1;
32304let isCodeGenOnly = 1;
32305let DecoderNamespace = "EXT_mmvec";
32306}
32307def V6_vavguwrnd : HInst<
32308(outs HvxVR:$Vd32),
32309(ins HvxVR:$Vu32, HvxVR:$Vv32),
32310"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
32311tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32312let Inst{7-5} = 0b011;
32313let Inst{13-13} = 0b1;
32314let Inst{31-21} = 0b00011111000;
32315let hasNewValue = 1;
32316let opNewValue = 0;
32317let isCVI = 1;
32318let isHVXALU = 1;
32319let isHVXALU2SRC = 1;
32320let DecoderNamespace = "EXT_mmvec";
32321}
32322def V6_vavguwrnd_alt : HInst<
32323(outs HvxVR:$Vd32),
32324(ins HvxVR:$Vu32, HvxVR:$Vv32),
32325"$Vd32 = vavguw($Vu32,$Vv32):rnd",
32326PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32327let hasNewValue = 1;
32328let opNewValue = 0;
32329let isCVI = 1;
32330let isPseudo = 1;
32331let isCodeGenOnly = 1;
32332let DecoderNamespace = "EXT_mmvec";
32333}
32334def V6_vavgw : HInst<
32335(outs HvxVR:$Vd32),
32336(ins HvxVR:$Vu32, HvxVR:$Vv32),
32337"$Vd32.w = vavg($Vu32.w,$Vv32.w)",
32338tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32339let Inst{7-5} = 0b111;
32340let Inst{13-13} = 0b0;
32341let Inst{31-21} = 0b00011100110;
32342let hasNewValue = 1;
32343let opNewValue = 0;
32344let isCVI = 1;
32345let isHVXALU = 1;
32346let isHVXALU2SRC = 1;
32347let DecoderNamespace = "EXT_mmvec";
32348}
32349def V6_vavgw_alt : HInst<
32350(outs HvxVR:$Vd32),
32351(ins HvxVR:$Vu32, HvxVR:$Vv32),
32352"$Vd32 = vavgw($Vu32,$Vv32)",
32353PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32354let hasNewValue = 1;
32355let opNewValue = 0;
32356let isCVI = 1;
32357let isPseudo = 1;
32358let isCodeGenOnly = 1;
32359let DecoderNamespace = "EXT_mmvec";
32360}
32361def V6_vavgwrnd : HInst<
32362(outs HvxVR:$Vd32),
32363(ins HvxVR:$Vu32, HvxVR:$Vv32),
32364"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
32365tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32366let Inst{7-5} = 0b110;
32367let Inst{13-13} = 0b0;
32368let Inst{31-21} = 0b00011100111;
32369let hasNewValue = 1;
32370let opNewValue = 0;
32371let isCVI = 1;
32372let isHVXALU = 1;
32373let isHVXALU2SRC = 1;
32374let DecoderNamespace = "EXT_mmvec";
32375}
32376def V6_vavgwrnd_alt : HInst<
32377(outs HvxVR:$Vd32),
32378(ins HvxVR:$Vu32, HvxVR:$Vv32),
32379"$Vd32 = vavgw($Vu32,$Vv32):rnd",
32380PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32381let hasNewValue = 1;
32382let opNewValue = 0;
32383let isCVI = 1;
32384let isPseudo = 1;
32385let isCodeGenOnly = 1;
32386let DecoderNamespace = "EXT_mmvec";
32387}
32388def V6_vccombine : HInst<
32389(outs HvxWR:$Vdd32),
32390(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
32391"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
32392tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
32393let Inst{7-7} = 0b0;
32394let Inst{13-13} = 0b0;
32395let Inst{31-21} = 0b00011010011;
32396let isPredicated = 1;
32397let hasNewValue = 1;
32398let opNewValue = 0;
32399let isCVI = 1;
32400let DecoderNamespace = "EXT_mmvec";
32401}
32402def V6_vcl0h : HInst<
32403(outs HvxVR:$Vd32),
32404(ins HvxVR:$Vu32),
32405"$Vd32.uh = vcl0($Vu32.uh)",
32406tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32407let Inst{7-5} = 0b111;
32408let Inst{13-13} = 0b0;
32409let Inst{31-16} = 0b0001111000000010;
32410let hasNewValue = 1;
32411let opNewValue = 0;
32412let isCVI = 1;
32413let DecoderNamespace = "EXT_mmvec";
32414}
32415def V6_vcl0h_alt : HInst<
32416(outs HvxVR:$Vd32),
32417(ins HvxVR:$Vu32),
32418"$Vd32 = vcl0h($Vu32)",
32419PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32420let hasNewValue = 1;
32421let opNewValue = 0;
32422let isCVI = 1;
32423let isPseudo = 1;
32424let isCodeGenOnly = 1;
32425let DecoderNamespace = "EXT_mmvec";
32426}
32427def V6_vcl0w : HInst<
32428(outs HvxVR:$Vd32),
32429(ins HvxVR:$Vu32),
32430"$Vd32.uw = vcl0($Vu32.uw)",
32431tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32432let Inst{7-5} = 0b101;
32433let Inst{13-13} = 0b0;
32434let Inst{31-16} = 0b0001111000000010;
32435let hasNewValue = 1;
32436let opNewValue = 0;
32437let isCVI = 1;
32438let DecoderNamespace = "EXT_mmvec";
32439}
32440def V6_vcl0w_alt : HInst<
32441(outs HvxVR:$Vd32),
32442(ins HvxVR:$Vu32),
32443"$Vd32 = vcl0w($Vu32)",
32444PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32445let hasNewValue = 1;
32446let opNewValue = 0;
32447let isCVI = 1;
32448let isPseudo = 1;
32449let isCodeGenOnly = 1;
32450let DecoderNamespace = "EXT_mmvec";
32451}
32452def V6_vcmov : HInst<
32453(outs HvxVR:$Vd32),
32454(ins PredRegs:$Ps4, HvxVR:$Vu32),
32455"if ($Ps4) $Vd32 = $Vu32",
32456tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
32457let Inst{7-7} = 0b0;
32458let Inst{13-13} = 0b0;
32459let Inst{31-16} = 0b0001101000000000;
32460let isPredicated = 1;
32461let hasNewValue = 1;
32462let opNewValue = 0;
32463let isCVI = 1;
32464let isHVXALU = 1;
32465let DecoderNamespace = "EXT_mmvec";
32466}
32467def V6_vcombine : HInst<
32468(outs HvxWR:$Vdd32),
32469(ins HvxVR:$Vu32, HvxVR:$Vv32),
32470"$Vdd32 = vcombine($Vu32,$Vv32)",
32471tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
32472let Inst{7-5} = 0b111;
32473let Inst{13-13} = 0b0;
32474let Inst{31-21} = 0b00011111010;
32475let hasNewValue = 1;
32476let opNewValue = 0;
32477let isCVI = 1;
32478let isRegSequence = 1;
32479let DecoderNamespace = "EXT_mmvec";
32480}
32481def V6_vcombine_tmp : HInst<
32482(outs HvxWR:$Vdd32),
32483(ins HvxVR:$Vu32, HvxVR:$Vv32),
32484"$Vdd32.tmp = vcombine($Vu32,$Vv32)",
32485tc_531b383c, TypeCVI_VX>, Enc_71bb9b, Requires<[UseHVXV69]> {
32486let Inst{7-5} = 0b111;
32487let Inst{13-13} = 0b0;
32488let Inst{31-21} = 0b00011110101;
32489let hasNewValue = 1;
32490let opNewValue = 0;
32491let isCVI = 1;
32492let hasHvxTmp = 1;
32493let DecoderNamespace = "EXT_mmvec";
32494}
32495def V6_vconv_h_hf : HInst<
32496(outs HvxVR:$Vd32),
32497(ins HvxVR:$Vu32),
32498"$Vd32.h = $Vu32.hf",
32499tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32500let Inst{7-5} = 0b010;
32501let Inst{13-13} = 0b1;
32502let Inst{31-16} = 0b0001111000000101;
32503let hasNewValue = 1;
32504let opNewValue = 0;
32505let isCVI = 1;
32506let DecoderNamespace = "EXT_mmvec";
32507}
32508def V6_vconv_hf_h : HInst<
32509(outs HvxVR:$Vd32),
32510(ins HvxVR:$Vu32),
32511"$Vd32.hf = $Vu32.h",
32512tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32513let Inst{7-5} = 0b100;
32514let Inst{13-13} = 0b1;
32515let Inst{31-16} = 0b0001111000000101;
32516let hasNewValue = 1;
32517let opNewValue = 0;
32518let isCVI = 1;
32519let DecoderNamespace = "EXT_mmvec";
32520}
32521def V6_vconv_hf_qf16 : HInst<
32522(outs HvxVR:$Vd32),
32523(ins HvxVR:$Vu32),
32524"$Vd32.hf = $Vu32.qf16",
32525tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32526let Inst{7-5} = 0b011;
32527let Inst{13-13} = 0b1;
32528let Inst{31-16} = 0b0001111000000100;
32529let hasNewValue = 1;
32530let opNewValue = 0;
32531let isCVI = 1;
32532let DecoderNamespace = "EXT_mmvec";
32533}
32534def V6_vconv_hf_qf32 : HInst<
32535(outs HvxVR:$Vd32),
32536(ins HvxWR:$Vuu32),
32537"$Vd32.hf = $Vuu32.qf32",
32538tc_51d0ecc3, TypeCVI_VS>, Enc_a33d04, Requires<[UseHVXV68,UseHVXQFloat]> {
32539let Inst{7-5} = 0b110;
32540let Inst{13-13} = 0b1;
32541let Inst{31-16} = 0b0001111000000100;
32542let hasNewValue = 1;
32543let opNewValue = 0;
32544let isCVI = 1;
32545let DecoderNamespace = "EXT_mmvec";
32546}
32547def V6_vconv_sf_qf32 : HInst<
32548(outs HvxVR:$Vd32),
32549(ins HvxVR:$Vu32),
32550"$Vd32.sf = $Vu32.qf32",
32551tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32552let Inst{7-5} = 0b000;
32553let Inst{13-13} = 0b1;
32554let Inst{31-16} = 0b0001111000000100;
32555let hasNewValue = 1;
32556let opNewValue = 0;
32557let isCVI = 1;
32558let DecoderNamespace = "EXT_mmvec";
32559}
32560def V6_vconv_sf_w : HInst<
32561(outs HvxVR:$Vd32),
32562(ins HvxVR:$Vu32),
32563"$Vd32.sf = $Vu32.w",
32564tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32565let Inst{7-5} = 0b011;
32566let Inst{13-13} = 0b1;
32567let Inst{31-16} = 0b0001111000000101;
32568let hasNewValue = 1;
32569let opNewValue = 0;
32570let isCVI = 1;
32571let DecoderNamespace = "EXT_mmvec";
32572}
32573def V6_vconv_w_sf : HInst<
32574(outs HvxVR:$Vd32),
32575(ins HvxVR:$Vu32),
32576"$Vd32.w = $Vu32.sf",
32577tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32578let Inst{7-5} = 0b001;
32579let Inst{13-13} = 0b1;
32580let Inst{31-16} = 0b0001111000000101;
32581let hasNewValue = 1;
32582let opNewValue = 0;
32583let isCVI = 1;
32584let DecoderNamespace = "EXT_mmvec";
32585}
32586def V6_vcvt_b_hf : HInst<
32587(outs HvxVR:$Vd32),
32588(ins HvxVR:$Vu32, HvxVR:$Vv32),
32589"$Vd32.b = vcvt($Vu32.hf,$Vv32.hf)",
32590tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32591let Inst{7-5} = 0b110;
32592let Inst{13-13} = 0b1;
32593let Inst{31-21} = 0b00011111110;
32594let hasNewValue = 1;
32595let opNewValue = 0;
32596let isCVI = 1;
32597let DecoderNamespace = "EXT_mmvec";
32598}
32599def V6_vcvt_bf_sf : HInst<
32600(outs HvxVR:$Vd32),
32601(ins HvxVR:$Vu32, HvxVR:$Vv32),
32602"$Vd32.bf = vcvt($Vu32.sf,$Vv32.sf)",
32603tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
32604let Inst{7-5} = 0b011;
32605let Inst{13-13} = 0b1;
32606let Inst{31-21} = 0b00011101010;
32607let hasNewValue = 1;
32608let opNewValue = 0;
32609let isCVI = 1;
32610let DecoderNamespace = "EXT_mmvec";
32611}
32612def V6_vcvt_h_hf : HInst<
32613(outs HvxVR:$Vd32),
32614(ins HvxVR:$Vu32),
32615"$Vd32.h = vcvt($Vu32.hf)",
32616tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32617let Inst{7-5} = 0b000;
32618let Inst{13-13} = 0b1;
32619let Inst{31-16} = 0b0001111000000110;
32620let hasNewValue = 1;
32621let opNewValue = 0;
32622let isCVI = 1;
32623let DecoderNamespace = "EXT_mmvec";
32624}
32625def V6_vcvt_hf_b : HInst<
32626(outs HvxWR:$Vdd32),
32627(ins HvxVR:$Vu32),
32628"$Vdd32.hf = vcvt($Vu32.b)",
32629tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32630let Inst{7-5} = 0b010;
32631let Inst{13-13} = 0b1;
32632let Inst{31-16} = 0b0001111000000100;
32633let hasNewValue = 1;
32634let opNewValue = 0;
32635let isCVI = 1;
32636let DecoderNamespace = "EXT_mmvec";
32637}
32638def V6_vcvt_hf_h : HInst<
32639(outs HvxVR:$Vd32),
32640(ins HvxVR:$Vu32),
32641"$Vd32.hf = vcvt($Vu32.h)",
32642tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32643let Inst{7-5} = 0b111;
32644let Inst{13-13} = 0b1;
32645let Inst{31-16} = 0b0001111000000100;
32646let hasNewValue = 1;
32647let opNewValue = 0;
32648let isCVI = 1;
32649let DecoderNamespace = "EXT_mmvec";
32650}
32651def V6_vcvt_hf_sf : HInst<
32652(outs HvxVR:$Vd32),
32653(ins HvxVR:$Vu32, HvxVR:$Vv32),
32654"$Vd32.hf = vcvt($Vu32.sf,$Vv32.sf)",
32655tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32656let Inst{7-5} = 0b001;
32657let Inst{13-13} = 0b1;
32658let Inst{31-21} = 0b00011111011;
32659let hasNewValue = 1;
32660let opNewValue = 0;
32661let isCVI = 1;
32662let DecoderNamespace = "EXT_mmvec";
32663}
32664def V6_vcvt_hf_ub : HInst<
32665(outs HvxWR:$Vdd32),
32666(ins HvxVR:$Vu32),
32667"$Vdd32.hf = vcvt($Vu32.ub)",
32668tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32669let Inst{7-5} = 0b001;
32670let Inst{13-13} = 0b1;
32671let Inst{31-16} = 0b0001111000000100;
32672let hasNewValue = 1;
32673let opNewValue = 0;
32674let isCVI = 1;
32675let DecoderNamespace = "EXT_mmvec";
32676}
32677def V6_vcvt_hf_uh : HInst<
32678(outs HvxVR:$Vd32),
32679(ins HvxVR:$Vu32),
32680"$Vd32.hf = vcvt($Vu32.uh)",
32681tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32682let Inst{7-5} = 0b101;
32683let Inst{13-13} = 0b1;
32684let Inst{31-16} = 0b0001111000000100;
32685let hasNewValue = 1;
32686let opNewValue = 0;
32687let isCVI = 1;
32688let DecoderNamespace = "EXT_mmvec";
32689}
32690def V6_vcvt_sf_hf : HInst<
32691(outs HvxWR:$Vdd32),
32692(ins HvxVR:$Vu32),
32693"$Vdd32.sf = vcvt($Vu32.hf)",
32694tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32695let Inst{7-5} = 0b100;
32696let Inst{13-13} = 0b1;
32697let Inst{31-16} = 0b0001111000000100;
32698let hasNewValue = 1;
32699let opNewValue = 0;
32700let isCVI = 1;
32701let DecoderNamespace = "EXT_mmvec";
32702}
32703def V6_vcvt_ub_hf : HInst<
32704(outs HvxVR:$Vd32),
32705(ins HvxVR:$Vu32, HvxVR:$Vv32),
32706"$Vd32.ub = vcvt($Vu32.hf,$Vv32.hf)",
32707tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32708let Inst{7-5} = 0b101;
32709let Inst{13-13} = 0b1;
32710let Inst{31-21} = 0b00011111110;
32711let hasNewValue = 1;
32712let opNewValue = 0;
32713let isCVI = 1;
32714let DecoderNamespace = "EXT_mmvec";
32715}
32716def V6_vcvt_uh_hf : HInst<
32717(outs HvxVR:$Vd32),
32718(ins HvxVR:$Vu32),
32719"$Vd32.uh = vcvt($Vu32.hf)",
32720tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32721let Inst{7-5} = 0b000;
32722let Inst{13-13} = 0b1;
32723let Inst{31-16} = 0b0001111000000101;
32724let hasNewValue = 1;
32725let opNewValue = 0;
32726let isCVI = 1;
32727let DecoderNamespace = "EXT_mmvec";
32728}
32729def V6_vd0 : HInst<
32730(outs HvxVR:$Vd32),
32731(ins),
32732"$Vd32 = #0",
32733CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
32734let hasNewValue = 1;
32735let opNewValue = 0;
32736let isCVI = 1;
32737let isPseudo = 1;
32738let isCodeGenOnly = 1;
32739let DecoderNamespace = "EXT_mmvec";
32740}
32741def V6_vdd0 : HInst<
32742(outs HvxWR:$Vdd32),
32743(ins),
32744"$Vdd32 = #0",
32745tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
32746let hasNewValue = 1;
32747let opNewValue = 0;
32748let isCVI = 1;
32749let isPseudo = 1;
32750let isCodeGenOnly = 1;
32751let DecoderNamespace = "EXT_mmvec";
32752}
32753def V6_vdeal : HInst<
32754(outs HvxVR:$Vy32, HvxVR:$Vx32),
32755(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
32756"vdeal($Vy32,$Vx32,$Rt32)",
32757tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
32758let Inst{7-5} = 0b010;
32759let Inst{13-13} = 0b1;
32760let Inst{31-21} = 0b00011001111;
32761let hasNewValue = 1;
32762let opNewValue = 0;
32763let hasNewValue2 = 1;
32764let opNewValue2 = 1;
32765let isCVI = 1;
32766let DecoderNamespace = "EXT_mmvec";
32767let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
32768}
32769def V6_vdealb : HInst<
32770(outs HvxVR:$Vd32),
32771(ins HvxVR:$Vu32),
32772"$Vd32.b = vdeal($Vu32.b)",
32773tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32774let Inst{7-5} = 0b111;
32775let Inst{13-13} = 0b0;
32776let Inst{31-16} = 0b0001111000000000;
32777let hasNewValue = 1;
32778let opNewValue = 0;
32779let isCVI = 1;
32780let DecoderNamespace = "EXT_mmvec";
32781}
32782def V6_vdealb4w : HInst<
32783(outs HvxVR:$Vd32),
32784(ins HvxVR:$Vu32, HvxVR:$Vv32),
32785"$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
32786tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32787let Inst{7-5} = 0b111;
32788let Inst{13-13} = 0b0;
32789let Inst{31-21} = 0b00011111001;
32790let hasNewValue = 1;
32791let opNewValue = 0;
32792let isCVI = 1;
32793let DecoderNamespace = "EXT_mmvec";
32794}
32795def V6_vdealb4w_alt : HInst<
32796(outs HvxVR:$Vd32),
32797(ins HvxVR:$Vu32, HvxVR:$Vv32),
32798"$Vd32 = vdealb4w($Vu32,$Vv32)",
32799PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32800let hasNewValue = 1;
32801let opNewValue = 0;
32802let isCVI = 1;
32803let isPseudo = 1;
32804let isCodeGenOnly = 1;
32805let DecoderNamespace = "EXT_mmvec";
32806}
32807def V6_vdealb_alt : HInst<
32808(outs HvxVR:$Vd32),
32809(ins HvxVR:$Vu32),
32810"$Vd32 = vdealb($Vu32)",
32811PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32812let hasNewValue = 1;
32813let opNewValue = 0;
32814let isCVI = 1;
32815let isPseudo = 1;
32816let isCodeGenOnly = 1;
32817let DecoderNamespace = "EXT_mmvec";
32818}
32819def V6_vdealh : HInst<
32820(outs HvxVR:$Vd32),
32821(ins HvxVR:$Vu32),
32822"$Vd32.h = vdeal($Vu32.h)",
32823tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32824let Inst{7-5} = 0b110;
32825let Inst{13-13} = 0b0;
32826let Inst{31-16} = 0b0001111000000000;
32827let hasNewValue = 1;
32828let opNewValue = 0;
32829let isCVI = 1;
32830let DecoderNamespace = "EXT_mmvec";
32831}
32832def V6_vdealh_alt : HInst<
32833(outs HvxVR:$Vd32),
32834(ins HvxVR:$Vu32),
32835"$Vd32 = vdealh($Vu32)",
32836PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32837let hasNewValue = 1;
32838let opNewValue = 0;
32839let isCVI = 1;
32840let isPseudo = 1;
32841let isCodeGenOnly = 1;
32842let DecoderNamespace = "EXT_mmvec";
32843}
32844def V6_vdealvdd : HInst<
32845(outs HvxWR:$Vdd32),
32846(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32847"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
32848tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32849let Inst{7-5} = 0b100;
32850let Inst{13-13} = 0b1;
32851let Inst{31-24} = 0b00011011;
32852let hasNewValue = 1;
32853let opNewValue = 0;
32854let isCVI = 1;
32855let DecoderNamespace = "EXT_mmvec";
32856}
32857def V6_vdelta : HInst<
32858(outs HvxVR:$Vd32),
32859(ins HvxVR:$Vu32, HvxVR:$Vv32),
32860"$Vd32 = vdelta($Vu32,$Vv32)",
32861tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32862let Inst{7-5} = 0b001;
32863let Inst{13-13} = 0b0;
32864let Inst{31-21} = 0b00011111001;
32865let hasNewValue = 1;
32866let opNewValue = 0;
32867let isCVI = 1;
32868let DecoderNamespace = "EXT_mmvec";
32869}
32870def V6_vdmpy_sf_hf : HInst<
32871(outs HvxVR:$Vd32),
32872(ins HvxVR:$Vu32, HvxVR:$Vv32),
32873"$Vd32.sf = vdmpy($Vu32.hf,$Vv32.hf)",
32874tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32875let Inst{7-5} = 0b110;
32876let Inst{13-13} = 0b1;
32877let Inst{31-21} = 0b00011111101;
32878let hasNewValue = 1;
32879let opNewValue = 0;
32880let isCVI = 1;
32881let DecoderNamespace = "EXT_mmvec";
32882}
32883def V6_vdmpy_sf_hf_acc : HInst<
32884(outs HvxVR:$Vx32),
32885(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
32886"$Vx32.sf += vdmpy($Vu32.hf,$Vv32.hf)",
32887tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32888let Inst{7-5} = 0b011;
32889let Inst{13-13} = 0b1;
32890let Inst{31-21} = 0b00011100010;
32891let hasNewValue = 1;
32892let opNewValue = 0;
32893let isAccumulator = 1;
32894let isCVI = 1;
32895let DecoderNamespace = "EXT_mmvec";
32896let Constraints = "$Vx32 = $Vx32in";
32897}
32898def V6_vdmpybus : HInst<
32899(outs HvxVR:$Vd32),
32900(ins HvxVR:$Vu32, IntRegs:$Rt32),
32901"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
32902tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32903let Inst{7-5} = 0b110;
32904let Inst{13-13} = 0b0;
32905let Inst{31-21} = 0b00011001000;
32906let hasNewValue = 1;
32907let opNewValue = 0;
32908let isCVI = 1;
32909let DecoderNamespace = "EXT_mmvec";
32910}
32911def V6_vdmpybus_acc : HInst<
32912(outs HvxVR:$Vx32),
32913(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32914"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
32915tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32916let Inst{7-5} = 0b110;
32917let Inst{13-13} = 0b1;
32918let Inst{31-21} = 0b00011001000;
32919let hasNewValue = 1;
32920let opNewValue = 0;
32921let isAccumulator = 1;
32922let isCVI = 1;
32923let DecoderNamespace = "EXT_mmvec";
32924let Constraints = "$Vx32 = $Vx32in";
32925}
32926def V6_vdmpybus_acc_alt : HInst<
32927(outs HvxVR:$Vx32),
32928(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32929"$Vx32 += vdmpybus($Vu32,$Rt32)",
32930PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32931let hasNewValue = 1;
32932let opNewValue = 0;
32933let isAccumulator = 1;
32934let isCVI = 1;
32935let isPseudo = 1;
32936let isCodeGenOnly = 1;
32937let DecoderNamespace = "EXT_mmvec";
32938let Constraints = "$Vx32 = $Vx32in";
32939}
32940def V6_vdmpybus_alt : HInst<
32941(outs HvxVR:$Vd32),
32942(ins HvxVR:$Vu32, IntRegs:$Rt32),
32943"$Vd32 = vdmpybus($Vu32,$Rt32)",
32944PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32945let hasNewValue = 1;
32946let opNewValue = 0;
32947let isCVI = 1;
32948let isPseudo = 1;
32949let isCodeGenOnly = 1;
32950let DecoderNamespace = "EXT_mmvec";
32951}
32952def V6_vdmpybus_dv : HInst<
32953(outs HvxWR:$Vdd32),
32954(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32955"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
32956tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32957let Inst{7-5} = 0b111;
32958let Inst{13-13} = 0b0;
32959let Inst{31-21} = 0b00011001000;
32960let hasNewValue = 1;
32961let opNewValue = 0;
32962let isCVI = 1;
32963let DecoderNamespace = "EXT_mmvec";
32964}
32965def V6_vdmpybus_dv_acc : HInst<
32966(outs HvxWR:$Vxx32),
32967(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32968"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
32969tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32970let Inst{7-5} = 0b111;
32971let Inst{13-13} = 0b1;
32972let Inst{31-21} = 0b00011001000;
32973let hasNewValue = 1;
32974let opNewValue = 0;
32975let isAccumulator = 1;
32976let isCVI = 1;
32977let DecoderNamespace = "EXT_mmvec";
32978let Constraints = "$Vxx32 = $Vxx32in";
32979}
32980def V6_vdmpybus_dv_acc_alt : HInst<
32981(outs HvxWR:$Vxx32),
32982(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32983"$Vxx32 += vdmpybus($Vuu32,$Rt32)",
32984PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32985let hasNewValue = 1;
32986let opNewValue = 0;
32987let isAccumulator = 1;
32988let isCVI = 1;
32989let isPseudo = 1;
32990let isCodeGenOnly = 1;
32991let DecoderNamespace = "EXT_mmvec";
32992let Constraints = "$Vxx32 = $Vxx32in";
32993}
32994def V6_vdmpybus_dv_alt : HInst<
32995(outs HvxWR:$Vdd32),
32996(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32997"$Vdd32 = vdmpybus($Vuu32,$Rt32)",
32998PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32999let hasNewValue = 1;
33000let opNewValue = 0;
33001let isCVI = 1;
33002let isPseudo = 1;
33003let isCodeGenOnly = 1;
33004let DecoderNamespace = "EXT_mmvec";
33005}
33006def V6_vdmpyhb : HInst<
33007(outs HvxVR:$Vd32),
33008(ins HvxVR:$Vu32, IntRegs:$Rt32),
33009"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
33010tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33011let Inst{7-5} = 0b010;
33012let Inst{13-13} = 0b0;
33013let Inst{31-21} = 0b00011001000;
33014let hasNewValue = 1;
33015let opNewValue = 0;
33016let isCVI = 1;
33017let DecoderNamespace = "EXT_mmvec";
33018}
33019def V6_vdmpyhb_acc : HInst<
33020(outs HvxVR:$Vx32),
33021(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33022"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
33023tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33024let Inst{7-5} = 0b011;
33025let Inst{13-13} = 0b1;
33026let Inst{31-21} = 0b00011001000;
33027let hasNewValue = 1;
33028let opNewValue = 0;
33029let isAccumulator = 1;
33030let isCVI = 1;
33031let DecoderNamespace = "EXT_mmvec";
33032let Constraints = "$Vx32 = $Vx32in";
33033}
33034def V6_vdmpyhb_acc_alt : HInst<
33035(outs HvxVR:$Vx32),
33036(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33037"$Vx32 += vdmpyhb($Vu32,$Rt32)",
33038PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33039let hasNewValue = 1;
33040let opNewValue = 0;
33041let isAccumulator = 1;
33042let isCVI = 1;
33043let isPseudo = 1;
33044let isCodeGenOnly = 1;
33045let DecoderNamespace = "EXT_mmvec";
33046let Constraints = "$Vx32 = $Vx32in";
33047}
33048def V6_vdmpyhb_alt : HInst<
33049(outs HvxVR:$Vd32),
33050(ins HvxVR:$Vu32, IntRegs:$Rt32),
33051"$Vd32 = vdmpyhb($Vu32,$Rt32)",
33052PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33053let hasNewValue = 1;
33054let opNewValue = 0;
33055let isCVI = 1;
33056let isPseudo = 1;
33057let isCodeGenOnly = 1;
33058let DecoderNamespace = "EXT_mmvec";
33059}
33060def V6_vdmpyhb_dv : HInst<
33061(outs HvxWR:$Vdd32),
33062(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33063"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
33064tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33065let Inst{7-5} = 0b100;
33066let Inst{13-13} = 0b0;
33067let Inst{31-21} = 0b00011001001;
33068let hasNewValue = 1;
33069let opNewValue = 0;
33070let isCVI = 1;
33071let DecoderNamespace = "EXT_mmvec";
33072}
33073def V6_vdmpyhb_dv_acc : HInst<
33074(outs HvxWR:$Vxx32),
33075(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33076"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
33077tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33078let Inst{7-5} = 0b100;
33079let Inst{13-13} = 0b1;
33080let Inst{31-21} = 0b00011001001;
33081let hasNewValue = 1;
33082let opNewValue = 0;
33083let isAccumulator = 1;
33084let isCVI = 1;
33085let DecoderNamespace = "EXT_mmvec";
33086let Constraints = "$Vxx32 = $Vxx32in";
33087}
33088def V6_vdmpyhb_dv_acc_alt : HInst<
33089(outs HvxWR:$Vxx32),
33090(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33091"$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
33092PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33093let hasNewValue = 1;
33094let opNewValue = 0;
33095let isAccumulator = 1;
33096let isCVI = 1;
33097let isPseudo = 1;
33098let isCodeGenOnly = 1;
33099let DecoderNamespace = "EXT_mmvec";
33100let Constraints = "$Vxx32 = $Vxx32in";
33101}
33102def V6_vdmpyhb_dv_alt : HInst<
33103(outs HvxWR:$Vdd32),
33104(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33105"$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
33106PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33107let hasNewValue = 1;
33108let opNewValue = 0;
33109let isCVI = 1;
33110let isPseudo = 1;
33111let isCodeGenOnly = 1;
33112let DecoderNamespace = "EXT_mmvec";
33113}
33114def V6_vdmpyhisat : HInst<
33115(outs HvxVR:$Vd32),
33116(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33117"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
33118tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
33119let Inst{7-5} = 0b011;
33120let Inst{13-13} = 0b0;
33121let Inst{31-21} = 0b00011001001;
33122let hasNewValue = 1;
33123let opNewValue = 0;
33124let isCVI = 1;
33125let DecoderNamespace = "EXT_mmvec";
33126}
33127def V6_vdmpyhisat_acc : HInst<
33128(outs HvxVR:$Vx32),
33129(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33130"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
33131tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
33132let Inst{7-5} = 0b010;
33133let Inst{13-13} = 0b1;
33134let Inst{31-21} = 0b00011001001;
33135let hasNewValue = 1;
33136let opNewValue = 0;
33137let isAccumulator = 1;
33138let isCVI = 1;
33139let DecoderNamespace = "EXT_mmvec";
33140let Constraints = "$Vx32 = $Vx32in";
33141}
33142def V6_vdmpyhisat_acc_alt : HInst<
33143(outs HvxVR:$Vx32),
33144(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33145"$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
33146PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33147let hasNewValue = 1;
33148let opNewValue = 0;
33149let isAccumulator = 1;
33150let isCVI = 1;
33151let isPseudo = 1;
33152let isCodeGenOnly = 1;
33153let DecoderNamespace = "EXT_mmvec";
33154let Constraints = "$Vx32 = $Vx32in";
33155}
33156def V6_vdmpyhisat_alt : HInst<
33157(outs HvxVR:$Vd32),
33158(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33159"$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
33160PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33161let hasNewValue = 1;
33162let opNewValue = 0;
33163let isCVI = 1;
33164let isPseudo = 1;
33165let isCodeGenOnly = 1;
33166let DecoderNamespace = "EXT_mmvec";
33167}
33168def V6_vdmpyhsat : HInst<
33169(outs HvxVR:$Vd32),
33170(ins HvxVR:$Vu32, IntRegs:$Rt32),
33171"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
33172tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33173let Inst{7-5} = 0b010;
33174let Inst{13-13} = 0b0;
33175let Inst{31-21} = 0b00011001001;
33176let hasNewValue = 1;
33177let opNewValue = 0;
33178let isCVI = 1;
33179let DecoderNamespace = "EXT_mmvec";
33180}
33181def V6_vdmpyhsat_acc : HInst<
33182(outs HvxVR:$Vx32),
33183(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33184"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
33185tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33186let Inst{7-5} = 0b011;
33187let Inst{13-13} = 0b1;
33188let Inst{31-21} = 0b00011001001;
33189let hasNewValue = 1;
33190let opNewValue = 0;
33191let isAccumulator = 1;
33192let isCVI = 1;
33193let DecoderNamespace = "EXT_mmvec";
33194let Constraints = "$Vx32 = $Vx32in";
33195}
33196def V6_vdmpyhsat_acc_alt : HInst<
33197(outs HvxVR:$Vx32),
33198(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33199"$Vx32 += vdmpyh($Vu32,$Rt32):sat",
33200PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33201let hasNewValue = 1;
33202let opNewValue = 0;
33203let isAccumulator = 1;
33204let isCVI = 1;
33205let isPseudo = 1;
33206let isCodeGenOnly = 1;
33207let DecoderNamespace = "EXT_mmvec";
33208let Constraints = "$Vx32 = $Vx32in";
33209}
33210def V6_vdmpyhsat_alt : HInst<
33211(outs HvxVR:$Vd32),
33212(ins HvxVR:$Vu32, IntRegs:$Rt32),
33213"$Vd32 = vdmpyh($Vu32,$Rt32):sat",
33214PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33215let hasNewValue = 1;
33216let opNewValue = 0;
33217let isCVI = 1;
33218let isPseudo = 1;
33219let isCodeGenOnly = 1;
33220let DecoderNamespace = "EXT_mmvec";
33221}
33222def V6_vdmpyhsuisat : HInst<
33223(outs HvxVR:$Vd32),
33224(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33225"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
33226tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
33227let Inst{7-5} = 0b001;
33228let Inst{13-13} = 0b0;
33229let Inst{31-21} = 0b00011001001;
33230let hasNewValue = 1;
33231let opNewValue = 0;
33232let isCVI = 1;
33233let DecoderNamespace = "EXT_mmvec";
33234}
33235def V6_vdmpyhsuisat_acc : HInst<
33236(outs HvxVR:$Vx32),
33237(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33238"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
33239tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
33240let Inst{7-5} = 0b001;
33241let Inst{13-13} = 0b1;
33242let Inst{31-21} = 0b00011001001;
33243let hasNewValue = 1;
33244let opNewValue = 0;
33245let isAccumulator = 1;
33246let isCVI = 1;
33247let DecoderNamespace = "EXT_mmvec";
33248let Constraints = "$Vx32 = $Vx32in";
33249}
33250def V6_vdmpyhsuisat_acc_alt : HInst<
33251(outs HvxVR:$Vx32),
33252(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33253"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
33254PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33255let hasNewValue = 1;
33256let opNewValue = 0;
33257let isAccumulator = 1;
33258let isCVI = 1;
33259let isPseudo = 1;
33260let isCodeGenOnly = 1;
33261let DecoderNamespace = "EXT_mmvec";
33262let Constraints = "$Vx32 = $Vx32in";
33263}
33264def V6_vdmpyhsuisat_alt : HInst<
33265(outs HvxVR:$Vd32),
33266(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33267"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
33268PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33269let hasNewValue = 1;
33270let opNewValue = 0;
33271let isCVI = 1;
33272let isPseudo = 1;
33273let isCodeGenOnly = 1;
33274let DecoderNamespace = "EXT_mmvec";
33275}
33276def V6_vdmpyhsusat : HInst<
33277(outs HvxVR:$Vd32),
33278(ins HvxVR:$Vu32, IntRegs:$Rt32),
33279"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
33280tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33281let Inst{7-5} = 0b000;
33282let Inst{13-13} = 0b0;
33283let Inst{31-21} = 0b00011001001;
33284let hasNewValue = 1;
33285let opNewValue = 0;
33286let isCVI = 1;
33287let DecoderNamespace = "EXT_mmvec";
33288}
33289def V6_vdmpyhsusat_acc : HInst<
33290(outs HvxVR:$Vx32),
33291(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33292"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
33293tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33294let Inst{7-5} = 0b000;
33295let Inst{13-13} = 0b1;
33296let Inst{31-21} = 0b00011001001;
33297let hasNewValue = 1;
33298let opNewValue = 0;
33299let isAccumulator = 1;
33300let isCVI = 1;
33301let DecoderNamespace = "EXT_mmvec";
33302let Constraints = "$Vx32 = $Vx32in";
33303}
33304def V6_vdmpyhsusat_acc_alt : HInst<
33305(outs HvxVR:$Vx32),
33306(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33307"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
33308PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33309let hasNewValue = 1;
33310let opNewValue = 0;
33311let isAccumulator = 1;
33312let isCVI = 1;
33313let isPseudo = 1;
33314let isCodeGenOnly = 1;
33315let DecoderNamespace = "EXT_mmvec";
33316let Constraints = "$Vx32 = $Vx32in";
33317}
33318def V6_vdmpyhsusat_alt : HInst<
33319(outs HvxVR:$Vd32),
33320(ins HvxVR:$Vu32, IntRegs:$Rt32),
33321"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
33322PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33323let hasNewValue = 1;
33324let opNewValue = 0;
33325let isCVI = 1;
33326let isPseudo = 1;
33327let isCodeGenOnly = 1;
33328let DecoderNamespace = "EXT_mmvec";
33329}
33330def V6_vdmpyhvsat : HInst<
33331(outs HvxVR:$Vd32),
33332(ins HvxVR:$Vu32, HvxVR:$Vv32),
33333"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
33334tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
33335let Inst{7-5} = 0b011;
33336let Inst{13-13} = 0b0;
33337let Inst{31-21} = 0b00011100000;
33338let hasNewValue = 1;
33339let opNewValue = 0;
33340let isCVI = 1;
33341let DecoderNamespace = "EXT_mmvec";
33342}
33343def V6_vdmpyhvsat_acc : HInst<
33344(outs HvxVR:$Vx32),
33345(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33346"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
33347tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33348let Inst{7-5} = 0b011;
33349let Inst{13-13} = 0b1;
33350let Inst{31-21} = 0b00011100000;
33351let hasNewValue = 1;
33352let opNewValue = 0;
33353let isAccumulator = 1;
33354let isCVI = 1;
33355let DecoderNamespace = "EXT_mmvec";
33356let Constraints = "$Vx32 = $Vx32in";
33357}
33358def V6_vdmpyhvsat_acc_alt : HInst<
33359(outs HvxVR:$Vx32),
33360(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33361"$Vx32 += vdmpyh($Vu32,$Vv32):sat",
33362PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33363let hasNewValue = 1;
33364let opNewValue = 0;
33365let isAccumulator = 1;
33366let isCVI = 1;
33367let isPseudo = 1;
33368let isCodeGenOnly = 1;
33369let DecoderNamespace = "EXT_mmvec";
33370let Constraints = "$Vx32 = $Vx32in";
33371}
33372def V6_vdmpyhvsat_alt : HInst<
33373(outs HvxVR:$Vd32),
33374(ins HvxVR:$Vu32, HvxVR:$Vv32),
33375"$Vd32 = vdmpyh($Vu32,$Vv32):sat",
33376PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33377let hasNewValue = 1;
33378let opNewValue = 0;
33379let isCVI = 1;
33380let isPseudo = 1;
33381let isCodeGenOnly = 1;
33382let DecoderNamespace = "EXT_mmvec";
33383}
33384def V6_vdsaduh : HInst<
33385(outs HvxWR:$Vdd32),
33386(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33387"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
33388tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33389let Inst{7-5} = 0b101;
33390let Inst{13-13} = 0b0;
33391let Inst{31-21} = 0b00011001000;
33392let hasNewValue = 1;
33393let opNewValue = 0;
33394let isCVI = 1;
33395let DecoderNamespace = "EXT_mmvec";
33396}
33397def V6_vdsaduh_acc : HInst<
33398(outs HvxWR:$Vxx32),
33399(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33400"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
33401tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33402let Inst{7-5} = 0b000;
33403let Inst{13-13} = 0b1;
33404let Inst{31-21} = 0b00011001011;
33405let hasNewValue = 1;
33406let opNewValue = 0;
33407let isAccumulator = 1;
33408let isCVI = 1;
33409let DecoderNamespace = "EXT_mmvec";
33410let Constraints = "$Vxx32 = $Vxx32in";
33411}
33412def V6_vdsaduh_acc_alt : HInst<
33413(outs HvxWR:$Vxx32),
33414(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33415"$Vxx32 += vdsaduh($Vuu32,$Rt32)",
33416PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33417let hasNewValue = 1;
33418let opNewValue = 0;
33419let isAccumulator = 1;
33420let isCVI = 1;
33421let isPseudo = 1;
33422let isCodeGenOnly = 1;
33423let DecoderNamespace = "EXT_mmvec";
33424let Constraints = "$Vxx32 = $Vxx32in";
33425}
33426def V6_vdsaduh_alt : HInst<
33427(outs HvxWR:$Vdd32),
33428(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33429"$Vdd32 = vdsaduh($Vuu32,$Rt32)",
33430PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33431let hasNewValue = 1;
33432let opNewValue = 0;
33433let isCVI = 1;
33434let isPseudo = 1;
33435let isCodeGenOnly = 1;
33436let DecoderNamespace = "EXT_mmvec";
33437}
33438def V6_veqb : HInst<
33439(outs HvxQR:$Qd4),
33440(ins HvxVR:$Vu32, HvxVR:$Vv32),
33441"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
33442tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33443let Inst{7-2} = 0b000000;
33444let Inst{13-13} = 0b0;
33445let Inst{31-21} = 0b00011111100;
33446let hasNewValue = 1;
33447let opNewValue = 0;
33448let isCVI = 1;
33449let isHVXALU = 1;
33450let isHVXALU2SRC = 1;
33451let DecoderNamespace = "EXT_mmvec";
33452}
33453def V6_veqb_and : HInst<
33454(outs HvxQR:$Qx4),
33455(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33456"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
33457tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33458let Inst{7-2} = 0b000000;
33459let Inst{13-13} = 0b1;
33460let Inst{31-21} = 0b00011100100;
33461let isCVI = 1;
33462let isHVXALU = 1;
33463let isHVXALU2SRC = 1;
33464let DecoderNamespace = "EXT_mmvec";
33465let Constraints = "$Qx4 = $Qx4in";
33466}
33467def V6_veqb_or : HInst<
33468(outs HvxQR:$Qx4),
33469(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33470"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
33471tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33472let Inst{7-2} = 0b010000;
33473let Inst{13-13} = 0b1;
33474let Inst{31-21} = 0b00011100100;
33475let isAccumulator = 1;
33476let isCVI = 1;
33477let isHVXALU = 1;
33478let isHVXALU2SRC = 1;
33479let DecoderNamespace = "EXT_mmvec";
33480let Constraints = "$Qx4 = $Qx4in";
33481}
33482def V6_veqb_xor : HInst<
33483(outs HvxQR:$Qx4),
33484(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33485"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
33486tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33487let Inst{7-2} = 0b100000;
33488let Inst{13-13} = 0b1;
33489let Inst{31-21} = 0b00011100100;
33490let isCVI = 1;
33491let isHVXALU = 1;
33492let isHVXALU2SRC = 1;
33493let DecoderNamespace = "EXT_mmvec";
33494let Constraints = "$Qx4 = $Qx4in";
33495}
33496def V6_veqh : HInst<
33497(outs HvxQR:$Qd4),
33498(ins HvxVR:$Vu32, HvxVR:$Vv32),
33499"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
33500tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33501let Inst{7-2} = 0b000001;
33502let Inst{13-13} = 0b0;
33503let Inst{31-21} = 0b00011111100;
33504let hasNewValue = 1;
33505let opNewValue = 0;
33506let isCVI = 1;
33507let isHVXALU = 1;
33508let isHVXALU2SRC = 1;
33509let DecoderNamespace = "EXT_mmvec";
33510}
33511def V6_veqh_and : HInst<
33512(outs HvxQR:$Qx4),
33513(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33514"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
33515tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33516let Inst{7-2} = 0b000001;
33517let Inst{13-13} = 0b1;
33518let Inst{31-21} = 0b00011100100;
33519let isCVI = 1;
33520let isHVXALU = 1;
33521let isHVXALU2SRC = 1;
33522let DecoderNamespace = "EXT_mmvec";
33523let Constraints = "$Qx4 = $Qx4in";
33524}
33525def V6_veqh_or : HInst<
33526(outs HvxQR:$Qx4),
33527(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33528"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
33529tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33530let Inst{7-2} = 0b010001;
33531let Inst{13-13} = 0b1;
33532let Inst{31-21} = 0b00011100100;
33533let isAccumulator = 1;
33534let isCVI = 1;
33535let isHVXALU = 1;
33536let isHVXALU2SRC = 1;
33537let DecoderNamespace = "EXT_mmvec";
33538let Constraints = "$Qx4 = $Qx4in";
33539}
33540def V6_veqh_xor : HInst<
33541(outs HvxQR:$Qx4),
33542(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33543"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
33544tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33545let Inst{7-2} = 0b100001;
33546let Inst{13-13} = 0b1;
33547let Inst{31-21} = 0b00011100100;
33548let isCVI = 1;
33549let isHVXALU = 1;
33550let isHVXALU2SRC = 1;
33551let DecoderNamespace = "EXT_mmvec";
33552let Constraints = "$Qx4 = $Qx4in";
33553}
33554def V6_veqw : HInst<
33555(outs HvxQR:$Qd4),
33556(ins HvxVR:$Vu32, HvxVR:$Vv32),
33557"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
33558tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33559let Inst{7-2} = 0b000010;
33560let Inst{13-13} = 0b0;
33561let Inst{31-21} = 0b00011111100;
33562let hasNewValue = 1;
33563let opNewValue = 0;
33564let isCVI = 1;
33565let isHVXALU = 1;
33566let isHVXALU2SRC = 1;
33567let DecoderNamespace = "EXT_mmvec";
33568}
33569def V6_veqw_and : HInst<
33570(outs HvxQR:$Qx4),
33571(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33572"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
33573tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33574let Inst{7-2} = 0b000010;
33575let Inst{13-13} = 0b1;
33576let Inst{31-21} = 0b00011100100;
33577let isCVI = 1;
33578let isHVXALU = 1;
33579let isHVXALU2SRC = 1;
33580let DecoderNamespace = "EXT_mmvec";
33581let Constraints = "$Qx4 = $Qx4in";
33582}
33583def V6_veqw_or : HInst<
33584(outs HvxQR:$Qx4),
33585(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33586"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
33587tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33588let Inst{7-2} = 0b010010;
33589let Inst{13-13} = 0b1;
33590let Inst{31-21} = 0b00011100100;
33591let isAccumulator = 1;
33592let isCVI = 1;
33593let isHVXALU = 1;
33594let isHVXALU2SRC = 1;
33595let DecoderNamespace = "EXT_mmvec";
33596let Constraints = "$Qx4 = $Qx4in";
33597}
33598def V6_veqw_xor : HInst<
33599(outs HvxQR:$Qx4),
33600(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33601"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
33602tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33603let Inst{7-2} = 0b100010;
33604let Inst{13-13} = 0b1;
33605let Inst{31-21} = 0b00011100100;
33606let isCVI = 1;
33607let isHVXALU = 1;
33608let isHVXALU2SRC = 1;
33609let DecoderNamespace = "EXT_mmvec";
33610let Constraints = "$Qx4 = $Qx4in";
33611}
33612def V6_vfmax_hf : HInst<
33613(outs HvxVR:$Vd32),
33614(ins HvxVR:$Vu32, HvxVR:$Vv32),
33615"$Vd32.hf = vfmax($Vu32.hf,$Vv32.hf)",
33616tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33617let Inst{7-5} = 0b010;
33618let Inst{13-13} = 0b1;
33619let Inst{31-21} = 0b00011100011;
33620let hasNewValue = 1;
33621let opNewValue = 0;
33622let isCVI = 1;
33623let DecoderNamespace = "EXT_mmvec";
33624}
33625def V6_vfmax_sf : HInst<
33626(outs HvxVR:$Vd32),
33627(ins HvxVR:$Vu32, HvxVR:$Vv32),
33628"$Vd32.sf = vfmax($Vu32.sf,$Vv32.sf)",
33629tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33630let Inst{7-5} = 0b011;
33631let Inst{13-13} = 0b1;
33632let Inst{31-21} = 0b00011100011;
33633let hasNewValue = 1;
33634let opNewValue = 0;
33635let isCVI = 1;
33636let DecoderNamespace = "EXT_mmvec";
33637}
33638def V6_vfmin_hf : HInst<
33639(outs HvxVR:$Vd32),
33640(ins HvxVR:$Vu32, HvxVR:$Vv32),
33641"$Vd32.hf = vfmin($Vu32.hf,$Vv32.hf)",
33642tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33643let Inst{7-5} = 0b000;
33644let Inst{13-13} = 0b1;
33645let Inst{31-21} = 0b00011100011;
33646let hasNewValue = 1;
33647let opNewValue = 0;
33648let isCVI = 1;
33649let DecoderNamespace = "EXT_mmvec";
33650}
33651def V6_vfmin_sf : HInst<
33652(outs HvxVR:$Vd32),
33653(ins HvxVR:$Vu32, HvxVR:$Vv32),
33654"$Vd32.sf = vfmin($Vu32.sf,$Vv32.sf)",
33655tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33656let Inst{7-5} = 0b001;
33657let Inst{13-13} = 0b1;
33658let Inst{31-21} = 0b00011100011;
33659let hasNewValue = 1;
33660let opNewValue = 0;
33661let isCVI = 1;
33662let DecoderNamespace = "EXT_mmvec";
33663}
33664def V6_vfneg_hf : HInst<
33665(outs HvxVR:$Vd32),
33666(ins HvxVR:$Vu32),
33667"$Vd32.hf = vfneg($Vu32.hf)",
33668tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33669let Inst{7-5} = 0b010;
33670let Inst{13-13} = 0b1;
33671let Inst{31-16} = 0b0001111000000110;
33672let hasNewValue = 1;
33673let opNewValue = 0;
33674let isCVI = 1;
33675let DecoderNamespace = "EXT_mmvec";
33676}
33677def V6_vfneg_sf : HInst<
33678(outs HvxVR:$Vd32),
33679(ins HvxVR:$Vu32),
33680"$Vd32.sf = vfneg($Vu32.sf)",
33681tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33682let Inst{7-5} = 0b011;
33683let Inst{13-13} = 0b1;
33684let Inst{31-16} = 0b0001111000000110;
33685let hasNewValue = 1;
33686let opNewValue = 0;
33687let isCVI = 1;
33688let DecoderNamespace = "EXT_mmvec";
33689}
33690def V6_vgathermh : HInst<
33691(outs),
33692(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33693"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33694tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33695let Inst{12-5} = 0b00001000;
33696let Inst{31-21} = 0b00101111000;
33697let hasNewValue = 1;
33698let opNewValue = 0;
33699let accessSize = HalfWordAccess;
33700let isCVLoad = 1;
33701let isCVI = 1;
33702let isHVXALU = 1;
33703let mayLoad = 1;
33704let Defs = [VTMP];
33705let DecoderNamespace = "EXT_mmvec";
33706}
33707def V6_vgathermhq : HInst<
33708(outs),
33709(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33710"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33711tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33712let Inst{12-7} = 0b001010;
33713let Inst{31-21} = 0b00101111000;
33714let hasNewValue = 1;
33715let opNewValue = 0;
33716let accessSize = HalfWordAccess;
33717let isCVLoad = 1;
33718let isCVI = 1;
33719let isHVXALU = 1;
33720let mayLoad = 1;
33721let Defs = [VTMP];
33722let DecoderNamespace = "EXT_mmvec";
33723}
33724def V6_vgathermhw : HInst<
33725(outs),
33726(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33727"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33728tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> {
33729let Inst{12-5} = 0b00010000;
33730let Inst{31-21} = 0b00101111000;
33731let hasNewValue = 1;
33732let opNewValue = 0;
33733let accessSize = HalfWordAccess;
33734let isCVLoad = 1;
33735let isCVI = 1;
33736let mayLoad = 1;
33737let Defs = [VTMP];
33738let DecoderNamespace = "EXT_mmvec";
33739}
33740def V6_vgathermhwq : HInst<
33741(outs),
33742(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33743"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33744tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> {
33745let Inst{12-7} = 0b001100;
33746let Inst{31-21} = 0b00101111000;
33747let hasNewValue = 1;
33748let opNewValue = 0;
33749let accessSize = HalfWordAccess;
33750let isCVLoad = 1;
33751let isCVI = 1;
33752let mayLoad = 1;
33753let Defs = [VTMP];
33754let DecoderNamespace = "EXT_mmvec";
33755}
33756def V6_vgathermw : HInst<
33757(outs),
33758(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33759"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33760tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33761let Inst{12-5} = 0b00000000;
33762let Inst{31-21} = 0b00101111000;
33763let hasNewValue = 1;
33764let opNewValue = 0;
33765let accessSize = WordAccess;
33766let isCVLoad = 1;
33767let isCVI = 1;
33768let isHVXALU = 1;
33769let mayLoad = 1;
33770let Defs = [VTMP];
33771let DecoderNamespace = "EXT_mmvec";
33772}
33773def V6_vgathermwq : HInst<
33774(outs),
33775(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33776"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33777tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33778let Inst{12-7} = 0b001000;
33779let Inst{31-21} = 0b00101111000;
33780let hasNewValue = 1;
33781let opNewValue = 0;
33782let accessSize = WordAccess;
33783let isCVLoad = 1;
33784let isCVI = 1;
33785let isHVXALU = 1;
33786let mayLoad = 1;
33787let Defs = [VTMP];
33788let DecoderNamespace = "EXT_mmvec";
33789}
33790def V6_vgtb : HInst<
33791(outs HvxQR:$Qd4),
33792(ins HvxVR:$Vu32, HvxVR:$Vv32),
33793"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
33794tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33795let Inst{7-2} = 0b000100;
33796let Inst{13-13} = 0b0;
33797let Inst{31-21} = 0b00011111100;
33798let hasNewValue = 1;
33799let opNewValue = 0;
33800let isCVI = 1;
33801let isHVXALU = 1;
33802let isHVXALU2SRC = 1;
33803let DecoderNamespace = "EXT_mmvec";
33804}
33805def V6_vgtb_and : HInst<
33806(outs HvxQR:$Qx4),
33807(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33808"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
33809tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33810let Inst{7-2} = 0b000100;
33811let Inst{13-13} = 0b1;
33812let Inst{31-21} = 0b00011100100;
33813let isCVI = 1;
33814let isHVXALU = 1;
33815let isHVXALU2SRC = 1;
33816let DecoderNamespace = "EXT_mmvec";
33817let Constraints = "$Qx4 = $Qx4in";
33818}
33819def V6_vgtb_or : HInst<
33820(outs HvxQR:$Qx4),
33821(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33822"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
33823tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33824let Inst{7-2} = 0b010100;
33825let Inst{13-13} = 0b1;
33826let Inst{31-21} = 0b00011100100;
33827let isAccumulator = 1;
33828let isCVI = 1;
33829let isHVXALU = 1;
33830let isHVXALU2SRC = 1;
33831let DecoderNamespace = "EXT_mmvec";
33832let Constraints = "$Qx4 = $Qx4in";
33833}
33834def V6_vgtb_xor : HInst<
33835(outs HvxQR:$Qx4),
33836(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33837"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
33838tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33839let Inst{7-2} = 0b100100;
33840let Inst{13-13} = 0b1;
33841let Inst{31-21} = 0b00011100100;
33842let isCVI = 1;
33843let isHVXALU = 1;
33844let isHVXALU2SRC = 1;
33845let DecoderNamespace = "EXT_mmvec";
33846let Constraints = "$Qx4 = $Qx4in";
33847}
33848def V6_vgtbf : HInst<
33849(outs HvxQR:$Qd4),
33850(ins HvxVR:$Vu32, HvxVR:$Vv32),
33851"$Qd4 = vcmp.gt($Vu32.bf,$Vv32.bf)",
33852tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV73,UseHVXQFloat]> {
33853let Inst{7-2} = 0b011110;
33854let Inst{13-13} = 0b1;
33855let Inst{31-21} = 0b00011100100;
33856let hasNewValue = 1;
33857let opNewValue = 0;
33858let isCVI = 1;
33859let isHVXALU = 1;
33860let isHVXALU2SRC = 1;
33861let DecoderNamespace = "EXT_mmvec";
33862}
33863def V6_vgtbf_and : HInst<
33864(outs HvxQR:$Qx4),
33865(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33866"$Qx4 &= vcmp.gt($Vu32.bf,$Vv32.bf)",
33867tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33868let Inst{7-2} = 0b110100;
33869let Inst{13-13} = 0b1;
33870let Inst{31-21} = 0b00011100100;
33871let isCVI = 1;
33872let isHVXALU = 1;
33873let isHVXALU2SRC = 1;
33874let DecoderNamespace = "EXT_mmvec";
33875let Constraints = "$Qx4 = $Qx4in";
33876}
33877def V6_vgtbf_or : HInst<
33878(outs HvxQR:$Qx4),
33879(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33880"$Qx4 |= vcmp.gt($Vu32.bf,$Vv32.bf)",
33881tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33882let Inst{7-2} = 0b001110;
33883let Inst{13-13} = 0b1;
33884let Inst{31-21} = 0b00011100100;
33885let isAccumulator = 1;
33886let isCVI = 1;
33887let isHVXALU = 1;
33888let isHVXALU2SRC = 1;
33889let DecoderNamespace = "EXT_mmvec";
33890let Constraints = "$Qx4 = $Qx4in";
33891}
33892def V6_vgtbf_xor : HInst<
33893(outs HvxQR:$Qx4),
33894(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33895"$Qx4 ^= vcmp.gt($Vu32.bf,$Vv32.bf)",
33896tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33897let Inst{7-2} = 0b111100;
33898let Inst{13-13} = 0b1;
33899let Inst{31-21} = 0b00011100100;
33900let isCVI = 1;
33901let isHVXALU = 1;
33902let isHVXALU2SRC = 1;
33903let DecoderNamespace = "EXT_mmvec";
33904let Constraints = "$Qx4 = $Qx4in";
33905}
33906def V6_vgth : HInst<
33907(outs HvxQR:$Qd4),
33908(ins HvxVR:$Vu32, HvxVR:$Vv32),
33909"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
33910tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33911let Inst{7-2} = 0b000101;
33912let Inst{13-13} = 0b0;
33913let Inst{31-21} = 0b00011111100;
33914let hasNewValue = 1;
33915let opNewValue = 0;
33916let isCVI = 1;
33917let isHVXALU = 1;
33918let isHVXALU2SRC = 1;
33919let DecoderNamespace = "EXT_mmvec";
33920}
33921def V6_vgth_and : HInst<
33922(outs HvxQR:$Qx4),
33923(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33924"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
33925tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33926let Inst{7-2} = 0b000101;
33927let Inst{13-13} = 0b1;
33928let Inst{31-21} = 0b00011100100;
33929let isCVI = 1;
33930let isHVXALU = 1;
33931let isHVXALU2SRC = 1;
33932let DecoderNamespace = "EXT_mmvec";
33933let Constraints = "$Qx4 = $Qx4in";
33934}
33935def V6_vgth_or : HInst<
33936(outs HvxQR:$Qx4),
33937(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33938"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
33939tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33940let Inst{7-2} = 0b010101;
33941let Inst{13-13} = 0b1;
33942let Inst{31-21} = 0b00011100100;
33943let isAccumulator = 1;
33944let isCVI = 1;
33945let isHVXALU = 1;
33946let isHVXALU2SRC = 1;
33947let DecoderNamespace = "EXT_mmvec";
33948let Constraints = "$Qx4 = $Qx4in";
33949}
33950def V6_vgth_xor : HInst<
33951(outs HvxQR:$Qx4),
33952(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33953"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
33954tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33955let Inst{7-2} = 0b100101;
33956let Inst{13-13} = 0b1;
33957let Inst{31-21} = 0b00011100100;
33958let isCVI = 1;
33959let isHVXALU = 1;
33960let isHVXALU2SRC = 1;
33961let DecoderNamespace = "EXT_mmvec";
33962let Constraints = "$Qx4 = $Qx4in";
33963}
33964def V6_vgthf : HInst<
33965(outs HvxQR:$Qd4),
33966(ins HvxVR:$Vu32, HvxVR:$Vv32),
33967"$Qd4 = vcmp.gt($Vu32.hf,$Vv32.hf)",
33968tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33969let Inst{7-2} = 0b011101;
33970let Inst{13-13} = 0b1;
33971let Inst{31-21} = 0b00011100100;
33972let hasNewValue = 1;
33973let opNewValue = 0;
33974let isCVI = 1;
33975let isHVXALU = 1;
33976let isHVXALU2SRC = 1;
33977let DecoderNamespace = "EXT_mmvec";
33978}
33979def V6_vgthf_and : HInst<
33980(outs HvxQR:$Qx4),
33981(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33982"$Qx4 &= vcmp.gt($Vu32.hf,$Vv32.hf)",
33983tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33984let Inst{7-2} = 0b110011;
33985let Inst{13-13} = 0b1;
33986let Inst{31-21} = 0b00011100100;
33987let isCVI = 1;
33988let isHVXALU = 1;
33989let isHVXALU2SRC = 1;
33990let DecoderNamespace = "EXT_mmvec";
33991let Constraints = "$Qx4 = $Qx4in";
33992}
33993def V6_vgthf_or : HInst<
33994(outs HvxQR:$Qx4),
33995(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33996"$Qx4 |= vcmp.gt($Vu32.hf,$Vv32.hf)",
33997tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33998let Inst{7-2} = 0b001101;
33999let Inst{13-13} = 0b1;
34000let Inst{31-21} = 0b00011100100;
34001let isAccumulator = 1;
34002let isCVI = 1;
34003let isHVXALU = 1;
34004let isHVXALU2SRC = 1;
34005let DecoderNamespace = "EXT_mmvec";
34006let Constraints = "$Qx4 = $Qx4in";
34007}
34008def V6_vgthf_xor : HInst<
34009(outs HvxQR:$Qx4),
34010(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34011"$Qx4 ^= vcmp.gt($Vu32.hf,$Vv32.hf)",
34012tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34013let Inst{7-2} = 0b111011;
34014let Inst{13-13} = 0b1;
34015let Inst{31-21} = 0b00011100100;
34016let isCVI = 1;
34017let isHVXALU = 1;
34018let isHVXALU2SRC = 1;
34019let DecoderNamespace = "EXT_mmvec";
34020let Constraints = "$Qx4 = $Qx4in";
34021}
34022def V6_vgtsf : HInst<
34023(outs HvxQR:$Qd4),
34024(ins HvxVR:$Vu32, HvxVR:$Vv32),
34025"$Qd4 = vcmp.gt($Vu32.sf,$Vv32.sf)",
34026tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34027let Inst{7-2} = 0b011100;
34028let Inst{13-13} = 0b1;
34029let Inst{31-21} = 0b00011100100;
34030let hasNewValue = 1;
34031let opNewValue = 0;
34032let isCVI = 1;
34033let isHVXALU = 1;
34034let isHVXALU2SRC = 1;
34035let DecoderNamespace = "EXT_mmvec";
34036}
34037def V6_vgtsf_and : HInst<
34038(outs HvxQR:$Qx4),
34039(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34040"$Qx4 &= vcmp.gt($Vu32.sf,$Vv32.sf)",
34041tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34042let Inst{7-2} = 0b110010;
34043let Inst{13-13} = 0b1;
34044let Inst{31-21} = 0b00011100100;
34045let isCVI = 1;
34046let isHVXALU = 1;
34047let isHVXALU2SRC = 1;
34048let DecoderNamespace = "EXT_mmvec";
34049let Constraints = "$Qx4 = $Qx4in";
34050}
34051def V6_vgtsf_or : HInst<
34052(outs HvxQR:$Qx4),
34053(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34054"$Qx4 |= vcmp.gt($Vu32.sf,$Vv32.sf)",
34055tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34056let Inst{7-2} = 0b001100;
34057let Inst{13-13} = 0b1;
34058let Inst{31-21} = 0b00011100100;
34059let isAccumulator = 1;
34060let isCVI = 1;
34061let isHVXALU = 1;
34062let isHVXALU2SRC = 1;
34063let DecoderNamespace = "EXT_mmvec";
34064let Constraints = "$Qx4 = $Qx4in";
34065}
34066def V6_vgtsf_xor : HInst<
34067(outs HvxQR:$Qx4),
34068(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34069"$Qx4 ^= vcmp.gt($Vu32.sf,$Vv32.sf)",
34070tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34071let Inst{7-2} = 0b111010;
34072let Inst{13-13} = 0b1;
34073let Inst{31-21} = 0b00011100100;
34074let isCVI = 1;
34075let isHVXALU = 1;
34076let isHVXALU2SRC = 1;
34077let DecoderNamespace = "EXT_mmvec";
34078let Constraints = "$Qx4 = $Qx4in";
34079}
34080def V6_vgtub : HInst<
34081(outs HvxQR:$Qd4),
34082(ins HvxVR:$Vu32, HvxVR:$Vv32),
34083"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
34084tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34085let Inst{7-2} = 0b001000;
34086let Inst{13-13} = 0b0;
34087let Inst{31-21} = 0b00011111100;
34088let hasNewValue = 1;
34089let opNewValue = 0;
34090let isCVI = 1;
34091let isHVXALU = 1;
34092let isHVXALU2SRC = 1;
34093let DecoderNamespace = "EXT_mmvec";
34094}
34095def V6_vgtub_and : HInst<
34096(outs HvxQR:$Qx4),
34097(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34098"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
34099tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34100let Inst{7-2} = 0b001000;
34101let Inst{13-13} = 0b1;
34102let Inst{31-21} = 0b00011100100;
34103let isCVI = 1;
34104let isHVXALU = 1;
34105let isHVXALU2SRC = 1;
34106let DecoderNamespace = "EXT_mmvec";
34107let Constraints = "$Qx4 = $Qx4in";
34108}
34109def V6_vgtub_or : HInst<
34110(outs HvxQR:$Qx4),
34111(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34112"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
34113tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34114let Inst{7-2} = 0b011000;
34115let Inst{13-13} = 0b1;
34116let Inst{31-21} = 0b00011100100;
34117let isAccumulator = 1;
34118let isCVI = 1;
34119let isHVXALU = 1;
34120let isHVXALU2SRC = 1;
34121let DecoderNamespace = "EXT_mmvec";
34122let Constraints = "$Qx4 = $Qx4in";
34123}
34124def V6_vgtub_xor : HInst<
34125(outs HvxQR:$Qx4),
34126(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34127"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
34128tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34129let Inst{7-2} = 0b101000;
34130let Inst{13-13} = 0b1;
34131let Inst{31-21} = 0b00011100100;
34132let isCVI = 1;
34133let isHVXALU = 1;
34134let isHVXALU2SRC = 1;
34135let DecoderNamespace = "EXT_mmvec";
34136let Constraints = "$Qx4 = $Qx4in";
34137}
34138def V6_vgtuh : HInst<
34139(outs HvxQR:$Qd4),
34140(ins HvxVR:$Vu32, HvxVR:$Vv32),
34141"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
34142tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34143let Inst{7-2} = 0b001001;
34144let Inst{13-13} = 0b0;
34145let Inst{31-21} = 0b00011111100;
34146let hasNewValue = 1;
34147let opNewValue = 0;
34148let isCVI = 1;
34149let isHVXALU = 1;
34150let isHVXALU2SRC = 1;
34151let DecoderNamespace = "EXT_mmvec";
34152}
34153def V6_vgtuh_and : HInst<
34154(outs HvxQR:$Qx4),
34155(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34156"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
34157tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34158let Inst{7-2} = 0b001001;
34159let Inst{13-13} = 0b1;
34160let Inst{31-21} = 0b00011100100;
34161let isCVI = 1;
34162let isHVXALU = 1;
34163let isHVXALU2SRC = 1;
34164let DecoderNamespace = "EXT_mmvec";
34165let Constraints = "$Qx4 = $Qx4in";
34166}
34167def V6_vgtuh_or : HInst<
34168(outs HvxQR:$Qx4),
34169(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34170"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
34171tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34172let Inst{7-2} = 0b011001;
34173let Inst{13-13} = 0b1;
34174let Inst{31-21} = 0b00011100100;
34175let isAccumulator = 1;
34176let isCVI = 1;
34177let isHVXALU = 1;
34178let isHVXALU2SRC = 1;
34179let DecoderNamespace = "EXT_mmvec";
34180let Constraints = "$Qx4 = $Qx4in";
34181}
34182def V6_vgtuh_xor : HInst<
34183(outs HvxQR:$Qx4),
34184(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34185"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
34186tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34187let Inst{7-2} = 0b101001;
34188let Inst{13-13} = 0b1;
34189let Inst{31-21} = 0b00011100100;
34190let isCVI = 1;
34191let isHVXALU = 1;
34192let isHVXALU2SRC = 1;
34193let DecoderNamespace = "EXT_mmvec";
34194let Constraints = "$Qx4 = $Qx4in";
34195}
34196def V6_vgtuw : HInst<
34197(outs HvxQR:$Qd4),
34198(ins HvxVR:$Vu32, HvxVR:$Vv32),
34199"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
34200tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34201let Inst{7-2} = 0b001010;
34202let Inst{13-13} = 0b0;
34203let Inst{31-21} = 0b00011111100;
34204let hasNewValue = 1;
34205let opNewValue = 0;
34206let isCVI = 1;
34207let isHVXALU = 1;
34208let isHVXALU2SRC = 1;
34209let DecoderNamespace = "EXT_mmvec";
34210}
34211def V6_vgtuw_and : HInst<
34212(outs HvxQR:$Qx4),
34213(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34214"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
34215tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34216let Inst{7-2} = 0b001010;
34217let Inst{13-13} = 0b1;
34218let Inst{31-21} = 0b00011100100;
34219let isCVI = 1;
34220let isHVXALU = 1;
34221let isHVXALU2SRC = 1;
34222let DecoderNamespace = "EXT_mmvec";
34223let Constraints = "$Qx4 = $Qx4in";
34224}
34225def V6_vgtuw_or : HInst<
34226(outs HvxQR:$Qx4),
34227(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34228"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
34229tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34230let Inst{7-2} = 0b011010;
34231let Inst{13-13} = 0b1;
34232let Inst{31-21} = 0b00011100100;
34233let isAccumulator = 1;
34234let isCVI = 1;
34235let isHVXALU = 1;
34236let isHVXALU2SRC = 1;
34237let DecoderNamespace = "EXT_mmvec";
34238let Constraints = "$Qx4 = $Qx4in";
34239}
34240def V6_vgtuw_xor : HInst<
34241(outs HvxQR:$Qx4),
34242(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34243"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
34244tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34245let Inst{7-2} = 0b101010;
34246let Inst{13-13} = 0b1;
34247let Inst{31-21} = 0b00011100100;
34248let isCVI = 1;
34249let isHVXALU = 1;
34250let isHVXALU2SRC = 1;
34251let DecoderNamespace = "EXT_mmvec";
34252let Constraints = "$Qx4 = $Qx4in";
34253}
34254def V6_vgtw : HInst<
34255(outs HvxQR:$Qd4),
34256(ins HvxVR:$Vu32, HvxVR:$Vv32),
34257"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
34258tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34259let Inst{7-2} = 0b000110;
34260let Inst{13-13} = 0b0;
34261let Inst{31-21} = 0b00011111100;
34262let hasNewValue = 1;
34263let opNewValue = 0;
34264let isCVI = 1;
34265let isHVXALU = 1;
34266let isHVXALU2SRC = 1;
34267let DecoderNamespace = "EXT_mmvec";
34268}
34269def V6_vgtw_and : HInst<
34270(outs HvxQR:$Qx4),
34271(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34272"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
34273tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34274let Inst{7-2} = 0b000110;
34275let Inst{13-13} = 0b1;
34276let Inst{31-21} = 0b00011100100;
34277let isCVI = 1;
34278let isHVXALU = 1;
34279let isHVXALU2SRC = 1;
34280let DecoderNamespace = "EXT_mmvec";
34281let Constraints = "$Qx4 = $Qx4in";
34282}
34283def V6_vgtw_or : HInst<
34284(outs HvxQR:$Qx4),
34285(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34286"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
34287tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34288let Inst{7-2} = 0b010110;
34289let Inst{13-13} = 0b1;
34290let Inst{31-21} = 0b00011100100;
34291let isAccumulator = 1;
34292let isCVI = 1;
34293let isHVXALU = 1;
34294let isHVXALU2SRC = 1;
34295let DecoderNamespace = "EXT_mmvec";
34296let Constraints = "$Qx4 = $Qx4in";
34297}
34298def V6_vgtw_xor : HInst<
34299(outs HvxQR:$Qx4),
34300(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34301"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
34302tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34303let Inst{7-2} = 0b100110;
34304let Inst{13-13} = 0b1;
34305let Inst{31-21} = 0b00011100100;
34306let isCVI = 1;
34307let isHVXALU = 1;
34308let isHVXALU2SRC = 1;
34309let DecoderNamespace = "EXT_mmvec";
34310let Constraints = "$Qx4 = $Qx4in";
34311}
34312def V6_vhist : HInst<
34313(outs),
34314(ins),
34315"vhist",
34316tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
34317let Inst{13-0} = 0b10000010000000;
34318let Inst{31-16} = 0b0001111000000000;
34319let isCVI = 1;
34320let DecoderNamespace = "EXT_mmvec";
34321}
34322def V6_vhistq : HInst<
34323(outs),
34324(ins HvxQR:$Qv4),
34325"vhist($Qv4)",
34326tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
34327let Inst{13-0} = 0b10000010000000;
34328let Inst{21-16} = 0b000010;
34329let Inst{31-24} = 0b00011110;
34330let isCVI = 1;
34331let DecoderNamespace = "EXT_mmvec";
34332}
34333def V6_vinsertwr : HInst<
34334(outs HvxVR:$Vx32),
34335(ins HvxVR:$Vx32in, IntRegs:$Rt32),
34336"$Vx32.w = vinsert($Rt32)",
34337tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
34338let Inst{13-5} = 0b100000001;
34339let Inst{31-21} = 0b00011001101;
34340let hasNewValue = 1;
34341let opNewValue = 0;
34342let isCVI = 1;
34343let DecoderNamespace = "EXT_mmvec";
34344let Constraints = "$Vx32 = $Vx32in";
34345}
34346def V6_vlalignb : HInst<
34347(outs HvxVR:$Vd32),
34348(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34349"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
34350tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
34351let Inst{7-5} = 0b001;
34352let Inst{13-13} = 0b0;
34353let Inst{31-24} = 0b00011011;
34354let hasNewValue = 1;
34355let opNewValue = 0;
34356let isCVI = 1;
34357let DecoderNamespace = "EXT_mmvec";
34358}
34359def V6_vlalignbi : HInst<
34360(outs HvxVR:$Vd32),
34361(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34362"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
34363tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
34364let Inst{13-13} = 0b1;
34365let Inst{31-21} = 0b00011110011;
34366let hasNewValue = 1;
34367let opNewValue = 0;
34368let isCVI = 1;
34369let DecoderNamespace = "EXT_mmvec";
34370}
34371def V6_vlsrb : HInst<
34372(outs HvxVR:$Vd32),
34373(ins HvxVR:$Vu32, IntRegs:$Rt32),
34374"$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
34375tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
34376let Inst{7-5} = 0b011;
34377let Inst{13-13} = 0b0;
34378let Inst{31-21} = 0b00011001100;
34379let hasNewValue = 1;
34380let opNewValue = 0;
34381let isCVI = 1;
34382let DecoderNamespace = "EXT_mmvec";
34383}
34384def V6_vlsrh : HInst<
34385(outs HvxVR:$Vd32),
34386(ins HvxVR:$Vu32, IntRegs:$Rt32),
34387"$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
34388tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
34389let Inst{7-5} = 0b010;
34390let Inst{13-13} = 0b0;
34391let Inst{31-21} = 0b00011001100;
34392let hasNewValue = 1;
34393let opNewValue = 0;
34394let isCVI = 1;
34395let DecoderNamespace = "EXT_mmvec";
34396}
34397def V6_vlsrh_alt : HInst<
34398(outs HvxVR:$Vd32),
34399(ins HvxVR:$Vu32, IntRegs:$Rt32),
34400"$Vd32 = vlsrh($Vu32,$Rt32)",
34401PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34402let hasNewValue = 1;
34403let opNewValue = 0;
34404let isCVI = 1;
34405let isPseudo = 1;
34406let isCodeGenOnly = 1;
34407let DecoderNamespace = "EXT_mmvec";
34408}
34409def V6_vlsrhv : HInst<
34410(outs HvxVR:$Vd32),
34411(ins HvxVR:$Vu32, HvxVR:$Vv32),
34412"$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
34413tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
34414let Inst{7-5} = 0b010;
34415let Inst{13-13} = 0b0;
34416let Inst{31-21} = 0b00011111101;
34417let hasNewValue = 1;
34418let opNewValue = 0;
34419let isCVI = 1;
34420let DecoderNamespace = "EXT_mmvec";
34421}
34422def V6_vlsrhv_alt : HInst<
34423(outs HvxVR:$Vd32),
34424(ins HvxVR:$Vu32, HvxVR:$Vv32),
34425"$Vd32 = vlsrh($Vu32,$Vv32)",
34426PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34427let hasNewValue = 1;
34428let opNewValue = 0;
34429let isCVI = 1;
34430let isPseudo = 1;
34431let isCodeGenOnly = 1;
34432let DecoderNamespace = "EXT_mmvec";
34433}
34434def V6_vlsrw : HInst<
34435(outs HvxVR:$Vd32),
34436(ins HvxVR:$Vu32, IntRegs:$Rt32),
34437"$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
34438tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
34439let Inst{7-5} = 0b001;
34440let Inst{13-13} = 0b0;
34441let Inst{31-21} = 0b00011001100;
34442let hasNewValue = 1;
34443let opNewValue = 0;
34444let isCVI = 1;
34445let DecoderNamespace = "EXT_mmvec";
34446}
34447def V6_vlsrw_alt : HInst<
34448(outs HvxVR:$Vd32),
34449(ins HvxVR:$Vu32, IntRegs:$Rt32),
34450"$Vd32 = vlsrw($Vu32,$Rt32)",
34451PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34452let hasNewValue = 1;
34453let opNewValue = 0;
34454let isCVI = 1;
34455let isPseudo = 1;
34456let isCodeGenOnly = 1;
34457let DecoderNamespace = "EXT_mmvec";
34458}
34459def V6_vlsrwv : HInst<
34460(outs HvxVR:$Vd32),
34461(ins HvxVR:$Vu32, HvxVR:$Vv32),
34462"$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
34463tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
34464let Inst{7-5} = 0b001;
34465let Inst{13-13} = 0b0;
34466let Inst{31-21} = 0b00011111101;
34467let hasNewValue = 1;
34468let opNewValue = 0;
34469let isCVI = 1;
34470let DecoderNamespace = "EXT_mmvec";
34471}
34472def V6_vlsrwv_alt : HInst<
34473(outs HvxVR:$Vd32),
34474(ins HvxVR:$Vu32, HvxVR:$Vv32),
34475"$Vd32 = vlsrw($Vu32,$Vv32)",
34476PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34477let hasNewValue = 1;
34478let opNewValue = 0;
34479let isCVI = 1;
34480let isPseudo = 1;
34481let isCodeGenOnly = 1;
34482let DecoderNamespace = "EXT_mmvec";
34483}
34484def V6_vlut4 : HInst<
34485(outs HvxVR:$Vd32),
34486(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34487"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
34488tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
34489let Inst{7-5} = 0b100;
34490let Inst{13-13} = 0b0;
34491let Inst{31-21} = 0b00011001011;
34492let hasNewValue = 1;
34493let opNewValue = 0;
34494let isCVI = 1;
34495let DecoderNamespace = "EXT_mmvec";
34496}
34497def V6_vlutvvb : HInst<
34498(outs HvxVR:$Vd32),
34499(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34500"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
34501tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
34502let Inst{7-5} = 0b001;
34503let Inst{13-13} = 0b1;
34504let Inst{31-24} = 0b00011011;
34505let hasNewValue = 1;
34506let opNewValue = 0;
34507let isCVI = 1;
34508let DecoderNamespace = "EXT_mmvec";
34509}
34510def V6_vlutvvb_nm : HInst<
34511(outs HvxVR:$Vd32),
34512(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34513"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
34514tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
34515let Inst{7-5} = 0b011;
34516let Inst{13-13} = 0b0;
34517let Inst{31-24} = 0b00011000;
34518let hasNewValue = 1;
34519let opNewValue = 0;
34520let isCVI = 1;
34521let DecoderNamespace = "EXT_mmvec";
34522}
34523def V6_vlutvvb_oracc : HInst<
34524(outs HvxVR:$Vx32),
34525(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34526"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
34527tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
34528let Inst{7-5} = 0b101;
34529let Inst{13-13} = 0b1;
34530let Inst{31-24} = 0b00011011;
34531let hasNewValue = 1;
34532let opNewValue = 0;
34533let isAccumulator = 1;
34534let isCVI = 1;
34535let DecoderNamespace = "EXT_mmvec";
34536let Constraints = "$Vx32 = $Vx32in";
34537}
34538def V6_vlutvvb_oracci : HInst<
34539(outs HvxVR:$Vx32),
34540(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34541"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
34542tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
34543let Inst{13-13} = 0b1;
34544let Inst{31-21} = 0b00011100110;
34545let hasNewValue = 1;
34546let opNewValue = 0;
34547let isAccumulator = 1;
34548let isCVI = 1;
34549let DecoderNamespace = "EXT_mmvec";
34550let Constraints = "$Vx32 = $Vx32in";
34551}
34552def V6_vlutvvbi : HInst<
34553(outs HvxVR:$Vd32),
34554(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34555"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
34556tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
34557let Inst{13-13} = 0b0;
34558let Inst{31-21} = 0b00011110001;
34559let hasNewValue = 1;
34560let opNewValue = 0;
34561let isCVI = 1;
34562let DecoderNamespace = "EXT_mmvec";
34563}
34564def V6_vlutvwh : HInst<
34565(outs HvxWR:$Vdd32),
34566(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34567"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
34568tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
34569let Inst{7-5} = 0b110;
34570let Inst{13-13} = 0b1;
34571let Inst{31-24} = 0b00011011;
34572let hasNewValue = 1;
34573let opNewValue = 0;
34574let isCVI = 1;
34575let DecoderNamespace = "EXT_mmvec";
34576}
34577def V6_vlutvwh_nm : HInst<
34578(outs HvxWR:$Vdd32),
34579(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34580"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
34581tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
34582let Inst{7-5} = 0b100;
34583let Inst{13-13} = 0b0;
34584let Inst{31-24} = 0b00011000;
34585let hasNewValue = 1;
34586let opNewValue = 0;
34587let isCVI = 1;
34588let DecoderNamespace = "EXT_mmvec";
34589}
34590def V6_vlutvwh_oracc : HInst<
34591(outs HvxWR:$Vxx32),
34592(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34593"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
34594tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
34595let Inst{7-5} = 0b111;
34596let Inst{13-13} = 0b1;
34597let Inst{31-24} = 0b00011011;
34598let hasNewValue = 1;
34599let opNewValue = 0;
34600let isAccumulator = 1;
34601let isCVI = 1;
34602let DecoderNamespace = "EXT_mmvec";
34603let Constraints = "$Vxx32 = $Vxx32in";
34604}
34605def V6_vlutvwh_oracci : HInst<
34606(outs HvxWR:$Vxx32),
34607(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34608"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
34609tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
34610let Inst{13-13} = 0b1;
34611let Inst{31-21} = 0b00011100111;
34612let hasNewValue = 1;
34613let opNewValue = 0;
34614let isAccumulator = 1;
34615let isCVI = 1;
34616let DecoderNamespace = "EXT_mmvec";
34617let Constraints = "$Vxx32 = $Vxx32in";
34618}
34619def V6_vlutvwhi : HInst<
34620(outs HvxWR:$Vdd32),
34621(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34622"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
34623tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
34624let Inst{13-13} = 0b0;
34625let Inst{31-21} = 0b00011110011;
34626let hasNewValue = 1;
34627let opNewValue = 0;
34628let isCVI = 1;
34629let DecoderNamespace = "EXT_mmvec";
34630}
34631def V6_vmax_bf : HInst<
34632(outs HvxVR:$Vd32),
34633(ins HvxVR:$Vu32, HvxVR:$Vv32),
34634"$Vd32.bf = vmax($Vu32.bf,$Vv32.bf)",
34635tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
34636let Inst{7-5} = 0b111;
34637let Inst{13-13} = 0b1;
34638let Inst{31-21} = 0b00011101010;
34639let hasNewValue = 1;
34640let opNewValue = 0;
34641let isCVI = 1;
34642let DecoderNamespace = "EXT_mmvec";
34643}
34644def V6_vmax_hf : HInst<
34645(outs HvxVR:$Vd32),
34646(ins HvxVR:$Vu32, HvxVR:$Vv32),
34647"$Vd32.hf = vmax($Vu32.hf,$Vv32.hf)",
34648tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34649let Inst{7-5} = 0b011;
34650let Inst{13-13} = 0b1;
34651let Inst{31-21} = 0b00011111110;
34652let hasNewValue = 1;
34653let opNewValue = 0;
34654let isCVI = 1;
34655let isHVXALU = 1;
34656let isHVXALU2SRC = 1;
34657let DecoderNamespace = "EXT_mmvec";
34658}
34659def V6_vmax_sf : HInst<
34660(outs HvxVR:$Vd32),
34661(ins HvxVR:$Vu32, HvxVR:$Vv32),
34662"$Vd32.sf = vmax($Vu32.sf,$Vv32.sf)",
34663tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34664let Inst{7-5} = 0b001;
34665let Inst{13-13} = 0b1;
34666let Inst{31-21} = 0b00011111110;
34667let hasNewValue = 1;
34668let opNewValue = 0;
34669let isCVI = 1;
34670let isHVXALU = 1;
34671let isHVXALU2SRC = 1;
34672let DecoderNamespace = "EXT_mmvec";
34673}
34674def V6_vmaxb : HInst<
34675(outs HvxVR:$Vd32),
34676(ins HvxVR:$Vu32, HvxVR:$Vv32),
34677"$Vd32.b = vmax($Vu32.b,$Vv32.b)",
34678tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34679let Inst{7-5} = 0b101;
34680let Inst{13-13} = 0b0;
34681let Inst{31-21} = 0b00011111001;
34682let hasNewValue = 1;
34683let opNewValue = 0;
34684let isCVI = 1;
34685let isHVXALU = 1;
34686let isHVXALU2SRC = 1;
34687let DecoderNamespace = "EXT_mmvec";
34688}
34689def V6_vmaxb_alt : HInst<
34690(outs HvxVR:$Vd32),
34691(ins HvxVR:$Vu32, HvxVR:$Vv32),
34692"$Vd32 = vmaxb($Vu32,$Vv32)",
34693PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34694let hasNewValue = 1;
34695let opNewValue = 0;
34696let isCVI = 1;
34697let isPseudo = 1;
34698let isCodeGenOnly = 1;
34699let DecoderNamespace = "EXT_mmvec";
34700}
34701def V6_vmaxh : HInst<
34702(outs HvxVR:$Vd32),
34703(ins HvxVR:$Vu32, HvxVR:$Vv32),
34704"$Vd32.h = vmax($Vu32.h,$Vv32.h)",
34705tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34706let Inst{7-5} = 0b111;
34707let Inst{13-13} = 0b0;
34708let Inst{31-21} = 0b00011111000;
34709let hasNewValue = 1;
34710let opNewValue = 0;
34711let isCVI = 1;
34712let isHVXALU = 1;
34713let isHVXALU2SRC = 1;
34714let DecoderNamespace = "EXT_mmvec";
34715}
34716def V6_vmaxh_alt : HInst<
34717(outs HvxVR:$Vd32),
34718(ins HvxVR:$Vu32, HvxVR:$Vv32),
34719"$Vd32 = vmaxh($Vu32,$Vv32)",
34720PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34721let hasNewValue = 1;
34722let opNewValue = 0;
34723let isCVI = 1;
34724let isPseudo = 1;
34725let isCodeGenOnly = 1;
34726let DecoderNamespace = "EXT_mmvec";
34727}
34728def V6_vmaxub : HInst<
34729(outs HvxVR:$Vd32),
34730(ins HvxVR:$Vu32, HvxVR:$Vv32),
34731"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
34732tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34733let Inst{7-5} = 0b101;
34734let Inst{13-13} = 0b0;
34735let Inst{31-21} = 0b00011111000;
34736let hasNewValue = 1;
34737let opNewValue = 0;
34738let isCVI = 1;
34739let isHVXALU = 1;
34740let isHVXALU2SRC = 1;
34741let DecoderNamespace = "EXT_mmvec";
34742}
34743def V6_vmaxub_alt : HInst<
34744(outs HvxVR:$Vd32),
34745(ins HvxVR:$Vu32, HvxVR:$Vv32),
34746"$Vd32 = vmaxub($Vu32,$Vv32)",
34747PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34748let hasNewValue = 1;
34749let opNewValue = 0;
34750let isCVI = 1;
34751let isPseudo = 1;
34752let isCodeGenOnly = 1;
34753let DecoderNamespace = "EXT_mmvec";
34754}
34755def V6_vmaxuh : HInst<
34756(outs HvxVR:$Vd32),
34757(ins HvxVR:$Vu32, HvxVR:$Vv32),
34758"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
34759tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34760let Inst{7-5} = 0b110;
34761let Inst{13-13} = 0b0;
34762let Inst{31-21} = 0b00011111000;
34763let hasNewValue = 1;
34764let opNewValue = 0;
34765let isCVI = 1;
34766let isHVXALU = 1;
34767let isHVXALU2SRC = 1;
34768let DecoderNamespace = "EXT_mmvec";
34769}
34770def V6_vmaxuh_alt : HInst<
34771(outs HvxVR:$Vd32),
34772(ins HvxVR:$Vu32, HvxVR:$Vv32),
34773"$Vd32 = vmaxuh($Vu32,$Vv32)",
34774PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34775let hasNewValue = 1;
34776let opNewValue = 0;
34777let isCVI = 1;
34778let isPseudo = 1;
34779let isCodeGenOnly = 1;
34780let DecoderNamespace = "EXT_mmvec";
34781}
34782def V6_vmaxw : HInst<
34783(outs HvxVR:$Vd32),
34784(ins HvxVR:$Vu32, HvxVR:$Vv32),
34785"$Vd32.w = vmax($Vu32.w,$Vv32.w)",
34786tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34787let Inst{7-5} = 0b000;
34788let Inst{13-13} = 0b0;
34789let Inst{31-21} = 0b00011111001;
34790let hasNewValue = 1;
34791let opNewValue = 0;
34792let isCVI = 1;
34793let isHVXALU = 1;
34794let isHVXALU2SRC = 1;
34795let DecoderNamespace = "EXT_mmvec";
34796}
34797def V6_vmaxw_alt : HInst<
34798(outs HvxVR:$Vd32),
34799(ins HvxVR:$Vu32, HvxVR:$Vv32),
34800"$Vd32 = vmaxw($Vu32,$Vv32)",
34801PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34802let hasNewValue = 1;
34803let opNewValue = 0;
34804let isCVI = 1;
34805let isPseudo = 1;
34806let isCodeGenOnly = 1;
34807let DecoderNamespace = "EXT_mmvec";
34808}
34809def V6_vmin_bf : HInst<
34810(outs HvxVR:$Vd32),
34811(ins HvxVR:$Vu32, HvxVR:$Vv32),
34812"$Vd32.bf = vmin($Vu32.bf,$Vv32.bf)",
34813tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
34814let Inst{7-5} = 0b000;
34815let Inst{13-13} = 0b1;
34816let Inst{31-21} = 0b00011101010;
34817let hasNewValue = 1;
34818let opNewValue = 0;
34819let isCVI = 1;
34820let DecoderNamespace = "EXT_mmvec";
34821}
34822def V6_vmin_hf : HInst<
34823(outs HvxVR:$Vd32),
34824(ins HvxVR:$Vu32, HvxVR:$Vv32),
34825"$Vd32.hf = vmin($Vu32.hf,$Vv32.hf)",
34826tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34827let Inst{7-5} = 0b100;
34828let Inst{13-13} = 0b1;
34829let Inst{31-21} = 0b00011111110;
34830let hasNewValue = 1;
34831let opNewValue = 0;
34832let isCVI = 1;
34833let isHVXALU = 1;
34834let isHVXALU2SRC = 1;
34835let DecoderNamespace = "EXT_mmvec";
34836}
34837def V6_vmin_sf : HInst<
34838(outs HvxVR:$Vd32),
34839(ins HvxVR:$Vu32, HvxVR:$Vv32),
34840"$Vd32.sf = vmin($Vu32.sf,$Vv32.sf)",
34841tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34842let Inst{7-5} = 0b010;
34843let Inst{13-13} = 0b1;
34844let Inst{31-21} = 0b00011111110;
34845let hasNewValue = 1;
34846let opNewValue = 0;
34847let isCVI = 1;
34848let isHVXALU = 1;
34849let isHVXALU2SRC = 1;
34850let DecoderNamespace = "EXT_mmvec";
34851}
34852def V6_vminb : HInst<
34853(outs HvxVR:$Vd32),
34854(ins HvxVR:$Vu32, HvxVR:$Vv32),
34855"$Vd32.b = vmin($Vu32.b,$Vv32.b)",
34856tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34857let Inst{7-5} = 0b100;
34858let Inst{13-13} = 0b0;
34859let Inst{31-21} = 0b00011111001;
34860let hasNewValue = 1;
34861let opNewValue = 0;
34862let isCVI = 1;
34863let isHVXALU = 1;
34864let isHVXALU2SRC = 1;
34865let DecoderNamespace = "EXT_mmvec";
34866}
34867def V6_vminb_alt : HInst<
34868(outs HvxVR:$Vd32),
34869(ins HvxVR:$Vu32, HvxVR:$Vv32),
34870"$Vd32 = vminb($Vu32,$Vv32)",
34871PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34872let hasNewValue = 1;
34873let opNewValue = 0;
34874let isCVI = 1;
34875let isPseudo = 1;
34876let isCodeGenOnly = 1;
34877let DecoderNamespace = "EXT_mmvec";
34878}
34879def V6_vminh : HInst<
34880(outs HvxVR:$Vd32),
34881(ins HvxVR:$Vu32, HvxVR:$Vv32),
34882"$Vd32.h = vmin($Vu32.h,$Vv32.h)",
34883tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34884let Inst{7-5} = 0b011;
34885let Inst{13-13} = 0b0;
34886let Inst{31-21} = 0b00011111000;
34887let hasNewValue = 1;
34888let opNewValue = 0;
34889let isCVI = 1;
34890let isHVXALU = 1;
34891let isHVXALU2SRC = 1;
34892let DecoderNamespace = "EXT_mmvec";
34893}
34894def V6_vminh_alt : HInst<
34895(outs HvxVR:$Vd32),
34896(ins HvxVR:$Vu32, HvxVR:$Vv32),
34897"$Vd32 = vminh($Vu32,$Vv32)",
34898PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34899let hasNewValue = 1;
34900let opNewValue = 0;
34901let isCVI = 1;
34902let isPseudo = 1;
34903let isCodeGenOnly = 1;
34904let DecoderNamespace = "EXT_mmvec";
34905}
34906def V6_vminub : HInst<
34907(outs HvxVR:$Vd32),
34908(ins HvxVR:$Vu32, HvxVR:$Vv32),
34909"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
34910tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34911let Inst{7-5} = 0b001;
34912let Inst{13-13} = 0b0;
34913let Inst{31-21} = 0b00011111000;
34914let hasNewValue = 1;
34915let opNewValue = 0;
34916let isCVI = 1;
34917let isHVXALU = 1;
34918let isHVXALU2SRC = 1;
34919let DecoderNamespace = "EXT_mmvec";
34920}
34921def V6_vminub_alt : HInst<
34922(outs HvxVR:$Vd32),
34923(ins HvxVR:$Vu32, HvxVR:$Vv32),
34924"$Vd32 = vminub($Vu32,$Vv32)",
34925PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34926let hasNewValue = 1;
34927let opNewValue = 0;
34928let isCVI = 1;
34929let isPseudo = 1;
34930let isCodeGenOnly = 1;
34931let DecoderNamespace = "EXT_mmvec";
34932}
34933def V6_vminuh : HInst<
34934(outs HvxVR:$Vd32),
34935(ins HvxVR:$Vu32, HvxVR:$Vv32),
34936"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
34937tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34938let Inst{7-5} = 0b010;
34939let Inst{13-13} = 0b0;
34940let Inst{31-21} = 0b00011111000;
34941let hasNewValue = 1;
34942let opNewValue = 0;
34943let isCVI = 1;
34944let isHVXALU = 1;
34945let isHVXALU2SRC = 1;
34946let DecoderNamespace = "EXT_mmvec";
34947}
34948def V6_vminuh_alt : HInst<
34949(outs HvxVR:$Vd32),
34950(ins HvxVR:$Vu32, HvxVR:$Vv32),
34951"$Vd32 = vminuh($Vu32,$Vv32)",
34952PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34953let hasNewValue = 1;
34954let opNewValue = 0;
34955let isCVI = 1;
34956let isPseudo = 1;
34957let isCodeGenOnly = 1;
34958let DecoderNamespace = "EXT_mmvec";
34959}
34960def V6_vminw : HInst<
34961(outs HvxVR:$Vd32),
34962(ins HvxVR:$Vu32, HvxVR:$Vv32),
34963"$Vd32.w = vmin($Vu32.w,$Vv32.w)",
34964tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34965let Inst{7-5} = 0b100;
34966let Inst{13-13} = 0b0;
34967let Inst{31-21} = 0b00011111000;
34968let hasNewValue = 1;
34969let opNewValue = 0;
34970let isCVI = 1;
34971let isHVXALU = 1;
34972let isHVXALU2SRC = 1;
34973let DecoderNamespace = "EXT_mmvec";
34974}
34975def V6_vminw_alt : HInst<
34976(outs HvxVR:$Vd32),
34977(ins HvxVR:$Vu32, HvxVR:$Vv32),
34978"$Vd32 = vminw($Vu32,$Vv32)",
34979PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34980let hasNewValue = 1;
34981let opNewValue = 0;
34982let isCVI = 1;
34983let isPseudo = 1;
34984let isCodeGenOnly = 1;
34985let DecoderNamespace = "EXT_mmvec";
34986}
34987def V6_vmpabus : HInst<
34988(outs HvxWR:$Vdd32),
34989(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34990"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
34991tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
34992let Inst{7-5} = 0b110;
34993let Inst{13-13} = 0b0;
34994let Inst{31-21} = 0b00011001001;
34995let hasNewValue = 1;
34996let opNewValue = 0;
34997let isCVI = 1;
34998let DecoderNamespace = "EXT_mmvec";
34999}
35000def V6_vmpabus_acc : HInst<
35001(outs HvxWR:$Vxx32),
35002(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35003"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
35004tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
35005let Inst{7-5} = 0b110;
35006let Inst{13-13} = 0b1;
35007let Inst{31-21} = 0b00011001001;
35008let hasNewValue = 1;
35009let opNewValue = 0;
35010let isAccumulator = 1;
35011let isCVI = 1;
35012let DecoderNamespace = "EXT_mmvec";
35013let Constraints = "$Vxx32 = $Vxx32in";
35014}
35015def V6_vmpabus_acc_alt : HInst<
35016(outs HvxWR:$Vxx32),
35017(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35018"$Vxx32 += vmpabus($Vuu32,$Rt32)",
35019PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35020let hasNewValue = 1;
35021let opNewValue = 0;
35022let isAccumulator = 1;
35023let isCVI = 1;
35024let isPseudo = 1;
35025let isCodeGenOnly = 1;
35026let DecoderNamespace = "EXT_mmvec";
35027let Constraints = "$Vxx32 = $Vxx32in";
35028}
35029def V6_vmpabus_alt : HInst<
35030(outs HvxWR:$Vdd32),
35031(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35032"$Vdd32 = vmpabus($Vuu32,$Rt32)",
35033PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35034let hasNewValue = 1;
35035let opNewValue = 0;
35036let isCVI = 1;
35037let isPseudo = 1;
35038let isCodeGenOnly = 1;
35039let DecoderNamespace = "EXT_mmvec";
35040}
35041def V6_vmpabusv : HInst<
35042(outs HvxWR:$Vdd32),
35043(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35044"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
35045tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
35046let Inst{7-5} = 0b011;
35047let Inst{13-13} = 0b0;
35048let Inst{31-21} = 0b00011100001;
35049let hasNewValue = 1;
35050let opNewValue = 0;
35051let isCVI = 1;
35052let DecoderNamespace = "EXT_mmvec";
35053}
35054def V6_vmpabusv_alt : HInst<
35055(outs HvxWR:$Vdd32),
35056(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35057"$Vdd32 = vmpabus($Vuu32,$Vvv32)",
35058PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35059let hasNewValue = 1;
35060let opNewValue = 0;
35061let isCVI = 1;
35062let isPseudo = 1;
35063let isCodeGenOnly = 1;
35064let DecoderNamespace = "EXT_mmvec";
35065}
35066def V6_vmpabuu : HInst<
35067(outs HvxWR:$Vdd32),
35068(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35069"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
35070tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
35071let Inst{7-5} = 0b011;
35072let Inst{13-13} = 0b0;
35073let Inst{31-21} = 0b00011001011;
35074let hasNewValue = 1;
35075let opNewValue = 0;
35076let isCVI = 1;
35077let DecoderNamespace = "EXT_mmvec";
35078}
35079def V6_vmpabuu_acc : HInst<
35080(outs HvxWR:$Vxx32),
35081(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35082"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
35083tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
35084let Inst{7-5} = 0b100;
35085let Inst{13-13} = 0b1;
35086let Inst{31-21} = 0b00011001101;
35087let hasNewValue = 1;
35088let opNewValue = 0;
35089let isAccumulator = 1;
35090let isCVI = 1;
35091let DecoderNamespace = "EXT_mmvec";
35092let Constraints = "$Vxx32 = $Vxx32in";
35093}
35094def V6_vmpabuu_acc_alt : HInst<
35095(outs HvxWR:$Vxx32),
35096(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35097"$Vxx32 += vmpabuu($Vuu32,$Rt32)",
35098PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35099let hasNewValue = 1;
35100let opNewValue = 0;
35101let isAccumulator = 1;
35102let isCVI = 1;
35103let isPseudo = 1;
35104let isCodeGenOnly = 1;
35105let DecoderNamespace = "EXT_mmvec";
35106let Constraints = "$Vxx32 = $Vxx32in";
35107}
35108def V6_vmpabuu_alt : HInst<
35109(outs HvxWR:$Vdd32),
35110(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35111"$Vdd32 = vmpabuu($Vuu32,$Rt32)",
35112PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35113let hasNewValue = 1;
35114let opNewValue = 0;
35115let isCVI = 1;
35116let isPseudo = 1;
35117let isCodeGenOnly = 1;
35118let DecoderNamespace = "EXT_mmvec";
35119}
35120def V6_vmpabuuv : HInst<
35121(outs HvxWR:$Vdd32),
35122(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35123"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
35124tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
35125let Inst{7-5} = 0b111;
35126let Inst{13-13} = 0b0;
35127let Inst{31-21} = 0b00011100111;
35128let hasNewValue = 1;
35129let opNewValue = 0;
35130let isCVI = 1;
35131let DecoderNamespace = "EXT_mmvec";
35132}
35133def V6_vmpabuuv_alt : HInst<
35134(outs HvxWR:$Vdd32),
35135(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35136"$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
35137PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35138let hasNewValue = 1;
35139let opNewValue = 0;
35140let isCVI = 1;
35141let isPseudo = 1;
35142let isCodeGenOnly = 1;
35143let DecoderNamespace = "EXT_mmvec";
35144}
35145def V6_vmpahb : HInst<
35146(outs HvxWR:$Vdd32),
35147(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35148"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
35149tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
35150let Inst{7-5} = 0b111;
35151let Inst{13-13} = 0b0;
35152let Inst{31-21} = 0b00011001001;
35153let hasNewValue = 1;
35154let opNewValue = 0;
35155let isCVI = 1;
35156let DecoderNamespace = "EXT_mmvec";
35157}
35158def V6_vmpahb_acc : HInst<
35159(outs HvxWR:$Vxx32),
35160(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35161"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
35162tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
35163let Inst{7-5} = 0b111;
35164let Inst{13-13} = 0b1;
35165let Inst{31-21} = 0b00011001001;
35166let hasNewValue = 1;
35167let opNewValue = 0;
35168let isAccumulator = 1;
35169let isCVI = 1;
35170let DecoderNamespace = "EXT_mmvec";
35171let Constraints = "$Vxx32 = $Vxx32in";
35172}
35173def V6_vmpahb_acc_alt : HInst<
35174(outs HvxWR:$Vxx32),
35175(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35176"$Vxx32 += vmpahb($Vuu32,$Rt32)",
35177PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35178let hasNewValue = 1;
35179let opNewValue = 0;
35180let isAccumulator = 1;
35181let isCVI = 1;
35182let isPseudo = 1;
35183let isCodeGenOnly = 1;
35184let DecoderNamespace = "EXT_mmvec";
35185let Constraints = "$Vxx32 = $Vxx32in";
35186}
35187def V6_vmpahb_alt : HInst<
35188(outs HvxWR:$Vdd32),
35189(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35190"$Vdd32 = vmpahb($Vuu32,$Rt32)",
35191PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35192let hasNewValue = 1;
35193let opNewValue = 0;
35194let isCVI = 1;
35195let isPseudo = 1;
35196let isCodeGenOnly = 1;
35197let DecoderNamespace = "EXT_mmvec";
35198}
35199def V6_vmpahhsat : HInst<
35200(outs HvxVR:$Vx32),
35201(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35202"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
35203tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35204let Inst{7-5} = 0b100;
35205let Inst{13-13} = 0b1;
35206let Inst{31-21} = 0b00011001100;
35207let hasNewValue = 1;
35208let opNewValue = 0;
35209let isCVI = 1;
35210let DecoderNamespace = "EXT_mmvec";
35211let Constraints = "$Vx32 = $Vx32in";
35212}
35213def V6_vmpauhb : HInst<
35214(outs HvxWR:$Vdd32),
35215(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35216"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
35217tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
35218let Inst{7-5} = 0b101;
35219let Inst{13-13} = 0b0;
35220let Inst{31-21} = 0b00011001100;
35221let hasNewValue = 1;
35222let opNewValue = 0;
35223let isCVI = 1;
35224let DecoderNamespace = "EXT_mmvec";
35225}
35226def V6_vmpauhb_acc : HInst<
35227(outs HvxWR:$Vxx32),
35228(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35229"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
35230tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
35231let Inst{7-5} = 0b010;
35232let Inst{13-13} = 0b1;
35233let Inst{31-21} = 0b00011001100;
35234let hasNewValue = 1;
35235let opNewValue = 0;
35236let isAccumulator = 1;
35237let isCVI = 1;
35238let DecoderNamespace = "EXT_mmvec";
35239let Constraints = "$Vxx32 = $Vxx32in";
35240}
35241def V6_vmpauhb_acc_alt : HInst<
35242(outs HvxWR:$Vxx32),
35243(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35244"$Vxx32 += vmpauhb($Vuu32,$Rt32)",
35245PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35246let hasNewValue = 1;
35247let opNewValue = 0;
35248let isAccumulator = 1;
35249let isCVI = 1;
35250let isPseudo = 1;
35251let isCodeGenOnly = 1;
35252let DecoderNamespace = "EXT_mmvec";
35253let Constraints = "$Vxx32 = $Vxx32in";
35254}
35255def V6_vmpauhb_alt : HInst<
35256(outs HvxWR:$Vdd32),
35257(ins HvxWR:$Vuu32, IntRegs:$Rt32),
35258"$Vdd32 = vmpauhb($Vuu32,$Rt32)",
35259PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35260let hasNewValue = 1;
35261let opNewValue = 0;
35262let isCVI = 1;
35263let isPseudo = 1;
35264let isCodeGenOnly = 1;
35265let DecoderNamespace = "EXT_mmvec";
35266}
35267def V6_vmpauhuhsat : HInst<
35268(outs HvxVR:$Vx32),
35269(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35270"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
35271tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35272let Inst{7-5} = 0b101;
35273let Inst{13-13} = 0b1;
35274let Inst{31-21} = 0b00011001100;
35275let hasNewValue = 1;
35276let opNewValue = 0;
35277let isCVI = 1;
35278let DecoderNamespace = "EXT_mmvec";
35279let Constraints = "$Vx32 = $Vx32in";
35280}
35281def V6_vmpsuhuhsat : HInst<
35282(outs HvxVR:$Vx32),
35283(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35284"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
35285tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35286let Inst{7-5} = 0b110;
35287let Inst{13-13} = 0b1;
35288let Inst{31-21} = 0b00011001100;
35289let hasNewValue = 1;
35290let opNewValue = 0;
35291let isCVI = 1;
35292let DecoderNamespace = "EXT_mmvec";
35293let Constraints = "$Vx32 = $Vx32in";
35294}
35295def V6_vmpy_hf_hf : HInst<
35296(outs HvxVR:$Vd32),
35297(ins HvxVR:$Vu32, HvxVR:$Vv32),
35298"$Vd32.hf = vmpy($Vu32.hf,$Vv32.hf)",
35299tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35300let Inst{7-5} = 0b011;
35301let Inst{13-13} = 0b1;
35302let Inst{31-21} = 0b00011111100;
35303let hasNewValue = 1;
35304let opNewValue = 0;
35305let isCVI = 1;
35306let DecoderNamespace = "EXT_mmvec";
35307}
35308def V6_vmpy_hf_hf_acc : HInst<
35309(outs HvxVR:$Vx32),
35310(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35311"$Vx32.hf += vmpy($Vu32.hf,$Vv32.hf)",
35312tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35313let Inst{7-5} = 0b010;
35314let Inst{13-13} = 0b1;
35315let Inst{31-21} = 0b00011100010;
35316let hasNewValue = 1;
35317let opNewValue = 0;
35318let isAccumulator = 1;
35319let isCVI = 1;
35320let DecoderNamespace = "EXT_mmvec";
35321let Constraints = "$Vx32 = $Vx32in";
35322}
35323def V6_vmpy_qf16 : HInst<
35324(outs HvxVR:$Vd32),
35325(ins HvxVR:$Vu32, HvxVR:$Vv32),
35326"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.qf16)",
35327tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35328let Inst{7-5} = 0b011;
35329let Inst{13-13} = 0b1;
35330let Inst{31-21} = 0b00011111111;
35331let hasNewValue = 1;
35332let opNewValue = 0;
35333let isCVI = 1;
35334let DecoderNamespace = "EXT_mmvec";
35335}
35336def V6_vmpy_qf16_hf : HInst<
35337(outs HvxVR:$Vd32),
35338(ins HvxVR:$Vu32, HvxVR:$Vv32),
35339"$Vd32.qf16 = vmpy($Vu32.hf,$Vv32.hf)",
35340tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35341let Inst{7-5} = 0b100;
35342let Inst{13-13} = 0b1;
35343let Inst{31-21} = 0b00011111111;
35344let hasNewValue = 1;
35345let opNewValue = 0;
35346let isCVI = 1;
35347let DecoderNamespace = "EXT_mmvec";
35348}
35349def V6_vmpy_qf16_mix_hf : HInst<
35350(outs HvxVR:$Vd32),
35351(ins HvxVR:$Vu32, HvxVR:$Vv32),
35352"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.hf)",
35353tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35354let Inst{7-5} = 0b101;
35355let Inst{13-13} = 0b1;
35356let Inst{31-21} = 0b00011111111;
35357let hasNewValue = 1;
35358let opNewValue = 0;
35359let isCVI = 1;
35360let DecoderNamespace = "EXT_mmvec";
35361}
35362def V6_vmpy_qf32 : HInst<
35363(outs HvxVR:$Vd32),
35364(ins HvxVR:$Vu32, HvxVR:$Vv32),
35365"$Vd32.qf32 = vmpy($Vu32.qf32,$Vv32.qf32)",
35366tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35367let Inst{7-5} = 0b000;
35368let Inst{13-13} = 0b1;
35369let Inst{31-21} = 0b00011111111;
35370let hasNewValue = 1;
35371let opNewValue = 0;
35372let isCVI = 1;
35373let DecoderNamespace = "EXT_mmvec";
35374}
35375def V6_vmpy_qf32_hf : HInst<
35376(outs HvxWR:$Vdd32),
35377(ins HvxVR:$Vu32, HvxVR:$Vv32),
35378"$Vdd32.qf32 = vmpy($Vu32.hf,$Vv32.hf)",
35379tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35380let Inst{7-5} = 0b111;
35381let Inst{13-13} = 0b1;
35382let Inst{31-21} = 0b00011111111;
35383let hasNewValue = 1;
35384let opNewValue = 0;
35385let isCVI = 1;
35386let DecoderNamespace = "EXT_mmvec";
35387}
35388def V6_vmpy_qf32_mix_hf : HInst<
35389(outs HvxWR:$Vdd32),
35390(ins HvxVR:$Vu32, HvxVR:$Vv32),
35391"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.hf)",
35392tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35393let Inst{7-5} = 0b000;
35394let Inst{13-13} = 0b1;
35395let Inst{31-21} = 0b00011111100;
35396let hasNewValue = 1;
35397let opNewValue = 0;
35398let isCVI = 1;
35399let DecoderNamespace = "EXT_mmvec";
35400}
35401def V6_vmpy_qf32_qf16 : HInst<
35402(outs HvxWR:$Vdd32),
35403(ins HvxVR:$Vu32, HvxVR:$Vv32),
35404"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.qf16)",
35405tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35406let Inst{7-5} = 0b110;
35407let Inst{13-13} = 0b1;
35408let Inst{31-21} = 0b00011111111;
35409let hasNewValue = 1;
35410let opNewValue = 0;
35411let isCVI = 1;
35412let DecoderNamespace = "EXT_mmvec";
35413}
35414def V6_vmpy_qf32_sf : HInst<
35415(outs HvxVR:$Vd32),
35416(ins HvxVR:$Vu32, HvxVR:$Vv32),
35417"$Vd32.qf32 = vmpy($Vu32.sf,$Vv32.sf)",
35418tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35419let Inst{7-5} = 0b001;
35420let Inst{13-13} = 0b1;
35421let Inst{31-21} = 0b00011111111;
35422let hasNewValue = 1;
35423let opNewValue = 0;
35424let isCVI = 1;
35425let DecoderNamespace = "EXT_mmvec";
35426}
35427def V6_vmpy_sf_bf : HInst<
35428(outs HvxWR:$Vdd32),
35429(ins HvxVR:$Vu32, HvxVR:$Vv32),
35430"$Vdd32.sf = vmpy($Vu32.bf,$Vv32.bf)",
35431tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
35432let Inst{7-5} = 0b100;
35433let Inst{13-13} = 0b1;
35434let Inst{31-21} = 0b00011101010;
35435let hasNewValue = 1;
35436let opNewValue = 0;
35437let isCVI = 1;
35438let DecoderNamespace = "EXT_mmvec";
35439}
35440def V6_vmpy_sf_bf_acc : HInst<
35441(outs HvxWR:$Vxx32),
35442(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35443"$Vxx32.sf += vmpy($Vu32.bf,$Vv32.bf)",
35444tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV73,UseHVXIEEEFP]> {
35445let Inst{7-5} = 0b000;
35446let Inst{13-13} = 0b1;
35447let Inst{31-21} = 0b00011101000;
35448let hasNewValue = 1;
35449let opNewValue = 0;
35450let isAccumulator = 1;
35451let isCVI = 1;
35452let DecoderNamespace = "EXT_mmvec";
35453let Constraints = "$Vxx32 = $Vxx32in";
35454}
35455def V6_vmpy_sf_hf : HInst<
35456(outs HvxWR:$Vdd32),
35457(ins HvxVR:$Vu32, HvxVR:$Vv32),
35458"$Vdd32.sf = vmpy($Vu32.hf,$Vv32.hf)",
35459tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35460let Inst{7-5} = 0b010;
35461let Inst{13-13} = 0b1;
35462let Inst{31-21} = 0b00011111100;
35463let hasNewValue = 1;
35464let opNewValue = 0;
35465let isCVI = 1;
35466let DecoderNamespace = "EXT_mmvec";
35467}
35468def V6_vmpy_sf_hf_acc : HInst<
35469(outs HvxWR:$Vxx32),
35470(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35471"$Vxx32.sf += vmpy($Vu32.hf,$Vv32.hf)",
35472tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35473let Inst{7-5} = 0b001;
35474let Inst{13-13} = 0b1;
35475let Inst{31-21} = 0b00011100010;
35476let hasNewValue = 1;
35477let opNewValue = 0;
35478let isAccumulator = 1;
35479let isCVI = 1;
35480let DecoderNamespace = "EXT_mmvec";
35481let Constraints = "$Vxx32 = $Vxx32in";
35482}
35483def V6_vmpy_sf_sf : HInst<
35484(outs HvxVR:$Vd32),
35485(ins HvxVR:$Vu32, HvxVR:$Vv32),
35486"$Vd32.sf = vmpy($Vu32.sf,$Vv32.sf)",
35487tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35488let Inst{7-5} = 0b001;
35489let Inst{13-13} = 0b1;
35490let Inst{31-21} = 0b00011111100;
35491let hasNewValue = 1;
35492let opNewValue = 0;
35493let isCVI = 1;
35494let DecoderNamespace = "EXT_mmvec";
35495}
35496def V6_vmpybus : HInst<
35497(outs HvxWR:$Vdd32),
35498(ins HvxVR:$Vu32, IntRegs:$Rt32),
35499"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
35500tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35501let Inst{7-5} = 0b101;
35502let Inst{13-13} = 0b0;
35503let Inst{31-21} = 0b00011001001;
35504let hasNewValue = 1;
35505let opNewValue = 0;
35506let isCVI = 1;
35507let DecoderNamespace = "EXT_mmvec";
35508}
35509def V6_vmpybus_acc : HInst<
35510(outs HvxWR:$Vxx32),
35511(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35512"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
35513tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35514let Inst{7-5} = 0b101;
35515let Inst{13-13} = 0b1;
35516let Inst{31-21} = 0b00011001001;
35517let hasNewValue = 1;
35518let opNewValue = 0;
35519let isAccumulator = 1;
35520let isCVI = 1;
35521let DecoderNamespace = "EXT_mmvec";
35522let Constraints = "$Vxx32 = $Vxx32in";
35523}
35524def V6_vmpybus_acc_alt : HInst<
35525(outs HvxWR:$Vxx32),
35526(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35527"$Vxx32 += vmpybus($Vu32,$Rt32)",
35528PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35529let hasNewValue = 1;
35530let opNewValue = 0;
35531let isAccumulator = 1;
35532let isCVI = 1;
35533let isPseudo = 1;
35534let isCodeGenOnly = 1;
35535let DecoderNamespace = "EXT_mmvec";
35536let Constraints = "$Vxx32 = $Vxx32in";
35537}
35538def V6_vmpybus_alt : HInst<
35539(outs HvxWR:$Vdd32),
35540(ins HvxVR:$Vu32, IntRegs:$Rt32),
35541"$Vdd32 = vmpybus($Vu32,$Rt32)",
35542PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35543let hasNewValue = 1;
35544let opNewValue = 0;
35545let isCVI = 1;
35546let isPseudo = 1;
35547let isCodeGenOnly = 1;
35548let DecoderNamespace = "EXT_mmvec";
35549}
35550def V6_vmpybusv : HInst<
35551(outs HvxWR:$Vdd32),
35552(ins HvxVR:$Vu32, HvxVR:$Vv32),
35553"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
35554tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35555let Inst{7-5} = 0b110;
35556let Inst{13-13} = 0b0;
35557let Inst{31-21} = 0b00011100000;
35558let hasNewValue = 1;
35559let opNewValue = 0;
35560let isCVI = 1;
35561let DecoderNamespace = "EXT_mmvec";
35562}
35563def V6_vmpybusv_acc : HInst<
35564(outs HvxWR:$Vxx32),
35565(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35566"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
35567tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35568let Inst{7-5} = 0b110;
35569let Inst{13-13} = 0b1;
35570let Inst{31-21} = 0b00011100000;
35571let hasNewValue = 1;
35572let opNewValue = 0;
35573let isAccumulator = 1;
35574let isCVI = 1;
35575let DecoderNamespace = "EXT_mmvec";
35576let Constraints = "$Vxx32 = $Vxx32in";
35577}
35578def V6_vmpybusv_acc_alt : HInst<
35579(outs HvxWR:$Vxx32),
35580(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35581"$Vxx32 += vmpybus($Vu32,$Vv32)",
35582PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35583let hasNewValue = 1;
35584let opNewValue = 0;
35585let isAccumulator = 1;
35586let isCVI = 1;
35587let isPseudo = 1;
35588let isCodeGenOnly = 1;
35589let DecoderNamespace = "EXT_mmvec";
35590let Constraints = "$Vxx32 = $Vxx32in";
35591}
35592def V6_vmpybusv_alt : HInst<
35593(outs HvxWR:$Vdd32),
35594(ins HvxVR:$Vu32, HvxVR:$Vv32),
35595"$Vdd32 = vmpybus($Vu32,$Vv32)",
35596PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35597let hasNewValue = 1;
35598let opNewValue = 0;
35599let isCVI = 1;
35600let isPseudo = 1;
35601let isCodeGenOnly = 1;
35602let DecoderNamespace = "EXT_mmvec";
35603}
35604def V6_vmpybv : HInst<
35605(outs HvxWR:$Vdd32),
35606(ins HvxVR:$Vu32, HvxVR:$Vv32),
35607"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
35608tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35609let Inst{7-5} = 0b100;
35610let Inst{13-13} = 0b0;
35611let Inst{31-21} = 0b00011100000;
35612let hasNewValue = 1;
35613let opNewValue = 0;
35614let isCVI = 1;
35615let DecoderNamespace = "EXT_mmvec";
35616}
35617def V6_vmpybv_acc : HInst<
35618(outs HvxWR:$Vxx32),
35619(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35620"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
35621tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35622let Inst{7-5} = 0b100;
35623let Inst{13-13} = 0b1;
35624let Inst{31-21} = 0b00011100000;
35625let hasNewValue = 1;
35626let opNewValue = 0;
35627let isAccumulator = 1;
35628let isCVI = 1;
35629let DecoderNamespace = "EXT_mmvec";
35630let Constraints = "$Vxx32 = $Vxx32in";
35631}
35632def V6_vmpybv_acc_alt : HInst<
35633(outs HvxWR:$Vxx32),
35634(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35635"$Vxx32 += vmpyb($Vu32,$Vv32)",
35636PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35637let hasNewValue = 1;
35638let opNewValue = 0;
35639let isAccumulator = 1;
35640let isCVI = 1;
35641let isPseudo = 1;
35642let isCodeGenOnly = 1;
35643let DecoderNamespace = "EXT_mmvec";
35644let Constraints = "$Vxx32 = $Vxx32in";
35645}
35646def V6_vmpybv_alt : HInst<
35647(outs HvxWR:$Vdd32),
35648(ins HvxVR:$Vu32, HvxVR:$Vv32),
35649"$Vdd32 = vmpyb($Vu32,$Vv32)",
35650PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35651let hasNewValue = 1;
35652let opNewValue = 0;
35653let isCVI = 1;
35654let isPseudo = 1;
35655let isCodeGenOnly = 1;
35656let DecoderNamespace = "EXT_mmvec";
35657}
35658def V6_vmpyewuh : HInst<
35659(outs HvxVR:$Vd32),
35660(ins HvxVR:$Vu32, HvxVR:$Vv32),
35661"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
35662tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35663let Inst{7-5} = 0b101;
35664let Inst{13-13} = 0b0;
35665let Inst{31-21} = 0b00011111111;
35666let hasNewValue = 1;
35667let opNewValue = 0;
35668let isCVI = 1;
35669let DecoderNamespace = "EXT_mmvec";
35670}
35671def V6_vmpyewuh_64 : HInst<
35672(outs HvxWR:$Vdd32),
35673(ins HvxVR:$Vu32, HvxVR:$Vv32),
35674"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
35675tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
35676let Inst{7-5} = 0b110;
35677let Inst{13-13} = 0b0;
35678let Inst{31-21} = 0b00011110101;
35679let hasNewValue = 1;
35680let opNewValue = 0;
35681let isCVI = 1;
35682let DecoderNamespace = "EXT_mmvec";
35683}
35684def V6_vmpyewuh_alt : HInst<
35685(outs HvxVR:$Vd32),
35686(ins HvxVR:$Vu32, HvxVR:$Vv32),
35687"$Vd32 = vmpyewuh($Vu32,$Vv32)",
35688PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35689let hasNewValue = 1;
35690let opNewValue = 0;
35691let isCVI = 1;
35692let isPseudo = 1;
35693let isCodeGenOnly = 1;
35694let DecoderNamespace = "EXT_mmvec";
35695}
35696def V6_vmpyh : HInst<
35697(outs HvxWR:$Vdd32),
35698(ins HvxVR:$Vu32, IntRegs:$Rt32),
35699"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
35700tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35701let Inst{7-5} = 0b000;
35702let Inst{13-13} = 0b0;
35703let Inst{31-21} = 0b00011001010;
35704let hasNewValue = 1;
35705let opNewValue = 0;
35706let isCVI = 1;
35707let DecoderNamespace = "EXT_mmvec";
35708}
35709def V6_vmpyh_acc : HInst<
35710(outs HvxWR:$Vxx32),
35711(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35712"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
35713tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
35714let Inst{7-5} = 0b110;
35715let Inst{13-13} = 0b1;
35716let Inst{31-21} = 0b00011001101;
35717let hasNewValue = 1;
35718let opNewValue = 0;
35719let isAccumulator = 1;
35720let isCVI = 1;
35721let DecoderNamespace = "EXT_mmvec";
35722let Constraints = "$Vxx32 = $Vxx32in";
35723}
35724def V6_vmpyh_acc_alt : HInst<
35725(outs HvxWR:$Vxx32),
35726(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35727"$Vxx32 += vmpyh($Vu32,$Rt32)",
35728PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35729let hasNewValue = 1;
35730let opNewValue = 0;
35731let isAccumulator = 1;
35732let isCVI = 1;
35733let isPseudo = 1;
35734let isCodeGenOnly = 1;
35735let DecoderNamespace = "EXT_mmvec";
35736let Constraints = "$Vxx32 = $Vxx32in";
35737}
35738def V6_vmpyh_alt : HInst<
35739(outs HvxWR:$Vdd32),
35740(ins HvxVR:$Vu32, IntRegs:$Rt32),
35741"$Vdd32 = vmpyh($Vu32,$Rt32)",
35742PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35743let hasNewValue = 1;
35744let opNewValue = 0;
35745let isCVI = 1;
35746let isPseudo = 1;
35747let isCodeGenOnly = 1;
35748let DecoderNamespace = "EXT_mmvec";
35749}
35750def V6_vmpyhsat_acc : HInst<
35751(outs HvxWR:$Vxx32),
35752(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35753"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
35754tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35755let Inst{7-5} = 0b000;
35756let Inst{13-13} = 0b1;
35757let Inst{31-21} = 0b00011001010;
35758let hasNewValue = 1;
35759let opNewValue = 0;
35760let isAccumulator = 1;
35761let isCVI = 1;
35762let DecoderNamespace = "EXT_mmvec";
35763let Constraints = "$Vxx32 = $Vxx32in";
35764}
35765def V6_vmpyhsat_acc_alt : HInst<
35766(outs HvxWR:$Vxx32),
35767(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35768"$Vxx32 += vmpyh($Vu32,$Rt32):sat",
35769PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35770let hasNewValue = 1;
35771let opNewValue = 0;
35772let isAccumulator = 1;
35773let isCVI = 1;
35774let isPseudo = 1;
35775let isCodeGenOnly = 1;
35776let DecoderNamespace = "EXT_mmvec";
35777let Constraints = "$Vxx32 = $Vxx32in";
35778}
35779def V6_vmpyhsrs : HInst<
35780(outs HvxVR:$Vd32),
35781(ins HvxVR:$Vu32, IntRegs:$Rt32),
35782"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
35783tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35784let Inst{7-5} = 0b010;
35785let Inst{13-13} = 0b0;
35786let Inst{31-21} = 0b00011001010;
35787let hasNewValue = 1;
35788let opNewValue = 0;
35789let isCVI = 1;
35790let DecoderNamespace = "EXT_mmvec";
35791}
35792def V6_vmpyhsrs_alt : HInst<
35793(outs HvxVR:$Vd32),
35794(ins HvxVR:$Vu32, IntRegs:$Rt32),
35795"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
35796PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35797let hasNewValue = 1;
35798let opNewValue = 0;
35799let isCVI = 1;
35800let isPseudo = 1;
35801let isCodeGenOnly = 1;
35802let DecoderNamespace = "EXT_mmvec";
35803}
35804def V6_vmpyhss : HInst<
35805(outs HvxVR:$Vd32),
35806(ins HvxVR:$Vu32, IntRegs:$Rt32),
35807"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
35808tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35809let Inst{7-5} = 0b001;
35810let Inst{13-13} = 0b0;
35811let Inst{31-21} = 0b00011001010;
35812let hasNewValue = 1;
35813let opNewValue = 0;
35814let isCVI = 1;
35815let DecoderNamespace = "EXT_mmvec";
35816}
35817def V6_vmpyhss_alt : HInst<
35818(outs HvxVR:$Vd32),
35819(ins HvxVR:$Vu32, IntRegs:$Rt32),
35820"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
35821PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35822let hasNewValue = 1;
35823let opNewValue = 0;
35824let isCVI = 1;
35825let isPseudo = 1;
35826let isCodeGenOnly = 1;
35827let DecoderNamespace = "EXT_mmvec";
35828}
35829def V6_vmpyhus : HInst<
35830(outs HvxWR:$Vdd32),
35831(ins HvxVR:$Vu32, HvxVR:$Vv32),
35832"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
35833tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35834let Inst{7-5} = 0b010;
35835let Inst{13-13} = 0b0;
35836let Inst{31-21} = 0b00011100001;
35837let hasNewValue = 1;
35838let opNewValue = 0;
35839let isCVI = 1;
35840let DecoderNamespace = "EXT_mmvec";
35841}
35842def V6_vmpyhus_acc : HInst<
35843(outs HvxWR:$Vxx32),
35844(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35845"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
35846tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35847let Inst{7-5} = 0b001;
35848let Inst{13-13} = 0b1;
35849let Inst{31-21} = 0b00011100001;
35850let hasNewValue = 1;
35851let opNewValue = 0;
35852let isAccumulator = 1;
35853let isCVI = 1;
35854let DecoderNamespace = "EXT_mmvec";
35855let Constraints = "$Vxx32 = $Vxx32in";
35856}
35857def V6_vmpyhus_acc_alt : HInst<
35858(outs HvxWR:$Vxx32),
35859(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35860"$Vxx32 += vmpyhus($Vu32,$Vv32)",
35861PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35862let hasNewValue = 1;
35863let opNewValue = 0;
35864let isAccumulator = 1;
35865let isCVI = 1;
35866let isPseudo = 1;
35867let isCodeGenOnly = 1;
35868let DecoderNamespace = "EXT_mmvec";
35869let Constraints = "$Vxx32 = $Vxx32in";
35870}
35871def V6_vmpyhus_alt : HInst<
35872(outs HvxWR:$Vdd32),
35873(ins HvxVR:$Vu32, HvxVR:$Vv32),
35874"$Vdd32 = vmpyhus($Vu32,$Vv32)",
35875PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35876let hasNewValue = 1;
35877let opNewValue = 0;
35878let isCVI = 1;
35879let isPseudo = 1;
35880let isCodeGenOnly = 1;
35881let DecoderNamespace = "EXT_mmvec";
35882}
35883def V6_vmpyhv : HInst<
35884(outs HvxWR:$Vdd32),
35885(ins HvxVR:$Vu32, HvxVR:$Vv32),
35886"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
35887tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35888let Inst{7-5} = 0b111;
35889let Inst{13-13} = 0b0;
35890let Inst{31-21} = 0b00011100000;
35891let hasNewValue = 1;
35892let opNewValue = 0;
35893let isCVI = 1;
35894let DecoderNamespace = "EXT_mmvec";
35895}
35896def V6_vmpyhv_acc : HInst<
35897(outs HvxWR:$Vxx32),
35898(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35899"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
35900tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35901let Inst{7-5} = 0b111;
35902let Inst{13-13} = 0b1;
35903let Inst{31-21} = 0b00011100000;
35904let hasNewValue = 1;
35905let opNewValue = 0;
35906let isAccumulator = 1;
35907let isCVI = 1;
35908let DecoderNamespace = "EXT_mmvec";
35909let Constraints = "$Vxx32 = $Vxx32in";
35910}
35911def V6_vmpyhv_acc_alt : HInst<
35912(outs HvxWR:$Vxx32),
35913(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35914"$Vxx32 += vmpyh($Vu32,$Vv32)",
35915PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35916let hasNewValue = 1;
35917let opNewValue = 0;
35918let isAccumulator = 1;
35919let isCVI = 1;
35920let isPseudo = 1;
35921let isCodeGenOnly = 1;
35922let DecoderNamespace = "EXT_mmvec";
35923let Constraints = "$Vxx32 = $Vxx32in";
35924}
35925def V6_vmpyhv_alt : HInst<
35926(outs HvxWR:$Vdd32),
35927(ins HvxVR:$Vu32, HvxVR:$Vv32),
35928"$Vdd32 = vmpyh($Vu32,$Vv32)",
35929PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35930let hasNewValue = 1;
35931let opNewValue = 0;
35932let isCVI = 1;
35933let isPseudo = 1;
35934let isCodeGenOnly = 1;
35935let DecoderNamespace = "EXT_mmvec";
35936}
35937def V6_vmpyhvsrs : HInst<
35938(outs HvxVR:$Vd32),
35939(ins HvxVR:$Vu32, HvxVR:$Vv32),
35940"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
35941tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35942let Inst{7-5} = 0b001;
35943let Inst{13-13} = 0b0;
35944let Inst{31-21} = 0b00011100001;
35945let hasNewValue = 1;
35946let opNewValue = 0;
35947let isCVI = 1;
35948let DecoderNamespace = "EXT_mmvec";
35949}
35950def V6_vmpyhvsrs_alt : HInst<
35951(outs HvxVR:$Vd32),
35952(ins HvxVR:$Vu32, HvxVR:$Vv32),
35953"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
35954PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35955let hasNewValue = 1;
35956let opNewValue = 0;
35957let isCVI = 1;
35958let isPseudo = 1;
35959let isCodeGenOnly = 1;
35960let DecoderNamespace = "EXT_mmvec";
35961}
35962def V6_vmpyieoh : HInst<
35963(outs HvxVR:$Vd32),
35964(ins HvxVR:$Vu32, HvxVR:$Vv32),
35965"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
35966tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35967let Inst{7-5} = 0b000;
35968let Inst{13-13} = 0b0;
35969let Inst{31-21} = 0b00011111011;
35970let hasNewValue = 1;
35971let opNewValue = 0;
35972let isCVI = 1;
35973let DecoderNamespace = "EXT_mmvec";
35974}
35975def V6_vmpyiewh_acc : HInst<
35976(outs HvxVR:$Vx32),
35977(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35978"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
35979tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35980let Inst{7-5} = 0b000;
35981let Inst{13-13} = 0b1;
35982let Inst{31-21} = 0b00011100010;
35983let hasNewValue = 1;
35984let opNewValue = 0;
35985let isAccumulator = 1;
35986let isCVI = 1;
35987let DecoderNamespace = "EXT_mmvec";
35988let Constraints = "$Vx32 = $Vx32in";
35989}
35990def V6_vmpyiewh_acc_alt : HInst<
35991(outs HvxVR:$Vx32),
35992(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35993"$Vx32 += vmpyiewh($Vu32,$Vv32)",
35994PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35995let hasNewValue = 1;
35996let opNewValue = 0;
35997let isAccumulator = 1;
35998let isCVI = 1;
35999let isPseudo = 1;
36000let isCodeGenOnly = 1;
36001let DecoderNamespace = "EXT_mmvec";
36002let Constraints = "$Vx32 = $Vx32in";
36003}
36004def V6_vmpyiewuh : HInst<
36005(outs HvxVR:$Vd32),
36006(ins HvxVR:$Vu32, HvxVR:$Vv32),
36007"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
36008tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36009let Inst{7-5} = 0b000;
36010let Inst{13-13} = 0b0;
36011let Inst{31-21} = 0b00011111110;
36012let hasNewValue = 1;
36013let opNewValue = 0;
36014let isCVI = 1;
36015let DecoderNamespace = "EXT_mmvec";
36016}
36017def V6_vmpyiewuh_acc : HInst<
36018(outs HvxVR:$Vx32),
36019(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36020"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
36021tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36022let Inst{7-5} = 0b101;
36023let Inst{13-13} = 0b1;
36024let Inst{31-21} = 0b00011100001;
36025let hasNewValue = 1;
36026let opNewValue = 0;
36027let isAccumulator = 1;
36028let isCVI = 1;
36029let DecoderNamespace = "EXT_mmvec";
36030let Constraints = "$Vx32 = $Vx32in";
36031}
36032def V6_vmpyiewuh_acc_alt : HInst<
36033(outs HvxVR:$Vx32),
36034(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36035"$Vx32 += vmpyiewuh($Vu32,$Vv32)",
36036PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36037let hasNewValue = 1;
36038let opNewValue = 0;
36039let isAccumulator = 1;
36040let isCVI = 1;
36041let isPseudo = 1;
36042let isCodeGenOnly = 1;
36043let DecoderNamespace = "EXT_mmvec";
36044let Constraints = "$Vx32 = $Vx32in";
36045}
36046def V6_vmpyiewuh_alt : HInst<
36047(outs HvxVR:$Vd32),
36048(ins HvxVR:$Vu32, HvxVR:$Vv32),
36049"$Vd32 = vmpyiewuh($Vu32,$Vv32)",
36050PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36051let hasNewValue = 1;
36052let opNewValue = 0;
36053let isCVI = 1;
36054let isPseudo = 1;
36055let isCodeGenOnly = 1;
36056let DecoderNamespace = "EXT_mmvec";
36057}
36058def V6_vmpyih : HInst<
36059(outs HvxVR:$Vd32),
36060(ins HvxVR:$Vu32, HvxVR:$Vv32),
36061"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
36062tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36063let Inst{7-5} = 0b100;
36064let Inst{13-13} = 0b0;
36065let Inst{31-21} = 0b00011100001;
36066let hasNewValue = 1;
36067let opNewValue = 0;
36068let isCVI = 1;
36069let DecoderNamespace = "EXT_mmvec";
36070}
36071def V6_vmpyih_acc : HInst<
36072(outs HvxVR:$Vx32),
36073(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36074"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
36075tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36076let Inst{7-5} = 0b100;
36077let Inst{13-13} = 0b1;
36078let Inst{31-21} = 0b00011100001;
36079let hasNewValue = 1;
36080let opNewValue = 0;
36081let isAccumulator = 1;
36082let isCVI = 1;
36083let DecoderNamespace = "EXT_mmvec";
36084let Constraints = "$Vx32 = $Vx32in";
36085}
36086def V6_vmpyih_acc_alt : HInst<
36087(outs HvxVR:$Vx32),
36088(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36089"$Vx32 += vmpyih($Vu32,$Vv32)",
36090PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36091let hasNewValue = 1;
36092let opNewValue = 0;
36093let isAccumulator = 1;
36094let isCVI = 1;
36095let isPseudo = 1;
36096let isCodeGenOnly = 1;
36097let DecoderNamespace = "EXT_mmvec";
36098let Constraints = "$Vx32 = $Vx32in";
36099}
36100def V6_vmpyih_alt : HInst<
36101(outs HvxVR:$Vd32),
36102(ins HvxVR:$Vu32, HvxVR:$Vv32),
36103"$Vd32 = vmpyih($Vu32,$Vv32)",
36104PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36105let hasNewValue = 1;
36106let opNewValue = 0;
36107let isCVI = 1;
36108let isPseudo = 1;
36109let isCodeGenOnly = 1;
36110let DecoderNamespace = "EXT_mmvec";
36111}
36112def V6_vmpyihb : HInst<
36113(outs HvxVR:$Vd32),
36114(ins HvxVR:$Vu32, IntRegs:$Rt32),
36115"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
36116tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36117let Inst{7-5} = 0b000;
36118let Inst{13-13} = 0b0;
36119let Inst{31-21} = 0b00011001011;
36120let hasNewValue = 1;
36121let opNewValue = 0;
36122let isCVI = 1;
36123let DecoderNamespace = "EXT_mmvec";
36124}
36125def V6_vmpyihb_acc : HInst<
36126(outs HvxVR:$Vx32),
36127(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36128"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
36129tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36130let Inst{7-5} = 0b001;
36131let Inst{13-13} = 0b1;
36132let Inst{31-21} = 0b00011001011;
36133let hasNewValue = 1;
36134let opNewValue = 0;
36135let isAccumulator = 1;
36136let isCVI = 1;
36137let DecoderNamespace = "EXT_mmvec";
36138let Constraints = "$Vx32 = $Vx32in";
36139}
36140def V6_vmpyihb_acc_alt : HInst<
36141(outs HvxVR:$Vx32),
36142(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36143"$Vx32 += vmpyihb($Vu32,$Rt32)",
36144PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36145let hasNewValue = 1;
36146let opNewValue = 0;
36147let isAccumulator = 1;
36148let isCVI = 1;
36149let isPseudo = 1;
36150let isCodeGenOnly = 1;
36151let DecoderNamespace = "EXT_mmvec";
36152let Constraints = "$Vx32 = $Vx32in";
36153}
36154def V6_vmpyihb_alt : HInst<
36155(outs HvxVR:$Vd32),
36156(ins HvxVR:$Vu32, IntRegs:$Rt32),
36157"$Vd32 = vmpyihb($Vu32,$Rt32)",
36158PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36159let hasNewValue = 1;
36160let opNewValue = 0;
36161let isCVI = 1;
36162let isPseudo = 1;
36163let isCodeGenOnly = 1;
36164let DecoderNamespace = "EXT_mmvec";
36165}
36166def V6_vmpyiowh : HInst<
36167(outs HvxVR:$Vd32),
36168(ins HvxVR:$Vu32, HvxVR:$Vv32),
36169"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
36170tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36171let Inst{7-5} = 0b001;
36172let Inst{13-13} = 0b0;
36173let Inst{31-21} = 0b00011111110;
36174let hasNewValue = 1;
36175let opNewValue = 0;
36176let isCVI = 1;
36177let DecoderNamespace = "EXT_mmvec";
36178}
36179def V6_vmpyiowh_alt : HInst<
36180(outs HvxVR:$Vd32),
36181(ins HvxVR:$Vu32, HvxVR:$Vv32),
36182"$Vd32 = vmpyiowh($Vu32,$Vv32)",
36183PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36184let hasNewValue = 1;
36185let opNewValue = 0;
36186let isCVI = 1;
36187let isPseudo = 1;
36188let isCodeGenOnly = 1;
36189let DecoderNamespace = "EXT_mmvec";
36190}
36191def V6_vmpyiwb : HInst<
36192(outs HvxVR:$Vd32),
36193(ins HvxVR:$Vu32, IntRegs:$Rt32),
36194"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
36195tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36196let Inst{7-5} = 0b000;
36197let Inst{13-13} = 0b0;
36198let Inst{31-21} = 0b00011001101;
36199let hasNewValue = 1;
36200let opNewValue = 0;
36201let isCVI = 1;
36202let DecoderNamespace = "EXT_mmvec";
36203}
36204def V6_vmpyiwb_acc : HInst<
36205(outs HvxVR:$Vx32),
36206(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36207"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
36208tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36209let Inst{7-5} = 0b010;
36210let Inst{13-13} = 0b1;
36211let Inst{31-21} = 0b00011001010;
36212let hasNewValue = 1;
36213let opNewValue = 0;
36214let isAccumulator = 1;
36215let isCVI = 1;
36216let DecoderNamespace = "EXT_mmvec";
36217let Constraints = "$Vx32 = $Vx32in";
36218}
36219def V6_vmpyiwb_acc_alt : HInst<
36220(outs HvxVR:$Vx32),
36221(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36222"$Vx32 += vmpyiwb($Vu32,$Rt32)",
36223PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36224let hasNewValue = 1;
36225let opNewValue = 0;
36226let isAccumulator = 1;
36227let isCVI = 1;
36228let isPseudo = 1;
36229let isCodeGenOnly = 1;
36230let DecoderNamespace = "EXT_mmvec";
36231let Constraints = "$Vx32 = $Vx32in";
36232}
36233def V6_vmpyiwb_alt : HInst<
36234(outs HvxVR:$Vd32),
36235(ins HvxVR:$Vu32, IntRegs:$Rt32),
36236"$Vd32 = vmpyiwb($Vu32,$Rt32)",
36237PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36238let hasNewValue = 1;
36239let opNewValue = 0;
36240let isCVI = 1;
36241let isPseudo = 1;
36242let isCodeGenOnly = 1;
36243let DecoderNamespace = "EXT_mmvec";
36244}
36245def V6_vmpyiwh : HInst<
36246(outs HvxVR:$Vd32),
36247(ins HvxVR:$Vu32, IntRegs:$Rt32),
36248"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
36249tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
36250let Inst{7-5} = 0b111;
36251let Inst{13-13} = 0b0;
36252let Inst{31-21} = 0b00011001100;
36253let hasNewValue = 1;
36254let opNewValue = 0;
36255let isCVI = 1;
36256let DecoderNamespace = "EXT_mmvec";
36257}
36258def V6_vmpyiwh_acc : HInst<
36259(outs HvxVR:$Vx32),
36260(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36261"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
36262tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
36263let Inst{7-5} = 0b011;
36264let Inst{13-13} = 0b1;
36265let Inst{31-21} = 0b00011001010;
36266let hasNewValue = 1;
36267let opNewValue = 0;
36268let isAccumulator = 1;
36269let isCVI = 1;
36270let DecoderNamespace = "EXT_mmvec";
36271let Constraints = "$Vx32 = $Vx32in";
36272}
36273def V6_vmpyiwh_acc_alt : HInst<
36274(outs HvxVR:$Vx32),
36275(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36276"$Vx32 += vmpyiwh($Vu32,$Rt32)",
36277PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36278let hasNewValue = 1;
36279let opNewValue = 0;
36280let isAccumulator = 1;
36281let isCVI = 1;
36282let isPseudo = 1;
36283let isCodeGenOnly = 1;
36284let DecoderNamespace = "EXT_mmvec";
36285let Constraints = "$Vx32 = $Vx32in";
36286}
36287def V6_vmpyiwh_alt : HInst<
36288(outs HvxVR:$Vd32),
36289(ins HvxVR:$Vu32, IntRegs:$Rt32),
36290"$Vd32 = vmpyiwh($Vu32,$Rt32)",
36291PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36292let hasNewValue = 1;
36293let opNewValue = 0;
36294let isCVI = 1;
36295let isPseudo = 1;
36296let isCodeGenOnly = 1;
36297let DecoderNamespace = "EXT_mmvec";
36298}
36299def V6_vmpyiwub : HInst<
36300(outs HvxVR:$Vd32),
36301(ins HvxVR:$Vu32, IntRegs:$Rt32),
36302"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
36303tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
36304let Inst{7-5} = 0b110;
36305let Inst{13-13} = 0b0;
36306let Inst{31-21} = 0b00011001100;
36307let hasNewValue = 1;
36308let opNewValue = 0;
36309let isCVI = 1;
36310let DecoderNamespace = "EXT_mmvec";
36311}
36312def V6_vmpyiwub_acc : HInst<
36313(outs HvxVR:$Vx32),
36314(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36315"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
36316tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
36317let Inst{7-5} = 0b001;
36318let Inst{13-13} = 0b1;
36319let Inst{31-21} = 0b00011001100;
36320let hasNewValue = 1;
36321let opNewValue = 0;
36322let isAccumulator = 1;
36323let isCVI = 1;
36324let DecoderNamespace = "EXT_mmvec";
36325let Constraints = "$Vx32 = $Vx32in";
36326}
36327def V6_vmpyiwub_acc_alt : HInst<
36328(outs HvxVR:$Vx32),
36329(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36330"$Vx32 += vmpyiwub($Vu32,$Rt32)",
36331PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36332let hasNewValue = 1;
36333let opNewValue = 0;
36334let isAccumulator = 1;
36335let isCVI = 1;
36336let isPseudo = 1;
36337let isCodeGenOnly = 1;
36338let DecoderNamespace = "EXT_mmvec";
36339let Constraints = "$Vx32 = $Vx32in";
36340}
36341def V6_vmpyiwub_alt : HInst<
36342(outs HvxVR:$Vd32),
36343(ins HvxVR:$Vu32, IntRegs:$Rt32),
36344"$Vd32 = vmpyiwub($Vu32,$Rt32)",
36345PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36346let hasNewValue = 1;
36347let opNewValue = 0;
36348let isCVI = 1;
36349let isPseudo = 1;
36350let isCodeGenOnly = 1;
36351let DecoderNamespace = "EXT_mmvec";
36352}
36353def V6_vmpyowh : HInst<
36354(outs HvxVR:$Vd32),
36355(ins HvxVR:$Vu32, HvxVR:$Vv32),
36356"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
36357tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36358let Inst{7-5} = 0b111;
36359let Inst{13-13} = 0b0;
36360let Inst{31-21} = 0b00011111111;
36361let hasNewValue = 1;
36362let opNewValue = 0;
36363let isCVI = 1;
36364let DecoderNamespace = "EXT_mmvec";
36365}
36366def V6_vmpyowh_64_acc : HInst<
36367(outs HvxWR:$Vxx32),
36368(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36369"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
36370tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
36371let Inst{7-5} = 0b011;
36372let Inst{13-13} = 0b1;
36373let Inst{31-21} = 0b00011100001;
36374let hasNewValue = 1;
36375let opNewValue = 0;
36376let isAccumulator = 1;
36377let isCVI = 1;
36378let DecoderNamespace = "EXT_mmvec";
36379let Constraints = "$Vxx32 = $Vxx32in";
36380}
36381def V6_vmpyowh_alt : HInst<
36382(outs HvxVR:$Vd32),
36383(ins HvxVR:$Vu32, HvxVR:$Vv32),
36384"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
36385PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36386let hasNewValue = 1;
36387let opNewValue = 0;
36388let isCVI = 1;
36389let isPseudo = 1;
36390let isCodeGenOnly = 1;
36391let DecoderNamespace = "EXT_mmvec";
36392}
36393def V6_vmpyowh_rnd : HInst<
36394(outs HvxVR:$Vd32),
36395(ins HvxVR:$Vu32, HvxVR:$Vv32),
36396"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
36397tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36398let Inst{7-5} = 0b000;
36399let Inst{13-13} = 0b0;
36400let Inst{31-21} = 0b00011111010;
36401let hasNewValue = 1;
36402let opNewValue = 0;
36403let isCVI = 1;
36404let DecoderNamespace = "EXT_mmvec";
36405}
36406def V6_vmpyowh_rnd_alt : HInst<
36407(outs HvxVR:$Vd32),
36408(ins HvxVR:$Vu32, HvxVR:$Vv32),
36409"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
36410PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36411let hasNewValue = 1;
36412let opNewValue = 0;
36413let isCVI = 1;
36414let isPseudo = 1;
36415let isCodeGenOnly = 1;
36416let DecoderNamespace = "EXT_mmvec";
36417}
36418def V6_vmpyowh_rnd_sacc : HInst<
36419(outs HvxVR:$Vx32),
36420(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36421"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
36422tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36423let Inst{7-5} = 0b111;
36424let Inst{13-13} = 0b1;
36425let Inst{31-21} = 0b00011100001;
36426let hasNewValue = 1;
36427let opNewValue = 0;
36428let isAccumulator = 1;
36429let isCVI = 1;
36430let DecoderNamespace = "EXT_mmvec";
36431let Constraints = "$Vx32 = $Vx32in";
36432}
36433def V6_vmpyowh_rnd_sacc_alt : HInst<
36434(outs HvxVR:$Vx32),
36435(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36436"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
36437PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36438let hasNewValue = 1;
36439let opNewValue = 0;
36440let isAccumulator = 1;
36441let isCVI = 1;
36442let isPseudo = 1;
36443let DecoderNamespace = "EXT_mmvec";
36444let Constraints = "$Vx32 = $Vx32in";
36445}
36446def V6_vmpyowh_sacc : HInst<
36447(outs HvxVR:$Vx32),
36448(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36449"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
36450tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36451let Inst{7-5} = 0b110;
36452let Inst{13-13} = 0b1;
36453let Inst{31-21} = 0b00011100001;
36454let hasNewValue = 1;
36455let opNewValue = 0;
36456let isAccumulator = 1;
36457let isCVI = 1;
36458let DecoderNamespace = "EXT_mmvec";
36459let Constraints = "$Vx32 = $Vx32in";
36460}
36461def V6_vmpyowh_sacc_alt : HInst<
36462(outs HvxVR:$Vx32),
36463(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36464"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
36465PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36466let hasNewValue = 1;
36467let opNewValue = 0;
36468let isAccumulator = 1;
36469let isCVI = 1;
36470let isPseudo = 1;
36471let DecoderNamespace = "EXT_mmvec";
36472let Constraints = "$Vx32 = $Vx32in";
36473}
36474def V6_vmpyub : HInst<
36475(outs HvxWR:$Vdd32),
36476(ins HvxVR:$Vu32, IntRegs:$Rt32),
36477"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
36478tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
36479let Inst{7-5} = 0b000;
36480let Inst{13-13} = 0b0;
36481let Inst{31-21} = 0b00011001110;
36482let hasNewValue = 1;
36483let opNewValue = 0;
36484let isCVI = 1;
36485let DecoderNamespace = "EXT_mmvec";
36486}
36487def V6_vmpyub_acc : HInst<
36488(outs HvxWR:$Vxx32),
36489(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36490"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
36491tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
36492let Inst{7-5} = 0b000;
36493let Inst{13-13} = 0b1;
36494let Inst{31-21} = 0b00011001100;
36495let hasNewValue = 1;
36496let opNewValue = 0;
36497let isAccumulator = 1;
36498let isCVI = 1;
36499let DecoderNamespace = "EXT_mmvec";
36500let Constraints = "$Vxx32 = $Vxx32in";
36501}
36502def V6_vmpyub_acc_alt : HInst<
36503(outs HvxWR:$Vxx32),
36504(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36505"$Vxx32 += vmpyub($Vu32,$Rt32)",
36506PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36507let hasNewValue = 1;
36508let opNewValue = 0;
36509let isAccumulator = 1;
36510let isCVI = 1;
36511let isPseudo = 1;
36512let isCodeGenOnly = 1;
36513let DecoderNamespace = "EXT_mmvec";
36514let Constraints = "$Vxx32 = $Vxx32in";
36515}
36516def V6_vmpyub_alt : HInst<
36517(outs HvxWR:$Vdd32),
36518(ins HvxVR:$Vu32, IntRegs:$Rt32),
36519"$Vdd32 = vmpyub($Vu32,$Rt32)",
36520PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36521let hasNewValue = 1;
36522let opNewValue = 0;
36523let isCVI = 1;
36524let isPseudo = 1;
36525let isCodeGenOnly = 1;
36526let DecoderNamespace = "EXT_mmvec";
36527}
36528def V6_vmpyubv : HInst<
36529(outs HvxWR:$Vdd32),
36530(ins HvxVR:$Vu32, HvxVR:$Vv32),
36531"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
36532tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36533let Inst{7-5} = 0b101;
36534let Inst{13-13} = 0b0;
36535let Inst{31-21} = 0b00011100000;
36536let hasNewValue = 1;
36537let opNewValue = 0;
36538let isCVI = 1;
36539let DecoderNamespace = "EXT_mmvec";
36540}
36541def V6_vmpyubv_acc : HInst<
36542(outs HvxWR:$Vxx32),
36543(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36544"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
36545tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36546let Inst{7-5} = 0b101;
36547let Inst{13-13} = 0b1;
36548let Inst{31-21} = 0b00011100000;
36549let hasNewValue = 1;
36550let opNewValue = 0;
36551let isAccumulator = 1;
36552let isCVI = 1;
36553let DecoderNamespace = "EXT_mmvec";
36554let Constraints = "$Vxx32 = $Vxx32in";
36555}
36556def V6_vmpyubv_acc_alt : HInst<
36557(outs HvxWR:$Vxx32),
36558(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36559"$Vxx32 += vmpyub($Vu32,$Vv32)",
36560PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36561let hasNewValue = 1;
36562let opNewValue = 0;
36563let isAccumulator = 1;
36564let isCVI = 1;
36565let isPseudo = 1;
36566let isCodeGenOnly = 1;
36567let DecoderNamespace = "EXT_mmvec";
36568let Constraints = "$Vxx32 = $Vxx32in";
36569}
36570def V6_vmpyubv_alt : HInst<
36571(outs HvxWR:$Vdd32),
36572(ins HvxVR:$Vu32, HvxVR:$Vv32),
36573"$Vdd32 = vmpyub($Vu32,$Vv32)",
36574PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36575let hasNewValue = 1;
36576let opNewValue = 0;
36577let isCVI = 1;
36578let isPseudo = 1;
36579let isCodeGenOnly = 1;
36580let DecoderNamespace = "EXT_mmvec";
36581}
36582def V6_vmpyuh : HInst<
36583(outs HvxWR:$Vdd32),
36584(ins HvxVR:$Vu32, IntRegs:$Rt32),
36585"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
36586tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
36587let Inst{7-5} = 0b011;
36588let Inst{13-13} = 0b0;
36589let Inst{31-21} = 0b00011001010;
36590let hasNewValue = 1;
36591let opNewValue = 0;
36592let isCVI = 1;
36593let DecoderNamespace = "EXT_mmvec";
36594}
36595def V6_vmpyuh_acc : HInst<
36596(outs HvxWR:$Vxx32),
36597(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36598"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
36599tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
36600let Inst{7-5} = 0b001;
36601let Inst{13-13} = 0b1;
36602let Inst{31-21} = 0b00011001010;
36603let hasNewValue = 1;
36604let opNewValue = 0;
36605let isAccumulator = 1;
36606let isCVI = 1;
36607let DecoderNamespace = "EXT_mmvec";
36608let Constraints = "$Vxx32 = $Vxx32in";
36609}
36610def V6_vmpyuh_acc_alt : HInst<
36611(outs HvxWR:$Vxx32),
36612(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36613"$Vxx32 += vmpyuh($Vu32,$Rt32)",
36614PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36615let hasNewValue = 1;
36616let opNewValue = 0;
36617let isAccumulator = 1;
36618let isCVI = 1;
36619let isPseudo = 1;
36620let isCodeGenOnly = 1;
36621let DecoderNamespace = "EXT_mmvec";
36622let Constraints = "$Vxx32 = $Vxx32in";
36623}
36624def V6_vmpyuh_alt : HInst<
36625(outs HvxWR:$Vdd32),
36626(ins HvxVR:$Vu32, IntRegs:$Rt32),
36627"$Vdd32 = vmpyuh($Vu32,$Rt32)",
36628PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36629let hasNewValue = 1;
36630let opNewValue = 0;
36631let isCVI = 1;
36632let isPseudo = 1;
36633let isCodeGenOnly = 1;
36634let DecoderNamespace = "EXT_mmvec";
36635}
36636def V6_vmpyuhe : HInst<
36637(outs HvxVR:$Vd32),
36638(ins HvxVR:$Vu32, IntRegs:$Rt32),
36639"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
36640tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
36641let Inst{7-5} = 0b010;
36642let Inst{13-13} = 0b0;
36643let Inst{31-21} = 0b00011001011;
36644let hasNewValue = 1;
36645let opNewValue = 0;
36646let isCVI = 1;
36647let DecoderNamespace = "EXT_mmvec";
36648}
36649def V6_vmpyuhe_acc : HInst<
36650(outs HvxVR:$Vx32),
36651(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36652"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
36653tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
36654let Inst{7-5} = 0b011;
36655let Inst{13-13} = 0b1;
36656let Inst{31-21} = 0b00011001100;
36657let hasNewValue = 1;
36658let opNewValue = 0;
36659let isAccumulator = 1;
36660let isCVI = 1;
36661let DecoderNamespace = "EXT_mmvec";
36662let Constraints = "$Vx32 = $Vx32in";
36663}
36664def V6_vmpyuhv : HInst<
36665(outs HvxWR:$Vdd32),
36666(ins HvxVR:$Vu32, HvxVR:$Vv32),
36667"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
36668tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36669let Inst{7-5} = 0b000;
36670let Inst{13-13} = 0b0;
36671let Inst{31-21} = 0b00011100001;
36672let hasNewValue = 1;
36673let opNewValue = 0;
36674let isCVI = 1;
36675let DecoderNamespace = "EXT_mmvec";
36676}
36677def V6_vmpyuhv_acc : HInst<
36678(outs HvxWR:$Vxx32),
36679(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36680"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
36681tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36682let Inst{7-5} = 0b000;
36683let Inst{13-13} = 0b1;
36684let Inst{31-21} = 0b00011100001;
36685let hasNewValue = 1;
36686let opNewValue = 0;
36687let isAccumulator = 1;
36688let isCVI = 1;
36689let DecoderNamespace = "EXT_mmvec";
36690let Constraints = "$Vxx32 = $Vxx32in";
36691}
36692def V6_vmpyuhv_acc_alt : HInst<
36693(outs HvxWR:$Vxx32),
36694(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36695"$Vxx32 += vmpyuh($Vu32,$Vv32)",
36696PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36697let hasNewValue = 1;
36698let opNewValue = 0;
36699let isAccumulator = 1;
36700let isCVI = 1;
36701let isPseudo = 1;
36702let isCodeGenOnly = 1;
36703let DecoderNamespace = "EXT_mmvec";
36704let Constraints = "$Vxx32 = $Vxx32in";
36705}
36706def V6_vmpyuhv_alt : HInst<
36707(outs HvxWR:$Vdd32),
36708(ins HvxVR:$Vu32, HvxVR:$Vv32),
36709"$Vdd32 = vmpyuh($Vu32,$Vv32)",
36710PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36711let hasNewValue = 1;
36712let opNewValue = 0;
36713let isCVI = 1;
36714let isPseudo = 1;
36715let isCodeGenOnly = 1;
36716let DecoderNamespace = "EXT_mmvec";
36717}
36718def V6_vmpyuhvs : HInst<
36719(outs HvxVR:$Vd32),
36720(ins HvxVR:$Vu32, HvxVR:$Vv32),
36721"$Vd32.uh = vmpy($Vu32.uh,$Vv32.uh):>>16",
36722tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV69]> {
36723let Inst{7-5} = 0b111;
36724let Inst{13-13} = 0b1;
36725let Inst{31-21} = 0b00011111110;
36726let hasNewValue = 1;
36727let opNewValue = 0;
36728let isCVI = 1;
36729let DecoderNamespace = "EXT_mmvec";
36730}
36731def V6_vmux : HInst<
36732(outs HvxVR:$Vd32),
36733(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
36734"$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
36735tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
36736let Inst{7-7} = 0b0;
36737let Inst{13-13} = 0b1;
36738let Inst{31-21} = 0b00011110111;
36739let hasNewValue = 1;
36740let opNewValue = 0;
36741let isCVI = 1;
36742let isHVXALU = 1;
36743let isHVXALU2SRC = 1;
36744let DecoderNamespace = "EXT_mmvec";
36745}
36746def V6_vnavgb : HInst<
36747(outs HvxVR:$Vd32),
36748(ins HvxVR:$Vu32, HvxVR:$Vv32),
36749"$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
36750tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
36751let Inst{7-5} = 0b110;
36752let Inst{13-13} = 0b1;
36753let Inst{31-21} = 0b00011111000;
36754let hasNewValue = 1;
36755let opNewValue = 0;
36756let isCVI = 1;
36757let isHVXALU = 1;
36758let isHVXALU2SRC = 1;
36759let DecoderNamespace = "EXT_mmvec";
36760}
36761def V6_vnavgb_alt : HInst<
36762(outs HvxVR:$Vd32),
36763(ins HvxVR:$Vu32, HvxVR:$Vv32),
36764"$Vd32 = vnavgb($Vu32,$Vv32)",
36765PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36766let hasNewValue = 1;
36767let opNewValue = 0;
36768let isCVI = 1;
36769let isPseudo = 1;
36770let isCodeGenOnly = 1;
36771let DecoderNamespace = "EXT_mmvec";
36772}
36773def V6_vnavgh : HInst<
36774(outs HvxVR:$Vd32),
36775(ins HvxVR:$Vu32, HvxVR:$Vv32),
36776"$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
36777tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36778let Inst{7-5} = 0b001;
36779let Inst{13-13} = 0b0;
36780let Inst{31-21} = 0b00011100111;
36781let hasNewValue = 1;
36782let opNewValue = 0;
36783let isCVI = 1;
36784let isHVXALU = 1;
36785let isHVXALU2SRC = 1;
36786let DecoderNamespace = "EXT_mmvec";
36787}
36788def V6_vnavgh_alt : HInst<
36789(outs HvxVR:$Vd32),
36790(ins HvxVR:$Vu32, HvxVR:$Vv32),
36791"$Vd32 = vnavgh($Vu32,$Vv32)",
36792PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36793let hasNewValue = 1;
36794let opNewValue = 0;
36795let isCVI = 1;
36796let isPseudo = 1;
36797let isCodeGenOnly = 1;
36798let DecoderNamespace = "EXT_mmvec";
36799}
36800def V6_vnavgub : HInst<
36801(outs HvxVR:$Vd32),
36802(ins HvxVR:$Vu32, HvxVR:$Vv32),
36803"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
36804tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36805let Inst{7-5} = 0b000;
36806let Inst{13-13} = 0b0;
36807let Inst{31-21} = 0b00011100111;
36808let hasNewValue = 1;
36809let opNewValue = 0;
36810let isCVI = 1;
36811let isHVXALU = 1;
36812let isHVXALU2SRC = 1;
36813let DecoderNamespace = "EXT_mmvec";
36814}
36815def V6_vnavgub_alt : HInst<
36816(outs HvxVR:$Vd32),
36817(ins HvxVR:$Vu32, HvxVR:$Vv32),
36818"$Vd32 = vnavgub($Vu32,$Vv32)",
36819PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36820let hasNewValue = 1;
36821let opNewValue = 0;
36822let isCVI = 1;
36823let isPseudo = 1;
36824let isCodeGenOnly = 1;
36825let DecoderNamespace = "EXT_mmvec";
36826}
36827def V6_vnavgw : HInst<
36828(outs HvxVR:$Vd32),
36829(ins HvxVR:$Vu32, HvxVR:$Vv32),
36830"$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
36831tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36832let Inst{7-5} = 0b010;
36833let Inst{13-13} = 0b0;
36834let Inst{31-21} = 0b00011100111;
36835let hasNewValue = 1;
36836let opNewValue = 0;
36837let isCVI = 1;
36838let isHVXALU = 1;
36839let isHVXALU2SRC = 1;
36840let DecoderNamespace = "EXT_mmvec";
36841}
36842def V6_vnavgw_alt : HInst<
36843(outs HvxVR:$Vd32),
36844(ins HvxVR:$Vu32, HvxVR:$Vv32),
36845"$Vd32 = vnavgw($Vu32,$Vv32)",
36846PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36847let hasNewValue = 1;
36848let opNewValue = 0;
36849let isCVI = 1;
36850let isPseudo = 1;
36851let isCodeGenOnly = 1;
36852let DecoderNamespace = "EXT_mmvec";
36853}
36854def V6_vnccombine : HInst<
36855(outs HvxWR:$Vdd32),
36856(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
36857"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
36858tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
36859let Inst{7-7} = 0b0;
36860let Inst{13-13} = 0b0;
36861let Inst{31-21} = 0b00011010010;
36862let isPredicated = 1;
36863let isPredicatedFalse = 1;
36864let hasNewValue = 1;
36865let opNewValue = 0;
36866let isCVI = 1;
36867let DecoderNamespace = "EXT_mmvec";
36868}
36869def V6_vncmov : HInst<
36870(outs HvxVR:$Vd32),
36871(ins PredRegs:$Ps4, HvxVR:$Vu32),
36872"if (!$Ps4) $Vd32 = $Vu32",
36873tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
36874let Inst{7-7} = 0b0;
36875let Inst{13-13} = 0b0;
36876let Inst{31-16} = 0b0001101000100000;
36877let isPredicated = 1;
36878let isPredicatedFalse = 1;
36879let hasNewValue = 1;
36880let opNewValue = 0;
36881let isCVI = 1;
36882let isHVXALU = 1;
36883let DecoderNamespace = "EXT_mmvec";
36884}
36885def V6_vnormamth : HInst<
36886(outs HvxVR:$Vd32),
36887(ins HvxVR:$Vu32),
36888"$Vd32.h = vnormamt($Vu32.h)",
36889tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36890let Inst{7-5} = 0b101;
36891let Inst{13-13} = 0b0;
36892let Inst{31-16} = 0b0001111000000011;
36893let hasNewValue = 1;
36894let opNewValue = 0;
36895let isCVI = 1;
36896let DecoderNamespace = "EXT_mmvec";
36897}
36898def V6_vnormamth_alt : HInst<
36899(outs HvxVR:$Vd32),
36900(ins HvxVR:$Vu32),
36901"$Vd32 = vnormamth($Vu32)",
36902PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36903let hasNewValue = 1;
36904let opNewValue = 0;
36905let isCVI = 1;
36906let isPseudo = 1;
36907let isCodeGenOnly = 1;
36908let DecoderNamespace = "EXT_mmvec";
36909}
36910def V6_vnormamtw : HInst<
36911(outs HvxVR:$Vd32),
36912(ins HvxVR:$Vu32),
36913"$Vd32.w = vnormamt($Vu32.w)",
36914tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36915let Inst{7-5} = 0b100;
36916let Inst{13-13} = 0b0;
36917let Inst{31-16} = 0b0001111000000011;
36918let hasNewValue = 1;
36919let opNewValue = 0;
36920let isCVI = 1;
36921let DecoderNamespace = "EXT_mmvec";
36922}
36923def V6_vnormamtw_alt : HInst<
36924(outs HvxVR:$Vd32),
36925(ins HvxVR:$Vu32),
36926"$Vd32 = vnormamtw($Vu32)",
36927PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36928let hasNewValue = 1;
36929let opNewValue = 0;
36930let isCVI = 1;
36931let isPseudo = 1;
36932let isCodeGenOnly = 1;
36933let DecoderNamespace = "EXT_mmvec";
36934}
36935def V6_vnot : HInst<
36936(outs HvxVR:$Vd32),
36937(ins HvxVR:$Vu32),
36938"$Vd32 = vnot($Vu32)",
36939tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
36940let Inst{7-5} = 0b100;
36941let Inst{13-13} = 0b0;
36942let Inst{31-16} = 0b0001111000000000;
36943let hasNewValue = 1;
36944let opNewValue = 0;
36945let isCVI = 1;
36946let isHVXALU = 1;
36947let isHVXALU2SRC = 1;
36948let DecoderNamespace = "EXT_mmvec";
36949}
36950def V6_vor : HInst<
36951(outs HvxVR:$Vd32),
36952(ins HvxVR:$Vu32, HvxVR:$Vv32),
36953"$Vd32 = vor($Vu32,$Vv32)",
36954tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36955let Inst{7-5} = 0b110;
36956let Inst{13-13} = 0b0;
36957let Inst{31-21} = 0b00011100001;
36958let hasNewValue = 1;
36959let opNewValue = 0;
36960let isCVI = 1;
36961let isHVXALU = 1;
36962let isHVXALU2SRC = 1;
36963let DecoderNamespace = "EXT_mmvec";
36964}
36965def V6_vpackeb : HInst<
36966(outs HvxVR:$Vd32),
36967(ins HvxVR:$Vu32, HvxVR:$Vv32),
36968"$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
36969tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36970let Inst{7-5} = 0b010;
36971let Inst{13-13} = 0b0;
36972let Inst{31-21} = 0b00011111110;
36973let hasNewValue = 1;
36974let opNewValue = 0;
36975let isCVI = 1;
36976let DecoderNamespace = "EXT_mmvec";
36977}
36978def V6_vpackeb_alt : HInst<
36979(outs HvxVR:$Vd32),
36980(ins HvxVR:$Vu32, HvxVR:$Vv32),
36981"$Vd32 = vpackeb($Vu32,$Vv32)",
36982PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36983let hasNewValue = 1;
36984let opNewValue = 0;
36985let isCVI = 1;
36986let isPseudo = 1;
36987let isCodeGenOnly = 1;
36988let DecoderNamespace = "EXT_mmvec";
36989}
36990def V6_vpackeh : HInst<
36991(outs HvxVR:$Vd32),
36992(ins HvxVR:$Vu32, HvxVR:$Vv32),
36993"$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
36994tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36995let Inst{7-5} = 0b011;
36996let Inst{13-13} = 0b0;
36997let Inst{31-21} = 0b00011111110;
36998let hasNewValue = 1;
36999let opNewValue = 0;
37000let isCVI = 1;
37001let DecoderNamespace = "EXT_mmvec";
37002}
37003def V6_vpackeh_alt : HInst<
37004(outs HvxVR:$Vd32),
37005(ins HvxVR:$Vu32, HvxVR:$Vv32),
37006"$Vd32 = vpackeh($Vu32,$Vv32)",
37007PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37008let hasNewValue = 1;
37009let opNewValue = 0;
37010let isCVI = 1;
37011let isPseudo = 1;
37012let isCodeGenOnly = 1;
37013let DecoderNamespace = "EXT_mmvec";
37014}
37015def V6_vpackhb_sat : HInst<
37016(outs HvxVR:$Vd32),
37017(ins HvxVR:$Vu32, HvxVR:$Vv32),
37018"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
37019tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37020let Inst{7-5} = 0b110;
37021let Inst{13-13} = 0b0;
37022let Inst{31-21} = 0b00011111110;
37023let hasNewValue = 1;
37024let opNewValue = 0;
37025let isCVI = 1;
37026let DecoderNamespace = "EXT_mmvec";
37027}
37028def V6_vpackhb_sat_alt : HInst<
37029(outs HvxVR:$Vd32),
37030(ins HvxVR:$Vu32, HvxVR:$Vv32),
37031"$Vd32 = vpackhb($Vu32,$Vv32):sat",
37032PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37033let hasNewValue = 1;
37034let opNewValue = 0;
37035let isCVI = 1;
37036let isPseudo = 1;
37037let isCodeGenOnly = 1;
37038let DecoderNamespace = "EXT_mmvec";
37039}
37040def V6_vpackhub_sat : HInst<
37041(outs HvxVR:$Vd32),
37042(ins HvxVR:$Vu32, HvxVR:$Vv32),
37043"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
37044tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37045let Inst{7-5} = 0b101;
37046let Inst{13-13} = 0b0;
37047let Inst{31-21} = 0b00011111110;
37048let hasNewValue = 1;
37049let opNewValue = 0;
37050let isCVI = 1;
37051let DecoderNamespace = "EXT_mmvec";
37052}
37053def V6_vpackhub_sat_alt : HInst<
37054(outs HvxVR:$Vd32),
37055(ins HvxVR:$Vu32, HvxVR:$Vv32),
37056"$Vd32 = vpackhub($Vu32,$Vv32):sat",
37057PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37058let hasNewValue = 1;
37059let opNewValue = 0;
37060let isCVI = 1;
37061let isPseudo = 1;
37062let isCodeGenOnly = 1;
37063let DecoderNamespace = "EXT_mmvec";
37064}
37065def V6_vpackob : HInst<
37066(outs HvxVR:$Vd32),
37067(ins HvxVR:$Vu32, HvxVR:$Vv32),
37068"$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
37069tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37070let Inst{7-5} = 0b001;
37071let Inst{13-13} = 0b0;
37072let Inst{31-21} = 0b00011111111;
37073let hasNewValue = 1;
37074let opNewValue = 0;
37075let isCVI = 1;
37076let DecoderNamespace = "EXT_mmvec";
37077}
37078def V6_vpackob_alt : HInst<
37079(outs HvxVR:$Vd32),
37080(ins HvxVR:$Vu32, HvxVR:$Vv32),
37081"$Vd32 = vpackob($Vu32,$Vv32)",
37082PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37083let hasNewValue = 1;
37084let opNewValue = 0;
37085let isCVI = 1;
37086let isPseudo = 1;
37087let isCodeGenOnly = 1;
37088let DecoderNamespace = "EXT_mmvec";
37089}
37090def V6_vpackoh : HInst<
37091(outs HvxVR:$Vd32),
37092(ins HvxVR:$Vu32, HvxVR:$Vv32),
37093"$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
37094tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37095let Inst{7-5} = 0b010;
37096let Inst{13-13} = 0b0;
37097let Inst{31-21} = 0b00011111111;
37098let hasNewValue = 1;
37099let opNewValue = 0;
37100let isCVI = 1;
37101let DecoderNamespace = "EXT_mmvec";
37102}
37103def V6_vpackoh_alt : HInst<
37104(outs HvxVR:$Vd32),
37105(ins HvxVR:$Vu32, HvxVR:$Vv32),
37106"$Vd32 = vpackoh($Vu32,$Vv32)",
37107PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37108let hasNewValue = 1;
37109let opNewValue = 0;
37110let isCVI = 1;
37111let isPseudo = 1;
37112let isCodeGenOnly = 1;
37113let DecoderNamespace = "EXT_mmvec";
37114}
37115def V6_vpackwh_sat : HInst<
37116(outs HvxVR:$Vd32),
37117(ins HvxVR:$Vu32, HvxVR:$Vv32),
37118"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
37119tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37120let Inst{7-5} = 0b000;
37121let Inst{13-13} = 0b0;
37122let Inst{31-21} = 0b00011111111;
37123let hasNewValue = 1;
37124let opNewValue = 0;
37125let isCVI = 1;
37126let DecoderNamespace = "EXT_mmvec";
37127}
37128def V6_vpackwh_sat_alt : HInst<
37129(outs HvxVR:$Vd32),
37130(ins HvxVR:$Vu32, HvxVR:$Vv32),
37131"$Vd32 = vpackwh($Vu32,$Vv32):sat",
37132PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37133let hasNewValue = 1;
37134let opNewValue = 0;
37135let isCVI = 1;
37136let isPseudo = 1;
37137let isCodeGenOnly = 1;
37138let DecoderNamespace = "EXT_mmvec";
37139}
37140def V6_vpackwuh_sat : HInst<
37141(outs HvxVR:$Vd32),
37142(ins HvxVR:$Vu32, HvxVR:$Vv32),
37143"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
37144tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37145let Inst{7-5} = 0b111;
37146let Inst{13-13} = 0b0;
37147let Inst{31-21} = 0b00011111110;
37148let hasNewValue = 1;
37149let opNewValue = 0;
37150let isCVI = 1;
37151let DecoderNamespace = "EXT_mmvec";
37152}
37153def V6_vpackwuh_sat_alt : HInst<
37154(outs HvxVR:$Vd32),
37155(ins HvxVR:$Vu32, HvxVR:$Vv32),
37156"$Vd32 = vpackwuh($Vu32,$Vv32):sat",
37157PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37158let hasNewValue = 1;
37159let opNewValue = 0;
37160let isCVI = 1;
37161let isPseudo = 1;
37162let isCodeGenOnly = 1;
37163let DecoderNamespace = "EXT_mmvec";
37164}
37165def V6_vpopcounth : HInst<
37166(outs HvxVR:$Vd32),
37167(ins HvxVR:$Vu32),
37168"$Vd32.h = vpopcount($Vu32.h)",
37169tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
37170let Inst{7-5} = 0b110;
37171let Inst{13-13} = 0b0;
37172let Inst{31-16} = 0b0001111000000010;
37173let hasNewValue = 1;
37174let opNewValue = 0;
37175let isCVI = 1;
37176let DecoderNamespace = "EXT_mmvec";
37177}
37178def V6_vpopcounth_alt : HInst<
37179(outs HvxVR:$Vd32),
37180(ins HvxVR:$Vu32),
37181"$Vd32 = vpopcounth($Vu32)",
37182PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37183let hasNewValue = 1;
37184let opNewValue = 0;
37185let isCVI = 1;
37186let isPseudo = 1;
37187let isCodeGenOnly = 1;
37188let DecoderNamespace = "EXT_mmvec";
37189}
37190def V6_vprefixqb : HInst<
37191(outs HvxVR:$Vd32),
37192(ins HvxQR:$Qv4),
37193"$Vd32.b = prefixsum($Qv4)",
37194tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37195let Inst{13-5} = 0b100000010;
37196let Inst{21-16} = 0b000011;
37197let Inst{31-24} = 0b00011110;
37198let hasNewValue = 1;
37199let opNewValue = 0;
37200let isCVI = 1;
37201let DecoderNamespace = "EXT_mmvec";
37202}
37203def V6_vprefixqh : HInst<
37204(outs HvxVR:$Vd32),
37205(ins HvxQR:$Qv4),
37206"$Vd32.h = prefixsum($Qv4)",
37207tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37208let Inst{13-5} = 0b100001010;
37209let Inst{21-16} = 0b000011;
37210let Inst{31-24} = 0b00011110;
37211let hasNewValue = 1;
37212let opNewValue = 0;
37213let isCVI = 1;
37214let DecoderNamespace = "EXT_mmvec";
37215}
37216def V6_vprefixqw : HInst<
37217(outs HvxVR:$Vd32),
37218(ins HvxQR:$Qv4),
37219"$Vd32.w = prefixsum($Qv4)",
37220tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37221let Inst{13-5} = 0b100010010;
37222let Inst{21-16} = 0b000011;
37223let Inst{31-24} = 0b00011110;
37224let hasNewValue = 1;
37225let opNewValue = 0;
37226let isCVI = 1;
37227let DecoderNamespace = "EXT_mmvec";
37228}
37229def V6_vrdelta : HInst<
37230(outs HvxVR:$Vd32),
37231(ins HvxVR:$Vu32, HvxVR:$Vv32),
37232"$Vd32 = vrdelta($Vu32,$Vv32)",
37233tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37234let Inst{7-5} = 0b011;
37235let Inst{13-13} = 0b0;
37236let Inst{31-21} = 0b00011111001;
37237let hasNewValue = 1;
37238let opNewValue = 0;
37239let isCVI = 1;
37240let DecoderNamespace = "EXT_mmvec";
37241}
37242def V6_vrmpybub_rtt : HInst<
37243(outs HvxWR:$Vdd32),
37244(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37245"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
37246tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
37247let Inst{7-5} = 0b101;
37248let Inst{13-13} = 0b0;
37249let Inst{31-21} = 0b00011001110;
37250let hasNewValue = 1;
37251let opNewValue = 0;
37252let isCVI = 1;
37253let DecoderNamespace = "EXT_mmvec";
37254}
37255def V6_vrmpybub_rtt_acc : HInst<
37256(outs HvxWR:$Vxx32),
37257(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37258"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
37259tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
37260let Inst{7-5} = 0b000;
37261let Inst{13-13} = 0b1;
37262let Inst{31-21} = 0b00011001101;
37263let hasNewValue = 1;
37264let opNewValue = 0;
37265let isAccumulator = 1;
37266let isCVI = 1;
37267let DecoderNamespace = "EXT_mmvec";
37268let Constraints = "$Vxx32 = $Vxx32in";
37269}
37270def V6_vrmpybub_rtt_acc_alt : HInst<
37271(outs HvxWR:$Vxx32),
37272(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37273"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
37274PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37275let hasNewValue = 1;
37276let opNewValue = 0;
37277let isAccumulator = 1;
37278let isCVI = 1;
37279let isPseudo = 1;
37280let isCodeGenOnly = 1;
37281let DecoderNamespace = "EXT_mmvec";
37282let Constraints = "$Vxx32 = $Vxx32in";
37283}
37284def V6_vrmpybub_rtt_alt : HInst<
37285(outs HvxWR:$Vdd32),
37286(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37287"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
37288PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37289let hasNewValue = 1;
37290let opNewValue = 0;
37291let isCVI = 1;
37292let isPseudo = 1;
37293let isCodeGenOnly = 1;
37294let DecoderNamespace = "EXT_mmvec";
37295}
37296def V6_vrmpybus : HInst<
37297(outs HvxVR:$Vd32),
37298(ins HvxVR:$Vu32, IntRegs:$Rt32),
37299"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
37300tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
37301let Inst{7-5} = 0b100;
37302let Inst{13-13} = 0b0;
37303let Inst{31-21} = 0b00011001000;
37304let hasNewValue = 1;
37305let opNewValue = 0;
37306let isCVI = 1;
37307let DecoderNamespace = "EXT_mmvec";
37308}
37309def V6_vrmpybus_acc : HInst<
37310(outs HvxVR:$Vx32),
37311(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37312"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
37313tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
37314let Inst{7-5} = 0b101;
37315let Inst{13-13} = 0b1;
37316let Inst{31-21} = 0b00011001000;
37317let hasNewValue = 1;
37318let opNewValue = 0;
37319let isAccumulator = 1;
37320let isCVI = 1;
37321let DecoderNamespace = "EXT_mmvec";
37322let Constraints = "$Vx32 = $Vx32in";
37323}
37324def V6_vrmpybus_acc_alt : HInst<
37325(outs HvxVR:$Vx32),
37326(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37327"$Vx32 += vrmpybus($Vu32,$Rt32)",
37328PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37329let hasNewValue = 1;
37330let opNewValue = 0;
37331let isAccumulator = 1;
37332let isCVI = 1;
37333let isPseudo = 1;
37334let isCodeGenOnly = 1;
37335let DecoderNamespace = "EXT_mmvec";
37336let Constraints = "$Vx32 = $Vx32in";
37337}
37338def V6_vrmpybus_alt : HInst<
37339(outs HvxVR:$Vd32),
37340(ins HvxVR:$Vu32, IntRegs:$Rt32),
37341"$Vd32 = vrmpybus($Vu32,$Rt32)",
37342PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37343let hasNewValue = 1;
37344let opNewValue = 0;
37345let isCVI = 1;
37346let isPseudo = 1;
37347let isCodeGenOnly = 1;
37348let DecoderNamespace = "EXT_mmvec";
37349}
37350def V6_vrmpybusi : HInst<
37351(outs HvxWR:$Vdd32),
37352(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37353"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
37354tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37355let Inst{7-6} = 0b10;
37356let Inst{13-13} = 0b0;
37357let Inst{31-21} = 0b00011001010;
37358let hasNewValue = 1;
37359let opNewValue = 0;
37360let isCVI = 1;
37361let DecoderNamespace = "EXT_mmvec";
37362}
37363def V6_vrmpybusi_acc : HInst<
37364(outs HvxWR:$Vxx32),
37365(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37366"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
37367tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37368let Inst{7-6} = 0b10;
37369let Inst{13-13} = 0b1;
37370let Inst{31-21} = 0b00011001010;
37371let hasNewValue = 1;
37372let opNewValue = 0;
37373let isAccumulator = 1;
37374let isCVI = 1;
37375let DecoderNamespace = "EXT_mmvec";
37376let Constraints = "$Vxx32 = $Vxx32in";
37377}
37378def V6_vrmpybusi_acc_alt : HInst<
37379(outs HvxWR:$Vxx32),
37380(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37381"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
37382PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37383let hasNewValue = 1;
37384let opNewValue = 0;
37385let isAccumulator = 1;
37386let isCVI = 1;
37387let isPseudo = 1;
37388let isCodeGenOnly = 1;
37389let DecoderNamespace = "EXT_mmvec";
37390let Constraints = "$Vxx32 = $Vxx32in";
37391}
37392def V6_vrmpybusi_alt : HInst<
37393(outs HvxWR:$Vdd32),
37394(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37395"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
37396PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37397let hasNewValue = 1;
37398let opNewValue = 0;
37399let isCVI = 1;
37400let isPseudo = 1;
37401let isCodeGenOnly = 1;
37402let DecoderNamespace = "EXT_mmvec";
37403}
37404def V6_vrmpybusv : HInst<
37405(outs HvxVR:$Vd32),
37406(ins HvxVR:$Vu32, HvxVR:$Vv32),
37407"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
37408tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37409let Inst{7-5} = 0b010;
37410let Inst{13-13} = 0b0;
37411let Inst{31-21} = 0b00011100000;
37412let hasNewValue = 1;
37413let opNewValue = 0;
37414let isCVI = 1;
37415let DecoderNamespace = "EXT_mmvec";
37416}
37417def V6_vrmpybusv_acc : HInst<
37418(outs HvxVR:$Vx32),
37419(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37420"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
37421tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37422let Inst{7-5} = 0b010;
37423let Inst{13-13} = 0b1;
37424let Inst{31-21} = 0b00011100000;
37425let hasNewValue = 1;
37426let opNewValue = 0;
37427let isAccumulator = 1;
37428let isCVI = 1;
37429let DecoderNamespace = "EXT_mmvec";
37430let Constraints = "$Vx32 = $Vx32in";
37431}
37432def V6_vrmpybusv_acc_alt : HInst<
37433(outs HvxVR:$Vx32),
37434(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37435"$Vx32 += vrmpybus($Vu32,$Vv32)",
37436PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37437let hasNewValue = 1;
37438let opNewValue = 0;
37439let isAccumulator = 1;
37440let isCVI = 1;
37441let isPseudo = 1;
37442let isCodeGenOnly = 1;
37443let DecoderNamespace = "EXT_mmvec";
37444let Constraints = "$Vx32 = $Vx32in";
37445}
37446def V6_vrmpybusv_alt : HInst<
37447(outs HvxVR:$Vd32),
37448(ins HvxVR:$Vu32, HvxVR:$Vv32),
37449"$Vd32 = vrmpybus($Vu32,$Vv32)",
37450PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37451let hasNewValue = 1;
37452let opNewValue = 0;
37453let isCVI = 1;
37454let isPseudo = 1;
37455let isCodeGenOnly = 1;
37456let DecoderNamespace = "EXT_mmvec";
37457}
37458def V6_vrmpybv : HInst<
37459(outs HvxVR:$Vd32),
37460(ins HvxVR:$Vu32, HvxVR:$Vv32),
37461"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
37462tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37463let Inst{7-5} = 0b001;
37464let Inst{13-13} = 0b0;
37465let Inst{31-21} = 0b00011100000;
37466let hasNewValue = 1;
37467let opNewValue = 0;
37468let isCVI = 1;
37469let DecoderNamespace = "EXT_mmvec";
37470}
37471def V6_vrmpybv_acc : HInst<
37472(outs HvxVR:$Vx32),
37473(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37474"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
37475tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37476let Inst{7-5} = 0b001;
37477let Inst{13-13} = 0b1;
37478let Inst{31-21} = 0b00011100000;
37479let hasNewValue = 1;
37480let opNewValue = 0;
37481let isAccumulator = 1;
37482let isCVI = 1;
37483let DecoderNamespace = "EXT_mmvec";
37484let Constraints = "$Vx32 = $Vx32in";
37485}
37486def V6_vrmpybv_acc_alt : HInst<
37487(outs HvxVR:$Vx32),
37488(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37489"$Vx32 += vrmpyb($Vu32,$Vv32)",
37490PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37491let hasNewValue = 1;
37492let opNewValue = 0;
37493let isAccumulator = 1;
37494let isCVI = 1;
37495let isPseudo = 1;
37496let isCodeGenOnly = 1;
37497let DecoderNamespace = "EXT_mmvec";
37498let Constraints = "$Vx32 = $Vx32in";
37499}
37500def V6_vrmpybv_alt : HInst<
37501(outs HvxVR:$Vd32),
37502(ins HvxVR:$Vu32, HvxVR:$Vv32),
37503"$Vd32 = vrmpyb($Vu32,$Vv32)",
37504PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37505let hasNewValue = 1;
37506let opNewValue = 0;
37507let isCVI = 1;
37508let isPseudo = 1;
37509let isCodeGenOnly = 1;
37510let DecoderNamespace = "EXT_mmvec";
37511}
37512def V6_vrmpyub : HInst<
37513(outs HvxVR:$Vd32),
37514(ins HvxVR:$Vu32, IntRegs:$Rt32),
37515"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
37516tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
37517let Inst{7-5} = 0b011;
37518let Inst{13-13} = 0b0;
37519let Inst{31-21} = 0b00011001000;
37520let hasNewValue = 1;
37521let opNewValue = 0;
37522let isCVI = 1;
37523let DecoderNamespace = "EXT_mmvec";
37524}
37525def V6_vrmpyub_acc : HInst<
37526(outs HvxVR:$Vx32),
37527(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37528"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
37529tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
37530let Inst{7-5} = 0b100;
37531let Inst{13-13} = 0b1;
37532let Inst{31-21} = 0b00011001000;
37533let hasNewValue = 1;
37534let opNewValue = 0;
37535let isAccumulator = 1;
37536let isCVI = 1;
37537let DecoderNamespace = "EXT_mmvec";
37538let Constraints = "$Vx32 = $Vx32in";
37539}
37540def V6_vrmpyub_acc_alt : HInst<
37541(outs HvxVR:$Vx32),
37542(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37543"$Vx32 += vrmpyub($Vu32,$Rt32)",
37544PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37545let hasNewValue = 1;
37546let opNewValue = 0;
37547let isAccumulator = 1;
37548let isCVI = 1;
37549let isPseudo = 1;
37550let isCodeGenOnly = 1;
37551let DecoderNamespace = "EXT_mmvec";
37552let Constraints = "$Vx32 = $Vx32in";
37553}
37554def V6_vrmpyub_alt : HInst<
37555(outs HvxVR:$Vd32),
37556(ins HvxVR:$Vu32, IntRegs:$Rt32),
37557"$Vd32 = vrmpyub($Vu32,$Rt32)",
37558PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37559let hasNewValue = 1;
37560let opNewValue = 0;
37561let isCVI = 1;
37562let isPseudo = 1;
37563let isCodeGenOnly = 1;
37564let DecoderNamespace = "EXT_mmvec";
37565}
37566def V6_vrmpyub_rtt : HInst<
37567(outs HvxWR:$Vdd32),
37568(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37569"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37570tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
37571let Inst{7-5} = 0b100;
37572let Inst{13-13} = 0b0;
37573let Inst{31-21} = 0b00011001110;
37574let hasNewValue = 1;
37575let opNewValue = 0;
37576let isCVI = 1;
37577let DecoderNamespace = "EXT_mmvec";
37578}
37579def V6_vrmpyub_rtt_acc : HInst<
37580(outs HvxWR:$Vxx32),
37581(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37582"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37583tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
37584let Inst{7-5} = 0b111;
37585let Inst{13-13} = 0b1;
37586let Inst{31-21} = 0b00011001101;
37587let hasNewValue = 1;
37588let opNewValue = 0;
37589let isAccumulator = 1;
37590let isCVI = 1;
37591let DecoderNamespace = "EXT_mmvec";
37592let Constraints = "$Vxx32 = $Vxx32in";
37593}
37594def V6_vrmpyub_rtt_acc_alt : HInst<
37595(outs HvxWR:$Vxx32),
37596(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37597"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37598PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37599let hasNewValue = 1;
37600let opNewValue = 0;
37601let isAccumulator = 1;
37602let isCVI = 1;
37603let isPseudo = 1;
37604let isCodeGenOnly = 1;
37605let DecoderNamespace = "EXT_mmvec";
37606let Constraints = "$Vxx32 = $Vxx32in";
37607}
37608def V6_vrmpyub_rtt_alt : HInst<
37609(outs HvxWR:$Vdd32),
37610(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37611"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37612PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37613let hasNewValue = 1;
37614let opNewValue = 0;
37615let isCVI = 1;
37616let isPseudo = 1;
37617let isCodeGenOnly = 1;
37618let DecoderNamespace = "EXT_mmvec";
37619}
37620def V6_vrmpyubi : HInst<
37621(outs HvxWR:$Vdd32),
37622(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37623"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37624tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37625let Inst{7-6} = 0b11;
37626let Inst{13-13} = 0b0;
37627let Inst{31-21} = 0b00011001101;
37628let hasNewValue = 1;
37629let opNewValue = 0;
37630let isCVI = 1;
37631let DecoderNamespace = "EXT_mmvec";
37632}
37633def V6_vrmpyubi_acc : HInst<
37634(outs HvxWR:$Vxx32),
37635(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37636"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37637tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37638let Inst{7-6} = 0b11;
37639let Inst{13-13} = 0b1;
37640let Inst{31-21} = 0b00011001011;
37641let hasNewValue = 1;
37642let opNewValue = 0;
37643let isAccumulator = 1;
37644let isCVI = 1;
37645let DecoderNamespace = "EXT_mmvec";
37646let Constraints = "$Vxx32 = $Vxx32in";
37647}
37648def V6_vrmpyubi_acc_alt : HInst<
37649(outs HvxWR:$Vxx32),
37650(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37651"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
37652PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37653let hasNewValue = 1;
37654let opNewValue = 0;
37655let isAccumulator = 1;
37656let isCVI = 1;
37657let isPseudo = 1;
37658let isCodeGenOnly = 1;
37659let DecoderNamespace = "EXT_mmvec";
37660let Constraints = "$Vxx32 = $Vxx32in";
37661}
37662def V6_vrmpyubi_alt : HInst<
37663(outs HvxWR:$Vdd32),
37664(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37665"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
37666PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37667let hasNewValue = 1;
37668let opNewValue = 0;
37669let isCVI = 1;
37670let isPseudo = 1;
37671let isCodeGenOnly = 1;
37672let DecoderNamespace = "EXT_mmvec";
37673}
37674def V6_vrmpyubv : HInst<
37675(outs HvxVR:$Vd32),
37676(ins HvxVR:$Vu32, HvxVR:$Vv32),
37677"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
37678tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37679let Inst{7-5} = 0b000;
37680let Inst{13-13} = 0b0;
37681let Inst{31-21} = 0b00011100000;
37682let hasNewValue = 1;
37683let opNewValue = 0;
37684let isCVI = 1;
37685let DecoderNamespace = "EXT_mmvec";
37686}
37687def V6_vrmpyubv_acc : HInst<
37688(outs HvxVR:$Vx32),
37689(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37690"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
37691tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37692let Inst{7-5} = 0b000;
37693let Inst{13-13} = 0b1;
37694let Inst{31-21} = 0b00011100000;
37695let hasNewValue = 1;
37696let opNewValue = 0;
37697let isAccumulator = 1;
37698let isCVI = 1;
37699let DecoderNamespace = "EXT_mmvec";
37700let Constraints = "$Vx32 = $Vx32in";
37701}
37702def V6_vrmpyubv_acc_alt : HInst<
37703(outs HvxVR:$Vx32),
37704(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37705"$Vx32 += vrmpyub($Vu32,$Vv32)",
37706PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37707let hasNewValue = 1;
37708let opNewValue = 0;
37709let isAccumulator = 1;
37710let isCVI = 1;
37711let isPseudo = 1;
37712let isCodeGenOnly = 1;
37713let DecoderNamespace = "EXT_mmvec";
37714let Constraints = "$Vx32 = $Vx32in";
37715}
37716def V6_vrmpyubv_alt : HInst<
37717(outs HvxVR:$Vd32),
37718(ins HvxVR:$Vu32, HvxVR:$Vv32),
37719"$Vd32 = vrmpyub($Vu32,$Vv32)",
37720PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37721let hasNewValue = 1;
37722let opNewValue = 0;
37723let isCVI = 1;
37724let isPseudo = 1;
37725let isCodeGenOnly = 1;
37726let DecoderNamespace = "EXT_mmvec";
37727}
37728def V6_vrmpyzbb_rt : HInst<
37729(outs HvxVQR:$Vdddd32),
37730(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37731"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
37732tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37733let Inst{7-5} = 0b000;
37734let Inst{13-13} = 0b0;
37735let Inst{31-19} = 0b0001100111101;
37736let hasNewValue = 1;
37737let opNewValue = 0;
37738let isCVI = 1;
37739let DecoderNamespace = "EXT_mmvec";
37740}
37741def V6_vrmpyzbb_rt_acc : HInst<
37742(outs HvxVQR:$Vyyyy32),
37743(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37744"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
37745tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37746let Inst{7-5} = 0b010;
37747let Inst{13-13} = 0b1;
37748let Inst{31-19} = 0b0001100111000;
37749let hasNewValue = 1;
37750let opNewValue = 0;
37751let isAccumulator = 1;
37752let isCVI = 1;
37753let DecoderNamespace = "EXT_mmvec";
37754let Constraints = "$Vyyyy32 = $Vyyyy32in";
37755}
37756def V6_vrmpyzbb_rx : HInst<
37757(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37758(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37759"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
37760tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37761let Inst{7-5} = 0b000;
37762let Inst{13-13} = 0b0;
37763let Inst{31-19} = 0b0001100111100;
37764let hasNewValue = 1;
37765let opNewValue = 0;
37766let isCVI = 1;
37767let DecoderNamespace = "EXT_mmvec";
37768let Constraints = "$Rx8 = $Rx8in";
37769}
37770def V6_vrmpyzbb_rx_acc : HInst<
37771(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37772(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37773"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
37774tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37775let Inst{7-5} = 0b010;
37776let Inst{13-13} = 0b1;
37777let Inst{31-19} = 0b0001100111001;
37778let hasNewValue = 1;
37779let opNewValue = 0;
37780let isAccumulator = 1;
37781let isCVI = 1;
37782let DecoderNamespace = "EXT_mmvec";
37783let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37784}
37785def V6_vrmpyzbub_rt : HInst<
37786(outs HvxVQR:$Vdddd32),
37787(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37788"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
37789tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37790let Inst{7-5} = 0b010;
37791let Inst{13-13} = 0b0;
37792let Inst{31-19} = 0b0001100111111;
37793let hasNewValue = 1;
37794let opNewValue = 0;
37795let isCVI = 1;
37796let DecoderNamespace = "EXT_mmvec";
37797}
37798def V6_vrmpyzbub_rt_acc : HInst<
37799(outs HvxVQR:$Vyyyy32),
37800(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37801"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
37802tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37803let Inst{7-5} = 0b001;
37804let Inst{13-13} = 0b1;
37805let Inst{31-19} = 0b0001100111010;
37806let hasNewValue = 1;
37807let opNewValue = 0;
37808let isAccumulator = 1;
37809let isCVI = 1;
37810let DecoderNamespace = "EXT_mmvec";
37811let Constraints = "$Vyyyy32 = $Vyyyy32in";
37812}
37813def V6_vrmpyzbub_rx : HInst<
37814(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37815(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37816"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
37817tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37818let Inst{7-5} = 0b010;
37819let Inst{13-13} = 0b0;
37820let Inst{31-19} = 0b0001100111110;
37821let hasNewValue = 1;
37822let opNewValue = 0;
37823let isCVI = 1;
37824let DecoderNamespace = "EXT_mmvec";
37825let Constraints = "$Rx8 = $Rx8in";
37826}
37827def V6_vrmpyzbub_rx_acc : HInst<
37828(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37829(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37830"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
37831tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37832let Inst{7-5} = 0b001;
37833let Inst{13-13} = 0b1;
37834let Inst{31-19} = 0b0001100111011;
37835let hasNewValue = 1;
37836let opNewValue = 0;
37837let isAccumulator = 1;
37838let isCVI = 1;
37839let DecoderNamespace = "EXT_mmvec";
37840let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37841}
37842def V6_vrmpyzcb_rt : HInst<
37843(outs HvxVQR:$Vdddd32),
37844(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37845"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
37846tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37847let Inst{7-5} = 0b001;
37848let Inst{13-13} = 0b0;
37849let Inst{31-19} = 0b0001100111101;
37850let hasNewValue = 1;
37851let opNewValue = 0;
37852let isCVI = 1;
37853let DecoderNamespace = "EXT_mmvec";
37854}
37855def V6_vrmpyzcb_rt_acc : HInst<
37856(outs HvxVQR:$Vyyyy32),
37857(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37858"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
37859tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37860let Inst{7-5} = 0b011;
37861let Inst{13-13} = 0b1;
37862let Inst{31-19} = 0b0001100111000;
37863let hasNewValue = 1;
37864let opNewValue = 0;
37865let isAccumulator = 1;
37866let isCVI = 1;
37867let DecoderNamespace = "EXT_mmvec";
37868let Constraints = "$Vyyyy32 = $Vyyyy32in";
37869}
37870def V6_vrmpyzcb_rx : HInst<
37871(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37872(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37873"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
37874tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37875let Inst{7-5} = 0b001;
37876let Inst{13-13} = 0b0;
37877let Inst{31-19} = 0b0001100111100;
37878let hasNewValue = 1;
37879let opNewValue = 0;
37880let isCVI = 1;
37881let DecoderNamespace = "EXT_mmvec";
37882let Constraints = "$Rx8 = $Rx8in";
37883}
37884def V6_vrmpyzcb_rx_acc : HInst<
37885(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37886(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37887"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
37888tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37889let Inst{7-5} = 0b011;
37890let Inst{13-13} = 0b1;
37891let Inst{31-19} = 0b0001100111001;
37892let hasNewValue = 1;
37893let opNewValue = 0;
37894let isAccumulator = 1;
37895let isCVI = 1;
37896let DecoderNamespace = "EXT_mmvec";
37897let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37898}
37899def V6_vrmpyzcbs_rt : HInst<
37900(outs HvxVQR:$Vdddd32),
37901(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37902"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
37903tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37904let Inst{7-5} = 0b010;
37905let Inst{13-13} = 0b0;
37906let Inst{31-19} = 0b0001100111101;
37907let hasNewValue = 1;
37908let opNewValue = 0;
37909let isCVI = 1;
37910let DecoderNamespace = "EXT_mmvec";
37911}
37912def V6_vrmpyzcbs_rt_acc : HInst<
37913(outs HvxVQR:$Vyyyy32),
37914(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37915"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
37916tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37917let Inst{7-5} = 0b001;
37918let Inst{13-13} = 0b1;
37919let Inst{31-19} = 0b0001100111000;
37920let hasNewValue = 1;
37921let opNewValue = 0;
37922let isAccumulator = 1;
37923let isCVI = 1;
37924let DecoderNamespace = "EXT_mmvec";
37925let Constraints = "$Vyyyy32 = $Vyyyy32in";
37926}
37927def V6_vrmpyzcbs_rx : HInst<
37928(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37929(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37930"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
37931tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37932let Inst{7-5} = 0b010;
37933let Inst{13-13} = 0b0;
37934let Inst{31-19} = 0b0001100111100;
37935let hasNewValue = 1;
37936let opNewValue = 0;
37937let isCVI = 1;
37938let DecoderNamespace = "EXT_mmvec";
37939let Constraints = "$Rx8 = $Rx8in";
37940}
37941def V6_vrmpyzcbs_rx_acc : HInst<
37942(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37943(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37944"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
37945tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37946let Inst{7-5} = 0b001;
37947let Inst{13-13} = 0b1;
37948let Inst{31-19} = 0b0001100111001;
37949let hasNewValue = 1;
37950let opNewValue = 0;
37951let isAccumulator = 1;
37952let isCVI = 1;
37953let DecoderNamespace = "EXT_mmvec";
37954let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37955}
37956def V6_vrmpyznb_rt : HInst<
37957(outs HvxVQR:$Vdddd32),
37958(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37959"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
37960tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37961let Inst{7-5} = 0b000;
37962let Inst{13-13} = 0b0;
37963let Inst{31-19} = 0b0001100111111;
37964let hasNewValue = 1;
37965let opNewValue = 0;
37966let isCVI = 1;
37967let DecoderNamespace = "EXT_mmvec";
37968}
37969def V6_vrmpyznb_rt_acc : HInst<
37970(outs HvxVQR:$Vyyyy32),
37971(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37972"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
37973tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37974let Inst{7-5} = 0b010;
37975let Inst{13-13} = 0b1;
37976let Inst{31-19} = 0b0001100111010;
37977let hasNewValue = 1;
37978let opNewValue = 0;
37979let isAccumulator = 1;
37980let isCVI = 1;
37981let DecoderNamespace = "EXT_mmvec";
37982let Constraints = "$Vyyyy32 = $Vyyyy32in";
37983}
37984def V6_vrmpyznb_rx : HInst<
37985(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37986(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37987"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
37988tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37989let Inst{7-5} = 0b000;
37990let Inst{13-13} = 0b0;
37991let Inst{31-19} = 0b0001100111110;
37992let hasNewValue = 1;
37993let opNewValue = 0;
37994let isCVI = 1;
37995let DecoderNamespace = "EXT_mmvec";
37996let Constraints = "$Rx8 = $Rx8in";
37997}
37998def V6_vrmpyznb_rx_acc : HInst<
37999(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
38000(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
38001"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
38002tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
38003let Inst{7-5} = 0b010;
38004let Inst{13-13} = 0b1;
38005let Inst{31-19} = 0b0001100111011;
38006let hasNewValue = 1;
38007let opNewValue = 0;
38008let isAccumulator = 1;
38009let isCVI = 1;
38010let DecoderNamespace = "EXT_mmvec";
38011let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
38012}
38013def V6_vror : HInst<
38014(outs HvxVR:$Vd32),
38015(ins HvxVR:$Vu32, IntRegs:$Rt32),
38016"$Vd32 = vror($Vu32,$Rt32)",
38017tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
38018let Inst{7-5} = 0b001;
38019let Inst{13-13} = 0b0;
38020let Inst{31-21} = 0b00011001011;
38021let hasNewValue = 1;
38022let opNewValue = 0;
38023let isCVI = 1;
38024let DecoderNamespace = "EXT_mmvec";
38025}
38026def V6_vrotr : HInst<
38027(outs HvxVR:$Vd32),
38028(ins HvxVR:$Vu32, HvxVR:$Vv32),
38029"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
38030tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
38031let Inst{7-5} = 0b111;
38032let Inst{13-13} = 0b1;
38033let Inst{31-21} = 0b00011010100;
38034let hasNewValue = 1;
38035let opNewValue = 0;
38036let isCVI = 1;
38037let DecoderNamespace = "EXT_mmvec";
38038}
38039def V6_vrotr_alt : HInst<
38040(outs HvxVR:$Vd32),
38041(ins HvxVR:$Vu32, HvxVR:$Vv32),
38042"$Vd32 = vrotr($Vu32,$Vv32)",
38043PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
38044let hasNewValue = 1;
38045let opNewValue = 0;
38046let isCVI = 1;
38047let isPseudo = 1;
38048let isCodeGenOnly = 1;
38049let DecoderNamespace = "EXT_mmvec";
38050}
38051def V6_vroundhb : HInst<
38052(outs HvxVR:$Vd32),
38053(ins HvxVR:$Vu32, HvxVR:$Vv32),
38054"$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
38055tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38056let Inst{7-5} = 0b110;
38057let Inst{13-13} = 0b0;
38058let Inst{31-21} = 0b00011111011;
38059let hasNewValue = 1;
38060let opNewValue = 0;
38061let isCVI = 1;
38062let DecoderNamespace = "EXT_mmvec";
38063}
38064def V6_vroundhb_alt : HInst<
38065(outs HvxVR:$Vd32),
38066(ins HvxVR:$Vu32, HvxVR:$Vv32),
38067"$Vd32 = vroundhb($Vu32,$Vv32):sat",
38068PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38069let hasNewValue = 1;
38070let opNewValue = 0;
38071let isCVI = 1;
38072let isPseudo = 1;
38073let isCodeGenOnly = 1;
38074let DecoderNamespace = "EXT_mmvec";
38075}
38076def V6_vroundhub : HInst<
38077(outs HvxVR:$Vd32),
38078(ins HvxVR:$Vu32, HvxVR:$Vv32),
38079"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
38080tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38081let Inst{7-5} = 0b111;
38082let Inst{13-13} = 0b0;
38083let Inst{31-21} = 0b00011111011;
38084let hasNewValue = 1;
38085let opNewValue = 0;
38086let isCVI = 1;
38087let DecoderNamespace = "EXT_mmvec";
38088}
38089def V6_vroundhub_alt : HInst<
38090(outs HvxVR:$Vd32),
38091(ins HvxVR:$Vu32, HvxVR:$Vv32),
38092"$Vd32 = vroundhub($Vu32,$Vv32):sat",
38093PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38094let hasNewValue = 1;
38095let opNewValue = 0;
38096let isCVI = 1;
38097let isPseudo = 1;
38098let isCodeGenOnly = 1;
38099let DecoderNamespace = "EXT_mmvec";
38100}
38101def V6_vrounduhub : HInst<
38102(outs HvxVR:$Vd32),
38103(ins HvxVR:$Vu32, HvxVR:$Vv32),
38104"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
38105tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
38106let Inst{7-5} = 0b011;
38107let Inst{13-13} = 0b0;
38108let Inst{31-21} = 0b00011111111;
38109let hasNewValue = 1;
38110let opNewValue = 0;
38111let isCVI = 1;
38112let DecoderNamespace = "EXT_mmvec";
38113}
38114def V6_vrounduhub_alt : HInst<
38115(outs HvxVR:$Vd32),
38116(ins HvxVR:$Vu32, HvxVR:$Vv32),
38117"$Vd32 = vrounduhub($Vu32,$Vv32):sat",
38118PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38119let hasNewValue = 1;
38120let opNewValue = 0;
38121let isCVI = 1;
38122let isPseudo = 1;
38123let isCodeGenOnly = 1;
38124let DecoderNamespace = "EXT_mmvec";
38125}
38126def V6_vrounduwuh : HInst<
38127(outs HvxVR:$Vd32),
38128(ins HvxVR:$Vu32, HvxVR:$Vv32),
38129"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
38130tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
38131let Inst{7-5} = 0b100;
38132let Inst{13-13} = 0b0;
38133let Inst{31-21} = 0b00011111111;
38134let hasNewValue = 1;
38135let opNewValue = 0;
38136let isCVI = 1;
38137let DecoderNamespace = "EXT_mmvec";
38138}
38139def V6_vrounduwuh_alt : HInst<
38140(outs HvxVR:$Vd32),
38141(ins HvxVR:$Vu32, HvxVR:$Vv32),
38142"$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
38143PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38144let hasNewValue = 1;
38145let opNewValue = 0;
38146let isCVI = 1;
38147let isPseudo = 1;
38148let isCodeGenOnly = 1;
38149let DecoderNamespace = "EXT_mmvec";
38150}
38151def V6_vroundwh : HInst<
38152(outs HvxVR:$Vd32),
38153(ins HvxVR:$Vu32, HvxVR:$Vv32),
38154"$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
38155tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38156let Inst{7-5} = 0b100;
38157let Inst{13-13} = 0b0;
38158let Inst{31-21} = 0b00011111011;
38159let hasNewValue = 1;
38160let opNewValue = 0;
38161let isCVI = 1;
38162let DecoderNamespace = "EXT_mmvec";
38163}
38164def V6_vroundwh_alt : HInst<
38165(outs HvxVR:$Vd32),
38166(ins HvxVR:$Vu32, HvxVR:$Vv32),
38167"$Vd32 = vroundwh($Vu32,$Vv32):sat",
38168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38169let hasNewValue = 1;
38170let opNewValue = 0;
38171let isCVI = 1;
38172let isPseudo = 1;
38173let isCodeGenOnly = 1;
38174let DecoderNamespace = "EXT_mmvec";
38175}
38176def V6_vroundwuh : HInst<
38177(outs HvxVR:$Vd32),
38178(ins HvxVR:$Vu32, HvxVR:$Vv32),
38179"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
38180tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38181let Inst{7-5} = 0b101;
38182let Inst{13-13} = 0b0;
38183let Inst{31-21} = 0b00011111011;
38184let hasNewValue = 1;
38185let opNewValue = 0;
38186let isCVI = 1;
38187let DecoderNamespace = "EXT_mmvec";
38188}
38189def V6_vroundwuh_alt : HInst<
38190(outs HvxVR:$Vd32),
38191(ins HvxVR:$Vu32, HvxVR:$Vv32),
38192"$Vd32 = vroundwuh($Vu32,$Vv32):sat",
38193PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38194let hasNewValue = 1;
38195let opNewValue = 0;
38196let isCVI = 1;
38197let isPseudo = 1;
38198let isCodeGenOnly = 1;
38199let DecoderNamespace = "EXT_mmvec";
38200}
38201def V6_vrsadubi : HInst<
38202(outs HvxWR:$Vdd32),
38203(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38204"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
38205tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
38206let Inst{7-6} = 0b11;
38207let Inst{13-13} = 0b0;
38208let Inst{31-21} = 0b00011001010;
38209let hasNewValue = 1;
38210let opNewValue = 0;
38211let isCVI = 1;
38212let DecoderNamespace = "EXT_mmvec";
38213}
38214def V6_vrsadubi_acc : HInst<
38215(outs HvxWR:$Vxx32),
38216(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38217"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
38218tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
38219let Inst{7-6} = 0b11;
38220let Inst{13-13} = 0b1;
38221let Inst{31-21} = 0b00011001010;
38222let hasNewValue = 1;
38223let opNewValue = 0;
38224let isAccumulator = 1;
38225let isCVI = 1;
38226let DecoderNamespace = "EXT_mmvec";
38227let Constraints = "$Vxx32 = $Vxx32in";
38228}
38229def V6_vrsadubi_acc_alt : HInst<
38230(outs HvxWR:$Vxx32),
38231(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38232"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
38233PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38234let hasNewValue = 1;
38235let opNewValue = 0;
38236let isAccumulator = 1;
38237let isCVI = 1;
38238let isPseudo = 1;
38239let isCodeGenOnly = 1;
38240let DecoderNamespace = "EXT_mmvec";
38241let Constraints = "$Vxx32 = $Vxx32in";
38242}
38243def V6_vrsadubi_alt : HInst<
38244(outs HvxWR:$Vdd32),
38245(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38246"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
38247PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38248let hasNewValue = 1;
38249let opNewValue = 0;
38250let isCVI = 1;
38251let isPseudo = 1;
38252let isCodeGenOnly = 1;
38253let DecoderNamespace = "EXT_mmvec";
38254}
38255def V6_vsatdw : HInst<
38256(outs HvxVR:$Vd32),
38257(ins HvxVR:$Vu32, HvxVR:$Vv32),
38258"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
38259tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
38260let Inst{7-5} = 0b111;
38261let Inst{13-13} = 0b1;
38262let Inst{31-21} = 0b00011101100;
38263let hasNewValue = 1;
38264let opNewValue = 0;
38265let isCVI = 1;
38266let isHVXALU = 1;
38267let isHVXALU2SRC = 1;
38268let DecoderNamespace = "EXT_mmvec";
38269}
38270def V6_vsathub : HInst<
38271(outs HvxVR:$Vd32),
38272(ins HvxVR:$Vu32, HvxVR:$Vv32),
38273"$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
38274tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38275let Inst{7-5} = 0b010;
38276let Inst{13-13} = 0b0;
38277let Inst{31-21} = 0b00011111011;
38278let hasNewValue = 1;
38279let opNewValue = 0;
38280let isCVI = 1;
38281let isHVXALU = 1;
38282let isHVXALU2SRC = 1;
38283let DecoderNamespace = "EXT_mmvec";
38284}
38285def V6_vsathub_alt : HInst<
38286(outs HvxVR:$Vd32),
38287(ins HvxVR:$Vu32, HvxVR:$Vv32),
38288"$Vd32 = vsathub($Vu32,$Vv32)",
38289PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38290let hasNewValue = 1;
38291let opNewValue = 0;
38292let isCVI = 1;
38293let isPseudo = 1;
38294let isCodeGenOnly = 1;
38295let DecoderNamespace = "EXT_mmvec";
38296}
38297def V6_vsatuwuh : HInst<
38298(outs HvxVR:$Vd32),
38299(ins HvxVR:$Vu32, HvxVR:$Vv32),
38300"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
38301tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
38302let Inst{7-5} = 0b110;
38303let Inst{13-13} = 0b0;
38304let Inst{31-21} = 0b00011111001;
38305let hasNewValue = 1;
38306let opNewValue = 0;
38307let isCVI = 1;
38308let isHVXALU = 1;
38309let isHVXALU2SRC = 1;
38310let DecoderNamespace = "EXT_mmvec";
38311}
38312def V6_vsatuwuh_alt : HInst<
38313(outs HvxVR:$Vd32),
38314(ins HvxVR:$Vu32, HvxVR:$Vv32),
38315"$Vd32 = vsatuwuh($Vu32,$Vv32)",
38316PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38317let hasNewValue = 1;
38318let opNewValue = 0;
38319let isCVI = 1;
38320let isPseudo = 1;
38321let isCodeGenOnly = 1;
38322let DecoderNamespace = "EXT_mmvec";
38323}
38324def V6_vsatwh : HInst<
38325(outs HvxVR:$Vd32),
38326(ins HvxVR:$Vu32, HvxVR:$Vv32),
38327"$Vd32.h = vsat($Vu32.w,$Vv32.w)",
38328tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38329let Inst{7-5} = 0b011;
38330let Inst{13-13} = 0b0;
38331let Inst{31-21} = 0b00011111011;
38332let hasNewValue = 1;
38333let opNewValue = 0;
38334let isCVI = 1;
38335let isHVXALU = 1;
38336let isHVXALU2SRC = 1;
38337let DecoderNamespace = "EXT_mmvec";
38338}
38339def V6_vsatwh_alt : HInst<
38340(outs HvxVR:$Vd32),
38341(ins HvxVR:$Vu32, HvxVR:$Vv32),
38342"$Vd32 = vsatwh($Vu32,$Vv32)",
38343PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38344let hasNewValue = 1;
38345let opNewValue = 0;
38346let isCVI = 1;
38347let isPseudo = 1;
38348let isCodeGenOnly = 1;
38349let DecoderNamespace = "EXT_mmvec";
38350}
38351def V6_vsb : HInst<
38352(outs HvxWR:$Vdd32),
38353(ins HvxVR:$Vu32),
38354"$Vdd32.h = vsxt($Vu32.b)",
38355tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38356let Inst{7-5} = 0b011;
38357let Inst{13-13} = 0b0;
38358let Inst{31-16} = 0b0001111000000010;
38359let hasNewValue = 1;
38360let opNewValue = 0;
38361let isCVI = 1;
38362let DecoderNamespace = "EXT_mmvec";
38363}
38364def V6_vsb_alt : HInst<
38365(outs HvxWR:$Vdd32),
38366(ins HvxVR:$Vu32),
38367"$Vdd32 = vsxtb($Vu32)",
38368PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38369let hasNewValue = 1;
38370let opNewValue = 0;
38371let isCVI = 1;
38372let isPseudo = 1;
38373let isCodeGenOnly = 1;
38374let DecoderNamespace = "EXT_mmvec";
38375}
38376def V6_vscattermh : HInst<
38377(outs),
38378(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38379"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
38380tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38381let Inst{7-5} = 0b001;
38382let Inst{31-21} = 0b00101111001;
38383let accessSize = HalfWordAccess;
38384let isCVI = 1;
38385let isHVXALU = 1;
38386let isHVXALU2SRC = 1;
38387let mayStore = 1;
38388let DecoderNamespace = "EXT_mmvec";
38389}
38390def V6_vscattermh_add : HInst<
38391(outs),
38392(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38393"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
38394tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38395let Inst{7-5} = 0b101;
38396let Inst{31-21} = 0b00101111001;
38397let accessSize = HalfWordAccess;
38398let isAccumulator = 1;
38399let isCVI = 1;
38400let isHVXALU = 1;
38401let isHVXALU2SRC = 1;
38402let mayStore = 1;
38403let DecoderNamespace = "EXT_mmvec";
38404}
38405def V6_vscattermh_add_alt : HInst<
38406(outs),
38407(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38408"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
38409PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38410let isAccumulator = 1;
38411let isCVI = 1;
38412let isPseudo = 1;
38413let isCodeGenOnly = 1;
38414let DecoderNamespace = "EXT_mmvec";
38415}
38416def V6_vscattermh_alt : HInst<
38417(outs),
38418(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38419"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
38420PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38421let isCVI = 1;
38422let isPseudo = 1;
38423let isCodeGenOnly = 1;
38424let DecoderNamespace = "EXT_mmvec";
38425}
38426def V6_vscattermhq : HInst<
38427(outs),
38428(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38429"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
38430tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
38431let Inst{7-7} = 0b1;
38432let Inst{31-21} = 0b00101111100;
38433let accessSize = HalfWordAccess;
38434let isCVI = 1;
38435let isHVXALU = 1;
38436let isHVXALU2SRC = 1;
38437let mayStore = 1;
38438let DecoderNamespace = "EXT_mmvec";
38439}
38440def V6_vscattermhq_alt : HInst<
38441(outs),
38442(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38443"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
38444PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38445let isCVI = 1;
38446let isPseudo = 1;
38447let isCodeGenOnly = 1;
38448let DecoderNamespace = "EXT_mmvec";
38449}
38450def V6_vscattermhw : HInst<
38451(outs),
38452(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38453"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
38454tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
38455let Inst{7-5} = 0b010;
38456let Inst{31-21} = 0b00101111001;
38457let accessSize = HalfWordAccess;
38458let isCVI = 1;
38459let mayStore = 1;
38460let DecoderNamespace = "EXT_mmvec";
38461}
38462def V6_vscattermhw_add : HInst<
38463(outs),
38464(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38465"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
38466tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
38467let Inst{7-5} = 0b110;
38468let Inst{31-21} = 0b00101111001;
38469let accessSize = HalfWordAccess;
38470let isAccumulator = 1;
38471let isCVI = 1;
38472let mayStore = 1;
38473let DecoderNamespace = "EXT_mmvec";
38474}
38475def V6_vscattermhwq : HInst<
38476(outs),
38477(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38478"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
38479tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
38480let Inst{7-7} = 0b0;
38481let Inst{31-21} = 0b00101111101;
38482let accessSize = HalfWordAccess;
38483let isCVI = 1;
38484let mayStore = 1;
38485let DecoderNamespace = "EXT_mmvec";
38486}
38487def V6_vscattermw : HInst<
38488(outs),
38489(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38490"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
38491tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38492let Inst{7-5} = 0b000;
38493let Inst{31-21} = 0b00101111001;
38494let accessSize = WordAccess;
38495let isCVI = 1;
38496let isHVXALU = 1;
38497let isHVXALU2SRC = 1;
38498let mayStore = 1;
38499let DecoderNamespace = "EXT_mmvec";
38500}
38501def V6_vscattermw_add : HInst<
38502(outs),
38503(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38504"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
38505tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38506let Inst{7-5} = 0b100;
38507let Inst{31-21} = 0b00101111001;
38508let accessSize = WordAccess;
38509let isAccumulator = 1;
38510let isCVI = 1;
38511let isHVXALU = 1;
38512let isHVXALU2SRC = 1;
38513let mayStore = 1;
38514let DecoderNamespace = "EXT_mmvec";
38515}
38516def V6_vscattermw_add_alt : HInst<
38517(outs),
38518(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38519"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
38520PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38521let isAccumulator = 1;
38522let isCVI = 1;
38523let isPseudo = 1;
38524let isCodeGenOnly = 1;
38525let DecoderNamespace = "EXT_mmvec";
38526}
38527def V6_vscattermw_alt : HInst<
38528(outs),
38529(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38530"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
38531PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38532let isCVI = 1;
38533let isPseudo = 1;
38534let isCodeGenOnly = 1;
38535let DecoderNamespace = "EXT_mmvec";
38536}
38537def V6_vscattermwh_add_alt : HInst<
38538(outs),
38539(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38540"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
38541PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38542let isAccumulator = 1;
38543let isCVI = 1;
38544let isPseudo = 1;
38545let isCodeGenOnly = 1;
38546let DecoderNamespace = "EXT_mmvec";
38547}
38548def V6_vscattermwh_alt : HInst<
38549(outs),
38550(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38551"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
38552PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38553let isCVI = 1;
38554let isPseudo = 1;
38555let isCodeGenOnly = 1;
38556let DecoderNamespace = "EXT_mmvec";
38557}
38558def V6_vscattermwhq_alt : HInst<
38559(outs),
38560(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38561"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
38562PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38563let isCVI = 1;
38564let isPseudo = 1;
38565let isCodeGenOnly = 1;
38566let DecoderNamespace = "EXT_mmvec";
38567}
38568def V6_vscattermwq : HInst<
38569(outs),
38570(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38571"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
38572tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
38573let Inst{7-7} = 0b0;
38574let Inst{31-21} = 0b00101111100;
38575let accessSize = WordAccess;
38576let isCVI = 1;
38577let isHVXALU = 1;
38578let isHVXALU2SRC = 1;
38579let mayStore = 1;
38580let DecoderNamespace = "EXT_mmvec";
38581}
38582def V6_vscattermwq_alt : HInst<
38583(outs),
38584(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38585"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
38586PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38587let isCVI = 1;
38588let isPseudo = 1;
38589let isCodeGenOnly = 1;
38590let DecoderNamespace = "EXT_mmvec";
38591}
38592def V6_vsh : HInst<
38593(outs HvxWR:$Vdd32),
38594(ins HvxVR:$Vu32),
38595"$Vdd32.w = vsxt($Vu32.h)",
38596tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38597let Inst{7-5} = 0b100;
38598let Inst{13-13} = 0b0;
38599let Inst{31-16} = 0b0001111000000010;
38600let hasNewValue = 1;
38601let opNewValue = 0;
38602let isCVI = 1;
38603let DecoderNamespace = "EXT_mmvec";
38604}
38605def V6_vsh_alt : HInst<
38606(outs HvxWR:$Vdd32),
38607(ins HvxVR:$Vu32),
38608"$Vdd32 = vsxth($Vu32)",
38609PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38610let hasNewValue = 1;
38611let opNewValue = 0;
38612let isCVI = 1;
38613let isPseudo = 1;
38614let isCodeGenOnly = 1;
38615let DecoderNamespace = "EXT_mmvec";
38616}
38617def V6_vshufeh : HInst<
38618(outs HvxVR:$Vd32),
38619(ins HvxVR:$Vu32, HvxVR:$Vv32),
38620"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
38621tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38622let Inst{7-5} = 0b011;
38623let Inst{13-13} = 0b0;
38624let Inst{31-21} = 0b00011111010;
38625let hasNewValue = 1;
38626let opNewValue = 0;
38627let isCVI = 1;
38628let isHVXALU = 1;
38629let isHVXALU2SRC = 1;
38630let DecoderNamespace = "EXT_mmvec";
38631}
38632def V6_vshufeh_alt : HInst<
38633(outs HvxVR:$Vd32),
38634(ins HvxVR:$Vu32, HvxVR:$Vv32),
38635"$Vd32 = vshuffeh($Vu32,$Vv32)",
38636PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38637let hasNewValue = 1;
38638let opNewValue = 0;
38639let isCVI = 1;
38640let isPseudo = 1;
38641let isCodeGenOnly = 1;
38642let DecoderNamespace = "EXT_mmvec";
38643}
38644def V6_vshuff : HInst<
38645(outs HvxVR:$Vy32, HvxVR:$Vx32),
38646(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
38647"vshuff($Vy32,$Vx32,$Rt32)",
38648tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
38649let Inst{7-5} = 0b001;
38650let Inst{13-13} = 0b1;
38651let Inst{31-21} = 0b00011001111;
38652let hasNewValue = 1;
38653let opNewValue = 0;
38654let hasNewValue2 = 1;
38655let opNewValue2 = 1;
38656let isCVI = 1;
38657let DecoderNamespace = "EXT_mmvec";
38658let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
38659}
38660def V6_vshuffb : HInst<
38661(outs HvxVR:$Vd32),
38662(ins HvxVR:$Vu32),
38663"$Vd32.b = vshuff($Vu32.b)",
38664tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38665let Inst{7-5} = 0b000;
38666let Inst{13-13} = 0b0;
38667let Inst{31-16} = 0b0001111000000010;
38668let hasNewValue = 1;
38669let opNewValue = 0;
38670let isCVI = 1;
38671let DecoderNamespace = "EXT_mmvec";
38672}
38673def V6_vshuffb_alt : HInst<
38674(outs HvxVR:$Vd32),
38675(ins HvxVR:$Vu32),
38676"$Vd32 = vshuffb($Vu32)",
38677PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38678let hasNewValue = 1;
38679let opNewValue = 0;
38680let isCVI = 1;
38681let isPseudo = 1;
38682let isCodeGenOnly = 1;
38683let DecoderNamespace = "EXT_mmvec";
38684}
38685def V6_vshuffeb : HInst<
38686(outs HvxVR:$Vd32),
38687(ins HvxVR:$Vu32, HvxVR:$Vv32),
38688"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
38689tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38690let Inst{7-5} = 0b001;
38691let Inst{13-13} = 0b0;
38692let Inst{31-21} = 0b00011111010;
38693let hasNewValue = 1;
38694let opNewValue = 0;
38695let isCVI = 1;
38696let isHVXALU = 1;
38697let isHVXALU2SRC = 1;
38698let DecoderNamespace = "EXT_mmvec";
38699}
38700def V6_vshuffeb_alt : HInst<
38701(outs HvxVR:$Vd32),
38702(ins HvxVR:$Vu32, HvxVR:$Vv32),
38703"$Vd32 = vshuffeb($Vu32,$Vv32)",
38704PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38705let hasNewValue = 1;
38706let opNewValue = 0;
38707let isCVI = 1;
38708let isPseudo = 1;
38709let isCodeGenOnly = 1;
38710let DecoderNamespace = "EXT_mmvec";
38711}
38712def V6_vshuffh : HInst<
38713(outs HvxVR:$Vd32),
38714(ins HvxVR:$Vu32),
38715"$Vd32.h = vshuff($Vu32.h)",
38716tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38717let Inst{7-5} = 0b111;
38718let Inst{13-13} = 0b0;
38719let Inst{31-16} = 0b0001111000000001;
38720let hasNewValue = 1;
38721let opNewValue = 0;
38722let isCVI = 1;
38723let DecoderNamespace = "EXT_mmvec";
38724}
38725def V6_vshuffh_alt : HInst<
38726(outs HvxVR:$Vd32),
38727(ins HvxVR:$Vu32),
38728"$Vd32 = vshuffh($Vu32)",
38729PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38730let hasNewValue = 1;
38731let opNewValue = 0;
38732let isCVI = 1;
38733let isPseudo = 1;
38734let isCodeGenOnly = 1;
38735let DecoderNamespace = "EXT_mmvec";
38736}
38737def V6_vshuffob : HInst<
38738(outs HvxVR:$Vd32),
38739(ins HvxVR:$Vu32, HvxVR:$Vv32),
38740"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
38741tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38742let Inst{7-5} = 0b010;
38743let Inst{13-13} = 0b0;
38744let Inst{31-21} = 0b00011111010;
38745let hasNewValue = 1;
38746let opNewValue = 0;
38747let isCVI = 1;
38748let isHVXALU = 1;
38749let isHVXALU2SRC = 1;
38750let DecoderNamespace = "EXT_mmvec";
38751}
38752def V6_vshuffob_alt : HInst<
38753(outs HvxVR:$Vd32),
38754(ins HvxVR:$Vu32, HvxVR:$Vv32),
38755"$Vd32 = vshuffob($Vu32,$Vv32)",
38756PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38757let hasNewValue = 1;
38758let opNewValue = 0;
38759let isCVI = 1;
38760let isPseudo = 1;
38761let isCodeGenOnly = 1;
38762let DecoderNamespace = "EXT_mmvec";
38763}
38764def V6_vshuffvdd : HInst<
38765(outs HvxWR:$Vdd32),
38766(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
38767"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
38768tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
38769let Inst{7-5} = 0b011;
38770let Inst{13-13} = 0b1;
38771let Inst{31-24} = 0b00011011;
38772let hasNewValue = 1;
38773let opNewValue = 0;
38774let isCVI = 1;
38775let DecoderNamespace = "EXT_mmvec";
38776}
38777def V6_vshufoeb : HInst<
38778(outs HvxWR:$Vdd32),
38779(ins HvxVR:$Vu32, HvxVR:$Vv32),
38780"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
38781tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38782let Inst{7-5} = 0b110;
38783let Inst{13-13} = 0b0;
38784let Inst{31-21} = 0b00011111010;
38785let hasNewValue = 1;
38786let opNewValue = 0;
38787let isCVI = 1;
38788let DecoderNamespace = "EXT_mmvec";
38789}
38790def V6_vshufoeb_alt : HInst<
38791(outs HvxWR:$Vdd32),
38792(ins HvxVR:$Vu32, HvxVR:$Vv32),
38793"$Vdd32 = vshuffoeb($Vu32,$Vv32)",
38794PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38795let hasNewValue = 1;
38796let opNewValue = 0;
38797let isCVI = 1;
38798let isPseudo = 1;
38799let isCodeGenOnly = 1;
38800let DecoderNamespace = "EXT_mmvec";
38801}
38802def V6_vshufoeh : HInst<
38803(outs HvxWR:$Vdd32),
38804(ins HvxVR:$Vu32, HvxVR:$Vv32),
38805"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
38806tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38807let Inst{7-5} = 0b101;
38808let Inst{13-13} = 0b0;
38809let Inst{31-21} = 0b00011111010;
38810let hasNewValue = 1;
38811let opNewValue = 0;
38812let isCVI = 1;
38813let DecoderNamespace = "EXT_mmvec";
38814}
38815def V6_vshufoeh_alt : HInst<
38816(outs HvxWR:$Vdd32),
38817(ins HvxVR:$Vu32, HvxVR:$Vv32),
38818"$Vdd32 = vshuffoeh($Vu32,$Vv32)",
38819PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38820let hasNewValue = 1;
38821let opNewValue = 0;
38822let isCVI = 1;
38823let isPseudo = 1;
38824let isCodeGenOnly = 1;
38825let DecoderNamespace = "EXT_mmvec";
38826}
38827def V6_vshufoh : HInst<
38828(outs HvxVR:$Vd32),
38829(ins HvxVR:$Vu32, HvxVR:$Vv32),
38830"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
38831tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38832let Inst{7-5} = 0b100;
38833let Inst{13-13} = 0b0;
38834let Inst{31-21} = 0b00011111010;
38835let hasNewValue = 1;
38836let opNewValue = 0;
38837let isCVI = 1;
38838let isHVXALU = 1;
38839let isHVXALU2SRC = 1;
38840let DecoderNamespace = "EXT_mmvec";
38841}
38842def V6_vshufoh_alt : HInst<
38843(outs HvxVR:$Vd32),
38844(ins HvxVR:$Vu32, HvxVR:$Vv32),
38845"$Vd32 = vshuffoh($Vu32,$Vv32)",
38846PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38847let hasNewValue = 1;
38848let opNewValue = 0;
38849let isCVI = 1;
38850let isPseudo = 1;
38851let isCodeGenOnly = 1;
38852let DecoderNamespace = "EXT_mmvec";
38853}
38854def V6_vsub_hf : HInst<
38855(outs HvxVR:$Vd32),
38856(ins HvxVR:$Vu32, HvxVR:$Vv32),
38857"$Vd32.qf16 = vsub($Vu32.hf,$Vv32.hf)",
38858tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38859let Inst{7-5} = 0b110;
38860let Inst{13-13} = 0b1;
38861let Inst{31-21} = 0b00011111011;
38862let hasNewValue = 1;
38863let opNewValue = 0;
38864let isCVI = 1;
38865let DecoderNamespace = "EXT_mmvec";
38866}
38867def V6_vsub_hf_hf : HInst<
38868(outs HvxVR:$Vd32),
38869(ins HvxVR:$Vu32, HvxVR:$Vv32),
38870"$Vd32.hf = vsub($Vu32.hf,$Vv32.hf)",
38871tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38872let Inst{7-5} = 0b000;
38873let Inst{13-13} = 0b1;
38874let Inst{31-21} = 0b00011111011;
38875let hasNewValue = 1;
38876let opNewValue = 0;
38877let isCVI = 1;
38878let DecoderNamespace = "EXT_mmvec";
38879}
38880def V6_vsub_qf16 : HInst<
38881(outs HvxVR:$Vd32),
38882(ins HvxVR:$Vu32, HvxVR:$Vv32),
38883"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.qf16)",
38884tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38885let Inst{7-5} = 0b101;
38886let Inst{13-13} = 0b1;
38887let Inst{31-21} = 0b00011111011;
38888let hasNewValue = 1;
38889let opNewValue = 0;
38890let isCVI = 1;
38891let DecoderNamespace = "EXT_mmvec";
38892}
38893def V6_vsub_qf16_mix : HInst<
38894(outs HvxVR:$Vd32),
38895(ins HvxVR:$Vu32, HvxVR:$Vv32),
38896"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.hf)",
38897tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38898let Inst{7-5} = 0b111;
38899let Inst{13-13} = 0b1;
38900let Inst{31-21} = 0b00011111011;
38901let hasNewValue = 1;
38902let opNewValue = 0;
38903let isCVI = 1;
38904let DecoderNamespace = "EXT_mmvec";
38905}
38906def V6_vsub_qf32 : HInst<
38907(outs HvxVR:$Vd32),
38908(ins HvxVR:$Vu32, HvxVR:$Vv32),
38909"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.qf32)",
38910tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38911let Inst{7-5} = 0b011;
38912let Inst{13-13} = 0b1;
38913let Inst{31-21} = 0b00011111101;
38914let hasNewValue = 1;
38915let opNewValue = 0;
38916let isCVI = 1;
38917let DecoderNamespace = "EXT_mmvec";
38918}
38919def V6_vsub_qf32_mix : HInst<
38920(outs HvxVR:$Vd32),
38921(ins HvxVR:$Vu32, HvxVR:$Vv32),
38922"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.sf)",
38923tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38924let Inst{7-5} = 0b101;
38925let Inst{13-13} = 0b1;
38926let Inst{31-21} = 0b00011111101;
38927let hasNewValue = 1;
38928let opNewValue = 0;
38929let isCVI = 1;
38930let DecoderNamespace = "EXT_mmvec";
38931}
38932def V6_vsub_sf : HInst<
38933(outs HvxVR:$Vd32),
38934(ins HvxVR:$Vu32, HvxVR:$Vv32),
38935"$Vd32.qf32 = vsub($Vu32.sf,$Vv32.sf)",
38936tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38937let Inst{7-5} = 0b100;
38938let Inst{13-13} = 0b1;
38939let Inst{31-21} = 0b00011111101;
38940let hasNewValue = 1;
38941let opNewValue = 0;
38942let isCVI = 1;
38943let DecoderNamespace = "EXT_mmvec";
38944}
38945def V6_vsub_sf_bf : HInst<
38946(outs HvxWR:$Vdd32),
38947(ins HvxVR:$Vu32, HvxVR:$Vv32),
38948"$Vdd32.sf = vsub($Vu32.bf,$Vv32.bf)",
38949tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
38950let Inst{7-5} = 0b101;
38951let Inst{13-13} = 0b1;
38952let Inst{31-21} = 0b00011101010;
38953let hasNewValue = 1;
38954let opNewValue = 0;
38955let isCVI = 1;
38956let DecoderNamespace = "EXT_mmvec";
38957}
38958def V6_vsub_sf_hf : HInst<
38959(outs HvxWR:$Vdd32),
38960(ins HvxVR:$Vu32, HvxVR:$Vv32),
38961"$Vdd32.sf = vsub($Vu32.hf,$Vv32.hf)",
38962tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38963let Inst{7-5} = 0b101;
38964let Inst{13-13} = 0b1;
38965let Inst{31-21} = 0b00011111100;
38966let hasNewValue = 1;
38967let opNewValue = 0;
38968let isCVI = 1;
38969let DecoderNamespace = "EXT_mmvec";
38970}
38971def V6_vsub_sf_sf : HInst<
38972(outs HvxVR:$Vd32),
38973(ins HvxVR:$Vu32, HvxVR:$Vv32),
38974"$Vd32.sf = vsub($Vu32.sf,$Vv32.sf)",
38975tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38976let Inst{7-5} = 0b111;
38977let Inst{13-13} = 0b1;
38978let Inst{31-21} = 0b00011111100;
38979let hasNewValue = 1;
38980let opNewValue = 0;
38981let isCVI = 1;
38982let DecoderNamespace = "EXT_mmvec";
38983}
38984def V6_vsubb : HInst<
38985(outs HvxVR:$Vd32),
38986(ins HvxVR:$Vu32, HvxVR:$Vv32),
38987"$Vd32.b = vsub($Vu32.b,$Vv32.b)",
38988tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38989let Inst{7-5} = 0b101;
38990let Inst{13-13} = 0b0;
38991let Inst{31-21} = 0b00011100010;
38992let hasNewValue = 1;
38993let opNewValue = 0;
38994let isCVI = 1;
38995let isHVXALU = 1;
38996let isHVXALU2SRC = 1;
38997let DecoderNamespace = "EXT_mmvec";
38998}
38999def V6_vsubb_alt : HInst<
39000(outs HvxVR:$Vd32),
39001(ins HvxVR:$Vu32, HvxVR:$Vv32),
39002"$Vd32 = vsubb($Vu32,$Vv32)",
39003PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39004let hasNewValue = 1;
39005let opNewValue = 0;
39006let isCVI = 1;
39007let isPseudo = 1;
39008let isCodeGenOnly = 1;
39009let DecoderNamespace = "EXT_mmvec";
39010}
39011def V6_vsubb_dv : HInst<
39012(outs HvxWR:$Vdd32),
39013(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39014"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
39015tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39016let Inst{7-5} = 0b011;
39017let Inst{13-13} = 0b0;
39018let Inst{31-21} = 0b00011100100;
39019let hasNewValue = 1;
39020let opNewValue = 0;
39021let isCVI = 1;
39022let DecoderNamespace = "EXT_mmvec";
39023}
39024def V6_vsubb_dv_alt : HInst<
39025(outs HvxWR:$Vdd32),
39026(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39027"$Vdd32 = vsubb($Vuu32,$Vvv32)",
39028PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39029let hasNewValue = 1;
39030let opNewValue = 0;
39031let isCVI = 1;
39032let isPseudo = 1;
39033let isCodeGenOnly = 1;
39034let DecoderNamespace = "EXT_mmvec";
39035}
39036def V6_vsubbnq : HInst<
39037(outs HvxVR:$Vx32),
39038(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39039"if (!$Qv4) $Vx32.b -= $Vu32.b",
39040tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39041let Inst{7-5} = 0b001;
39042let Inst{13-13} = 0b1;
39043let Inst{21-16} = 0b000010;
39044let Inst{31-24} = 0b00011110;
39045let hasNewValue = 1;
39046let opNewValue = 0;
39047let isCVI = 1;
39048let isHVXALU = 1;
39049let isHVXALU2SRC = 1;
39050let DecoderNamespace = "EXT_mmvec";
39051let Constraints = "$Vx32 = $Vx32in";
39052}
39053def V6_vsubbnq_alt : HInst<
39054(outs HvxVR:$Vx32),
39055(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39056"if (!$Qv4.b) $Vx32.b -= $Vu32.b",
39057PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39058let hasNewValue = 1;
39059let opNewValue = 0;
39060let isCVI = 1;
39061let isPseudo = 1;
39062let isCodeGenOnly = 1;
39063let DecoderNamespace = "EXT_mmvec";
39064let Constraints = "$Vx32 = $Vx32in";
39065}
39066def V6_vsubbq : HInst<
39067(outs HvxVR:$Vx32),
39068(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39069"if ($Qv4) $Vx32.b -= $Vu32.b",
39070tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39071let Inst{7-5} = 0b110;
39072let Inst{13-13} = 0b1;
39073let Inst{21-16} = 0b000001;
39074let Inst{31-24} = 0b00011110;
39075let hasNewValue = 1;
39076let opNewValue = 0;
39077let isCVI = 1;
39078let isHVXALU = 1;
39079let isHVXALU2SRC = 1;
39080let DecoderNamespace = "EXT_mmvec";
39081let Constraints = "$Vx32 = $Vx32in";
39082}
39083def V6_vsubbq_alt : HInst<
39084(outs HvxVR:$Vx32),
39085(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39086"if ($Qv4.b) $Vx32.b -= $Vu32.b",
39087PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39088let hasNewValue = 1;
39089let opNewValue = 0;
39090let isCVI = 1;
39091let isPseudo = 1;
39092let isCodeGenOnly = 1;
39093let DecoderNamespace = "EXT_mmvec";
39094let Constraints = "$Vx32 = $Vx32in";
39095}
39096def V6_vsubbsat : HInst<
39097(outs HvxVR:$Vd32),
39098(ins HvxVR:$Vu32, HvxVR:$Vv32),
39099"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
39100tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39101let Inst{7-5} = 0b010;
39102let Inst{13-13} = 0b0;
39103let Inst{31-21} = 0b00011111001;
39104let hasNewValue = 1;
39105let opNewValue = 0;
39106let isCVI = 1;
39107let isHVXALU = 1;
39108let isHVXALU2SRC = 1;
39109let DecoderNamespace = "EXT_mmvec";
39110}
39111def V6_vsubbsat_alt : HInst<
39112(outs HvxVR:$Vd32),
39113(ins HvxVR:$Vu32, HvxVR:$Vv32),
39114"$Vd32 = vsubb($Vu32,$Vv32):sat",
39115PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39116let hasNewValue = 1;
39117let opNewValue = 0;
39118let isCVI = 1;
39119let isPseudo = 1;
39120let isCodeGenOnly = 1;
39121let DecoderNamespace = "EXT_mmvec";
39122}
39123def V6_vsubbsat_dv : HInst<
39124(outs HvxWR:$Vdd32),
39125(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39126"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
39127tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
39128let Inst{7-5} = 0b001;
39129let Inst{13-13} = 0b0;
39130let Inst{31-21} = 0b00011110101;
39131let hasNewValue = 1;
39132let opNewValue = 0;
39133let isCVI = 1;
39134let DecoderNamespace = "EXT_mmvec";
39135}
39136def V6_vsubbsat_dv_alt : HInst<
39137(outs HvxWR:$Vdd32),
39138(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39139"$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
39140PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39141let hasNewValue = 1;
39142let opNewValue = 0;
39143let isCVI = 1;
39144let isPseudo = 1;
39145let isCodeGenOnly = 1;
39146let DecoderNamespace = "EXT_mmvec";
39147}
39148def V6_vsubcarry : HInst<
39149(outs HvxVR:$Vd32, HvxQR:$Qx4),
39150(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
39151"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
39152tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
39153let Inst{7-7} = 0b1;
39154let Inst{13-13} = 0b1;
39155let Inst{31-21} = 0b00011100101;
39156let hasNewValue = 1;
39157let opNewValue = 0;
39158let isCVI = 1;
39159let isHVXALU = 1;
39160let isHVXALU2SRC = 1;
39161let DecoderNamespace = "EXT_mmvec";
39162let Constraints = "$Qx4 = $Qx4in";
39163}
39164def V6_vsubcarryo : HInst<
39165(outs HvxVR:$Vd32, HvxQR:$Qe4),
39166(ins HvxVR:$Vu32, HvxVR:$Vv32),
39167"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
39168tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
39169let Inst{7-7} = 0b1;
39170let Inst{13-13} = 0b1;
39171let Inst{31-21} = 0b00011101101;
39172let hasNewValue = 1;
39173let opNewValue = 0;
39174let isCVI = 1;
39175let isHVXALU = 1;
39176let isHVXALU2SRC = 1;
39177let DecoderNamespace = "EXT_mmvec";
39178}
39179def V6_vsubh : HInst<
39180(outs HvxVR:$Vd32),
39181(ins HvxVR:$Vu32, HvxVR:$Vv32),
39182"$Vd32.h = vsub($Vu32.h,$Vv32.h)",
39183tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39184let Inst{7-5} = 0b110;
39185let Inst{13-13} = 0b0;
39186let Inst{31-21} = 0b00011100010;
39187let hasNewValue = 1;
39188let opNewValue = 0;
39189let isCVI = 1;
39190let isHVXALU = 1;
39191let isHVXALU2SRC = 1;
39192let DecoderNamespace = "EXT_mmvec";
39193}
39194def V6_vsubh_alt : HInst<
39195(outs HvxVR:$Vd32),
39196(ins HvxVR:$Vu32, HvxVR:$Vv32),
39197"$Vd32 = vsubh($Vu32,$Vv32)",
39198PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39199let hasNewValue = 1;
39200let opNewValue = 0;
39201let isCVI = 1;
39202let isPseudo = 1;
39203let isCodeGenOnly = 1;
39204let DecoderNamespace = "EXT_mmvec";
39205}
39206def V6_vsubh_dv : HInst<
39207(outs HvxWR:$Vdd32),
39208(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39209"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
39210tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39211let Inst{7-5} = 0b100;
39212let Inst{13-13} = 0b0;
39213let Inst{31-21} = 0b00011100100;
39214let hasNewValue = 1;
39215let opNewValue = 0;
39216let isCVI = 1;
39217let DecoderNamespace = "EXT_mmvec";
39218}
39219def V6_vsubh_dv_alt : HInst<
39220(outs HvxWR:$Vdd32),
39221(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39222"$Vdd32 = vsubh($Vuu32,$Vvv32)",
39223PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39224let hasNewValue = 1;
39225let opNewValue = 0;
39226let isCVI = 1;
39227let isPseudo = 1;
39228let isCodeGenOnly = 1;
39229let DecoderNamespace = "EXT_mmvec";
39230}
39231def V6_vsubhnq : HInst<
39232(outs HvxVR:$Vx32),
39233(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39234"if (!$Qv4) $Vx32.h -= $Vu32.h",
39235tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39236let Inst{7-5} = 0b010;
39237let Inst{13-13} = 0b1;
39238let Inst{21-16} = 0b000010;
39239let Inst{31-24} = 0b00011110;
39240let hasNewValue = 1;
39241let opNewValue = 0;
39242let isCVI = 1;
39243let isHVXALU = 1;
39244let isHVXALU2SRC = 1;
39245let DecoderNamespace = "EXT_mmvec";
39246let Constraints = "$Vx32 = $Vx32in";
39247}
39248def V6_vsubhnq_alt : HInst<
39249(outs HvxVR:$Vx32),
39250(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39251"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
39252PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39253let hasNewValue = 1;
39254let opNewValue = 0;
39255let isCVI = 1;
39256let isPseudo = 1;
39257let isCodeGenOnly = 1;
39258let DecoderNamespace = "EXT_mmvec";
39259let Constraints = "$Vx32 = $Vx32in";
39260}
39261def V6_vsubhq : HInst<
39262(outs HvxVR:$Vx32),
39263(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39264"if ($Qv4) $Vx32.h -= $Vu32.h",
39265tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39266let Inst{7-5} = 0b111;
39267let Inst{13-13} = 0b1;
39268let Inst{21-16} = 0b000001;
39269let Inst{31-24} = 0b00011110;
39270let hasNewValue = 1;
39271let opNewValue = 0;
39272let isCVI = 1;
39273let isHVXALU = 1;
39274let isHVXALU2SRC = 1;
39275let DecoderNamespace = "EXT_mmvec";
39276let Constraints = "$Vx32 = $Vx32in";
39277}
39278def V6_vsubhq_alt : HInst<
39279(outs HvxVR:$Vx32),
39280(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39281"if ($Qv4.h) $Vx32.h -= $Vu32.h",
39282PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39283let hasNewValue = 1;
39284let opNewValue = 0;
39285let isCVI = 1;
39286let isPseudo = 1;
39287let isCodeGenOnly = 1;
39288let DecoderNamespace = "EXT_mmvec";
39289let Constraints = "$Vx32 = $Vx32in";
39290}
39291def V6_vsubhsat : HInst<
39292(outs HvxVR:$Vd32),
39293(ins HvxVR:$Vu32, HvxVR:$Vv32),
39294"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
39295tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39296let Inst{7-5} = 0b010;
39297let Inst{13-13} = 0b0;
39298let Inst{31-21} = 0b00011100011;
39299let hasNewValue = 1;
39300let opNewValue = 0;
39301let isCVI = 1;
39302let isHVXALU = 1;
39303let isHVXALU2SRC = 1;
39304let DecoderNamespace = "EXT_mmvec";
39305}
39306def V6_vsubhsat_alt : HInst<
39307(outs HvxVR:$Vd32),
39308(ins HvxVR:$Vu32, HvxVR:$Vv32),
39309"$Vd32 = vsubh($Vu32,$Vv32):sat",
39310PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39311let hasNewValue = 1;
39312let opNewValue = 0;
39313let isCVI = 1;
39314let isPseudo = 1;
39315let isCodeGenOnly = 1;
39316let DecoderNamespace = "EXT_mmvec";
39317}
39318def V6_vsubhsat_dv : HInst<
39319(outs HvxWR:$Vdd32),
39320(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39321"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
39322tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39323let Inst{7-5} = 0b000;
39324let Inst{13-13} = 0b0;
39325let Inst{31-21} = 0b00011100101;
39326let hasNewValue = 1;
39327let opNewValue = 0;
39328let isCVI = 1;
39329let DecoderNamespace = "EXT_mmvec";
39330}
39331def V6_vsubhsat_dv_alt : HInst<
39332(outs HvxWR:$Vdd32),
39333(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39334"$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
39335PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39336let hasNewValue = 1;
39337let opNewValue = 0;
39338let isCVI = 1;
39339let isPseudo = 1;
39340let isCodeGenOnly = 1;
39341let DecoderNamespace = "EXT_mmvec";
39342}
39343def V6_vsubhw : HInst<
39344(outs HvxWR:$Vdd32),
39345(ins HvxVR:$Vu32, HvxVR:$Vv32),
39346"$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
39347tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39348let Inst{7-5} = 0b111;
39349let Inst{13-13} = 0b0;
39350let Inst{31-21} = 0b00011100101;
39351let hasNewValue = 1;
39352let opNewValue = 0;
39353let isCVI = 1;
39354let DecoderNamespace = "EXT_mmvec";
39355}
39356def V6_vsubhw_alt : HInst<
39357(outs HvxWR:$Vdd32),
39358(ins HvxVR:$Vu32, HvxVR:$Vv32),
39359"$Vdd32 = vsubh($Vu32,$Vv32)",
39360PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39361let hasNewValue = 1;
39362let opNewValue = 0;
39363let isCVI = 1;
39364let isPseudo = 1;
39365let isCodeGenOnly = 1;
39366let DecoderNamespace = "EXT_mmvec";
39367}
39368def V6_vsububh : HInst<
39369(outs HvxWR:$Vdd32),
39370(ins HvxVR:$Vu32, HvxVR:$Vv32),
39371"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
39372tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39373let Inst{7-5} = 0b101;
39374let Inst{13-13} = 0b0;
39375let Inst{31-21} = 0b00011100101;
39376let hasNewValue = 1;
39377let opNewValue = 0;
39378let isCVI = 1;
39379let DecoderNamespace = "EXT_mmvec";
39380}
39381def V6_vsububh_alt : HInst<
39382(outs HvxWR:$Vdd32),
39383(ins HvxVR:$Vu32, HvxVR:$Vv32),
39384"$Vdd32 = vsubub($Vu32,$Vv32)",
39385PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39386let hasNewValue = 1;
39387let opNewValue = 0;
39388let isCVI = 1;
39389let isPseudo = 1;
39390let isCodeGenOnly = 1;
39391let DecoderNamespace = "EXT_mmvec";
39392}
39393def V6_vsububsat : HInst<
39394(outs HvxVR:$Vd32),
39395(ins HvxVR:$Vu32, HvxVR:$Vv32),
39396"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
39397tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39398let Inst{7-5} = 0b000;
39399let Inst{13-13} = 0b0;
39400let Inst{31-21} = 0b00011100011;
39401let hasNewValue = 1;
39402let opNewValue = 0;
39403let isCVI = 1;
39404let isHVXALU = 1;
39405let isHVXALU2SRC = 1;
39406let DecoderNamespace = "EXT_mmvec";
39407}
39408def V6_vsububsat_alt : HInst<
39409(outs HvxVR:$Vd32),
39410(ins HvxVR:$Vu32, HvxVR:$Vv32),
39411"$Vd32 = vsubub($Vu32,$Vv32):sat",
39412PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39413let hasNewValue = 1;
39414let opNewValue = 0;
39415let isCVI = 1;
39416let isPseudo = 1;
39417let isCodeGenOnly = 1;
39418let DecoderNamespace = "EXT_mmvec";
39419}
39420def V6_vsububsat_dv : HInst<
39421(outs HvxWR:$Vdd32),
39422(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39423"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
39424tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39425let Inst{7-5} = 0b110;
39426let Inst{13-13} = 0b0;
39427let Inst{31-21} = 0b00011100100;
39428let hasNewValue = 1;
39429let opNewValue = 0;
39430let isCVI = 1;
39431let DecoderNamespace = "EXT_mmvec";
39432}
39433def V6_vsububsat_dv_alt : HInst<
39434(outs HvxWR:$Vdd32),
39435(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39436"$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
39437PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39438let hasNewValue = 1;
39439let opNewValue = 0;
39440let isCVI = 1;
39441let isPseudo = 1;
39442let isCodeGenOnly = 1;
39443let DecoderNamespace = "EXT_mmvec";
39444}
39445def V6_vsubububb_sat : HInst<
39446(outs HvxVR:$Vd32),
39447(ins HvxVR:$Vu32, HvxVR:$Vv32),
39448"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
39449tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39450let Inst{7-5} = 0b101;
39451let Inst{13-13} = 0b0;
39452let Inst{31-21} = 0b00011110101;
39453let hasNewValue = 1;
39454let opNewValue = 0;
39455let isCVI = 1;
39456let isHVXALU = 1;
39457let isHVXALU2SRC = 1;
39458let DecoderNamespace = "EXT_mmvec";
39459}
39460def V6_vsubuhsat : HInst<
39461(outs HvxVR:$Vd32),
39462(ins HvxVR:$Vu32, HvxVR:$Vv32),
39463"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
39464tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39465let Inst{7-5} = 0b001;
39466let Inst{13-13} = 0b0;
39467let Inst{31-21} = 0b00011100011;
39468let hasNewValue = 1;
39469let opNewValue = 0;
39470let isCVI = 1;
39471let isHVXALU = 1;
39472let isHVXALU2SRC = 1;
39473let DecoderNamespace = "EXT_mmvec";
39474}
39475def V6_vsubuhsat_alt : HInst<
39476(outs HvxVR:$Vd32),
39477(ins HvxVR:$Vu32, HvxVR:$Vv32),
39478"$Vd32 = vsubuh($Vu32,$Vv32):sat",
39479PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39480let hasNewValue = 1;
39481let opNewValue = 0;
39482let isCVI = 1;
39483let isPseudo = 1;
39484let isCodeGenOnly = 1;
39485let DecoderNamespace = "EXT_mmvec";
39486}
39487def V6_vsubuhsat_dv : HInst<
39488(outs HvxWR:$Vdd32),
39489(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39490"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
39491tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39492let Inst{7-5} = 0b111;
39493let Inst{13-13} = 0b0;
39494let Inst{31-21} = 0b00011100100;
39495let hasNewValue = 1;
39496let opNewValue = 0;
39497let isCVI = 1;
39498let DecoderNamespace = "EXT_mmvec";
39499}
39500def V6_vsubuhsat_dv_alt : HInst<
39501(outs HvxWR:$Vdd32),
39502(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39503"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
39504PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39505let hasNewValue = 1;
39506let opNewValue = 0;
39507let isCVI = 1;
39508let isPseudo = 1;
39509let isCodeGenOnly = 1;
39510let DecoderNamespace = "EXT_mmvec";
39511}
39512def V6_vsubuhw : HInst<
39513(outs HvxWR:$Vdd32),
39514(ins HvxVR:$Vu32, HvxVR:$Vv32),
39515"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
39516tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39517let Inst{7-5} = 0b110;
39518let Inst{13-13} = 0b0;
39519let Inst{31-21} = 0b00011100101;
39520let hasNewValue = 1;
39521let opNewValue = 0;
39522let isCVI = 1;
39523let DecoderNamespace = "EXT_mmvec";
39524}
39525def V6_vsubuhw_alt : HInst<
39526(outs HvxWR:$Vdd32),
39527(ins HvxVR:$Vu32, HvxVR:$Vv32),
39528"$Vdd32 = vsubuh($Vu32,$Vv32)",
39529PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39530let hasNewValue = 1;
39531let opNewValue = 0;
39532let isCVI = 1;
39533let isPseudo = 1;
39534let isCodeGenOnly = 1;
39535let DecoderNamespace = "EXT_mmvec";
39536}
39537def V6_vsubuwsat : HInst<
39538(outs HvxVR:$Vd32),
39539(ins HvxVR:$Vu32, HvxVR:$Vv32),
39540"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
39541tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39542let Inst{7-5} = 0b100;
39543let Inst{13-13} = 0b0;
39544let Inst{31-21} = 0b00011111110;
39545let hasNewValue = 1;
39546let opNewValue = 0;
39547let isCVI = 1;
39548let isHVXALU = 1;
39549let isHVXALU2SRC = 1;
39550let DecoderNamespace = "EXT_mmvec";
39551}
39552def V6_vsubuwsat_alt : HInst<
39553(outs HvxVR:$Vd32),
39554(ins HvxVR:$Vu32, HvxVR:$Vv32),
39555"$Vd32 = vsubuw($Vu32,$Vv32):sat",
39556PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39557let hasNewValue = 1;
39558let opNewValue = 0;
39559let isCVI = 1;
39560let isPseudo = 1;
39561let isCodeGenOnly = 1;
39562let DecoderNamespace = "EXT_mmvec";
39563}
39564def V6_vsubuwsat_dv : HInst<
39565(outs HvxWR:$Vdd32),
39566(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39567"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
39568tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
39569let Inst{7-5} = 0b011;
39570let Inst{13-13} = 0b0;
39571let Inst{31-21} = 0b00011110101;
39572let hasNewValue = 1;
39573let opNewValue = 0;
39574let isCVI = 1;
39575let DecoderNamespace = "EXT_mmvec";
39576}
39577def V6_vsubuwsat_dv_alt : HInst<
39578(outs HvxWR:$Vdd32),
39579(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39580"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
39581PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39582let hasNewValue = 1;
39583let opNewValue = 0;
39584let isCVI = 1;
39585let isPseudo = 1;
39586let isCodeGenOnly = 1;
39587let DecoderNamespace = "EXT_mmvec";
39588}
39589def V6_vsubw : HInst<
39590(outs HvxVR:$Vd32),
39591(ins HvxVR:$Vu32, HvxVR:$Vv32),
39592"$Vd32.w = vsub($Vu32.w,$Vv32.w)",
39593tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39594let Inst{7-5} = 0b111;
39595let Inst{13-13} = 0b0;
39596let Inst{31-21} = 0b00011100010;
39597let hasNewValue = 1;
39598let opNewValue = 0;
39599let isCVI = 1;
39600let isHVXALU = 1;
39601let isHVXALU2SRC = 1;
39602let DecoderNamespace = "EXT_mmvec";
39603}
39604def V6_vsubw_alt : HInst<
39605(outs HvxVR:$Vd32),
39606(ins HvxVR:$Vu32, HvxVR:$Vv32),
39607"$Vd32 = vsubw($Vu32,$Vv32)",
39608PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39609let hasNewValue = 1;
39610let opNewValue = 0;
39611let isCVI = 1;
39612let isPseudo = 1;
39613let isCodeGenOnly = 1;
39614let DecoderNamespace = "EXT_mmvec";
39615}
39616def V6_vsubw_dv : HInst<
39617(outs HvxWR:$Vdd32),
39618(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39619"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
39620tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39621let Inst{7-5} = 0b101;
39622let Inst{13-13} = 0b0;
39623let Inst{31-21} = 0b00011100100;
39624let hasNewValue = 1;
39625let opNewValue = 0;
39626let isCVI = 1;
39627let DecoderNamespace = "EXT_mmvec";
39628}
39629def V6_vsubw_dv_alt : HInst<
39630(outs HvxWR:$Vdd32),
39631(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39632"$Vdd32 = vsubw($Vuu32,$Vvv32)",
39633PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39634let hasNewValue = 1;
39635let opNewValue = 0;
39636let isCVI = 1;
39637let isPseudo = 1;
39638let isCodeGenOnly = 1;
39639let DecoderNamespace = "EXT_mmvec";
39640}
39641def V6_vsubwnq : HInst<
39642(outs HvxVR:$Vx32),
39643(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39644"if (!$Qv4) $Vx32.w -= $Vu32.w",
39645tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39646let Inst{7-5} = 0b011;
39647let Inst{13-13} = 0b1;
39648let Inst{21-16} = 0b000010;
39649let Inst{31-24} = 0b00011110;
39650let hasNewValue = 1;
39651let opNewValue = 0;
39652let isCVI = 1;
39653let isHVXALU = 1;
39654let isHVXALU2SRC = 1;
39655let DecoderNamespace = "EXT_mmvec";
39656let Constraints = "$Vx32 = $Vx32in";
39657}
39658def V6_vsubwnq_alt : HInst<
39659(outs HvxVR:$Vx32),
39660(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39661"if (!$Qv4.w) $Vx32.w -= $Vu32.w",
39662PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39663let hasNewValue = 1;
39664let opNewValue = 0;
39665let isCVI = 1;
39666let isPseudo = 1;
39667let isCodeGenOnly = 1;
39668let DecoderNamespace = "EXT_mmvec";
39669let Constraints = "$Vx32 = $Vx32in";
39670}
39671def V6_vsubwq : HInst<
39672(outs HvxVR:$Vx32),
39673(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39674"if ($Qv4) $Vx32.w -= $Vu32.w",
39675tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39676let Inst{7-5} = 0b000;
39677let Inst{13-13} = 0b1;
39678let Inst{21-16} = 0b000010;
39679let Inst{31-24} = 0b00011110;
39680let hasNewValue = 1;
39681let opNewValue = 0;
39682let isCVI = 1;
39683let isHVXALU = 1;
39684let isHVXALU2SRC = 1;
39685let DecoderNamespace = "EXT_mmvec";
39686let Constraints = "$Vx32 = $Vx32in";
39687}
39688def V6_vsubwq_alt : HInst<
39689(outs HvxVR:$Vx32),
39690(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39691"if ($Qv4.w) $Vx32.w -= $Vu32.w",
39692PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39693let hasNewValue = 1;
39694let opNewValue = 0;
39695let isCVI = 1;
39696let isPseudo = 1;
39697let isCodeGenOnly = 1;
39698let DecoderNamespace = "EXT_mmvec";
39699let Constraints = "$Vx32 = $Vx32in";
39700}
39701def V6_vsubwsat : HInst<
39702(outs HvxVR:$Vd32),
39703(ins HvxVR:$Vu32, HvxVR:$Vv32),
39704"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
39705tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39706let Inst{7-5} = 0b011;
39707let Inst{13-13} = 0b0;
39708let Inst{31-21} = 0b00011100011;
39709let hasNewValue = 1;
39710let opNewValue = 0;
39711let isCVI = 1;
39712let isHVXALU = 1;
39713let isHVXALU2SRC = 1;
39714let DecoderNamespace = "EXT_mmvec";
39715}
39716def V6_vsubwsat_alt : HInst<
39717(outs HvxVR:$Vd32),
39718(ins HvxVR:$Vu32, HvxVR:$Vv32),
39719"$Vd32 = vsubw($Vu32,$Vv32):sat",
39720PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39721let hasNewValue = 1;
39722let opNewValue = 0;
39723let isCVI = 1;
39724let isPseudo = 1;
39725let isCodeGenOnly = 1;
39726let DecoderNamespace = "EXT_mmvec";
39727}
39728def V6_vsubwsat_dv : HInst<
39729(outs HvxWR:$Vdd32),
39730(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39731"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
39732tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39733let Inst{7-5} = 0b001;
39734let Inst{13-13} = 0b0;
39735let Inst{31-21} = 0b00011100101;
39736let hasNewValue = 1;
39737let opNewValue = 0;
39738let isCVI = 1;
39739let DecoderNamespace = "EXT_mmvec";
39740}
39741def V6_vsubwsat_dv_alt : HInst<
39742(outs HvxWR:$Vdd32),
39743(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39744"$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
39745PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39746let hasNewValue = 1;
39747let opNewValue = 0;
39748let isCVI = 1;
39749let isPseudo = 1;
39750let isCodeGenOnly = 1;
39751let DecoderNamespace = "EXT_mmvec";
39752}
39753def V6_vswap : HInst<
39754(outs HvxWR:$Vdd32),
39755(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
39756"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
39757tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
39758let Inst{7-7} = 0b0;
39759let Inst{13-13} = 0b1;
39760let Inst{31-21} = 0b00011110101;
39761let hasNewValue = 1;
39762let opNewValue = 0;
39763let isCVI = 1;
39764let DecoderNamespace = "EXT_mmvec";
39765}
39766def V6_vtmpyb : HInst<
39767(outs HvxWR:$Vdd32),
39768(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39769"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
39770tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39771let Inst{7-5} = 0b000;
39772let Inst{13-13} = 0b0;
39773let Inst{31-21} = 0b00011001000;
39774let hasNewValue = 1;
39775let opNewValue = 0;
39776let isCVI = 1;
39777let DecoderNamespace = "EXT_mmvec";
39778}
39779def V6_vtmpyb_acc : HInst<
39780(outs HvxWR:$Vxx32),
39781(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39782"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
39783tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39784let Inst{7-5} = 0b000;
39785let Inst{13-13} = 0b1;
39786let Inst{31-21} = 0b00011001000;
39787let hasNewValue = 1;
39788let opNewValue = 0;
39789let isAccumulator = 1;
39790let isCVI = 1;
39791let DecoderNamespace = "EXT_mmvec";
39792let Constraints = "$Vxx32 = $Vxx32in";
39793}
39794def V6_vtmpyb_acc_alt : HInst<
39795(outs HvxWR:$Vxx32),
39796(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39797"$Vxx32 += vtmpyb($Vuu32,$Rt32)",
39798PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39799let hasNewValue = 1;
39800let opNewValue = 0;
39801let isAccumulator = 1;
39802let isCVI = 1;
39803let isPseudo = 1;
39804let isCodeGenOnly = 1;
39805let DecoderNamespace = "EXT_mmvec";
39806let Constraints = "$Vxx32 = $Vxx32in";
39807}
39808def V6_vtmpyb_alt : HInst<
39809(outs HvxWR:$Vdd32),
39810(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39811"$Vdd32 = vtmpyb($Vuu32,$Rt32)",
39812PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39813let hasNewValue = 1;
39814let opNewValue = 0;
39815let isCVI = 1;
39816let isPseudo = 1;
39817let isCodeGenOnly = 1;
39818let DecoderNamespace = "EXT_mmvec";
39819}
39820def V6_vtmpybus : HInst<
39821(outs HvxWR:$Vdd32),
39822(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39823"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
39824tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39825let Inst{7-5} = 0b001;
39826let Inst{13-13} = 0b0;
39827let Inst{31-21} = 0b00011001000;
39828let hasNewValue = 1;
39829let opNewValue = 0;
39830let isCVI = 1;
39831let DecoderNamespace = "EXT_mmvec";
39832}
39833def V6_vtmpybus_acc : HInst<
39834(outs HvxWR:$Vxx32),
39835(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39836"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
39837tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39838let Inst{7-5} = 0b001;
39839let Inst{13-13} = 0b1;
39840let Inst{31-21} = 0b00011001000;
39841let hasNewValue = 1;
39842let opNewValue = 0;
39843let isAccumulator = 1;
39844let isCVI = 1;
39845let DecoderNamespace = "EXT_mmvec";
39846let Constraints = "$Vxx32 = $Vxx32in";
39847}
39848def V6_vtmpybus_acc_alt : HInst<
39849(outs HvxWR:$Vxx32),
39850(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39851"$Vxx32 += vtmpybus($Vuu32,$Rt32)",
39852PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39853let hasNewValue = 1;
39854let opNewValue = 0;
39855let isAccumulator = 1;
39856let isCVI = 1;
39857let isPseudo = 1;
39858let isCodeGenOnly = 1;
39859let DecoderNamespace = "EXT_mmvec";
39860let Constraints = "$Vxx32 = $Vxx32in";
39861}
39862def V6_vtmpybus_alt : HInst<
39863(outs HvxWR:$Vdd32),
39864(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39865"$Vdd32 = vtmpybus($Vuu32,$Rt32)",
39866PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39867let hasNewValue = 1;
39868let opNewValue = 0;
39869let isCVI = 1;
39870let isPseudo = 1;
39871let isCodeGenOnly = 1;
39872let DecoderNamespace = "EXT_mmvec";
39873}
39874def V6_vtmpyhb : HInst<
39875(outs HvxWR:$Vdd32),
39876(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39877"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
39878tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39879let Inst{7-5} = 0b100;
39880let Inst{13-13} = 0b0;
39881let Inst{31-21} = 0b00011001101;
39882let hasNewValue = 1;
39883let opNewValue = 0;
39884let isCVI = 1;
39885let DecoderNamespace = "EXT_mmvec";
39886}
39887def V6_vtmpyhb_acc : HInst<
39888(outs HvxWR:$Vxx32),
39889(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39890"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
39891tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39892let Inst{7-5} = 0b010;
39893let Inst{13-13} = 0b1;
39894let Inst{31-21} = 0b00011001000;
39895let hasNewValue = 1;
39896let opNewValue = 0;
39897let isAccumulator = 1;
39898let isCVI = 1;
39899let DecoderNamespace = "EXT_mmvec";
39900let Constraints = "$Vxx32 = $Vxx32in";
39901}
39902def V6_vtmpyhb_acc_alt : HInst<
39903(outs HvxWR:$Vxx32),
39904(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39905"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
39906PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39907let hasNewValue = 1;
39908let opNewValue = 0;
39909let isAccumulator = 1;
39910let isCVI = 1;
39911let isPseudo = 1;
39912let isCodeGenOnly = 1;
39913let DecoderNamespace = "EXT_mmvec";
39914let Constraints = "$Vxx32 = $Vxx32in";
39915}
39916def V6_vtmpyhb_alt : HInst<
39917(outs HvxWR:$Vdd32),
39918(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39919"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
39920PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39921let hasNewValue = 1;
39922let opNewValue = 0;
39923let isCVI = 1;
39924let isPseudo = 1;
39925let isCodeGenOnly = 1;
39926let DecoderNamespace = "EXT_mmvec";
39927}
39928def V6_vtran2x2_map : HInst<
39929(outs HvxVR:$Vy32, HvxVR:$Vx32),
39930(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
39931"vtrans2x2($Vy32,$Vx32,$Rt32)",
39932PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39933let hasNewValue = 1;
39934let opNewValue = 0;
39935let hasNewValue2 = 1;
39936let opNewValue2 = 1;
39937let isCVI = 1;
39938let isPseudo = 1;
39939let isCodeGenOnly = 1;
39940let DecoderNamespace = "EXT_mmvec";
39941let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
39942}
39943def V6_vunpackb : HInst<
39944(outs HvxWR:$Vdd32),
39945(ins HvxVR:$Vu32),
39946"$Vdd32.h = vunpack($Vu32.b)",
39947tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39948let Inst{7-5} = 0b010;
39949let Inst{13-13} = 0b0;
39950let Inst{31-16} = 0b0001111000000001;
39951let hasNewValue = 1;
39952let opNewValue = 0;
39953let isCVI = 1;
39954let DecoderNamespace = "EXT_mmvec";
39955}
39956def V6_vunpackb_alt : HInst<
39957(outs HvxWR:$Vdd32),
39958(ins HvxVR:$Vu32),
39959"$Vdd32 = vunpackb($Vu32)",
39960PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39961let hasNewValue = 1;
39962let opNewValue = 0;
39963let isCVI = 1;
39964let isPseudo = 1;
39965let isCodeGenOnly = 1;
39966let DecoderNamespace = "EXT_mmvec";
39967}
39968def V6_vunpackh : HInst<
39969(outs HvxWR:$Vdd32),
39970(ins HvxVR:$Vu32),
39971"$Vdd32.w = vunpack($Vu32.h)",
39972tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39973let Inst{7-5} = 0b011;
39974let Inst{13-13} = 0b0;
39975let Inst{31-16} = 0b0001111000000001;
39976let hasNewValue = 1;
39977let opNewValue = 0;
39978let isCVI = 1;
39979let DecoderNamespace = "EXT_mmvec";
39980}
39981def V6_vunpackh_alt : HInst<
39982(outs HvxWR:$Vdd32),
39983(ins HvxVR:$Vu32),
39984"$Vdd32 = vunpackh($Vu32)",
39985PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39986let hasNewValue = 1;
39987let opNewValue = 0;
39988let isCVI = 1;
39989let isPseudo = 1;
39990let isCodeGenOnly = 1;
39991let DecoderNamespace = "EXT_mmvec";
39992}
39993def V6_vunpackob : HInst<
39994(outs HvxWR:$Vxx32),
39995(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
39996"$Vxx32.h |= vunpacko($Vu32.b)",
39997tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
39998let Inst{7-5} = 0b000;
39999let Inst{13-13} = 0b1;
40000let Inst{31-16} = 0b0001111000000000;
40001let hasNewValue = 1;
40002let opNewValue = 0;
40003let isAccumulator = 1;
40004let isCVI = 1;
40005let DecoderNamespace = "EXT_mmvec";
40006let Constraints = "$Vxx32 = $Vxx32in";
40007}
40008def V6_vunpackob_alt : HInst<
40009(outs HvxWR:$Vxx32),
40010(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40011"$Vxx32 |= vunpackob($Vu32)",
40012PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40013let hasNewValue = 1;
40014let opNewValue = 0;
40015let isAccumulator = 1;
40016let isCVI = 1;
40017let isPseudo = 1;
40018let DecoderNamespace = "EXT_mmvec";
40019let Constraints = "$Vxx32 = $Vxx32in";
40020}
40021def V6_vunpackoh : HInst<
40022(outs HvxWR:$Vxx32),
40023(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40024"$Vxx32.w |= vunpacko($Vu32.h)",
40025tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
40026let Inst{7-5} = 0b001;
40027let Inst{13-13} = 0b1;
40028let Inst{31-16} = 0b0001111000000000;
40029let hasNewValue = 1;
40030let opNewValue = 0;
40031let isAccumulator = 1;
40032let isCVI = 1;
40033let DecoderNamespace = "EXT_mmvec";
40034let Constraints = "$Vxx32 = $Vxx32in";
40035}
40036def V6_vunpackoh_alt : HInst<
40037(outs HvxWR:$Vxx32),
40038(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40039"$Vxx32 |= vunpackoh($Vu32)",
40040PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40041let hasNewValue = 1;
40042let opNewValue = 0;
40043let isAccumulator = 1;
40044let isCVI = 1;
40045let isPseudo = 1;
40046let isCodeGenOnly = 1;
40047let DecoderNamespace = "EXT_mmvec";
40048let Constraints = "$Vxx32 = $Vxx32in";
40049}
40050def V6_vunpackub : HInst<
40051(outs HvxWR:$Vdd32),
40052(ins HvxVR:$Vu32),
40053"$Vdd32.uh = vunpack($Vu32.ub)",
40054tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
40055let Inst{7-5} = 0b000;
40056let Inst{13-13} = 0b0;
40057let Inst{31-16} = 0b0001111000000001;
40058let hasNewValue = 1;
40059let opNewValue = 0;
40060let isCVI = 1;
40061let DecoderNamespace = "EXT_mmvec";
40062}
40063def V6_vunpackub_alt : HInst<
40064(outs HvxWR:$Vdd32),
40065(ins HvxVR:$Vu32),
40066"$Vdd32 = vunpackub($Vu32)",
40067PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40068let hasNewValue = 1;
40069let opNewValue = 0;
40070let isCVI = 1;
40071let isPseudo = 1;
40072let isCodeGenOnly = 1;
40073let DecoderNamespace = "EXT_mmvec";
40074}
40075def V6_vunpackuh : HInst<
40076(outs HvxWR:$Vdd32),
40077(ins HvxVR:$Vu32),
40078"$Vdd32.uw = vunpack($Vu32.uh)",
40079tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
40080let Inst{7-5} = 0b001;
40081let Inst{13-13} = 0b0;
40082let Inst{31-16} = 0b0001111000000001;
40083let hasNewValue = 1;
40084let opNewValue = 0;
40085let isCVI = 1;
40086let DecoderNamespace = "EXT_mmvec";
40087}
40088def V6_vunpackuh_alt : HInst<
40089(outs HvxWR:$Vdd32),
40090(ins HvxVR:$Vu32),
40091"$Vdd32 = vunpackuh($Vu32)",
40092PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40093let hasNewValue = 1;
40094let opNewValue = 0;
40095let isCVI = 1;
40096let isPseudo = 1;
40097let isCodeGenOnly = 1;
40098let DecoderNamespace = "EXT_mmvec";
40099}
40100def V6_vwhist128 : HInst<
40101(outs),
40102(ins),
40103"vwhist128",
40104tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40105let Inst{13-0} = 0b10010010000000;
40106let Inst{31-16} = 0b0001111000000000;
40107let isCVI = 1;
40108let DecoderNamespace = "EXT_mmvec";
40109}
40110def V6_vwhist128m : HInst<
40111(outs),
40112(ins u1_0Imm:$Ii),
40113"vwhist128(#$Ii)",
40114tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
40115let Inst{7-0} = 0b10000000;
40116let Inst{13-9} = 0b10011;
40117let Inst{31-16} = 0b0001111000000000;
40118let isCVI = 1;
40119let DecoderNamespace = "EXT_mmvec";
40120}
40121def V6_vwhist128q : HInst<
40122(outs),
40123(ins HvxQR:$Qv4),
40124"vwhist128($Qv4)",
40125tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40126let Inst{13-0} = 0b10010010000000;
40127let Inst{21-16} = 0b000010;
40128let Inst{31-24} = 0b00011110;
40129let isCVI = 1;
40130let DecoderNamespace = "EXT_mmvec";
40131}
40132def V6_vwhist128qm : HInst<
40133(outs),
40134(ins HvxQR:$Qv4, u1_0Imm:$Ii),
40135"vwhist128($Qv4,#$Ii)",
40136tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
40137let Inst{7-0} = 0b10000000;
40138let Inst{13-9} = 0b10011;
40139let Inst{21-16} = 0b000010;
40140let Inst{31-24} = 0b00011110;
40141let isCVI = 1;
40142let DecoderNamespace = "EXT_mmvec";
40143}
40144def V6_vwhist256 : HInst<
40145(outs),
40146(ins),
40147"vwhist256",
40148tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40149let Inst{13-0} = 0b10001010000000;
40150let Inst{31-16} = 0b0001111000000000;
40151let isCVI = 1;
40152let DecoderNamespace = "EXT_mmvec";
40153}
40154def V6_vwhist256_sat : HInst<
40155(outs),
40156(ins),
40157"vwhist256:sat",
40158tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40159let Inst{13-0} = 0b10001110000000;
40160let Inst{31-16} = 0b0001111000000000;
40161let isCVI = 1;
40162let DecoderNamespace = "EXT_mmvec";
40163}
40164def V6_vwhist256q : HInst<
40165(outs),
40166(ins HvxQR:$Qv4),
40167"vwhist256($Qv4)",
40168tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40169let Inst{13-0} = 0b10001010000000;
40170let Inst{21-16} = 0b000010;
40171let Inst{31-24} = 0b00011110;
40172let isCVI = 1;
40173let DecoderNamespace = "EXT_mmvec";
40174}
40175def V6_vwhist256q_sat : HInst<
40176(outs),
40177(ins HvxQR:$Qv4),
40178"vwhist256($Qv4):sat",
40179tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40180let Inst{13-0} = 0b10001110000000;
40181let Inst{21-16} = 0b000010;
40182let Inst{31-24} = 0b00011110;
40183let isCVI = 1;
40184let DecoderNamespace = "EXT_mmvec";
40185}
40186def V6_vxor : HInst<
40187(outs HvxVR:$Vd32),
40188(ins HvxVR:$Vu32, HvxVR:$Vv32),
40189"$Vd32 = vxor($Vu32,$Vv32)",
40190tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
40191let Inst{7-5} = 0b111;
40192let Inst{13-13} = 0b0;
40193let Inst{31-21} = 0b00011100001;
40194let hasNewValue = 1;
40195let opNewValue = 0;
40196let isCVI = 1;
40197let isHVXALU = 1;
40198let isHVXALU2SRC = 1;
40199let DecoderNamespace = "EXT_mmvec";
40200}
40201def V6_vzb : HInst<
40202(outs HvxWR:$Vdd32),
40203(ins HvxVR:$Vu32),
40204"$Vdd32.uh = vzxt($Vu32.ub)",
40205tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
40206let Inst{7-5} = 0b001;
40207let Inst{13-13} = 0b0;
40208let Inst{31-16} = 0b0001111000000010;
40209let hasNewValue = 1;
40210let opNewValue = 0;
40211let isCVI = 1;
40212let DecoderNamespace = "EXT_mmvec";
40213}
40214def V6_vzb_alt : HInst<
40215(outs HvxWR:$Vdd32),
40216(ins HvxVR:$Vu32),
40217"$Vdd32 = vzxtb($Vu32)",
40218PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40219let hasNewValue = 1;
40220let opNewValue = 0;
40221let isCVI = 1;
40222let isPseudo = 1;
40223let isCodeGenOnly = 1;
40224let DecoderNamespace = "EXT_mmvec";
40225}
40226def V6_vzh : HInst<
40227(outs HvxWR:$Vdd32),
40228(ins HvxVR:$Vu32),
40229"$Vdd32.uw = vzxt($Vu32.uh)",
40230tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
40231let Inst{7-5} = 0b010;
40232let Inst{13-13} = 0b0;
40233let Inst{31-16} = 0b0001111000000010;
40234let hasNewValue = 1;
40235let opNewValue = 0;
40236let isCVI = 1;
40237let DecoderNamespace = "EXT_mmvec";
40238}
40239def V6_vzh_alt : HInst<
40240(outs HvxWR:$Vdd32),
40241(ins HvxVR:$Vu32),
40242"$Vdd32 = vzxth($Vu32)",
40243PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40244let hasNewValue = 1;
40245let opNewValue = 0;
40246let isCVI = 1;
40247let isPseudo = 1;
40248let isCodeGenOnly = 1;
40249let DecoderNamespace = "EXT_mmvec";
40250}
40251def V6_zLd_ai : HInst<
40252(outs),
40253(ins IntRegs:$Rt32, s4_0Imm:$Ii),
40254"z = vmem($Rt32+#$Ii)",
40255tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
40256let Inst{7-0} = 0b00000000;
40257let Inst{12-11} = 0b00;
40258let Inst{31-21} = 0b00101100000;
40259let addrMode = BaseImmOffset;
40260let isCVI = 1;
40261let mayLoad = 1;
40262let isRestrictNoSlot1Store = 1;
40263let CextOpcode = "V6_zLd";
40264let DecoderNamespace = "EXT_mmvec";
40265}
40266def V6_zLd_pi : HInst<
40267(outs IntRegs:$Rx32),
40268(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
40269"z = vmem($Rx32++#$Ii)",
40270tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
40271let Inst{7-0} = 0b00000000;
40272let Inst{13-11} = 0b000;
40273let Inst{31-21} = 0b00101101000;
40274let addrMode = PostInc;
40275let isCVI = 1;
40276let mayLoad = 1;
40277let isRestrictNoSlot1Store = 1;
40278let CextOpcode = "V6_zLd";
40279let DecoderNamespace = "EXT_mmvec";
40280let Constraints = "$Rx32 = $Rx32in";
40281}
40282def V6_zLd_ppu : HInst<
40283(outs IntRegs:$Rx32),
40284(ins IntRegs:$Rx32in, ModRegs:$Mu2),
40285"z = vmem($Rx32++$Mu2)",
40286tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
40287let Inst{12-0} = 0b0000000000001;
40288let Inst{31-21} = 0b00101101000;
40289let addrMode = PostInc;
40290let isCVI = 1;
40291let mayLoad = 1;
40292let isRestrictNoSlot1Store = 1;
40293let DecoderNamespace = "EXT_mmvec";
40294let Constraints = "$Rx32 = $Rx32in";
40295}
40296def V6_zLd_pred_ai : HInst<
40297(outs),
40298(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
40299"if ($Pv4) z = vmem($Rt32+#$Ii)",
40300tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
40301let Inst{7-0} = 0b00000000;
40302let Inst{31-21} = 0b00101100100;
40303let isPredicated = 1;
40304let addrMode = BaseImmOffset;
40305let isCVI = 1;
40306let mayLoad = 1;
40307let isRestrictNoSlot1Store = 1;
40308let DecoderNamespace = "EXT_mmvec";
40309}
40310def V6_zLd_pred_pi : HInst<
40311(outs IntRegs:$Rx32),
40312(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
40313"if ($Pv4) z = vmem($Rx32++#$Ii)",
40314tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
40315let Inst{7-0} = 0b00000000;
40316let Inst{13-13} = 0b0;
40317let Inst{31-21} = 0b00101101100;
40318let isPredicated = 1;
40319let addrMode = PostInc;
40320let isCVI = 1;
40321let mayLoad = 1;
40322let isRestrictNoSlot1Store = 1;
40323let DecoderNamespace = "EXT_mmvec";
40324let Constraints = "$Rx32 = $Rx32in";
40325}
40326def V6_zLd_pred_ppu : HInst<
40327(outs IntRegs:$Rx32),
40328(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
40329"if ($Pv4) z = vmem($Rx32++$Mu2)",
40330tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
40331let Inst{10-0} = 0b00000000001;
40332let Inst{31-21} = 0b00101101100;
40333let isPredicated = 1;
40334let addrMode = PostInc;
40335let isCVI = 1;
40336let mayLoad = 1;
40337let isRestrictNoSlot1Store = 1;
40338let DecoderNamespace = "EXT_mmvec";
40339let Constraints = "$Rx32 = $Rx32in";
40340}
40341def V6_zextract : HInst<
40342(outs HvxVR:$Vd32),
40343(ins IntRegs:$Rt32),
40344"$Vd32 = zextract($Rt32)",
40345tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
40346let Inst{13-5} = 0b000001001;
40347let Inst{31-21} = 0b00011001101;
40348let hasNewValue = 1;
40349let opNewValue = 0;
40350let isCVI = 1;
40351let DecoderNamespace = "EXT_mmvec";
40352}
40353def V6_zld0 : HInst<
40354(outs),
40355(ins IntRegs:$Rt32),
40356"z = vmem($Rt32)",
40357PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
40358let isCVI = 1;
40359let isPseudo = 1;
40360let isCodeGenOnly = 1;
40361let DecoderNamespace = "EXT_mmvec";
40362}
40363def V6_zldp0 : HInst<
40364(outs),
40365(ins PredRegs:$Pv4, IntRegs:$Rt32),
40366"if ($Pv4) z = vmem($Rt32)",
40367PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
40368let isCVI = 1;
40369let isPseudo = 1;
40370let isCodeGenOnly = 1;
40371let DecoderNamespace = "EXT_mmvec";
40372}
40373def Y2_barrier : HInst<
40374(outs),
40375(ins),
40376"barrier",
40377tc_77f94a5e, TypeST>, Enc_e3b0c4 {
40378let Inst{13-0} = 0b00000000000000;
40379let Inst{31-16} = 0b1010100000000000;
40380let isSoloAX = 1;
40381let hasSideEffects = 1;
40382}
40383def Y2_break : HInst<
40384(outs),
40385(ins),
40386"brkpt",
40387tc_55255f2b, TypeCR>, Enc_e3b0c4 {
40388let Inst{13-0} = 0b00000000000000;
40389let Inst{31-16} = 0b0110110000100000;
40390let isSolo = 1;
40391}
40392def Y2_crswap0 : HInst<
40393(outs IntRegs:$Rx32),
40394(ins IntRegs:$Rx32in),
40395"crswap($Rx32,sgp0)",
40396tc_7dc63b5c, TypeCR>, Enc_403871 {
40397let Inst{13-0} = 0b00000000000000;
40398let Inst{31-21} = 0b01100101000;
40399let hasNewValue = 1;
40400let opNewValue = 0;
40401let Uses = [SGP0];
40402let Defs = [SGP0];
40403let Constraints = "$Rx32 = $Rx32in";
40404}
40405def Y2_crswap_old : HInst<
40406(outs IntRegs:$Rx32),
40407(ins IntRegs:$Rx32in),
40408"crswap($Rx32,sgp)",
40409tc_7dc63b5c, TypeMAPPING> {
40410let hasNewValue = 1;
40411let opNewValue = 0;
40412let isPseudo = 1;
40413let isCodeGenOnly = 1;
40414let Constraints = "$Rx32 = $Rx32in";
40415}
40416def Y2_dccleana : HInst<
40417(outs),
40418(ins IntRegs:$Rs32),
40419"dccleana($Rs32)",
40420tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40421let Inst{13-0} = 0b00000000000000;
40422let Inst{31-21} = 0b10100000000;
40423let isRestrictSlot1AOK = 1;
40424let hasSideEffects = 1;
40425}
40426def Y2_dccleaninva : HInst<
40427(outs),
40428(ins IntRegs:$Rs32),
40429"dccleaninva($Rs32)",
40430tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40431let Inst{13-0} = 0b00000000000000;
40432let Inst{31-21} = 0b10100000010;
40433let isRestrictSlot1AOK = 1;
40434let hasSideEffects = 1;
40435}
40436def Y2_dcfetch : HInst<
40437(outs),
40438(ins IntRegs:$Rs32),
40439"dcfetch($Rs32)",
40440tc_d45ba9cd, TypeMAPPING> {
40441let hasSideEffects = 1;
40442let isPseudo = 1;
40443let isCodeGenOnly = 1;
40444}
40445def Y2_dcfetchbo : HInst<
40446(outs),
40447(ins IntRegs:$Rs32, u11_3Imm:$Ii),
40448"dcfetch($Rs32+#$Ii)",
40449tc_2237d952, TypeLD>, Enc_2d829e {
40450let Inst{13-11} = 0b000;
40451let Inst{31-21} = 0b10010100000;
40452let addrMode = BaseImmOffset;
40453let isRestrictNoSlot1Store = 1;
40454let hasSideEffects = 1;
40455}
40456def Y2_dcinva : HInst<
40457(outs),
40458(ins IntRegs:$Rs32),
40459"dcinva($Rs32)",
40460tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40461let Inst{13-0} = 0b00000000000000;
40462let Inst{31-21} = 0b10100000001;
40463let isRestrictSlot1AOK = 1;
40464let hasSideEffects = 1;
40465}
40466def Y2_dczeroa : HInst<
40467(outs),
40468(ins IntRegs:$Rs32),
40469"dczeroa($Rs32)",
40470tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40471let Inst{13-0} = 0b00000000000000;
40472let Inst{31-21} = 0b10100000110;
40473let isRestrictSlot1AOK = 1;
40474let mayStore = 1;
40475let hasSideEffects = 1;
40476}
40477def Y2_icinva : HInst<
40478(outs),
40479(ins IntRegs:$Rs32),
40480"icinva($Rs32)",
40481tc_0ba0d5da, TypeJ>, Enc_ecbcc8 {
40482let Inst{13-0} = 0b00000000000000;
40483let Inst{31-21} = 0b01010110110;
40484let isSolo = 1;
40485}
40486def Y2_isync : HInst<
40487(outs),
40488(ins),
40489"isync",
40490tc_9b34f5e0, TypeJ>, Enc_e3b0c4 {
40491let Inst{13-0} = 0b00000000000010;
40492let Inst{31-16} = 0b0101011111000000;
40493let isSolo = 1;
40494}
40495def Y2_k1lock_map : HInst<
40496(outs),
40497(ins),
40498"k1lock",
40499PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
40500let isPseudo = 1;
40501let isCodeGenOnly = 1;
40502}
40503def Y2_k1unlock_map : HInst<
40504(outs),
40505(ins),
40506"k1unlock",
40507PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
40508let isPseudo = 1;
40509let isCodeGenOnly = 1;
40510}
40511def Y2_syncht : HInst<
40512(outs),
40513(ins),
40514"syncht",
40515tc_77f94a5e, TypeST>, Enc_e3b0c4 {
40516let Inst{13-0} = 0b00000000000000;
40517let Inst{31-16} = 0b1010100001000000;
40518let isSolo = 1;
40519}
40520def Y2_tfrscrr : HInst<
40521(outs IntRegs:$Rd32),
40522(ins SysRegs:$Ss128),
40523"$Rd32 = $Ss128",
40524tc_fae9dfa5, TypeCR>, Enc_7d1542 {
40525let Inst{13-5} = 0b000000000;
40526let Inst{31-23} = 0b011011101;
40527let hasNewValue = 1;
40528let opNewValue = 0;
40529}
40530def Y2_tfrsrcr : HInst<
40531(outs SysRegs:$Sd128),
40532(ins IntRegs:$Rs32),
40533"$Sd128 = $Rs32",
40534tc_6ae3426b, TypeCR>, Enc_8f7633 {
40535let Inst{13-7} = 0b0000000;
40536let Inst{31-21} = 0b01100111000;
40537let hasNewValue = 1;
40538let opNewValue = 0;
40539}
40540def Y2_wait : HInst<
40541(outs),
40542(ins IntRegs:$Rs32),
40543"wait($Rs32)",
40544tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
40545let Inst{13-0} = 0b00000000000000;
40546let Inst{31-21} = 0b01100100010;
40547let isSolo = 1;
40548}
40549def Y4_crswap1 : HInst<
40550(outs IntRegs:$Rx32),
40551(ins IntRegs:$Rx32in),
40552"crswap($Rx32,sgp1)",
40553tc_7dc63b5c, TypeCR>, Enc_403871 {
40554let Inst{13-0} = 0b00000000000000;
40555let Inst{31-21} = 0b01100101001;
40556let hasNewValue = 1;
40557let opNewValue = 0;
40558let Uses = [SGP1];
40559let Defs = [SGP1];
40560let Constraints = "$Rx32 = $Rx32in";
40561}
40562def Y4_crswap10 : HInst<
40563(outs DoubleRegs:$Rxx32),
40564(ins DoubleRegs:$Rxx32in, sgp10Const:$sgp10),
40565"crswap($Rxx32,$sgp10)",
40566tc_27106296, TypeCR>, Enc_d0fe02 {
40567let Inst{13-0} = 0b00000000000000;
40568let Inst{31-21} = 0b01101101100;
40569let Uses = [SGP0, SGP1];
40570let Defs = [SGP0, SGP1];
40571let Constraints = "$Rxx32 = $Rxx32in";
40572}
40573def Y4_l2fetch : HInst<
40574(outs),
40575(ins IntRegs:$Rs32, IntRegs:$Rt32),
40576"l2fetch($Rs32,$Rt32)",
40577tc_a3070909, TypeST>, Enc_ca3887 {
40578let Inst{7-0} = 0b00000000;
40579let Inst{13-13} = 0b0;
40580let Inst{31-21} = 0b10100110000;
40581let isSoloAX = 1;
40582let hasSideEffects = 1;
40583let mayStore = 1;
40584}
40585def Y4_tfrscpp : HInst<
40586(outs DoubleRegs:$Rdd32),
40587(ins SysRegs64:$Sss128),
40588"$Rdd32 = $Sss128",
40589tc_fae9dfa5, TypeCR>, Enc_e32517 {
40590let Inst{13-5} = 0b000000000;
40591let Inst{31-23} = 0b011011110;
40592}
40593def Y4_tfrspcp : HInst<
40594(outs SysRegs64:$Sdd128),
40595(ins DoubleRegs:$Rss32),
40596"$Sdd128 = $Rss32",
40597tc_6ae3426b, TypeCR>, Enc_a705fc {
40598let Inst{13-7} = 0b0000000;
40599let Inst{31-21} = 0b01101101000;
40600let hasNewValue = 1;
40601let opNewValue = 0;
40602}
40603def Y4_trace : HInst<
40604(outs),
40605(ins IntRegs:$Rs32),
40606"trace($Rs32)",
40607tc_d7718fbe, TypeCR>, Enc_ecbcc8 {
40608let Inst{13-0} = 0b00000000000000;
40609let Inst{31-21} = 0b01100010010;
40610let isSoloAX = 1;
40611}
40612def Y5_l2fetch : HInst<
40613(outs),
40614(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
40615"l2fetch($Rs32,$Rtt32)",
40616tc_a3070909, TypeST>, Enc_e6abcf {
40617let Inst{7-0} = 0b00000000;
40618let Inst{13-13} = 0b0;
40619let Inst{31-21} = 0b10100110100;
40620let isSoloAX = 1;
40621let hasSideEffects = 1;
40622let mayStore = 1;
40623}
40624def Y6_diag : HInst<
40625(outs),
40626(ins IntRegs:$Rs32),
40627"diag($Rs32)",
40628tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> {
40629let Inst{13-0} = 0b00000000100000;
40630let Inst{31-21} = 0b01100010010;
40631}
40632def Y6_diag0 : HInst<
40633(outs),
40634(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
40635"diag0($Rss32,$Rtt32)",
40636tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
40637let Inst{7-0} = 0b01000000;
40638let Inst{13-13} = 0b0;
40639let Inst{31-21} = 0b01100010010;
40640}
40641def Y6_diag1 : HInst<
40642(outs),
40643(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
40644"diag1($Rss32,$Rtt32)",
40645tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
40646let Inst{7-0} = 0b01100000;
40647let Inst{13-13} = 0b0;
40648let Inst{31-21} = 0b01100010010;
40649}
40650def Y6_dmlink : HInst<
40651(outs),
40652(ins IntRegs:$Rs32, IntRegs:$Rt32),
40653"dmlink($Rs32,$Rt32)",
40654tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
40655let Inst{7-0} = 0b01000000;
40656let Inst{13-13} = 0b0;
40657let Inst{31-21} = 0b10100110000;
40658let hasSideEffects = 1;
40659let isSolo = 1;
40660let mayStore = 1;
40661}
40662def Y6_dmpause : HInst<
40663(outs IntRegs:$Rd32),
40664(ins),
40665"$Rd32 = dmpause",
40666tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40667let Inst{13-5} = 0b000000011;
40668let Inst{31-16} = 0b1010100000000000;
40669let hasNewValue = 1;
40670let opNewValue = 0;
40671let hasSideEffects = 1;
40672let isSolo = 1;
40673}
40674def Y6_dmpoll : HInst<
40675(outs IntRegs:$Rd32),
40676(ins),
40677"$Rd32 = dmpoll",
40678tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40679let Inst{13-5} = 0b000000010;
40680let Inst{31-16} = 0b1010100000000000;
40681let hasNewValue = 1;
40682let opNewValue = 0;
40683let hasSideEffects = 1;
40684let isSolo = 1;
40685}
40686def Y6_dmresume : HInst<
40687(outs),
40688(ins IntRegs:$Rs32),
40689"dmresume($Rs32)",
40690tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
40691let Inst{13-0} = 0b00000010000000;
40692let Inst{31-21} = 0b10100110000;
40693let hasSideEffects = 1;
40694let isSolo = 1;
40695}
40696def Y6_dmstart : HInst<
40697(outs),
40698(ins IntRegs:$Rs32),
40699"dmstart($Rs32)",
40700tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
40701let Inst{13-0} = 0b00000000100000;
40702let Inst{31-21} = 0b10100110000;
40703let hasSideEffects = 1;
40704let isSolo = 1;
40705}
40706def Y6_dmwait : HInst<
40707(outs IntRegs:$Rd32),
40708(ins),
40709"$Rd32 = dmwait",
40710tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40711let Inst{13-5} = 0b000000001;
40712let Inst{31-16} = 0b1010100000000000;
40713let hasNewValue = 1;
40714let opNewValue = 0;
40715let hasSideEffects = 1;
40716let isSolo = 1;
40717}
40718def dep_A2_addsat : HInst<
40719(outs IntRegs:$Rd32),
40720(ins IntRegs:$Rs32, IntRegs:$Rt32),
40721"$Rd32 = add($Rs32,$Rt32):sat:deprecated",
40722tc_8a825db2, TypeALU64>, Enc_5ab2be {
40723let Inst{7-5} = 0b000;
40724let Inst{13-13} = 0b0;
40725let Inst{31-21} = 0b11010101100;
40726let hasNewValue = 1;
40727let opNewValue = 0;
40728let prefersSlot3 = 1;
40729let Defs = [USR_OVF];
40730}
40731def dep_A2_subsat : HInst<
40732(outs IntRegs:$Rd32),
40733(ins IntRegs:$Rt32, IntRegs:$Rs32),
40734"$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
40735tc_8a825db2, TypeALU64>, Enc_bd6011 {
40736let Inst{7-5} = 0b100;
40737let Inst{13-13} = 0b0;
40738let Inst{31-21} = 0b11010101100;
40739let hasNewValue = 1;
40740let opNewValue = 0;
40741let prefersSlot3 = 1;
40742let Defs = [USR_OVF];
40743}
40744def dep_S2_packhl : HInst<
40745(outs DoubleRegs:$Rdd32),
40746(ins IntRegs:$Rs32, IntRegs:$Rt32),
40747"$Rdd32 = packhl($Rs32,$Rt32):deprecated",
40748tc_5da50c4b, TypeALU64>, Enc_be32a5 {
40749let Inst{7-5} = 0b000;
40750let Inst{13-13} = 0b0;
40751let Inst{31-21} = 0b11010100000;
40752}
40753def dup_A2_add : HInst<
40754(outs IntRegs:$Rd32),
40755(ins IntRegs:$Rs32, IntRegs:$Rt32),
40756"$Rd32 = add($Rs32,$Rt32)",
40757tc_388f9897, TypeALU32_3op>, Requires<[HasV73]> {
40758let hasNewValue = 1;
40759let opNewValue = 0;
40760let AsmVariantName = "NonParsable";
40761let isPseudo = 1;
40762}
40763def dup_A2_addi : HInst<
40764(outs IntRegs:$Rd32),
40765(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40766"$Rd32 = add($Rs32,#$Ii)",
40767tc_388f9897, TypeALU32_ADDI>, Requires<[HasV73]> {
40768let hasNewValue = 1;
40769let opNewValue = 0;
40770let AsmVariantName = "NonParsable";
40771let isPseudo = 1;
40772let isExtendable = 1;
40773let opExtendable = 2;
40774let isExtentSigned = 1;
40775let opExtentBits = 16;
40776let opExtentAlign = 0;
40777}
40778def dup_A2_andir : HInst<
40779(outs IntRegs:$Rd32),
40780(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40781"$Rd32 = and($Rs32,#$Ii)",
40782tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40783let hasNewValue = 1;
40784let opNewValue = 0;
40785let AsmVariantName = "NonParsable";
40786let isPseudo = 1;
40787let isExtendable = 1;
40788let opExtendable = 2;
40789let isExtentSigned = 1;
40790let opExtentBits = 10;
40791let opExtentAlign = 0;
40792}
40793def dup_A2_combineii : HInst<
40794(outs DoubleRegs:$Rdd32),
40795(ins s32_0Imm:$Ii, s8_0Imm:$II),
40796"$Rdd32 = combine(#$Ii,#$II)",
40797tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40798let AsmVariantName = "NonParsable";
40799let isPseudo = 1;
40800let isExtendable = 1;
40801let opExtendable = 1;
40802let isExtentSigned = 1;
40803let opExtentBits = 8;
40804let opExtentAlign = 0;
40805}
40806def dup_A2_sxtb : HInst<
40807(outs IntRegs:$Rd32),
40808(ins IntRegs:$Rs32),
40809"$Rd32 = sxtb($Rs32)",
40810tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
40811let hasNewValue = 1;
40812let opNewValue = 0;
40813let AsmVariantName = "NonParsable";
40814let isPseudo = 1;
40815}
40816def dup_A2_sxth : HInst<
40817(outs IntRegs:$Rd32),
40818(ins IntRegs:$Rs32),
40819"$Rd32 = sxth($Rs32)",
40820tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
40821let hasNewValue = 1;
40822let opNewValue = 0;
40823let AsmVariantName = "NonParsable";
40824let isPseudo = 1;
40825}
40826def dup_A2_tfr : HInst<
40827(outs IntRegs:$Rd32),
40828(ins IntRegs:$Rs32),
40829"$Rd32 = $Rs32",
40830tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
40831let hasNewValue = 1;
40832let opNewValue = 0;
40833let AsmVariantName = "NonParsable";
40834let isPseudo = 1;
40835}
40836def dup_A2_tfrsi : HInst<
40837(outs IntRegs:$Rd32),
40838(ins s32_0Imm:$Ii),
40839"$Rd32 = #$Ii",
40840tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
40841let hasNewValue = 1;
40842let opNewValue = 0;
40843let AsmVariantName = "NonParsable";
40844let isPseudo = 1;
40845let isExtendable = 1;
40846let opExtendable = 1;
40847let isExtentSigned = 1;
40848let opExtentBits = 16;
40849let opExtentAlign = 0;
40850}
40851def dup_A2_zxtb : HInst<
40852(outs IntRegs:$Rd32),
40853(ins IntRegs:$Rs32),
40854"$Rd32 = zxtb($Rs32)",
40855PSEUDO, TypeMAPPING>, Requires<[HasV73]> {
40856let hasNewValue = 1;
40857let opNewValue = 0;
40858let AsmVariantName = "NonParsable";
40859let isPseudo = 1;
40860}
40861def dup_A2_zxth : HInst<
40862(outs IntRegs:$Rd32),
40863(ins IntRegs:$Rs32),
40864"$Rd32 = zxth($Rs32)",
40865tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
40866let hasNewValue = 1;
40867let opNewValue = 0;
40868let AsmVariantName = "NonParsable";
40869let isPseudo = 1;
40870}
40871def dup_A4_combineii : HInst<
40872(outs DoubleRegs:$Rdd32),
40873(ins s8_0Imm:$Ii, u32_0Imm:$II),
40874"$Rdd32 = combine(#$Ii,#$II)",
40875tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40876let AsmVariantName = "NonParsable";
40877let isPseudo = 1;
40878let isExtendable = 1;
40879let opExtendable = 2;
40880let isExtentSigned = 0;
40881let opExtentBits = 6;
40882let opExtentAlign = 0;
40883}
40884def dup_A4_combineir : HInst<
40885(outs DoubleRegs:$Rdd32),
40886(ins s32_0Imm:$Ii, IntRegs:$Rs32),
40887"$Rdd32 = combine(#$Ii,$Rs32)",
40888tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40889let AsmVariantName = "NonParsable";
40890let isPseudo = 1;
40891let isExtendable = 1;
40892let opExtendable = 1;
40893let isExtentSigned = 1;
40894let opExtentBits = 8;
40895let opExtentAlign = 0;
40896}
40897def dup_A4_combineri : HInst<
40898(outs DoubleRegs:$Rdd32),
40899(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40900"$Rdd32 = combine($Rs32,#$Ii)",
40901tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40902let AsmVariantName = "NonParsable";
40903let isPseudo = 1;
40904let isExtendable = 1;
40905let opExtendable = 2;
40906let isExtentSigned = 1;
40907let opExtentBits = 8;
40908let opExtentAlign = 0;
40909}
40910def dup_C2_cmoveif : HInst<
40911(outs IntRegs:$Rd32),
40912(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40913"if (!$Pu4) $Rd32 = #$Ii",
40914tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40915let isPredicated = 1;
40916let isPredicatedFalse = 1;
40917let hasNewValue = 1;
40918let opNewValue = 0;
40919let AsmVariantName = "NonParsable";
40920let isPseudo = 1;
40921let isExtendable = 1;
40922let opExtendable = 2;
40923let isExtentSigned = 1;
40924let opExtentBits = 12;
40925let opExtentAlign = 0;
40926}
40927def dup_C2_cmoveit : HInst<
40928(outs IntRegs:$Rd32),
40929(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40930"if ($Pu4) $Rd32 = #$Ii",
40931tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40932let isPredicated = 1;
40933let hasNewValue = 1;
40934let opNewValue = 0;
40935let AsmVariantName = "NonParsable";
40936let isPseudo = 1;
40937let isExtendable = 1;
40938let opExtendable = 2;
40939let isExtentSigned = 1;
40940let opExtentBits = 12;
40941let opExtentAlign = 0;
40942}
40943def dup_C2_cmovenewif : HInst<
40944(outs IntRegs:$Rd32),
40945(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40946"if (!$Pu4.new) $Rd32 = #$Ii",
40947tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> {
40948let isPredicated = 1;
40949let isPredicatedFalse = 1;
40950let hasNewValue = 1;
40951let opNewValue = 0;
40952let AsmVariantName = "NonParsable";
40953let isPredicatedNew = 1;
40954let isPseudo = 1;
40955let isExtendable = 1;
40956let opExtendable = 2;
40957let isExtentSigned = 1;
40958let opExtentBits = 12;
40959let opExtentAlign = 0;
40960}
40961def dup_C2_cmovenewit : HInst<
40962(outs IntRegs:$Rd32),
40963(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40964"if ($Pu4.new) $Rd32 = #$Ii",
40965tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> {
40966let isPredicated = 1;
40967let hasNewValue = 1;
40968let opNewValue = 0;
40969let AsmVariantName = "NonParsable";
40970let isPredicatedNew = 1;
40971let isPseudo = 1;
40972let isExtendable = 1;
40973let opExtendable = 2;
40974let isExtentSigned = 1;
40975let opExtentBits = 12;
40976let opExtentAlign = 0;
40977}
40978def dup_C2_cmpeqi : HInst<
40979(outs PredRegs:$Pd4),
40980(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40981"$Pd4 = cmp.eq($Rs32,#$Ii)",
40982tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
40983let AsmVariantName = "NonParsable";
40984let isPseudo = 1;
40985let isExtendable = 1;
40986let opExtendable = 2;
40987let isExtentSigned = 1;
40988let opExtentBits = 10;
40989let opExtentAlign = 0;
40990}
40991def dup_L2_deallocframe : HInst<
40992(outs DoubleRegs:$Rdd32),
40993(ins IntRegs:$Rs32),
40994"$Rdd32 = deallocframe($Rs32):raw",
40995tc_aee6250c, TypeLD>, Requires<[HasV73]> {
40996let accessSize = DoubleWordAccess;
40997let AsmVariantName = "NonParsable";
40998let mayLoad = 1;
40999let Uses = [FRAMEKEY];
41000let Defs = [R29];
41001let isPseudo = 1;
41002}
41003def dup_L2_loadrb_io : HInst<
41004(outs IntRegs:$Rd32),
41005(ins IntRegs:$Rs32, s32_0Imm:$Ii),
41006"$Rd32 = memb($Rs32+#$Ii)",
41007tc_eed07714, TypeLD>, Requires<[HasV73]> {
41008let hasNewValue = 1;
41009let opNewValue = 0;
41010let addrMode = BaseImmOffset;
41011let accessSize = ByteAccess;
41012let AsmVariantName = "NonParsable";
41013let mayLoad = 1;
41014let isPseudo = 1;
41015let isExtendable = 1;
41016let opExtendable = 2;
41017let isExtentSigned = 1;
41018let opExtentBits = 11;
41019let opExtentAlign = 0;
41020}
41021def dup_L2_loadrd_io : HInst<
41022(outs DoubleRegs:$Rdd32),
41023(ins IntRegs:$Rs32, s29_3Imm:$Ii),
41024"$Rdd32 = memd($Rs32+#$Ii)",
41025tc_eed07714, TypeLD>, Requires<[HasV73]> {
41026let addrMode = BaseImmOffset;
41027let accessSize = DoubleWordAccess;
41028let AsmVariantName = "NonParsable";
41029let mayLoad = 1;
41030let isPseudo = 1;
41031let isExtendable = 1;
41032let opExtendable = 2;
41033let isExtentSigned = 1;
41034let opExtentBits = 14;
41035let opExtentAlign = 3;
41036}
41037def dup_L2_loadrh_io : HInst<
41038(outs IntRegs:$Rd32),
41039(ins IntRegs:$Rs32, s31_1Imm:$Ii),
41040"$Rd32 = memh($Rs32+#$Ii)",
41041tc_eed07714, TypeLD>, Requires<[HasV73]> {
41042let hasNewValue = 1;
41043let opNewValue = 0;
41044let addrMode = BaseImmOffset;
41045let accessSize = HalfWordAccess;
41046let AsmVariantName = "NonParsable";
41047let mayLoad = 1;
41048let isPseudo = 1;
41049let isExtendable = 1;
41050let opExtendable = 2;
41051let isExtentSigned = 1;
41052let opExtentBits = 12;
41053let opExtentAlign = 1;
41054}
41055def dup_L2_loadri_io : HInst<
41056(outs IntRegs:$Rd32),
41057(ins IntRegs:$Rs32, s30_2Imm:$Ii),
41058"$Rd32 = memw($Rs32+#$Ii)",
41059tc_eed07714, TypeLD>, Requires<[HasV73]> {
41060let hasNewValue = 1;
41061let opNewValue = 0;
41062let addrMode = BaseImmOffset;
41063let accessSize = WordAccess;
41064let AsmVariantName = "NonParsable";
41065let mayLoad = 1;
41066let isPseudo = 1;
41067let isExtendable = 1;
41068let opExtendable = 2;
41069let isExtentSigned = 1;
41070let opExtentBits = 13;
41071let opExtentAlign = 2;
41072}
41073def dup_L2_loadrub_io : HInst<
41074(outs IntRegs:$Rd32),
41075(ins IntRegs:$Rs32, s32_0Imm:$Ii),
41076"$Rd32 = memub($Rs32+#$Ii)",
41077tc_eed07714, TypeLD>, Requires<[HasV73]> {
41078let hasNewValue = 1;
41079let opNewValue = 0;
41080let addrMode = BaseImmOffset;
41081let accessSize = ByteAccess;
41082let AsmVariantName = "NonParsable";
41083let mayLoad = 1;
41084let isPseudo = 1;
41085let isExtendable = 1;
41086let opExtendable = 2;
41087let isExtentSigned = 1;
41088let opExtentBits = 11;
41089let opExtentAlign = 0;
41090}
41091def dup_L2_loadruh_io : HInst<
41092(outs IntRegs:$Rd32),
41093(ins IntRegs:$Rs32, s31_1Imm:$Ii),
41094"$Rd32 = memuh($Rs32+#$Ii)",
41095tc_eed07714, TypeLD>, Requires<[HasV73]> {
41096let hasNewValue = 1;
41097let opNewValue = 0;
41098let addrMode = BaseImmOffset;
41099let accessSize = HalfWordAccess;
41100let AsmVariantName = "NonParsable";
41101let mayLoad = 1;
41102let isPseudo = 1;
41103let isExtendable = 1;
41104let opExtendable = 2;
41105let isExtentSigned = 1;
41106let opExtentBits = 12;
41107let opExtentAlign = 1;
41108}
41109def dup_S2_allocframe : HInst<
41110(outs IntRegs:$Rx32),
41111(ins IntRegs:$Rx32in, u11_3Imm:$Ii),
41112"allocframe($Rx32,#$Ii):raw",
41113tc_74a42bda, TypeST>, Requires<[HasV73]> {
41114let hasNewValue = 1;
41115let opNewValue = 0;
41116let addrMode = BaseImmOffset;
41117let accessSize = DoubleWordAccess;
41118let AsmVariantName = "NonParsable";
41119let mayStore = 1;
41120let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
41121let Defs = [R30];
41122let isPseudo = 1;
41123let Constraints = "$Rx32 = $Rx32in";
41124}
41125def dup_S2_storerb_io : HInst<
41126(outs),
41127(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
41128"memb($Rs32+#$Ii) = $Rt32",
41129tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41130let addrMode = BaseImmOffset;
41131let accessSize = ByteAccess;
41132let AsmVariantName = "NonParsable";
41133let mayStore = 1;
41134let isPseudo = 1;
41135let isExtendable = 1;
41136let opExtendable = 1;
41137let isExtentSigned = 1;
41138let opExtentBits = 11;
41139let opExtentAlign = 0;
41140}
41141def dup_S2_storerd_io : HInst<
41142(outs),
41143(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
41144"memd($Rs32+#$Ii) = $Rtt32",
41145tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41146let addrMode = BaseImmOffset;
41147let accessSize = DoubleWordAccess;
41148let AsmVariantName = "NonParsable";
41149let mayStore = 1;
41150let isPseudo = 1;
41151let isExtendable = 1;
41152let opExtendable = 1;
41153let isExtentSigned = 1;
41154let opExtentBits = 14;
41155let opExtentAlign = 3;
41156}
41157def dup_S2_storerh_io : HInst<
41158(outs),
41159(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
41160"memh($Rs32+#$Ii) = $Rt32",
41161tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41162let addrMode = BaseImmOffset;
41163let accessSize = HalfWordAccess;
41164let AsmVariantName = "NonParsable";
41165let mayStore = 1;
41166let isPseudo = 1;
41167let isExtendable = 1;
41168let opExtendable = 1;
41169let isExtentSigned = 1;
41170let opExtentBits = 12;
41171let opExtentAlign = 1;
41172}
41173def dup_S2_storeri_io : HInst<
41174(outs),
41175(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
41176"memw($Rs32+#$Ii) = $Rt32",
41177tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41178let addrMode = BaseImmOffset;
41179let accessSize = WordAccess;
41180let AsmVariantName = "NonParsable";
41181let mayStore = 1;
41182let isPseudo = 1;
41183let isExtendable = 1;
41184let opExtendable = 1;
41185let isExtentSigned = 1;
41186let opExtentBits = 13;
41187let opExtentAlign = 2;
41188}
41189def dup_S4_storeirb_io : HInst<
41190(outs),
41191(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
41192"memb($Rs32+#$Ii) = #$II",
41193tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> {
41194let addrMode = BaseImmOffset;
41195let accessSize = ByteAccess;
41196let AsmVariantName = "NonParsable";
41197let mayStore = 1;
41198let isPseudo = 1;
41199let isExtendable = 1;
41200let opExtendable = 2;
41201let isExtentSigned = 1;
41202let opExtentBits = 8;
41203let opExtentAlign = 0;
41204}
41205def dup_S4_storeiri_io : HInst<
41206(outs),
41207(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
41208"memw($Rs32+#$Ii) = #$II",
41209tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> {
41210let addrMode = BaseImmOffset;
41211let accessSize = WordAccess;
41212let AsmVariantName = "NonParsable";
41213let mayStore = 1;
41214let isPseudo = 1;
41215let isExtendable = 1;
41216let opExtendable = 2;
41217let isExtentSigned = 1;
41218let opExtentBits = 8;
41219let opExtentAlign = 0;
41220}
41221