xref: /freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
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_callrt : HInst<
4963(outs),
4964(ins PredRegs:$Pu4, IntRegs:$Rs32),
4965"if ($Pu4) callr $Rs32",
4966tc_dc51281d, TypeJ>, Enc_88d4d9 {
4967let Inst{7-0} = 0b00000000;
4968let Inst{13-10} = 0b0000;
4969let Inst{31-21} = 0b01010001000;
4970let isPredicated = 1;
4971let isCall = 1;
4972let prefersSlot3 = 1;
4973let cofMax1 = 1;
4974let Uses = [R29];
4975let Defs = [PC, R31];
4976let hasSideEffects = 1;
4977let isTaken = Inst{12};
4978}
4979def J2_callt : HInst<
4980(outs),
4981(ins PredRegs:$Pu4, a30_2Imm:$Ii),
4982"if ($Pu4) call $Ii",
4983tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4984let Inst{0-0} = 0b0;
4985let Inst{12-10} = 0b000;
4986let Inst{21-21} = 0b0;
4987let Inst{31-24} = 0b01011101;
4988let isPredicated = 1;
4989let isCall = 1;
4990let prefersSlot3 = 1;
4991let cofRelax1 = 1;
4992let cofRelax2 = 1;
4993let cofMax1 = 1;
4994let Uses = [R29];
4995let Defs = [PC, R31];
4996let BaseOpcode = "J2_call";
4997let hasSideEffects = 1;
4998let isTaken = Inst{12};
4999let isExtendable = 1;
5000let opExtendable = 1;
5001let isExtentSigned = 1;
5002let opExtentBits = 17;
5003let opExtentAlign = 2;
5004}
5005def J2_endloop0 : HInst<
5006(outs),
5007(ins),
5008"endloop0",
5009tc_23708a21, TypeJ> {
5010let Uses = [LC0, SA0];
5011let Defs = [LC0, P3, PC, USR];
5012let isBranch = 1;
5013let isTerminator = 1;
5014let isPseudo = 1;
5015}
5016def J2_endloop01 : HInst<
5017(outs),
5018(ins),
5019"endloop01",
5020tc_23708a21, TypeJ> {
5021let Uses = [LC0, LC1, SA0, SA1];
5022let Defs = [LC0, LC1, P3, PC, USR];
5023let isPseudo = 1;
5024}
5025def J2_endloop1 : HInst<
5026(outs),
5027(ins),
5028"endloop1",
5029tc_23708a21, TypeJ> {
5030let Uses = [LC1, SA1];
5031let Defs = [LC1, PC];
5032let isBranch = 1;
5033let isTerminator = 1;
5034let isPseudo = 1;
5035}
5036def J2_jump : HInst<
5037(outs),
5038(ins b30_2Imm:$Ii),
5039"jump $Ii",
5040tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel {
5041let Inst{0-0} = 0b0;
5042let Inst{31-25} = 0b0101100;
5043let isTerminator = 1;
5044let isBranch = 1;
5045let cofRelax2 = 1;
5046let cofMax1 = 1;
5047let Defs = [PC];
5048let BaseOpcode = "J2_jump";
5049let InputType = "imm";
5050let isBarrier = 1;
5051let isPredicable = 1;
5052let isExtendable = 1;
5053let opExtendable = 0;
5054let isExtentSigned = 1;
5055let opExtentBits = 24;
5056let opExtentAlign = 2;
5057}
5058def J2_jumpf : HInst<
5059(outs),
5060(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5061"if (!$Pu4) jump:nt $Ii",
5062tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5063let Inst{0-0} = 0b0;
5064let Inst{12-10} = 0b000;
5065let Inst{21-21} = 0b1;
5066let Inst{31-24} = 0b01011100;
5067let isPredicated = 1;
5068let isPredicatedFalse = 1;
5069let isTerminator = 1;
5070let isBranch = 1;
5071let cofRelax1 = 1;
5072let cofRelax2 = 1;
5073let cofMax1 = 1;
5074let Defs = [PC];
5075let BaseOpcode = "J2_jump";
5076let InputType = "imm";
5077let isTaken = Inst{12};
5078let isExtendable = 1;
5079let opExtendable = 1;
5080let isExtentSigned = 1;
5081let opExtentBits = 17;
5082let opExtentAlign = 2;
5083}
5084def J2_jumpf_nopred_map : HInst<
5085(outs),
5086(ins PredRegs:$Pu4, b15_2Imm:$Ii),
5087"if (!$Pu4) jump $Ii",
5088tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5089let isPseudo = 1;
5090let isCodeGenOnly = 1;
5091}
5092def J2_jumpfnew : HInst<
5093(outs),
5094(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5095"if (!$Pu4.new) jump:nt $Ii",
5096tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5097let Inst{0-0} = 0b0;
5098let Inst{12-10} = 0b010;
5099let Inst{21-21} = 0b1;
5100let Inst{31-24} = 0b01011100;
5101let isPredicated = 1;
5102let isPredicatedFalse = 1;
5103let isTerminator = 1;
5104let isBranch = 1;
5105let isPredicatedNew = 1;
5106let cofRelax1 = 1;
5107let cofRelax2 = 1;
5108let cofMax1 = 1;
5109let Defs = [PC];
5110let BaseOpcode = "J2_jump";
5111let InputType = "imm";
5112let isTaken = Inst{12};
5113let isExtendable = 1;
5114let opExtendable = 1;
5115let isExtentSigned = 1;
5116let opExtentBits = 17;
5117let opExtentAlign = 2;
5118}
5119def J2_jumpfnewpt : HInst<
5120(outs),
5121(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5122"if (!$Pu4.new) jump:t $Ii",
5123tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5124let Inst{0-0} = 0b0;
5125let Inst{12-10} = 0b110;
5126let Inst{21-21} = 0b1;
5127let Inst{31-24} = 0b01011100;
5128let isPredicated = 1;
5129let isPredicatedFalse = 1;
5130let isTerminator = 1;
5131let isBranch = 1;
5132let isPredicatedNew = 1;
5133let cofRelax1 = 1;
5134let cofRelax2 = 1;
5135let cofMax1 = 1;
5136let Defs = [PC];
5137let BaseOpcode = "J2_jump";
5138let InputType = "imm";
5139let isTaken = Inst{12};
5140let isExtendable = 1;
5141let opExtendable = 1;
5142let isExtentSigned = 1;
5143let opExtentBits = 17;
5144let opExtentAlign = 2;
5145}
5146def J2_jumpfpt : HInst<
5147(outs),
5148(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5149"if (!$Pu4) jump:t $Ii",
5150tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5151let Inst{0-0} = 0b0;
5152let Inst{12-10} = 0b100;
5153let Inst{21-21} = 0b1;
5154let Inst{31-24} = 0b01011100;
5155let isPredicated = 1;
5156let isPredicatedFalse = 1;
5157let isTerminator = 1;
5158let isBranch = 1;
5159let cofRelax1 = 1;
5160let cofRelax2 = 1;
5161let cofMax1 = 1;
5162let Defs = [PC];
5163let BaseOpcode = "J2_jump";
5164let InputType = "imm";
5165let isTaken = Inst{12};
5166let isExtendable = 1;
5167let opExtendable = 1;
5168let isExtentSigned = 1;
5169let opExtentBits = 17;
5170let opExtentAlign = 2;
5171}
5172def J2_jumpr : HInst<
5173(outs),
5174(ins IntRegs:$Rs32),
5175"jumpr $Rs32",
5176tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel {
5177let Inst{13-0} = 0b00000000000000;
5178let Inst{31-21} = 0b01010010100;
5179let isTerminator = 1;
5180let isIndirectBranch = 1;
5181let isBranch = 1;
5182let cofMax1 = 1;
5183let Defs = [PC];
5184let BaseOpcode = "J2_jumpr";
5185let InputType = "reg";
5186let isBarrier = 1;
5187let isPredicable = 1;
5188}
5189def J2_jumprf : HInst<
5190(outs),
5191(ins PredRegs:$Pu4, IntRegs:$Rs32),
5192"if (!$Pu4) jumpr:nt $Rs32",
5193tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5194let Inst{7-0} = 0b00000000;
5195let Inst{13-10} = 0b0000;
5196let Inst{31-21} = 0b01010011011;
5197let isPredicated = 1;
5198let isPredicatedFalse = 1;
5199let isTerminator = 1;
5200let isIndirectBranch = 1;
5201let isBranch = 1;
5202let cofMax1 = 1;
5203let Defs = [PC];
5204let BaseOpcode = "J2_jumpr";
5205let InputType = "reg";
5206let isTaken = Inst{12};
5207}
5208def J2_jumprf_nopred_map : HInst<
5209(outs),
5210(ins PredRegs:$Pu4, IntRegs:$Rs32),
5211"if (!$Pu4) jumpr $Rs32",
5212tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5213let isPseudo = 1;
5214let isCodeGenOnly = 1;
5215}
5216def J2_jumprfnew : HInst<
5217(outs),
5218(ins PredRegs:$Pu4, IntRegs:$Rs32),
5219"if (!$Pu4.new) jumpr:nt $Rs32",
5220tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5221let Inst{7-0} = 0b00000000;
5222let Inst{13-10} = 0b0010;
5223let Inst{31-21} = 0b01010011011;
5224let isPredicated = 1;
5225let isPredicatedFalse = 1;
5226let isTerminator = 1;
5227let isIndirectBranch = 1;
5228let isBranch = 1;
5229let isPredicatedNew = 1;
5230let cofMax1 = 1;
5231let Defs = [PC];
5232let BaseOpcode = "J2_jumpr";
5233let InputType = "reg";
5234let isTaken = Inst{12};
5235}
5236def J2_jumprfnewpt : HInst<
5237(outs),
5238(ins PredRegs:$Pu4, IntRegs:$Rs32),
5239"if (!$Pu4.new) jumpr:t $Rs32",
5240tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5241let Inst{7-0} = 0b00000000;
5242let Inst{13-10} = 0b0110;
5243let Inst{31-21} = 0b01010011011;
5244let isPredicated = 1;
5245let isPredicatedFalse = 1;
5246let isTerminator = 1;
5247let isIndirectBranch = 1;
5248let isBranch = 1;
5249let isPredicatedNew = 1;
5250let cofMax1 = 1;
5251let Defs = [PC];
5252let BaseOpcode = "J2_jumpr";
5253let InputType = "reg";
5254let isTaken = Inst{12};
5255}
5256def J2_jumprfpt : HInst<
5257(outs),
5258(ins PredRegs:$Pu4, IntRegs:$Rs32),
5259"if (!$Pu4) jumpr:t $Rs32",
5260tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5261let Inst{7-0} = 0b00000000;
5262let Inst{13-10} = 0b0100;
5263let Inst{31-21} = 0b01010011011;
5264let isPredicated = 1;
5265let isPredicatedFalse = 1;
5266let isTerminator = 1;
5267let isIndirectBranch = 1;
5268let isBranch = 1;
5269let cofMax1 = 1;
5270let Defs = [PC];
5271let BaseOpcode = "J2_jumpr";
5272let InputType = "reg";
5273let isTaken = Inst{12};
5274}
5275def J2_jumprgtez : HInst<
5276(outs),
5277(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5278"if ($Rs32>=#0) jump:nt $Ii",
5279tc_57a55b54, TypeCR>, Enc_0fa531 {
5280let Inst{0-0} = 0b0;
5281let Inst{12-12} = 0b0;
5282let Inst{31-22} = 0b0110000101;
5283let isPredicated = 1;
5284let isTerminator = 1;
5285let isBranch = 1;
5286let isPredicatedNew = 1;
5287let cofRelax1 = 1;
5288let cofRelax2 = 1;
5289let cofMax1 = 1;
5290let Defs = [PC];
5291let isTaken = Inst{12};
5292}
5293def J2_jumprgtezpt : HInst<
5294(outs),
5295(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5296"if ($Rs32>=#0) jump:t $Ii",
5297tc_57a55b54, TypeCR>, Enc_0fa531 {
5298let Inst{0-0} = 0b0;
5299let Inst{12-12} = 0b1;
5300let Inst{31-22} = 0b0110000101;
5301let isPredicated = 1;
5302let isTerminator = 1;
5303let isBranch = 1;
5304let isPredicatedNew = 1;
5305let cofRelax1 = 1;
5306let cofRelax2 = 1;
5307let cofMax1 = 1;
5308let Defs = [PC];
5309let isTaken = Inst{12};
5310}
5311def J2_jumprltez : HInst<
5312(outs),
5313(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5314"if ($Rs32<=#0) jump:nt $Ii",
5315tc_57a55b54, TypeCR>, Enc_0fa531 {
5316let Inst{0-0} = 0b0;
5317let Inst{12-12} = 0b0;
5318let Inst{31-22} = 0b0110000111;
5319let isPredicated = 1;
5320let isTerminator = 1;
5321let isBranch = 1;
5322let isPredicatedNew = 1;
5323let cofRelax1 = 1;
5324let cofRelax2 = 1;
5325let cofMax1 = 1;
5326let Defs = [PC];
5327let isTaken = Inst{12};
5328}
5329def J2_jumprltezpt : HInst<
5330(outs),
5331(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5332"if ($Rs32<=#0) jump:t $Ii",
5333tc_57a55b54, TypeCR>, Enc_0fa531 {
5334let Inst{0-0} = 0b0;
5335let Inst{12-12} = 0b1;
5336let Inst{31-22} = 0b0110000111;
5337let isPredicated = 1;
5338let isTerminator = 1;
5339let isBranch = 1;
5340let isPredicatedNew = 1;
5341let cofRelax1 = 1;
5342let cofRelax2 = 1;
5343let cofMax1 = 1;
5344let Defs = [PC];
5345let isTaken = Inst{12};
5346}
5347def J2_jumprnz : HInst<
5348(outs),
5349(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5350"if ($Rs32==#0) jump:nt $Ii",
5351tc_57a55b54, TypeCR>, Enc_0fa531 {
5352let Inst{0-0} = 0b0;
5353let Inst{12-12} = 0b0;
5354let Inst{31-22} = 0b0110000110;
5355let isPredicated = 1;
5356let isTerminator = 1;
5357let isBranch = 1;
5358let isPredicatedNew = 1;
5359let cofRelax1 = 1;
5360let cofRelax2 = 1;
5361let cofMax1 = 1;
5362let Defs = [PC];
5363let isTaken = Inst{12};
5364}
5365def J2_jumprnzpt : HInst<
5366(outs),
5367(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5368"if ($Rs32==#0) jump:t $Ii",
5369tc_57a55b54, TypeCR>, Enc_0fa531 {
5370let Inst{0-0} = 0b0;
5371let Inst{12-12} = 0b1;
5372let Inst{31-22} = 0b0110000110;
5373let isPredicated = 1;
5374let isTerminator = 1;
5375let isBranch = 1;
5376let isPredicatedNew = 1;
5377let cofRelax1 = 1;
5378let cofRelax2 = 1;
5379let cofMax1 = 1;
5380let Defs = [PC];
5381let isTaken = Inst{12};
5382}
5383def J2_jumprt : HInst<
5384(outs),
5385(ins PredRegs:$Pu4, IntRegs:$Rs32),
5386"if ($Pu4) jumpr:nt $Rs32",
5387tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5388let Inst{7-0} = 0b00000000;
5389let Inst{13-10} = 0b0000;
5390let Inst{31-21} = 0b01010011010;
5391let isPredicated = 1;
5392let isTerminator = 1;
5393let isIndirectBranch = 1;
5394let isBranch = 1;
5395let cofMax1 = 1;
5396let Defs = [PC];
5397let BaseOpcode = "J2_jumpr";
5398let InputType = "reg";
5399let isTaken = Inst{12};
5400}
5401def J2_jumprt_nopred_map : HInst<
5402(outs),
5403(ins PredRegs:$Pu4, IntRegs:$Rs32),
5404"if ($Pu4) jumpr $Rs32",
5405tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5406let isPseudo = 1;
5407let isCodeGenOnly = 1;
5408}
5409def J2_jumprtnew : HInst<
5410(outs),
5411(ins PredRegs:$Pu4, IntRegs:$Rs32),
5412"if ($Pu4.new) jumpr:nt $Rs32",
5413tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5414let Inst{7-0} = 0b00000000;
5415let Inst{13-10} = 0b0010;
5416let Inst{31-21} = 0b01010011010;
5417let isPredicated = 1;
5418let isTerminator = 1;
5419let isIndirectBranch = 1;
5420let isBranch = 1;
5421let isPredicatedNew = 1;
5422let cofMax1 = 1;
5423let Defs = [PC];
5424let BaseOpcode = "J2_jumpr";
5425let InputType = "reg";
5426let isTaken = Inst{12};
5427}
5428def J2_jumprtnewpt : HInst<
5429(outs),
5430(ins PredRegs:$Pu4, IntRegs:$Rs32),
5431"if ($Pu4.new) jumpr:t $Rs32",
5432tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5433let Inst{7-0} = 0b00000000;
5434let Inst{13-10} = 0b0110;
5435let Inst{31-21} = 0b01010011010;
5436let isPredicated = 1;
5437let isTerminator = 1;
5438let isIndirectBranch = 1;
5439let isBranch = 1;
5440let isPredicatedNew = 1;
5441let cofMax1 = 1;
5442let Defs = [PC];
5443let BaseOpcode = "J2_jumpr";
5444let InputType = "reg";
5445let isTaken = Inst{12};
5446}
5447def J2_jumprtpt : HInst<
5448(outs),
5449(ins PredRegs:$Pu4, IntRegs:$Rs32),
5450"if ($Pu4) jumpr:t $Rs32",
5451tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5452let Inst{7-0} = 0b00000000;
5453let Inst{13-10} = 0b0100;
5454let Inst{31-21} = 0b01010011010;
5455let isPredicated = 1;
5456let isTerminator = 1;
5457let isIndirectBranch = 1;
5458let isBranch = 1;
5459let cofMax1 = 1;
5460let Defs = [PC];
5461let BaseOpcode = "J2_jumpr";
5462let InputType = "reg";
5463let isTaken = Inst{12};
5464}
5465def J2_jumprz : HInst<
5466(outs),
5467(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5468"if ($Rs32!=#0) jump:nt $Ii",
5469tc_57a55b54, TypeCR>, Enc_0fa531 {
5470let Inst{0-0} = 0b0;
5471let Inst{12-12} = 0b0;
5472let Inst{31-22} = 0b0110000100;
5473let isPredicated = 1;
5474let isTerminator = 1;
5475let isBranch = 1;
5476let isPredicatedNew = 1;
5477let cofRelax1 = 1;
5478let cofRelax2 = 1;
5479let cofMax1 = 1;
5480let Defs = [PC];
5481let isTaken = Inst{12};
5482}
5483def J2_jumprzpt : HInst<
5484(outs),
5485(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5486"if ($Rs32!=#0) jump:t $Ii",
5487tc_57a55b54, TypeCR>, Enc_0fa531 {
5488let Inst{0-0} = 0b0;
5489let Inst{12-12} = 0b1;
5490let Inst{31-22} = 0b0110000100;
5491let isPredicated = 1;
5492let isTerminator = 1;
5493let isBranch = 1;
5494let isPredicatedNew = 1;
5495let cofRelax1 = 1;
5496let cofRelax2 = 1;
5497let cofMax1 = 1;
5498let Defs = [PC];
5499let isTaken = Inst{12};
5500}
5501def J2_jumpt : HInst<
5502(outs),
5503(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5504"if ($Pu4) jump:nt $Ii",
5505tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5506let Inst{0-0} = 0b0;
5507let Inst{12-10} = 0b000;
5508let Inst{21-21} = 0b0;
5509let Inst{31-24} = 0b01011100;
5510let isPredicated = 1;
5511let isTerminator = 1;
5512let isBranch = 1;
5513let cofRelax1 = 1;
5514let cofRelax2 = 1;
5515let cofMax1 = 1;
5516let Defs = [PC];
5517let BaseOpcode = "J2_jump";
5518let InputType = "imm";
5519let isTaken = Inst{12};
5520let isExtendable = 1;
5521let opExtendable = 1;
5522let isExtentSigned = 1;
5523let opExtentBits = 17;
5524let opExtentAlign = 2;
5525}
5526def J2_jumpt_nopred_map : HInst<
5527(outs),
5528(ins PredRegs:$Pu4, b15_2Imm:$Ii),
5529"if ($Pu4) jump $Ii",
5530tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5531let isPseudo = 1;
5532let isCodeGenOnly = 1;
5533}
5534def J2_jumptnew : HInst<
5535(outs),
5536(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5537"if ($Pu4.new) jump:nt $Ii",
5538tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5539let Inst{0-0} = 0b0;
5540let Inst{12-10} = 0b010;
5541let Inst{21-21} = 0b0;
5542let Inst{31-24} = 0b01011100;
5543let isPredicated = 1;
5544let isTerminator = 1;
5545let isBranch = 1;
5546let isPredicatedNew = 1;
5547let cofRelax1 = 1;
5548let cofRelax2 = 1;
5549let cofMax1 = 1;
5550let Defs = [PC];
5551let BaseOpcode = "J2_jump";
5552let InputType = "imm";
5553let isTaken = Inst{12};
5554let isExtendable = 1;
5555let opExtendable = 1;
5556let isExtentSigned = 1;
5557let opExtentBits = 17;
5558let opExtentAlign = 2;
5559}
5560def J2_jumptnewpt : HInst<
5561(outs),
5562(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5563"if ($Pu4.new) jump:t $Ii",
5564tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5565let Inst{0-0} = 0b0;
5566let Inst{12-10} = 0b110;
5567let Inst{21-21} = 0b0;
5568let Inst{31-24} = 0b01011100;
5569let isPredicated = 1;
5570let isTerminator = 1;
5571let isBranch = 1;
5572let isPredicatedNew = 1;
5573let cofRelax1 = 1;
5574let cofRelax2 = 1;
5575let cofMax1 = 1;
5576let Defs = [PC];
5577let BaseOpcode = "J2_jump";
5578let InputType = "imm";
5579let isTaken = Inst{12};
5580let isExtendable = 1;
5581let opExtendable = 1;
5582let isExtentSigned = 1;
5583let opExtentBits = 17;
5584let opExtentAlign = 2;
5585}
5586def J2_jumptpt : HInst<
5587(outs),
5588(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5589"if ($Pu4) jump:t $Ii",
5590tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5591let Inst{0-0} = 0b0;
5592let Inst{12-10} = 0b100;
5593let Inst{21-21} = 0b0;
5594let Inst{31-24} = 0b01011100;
5595let isPredicated = 1;
5596let isTerminator = 1;
5597let isBranch = 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_loop0i : HInst<
5612(outs),
5613(ins b30_2Imm:$Ii, u10_0Imm:$II),
5614"loop0($Ii,#$II)",
5615tc_1248597c, TypeCR>, Enc_4dc228 {
5616let Inst{2-2} = 0b0;
5617let Inst{13-13} = 0b0;
5618let Inst{31-21} = 0b01101001000;
5619let cofRelax1 = 1;
5620let cofRelax2 = 1;
5621let Defs = [LC0, SA0, USR];
5622let isExtendable = 1;
5623let opExtendable = 0;
5624let isExtentSigned = 1;
5625let opExtentBits = 9;
5626let opExtentAlign = 2;
5627}
5628def J2_loop0r : HInst<
5629(outs),
5630(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5631"loop0($Ii,$Rs32)",
5632tc_9406230a, TypeCR>, Enc_864a5a {
5633let Inst{2-0} = 0b000;
5634let Inst{7-5} = 0b000;
5635let Inst{13-13} = 0b0;
5636let Inst{31-21} = 0b01100000000;
5637let cofRelax1 = 1;
5638let cofRelax2 = 1;
5639let Defs = [LC0, SA0, USR];
5640let isExtendable = 1;
5641let opExtendable = 0;
5642let isExtentSigned = 1;
5643let opExtentBits = 9;
5644let opExtentAlign = 2;
5645}
5646def J2_loop1i : HInst<
5647(outs),
5648(ins b30_2Imm:$Ii, u10_0Imm:$II),
5649"loop1($Ii,#$II)",
5650tc_1248597c, TypeCR>, Enc_4dc228 {
5651let Inst{2-2} = 0b0;
5652let Inst{13-13} = 0b0;
5653let Inst{31-21} = 0b01101001001;
5654let cofRelax1 = 1;
5655let cofRelax2 = 1;
5656let Defs = [LC1, SA1];
5657let isExtendable = 1;
5658let opExtendable = 0;
5659let isExtentSigned = 1;
5660let opExtentBits = 9;
5661let opExtentAlign = 2;
5662}
5663def J2_loop1r : HInst<
5664(outs),
5665(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5666"loop1($Ii,$Rs32)",
5667tc_9406230a, TypeCR>, Enc_864a5a {
5668let Inst{2-0} = 0b000;
5669let Inst{7-5} = 0b000;
5670let Inst{13-13} = 0b0;
5671let Inst{31-21} = 0b01100000001;
5672let cofRelax1 = 1;
5673let cofRelax2 = 1;
5674let Defs = [LC1, SA1];
5675let isExtendable = 1;
5676let opExtendable = 0;
5677let isExtentSigned = 1;
5678let opExtentBits = 9;
5679let opExtentAlign = 2;
5680}
5681def J2_pause : HInst<
5682(outs),
5683(ins u8_0Imm:$Ii),
5684"pause(#$Ii)",
5685tc_d57d649c, TypeJ>, Enc_a51a9a {
5686let Inst{1-0} = 0b00;
5687let Inst{7-5} = 0b000;
5688let Inst{13-13} = 0b0;
5689let Inst{31-16} = 0b0101010001000000;
5690let isSolo = 1;
5691}
5692def J2_ploop1si : HInst<
5693(outs),
5694(ins b30_2Imm:$Ii, u10_0Imm:$II),
5695"p3 = sp1loop0($Ii,#$II)",
5696tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5697let Inst{2-2} = 0b0;
5698let Inst{13-13} = 0b0;
5699let Inst{31-21} = 0b01101001101;
5700let isPredicateLate = 1;
5701let cofRelax1 = 1;
5702let cofRelax2 = 1;
5703let Defs = [LC0, P3, SA0, USR];
5704let isExtendable = 1;
5705let opExtendable = 0;
5706let isExtentSigned = 1;
5707let opExtentBits = 9;
5708let opExtentAlign = 2;
5709}
5710def J2_ploop1sr : HInst<
5711(outs),
5712(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5713"p3 = sp1loop0($Ii,$Rs32)",
5714tc_6d861a95, TypeCR>, Enc_864a5a {
5715let Inst{2-0} = 0b000;
5716let Inst{7-5} = 0b000;
5717let Inst{13-13} = 0b0;
5718let Inst{31-21} = 0b01100000101;
5719let isPredicateLate = 1;
5720let cofRelax1 = 1;
5721let cofRelax2 = 1;
5722let Defs = [LC0, P3, SA0, USR];
5723let isExtendable = 1;
5724let opExtendable = 0;
5725let isExtentSigned = 1;
5726let opExtentBits = 9;
5727let opExtentAlign = 2;
5728}
5729def J2_ploop2si : HInst<
5730(outs),
5731(ins b30_2Imm:$Ii, u10_0Imm:$II),
5732"p3 = sp2loop0($Ii,#$II)",
5733tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5734let Inst{2-2} = 0b0;
5735let Inst{13-13} = 0b0;
5736let Inst{31-21} = 0b01101001110;
5737let isPredicateLate = 1;
5738let cofRelax1 = 1;
5739let cofRelax2 = 1;
5740let Defs = [LC0, P3, SA0, USR];
5741let isExtendable = 1;
5742let opExtendable = 0;
5743let isExtentSigned = 1;
5744let opExtentBits = 9;
5745let opExtentAlign = 2;
5746}
5747def J2_ploop2sr : HInst<
5748(outs),
5749(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5750"p3 = sp2loop0($Ii,$Rs32)",
5751tc_6d861a95, TypeCR>, Enc_864a5a {
5752let Inst{2-0} = 0b000;
5753let Inst{7-5} = 0b000;
5754let Inst{13-13} = 0b0;
5755let Inst{31-21} = 0b01100000110;
5756let isPredicateLate = 1;
5757let cofRelax1 = 1;
5758let cofRelax2 = 1;
5759let Defs = [LC0, P3, SA0, USR];
5760let isExtendable = 1;
5761let opExtendable = 0;
5762let isExtentSigned = 1;
5763let opExtentBits = 9;
5764let opExtentAlign = 2;
5765}
5766def J2_ploop3si : HInst<
5767(outs),
5768(ins b30_2Imm:$Ii, u10_0Imm:$II),
5769"p3 = sp3loop0($Ii,#$II)",
5770tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5771let Inst{2-2} = 0b0;
5772let Inst{13-13} = 0b0;
5773let Inst{31-21} = 0b01101001111;
5774let isPredicateLate = 1;
5775let cofRelax1 = 1;
5776let cofRelax2 = 1;
5777let Defs = [LC0, P3, SA0, USR];
5778let isExtendable = 1;
5779let opExtendable = 0;
5780let isExtentSigned = 1;
5781let opExtentBits = 9;
5782let opExtentAlign = 2;
5783}
5784def J2_ploop3sr : HInst<
5785(outs),
5786(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5787"p3 = sp3loop0($Ii,$Rs32)",
5788tc_6d861a95, TypeCR>, Enc_864a5a {
5789let Inst{2-0} = 0b000;
5790let Inst{7-5} = 0b000;
5791let Inst{13-13} = 0b0;
5792let Inst{31-21} = 0b01100000111;
5793let isPredicateLate = 1;
5794let cofRelax1 = 1;
5795let cofRelax2 = 1;
5796let Defs = [LC0, P3, SA0, USR];
5797let isExtendable = 1;
5798let opExtendable = 0;
5799let isExtentSigned = 1;
5800let opExtentBits = 9;
5801let opExtentAlign = 2;
5802}
5803def J2_trap0 : HInst<
5804(outs),
5805(ins u8_0Imm:$Ii),
5806"trap0(#$Ii)",
5807tc_45f9d1be, TypeJ>, Enc_a51a9a {
5808let Inst{1-0} = 0b00;
5809let Inst{7-5} = 0b000;
5810let Inst{13-13} = 0b0;
5811let Inst{31-16} = 0b0101010000000000;
5812let isSolo = 1;
5813let hasSideEffects = 1;
5814}
5815def J2_trap1 : HInst<
5816(outs IntRegs:$Rx32),
5817(ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5818"trap1($Rx32,#$Ii)",
5819tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> {
5820let Inst{1-0} = 0b00;
5821let Inst{7-5} = 0b000;
5822let Inst{13-13} = 0b0;
5823let Inst{31-21} = 0b01010100100;
5824let hasNewValue = 1;
5825let opNewValue = 0;
5826let isSolo = 1;
5827let Uses = [CCR, GOSP];
5828let Defs = [CCR, GOSP, PC];
5829let hasSideEffects = 1;
5830let Constraints = "$Rx32 = $Rx32in";
5831}
5832def J2_trap1_noregmap : HInst<
5833(outs),
5834(ins u8_0Imm:$Ii),
5835"trap1(#$Ii)",
5836tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> {
5837let hasSideEffects = 1;
5838let isPseudo = 1;
5839let isCodeGenOnly = 1;
5840}
5841def J4_cmpeq_f_jumpnv_nt : HInst<
5842(outs),
5843(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5844"if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5845tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5846let Inst{0-0} = 0b0;
5847let Inst{13-13} = 0b0;
5848let Inst{19-19} = 0b0;
5849let Inst{31-22} = 0b0010000001;
5850let isPredicated = 1;
5851let isPredicatedFalse = 1;
5852let isTerminator = 1;
5853let isBranch = 1;
5854let isNewValue = 1;
5855let cofMax1 = 1;
5856let isRestrictNoSlot1Store = 1;
5857let Defs = [PC];
5858let BaseOpcode = "J4_cmpeqr";
5859let isTaken = Inst{13};
5860let isExtendable = 1;
5861let opExtendable = 2;
5862let isExtentSigned = 1;
5863let opExtentBits = 11;
5864let opExtentAlign = 2;
5865let opNewValue = 0;
5866}
5867def J4_cmpeq_f_jumpnv_t : HInst<
5868(outs),
5869(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5870"if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5871tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5872let Inst{0-0} = 0b0;
5873let Inst{13-13} = 0b1;
5874let Inst{19-19} = 0b0;
5875let Inst{31-22} = 0b0010000001;
5876let isPredicated = 1;
5877let isPredicatedFalse = 1;
5878let isTerminator = 1;
5879let isBranch = 1;
5880let isNewValue = 1;
5881let cofMax1 = 1;
5882let isRestrictNoSlot1Store = 1;
5883let Defs = [PC];
5884let BaseOpcode = "J4_cmpeqr";
5885let isTaken = Inst{13};
5886let isExtendable = 1;
5887let opExtendable = 2;
5888let isExtentSigned = 1;
5889let opExtentBits = 11;
5890let opExtentAlign = 2;
5891let opNewValue = 0;
5892}
5893def J4_cmpeq_fp0_jump_nt : HInst<
5894(outs),
5895(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5896"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5897tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5898let Inst{0-0} = 0b0;
5899let Inst{13-12} = 0b00;
5900let Inst{31-22} = 0b0001010001;
5901let isPredicated = 1;
5902let isPredicatedFalse = 1;
5903let isTerminator = 1;
5904let isBranch = 1;
5905let isPredicatedNew = 1;
5906let cofRelax1 = 1;
5907let cofRelax2 = 1;
5908let cofMax1 = 1;
5909let Uses = [P0];
5910let Defs = [P0, PC];
5911let BaseOpcode = "J4_cmpeqp0";
5912let isTaken = Inst{13};
5913let isExtendable = 1;
5914let opExtendable = 2;
5915let isExtentSigned = 1;
5916let opExtentBits = 11;
5917let opExtentAlign = 2;
5918}
5919def J4_cmpeq_fp0_jump_t : HInst<
5920(outs),
5921(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5922"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5923tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5924let Inst{0-0} = 0b0;
5925let Inst{13-12} = 0b10;
5926let Inst{31-22} = 0b0001010001;
5927let isPredicated = 1;
5928let isPredicatedFalse = 1;
5929let isTerminator = 1;
5930let isBranch = 1;
5931let isPredicatedNew = 1;
5932let cofRelax1 = 1;
5933let cofRelax2 = 1;
5934let cofMax1 = 1;
5935let Uses = [P0];
5936let Defs = [P0, PC];
5937let BaseOpcode = "J4_cmpeqp0";
5938let isTaken = Inst{13};
5939let isExtendable = 1;
5940let opExtendable = 2;
5941let isExtentSigned = 1;
5942let opExtentBits = 11;
5943let opExtentAlign = 2;
5944}
5945def J4_cmpeq_fp1_jump_nt : HInst<
5946(outs),
5947(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5948"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5949tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5950let Inst{0-0} = 0b0;
5951let Inst{13-12} = 0b01;
5952let Inst{31-22} = 0b0001010001;
5953let isPredicated = 1;
5954let isPredicatedFalse = 1;
5955let isTerminator = 1;
5956let isBranch = 1;
5957let isPredicatedNew = 1;
5958let cofRelax1 = 1;
5959let cofRelax2 = 1;
5960let cofMax1 = 1;
5961let Uses = [P1];
5962let Defs = [P1, PC];
5963let BaseOpcode = "J4_cmpeqp1";
5964let isTaken = Inst{13};
5965let isExtendable = 1;
5966let opExtendable = 2;
5967let isExtentSigned = 1;
5968let opExtentBits = 11;
5969let opExtentAlign = 2;
5970}
5971def J4_cmpeq_fp1_jump_t : HInst<
5972(outs),
5973(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5974"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
5975tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5976let Inst{0-0} = 0b0;
5977let Inst{13-12} = 0b11;
5978let Inst{31-22} = 0b0001010001;
5979let isPredicated = 1;
5980let isPredicatedFalse = 1;
5981let isTerminator = 1;
5982let isBranch = 1;
5983let isPredicatedNew = 1;
5984let cofRelax1 = 1;
5985let cofRelax2 = 1;
5986let cofMax1 = 1;
5987let Uses = [P1];
5988let Defs = [P1, PC];
5989let BaseOpcode = "J4_cmpeqp1";
5990let isTaken = Inst{13};
5991let isExtendable = 1;
5992let opExtendable = 2;
5993let isExtentSigned = 1;
5994let opExtentBits = 11;
5995let opExtentAlign = 2;
5996}
5997def J4_cmpeq_t_jumpnv_nt : HInst<
5998(outs),
5999(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6000"if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
6001tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6002let Inst{0-0} = 0b0;
6003let Inst{13-13} = 0b0;
6004let Inst{19-19} = 0b0;
6005let Inst{31-22} = 0b0010000000;
6006let isPredicated = 1;
6007let isTerminator = 1;
6008let isBranch = 1;
6009let isNewValue = 1;
6010let cofMax1 = 1;
6011let isRestrictNoSlot1Store = 1;
6012let Defs = [PC];
6013let BaseOpcode = "J4_cmpeqr";
6014let isTaken = Inst{13};
6015let isExtendable = 1;
6016let opExtendable = 2;
6017let isExtentSigned = 1;
6018let opExtentBits = 11;
6019let opExtentAlign = 2;
6020let opNewValue = 0;
6021}
6022def J4_cmpeq_t_jumpnv_t : HInst<
6023(outs),
6024(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6025"if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
6026tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6027let Inst{0-0} = 0b0;
6028let Inst{13-13} = 0b1;
6029let Inst{19-19} = 0b0;
6030let Inst{31-22} = 0b0010000000;
6031let isPredicated = 1;
6032let isTerminator = 1;
6033let isBranch = 1;
6034let isNewValue = 1;
6035let cofMax1 = 1;
6036let isRestrictNoSlot1Store = 1;
6037let Defs = [PC];
6038let BaseOpcode = "J4_cmpeqr";
6039let isTaken = Inst{13};
6040let isExtendable = 1;
6041let opExtendable = 2;
6042let isExtentSigned = 1;
6043let opExtentBits = 11;
6044let opExtentAlign = 2;
6045let opNewValue = 0;
6046}
6047def J4_cmpeq_tp0_jump_nt : HInst<
6048(outs),
6049(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6050"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6051tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6052let Inst{0-0} = 0b0;
6053let Inst{13-12} = 0b00;
6054let Inst{31-22} = 0b0001010000;
6055let isPredicated = 1;
6056let isTerminator = 1;
6057let isBranch = 1;
6058let isPredicatedNew = 1;
6059let cofRelax1 = 1;
6060let cofRelax2 = 1;
6061let cofMax1 = 1;
6062let Uses = [P0];
6063let Defs = [P0, PC];
6064let BaseOpcode = "J4_cmpeqp0";
6065let isTaken = Inst{13};
6066let isExtendable = 1;
6067let opExtendable = 2;
6068let isExtentSigned = 1;
6069let opExtentBits = 11;
6070let opExtentAlign = 2;
6071}
6072def J4_cmpeq_tp0_jump_t : HInst<
6073(outs),
6074(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6075"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6076tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6077let Inst{0-0} = 0b0;
6078let Inst{13-12} = 0b10;
6079let Inst{31-22} = 0b0001010000;
6080let isPredicated = 1;
6081let isTerminator = 1;
6082let isBranch = 1;
6083let isPredicatedNew = 1;
6084let cofRelax1 = 1;
6085let cofRelax2 = 1;
6086let cofMax1 = 1;
6087let Uses = [P0];
6088let Defs = [P0, PC];
6089let BaseOpcode = "J4_cmpeqp0";
6090let isTaken = Inst{13};
6091let isExtendable = 1;
6092let opExtendable = 2;
6093let isExtentSigned = 1;
6094let opExtentBits = 11;
6095let opExtentAlign = 2;
6096}
6097def J4_cmpeq_tp1_jump_nt : HInst<
6098(outs),
6099(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6100"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6101tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6102let Inst{0-0} = 0b0;
6103let Inst{13-12} = 0b01;
6104let Inst{31-22} = 0b0001010000;
6105let isPredicated = 1;
6106let isTerminator = 1;
6107let isBranch = 1;
6108let isPredicatedNew = 1;
6109let cofRelax1 = 1;
6110let cofRelax2 = 1;
6111let cofMax1 = 1;
6112let Uses = [P1];
6113let Defs = [P1, PC];
6114let BaseOpcode = "J4_cmpeqp1";
6115let isTaken = Inst{13};
6116let isExtendable = 1;
6117let opExtendable = 2;
6118let isExtentSigned = 1;
6119let opExtentBits = 11;
6120let opExtentAlign = 2;
6121}
6122def J4_cmpeq_tp1_jump_t : HInst<
6123(outs),
6124(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6125"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6126tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6127let Inst{0-0} = 0b0;
6128let Inst{13-12} = 0b11;
6129let Inst{31-22} = 0b0001010000;
6130let isPredicated = 1;
6131let isTerminator = 1;
6132let isBranch = 1;
6133let isPredicatedNew = 1;
6134let cofRelax1 = 1;
6135let cofRelax2 = 1;
6136let cofMax1 = 1;
6137let Uses = [P1];
6138let Defs = [P1, PC];
6139let BaseOpcode = "J4_cmpeqp1";
6140let isTaken = Inst{13};
6141let isExtendable = 1;
6142let opExtendable = 2;
6143let isExtentSigned = 1;
6144let opExtentBits = 11;
6145let opExtentAlign = 2;
6146}
6147def J4_cmpeqi_f_jumpnv_nt : HInst<
6148(outs),
6149(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6150"if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6151tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6152let Inst{0-0} = 0b0;
6153let Inst{13-13} = 0b0;
6154let Inst{19-19} = 0b0;
6155let Inst{31-22} = 0b0010010001;
6156let isPredicated = 1;
6157let isPredicatedFalse = 1;
6158let isTerminator = 1;
6159let isBranch = 1;
6160let isNewValue = 1;
6161let cofMax1 = 1;
6162let isRestrictNoSlot1Store = 1;
6163let Defs = [PC];
6164let BaseOpcode = "J4_cmpeqi";
6165let isTaken = Inst{13};
6166let isExtendable = 1;
6167let opExtendable = 2;
6168let isExtentSigned = 1;
6169let opExtentBits = 11;
6170let opExtentAlign = 2;
6171let opNewValue = 0;
6172}
6173def J4_cmpeqi_f_jumpnv_t : HInst<
6174(outs),
6175(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6176"if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6177tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6178let Inst{0-0} = 0b0;
6179let Inst{13-13} = 0b1;
6180let Inst{19-19} = 0b0;
6181let Inst{31-22} = 0b0010010001;
6182let isPredicated = 1;
6183let isPredicatedFalse = 1;
6184let isTerminator = 1;
6185let isBranch = 1;
6186let isNewValue = 1;
6187let cofMax1 = 1;
6188let isRestrictNoSlot1Store = 1;
6189let Defs = [PC];
6190let BaseOpcode = "J4_cmpeqi";
6191let isTaken = Inst{13};
6192let isExtendable = 1;
6193let opExtendable = 2;
6194let isExtentSigned = 1;
6195let opExtentBits = 11;
6196let opExtentAlign = 2;
6197let opNewValue = 0;
6198}
6199def J4_cmpeqi_fp0_jump_nt : HInst<
6200(outs),
6201(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6202"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6203tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6204let Inst{0-0} = 0b0;
6205let Inst{13-13} = 0b0;
6206let Inst{31-22} = 0b0001000001;
6207let isPredicated = 1;
6208let isPredicatedFalse = 1;
6209let isTerminator = 1;
6210let isBranch = 1;
6211let isPredicatedNew = 1;
6212let cofRelax1 = 1;
6213let cofRelax2 = 1;
6214let cofMax1 = 1;
6215let Uses = [P0];
6216let Defs = [P0, PC];
6217let BaseOpcode = "J4_cmpeqip0";
6218let isTaken = Inst{13};
6219let isExtendable = 1;
6220let opExtendable = 2;
6221let isExtentSigned = 1;
6222let opExtentBits = 11;
6223let opExtentAlign = 2;
6224}
6225def J4_cmpeqi_fp0_jump_t : HInst<
6226(outs),
6227(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6228"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
6229tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6230let Inst{0-0} = 0b0;
6231let Inst{13-13} = 0b1;
6232let Inst{31-22} = 0b0001000001;
6233let isPredicated = 1;
6234let isPredicatedFalse = 1;
6235let isTerminator = 1;
6236let isBranch = 1;
6237let isPredicatedNew = 1;
6238let cofRelax1 = 1;
6239let cofRelax2 = 1;
6240let cofMax1 = 1;
6241let Uses = [P0];
6242let Defs = [P0, PC];
6243let BaseOpcode = "J4_cmpeqip0";
6244let isTaken = Inst{13};
6245let isExtendable = 1;
6246let opExtendable = 2;
6247let isExtentSigned = 1;
6248let opExtentBits = 11;
6249let opExtentAlign = 2;
6250}
6251def J4_cmpeqi_fp1_jump_nt : HInst<
6252(outs),
6253(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6254"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6255tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6256let Inst{0-0} = 0b0;
6257let Inst{13-13} = 0b0;
6258let Inst{31-22} = 0b0001001001;
6259let isPredicated = 1;
6260let isPredicatedFalse = 1;
6261let isTerminator = 1;
6262let isBranch = 1;
6263let isPredicatedNew = 1;
6264let cofRelax1 = 1;
6265let cofRelax2 = 1;
6266let cofMax1 = 1;
6267let Uses = [P1];
6268let Defs = [P1, PC];
6269let BaseOpcode = "J4_cmpeqip1";
6270let isTaken = Inst{13};
6271let isExtendable = 1;
6272let opExtendable = 2;
6273let isExtentSigned = 1;
6274let opExtentBits = 11;
6275let opExtentAlign = 2;
6276}
6277def J4_cmpeqi_fp1_jump_t : HInst<
6278(outs),
6279(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6280"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
6281tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6282let Inst{0-0} = 0b0;
6283let Inst{13-13} = 0b1;
6284let Inst{31-22} = 0b0001001001;
6285let isPredicated = 1;
6286let isPredicatedFalse = 1;
6287let isTerminator = 1;
6288let isBranch = 1;
6289let isPredicatedNew = 1;
6290let cofRelax1 = 1;
6291let cofRelax2 = 1;
6292let cofMax1 = 1;
6293let Uses = [P1];
6294let Defs = [P1, PC];
6295let BaseOpcode = "J4_cmpeqip1";
6296let isTaken = Inst{13};
6297let isExtendable = 1;
6298let opExtendable = 2;
6299let isExtentSigned = 1;
6300let opExtentBits = 11;
6301let opExtentAlign = 2;
6302}
6303def J4_cmpeqi_t_jumpnv_nt : HInst<
6304(outs),
6305(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6306"if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6307tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6308let Inst{0-0} = 0b0;
6309let Inst{13-13} = 0b0;
6310let Inst{19-19} = 0b0;
6311let Inst{31-22} = 0b0010010000;
6312let isPredicated = 1;
6313let isTerminator = 1;
6314let isBranch = 1;
6315let isNewValue = 1;
6316let cofMax1 = 1;
6317let isRestrictNoSlot1Store = 1;
6318let Defs = [PC];
6319let BaseOpcode = "J4_cmpeqi";
6320let isTaken = Inst{13};
6321let isExtendable = 1;
6322let opExtendable = 2;
6323let isExtentSigned = 1;
6324let opExtentBits = 11;
6325let opExtentAlign = 2;
6326let opNewValue = 0;
6327}
6328def J4_cmpeqi_t_jumpnv_t : HInst<
6329(outs),
6330(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6331"if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6332tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6333let Inst{0-0} = 0b0;
6334let Inst{13-13} = 0b1;
6335let Inst{19-19} = 0b0;
6336let Inst{31-22} = 0b0010010000;
6337let isPredicated = 1;
6338let isTerminator = 1;
6339let isBranch = 1;
6340let isNewValue = 1;
6341let cofMax1 = 1;
6342let isRestrictNoSlot1Store = 1;
6343let Defs = [PC];
6344let BaseOpcode = "J4_cmpeqi";
6345let isTaken = Inst{13};
6346let isExtendable = 1;
6347let opExtendable = 2;
6348let isExtentSigned = 1;
6349let opExtentBits = 11;
6350let opExtentAlign = 2;
6351let opNewValue = 0;
6352}
6353def J4_cmpeqi_tp0_jump_nt : HInst<
6354(outs),
6355(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6356"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6357tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6358let Inst{0-0} = 0b0;
6359let Inst{13-13} = 0b0;
6360let Inst{31-22} = 0b0001000000;
6361let isPredicated = 1;
6362let isTerminator = 1;
6363let isBranch = 1;
6364let isPredicatedNew = 1;
6365let cofRelax1 = 1;
6366let cofRelax2 = 1;
6367let cofMax1 = 1;
6368let Uses = [P0];
6369let Defs = [P0, PC];
6370let BaseOpcode = "J4_cmpeqip0";
6371let isTaken = Inst{13};
6372let isExtendable = 1;
6373let opExtendable = 2;
6374let isExtentSigned = 1;
6375let opExtentBits = 11;
6376let opExtentAlign = 2;
6377}
6378def J4_cmpeqi_tp0_jump_t : HInst<
6379(outs),
6380(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6381"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6382tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6383let Inst{0-0} = 0b0;
6384let Inst{13-13} = 0b1;
6385let Inst{31-22} = 0b0001000000;
6386let isPredicated = 1;
6387let isTerminator = 1;
6388let isBranch = 1;
6389let isPredicatedNew = 1;
6390let cofRelax1 = 1;
6391let cofRelax2 = 1;
6392let cofMax1 = 1;
6393let Uses = [P0];
6394let Defs = [P0, PC];
6395let BaseOpcode = "J4_cmpeqip0";
6396let isTaken = Inst{13};
6397let isExtendable = 1;
6398let opExtendable = 2;
6399let isExtentSigned = 1;
6400let opExtentBits = 11;
6401let opExtentAlign = 2;
6402}
6403def J4_cmpeqi_tp1_jump_nt : HInst<
6404(outs),
6405(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6406"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6407tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6408let Inst{0-0} = 0b0;
6409let Inst{13-13} = 0b0;
6410let Inst{31-22} = 0b0001001000;
6411let isPredicated = 1;
6412let isTerminator = 1;
6413let isBranch = 1;
6414let isPredicatedNew = 1;
6415let cofRelax1 = 1;
6416let cofRelax2 = 1;
6417let cofMax1 = 1;
6418let Uses = [P1];
6419let Defs = [P1, PC];
6420let BaseOpcode = "J4_cmpeqip1";
6421let isTaken = Inst{13};
6422let isExtendable = 1;
6423let opExtendable = 2;
6424let isExtentSigned = 1;
6425let opExtentBits = 11;
6426let opExtentAlign = 2;
6427}
6428def J4_cmpeqi_tp1_jump_t : HInst<
6429(outs),
6430(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6431"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6432tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6433let Inst{0-0} = 0b0;
6434let Inst{13-13} = 0b1;
6435let Inst{31-22} = 0b0001001000;
6436let isPredicated = 1;
6437let isTerminator = 1;
6438let isBranch = 1;
6439let isPredicatedNew = 1;
6440let cofRelax1 = 1;
6441let cofRelax2 = 1;
6442let cofMax1 = 1;
6443let Uses = [P1];
6444let Defs = [P1, PC];
6445let BaseOpcode = "J4_cmpeqip1";
6446let isTaken = Inst{13};
6447let isExtendable = 1;
6448let opExtendable = 2;
6449let isExtentSigned = 1;
6450let opExtentBits = 11;
6451let opExtentAlign = 2;
6452}
6453def J4_cmpeqn1_f_jumpnv_nt : HInst<
6454(outs),
6455(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6456"if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6457tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel {
6458let Inst{0-0} = 0b0;
6459let Inst{13-8} = 0b000000;
6460let Inst{19-19} = 0b0;
6461let Inst{31-22} = 0b0010011001;
6462let isPredicated = 1;
6463let isPredicatedFalse = 1;
6464let isTerminator = 1;
6465let isBranch = 1;
6466let isNewValue = 1;
6467let cofMax1 = 1;
6468let isRestrictNoSlot1Store = 1;
6469let Defs = [PC];
6470let BaseOpcode = "J4_cmpeqn1r";
6471let isTaken = Inst{13};
6472let isExtendable = 1;
6473let opExtendable = 2;
6474let isExtentSigned = 1;
6475let opExtentBits = 11;
6476let opExtentAlign = 2;
6477let opNewValue = 0;
6478}
6479def J4_cmpeqn1_f_jumpnv_t : HInst<
6480(outs),
6481(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6482"if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6483tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel {
6484let Inst{0-0} = 0b0;
6485let Inst{13-8} = 0b100000;
6486let Inst{19-19} = 0b0;
6487let Inst{31-22} = 0b0010011001;
6488let isPredicated = 1;
6489let isPredicatedFalse = 1;
6490let isTerminator = 1;
6491let isBranch = 1;
6492let isNewValue = 1;
6493let cofMax1 = 1;
6494let isRestrictNoSlot1Store = 1;
6495let Defs = [PC];
6496let BaseOpcode = "J4_cmpeqn1r";
6497let isTaken = Inst{13};
6498let isExtendable = 1;
6499let opExtendable = 2;
6500let isExtentSigned = 1;
6501let opExtentBits = 11;
6502let opExtentAlign = 2;
6503let opNewValue = 0;
6504}
6505def J4_cmpeqn1_fp0_jump_nt : HInst<
6506(outs),
6507(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6508"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6509tc_24f426ab, TypeCJ>, Enc_1de724, PredRel {
6510let Inst{0-0} = 0b0;
6511let Inst{13-8} = 0b000000;
6512let Inst{31-22} = 0b0001000111;
6513let isPredicated = 1;
6514let isPredicatedFalse = 1;
6515let isTerminator = 1;
6516let isBranch = 1;
6517let isPredicatedNew = 1;
6518let cofRelax1 = 1;
6519let cofRelax2 = 1;
6520let cofMax1 = 1;
6521let Uses = [P0];
6522let Defs = [P0, PC];
6523let BaseOpcode = "J4_cmpeqn1p0";
6524let isTaken = Inst{13};
6525let isExtendable = 1;
6526let opExtendable = 2;
6527let isExtentSigned = 1;
6528let opExtentBits = 11;
6529let opExtentAlign = 2;
6530}
6531def J4_cmpeqn1_fp0_jump_t : HInst<
6532(outs),
6533(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6534"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6535tc_24f426ab, TypeCJ>, Enc_14640c, PredRel {
6536let Inst{0-0} = 0b0;
6537let Inst{13-8} = 0b100000;
6538let Inst{31-22} = 0b0001000111;
6539let isPredicated = 1;
6540let isPredicatedFalse = 1;
6541let isTerminator = 1;
6542let isBranch = 1;
6543let isPredicatedNew = 1;
6544let cofRelax1 = 1;
6545let cofRelax2 = 1;
6546let cofMax1 = 1;
6547let Uses = [P0];
6548let Defs = [P0, PC];
6549let BaseOpcode = "J4_cmpeqn1p0";
6550let isTaken = Inst{13};
6551let isExtendable = 1;
6552let opExtendable = 2;
6553let isExtentSigned = 1;
6554let opExtentBits = 11;
6555let opExtentAlign = 2;
6556}
6557def J4_cmpeqn1_fp1_jump_nt : HInst<
6558(outs),
6559(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6560"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6561tc_24f426ab, TypeCJ>, Enc_668704, PredRel {
6562let Inst{0-0} = 0b0;
6563let Inst{13-8} = 0b000000;
6564let Inst{31-22} = 0b0001001111;
6565let isPredicated = 1;
6566let isPredicatedFalse = 1;
6567let isTerminator = 1;
6568let isBranch = 1;
6569let isPredicatedNew = 1;
6570let cofRelax1 = 1;
6571let cofRelax2 = 1;
6572let cofMax1 = 1;
6573let Uses = [P1];
6574let Defs = [P1, PC];
6575let BaseOpcode = "J4_cmpeqn1p1";
6576let isTaken = Inst{13};
6577let isExtendable = 1;
6578let opExtendable = 2;
6579let isExtentSigned = 1;
6580let opExtentBits = 11;
6581let opExtentAlign = 2;
6582}
6583def J4_cmpeqn1_fp1_jump_t : HInst<
6584(outs),
6585(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6586"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6587tc_24f426ab, TypeCJ>, Enc_800e04, PredRel {
6588let Inst{0-0} = 0b0;
6589let Inst{13-8} = 0b100000;
6590let Inst{31-22} = 0b0001001111;
6591let isPredicated = 1;
6592let isPredicatedFalse = 1;
6593let isTerminator = 1;
6594let isBranch = 1;
6595let isPredicatedNew = 1;
6596let cofRelax1 = 1;
6597let cofRelax2 = 1;
6598let cofMax1 = 1;
6599let Uses = [P1];
6600let Defs = [P1, PC];
6601let BaseOpcode = "J4_cmpeqn1p1";
6602let isTaken = Inst{13};
6603let isExtendable = 1;
6604let opExtendable = 2;
6605let isExtentSigned = 1;
6606let opExtentBits = 11;
6607let opExtentAlign = 2;
6608}
6609def J4_cmpeqn1_t_jumpnv_nt : HInst<
6610(outs),
6611(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6612"if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6613tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel {
6614let Inst{0-0} = 0b0;
6615let Inst{13-8} = 0b000000;
6616let Inst{19-19} = 0b0;
6617let Inst{31-22} = 0b0010011000;
6618let isPredicated = 1;
6619let isTerminator = 1;
6620let isBranch = 1;
6621let isNewValue = 1;
6622let cofMax1 = 1;
6623let isRestrictNoSlot1Store = 1;
6624let Defs = [PC];
6625let BaseOpcode = "J4_cmpeqn1r";
6626let isTaken = Inst{13};
6627let isExtendable = 1;
6628let opExtendable = 2;
6629let isExtentSigned = 1;
6630let opExtentBits = 11;
6631let opExtentAlign = 2;
6632let opNewValue = 0;
6633}
6634def J4_cmpeqn1_t_jumpnv_t : HInst<
6635(outs),
6636(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6637"if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6638tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel {
6639let Inst{0-0} = 0b0;
6640let Inst{13-8} = 0b100000;
6641let Inst{19-19} = 0b0;
6642let Inst{31-22} = 0b0010011000;
6643let isPredicated = 1;
6644let isTerminator = 1;
6645let isBranch = 1;
6646let isNewValue = 1;
6647let cofMax1 = 1;
6648let isRestrictNoSlot1Store = 1;
6649let Defs = [PC];
6650let BaseOpcode = "J4_cmpeqn1r";
6651let isTaken = Inst{13};
6652let isExtendable = 1;
6653let opExtendable = 2;
6654let isExtentSigned = 1;
6655let opExtentBits = 11;
6656let opExtentAlign = 2;
6657let opNewValue = 0;
6658}
6659def J4_cmpeqn1_tp0_jump_nt : HInst<
6660(outs),
6661(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6662"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6663tc_24f426ab, TypeCJ>, Enc_405228, PredRel {
6664let Inst{0-0} = 0b0;
6665let Inst{13-8} = 0b000000;
6666let Inst{31-22} = 0b0001000110;
6667let isPredicated = 1;
6668let isTerminator = 1;
6669let isBranch = 1;
6670let isPredicatedNew = 1;
6671let cofRelax1 = 1;
6672let cofRelax2 = 1;
6673let cofMax1 = 1;
6674let Uses = [P0];
6675let Defs = [P0, PC];
6676let BaseOpcode = "J4_cmpeqn1p0";
6677let isTaken = Inst{13};
6678let isExtendable = 1;
6679let opExtendable = 2;
6680let isExtentSigned = 1;
6681let opExtentBits = 11;
6682let opExtentAlign = 2;
6683}
6684def J4_cmpeqn1_tp0_jump_t : HInst<
6685(outs),
6686(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6687"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6688tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel {
6689let Inst{0-0} = 0b0;
6690let Inst{13-8} = 0b100000;
6691let Inst{31-22} = 0b0001000110;
6692let isPredicated = 1;
6693let isTerminator = 1;
6694let isBranch = 1;
6695let isPredicatedNew = 1;
6696let cofRelax1 = 1;
6697let cofRelax2 = 1;
6698let cofMax1 = 1;
6699let Uses = [P0];
6700let Defs = [P0, PC];
6701let BaseOpcode = "J4_cmpeqn1p0";
6702let isTaken = Inst{13};
6703let isExtendable = 1;
6704let opExtendable = 2;
6705let isExtentSigned = 1;
6706let opExtentBits = 11;
6707let opExtentAlign = 2;
6708}
6709def J4_cmpeqn1_tp1_jump_nt : HInst<
6710(outs),
6711(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6712"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6713tc_24f426ab, TypeCJ>, Enc_736575, PredRel {
6714let Inst{0-0} = 0b0;
6715let Inst{13-8} = 0b000000;
6716let Inst{31-22} = 0b0001001110;
6717let isPredicated = 1;
6718let isTerminator = 1;
6719let isBranch = 1;
6720let isPredicatedNew = 1;
6721let cofRelax1 = 1;
6722let cofRelax2 = 1;
6723let cofMax1 = 1;
6724let Uses = [P1];
6725let Defs = [P1, PC];
6726let BaseOpcode = "J4_cmpeqn1p1";
6727let isTaken = Inst{13};
6728let isExtendable = 1;
6729let opExtendable = 2;
6730let isExtentSigned = 1;
6731let opExtentBits = 11;
6732let opExtentAlign = 2;
6733}
6734def J4_cmpeqn1_tp1_jump_t : HInst<
6735(outs),
6736(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6737"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6738tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel {
6739let Inst{0-0} = 0b0;
6740let Inst{13-8} = 0b100000;
6741let Inst{31-22} = 0b0001001110;
6742let isPredicated = 1;
6743let isTerminator = 1;
6744let isBranch = 1;
6745let isPredicatedNew = 1;
6746let cofRelax1 = 1;
6747let cofRelax2 = 1;
6748let cofMax1 = 1;
6749let Uses = [P1];
6750let Defs = [P1, PC];
6751let BaseOpcode = "J4_cmpeqn1p1";
6752let isTaken = Inst{13};
6753let isExtendable = 1;
6754let opExtendable = 2;
6755let isExtentSigned = 1;
6756let opExtentBits = 11;
6757let opExtentAlign = 2;
6758}
6759def J4_cmpgt_f_jumpnv_nt : HInst<
6760(outs),
6761(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6762"if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6763tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6764let Inst{0-0} = 0b0;
6765let Inst{13-13} = 0b0;
6766let Inst{19-19} = 0b0;
6767let Inst{31-22} = 0b0010000011;
6768let isPredicated = 1;
6769let isPredicatedFalse = 1;
6770let isTerminator = 1;
6771let isBranch = 1;
6772let isNewValue = 1;
6773let cofMax1 = 1;
6774let isRestrictNoSlot1Store = 1;
6775let Defs = [PC];
6776let BaseOpcode = "J4_cmpgtr";
6777let isTaken = Inst{13};
6778let isExtendable = 1;
6779let opExtendable = 2;
6780let isExtentSigned = 1;
6781let opExtentBits = 11;
6782let opExtentAlign = 2;
6783let opNewValue = 0;
6784}
6785def J4_cmpgt_f_jumpnv_t : HInst<
6786(outs),
6787(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6788"if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6789tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6790let Inst{0-0} = 0b0;
6791let Inst{13-13} = 0b1;
6792let Inst{19-19} = 0b0;
6793let Inst{31-22} = 0b0010000011;
6794let isPredicated = 1;
6795let isPredicatedFalse = 1;
6796let isTerminator = 1;
6797let isBranch = 1;
6798let isNewValue = 1;
6799let cofMax1 = 1;
6800let isRestrictNoSlot1Store = 1;
6801let Defs = [PC];
6802let BaseOpcode = "J4_cmpgtr";
6803let isTaken = Inst{13};
6804let isExtendable = 1;
6805let opExtendable = 2;
6806let isExtentSigned = 1;
6807let opExtentBits = 11;
6808let opExtentAlign = 2;
6809let opNewValue = 0;
6810}
6811def J4_cmpgt_fp0_jump_nt : HInst<
6812(outs),
6813(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6814"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6815tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6816let Inst{0-0} = 0b0;
6817let Inst{13-12} = 0b00;
6818let Inst{31-22} = 0b0001010011;
6819let isPredicated = 1;
6820let isPredicatedFalse = 1;
6821let isTerminator = 1;
6822let isBranch = 1;
6823let isPredicatedNew = 1;
6824let cofRelax1 = 1;
6825let cofRelax2 = 1;
6826let cofMax1 = 1;
6827let Uses = [P0];
6828let Defs = [P0, PC];
6829let BaseOpcode = "J4_cmpgtp0";
6830let isTaken = Inst{13};
6831let isExtendable = 1;
6832let opExtendable = 2;
6833let isExtentSigned = 1;
6834let opExtentBits = 11;
6835let opExtentAlign = 2;
6836}
6837def J4_cmpgt_fp0_jump_t : HInst<
6838(outs),
6839(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6840"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6841tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6842let Inst{0-0} = 0b0;
6843let Inst{13-12} = 0b10;
6844let Inst{31-22} = 0b0001010011;
6845let isPredicated = 1;
6846let isPredicatedFalse = 1;
6847let isTerminator = 1;
6848let isBranch = 1;
6849let isPredicatedNew = 1;
6850let cofRelax1 = 1;
6851let cofRelax2 = 1;
6852let cofMax1 = 1;
6853let Uses = [P0];
6854let Defs = [P0, PC];
6855let BaseOpcode = "J4_cmpgtp0";
6856let isTaken = Inst{13};
6857let isExtendable = 1;
6858let opExtendable = 2;
6859let isExtentSigned = 1;
6860let opExtentBits = 11;
6861let opExtentAlign = 2;
6862}
6863def J4_cmpgt_fp1_jump_nt : HInst<
6864(outs),
6865(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6866"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6867tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6868let Inst{0-0} = 0b0;
6869let Inst{13-12} = 0b01;
6870let Inst{31-22} = 0b0001010011;
6871let isPredicated = 1;
6872let isPredicatedFalse = 1;
6873let isTerminator = 1;
6874let isBranch = 1;
6875let isPredicatedNew = 1;
6876let cofRelax1 = 1;
6877let cofRelax2 = 1;
6878let cofMax1 = 1;
6879let Uses = [P1];
6880let Defs = [P1, PC];
6881let BaseOpcode = "J4_cmpgtp1";
6882let isTaken = Inst{13};
6883let isExtendable = 1;
6884let opExtendable = 2;
6885let isExtentSigned = 1;
6886let opExtentBits = 11;
6887let opExtentAlign = 2;
6888}
6889def J4_cmpgt_fp1_jump_t : HInst<
6890(outs),
6891(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6892"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6893tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6894let Inst{0-0} = 0b0;
6895let Inst{13-12} = 0b11;
6896let Inst{31-22} = 0b0001010011;
6897let isPredicated = 1;
6898let isPredicatedFalse = 1;
6899let isTerminator = 1;
6900let isBranch = 1;
6901let isPredicatedNew = 1;
6902let cofRelax1 = 1;
6903let cofRelax2 = 1;
6904let cofMax1 = 1;
6905let Uses = [P1];
6906let Defs = [P1, PC];
6907let BaseOpcode = "J4_cmpgtp1";
6908let isTaken = Inst{13};
6909let isExtendable = 1;
6910let opExtendable = 2;
6911let isExtentSigned = 1;
6912let opExtentBits = 11;
6913let opExtentAlign = 2;
6914}
6915def J4_cmpgt_t_jumpnv_nt : HInst<
6916(outs),
6917(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6918"if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6919tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6920let Inst{0-0} = 0b0;
6921let Inst{13-13} = 0b0;
6922let Inst{19-19} = 0b0;
6923let Inst{31-22} = 0b0010000010;
6924let isPredicated = 1;
6925let isTerminator = 1;
6926let isBranch = 1;
6927let isNewValue = 1;
6928let cofMax1 = 1;
6929let isRestrictNoSlot1Store = 1;
6930let Defs = [PC];
6931let BaseOpcode = "J4_cmpgtr";
6932let isTaken = Inst{13};
6933let isExtendable = 1;
6934let opExtendable = 2;
6935let isExtentSigned = 1;
6936let opExtentBits = 11;
6937let opExtentAlign = 2;
6938let opNewValue = 0;
6939}
6940def J4_cmpgt_t_jumpnv_t : HInst<
6941(outs),
6942(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6943"if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6944tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6945let Inst{0-0} = 0b0;
6946let Inst{13-13} = 0b1;
6947let Inst{19-19} = 0b0;
6948let Inst{31-22} = 0b0010000010;
6949let isPredicated = 1;
6950let isTerminator = 1;
6951let isBranch = 1;
6952let isNewValue = 1;
6953let cofMax1 = 1;
6954let isRestrictNoSlot1Store = 1;
6955let Defs = [PC];
6956let BaseOpcode = "J4_cmpgtr";
6957let isTaken = Inst{13};
6958let isExtendable = 1;
6959let opExtendable = 2;
6960let isExtentSigned = 1;
6961let opExtentBits = 11;
6962let opExtentAlign = 2;
6963let opNewValue = 0;
6964}
6965def J4_cmpgt_tp0_jump_nt : HInst<
6966(outs),
6967(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6968"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6969tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6970let Inst{0-0} = 0b0;
6971let Inst{13-12} = 0b00;
6972let Inst{31-22} = 0b0001010010;
6973let isPredicated = 1;
6974let isTerminator = 1;
6975let isBranch = 1;
6976let isPredicatedNew = 1;
6977let cofRelax1 = 1;
6978let cofRelax2 = 1;
6979let cofMax1 = 1;
6980let Uses = [P0];
6981let Defs = [P0, PC];
6982let BaseOpcode = "J4_cmpgtp0";
6983let isTaken = Inst{13};
6984let isExtendable = 1;
6985let opExtendable = 2;
6986let isExtentSigned = 1;
6987let opExtentBits = 11;
6988let opExtentAlign = 2;
6989}
6990def J4_cmpgt_tp0_jump_t : HInst<
6991(outs),
6992(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6993"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6994tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6995let Inst{0-0} = 0b0;
6996let Inst{13-12} = 0b10;
6997let Inst{31-22} = 0b0001010010;
6998let isPredicated = 1;
6999let isTerminator = 1;
7000let isBranch = 1;
7001let isPredicatedNew = 1;
7002let cofRelax1 = 1;
7003let cofRelax2 = 1;
7004let cofMax1 = 1;
7005let Uses = [P0];
7006let Defs = [P0, PC];
7007let BaseOpcode = "J4_cmpgtp0";
7008let isTaken = Inst{13};
7009let isExtendable = 1;
7010let opExtendable = 2;
7011let isExtentSigned = 1;
7012let opExtentBits = 11;
7013let opExtentAlign = 2;
7014}
7015def J4_cmpgt_tp1_jump_nt : HInst<
7016(outs),
7017(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7018"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7019tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7020let Inst{0-0} = 0b0;
7021let Inst{13-12} = 0b01;
7022let Inst{31-22} = 0b0001010010;
7023let isPredicated = 1;
7024let isTerminator = 1;
7025let isBranch = 1;
7026let isPredicatedNew = 1;
7027let cofRelax1 = 1;
7028let cofRelax2 = 1;
7029let cofMax1 = 1;
7030let Uses = [P1];
7031let Defs = [P1, PC];
7032let BaseOpcode = "J4_cmpgtp1";
7033let isTaken = Inst{13};
7034let isExtendable = 1;
7035let opExtendable = 2;
7036let isExtentSigned = 1;
7037let opExtentBits = 11;
7038let opExtentAlign = 2;
7039}
7040def J4_cmpgt_tp1_jump_t : HInst<
7041(outs),
7042(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7043"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7044tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7045let Inst{0-0} = 0b0;
7046let Inst{13-12} = 0b11;
7047let Inst{31-22} = 0b0001010010;
7048let isPredicated = 1;
7049let isTerminator = 1;
7050let isBranch = 1;
7051let isPredicatedNew = 1;
7052let cofRelax1 = 1;
7053let cofRelax2 = 1;
7054let cofMax1 = 1;
7055let Uses = [P1];
7056let Defs = [P1, PC];
7057let BaseOpcode = "J4_cmpgtp1";
7058let isTaken = Inst{13};
7059let isExtendable = 1;
7060let opExtendable = 2;
7061let isExtentSigned = 1;
7062let opExtentBits = 11;
7063let opExtentAlign = 2;
7064}
7065def J4_cmpgti_f_jumpnv_nt : HInst<
7066(outs),
7067(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7068"if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7069tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7070let Inst{0-0} = 0b0;
7071let Inst{13-13} = 0b0;
7072let Inst{19-19} = 0b0;
7073let Inst{31-22} = 0b0010010011;
7074let isPredicated = 1;
7075let isPredicatedFalse = 1;
7076let isTerminator = 1;
7077let isBranch = 1;
7078let isNewValue = 1;
7079let cofMax1 = 1;
7080let isRestrictNoSlot1Store = 1;
7081let Defs = [PC];
7082let BaseOpcode = "J4_cmpgtir";
7083let isTaken = Inst{13};
7084let isExtendable = 1;
7085let opExtendable = 2;
7086let isExtentSigned = 1;
7087let opExtentBits = 11;
7088let opExtentAlign = 2;
7089let opNewValue = 0;
7090}
7091def J4_cmpgti_f_jumpnv_t : HInst<
7092(outs),
7093(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7094"if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7095tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7096let Inst{0-0} = 0b0;
7097let Inst{13-13} = 0b1;
7098let Inst{19-19} = 0b0;
7099let Inst{31-22} = 0b0010010011;
7100let isPredicated = 1;
7101let isPredicatedFalse = 1;
7102let isTerminator = 1;
7103let isBranch = 1;
7104let isNewValue = 1;
7105let cofMax1 = 1;
7106let isRestrictNoSlot1Store = 1;
7107let Defs = [PC];
7108let BaseOpcode = "J4_cmpgtir";
7109let isTaken = Inst{13};
7110let isExtendable = 1;
7111let opExtendable = 2;
7112let isExtentSigned = 1;
7113let opExtentBits = 11;
7114let opExtentAlign = 2;
7115let opNewValue = 0;
7116}
7117def J4_cmpgti_fp0_jump_nt : HInst<
7118(outs),
7119(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7120"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7121tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7122let Inst{0-0} = 0b0;
7123let Inst{13-13} = 0b0;
7124let Inst{31-22} = 0b0001000011;
7125let isPredicated = 1;
7126let isPredicatedFalse = 1;
7127let isTerminator = 1;
7128let isBranch = 1;
7129let isPredicatedNew = 1;
7130let cofRelax1 = 1;
7131let cofRelax2 = 1;
7132let cofMax1 = 1;
7133let Uses = [P0];
7134let Defs = [P0, PC];
7135let BaseOpcode = "J4_cmpgtip0";
7136let isTaken = Inst{13};
7137let isExtendable = 1;
7138let opExtendable = 2;
7139let isExtentSigned = 1;
7140let opExtentBits = 11;
7141let opExtentAlign = 2;
7142}
7143def J4_cmpgti_fp0_jump_t : HInst<
7144(outs),
7145(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7146"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
7147tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7148let Inst{0-0} = 0b0;
7149let Inst{13-13} = 0b1;
7150let Inst{31-22} = 0b0001000011;
7151let isPredicated = 1;
7152let isPredicatedFalse = 1;
7153let isTerminator = 1;
7154let isBranch = 1;
7155let isPredicatedNew = 1;
7156let cofRelax1 = 1;
7157let cofRelax2 = 1;
7158let cofMax1 = 1;
7159let Uses = [P0];
7160let Defs = [P0, PC];
7161let BaseOpcode = "J4_cmpgtip0";
7162let isTaken = Inst{13};
7163let isExtendable = 1;
7164let opExtendable = 2;
7165let isExtentSigned = 1;
7166let opExtentBits = 11;
7167let opExtentAlign = 2;
7168}
7169def J4_cmpgti_fp1_jump_nt : HInst<
7170(outs),
7171(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7172"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7173tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7174let Inst{0-0} = 0b0;
7175let Inst{13-13} = 0b0;
7176let Inst{31-22} = 0b0001001011;
7177let isPredicated = 1;
7178let isPredicatedFalse = 1;
7179let isTerminator = 1;
7180let isBranch = 1;
7181let isPredicatedNew = 1;
7182let cofRelax1 = 1;
7183let cofRelax2 = 1;
7184let cofMax1 = 1;
7185let Uses = [P1];
7186let Defs = [P1, PC];
7187let BaseOpcode = "J4_cmpgtip1";
7188let isTaken = Inst{13};
7189let isExtendable = 1;
7190let opExtendable = 2;
7191let isExtentSigned = 1;
7192let opExtentBits = 11;
7193let opExtentAlign = 2;
7194}
7195def J4_cmpgti_fp1_jump_t : HInst<
7196(outs),
7197(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7198"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
7199tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7200let Inst{0-0} = 0b0;
7201let Inst{13-13} = 0b1;
7202let Inst{31-22} = 0b0001001011;
7203let isPredicated = 1;
7204let isPredicatedFalse = 1;
7205let isTerminator = 1;
7206let isBranch = 1;
7207let isPredicatedNew = 1;
7208let cofRelax1 = 1;
7209let cofRelax2 = 1;
7210let cofMax1 = 1;
7211let Uses = [P1];
7212let Defs = [P1, PC];
7213let BaseOpcode = "J4_cmpgtip1";
7214let isTaken = Inst{13};
7215let isExtendable = 1;
7216let opExtendable = 2;
7217let isExtentSigned = 1;
7218let opExtentBits = 11;
7219let opExtentAlign = 2;
7220}
7221def J4_cmpgti_t_jumpnv_nt : HInst<
7222(outs),
7223(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7224"if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7225tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7226let Inst{0-0} = 0b0;
7227let Inst{13-13} = 0b0;
7228let Inst{19-19} = 0b0;
7229let Inst{31-22} = 0b0010010010;
7230let isPredicated = 1;
7231let isTerminator = 1;
7232let isBranch = 1;
7233let isNewValue = 1;
7234let cofMax1 = 1;
7235let isRestrictNoSlot1Store = 1;
7236let Defs = [PC];
7237let BaseOpcode = "J4_cmpgtir";
7238let isTaken = Inst{13};
7239let isExtendable = 1;
7240let opExtendable = 2;
7241let isExtentSigned = 1;
7242let opExtentBits = 11;
7243let opExtentAlign = 2;
7244let opNewValue = 0;
7245}
7246def J4_cmpgti_t_jumpnv_t : HInst<
7247(outs),
7248(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7249"if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7250tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7251let Inst{0-0} = 0b0;
7252let Inst{13-13} = 0b1;
7253let Inst{19-19} = 0b0;
7254let Inst{31-22} = 0b0010010010;
7255let isPredicated = 1;
7256let isTerminator = 1;
7257let isBranch = 1;
7258let isNewValue = 1;
7259let cofMax1 = 1;
7260let isRestrictNoSlot1Store = 1;
7261let Defs = [PC];
7262let BaseOpcode = "J4_cmpgtir";
7263let isTaken = Inst{13};
7264let isExtendable = 1;
7265let opExtendable = 2;
7266let isExtentSigned = 1;
7267let opExtentBits = 11;
7268let opExtentAlign = 2;
7269let opNewValue = 0;
7270}
7271def J4_cmpgti_tp0_jump_nt : HInst<
7272(outs),
7273(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7274"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
7275tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7276let Inst{0-0} = 0b0;
7277let Inst{13-13} = 0b0;
7278let Inst{31-22} = 0b0001000010;
7279let isPredicated = 1;
7280let isTerminator = 1;
7281let isBranch = 1;
7282let isPredicatedNew = 1;
7283let cofRelax1 = 1;
7284let cofRelax2 = 1;
7285let cofMax1 = 1;
7286let Uses = [P0];
7287let Defs = [P0, PC];
7288let BaseOpcode = "J4_cmpgtip0";
7289let isTaken = Inst{13};
7290let isExtendable = 1;
7291let opExtendable = 2;
7292let isExtentSigned = 1;
7293let opExtentBits = 11;
7294let opExtentAlign = 2;
7295}
7296def J4_cmpgti_tp0_jump_t : HInst<
7297(outs),
7298(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7299"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
7300tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7301let Inst{0-0} = 0b0;
7302let Inst{13-13} = 0b1;
7303let Inst{31-22} = 0b0001000010;
7304let isPredicated = 1;
7305let isTerminator = 1;
7306let isBranch = 1;
7307let isPredicatedNew = 1;
7308let cofRelax1 = 1;
7309let cofRelax2 = 1;
7310let cofMax1 = 1;
7311let Uses = [P0];
7312let Defs = [P0, PC];
7313let BaseOpcode = "J4_cmpgtip0";
7314let isTaken = Inst{13};
7315let isExtendable = 1;
7316let opExtendable = 2;
7317let isExtentSigned = 1;
7318let opExtentBits = 11;
7319let opExtentAlign = 2;
7320}
7321def J4_cmpgti_tp1_jump_nt : HInst<
7322(outs),
7323(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7324"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
7325tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7326let Inst{0-0} = 0b0;
7327let Inst{13-13} = 0b0;
7328let Inst{31-22} = 0b0001001010;
7329let isPredicated = 1;
7330let isTerminator = 1;
7331let isBranch = 1;
7332let isPredicatedNew = 1;
7333let cofRelax1 = 1;
7334let cofRelax2 = 1;
7335let cofMax1 = 1;
7336let Uses = [P1];
7337let Defs = [P1, PC];
7338let BaseOpcode = "J4_cmpgtip1";
7339let isTaken = Inst{13};
7340let isExtendable = 1;
7341let opExtendable = 2;
7342let isExtentSigned = 1;
7343let opExtentBits = 11;
7344let opExtentAlign = 2;
7345}
7346def J4_cmpgti_tp1_jump_t : HInst<
7347(outs),
7348(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7349"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
7350tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7351let Inst{0-0} = 0b0;
7352let Inst{13-13} = 0b1;
7353let Inst{31-22} = 0b0001001010;
7354let isPredicated = 1;
7355let isTerminator = 1;
7356let isBranch = 1;
7357let isPredicatedNew = 1;
7358let cofRelax1 = 1;
7359let cofRelax2 = 1;
7360let cofMax1 = 1;
7361let Uses = [P1];
7362let Defs = [P1, PC];
7363let BaseOpcode = "J4_cmpgtip1";
7364let isTaken = Inst{13};
7365let isExtendable = 1;
7366let opExtendable = 2;
7367let isExtentSigned = 1;
7368let opExtentBits = 11;
7369let opExtentAlign = 2;
7370}
7371def J4_cmpgtn1_f_jumpnv_nt : HInst<
7372(outs),
7373(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7374"if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7375tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel {
7376let Inst{0-0} = 0b0;
7377let Inst{13-8} = 0b000000;
7378let Inst{19-19} = 0b0;
7379let Inst{31-22} = 0b0010011011;
7380let isPredicated = 1;
7381let isPredicatedFalse = 1;
7382let isTerminator = 1;
7383let isBranch = 1;
7384let isNewValue = 1;
7385let cofMax1 = 1;
7386let isRestrictNoSlot1Store = 1;
7387let Defs = [PC];
7388let BaseOpcode = "J4_cmpgtn1r";
7389let isTaken = Inst{13};
7390let isExtendable = 1;
7391let opExtendable = 2;
7392let isExtentSigned = 1;
7393let opExtentBits = 11;
7394let opExtentAlign = 2;
7395let opNewValue = 0;
7396}
7397def J4_cmpgtn1_f_jumpnv_t : HInst<
7398(outs),
7399(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7400"if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7401tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel {
7402let Inst{0-0} = 0b0;
7403let Inst{13-8} = 0b100000;
7404let Inst{19-19} = 0b0;
7405let Inst{31-22} = 0b0010011011;
7406let isPredicated = 1;
7407let isPredicatedFalse = 1;
7408let isTerminator = 1;
7409let isBranch = 1;
7410let isNewValue = 1;
7411let cofMax1 = 1;
7412let isRestrictNoSlot1Store = 1;
7413let Defs = [PC];
7414let BaseOpcode = "J4_cmpgtn1r";
7415let isTaken = Inst{13};
7416let isExtendable = 1;
7417let opExtendable = 2;
7418let isExtentSigned = 1;
7419let opExtentBits = 11;
7420let opExtentAlign = 2;
7421let opNewValue = 0;
7422}
7423def J4_cmpgtn1_fp0_jump_nt : HInst<
7424(outs),
7425(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7426"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7427tc_24f426ab, TypeCJ>, Enc_a42857, PredRel {
7428let Inst{0-0} = 0b0;
7429let Inst{13-8} = 0b000001;
7430let Inst{31-22} = 0b0001000111;
7431let isPredicated = 1;
7432let isPredicatedFalse = 1;
7433let isTerminator = 1;
7434let isBranch = 1;
7435let isPredicatedNew = 1;
7436let cofRelax1 = 1;
7437let cofRelax2 = 1;
7438let cofMax1 = 1;
7439let Uses = [P0];
7440let Defs = [P0, PC];
7441let BaseOpcode = "J4_cmpgtn1p0";
7442let isTaken = Inst{13};
7443let isExtendable = 1;
7444let opExtendable = 2;
7445let isExtentSigned = 1;
7446let opExtentBits = 11;
7447let opExtentAlign = 2;
7448}
7449def J4_cmpgtn1_fp0_jump_t : HInst<
7450(outs),
7451(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7452"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7453tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel {
7454let Inst{0-0} = 0b0;
7455let Inst{13-8} = 0b100001;
7456let Inst{31-22} = 0b0001000111;
7457let isPredicated = 1;
7458let isPredicatedFalse = 1;
7459let isTerminator = 1;
7460let isBranch = 1;
7461let isPredicatedNew = 1;
7462let cofRelax1 = 1;
7463let cofRelax2 = 1;
7464let cofMax1 = 1;
7465let Uses = [P0];
7466let Defs = [P0, PC];
7467let BaseOpcode = "J4_cmpgtn1p0";
7468let isTaken = Inst{13};
7469let isExtendable = 1;
7470let opExtendable = 2;
7471let isExtentSigned = 1;
7472let opExtentBits = 11;
7473let opExtentAlign = 2;
7474}
7475def J4_cmpgtn1_fp1_jump_nt : HInst<
7476(outs),
7477(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7478"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7479tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel {
7480let Inst{0-0} = 0b0;
7481let Inst{13-8} = 0b000001;
7482let Inst{31-22} = 0b0001001111;
7483let isPredicated = 1;
7484let isPredicatedFalse = 1;
7485let isTerminator = 1;
7486let isBranch = 1;
7487let isPredicatedNew = 1;
7488let cofRelax1 = 1;
7489let cofRelax2 = 1;
7490let cofMax1 = 1;
7491let Uses = [P1];
7492let Defs = [P1, PC];
7493let BaseOpcode = "J4_cmpgtn1p1";
7494let isTaken = Inst{13};
7495let isExtendable = 1;
7496let opExtendable = 2;
7497let isExtentSigned = 1;
7498let opExtentBits = 11;
7499let opExtentAlign = 2;
7500}
7501def J4_cmpgtn1_fp1_jump_t : HInst<
7502(outs),
7503(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7504"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7505tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel {
7506let Inst{0-0} = 0b0;
7507let Inst{13-8} = 0b100001;
7508let Inst{31-22} = 0b0001001111;
7509let isPredicated = 1;
7510let isPredicatedFalse = 1;
7511let isTerminator = 1;
7512let isBranch = 1;
7513let isPredicatedNew = 1;
7514let cofRelax1 = 1;
7515let cofRelax2 = 1;
7516let cofMax1 = 1;
7517let Uses = [P1];
7518let Defs = [P1, PC];
7519let BaseOpcode = "J4_cmpgtn1p1";
7520let isTaken = Inst{13};
7521let isExtendable = 1;
7522let opExtendable = 2;
7523let isExtentSigned = 1;
7524let opExtentBits = 11;
7525let opExtentAlign = 2;
7526}
7527def J4_cmpgtn1_t_jumpnv_nt : HInst<
7528(outs),
7529(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7530"if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7531tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel {
7532let Inst{0-0} = 0b0;
7533let Inst{13-8} = 0b000000;
7534let Inst{19-19} = 0b0;
7535let Inst{31-22} = 0b0010011010;
7536let isPredicated = 1;
7537let isTerminator = 1;
7538let isBranch = 1;
7539let isNewValue = 1;
7540let cofMax1 = 1;
7541let isRestrictNoSlot1Store = 1;
7542let Defs = [PC];
7543let BaseOpcode = "J4_cmpgtn1r";
7544let isTaken = Inst{13};
7545let isExtendable = 1;
7546let opExtendable = 2;
7547let isExtentSigned = 1;
7548let opExtentBits = 11;
7549let opExtentAlign = 2;
7550let opNewValue = 0;
7551}
7552def J4_cmpgtn1_t_jumpnv_t : HInst<
7553(outs),
7554(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7555"if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7556tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel {
7557let Inst{0-0} = 0b0;
7558let Inst{13-8} = 0b100000;
7559let Inst{19-19} = 0b0;
7560let Inst{31-22} = 0b0010011010;
7561let isPredicated = 1;
7562let isTerminator = 1;
7563let isBranch = 1;
7564let isNewValue = 1;
7565let cofMax1 = 1;
7566let isRestrictNoSlot1Store = 1;
7567let Defs = [PC];
7568let BaseOpcode = "J4_cmpgtn1r";
7569let isTaken = Inst{13};
7570let isExtendable = 1;
7571let opExtendable = 2;
7572let isExtentSigned = 1;
7573let opExtentBits = 11;
7574let opExtentAlign = 2;
7575let opNewValue = 0;
7576}
7577def J4_cmpgtn1_tp0_jump_nt : HInst<
7578(outs),
7579(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7580"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7581tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel {
7582let Inst{0-0} = 0b0;
7583let Inst{13-8} = 0b000001;
7584let Inst{31-22} = 0b0001000110;
7585let isPredicated = 1;
7586let isTerminator = 1;
7587let isBranch = 1;
7588let isPredicatedNew = 1;
7589let cofRelax1 = 1;
7590let cofRelax2 = 1;
7591let cofMax1 = 1;
7592let Uses = [P0];
7593let Defs = [P0, PC];
7594let BaseOpcode = "J4_cmpgtn1p0";
7595let isTaken = Inst{13};
7596let isExtendable = 1;
7597let opExtendable = 2;
7598let isExtentSigned = 1;
7599let opExtentBits = 11;
7600let opExtentAlign = 2;
7601}
7602def J4_cmpgtn1_tp0_jump_t : HInst<
7603(outs),
7604(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7605"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7606tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel {
7607let Inst{0-0} = 0b0;
7608let Inst{13-8} = 0b100001;
7609let Inst{31-22} = 0b0001000110;
7610let isPredicated = 1;
7611let isTerminator = 1;
7612let isBranch = 1;
7613let isPredicatedNew = 1;
7614let cofRelax1 = 1;
7615let cofRelax2 = 1;
7616let cofMax1 = 1;
7617let Uses = [P0];
7618let Defs = [P0, PC];
7619let BaseOpcode = "J4_cmpgtn1p0";
7620let isTaken = Inst{13};
7621let isExtendable = 1;
7622let opExtendable = 2;
7623let isExtentSigned = 1;
7624let opExtentBits = 11;
7625let opExtentAlign = 2;
7626}
7627def J4_cmpgtn1_tp1_jump_nt : HInst<
7628(outs),
7629(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7630"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7631tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel {
7632let Inst{0-0} = 0b0;
7633let Inst{13-8} = 0b000001;
7634let Inst{31-22} = 0b0001001110;
7635let isPredicated = 1;
7636let isTerminator = 1;
7637let isBranch = 1;
7638let isPredicatedNew = 1;
7639let cofRelax1 = 1;
7640let cofRelax2 = 1;
7641let cofMax1 = 1;
7642let Uses = [P1];
7643let Defs = [P1, PC];
7644let BaseOpcode = "J4_cmpgtn1p1";
7645let isTaken = Inst{13};
7646let isExtendable = 1;
7647let opExtendable = 2;
7648let isExtentSigned = 1;
7649let opExtentBits = 11;
7650let opExtentAlign = 2;
7651}
7652def J4_cmpgtn1_tp1_jump_t : HInst<
7653(outs),
7654(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7655"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7656tc_24f426ab, TypeCJ>, Enc_178717, PredRel {
7657let Inst{0-0} = 0b0;
7658let Inst{13-8} = 0b100001;
7659let Inst{31-22} = 0b0001001110;
7660let isPredicated = 1;
7661let isTerminator = 1;
7662let isBranch = 1;
7663let isPredicatedNew = 1;
7664let cofRelax1 = 1;
7665let cofRelax2 = 1;
7666let cofMax1 = 1;
7667let Uses = [P1];
7668let Defs = [P1, PC];
7669let BaseOpcode = "J4_cmpgtn1p1";
7670let isTaken = Inst{13};
7671let isExtendable = 1;
7672let opExtendable = 2;
7673let isExtentSigned = 1;
7674let opExtentBits = 11;
7675let opExtentAlign = 2;
7676}
7677def J4_cmpgtu_f_jumpnv_nt : HInst<
7678(outs),
7679(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7680"if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7681tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7682let Inst{0-0} = 0b0;
7683let Inst{13-13} = 0b0;
7684let Inst{19-19} = 0b0;
7685let Inst{31-22} = 0b0010000101;
7686let isPredicated = 1;
7687let isPredicatedFalse = 1;
7688let isTerminator = 1;
7689let isBranch = 1;
7690let isNewValue = 1;
7691let cofMax1 = 1;
7692let isRestrictNoSlot1Store = 1;
7693let Defs = [PC];
7694let BaseOpcode = "J4_cmpgtur";
7695let isTaken = Inst{13};
7696let isExtendable = 1;
7697let opExtendable = 2;
7698let isExtentSigned = 1;
7699let opExtentBits = 11;
7700let opExtentAlign = 2;
7701let opNewValue = 0;
7702}
7703def J4_cmpgtu_f_jumpnv_t : HInst<
7704(outs),
7705(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7706"if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7707tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7708let Inst{0-0} = 0b0;
7709let Inst{13-13} = 0b1;
7710let Inst{19-19} = 0b0;
7711let Inst{31-22} = 0b0010000101;
7712let isPredicated = 1;
7713let isPredicatedFalse = 1;
7714let isTerminator = 1;
7715let isBranch = 1;
7716let isNewValue = 1;
7717let cofMax1 = 1;
7718let isRestrictNoSlot1Store = 1;
7719let Defs = [PC];
7720let BaseOpcode = "J4_cmpgtur";
7721let isTaken = Inst{13};
7722let isExtendable = 1;
7723let opExtendable = 2;
7724let isExtentSigned = 1;
7725let opExtentBits = 11;
7726let opExtentAlign = 2;
7727let opNewValue = 0;
7728}
7729def J4_cmpgtu_fp0_jump_nt : HInst<
7730(outs),
7731(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7732"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7733tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7734let Inst{0-0} = 0b0;
7735let Inst{13-12} = 0b00;
7736let Inst{31-22} = 0b0001010101;
7737let isPredicated = 1;
7738let isPredicatedFalse = 1;
7739let isTerminator = 1;
7740let isBranch = 1;
7741let isPredicatedNew = 1;
7742let cofRelax1 = 1;
7743let cofRelax2 = 1;
7744let cofMax1 = 1;
7745let Uses = [P0];
7746let Defs = [P0, PC];
7747let BaseOpcode = "J4_cmpgtup0";
7748let isTaken = Inst{13};
7749let isExtendable = 1;
7750let opExtendable = 2;
7751let isExtentSigned = 1;
7752let opExtentBits = 11;
7753let opExtentAlign = 2;
7754}
7755def J4_cmpgtu_fp0_jump_t : HInst<
7756(outs),
7757(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7758"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7759tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7760let Inst{0-0} = 0b0;
7761let Inst{13-12} = 0b10;
7762let Inst{31-22} = 0b0001010101;
7763let isPredicated = 1;
7764let isPredicatedFalse = 1;
7765let isTerminator = 1;
7766let isBranch = 1;
7767let isPredicatedNew = 1;
7768let cofRelax1 = 1;
7769let cofRelax2 = 1;
7770let cofMax1 = 1;
7771let Uses = [P0];
7772let Defs = [P0, PC];
7773let BaseOpcode = "J4_cmpgtup0";
7774let isTaken = Inst{13};
7775let isExtendable = 1;
7776let opExtendable = 2;
7777let isExtentSigned = 1;
7778let opExtentBits = 11;
7779let opExtentAlign = 2;
7780}
7781def J4_cmpgtu_fp1_jump_nt : HInst<
7782(outs),
7783(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7784"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7785tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7786let Inst{0-0} = 0b0;
7787let Inst{13-12} = 0b01;
7788let Inst{31-22} = 0b0001010101;
7789let isPredicated = 1;
7790let isPredicatedFalse = 1;
7791let isTerminator = 1;
7792let isBranch = 1;
7793let isPredicatedNew = 1;
7794let cofRelax1 = 1;
7795let cofRelax2 = 1;
7796let cofMax1 = 1;
7797let Uses = [P1];
7798let Defs = [P1, PC];
7799let BaseOpcode = "J4_cmpgtup1";
7800let isTaken = Inst{13};
7801let isExtendable = 1;
7802let opExtendable = 2;
7803let isExtentSigned = 1;
7804let opExtentBits = 11;
7805let opExtentAlign = 2;
7806}
7807def J4_cmpgtu_fp1_jump_t : HInst<
7808(outs),
7809(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7810"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7811tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7812let Inst{0-0} = 0b0;
7813let Inst{13-12} = 0b11;
7814let Inst{31-22} = 0b0001010101;
7815let isPredicated = 1;
7816let isPredicatedFalse = 1;
7817let isTerminator = 1;
7818let isBranch = 1;
7819let isPredicatedNew = 1;
7820let cofRelax1 = 1;
7821let cofRelax2 = 1;
7822let cofMax1 = 1;
7823let Uses = [P1];
7824let Defs = [P1, PC];
7825let BaseOpcode = "J4_cmpgtup1";
7826let isTaken = Inst{13};
7827let isExtendable = 1;
7828let opExtendable = 2;
7829let isExtentSigned = 1;
7830let opExtentBits = 11;
7831let opExtentAlign = 2;
7832}
7833def J4_cmpgtu_t_jumpnv_nt : HInst<
7834(outs),
7835(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7836"if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7837tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7838let Inst{0-0} = 0b0;
7839let Inst{13-13} = 0b0;
7840let Inst{19-19} = 0b0;
7841let Inst{31-22} = 0b0010000100;
7842let isPredicated = 1;
7843let isTerminator = 1;
7844let isBranch = 1;
7845let isNewValue = 1;
7846let cofMax1 = 1;
7847let isRestrictNoSlot1Store = 1;
7848let Defs = [PC];
7849let BaseOpcode = "J4_cmpgtur";
7850let isTaken = Inst{13};
7851let isExtendable = 1;
7852let opExtendable = 2;
7853let isExtentSigned = 1;
7854let opExtentBits = 11;
7855let opExtentAlign = 2;
7856let opNewValue = 0;
7857}
7858def J4_cmpgtu_t_jumpnv_t : HInst<
7859(outs),
7860(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7861"if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7862tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7863let Inst{0-0} = 0b0;
7864let Inst{13-13} = 0b1;
7865let Inst{19-19} = 0b0;
7866let Inst{31-22} = 0b0010000100;
7867let isPredicated = 1;
7868let isTerminator = 1;
7869let isBranch = 1;
7870let isNewValue = 1;
7871let cofMax1 = 1;
7872let isRestrictNoSlot1Store = 1;
7873let Defs = [PC];
7874let BaseOpcode = "J4_cmpgtur";
7875let isTaken = Inst{13};
7876let isExtendable = 1;
7877let opExtendable = 2;
7878let isExtentSigned = 1;
7879let opExtentBits = 11;
7880let opExtentAlign = 2;
7881let opNewValue = 0;
7882}
7883def J4_cmpgtu_tp0_jump_nt : HInst<
7884(outs),
7885(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7886"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7887tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7888let Inst{0-0} = 0b0;
7889let Inst{13-12} = 0b00;
7890let Inst{31-22} = 0b0001010100;
7891let isPredicated = 1;
7892let isTerminator = 1;
7893let isBranch = 1;
7894let isPredicatedNew = 1;
7895let cofRelax1 = 1;
7896let cofRelax2 = 1;
7897let cofMax1 = 1;
7898let Uses = [P0];
7899let Defs = [P0, PC];
7900let BaseOpcode = "J4_cmpgtup0";
7901let isTaken = Inst{13};
7902let isExtendable = 1;
7903let opExtendable = 2;
7904let isExtentSigned = 1;
7905let opExtentBits = 11;
7906let opExtentAlign = 2;
7907}
7908def J4_cmpgtu_tp0_jump_t : HInst<
7909(outs),
7910(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7911"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7912tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7913let Inst{0-0} = 0b0;
7914let Inst{13-12} = 0b10;
7915let Inst{31-22} = 0b0001010100;
7916let isPredicated = 1;
7917let isTerminator = 1;
7918let isBranch = 1;
7919let isPredicatedNew = 1;
7920let cofRelax1 = 1;
7921let cofRelax2 = 1;
7922let cofMax1 = 1;
7923let Uses = [P0];
7924let Defs = [P0, PC];
7925let BaseOpcode = "J4_cmpgtup0";
7926let isTaken = Inst{13};
7927let isExtendable = 1;
7928let opExtendable = 2;
7929let isExtentSigned = 1;
7930let opExtentBits = 11;
7931let opExtentAlign = 2;
7932}
7933def J4_cmpgtu_tp1_jump_nt : HInst<
7934(outs),
7935(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7936"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7937tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7938let Inst{0-0} = 0b0;
7939let Inst{13-12} = 0b01;
7940let Inst{31-22} = 0b0001010100;
7941let isPredicated = 1;
7942let isTerminator = 1;
7943let isBranch = 1;
7944let isPredicatedNew = 1;
7945let cofRelax1 = 1;
7946let cofRelax2 = 1;
7947let cofMax1 = 1;
7948let Uses = [P1];
7949let Defs = [P1, PC];
7950let BaseOpcode = "J4_cmpgtup1";
7951let isTaken = Inst{13};
7952let isExtendable = 1;
7953let opExtendable = 2;
7954let isExtentSigned = 1;
7955let opExtentBits = 11;
7956let opExtentAlign = 2;
7957}
7958def J4_cmpgtu_tp1_jump_t : HInst<
7959(outs),
7960(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7961"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7962tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7963let Inst{0-0} = 0b0;
7964let Inst{13-12} = 0b11;
7965let Inst{31-22} = 0b0001010100;
7966let isPredicated = 1;
7967let isTerminator = 1;
7968let isBranch = 1;
7969let isPredicatedNew = 1;
7970let cofRelax1 = 1;
7971let cofRelax2 = 1;
7972let cofMax1 = 1;
7973let Uses = [P1];
7974let Defs = [P1, PC];
7975let BaseOpcode = "J4_cmpgtup1";
7976let isTaken = Inst{13};
7977let isExtendable = 1;
7978let opExtendable = 2;
7979let isExtentSigned = 1;
7980let opExtentBits = 11;
7981let opExtentAlign = 2;
7982}
7983def J4_cmpgtui_f_jumpnv_nt : HInst<
7984(outs),
7985(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7986"if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
7987tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7988let Inst{0-0} = 0b0;
7989let Inst{13-13} = 0b0;
7990let Inst{19-19} = 0b0;
7991let Inst{31-22} = 0b0010010101;
7992let isPredicated = 1;
7993let isPredicatedFalse = 1;
7994let isTerminator = 1;
7995let isBranch = 1;
7996let isNewValue = 1;
7997let cofMax1 = 1;
7998let isRestrictNoSlot1Store = 1;
7999let Defs = [PC];
8000let BaseOpcode = "J4_cmpgtuir";
8001let isTaken = Inst{13};
8002let isExtendable = 1;
8003let opExtendable = 2;
8004let isExtentSigned = 1;
8005let opExtentBits = 11;
8006let opExtentAlign = 2;
8007let opNewValue = 0;
8008}
8009def J4_cmpgtui_f_jumpnv_t : HInst<
8010(outs),
8011(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8012"if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8013tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8014let Inst{0-0} = 0b0;
8015let Inst{13-13} = 0b1;
8016let Inst{19-19} = 0b0;
8017let Inst{31-22} = 0b0010010101;
8018let isPredicated = 1;
8019let isPredicatedFalse = 1;
8020let isTerminator = 1;
8021let isBranch = 1;
8022let isNewValue = 1;
8023let cofMax1 = 1;
8024let isRestrictNoSlot1Store = 1;
8025let Defs = [PC];
8026let BaseOpcode = "J4_cmpgtuir";
8027let isTaken = Inst{13};
8028let isExtendable = 1;
8029let opExtendable = 2;
8030let isExtentSigned = 1;
8031let opExtentBits = 11;
8032let opExtentAlign = 2;
8033let opNewValue = 0;
8034}
8035def J4_cmpgtui_fp0_jump_nt : HInst<
8036(outs),
8037(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8038"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
8039tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8040let Inst{0-0} = 0b0;
8041let Inst{13-13} = 0b0;
8042let Inst{31-22} = 0b0001000101;
8043let isPredicated = 1;
8044let isPredicatedFalse = 1;
8045let isTerminator = 1;
8046let isBranch = 1;
8047let isPredicatedNew = 1;
8048let cofRelax1 = 1;
8049let cofRelax2 = 1;
8050let cofMax1 = 1;
8051let Uses = [P0];
8052let Defs = [P0, PC];
8053let BaseOpcode = "J4_cmpgtuip0";
8054let isTaken = Inst{13};
8055let isExtendable = 1;
8056let opExtendable = 2;
8057let isExtentSigned = 1;
8058let opExtentBits = 11;
8059let opExtentAlign = 2;
8060}
8061def J4_cmpgtui_fp0_jump_t : HInst<
8062(outs),
8063(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8064"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
8065tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8066let Inst{0-0} = 0b0;
8067let Inst{13-13} = 0b1;
8068let Inst{31-22} = 0b0001000101;
8069let isPredicated = 1;
8070let isPredicatedFalse = 1;
8071let isTerminator = 1;
8072let isBranch = 1;
8073let isPredicatedNew = 1;
8074let cofRelax1 = 1;
8075let cofRelax2 = 1;
8076let cofMax1 = 1;
8077let Uses = [P0];
8078let Defs = [P0, PC];
8079let BaseOpcode = "J4_cmpgtuip0";
8080let isTaken = Inst{13};
8081let isExtendable = 1;
8082let opExtendable = 2;
8083let isExtentSigned = 1;
8084let opExtentBits = 11;
8085let opExtentAlign = 2;
8086}
8087def J4_cmpgtui_fp1_jump_nt : HInst<
8088(outs),
8089(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8090"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
8091tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8092let Inst{0-0} = 0b0;
8093let Inst{13-13} = 0b0;
8094let Inst{31-22} = 0b0001001101;
8095let isPredicated = 1;
8096let isPredicatedFalse = 1;
8097let isTerminator = 1;
8098let isBranch = 1;
8099let isPredicatedNew = 1;
8100let cofRelax1 = 1;
8101let cofRelax2 = 1;
8102let cofMax1 = 1;
8103let Uses = [P1];
8104let Defs = [P1, PC];
8105let BaseOpcode = "J4_cmpgtuip1";
8106let isTaken = Inst{13};
8107let isExtendable = 1;
8108let opExtendable = 2;
8109let isExtentSigned = 1;
8110let opExtentBits = 11;
8111let opExtentAlign = 2;
8112}
8113def J4_cmpgtui_fp1_jump_t : HInst<
8114(outs),
8115(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8116"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
8117tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8118let Inst{0-0} = 0b0;
8119let Inst{13-13} = 0b1;
8120let Inst{31-22} = 0b0001001101;
8121let isPredicated = 1;
8122let isPredicatedFalse = 1;
8123let isTerminator = 1;
8124let isBranch = 1;
8125let isPredicatedNew = 1;
8126let cofRelax1 = 1;
8127let cofRelax2 = 1;
8128let cofMax1 = 1;
8129let Uses = [P1];
8130let Defs = [P1, PC];
8131let BaseOpcode = "J4_cmpgtuip1";
8132let isTaken = Inst{13};
8133let isExtendable = 1;
8134let opExtendable = 2;
8135let isExtentSigned = 1;
8136let opExtentBits = 11;
8137let opExtentAlign = 2;
8138}
8139def J4_cmpgtui_t_jumpnv_nt : HInst<
8140(outs),
8141(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8142"if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8143tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8144let Inst{0-0} = 0b0;
8145let Inst{13-13} = 0b0;
8146let Inst{19-19} = 0b0;
8147let Inst{31-22} = 0b0010010100;
8148let isPredicated = 1;
8149let isTerminator = 1;
8150let isBranch = 1;
8151let isNewValue = 1;
8152let cofMax1 = 1;
8153let isRestrictNoSlot1Store = 1;
8154let Defs = [PC];
8155let BaseOpcode = "J4_cmpgtuir";
8156let isTaken = Inst{13};
8157let isExtendable = 1;
8158let opExtendable = 2;
8159let isExtentSigned = 1;
8160let opExtentBits = 11;
8161let opExtentAlign = 2;
8162let opNewValue = 0;
8163}
8164def J4_cmpgtui_t_jumpnv_t : HInst<
8165(outs),
8166(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8167"if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8168tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8169let Inst{0-0} = 0b0;
8170let Inst{13-13} = 0b1;
8171let Inst{19-19} = 0b0;
8172let Inst{31-22} = 0b0010010100;
8173let isPredicated = 1;
8174let isTerminator = 1;
8175let isBranch = 1;
8176let isNewValue = 1;
8177let cofMax1 = 1;
8178let isRestrictNoSlot1Store = 1;
8179let Defs = [PC];
8180let BaseOpcode = "J4_cmpgtuir";
8181let isTaken = Inst{13};
8182let isExtendable = 1;
8183let opExtendable = 2;
8184let isExtentSigned = 1;
8185let opExtentBits = 11;
8186let opExtentAlign = 2;
8187let opNewValue = 0;
8188}
8189def J4_cmpgtui_tp0_jump_nt : HInst<
8190(outs),
8191(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8192"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
8193tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8194let Inst{0-0} = 0b0;
8195let Inst{13-13} = 0b0;
8196let Inst{31-22} = 0b0001000100;
8197let isPredicated = 1;
8198let isTerminator = 1;
8199let isBranch = 1;
8200let isPredicatedNew = 1;
8201let cofRelax1 = 1;
8202let cofRelax2 = 1;
8203let cofMax1 = 1;
8204let Uses = [P0];
8205let Defs = [P0, PC];
8206let BaseOpcode = "J4_cmpgtuip0";
8207let isTaken = Inst{13};
8208let isExtendable = 1;
8209let opExtendable = 2;
8210let isExtentSigned = 1;
8211let opExtentBits = 11;
8212let opExtentAlign = 2;
8213}
8214def J4_cmpgtui_tp0_jump_t : HInst<
8215(outs),
8216(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8217"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
8218tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8219let Inst{0-0} = 0b0;
8220let Inst{13-13} = 0b1;
8221let Inst{31-22} = 0b0001000100;
8222let isPredicated = 1;
8223let isTerminator = 1;
8224let isBranch = 1;
8225let isPredicatedNew = 1;
8226let cofRelax1 = 1;
8227let cofRelax2 = 1;
8228let cofMax1 = 1;
8229let Uses = [P0];
8230let Defs = [P0, PC];
8231let BaseOpcode = "J4_cmpgtuip0";
8232let isTaken = Inst{13};
8233let isExtendable = 1;
8234let opExtendable = 2;
8235let isExtentSigned = 1;
8236let opExtentBits = 11;
8237let opExtentAlign = 2;
8238}
8239def J4_cmpgtui_tp1_jump_nt : HInst<
8240(outs),
8241(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8242"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
8243tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8244let Inst{0-0} = 0b0;
8245let Inst{13-13} = 0b0;
8246let Inst{31-22} = 0b0001001100;
8247let isPredicated = 1;
8248let isTerminator = 1;
8249let isBranch = 1;
8250let isPredicatedNew = 1;
8251let cofRelax1 = 1;
8252let cofRelax2 = 1;
8253let cofMax1 = 1;
8254let Uses = [P1];
8255let Defs = [P1, PC];
8256let BaseOpcode = "J4_cmpgtuip1";
8257let isTaken = Inst{13};
8258let isExtendable = 1;
8259let opExtendable = 2;
8260let isExtentSigned = 1;
8261let opExtentBits = 11;
8262let opExtentAlign = 2;
8263}
8264def J4_cmpgtui_tp1_jump_t : HInst<
8265(outs),
8266(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8267"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
8268tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8269let Inst{0-0} = 0b0;
8270let Inst{13-13} = 0b1;
8271let Inst{31-22} = 0b0001001100;
8272let isPredicated = 1;
8273let isTerminator = 1;
8274let isBranch = 1;
8275let isPredicatedNew = 1;
8276let cofRelax1 = 1;
8277let cofRelax2 = 1;
8278let cofMax1 = 1;
8279let Uses = [P1];
8280let Defs = [P1, PC];
8281let BaseOpcode = "J4_cmpgtuip1";
8282let isTaken = Inst{13};
8283let isExtendable = 1;
8284let opExtendable = 2;
8285let isExtentSigned = 1;
8286let opExtentBits = 11;
8287let opExtentAlign = 2;
8288}
8289def J4_cmplt_f_jumpnv_nt : HInst<
8290(outs),
8291(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8292"if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8293tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8294let Inst{0-0} = 0b0;
8295let Inst{13-13} = 0b0;
8296let Inst{19-19} = 0b0;
8297let Inst{31-22} = 0b0010000111;
8298let isPredicated = 1;
8299let isPredicatedFalse = 1;
8300let isTerminator = 1;
8301let isBranch = 1;
8302let isNewValue = 1;
8303let cofMax1 = 1;
8304let isRestrictNoSlot1Store = 1;
8305let Defs = [PC];
8306let BaseOpcode = "J4_cmpltr";
8307let isTaken = Inst{13};
8308let isExtendable = 1;
8309let opExtendable = 2;
8310let isExtentSigned = 1;
8311let opExtentBits = 11;
8312let opExtentAlign = 2;
8313let opNewValue = 1;
8314}
8315def J4_cmplt_f_jumpnv_t : HInst<
8316(outs),
8317(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8318"if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8319tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8320let Inst{0-0} = 0b0;
8321let Inst{13-13} = 0b1;
8322let Inst{19-19} = 0b0;
8323let Inst{31-22} = 0b0010000111;
8324let isPredicated = 1;
8325let isPredicatedFalse = 1;
8326let isTerminator = 1;
8327let isBranch = 1;
8328let isNewValue = 1;
8329let cofMax1 = 1;
8330let isRestrictNoSlot1Store = 1;
8331let Defs = [PC];
8332let BaseOpcode = "J4_cmpltr";
8333let isTaken = Inst{13};
8334let isExtendable = 1;
8335let opExtendable = 2;
8336let isExtentSigned = 1;
8337let opExtentBits = 11;
8338let opExtentAlign = 2;
8339let opNewValue = 1;
8340}
8341def J4_cmplt_t_jumpnv_nt : HInst<
8342(outs),
8343(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8344"if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8345tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8346let Inst{0-0} = 0b0;
8347let Inst{13-13} = 0b0;
8348let Inst{19-19} = 0b0;
8349let Inst{31-22} = 0b0010000110;
8350let isPredicated = 1;
8351let isTerminator = 1;
8352let isBranch = 1;
8353let isNewValue = 1;
8354let cofMax1 = 1;
8355let isRestrictNoSlot1Store = 1;
8356let Defs = [PC];
8357let BaseOpcode = "J4_cmpltr";
8358let isTaken = Inst{13};
8359let isExtendable = 1;
8360let opExtendable = 2;
8361let isExtentSigned = 1;
8362let opExtentBits = 11;
8363let opExtentAlign = 2;
8364let opNewValue = 1;
8365}
8366def J4_cmplt_t_jumpnv_t : HInst<
8367(outs),
8368(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8369"if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8370tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8371let Inst{0-0} = 0b0;
8372let Inst{13-13} = 0b1;
8373let Inst{19-19} = 0b0;
8374let Inst{31-22} = 0b0010000110;
8375let isPredicated = 1;
8376let isTerminator = 1;
8377let isBranch = 1;
8378let isNewValue = 1;
8379let cofMax1 = 1;
8380let isRestrictNoSlot1Store = 1;
8381let Defs = [PC];
8382let BaseOpcode = "J4_cmpltr";
8383let isTaken = Inst{13};
8384let isExtendable = 1;
8385let opExtendable = 2;
8386let isExtentSigned = 1;
8387let opExtentBits = 11;
8388let opExtentAlign = 2;
8389let opNewValue = 1;
8390}
8391def J4_cmpltu_f_jumpnv_nt : HInst<
8392(outs),
8393(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8394"if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8395tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8396let Inst{0-0} = 0b0;
8397let Inst{13-13} = 0b0;
8398let Inst{19-19} = 0b0;
8399let Inst{31-22} = 0b0010001001;
8400let isPredicated = 1;
8401let isPredicatedFalse = 1;
8402let isTerminator = 1;
8403let isBranch = 1;
8404let isNewValue = 1;
8405let cofMax1 = 1;
8406let isRestrictNoSlot1Store = 1;
8407let Defs = [PC];
8408let BaseOpcode = "J4_cmpltur";
8409let isTaken = Inst{13};
8410let isExtendable = 1;
8411let opExtendable = 2;
8412let isExtentSigned = 1;
8413let opExtentBits = 11;
8414let opExtentAlign = 2;
8415let opNewValue = 1;
8416}
8417def J4_cmpltu_f_jumpnv_t : HInst<
8418(outs),
8419(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8420"if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8421tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8422let Inst{0-0} = 0b0;
8423let Inst{13-13} = 0b1;
8424let Inst{19-19} = 0b0;
8425let Inst{31-22} = 0b0010001001;
8426let isPredicated = 1;
8427let isPredicatedFalse = 1;
8428let isTerminator = 1;
8429let isBranch = 1;
8430let isNewValue = 1;
8431let cofMax1 = 1;
8432let isRestrictNoSlot1Store = 1;
8433let Defs = [PC];
8434let BaseOpcode = "J4_cmpltur";
8435let isTaken = Inst{13};
8436let isExtendable = 1;
8437let opExtendable = 2;
8438let isExtentSigned = 1;
8439let opExtentBits = 11;
8440let opExtentAlign = 2;
8441let opNewValue = 1;
8442}
8443def J4_cmpltu_t_jumpnv_nt : HInst<
8444(outs),
8445(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8446"if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8447tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8448let Inst{0-0} = 0b0;
8449let Inst{13-13} = 0b0;
8450let Inst{19-19} = 0b0;
8451let Inst{31-22} = 0b0010001000;
8452let isPredicated = 1;
8453let isTerminator = 1;
8454let isBranch = 1;
8455let isNewValue = 1;
8456let cofMax1 = 1;
8457let isRestrictNoSlot1Store = 1;
8458let Defs = [PC];
8459let BaseOpcode = "J4_cmpltur";
8460let isTaken = Inst{13};
8461let isExtendable = 1;
8462let opExtendable = 2;
8463let isExtentSigned = 1;
8464let opExtentBits = 11;
8465let opExtentAlign = 2;
8466let opNewValue = 1;
8467}
8468def J4_cmpltu_t_jumpnv_t : HInst<
8469(outs),
8470(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8471"if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8472tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8473let Inst{0-0} = 0b0;
8474let Inst{13-13} = 0b1;
8475let Inst{19-19} = 0b0;
8476let Inst{31-22} = 0b0010001000;
8477let isPredicated = 1;
8478let isTerminator = 1;
8479let isBranch = 1;
8480let isNewValue = 1;
8481let cofMax1 = 1;
8482let isRestrictNoSlot1Store = 1;
8483let Defs = [PC];
8484let BaseOpcode = "J4_cmpltur";
8485let isTaken = Inst{13};
8486let isExtendable = 1;
8487let opExtendable = 2;
8488let isExtentSigned = 1;
8489let opExtentBits = 11;
8490let opExtentAlign = 2;
8491let opNewValue = 1;
8492}
8493def J4_hintjumpr : HInst<
8494(outs),
8495(ins IntRegs:$Rs32),
8496"hintjr($Rs32)",
8497tc_60e324ff, TypeJ>, Enc_ecbcc8 {
8498let Inst{13-0} = 0b00000000000000;
8499let Inst{31-21} = 0b01010010101;
8500let isTerminator = 1;
8501let isIndirectBranch = 1;
8502let isBranch = 1;
8503let cofRelax1 = 1;
8504let cofRelax2 = 1;
8505let cofMax1 = 1;
8506}
8507def J4_jumpseti : HInst<
8508(outs GeneralSubRegs:$Rd16),
8509(ins u6_0Imm:$II, b30_2Imm:$Ii),
8510"$Rd16 = #$II ; jump $Ii",
8511tc_5502c366, TypeCJ>, Enc_9e4c3f {
8512let Inst{0-0} = 0b0;
8513let Inst{31-22} = 0b0001011000;
8514let hasNewValue = 1;
8515let opNewValue = 0;
8516let isTerminator = 1;
8517let isBranch = 1;
8518let cofRelax2 = 1;
8519let cofMax1 = 1;
8520let Defs = [PC];
8521let isExtendable = 1;
8522let opExtendable = 2;
8523let isExtentSigned = 1;
8524let opExtentBits = 11;
8525let opExtentAlign = 2;
8526}
8527def J4_jumpsetr : HInst<
8528(outs GeneralSubRegs:$Rd16),
8529(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8530"$Rd16 = $Rs16 ; jump $Ii",
8531tc_5502c366, TypeCJ>, Enc_66bce1 {
8532let Inst{0-0} = 0b0;
8533let Inst{13-12} = 0b00;
8534let Inst{31-22} = 0b0001011100;
8535let hasNewValue = 1;
8536let opNewValue = 0;
8537let isTerminator = 1;
8538let isBranch = 1;
8539let cofRelax2 = 1;
8540let cofMax1 = 1;
8541let Defs = [PC];
8542let isExtendable = 1;
8543let opExtendable = 2;
8544let isExtentSigned = 1;
8545let opExtentBits = 11;
8546let opExtentAlign = 2;
8547}
8548def J4_tstbit0_f_jumpnv_nt : HInst<
8549(outs),
8550(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8551"if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8552tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8553let Inst{0-0} = 0b0;
8554let Inst{13-8} = 0b000000;
8555let Inst{19-19} = 0b0;
8556let Inst{31-22} = 0b0010010111;
8557let isPredicated = 1;
8558let isPredicatedFalse = 1;
8559let isTerminator = 1;
8560let isBranch = 1;
8561let isNewValue = 1;
8562let cofMax1 = 1;
8563let isRestrictNoSlot1Store = 1;
8564let Defs = [PC];
8565let isTaken = Inst{13};
8566let isExtendable = 1;
8567let opExtendable = 1;
8568let isExtentSigned = 1;
8569let opExtentBits = 11;
8570let opExtentAlign = 2;
8571let opNewValue = 0;
8572}
8573def J4_tstbit0_f_jumpnv_t : HInst<
8574(outs),
8575(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8576"if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8577tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8578let Inst{0-0} = 0b0;
8579let Inst{13-8} = 0b100000;
8580let Inst{19-19} = 0b0;
8581let Inst{31-22} = 0b0010010111;
8582let isPredicated = 1;
8583let isPredicatedFalse = 1;
8584let isTerminator = 1;
8585let isBranch = 1;
8586let isNewValue = 1;
8587let cofMax1 = 1;
8588let isRestrictNoSlot1Store = 1;
8589let Defs = [PC];
8590let isTaken = Inst{13};
8591let isExtendable = 1;
8592let opExtendable = 1;
8593let isExtentSigned = 1;
8594let opExtentBits = 11;
8595let opExtentAlign = 2;
8596let opNewValue = 0;
8597}
8598def J4_tstbit0_fp0_jump_nt : HInst<
8599(outs),
8600(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8601"p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8602tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8603let Inst{0-0} = 0b0;
8604let Inst{13-8} = 0b000011;
8605let Inst{31-22} = 0b0001000111;
8606let isPredicated = 1;
8607let isPredicatedFalse = 1;
8608let isTerminator = 1;
8609let isBranch = 1;
8610let isPredicatedNew = 1;
8611let cofRelax1 = 1;
8612let cofRelax2 = 1;
8613let cofMax1 = 1;
8614let Uses = [P0];
8615let Defs = [P0, PC];
8616let isTaken = Inst{13};
8617let isExtendable = 1;
8618let opExtendable = 1;
8619let isExtentSigned = 1;
8620let opExtentBits = 11;
8621let opExtentAlign = 2;
8622}
8623def J4_tstbit0_fp0_jump_t : HInst<
8624(outs),
8625(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8626"p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8627tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8628let Inst{0-0} = 0b0;
8629let Inst{13-8} = 0b100011;
8630let Inst{31-22} = 0b0001000111;
8631let isPredicated = 1;
8632let isPredicatedFalse = 1;
8633let isTerminator = 1;
8634let isBranch = 1;
8635let isPredicatedNew = 1;
8636let cofRelax1 = 1;
8637let cofRelax2 = 1;
8638let cofMax1 = 1;
8639let Uses = [P0];
8640let Defs = [P0, PC];
8641let isTaken = Inst{13};
8642let isExtendable = 1;
8643let opExtendable = 1;
8644let isExtentSigned = 1;
8645let opExtentBits = 11;
8646let opExtentAlign = 2;
8647}
8648def J4_tstbit0_fp1_jump_nt : HInst<
8649(outs),
8650(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8651"p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8652tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8653let Inst{0-0} = 0b0;
8654let Inst{13-8} = 0b000011;
8655let Inst{31-22} = 0b0001001111;
8656let isPredicated = 1;
8657let isPredicatedFalse = 1;
8658let isTerminator = 1;
8659let isBranch = 1;
8660let isPredicatedNew = 1;
8661let cofRelax1 = 1;
8662let cofRelax2 = 1;
8663let cofMax1 = 1;
8664let Uses = [P1];
8665let Defs = [P1, PC];
8666let isTaken = Inst{13};
8667let isExtendable = 1;
8668let opExtendable = 1;
8669let isExtentSigned = 1;
8670let opExtentBits = 11;
8671let opExtentAlign = 2;
8672}
8673def J4_tstbit0_fp1_jump_t : HInst<
8674(outs),
8675(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8676"p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8677tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8678let Inst{0-0} = 0b0;
8679let Inst{13-8} = 0b100011;
8680let Inst{31-22} = 0b0001001111;
8681let isPredicated = 1;
8682let isPredicatedFalse = 1;
8683let isTerminator = 1;
8684let isBranch = 1;
8685let isPredicatedNew = 1;
8686let cofRelax1 = 1;
8687let cofRelax2 = 1;
8688let cofMax1 = 1;
8689let Uses = [P1];
8690let Defs = [P1, PC];
8691let isTaken = Inst{13};
8692let isExtendable = 1;
8693let opExtendable = 1;
8694let isExtentSigned = 1;
8695let opExtentBits = 11;
8696let opExtentAlign = 2;
8697}
8698def J4_tstbit0_t_jumpnv_nt : HInst<
8699(outs),
8700(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8701"if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8702tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8703let Inst{0-0} = 0b0;
8704let Inst{13-8} = 0b000000;
8705let Inst{19-19} = 0b0;
8706let Inst{31-22} = 0b0010010110;
8707let isPredicated = 1;
8708let isTerminator = 1;
8709let isBranch = 1;
8710let isNewValue = 1;
8711let cofMax1 = 1;
8712let isRestrictNoSlot1Store = 1;
8713let Defs = [PC];
8714let isTaken = Inst{13};
8715let isExtendable = 1;
8716let opExtendable = 1;
8717let isExtentSigned = 1;
8718let opExtentBits = 11;
8719let opExtentAlign = 2;
8720let opNewValue = 0;
8721}
8722def J4_tstbit0_t_jumpnv_t : HInst<
8723(outs),
8724(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8725"if (tstbit($Ns8.new,#0)) jump:t $Ii",
8726tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8727let Inst{0-0} = 0b0;
8728let Inst{13-8} = 0b100000;
8729let Inst{19-19} = 0b0;
8730let Inst{31-22} = 0b0010010110;
8731let isPredicated = 1;
8732let isTerminator = 1;
8733let isBranch = 1;
8734let isNewValue = 1;
8735let cofMax1 = 1;
8736let isRestrictNoSlot1Store = 1;
8737let Defs = [PC];
8738let isTaken = Inst{13};
8739let isExtendable = 1;
8740let opExtendable = 1;
8741let isExtentSigned = 1;
8742let opExtentBits = 11;
8743let opExtentAlign = 2;
8744let opNewValue = 0;
8745}
8746def J4_tstbit0_tp0_jump_nt : HInst<
8747(outs),
8748(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8749"p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8750tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8751let Inst{0-0} = 0b0;
8752let Inst{13-8} = 0b000011;
8753let Inst{31-22} = 0b0001000110;
8754let isPredicated = 1;
8755let isTerminator = 1;
8756let isBranch = 1;
8757let isPredicatedNew = 1;
8758let cofRelax1 = 1;
8759let cofRelax2 = 1;
8760let cofMax1 = 1;
8761let Uses = [P0];
8762let Defs = [P0, PC];
8763let isTaken = Inst{13};
8764let isExtendable = 1;
8765let opExtendable = 1;
8766let isExtentSigned = 1;
8767let opExtentBits = 11;
8768let opExtentAlign = 2;
8769}
8770def J4_tstbit0_tp0_jump_t : HInst<
8771(outs),
8772(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8773"p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8774tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8775let Inst{0-0} = 0b0;
8776let Inst{13-8} = 0b100011;
8777let Inst{31-22} = 0b0001000110;
8778let isPredicated = 1;
8779let isTerminator = 1;
8780let isBranch = 1;
8781let isPredicatedNew = 1;
8782let cofRelax1 = 1;
8783let cofRelax2 = 1;
8784let cofMax1 = 1;
8785let Uses = [P0];
8786let Defs = [P0, PC];
8787let isTaken = Inst{13};
8788let isExtendable = 1;
8789let opExtendable = 1;
8790let isExtentSigned = 1;
8791let opExtentBits = 11;
8792let opExtentAlign = 2;
8793}
8794def J4_tstbit0_tp1_jump_nt : HInst<
8795(outs),
8796(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8797"p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8798tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8799let Inst{0-0} = 0b0;
8800let Inst{13-8} = 0b000011;
8801let Inst{31-22} = 0b0001001110;
8802let isPredicated = 1;
8803let isTerminator = 1;
8804let isBranch = 1;
8805let isPredicatedNew = 1;
8806let cofRelax1 = 1;
8807let cofRelax2 = 1;
8808let cofMax1 = 1;
8809let Uses = [P1];
8810let Defs = [P1, PC];
8811let isTaken = Inst{13};
8812let isExtendable = 1;
8813let opExtendable = 1;
8814let isExtentSigned = 1;
8815let opExtentBits = 11;
8816let opExtentAlign = 2;
8817}
8818def J4_tstbit0_tp1_jump_t : HInst<
8819(outs),
8820(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8821"p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8822tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8823let Inst{0-0} = 0b0;
8824let Inst{13-8} = 0b100011;
8825let Inst{31-22} = 0b0001001110;
8826let isPredicated = 1;
8827let isTerminator = 1;
8828let isBranch = 1;
8829let isPredicatedNew = 1;
8830let cofRelax1 = 1;
8831let cofRelax2 = 1;
8832let cofMax1 = 1;
8833let Uses = [P1];
8834let Defs = [P1, PC];
8835let isTaken = Inst{13};
8836let isExtendable = 1;
8837let opExtendable = 1;
8838let isExtentSigned = 1;
8839let opExtentBits = 11;
8840let opExtentAlign = 2;
8841}
8842def L2_deallocframe : HInst<
8843(outs DoubleRegs:$Rdd32),
8844(ins IntRegs:$Rs32),
8845"$Rdd32 = deallocframe($Rs32):raw",
8846tc_e9170fb7, TypeLD>, Enc_3a3d62 {
8847let Inst{13-5} = 0b000000000;
8848let Inst{31-21} = 0b10010000000;
8849let accessSize = DoubleWordAccess;
8850let mayLoad = 1;
8851let Uses = [FRAMEKEY];
8852let Defs = [R29];
8853}
8854def L2_loadalignb_io : HInst<
8855(outs DoubleRegs:$Ryy32),
8856(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8857"$Ryy32 = memb_fifo($Rs32+#$Ii)",
8858tc_fedb7e19, TypeLD>, Enc_a27588 {
8859let Inst{24-21} = 0b0100;
8860let Inst{31-27} = 0b10010;
8861let addrMode = BaseImmOffset;
8862let accessSize = ByteAccess;
8863let mayLoad = 1;
8864let isExtendable = 1;
8865let opExtendable = 3;
8866let isExtentSigned = 1;
8867let opExtentBits = 11;
8868let opExtentAlign = 0;
8869let Constraints = "$Ryy32 = $Ryy32in";
8870}
8871def L2_loadalignb_pbr : HInst<
8872(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8873(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8874"$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8875tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8876let Inst{12-5} = 0b00000000;
8877let Inst{31-21} = 0b10011110100;
8878let addrMode = PostInc;
8879let accessSize = ByteAccess;
8880let mayLoad = 1;
8881let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8882}
8883def L2_loadalignb_pci : HInst<
8884(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8885(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8886"$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8887tc_76bb5435, TypeLD>, Enc_74aef2 {
8888let Inst{12-9} = 0b0000;
8889let Inst{31-21} = 0b10011000100;
8890let addrMode = PostInc;
8891let accessSize = ByteAccess;
8892let mayLoad = 1;
8893let Uses = [CS];
8894let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8895}
8896def L2_loadalignb_pcr : HInst<
8897(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8898(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8899"$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8900tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8901let Inst{12-5} = 0b00010000;
8902let Inst{31-21} = 0b10011000100;
8903let addrMode = PostInc;
8904let accessSize = ByteAccess;
8905let mayLoad = 1;
8906let Uses = [CS];
8907let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8908}
8909def L2_loadalignb_pi : HInst<
8910(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8911(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8912"$Ryy32 = memb_fifo($Rx32++#$Ii)",
8913tc_1c7522a8, TypeLD>, Enc_6b197f {
8914let Inst{13-9} = 0b00000;
8915let Inst{31-21} = 0b10011010100;
8916let addrMode = PostInc;
8917let accessSize = ByteAccess;
8918let mayLoad = 1;
8919let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8920}
8921def L2_loadalignb_pr : HInst<
8922(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8923(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8924"$Ryy32 = memb_fifo($Rx32++$Mu2)",
8925tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8926let Inst{12-5} = 0b00000000;
8927let Inst{31-21} = 0b10011100100;
8928let addrMode = PostInc;
8929let accessSize = ByteAccess;
8930let mayLoad = 1;
8931let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8932}
8933def L2_loadalignb_zomap : HInst<
8934(outs DoubleRegs:$Ryy32),
8935(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8936"$Ryy32 = memb_fifo($Rs32)",
8937tc_fedb7e19, TypeMAPPING> {
8938let isPseudo = 1;
8939let isCodeGenOnly = 1;
8940let Constraints = "$Ryy32 = $Ryy32in";
8941}
8942def L2_loadalignh_io : HInst<
8943(outs DoubleRegs:$Ryy32),
8944(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8945"$Ryy32 = memh_fifo($Rs32+#$Ii)",
8946tc_fedb7e19, TypeLD>, Enc_5cd7e9 {
8947let Inst{24-21} = 0b0010;
8948let Inst{31-27} = 0b10010;
8949let addrMode = BaseImmOffset;
8950let accessSize = HalfWordAccess;
8951let mayLoad = 1;
8952let isExtendable = 1;
8953let opExtendable = 3;
8954let isExtentSigned = 1;
8955let opExtentBits = 12;
8956let opExtentAlign = 1;
8957let Constraints = "$Ryy32 = $Ryy32in";
8958}
8959def L2_loadalignh_pbr : HInst<
8960(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8961(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8962"$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8963tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8964let Inst{12-5} = 0b00000000;
8965let Inst{31-21} = 0b10011110010;
8966let addrMode = PostInc;
8967let accessSize = HalfWordAccess;
8968let mayLoad = 1;
8969let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8970}
8971def L2_loadalignh_pci : HInst<
8972(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8973(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8974"$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
8975tc_76bb5435, TypeLD>, Enc_9e2e1c {
8976let Inst{12-9} = 0b0000;
8977let Inst{31-21} = 0b10011000010;
8978let addrMode = PostInc;
8979let accessSize = HalfWordAccess;
8980let mayLoad = 1;
8981let Uses = [CS];
8982let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8983}
8984def L2_loadalignh_pcr : HInst<
8985(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8986(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8987"$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
8988tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8989let Inst{12-5} = 0b00010000;
8990let Inst{31-21} = 0b10011000010;
8991let addrMode = PostInc;
8992let accessSize = HalfWordAccess;
8993let mayLoad = 1;
8994let Uses = [CS];
8995let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8996}
8997def L2_loadalignh_pi : HInst<
8998(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8999(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
9000"$Ryy32 = memh_fifo($Rx32++#$Ii)",
9001tc_1c7522a8, TypeLD>, Enc_bd1cbc {
9002let Inst{13-9} = 0b00000;
9003let Inst{31-21} = 0b10011010010;
9004let addrMode = PostInc;
9005let accessSize = HalfWordAccess;
9006let mayLoad = 1;
9007let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9008}
9009def L2_loadalignh_pr : HInst<
9010(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9011(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9012"$Ryy32 = memh_fifo($Rx32++$Mu2)",
9013tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9014let Inst{12-5} = 0b00000000;
9015let Inst{31-21} = 0b10011100010;
9016let addrMode = PostInc;
9017let accessSize = HalfWordAccess;
9018let mayLoad = 1;
9019let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9020}
9021def L2_loadalignh_zomap : HInst<
9022(outs DoubleRegs:$Ryy32),
9023(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
9024"$Ryy32 = memh_fifo($Rs32)",
9025tc_fedb7e19, TypeMAPPING> {
9026let isPseudo = 1;
9027let isCodeGenOnly = 1;
9028let Constraints = "$Ryy32 = $Ryy32in";
9029}
9030def L2_loadbsw2_io : HInst<
9031(outs IntRegs:$Rd32),
9032(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9033"$Rd32 = membh($Rs32+#$Ii)",
9034tc_4222e6bf, TypeLD>, Enc_de0214 {
9035let Inst{24-21} = 0b0001;
9036let Inst{31-27} = 0b10010;
9037let hasNewValue = 1;
9038let opNewValue = 0;
9039let addrMode = BaseImmOffset;
9040let accessSize = HalfWordAccess;
9041let mayLoad = 1;
9042let isExtendable = 1;
9043let opExtendable = 2;
9044let isExtentSigned = 1;
9045let opExtentBits = 12;
9046let opExtentAlign = 1;
9047}
9048def L2_loadbsw2_pbr : HInst<
9049(outs IntRegs:$Rd32, IntRegs:$Rx32),
9050(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9051"$Rd32 = membh($Rx32++$Mu2:brev)",
9052tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9053let Inst{12-5} = 0b00000000;
9054let Inst{31-21} = 0b10011110001;
9055let hasNewValue = 1;
9056let opNewValue = 0;
9057let addrMode = PostInc;
9058let accessSize = HalfWordAccess;
9059let mayLoad = 1;
9060let Constraints = "$Rx32 = $Rx32in";
9061}
9062def L2_loadbsw2_pci : HInst<
9063(outs IntRegs:$Rd32, IntRegs:$Rx32),
9064(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9065"$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
9066tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9067let Inst{12-9} = 0b0000;
9068let Inst{31-21} = 0b10011000001;
9069let hasNewValue = 1;
9070let opNewValue = 0;
9071let addrMode = PostInc;
9072let accessSize = HalfWordAccess;
9073let mayLoad = 1;
9074let Uses = [CS];
9075let Constraints = "$Rx32 = $Rx32in";
9076}
9077def L2_loadbsw2_pcr : HInst<
9078(outs IntRegs:$Rd32, IntRegs:$Rx32),
9079(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9080"$Rd32 = membh($Rx32++I:circ($Mu2))",
9081tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9082let Inst{12-5} = 0b00010000;
9083let Inst{31-21} = 0b10011000001;
9084let hasNewValue = 1;
9085let opNewValue = 0;
9086let addrMode = PostInc;
9087let accessSize = HalfWordAccess;
9088let mayLoad = 1;
9089let Uses = [CS];
9090let Constraints = "$Rx32 = $Rx32in";
9091}
9092def L2_loadbsw2_pi : HInst<
9093(outs IntRegs:$Rd32, IntRegs:$Rx32),
9094(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9095"$Rd32 = membh($Rx32++#$Ii)",
9096tc_075c8dd8, TypeLD>, Enc_152467 {
9097let Inst{13-9} = 0b00000;
9098let Inst{31-21} = 0b10011010001;
9099let hasNewValue = 1;
9100let opNewValue = 0;
9101let addrMode = PostInc;
9102let accessSize = HalfWordAccess;
9103let mayLoad = 1;
9104let Constraints = "$Rx32 = $Rx32in";
9105}
9106def L2_loadbsw2_pr : HInst<
9107(outs IntRegs:$Rd32, IntRegs:$Rx32),
9108(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9109"$Rd32 = membh($Rx32++$Mu2)",
9110tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9111let Inst{12-5} = 0b00000000;
9112let Inst{31-21} = 0b10011100001;
9113let hasNewValue = 1;
9114let opNewValue = 0;
9115let addrMode = PostInc;
9116let accessSize = HalfWordAccess;
9117let mayLoad = 1;
9118let Constraints = "$Rx32 = $Rx32in";
9119}
9120def L2_loadbsw2_zomap : HInst<
9121(outs IntRegs:$Rd32),
9122(ins IntRegs:$Rs32),
9123"$Rd32 = membh($Rs32)",
9124tc_4222e6bf, TypeMAPPING> {
9125let hasNewValue = 1;
9126let opNewValue = 0;
9127let isPseudo = 1;
9128let isCodeGenOnly = 1;
9129}
9130def L2_loadbsw4_io : HInst<
9131(outs DoubleRegs:$Rdd32),
9132(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9133"$Rdd32 = membh($Rs32+#$Ii)",
9134tc_4222e6bf, TypeLD>, Enc_2d7491 {
9135let Inst{24-21} = 0b0111;
9136let Inst{31-27} = 0b10010;
9137let addrMode = BaseImmOffset;
9138let accessSize = WordAccess;
9139let mayLoad = 1;
9140let isExtendable = 1;
9141let opExtendable = 2;
9142let isExtentSigned = 1;
9143let opExtentBits = 13;
9144let opExtentAlign = 2;
9145}
9146def L2_loadbsw4_pbr : HInst<
9147(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9148(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9149"$Rdd32 = membh($Rx32++$Mu2:brev)",
9150tc_075c8dd8, TypeLD>, Enc_7eee72 {
9151let Inst{12-5} = 0b00000000;
9152let Inst{31-21} = 0b10011110111;
9153let addrMode = PostInc;
9154let accessSize = WordAccess;
9155let mayLoad = 1;
9156let Constraints = "$Rx32 = $Rx32in";
9157}
9158def L2_loadbsw4_pci : HInst<
9159(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9160(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9161"$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9162tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9163let Inst{12-9} = 0b0000;
9164let Inst{31-21} = 0b10011000111;
9165let addrMode = PostInc;
9166let accessSize = WordAccess;
9167let mayLoad = 1;
9168let Uses = [CS];
9169let Constraints = "$Rx32 = $Rx32in";
9170}
9171def L2_loadbsw4_pcr : HInst<
9172(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9173(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9174"$Rdd32 = membh($Rx32++I:circ($Mu2))",
9175tc_075c8dd8, TypeLD>, Enc_7eee72 {
9176let Inst{12-5} = 0b00010000;
9177let Inst{31-21} = 0b10011000111;
9178let addrMode = PostInc;
9179let accessSize = WordAccess;
9180let mayLoad = 1;
9181let Uses = [CS];
9182let Constraints = "$Rx32 = $Rx32in";
9183}
9184def L2_loadbsw4_pi : HInst<
9185(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9186(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9187"$Rdd32 = membh($Rx32++#$Ii)",
9188tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9189let Inst{13-9} = 0b00000;
9190let Inst{31-21} = 0b10011010111;
9191let addrMode = PostInc;
9192let accessSize = WordAccess;
9193let mayLoad = 1;
9194let Constraints = "$Rx32 = $Rx32in";
9195}
9196def L2_loadbsw4_pr : HInst<
9197(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9198(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9199"$Rdd32 = membh($Rx32++$Mu2)",
9200tc_075c8dd8, TypeLD>, Enc_7eee72 {
9201let Inst{12-5} = 0b00000000;
9202let Inst{31-21} = 0b10011100111;
9203let addrMode = PostInc;
9204let accessSize = WordAccess;
9205let mayLoad = 1;
9206let Constraints = "$Rx32 = $Rx32in";
9207}
9208def L2_loadbsw4_zomap : HInst<
9209(outs DoubleRegs:$Rdd32),
9210(ins IntRegs:$Rs32),
9211"$Rdd32 = membh($Rs32)",
9212tc_4222e6bf, TypeMAPPING> {
9213let isPseudo = 1;
9214let isCodeGenOnly = 1;
9215}
9216def L2_loadbzw2_io : HInst<
9217(outs IntRegs:$Rd32),
9218(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9219"$Rd32 = memubh($Rs32+#$Ii)",
9220tc_4222e6bf, TypeLD>, Enc_de0214 {
9221let Inst{24-21} = 0b0011;
9222let Inst{31-27} = 0b10010;
9223let hasNewValue = 1;
9224let opNewValue = 0;
9225let addrMode = BaseImmOffset;
9226let accessSize = HalfWordAccess;
9227let mayLoad = 1;
9228let isExtendable = 1;
9229let opExtendable = 2;
9230let isExtentSigned = 1;
9231let opExtentBits = 12;
9232let opExtentAlign = 1;
9233}
9234def L2_loadbzw2_pbr : HInst<
9235(outs IntRegs:$Rd32, IntRegs:$Rx32),
9236(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9237"$Rd32 = memubh($Rx32++$Mu2:brev)",
9238tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9239let Inst{12-5} = 0b00000000;
9240let Inst{31-21} = 0b10011110011;
9241let hasNewValue = 1;
9242let opNewValue = 0;
9243let addrMode = PostInc;
9244let accessSize = HalfWordAccess;
9245let mayLoad = 1;
9246let Constraints = "$Rx32 = $Rx32in";
9247}
9248def L2_loadbzw2_pci : HInst<
9249(outs IntRegs:$Rd32, IntRegs:$Rx32),
9250(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9251"$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9252tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9253let Inst{12-9} = 0b0000;
9254let Inst{31-21} = 0b10011000011;
9255let hasNewValue = 1;
9256let opNewValue = 0;
9257let addrMode = PostInc;
9258let accessSize = HalfWordAccess;
9259let mayLoad = 1;
9260let Uses = [CS];
9261let Constraints = "$Rx32 = $Rx32in";
9262}
9263def L2_loadbzw2_pcr : HInst<
9264(outs IntRegs:$Rd32, IntRegs:$Rx32),
9265(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9266"$Rd32 = memubh($Rx32++I:circ($Mu2))",
9267tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9268let Inst{12-5} = 0b00010000;
9269let Inst{31-21} = 0b10011000011;
9270let hasNewValue = 1;
9271let opNewValue = 0;
9272let addrMode = PostInc;
9273let accessSize = HalfWordAccess;
9274let mayLoad = 1;
9275let Uses = [CS];
9276let Constraints = "$Rx32 = $Rx32in";
9277}
9278def L2_loadbzw2_pi : HInst<
9279(outs IntRegs:$Rd32, IntRegs:$Rx32),
9280(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9281"$Rd32 = memubh($Rx32++#$Ii)",
9282tc_075c8dd8, TypeLD>, Enc_152467 {
9283let Inst{13-9} = 0b00000;
9284let Inst{31-21} = 0b10011010011;
9285let hasNewValue = 1;
9286let opNewValue = 0;
9287let addrMode = PostInc;
9288let accessSize = HalfWordAccess;
9289let mayLoad = 1;
9290let Constraints = "$Rx32 = $Rx32in";
9291}
9292def L2_loadbzw2_pr : HInst<
9293(outs IntRegs:$Rd32, IntRegs:$Rx32),
9294(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9295"$Rd32 = memubh($Rx32++$Mu2)",
9296tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9297let Inst{12-5} = 0b00000000;
9298let Inst{31-21} = 0b10011100011;
9299let hasNewValue = 1;
9300let opNewValue = 0;
9301let addrMode = PostInc;
9302let accessSize = HalfWordAccess;
9303let mayLoad = 1;
9304let Constraints = "$Rx32 = $Rx32in";
9305}
9306def L2_loadbzw2_zomap : HInst<
9307(outs IntRegs:$Rd32),
9308(ins IntRegs:$Rs32),
9309"$Rd32 = memubh($Rs32)",
9310tc_4222e6bf, TypeMAPPING> {
9311let hasNewValue = 1;
9312let opNewValue = 0;
9313let isPseudo = 1;
9314let isCodeGenOnly = 1;
9315}
9316def L2_loadbzw4_io : HInst<
9317(outs DoubleRegs:$Rdd32),
9318(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9319"$Rdd32 = memubh($Rs32+#$Ii)",
9320tc_4222e6bf, TypeLD>, Enc_2d7491 {
9321let Inst{24-21} = 0b0101;
9322let Inst{31-27} = 0b10010;
9323let addrMode = BaseImmOffset;
9324let accessSize = WordAccess;
9325let mayLoad = 1;
9326let isExtendable = 1;
9327let opExtendable = 2;
9328let isExtentSigned = 1;
9329let opExtentBits = 13;
9330let opExtentAlign = 2;
9331}
9332def L2_loadbzw4_pbr : HInst<
9333(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9334(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9335"$Rdd32 = memubh($Rx32++$Mu2:brev)",
9336tc_075c8dd8, TypeLD>, Enc_7eee72 {
9337let Inst{12-5} = 0b00000000;
9338let Inst{31-21} = 0b10011110101;
9339let addrMode = PostInc;
9340let accessSize = WordAccess;
9341let mayLoad = 1;
9342let Constraints = "$Rx32 = $Rx32in";
9343}
9344def L2_loadbzw4_pci : HInst<
9345(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9346(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9347"$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9348tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9349let Inst{12-9} = 0b0000;
9350let Inst{31-21} = 0b10011000101;
9351let addrMode = PostInc;
9352let accessSize = WordAccess;
9353let mayLoad = 1;
9354let Uses = [CS];
9355let Constraints = "$Rx32 = $Rx32in";
9356}
9357def L2_loadbzw4_pcr : HInst<
9358(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9359(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9360"$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9361tc_075c8dd8, TypeLD>, Enc_7eee72 {
9362let Inst{12-5} = 0b00010000;
9363let Inst{31-21} = 0b10011000101;
9364let addrMode = PostInc;
9365let accessSize = WordAccess;
9366let mayLoad = 1;
9367let Uses = [CS];
9368let Constraints = "$Rx32 = $Rx32in";
9369}
9370def L2_loadbzw4_pi : HInst<
9371(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9372(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9373"$Rdd32 = memubh($Rx32++#$Ii)",
9374tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9375let Inst{13-9} = 0b00000;
9376let Inst{31-21} = 0b10011010101;
9377let addrMode = PostInc;
9378let accessSize = WordAccess;
9379let mayLoad = 1;
9380let Constraints = "$Rx32 = $Rx32in";
9381}
9382def L2_loadbzw4_pr : HInst<
9383(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9384(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9385"$Rdd32 = memubh($Rx32++$Mu2)",
9386tc_075c8dd8, TypeLD>, Enc_7eee72 {
9387let Inst{12-5} = 0b00000000;
9388let Inst{31-21} = 0b10011100101;
9389let addrMode = PostInc;
9390let accessSize = WordAccess;
9391let mayLoad = 1;
9392let Constraints = "$Rx32 = $Rx32in";
9393}
9394def L2_loadbzw4_zomap : HInst<
9395(outs DoubleRegs:$Rdd32),
9396(ins IntRegs:$Rs32),
9397"$Rdd32 = memubh($Rs32)",
9398tc_4222e6bf, TypeMAPPING> {
9399let isPseudo = 1;
9400let isCodeGenOnly = 1;
9401}
9402def L2_loadrb_io : HInst<
9403(outs IntRegs:$Rd32),
9404(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9405"$Rd32 = memb($Rs32+#$Ii)",
9406tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9407let Inst{24-21} = 0b1000;
9408let Inst{31-27} = 0b10010;
9409let hasNewValue = 1;
9410let opNewValue = 0;
9411let addrMode = BaseImmOffset;
9412let accessSize = ByteAccess;
9413let mayLoad = 1;
9414let BaseOpcode = "L2_loadrb_io";
9415let CextOpcode = "L2_loadrb";
9416let isPredicable = 1;
9417let isExtendable = 1;
9418let opExtendable = 2;
9419let isExtentSigned = 1;
9420let opExtentBits = 11;
9421let opExtentAlign = 0;
9422}
9423def L2_loadrb_pbr : HInst<
9424(outs IntRegs:$Rd32, IntRegs:$Rx32),
9425(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9426"$Rd32 = memb($Rx32++$Mu2:brev)",
9427tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9428let Inst{12-5} = 0b00000000;
9429let Inst{31-21} = 0b10011111000;
9430let hasNewValue = 1;
9431let opNewValue = 0;
9432let addrMode = PostInc;
9433let accessSize = ByteAccess;
9434let mayLoad = 1;
9435let Constraints = "$Rx32 = $Rx32in";
9436}
9437def L2_loadrb_pci : HInst<
9438(outs IntRegs:$Rd32, IntRegs:$Rx32),
9439(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9440"$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9441tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9442let Inst{12-9} = 0b0000;
9443let Inst{31-21} = 0b10011001000;
9444let hasNewValue = 1;
9445let opNewValue = 0;
9446let addrMode = PostInc;
9447let accessSize = ByteAccess;
9448let mayLoad = 1;
9449let Uses = [CS];
9450let Constraints = "$Rx32 = $Rx32in";
9451}
9452def L2_loadrb_pcr : HInst<
9453(outs IntRegs:$Rd32, IntRegs:$Rx32),
9454(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9455"$Rd32 = memb($Rx32++I:circ($Mu2))",
9456tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9457let Inst{12-5} = 0b00010000;
9458let Inst{31-21} = 0b10011001000;
9459let hasNewValue = 1;
9460let opNewValue = 0;
9461let addrMode = PostInc;
9462let accessSize = ByteAccess;
9463let mayLoad = 1;
9464let Uses = [CS];
9465let Constraints = "$Rx32 = $Rx32in";
9466}
9467def L2_loadrb_pi : HInst<
9468(outs IntRegs:$Rd32, IntRegs:$Rx32),
9469(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9470"$Rd32 = memb($Rx32++#$Ii)",
9471tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9472let Inst{13-9} = 0b00000;
9473let Inst{31-21} = 0b10011011000;
9474let hasNewValue = 1;
9475let opNewValue = 0;
9476let addrMode = PostInc;
9477let accessSize = ByteAccess;
9478let mayLoad = 1;
9479let BaseOpcode = "L2_loadrb_pi";
9480let CextOpcode = "L2_loadrb";
9481let isPredicable = 1;
9482let Constraints = "$Rx32 = $Rx32in";
9483}
9484def L2_loadrb_pr : HInst<
9485(outs IntRegs:$Rd32, IntRegs:$Rx32),
9486(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9487"$Rd32 = memb($Rx32++$Mu2)",
9488tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9489let Inst{12-5} = 0b00000000;
9490let Inst{31-21} = 0b10011101000;
9491let hasNewValue = 1;
9492let opNewValue = 0;
9493let addrMode = PostInc;
9494let accessSize = ByteAccess;
9495let mayLoad = 1;
9496let Constraints = "$Rx32 = $Rx32in";
9497}
9498def L2_loadrb_zomap : HInst<
9499(outs IntRegs:$Rd32),
9500(ins IntRegs:$Rs32),
9501"$Rd32 = memb($Rs32)",
9502tc_4222e6bf, TypeMAPPING> {
9503let hasNewValue = 1;
9504let opNewValue = 0;
9505let isPseudo = 1;
9506let isCodeGenOnly = 1;
9507}
9508def L2_loadrbgp : HInst<
9509(outs IntRegs:$Rd32),
9510(ins u32_0Imm:$Ii),
9511"$Rd32 = memb(gp+#$Ii)",
9512tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9513let Inst{24-21} = 0b1000;
9514let Inst{31-27} = 0b01001;
9515let hasNewValue = 1;
9516let opNewValue = 0;
9517let accessSize = ByteAccess;
9518let mayLoad = 1;
9519let Uses = [GP];
9520let BaseOpcode = "L4_loadrb_abs";
9521let isPredicable = 1;
9522let opExtendable = 1;
9523let isExtentSigned = 0;
9524let opExtentBits = 16;
9525let opExtentAlign = 0;
9526}
9527def L2_loadrd_io : HInst<
9528(outs DoubleRegs:$Rdd32),
9529(ins IntRegs:$Rs32, s29_3Imm:$Ii),
9530"$Rdd32 = memd($Rs32+#$Ii)",
9531tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9532let Inst{24-21} = 0b1110;
9533let Inst{31-27} = 0b10010;
9534let addrMode = BaseImmOffset;
9535let accessSize = DoubleWordAccess;
9536let mayLoad = 1;
9537let BaseOpcode = "L2_loadrd_io";
9538let CextOpcode = "L2_loadrd";
9539let isPredicable = 1;
9540let isExtendable = 1;
9541let opExtendable = 2;
9542let isExtentSigned = 1;
9543let opExtentBits = 14;
9544let opExtentAlign = 3;
9545}
9546def L2_loadrd_pbr : HInst<
9547(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9548(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9549"$Rdd32 = memd($Rx32++$Mu2:brev)",
9550tc_075c8dd8, TypeLD>, Enc_7eee72 {
9551let Inst{12-5} = 0b00000000;
9552let Inst{31-21} = 0b10011111110;
9553let addrMode = PostInc;
9554let accessSize = DoubleWordAccess;
9555let mayLoad = 1;
9556let Constraints = "$Rx32 = $Rx32in";
9557}
9558def L2_loadrd_pci : HInst<
9559(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9560(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9561"$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9562tc_5ceb2f9e, TypeLD>, Enc_b05839 {
9563let Inst{12-9} = 0b0000;
9564let Inst{31-21} = 0b10011001110;
9565let addrMode = PostInc;
9566let accessSize = DoubleWordAccess;
9567let mayLoad = 1;
9568let Uses = [CS];
9569let Constraints = "$Rx32 = $Rx32in";
9570}
9571def L2_loadrd_pcr : HInst<
9572(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9573(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9574"$Rdd32 = memd($Rx32++I:circ($Mu2))",
9575tc_075c8dd8, TypeLD>, Enc_7eee72 {
9576let Inst{12-5} = 0b00010000;
9577let Inst{31-21} = 0b10011001110;
9578let addrMode = PostInc;
9579let accessSize = DoubleWordAccess;
9580let mayLoad = 1;
9581let Uses = [CS];
9582let Constraints = "$Rx32 = $Rx32in";
9583}
9584def L2_loadrd_pi : HInst<
9585(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9586(ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9587"$Rdd32 = memd($Rx32++#$Ii)",
9588tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9589let Inst{13-9} = 0b00000;
9590let Inst{31-21} = 0b10011011110;
9591let addrMode = PostInc;
9592let accessSize = DoubleWordAccess;
9593let mayLoad = 1;
9594let BaseOpcode = "L2_loadrd_pi";
9595let CextOpcode = "L2_loadrd";
9596let isPredicable = 1;
9597let Constraints = "$Rx32 = $Rx32in";
9598}
9599def L2_loadrd_pr : HInst<
9600(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9601(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9602"$Rdd32 = memd($Rx32++$Mu2)",
9603tc_075c8dd8, TypeLD>, Enc_7eee72 {
9604let Inst{12-5} = 0b00000000;
9605let Inst{31-21} = 0b10011101110;
9606let addrMode = PostInc;
9607let accessSize = DoubleWordAccess;
9608let mayLoad = 1;
9609let Constraints = "$Rx32 = $Rx32in";
9610}
9611def L2_loadrd_zomap : HInst<
9612(outs DoubleRegs:$Rdd32),
9613(ins IntRegs:$Rs32),
9614"$Rdd32 = memd($Rs32)",
9615tc_4222e6bf, TypeMAPPING> {
9616let isPseudo = 1;
9617let isCodeGenOnly = 1;
9618}
9619def L2_loadrdgp : HInst<
9620(outs DoubleRegs:$Rdd32),
9621(ins u29_3Imm:$Ii),
9622"$Rdd32 = memd(gp+#$Ii)",
9623tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
9624let Inst{24-21} = 0b1110;
9625let Inst{31-27} = 0b01001;
9626let accessSize = DoubleWordAccess;
9627let mayLoad = 1;
9628let Uses = [GP];
9629let BaseOpcode = "L4_loadrd_abs";
9630let isPredicable = 1;
9631let opExtendable = 1;
9632let isExtentSigned = 0;
9633let opExtentBits = 19;
9634let opExtentAlign = 3;
9635}
9636def L2_loadrh_io : HInst<
9637(outs IntRegs:$Rd32),
9638(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9639"$Rd32 = memh($Rs32+#$Ii)",
9640tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9641let Inst{24-21} = 0b1010;
9642let Inst{31-27} = 0b10010;
9643let hasNewValue = 1;
9644let opNewValue = 0;
9645let addrMode = BaseImmOffset;
9646let accessSize = HalfWordAccess;
9647let mayLoad = 1;
9648let BaseOpcode = "L2_loadrh_io";
9649let CextOpcode = "L2_loadrh";
9650let isPredicable = 1;
9651let isExtendable = 1;
9652let opExtendable = 2;
9653let isExtentSigned = 1;
9654let opExtentBits = 12;
9655let opExtentAlign = 1;
9656}
9657def L2_loadrh_pbr : HInst<
9658(outs IntRegs:$Rd32, IntRegs:$Rx32),
9659(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9660"$Rd32 = memh($Rx32++$Mu2:brev)",
9661tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9662let Inst{12-5} = 0b00000000;
9663let Inst{31-21} = 0b10011111010;
9664let hasNewValue = 1;
9665let opNewValue = 0;
9666let addrMode = PostInc;
9667let accessSize = HalfWordAccess;
9668let mayLoad = 1;
9669let Constraints = "$Rx32 = $Rx32in";
9670}
9671def L2_loadrh_pci : HInst<
9672(outs IntRegs:$Rd32, IntRegs:$Rx32),
9673(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9674"$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9675tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9676let Inst{12-9} = 0b0000;
9677let Inst{31-21} = 0b10011001010;
9678let hasNewValue = 1;
9679let opNewValue = 0;
9680let addrMode = PostInc;
9681let accessSize = HalfWordAccess;
9682let mayLoad = 1;
9683let Uses = [CS];
9684let Constraints = "$Rx32 = $Rx32in";
9685}
9686def L2_loadrh_pcr : HInst<
9687(outs IntRegs:$Rd32, IntRegs:$Rx32),
9688(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9689"$Rd32 = memh($Rx32++I:circ($Mu2))",
9690tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9691let Inst{12-5} = 0b00010000;
9692let Inst{31-21} = 0b10011001010;
9693let hasNewValue = 1;
9694let opNewValue = 0;
9695let addrMode = PostInc;
9696let accessSize = HalfWordAccess;
9697let mayLoad = 1;
9698let Uses = [CS];
9699let Constraints = "$Rx32 = $Rx32in";
9700}
9701def L2_loadrh_pi : HInst<
9702(outs IntRegs:$Rd32, IntRegs:$Rx32),
9703(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9704"$Rd32 = memh($Rx32++#$Ii)",
9705tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9706let Inst{13-9} = 0b00000;
9707let Inst{31-21} = 0b10011011010;
9708let hasNewValue = 1;
9709let opNewValue = 0;
9710let addrMode = PostInc;
9711let accessSize = HalfWordAccess;
9712let mayLoad = 1;
9713let BaseOpcode = "L2_loadrh_pi";
9714let CextOpcode = "L2_loadrh";
9715let isPredicable = 1;
9716let Constraints = "$Rx32 = $Rx32in";
9717}
9718def L2_loadrh_pr : HInst<
9719(outs IntRegs:$Rd32, IntRegs:$Rx32),
9720(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9721"$Rd32 = memh($Rx32++$Mu2)",
9722tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9723let Inst{12-5} = 0b00000000;
9724let Inst{31-21} = 0b10011101010;
9725let hasNewValue = 1;
9726let opNewValue = 0;
9727let addrMode = PostInc;
9728let accessSize = HalfWordAccess;
9729let mayLoad = 1;
9730let Constraints = "$Rx32 = $Rx32in";
9731}
9732def L2_loadrh_zomap : HInst<
9733(outs IntRegs:$Rd32),
9734(ins IntRegs:$Rs32),
9735"$Rd32 = memh($Rs32)",
9736tc_4222e6bf, TypeMAPPING> {
9737let hasNewValue = 1;
9738let opNewValue = 0;
9739let isPseudo = 1;
9740let isCodeGenOnly = 1;
9741}
9742def L2_loadrhgp : HInst<
9743(outs IntRegs:$Rd32),
9744(ins u31_1Imm:$Ii),
9745"$Rd32 = memh(gp+#$Ii)",
9746tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9747let Inst{24-21} = 0b1010;
9748let Inst{31-27} = 0b01001;
9749let hasNewValue = 1;
9750let opNewValue = 0;
9751let accessSize = HalfWordAccess;
9752let mayLoad = 1;
9753let Uses = [GP];
9754let BaseOpcode = "L4_loadrh_abs";
9755let isPredicable = 1;
9756let opExtendable = 1;
9757let isExtentSigned = 0;
9758let opExtentBits = 17;
9759let opExtentAlign = 1;
9760}
9761def L2_loadri_io : HInst<
9762(outs IntRegs:$Rd32),
9763(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9764"$Rd32 = memw($Rs32+#$Ii)",
9765tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9766let Inst{24-21} = 0b1100;
9767let Inst{31-27} = 0b10010;
9768let hasNewValue = 1;
9769let opNewValue = 0;
9770let addrMode = BaseImmOffset;
9771let accessSize = WordAccess;
9772let mayLoad = 1;
9773let BaseOpcode = "L2_loadri_io";
9774let CextOpcode = "L2_loadri";
9775let isPredicable = 1;
9776let isExtendable = 1;
9777let opExtendable = 2;
9778let isExtentSigned = 1;
9779let opExtentBits = 13;
9780let opExtentAlign = 2;
9781}
9782def L2_loadri_pbr : HInst<
9783(outs IntRegs:$Rd32, IntRegs:$Rx32),
9784(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9785"$Rd32 = memw($Rx32++$Mu2:brev)",
9786tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9787let Inst{12-5} = 0b00000000;
9788let Inst{31-21} = 0b10011111100;
9789let hasNewValue = 1;
9790let opNewValue = 0;
9791let addrMode = PostInc;
9792let accessSize = WordAccess;
9793let mayLoad = 1;
9794let Constraints = "$Rx32 = $Rx32in";
9795}
9796def L2_loadri_pci : HInst<
9797(outs IntRegs:$Rd32, IntRegs:$Rx32),
9798(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9799"$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9800tc_5ceb2f9e, TypeLD>, Enc_27fd0e {
9801let Inst{12-9} = 0b0000;
9802let Inst{31-21} = 0b10011001100;
9803let hasNewValue = 1;
9804let opNewValue = 0;
9805let addrMode = PostInc;
9806let accessSize = WordAccess;
9807let mayLoad = 1;
9808let Uses = [CS];
9809let Constraints = "$Rx32 = $Rx32in";
9810}
9811def L2_loadri_pcr : HInst<
9812(outs IntRegs:$Rd32, IntRegs:$Rx32),
9813(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9814"$Rd32 = memw($Rx32++I:circ($Mu2))",
9815tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9816let Inst{12-5} = 0b00010000;
9817let Inst{31-21} = 0b10011001100;
9818let hasNewValue = 1;
9819let opNewValue = 0;
9820let addrMode = PostInc;
9821let accessSize = WordAccess;
9822let mayLoad = 1;
9823let Uses = [CS];
9824let Constraints = "$Rx32 = $Rx32in";
9825}
9826def L2_loadri_pi : HInst<
9827(outs IntRegs:$Rd32, IntRegs:$Rx32),
9828(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9829"$Rd32 = memw($Rx32++#$Ii)",
9830tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9831let Inst{13-9} = 0b00000;
9832let Inst{31-21} = 0b10011011100;
9833let hasNewValue = 1;
9834let opNewValue = 0;
9835let addrMode = PostInc;
9836let accessSize = WordAccess;
9837let mayLoad = 1;
9838let BaseOpcode = "L2_loadri_pi";
9839let CextOpcode = "L2_loadri";
9840let isPredicable = 1;
9841let Constraints = "$Rx32 = $Rx32in";
9842}
9843def L2_loadri_pr : HInst<
9844(outs IntRegs:$Rd32, IntRegs:$Rx32),
9845(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9846"$Rd32 = memw($Rx32++$Mu2)",
9847tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9848let Inst{12-5} = 0b00000000;
9849let Inst{31-21} = 0b10011101100;
9850let hasNewValue = 1;
9851let opNewValue = 0;
9852let addrMode = PostInc;
9853let accessSize = WordAccess;
9854let mayLoad = 1;
9855let Constraints = "$Rx32 = $Rx32in";
9856}
9857def L2_loadri_zomap : HInst<
9858(outs IntRegs:$Rd32),
9859(ins IntRegs:$Rs32),
9860"$Rd32 = memw($Rs32)",
9861tc_4222e6bf, TypeMAPPING> {
9862let hasNewValue = 1;
9863let opNewValue = 0;
9864let isPseudo = 1;
9865let isCodeGenOnly = 1;
9866}
9867def L2_loadrigp : HInst<
9868(outs IntRegs:$Rd32),
9869(ins u30_2Imm:$Ii),
9870"$Rd32 = memw(gp+#$Ii)",
9871tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9872let Inst{24-21} = 0b1100;
9873let Inst{31-27} = 0b01001;
9874let hasNewValue = 1;
9875let opNewValue = 0;
9876let accessSize = WordAccess;
9877let mayLoad = 1;
9878let Uses = [GP];
9879let BaseOpcode = "L4_loadri_abs";
9880let isPredicable = 1;
9881let opExtendable = 1;
9882let isExtentSigned = 0;
9883let opExtentBits = 18;
9884let opExtentAlign = 2;
9885}
9886def L2_loadrub_io : HInst<
9887(outs IntRegs:$Rd32),
9888(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9889"$Rd32 = memub($Rs32+#$Ii)",
9890tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9891let Inst{24-21} = 0b1001;
9892let Inst{31-27} = 0b10010;
9893let hasNewValue = 1;
9894let opNewValue = 0;
9895let addrMode = BaseImmOffset;
9896let accessSize = ByteAccess;
9897let mayLoad = 1;
9898let BaseOpcode = "L2_loadrub_io";
9899let CextOpcode = "L2_loadrub";
9900let isPredicable = 1;
9901let isExtendable = 1;
9902let opExtendable = 2;
9903let isExtentSigned = 1;
9904let opExtentBits = 11;
9905let opExtentAlign = 0;
9906}
9907def L2_loadrub_pbr : HInst<
9908(outs IntRegs:$Rd32, IntRegs:$Rx32),
9909(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9910"$Rd32 = memub($Rx32++$Mu2:brev)",
9911tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9912let Inst{12-5} = 0b00000000;
9913let Inst{31-21} = 0b10011111001;
9914let hasNewValue = 1;
9915let opNewValue = 0;
9916let addrMode = PostInc;
9917let accessSize = ByteAccess;
9918let mayLoad = 1;
9919let Constraints = "$Rx32 = $Rx32in";
9920}
9921def L2_loadrub_pci : HInst<
9922(outs IntRegs:$Rd32, IntRegs:$Rx32),
9923(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9924"$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9925tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9926let Inst{12-9} = 0b0000;
9927let Inst{31-21} = 0b10011001001;
9928let hasNewValue = 1;
9929let opNewValue = 0;
9930let addrMode = PostInc;
9931let accessSize = ByteAccess;
9932let mayLoad = 1;
9933let Uses = [CS];
9934let Constraints = "$Rx32 = $Rx32in";
9935}
9936def L2_loadrub_pcr : HInst<
9937(outs IntRegs:$Rd32, IntRegs:$Rx32),
9938(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9939"$Rd32 = memub($Rx32++I:circ($Mu2))",
9940tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9941let Inst{12-5} = 0b00010000;
9942let Inst{31-21} = 0b10011001001;
9943let hasNewValue = 1;
9944let opNewValue = 0;
9945let addrMode = PostInc;
9946let accessSize = ByteAccess;
9947let mayLoad = 1;
9948let Uses = [CS];
9949let Constraints = "$Rx32 = $Rx32in";
9950}
9951def L2_loadrub_pi : HInst<
9952(outs IntRegs:$Rd32, IntRegs:$Rx32),
9953(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9954"$Rd32 = memub($Rx32++#$Ii)",
9955tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9956let Inst{13-9} = 0b00000;
9957let Inst{31-21} = 0b10011011001;
9958let hasNewValue = 1;
9959let opNewValue = 0;
9960let addrMode = PostInc;
9961let accessSize = ByteAccess;
9962let mayLoad = 1;
9963let BaseOpcode = "L2_loadrub_pi";
9964let CextOpcode = "L2_loadrub";
9965let isPredicable = 1;
9966let Constraints = "$Rx32 = $Rx32in";
9967}
9968def L2_loadrub_pr : HInst<
9969(outs IntRegs:$Rd32, IntRegs:$Rx32),
9970(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9971"$Rd32 = memub($Rx32++$Mu2)",
9972tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9973let Inst{12-5} = 0b00000000;
9974let Inst{31-21} = 0b10011101001;
9975let hasNewValue = 1;
9976let opNewValue = 0;
9977let addrMode = PostInc;
9978let accessSize = ByteAccess;
9979let mayLoad = 1;
9980let Constraints = "$Rx32 = $Rx32in";
9981}
9982def L2_loadrub_zomap : HInst<
9983(outs IntRegs:$Rd32),
9984(ins IntRegs:$Rs32),
9985"$Rd32 = memub($Rs32)",
9986tc_4222e6bf, TypeMAPPING> {
9987let hasNewValue = 1;
9988let opNewValue = 0;
9989let isPseudo = 1;
9990let isCodeGenOnly = 1;
9991}
9992def L2_loadrubgp : HInst<
9993(outs IntRegs:$Rd32),
9994(ins u32_0Imm:$Ii),
9995"$Rd32 = memub(gp+#$Ii)",
9996tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9997let Inst{24-21} = 0b1001;
9998let Inst{31-27} = 0b01001;
9999let hasNewValue = 1;
10000let opNewValue = 0;
10001let accessSize = ByteAccess;
10002let mayLoad = 1;
10003let Uses = [GP];
10004let BaseOpcode = "L4_loadrub_abs";
10005let isPredicable = 1;
10006let opExtendable = 1;
10007let isExtentSigned = 0;
10008let opExtentBits = 16;
10009let opExtentAlign = 0;
10010}
10011def L2_loadruh_io : HInst<
10012(outs IntRegs:$Rd32),
10013(ins IntRegs:$Rs32, s31_1Imm:$Ii),
10014"$Rd32 = memuh($Rs32+#$Ii)",
10015tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
10016let Inst{24-21} = 0b1011;
10017let Inst{31-27} = 0b10010;
10018let hasNewValue = 1;
10019let opNewValue = 0;
10020let addrMode = BaseImmOffset;
10021let accessSize = HalfWordAccess;
10022let mayLoad = 1;
10023let BaseOpcode = "L2_loadruh_io";
10024let CextOpcode = "L2_loadruh";
10025let isPredicable = 1;
10026let isExtendable = 1;
10027let opExtendable = 2;
10028let isExtentSigned = 1;
10029let opExtentBits = 12;
10030let opExtentAlign = 1;
10031}
10032def L2_loadruh_pbr : HInst<
10033(outs IntRegs:$Rd32, IntRegs:$Rx32),
10034(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10035"$Rd32 = memuh($Rx32++$Mu2:brev)",
10036tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10037let Inst{12-5} = 0b00000000;
10038let Inst{31-21} = 0b10011111011;
10039let hasNewValue = 1;
10040let opNewValue = 0;
10041let addrMode = PostInc;
10042let accessSize = HalfWordAccess;
10043let mayLoad = 1;
10044let Constraints = "$Rx32 = $Rx32in";
10045}
10046def L2_loadruh_pci : HInst<
10047(outs IntRegs:$Rd32, IntRegs:$Rx32),
10048(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
10049"$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
10050tc_5ceb2f9e, TypeLD>, Enc_e83554 {
10051let Inst{12-9} = 0b0000;
10052let Inst{31-21} = 0b10011001011;
10053let hasNewValue = 1;
10054let opNewValue = 0;
10055let addrMode = PostInc;
10056let accessSize = HalfWordAccess;
10057let mayLoad = 1;
10058let Uses = [CS];
10059let Constraints = "$Rx32 = $Rx32in";
10060}
10061def L2_loadruh_pcr : HInst<
10062(outs IntRegs:$Rd32, IntRegs:$Rx32),
10063(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10064"$Rd32 = memuh($Rx32++I:circ($Mu2))",
10065tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10066let Inst{12-5} = 0b00010000;
10067let Inst{31-21} = 0b10011001011;
10068let hasNewValue = 1;
10069let opNewValue = 0;
10070let addrMode = PostInc;
10071let accessSize = HalfWordAccess;
10072let mayLoad = 1;
10073let Uses = [CS];
10074let Constraints = "$Rx32 = $Rx32in";
10075}
10076def L2_loadruh_pi : HInst<
10077(outs IntRegs:$Rd32, IntRegs:$Rx32),
10078(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
10079"$Rd32 = memuh($Rx32++#$Ii)",
10080tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
10081let Inst{13-9} = 0b00000;
10082let Inst{31-21} = 0b10011011011;
10083let hasNewValue = 1;
10084let opNewValue = 0;
10085let addrMode = PostInc;
10086let accessSize = HalfWordAccess;
10087let mayLoad = 1;
10088let BaseOpcode = "L2_loadruh_pi";
10089let CextOpcode = "L2_loadruh";
10090let isPredicable = 1;
10091let Constraints = "$Rx32 = $Rx32in";
10092}
10093def L2_loadruh_pr : HInst<
10094(outs IntRegs:$Rd32, IntRegs:$Rx32),
10095(ins IntRegs:$Rx32in, ModRegs:$Mu2),
10096"$Rd32 = memuh($Rx32++$Mu2)",
10097tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10098let Inst{12-5} = 0b00000000;
10099let Inst{31-21} = 0b10011101011;
10100let hasNewValue = 1;
10101let opNewValue = 0;
10102let addrMode = PostInc;
10103let accessSize = HalfWordAccess;
10104let mayLoad = 1;
10105let Constraints = "$Rx32 = $Rx32in";
10106}
10107def L2_loadruh_zomap : HInst<
10108(outs IntRegs:$Rd32),
10109(ins IntRegs:$Rs32),
10110"$Rd32 = memuh($Rs32)",
10111tc_4222e6bf, TypeMAPPING> {
10112let hasNewValue = 1;
10113let opNewValue = 0;
10114let isPseudo = 1;
10115let isCodeGenOnly = 1;
10116}
10117def L2_loadruhgp : HInst<
10118(outs IntRegs:$Rd32),
10119(ins u31_1Imm:$Ii),
10120"$Rd32 = memuh(gp+#$Ii)",
10121tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10122let Inst{24-21} = 0b1011;
10123let Inst{31-27} = 0b01001;
10124let hasNewValue = 1;
10125let opNewValue = 0;
10126let accessSize = HalfWordAccess;
10127let mayLoad = 1;
10128let Uses = [GP];
10129let BaseOpcode = "L4_loadruh_abs";
10130let isPredicable = 1;
10131let opExtendable = 1;
10132let isExtentSigned = 0;
10133let opExtentBits = 17;
10134let opExtentAlign = 1;
10135}
10136def L2_loadw_aq : HInst<
10137(outs IntRegs:$Rd32),
10138(ins IntRegs:$Rs32),
10139"$Rd32 = memw_aq($Rs32)",
10140tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> {
10141let Inst{13-5} = 0b001000000;
10142let Inst{31-21} = 0b10010010000;
10143let hasNewValue = 1;
10144let opNewValue = 0;
10145let accessSize = WordAccess;
10146let mayLoad = 1;
10147}
10148def L2_loadw_locked : HInst<
10149(outs IntRegs:$Rd32),
10150(ins IntRegs:$Rs32),
10151"$Rd32 = memw_locked($Rs32)",
10152tc_64b00d8a, TypeLD>, Enc_5e2823 {
10153let Inst{13-5} = 0b000000000;
10154let Inst{31-21} = 0b10010010000;
10155let hasNewValue = 1;
10156let opNewValue = 0;
10157let accessSize = WordAccess;
10158let mayLoad = 1;
10159let isSoloAX = 1;
10160}
10161def L2_ploadrbf_io : HInst<
10162(outs IntRegs:$Rd32),
10163(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10164"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10165tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10166let Inst{13-13} = 0b0;
10167let Inst{31-21} = 0b01000101000;
10168let isPredicated = 1;
10169let isPredicatedFalse = 1;
10170let hasNewValue = 1;
10171let opNewValue = 0;
10172let addrMode = BaseImmOffset;
10173let accessSize = ByteAccess;
10174let mayLoad = 1;
10175let BaseOpcode = "L2_loadrb_io";
10176let CextOpcode = "L2_loadrb";
10177let isExtendable = 1;
10178let opExtendable = 3;
10179let isExtentSigned = 0;
10180let opExtentBits = 6;
10181let opExtentAlign = 0;
10182}
10183def L2_ploadrbf_pi : HInst<
10184(outs IntRegs:$Rd32, IntRegs:$Rx32),
10185(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10186"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10187tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10188let Inst{13-11} = 0b101;
10189let Inst{31-21} = 0b10011011000;
10190let isPredicated = 1;
10191let isPredicatedFalse = 1;
10192let hasNewValue = 1;
10193let opNewValue = 0;
10194let addrMode = PostInc;
10195let accessSize = ByteAccess;
10196let mayLoad = 1;
10197let BaseOpcode = "L2_loadrb_pi";
10198let Constraints = "$Rx32 = $Rx32in";
10199}
10200def L2_ploadrbf_zomap : HInst<
10201(outs IntRegs:$Rd32),
10202(ins PredRegs:$Pt4, IntRegs:$Rs32),
10203"if (!$Pt4) $Rd32 = memb($Rs32)",
10204tc_fedb7e19, TypeMAPPING> {
10205let hasNewValue = 1;
10206let opNewValue = 0;
10207let isPseudo = 1;
10208let isCodeGenOnly = 1;
10209}
10210def L2_ploadrbfnew_io : HInst<
10211(outs IntRegs:$Rd32),
10212(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10213"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10214tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10215let Inst{13-13} = 0b0;
10216let Inst{31-21} = 0b01000111000;
10217let isPredicated = 1;
10218let isPredicatedFalse = 1;
10219let hasNewValue = 1;
10220let opNewValue = 0;
10221let addrMode = BaseImmOffset;
10222let accessSize = ByteAccess;
10223let isPredicatedNew = 1;
10224let mayLoad = 1;
10225let BaseOpcode = "L2_loadrb_io";
10226let CextOpcode = "L2_loadrb";
10227let isExtendable = 1;
10228let opExtendable = 3;
10229let isExtentSigned = 0;
10230let opExtentBits = 6;
10231let opExtentAlign = 0;
10232}
10233def L2_ploadrbfnew_pi : HInst<
10234(outs IntRegs:$Rd32, IntRegs:$Rx32),
10235(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10236"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10237tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10238let Inst{13-11} = 0b111;
10239let Inst{31-21} = 0b10011011000;
10240let isPredicated = 1;
10241let isPredicatedFalse = 1;
10242let hasNewValue = 1;
10243let opNewValue = 0;
10244let addrMode = PostInc;
10245let accessSize = ByteAccess;
10246let isPredicatedNew = 1;
10247let mayLoad = 1;
10248let BaseOpcode = "L2_loadrb_pi";
10249let Constraints = "$Rx32 = $Rx32in";
10250}
10251def L2_ploadrbfnew_zomap : HInst<
10252(outs IntRegs:$Rd32),
10253(ins PredRegs:$Pt4, IntRegs:$Rs32),
10254"if (!$Pt4.new) $Rd32 = memb($Rs32)",
10255tc_075c8dd8, TypeMAPPING> {
10256let hasNewValue = 1;
10257let opNewValue = 0;
10258let isPseudo = 1;
10259let isCodeGenOnly = 1;
10260}
10261def L2_ploadrbt_io : HInst<
10262(outs IntRegs:$Rd32),
10263(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10264"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10265tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10266let Inst{13-13} = 0b0;
10267let Inst{31-21} = 0b01000001000;
10268let isPredicated = 1;
10269let hasNewValue = 1;
10270let opNewValue = 0;
10271let addrMode = BaseImmOffset;
10272let accessSize = ByteAccess;
10273let mayLoad = 1;
10274let BaseOpcode = "L2_loadrb_io";
10275let CextOpcode = "L2_loadrb";
10276let isExtendable = 1;
10277let opExtendable = 3;
10278let isExtentSigned = 0;
10279let opExtentBits = 6;
10280let opExtentAlign = 0;
10281}
10282def L2_ploadrbt_pi : HInst<
10283(outs IntRegs:$Rd32, IntRegs:$Rx32),
10284(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10285"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10286tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10287let Inst{13-11} = 0b100;
10288let Inst{31-21} = 0b10011011000;
10289let isPredicated = 1;
10290let hasNewValue = 1;
10291let opNewValue = 0;
10292let addrMode = PostInc;
10293let accessSize = ByteAccess;
10294let mayLoad = 1;
10295let BaseOpcode = "L2_loadrb_pi";
10296let Constraints = "$Rx32 = $Rx32in";
10297}
10298def L2_ploadrbt_zomap : HInst<
10299(outs IntRegs:$Rd32),
10300(ins PredRegs:$Pt4, IntRegs:$Rs32),
10301"if ($Pt4) $Rd32 = memb($Rs32)",
10302tc_fedb7e19, TypeMAPPING> {
10303let hasNewValue = 1;
10304let opNewValue = 0;
10305let isPseudo = 1;
10306let isCodeGenOnly = 1;
10307}
10308def L2_ploadrbtnew_io : HInst<
10309(outs IntRegs:$Rd32),
10310(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10311"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10312tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10313let Inst{13-13} = 0b0;
10314let Inst{31-21} = 0b01000011000;
10315let isPredicated = 1;
10316let hasNewValue = 1;
10317let opNewValue = 0;
10318let addrMode = BaseImmOffset;
10319let accessSize = ByteAccess;
10320let isPredicatedNew = 1;
10321let mayLoad = 1;
10322let BaseOpcode = "L2_loadrb_io";
10323let CextOpcode = "L2_loadrb";
10324let isExtendable = 1;
10325let opExtendable = 3;
10326let isExtentSigned = 0;
10327let opExtentBits = 6;
10328let opExtentAlign = 0;
10329}
10330def L2_ploadrbtnew_pi : HInst<
10331(outs IntRegs:$Rd32, IntRegs:$Rx32),
10332(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10333"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10334tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10335let Inst{13-11} = 0b110;
10336let Inst{31-21} = 0b10011011000;
10337let isPredicated = 1;
10338let hasNewValue = 1;
10339let opNewValue = 0;
10340let addrMode = PostInc;
10341let accessSize = ByteAccess;
10342let isPredicatedNew = 1;
10343let mayLoad = 1;
10344let BaseOpcode = "L2_loadrb_pi";
10345let Constraints = "$Rx32 = $Rx32in";
10346}
10347def L2_ploadrbtnew_zomap : HInst<
10348(outs IntRegs:$Rd32),
10349(ins PredRegs:$Pt4, IntRegs:$Rs32),
10350"if ($Pt4.new) $Rd32 = memb($Rs32)",
10351tc_075c8dd8, TypeMAPPING> {
10352let hasNewValue = 1;
10353let opNewValue = 0;
10354let isPseudo = 1;
10355let isCodeGenOnly = 1;
10356}
10357def L2_ploadrdf_io : HInst<
10358(outs DoubleRegs:$Rdd32),
10359(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10360"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10361tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10362let Inst{13-13} = 0b0;
10363let Inst{31-21} = 0b01000101110;
10364let isPredicated = 1;
10365let isPredicatedFalse = 1;
10366let addrMode = BaseImmOffset;
10367let accessSize = DoubleWordAccess;
10368let mayLoad = 1;
10369let BaseOpcode = "L2_loadrd_io";
10370let CextOpcode = "L2_loadrd";
10371let isExtendable = 1;
10372let opExtendable = 3;
10373let isExtentSigned = 0;
10374let opExtentBits = 9;
10375let opExtentAlign = 3;
10376}
10377def L2_ploadrdf_pi : HInst<
10378(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10379(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10380"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10381tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10382let Inst{13-11} = 0b101;
10383let Inst{31-21} = 0b10011011110;
10384let isPredicated = 1;
10385let isPredicatedFalse = 1;
10386let addrMode = PostInc;
10387let accessSize = DoubleWordAccess;
10388let mayLoad = 1;
10389let BaseOpcode = "L2_loadrd_pi";
10390let Constraints = "$Rx32 = $Rx32in";
10391}
10392def L2_ploadrdf_zomap : HInst<
10393(outs DoubleRegs:$Rdd32),
10394(ins PredRegs:$Pt4, IntRegs:$Rs32),
10395"if (!$Pt4) $Rdd32 = memd($Rs32)",
10396tc_fedb7e19, TypeMAPPING> {
10397let isPseudo = 1;
10398let isCodeGenOnly = 1;
10399}
10400def L2_ploadrdfnew_io : HInst<
10401(outs DoubleRegs:$Rdd32),
10402(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10403"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10404tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10405let Inst{13-13} = 0b0;
10406let Inst{31-21} = 0b01000111110;
10407let isPredicated = 1;
10408let isPredicatedFalse = 1;
10409let addrMode = BaseImmOffset;
10410let accessSize = DoubleWordAccess;
10411let isPredicatedNew = 1;
10412let mayLoad = 1;
10413let BaseOpcode = "L2_loadrd_io";
10414let CextOpcode = "L2_loadrd";
10415let isExtendable = 1;
10416let opExtendable = 3;
10417let isExtentSigned = 0;
10418let opExtentBits = 9;
10419let opExtentAlign = 3;
10420}
10421def L2_ploadrdfnew_pi : HInst<
10422(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10423(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10424"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10425tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10426let Inst{13-11} = 0b111;
10427let Inst{31-21} = 0b10011011110;
10428let isPredicated = 1;
10429let isPredicatedFalse = 1;
10430let addrMode = PostInc;
10431let accessSize = DoubleWordAccess;
10432let isPredicatedNew = 1;
10433let mayLoad = 1;
10434let BaseOpcode = "L2_loadrd_pi";
10435let Constraints = "$Rx32 = $Rx32in";
10436}
10437def L2_ploadrdfnew_zomap : HInst<
10438(outs DoubleRegs:$Rdd32),
10439(ins PredRegs:$Pt4, IntRegs:$Rs32),
10440"if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10441tc_075c8dd8, TypeMAPPING> {
10442let isPseudo = 1;
10443let isCodeGenOnly = 1;
10444}
10445def L2_ploadrdt_io : HInst<
10446(outs DoubleRegs:$Rdd32),
10447(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10448"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10449tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10450let Inst{13-13} = 0b0;
10451let Inst{31-21} = 0b01000001110;
10452let isPredicated = 1;
10453let addrMode = BaseImmOffset;
10454let accessSize = DoubleWordAccess;
10455let mayLoad = 1;
10456let BaseOpcode = "L2_loadrd_io";
10457let CextOpcode = "L2_loadrd";
10458let isExtendable = 1;
10459let opExtendable = 3;
10460let isExtentSigned = 0;
10461let opExtentBits = 9;
10462let opExtentAlign = 3;
10463}
10464def L2_ploadrdt_pi : HInst<
10465(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10466(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10467"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10468tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10469let Inst{13-11} = 0b100;
10470let Inst{31-21} = 0b10011011110;
10471let isPredicated = 1;
10472let addrMode = PostInc;
10473let accessSize = DoubleWordAccess;
10474let mayLoad = 1;
10475let BaseOpcode = "L2_loadrd_pi";
10476let Constraints = "$Rx32 = $Rx32in";
10477}
10478def L2_ploadrdt_zomap : HInst<
10479(outs DoubleRegs:$Rdd32),
10480(ins PredRegs:$Pt4, IntRegs:$Rs32),
10481"if ($Pt4) $Rdd32 = memd($Rs32)",
10482tc_fedb7e19, TypeMAPPING> {
10483let isPseudo = 1;
10484let isCodeGenOnly = 1;
10485}
10486def L2_ploadrdtnew_io : HInst<
10487(outs DoubleRegs:$Rdd32),
10488(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10489"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10490tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10491let Inst{13-13} = 0b0;
10492let Inst{31-21} = 0b01000011110;
10493let isPredicated = 1;
10494let addrMode = BaseImmOffset;
10495let accessSize = DoubleWordAccess;
10496let isPredicatedNew = 1;
10497let mayLoad = 1;
10498let BaseOpcode = "L2_loadrd_io";
10499let CextOpcode = "L2_loadrd";
10500let isExtendable = 1;
10501let opExtendable = 3;
10502let isExtentSigned = 0;
10503let opExtentBits = 9;
10504let opExtentAlign = 3;
10505}
10506def L2_ploadrdtnew_pi : HInst<
10507(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10508(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10509"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10510tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10511let Inst{13-11} = 0b110;
10512let Inst{31-21} = 0b10011011110;
10513let isPredicated = 1;
10514let addrMode = PostInc;
10515let accessSize = DoubleWordAccess;
10516let isPredicatedNew = 1;
10517let mayLoad = 1;
10518let BaseOpcode = "L2_loadrd_pi";
10519let Constraints = "$Rx32 = $Rx32in";
10520}
10521def L2_ploadrdtnew_zomap : HInst<
10522(outs DoubleRegs:$Rdd32),
10523(ins PredRegs:$Pt4, IntRegs:$Rs32),
10524"if ($Pt4.new) $Rdd32 = memd($Rs32)",
10525tc_075c8dd8, TypeMAPPING> {
10526let isPseudo = 1;
10527let isCodeGenOnly = 1;
10528}
10529def L2_ploadrhf_io : HInst<
10530(outs IntRegs:$Rd32),
10531(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10532"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10533tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10534let Inst{13-13} = 0b0;
10535let Inst{31-21} = 0b01000101010;
10536let isPredicated = 1;
10537let isPredicatedFalse = 1;
10538let hasNewValue = 1;
10539let opNewValue = 0;
10540let addrMode = BaseImmOffset;
10541let accessSize = HalfWordAccess;
10542let mayLoad = 1;
10543let BaseOpcode = "L2_loadrh_io";
10544let CextOpcode = "L2_loadrh";
10545let isExtendable = 1;
10546let opExtendable = 3;
10547let isExtentSigned = 0;
10548let opExtentBits = 7;
10549let opExtentAlign = 1;
10550}
10551def L2_ploadrhf_pi : HInst<
10552(outs IntRegs:$Rd32, IntRegs:$Rx32),
10553(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10554"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10555tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10556let Inst{13-11} = 0b101;
10557let Inst{31-21} = 0b10011011010;
10558let isPredicated = 1;
10559let isPredicatedFalse = 1;
10560let hasNewValue = 1;
10561let opNewValue = 0;
10562let addrMode = PostInc;
10563let accessSize = HalfWordAccess;
10564let mayLoad = 1;
10565let BaseOpcode = "L2_loadrh_pi";
10566let Constraints = "$Rx32 = $Rx32in";
10567}
10568def L2_ploadrhf_zomap : HInst<
10569(outs IntRegs:$Rd32),
10570(ins PredRegs:$Pt4, IntRegs:$Rs32),
10571"if (!$Pt4) $Rd32 = memh($Rs32)",
10572tc_fedb7e19, TypeMAPPING> {
10573let hasNewValue = 1;
10574let opNewValue = 0;
10575let isPseudo = 1;
10576let isCodeGenOnly = 1;
10577}
10578def L2_ploadrhfnew_io : HInst<
10579(outs IntRegs:$Rd32),
10580(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10581"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10582tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10583let Inst{13-13} = 0b0;
10584let Inst{31-21} = 0b01000111010;
10585let isPredicated = 1;
10586let isPredicatedFalse = 1;
10587let hasNewValue = 1;
10588let opNewValue = 0;
10589let addrMode = BaseImmOffset;
10590let accessSize = HalfWordAccess;
10591let isPredicatedNew = 1;
10592let mayLoad = 1;
10593let BaseOpcode = "L2_loadrh_io";
10594let CextOpcode = "L2_loadrh";
10595let isExtendable = 1;
10596let opExtendable = 3;
10597let isExtentSigned = 0;
10598let opExtentBits = 7;
10599let opExtentAlign = 1;
10600}
10601def L2_ploadrhfnew_pi : HInst<
10602(outs IntRegs:$Rd32, IntRegs:$Rx32),
10603(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10604"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10605tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10606let Inst{13-11} = 0b111;
10607let Inst{31-21} = 0b10011011010;
10608let isPredicated = 1;
10609let isPredicatedFalse = 1;
10610let hasNewValue = 1;
10611let opNewValue = 0;
10612let addrMode = PostInc;
10613let accessSize = HalfWordAccess;
10614let isPredicatedNew = 1;
10615let mayLoad = 1;
10616let BaseOpcode = "L2_loadrh_pi";
10617let Constraints = "$Rx32 = $Rx32in";
10618}
10619def L2_ploadrhfnew_zomap : HInst<
10620(outs IntRegs:$Rd32),
10621(ins PredRegs:$Pt4, IntRegs:$Rs32),
10622"if (!$Pt4.new) $Rd32 = memh($Rs32)",
10623tc_075c8dd8, TypeMAPPING> {
10624let hasNewValue = 1;
10625let opNewValue = 0;
10626let isPseudo = 1;
10627let isCodeGenOnly = 1;
10628}
10629def L2_ploadrht_io : HInst<
10630(outs IntRegs:$Rd32),
10631(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10632"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10633tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10634let Inst{13-13} = 0b0;
10635let Inst{31-21} = 0b01000001010;
10636let isPredicated = 1;
10637let hasNewValue = 1;
10638let opNewValue = 0;
10639let addrMode = BaseImmOffset;
10640let accessSize = HalfWordAccess;
10641let mayLoad = 1;
10642let BaseOpcode = "L2_loadrh_io";
10643let CextOpcode = "L2_loadrh";
10644let isExtendable = 1;
10645let opExtendable = 3;
10646let isExtentSigned = 0;
10647let opExtentBits = 7;
10648let opExtentAlign = 1;
10649}
10650def L2_ploadrht_pi : HInst<
10651(outs IntRegs:$Rd32, IntRegs:$Rx32),
10652(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10653"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10654tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10655let Inst{13-11} = 0b100;
10656let Inst{31-21} = 0b10011011010;
10657let isPredicated = 1;
10658let hasNewValue = 1;
10659let opNewValue = 0;
10660let addrMode = PostInc;
10661let accessSize = HalfWordAccess;
10662let mayLoad = 1;
10663let BaseOpcode = "L2_loadrh_pi";
10664let Constraints = "$Rx32 = $Rx32in";
10665}
10666def L2_ploadrht_zomap : HInst<
10667(outs IntRegs:$Rd32),
10668(ins PredRegs:$Pt4, IntRegs:$Rs32),
10669"if ($Pt4) $Rd32 = memh($Rs32)",
10670tc_fedb7e19, TypeMAPPING> {
10671let hasNewValue = 1;
10672let opNewValue = 0;
10673let isPseudo = 1;
10674let isCodeGenOnly = 1;
10675}
10676def L2_ploadrhtnew_io : HInst<
10677(outs IntRegs:$Rd32),
10678(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10679"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10680tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10681let Inst{13-13} = 0b0;
10682let Inst{31-21} = 0b01000011010;
10683let isPredicated = 1;
10684let hasNewValue = 1;
10685let opNewValue = 0;
10686let addrMode = BaseImmOffset;
10687let accessSize = HalfWordAccess;
10688let isPredicatedNew = 1;
10689let mayLoad = 1;
10690let BaseOpcode = "L2_loadrh_io";
10691let CextOpcode = "L2_loadrh";
10692let isExtendable = 1;
10693let opExtendable = 3;
10694let isExtentSigned = 0;
10695let opExtentBits = 7;
10696let opExtentAlign = 1;
10697}
10698def L2_ploadrhtnew_pi : HInst<
10699(outs IntRegs:$Rd32, IntRegs:$Rx32),
10700(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10701"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10702tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10703let Inst{13-11} = 0b110;
10704let Inst{31-21} = 0b10011011010;
10705let isPredicated = 1;
10706let hasNewValue = 1;
10707let opNewValue = 0;
10708let addrMode = PostInc;
10709let accessSize = HalfWordAccess;
10710let isPredicatedNew = 1;
10711let mayLoad = 1;
10712let BaseOpcode = "L2_loadrh_pi";
10713let Constraints = "$Rx32 = $Rx32in";
10714}
10715def L2_ploadrhtnew_zomap : HInst<
10716(outs IntRegs:$Rd32),
10717(ins PredRegs:$Pt4, IntRegs:$Rs32),
10718"if ($Pt4.new) $Rd32 = memh($Rs32)",
10719tc_075c8dd8, TypeMAPPING> {
10720let hasNewValue = 1;
10721let opNewValue = 0;
10722let isPseudo = 1;
10723let isCodeGenOnly = 1;
10724}
10725def L2_ploadrif_io : HInst<
10726(outs IntRegs:$Rd32),
10727(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10728"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10729tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10730let Inst{13-13} = 0b0;
10731let Inst{31-21} = 0b01000101100;
10732let isPredicated = 1;
10733let isPredicatedFalse = 1;
10734let hasNewValue = 1;
10735let opNewValue = 0;
10736let addrMode = BaseImmOffset;
10737let accessSize = WordAccess;
10738let mayLoad = 1;
10739let BaseOpcode = "L2_loadri_io";
10740let CextOpcode = "L2_loadri";
10741let isExtendable = 1;
10742let opExtendable = 3;
10743let isExtentSigned = 0;
10744let opExtentBits = 8;
10745let opExtentAlign = 2;
10746}
10747def L2_ploadrif_pi : HInst<
10748(outs IntRegs:$Rd32, IntRegs:$Rx32),
10749(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10750"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10751tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10752let Inst{13-11} = 0b101;
10753let Inst{31-21} = 0b10011011100;
10754let isPredicated = 1;
10755let isPredicatedFalse = 1;
10756let hasNewValue = 1;
10757let opNewValue = 0;
10758let addrMode = PostInc;
10759let accessSize = WordAccess;
10760let mayLoad = 1;
10761let BaseOpcode = "L2_loadri_pi";
10762let Constraints = "$Rx32 = $Rx32in";
10763}
10764def L2_ploadrif_zomap : HInst<
10765(outs IntRegs:$Rd32),
10766(ins PredRegs:$Pt4, IntRegs:$Rs32),
10767"if (!$Pt4) $Rd32 = memw($Rs32)",
10768tc_fedb7e19, TypeMAPPING> {
10769let hasNewValue = 1;
10770let opNewValue = 0;
10771let isPseudo = 1;
10772let isCodeGenOnly = 1;
10773}
10774def L2_ploadrifnew_io : HInst<
10775(outs IntRegs:$Rd32),
10776(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10777"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10778tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10779let Inst{13-13} = 0b0;
10780let Inst{31-21} = 0b01000111100;
10781let isPredicated = 1;
10782let isPredicatedFalse = 1;
10783let hasNewValue = 1;
10784let opNewValue = 0;
10785let addrMode = BaseImmOffset;
10786let accessSize = WordAccess;
10787let isPredicatedNew = 1;
10788let mayLoad = 1;
10789let BaseOpcode = "L2_loadri_io";
10790let CextOpcode = "L2_loadri";
10791let isExtendable = 1;
10792let opExtendable = 3;
10793let isExtentSigned = 0;
10794let opExtentBits = 8;
10795let opExtentAlign = 2;
10796}
10797def L2_ploadrifnew_pi : HInst<
10798(outs IntRegs:$Rd32, IntRegs:$Rx32),
10799(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10800"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10801tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10802let Inst{13-11} = 0b111;
10803let Inst{31-21} = 0b10011011100;
10804let isPredicated = 1;
10805let isPredicatedFalse = 1;
10806let hasNewValue = 1;
10807let opNewValue = 0;
10808let addrMode = PostInc;
10809let accessSize = WordAccess;
10810let isPredicatedNew = 1;
10811let mayLoad = 1;
10812let BaseOpcode = "L2_loadri_pi";
10813let Constraints = "$Rx32 = $Rx32in";
10814}
10815def L2_ploadrifnew_zomap : HInst<
10816(outs IntRegs:$Rd32),
10817(ins PredRegs:$Pt4, IntRegs:$Rs32),
10818"if (!$Pt4.new) $Rd32 = memw($Rs32)",
10819tc_075c8dd8, TypeMAPPING> {
10820let hasNewValue = 1;
10821let opNewValue = 0;
10822let isPseudo = 1;
10823let isCodeGenOnly = 1;
10824}
10825def L2_ploadrit_io : HInst<
10826(outs IntRegs:$Rd32),
10827(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10828"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10829tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10830let Inst{13-13} = 0b0;
10831let Inst{31-21} = 0b01000001100;
10832let isPredicated = 1;
10833let hasNewValue = 1;
10834let opNewValue = 0;
10835let addrMode = BaseImmOffset;
10836let accessSize = WordAccess;
10837let mayLoad = 1;
10838let BaseOpcode = "L2_loadri_io";
10839let CextOpcode = "L2_loadri";
10840let isExtendable = 1;
10841let opExtendable = 3;
10842let isExtentSigned = 0;
10843let opExtentBits = 8;
10844let opExtentAlign = 2;
10845}
10846def L2_ploadrit_pi : HInst<
10847(outs IntRegs:$Rd32, IntRegs:$Rx32),
10848(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10849"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10850tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10851let Inst{13-11} = 0b100;
10852let Inst{31-21} = 0b10011011100;
10853let isPredicated = 1;
10854let hasNewValue = 1;
10855let opNewValue = 0;
10856let addrMode = PostInc;
10857let accessSize = WordAccess;
10858let mayLoad = 1;
10859let BaseOpcode = "L2_loadri_pi";
10860let Constraints = "$Rx32 = $Rx32in";
10861}
10862def L2_ploadrit_zomap : HInst<
10863(outs IntRegs:$Rd32),
10864(ins PredRegs:$Pt4, IntRegs:$Rs32),
10865"if ($Pt4) $Rd32 = memw($Rs32)",
10866tc_fedb7e19, TypeMAPPING> {
10867let hasNewValue = 1;
10868let opNewValue = 0;
10869let isPseudo = 1;
10870let isCodeGenOnly = 1;
10871}
10872def L2_ploadritnew_io : HInst<
10873(outs IntRegs:$Rd32),
10874(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10875"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10876tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10877let Inst{13-13} = 0b0;
10878let Inst{31-21} = 0b01000011100;
10879let isPredicated = 1;
10880let hasNewValue = 1;
10881let opNewValue = 0;
10882let addrMode = BaseImmOffset;
10883let accessSize = WordAccess;
10884let isPredicatedNew = 1;
10885let mayLoad = 1;
10886let BaseOpcode = "L2_loadri_io";
10887let CextOpcode = "L2_loadri";
10888let isExtendable = 1;
10889let opExtendable = 3;
10890let isExtentSigned = 0;
10891let opExtentBits = 8;
10892let opExtentAlign = 2;
10893}
10894def L2_ploadritnew_pi : HInst<
10895(outs IntRegs:$Rd32, IntRegs:$Rx32),
10896(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10897"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10898tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10899let Inst{13-11} = 0b110;
10900let Inst{31-21} = 0b10011011100;
10901let isPredicated = 1;
10902let hasNewValue = 1;
10903let opNewValue = 0;
10904let addrMode = PostInc;
10905let accessSize = WordAccess;
10906let isPredicatedNew = 1;
10907let mayLoad = 1;
10908let BaseOpcode = "L2_loadri_pi";
10909let Constraints = "$Rx32 = $Rx32in";
10910}
10911def L2_ploadritnew_zomap : HInst<
10912(outs IntRegs:$Rd32),
10913(ins PredRegs:$Pt4, IntRegs:$Rs32),
10914"if ($Pt4.new) $Rd32 = memw($Rs32)",
10915tc_075c8dd8, TypeMAPPING> {
10916let hasNewValue = 1;
10917let opNewValue = 0;
10918let isPseudo = 1;
10919let isCodeGenOnly = 1;
10920}
10921def L2_ploadrubf_io : HInst<
10922(outs IntRegs:$Rd32),
10923(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10924"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10925tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10926let Inst{13-13} = 0b0;
10927let Inst{31-21} = 0b01000101001;
10928let isPredicated = 1;
10929let isPredicatedFalse = 1;
10930let hasNewValue = 1;
10931let opNewValue = 0;
10932let addrMode = BaseImmOffset;
10933let accessSize = ByteAccess;
10934let mayLoad = 1;
10935let BaseOpcode = "L2_loadrub_io";
10936let CextOpcode = "L2_loadrub";
10937let isExtendable = 1;
10938let opExtendable = 3;
10939let isExtentSigned = 0;
10940let opExtentBits = 6;
10941let opExtentAlign = 0;
10942}
10943def L2_ploadrubf_pi : HInst<
10944(outs IntRegs:$Rd32, IntRegs:$Rx32),
10945(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10946"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10947tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10948let Inst{13-11} = 0b101;
10949let Inst{31-21} = 0b10011011001;
10950let isPredicated = 1;
10951let isPredicatedFalse = 1;
10952let hasNewValue = 1;
10953let opNewValue = 0;
10954let addrMode = PostInc;
10955let accessSize = ByteAccess;
10956let mayLoad = 1;
10957let BaseOpcode = "L2_loadrub_pi";
10958let Constraints = "$Rx32 = $Rx32in";
10959}
10960def L2_ploadrubf_zomap : HInst<
10961(outs IntRegs:$Rd32),
10962(ins PredRegs:$Pt4, IntRegs:$Rs32),
10963"if (!$Pt4) $Rd32 = memub($Rs32)",
10964tc_fedb7e19, TypeMAPPING> {
10965let hasNewValue = 1;
10966let opNewValue = 0;
10967let isPseudo = 1;
10968let isCodeGenOnly = 1;
10969}
10970def L2_ploadrubfnew_io : HInst<
10971(outs IntRegs:$Rd32),
10972(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10973"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10974tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10975let Inst{13-13} = 0b0;
10976let Inst{31-21} = 0b01000111001;
10977let isPredicated = 1;
10978let isPredicatedFalse = 1;
10979let hasNewValue = 1;
10980let opNewValue = 0;
10981let addrMode = BaseImmOffset;
10982let accessSize = ByteAccess;
10983let isPredicatedNew = 1;
10984let mayLoad = 1;
10985let BaseOpcode = "L2_loadrub_io";
10986let CextOpcode = "L2_loadrub";
10987let isExtendable = 1;
10988let opExtendable = 3;
10989let isExtentSigned = 0;
10990let opExtentBits = 6;
10991let opExtentAlign = 0;
10992}
10993def L2_ploadrubfnew_pi : HInst<
10994(outs IntRegs:$Rd32, IntRegs:$Rx32),
10995(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10996"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10997tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10998let Inst{13-11} = 0b111;
10999let Inst{31-21} = 0b10011011001;
11000let isPredicated = 1;
11001let isPredicatedFalse = 1;
11002let hasNewValue = 1;
11003let opNewValue = 0;
11004let addrMode = PostInc;
11005let accessSize = ByteAccess;
11006let isPredicatedNew = 1;
11007let mayLoad = 1;
11008let BaseOpcode = "L2_loadrub_pi";
11009let Constraints = "$Rx32 = $Rx32in";
11010}
11011def L2_ploadrubfnew_zomap : HInst<
11012(outs IntRegs:$Rd32),
11013(ins PredRegs:$Pt4, IntRegs:$Rs32),
11014"if (!$Pt4.new) $Rd32 = memub($Rs32)",
11015tc_075c8dd8, TypeMAPPING> {
11016let hasNewValue = 1;
11017let opNewValue = 0;
11018let isPseudo = 1;
11019let isCodeGenOnly = 1;
11020}
11021def L2_ploadrubt_io : HInst<
11022(outs IntRegs:$Rd32),
11023(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11024"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
11025tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11026let Inst{13-13} = 0b0;
11027let Inst{31-21} = 0b01000001001;
11028let isPredicated = 1;
11029let hasNewValue = 1;
11030let opNewValue = 0;
11031let addrMode = BaseImmOffset;
11032let accessSize = ByteAccess;
11033let mayLoad = 1;
11034let BaseOpcode = "L2_loadrub_io";
11035let CextOpcode = "L2_loadrub";
11036let isExtendable = 1;
11037let opExtendable = 3;
11038let isExtentSigned = 0;
11039let opExtentBits = 6;
11040let opExtentAlign = 0;
11041}
11042def L2_ploadrubt_pi : HInst<
11043(outs IntRegs:$Rd32, IntRegs:$Rx32),
11044(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11045"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
11046tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
11047let Inst{13-11} = 0b100;
11048let Inst{31-21} = 0b10011011001;
11049let isPredicated = 1;
11050let hasNewValue = 1;
11051let opNewValue = 0;
11052let addrMode = PostInc;
11053let accessSize = ByteAccess;
11054let mayLoad = 1;
11055let BaseOpcode = "L2_loadrub_pi";
11056let Constraints = "$Rx32 = $Rx32in";
11057}
11058def L2_ploadrubt_zomap : HInst<
11059(outs IntRegs:$Rd32),
11060(ins PredRegs:$Pt4, IntRegs:$Rs32),
11061"if ($Pt4) $Rd32 = memub($Rs32)",
11062tc_fedb7e19, TypeMAPPING> {
11063let hasNewValue = 1;
11064let opNewValue = 0;
11065let isPseudo = 1;
11066let isCodeGenOnly = 1;
11067}
11068def L2_ploadrubtnew_io : HInst<
11069(outs IntRegs:$Rd32),
11070(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11071"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11072tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11073let Inst{13-13} = 0b0;
11074let Inst{31-21} = 0b01000011001;
11075let isPredicated = 1;
11076let hasNewValue = 1;
11077let opNewValue = 0;
11078let addrMode = BaseImmOffset;
11079let accessSize = ByteAccess;
11080let isPredicatedNew = 1;
11081let mayLoad = 1;
11082let BaseOpcode = "L2_loadrub_io";
11083let CextOpcode = "L2_loadrub";
11084let isExtendable = 1;
11085let opExtendable = 3;
11086let isExtentSigned = 0;
11087let opExtentBits = 6;
11088let opExtentAlign = 0;
11089}
11090def L2_ploadrubtnew_pi : HInst<
11091(outs IntRegs:$Rd32, IntRegs:$Rx32),
11092(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11093"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11094tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11095let Inst{13-11} = 0b110;
11096let Inst{31-21} = 0b10011011001;
11097let isPredicated = 1;
11098let hasNewValue = 1;
11099let opNewValue = 0;
11100let addrMode = PostInc;
11101let accessSize = ByteAccess;
11102let isPredicatedNew = 1;
11103let mayLoad = 1;
11104let BaseOpcode = "L2_loadrub_pi";
11105let Constraints = "$Rx32 = $Rx32in";
11106}
11107def L2_ploadrubtnew_zomap : HInst<
11108(outs IntRegs:$Rd32),
11109(ins PredRegs:$Pt4, IntRegs:$Rs32),
11110"if ($Pt4.new) $Rd32 = memub($Rs32)",
11111tc_075c8dd8, TypeMAPPING> {
11112let hasNewValue = 1;
11113let opNewValue = 0;
11114let isPseudo = 1;
11115let isCodeGenOnly = 1;
11116}
11117def L2_ploadruhf_io : HInst<
11118(outs IntRegs:$Rd32),
11119(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11120"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11121tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11122let Inst{13-13} = 0b0;
11123let Inst{31-21} = 0b01000101011;
11124let isPredicated = 1;
11125let isPredicatedFalse = 1;
11126let hasNewValue = 1;
11127let opNewValue = 0;
11128let addrMode = BaseImmOffset;
11129let accessSize = HalfWordAccess;
11130let mayLoad = 1;
11131let BaseOpcode = "L2_loadruh_io";
11132let CextOpcode = "L2_loadruh";
11133let isExtendable = 1;
11134let opExtendable = 3;
11135let isExtentSigned = 0;
11136let opExtentBits = 7;
11137let opExtentAlign = 1;
11138}
11139def L2_ploadruhf_pi : HInst<
11140(outs IntRegs:$Rd32, IntRegs:$Rx32),
11141(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11142"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11143tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11144let Inst{13-11} = 0b101;
11145let Inst{31-21} = 0b10011011011;
11146let isPredicated = 1;
11147let isPredicatedFalse = 1;
11148let hasNewValue = 1;
11149let opNewValue = 0;
11150let addrMode = PostInc;
11151let accessSize = HalfWordAccess;
11152let mayLoad = 1;
11153let BaseOpcode = "L2_loadruh_pi";
11154let Constraints = "$Rx32 = $Rx32in";
11155}
11156def L2_ploadruhf_zomap : HInst<
11157(outs IntRegs:$Rd32),
11158(ins PredRegs:$Pt4, IntRegs:$Rs32),
11159"if (!$Pt4) $Rd32 = memuh($Rs32)",
11160tc_fedb7e19, TypeMAPPING> {
11161let hasNewValue = 1;
11162let opNewValue = 0;
11163let isPseudo = 1;
11164let isCodeGenOnly = 1;
11165}
11166def L2_ploadruhfnew_io : HInst<
11167(outs IntRegs:$Rd32),
11168(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11169"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11170tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11171let Inst{13-13} = 0b0;
11172let Inst{31-21} = 0b01000111011;
11173let isPredicated = 1;
11174let isPredicatedFalse = 1;
11175let hasNewValue = 1;
11176let opNewValue = 0;
11177let addrMode = BaseImmOffset;
11178let accessSize = HalfWordAccess;
11179let isPredicatedNew = 1;
11180let mayLoad = 1;
11181let BaseOpcode = "L2_loadruh_io";
11182let CextOpcode = "L2_loadruh";
11183let isExtendable = 1;
11184let opExtendable = 3;
11185let isExtentSigned = 0;
11186let opExtentBits = 7;
11187let opExtentAlign = 1;
11188}
11189def L2_ploadruhfnew_pi : HInst<
11190(outs IntRegs:$Rd32, IntRegs:$Rx32),
11191(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11192"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11193tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11194let Inst{13-11} = 0b111;
11195let Inst{31-21} = 0b10011011011;
11196let isPredicated = 1;
11197let isPredicatedFalse = 1;
11198let hasNewValue = 1;
11199let opNewValue = 0;
11200let addrMode = PostInc;
11201let accessSize = HalfWordAccess;
11202let isPredicatedNew = 1;
11203let mayLoad = 1;
11204let BaseOpcode = "L2_loadruh_pi";
11205let Constraints = "$Rx32 = $Rx32in";
11206}
11207def L2_ploadruhfnew_zomap : HInst<
11208(outs IntRegs:$Rd32),
11209(ins PredRegs:$Pt4, IntRegs:$Rs32),
11210"if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11211tc_075c8dd8, TypeMAPPING> {
11212let hasNewValue = 1;
11213let opNewValue = 0;
11214let isPseudo = 1;
11215let isCodeGenOnly = 1;
11216}
11217def L2_ploadruht_io : HInst<
11218(outs IntRegs:$Rd32),
11219(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11220"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11221tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11222let Inst{13-13} = 0b0;
11223let Inst{31-21} = 0b01000001011;
11224let isPredicated = 1;
11225let hasNewValue = 1;
11226let opNewValue = 0;
11227let addrMode = BaseImmOffset;
11228let accessSize = HalfWordAccess;
11229let mayLoad = 1;
11230let BaseOpcode = "L2_loadruh_io";
11231let CextOpcode = "L2_loadruh";
11232let isExtendable = 1;
11233let opExtendable = 3;
11234let isExtentSigned = 0;
11235let opExtentBits = 7;
11236let opExtentAlign = 1;
11237}
11238def L2_ploadruht_pi : HInst<
11239(outs IntRegs:$Rd32, IntRegs:$Rx32),
11240(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11241"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11242tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11243let Inst{13-11} = 0b100;
11244let Inst{31-21} = 0b10011011011;
11245let isPredicated = 1;
11246let hasNewValue = 1;
11247let opNewValue = 0;
11248let addrMode = PostInc;
11249let accessSize = HalfWordAccess;
11250let mayLoad = 1;
11251let BaseOpcode = "L2_loadruh_pi";
11252let Constraints = "$Rx32 = $Rx32in";
11253}
11254def L2_ploadruht_zomap : HInst<
11255(outs IntRegs:$Rd32),
11256(ins PredRegs:$Pt4, IntRegs:$Rs32),
11257"if ($Pt4) $Rd32 = memuh($Rs32)",
11258tc_fedb7e19, TypeMAPPING> {
11259let hasNewValue = 1;
11260let opNewValue = 0;
11261let isPseudo = 1;
11262let isCodeGenOnly = 1;
11263}
11264def L2_ploadruhtnew_io : HInst<
11265(outs IntRegs:$Rd32),
11266(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11267"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11268tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11269let Inst{13-13} = 0b0;
11270let Inst{31-21} = 0b01000011011;
11271let isPredicated = 1;
11272let hasNewValue = 1;
11273let opNewValue = 0;
11274let addrMode = BaseImmOffset;
11275let accessSize = HalfWordAccess;
11276let isPredicatedNew = 1;
11277let mayLoad = 1;
11278let BaseOpcode = "L2_loadruh_io";
11279let CextOpcode = "L2_loadruh";
11280let isExtendable = 1;
11281let opExtendable = 3;
11282let isExtentSigned = 0;
11283let opExtentBits = 7;
11284let opExtentAlign = 1;
11285}
11286def L2_ploadruhtnew_pi : HInst<
11287(outs IntRegs:$Rd32, IntRegs:$Rx32),
11288(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11289"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11290tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11291let Inst{13-11} = 0b110;
11292let Inst{31-21} = 0b10011011011;
11293let isPredicated = 1;
11294let hasNewValue = 1;
11295let opNewValue = 0;
11296let addrMode = PostInc;
11297let accessSize = HalfWordAccess;
11298let isPredicatedNew = 1;
11299let mayLoad = 1;
11300let BaseOpcode = "L2_loadruh_pi";
11301let Constraints = "$Rx32 = $Rx32in";
11302}
11303def L2_ploadruhtnew_zomap : HInst<
11304(outs IntRegs:$Rd32),
11305(ins PredRegs:$Pt4, IntRegs:$Rs32),
11306"if ($Pt4.new) $Rd32 = memuh($Rs32)",
11307tc_075c8dd8, TypeMAPPING> {
11308let hasNewValue = 1;
11309let opNewValue = 0;
11310let isPseudo = 1;
11311let isCodeGenOnly = 1;
11312}
11313def L4_add_memopb_io : HInst<
11314(outs),
11315(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11316"memb($Rs32+#$Ii) += $Rt32",
11317tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11318let Inst{6-5} = 0b00;
11319let Inst{13-13} = 0b0;
11320let Inst{31-21} = 0b00111110000;
11321let addrMode = BaseImmOffset;
11322let accessSize = ByteAccess;
11323let mayLoad = 1;
11324let isRestrictNoSlot1Store = 1;
11325let mayStore = 1;
11326let isExtendable = 1;
11327let opExtendable = 1;
11328let isExtentSigned = 0;
11329let opExtentBits = 6;
11330let opExtentAlign = 0;
11331}
11332def L4_add_memopb_zomap : HInst<
11333(outs),
11334(ins IntRegs:$Rs32, IntRegs:$Rt32),
11335"memb($Rs32) += $Rt32",
11336tc_9bcfb2ee, TypeMAPPING> {
11337let isPseudo = 1;
11338let isCodeGenOnly = 1;
11339}
11340def L4_add_memoph_io : HInst<
11341(outs),
11342(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11343"memh($Rs32+#$Ii) += $Rt32",
11344tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11345let Inst{6-5} = 0b00;
11346let Inst{13-13} = 0b0;
11347let Inst{31-21} = 0b00111110001;
11348let addrMode = BaseImmOffset;
11349let accessSize = HalfWordAccess;
11350let mayLoad = 1;
11351let isRestrictNoSlot1Store = 1;
11352let mayStore = 1;
11353let isExtendable = 1;
11354let opExtendable = 1;
11355let isExtentSigned = 0;
11356let opExtentBits = 7;
11357let opExtentAlign = 1;
11358}
11359def L4_add_memoph_zomap : HInst<
11360(outs),
11361(ins IntRegs:$Rs32, IntRegs:$Rt32),
11362"memh($Rs32) += $Rt32",
11363tc_9bcfb2ee, TypeMAPPING> {
11364let isPseudo = 1;
11365let isCodeGenOnly = 1;
11366}
11367def L4_add_memopw_io : HInst<
11368(outs),
11369(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11370"memw($Rs32+#$Ii) += $Rt32",
11371tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11372let Inst{6-5} = 0b00;
11373let Inst{13-13} = 0b0;
11374let Inst{31-21} = 0b00111110010;
11375let addrMode = BaseImmOffset;
11376let accessSize = WordAccess;
11377let mayLoad = 1;
11378let isRestrictNoSlot1Store = 1;
11379let mayStore = 1;
11380let isExtendable = 1;
11381let opExtendable = 1;
11382let isExtentSigned = 0;
11383let opExtentBits = 8;
11384let opExtentAlign = 2;
11385}
11386def L4_add_memopw_zomap : HInst<
11387(outs),
11388(ins IntRegs:$Rs32, IntRegs:$Rt32),
11389"memw($Rs32) += $Rt32",
11390tc_9bcfb2ee, TypeMAPPING> {
11391let isPseudo = 1;
11392let isCodeGenOnly = 1;
11393}
11394def L4_and_memopb_io : HInst<
11395(outs),
11396(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11397"memb($Rs32+#$Ii) &= $Rt32",
11398tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11399let Inst{6-5} = 0b10;
11400let Inst{13-13} = 0b0;
11401let Inst{31-21} = 0b00111110000;
11402let addrMode = BaseImmOffset;
11403let accessSize = ByteAccess;
11404let mayLoad = 1;
11405let isRestrictNoSlot1Store = 1;
11406let mayStore = 1;
11407let isExtendable = 1;
11408let opExtendable = 1;
11409let isExtentSigned = 0;
11410let opExtentBits = 6;
11411let opExtentAlign = 0;
11412}
11413def L4_and_memopb_zomap : HInst<
11414(outs),
11415(ins IntRegs:$Rs32, IntRegs:$Rt32),
11416"memb($Rs32) &= $Rt32",
11417tc_9bcfb2ee, TypeMAPPING> {
11418let isPseudo = 1;
11419let isCodeGenOnly = 1;
11420}
11421def L4_and_memoph_io : HInst<
11422(outs),
11423(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11424"memh($Rs32+#$Ii) &= $Rt32",
11425tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11426let Inst{6-5} = 0b10;
11427let Inst{13-13} = 0b0;
11428let Inst{31-21} = 0b00111110001;
11429let addrMode = BaseImmOffset;
11430let accessSize = HalfWordAccess;
11431let mayLoad = 1;
11432let isRestrictNoSlot1Store = 1;
11433let mayStore = 1;
11434let isExtendable = 1;
11435let opExtendable = 1;
11436let isExtentSigned = 0;
11437let opExtentBits = 7;
11438let opExtentAlign = 1;
11439}
11440def L4_and_memoph_zomap : HInst<
11441(outs),
11442(ins IntRegs:$Rs32, IntRegs:$Rt32),
11443"memh($Rs32) &= $Rt32",
11444tc_9bcfb2ee, TypeMAPPING> {
11445let isPseudo = 1;
11446let isCodeGenOnly = 1;
11447}
11448def L4_and_memopw_io : HInst<
11449(outs),
11450(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11451"memw($Rs32+#$Ii) &= $Rt32",
11452tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11453let Inst{6-5} = 0b10;
11454let Inst{13-13} = 0b0;
11455let Inst{31-21} = 0b00111110010;
11456let addrMode = BaseImmOffset;
11457let accessSize = WordAccess;
11458let mayLoad = 1;
11459let isRestrictNoSlot1Store = 1;
11460let mayStore = 1;
11461let isExtendable = 1;
11462let opExtendable = 1;
11463let isExtentSigned = 0;
11464let opExtentBits = 8;
11465let opExtentAlign = 2;
11466}
11467def L4_and_memopw_zomap : HInst<
11468(outs),
11469(ins IntRegs:$Rs32, IntRegs:$Rt32),
11470"memw($Rs32) &= $Rt32",
11471tc_9bcfb2ee, TypeMAPPING> {
11472let isPseudo = 1;
11473let isCodeGenOnly = 1;
11474}
11475def L4_iadd_memopb_io : HInst<
11476(outs),
11477(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11478"memb($Rs32+#$Ii) += #$II",
11479tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11480let Inst{6-5} = 0b00;
11481let Inst{13-13} = 0b0;
11482let Inst{31-21} = 0b00111111000;
11483let addrMode = BaseImmOffset;
11484let accessSize = ByteAccess;
11485let mayLoad = 1;
11486let isRestrictNoSlot1Store = 1;
11487let mayStore = 1;
11488let isExtendable = 1;
11489let opExtendable = 1;
11490let isExtentSigned = 0;
11491let opExtentBits = 6;
11492let opExtentAlign = 0;
11493}
11494def L4_iadd_memopb_zomap : HInst<
11495(outs),
11496(ins IntRegs:$Rs32, u5_0Imm:$II),
11497"memb($Rs32) += #$II",
11498tc_158aa3f7, TypeMAPPING> {
11499let isPseudo = 1;
11500let isCodeGenOnly = 1;
11501}
11502def L4_iadd_memoph_io : HInst<
11503(outs),
11504(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11505"memh($Rs32+#$Ii) += #$II",
11506tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11507let Inst{6-5} = 0b00;
11508let Inst{13-13} = 0b0;
11509let Inst{31-21} = 0b00111111001;
11510let addrMode = BaseImmOffset;
11511let accessSize = HalfWordAccess;
11512let mayLoad = 1;
11513let isRestrictNoSlot1Store = 1;
11514let mayStore = 1;
11515let isExtendable = 1;
11516let opExtendable = 1;
11517let isExtentSigned = 0;
11518let opExtentBits = 7;
11519let opExtentAlign = 1;
11520}
11521def L4_iadd_memoph_zomap : HInst<
11522(outs),
11523(ins IntRegs:$Rs32, u5_0Imm:$II),
11524"memh($Rs32) += #$II",
11525tc_158aa3f7, TypeMAPPING> {
11526let isPseudo = 1;
11527let isCodeGenOnly = 1;
11528}
11529def L4_iadd_memopw_io : HInst<
11530(outs),
11531(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11532"memw($Rs32+#$Ii) += #$II",
11533tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11534let Inst{6-5} = 0b00;
11535let Inst{13-13} = 0b0;
11536let Inst{31-21} = 0b00111111010;
11537let addrMode = BaseImmOffset;
11538let accessSize = WordAccess;
11539let mayLoad = 1;
11540let isRestrictNoSlot1Store = 1;
11541let mayStore = 1;
11542let isExtendable = 1;
11543let opExtendable = 1;
11544let isExtentSigned = 0;
11545let opExtentBits = 8;
11546let opExtentAlign = 2;
11547}
11548def L4_iadd_memopw_zomap : HInst<
11549(outs),
11550(ins IntRegs:$Rs32, u5_0Imm:$II),
11551"memw($Rs32) += #$II",
11552tc_158aa3f7, TypeMAPPING> {
11553let isPseudo = 1;
11554let isCodeGenOnly = 1;
11555}
11556def L4_iand_memopb_io : HInst<
11557(outs),
11558(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11559"memb($Rs32+#$Ii) = clrbit(#$II)",
11560tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11561let Inst{6-5} = 0b10;
11562let Inst{13-13} = 0b0;
11563let Inst{31-21} = 0b00111111000;
11564let addrMode = BaseImmOffset;
11565let accessSize = ByteAccess;
11566let mayLoad = 1;
11567let isRestrictNoSlot1Store = 1;
11568let mayStore = 1;
11569let isExtendable = 1;
11570let opExtendable = 1;
11571let isExtentSigned = 0;
11572let opExtentBits = 6;
11573let opExtentAlign = 0;
11574}
11575def L4_iand_memopb_zomap : HInst<
11576(outs),
11577(ins IntRegs:$Rs32, u5_0Imm:$II),
11578"memb($Rs32) = clrbit(#$II)",
11579tc_158aa3f7, TypeMAPPING> {
11580let isPseudo = 1;
11581let isCodeGenOnly = 1;
11582}
11583def L4_iand_memoph_io : HInst<
11584(outs),
11585(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11586"memh($Rs32+#$Ii) = clrbit(#$II)",
11587tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11588let Inst{6-5} = 0b10;
11589let Inst{13-13} = 0b0;
11590let Inst{31-21} = 0b00111111001;
11591let addrMode = BaseImmOffset;
11592let accessSize = HalfWordAccess;
11593let mayLoad = 1;
11594let isRestrictNoSlot1Store = 1;
11595let mayStore = 1;
11596let isExtendable = 1;
11597let opExtendable = 1;
11598let isExtentSigned = 0;
11599let opExtentBits = 7;
11600let opExtentAlign = 1;
11601}
11602def L4_iand_memoph_zomap : HInst<
11603(outs),
11604(ins IntRegs:$Rs32, u5_0Imm:$II),
11605"memh($Rs32) = clrbit(#$II)",
11606tc_158aa3f7, TypeMAPPING> {
11607let isPseudo = 1;
11608let isCodeGenOnly = 1;
11609}
11610def L4_iand_memopw_io : HInst<
11611(outs),
11612(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11613"memw($Rs32+#$Ii) = clrbit(#$II)",
11614tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11615let Inst{6-5} = 0b10;
11616let Inst{13-13} = 0b0;
11617let Inst{31-21} = 0b00111111010;
11618let addrMode = BaseImmOffset;
11619let accessSize = WordAccess;
11620let mayLoad = 1;
11621let isRestrictNoSlot1Store = 1;
11622let mayStore = 1;
11623let isExtendable = 1;
11624let opExtendable = 1;
11625let isExtentSigned = 0;
11626let opExtentBits = 8;
11627let opExtentAlign = 2;
11628}
11629def L4_iand_memopw_zomap : HInst<
11630(outs),
11631(ins IntRegs:$Rs32, u5_0Imm:$II),
11632"memw($Rs32) = clrbit(#$II)",
11633tc_158aa3f7, TypeMAPPING> {
11634let isPseudo = 1;
11635let isCodeGenOnly = 1;
11636}
11637def L4_ior_memopb_io : HInst<
11638(outs),
11639(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11640"memb($Rs32+#$Ii) = setbit(#$II)",
11641tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11642let Inst{6-5} = 0b11;
11643let Inst{13-13} = 0b0;
11644let Inst{31-21} = 0b00111111000;
11645let addrMode = BaseImmOffset;
11646let accessSize = ByteAccess;
11647let mayLoad = 1;
11648let isRestrictNoSlot1Store = 1;
11649let mayStore = 1;
11650let isExtendable = 1;
11651let opExtendable = 1;
11652let isExtentSigned = 0;
11653let opExtentBits = 6;
11654let opExtentAlign = 0;
11655}
11656def L4_ior_memopb_zomap : HInst<
11657(outs),
11658(ins IntRegs:$Rs32, u5_0Imm:$II),
11659"memb($Rs32) = setbit(#$II)",
11660tc_158aa3f7, TypeMAPPING> {
11661let isPseudo = 1;
11662let isCodeGenOnly = 1;
11663}
11664def L4_ior_memoph_io : HInst<
11665(outs),
11666(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11667"memh($Rs32+#$Ii) = setbit(#$II)",
11668tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11669let Inst{6-5} = 0b11;
11670let Inst{13-13} = 0b0;
11671let Inst{31-21} = 0b00111111001;
11672let addrMode = BaseImmOffset;
11673let accessSize = HalfWordAccess;
11674let mayLoad = 1;
11675let isRestrictNoSlot1Store = 1;
11676let mayStore = 1;
11677let isExtendable = 1;
11678let opExtendable = 1;
11679let isExtentSigned = 0;
11680let opExtentBits = 7;
11681let opExtentAlign = 1;
11682}
11683def L4_ior_memoph_zomap : HInst<
11684(outs),
11685(ins IntRegs:$Rs32, u5_0Imm:$II),
11686"memh($Rs32) = setbit(#$II)",
11687tc_158aa3f7, TypeMAPPING> {
11688let isPseudo = 1;
11689let isCodeGenOnly = 1;
11690}
11691def L4_ior_memopw_io : HInst<
11692(outs),
11693(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11694"memw($Rs32+#$Ii) = setbit(#$II)",
11695tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11696let Inst{6-5} = 0b11;
11697let Inst{13-13} = 0b0;
11698let Inst{31-21} = 0b00111111010;
11699let addrMode = BaseImmOffset;
11700let accessSize = WordAccess;
11701let mayLoad = 1;
11702let isRestrictNoSlot1Store = 1;
11703let mayStore = 1;
11704let isExtendable = 1;
11705let opExtendable = 1;
11706let isExtentSigned = 0;
11707let opExtentBits = 8;
11708let opExtentAlign = 2;
11709}
11710def L4_ior_memopw_zomap : HInst<
11711(outs),
11712(ins IntRegs:$Rs32, u5_0Imm:$II),
11713"memw($Rs32) = setbit(#$II)",
11714tc_158aa3f7, TypeMAPPING> {
11715let isPseudo = 1;
11716let isCodeGenOnly = 1;
11717}
11718def L4_isub_memopb_io : HInst<
11719(outs),
11720(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11721"memb($Rs32+#$Ii) -= #$II",
11722tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11723let Inst{6-5} = 0b01;
11724let Inst{13-13} = 0b0;
11725let Inst{31-21} = 0b00111111000;
11726let addrMode = BaseImmOffset;
11727let accessSize = ByteAccess;
11728let mayLoad = 1;
11729let isRestrictNoSlot1Store = 1;
11730let mayStore = 1;
11731let isExtendable = 1;
11732let opExtendable = 1;
11733let isExtentSigned = 0;
11734let opExtentBits = 6;
11735let opExtentAlign = 0;
11736}
11737def L4_isub_memopb_zomap : HInst<
11738(outs),
11739(ins IntRegs:$Rs32, u5_0Imm:$II),
11740"memb($Rs32) -= #$II",
11741tc_158aa3f7, TypeMAPPING> {
11742let isPseudo = 1;
11743let isCodeGenOnly = 1;
11744}
11745def L4_isub_memoph_io : HInst<
11746(outs),
11747(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11748"memh($Rs32+#$Ii) -= #$II",
11749tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11750let Inst{6-5} = 0b01;
11751let Inst{13-13} = 0b0;
11752let Inst{31-21} = 0b00111111001;
11753let addrMode = BaseImmOffset;
11754let accessSize = HalfWordAccess;
11755let mayLoad = 1;
11756let isRestrictNoSlot1Store = 1;
11757let mayStore = 1;
11758let isExtendable = 1;
11759let opExtendable = 1;
11760let isExtentSigned = 0;
11761let opExtentBits = 7;
11762let opExtentAlign = 1;
11763}
11764def L4_isub_memoph_zomap : HInst<
11765(outs),
11766(ins IntRegs:$Rs32, u5_0Imm:$II),
11767"memh($Rs32) -= #$II",
11768tc_158aa3f7, TypeMAPPING> {
11769let isPseudo = 1;
11770let isCodeGenOnly = 1;
11771}
11772def L4_isub_memopw_io : HInst<
11773(outs),
11774(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11775"memw($Rs32+#$Ii) -= #$II",
11776tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11777let Inst{6-5} = 0b01;
11778let Inst{13-13} = 0b0;
11779let Inst{31-21} = 0b00111111010;
11780let addrMode = BaseImmOffset;
11781let accessSize = WordAccess;
11782let mayLoad = 1;
11783let isRestrictNoSlot1Store = 1;
11784let mayStore = 1;
11785let isExtendable = 1;
11786let opExtendable = 1;
11787let isExtentSigned = 0;
11788let opExtentBits = 8;
11789let opExtentAlign = 2;
11790}
11791def L4_isub_memopw_zomap : HInst<
11792(outs),
11793(ins IntRegs:$Rs32, u5_0Imm:$II),
11794"memw($Rs32) -= #$II",
11795tc_158aa3f7, TypeMAPPING> {
11796let isPseudo = 1;
11797let isCodeGenOnly = 1;
11798}
11799def L4_loadalignb_ap : HInst<
11800(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11801(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11802"$Ryy32 = memb_fifo($Re32=#$II)",
11803tc_ac65613f, TypeLD>, Enc_f394d3 {
11804let Inst{7-7} = 0b0;
11805let Inst{13-12} = 0b01;
11806let Inst{31-21} = 0b10011010100;
11807let addrMode = AbsoluteSet;
11808let accessSize = ByteAccess;
11809let mayLoad = 1;
11810let isExtended = 1;
11811let DecoderNamespace = "MustExtend";
11812let isExtendable = 1;
11813let opExtendable = 3;
11814let isExtentSigned = 0;
11815let opExtentBits = 6;
11816let opExtentAlign = 0;
11817let Constraints = "$Ryy32 = $Ryy32in";
11818}
11819def L4_loadalignb_ur : HInst<
11820(outs DoubleRegs:$Ryy32),
11821(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11822"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11823tc_a32e03e7, TypeLD>, Enc_04c959 {
11824let Inst{12-12} = 0b1;
11825let Inst{31-21} = 0b10011100100;
11826let addrMode = BaseLongOffset;
11827let accessSize = ByteAccess;
11828let mayLoad = 1;
11829let isExtended = 1;
11830let InputType = "imm";
11831let DecoderNamespace = "MustExtend";
11832let isExtendable = 1;
11833let opExtendable = 4;
11834let isExtentSigned = 0;
11835let opExtentBits = 6;
11836let opExtentAlign = 0;
11837let Constraints = "$Ryy32 = $Ryy32in";
11838}
11839def L4_loadalignh_ap : HInst<
11840(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11841(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11842"$Ryy32 = memh_fifo($Re32=#$II)",
11843tc_ac65613f, TypeLD>, Enc_f394d3 {
11844let Inst{7-7} = 0b0;
11845let Inst{13-12} = 0b01;
11846let Inst{31-21} = 0b10011010010;
11847let addrMode = AbsoluteSet;
11848let accessSize = HalfWordAccess;
11849let mayLoad = 1;
11850let isExtended = 1;
11851let DecoderNamespace = "MustExtend";
11852let isExtendable = 1;
11853let opExtendable = 3;
11854let isExtentSigned = 0;
11855let opExtentBits = 6;
11856let opExtentAlign = 0;
11857let Constraints = "$Ryy32 = $Ryy32in";
11858}
11859def L4_loadalignh_ur : HInst<
11860(outs DoubleRegs:$Ryy32),
11861(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11862"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11863tc_a32e03e7, TypeLD>, Enc_04c959 {
11864let Inst{12-12} = 0b1;
11865let Inst{31-21} = 0b10011100010;
11866let addrMode = BaseLongOffset;
11867let accessSize = HalfWordAccess;
11868let mayLoad = 1;
11869let isExtended = 1;
11870let InputType = "imm";
11871let DecoderNamespace = "MustExtend";
11872let isExtendable = 1;
11873let opExtendable = 4;
11874let isExtentSigned = 0;
11875let opExtentBits = 6;
11876let opExtentAlign = 0;
11877let Constraints = "$Ryy32 = $Ryy32in";
11878}
11879def L4_loadbsw2_ap : HInst<
11880(outs IntRegs:$Rd32, IntRegs:$Re32),
11881(ins u32_0Imm:$II),
11882"$Rd32 = membh($Re32=#$II)",
11883tc_822c3c68, TypeLD>, Enc_323f2d {
11884let Inst{7-7} = 0b0;
11885let Inst{13-12} = 0b01;
11886let Inst{31-21} = 0b10011010001;
11887let hasNewValue = 1;
11888let opNewValue = 0;
11889let addrMode = AbsoluteSet;
11890let accessSize = HalfWordAccess;
11891let mayLoad = 1;
11892let isExtended = 1;
11893let DecoderNamespace = "MustExtend";
11894let isExtendable = 1;
11895let opExtendable = 2;
11896let isExtentSigned = 0;
11897let opExtentBits = 6;
11898let opExtentAlign = 0;
11899}
11900def L4_loadbsw2_ur : HInst<
11901(outs IntRegs:$Rd32),
11902(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11903"$Rd32 = membh($Rt32<<#$Ii+#$II)",
11904tc_abfd9a6d, TypeLD>, Enc_4f677b {
11905let Inst{12-12} = 0b1;
11906let Inst{31-21} = 0b10011100001;
11907let hasNewValue = 1;
11908let opNewValue = 0;
11909let addrMode = BaseLongOffset;
11910let accessSize = HalfWordAccess;
11911let mayLoad = 1;
11912let isExtended = 1;
11913let InputType = "imm";
11914let DecoderNamespace = "MustExtend";
11915let isExtendable = 1;
11916let opExtendable = 3;
11917let isExtentSigned = 0;
11918let opExtentBits = 6;
11919let opExtentAlign = 0;
11920}
11921def L4_loadbsw4_ap : HInst<
11922(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11923(ins u32_0Imm:$II),
11924"$Rdd32 = membh($Re32=#$II)",
11925tc_822c3c68, TypeLD>, Enc_7fa7f6 {
11926let Inst{7-7} = 0b0;
11927let Inst{13-12} = 0b01;
11928let Inst{31-21} = 0b10011010111;
11929let addrMode = AbsoluteSet;
11930let accessSize = WordAccess;
11931let mayLoad = 1;
11932let isExtended = 1;
11933let DecoderNamespace = "MustExtend";
11934let isExtendable = 1;
11935let opExtendable = 2;
11936let isExtentSigned = 0;
11937let opExtentBits = 6;
11938let opExtentAlign = 0;
11939}
11940def L4_loadbsw4_ur : HInst<
11941(outs DoubleRegs:$Rdd32),
11942(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11943"$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11944tc_abfd9a6d, TypeLD>, Enc_6185fe {
11945let Inst{12-12} = 0b1;
11946let Inst{31-21} = 0b10011100111;
11947let addrMode = BaseLongOffset;
11948let accessSize = WordAccess;
11949let mayLoad = 1;
11950let isExtended = 1;
11951let InputType = "imm";
11952let DecoderNamespace = "MustExtend";
11953let isExtendable = 1;
11954let opExtendable = 3;
11955let isExtentSigned = 0;
11956let opExtentBits = 6;
11957let opExtentAlign = 0;
11958}
11959def L4_loadbzw2_ap : HInst<
11960(outs IntRegs:$Rd32, IntRegs:$Re32),
11961(ins u32_0Imm:$II),
11962"$Rd32 = memubh($Re32=#$II)",
11963tc_822c3c68, TypeLD>, Enc_323f2d {
11964let Inst{7-7} = 0b0;
11965let Inst{13-12} = 0b01;
11966let Inst{31-21} = 0b10011010011;
11967let hasNewValue = 1;
11968let opNewValue = 0;
11969let addrMode = AbsoluteSet;
11970let accessSize = HalfWordAccess;
11971let mayLoad = 1;
11972let isExtended = 1;
11973let DecoderNamespace = "MustExtend";
11974let isExtendable = 1;
11975let opExtendable = 2;
11976let isExtentSigned = 0;
11977let opExtentBits = 6;
11978let opExtentAlign = 0;
11979}
11980def L4_loadbzw2_ur : HInst<
11981(outs IntRegs:$Rd32),
11982(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11983"$Rd32 = memubh($Rt32<<#$Ii+#$II)",
11984tc_abfd9a6d, TypeLD>, Enc_4f677b {
11985let Inst{12-12} = 0b1;
11986let Inst{31-21} = 0b10011100011;
11987let hasNewValue = 1;
11988let opNewValue = 0;
11989let addrMode = BaseLongOffset;
11990let accessSize = HalfWordAccess;
11991let mayLoad = 1;
11992let isExtended = 1;
11993let InputType = "imm";
11994let DecoderNamespace = "MustExtend";
11995let isExtendable = 1;
11996let opExtendable = 3;
11997let isExtentSigned = 0;
11998let opExtentBits = 6;
11999let opExtentAlign = 0;
12000}
12001def L4_loadbzw4_ap : HInst<
12002(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12003(ins u32_0Imm:$II),
12004"$Rdd32 = memubh($Re32=#$II)",
12005tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12006let Inst{7-7} = 0b0;
12007let Inst{13-12} = 0b01;
12008let Inst{31-21} = 0b10011010101;
12009let addrMode = AbsoluteSet;
12010let accessSize = WordAccess;
12011let mayLoad = 1;
12012let isExtended = 1;
12013let DecoderNamespace = "MustExtend";
12014let isExtendable = 1;
12015let opExtendable = 2;
12016let isExtentSigned = 0;
12017let opExtentBits = 6;
12018let opExtentAlign = 0;
12019}
12020def L4_loadbzw4_ur : HInst<
12021(outs DoubleRegs:$Rdd32),
12022(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12023"$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
12024tc_abfd9a6d, TypeLD>, Enc_6185fe {
12025let Inst{12-12} = 0b1;
12026let Inst{31-21} = 0b10011100101;
12027let addrMode = BaseLongOffset;
12028let accessSize = WordAccess;
12029let mayLoad = 1;
12030let isExtended = 1;
12031let InputType = "imm";
12032let DecoderNamespace = "MustExtend";
12033let isExtendable = 1;
12034let opExtendable = 3;
12035let isExtentSigned = 0;
12036let opExtentBits = 6;
12037let opExtentAlign = 0;
12038}
12039def L4_loadd_aq : HInst<
12040(outs DoubleRegs:$Rdd32),
12041(ins IntRegs:$Rs32),
12042"$Rdd32 = memd_aq($Rs32)",
12043tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> {
12044let Inst{13-5} = 0b011000000;
12045let Inst{31-21} = 0b10010010000;
12046let accessSize = DoubleWordAccess;
12047let mayLoad = 1;
12048}
12049def L4_loadd_locked : HInst<
12050(outs DoubleRegs:$Rdd32),
12051(ins IntRegs:$Rs32),
12052"$Rdd32 = memd_locked($Rs32)",
12053tc_64b00d8a, TypeLD>, Enc_3a3d62 {
12054let Inst{13-5} = 0b010000000;
12055let Inst{31-21} = 0b10010010000;
12056let accessSize = DoubleWordAccess;
12057let mayLoad = 1;
12058let isSoloAX = 1;
12059}
12060def L4_loadrb_ap : HInst<
12061(outs IntRegs:$Rd32, IntRegs:$Re32),
12062(ins u32_0Imm:$II),
12063"$Rd32 = memb($Re32=#$II)",
12064tc_822c3c68, TypeLD>, Enc_323f2d {
12065let Inst{7-7} = 0b0;
12066let Inst{13-12} = 0b01;
12067let Inst{31-21} = 0b10011011000;
12068let hasNewValue = 1;
12069let opNewValue = 0;
12070let addrMode = AbsoluteSet;
12071let accessSize = ByteAccess;
12072let mayLoad = 1;
12073let isExtended = 1;
12074let DecoderNamespace = "MustExtend";
12075let isExtendable = 1;
12076let opExtendable = 2;
12077let isExtentSigned = 0;
12078let opExtentBits = 6;
12079let opExtentAlign = 0;
12080}
12081def L4_loadrb_rr : HInst<
12082(outs IntRegs:$Rd32),
12083(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12084"$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12085tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12086let Inst{6-5} = 0b00;
12087let Inst{31-21} = 0b00111010000;
12088let hasNewValue = 1;
12089let opNewValue = 0;
12090let addrMode = BaseRegOffset;
12091let accessSize = ByteAccess;
12092let mayLoad = 1;
12093let BaseOpcode = "L4_loadrb_rr";
12094let CextOpcode = "L2_loadrb";
12095let InputType = "reg";
12096let isPredicable = 1;
12097}
12098def L4_loadrb_ur : HInst<
12099(outs IntRegs:$Rd32),
12100(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12101"$Rd32 = memb($Rt32<<#$Ii+#$II)",
12102tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12103let Inst{12-12} = 0b1;
12104let Inst{31-21} = 0b10011101000;
12105let hasNewValue = 1;
12106let opNewValue = 0;
12107let addrMode = BaseLongOffset;
12108let accessSize = ByteAccess;
12109let mayLoad = 1;
12110let isExtended = 1;
12111let CextOpcode = "L2_loadrb";
12112let InputType = "imm";
12113let DecoderNamespace = "MustExtend";
12114let isExtendable = 1;
12115let opExtendable = 3;
12116let isExtentSigned = 0;
12117let opExtentBits = 6;
12118let opExtentAlign = 0;
12119}
12120def L4_loadrd_ap : HInst<
12121(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12122(ins u32_0Imm:$II),
12123"$Rdd32 = memd($Re32=#$II)",
12124tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12125let Inst{7-7} = 0b0;
12126let Inst{13-12} = 0b01;
12127let Inst{31-21} = 0b10011011110;
12128let addrMode = AbsoluteSet;
12129let accessSize = DoubleWordAccess;
12130let mayLoad = 1;
12131let isExtended = 1;
12132let DecoderNamespace = "MustExtend";
12133let isExtendable = 1;
12134let opExtendable = 2;
12135let isExtentSigned = 0;
12136let opExtentBits = 6;
12137let opExtentAlign = 0;
12138}
12139def L4_loadrd_rr : HInst<
12140(outs DoubleRegs:$Rdd32),
12141(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12142"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12143tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12144let Inst{6-5} = 0b00;
12145let Inst{31-21} = 0b00111010110;
12146let addrMode = BaseRegOffset;
12147let accessSize = DoubleWordAccess;
12148let mayLoad = 1;
12149let BaseOpcode = "L4_loadrd_rr";
12150let CextOpcode = "L2_loadrd";
12151let InputType = "reg";
12152let isPredicable = 1;
12153}
12154def L4_loadrd_ur : HInst<
12155(outs DoubleRegs:$Rdd32),
12156(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12157"$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12158tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12159let Inst{12-12} = 0b1;
12160let Inst{31-21} = 0b10011101110;
12161let addrMode = BaseLongOffset;
12162let accessSize = DoubleWordAccess;
12163let mayLoad = 1;
12164let isExtended = 1;
12165let CextOpcode = "L2_loadrd";
12166let InputType = "imm";
12167let DecoderNamespace = "MustExtend";
12168let isExtendable = 1;
12169let opExtendable = 3;
12170let isExtentSigned = 0;
12171let opExtentBits = 6;
12172let opExtentAlign = 0;
12173}
12174def L4_loadrh_ap : HInst<
12175(outs IntRegs:$Rd32, IntRegs:$Re32),
12176(ins u32_0Imm:$II),
12177"$Rd32 = memh($Re32=#$II)",
12178tc_822c3c68, TypeLD>, Enc_323f2d {
12179let Inst{7-7} = 0b0;
12180let Inst{13-12} = 0b01;
12181let Inst{31-21} = 0b10011011010;
12182let hasNewValue = 1;
12183let opNewValue = 0;
12184let addrMode = AbsoluteSet;
12185let accessSize = HalfWordAccess;
12186let mayLoad = 1;
12187let isExtended = 1;
12188let DecoderNamespace = "MustExtend";
12189let isExtendable = 1;
12190let opExtendable = 2;
12191let isExtentSigned = 0;
12192let opExtentBits = 6;
12193let opExtentAlign = 0;
12194}
12195def L4_loadrh_rr : HInst<
12196(outs IntRegs:$Rd32),
12197(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12198"$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12199tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12200let Inst{6-5} = 0b00;
12201let Inst{31-21} = 0b00111010010;
12202let hasNewValue = 1;
12203let opNewValue = 0;
12204let addrMode = BaseRegOffset;
12205let accessSize = HalfWordAccess;
12206let mayLoad = 1;
12207let BaseOpcode = "L4_loadrh_rr";
12208let CextOpcode = "L2_loadrh";
12209let InputType = "reg";
12210let isPredicable = 1;
12211}
12212def L4_loadrh_ur : HInst<
12213(outs IntRegs:$Rd32),
12214(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12215"$Rd32 = memh($Rt32<<#$Ii+#$II)",
12216tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12217let Inst{12-12} = 0b1;
12218let Inst{31-21} = 0b10011101010;
12219let hasNewValue = 1;
12220let opNewValue = 0;
12221let addrMode = BaseLongOffset;
12222let accessSize = HalfWordAccess;
12223let mayLoad = 1;
12224let isExtended = 1;
12225let CextOpcode = "L2_loadrh";
12226let InputType = "imm";
12227let DecoderNamespace = "MustExtend";
12228let isExtendable = 1;
12229let opExtendable = 3;
12230let isExtentSigned = 0;
12231let opExtentBits = 6;
12232let opExtentAlign = 0;
12233}
12234def L4_loadri_ap : HInst<
12235(outs IntRegs:$Rd32, IntRegs:$Re32),
12236(ins u32_0Imm:$II),
12237"$Rd32 = memw($Re32=#$II)",
12238tc_822c3c68, TypeLD>, Enc_323f2d {
12239let Inst{7-7} = 0b0;
12240let Inst{13-12} = 0b01;
12241let Inst{31-21} = 0b10011011100;
12242let hasNewValue = 1;
12243let opNewValue = 0;
12244let addrMode = AbsoluteSet;
12245let accessSize = WordAccess;
12246let mayLoad = 1;
12247let isExtended = 1;
12248let DecoderNamespace = "MustExtend";
12249let isExtendable = 1;
12250let opExtendable = 2;
12251let isExtentSigned = 0;
12252let opExtentBits = 6;
12253let opExtentAlign = 0;
12254}
12255def L4_loadri_rr : HInst<
12256(outs IntRegs:$Rd32),
12257(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12258"$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12259tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12260let Inst{6-5} = 0b00;
12261let Inst{31-21} = 0b00111010100;
12262let hasNewValue = 1;
12263let opNewValue = 0;
12264let addrMode = BaseRegOffset;
12265let accessSize = WordAccess;
12266let mayLoad = 1;
12267let BaseOpcode = "L4_loadri_rr";
12268let CextOpcode = "L2_loadri";
12269let InputType = "reg";
12270let isPredicable = 1;
12271}
12272def L4_loadri_ur : HInst<
12273(outs IntRegs:$Rd32),
12274(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12275"$Rd32 = memw($Rt32<<#$Ii+#$II)",
12276tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12277let Inst{12-12} = 0b1;
12278let Inst{31-21} = 0b10011101100;
12279let hasNewValue = 1;
12280let opNewValue = 0;
12281let addrMode = BaseLongOffset;
12282let accessSize = WordAccess;
12283let mayLoad = 1;
12284let isExtended = 1;
12285let CextOpcode = "L2_loadri";
12286let InputType = "imm";
12287let DecoderNamespace = "MustExtend";
12288let isExtendable = 1;
12289let opExtendable = 3;
12290let isExtentSigned = 0;
12291let opExtentBits = 6;
12292let opExtentAlign = 0;
12293}
12294def L4_loadrub_ap : HInst<
12295(outs IntRegs:$Rd32, IntRegs:$Re32),
12296(ins u32_0Imm:$II),
12297"$Rd32 = memub($Re32=#$II)",
12298tc_822c3c68, TypeLD>, Enc_323f2d {
12299let Inst{7-7} = 0b0;
12300let Inst{13-12} = 0b01;
12301let Inst{31-21} = 0b10011011001;
12302let hasNewValue = 1;
12303let opNewValue = 0;
12304let addrMode = AbsoluteSet;
12305let accessSize = ByteAccess;
12306let mayLoad = 1;
12307let isExtended = 1;
12308let DecoderNamespace = "MustExtend";
12309let isExtendable = 1;
12310let opExtendable = 2;
12311let isExtentSigned = 0;
12312let opExtentBits = 6;
12313let opExtentAlign = 0;
12314}
12315def L4_loadrub_rr : HInst<
12316(outs IntRegs:$Rd32),
12317(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12318"$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12319tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12320let Inst{6-5} = 0b00;
12321let Inst{31-21} = 0b00111010001;
12322let hasNewValue = 1;
12323let opNewValue = 0;
12324let addrMode = BaseRegOffset;
12325let accessSize = ByteAccess;
12326let mayLoad = 1;
12327let BaseOpcode = "L4_loadrub_rr";
12328let CextOpcode = "L2_loadrub";
12329let InputType = "reg";
12330let isPredicable = 1;
12331}
12332def L4_loadrub_ur : HInst<
12333(outs IntRegs:$Rd32),
12334(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12335"$Rd32 = memub($Rt32<<#$Ii+#$II)",
12336tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12337let Inst{12-12} = 0b1;
12338let Inst{31-21} = 0b10011101001;
12339let hasNewValue = 1;
12340let opNewValue = 0;
12341let addrMode = BaseLongOffset;
12342let accessSize = ByteAccess;
12343let mayLoad = 1;
12344let isExtended = 1;
12345let CextOpcode = "L2_loadrub";
12346let InputType = "imm";
12347let DecoderNamespace = "MustExtend";
12348let isExtendable = 1;
12349let opExtendable = 3;
12350let isExtentSigned = 0;
12351let opExtentBits = 6;
12352let opExtentAlign = 0;
12353}
12354def L4_loadruh_ap : HInst<
12355(outs IntRegs:$Rd32, IntRegs:$Re32),
12356(ins u32_0Imm:$II),
12357"$Rd32 = memuh($Re32=#$II)",
12358tc_822c3c68, TypeLD>, Enc_323f2d {
12359let Inst{7-7} = 0b0;
12360let Inst{13-12} = 0b01;
12361let Inst{31-21} = 0b10011011011;
12362let hasNewValue = 1;
12363let opNewValue = 0;
12364let addrMode = AbsoluteSet;
12365let accessSize = HalfWordAccess;
12366let mayLoad = 1;
12367let isExtended = 1;
12368let DecoderNamespace = "MustExtend";
12369let isExtendable = 1;
12370let opExtendable = 2;
12371let isExtentSigned = 0;
12372let opExtentBits = 6;
12373let opExtentAlign = 0;
12374}
12375def L4_loadruh_rr : HInst<
12376(outs IntRegs:$Rd32),
12377(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12378"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12379tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12380let Inst{6-5} = 0b00;
12381let Inst{31-21} = 0b00111010011;
12382let hasNewValue = 1;
12383let opNewValue = 0;
12384let addrMode = BaseRegOffset;
12385let accessSize = HalfWordAccess;
12386let mayLoad = 1;
12387let BaseOpcode = "L4_loadruh_rr";
12388let CextOpcode = "L2_loadruh";
12389let InputType = "reg";
12390let isPredicable = 1;
12391}
12392def L4_loadruh_ur : HInst<
12393(outs IntRegs:$Rd32),
12394(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12395"$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12396tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12397let Inst{12-12} = 0b1;
12398let Inst{31-21} = 0b10011101011;
12399let hasNewValue = 1;
12400let opNewValue = 0;
12401let addrMode = BaseLongOffset;
12402let accessSize = HalfWordAccess;
12403let mayLoad = 1;
12404let isExtended = 1;
12405let CextOpcode = "L2_loadruh";
12406let InputType = "imm";
12407let DecoderNamespace = "MustExtend";
12408let isExtendable = 1;
12409let opExtendable = 3;
12410let isExtentSigned = 0;
12411let opExtentBits = 6;
12412let opExtentAlign = 0;
12413}
12414def L4_or_memopb_io : HInst<
12415(outs),
12416(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12417"memb($Rs32+#$Ii) |= $Rt32",
12418tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
12419let Inst{6-5} = 0b11;
12420let Inst{13-13} = 0b0;
12421let Inst{31-21} = 0b00111110000;
12422let addrMode = BaseImmOffset;
12423let accessSize = ByteAccess;
12424let mayLoad = 1;
12425let isRestrictNoSlot1Store = 1;
12426let mayStore = 1;
12427let isExtendable = 1;
12428let opExtendable = 1;
12429let isExtentSigned = 0;
12430let opExtentBits = 6;
12431let opExtentAlign = 0;
12432}
12433def L4_or_memopb_zomap : HInst<
12434(outs),
12435(ins IntRegs:$Rs32, IntRegs:$Rt32),
12436"memb($Rs32) |= $Rt32",
12437tc_9bcfb2ee, TypeMAPPING> {
12438let isPseudo = 1;
12439let isCodeGenOnly = 1;
12440}
12441def L4_or_memoph_io : HInst<
12442(outs),
12443(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12444"memh($Rs32+#$Ii) |= $Rt32",
12445tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
12446let Inst{6-5} = 0b11;
12447let Inst{13-13} = 0b0;
12448let Inst{31-21} = 0b00111110001;
12449let addrMode = BaseImmOffset;
12450let accessSize = HalfWordAccess;
12451let mayLoad = 1;
12452let isRestrictNoSlot1Store = 1;
12453let mayStore = 1;
12454let isExtendable = 1;
12455let opExtendable = 1;
12456let isExtentSigned = 0;
12457let opExtentBits = 7;
12458let opExtentAlign = 1;
12459}
12460def L4_or_memoph_zomap : HInst<
12461(outs),
12462(ins IntRegs:$Rs32, IntRegs:$Rt32),
12463"memh($Rs32) |= $Rt32",
12464tc_9bcfb2ee, TypeMAPPING> {
12465let isPseudo = 1;
12466let isCodeGenOnly = 1;
12467}
12468def L4_or_memopw_io : HInst<
12469(outs),
12470(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12471"memw($Rs32+#$Ii) |= $Rt32",
12472tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
12473let Inst{6-5} = 0b11;
12474let Inst{13-13} = 0b0;
12475let Inst{31-21} = 0b00111110010;
12476let addrMode = BaseImmOffset;
12477let accessSize = WordAccess;
12478let mayLoad = 1;
12479let isRestrictNoSlot1Store = 1;
12480let mayStore = 1;
12481let isExtendable = 1;
12482let opExtendable = 1;
12483let isExtentSigned = 0;
12484let opExtentBits = 8;
12485let opExtentAlign = 2;
12486}
12487def L4_or_memopw_zomap : HInst<
12488(outs),
12489(ins IntRegs:$Rs32, IntRegs:$Rt32),
12490"memw($Rs32) |= $Rt32",
12491tc_9bcfb2ee, TypeMAPPING> {
12492let isPseudo = 1;
12493let isCodeGenOnly = 1;
12494}
12495def L4_ploadrbf_abs : HInst<
12496(outs IntRegs:$Rd32),
12497(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12498"if (!$Pt4) $Rd32 = memb(#$Ii)",
12499tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12500let Inst{7-5} = 0b100;
12501let Inst{13-11} = 0b101;
12502let Inst{31-21} = 0b10011111000;
12503let isPredicated = 1;
12504let isPredicatedFalse = 1;
12505let hasNewValue = 1;
12506let opNewValue = 0;
12507let addrMode = Absolute;
12508let accessSize = ByteAccess;
12509let mayLoad = 1;
12510let isExtended = 1;
12511let BaseOpcode = "L4_loadrb_abs";
12512let CextOpcode = "L2_loadrb";
12513let DecoderNamespace = "MustExtend";
12514let isExtendable = 1;
12515let opExtendable = 2;
12516let isExtentSigned = 0;
12517let opExtentBits = 6;
12518let opExtentAlign = 0;
12519}
12520def L4_ploadrbf_rr : HInst<
12521(outs IntRegs:$Rd32),
12522(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12523"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12524tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12525let Inst{31-21} = 0b00110001000;
12526let isPredicated = 1;
12527let isPredicatedFalse = 1;
12528let hasNewValue = 1;
12529let opNewValue = 0;
12530let addrMode = BaseRegOffset;
12531let accessSize = ByteAccess;
12532let mayLoad = 1;
12533let BaseOpcode = "L4_loadrb_rr";
12534let CextOpcode = "L2_loadrb";
12535let InputType = "reg";
12536}
12537def L4_ploadrbfnew_abs : HInst<
12538(outs IntRegs:$Rd32),
12539(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12540"if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12541tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12542let Inst{7-5} = 0b100;
12543let Inst{13-11} = 0b111;
12544let Inst{31-21} = 0b10011111000;
12545let isPredicated = 1;
12546let isPredicatedFalse = 1;
12547let hasNewValue = 1;
12548let opNewValue = 0;
12549let addrMode = Absolute;
12550let accessSize = ByteAccess;
12551let isPredicatedNew = 1;
12552let mayLoad = 1;
12553let isExtended = 1;
12554let BaseOpcode = "L4_loadrb_abs";
12555let CextOpcode = "L2_loadrb";
12556let DecoderNamespace = "MustExtend";
12557let isExtendable = 1;
12558let opExtendable = 2;
12559let isExtentSigned = 0;
12560let opExtentBits = 6;
12561let opExtentAlign = 0;
12562}
12563def L4_ploadrbfnew_rr : HInst<
12564(outs IntRegs:$Rd32),
12565(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12566"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12567tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12568let Inst{31-21} = 0b00110011000;
12569let isPredicated = 1;
12570let isPredicatedFalse = 1;
12571let hasNewValue = 1;
12572let opNewValue = 0;
12573let addrMode = BaseRegOffset;
12574let accessSize = ByteAccess;
12575let isPredicatedNew = 1;
12576let mayLoad = 1;
12577let BaseOpcode = "L4_loadrb_rr";
12578let CextOpcode = "L2_loadrb";
12579let InputType = "reg";
12580}
12581def L4_ploadrbt_abs : HInst<
12582(outs IntRegs:$Rd32),
12583(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12584"if ($Pt4) $Rd32 = memb(#$Ii)",
12585tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12586let Inst{7-5} = 0b100;
12587let Inst{13-11} = 0b100;
12588let Inst{31-21} = 0b10011111000;
12589let isPredicated = 1;
12590let hasNewValue = 1;
12591let opNewValue = 0;
12592let addrMode = Absolute;
12593let accessSize = ByteAccess;
12594let mayLoad = 1;
12595let isExtended = 1;
12596let BaseOpcode = "L4_loadrb_abs";
12597let CextOpcode = "L2_loadrb";
12598let DecoderNamespace = "MustExtend";
12599let isExtendable = 1;
12600let opExtendable = 2;
12601let isExtentSigned = 0;
12602let opExtentBits = 6;
12603let opExtentAlign = 0;
12604}
12605def L4_ploadrbt_rr : HInst<
12606(outs IntRegs:$Rd32),
12607(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12608"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12609tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12610let Inst{31-21} = 0b00110000000;
12611let isPredicated = 1;
12612let hasNewValue = 1;
12613let opNewValue = 0;
12614let addrMode = BaseRegOffset;
12615let accessSize = ByteAccess;
12616let mayLoad = 1;
12617let BaseOpcode = "L4_loadrb_rr";
12618let CextOpcode = "L2_loadrb";
12619let InputType = "reg";
12620}
12621def L4_ploadrbtnew_abs : HInst<
12622(outs IntRegs:$Rd32),
12623(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12624"if ($Pt4.new) $Rd32 = memb(#$Ii)",
12625tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12626let Inst{7-5} = 0b100;
12627let Inst{13-11} = 0b110;
12628let Inst{31-21} = 0b10011111000;
12629let isPredicated = 1;
12630let hasNewValue = 1;
12631let opNewValue = 0;
12632let addrMode = Absolute;
12633let accessSize = ByteAccess;
12634let isPredicatedNew = 1;
12635let mayLoad = 1;
12636let isExtended = 1;
12637let BaseOpcode = "L4_loadrb_abs";
12638let CextOpcode = "L2_loadrb";
12639let DecoderNamespace = "MustExtend";
12640let isExtendable = 1;
12641let opExtendable = 2;
12642let isExtentSigned = 0;
12643let opExtentBits = 6;
12644let opExtentAlign = 0;
12645}
12646def L4_ploadrbtnew_rr : HInst<
12647(outs IntRegs:$Rd32),
12648(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12649"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12650tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12651let Inst{31-21} = 0b00110010000;
12652let isPredicated = 1;
12653let hasNewValue = 1;
12654let opNewValue = 0;
12655let addrMode = BaseRegOffset;
12656let accessSize = ByteAccess;
12657let isPredicatedNew = 1;
12658let mayLoad = 1;
12659let BaseOpcode = "L4_loadrb_rr";
12660let CextOpcode = "L2_loadrb";
12661let InputType = "reg";
12662}
12663def L4_ploadrdf_abs : HInst<
12664(outs DoubleRegs:$Rdd32),
12665(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12666"if (!$Pt4) $Rdd32 = memd(#$Ii)",
12667tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12668let Inst{7-5} = 0b100;
12669let Inst{13-11} = 0b101;
12670let Inst{31-21} = 0b10011111110;
12671let isPredicated = 1;
12672let isPredicatedFalse = 1;
12673let addrMode = Absolute;
12674let accessSize = DoubleWordAccess;
12675let mayLoad = 1;
12676let isExtended = 1;
12677let BaseOpcode = "L4_loadrd_abs";
12678let CextOpcode = "L2_loadrd";
12679let DecoderNamespace = "MustExtend";
12680let isExtendable = 1;
12681let opExtendable = 2;
12682let isExtentSigned = 0;
12683let opExtentBits = 6;
12684let opExtentAlign = 0;
12685}
12686def L4_ploadrdf_rr : HInst<
12687(outs DoubleRegs:$Rdd32),
12688(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12689"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12690tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12691let Inst{31-21} = 0b00110001110;
12692let isPredicated = 1;
12693let isPredicatedFalse = 1;
12694let addrMode = BaseRegOffset;
12695let accessSize = DoubleWordAccess;
12696let mayLoad = 1;
12697let BaseOpcode = "L4_loadrd_rr";
12698let CextOpcode = "L2_loadrd";
12699let InputType = "reg";
12700}
12701def L4_ploadrdfnew_abs : HInst<
12702(outs DoubleRegs:$Rdd32),
12703(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12704"if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12705tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12706let Inst{7-5} = 0b100;
12707let Inst{13-11} = 0b111;
12708let Inst{31-21} = 0b10011111110;
12709let isPredicated = 1;
12710let isPredicatedFalse = 1;
12711let addrMode = Absolute;
12712let accessSize = DoubleWordAccess;
12713let isPredicatedNew = 1;
12714let mayLoad = 1;
12715let isExtended = 1;
12716let BaseOpcode = "L4_loadrd_abs";
12717let CextOpcode = "L2_loadrd";
12718let DecoderNamespace = "MustExtend";
12719let isExtendable = 1;
12720let opExtendable = 2;
12721let isExtentSigned = 0;
12722let opExtentBits = 6;
12723let opExtentAlign = 0;
12724}
12725def L4_ploadrdfnew_rr : HInst<
12726(outs DoubleRegs:$Rdd32),
12727(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12728"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12729tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12730let Inst{31-21} = 0b00110011110;
12731let isPredicated = 1;
12732let isPredicatedFalse = 1;
12733let addrMode = BaseRegOffset;
12734let accessSize = DoubleWordAccess;
12735let isPredicatedNew = 1;
12736let mayLoad = 1;
12737let BaseOpcode = "L4_loadrd_rr";
12738let CextOpcode = "L2_loadrd";
12739let InputType = "reg";
12740}
12741def L4_ploadrdt_abs : HInst<
12742(outs DoubleRegs:$Rdd32),
12743(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12744"if ($Pt4) $Rdd32 = memd(#$Ii)",
12745tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12746let Inst{7-5} = 0b100;
12747let Inst{13-11} = 0b100;
12748let Inst{31-21} = 0b10011111110;
12749let isPredicated = 1;
12750let addrMode = Absolute;
12751let accessSize = DoubleWordAccess;
12752let mayLoad = 1;
12753let isExtended = 1;
12754let BaseOpcode = "L4_loadrd_abs";
12755let CextOpcode = "L2_loadrd";
12756let DecoderNamespace = "MustExtend";
12757let isExtendable = 1;
12758let opExtendable = 2;
12759let isExtentSigned = 0;
12760let opExtentBits = 6;
12761let opExtentAlign = 0;
12762}
12763def L4_ploadrdt_rr : HInst<
12764(outs DoubleRegs:$Rdd32),
12765(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12766"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12767tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12768let Inst{31-21} = 0b00110000110;
12769let isPredicated = 1;
12770let addrMode = BaseRegOffset;
12771let accessSize = DoubleWordAccess;
12772let mayLoad = 1;
12773let BaseOpcode = "L4_loadrd_rr";
12774let CextOpcode = "L2_loadrd";
12775let InputType = "reg";
12776}
12777def L4_ploadrdtnew_abs : HInst<
12778(outs DoubleRegs:$Rdd32),
12779(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12780"if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12781tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12782let Inst{7-5} = 0b100;
12783let Inst{13-11} = 0b110;
12784let Inst{31-21} = 0b10011111110;
12785let isPredicated = 1;
12786let addrMode = Absolute;
12787let accessSize = DoubleWordAccess;
12788let isPredicatedNew = 1;
12789let mayLoad = 1;
12790let isExtended = 1;
12791let BaseOpcode = "L4_loadrd_abs";
12792let CextOpcode = "L2_loadrd";
12793let DecoderNamespace = "MustExtend";
12794let isExtendable = 1;
12795let opExtendable = 2;
12796let isExtentSigned = 0;
12797let opExtentBits = 6;
12798let opExtentAlign = 0;
12799}
12800def L4_ploadrdtnew_rr : HInst<
12801(outs DoubleRegs:$Rdd32),
12802(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12803"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12804tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12805let Inst{31-21} = 0b00110010110;
12806let isPredicated = 1;
12807let addrMode = BaseRegOffset;
12808let accessSize = DoubleWordAccess;
12809let isPredicatedNew = 1;
12810let mayLoad = 1;
12811let BaseOpcode = "L4_loadrd_rr";
12812let CextOpcode = "L2_loadrd";
12813let InputType = "reg";
12814}
12815def L4_ploadrhf_abs : HInst<
12816(outs IntRegs:$Rd32),
12817(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12818"if (!$Pt4) $Rd32 = memh(#$Ii)",
12819tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12820let Inst{7-5} = 0b100;
12821let Inst{13-11} = 0b101;
12822let Inst{31-21} = 0b10011111010;
12823let isPredicated = 1;
12824let isPredicatedFalse = 1;
12825let hasNewValue = 1;
12826let opNewValue = 0;
12827let addrMode = Absolute;
12828let accessSize = HalfWordAccess;
12829let mayLoad = 1;
12830let isExtended = 1;
12831let BaseOpcode = "L4_loadrh_abs";
12832let CextOpcode = "L2_loadrh";
12833let DecoderNamespace = "MustExtend";
12834let isExtendable = 1;
12835let opExtendable = 2;
12836let isExtentSigned = 0;
12837let opExtentBits = 6;
12838let opExtentAlign = 0;
12839}
12840def L4_ploadrhf_rr : HInst<
12841(outs IntRegs:$Rd32),
12842(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12843"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12844tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12845let Inst{31-21} = 0b00110001010;
12846let isPredicated = 1;
12847let isPredicatedFalse = 1;
12848let hasNewValue = 1;
12849let opNewValue = 0;
12850let addrMode = BaseRegOffset;
12851let accessSize = HalfWordAccess;
12852let mayLoad = 1;
12853let BaseOpcode = "L4_loadrh_rr";
12854let CextOpcode = "L2_loadrh";
12855let InputType = "reg";
12856}
12857def L4_ploadrhfnew_abs : HInst<
12858(outs IntRegs:$Rd32),
12859(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12860"if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12861tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12862let Inst{7-5} = 0b100;
12863let Inst{13-11} = 0b111;
12864let Inst{31-21} = 0b10011111010;
12865let isPredicated = 1;
12866let isPredicatedFalse = 1;
12867let hasNewValue = 1;
12868let opNewValue = 0;
12869let addrMode = Absolute;
12870let accessSize = HalfWordAccess;
12871let isPredicatedNew = 1;
12872let mayLoad = 1;
12873let isExtended = 1;
12874let BaseOpcode = "L4_loadrh_abs";
12875let CextOpcode = "L2_loadrh";
12876let DecoderNamespace = "MustExtend";
12877let isExtendable = 1;
12878let opExtendable = 2;
12879let isExtentSigned = 0;
12880let opExtentBits = 6;
12881let opExtentAlign = 0;
12882}
12883def L4_ploadrhfnew_rr : HInst<
12884(outs IntRegs:$Rd32),
12885(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12886"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12887tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12888let Inst{31-21} = 0b00110011010;
12889let isPredicated = 1;
12890let isPredicatedFalse = 1;
12891let hasNewValue = 1;
12892let opNewValue = 0;
12893let addrMode = BaseRegOffset;
12894let accessSize = HalfWordAccess;
12895let isPredicatedNew = 1;
12896let mayLoad = 1;
12897let BaseOpcode = "L4_loadrh_rr";
12898let CextOpcode = "L2_loadrh";
12899let InputType = "reg";
12900}
12901def L4_ploadrht_abs : HInst<
12902(outs IntRegs:$Rd32),
12903(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12904"if ($Pt4) $Rd32 = memh(#$Ii)",
12905tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12906let Inst{7-5} = 0b100;
12907let Inst{13-11} = 0b100;
12908let Inst{31-21} = 0b10011111010;
12909let isPredicated = 1;
12910let hasNewValue = 1;
12911let opNewValue = 0;
12912let addrMode = Absolute;
12913let accessSize = HalfWordAccess;
12914let mayLoad = 1;
12915let isExtended = 1;
12916let BaseOpcode = "L4_loadrh_abs";
12917let CextOpcode = "L2_loadrh";
12918let DecoderNamespace = "MustExtend";
12919let isExtendable = 1;
12920let opExtendable = 2;
12921let isExtentSigned = 0;
12922let opExtentBits = 6;
12923let opExtentAlign = 0;
12924}
12925def L4_ploadrht_rr : HInst<
12926(outs IntRegs:$Rd32),
12927(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12928"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12929tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12930let Inst{31-21} = 0b00110000010;
12931let isPredicated = 1;
12932let hasNewValue = 1;
12933let opNewValue = 0;
12934let addrMode = BaseRegOffset;
12935let accessSize = HalfWordAccess;
12936let mayLoad = 1;
12937let BaseOpcode = "L4_loadrh_rr";
12938let CextOpcode = "L2_loadrh";
12939let InputType = "reg";
12940}
12941def L4_ploadrhtnew_abs : HInst<
12942(outs IntRegs:$Rd32),
12943(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12944"if ($Pt4.new) $Rd32 = memh(#$Ii)",
12945tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12946let Inst{7-5} = 0b100;
12947let Inst{13-11} = 0b110;
12948let Inst{31-21} = 0b10011111010;
12949let isPredicated = 1;
12950let hasNewValue = 1;
12951let opNewValue = 0;
12952let addrMode = Absolute;
12953let accessSize = HalfWordAccess;
12954let isPredicatedNew = 1;
12955let mayLoad = 1;
12956let isExtended = 1;
12957let BaseOpcode = "L4_loadrh_abs";
12958let CextOpcode = "L2_loadrh";
12959let DecoderNamespace = "MustExtend";
12960let isExtendable = 1;
12961let opExtendable = 2;
12962let isExtentSigned = 0;
12963let opExtentBits = 6;
12964let opExtentAlign = 0;
12965}
12966def L4_ploadrhtnew_rr : HInst<
12967(outs IntRegs:$Rd32),
12968(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12969"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12970tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12971let Inst{31-21} = 0b00110010010;
12972let isPredicated = 1;
12973let hasNewValue = 1;
12974let opNewValue = 0;
12975let addrMode = BaseRegOffset;
12976let accessSize = HalfWordAccess;
12977let isPredicatedNew = 1;
12978let mayLoad = 1;
12979let BaseOpcode = "L4_loadrh_rr";
12980let CextOpcode = "L2_loadrh";
12981let InputType = "reg";
12982}
12983def L4_ploadrif_abs : HInst<
12984(outs IntRegs:$Rd32),
12985(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12986"if (!$Pt4) $Rd32 = memw(#$Ii)",
12987tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12988let Inst{7-5} = 0b100;
12989let Inst{13-11} = 0b101;
12990let Inst{31-21} = 0b10011111100;
12991let isPredicated = 1;
12992let isPredicatedFalse = 1;
12993let hasNewValue = 1;
12994let opNewValue = 0;
12995let addrMode = Absolute;
12996let accessSize = WordAccess;
12997let mayLoad = 1;
12998let isExtended = 1;
12999let BaseOpcode = "L4_loadri_abs";
13000let CextOpcode = "L2_loadri";
13001let DecoderNamespace = "MustExtend";
13002let isExtendable = 1;
13003let opExtendable = 2;
13004let isExtentSigned = 0;
13005let opExtentBits = 6;
13006let opExtentAlign = 0;
13007}
13008def L4_ploadrif_rr : HInst<
13009(outs IntRegs:$Rd32),
13010(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13011"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13012tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13013let Inst{31-21} = 0b00110001100;
13014let isPredicated = 1;
13015let isPredicatedFalse = 1;
13016let hasNewValue = 1;
13017let opNewValue = 0;
13018let addrMode = BaseRegOffset;
13019let accessSize = WordAccess;
13020let mayLoad = 1;
13021let BaseOpcode = "L4_loadri_rr";
13022let CextOpcode = "L2_loadri";
13023let InputType = "reg";
13024}
13025def L4_ploadrifnew_abs : HInst<
13026(outs IntRegs:$Rd32),
13027(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13028"if (!$Pt4.new) $Rd32 = memw(#$Ii)",
13029tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13030let Inst{7-5} = 0b100;
13031let Inst{13-11} = 0b111;
13032let Inst{31-21} = 0b10011111100;
13033let isPredicated = 1;
13034let isPredicatedFalse = 1;
13035let hasNewValue = 1;
13036let opNewValue = 0;
13037let addrMode = Absolute;
13038let accessSize = WordAccess;
13039let isPredicatedNew = 1;
13040let mayLoad = 1;
13041let isExtended = 1;
13042let BaseOpcode = "L4_loadri_abs";
13043let CextOpcode = "L2_loadri";
13044let DecoderNamespace = "MustExtend";
13045let isExtendable = 1;
13046let opExtendable = 2;
13047let isExtentSigned = 0;
13048let opExtentBits = 6;
13049let opExtentAlign = 0;
13050}
13051def L4_ploadrifnew_rr : HInst<
13052(outs IntRegs:$Rd32),
13053(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13054"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13055tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13056let Inst{31-21} = 0b00110011100;
13057let isPredicated = 1;
13058let isPredicatedFalse = 1;
13059let hasNewValue = 1;
13060let opNewValue = 0;
13061let addrMode = BaseRegOffset;
13062let accessSize = WordAccess;
13063let isPredicatedNew = 1;
13064let mayLoad = 1;
13065let BaseOpcode = "L4_loadri_rr";
13066let CextOpcode = "L2_loadri";
13067let InputType = "reg";
13068}
13069def L4_ploadrit_abs : HInst<
13070(outs IntRegs:$Rd32),
13071(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13072"if ($Pt4) $Rd32 = memw(#$Ii)",
13073tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13074let Inst{7-5} = 0b100;
13075let Inst{13-11} = 0b100;
13076let Inst{31-21} = 0b10011111100;
13077let isPredicated = 1;
13078let hasNewValue = 1;
13079let opNewValue = 0;
13080let addrMode = Absolute;
13081let accessSize = WordAccess;
13082let mayLoad = 1;
13083let isExtended = 1;
13084let BaseOpcode = "L4_loadri_abs";
13085let CextOpcode = "L2_loadri";
13086let DecoderNamespace = "MustExtend";
13087let isExtendable = 1;
13088let opExtendable = 2;
13089let isExtentSigned = 0;
13090let opExtentBits = 6;
13091let opExtentAlign = 0;
13092}
13093def L4_ploadrit_rr : HInst<
13094(outs IntRegs:$Rd32),
13095(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13096"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13097tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13098let Inst{31-21} = 0b00110000100;
13099let isPredicated = 1;
13100let hasNewValue = 1;
13101let opNewValue = 0;
13102let addrMode = BaseRegOffset;
13103let accessSize = WordAccess;
13104let mayLoad = 1;
13105let BaseOpcode = "L4_loadri_rr";
13106let CextOpcode = "L2_loadri";
13107let InputType = "reg";
13108}
13109def L4_ploadritnew_abs : HInst<
13110(outs IntRegs:$Rd32),
13111(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13112"if ($Pt4.new) $Rd32 = memw(#$Ii)",
13113tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13114let Inst{7-5} = 0b100;
13115let Inst{13-11} = 0b110;
13116let Inst{31-21} = 0b10011111100;
13117let isPredicated = 1;
13118let hasNewValue = 1;
13119let opNewValue = 0;
13120let addrMode = Absolute;
13121let accessSize = WordAccess;
13122let isPredicatedNew = 1;
13123let mayLoad = 1;
13124let isExtended = 1;
13125let BaseOpcode = "L4_loadri_abs";
13126let CextOpcode = "L2_loadri";
13127let DecoderNamespace = "MustExtend";
13128let isExtendable = 1;
13129let opExtendable = 2;
13130let isExtentSigned = 0;
13131let opExtentBits = 6;
13132let opExtentAlign = 0;
13133}
13134def L4_ploadritnew_rr : HInst<
13135(outs IntRegs:$Rd32),
13136(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13137"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13138tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13139let Inst{31-21} = 0b00110010100;
13140let isPredicated = 1;
13141let hasNewValue = 1;
13142let opNewValue = 0;
13143let addrMode = BaseRegOffset;
13144let accessSize = WordAccess;
13145let isPredicatedNew = 1;
13146let mayLoad = 1;
13147let BaseOpcode = "L4_loadri_rr";
13148let CextOpcode = "L2_loadri";
13149let InputType = "reg";
13150}
13151def L4_ploadrubf_abs : HInst<
13152(outs IntRegs:$Rd32),
13153(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13154"if (!$Pt4) $Rd32 = memub(#$Ii)",
13155tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13156let Inst{7-5} = 0b100;
13157let Inst{13-11} = 0b101;
13158let Inst{31-21} = 0b10011111001;
13159let isPredicated = 1;
13160let isPredicatedFalse = 1;
13161let hasNewValue = 1;
13162let opNewValue = 0;
13163let addrMode = Absolute;
13164let accessSize = ByteAccess;
13165let mayLoad = 1;
13166let isExtended = 1;
13167let BaseOpcode = "L4_loadrub_abs";
13168let CextOpcode = "L2_loadrub";
13169let DecoderNamespace = "MustExtend";
13170let isExtendable = 1;
13171let opExtendable = 2;
13172let isExtentSigned = 0;
13173let opExtentBits = 6;
13174let opExtentAlign = 0;
13175}
13176def L4_ploadrubf_rr : HInst<
13177(outs IntRegs:$Rd32),
13178(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13179"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13180tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13181let Inst{31-21} = 0b00110001001;
13182let isPredicated = 1;
13183let isPredicatedFalse = 1;
13184let hasNewValue = 1;
13185let opNewValue = 0;
13186let addrMode = BaseRegOffset;
13187let accessSize = ByteAccess;
13188let mayLoad = 1;
13189let BaseOpcode = "L4_loadrub_rr";
13190let CextOpcode = "L2_loadrub";
13191let InputType = "reg";
13192}
13193def L4_ploadrubfnew_abs : HInst<
13194(outs IntRegs:$Rd32),
13195(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13196"if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13197tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13198let Inst{7-5} = 0b100;
13199let Inst{13-11} = 0b111;
13200let Inst{31-21} = 0b10011111001;
13201let isPredicated = 1;
13202let isPredicatedFalse = 1;
13203let hasNewValue = 1;
13204let opNewValue = 0;
13205let addrMode = Absolute;
13206let accessSize = ByteAccess;
13207let isPredicatedNew = 1;
13208let mayLoad = 1;
13209let isExtended = 1;
13210let BaseOpcode = "L4_loadrub_abs";
13211let CextOpcode = "L2_loadrub";
13212let DecoderNamespace = "MustExtend";
13213let isExtendable = 1;
13214let opExtendable = 2;
13215let isExtentSigned = 0;
13216let opExtentBits = 6;
13217let opExtentAlign = 0;
13218}
13219def L4_ploadrubfnew_rr : HInst<
13220(outs IntRegs:$Rd32),
13221(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13222"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13223tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13224let Inst{31-21} = 0b00110011001;
13225let isPredicated = 1;
13226let isPredicatedFalse = 1;
13227let hasNewValue = 1;
13228let opNewValue = 0;
13229let addrMode = BaseRegOffset;
13230let accessSize = ByteAccess;
13231let isPredicatedNew = 1;
13232let mayLoad = 1;
13233let BaseOpcode = "L4_loadrub_rr";
13234let CextOpcode = "L2_loadrub";
13235let InputType = "reg";
13236}
13237def L4_ploadrubt_abs : HInst<
13238(outs IntRegs:$Rd32),
13239(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13240"if ($Pt4) $Rd32 = memub(#$Ii)",
13241tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13242let Inst{7-5} = 0b100;
13243let Inst{13-11} = 0b100;
13244let Inst{31-21} = 0b10011111001;
13245let isPredicated = 1;
13246let hasNewValue = 1;
13247let opNewValue = 0;
13248let addrMode = Absolute;
13249let accessSize = ByteAccess;
13250let mayLoad = 1;
13251let isExtended = 1;
13252let BaseOpcode = "L4_loadrub_abs";
13253let CextOpcode = "L2_loadrub";
13254let DecoderNamespace = "MustExtend";
13255let isExtendable = 1;
13256let opExtendable = 2;
13257let isExtentSigned = 0;
13258let opExtentBits = 6;
13259let opExtentAlign = 0;
13260}
13261def L4_ploadrubt_rr : HInst<
13262(outs IntRegs:$Rd32),
13263(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13264"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13265tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13266let Inst{31-21} = 0b00110000001;
13267let isPredicated = 1;
13268let hasNewValue = 1;
13269let opNewValue = 0;
13270let addrMode = BaseRegOffset;
13271let accessSize = ByteAccess;
13272let mayLoad = 1;
13273let BaseOpcode = "L4_loadrub_rr";
13274let CextOpcode = "L2_loadrub";
13275let InputType = "reg";
13276}
13277def L4_ploadrubtnew_abs : HInst<
13278(outs IntRegs:$Rd32),
13279(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13280"if ($Pt4.new) $Rd32 = memub(#$Ii)",
13281tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13282let Inst{7-5} = 0b100;
13283let Inst{13-11} = 0b110;
13284let Inst{31-21} = 0b10011111001;
13285let isPredicated = 1;
13286let hasNewValue = 1;
13287let opNewValue = 0;
13288let addrMode = Absolute;
13289let accessSize = ByteAccess;
13290let isPredicatedNew = 1;
13291let mayLoad = 1;
13292let isExtended = 1;
13293let BaseOpcode = "L4_loadrub_abs";
13294let CextOpcode = "L2_loadrub";
13295let DecoderNamespace = "MustExtend";
13296let isExtendable = 1;
13297let opExtendable = 2;
13298let isExtentSigned = 0;
13299let opExtentBits = 6;
13300let opExtentAlign = 0;
13301}
13302def L4_ploadrubtnew_rr : HInst<
13303(outs IntRegs:$Rd32),
13304(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13305"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13306tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13307let Inst{31-21} = 0b00110010001;
13308let isPredicated = 1;
13309let hasNewValue = 1;
13310let opNewValue = 0;
13311let addrMode = BaseRegOffset;
13312let accessSize = ByteAccess;
13313let isPredicatedNew = 1;
13314let mayLoad = 1;
13315let BaseOpcode = "L4_loadrub_rr";
13316let CextOpcode = "L2_loadrub";
13317let InputType = "reg";
13318}
13319def L4_ploadruhf_abs : HInst<
13320(outs IntRegs:$Rd32),
13321(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13322"if (!$Pt4) $Rd32 = memuh(#$Ii)",
13323tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13324let Inst{7-5} = 0b100;
13325let Inst{13-11} = 0b101;
13326let Inst{31-21} = 0b10011111011;
13327let isPredicated = 1;
13328let isPredicatedFalse = 1;
13329let hasNewValue = 1;
13330let opNewValue = 0;
13331let addrMode = Absolute;
13332let accessSize = HalfWordAccess;
13333let mayLoad = 1;
13334let isExtended = 1;
13335let BaseOpcode = "L4_loadruh_abs";
13336let CextOpcode = "L2_loadruh";
13337let DecoderNamespace = "MustExtend";
13338let isExtendable = 1;
13339let opExtendable = 2;
13340let isExtentSigned = 0;
13341let opExtentBits = 6;
13342let opExtentAlign = 0;
13343}
13344def L4_ploadruhf_rr : HInst<
13345(outs IntRegs:$Rd32),
13346(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13347"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13348tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13349let Inst{31-21} = 0b00110001011;
13350let isPredicated = 1;
13351let isPredicatedFalse = 1;
13352let hasNewValue = 1;
13353let opNewValue = 0;
13354let addrMode = BaseRegOffset;
13355let accessSize = HalfWordAccess;
13356let mayLoad = 1;
13357let BaseOpcode = "L4_loadruh_rr";
13358let CextOpcode = "L2_loadruh";
13359let InputType = "reg";
13360}
13361def L4_ploadruhfnew_abs : HInst<
13362(outs IntRegs:$Rd32),
13363(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13364"if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13365tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13366let Inst{7-5} = 0b100;
13367let Inst{13-11} = 0b111;
13368let Inst{31-21} = 0b10011111011;
13369let isPredicated = 1;
13370let isPredicatedFalse = 1;
13371let hasNewValue = 1;
13372let opNewValue = 0;
13373let addrMode = Absolute;
13374let accessSize = HalfWordAccess;
13375let isPredicatedNew = 1;
13376let mayLoad = 1;
13377let isExtended = 1;
13378let BaseOpcode = "L4_loadruh_abs";
13379let CextOpcode = "L2_loadruh";
13380let DecoderNamespace = "MustExtend";
13381let isExtendable = 1;
13382let opExtendable = 2;
13383let isExtentSigned = 0;
13384let opExtentBits = 6;
13385let opExtentAlign = 0;
13386}
13387def L4_ploadruhfnew_rr : HInst<
13388(outs IntRegs:$Rd32),
13389(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13390"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13391tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13392let Inst{31-21} = 0b00110011011;
13393let isPredicated = 1;
13394let isPredicatedFalse = 1;
13395let hasNewValue = 1;
13396let opNewValue = 0;
13397let addrMode = BaseRegOffset;
13398let accessSize = HalfWordAccess;
13399let isPredicatedNew = 1;
13400let mayLoad = 1;
13401let BaseOpcode = "L4_loadruh_rr";
13402let CextOpcode = "L2_loadruh";
13403let InputType = "reg";
13404}
13405def L4_ploadruht_abs : HInst<
13406(outs IntRegs:$Rd32),
13407(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13408"if ($Pt4) $Rd32 = memuh(#$Ii)",
13409tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13410let Inst{7-5} = 0b100;
13411let Inst{13-11} = 0b100;
13412let Inst{31-21} = 0b10011111011;
13413let isPredicated = 1;
13414let hasNewValue = 1;
13415let opNewValue = 0;
13416let addrMode = Absolute;
13417let accessSize = HalfWordAccess;
13418let mayLoad = 1;
13419let isExtended = 1;
13420let BaseOpcode = "L4_loadruh_abs";
13421let CextOpcode = "L2_loadruh";
13422let DecoderNamespace = "MustExtend";
13423let isExtendable = 1;
13424let opExtendable = 2;
13425let isExtentSigned = 0;
13426let opExtentBits = 6;
13427let opExtentAlign = 0;
13428}
13429def L4_ploadruht_rr : HInst<
13430(outs IntRegs:$Rd32),
13431(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13432"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13433tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13434let Inst{31-21} = 0b00110000011;
13435let isPredicated = 1;
13436let hasNewValue = 1;
13437let opNewValue = 0;
13438let addrMode = BaseRegOffset;
13439let accessSize = HalfWordAccess;
13440let mayLoad = 1;
13441let BaseOpcode = "L4_loadruh_rr";
13442let CextOpcode = "L2_loadruh";
13443let InputType = "reg";
13444}
13445def L4_ploadruhtnew_abs : HInst<
13446(outs IntRegs:$Rd32),
13447(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13448"if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13449tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13450let Inst{7-5} = 0b100;
13451let Inst{13-11} = 0b110;
13452let Inst{31-21} = 0b10011111011;
13453let isPredicated = 1;
13454let hasNewValue = 1;
13455let opNewValue = 0;
13456let addrMode = Absolute;
13457let accessSize = HalfWordAccess;
13458let isPredicatedNew = 1;
13459let mayLoad = 1;
13460let isExtended = 1;
13461let BaseOpcode = "L4_loadruh_abs";
13462let CextOpcode = "L2_loadruh";
13463let DecoderNamespace = "MustExtend";
13464let isExtendable = 1;
13465let opExtendable = 2;
13466let isExtentSigned = 0;
13467let opExtentBits = 6;
13468let opExtentAlign = 0;
13469}
13470def L4_ploadruhtnew_rr : HInst<
13471(outs IntRegs:$Rd32),
13472(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13473"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13474tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13475let Inst{31-21} = 0b00110010011;
13476let isPredicated = 1;
13477let hasNewValue = 1;
13478let opNewValue = 0;
13479let addrMode = BaseRegOffset;
13480let accessSize = HalfWordAccess;
13481let isPredicatedNew = 1;
13482let mayLoad = 1;
13483let BaseOpcode = "L4_loadruh_rr";
13484let CextOpcode = "L2_loadruh";
13485let InputType = "reg";
13486}
13487def L4_return : HInst<
13488(outs DoubleRegs:$Rdd32),
13489(ins IntRegs:$Rs32),
13490"$Rdd32 = dealloc_return($Rs32):raw",
13491tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel {
13492let Inst{13-5} = 0b000000000;
13493let Inst{31-21} = 0b10010110000;
13494let isTerminator = 1;
13495let isIndirectBranch = 1;
13496let accessSize = DoubleWordAccess;
13497let mayLoad = 1;
13498let cofMax1 = 1;
13499let isRestrictNoSlot1Store = 1;
13500let isReturn = 1;
13501let Uses = [FRAMEKEY];
13502let Defs = [PC, R29];
13503let BaseOpcode = "L4_return";
13504let isBarrier = 1;
13505let isPredicable = 1;
13506let isTaken = 1;
13507}
13508def L4_return_f : HInst<
13509(outs DoubleRegs:$Rdd32),
13510(ins PredRegs:$Pv4, IntRegs:$Rs32),
13511"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13512tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13513let Inst{7-5} = 0b000;
13514let Inst{13-10} = 0b1100;
13515let Inst{31-21} = 0b10010110000;
13516let isPredicated = 1;
13517let isPredicatedFalse = 1;
13518let isTerminator = 1;
13519let isIndirectBranch = 1;
13520let accessSize = DoubleWordAccess;
13521let mayLoad = 1;
13522let cofMax1 = 1;
13523let isRestrictNoSlot1Store = 1;
13524let isReturn = 1;
13525let Uses = [FRAMEKEY];
13526let Defs = [PC, R29];
13527let BaseOpcode = "L4_return";
13528let isTaken = Inst{12};
13529}
13530def L4_return_fnew_pnt : HInst<
13531(outs DoubleRegs:$Rdd32),
13532(ins PredRegs:$Pv4, IntRegs:$Rs32),
13533"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13534tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13535let Inst{7-5} = 0b000;
13536let Inst{13-10} = 0b1010;
13537let Inst{31-21} = 0b10010110000;
13538let isPredicated = 1;
13539let isPredicatedFalse = 1;
13540let isTerminator = 1;
13541let isIndirectBranch = 1;
13542let accessSize = DoubleWordAccess;
13543let isPredicatedNew = 1;
13544let mayLoad = 1;
13545let cofMax1 = 1;
13546let isRestrictNoSlot1Store = 1;
13547let isReturn = 1;
13548let Uses = [FRAMEKEY];
13549let Defs = [PC, R29];
13550let BaseOpcode = "L4_return";
13551let isTaken = Inst{12};
13552}
13553def L4_return_fnew_pt : HInst<
13554(outs DoubleRegs:$Rdd32),
13555(ins PredRegs:$Pv4, IntRegs:$Rs32),
13556"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13557tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13558let Inst{7-5} = 0b000;
13559let Inst{13-10} = 0b1110;
13560let Inst{31-21} = 0b10010110000;
13561let isPredicated = 1;
13562let isPredicatedFalse = 1;
13563let isTerminator = 1;
13564let isIndirectBranch = 1;
13565let accessSize = DoubleWordAccess;
13566let isPredicatedNew = 1;
13567let mayLoad = 1;
13568let cofMax1 = 1;
13569let isRestrictNoSlot1Store = 1;
13570let isReturn = 1;
13571let Uses = [FRAMEKEY];
13572let Defs = [PC, R29];
13573let BaseOpcode = "L4_return";
13574let isTaken = Inst{12};
13575}
13576def L4_return_map_to_raw_f : HInst<
13577(outs),
13578(ins PredRegs:$Pv4),
13579"if (!$Pv4) dealloc_return",
13580tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> {
13581let isPseudo = 1;
13582let isCodeGenOnly = 1;
13583}
13584def L4_return_map_to_raw_fnew_pnt : HInst<
13585(outs),
13586(ins PredRegs:$Pv4),
13587"if (!$Pv4.new) dealloc_return:nt",
13588tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13589let isPseudo = 1;
13590let isCodeGenOnly = 1;
13591}
13592def L4_return_map_to_raw_fnew_pt : HInst<
13593(outs),
13594(ins PredRegs:$Pv4),
13595"if (!$Pv4.new) dealloc_return:t",
13596tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13597let isPseudo = 1;
13598let isCodeGenOnly = 1;
13599}
13600def L4_return_map_to_raw_t : HInst<
13601(outs),
13602(ins PredRegs:$Pv4),
13603"if ($Pv4) dealloc_return",
13604tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> {
13605let isPseudo = 1;
13606let isCodeGenOnly = 1;
13607}
13608def L4_return_map_to_raw_tnew_pnt : HInst<
13609(outs),
13610(ins PredRegs:$Pv4),
13611"if ($Pv4.new) dealloc_return:nt",
13612tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13613let isPseudo = 1;
13614let isCodeGenOnly = 1;
13615}
13616def L4_return_map_to_raw_tnew_pt : HInst<
13617(outs),
13618(ins PredRegs:$Pv4),
13619"if ($Pv4.new) dealloc_return:t",
13620tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13621let isPseudo = 1;
13622let isCodeGenOnly = 1;
13623}
13624def L4_return_t : HInst<
13625(outs DoubleRegs:$Rdd32),
13626(ins PredRegs:$Pv4, IntRegs:$Rs32),
13627"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13628tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13629let Inst{7-5} = 0b000;
13630let Inst{13-10} = 0b0100;
13631let Inst{31-21} = 0b10010110000;
13632let isPredicated = 1;
13633let isTerminator = 1;
13634let isIndirectBranch = 1;
13635let accessSize = DoubleWordAccess;
13636let mayLoad = 1;
13637let cofMax1 = 1;
13638let isRestrictNoSlot1Store = 1;
13639let isReturn = 1;
13640let Uses = [FRAMEKEY];
13641let Defs = [PC, R29];
13642let BaseOpcode = "L4_return";
13643let isTaken = Inst{12};
13644}
13645def L4_return_tnew_pnt : HInst<
13646(outs DoubleRegs:$Rdd32),
13647(ins PredRegs:$Pv4, IntRegs:$Rs32),
13648"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13649tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13650let Inst{7-5} = 0b000;
13651let Inst{13-10} = 0b0010;
13652let Inst{31-21} = 0b10010110000;
13653let isPredicated = 1;
13654let isTerminator = 1;
13655let isIndirectBranch = 1;
13656let accessSize = DoubleWordAccess;
13657let isPredicatedNew = 1;
13658let mayLoad = 1;
13659let cofMax1 = 1;
13660let isRestrictNoSlot1Store = 1;
13661let isReturn = 1;
13662let Uses = [FRAMEKEY];
13663let Defs = [PC, R29];
13664let BaseOpcode = "L4_return";
13665let isTaken = Inst{12};
13666}
13667def L4_return_tnew_pt : HInst<
13668(outs DoubleRegs:$Rdd32),
13669(ins PredRegs:$Pv4, IntRegs:$Rs32),
13670"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13671tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13672let Inst{7-5} = 0b000;
13673let Inst{13-10} = 0b0110;
13674let Inst{31-21} = 0b10010110000;
13675let isPredicated = 1;
13676let isTerminator = 1;
13677let isIndirectBranch = 1;
13678let accessSize = DoubleWordAccess;
13679let isPredicatedNew = 1;
13680let mayLoad = 1;
13681let cofMax1 = 1;
13682let isRestrictNoSlot1Store = 1;
13683let isReturn = 1;
13684let Uses = [FRAMEKEY];
13685let Defs = [PC, R29];
13686let BaseOpcode = "L4_return";
13687let isTaken = Inst{12};
13688}
13689def L4_sub_memopb_io : HInst<
13690(outs),
13691(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13692"memb($Rs32+#$Ii) -= $Rt32",
13693tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
13694let Inst{6-5} = 0b01;
13695let Inst{13-13} = 0b0;
13696let Inst{31-21} = 0b00111110000;
13697let addrMode = BaseImmOffset;
13698let accessSize = ByteAccess;
13699let mayLoad = 1;
13700let isRestrictNoSlot1Store = 1;
13701let mayStore = 1;
13702let isExtendable = 1;
13703let opExtendable = 1;
13704let isExtentSigned = 0;
13705let opExtentBits = 6;
13706let opExtentAlign = 0;
13707}
13708def L4_sub_memopb_zomap : HInst<
13709(outs),
13710(ins IntRegs:$Rs32, IntRegs:$Rt32),
13711"memb($Rs32) -= $Rt32",
13712tc_9bcfb2ee, TypeMAPPING> {
13713let isPseudo = 1;
13714let isCodeGenOnly = 1;
13715}
13716def L4_sub_memoph_io : HInst<
13717(outs),
13718(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13719"memh($Rs32+#$Ii) -= $Rt32",
13720tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
13721let Inst{6-5} = 0b01;
13722let Inst{13-13} = 0b0;
13723let Inst{31-21} = 0b00111110001;
13724let addrMode = BaseImmOffset;
13725let accessSize = HalfWordAccess;
13726let mayLoad = 1;
13727let isRestrictNoSlot1Store = 1;
13728let mayStore = 1;
13729let isExtendable = 1;
13730let opExtendable = 1;
13731let isExtentSigned = 0;
13732let opExtentBits = 7;
13733let opExtentAlign = 1;
13734}
13735def L4_sub_memoph_zomap : HInst<
13736(outs),
13737(ins IntRegs:$Rs32, IntRegs:$Rt32),
13738"memh($Rs32) -= $Rt32",
13739tc_9bcfb2ee, TypeMAPPING> {
13740let isPseudo = 1;
13741let isCodeGenOnly = 1;
13742}
13743def L4_sub_memopw_io : HInst<
13744(outs),
13745(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13746"memw($Rs32+#$Ii) -= $Rt32",
13747tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
13748let Inst{6-5} = 0b01;
13749let Inst{13-13} = 0b0;
13750let Inst{31-21} = 0b00111110010;
13751let addrMode = BaseImmOffset;
13752let accessSize = WordAccess;
13753let mayLoad = 1;
13754let isRestrictNoSlot1Store = 1;
13755let mayStore = 1;
13756let isExtendable = 1;
13757let opExtendable = 1;
13758let isExtentSigned = 0;
13759let opExtentBits = 8;
13760let opExtentAlign = 2;
13761}
13762def L4_sub_memopw_zomap : HInst<
13763(outs),
13764(ins IntRegs:$Rs32, IntRegs:$Rt32),
13765"memw($Rs32) -= $Rt32",
13766tc_9bcfb2ee, TypeMAPPING> {
13767let isPseudo = 1;
13768let isCodeGenOnly = 1;
13769}
13770def L6_deallocframe_map_to_raw : HInst<
13771(outs),
13772(ins),
13773"deallocframe",
13774tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> {
13775let isPseudo = 1;
13776let isCodeGenOnly = 1;
13777}
13778def L6_memcpy : HInst<
13779(outs),
13780(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13781"memcpy($Rs32,$Rt32,$Mu2)",
13782tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13783let Inst{7-0} = 0b01000000;
13784let Inst{31-21} = 0b10010010000;
13785let mayLoad = 1;
13786let isSolo = 1;
13787let mayStore = 1;
13788}
13789def L6_return_map_to_raw : HInst<
13790(outs),
13791(ins),
13792"dealloc_return",
13793tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> {
13794let isPseudo = 1;
13795let isCodeGenOnly = 1;
13796}
13797def M2_acci : HInst<
13798(outs IntRegs:$Rx32),
13799(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13800"$Rx32 += add($Rs32,$Rt32)",
13801tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel {
13802let Inst{7-5} = 0b001;
13803let Inst{13-13} = 0b0;
13804let Inst{31-21} = 0b11101111000;
13805let hasNewValue = 1;
13806let opNewValue = 0;
13807let prefersSlot3 = 1;
13808let CextOpcode = "M2_acci";
13809let InputType = "reg";
13810let Constraints = "$Rx32 = $Rx32in";
13811}
13812def M2_accii : HInst<
13813(outs IntRegs:$Rx32),
13814(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13815"$Rx32 += add($Rs32,#$Ii)",
13816tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel {
13817let Inst{13-13} = 0b0;
13818let Inst{31-21} = 0b11100010000;
13819let hasNewValue = 1;
13820let opNewValue = 0;
13821let prefersSlot3 = 1;
13822let CextOpcode = "M2_acci";
13823let InputType = "imm";
13824let isExtendable = 1;
13825let opExtendable = 3;
13826let isExtentSigned = 1;
13827let opExtentBits = 8;
13828let opExtentAlign = 0;
13829let Constraints = "$Rx32 = $Rx32in";
13830}
13831def M2_cmaci_s0 : HInst<
13832(outs DoubleRegs:$Rxx32),
13833(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13834"$Rxx32 += cmpyi($Rs32,$Rt32)",
13835tc_7f8ae742, TypeM>, Enc_61f0b0 {
13836let Inst{7-5} = 0b001;
13837let Inst{13-13} = 0b0;
13838let Inst{31-21} = 0b11100111000;
13839let prefersSlot3 = 1;
13840let Constraints = "$Rxx32 = $Rxx32in";
13841}
13842def M2_cmacr_s0 : HInst<
13843(outs DoubleRegs:$Rxx32),
13844(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13845"$Rxx32 += cmpyr($Rs32,$Rt32)",
13846tc_7f8ae742, TypeM>, Enc_61f0b0 {
13847let Inst{7-5} = 0b010;
13848let Inst{13-13} = 0b0;
13849let Inst{31-21} = 0b11100111000;
13850let prefersSlot3 = 1;
13851let Constraints = "$Rxx32 = $Rxx32in";
13852}
13853def M2_cmacs_s0 : HInst<
13854(outs DoubleRegs:$Rxx32),
13855(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13856"$Rxx32 += cmpy($Rs32,$Rt32):sat",
13857tc_7f8ae742, TypeM>, Enc_61f0b0 {
13858let Inst{7-5} = 0b110;
13859let Inst{13-13} = 0b0;
13860let Inst{31-21} = 0b11100111000;
13861let prefersSlot3 = 1;
13862let Defs = [USR_OVF];
13863let Constraints = "$Rxx32 = $Rxx32in";
13864}
13865def M2_cmacs_s1 : HInst<
13866(outs DoubleRegs:$Rxx32),
13867(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13868"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13869tc_7f8ae742, TypeM>, Enc_61f0b0 {
13870let Inst{7-5} = 0b110;
13871let Inst{13-13} = 0b0;
13872let Inst{31-21} = 0b11100111100;
13873let prefersSlot3 = 1;
13874let Defs = [USR_OVF];
13875let Constraints = "$Rxx32 = $Rxx32in";
13876}
13877def M2_cmacsc_s0 : HInst<
13878(outs DoubleRegs:$Rxx32),
13879(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13880"$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13881tc_7f8ae742, TypeM>, Enc_61f0b0 {
13882let Inst{7-5} = 0b110;
13883let Inst{13-13} = 0b0;
13884let Inst{31-21} = 0b11100111010;
13885let prefersSlot3 = 1;
13886let Defs = [USR_OVF];
13887let Constraints = "$Rxx32 = $Rxx32in";
13888}
13889def M2_cmacsc_s1 : HInst<
13890(outs DoubleRegs:$Rxx32),
13891(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13892"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13893tc_7f8ae742, TypeM>, Enc_61f0b0 {
13894let Inst{7-5} = 0b110;
13895let Inst{13-13} = 0b0;
13896let Inst{31-21} = 0b11100111110;
13897let prefersSlot3 = 1;
13898let Defs = [USR_OVF];
13899let Constraints = "$Rxx32 = $Rxx32in";
13900}
13901def M2_cmpyi_s0 : HInst<
13902(outs DoubleRegs:$Rdd32),
13903(ins IntRegs:$Rs32, IntRegs:$Rt32),
13904"$Rdd32 = cmpyi($Rs32,$Rt32)",
13905tc_c21d7447, TypeM>, Enc_be32a5 {
13906let Inst{7-5} = 0b001;
13907let Inst{13-13} = 0b0;
13908let Inst{31-21} = 0b11100101000;
13909let prefersSlot3 = 1;
13910}
13911def M2_cmpyr_s0 : HInst<
13912(outs DoubleRegs:$Rdd32),
13913(ins IntRegs:$Rs32, IntRegs:$Rt32),
13914"$Rdd32 = cmpyr($Rs32,$Rt32)",
13915tc_c21d7447, TypeM>, Enc_be32a5 {
13916let Inst{7-5} = 0b010;
13917let Inst{13-13} = 0b0;
13918let Inst{31-21} = 0b11100101000;
13919let prefersSlot3 = 1;
13920}
13921def M2_cmpyrs_s0 : HInst<
13922(outs IntRegs:$Rd32),
13923(ins IntRegs:$Rs32, IntRegs:$Rt32),
13924"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13925tc_c21d7447, TypeM>, Enc_5ab2be {
13926let Inst{7-5} = 0b110;
13927let Inst{13-13} = 0b0;
13928let Inst{31-21} = 0b11101101001;
13929let hasNewValue = 1;
13930let opNewValue = 0;
13931let prefersSlot3 = 1;
13932let Defs = [USR_OVF];
13933}
13934def M2_cmpyrs_s1 : HInst<
13935(outs IntRegs:$Rd32),
13936(ins IntRegs:$Rs32, IntRegs:$Rt32),
13937"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13938tc_c21d7447, TypeM>, Enc_5ab2be {
13939let Inst{7-5} = 0b110;
13940let Inst{13-13} = 0b0;
13941let Inst{31-21} = 0b11101101101;
13942let hasNewValue = 1;
13943let opNewValue = 0;
13944let prefersSlot3 = 1;
13945let Defs = [USR_OVF];
13946}
13947def M2_cmpyrsc_s0 : HInst<
13948(outs IntRegs:$Rd32),
13949(ins IntRegs:$Rs32, IntRegs:$Rt32),
13950"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13951tc_c21d7447, TypeM>, Enc_5ab2be {
13952let Inst{7-5} = 0b110;
13953let Inst{13-13} = 0b0;
13954let Inst{31-21} = 0b11101101011;
13955let hasNewValue = 1;
13956let opNewValue = 0;
13957let prefersSlot3 = 1;
13958let Defs = [USR_OVF];
13959}
13960def M2_cmpyrsc_s1 : HInst<
13961(outs IntRegs:$Rd32),
13962(ins IntRegs:$Rs32, IntRegs:$Rt32),
13963"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13964tc_c21d7447, TypeM>, Enc_5ab2be {
13965let Inst{7-5} = 0b110;
13966let Inst{13-13} = 0b0;
13967let Inst{31-21} = 0b11101101111;
13968let hasNewValue = 1;
13969let opNewValue = 0;
13970let prefersSlot3 = 1;
13971let Defs = [USR_OVF];
13972}
13973def M2_cmpys_s0 : HInst<
13974(outs DoubleRegs:$Rdd32),
13975(ins IntRegs:$Rs32, IntRegs:$Rt32),
13976"$Rdd32 = cmpy($Rs32,$Rt32):sat",
13977tc_c21d7447, TypeM>, Enc_be32a5 {
13978let Inst{7-5} = 0b110;
13979let Inst{13-13} = 0b0;
13980let Inst{31-21} = 0b11100101000;
13981let prefersSlot3 = 1;
13982let Defs = [USR_OVF];
13983}
13984def M2_cmpys_s1 : HInst<
13985(outs DoubleRegs:$Rdd32),
13986(ins IntRegs:$Rs32, IntRegs:$Rt32),
13987"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
13988tc_c21d7447, TypeM>, Enc_be32a5 {
13989let Inst{7-5} = 0b110;
13990let Inst{13-13} = 0b0;
13991let Inst{31-21} = 0b11100101100;
13992let prefersSlot3 = 1;
13993let Defs = [USR_OVF];
13994}
13995def M2_cmpysc_s0 : HInst<
13996(outs DoubleRegs:$Rdd32),
13997(ins IntRegs:$Rs32, IntRegs:$Rt32),
13998"$Rdd32 = cmpy($Rs32,$Rt32*):sat",
13999tc_c21d7447, TypeM>, Enc_be32a5 {
14000let Inst{7-5} = 0b110;
14001let Inst{13-13} = 0b0;
14002let Inst{31-21} = 0b11100101010;
14003let prefersSlot3 = 1;
14004let Defs = [USR_OVF];
14005}
14006def M2_cmpysc_s1 : HInst<
14007(outs DoubleRegs:$Rdd32),
14008(ins IntRegs:$Rs32, IntRegs:$Rt32),
14009"$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
14010tc_c21d7447, TypeM>, Enc_be32a5 {
14011let Inst{7-5} = 0b110;
14012let Inst{13-13} = 0b0;
14013let Inst{31-21} = 0b11100101110;
14014let prefersSlot3 = 1;
14015let Defs = [USR_OVF];
14016}
14017def M2_cnacs_s0 : HInst<
14018(outs DoubleRegs:$Rxx32),
14019(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14020"$Rxx32 -= cmpy($Rs32,$Rt32):sat",
14021tc_7f8ae742, TypeM>, Enc_61f0b0 {
14022let Inst{7-5} = 0b111;
14023let Inst{13-13} = 0b0;
14024let Inst{31-21} = 0b11100111000;
14025let prefersSlot3 = 1;
14026let Defs = [USR_OVF];
14027let Constraints = "$Rxx32 = $Rxx32in";
14028}
14029def M2_cnacs_s1 : HInst<
14030(outs DoubleRegs:$Rxx32),
14031(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14032"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
14033tc_7f8ae742, TypeM>, Enc_61f0b0 {
14034let Inst{7-5} = 0b111;
14035let Inst{13-13} = 0b0;
14036let Inst{31-21} = 0b11100111100;
14037let prefersSlot3 = 1;
14038let Defs = [USR_OVF];
14039let Constraints = "$Rxx32 = $Rxx32in";
14040}
14041def M2_cnacsc_s0 : HInst<
14042(outs DoubleRegs:$Rxx32),
14043(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14044"$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
14045tc_7f8ae742, TypeM>, Enc_61f0b0 {
14046let Inst{7-5} = 0b111;
14047let Inst{13-13} = 0b0;
14048let Inst{31-21} = 0b11100111010;
14049let prefersSlot3 = 1;
14050let Defs = [USR_OVF];
14051let Constraints = "$Rxx32 = $Rxx32in";
14052}
14053def M2_cnacsc_s1 : HInst<
14054(outs DoubleRegs:$Rxx32),
14055(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14056"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
14057tc_7f8ae742, TypeM>, Enc_61f0b0 {
14058let Inst{7-5} = 0b111;
14059let Inst{13-13} = 0b0;
14060let Inst{31-21} = 0b11100111110;
14061let prefersSlot3 = 1;
14062let Defs = [USR_OVF];
14063let Constraints = "$Rxx32 = $Rxx32in";
14064}
14065def M2_dpmpyss_acc_s0 : HInst<
14066(outs DoubleRegs:$Rxx32),
14067(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14068"$Rxx32 += mpy($Rs32,$Rt32)",
14069tc_7f8ae742, TypeM>, Enc_61f0b0 {
14070let Inst{7-5} = 0b000;
14071let Inst{13-13} = 0b0;
14072let Inst{31-21} = 0b11100111000;
14073let prefersSlot3 = 1;
14074let Constraints = "$Rxx32 = $Rxx32in";
14075}
14076def M2_dpmpyss_nac_s0 : HInst<
14077(outs DoubleRegs:$Rxx32),
14078(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14079"$Rxx32 -= mpy($Rs32,$Rt32)",
14080tc_7f8ae742, TypeM>, Enc_61f0b0 {
14081let Inst{7-5} = 0b000;
14082let Inst{13-13} = 0b0;
14083let Inst{31-21} = 0b11100111001;
14084let prefersSlot3 = 1;
14085let Constraints = "$Rxx32 = $Rxx32in";
14086}
14087def M2_dpmpyss_rnd_s0 : HInst<
14088(outs IntRegs:$Rd32),
14089(ins IntRegs:$Rs32, IntRegs:$Rt32),
14090"$Rd32 = mpy($Rs32,$Rt32):rnd",
14091tc_c21d7447, TypeM>, Enc_5ab2be {
14092let Inst{7-5} = 0b001;
14093let Inst{13-13} = 0b0;
14094let Inst{31-21} = 0b11101101001;
14095let hasNewValue = 1;
14096let opNewValue = 0;
14097let prefersSlot3 = 1;
14098}
14099def M2_dpmpyss_s0 : HInst<
14100(outs DoubleRegs:$Rdd32),
14101(ins IntRegs:$Rs32, IntRegs:$Rt32),
14102"$Rdd32 = mpy($Rs32,$Rt32)",
14103tc_c21d7447, TypeM>, Enc_be32a5 {
14104let Inst{7-5} = 0b000;
14105let Inst{13-13} = 0b0;
14106let Inst{31-21} = 0b11100101000;
14107let prefersSlot3 = 1;
14108}
14109def M2_dpmpyuu_acc_s0 : HInst<
14110(outs DoubleRegs:$Rxx32),
14111(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14112"$Rxx32 += mpyu($Rs32,$Rt32)",
14113tc_7f8ae742, TypeM>, Enc_61f0b0 {
14114let Inst{7-5} = 0b000;
14115let Inst{13-13} = 0b0;
14116let Inst{31-21} = 0b11100111010;
14117let prefersSlot3 = 1;
14118let Constraints = "$Rxx32 = $Rxx32in";
14119}
14120def M2_dpmpyuu_nac_s0 : HInst<
14121(outs DoubleRegs:$Rxx32),
14122(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14123"$Rxx32 -= mpyu($Rs32,$Rt32)",
14124tc_7f8ae742, TypeM>, Enc_61f0b0 {
14125let Inst{7-5} = 0b000;
14126let Inst{13-13} = 0b0;
14127let Inst{31-21} = 0b11100111011;
14128let prefersSlot3 = 1;
14129let Constraints = "$Rxx32 = $Rxx32in";
14130}
14131def M2_dpmpyuu_s0 : HInst<
14132(outs DoubleRegs:$Rdd32),
14133(ins IntRegs:$Rs32, IntRegs:$Rt32),
14134"$Rdd32 = mpyu($Rs32,$Rt32)",
14135tc_c21d7447, TypeM>, Enc_be32a5 {
14136let Inst{7-5} = 0b000;
14137let Inst{13-13} = 0b0;
14138let Inst{31-21} = 0b11100101010;
14139let prefersSlot3 = 1;
14140}
14141def M2_hmmpyh_rs1 : HInst<
14142(outs IntRegs:$Rd32),
14143(ins IntRegs:$Rs32, IntRegs:$Rt32),
14144"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14145tc_c21d7447, TypeM>, Enc_5ab2be {
14146let Inst{7-5} = 0b100;
14147let Inst{13-13} = 0b0;
14148let Inst{31-21} = 0b11101101101;
14149let hasNewValue = 1;
14150let opNewValue = 0;
14151let prefersSlot3 = 1;
14152let Defs = [USR_OVF];
14153}
14154def M2_hmmpyh_s1 : HInst<
14155(outs IntRegs:$Rd32),
14156(ins IntRegs:$Rs32, IntRegs:$Rt32),
14157"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14158tc_c21d7447, TypeM>, Enc_5ab2be {
14159let Inst{7-5} = 0b000;
14160let Inst{13-13} = 0b0;
14161let Inst{31-21} = 0b11101101101;
14162let hasNewValue = 1;
14163let opNewValue = 0;
14164let prefersSlot3 = 1;
14165let Defs = [USR_OVF];
14166}
14167def M2_hmmpyl_rs1 : HInst<
14168(outs IntRegs:$Rd32),
14169(ins IntRegs:$Rs32, IntRegs:$Rt32),
14170"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14171tc_c21d7447, TypeM>, Enc_5ab2be {
14172let Inst{7-5} = 0b100;
14173let Inst{13-13} = 0b0;
14174let Inst{31-21} = 0b11101101111;
14175let hasNewValue = 1;
14176let opNewValue = 0;
14177let prefersSlot3 = 1;
14178let Defs = [USR_OVF];
14179}
14180def M2_hmmpyl_s1 : HInst<
14181(outs IntRegs:$Rd32),
14182(ins IntRegs:$Rs32, IntRegs:$Rt32),
14183"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14184tc_c21d7447, TypeM>, Enc_5ab2be {
14185let Inst{7-5} = 0b001;
14186let Inst{13-13} = 0b0;
14187let Inst{31-21} = 0b11101101101;
14188let hasNewValue = 1;
14189let opNewValue = 0;
14190let prefersSlot3 = 1;
14191let Defs = [USR_OVF];
14192}
14193def M2_maci : HInst<
14194(outs IntRegs:$Rx32),
14195(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14196"$Rx32 += mpyi($Rs32,$Rt32)",
14197tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel {
14198let Inst{7-5} = 0b000;
14199let Inst{13-13} = 0b0;
14200let Inst{31-21} = 0b11101111000;
14201let hasNewValue = 1;
14202let opNewValue = 0;
14203let prefersSlot3 = 1;
14204let CextOpcode = "M2_maci";
14205let InputType = "reg";
14206let Constraints = "$Rx32 = $Rx32in";
14207}
14208def M2_macsin : HInst<
14209(outs IntRegs:$Rx32),
14210(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14211"$Rx32 -= mpyi($Rs32,#$Ii)",
14212tc_a154b476, TypeM>, Enc_c90aca {
14213let Inst{13-13} = 0b0;
14214let Inst{31-21} = 0b11100001100;
14215let hasNewValue = 1;
14216let opNewValue = 0;
14217let prefersSlot3 = 1;
14218let InputType = "imm";
14219let isExtendable = 1;
14220let opExtendable = 3;
14221let isExtentSigned = 0;
14222let opExtentBits = 8;
14223let opExtentAlign = 0;
14224let Constraints = "$Rx32 = $Rx32in";
14225}
14226def M2_macsip : HInst<
14227(outs IntRegs:$Rx32),
14228(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14229"$Rx32 += mpyi($Rs32,#$Ii)",
14230tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel {
14231let Inst{13-13} = 0b0;
14232let Inst{31-21} = 0b11100001000;
14233let hasNewValue = 1;
14234let opNewValue = 0;
14235let prefersSlot3 = 1;
14236let CextOpcode = "M2_maci";
14237let InputType = "imm";
14238let isExtendable = 1;
14239let opExtendable = 3;
14240let isExtentSigned = 0;
14241let opExtentBits = 8;
14242let opExtentAlign = 0;
14243let Constraints = "$Rx32 = $Rx32in";
14244}
14245def M2_mmachs_rs0 : HInst<
14246(outs DoubleRegs:$Rxx32),
14247(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14248"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14249tc_7f8ae742, TypeM>, Enc_88c16c {
14250let Inst{7-5} = 0b111;
14251let Inst{13-13} = 0b0;
14252let Inst{31-21} = 0b11101010001;
14253let prefersSlot3 = 1;
14254let Defs = [USR_OVF];
14255let Constraints = "$Rxx32 = $Rxx32in";
14256}
14257def M2_mmachs_rs1 : HInst<
14258(outs DoubleRegs:$Rxx32),
14259(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14260"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14261tc_7f8ae742, TypeM>, Enc_88c16c {
14262let Inst{7-5} = 0b111;
14263let Inst{13-13} = 0b0;
14264let Inst{31-21} = 0b11101010101;
14265let prefersSlot3 = 1;
14266let Defs = [USR_OVF];
14267let Constraints = "$Rxx32 = $Rxx32in";
14268}
14269def M2_mmachs_s0 : HInst<
14270(outs DoubleRegs:$Rxx32),
14271(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14272"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14273tc_7f8ae742, TypeM>, Enc_88c16c {
14274let Inst{7-5} = 0b111;
14275let Inst{13-13} = 0b0;
14276let Inst{31-21} = 0b11101010000;
14277let prefersSlot3 = 1;
14278let Defs = [USR_OVF];
14279let Constraints = "$Rxx32 = $Rxx32in";
14280}
14281def M2_mmachs_s1 : HInst<
14282(outs DoubleRegs:$Rxx32),
14283(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14284"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14285tc_7f8ae742, TypeM>, Enc_88c16c {
14286let Inst{7-5} = 0b111;
14287let Inst{13-13} = 0b0;
14288let Inst{31-21} = 0b11101010100;
14289let prefersSlot3 = 1;
14290let Defs = [USR_OVF];
14291let Constraints = "$Rxx32 = $Rxx32in";
14292}
14293def M2_mmacls_rs0 : HInst<
14294(outs DoubleRegs:$Rxx32),
14295(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14296"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14297tc_7f8ae742, TypeM>, Enc_88c16c {
14298let Inst{7-5} = 0b101;
14299let Inst{13-13} = 0b0;
14300let Inst{31-21} = 0b11101010001;
14301let prefersSlot3 = 1;
14302let Defs = [USR_OVF];
14303let Constraints = "$Rxx32 = $Rxx32in";
14304}
14305def M2_mmacls_rs1 : HInst<
14306(outs DoubleRegs:$Rxx32),
14307(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14308"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14309tc_7f8ae742, TypeM>, Enc_88c16c {
14310let Inst{7-5} = 0b101;
14311let Inst{13-13} = 0b0;
14312let Inst{31-21} = 0b11101010101;
14313let prefersSlot3 = 1;
14314let Defs = [USR_OVF];
14315let Constraints = "$Rxx32 = $Rxx32in";
14316}
14317def M2_mmacls_s0 : HInst<
14318(outs DoubleRegs:$Rxx32),
14319(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14320"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14321tc_7f8ae742, TypeM>, Enc_88c16c {
14322let Inst{7-5} = 0b101;
14323let Inst{13-13} = 0b0;
14324let Inst{31-21} = 0b11101010000;
14325let prefersSlot3 = 1;
14326let Defs = [USR_OVF];
14327let Constraints = "$Rxx32 = $Rxx32in";
14328}
14329def M2_mmacls_s1 : HInst<
14330(outs DoubleRegs:$Rxx32),
14331(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14332"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14333tc_7f8ae742, TypeM>, Enc_88c16c {
14334let Inst{7-5} = 0b101;
14335let Inst{13-13} = 0b0;
14336let Inst{31-21} = 0b11101010100;
14337let prefersSlot3 = 1;
14338let Defs = [USR_OVF];
14339let Constraints = "$Rxx32 = $Rxx32in";
14340}
14341def M2_mmacuhs_rs0 : HInst<
14342(outs DoubleRegs:$Rxx32),
14343(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14344"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14345tc_7f8ae742, TypeM>, Enc_88c16c {
14346let Inst{7-5} = 0b111;
14347let Inst{13-13} = 0b0;
14348let Inst{31-21} = 0b11101010011;
14349let prefersSlot3 = 1;
14350let Defs = [USR_OVF];
14351let Constraints = "$Rxx32 = $Rxx32in";
14352}
14353def M2_mmacuhs_rs1 : HInst<
14354(outs DoubleRegs:$Rxx32),
14355(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14356"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14357tc_7f8ae742, TypeM>, Enc_88c16c {
14358let Inst{7-5} = 0b111;
14359let Inst{13-13} = 0b0;
14360let Inst{31-21} = 0b11101010111;
14361let prefersSlot3 = 1;
14362let Defs = [USR_OVF];
14363let Constraints = "$Rxx32 = $Rxx32in";
14364}
14365def M2_mmacuhs_s0 : HInst<
14366(outs DoubleRegs:$Rxx32),
14367(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14368"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14369tc_7f8ae742, TypeM>, Enc_88c16c {
14370let Inst{7-5} = 0b111;
14371let Inst{13-13} = 0b0;
14372let Inst{31-21} = 0b11101010010;
14373let prefersSlot3 = 1;
14374let Defs = [USR_OVF];
14375let Constraints = "$Rxx32 = $Rxx32in";
14376}
14377def M2_mmacuhs_s1 : HInst<
14378(outs DoubleRegs:$Rxx32),
14379(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14380"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14381tc_7f8ae742, TypeM>, Enc_88c16c {
14382let Inst{7-5} = 0b111;
14383let Inst{13-13} = 0b0;
14384let Inst{31-21} = 0b11101010110;
14385let prefersSlot3 = 1;
14386let Defs = [USR_OVF];
14387let Constraints = "$Rxx32 = $Rxx32in";
14388}
14389def M2_mmaculs_rs0 : HInst<
14390(outs DoubleRegs:$Rxx32),
14391(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14392"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14393tc_7f8ae742, TypeM>, Enc_88c16c {
14394let Inst{7-5} = 0b101;
14395let Inst{13-13} = 0b0;
14396let Inst{31-21} = 0b11101010011;
14397let prefersSlot3 = 1;
14398let Defs = [USR_OVF];
14399let Constraints = "$Rxx32 = $Rxx32in";
14400}
14401def M2_mmaculs_rs1 : HInst<
14402(outs DoubleRegs:$Rxx32),
14403(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14404"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14405tc_7f8ae742, TypeM>, Enc_88c16c {
14406let Inst{7-5} = 0b101;
14407let Inst{13-13} = 0b0;
14408let Inst{31-21} = 0b11101010111;
14409let prefersSlot3 = 1;
14410let Defs = [USR_OVF];
14411let Constraints = "$Rxx32 = $Rxx32in";
14412}
14413def M2_mmaculs_s0 : HInst<
14414(outs DoubleRegs:$Rxx32),
14415(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14416"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14417tc_7f8ae742, TypeM>, Enc_88c16c {
14418let Inst{7-5} = 0b101;
14419let Inst{13-13} = 0b0;
14420let Inst{31-21} = 0b11101010010;
14421let prefersSlot3 = 1;
14422let Defs = [USR_OVF];
14423let Constraints = "$Rxx32 = $Rxx32in";
14424}
14425def M2_mmaculs_s1 : HInst<
14426(outs DoubleRegs:$Rxx32),
14427(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14428"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14429tc_7f8ae742, TypeM>, Enc_88c16c {
14430let Inst{7-5} = 0b101;
14431let Inst{13-13} = 0b0;
14432let Inst{31-21} = 0b11101010110;
14433let prefersSlot3 = 1;
14434let Defs = [USR_OVF];
14435let Constraints = "$Rxx32 = $Rxx32in";
14436}
14437def M2_mmpyh_rs0 : HInst<
14438(outs DoubleRegs:$Rdd32),
14439(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14440"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14441tc_c21d7447, TypeM>, Enc_a56825 {
14442let Inst{7-5} = 0b111;
14443let Inst{13-13} = 0b0;
14444let Inst{31-21} = 0b11101000001;
14445let prefersSlot3 = 1;
14446let Defs = [USR_OVF];
14447}
14448def M2_mmpyh_rs1 : HInst<
14449(outs DoubleRegs:$Rdd32),
14450(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14451"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14452tc_c21d7447, TypeM>, Enc_a56825 {
14453let Inst{7-5} = 0b111;
14454let Inst{13-13} = 0b0;
14455let Inst{31-21} = 0b11101000101;
14456let prefersSlot3 = 1;
14457let Defs = [USR_OVF];
14458}
14459def M2_mmpyh_s0 : HInst<
14460(outs DoubleRegs:$Rdd32),
14461(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14462"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14463tc_c21d7447, TypeM>, Enc_a56825 {
14464let Inst{7-5} = 0b111;
14465let Inst{13-13} = 0b0;
14466let Inst{31-21} = 0b11101000000;
14467let prefersSlot3 = 1;
14468let Defs = [USR_OVF];
14469}
14470def M2_mmpyh_s1 : HInst<
14471(outs DoubleRegs:$Rdd32),
14472(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14473"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14474tc_c21d7447, TypeM>, Enc_a56825 {
14475let Inst{7-5} = 0b111;
14476let Inst{13-13} = 0b0;
14477let Inst{31-21} = 0b11101000100;
14478let prefersSlot3 = 1;
14479let Defs = [USR_OVF];
14480}
14481def M2_mmpyl_rs0 : HInst<
14482(outs DoubleRegs:$Rdd32),
14483(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14484"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14485tc_c21d7447, TypeM>, Enc_a56825 {
14486let Inst{7-5} = 0b101;
14487let Inst{13-13} = 0b0;
14488let Inst{31-21} = 0b11101000001;
14489let prefersSlot3 = 1;
14490let Defs = [USR_OVF];
14491}
14492def M2_mmpyl_rs1 : HInst<
14493(outs DoubleRegs:$Rdd32),
14494(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14495"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14496tc_c21d7447, TypeM>, Enc_a56825 {
14497let Inst{7-5} = 0b101;
14498let Inst{13-13} = 0b0;
14499let Inst{31-21} = 0b11101000101;
14500let prefersSlot3 = 1;
14501let Defs = [USR_OVF];
14502}
14503def M2_mmpyl_s0 : HInst<
14504(outs DoubleRegs:$Rdd32),
14505(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14506"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14507tc_c21d7447, TypeM>, Enc_a56825 {
14508let Inst{7-5} = 0b101;
14509let Inst{13-13} = 0b0;
14510let Inst{31-21} = 0b11101000000;
14511let prefersSlot3 = 1;
14512let Defs = [USR_OVF];
14513}
14514def M2_mmpyl_s1 : HInst<
14515(outs DoubleRegs:$Rdd32),
14516(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14517"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14518tc_c21d7447, TypeM>, Enc_a56825 {
14519let Inst{7-5} = 0b101;
14520let Inst{13-13} = 0b0;
14521let Inst{31-21} = 0b11101000100;
14522let prefersSlot3 = 1;
14523let Defs = [USR_OVF];
14524}
14525def M2_mmpyuh_rs0 : HInst<
14526(outs DoubleRegs:$Rdd32),
14527(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14528"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14529tc_c21d7447, TypeM>, Enc_a56825 {
14530let Inst{7-5} = 0b111;
14531let Inst{13-13} = 0b0;
14532let Inst{31-21} = 0b11101000011;
14533let prefersSlot3 = 1;
14534let Defs = [USR_OVF];
14535}
14536def M2_mmpyuh_rs1 : HInst<
14537(outs DoubleRegs:$Rdd32),
14538(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14539"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14540tc_c21d7447, TypeM>, Enc_a56825 {
14541let Inst{7-5} = 0b111;
14542let Inst{13-13} = 0b0;
14543let Inst{31-21} = 0b11101000111;
14544let prefersSlot3 = 1;
14545let Defs = [USR_OVF];
14546}
14547def M2_mmpyuh_s0 : HInst<
14548(outs DoubleRegs:$Rdd32),
14549(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14550"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14551tc_c21d7447, TypeM>, Enc_a56825 {
14552let Inst{7-5} = 0b111;
14553let Inst{13-13} = 0b0;
14554let Inst{31-21} = 0b11101000010;
14555let prefersSlot3 = 1;
14556let Defs = [USR_OVF];
14557}
14558def M2_mmpyuh_s1 : HInst<
14559(outs DoubleRegs:$Rdd32),
14560(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14561"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14562tc_c21d7447, TypeM>, Enc_a56825 {
14563let Inst{7-5} = 0b111;
14564let Inst{13-13} = 0b0;
14565let Inst{31-21} = 0b11101000110;
14566let prefersSlot3 = 1;
14567let Defs = [USR_OVF];
14568}
14569def M2_mmpyul_rs0 : HInst<
14570(outs DoubleRegs:$Rdd32),
14571(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14572"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14573tc_c21d7447, TypeM>, Enc_a56825 {
14574let Inst{7-5} = 0b101;
14575let Inst{13-13} = 0b0;
14576let Inst{31-21} = 0b11101000011;
14577let prefersSlot3 = 1;
14578let Defs = [USR_OVF];
14579}
14580def M2_mmpyul_rs1 : HInst<
14581(outs DoubleRegs:$Rdd32),
14582(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14583"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14584tc_c21d7447, TypeM>, Enc_a56825 {
14585let Inst{7-5} = 0b101;
14586let Inst{13-13} = 0b0;
14587let Inst{31-21} = 0b11101000111;
14588let prefersSlot3 = 1;
14589let Defs = [USR_OVF];
14590}
14591def M2_mmpyul_s0 : HInst<
14592(outs DoubleRegs:$Rdd32),
14593(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14594"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14595tc_c21d7447, TypeM>, Enc_a56825 {
14596let Inst{7-5} = 0b101;
14597let Inst{13-13} = 0b0;
14598let Inst{31-21} = 0b11101000010;
14599let prefersSlot3 = 1;
14600let Defs = [USR_OVF];
14601}
14602def M2_mmpyul_s1 : HInst<
14603(outs DoubleRegs:$Rdd32),
14604(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14605"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14606tc_c21d7447, TypeM>, Enc_a56825 {
14607let Inst{7-5} = 0b101;
14608let Inst{13-13} = 0b0;
14609let Inst{31-21} = 0b11101000110;
14610let prefersSlot3 = 1;
14611let Defs = [USR_OVF];
14612}
14613def M2_mnaci : HInst<
14614(outs IntRegs:$Rx32),
14615(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14616"$Rx32 -= mpyi($Rs32,$Rt32)",
14617tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14618let Inst{7-5} = 0b000;
14619let Inst{13-13} = 0b0;
14620let Inst{31-21} = 0b11101111100;
14621let hasNewValue = 1;
14622let opNewValue = 0;
14623let prefersSlot3 = 1;
14624let Constraints = "$Rx32 = $Rx32in";
14625}
14626def M2_mpy_acc_hh_s0 : HInst<
14627(outs IntRegs:$Rx32),
14628(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14629"$Rx32 += mpy($Rs32.h,$Rt32.h)",
14630tc_7f8ae742, TypeM>, Enc_2ae154 {
14631let Inst{7-5} = 0b011;
14632let Inst{13-13} = 0b0;
14633let Inst{31-21} = 0b11101110000;
14634let hasNewValue = 1;
14635let opNewValue = 0;
14636let prefersSlot3 = 1;
14637let Constraints = "$Rx32 = $Rx32in";
14638}
14639def M2_mpy_acc_hh_s1 : HInst<
14640(outs IntRegs:$Rx32),
14641(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14642"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14643tc_7f8ae742, TypeM>, Enc_2ae154 {
14644let Inst{7-5} = 0b011;
14645let Inst{13-13} = 0b0;
14646let Inst{31-21} = 0b11101110100;
14647let hasNewValue = 1;
14648let opNewValue = 0;
14649let prefersSlot3 = 1;
14650let Constraints = "$Rx32 = $Rx32in";
14651}
14652def M2_mpy_acc_hl_s0 : HInst<
14653(outs IntRegs:$Rx32),
14654(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14655"$Rx32 += mpy($Rs32.h,$Rt32.l)",
14656tc_7f8ae742, TypeM>, Enc_2ae154 {
14657let Inst{7-5} = 0b010;
14658let Inst{13-13} = 0b0;
14659let Inst{31-21} = 0b11101110000;
14660let hasNewValue = 1;
14661let opNewValue = 0;
14662let prefersSlot3 = 1;
14663let Constraints = "$Rx32 = $Rx32in";
14664}
14665def M2_mpy_acc_hl_s1 : HInst<
14666(outs IntRegs:$Rx32),
14667(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14668"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14669tc_7f8ae742, TypeM>, Enc_2ae154 {
14670let Inst{7-5} = 0b010;
14671let Inst{13-13} = 0b0;
14672let Inst{31-21} = 0b11101110100;
14673let hasNewValue = 1;
14674let opNewValue = 0;
14675let prefersSlot3 = 1;
14676let Constraints = "$Rx32 = $Rx32in";
14677}
14678def M2_mpy_acc_lh_s0 : HInst<
14679(outs IntRegs:$Rx32),
14680(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14681"$Rx32 += mpy($Rs32.l,$Rt32.h)",
14682tc_7f8ae742, TypeM>, Enc_2ae154 {
14683let Inst{7-5} = 0b001;
14684let Inst{13-13} = 0b0;
14685let Inst{31-21} = 0b11101110000;
14686let hasNewValue = 1;
14687let opNewValue = 0;
14688let prefersSlot3 = 1;
14689let Constraints = "$Rx32 = $Rx32in";
14690}
14691def M2_mpy_acc_lh_s1 : HInst<
14692(outs IntRegs:$Rx32),
14693(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14694"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14695tc_7f8ae742, TypeM>, Enc_2ae154 {
14696let Inst{7-5} = 0b001;
14697let Inst{13-13} = 0b0;
14698let Inst{31-21} = 0b11101110100;
14699let hasNewValue = 1;
14700let opNewValue = 0;
14701let prefersSlot3 = 1;
14702let Constraints = "$Rx32 = $Rx32in";
14703}
14704def M2_mpy_acc_ll_s0 : HInst<
14705(outs IntRegs:$Rx32),
14706(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14707"$Rx32 += mpy($Rs32.l,$Rt32.l)",
14708tc_7f8ae742, TypeM>, Enc_2ae154 {
14709let Inst{7-5} = 0b000;
14710let Inst{13-13} = 0b0;
14711let Inst{31-21} = 0b11101110000;
14712let hasNewValue = 1;
14713let opNewValue = 0;
14714let prefersSlot3 = 1;
14715let Constraints = "$Rx32 = $Rx32in";
14716}
14717def M2_mpy_acc_ll_s1 : HInst<
14718(outs IntRegs:$Rx32),
14719(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14720"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14721tc_7f8ae742, TypeM>, Enc_2ae154 {
14722let Inst{7-5} = 0b000;
14723let Inst{13-13} = 0b0;
14724let Inst{31-21} = 0b11101110100;
14725let hasNewValue = 1;
14726let opNewValue = 0;
14727let prefersSlot3 = 1;
14728let Constraints = "$Rx32 = $Rx32in";
14729}
14730def M2_mpy_acc_sat_hh_s0 : HInst<
14731(outs IntRegs:$Rx32),
14732(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14733"$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14734tc_7f8ae742, TypeM>, Enc_2ae154 {
14735let Inst{7-5} = 0b111;
14736let Inst{13-13} = 0b0;
14737let Inst{31-21} = 0b11101110000;
14738let hasNewValue = 1;
14739let opNewValue = 0;
14740let prefersSlot3 = 1;
14741let Defs = [USR_OVF];
14742let Constraints = "$Rx32 = $Rx32in";
14743}
14744def M2_mpy_acc_sat_hh_s1 : HInst<
14745(outs IntRegs:$Rx32),
14746(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14747"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14748tc_7f8ae742, TypeM>, Enc_2ae154 {
14749let Inst{7-5} = 0b111;
14750let Inst{13-13} = 0b0;
14751let Inst{31-21} = 0b11101110100;
14752let hasNewValue = 1;
14753let opNewValue = 0;
14754let prefersSlot3 = 1;
14755let Defs = [USR_OVF];
14756let Constraints = "$Rx32 = $Rx32in";
14757}
14758def M2_mpy_acc_sat_hl_s0 : HInst<
14759(outs IntRegs:$Rx32),
14760(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14761"$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14762tc_7f8ae742, TypeM>, Enc_2ae154 {
14763let Inst{7-5} = 0b110;
14764let Inst{13-13} = 0b0;
14765let Inst{31-21} = 0b11101110000;
14766let hasNewValue = 1;
14767let opNewValue = 0;
14768let prefersSlot3 = 1;
14769let Defs = [USR_OVF];
14770let Constraints = "$Rx32 = $Rx32in";
14771}
14772def M2_mpy_acc_sat_hl_s1 : HInst<
14773(outs IntRegs:$Rx32),
14774(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14775"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14776tc_7f8ae742, TypeM>, Enc_2ae154 {
14777let Inst{7-5} = 0b110;
14778let Inst{13-13} = 0b0;
14779let Inst{31-21} = 0b11101110100;
14780let hasNewValue = 1;
14781let opNewValue = 0;
14782let prefersSlot3 = 1;
14783let Defs = [USR_OVF];
14784let Constraints = "$Rx32 = $Rx32in";
14785}
14786def M2_mpy_acc_sat_lh_s0 : HInst<
14787(outs IntRegs:$Rx32),
14788(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14789"$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14790tc_7f8ae742, TypeM>, Enc_2ae154 {
14791let Inst{7-5} = 0b101;
14792let Inst{13-13} = 0b0;
14793let Inst{31-21} = 0b11101110000;
14794let hasNewValue = 1;
14795let opNewValue = 0;
14796let prefersSlot3 = 1;
14797let Defs = [USR_OVF];
14798let Constraints = "$Rx32 = $Rx32in";
14799}
14800def M2_mpy_acc_sat_lh_s1 : HInst<
14801(outs IntRegs:$Rx32),
14802(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14803"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14804tc_7f8ae742, TypeM>, Enc_2ae154 {
14805let Inst{7-5} = 0b101;
14806let Inst{13-13} = 0b0;
14807let Inst{31-21} = 0b11101110100;
14808let hasNewValue = 1;
14809let opNewValue = 0;
14810let prefersSlot3 = 1;
14811let Defs = [USR_OVF];
14812let Constraints = "$Rx32 = $Rx32in";
14813}
14814def M2_mpy_acc_sat_ll_s0 : HInst<
14815(outs IntRegs:$Rx32),
14816(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14817"$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14818tc_7f8ae742, TypeM>, Enc_2ae154 {
14819let Inst{7-5} = 0b100;
14820let Inst{13-13} = 0b0;
14821let Inst{31-21} = 0b11101110000;
14822let hasNewValue = 1;
14823let opNewValue = 0;
14824let prefersSlot3 = 1;
14825let Defs = [USR_OVF];
14826let Constraints = "$Rx32 = $Rx32in";
14827}
14828def M2_mpy_acc_sat_ll_s1 : HInst<
14829(outs IntRegs:$Rx32),
14830(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14831"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14832tc_7f8ae742, TypeM>, Enc_2ae154 {
14833let Inst{7-5} = 0b100;
14834let Inst{13-13} = 0b0;
14835let Inst{31-21} = 0b11101110100;
14836let hasNewValue = 1;
14837let opNewValue = 0;
14838let prefersSlot3 = 1;
14839let Defs = [USR_OVF];
14840let Constraints = "$Rx32 = $Rx32in";
14841}
14842def M2_mpy_hh_s0 : HInst<
14843(outs IntRegs:$Rd32),
14844(ins IntRegs:$Rs32, IntRegs:$Rt32),
14845"$Rd32 = mpy($Rs32.h,$Rt32.h)",
14846tc_c21d7447, TypeM>, Enc_5ab2be {
14847let Inst{7-5} = 0b011;
14848let Inst{13-13} = 0b0;
14849let Inst{31-21} = 0b11101100000;
14850let hasNewValue = 1;
14851let opNewValue = 0;
14852let prefersSlot3 = 1;
14853}
14854def M2_mpy_hh_s1 : HInst<
14855(outs IntRegs:$Rd32),
14856(ins IntRegs:$Rs32, IntRegs:$Rt32),
14857"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14858tc_c21d7447, TypeM>, Enc_5ab2be {
14859let Inst{7-5} = 0b011;
14860let Inst{13-13} = 0b0;
14861let Inst{31-21} = 0b11101100100;
14862let hasNewValue = 1;
14863let opNewValue = 0;
14864let prefersSlot3 = 1;
14865}
14866def M2_mpy_hl_s0 : HInst<
14867(outs IntRegs:$Rd32),
14868(ins IntRegs:$Rs32, IntRegs:$Rt32),
14869"$Rd32 = mpy($Rs32.h,$Rt32.l)",
14870tc_c21d7447, TypeM>, Enc_5ab2be {
14871let Inst{7-5} = 0b010;
14872let Inst{13-13} = 0b0;
14873let Inst{31-21} = 0b11101100000;
14874let hasNewValue = 1;
14875let opNewValue = 0;
14876let prefersSlot3 = 1;
14877}
14878def M2_mpy_hl_s1 : HInst<
14879(outs IntRegs:$Rd32),
14880(ins IntRegs:$Rs32, IntRegs:$Rt32),
14881"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14882tc_c21d7447, TypeM>, Enc_5ab2be {
14883let Inst{7-5} = 0b010;
14884let Inst{13-13} = 0b0;
14885let Inst{31-21} = 0b11101100100;
14886let hasNewValue = 1;
14887let opNewValue = 0;
14888let prefersSlot3 = 1;
14889}
14890def M2_mpy_lh_s0 : HInst<
14891(outs IntRegs:$Rd32),
14892(ins IntRegs:$Rs32, IntRegs:$Rt32),
14893"$Rd32 = mpy($Rs32.l,$Rt32.h)",
14894tc_c21d7447, TypeM>, Enc_5ab2be {
14895let Inst{7-5} = 0b001;
14896let Inst{13-13} = 0b0;
14897let Inst{31-21} = 0b11101100000;
14898let hasNewValue = 1;
14899let opNewValue = 0;
14900let prefersSlot3 = 1;
14901}
14902def M2_mpy_lh_s1 : HInst<
14903(outs IntRegs:$Rd32),
14904(ins IntRegs:$Rs32, IntRegs:$Rt32),
14905"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14906tc_c21d7447, TypeM>, Enc_5ab2be {
14907let Inst{7-5} = 0b001;
14908let Inst{13-13} = 0b0;
14909let Inst{31-21} = 0b11101100100;
14910let hasNewValue = 1;
14911let opNewValue = 0;
14912let prefersSlot3 = 1;
14913}
14914def M2_mpy_ll_s0 : HInst<
14915(outs IntRegs:$Rd32),
14916(ins IntRegs:$Rs32, IntRegs:$Rt32),
14917"$Rd32 = mpy($Rs32.l,$Rt32.l)",
14918tc_c21d7447, TypeM>, Enc_5ab2be {
14919let Inst{7-5} = 0b000;
14920let Inst{13-13} = 0b0;
14921let Inst{31-21} = 0b11101100000;
14922let hasNewValue = 1;
14923let opNewValue = 0;
14924let prefersSlot3 = 1;
14925}
14926def M2_mpy_ll_s1 : HInst<
14927(outs IntRegs:$Rd32),
14928(ins IntRegs:$Rs32, IntRegs:$Rt32),
14929"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14930tc_c21d7447, TypeM>, Enc_5ab2be {
14931let Inst{7-5} = 0b000;
14932let Inst{13-13} = 0b0;
14933let Inst{31-21} = 0b11101100100;
14934let hasNewValue = 1;
14935let opNewValue = 0;
14936let prefersSlot3 = 1;
14937}
14938def M2_mpy_nac_hh_s0 : HInst<
14939(outs IntRegs:$Rx32),
14940(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14941"$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14942tc_7f8ae742, TypeM>, Enc_2ae154 {
14943let Inst{7-5} = 0b011;
14944let Inst{13-13} = 0b0;
14945let Inst{31-21} = 0b11101110001;
14946let hasNewValue = 1;
14947let opNewValue = 0;
14948let prefersSlot3 = 1;
14949let Constraints = "$Rx32 = $Rx32in";
14950}
14951def M2_mpy_nac_hh_s1 : HInst<
14952(outs IntRegs:$Rx32),
14953(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14954"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14955tc_7f8ae742, TypeM>, Enc_2ae154 {
14956let Inst{7-5} = 0b011;
14957let Inst{13-13} = 0b0;
14958let Inst{31-21} = 0b11101110101;
14959let hasNewValue = 1;
14960let opNewValue = 0;
14961let prefersSlot3 = 1;
14962let Constraints = "$Rx32 = $Rx32in";
14963}
14964def M2_mpy_nac_hl_s0 : HInst<
14965(outs IntRegs:$Rx32),
14966(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14967"$Rx32 -= mpy($Rs32.h,$Rt32.l)",
14968tc_7f8ae742, TypeM>, Enc_2ae154 {
14969let Inst{7-5} = 0b010;
14970let Inst{13-13} = 0b0;
14971let Inst{31-21} = 0b11101110001;
14972let hasNewValue = 1;
14973let opNewValue = 0;
14974let prefersSlot3 = 1;
14975let Constraints = "$Rx32 = $Rx32in";
14976}
14977def M2_mpy_nac_hl_s1 : HInst<
14978(outs IntRegs:$Rx32),
14979(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14980"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
14981tc_7f8ae742, TypeM>, Enc_2ae154 {
14982let Inst{7-5} = 0b010;
14983let Inst{13-13} = 0b0;
14984let Inst{31-21} = 0b11101110101;
14985let hasNewValue = 1;
14986let opNewValue = 0;
14987let prefersSlot3 = 1;
14988let Constraints = "$Rx32 = $Rx32in";
14989}
14990def M2_mpy_nac_lh_s0 : HInst<
14991(outs IntRegs:$Rx32),
14992(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14993"$Rx32 -= mpy($Rs32.l,$Rt32.h)",
14994tc_7f8ae742, TypeM>, Enc_2ae154 {
14995let Inst{7-5} = 0b001;
14996let Inst{13-13} = 0b0;
14997let Inst{31-21} = 0b11101110001;
14998let hasNewValue = 1;
14999let opNewValue = 0;
15000let prefersSlot3 = 1;
15001let Constraints = "$Rx32 = $Rx32in";
15002}
15003def M2_mpy_nac_lh_s1 : HInst<
15004(outs IntRegs:$Rx32),
15005(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15006"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15007tc_7f8ae742, TypeM>, Enc_2ae154 {
15008let Inst{7-5} = 0b001;
15009let Inst{13-13} = 0b0;
15010let Inst{31-21} = 0b11101110101;
15011let hasNewValue = 1;
15012let opNewValue = 0;
15013let prefersSlot3 = 1;
15014let Constraints = "$Rx32 = $Rx32in";
15015}
15016def M2_mpy_nac_ll_s0 : HInst<
15017(outs IntRegs:$Rx32),
15018(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15019"$Rx32 -= mpy($Rs32.l,$Rt32.l)",
15020tc_7f8ae742, TypeM>, Enc_2ae154 {
15021let Inst{7-5} = 0b000;
15022let Inst{13-13} = 0b0;
15023let Inst{31-21} = 0b11101110001;
15024let hasNewValue = 1;
15025let opNewValue = 0;
15026let prefersSlot3 = 1;
15027let Constraints = "$Rx32 = $Rx32in";
15028}
15029def M2_mpy_nac_ll_s1 : HInst<
15030(outs IntRegs:$Rx32),
15031(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15032"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15033tc_7f8ae742, TypeM>, Enc_2ae154 {
15034let Inst{7-5} = 0b000;
15035let Inst{13-13} = 0b0;
15036let Inst{31-21} = 0b11101110101;
15037let hasNewValue = 1;
15038let opNewValue = 0;
15039let prefersSlot3 = 1;
15040let Constraints = "$Rx32 = $Rx32in";
15041}
15042def M2_mpy_nac_sat_hh_s0 : HInst<
15043(outs IntRegs:$Rx32),
15044(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15045"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
15046tc_7f8ae742, TypeM>, Enc_2ae154 {
15047let Inst{7-5} = 0b111;
15048let Inst{13-13} = 0b0;
15049let Inst{31-21} = 0b11101110001;
15050let hasNewValue = 1;
15051let opNewValue = 0;
15052let prefersSlot3 = 1;
15053let Defs = [USR_OVF];
15054let Constraints = "$Rx32 = $Rx32in";
15055}
15056def M2_mpy_nac_sat_hh_s1 : HInst<
15057(outs IntRegs:$Rx32),
15058(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15059"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
15060tc_7f8ae742, TypeM>, Enc_2ae154 {
15061let Inst{7-5} = 0b111;
15062let Inst{13-13} = 0b0;
15063let Inst{31-21} = 0b11101110101;
15064let hasNewValue = 1;
15065let opNewValue = 0;
15066let prefersSlot3 = 1;
15067let Defs = [USR_OVF];
15068let Constraints = "$Rx32 = $Rx32in";
15069}
15070def M2_mpy_nac_sat_hl_s0 : HInst<
15071(outs IntRegs:$Rx32),
15072(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15073"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
15074tc_7f8ae742, TypeM>, Enc_2ae154 {
15075let Inst{7-5} = 0b110;
15076let Inst{13-13} = 0b0;
15077let Inst{31-21} = 0b11101110001;
15078let hasNewValue = 1;
15079let opNewValue = 0;
15080let prefersSlot3 = 1;
15081let Defs = [USR_OVF];
15082let Constraints = "$Rx32 = $Rx32in";
15083}
15084def M2_mpy_nac_sat_hl_s1 : HInst<
15085(outs IntRegs:$Rx32),
15086(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15087"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
15088tc_7f8ae742, TypeM>, Enc_2ae154 {
15089let Inst{7-5} = 0b110;
15090let Inst{13-13} = 0b0;
15091let Inst{31-21} = 0b11101110101;
15092let hasNewValue = 1;
15093let opNewValue = 0;
15094let prefersSlot3 = 1;
15095let Defs = [USR_OVF];
15096let Constraints = "$Rx32 = $Rx32in";
15097}
15098def M2_mpy_nac_sat_lh_s0 : HInst<
15099(outs IntRegs:$Rx32),
15100(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15101"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
15102tc_7f8ae742, TypeM>, Enc_2ae154 {
15103let Inst{7-5} = 0b101;
15104let Inst{13-13} = 0b0;
15105let Inst{31-21} = 0b11101110001;
15106let hasNewValue = 1;
15107let opNewValue = 0;
15108let prefersSlot3 = 1;
15109let Defs = [USR_OVF];
15110let Constraints = "$Rx32 = $Rx32in";
15111}
15112def M2_mpy_nac_sat_lh_s1 : HInst<
15113(outs IntRegs:$Rx32),
15114(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15115"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
15116tc_7f8ae742, TypeM>, Enc_2ae154 {
15117let Inst{7-5} = 0b101;
15118let Inst{13-13} = 0b0;
15119let Inst{31-21} = 0b11101110101;
15120let hasNewValue = 1;
15121let opNewValue = 0;
15122let prefersSlot3 = 1;
15123let Defs = [USR_OVF];
15124let Constraints = "$Rx32 = $Rx32in";
15125}
15126def M2_mpy_nac_sat_ll_s0 : HInst<
15127(outs IntRegs:$Rx32),
15128(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15129"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
15130tc_7f8ae742, TypeM>, Enc_2ae154 {
15131let Inst{7-5} = 0b100;
15132let Inst{13-13} = 0b0;
15133let Inst{31-21} = 0b11101110001;
15134let hasNewValue = 1;
15135let opNewValue = 0;
15136let prefersSlot3 = 1;
15137let Defs = [USR_OVF];
15138let Constraints = "$Rx32 = $Rx32in";
15139}
15140def M2_mpy_nac_sat_ll_s1 : HInst<
15141(outs IntRegs:$Rx32),
15142(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15143"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15144tc_7f8ae742, TypeM>, Enc_2ae154 {
15145let Inst{7-5} = 0b100;
15146let Inst{13-13} = 0b0;
15147let Inst{31-21} = 0b11101110101;
15148let hasNewValue = 1;
15149let opNewValue = 0;
15150let prefersSlot3 = 1;
15151let Defs = [USR_OVF];
15152let Constraints = "$Rx32 = $Rx32in";
15153}
15154def M2_mpy_rnd_hh_s0 : HInst<
15155(outs IntRegs:$Rd32),
15156(ins IntRegs:$Rs32, IntRegs:$Rt32),
15157"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15158tc_c21d7447, TypeM>, Enc_5ab2be {
15159let Inst{7-5} = 0b011;
15160let Inst{13-13} = 0b0;
15161let Inst{31-21} = 0b11101100001;
15162let hasNewValue = 1;
15163let opNewValue = 0;
15164let prefersSlot3 = 1;
15165}
15166def M2_mpy_rnd_hh_s1 : HInst<
15167(outs IntRegs:$Rd32),
15168(ins IntRegs:$Rs32, IntRegs:$Rt32),
15169"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15170tc_c21d7447, TypeM>, Enc_5ab2be {
15171let Inst{7-5} = 0b011;
15172let Inst{13-13} = 0b0;
15173let Inst{31-21} = 0b11101100101;
15174let hasNewValue = 1;
15175let opNewValue = 0;
15176let prefersSlot3 = 1;
15177}
15178def M2_mpy_rnd_hl_s0 : HInst<
15179(outs IntRegs:$Rd32),
15180(ins IntRegs:$Rs32, IntRegs:$Rt32),
15181"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15182tc_c21d7447, TypeM>, Enc_5ab2be {
15183let Inst{7-5} = 0b010;
15184let Inst{13-13} = 0b0;
15185let Inst{31-21} = 0b11101100001;
15186let hasNewValue = 1;
15187let opNewValue = 0;
15188let prefersSlot3 = 1;
15189}
15190def M2_mpy_rnd_hl_s1 : HInst<
15191(outs IntRegs:$Rd32),
15192(ins IntRegs:$Rs32, IntRegs:$Rt32),
15193"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15194tc_c21d7447, TypeM>, Enc_5ab2be {
15195let Inst{7-5} = 0b010;
15196let Inst{13-13} = 0b0;
15197let Inst{31-21} = 0b11101100101;
15198let hasNewValue = 1;
15199let opNewValue = 0;
15200let prefersSlot3 = 1;
15201}
15202def M2_mpy_rnd_lh_s0 : HInst<
15203(outs IntRegs:$Rd32),
15204(ins IntRegs:$Rs32, IntRegs:$Rt32),
15205"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15206tc_c21d7447, TypeM>, Enc_5ab2be {
15207let Inst{7-5} = 0b001;
15208let Inst{13-13} = 0b0;
15209let Inst{31-21} = 0b11101100001;
15210let hasNewValue = 1;
15211let opNewValue = 0;
15212let prefersSlot3 = 1;
15213}
15214def M2_mpy_rnd_lh_s1 : HInst<
15215(outs IntRegs:$Rd32),
15216(ins IntRegs:$Rs32, IntRegs:$Rt32),
15217"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15218tc_c21d7447, TypeM>, Enc_5ab2be {
15219let Inst{7-5} = 0b001;
15220let Inst{13-13} = 0b0;
15221let Inst{31-21} = 0b11101100101;
15222let hasNewValue = 1;
15223let opNewValue = 0;
15224let prefersSlot3 = 1;
15225}
15226def M2_mpy_rnd_ll_s0 : HInst<
15227(outs IntRegs:$Rd32),
15228(ins IntRegs:$Rs32, IntRegs:$Rt32),
15229"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15230tc_c21d7447, TypeM>, Enc_5ab2be {
15231let Inst{7-5} = 0b000;
15232let Inst{13-13} = 0b0;
15233let Inst{31-21} = 0b11101100001;
15234let hasNewValue = 1;
15235let opNewValue = 0;
15236let prefersSlot3 = 1;
15237}
15238def M2_mpy_rnd_ll_s1 : HInst<
15239(outs IntRegs:$Rd32),
15240(ins IntRegs:$Rs32, IntRegs:$Rt32),
15241"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15242tc_c21d7447, TypeM>, Enc_5ab2be {
15243let Inst{7-5} = 0b000;
15244let Inst{13-13} = 0b0;
15245let Inst{31-21} = 0b11101100101;
15246let hasNewValue = 1;
15247let opNewValue = 0;
15248let prefersSlot3 = 1;
15249}
15250def M2_mpy_sat_hh_s0 : HInst<
15251(outs IntRegs:$Rd32),
15252(ins IntRegs:$Rs32, IntRegs:$Rt32),
15253"$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15254tc_c21d7447, TypeM>, Enc_5ab2be {
15255let Inst{7-5} = 0b111;
15256let Inst{13-13} = 0b0;
15257let Inst{31-21} = 0b11101100000;
15258let hasNewValue = 1;
15259let opNewValue = 0;
15260let prefersSlot3 = 1;
15261let Defs = [USR_OVF];
15262}
15263def M2_mpy_sat_hh_s1 : HInst<
15264(outs IntRegs:$Rd32),
15265(ins IntRegs:$Rs32, IntRegs:$Rt32),
15266"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15267tc_c21d7447, TypeM>, Enc_5ab2be {
15268let Inst{7-5} = 0b111;
15269let Inst{13-13} = 0b0;
15270let Inst{31-21} = 0b11101100100;
15271let hasNewValue = 1;
15272let opNewValue = 0;
15273let prefersSlot3 = 1;
15274let Defs = [USR_OVF];
15275}
15276def M2_mpy_sat_hl_s0 : HInst<
15277(outs IntRegs:$Rd32),
15278(ins IntRegs:$Rs32, IntRegs:$Rt32),
15279"$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15280tc_c21d7447, TypeM>, Enc_5ab2be {
15281let Inst{7-5} = 0b110;
15282let Inst{13-13} = 0b0;
15283let Inst{31-21} = 0b11101100000;
15284let hasNewValue = 1;
15285let opNewValue = 0;
15286let prefersSlot3 = 1;
15287let Defs = [USR_OVF];
15288}
15289def M2_mpy_sat_hl_s1 : HInst<
15290(outs IntRegs:$Rd32),
15291(ins IntRegs:$Rs32, IntRegs:$Rt32),
15292"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15293tc_c21d7447, TypeM>, Enc_5ab2be {
15294let Inst{7-5} = 0b110;
15295let Inst{13-13} = 0b0;
15296let Inst{31-21} = 0b11101100100;
15297let hasNewValue = 1;
15298let opNewValue = 0;
15299let prefersSlot3 = 1;
15300let Defs = [USR_OVF];
15301}
15302def M2_mpy_sat_lh_s0 : HInst<
15303(outs IntRegs:$Rd32),
15304(ins IntRegs:$Rs32, IntRegs:$Rt32),
15305"$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15306tc_c21d7447, TypeM>, Enc_5ab2be {
15307let Inst{7-5} = 0b101;
15308let Inst{13-13} = 0b0;
15309let Inst{31-21} = 0b11101100000;
15310let hasNewValue = 1;
15311let opNewValue = 0;
15312let prefersSlot3 = 1;
15313let Defs = [USR_OVF];
15314}
15315def M2_mpy_sat_lh_s1 : HInst<
15316(outs IntRegs:$Rd32),
15317(ins IntRegs:$Rs32, IntRegs:$Rt32),
15318"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15319tc_c21d7447, TypeM>, Enc_5ab2be {
15320let Inst{7-5} = 0b101;
15321let Inst{13-13} = 0b0;
15322let Inst{31-21} = 0b11101100100;
15323let hasNewValue = 1;
15324let opNewValue = 0;
15325let prefersSlot3 = 1;
15326let Defs = [USR_OVF];
15327}
15328def M2_mpy_sat_ll_s0 : HInst<
15329(outs IntRegs:$Rd32),
15330(ins IntRegs:$Rs32, IntRegs:$Rt32),
15331"$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15332tc_c21d7447, TypeM>, Enc_5ab2be {
15333let Inst{7-5} = 0b100;
15334let Inst{13-13} = 0b0;
15335let Inst{31-21} = 0b11101100000;
15336let hasNewValue = 1;
15337let opNewValue = 0;
15338let prefersSlot3 = 1;
15339let Defs = [USR_OVF];
15340}
15341def M2_mpy_sat_ll_s1 : HInst<
15342(outs IntRegs:$Rd32),
15343(ins IntRegs:$Rs32, IntRegs:$Rt32),
15344"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15345tc_c21d7447, TypeM>, Enc_5ab2be {
15346let Inst{7-5} = 0b100;
15347let Inst{13-13} = 0b0;
15348let Inst{31-21} = 0b11101100100;
15349let hasNewValue = 1;
15350let opNewValue = 0;
15351let prefersSlot3 = 1;
15352let Defs = [USR_OVF];
15353}
15354def M2_mpy_sat_rnd_hh_s0 : HInst<
15355(outs IntRegs:$Rd32),
15356(ins IntRegs:$Rs32, IntRegs:$Rt32),
15357"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15358tc_c21d7447, TypeM>, Enc_5ab2be {
15359let Inst{7-5} = 0b111;
15360let Inst{13-13} = 0b0;
15361let Inst{31-21} = 0b11101100001;
15362let hasNewValue = 1;
15363let opNewValue = 0;
15364let prefersSlot3 = 1;
15365let Defs = [USR_OVF];
15366}
15367def M2_mpy_sat_rnd_hh_s1 : HInst<
15368(outs IntRegs:$Rd32),
15369(ins IntRegs:$Rs32, IntRegs:$Rt32),
15370"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15371tc_c21d7447, TypeM>, Enc_5ab2be {
15372let Inst{7-5} = 0b111;
15373let Inst{13-13} = 0b0;
15374let Inst{31-21} = 0b11101100101;
15375let hasNewValue = 1;
15376let opNewValue = 0;
15377let prefersSlot3 = 1;
15378let Defs = [USR_OVF];
15379}
15380def M2_mpy_sat_rnd_hl_s0 : HInst<
15381(outs IntRegs:$Rd32),
15382(ins IntRegs:$Rs32, IntRegs:$Rt32),
15383"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15384tc_c21d7447, TypeM>, Enc_5ab2be {
15385let Inst{7-5} = 0b110;
15386let Inst{13-13} = 0b0;
15387let Inst{31-21} = 0b11101100001;
15388let hasNewValue = 1;
15389let opNewValue = 0;
15390let prefersSlot3 = 1;
15391let Defs = [USR_OVF];
15392}
15393def M2_mpy_sat_rnd_hl_s1 : HInst<
15394(outs IntRegs:$Rd32),
15395(ins IntRegs:$Rs32, IntRegs:$Rt32),
15396"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15397tc_c21d7447, TypeM>, Enc_5ab2be {
15398let Inst{7-5} = 0b110;
15399let Inst{13-13} = 0b0;
15400let Inst{31-21} = 0b11101100101;
15401let hasNewValue = 1;
15402let opNewValue = 0;
15403let prefersSlot3 = 1;
15404let Defs = [USR_OVF];
15405}
15406def M2_mpy_sat_rnd_lh_s0 : HInst<
15407(outs IntRegs:$Rd32),
15408(ins IntRegs:$Rs32, IntRegs:$Rt32),
15409"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15410tc_c21d7447, TypeM>, Enc_5ab2be {
15411let Inst{7-5} = 0b101;
15412let Inst{13-13} = 0b0;
15413let Inst{31-21} = 0b11101100001;
15414let hasNewValue = 1;
15415let opNewValue = 0;
15416let prefersSlot3 = 1;
15417let Defs = [USR_OVF];
15418}
15419def M2_mpy_sat_rnd_lh_s1 : HInst<
15420(outs IntRegs:$Rd32),
15421(ins IntRegs:$Rs32, IntRegs:$Rt32),
15422"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15423tc_c21d7447, TypeM>, Enc_5ab2be {
15424let Inst{7-5} = 0b101;
15425let Inst{13-13} = 0b0;
15426let Inst{31-21} = 0b11101100101;
15427let hasNewValue = 1;
15428let opNewValue = 0;
15429let prefersSlot3 = 1;
15430let Defs = [USR_OVF];
15431}
15432def M2_mpy_sat_rnd_ll_s0 : HInst<
15433(outs IntRegs:$Rd32),
15434(ins IntRegs:$Rs32, IntRegs:$Rt32),
15435"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15436tc_c21d7447, TypeM>, Enc_5ab2be {
15437let Inst{7-5} = 0b100;
15438let Inst{13-13} = 0b0;
15439let Inst{31-21} = 0b11101100001;
15440let hasNewValue = 1;
15441let opNewValue = 0;
15442let prefersSlot3 = 1;
15443let Defs = [USR_OVF];
15444}
15445def M2_mpy_sat_rnd_ll_s1 : HInst<
15446(outs IntRegs:$Rd32),
15447(ins IntRegs:$Rs32, IntRegs:$Rt32),
15448"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15449tc_c21d7447, TypeM>, Enc_5ab2be {
15450let Inst{7-5} = 0b100;
15451let Inst{13-13} = 0b0;
15452let Inst{31-21} = 0b11101100101;
15453let hasNewValue = 1;
15454let opNewValue = 0;
15455let prefersSlot3 = 1;
15456let Defs = [USR_OVF];
15457}
15458def M2_mpy_up : HInst<
15459(outs IntRegs:$Rd32),
15460(ins IntRegs:$Rs32, IntRegs:$Rt32),
15461"$Rd32 = mpy($Rs32,$Rt32)",
15462tc_c21d7447, TypeM>, Enc_5ab2be {
15463let Inst{7-5} = 0b001;
15464let Inst{13-13} = 0b0;
15465let Inst{31-21} = 0b11101101000;
15466let hasNewValue = 1;
15467let opNewValue = 0;
15468let prefersSlot3 = 1;
15469}
15470def M2_mpy_up_s1 : HInst<
15471(outs IntRegs:$Rd32),
15472(ins IntRegs:$Rs32, IntRegs:$Rt32),
15473"$Rd32 = mpy($Rs32,$Rt32):<<1",
15474tc_c21d7447, TypeM>, Enc_5ab2be {
15475let Inst{7-5} = 0b010;
15476let Inst{13-13} = 0b0;
15477let Inst{31-21} = 0b11101101101;
15478let hasNewValue = 1;
15479let opNewValue = 0;
15480let prefersSlot3 = 1;
15481}
15482def M2_mpy_up_s1_sat : HInst<
15483(outs IntRegs:$Rd32),
15484(ins IntRegs:$Rs32, IntRegs:$Rt32),
15485"$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15486tc_c21d7447, TypeM>, Enc_5ab2be {
15487let Inst{7-5} = 0b000;
15488let Inst{13-13} = 0b0;
15489let Inst{31-21} = 0b11101101111;
15490let hasNewValue = 1;
15491let opNewValue = 0;
15492let prefersSlot3 = 1;
15493let Defs = [USR_OVF];
15494}
15495def M2_mpyd_acc_hh_s0 : HInst<
15496(outs DoubleRegs:$Rxx32),
15497(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15498"$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15499tc_7f8ae742, TypeM>, Enc_61f0b0 {
15500let Inst{7-5} = 0b011;
15501let Inst{13-13} = 0b0;
15502let Inst{31-21} = 0b11100110000;
15503let prefersSlot3 = 1;
15504let Constraints = "$Rxx32 = $Rxx32in";
15505}
15506def M2_mpyd_acc_hh_s1 : HInst<
15507(outs DoubleRegs:$Rxx32),
15508(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15509"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15510tc_7f8ae742, TypeM>, Enc_61f0b0 {
15511let Inst{7-5} = 0b011;
15512let Inst{13-13} = 0b0;
15513let Inst{31-21} = 0b11100110100;
15514let prefersSlot3 = 1;
15515let Constraints = "$Rxx32 = $Rxx32in";
15516}
15517def M2_mpyd_acc_hl_s0 : HInst<
15518(outs DoubleRegs:$Rxx32),
15519(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15520"$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15521tc_7f8ae742, TypeM>, Enc_61f0b0 {
15522let Inst{7-5} = 0b010;
15523let Inst{13-13} = 0b0;
15524let Inst{31-21} = 0b11100110000;
15525let prefersSlot3 = 1;
15526let Constraints = "$Rxx32 = $Rxx32in";
15527}
15528def M2_mpyd_acc_hl_s1 : HInst<
15529(outs DoubleRegs:$Rxx32),
15530(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15531"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15532tc_7f8ae742, TypeM>, Enc_61f0b0 {
15533let Inst{7-5} = 0b010;
15534let Inst{13-13} = 0b0;
15535let Inst{31-21} = 0b11100110100;
15536let prefersSlot3 = 1;
15537let Constraints = "$Rxx32 = $Rxx32in";
15538}
15539def M2_mpyd_acc_lh_s0 : HInst<
15540(outs DoubleRegs:$Rxx32),
15541(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15542"$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15543tc_7f8ae742, TypeM>, Enc_61f0b0 {
15544let Inst{7-5} = 0b001;
15545let Inst{13-13} = 0b0;
15546let Inst{31-21} = 0b11100110000;
15547let prefersSlot3 = 1;
15548let Constraints = "$Rxx32 = $Rxx32in";
15549}
15550def M2_mpyd_acc_lh_s1 : HInst<
15551(outs DoubleRegs:$Rxx32),
15552(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15553"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15554tc_7f8ae742, TypeM>, Enc_61f0b0 {
15555let Inst{7-5} = 0b001;
15556let Inst{13-13} = 0b0;
15557let Inst{31-21} = 0b11100110100;
15558let prefersSlot3 = 1;
15559let Constraints = "$Rxx32 = $Rxx32in";
15560}
15561def M2_mpyd_acc_ll_s0 : HInst<
15562(outs DoubleRegs:$Rxx32),
15563(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15564"$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15565tc_7f8ae742, TypeM>, Enc_61f0b0 {
15566let Inst{7-5} = 0b000;
15567let Inst{13-13} = 0b0;
15568let Inst{31-21} = 0b11100110000;
15569let prefersSlot3 = 1;
15570let Constraints = "$Rxx32 = $Rxx32in";
15571}
15572def M2_mpyd_acc_ll_s1 : HInst<
15573(outs DoubleRegs:$Rxx32),
15574(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15575"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15576tc_7f8ae742, TypeM>, Enc_61f0b0 {
15577let Inst{7-5} = 0b000;
15578let Inst{13-13} = 0b0;
15579let Inst{31-21} = 0b11100110100;
15580let prefersSlot3 = 1;
15581let Constraints = "$Rxx32 = $Rxx32in";
15582}
15583def M2_mpyd_hh_s0 : HInst<
15584(outs DoubleRegs:$Rdd32),
15585(ins IntRegs:$Rs32, IntRegs:$Rt32),
15586"$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15587tc_c21d7447, TypeM>, Enc_be32a5 {
15588let Inst{7-5} = 0b011;
15589let Inst{13-13} = 0b0;
15590let Inst{31-21} = 0b11100100000;
15591let prefersSlot3 = 1;
15592}
15593def M2_mpyd_hh_s1 : HInst<
15594(outs DoubleRegs:$Rdd32),
15595(ins IntRegs:$Rs32, IntRegs:$Rt32),
15596"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15597tc_c21d7447, TypeM>, Enc_be32a5 {
15598let Inst{7-5} = 0b011;
15599let Inst{13-13} = 0b0;
15600let Inst{31-21} = 0b11100100100;
15601let prefersSlot3 = 1;
15602}
15603def M2_mpyd_hl_s0 : HInst<
15604(outs DoubleRegs:$Rdd32),
15605(ins IntRegs:$Rs32, IntRegs:$Rt32),
15606"$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15607tc_c21d7447, TypeM>, Enc_be32a5 {
15608let Inst{7-5} = 0b010;
15609let Inst{13-13} = 0b0;
15610let Inst{31-21} = 0b11100100000;
15611let prefersSlot3 = 1;
15612}
15613def M2_mpyd_hl_s1 : HInst<
15614(outs DoubleRegs:$Rdd32),
15615(ins IntRegs:$Rs32, IntRegs:$Rt32),
15616"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15617tc_c21d7447, TypeM>, Enc_be32a5 {
15618let Inst{7-5} = 0b010;
15619let Inst{13-13} = 0b0;
15620let Inst{31-21} = 0b11100100100;
15621let prefersSlot3 = 1;
15622}
15623def M2_mpyd_lh_s0 : HInst<
15624(outs DoubleRegs:$Rdd32),
15625(ins IntRegs:$Rs32, IntRegs:$Rt32),
15626"$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15627tc_c21d7447, TypeM>, Enc_be32a5 {
15628let Inst{7-5} = 0b001;
15629let Inst{13-13} = 0b0;
15630let Inst{31-21} = 0b11100100000;
15631let prefersSlot3 = 1;
15632}
15633def M2_mpyd_lh_s1 : HInst<
15634(outs DoubleRegs:$Rdd32),
15635(ins IntRegs:$Rs32, IntRegs:$Rt32),
15636"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15637tc_c21d7447, TypeM>, Enc_be32a5 {
15638let Inst{7-5} = 0b001;
15639let Inst{13-13} = 0b0;
15640let Inst{31-21} = 0b11100100100;
15641let prefersSlot3 = 1;
15642}
15643def M2_mpyd_ll_s0 : HInst<
15644(outs DoubleRegs:$Rdd32),
15645(ins IntRegs:$Rs32, IntRegs:$Rt32),
15646"$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15647tc_c21d7447, TypeM>, Enc_be32a5 {
15648let Inst{7-5} = 0b000;
15649let Inst{13-13} = 0b0;
15650let Inst{31-21} = 0b11100100000;
15651let prefersSlot3 = 1;
15652}
15653def M2_mpyd_ll_s1 : HInst<
15654(outs DoubleRegs:$Rdd32),
15655(ins IntRegs:$Rs32, IntRegs:$Rt32),
15656"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15657tc_c21d7447, TypeM>, Enc_be32a5 {
15658let Inst{7-5} = 0b000;
15659let Inst{13-13} = 0b0;
15660let Inst{31-21} = 0b11100100100;
15661let prefersSlot3 = 1;
15662}
15663def M2_mpyd_nac_hh_s0 : HInst<
15664(outs DoubleRegs:$Rxx32),
15665(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15666"$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15667tc_7f8ae742, TypeM>, Enc_61f0b0 {
15668let Inst{7-5} = 0b011;
15669let Inst{13-13} = 0b0;
15670let Inst{31-21} = 0b11100110001;
15671let prefersSlot3 = 1;
15672let Constraints = "$Rxx32 = $Rxx32in";
15673}
15674def M2_mpyd_nac_hh_s1 : HInst<
15675(outs DoubleRegs:$Rxx32),
15676(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15677"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15678tc_7f8ae742, TypeM>, Enc_61f0b0 {
15679let Inst{7-5} = 0b011;
15680let Inst{13-13} = 0b0;
15681let Inst{31-21} = 0b11100110101;
15682let prefersSlot3 = 1;
15683let Constraints = "$Rxx32 = $Rxx32in";
15684}
15685def M2_mpyd_nac_hl_s0 : HInst<
15686(outs DoubleRegs:$Rxx32),
15687(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15688"$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15689tc_7f8ae742, TypeM>, Enc_61f0b0 {
15690let Inst{7-5} = 0b010;
15691let Inst{13-13} = 0b0;
15692let Inst{31-21} = 0b11100110001;
15693let prefersSlot3 = 1;
15694let Constraints = "$Rxx32 = $Rxx32in";
15695}
15696def M2_mpyd_nac_hl_s1 : HInst<
15697(outs DoubleRegs:$Rxx32),
15698(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15699"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15700tc_7f8ae742, TypeM>, Enc_61f0b0 {
15701let Inst{7-5} = 0b010;
15702let Inst{13-13} = 0b0;
15703let Inst{31-21} = 0b11100110101;
15704let prefersSlot3 = 1;
15705let Constraints = "$Rxx32 = $Rxx32in";
15706}
15707def M2_mpyd_nac_lh_s0 : HInst<
15708(outs DoubleRegs:$Rxx32),
15709(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15710"$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15711tc_7f8ae742, TypeM>, Enc_61f0b0 {
15712let Inst{7-5} = 0b001;
15713let Inst{13-13} = 0b0;
15714let Inst{31-21} = 0b11100110001;
15715let prefersSlot3 = 1;
15716let Constraints = "$Rxx32 = $Rxx32in";
15717}
15718def M2_mpyd_nac_lh_s1 : HInst<
15719(outs DoubleRegs:$Rxx32),
15720(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15721"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15722tc_7f8ae742, TypeM>, Enc_61f0b0 {
15723let Inst{7-5} = 0b001;
15724let Inst{13-13} = 0b0;
15725let Inst{31-21} = 0b11100110101;
15726let prefersSlot3 = 1;
15727let Constraints = "$Rxx32 = $Rxx32in";
15728}
15729def M2_mpyd_nac_ll_s0 : HInst<
15730(outs DoubleRegs:$Rxx32),
15731(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15732"$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15733tc_7f8ae742, TypeM>, Enc_61f0b0 {
15734let Inst{7-5} = 0b000;
15735let Inst{13-13} = 0b0;
15736let Inst{31-21} = 0b11100110001;
15737let prefersSlot3 = 1;
15738let Constraints = "$Rxx32 = $Rxx32in";
15739}
15740def M2_mpyd_nac_ll_s1 : HInst<
15741(outs DoubleRegs:$Rxx32),
15742(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15743"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15744tc_7f8ae742, TypeM>, Enc_61f0b0 {
15745let Inst{7-5} = 0b000;
15746let Inst{13-13} = 0b0;
15747let Inst{31-21} = 0b11100110101;
15748let prefersSlot3 = 1;
15749let Constraints = "$Rxx32 = $Rxx32in";
15750}
15751def M2_mpyd_rnd_hh_s0 : HInst<
15752(outs DoubleRegs:$Rdd32),
15753(ins IntRegs:$Rs32, IntRegs:$Rt32),
15754"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15755tc_c21d7447, TypeM>, Enc_be32a5 {
15756let Inst{7-5} = 0b011;
15757let Inst{13-13} = 0b0;
15758let Inst{31-21} = 0b11100100001;
15759let prefersSlot3 = 1;
15760}
15761def M2_mpyd_rnd_hh_s1 : HInst<
15762(outs DoubleRegs:$Rdd32),
15763(ins IntRegs:$Rs32, IntRegs:$Rt32),
15764"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15765tc_c21d7447, TypeM>, Enc_be32a5 {
15766let Inst{7-5} = 0b011;
15767let Inst{13-13} = 0b0;
15768let Inst{31-21} = 0b11100100101;
15769let prefersSlot3 = 1;
15770}
15771def M2_mpyd_rnd_hl_s0 : HInst<
15772(outs DoubleRegs:$Rdd32),
15773(ins IntRegs:$Rs32, IntRegs:$Rt32),
15774"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15775tc_c21d7447, TypeM>, Enc_be32a5 {
15776let Inst{7-5} = 0b010;
15777let Inst{13-13} = 0b0;
15778let Inst{31-21} = 0b11100100001;
15779let prefersSlot3 = 1;
15780}
15781def M2_mpyd_rnd_hl_s1 : HInst<
15782(outs DoubleRegs:$Rdd32),
15783(ins IntRegs:$Rs32, IntRegs:$Rt32),
15784"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15785tc_c21d7447, TypeM>, Enc_be32a5 {
15786let Inst{7-5} = 0b010;
15787let Inst{13-13} = 0b0;
15788let Inst{31-21} = 0b11100100101;
15789let prefersSlot3 = 1;
15790}
15791def M2_mpyd_rnd_lh_s0 : HInst<
15792(outs DoubleRegs:$Rdd32),
15793(ins IntRegs:$Rs32, IntRegs:$Rt32),
15794"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15795tc_c21d7447, TypeM>, Enc_be32a5 {
15796let Inst{7-5} = 0b001;
15797let Inst{13-13} = 0b0;
15798let Inst{31-21} = 0b11100100001;
15799let prefersSlot3 = 1;
15800}
15801def M2_mpyd_rnd_lh_s1 : HInst<
15802(outs DoubleRegs:$Rdd32),
15803(ins IntRegs:$Rs32, IntRegs:$Rt32),
15804"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15805tc_c21d7447, TypeM>, Enc_be32a5 {
15806let Inst{7-5} = 0b001;
15807let Inst{13-13} = 0b0;
15808let Inst{31-21} = 0b11100100101;
15809let prefersSlot3 = 1;
15810}
15811def M2_mpyd_rnd_ll_s0 : HInst<
15812(outs DoubleRegs:$Rdd32),
15813(ins IntRegs:$Rs32, IntRegs:$Rt32),
15814"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15815tc_c21d7447, TypeM>, Enc_be32a5 {
15816let Inst{7-5} = 0b000;
15817let Inst{13-13} = 0b0;
15818let Inst{31-21} = 0b11100100001;
15819let prefersSlot3 = 1;
15820}
15821def M2_mpyd_rnd_ll_s1 : HInst<
15822(outs DoubleRegs:$Rdd32),
15823(ins IntRegs:$Rs32, IntRegs:$Rt32),
15824"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15825tc_c21d7447, TypeM>, Enc_be32a5 {
15826let Inst{7-5} = 0b000;
15827let Inst{13-13} = 0b0;
15828let Inst{31-21} = 0b11100100101;
15829let prefersSlot3 = 1;
15830}
15831def M2_mpyi : HInst<
15832(outs IntRegs:$Rd32),
15833(ins IntRegs:$Rs32, IntRegs:$Rt32),
15834"$Rd32 = mpyi($Rs32,$Rt32)",
15835tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel {
15836let Inst{7-5} = 0b000;
15837let Inst{13-13} = 0b0;
15838let Inst{31-21} = 0b11101101000;
15839let hasNewValue = 1;
15840let opNewValue = 0;
15841let prefersSlot3 = 1;
15842let CextOpcode = "M2_mpyi";
15843let InputType = "reg";
15844}
15845def M2_mpysin : HInst<
15846(outs IntRegs:$Rd32),
15847(ins IntRegs:$Rs32, u8_0Imm:$Ii),
15848"$Rd32 = -mpyi($Rs32,#$Ii)",
15849tc_38382228, TypeM>, Enc_b8c967 {
15850let Inst{13-13} = 0b0;
15851let Inst{31-21} = 0b11100000100;
15852let hasNewValue = 1;
15853let opNewValue = 0;
15854let prefersSlot3 = 1;
15855}
15856def M2_mpysip : HInst<
15857(outs IntRegs:$Rd32),
15858(ins IntRegs:$Rs32, u32_0Imm:$Ii),
15859"$Rd32 = +mpyi($Rs32,#$Ii)",
15860tc_38382228, TypeM>, Enc_b8c967 {
15861let Inst{13-13} = 0b0;
15862let Inst{31-21} = 0b11100000000;
15863let hasNewValue = 1;
15864let opNewValue = 0;
15865let prefersSlot3 = 1;
15866let isExtendable = 1;
15867let opExtendable = 2;
15868let isExtentSigned = 0;
15869let opExtentBits = 8;
15870let opExtentAlign = 0;
15871}
15872def M2_mpysmi : HInst<
15873(outs IntRegs:$Rd32),
15874(ins IntRegs:$Rs32, m32_0Imm:$Ii),
15875"$Rd32 = mpyi($Rs32,#$Ii)",
15876tc_38382228, TypeM>, ImmRegRel {
15877let hasNewValue = 1;
15878let opNewValue = 0;
15879let CextOpcode = "M2_mpyi";
15880let InputType = "imm";
15881let isPseudo = 1;
15882let isExtendable = 1;
15883let opExtendable = 2;
15884let isExtentSigned = 1;
15885let opExtentBits = 9;
15886let opExtentAlign = 0;
15887}
15888def M2_mpysu_up : HInst<
15889(outs IntRegs:$Rd32),
15890(ins IntRegs:$Rs32, IntRegs:$Rt32),
15891"$Rd32 = mpysu($Rs32,$Rt32)",
15892tc_c21d7447, TypeM>, Enc_5ab2be {
15893let Inst{7-5} = 0b001;
15894let Inst{13-13} = 0b0;
15895let Inst{31-21} = 0b11101101011;
15896let hasNewValue = 1;
15897let opNewValue = 0;
15898let prefersSlot3 = 1;
15899}
15900def M2_mpyu_acc_hh_s0 : HInst<
15901(outs IntRegs:$Rx32),
15902(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15903"$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15904tc_7f8ae742, TypeM>, Enc_2ae154 {
15905let Inst{7-5} = 0b011;
15906let Inst{13-13} = 0b0;
15907let Inst{31-21} = 0b11101110010;
15908let hasNewValue = 1;
15909let opNewValue = 0;
15910let prefersSlot3 = 1;
15911let Constraints = "$Rx32 = $Rx32in";
15912}
15913def M2_mpyu_acc_hh_s1 : HInst<
15914(outs IntRegs:$Rx32),
15915(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15916"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15917tc_7f8ae742, TypeM>, Enc_2ae154 {
15918let Inst{7-5} = 0b011;
15919let Inst{13-13} = 0b0;
15920let Inst{31-21} = 0b11101110110;
15921let hasNewValue = 1;
15922let opNewValue = 0;
15923let prefersSlot3 = 1;
15924let Constraints = "$Rx32 = $Rx32in";
15925}
15926def M2_mpyu_acc_hl_s0 : HInst<
15927(outs IntRegs:$Rx32),
15928(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15929"$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15930tc_7f8ae742, TypeM>, Enc_2ae154 {
15931let Inst{7-5} = 0b010;
15932let Inst{13-13} = 0b0;
15933let Inst{31-21} = 0b11101110010;
15934let hasNewValue = 1;
15935let opNewValue = 0;
15936let prefersSlot3 = 1;
15937let Constraints = "$Rx32 = $Rx32in";
15938}
15939def M2_mpyu_acc_hl_s1 : HInst<
15940(outs IntRegs:$Rx32),
15941(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15942"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15943tc_7f8ae742, TypeM>, Enc_2ae154 {
15944let Inst{7-5} = 0b010;
15945let Inst{13-13} = 0b0;
15946let Inst{31-21} = 0b11101110110;
15947let hasNewValue = 1;
15948let opNewValue = 0;
15949let prefersSlot3 = 1;
15950let Constraints = "$Rx32 = $Rx32in";
15951}
15952def M2_mpyu_acc_lh_s0 : HInst<
15953(outs IntRegs:$Rx32),
15954(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15955"$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15956tc_7f8ae742, TypeM>, Enc_2ae154 {
15957let Inst{7-5} = 0b001;
15958let Inst{13-13} = 0b0;
15959let Inst{31-21} = 0b11101110010;
15960let hasNewValue = 1;
15961let opNewValue = 0;
15962let prefersSlot3 = 1;
15963let Constraints = "$Rx32 = $Rx32in";
15964}
15965def M2_mpyu_acc_lh_s1 : HInst<
15966(outs IntRegs:$Rx32),
15967(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15968"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15969tc_7f8ae742, TypeM>, Enc_2ae154 {
15970let Inst{7-5} = 0b001;
15971let Inst{13-13} = 0b0;
15972let Inst{31-21} = 0b11101110110;
15973let hasNewValue = 1;
15974let opNewValue = 0;
15975let prefersSlot3 = 1;
15976let Constraints = "$Rx32 = $Rx32in";
15977}
15978def M2_mpyu_acc_ll_s0 : HInst<
15979(outs IntRegs:$Rx32),
15980(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15981"$Rx32 += mpyu($Rs32.l,$Rt32.l)",
15982tc_7f8ae742, TypeM>, Enc_2ae154 {
15983let Inst{7-5} = 0b000;
15984let Inst{13-13} = 0b0;
15985let Inst{31-21} = 0b11101110010;
15986let hasNewValue = 1;
15987let opNewValue = 0;
15988let prefersSlot3 = 1;
15989let Constraints = "$Rx32 = $Rx32in";
15990}
15991def M2_mpyu_acc_ll_s1 : HInst<
15992(outs IntRegs:$Rx32),
15993(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15994"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15995tc_7f8ae742, TypeM>, Enc_2ae154 {
15996let Inst{7-5} = 0b000;
15997let Inst{13-13} = 0b0;
15998let Inst{31-21} = 0b11101110110;
15999let hasNewValue = 1;
16000let opNewValue = 0;
16001let prefersSlot3 = 1;
16002let Constraints = "$Rx32 = $Rx32in";
16003}
16004def M2_mpyu_hh_s0 : HInst<
16005(outs IntRegs:$Rd32),
16006(ins IntRegs:$Rs32, IntRegs:$Rt32),
16007"$Rd32 = mpyu($Rs32.h,$Rt32.h)",
16008tc_c21d7447, TypeM>, Enc_5ab2be {
16009let Inst{7-5} = 0b011;
16010let Inst{13-13} = 0b0;
16011let Inst{31-21} = 0b11101100010;
16012let hasNewValue = 1;
16013let opNewValue = 0;
16014let prefersSlot3 = 1;
16015}
16016def M2_mpyu_hh_s1 : HInst<
16017(outs IntRegs:$Rd32),
16018(ins IntRegs:$Rs32, IntRegs:$Rt32),
16019"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16020tc_c21d7447, TypeM>, Enc_5ab2be {
16021let Inst{7-5} = 0b011;
16022let Inst{13-13} = 0b0;
16023let Inst{31-21} = 0b11101100110;
16024let hasNewValue = 1;
16025let opNewValue = 0;
16026let prefersSlot3 = 1;
16027}
16028def M2_mpyu_hl_s0 : HInst<
16029(outs IntRegs:$Rd32),
16030(ins IntRegs:$Rs32, IntRegs:$Rt32),
16031"$Rd32 = mpyu($Rs32.h,$Rt32.l)",
16032tc_c21d7447, TypeM>, Enc_5ab2be {
16033let Inst{7-5} = 0b010;
16034let Inst{13-13} = 0b0;
16035let Inst{31-21} = 0b11101100010;
16036let hasNewValue = 1;
16037let opNewValue = 0;
16038let prefersSlot3 = 1;
16039}
16040def M2_mpyu_hl_s1 : HInst<
16041(outs IntRegs:$Rd32),
16042(ins IntRegs:$Rs32, IntRegs:$Rt32),
16043"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16044tc_c21d7447, TypeM>, Enc_5ab2be {
16045let Inst{7-5} = 0b010;
16046let Inst{13-13} = 0b0;
16047let Inst{31-21} = 0b11101100110;
16048let hasNewValue = 1;
16049let opNewValue = 0;
16050let prefersSlot3 = 1;
16051}
16052def M2_mpyu_lh_s0 : HInst<
16053(outs IntRegs:$Rd32),
16054(ins IntRegs:$Rs32, IntRegs:$Rt32),
16055"$Rd32 = mpyu($Rs32.l,$Rt32.h)",
16056tc_c21d7447, TypeM>, Enc_5ab2be {
16057let Inst{7-5} = 0b001;
16058let Inst{13-13} = 0b0;
16059let Inst{31-21} = 0b11101100010;
16060let hasNewValue = 1;
16061let opNewValue = 0;
16062let prefersSlot3 = 1;
16063}
16064def M2_mpyu_lh_s1 : HInst<
16065(outs IntRegs:$Rd32),
16066(ins IntRegs:$Rs32, IntRegs:$Rt32),
16067"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16068tc_c21d7447, TypeM>, Enc_5ab2be {
16069let Inst{7-5} = 0b001;
16070let Inst{13-13} = 0b0;
16071let Inst{31-21} = 0b11101100110;
16072let hasNewValue = 1;
16073let opNewValue = 0;
16074let prefersSlot3 = 1;
16075}
16076def M2_mpyu_ll_s0 : HInst<
16077(outs IntRegs:$Rd32),
16078(ins IntRegs:$Rs32, IntRegs:$Rt32),
16079"$Rd32 = mpyu($Rs32.l,$Rt32.l)",
16080tc_c21d7447, TypeM>, Enc_5ab2be {
16081let Inst{7-5} = 0b000;
16082let Inst{13-13} = 0b0;
16083let Inst{31-21} = 0b11101100010;
16084let hasNewValue = 1;
16085let opNewValue = 0;
16086let prefersSlot3 = 1;
16087}
16088def M2_mpyu_ll_s1 : HInst<
16089(outs IntRegs:$Rd32),
16090(ins IntRegs:$Rs32, IntRegs:$Rt32),
16091"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16092tc_c21d7447, TypeM>, Enc_5ab2be {
16093let Inst{7-5} = 0b000;
16094let Inst{13-13} = 0b0;
16095let Inst{31-21} = 0b11101100110;
16096let hasNewValue = 1;
16097let opNewValue = 0;
16098let prefersSlot3 = 1;
16099}
16100def M2_mpyu_nac_hh_s0 : HInst<
16101(outs IntRegs:$Rx32),
16102(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16103"$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
16104tc_7f8ae742, TypeM>, Enc_2ae154 {
16105let Inst{7-5} = 0b011;
16106let Inst{13-13} = 0b0;
16107let Inst{31-21} = 0b11101110011;
16108let hasNewValue = 1;
16109let opNewValue = 0;
16110let prefersSlot3 = 1;
16111let Constraints = "$Rx32 = $Rx32in";
16112}
16113def M2_mpyu_nac_hh_s1 : HInst<
16114(outs IntRegs:$Rx32),
16115(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16116"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16117tc_7f8ae742, TypeM>, Enc_2ae154 {
16118let Inst{7-5} = 0b011;
16119let Inst{13-13} = 0b0;
16120let Inst{31-21} = 0b11101110111;
16121let hasNewValue = 1;
16122let opNewValue = 0;
16123let prefersSlot3 = 1;
16124let Constraints = "$Rx32 = $Rx32in";
16125}
16126def M2_mpyu_nac_hl_s0 : HInst<
16127(outs IntRegs:$Rx32),
16128(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16129"$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
16130tc_7f8ae742, TypeM>, Enc_2ae154 {
16131let Inst{7-5} = 0b010;
16132let Inst{13-13} = 0b0;
16133let Inst{31-21} = 0b11101110011;
16134let hasNewValue = 1;
16135let opNewValue = 0;
16136let prefersSlot3 = 1;
16137let Constraints = "$Rx32 = $Rx32in";
16138}
16139def M2_mpyu_nac_hl_s1 : HInst<
16140(outs IntRegs:$Rx32),
16141(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16142"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16143tc_7f8ae742, TypeM>, Enc_2ae154 {
16144let Inst{7-5} = 0b010;
16145let Inst{13-13} = 0b0;
16146let Inst{31-21} = 0b11101110111;
16147let hasNewValue = 1;
16148let opNewValue = 0;
16149let prefersSlot3 = 1;
16150let Constraints = "$Rx32 = $Rx32in";
16151}
16152def M2_mpyu_nac_lh_s0 : HInst<
16153(outs IntRegs:$Rx32),
16154(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16155"$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16156tc_7f8ae742, TypeM>, Enc_2ae154 {
16157let Inst{7-5} = 0b001;
16158let Inst{13-13} = 0b0;
16159let Inst{31-21} = 0b11101110011;
16160let hasNewValue = 1;
16161let opNewValue = 0;
16162let prefersSlot3 = 1;
16163let Constraints = "$Rx32 = $Rx32in";
16164}
16165def M2_mpyu_nac_lh_s1 : HInst<
16166(outs IntRegs:$Rx32),
16167(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16168"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16169tc_7f8ae742, TypeM>, Enc_2ae154 {
16170let Inst{7-5} = 0b001;
16171let Inst{13-13} = 0b0;
16172let Inst{31-21} = 0b11101110111;
16173let hasNewValue = 1;
16174let opNewValue = 0;
16175let prefersSlot3 = 1;
16176let Constraints = "$Rx32 = $Rx32in";
16177}
16178def M2_mpyu_nac_ll_s0 : HInst<
16179(outs IntRegs:$Rx32),
16180(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16181"$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16182tc_7f8ae742, TypeM>, Enc_2ae154 {
16183let Inst{7-5} = 0b000;
16184let Inst{13-13} = 0b0;
16185let Inst{31-21} = 0b11101110011;
16186let hasNewValue = 1;
16187let opNewValue = 0;
16188let prefersSlot3 = 1;
16189let Constraints = "$Rx32 = $Rx32in";
16190}
16191def M2_mpyu_nac_ll_s1 : HInst<
16192(outs IntRegs:$Rx32),
16193(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16194"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16195tc_7f8ae742, TypeM>, Enc_2ae154 {
16196let Inst{7-5} = 0b000;
16197let Inst{13-13} = 0b0;
16198let Inst{31-21} = 0b11101110111;
16199let hasNewValue = 1;
16200let opNewValue = 0;
16201let prefersSlot3 = 1;
16202let Constraints = "$Rx32 = $Rx32in";
16203}
16204def M2_mpyu_up : HInst<
16205(outs IntRegs:$Rd32),
16206(ins IntRegs:$Rs32, IntRegs:$Rt32),
16207"$Rd32 = mpyu($Rs32,$Rt32)",
16208tc_c21d7447, TypeM>, Enc_5ab2be {
16209let Inst{7-5} = 0b001;
16210let Inst{13-13} = 0b0;
16211let Inst{31-21} = 0b11101101010;
16212let hasNewValue = 1;
16213let opNewValue = 0;
16214let prefersSlot3 = 1;
16215}
16216def M2_mpyud_acc_hh_s0 : HInst<
16217(outs DoubleRegs:$Rxx32),
16218(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16219"$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16220tc_7f8ae742, TypeM>, Enc_61f0b0 {
16221let Inst{7-5} = 0b011;
16222let Inst{13-13} = 0b0;
16223let Inst{31-21} = 0b11100110010;
16224let prefersSlot3 = 1;
16225let Constraints = "$Rxx32 = $Rxx32in";
16226}
16227def M2_mpyud_acc_hh_s1 : HInst<
16228(outs DoubleRegs:$Rxx32),
16229(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16230"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16231tc_7f8ae742, TypeM>, Enc_61f0b0 {
16232let Inst{7-5} = 0b011;
16233let Inst{13-13} = 0b0;
16234let Inst{31-21} = 0b11100110110;
16235let prefersSlot3 = 1;
16236let Constraints = "$Rxx32 = $Rxx32in";
16237}
16238def M2_mpyud_acc_hl_s0 : HInst<
16239(outs DoubleRegs:$Rxx32),
16240(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16241"$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16242tc_7f8ae742, TypeM>, Enc_61f0b0 {
16243let Inst{7-5} = 0b010;
16244let Inst{13-13} = 0b0;
16245let Inst{31-21} = 0b11100110010;
16246let prefersSlot3 = 1;
16247let Constraints = "$Rxx32 = $Rxx32in";
16248}
16249def M2_mpyud_acc_hl_s1 : HInst<
16250(outs DoubleRegs:$Rxx32),
16251(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16252"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16253tc_7f8ae742, TypeM>, Enc_61f0b0 {
16254let Inst{7-5} = 0b010;
16255let Inst{13-13} = 0b0;
16256let Inst{31-21} = 0b11100110110;
16257let prefersSlot3 = 1;
16258let Constraints = "$Rxx32 = $Rxx32in";
16259}
16260def M2_mpyud_acc_lh_s0 : HInst<
16261(outs DoubleRegs:$Rxx32),
16262(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16263"$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16264tc_7f8ae742, TypeM>, Enc_61f0b0 {
16265let Inst{7-5} = 0b001;
16266let Inst{13-13} = 0b0;
16267let Inst{31-21} = 0b11100110010;
16268let prefersSlot3 = 1;
16269let Constraints = "$Rxx32 = $Rxx32in";
16270}
16271def M2_mpyud_acc_lh_s1 : HInst<
16272(outs DoubleRegs:$Rxx32),
16273(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16274"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16275tc_7f8ae742, TypeM>, Enc_61f0b0 {
16276let Inst{7-5} = 0b001;
16277let Inst{13-13} = 0b0;
16278let Inst{31-21} = 0b11100110110;
16279let prefersSlot3 = 1;
16280let Constraints = "$Rxx32 = $Rxx32in";
16281}
16282def M2_mpyud_acc_ll_s0 : HInst<
16283(outs DoubleRegs:$Rxx32),
16284(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16285"$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16286tc_7f8ae742, TypeM>, Enc_61f0b0 {
16287let Inst{7-5} = 0b000;
16288let Inst{13-13} = 0b0;
16289let Inst{31-21} = 0b11100110010;
16290let prefersSlot3 = 1;
16291let Constraints = "$Rxx32 = $Rxx32in";
16292}
16293def M2_mpyud_acc_ll_s1 : HInst<
16294(outs DoubleRegs:$Rxx32),
16295(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16296"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16297tc_7f8ae742, TypeM>, Enc_61f0b0 {
16298let Inst{7-5} = 0b000;
16299let Inst{13-13} = 0b0;
16300let Inst{31-21} = 0b11100110110;
16301let prefersSlot3 = 1;
16302let Constraints = "$Rxx32 = $Rxx32in";
16303}
16304def M2_mpyud_hh_s0 : HInst<
16305(outs DoubleRegs:$Rdd32),
16306(ins IntRegs:$Rs32, IntRegs:$Rt32),
16307"$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16308tc_c21d7447, TypeM>, Enc_be32a5 {
16309let Inst{7-5} = 0b011;
16310let Inst{13-13} = 0b0;
16311let Inst{31-21} = 0b11100100010;
16312let prefersSlot3 = 1;
16313}
16314def M2_mpyud_hh_s1 : HInst<
16315(outs DoubleRegs:$Rdd32),
16316(ins IntRegs:$Rs32, IntRegs:$Rt32),
16317"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16318tc_c21d7447, TypeM>, Enc_be32a5 {
16319let Inst{7-5} = 0b011;
16320let Inst{13-13} = 0b0;
16321let Inst{31-21} = 0b11100100110;
16322let prefersSlot3 = 1;
16323}
16324def M2_mpyud_hl_s0 : HInst<
16325(outs DoubleRegs:$Rdd32),
16326(ins IntRegs:$Rs32, IntRegs:$Rt32),
16327"$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16328tc_c21d7447, TypeM>, Enc_be32a5 {
16329let Inst{7-5} = 0b010;
16330let Inst{13-13} = 0b0;
16331let Inst{31-21} = 0b11100100010;
16332let prefersSlot3 = 1;
16333}
16334def M2_mpyud_hl_s1 : HInst<
16335(outs DoubleRegs:$Rdd32),
16336(ins IntRegs:$Rs32, IntRegs:$Rt32),
16337"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16338tc_c21d7447, TypeM>, Enc_be32a5 {
16339let Inst{7-5} = 0b010;
16340let Inst{13-13} = 0b0;
16341let Inst{31-21} = 0b11100100110;
16342let prefersSlot3 = 1;
16343}
16344def M2_mpyud_lh_s0 : HInst<
16345(outs DoubleRegs:$Rdd32),
16346(ins IntRegs:$Rs32, IntRegs:$Rt32),
16347"$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16348tc_c21d7447, TypeM>, Enc_be32a5 {
16349let Inst{7-5} = 0b001;
16350let Inst{13-13} = 0b0;
16351let Inst{31-21} = 0b11100100010;
16352let prefersSlot3 = 1;
16353}
16354def M2_mpyud_lh_s1 : HInst<
16355(outs DoubleRegs:$Rdd32),
16356(ins IntRegs:$Rs32, IntRegs:$Rt32),
16357"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16358tc_c21d7447, TypeM>, Enc_be32a5 {
16359let Inst{7-5} = 0b001;
16360let Inst{13-13} = 0b0;
16361let Inst{31-21} = 0b11100100110;
16362let prefersSlot3 = 1;
16363}
16364def M2_mpyud_ll_s0 : HInst<
16365(outs DoubleRegs:$Rdd32),
16366(ins IntRegs:$Rs32, IntRegs:$Rt32),
16367"$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16368tc_c21d7447, TypeM>, Enc_be32a5 {
16369let Inst{7-5} = 0b000;
16370let Inst{13-13} = 0b0;
16371let Inst{31-21} = 0b11100100010;
16372let prefersSlot3 = 1;
16373}
16374def M2_mpyud_ll_s1 : HInst<
16375(outs DoubleRegs:$Rdd32),
16376(ins IntRegs:$Rs32, IntRegs:$Rt32),
16377"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16378tc_c21d7447, TypeM>, Enc_be32a5 {
16379let Inst{7-5} = 0b000;
16380let Inst{13-13} = 0b0;
16381let Inst{31-21} = 0b11100100110;
16382let prefersSlot3 = 1;
16383}
16384def M2_mpyud_nac_hh_s0 : HInst<
16385(outs DoubleRegs:$Rxx32),
16386(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16387"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16388tc_7f8ae742, TypeM>, Enc_61f0b0 {
16389let Inst{7-5} = 0b011;
16390let Inst{13-13} = 0b0;
16391let Inst{31-21} = 0b11100110011;
16392let prefersSlot3 = 1;
16393let Constraints = "$Rxx32 = $Rxx32in";
16394}
16395def M2_mpyud_nac_hh_s1 : HInst<
16396(outs DoubleRegs:$Rxx32),
16397(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16398"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16399tc_7f8ae742, TypeM>, Enc_61f0b0 {
16400let Inst{7-5} = 0b011;
16401let Inst{13-13} = 0b0;
16402let Inst{31-21} = 0b11100110111;
16403let prefersSlot3 = 1;
16404let Constraints = "$Rxx32 = $Rxx32in";
16405}
16406def M2_mpyud_nac_hl_s0 : HInst<
16407(outs DoubleRegs:$Rxx32),
16408(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16409"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16410tc_7f8ae742, TypeM>, Enc_61f0b0 {
16411let Inst{7-5} = 0b010;
16412let Inst{13-13} = 0b0;
16413let Inst{31-21} = 0b11100110011;
16414let prefersSlot3 = 1;
16415let Constraints = "$Rxx32 = $Rxx32in";
16416}
16417def M2_mpyud_nac_hl_s1 : HInst<
16418(outs DoubleRegs:$Rxx32),
16419(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16420"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16421tc_7f8ae742, TypeM>, Enc_61f0b0 {
16422let Inst{7-5} = 0b010;
16423let Inst{13-13} = 0b0;
16424let Inst{31-21} = 0b11100110111;
16425let prefersSlot3 = 1;
16426let Constraints = "$Rxx32 = $Rxx32in";
16427}
16428def M2_mpyud_nac_lh_s0 : HInst<
16429(outs DoubleRegs:$Rxx32),
16430(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16431"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16432tc_7f8ae742, TypeM>, Enc_61f0b0 {
16433let Inst{7-5} = 0b001;
16434let Inst{13-13} = 0b0;
16435let Inst{31-21} = 0b11100110011;
16436let prefersSlot3 = 1;
16437let Constraints = "$Rxx32 = $Rxx32in";
16438}
16439def M2_mpyud_nac_lh_s1 : HInst<
16440(outs DoubleRegs:$Rxx32),
16441(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16442"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16443tc_7f8ae742, TypeM>, Enc_61f0b0 {
16444let Inst{7-5} = 0b001;
16445let Inst{13-13} = 0b0;
16446let Inst{31-21} = 0b11100110111;
16447let prefersSlot3 = 1;
16448let Constraints = "$Rxx32 = $Rxx32in";
16449}
16450def M2_mpyud_nac_ll_s0 : HInst<
16451(outs DoubleRegs:$Rxx32),
16452(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16453"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16454tc_7f8ae742, TypeM>, Enc_61f0b0 {
16455let Inst{7-5} = 0b000;
16456let Inst{13-13} = 0b0;
16457let Inst{31-21} = 0b11100110011;
16458let prefersSlot3 = 1;
16459let Constraints = "$Rxx32 = $Rxx32in";
16460}
16461def M2_mpyud_nac_ll_s1 : HInst<
16462(outs DoubleRegs:$Rxx32),
16463(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16464"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16465tc_7f8ae742, TypeM>, Enc_61f0b0 {
16466let Inst{7-5} = 0b000;
16467let Inst{13-13} = 0b0;
16468let Inst{31-21} = 0b11100110111;
16469let prefersSlot3 = 1;
16470let Constraints = "$Rxx32 = $Rxx32in";
16471}
16472def M2_mpyui : HInst<
16473(outs IntRegs:$Rd32),
16474(ins IntRegs:$Rs32, IntRegs:$Rt32),
16475"$Rd32 = mpyui($Rs32,$Rt32)",
16476tc_c21d7447, TypeM> {
16477let hasNewValue = 1;
16478let opNewValue = 0;
16479let isPseudo = 1;
16480let isCodeGenOnly = 1;
16481}
16482def M2_nacci : HInst<
16483(outs IntRegs:$Rx32),
16484(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16485"$Rx32 -= add($Rs32,$Rt32)",
16486tc_2c13e7f5, TypeM>, Enc_2ae154 {
16487let Inst{7-5} = 0b001;
16488let Inst{13-13} = 0b0;
16489let Inst{31-21} = 0b11101111100;
16490let hasNewValue = 1;
16491let opNewValue = 0;
16492let prefersSlot3 = 1;
16493let InputType = "reg";
16494let Constraints = "$Rx32 = $Rx32in";
16495}
16496def M2_naccii : HInst<
16497(outs IntRegs:$Rx32),
16498(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16499"$Rx32 -= add($Rs32,#$Ii)",
16500tc_2c13e7f5, TypeM>, Enc_c90aca {
16501let Inst{13-13} = 0b0;
16502let Inst{31-21} = 0b11100010100;
16503let hasNewValue = 1;
16504let opNewValue = 0;
16505let prefersSlot3 = 1;
16506let InputType = "imm";
16507let isExtendable = 1;
16508let opExtendable = 3;
16509let isExtentSigned = 1;
16510let opExtentBits = 8;
16511let opExtentAlign = 0;
16512let Constraints = "$Rx32 = $Rx32in";
16513}
16514def M2_subacc : HInst<
16515(outs IntRegs:$Rx32),
16516(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16517"$Rx32 += sub($Rt32,$Rs32)",
16518tc_2c13e7f5, TypeM>, Enc_a568d4 {
16519let Inst{7-5} = 0b011;
16520let Inst{13-13} = 0b0;
16521let Inst{31-21} = 0b11101111000;
16522let hasNewValue = 1;
16523let opNewValue = 0;
16524let prefersSlot3 = 1;
16525let InputType = "reg";
16526let Constraints = "$Rx32 = $Rx32in";
16527}
16528def M2_vabsdiffh : HInst<
16529(outs DoubleRegs:$Rdd32),
16530(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16531"$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16532tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16533let Inst{7-5} = 0b000;
16534let Inst{13-13} = 0b0;
16535let Inst{31-21} = 0b11101000011;
16536let prefersSlot3 = 1;
16537}
16538def M2_vabsdiffw : HInst<
16539(outs DoubleRegs:$Rdd32),
16540(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16541"$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16542tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16543let Inst{7-5} = 0b000;
16544let Inst{13-13} = 0b0;
16545let Inst{31-21} = 0b11101000001;
16546let prefersSlot3 = 1;
16547}
16548def M2_vcmac_s0_sat_i : HInst<
16549(outs DoubleRegs:$Rxx32),
16550(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16551"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16552tc_7f8ae742, TypeM>, Enc_88c16c {
16553let Inst{7-5} = 0b100;
16554let Inst{13-13} = 0b0;
16555let Inst{31-21} = 0b11101010010;
16556let prefersSlot3 = 1;
16557let Defs = [USR_OVF];
16558let Constraints = "$Rxx32 = $Rxx32in";
16559}
16560def M2_vcmac_s0_sat_r : HInst<
16561(outs DoubleRegs:$Rxx32),
16562(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16563"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16564tc_7f8ae742, TypeM>, Enc_88c16c {
16565let Inst{7-5} = 0b100;
16566let Inst{13-13} = 0b0;
16567let Inst{31-21} = 0b11101010001;
16568let prefersSlot3 = 1;
16569let Defs = [USR_OVF];
16570let Constraints = "$Rxx32 = $Rxx32in";
16571}
16572def M2_vcmpy_s0_sat_i : HInst<
16573(outs DoubleRegs:$Rdd32),
16574(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16575"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16576tc_c21d7447, TypeM>, Enc_a56825 {
16577let Inst{7-5} = 0b110;
16578let Inst{13-13} = 0b0;
16579let Inst{31-21} = 0b11101000010;
16580let prefersSlot3 = 1;
16581let Defs = [USR_OVF];
16582}
16583def M2_vcmpy_s0_sat_r : HInst<
16584(outs DoubleRegs:$Rdd32),
16585(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16586"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16587tc_c21d7447, TypeM>, Enc_a56825 {
16588let Inst{7-5} = 0b110;
16589let Inst{13-13} = 0b0;
16590let Inst{31-21} = 0b11101000001;
16591let prefersSlot3 = 1;
16592let Defs = [USR_OVF];
16593}
16594def M2_vcmpy_s1_sat_i : HInst<
16595(outs DoubleRegs:$Rdd32),
16596(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16597"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16598tc_c21d7447, TypeM>, Enc_a56825 {
16599let Inst{7-5} = 0b110;
16600let Inst{13-13} = 0b0;
16601let Inst{31-21} = 0b11101000110;
16602let prefersSlot3 = 1;
16603let Defs = [USR_OVF];
16604}
16605def M2_vcmpy_s1_sat_r : HInst<
16606(outs DoubleRegs:$Rdd32),
16607(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16608"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16609tc_c21d7447, TypeM>, Enc_a56825 {
16610let Inst{7-5} = 0b110;
16611let Inst{13-13} = 0b0;
16612let Inst{31-21} = 0b11101000101;
16613let prefersSlot3 = 1;
16614let Defs = [USR_OVF];
16615}
16616def M2_vdmacs_s0 : HInst<
16617(outs DoubleRegs:$Rxx32),
16618(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16619"$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16620tc_7f8ae742, TypeM>, Enc_88c16c {
16621let Inst{7-5} = 0b100;
16622let Inst{13-13} = 0b0;
16623let Inst{31-21} = 0b11101010000;
16624let prefersSlot3 = 1;
16625let Defs = [USR_OVF];
16626let Constraints = "$Rxx32 = $Rxx32in";
16627}
16628def M2_vdmacs_s1 : HInst<
16629(outs DoubleRegs:$Rxx32),
16630(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16631"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16632tc_7f8ae742, TypeM>, Enc_88c16c {
16633let Inst{7-5} = 0b100;
16634let Inst{13-13} = 0b0;
16635let Inst{31-21} = 0b11101010100;
16636let prefersSlot3 = 1;
16637let Defs = [USR_OVF];
16638let Constraints = "$Rxx32 = $Rxx32in";
16639}
16640def M2_vdmpyrs_s0 : HInst<
16641(outs IntRegs:$Rd32),
16642(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16643"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16644tc_c21d7447, TypeM>, Enc_d2216a {
16645let Inst{7-5} = 0b000;
16646let Inst{13-13} = 0b0;
16647let Inst{31-21} = 0b11101001000;
16648let hasNewValue = 1;
16649let opNewValue = 0;
16650let prefersSlot3 = 1;
16651let Defs = [USR_OVF];
16652}
16653def M2_vdmpyrs_s1 : HInst<
16654(outs IntRegs:$Rd32),
16655(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16656"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16657tc_c21d7447, TypeM>, Enc_d2216a {
16658let Inst{7-5} = 0b000;
16659let Inst{13-13} = 0b0;
16660let Inst{31-21} = 0b11101001100;
16661let hasNewValue = 1;
16662let opNewValue = 0;
16663let prefersSlot3 = 1;
16664let Defs = [USR_OVF];
16665}
16666def M2_vdmpys_s0 : HInst<
16667(outs DoubleRegs:$Rdd32),
16668(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16669"$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16670tc_c21d7447, TypeM>, Enc_a56825 {
16671let Inst{7-5} = 0b100;
16672let Inst{13-13} = 0b0;
16673let Inst{31-21} = 0b11101000000;
16674let prefersSlot3 = 1;
16675let Defs = [USR_OVF];
16676}
16677def M2_vdmpys_s1 : HInst<
16678(outs DoubleRegs:$Rdd32),
16679(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16680"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16681tc_c21d7447, TypeM>, Enc_a56825 {
16682let Inst{7-5} = 0b100;
16683let Inst{13-13} = 0b0;
16684let Inst{31-21} = 0b11101000100;
16685let prefersSlot3 = 1;
16686let Defs = [USR_OVF];
16687}
16688def M2_vmac2 : HInst<
16689(outs DoubleRegs:$Rxx32),
16690(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16691"$Rxx32 += vmpyh($Rs32,$Rt32)",
16692tc_7f8ae742, TypeM>, Enc_61f0b0 {
16693let Inst{7-5} = 0b001;
16694let Inst{13-13} = 0b0;
16695let Inst{31-21} = 0b11100111001;
16696let prefersSlot3 = 1;
16697let Constraints = "$Rxx32 = $Rxx32in";
16698}
16699def M2_vmac2es : HInst<
16700(outs DoubleRegs:$Rxx32),
16701(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16702"$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16703tc_7f8ae742, TypeM>, Enc_88c16c {
16704let Inst{7-5} = 0b010;
16705let Inst{13-13} = 0b0;
16706let Inst{31-21} = 0b11101010001;
16707let prefersSlot3 = 1;
16708let Constraints = "$Rxx32 = $Rxx32in";
16709}
16710def M2_vmac2es_s0 : HInst<
16711(outs DoubleRegs:$Rxx32),
16712(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16713"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16714tc_7f8ae742, TypeM>, Enc_88c16c {
16715let Inst{7-5} = 0b110;
16716let Inst{13-13} = 0b0;
16717let Inst{31-21} = 0b11101010000;
16718let prefersSlot3 = 1;
16719let Defs = [USR_OVF];
16720let Constraints = "$Rxx32 = $Rxx32in";
16721}
16722def M2_vmac2es_s1 : HInst<
16723(outs DoubleRegs:$Rxx32),
16724(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16725"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16726tc_7f8ae742, TypeM>, Enc_88c16c {
16727let Inst{7-5} = 0b110;
16728let Inst{13-13} = 0b0;
16729let Inst{31-21} = 0b11101010100;
16730let prefersSlot3 = 1;
16731let Defs = [USR_OVF];
16732let Constraints = "$Rxx32 = $Rxx32in";
16733}
16734def M2_vmac2s_s0 : HInst<
16735(outs DoubleRegs:$Rxx32),
16736(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16737"$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16738tc_7f8ae742, TypeM>, Enc_61f0b0 {
16739let Inst{7-5} = 0b101;
16740let Inst{13-13} = 0b0;
16741let Inst{31-21} = 0b11100111000;
16742let prefersSlot3 = 1;
16743let Defs = [USR_OVF];
16744let Constraints = "$Rxx32 = $Rxx32in";
16745}
16746def M2_vmac2s_s1 : HInst<
16747(outs DoubleRegs:$Rxx32),
16748(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16749"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16750tc_7f8ae742, TypeM>, Enc_61f0b0 {
16751let Inst{7-5} = 0b101;
16752let Inst{13-13} = 0b0;
16753let Inst{31-21} = 0b11100111100;
16754let prefersSlot3 = 1;
16755let Defs = [USR_OVF];
16756let Constraints = "$Rxx32 = $Rxx32in";
16757}
16758def M2_vmac2su_s0 : HInst<
16759(outs DoubleRegs:$Rxx32),
16760(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16761"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16762tc_7f8ae742, TypeM>, Enc_61f0b0 {
16763let Inst{7-5} = 0b101;
16764let Inst{13-13} = 0b0;
16765let Inst{31-21} = 0b11100111011;
16766let prefersSlot3 = 1;
16767let Defs = [USR_OVF];
16768let Constraints = "$Rxx32 = $Rxx32in";
16769}
16770def M2_vmac2su_s1 : HInst<
16771(outs DoubleRegs:$Rxx32),
16772(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16773"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16774tc_7f8ae742, TypeM>, Enc_61f0b0 {
16775let Inst{7-5} = 0b101;
16776let Inst{13-13} = 0b0;
16777let Inst{31-21} = 0b11100111111;
16778let prefersSlot3 = 1;
16779let Defs = [USR_OVF];
16780let Constraints = "$Rxx32 = $Rxx32in";
16781}
16782def M2_vmpy2es_s0 : HInst<
16783(outs DoubleRegs:$Rdd32),
16784(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16785"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16786tc_c21d7447, TypeM>, Enc_a56825 {
16787let Inst{7-5} = 0b110;
16788let Inst{13-13} = 0b0;
16789let Inst{31-21} = 0b11101000000;
16790let prefersSlot3 = 1;
16791let Defs = [USR_OVF];
16792}
16793def M2_vmpy2es_s1 : HInst<
16794(outs DoubleRegs:$Rdd32),
16795(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16796"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16797tc_c21d7447, TypeM>, Enc_a56825 {
16798let Inst{7-5} = 0b110;
16799let Inst{13-13} = 0b0;
16800let Inst{31-21} = 0b11101000100;
16801let prefersSlot3 = 1;
16802let Defs = [USR_OVF];
16803}
16804def M2_vmpy2s_s0 : HInst<
16805(outs DoubleRegs:$Rdd32),
16806(ins IntRegs:$Rs32, IntRegs:$Rt32),
16807"$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16808tc_c21d7447, TypeM>, Enc_be32a5 {
16809let Inst{7-5} = 0b101;
16810let Inst{13-13} = 0b0;
16811let Inst{31-21} = 0b11100101000;
16812let prefersSlot3 = 1;
16813let Defs = [USR_OVF];
16814}
16815def M2_vmpy2s_s0pack : HInst<
16816(outs IntRegs:$Rd32),
16817(ins IntRegs:$Rs32, IntRegs:$Rt32),
16818"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16819tc_c21d7447, TypeM>, Enc_5ab2be {
16820let Inst{7-5} = 0b111;
16821let Inst{13-13} = 0b0;
16822let Inst{31-21} = 0b11101101001;
16823let hasNewValue = 1;
16824let opNewValue = 0;
16825let prefersSlot3 = 1;
16826let Defs = [USR_OVF];
16827}
16828def M2_vmpy2s_s1 : HInst<
16829(outs DoubleRegs:$Rdd32),
16830(ins IntRegs:$Rs32, IntRegs:$Rt32),
16831"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16832tc_c21d7447, TypeM>, Enc_be32a5 {
16833let Inst{7-5} = 0b101;
16834let Inst{13-13} = 0b0;
16835let Inst{31-21} = 0b11100101100;
16836let prefersSlot3 = 1;
16837let Defs = [USR_OVF];
16838}
16839def M2_vmpy2s_s1pack : HInst<
16840(outs IntRegs:$Rd32),
16841(ins IntRegs:$Rs32, IntRegs:$Rt32),
16842"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16843tc_c21d7447, TypeM>, Enc_5ab2be {
16844let Inst{7-5} = 0b111;
16845let Inst{13-13} = 0b0;
16846let Inst{31-21} = 0b11101101101;
16847let hasNewValue = 1;
16848let opNewValue = 0;
16849let prefersSlot3 = 1;
16850let Defs = [USR_OVF];
16851}
16852def M2_vmpy2su_s0 : HInst<
16853(outs DoubleRegs:$Rdd32),
16854(ins IntRegs:$Rs32, IntRegs:$Rt32),
16855"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16856tc_c21d7447, TypeM>, Enc_be32a5 {
16857let Inst{7-5} = 0b111;
16858let Inst{13-13} = 0b0;
16859let Inst{31-21} = 0b11100101000;
16860let prefersSlot3 = 1;
16861let Defs = [USR_OVF];
16862}
16863def M2_vmpy2su_s1 : HInst<
16864(outs DoubleRegs:$Rdd32),
16865(ins IntRegs:$Rs32, IntRegs:$Rt32),
16866"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16867tc_c21d7447, TypeM>, Enc_be32a5 {
16868let Inst{7-5} = 0b111;
16869let Inst{13-13} = 0b0;
16870let Inst{31-21} = 0b11100101100;
16871let prefersSlot3 = 1;
16872let Defs = [USR_OVF];
16873}
16874def M2_vraddh : HInst<
16875(outs IntRegs:$Rd32),
16876(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16877"$Rd32 = vraddh($Rss32,$Rtt32)",
16878tc_c21d7447, TypeM>, Enc_d2216a {
16879let Inst{7-5} = 0b111;
16880let Inst{13-13} = 0b0;
16881let Inst{31-21} = 0b11101001001;
16882let hasNewValue = 1;
16883let opNewValue = 0;
16884let prefersSlot3 = 1;
16885}
16886def M2_vradduh : HInst<
16887(outs IntRegs:$Rd32),
16888(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16889"$Rd32 = vradduh($Rss32,$Rtt32)",
16890tc_c21d7447, TypeM>, Enc_d2216a {
16891let Inst{7-5} = 0b001;
16892let Inst{13-13} = 0b0;
16893let Inst{31-21} = 0b11101001000;
16894let hasNewValue = 1;
16895let opNewValue = 0;
16896let prefersSlot3 = 1;
16897}
16898def M2_vrcmaci_s0 : HInst<
16899(outs DoubleRegs:$Rxx32),
16900(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16901"$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16902tc_7f8ae742, TypeM>, Enc_88c16c {
16903let Inst{7-5} = 0b000;
16904let Inst{13-13} = 0b0;
16905let Inst{31-21} = 0b11101010000;
16906let prefersSlot3 = 1;
16907let Constraints = "$Rxx32 = $Rxx32in";
16908}
16909def M2_vrcmaci_s0c : HInst<
16910(outs DoubleRegs:$Rxx32),
16911(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16912"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16913tc_7f8ae742, TypeM>, Enc_88c16c {
16914let Inst{7-5} = 0b000;
16915let Inst{13-13} = 0b0;
16916let Inst{31-21} = 0b11101010010;
16917let prefersSlot3 = 1;
16918let Constraints = "$Rxx32 = $Rxx32in";
16919}
16920def M2_vrcmacr_s0 : HInst<
16921(outs DoubleRegs:$Rxx32),
16922(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16923"$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16924tc_7f8ae742, TypeM>, Enc_88c16c {
16925let Inst{7-5} = 0b001;
16926let Inst{13-13} = 0b0;
16927let Inst{31-21} = 0b11101010000;
16928let prefersSlot3 = 1;
16929let Constraints = "$Rxx32 = $Rxx32in";
16930}
16931def M2_vrcmacr_s0c : HInst<
16932(outs DoubleRegs:$Rxx32),
16933(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16934"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16935tc_7f8ae742, TypeM>, Enc_88c16c {
16936let Inst{7-5} = 0b001;
16937let Inst{13-13} = 0b0;
16938let Inst{31-21} = 0b11101010011;
16939let prefersSlot3 = 1;
16940let Constraints = "$Rxx32 = $Rxx32in";
16941}
16942def M2_vrcmpyi_s0 : HInst<
16943(outs DoubleRegs:$Rdd32),
16944(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16945"$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16946tc_c21d7447, TypeM>, Enc_a56825 {
16947let Inst{7-5} = 0b000;
16948let Inst{13-13} = 0b0;
16949let Inst{31-21} = 0b11101000000;
16950let prefersSlot3 = 1;
16951}
16952def M2_vrcmpyi_s0c : HInst<
16953(outs DoubleRegs:$Rdd32),
16954(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16955"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16956tc_c21d7447, TypeM>, Enc_a56825 {
16957let Inst{7-5} = 0b000;
16958let Inst{13-13} = 0b0;
16959let Inst{31-21} = 0b11101000010;
16960let prefersSlot3 = 1;
16961}
16962def M2_vrcmpyr_s0 : HInst<
16963(outs DoubleRegs:$Rdd32),
16964(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16965"$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
16966tc_c21d7447, TypeM>, Enc_a56825 {
16967let Inst{7-5} = 0b001;
16968let Inst{13-13} = 0b0;
16969let Inst{31-21} = 0b11101000000;
16970let prefersSlot3 = 1;
16971}
16972def M2_vrcmpyr_s0c : HInst<
16973(outs DoubleRegs:$Rdd32),
16974(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16975"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
16976tc_c21d7447, TypeM>, Enc_a56825 {
16977let Inst{7-5} = 0b001;
16978let Inst{13-13} = 0b0;
16979let Inst{31-21} = 0b11101000011;
16980let prefersSlot3 = 1;
16981}
16982def M2_vrcmpys_acc_s1 : HInst<
16983(outs DoubleRegs:$Rxx32),
16984(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
16985"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
16986tc_7f8ae742, TypeM> {
16987let isPseudo = 1;
16988let Constraints = "$Rxx32 = $Rxx32in";
16989}
16990def M2_vrcmpys_acc_s1_h : HInst<
16991(outs DoubleRegs:$Rxx32),
16992(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16993"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16994tc_7f8ae742, TypeM>, Enc_88c16c {
16995let Inst{7-5} = 0b100;
16996let Inst{13-13} = 0b0;
16997let Inst{31-21} = 0b11101010101;
16998let prefersSlot3 = 1;
16999let Defs = [USR_OVF];
17000let Constraints = "$Rxx32 = $Rxx32in";
17001}
17002def M2_vrcmpys_acc_s1_l : HInst<
17003(outs DoubleRegs:$Rxx32),
17004(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17005"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17006tc_7f8ae742, TypeM>, Enc_88c16c {
17007let Inst{7-5} = 0b100;
17008let Inst{13-13} = 0b0;
17009let Inst{31-21} = 0b11101010111;
17010let prefersSlot3 = 1;
17011let Defs = [USR_OVF];
17012let Constraints = "$Rxx32 = $Rxx32in";
17013}
17014def M2_vrcmpys_s1 : HInst<
17015(outs DoubleRegs:$Rdd32),
17016(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17017"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
17018tc_c21d7447, TypeM> {
17019let isPseudo = 1;
17020}
17021def M2_vrcmpys_s1_h : HInst<
17022(outs DoubleRegs:$Rdd32),
17023(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17024"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17025tc_c21d7447, TypeM>, Enc_a56825 {
17026let Inst{7-5} = 0b100;
17027let Inst{13-13} = 0b0;
17028let Inst{31-21} = 0b11101000101;
17029let prefersSlot3 = 1;
17030let Defs = [USR_OVF];
17031}
17032def M2_vrcmpys_s1_l : HInst<
17033(outs DoubleRegs:$Rdd32),
17034(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17035"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17036tc_c21d7447, TypeM>, Enc_a56825 {
17037let Inst{7-5} = 0b100;
17038let Inst{13-13} = 0b0;
17039let Inst{31-21} = 0b11101000111;
17040let prefersSlot3 = 1;
17041let Defs = [USR_OVF];
17042}
17043def M2_vrcmpys_s1rp : HInst<
17044(outs IntRegs:$Rd32),
17045(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17046"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
17047tc_c21d7447, TypeM> {
17048let hasNewValue = 1;
17049let opNewValue = 0;
17050let isPseudo = 1;
17051}
17052def M2_vrcmpys_s1rp_h : HInst<
17053(outs IntRegs:$Rd32),
17054(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17055"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
17056tc_c21d7447, TypeM>, Enc_d2216a {
17057let Inst{7-5} = 0b110;
17058let Inst{13-13} = 0b0;
17059let Inst{31-21} = 0b11101001101;
17060let hasNewValue = 1;
17061let opNewValue = 0;
17062let prefersSlot3 = 1;
17063let Defs = [USR_OVF];
17064}
17065def M2_vrcmpys_s1rp_l : HInst<
17066(outs IntRegs:$Rd32),
17067(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17068"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
17069tc_c21d7447, TypeM>, Enc_d2216a {
17070let Inst{7-5} = 0b111;
17071let Inst{13-13} = 0b0;
17072let Inst{31-21} = 0b11101001101;
17073let hasNewValue = 1;
17074let opNewValue = 0;
17075let prefersSlot3 = 1;
17076let Defs = [USR_OVF];
17077}
17078def M2_vrmac_s0 : HInst<
17079(outs DoubleRegs:$Rxx32),
17080(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17081"$Rxx32 += vrmpyh($Rss32,$Rtt32)",
17082tc_7f8ae742, TypeM>, Enc_88c16c {
17083let Inst{7-5} = 0b010;
17084let Inst{13-13} = 0b0;
17085let Inst{31-21} = 0b11101010000;
17086let prefersSlot3 = 1;
17087let Constraints = "$Rxx32 = $Rxx32in";
17088}
17089def M2_vrmpy_s0 : HInst<
17090(outs DoubleRegs:$Rdd32),
17091(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17092"$Rdd32 = vrmpyh($Rss32,$Rtt32)",
17093tc_c21d7447, TypeM>, Enc_a56825 {
17094let Inst{7-5} = 0b010;
17095let Inst{13-13} = 0b0;
17096let Inst{31-21} = 0b11101000000;
17097let prefersSlot3 = 1;
17098}
17099def M2_xor_xacc : HInst<
17100(outs IntRegs:$Rx32),
17101(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17102"$Rx32 ^= xor($Rs32,$Rt32)",
17103tc_a4e22bbd, TypeM>, Enc_2ae154 {
17104let Inst{7-5} = 0b011;
17105let Inst{13-13} = 0b0;
17106let Inst{31-21} = 0b11101111100;
17107let hasNewValue = 1;
17108let opNewValue = 0;
17109let prefersSlot3 = 1;
17110let InputType = "reg";
17111let Constraints = "$Rx32 = $Rx32in";
17112}
17113def M4_and_and : HInst<
17114(outs IntRegs:$Rx32),
17115(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17116"$Rx32 &= and($Rs32,$Rt32)",
17117tc_a4e22bbd, TypeM>, Enc_2ae154 {
17118let Inst{7-5} = 0b000;
17119let Inst{13-13} = 0b0;
17120let Inst{31-21} = 0b11101111010;
17121let hasNewValue = 1;
17122let opNewValue = 0;
17123let prefersSlot3 = 1;
17124let InputType = "reg";
17125let Constraints = "$Rx32 = $Rx32in";
17126}
17127def M4_and_andn : HInst<
17128(outs IntRegs:$Rx32),
17129(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17130"$Rx32 &= and($Rs32,~$Rt32)",
17131tc_a4e22bbd, TypeM>, Enc_2ae154 {
17132let Inst{7-5} = 0b001;
17133let Inst{13-13} = 0b0;
17134let Inst{31-21} = 0b11101111001;
17135let hasNewValue = 1;
17136let opNewValue = 0;
17137let prefersSlot3 = 1;
17138let InputType = "reg";
17139let Constraints = "$Rx32 = $Rx32in";
17140}
17141def M4_and_or : HInst<
17142(outs IntRegs:$Rx32),
17143(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17144"$Rx32 &= or($Rs32,$Rt32)",
17145tc_a4e22bbd, TypeM>, Enc_2ae154 {
17146let Inst{7-5} = 0b001;
17147let Inst{13-13} = 0b0;
17148let Inst{31-21} = 0b11101111010;
17149let hasNewValue = 1;
17150let opNewValue = 0;
17151let prefersSlot3 = 1;
17152let InputType = "reg";
17153let Constraints = "$Rx32 = $Rx32in";
17154}
17155def M4_and_xor : HInst<
17156(outs IntRegs:$Rx32),
17157(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17158"$Rx32 &= xor($Rs32,$Rt32)",
17159tc_a4e22bbd, TypeM>, Enc_2ae154 {
17160let Inst{7-5} = 0b010;
17161let Inst{13-13} = 0b0;
17162let Inst{31-21} = 0b11101111010;
17163let hasNewValue = 1;
17164let opNewValue = 0;
17165let prefersSlot3 = 1;
17166let InputType = "reg";
17167let Constraints = "$Rx32 = $Rx32in";
17168}
17169def M4_cmpyi_wh : HInst<
17170(outs IntRegs:$Rd32),
17171(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17172"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17173tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17174let Inst{7-5} = 0b100;
17175let Inst{13-13} = 0b0;
17176let Inst{31-21} = 0b11000101000;
17177let hasNewValue = 1;
17178let opNewValue = 0;
17179let prefersSlot3 = 1;
17180let Defs = [USR_OVF];
17181}
17182def M4_cmpyi_whc : HInst<
17183(outs IntRegs:$Rd32),
17184(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17185"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17186tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17187let Inst{7-5} = 0b101;
17188let Inst{13-13} = 0b0;
17189let Inst{31-21} = 0b11000101000;
17190let hasNewValue = 1;
17191let opNewValue = 0;
17192let prefersSlot3 = 1;
17193let Defs = [USR_OVF];
17194}
17195def M4_cmpyr_wh : HInst<
17196(outs IntRegs:$Rd32),
17197(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17198"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17199tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17200let Inst{7-5} = 0b110;
17201let Inst{13-13} = 0b0;
17202let Inst{31-21} = 0b11000101000;
17203let hasNewValue = 1;
17204let opNewValue = 0;
17205let prefersSlot3 = 1;
17206let Defs = [USR_OVF];
17207}
17208def M4_cmpyr_whc : HInst<
17209(outs IntRegs:$Rd32),
17210(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17211"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17212tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17213let Inst{7-5} = 0b111;
17214let Inst{13-13} = 0b0;
17215let Inst{31-21} = 0b11000101000;
17216let hasNewValue = 1;
17217let opNewValue = 0;
17218let prefersSlot3 = 1;
17219let Defs = [USR_OVF];
17220}
17221def M4_mac_up_s1_sat : HInst<
17222(outs IntRegs:$Rx32),
17223(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17224"$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17225tc_7f8ae742, TypeM>, Enc_2ae154 {
17226let Inst{7-5} = 0b000;
17227let Inst{13-13} = 0b0;
17228let Inst{31-21} = 0b11101111011;
17229let hasNewValue = 1;
17230let opNewValue = 0;
17231let prefersSlot3 = 1;
17232let Defs = [USR_OVF];
17233let InputType = "reg";
17234let Constraints = "$Rx32 = $Rx32in";
17235}
17236def M4_mpyri_addi : HInst<
17237(outs IntRegs:$Rd32),
17238(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17239"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17240tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel {
17241let Inst{31-24} = 0b11011000;
17242let hasNewValue = 1;
17243let opNewValue = 0;
17244let prefersSlot3 = 1;
17245let CextOpcode = "M4_mpyri_addr";
17246let isExtendable = 1;
17247let opExtendable = 1;
17248let isExtentSigned = 0;
17249let opExtentBits = 6;
17250let opExtentAlign = 0;
17251}
17252def M4_mpyri_addr : HInst<
17253(outs IntRegs:$Rd32),
17254(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17255"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17256tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel {
17257let Inst{31-23} = 0b110111111;
17258let hasNewValue = 1;
17259let opNewValue = 0;
17260let prefersSlot3 = 1;
17261let CextOpcode = "M4_mpyri_addr";
17262let InputType = "imm";
17263let isExtendable = 1;
17264let opExtendable = 3;
17265let isExtentSigned = 0;
17266let opExtentBits = 6;
17267let opExtentAlign = 0;
17268}
17269def M4_mpyri_addr_u2 : HInst<
17270(outs IntRegs:$Rd32),
17271(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17272"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17273tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> {
17274let Inst{31-23} = 0b110111110;
17275let hasNewValue = 1;
17276let opNewValue = 0;
17277let prefersSlot3 = 1;
17278}
17279def M4_mpyrr_addi : HInst<
17280(outs IntRegs:$Rd32),
17281(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17282"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17283tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel {
17284let Inst{31-23} = 0b110101110;
17285let hasNewValue = 1;
17286let opNewValue = 0;
17287let prefersSlot3 = 1;
17288let CextOpcode = "M4_mpyrr_addr";
17289let InputType = "imm";
17290let isExtendable = 1;
17291let opExtendable = 1;
17292let isExtentSigned = 0;
17293let opExtentBits = 6;
17294let opExtentAlign = 0;
17295}
17296def M4_mpyrr_addr : HInst<
17297(outs IntRegs:$Ry32),
17298(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17299"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17300tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel {
17301let Inst{7-5} = 0b000;
17302let Inst{13-13} = 0b0;
17303let Inst{31-21} = 0b11100011000;
17304let hasNewValue = 1;
17305let opNewValue = 0;
17306let prefersSlot3 = 1;
17307let CextOpcode = "M4_mpyrr_addr";
17308let InputType = "reg";
17309let Constraints = "$Ry32 = $Ry32in";
17310}
17311def M4_nac_up_s1_sat : HInst<
17312(outs IntRegs:$Rx32),
17313(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17314"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17315tc_7f8ae742, TypeM>, Enc_2ae154 {
17316let Inst{7-5} = 0b001;
17317let Inst{13-13} = 0b0;
17318let Inst{31-21} = 0b11101111011;
17319let hasNewValue = 1;
17320let opNewValue = 0;
17321let prefersSlot3 = 1;
17322let Defs = [USR_OVF];
17323let InputType = "reg";
17324let Constraints = "$Rx32 = $Rx32in";
17325}
17326def M4_or_and : HInst<
17327(outs IntRegs:$Rx32),
17328(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17329"$Rx32 |= and($Rs32,$Rt32)",
17330tc_a4e22bbd, TypeM>, Enc_2ae154 {
17331let Inst{7-5} = 0b011;
17332let Inst{13-13} = 0b0;
17333let Inst{31-21} = 0b11101111010;
17334let hasNewValue = 1;
17335let opNewValue = 0;
17336let prefersSlot3 = 1;
17337let InputType = "reg";
17338let Constraints = "$Rx32 = $Rx32in";
17339}
17340def M4_or_andn : HInst<
17341(outs IntRegs:$Rx32),
17342(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17343"$Rx32 |= and($Rs32,~$Rt32)",
17344tc_a4e22bbd, TypeM>, Enc_2ae154 {
17345let Inst{7-5} = 0b000;
17346let Inst{13-13} = 0b0;
17347let Inst{31-21} = 0b11101111001;
17348let hasNewValue = 1;
17349let opNewValue = 0;
17350let prefersSlot3 = 1;
17351let InputType = "reg";
17352let Constraints = "$Rx32 = $Rx32in";
17353}
17354def M4_or_or : HInst<
17355(outs IntRegs:$Rx32),
17356(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17357"$Rx32 |= or($Rs32,$Rt32)",
17358tc_a4e22bbd, TypeM>, Enc_2ae154 {
17359let Inst{7-5} = 0b000;
17360let Inst{13-13} = 0b0;
17361let Inst{31-21} = 0b11101111110;
17362let hasNewValue = 1;
17363let opNewValue = 0;
17364let prefersSlot3 = 1;
17365let InputType = "reg";
17366let Constraints = "$Rx32 = $Rx32in";
17367}
17368def M4_or_xor : HInst<
17369(outs IntRegs:$Rx32),
17370(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17371"$Rx32 |= xor($Rs32,$Rt32)",
17372tc_a4e22bbd, TypeM>, Enc_2ae154 {
17373let Inst{7-5} = 0b001;
17374let Inst{13-13} = 0b0;
17375let Inst{31-21} = 0b11101111110;
17376let hasNewValue = 1;
17377let opNewValue = 0;
17378let prefersSlot3 = 1;
17379let InputType = "reg";
17380let Constraints = "$Rx32 = $Rx32in";
17381}
17382def M4_pmpyw : HInst<
17383(outs DoubleRegs:$Rdd32),
17384(ins IntRegs:$Rs32, IntRegs:$Rt32),
17385"$Rdd32 = pmpyw($Rs32,$Rt32)",
17386tc_c21d7447, TypeM>, Enc_be32a5 {
17387let Inst{7-5} = 0b111;
17388let Inst{13-13} = 0b0;
17389let Inst{31-21} = 0b11100101010;
17390let prefersSlot3 = 1;
17391}
17392def M4_pmpyw_acc : HInst<
17393(outs DoubleRegs:$Rxx32),
17394(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17395"$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17396tc_7f8ae742, TypeM>, Enc_61f0b0 {
17397let Inst{7-5} = 0b111;
17398let Inst{13-13} = 0b0;
17399let Inst{31-21} = 0b11100111001;
17400let prefersSlot3 = 1;
17401let Constraints = "$Rxx32 = $Rxx32in";
17402}
17403def M4_vpmpyh : HInst<
17404(outs DoubleRegs:$Rdd32),
17405(ins IntRegs:$Rs32, IntRegs:$Rt32),
17406"$Rdd32 = vpmpyh($Rs32,$Rt32)",
17407tc_c21d7447, TypeM>, Enc_be32a5 {
17408let Inst{7-5} = 0b111;
17409let Inst{13-13} = 0b0;
17410let Inst{31-21} = 0b11100101110;
17411let prefersSlot3 = 1;
17412}
17413def M4_vpmpyh_acc : HInst<
17414(outs DoubleRegs:$Rxx32),
17415(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17416"$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17417tc_7f8ae742, TypeM>, Enc_61f0b0 {
17418let Inst{7-5} = 0b111;
17419let Inst{13-13} = 0b0;
17420let Inst{31-21} = 0b11100111101;
17421let prefersSlot3 = 1;
17422let Constraints = "$Rxx32 = $Rxx32in";
17423}
17424def M4_vrmpyeh_acc_s0 : HInst<
17425(outs DoubleRegs:$Rxx32),
17426(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17427"$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17428tc_7f8ae742, TypeM>, Enc_88c16c {
17429let Inst{7-5} = 0b110;
17430let Inst{13-13} = 0b0;
17431let Inst{31-21} = 0b11101010001;
17432let prefersSlot3 = 1;
17433let Constraints = "$Rxx32 = $Rxx32in";
17434}
17435def M4_vrmpyeh_acc_s1 : HInst<
17436(outs DoubleRegs:$Rxx32),
17437(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17438"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17439tc_7f8ae742, TypeM>, Enc_88c16c {
17440let Inst{7-5} = 0b110;
17441let Inst{13-13} = 0b0;
17442let Inst{31-21} = 0b11101010101;
17443let prefersSlot3 = 1;
17444let Constraints = "$Rxx32 = $Rxx32in";
17445}
17446def M4_vrmpyeh_s0 : HInst<
17447(outs DoubleRegs:$Rdd32),
17448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17449"$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17450tc_c21d7447, TypeM>, Enc_a56825 {
17451let Inst{7-5} = 0b100;
17452let Inst{13-13} = 0b0;
17453let Inst{31-21} = 0b11101000010;
17454let prefersSlot3 = 1;
17455}
17456def M4_vrmpyeh_s1 : HInst<
17457(outs DoubleRegs:$Rdd32),
17458(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17459"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17460tc_c21d7447, TypeM>, Enc_a56825 {
17461let Inst{7-5} = 0b100;
17462let Inst{13-13} = 0b0;
17463let Inst{31-21} = 0b11101000110;
17464let prefersSlot3 = 1;
17465}
17466def M4_vrmpyoh_acc_s0 : HInst<
17467(outs DoubleRegs:$Rxx32),
17468(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17469"$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17470tc_7f8ae742, TypeM>, Enc_88c16c {
17471let Inst{7-5} = 0b110;
17472let Inst{13-13} = 0b0;
17473let Inst{31-21} = 0b11101010011;
17474let prefersSlot3 = 1;
17475let Constraints = "$Rxx32 = $Rxx32in";
17476}
17477def M4_vrmpyoh_acc_s1 : HInst<
17478(outs DoubleRegs:$Rxx32),
17479(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17480"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17481tc_7f8ae742, TypeM>, Enc_88c16c {
17482let Inst{7-5} = 0b110;
17483let Inst{13-13} = 0b0;
17484let Inst{31-21} = 0b11101010111;
17485let prefersSlot3 = 1;
17486let Constraints = "$Rxx32 = $Rxx32in";
17487}
17488def M4_vrmpyoh_s0 : HInst<
17489(outs DoubleRegs:$Rdd32),
17490(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17491"$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17492tc_c21d7447, TypeM>, Enc_a56825 {
17493let Inst{7-5} = 0b010;
17494let Inst{13-13} = 0b0;
17495let Inst{31-21} = 0b11101000001;
17496let prefersSlot3 = 1;
17497}
17498def M4_vrmpyoh_s1 : HInst<
17499(outs DoubleRegs:$Rdd32),
17500(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17501"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17502tc_c21d7447, TypeM>, Enc_a56825 {
17503let Inst{7-5} = 0b010;
17504let Inst{13-13} = 0b0;
17505let Inst{31-21} = 0b11101000101;
17506let prefersSlot3 = 1;
17507}
17508def M4_xor_and : HInst<
17509(outs IntRegs:$Rx32),
17510(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17511"$Rx32 ^= and($Rs32,$Rt32)",
17512tc_a4e22bbd, TypeM>, Enc_2ae154 {
17513let Inst{7-5} = 0b010;
17514let Inst{13-13} = 0b0;
17515let Inst{31-21} = 0b11101111110;
17516let hasNewValue = 1;
17517let opNewValue = 0;
17518let prefersSlot3 = 1;
17519let InputType = "reg";
17520let Constraints = "$Rx32 = $Rx32in";
17521}
17522def M4_xor_andn : HInst<
17523(outs IntRegs:$Rx32),
17524(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17525"$Rx32 ^= and($Rs32,~$Rt32)",
17526tc_a4e22bbd, TypeM>, Enc_2ae154 {
17527let Inst{7-5} = 0b010;
17528let Inst{13-13} = 0b0;
17529let Inst{31-21} = 0b11101111001;
17530let hasNewValue = 1;
17531let opNewValue = 0;
17532let prefersSlot3 = 1;
17533let InputType = "reg";
17534let Constraints = "$Rx32 = $Rx32in";
17535}
17536def M4_xor_or : HInst<
17537(outs IntRegs:$Rx32),
17538(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17539"$Rx32 ^= or($Rs32,$Rt32)",
17540tc_a4e22bbd, TypeM>, Enc_2ae154 {
17541let Inst{7-5} = 0b011;
17542let Inst{13-13} = 0b0;
17543let Inst{31-21} = 0b11101111110;
17544let hasNewValue = 1;
17545let opNewValue = 0;
17546let prefersSlot3 = 1;
17547let InputType = "reg";
17548let Constraints = "$Rx32 = $Rx32in";
17549}
17550def M4_xor_xacc : HInst<
17551(outs DoubleRegs:$Rxx32),
17552(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17553"$Rxx32 ^= xor($Rss32,$Rtt32)",
17554tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
17555let Inst{7-5} = 0b000;
17556let Inst{13-13} = 0b0;
17557let Inst{31-21} = 0b11001010100;
17558let prefersSlot3 = 1;
17559let Constraints = "$Rxx32 = $Rxx32in";
17560}
17561def M5_vdmacbsu : HInst<
17562(outs DoubleRegs:$Rxx32),
17563(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17564"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17565tc_7f8ae742, TypeM>, Enc_88c16c {
17566let Inst{7-5} = 0b001;
17567let Inst{13-13} = 0b0;
17568let Inst{31-21} = 0b11101010001;
17569let prefersSlot3 = 1;
17570let Defs = [USR_OVF];
17571let Constraints = "$Rxx32 = $Rxx32in";
17572}
17573def M5_vdmpybsu : HInst<
17574(outs DoubleRegs:$Rdd32),
17575(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17576"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17577tc_c21d7447, TypeM>, Enc_a56825 {
17578let Inst{7-5} = 0b001;
17579let Inst{13-13} = 0b0;
17580let Inst{31-21} = 0b11101000101;
17581let prefersSlot3 = 1;
17582let Defs = [USR_OVF];
17583}
17584def M5_vmacbsu : HInst<
17585(outs DoubleRegs:$Rxx32),
17586(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17587"$Rxx32 += vmpybsu($Rs32,$Rt32)",
17588tc_7f8ae742, TypeM>, Enc_61f0b0 {
17589let Inst{7-5} = 0b001;
17590let Inst{13-13} = 0b0;
17591let Inst{31-21} = 0b11100111110;
17592let prefersSlot3 = 1;
17593let Constraints = "$Rxx32 = $Rxx32in";
17594}
17595def M5_vmacbuu : HInst<
17596(outs DoubleRegs:$Rxx32),
17597(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17598"$Rxx32 += vmpybu($Rs32,$Rt32)",
17599tc_7f8ae742, TypeM>, Enc_61f0b0 {
17600let Inst{7-5} = 0b001;
17601let Inst{13-13} = 0b0;
17602let Inst{31-21} = 0b11100111100;
17603let prefersSlot3 = 1;
17604let Constraints = "$Rxx32 = $Rxx32in";
17605}
17606def M5_vmpybsu : HInst<
17607(outs DoubleRegs:$Rdd32),
17608(ins IntRegs:$Rs32, IntRegs:$Rt32),
17609"$Rdd32 = vmpybsu($Rs32,$Rt32)",
17610tc_c21d7447, TypeM>, Enc_be32a5 {
17611let Inst{7-5} = 0b001;
17612let Inst{13-13} = 0b0;
17613let Inst{31-21} = 0b11100101010;
17614let prefersSlot3 = 1;
17615}
17616def M5_vmpybuu : HInst<
17617(outs DoubleRegs:$Rdd32),
17618(ins IntRegs:$Rs32, IntRegs:$Rt32),
17619"$Rdd32 = vmpybu($Rs32,$Rt32)",
17620tc_c21d7447, TypeM>, Enc_be32a5 {
17621let Inst{7-5} = 0b001;
17622let Inst{13-13} = 0b0;
17623let Inst{31-21} = 0b11100101100;
17624let prefersSlot3 = 1;
17625}
17626def M5_vrmacbsu : HInst<
17627(outs DoubleRegs:$Rxx32),
17628(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17629"$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17630tc_7f8ae742, TypeM>, Enc_88c16c {
17631let Inst{7-5} = 0b001;
17632let Inst{13-13} = 0b0;
17633let Inst{31-21} = 0b11101010110;
17634let prefersSlot3 = 1;
17635let Constraints = "$Rxx32 = $Rxx32in";
17636}
17637def M5_vrmacbuu : HInst<
17638(outs DoubleRegs:$Rxx32),
17639(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17640"$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17641tc_7f8ae742, TypeM>, Enc_88c16c {
17642let Inst{7-5} = 0b001;
17643let Inst{13-13} = 0b0;
17644let Inst{31-21} = 0b11101010100;
17645let prefersSlot3 = 1;
17646let Constraints = "$Rxx32 = $Rxx32in";
17647}
17648def M5_vrmpybsu : HInst<
17649(outs DoubleRegs:$Rdd32),
17650(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17651"$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17652tc_c21d7447, TypeM>, Enc_a56825 {
17653let Inst{7-5} = 0b001;
17654let Inst{13-13} = 0b0;
17655let Inst{31-21} = 0b11101000110;
17656let prefersSlot3 = 1;
17657}
17658def M5_vrmpybuu : HInst<
17659(outs DoubleRegs:$Rdd32),
17660(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17661"$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17662tc_c21d7447, TypeM>, Enc_a56825 {
17663let Inst{7-5} = 0b001;
17664let Inst{13-13} = 0b0;
17665let Inst{31-21} = 0b11101000100;
17666let prefersSlot3 = 1;
17667}
17668def M6_vabsdiffb : HInst<
17669(outs DoubleRegs:$Rdd32),
17670(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17671"$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17672tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17673let Inst{7-5} = 0b000;
17674let Inst{13-13} = 0b0;
17675let Inst{31-21} = 0b11101000111;
17676let prefersSlot3 = 1;
17677}
17678def M6_vabsdiffub : HInst<
17679(outs DoubleRegs:$Rdd32),
17680(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17681"$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17682tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17683let Inst{7-5} = 0b000;
17684let Inst{13-13} = 0b0;
17685let Inst{31-21} = 0b11101000101;
17686let prefersSlot3 = 1;
17687}
17688def M7_dcmpyiw : HInst<
17689(outs DoubleRegs:$Rdd32),
17690(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17691"$Rdd32 = cmpyiw($Rss32,$Rtt32)",
17692tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17693let Inst{7-5} = 0b010;
17694let Inst{13-13} = 0b0;
17695let Inst{31-21} = 0b11101000011;
17696let prefersSlot3 = 1;
17697}
17698def M7_dcmpyiw_acc : HInst<
17699(outs DoubleRegs:$Rxx32),
17700(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17701"$Rxx32 += cmpyiw($Rss32,$Rtt32)",
17702tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17703let Inst{7-5} = 0b010;
17704let Inst{13-13} = 0b0;
17705let Inst{31-21} = 0b11101010011;
17706let prefersSlot3 = 1;
17707let Constraints = "$Rxx32 = $Rxx32in";
17708}
17709def M7_dcmpyiwc : HInst<
17710(outs DoubleRegs:$Rdd32),
17711(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17712"$Rdd32 = cmpyiw($Rss32,$Rtt32*)",
17713tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17714let Inst{7-5} = 0b010;
17715let Inst{13-13} = 0b0;
17716let Inst{31-21} = 0b11101000111;
17717let prefersSlot3 = 1;
17718}
17719def M7_dcmpyiwc_acc : HInst<
17720(outs DoubleRegs:$Rxx32),
17721(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17722"$Rxx32 += cmpyiw($Rss32,$Rtt32*)",
17723tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17724let Inst{7-5} = 0b110;
17725let Inst{13-13} = 0b0;
17726let Inst{31-21} = 0b11101010010;
17727let prefersSlot3 = 1;
17728let Constraints = "$Rxx32 = $Rxx32in";
17729}
17730def M7_dcmpyrw : HInst<
17731(outs DoubleRegs:$Rdd32),
17732(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17733"$Rdd32 = cmpyrw($Rss32,$Rtt32)",
17734tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17735let Inst{7-5} = 0b010;
17736let Inst{13-13} = 0b0;
17737let Inst{31-21} = 0b11101000100;
17738let prefersSlot3 = 1;
17739}
17740def M7_dcmpyrw_acc : HInst<
17741(outs DoubleRegs:$Rxx32),
17742(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17743"$Rxx32 += cmpyrw($Rss32,$Rtt32)",
17744tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17745let Inst{7-5} = 0b010;
17746let Inst{13-13} = 0b0;
17747let Inst{31-21} = 0b11101010100;
17748let prefersSlot3 = 1;
17749let Constraints = "$Rxx32 = $Rxx32in";
17750}
17751def M7_dcmpyrwc : HInst<
17752(outs DoubleRegs:$Rdd32),
17753(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17754"$Rdd32 = cmpyrw($Rss32,$Rtt32*)",
17755tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17756let Inst{7-5} = 0b010;
17757let Inst{13-13} = 0b0;
17758let Inst{31-21} = 0b11101000110;
17759let prefersSlot3 = 1;
17760}
17761def M7_dcmpyrwc_acc : HInst<
17762(outs DoubleRegs:$Rxx32),
17763(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17764"$Rxx32 += cmpyrw($Rss32,$Rtt32*)",
17765tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17766let Inst{7-5} = 0b010;
17767let Inst{13-13} = 0b0;
17768let Inst{31-21} = 0b11101010110;
17769let prefersSlot3 = 1;
17770let Constraints = "$Rxx32 = $Rxx32in";
17771}
17772def M7_vdmpy : HInst<
17773(outs DoubleRegs:$Rdd32),
17774(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17775"$Rdd32 = vdmpyw($Rss32,$Rtt32)",
17776tc_5a4b5e58, TypeM>, Requires<[HasV67]> {
17777let isPseudo = 1;
17778let isCodeGenOnly = 1;
17779}
17780def M7_vdmpy_acc : HInst<
17781(outs DoubleRegs:$Rxx32),
17782(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17783"$Rxx32 += vdmpyw($Rss32,$Rtt32)",
17784tc_197dce51, TypeM>, Requires<[HasV67]> {
17785let isPseudo = 1;
17786let isCodeGenOnly = 1;
17787let Constraints = "$Rxx32 = $Rxx32in";
17788}
17789def M7_wcmpyiw : HInst<
17790(outs IntRegs:$Rd32),
17791(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17792"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat",
17793tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17794let Inst{7-5} = 0b000;
17795let Inst{13-13} = 0b0;
17796let Inst{31-21} = 0b11101001001;
17797let hasNewValue = 1;
17798let opNewValue = 0;
17799let prefersSlot3 = 1;
17800let Defs = [USR_OVF];
17801}
17802def M7_wcmpyiw_rnd : HInst<
17803(outs IntRegs:$Rd32),
17804(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17805"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat",
17806tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17807let Inst{7-5} = 0b000;
17808let Inst{13-13} = 0b0;
17809let Inst{31-21} = 0b11101001101;
17810let hasNewValue = 1;
17811let opNewValue = 0;
17812let prefersSlot3 = 1;
17813let Defs = [USR_OVF];
17814}
17815def M7_wcmpyiwc : HInst<
17816(outs IntRegs:$Rd32),
17817(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17818"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat",
17819tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17820let Inst{7-5} = 0b100;
17821let Inst{13-13} = 0b0;
17822let Inst{31-21} = 0b11101001000;
17823let hasNewValue = 1;
17824let opNewValue = 0;
17825let prefersSlot3 = 1;
17826let Defs = [USR_OVF];
17827}
17828def M7_wcmpyiwc_rnd : HInst<
17829(outs IntRegs:$Rd32),
17830(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17831"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat",
17832tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17833let Inst{7-5} = 0b100;
17834let Inst{13-13} = 0b0;
17835let Inst{31-21} = 0b11101001100;
17836let hasNewValue = 1;
17837let opNewValue = 0;
17838let prefersSlot3 = 1;
17839let Defs = [USR_OVF];
17840}
17841def M7_wcmpyrw : HInst<
17842(outs IntRegs:$Rd32),
17843(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17844"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat",
17845tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17846let Inst{7-5} = 0b000;
17847let Inst{13-13} = 0b0;
17848let Inst{31-21} = 0b11101001010;
17849let hasNewValue = 1;
17850let opNewValue = 0;
17851let prefersSlot3 = 1;
17852let Defs = [USR_OVF];
17853}
17854def M7_wcmpyrw_rnd : HInst<
17855(outs IntRegs:$Rd32),
17856(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17857"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat",
17858tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17859let Inst{7-5} = 0b000;
17860let Inst{13-13} = 0b0;
17861let Inst{31-21} = 0b11101001110;
17862let hasNewValue = 1;
17863let opNewValue = 0;
17864let prefersSlot3 = 1;
17865let Defs = [USR_OVF];
17866}
17867def M7_wcmpyrwc : HInst<
17868(outs IntRegs:$Rd32),
17869(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17870"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat",
17871tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17872let Inst{7-5} = 0b000;
17873let Inst{13-13} = 0b0;
17874let Inst{31-21} = 0b11101001011;
17875let hasNewValue = 1;
17876let opNewValue = 0;
17877let prefersSlot3 = 1;
17878let Defs = [USR_OVF];
17879}
17880def M7_wcmpyrwc_rnd : HInst<
17881(outs IntRegs:$Rd32),
17882(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17883"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat",
17884tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17885let Inst{7-5} = 0b000;
17886let Inst{13-13} = 0b0;
17887let Inst{31-21} = 0b11101001111;
17888let hasNewValue = 1;
17889let opNewValue = 0;
17890let prefersSlot3 = 1;
17891let Defs = [USR_OVF];
17892}
17893def PS_loadrbabs : HInst<
17894(outs IntRegs:$Rd32),
17895(ins u32_0Imm:$Ii),
17896"$Rd32 = memb(#$Ii)",
17897tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17898let Inst{24-21} = 0b1000;
17899let Inst{31-27} = 0b01001;
17900let hasNewValue = 1;
17901let opNewValue = 0;
17902let addrMode = Absolute;
17903let accessSize = ByteAccess;
17904let mayLoad = 1;
17905let isExtended = 1;
17906let BaseOpcode = "L4_loadrb_abs";
17907let CextOpcode = "L2_loadrb";
17908let isPredicable = 1;
17909let DecoderNamespace = "MustExtend";
17910let isExtended = 1;
17911let opExtendable = 1;
17912let isExtentSigned = 0;
17913let opExtentBits = 16;
17914let opExtentAlign = 0;
17915}
17916def PS_loadrdabs : HInst<
17917(outs DoubleRegs:$Rdd32),
17918(ins u29_3Imm:$Ii),
17919"$Rdd32 = memd(#$Ii)",
17920tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
17921let Inst{24-21} = 0b1110;
17922let Inst{31-27} = 0b01001;
17923let addrMode = Absolute;
17924let accessSize = DoubleWordAccess;
17925let mayLoad = 1;
17926let isExtended = 1;
17927let BaseOpcode = "L4_loadrd_abs";
17928let CextOpcode = "L2_loadrd";
17929let isPredicable = 1;
17930let DecoderNamespace = "MustExtend";
17931let isExtended = 1;
17932let opExtendable = 1;
17933let isExtentSigned = 0;
17934let opExtentBits = 19;
17935let opExtentAlign = 3;
17936}
17937def PS_loadrhabs : HInst<
17938(outs IntRegs:$Rd32),
17939(ins u31_1Imm:$Ii),
17940"$Rd32 = memh(#$Ii)",
17941tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17942let Inst{24-21} = 0b1010;
17943let Inst{31-27} = 0b01001;
17944let hasNewValue = 1;
17945let opNewValue = 0;
17946let addrMode = Absolute;
17947let accessSize = HalfWordAccess;
17948let mayLoad = 1;
17949let isExtended = 1;
17950let BaseOpcode = "L4_loadrh_abs";
17951let CextOpcode = "L2_loadrh";
17952let isPredicable = 1;
17953let DecoderNamespace = "MustExtend";
17954let isExtended = 1;
17955let opExtendable = 1;
17956let isExtentSigned = 0;
17957let opExtentBits = 17;
17958let opExtentAlign = 1;
17959}
17960def PS_loadriabs : HInst<
17961(outs IntRegs:$Rd32),
17962(ins u30_2Imm:$Ii),
17963"$Rd32 = memw(#$Ii)",
17964tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17965let Inst{24-21} = 0b1100;
17966let Inst{31-27} = 0b01001;
17967let hasNewValue = 1;
17968let opNewValue = 0;
17969let addrMode = Absolute;
17970let accessSize = WordAccess;
17971let mayLoad = 1;
17972let isExtended = 1;
17973let BaseOpcode = "L4_loadri_abs";
17974let CextOpcode = "L2_loadri";
17975let isPredicable = 1;
17976let DecoderNamespace = "MustExtend";
17977let isExtended = 1;
17978let opExtendable = 1;
17979let isExtentSigned = 0;
17980let opExtentBits = 18;
17981let opExtentAlign = 2;
17982}
17983def PS_loadrubabs : HInst<
17984(outs IntRegs:$Rd32),
17985(ins u32_0Imm:$Ii),
17986"$Rd32 = memub(#$Ii)",
17987tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17988let Inst{24-21} = 0b1001;
17989let Inst{31-27} = 0b01001;
17990let hasNewValue = 1;
17991let opNewValue = 0;
17992let addrMode = Absolute;
17993let accessSize = ByteAccess;
17994let mayLoad = 1;
17995let isExtended = 1;
17996let BaseOpcode = "L4_loadrub_abs";
17997let CextOpcode = "L2_loadrub";
17998let isPredicable = 1;
17999let DecoderNamespace = "MustExtend";
18000let isExtended = 1;
18001let opExtendable = 1;
18002let isExtentSigned = 0;
18003let opExtentBits = 16;
18004let opExtentAlign = 0;
18005}
18006def PS_loadruhabs : HInst<
18007(outs IntRegs:$Rd32),
18008(ins u31_1Imm:$Ii),
18009"$Rd32 = memuh(#$Ii)",
18010tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
18011let Inst{24-21} = 0b1011;
18012let Inst{31-27} = 0b01001;
18013let hasNewValue = 1;
18014let opNewValue = 0;
18015let addrMode = Absolute;
18016let accessSize = HalfWordAccess;
18017let mayLoad = 1;
18018let isExtended = 1;
18019let BaseOpcode = "L4_loadruh_abs";
18020let CextOpcode = "L2_loadruh";
18021let isPredicable = 1;
18022let DecoderNamespace = "MustExtend";
18023let isExtended = 1;
18024let opExtendable = 1;
18025let isExtentSigned = 0;
18026let opExtentBits = 17;
18027let opExtentAlign = 1;
18028}
18029def PS_storerbabs : HInst<
18030(outs),
18031(ins u32_0Imm:$Ii, IntRegs:$Rt32),
18032"memb(#$Ii) = $Rt32",
18033tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
18034let Inst{24-21} = 0b0000;
18035let Inst{31-27} = 0b01001;
18036let addrMode = Absolute;
18037let accessSize = ByteAccess;
18038let isExtended = 1;
18039let mayStore = 1;
18040let BaseOpcode = "S2_storerbabs";
18041let CextOpcode = "S2_storerb";
18042let isNVStorable = 1;
18043let isPredicable = 1;
18044let DecoderNamespace = "MustExtend";
18045let isExtended = 1;
18046let opExtendable = 0;
18047let isExtentSigned = 0;
18048let opExtentBits = 16;
18049let opExtentAlign = 0;
18050}
18051def PS_storerbnewabs : HInst<
18052(outs),
18053(ins u32_0Imm:$Ii, IntRegs:$Nt8),
18054"memb(#$Ii) = $Nt8.new",
18055tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
18056let Inst{12-11} = 0b00;
18057let Inst{24-21} = 0b0101;
18058let Inst{31-27} = 0b01001;
18059let addrMode = Absolute;
18060let accessSize = ByteAccess;
18061let isNVStore = 1;
18062let isNewValue = 1;
18063let isExtended = 1;
18064let isRestrictNoSlot1Store = 1;
18065let mayStore = 1;
18066let BaseOpcode = "S2_storerbabs";
18067let CextOpcode = "S2_storerb";
18068let isPredicable = 1;
18069let DecoderNamespace = "MustExtend";
18070let isExtended = 1;
18071let opExtendable = 0;
18072let isExtentSigned = 0;
18073let opExtentBits = 16;
18074let opExtentAlign = 0;
18075let opNewValue = 1;
18076}
18077def PS_storerdabs : HInst<
18078(outs),
18079(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
18080"memd(#$Ii) = $Rtt32",
18081tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
18082let Inst{24-21} = 0b0110;
18083let Inst{31-27} = 0b01001;
18084let addrMode = Absolute;
18085let accessSize = DoubleWordAccess;
18086let isExtended = 1;
18087let mayStore = 1;
18088let BaseOpcode = "S2_storerdabs";
18089let CextOpcode = "S2_storerd";
18090let isPredicable = 1;
18091let DecoderNamespace = "MustExtend";
18092let isExtended = 1;
18093let opExtendable = 0;
18094let isExtentSigned = 0;
18095let opExtentBits = 19;
18096let opExtentAlign = 3;
18097}
18098def PS_storerfabs : HInst<
18099(outs),
18100(ins u31_1Imm:$Ii, IntRegs:$Rt32),
18101"memh(#$Ii) = $Rt32.h",
18102tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18103let Inst{24-21} = 0b0011;
18104let Inst{31-27} = 0b01001;
18105let addrMode = Absolute;
18106let accessSize = HalfWordAccess;
18107let isExtended = 1;
18108let mayStore = 1;
18109let BaseOpcode = "S2_storerfabs";
18110let CextOpcode = "S2_storerf";
18111let isPredicable = 1;
18112let DecoderNamespace = "MustExtend";
18113let isExtended = 1;
18114let opExtendable = 0;
18115let isExtentSigned = 0;
18116let opExtentBits = 17;
18117let opExtentAlign = 1;
18118}
18119def PS_storerhabs : HInst<
18120(outs),
18121(ins u31_1Imm:$Ii, IntRegs:$Rt32),
18122"memh(#$Ii) = $Rt32",
18123tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18124let Inst{24-21} = 0b0010;
18125let Inst{31-27} = 0b01001;
18126let addrMode = Absolute;
18127let accessSize = HalfWordAccess;
18128let isExtended = 1;
18129let mayStore = 1;
18130let BaseOpcode = "S2_storerhabs";
18131let CextOpcode = "S2_storerh";
18132let isNVStorable = 1;
18133let isPredicable = 1;
18134let DecoderNamespace = "MustExtend";
18135let isExtended = 1;
18136let opExtendable = 0;
18137let isExtentSigned = 0;
18138let opExtentBits = 17;
18139let opExtentAlign = 1;
18140}
18141def PS_storerhnewabs : HInst<
18142(outs),
18143(ins u31_1Imm:$Ii, IntRegs:$Nt8),
18144"memh(#$Ii) = $Nt8.new",
18145tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
18146let Inst{12-11} = 0b01;
18147let Inst{24-21} = 0b0101;
18148let Inst{31-27} = 0b01001;
18149let addrMode = Absolute;
18150let accessSize = HalfWordAccess;
18151let isNVStore = 1;
18152let isNewValue = 1;
18153let isExtended = 1;
18154let isRestrictNoSlot1Store = 1;
18155let mayStore = 1;
18156let BaseOpcode = "S2_storerhabs";
18157let CextOpcode = "S2_storerh";
18158let isPredicable = 1;
18159let DecoderNamespace = "MustExtend";
18160let isExtended = 1;
18161let opExtendable = 0;
18162let isExtentSigned = 0;
18163let opExtentBits = 17;
18164let opExtentAlign = 1;
18165let opNewValue = 1;
18166}
18167def PS_storeriabs : HInst<
18168(outs),
18169(ins u30_2Imm:$Ii, IntRegs:$Rt32),
18170"memw(#$Ii) = $Rt32",
18171tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
18172let Inst{24-21} = 0b0100;
18173let Inst{31-27} = 0b01001;
18174let addrMode = Absolute;
18175let accessSize = WordAccess;
18176let isExtended = 1;
18177let mayStore = 1;
18178let BaseOpcode = "S2_storeriabs";
18179let CextOpcode = "S2_storeri";
18180let isNVStorable = 1;
18181let isPredicable = 1;
18182let DecoderNamespace = "MustExtend";
18183let isExtended = 1;
18184let opExtendable = 0;
18185let isExtentSigned = 0;
18186let opExtentBits = 18;
18187let opExtentAlign = 2;
18188}
18189def PS_storerinewabs : HInst<
18190(outs),
18191(ins u30_2Imm:$Ii, IntRegs:$Nt8),
18192"memw(#$Ii) = $Nt8.new",
18193tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
18194let Inst{12-11} = 0b10;
18195let Inst{24-21} = 0b0101;
18196let Inst{31-27} = 0b01001;
18197let addrMode = Absolute;
18198let accessSize = WordAccess;
18199let isNVStore = 1;
18200let isNewValue = 1;
18201let isExtended = 1;
18202let isRestrictNoSlot1Store = 1;
18203let mayStore = 1;
18204let BaseOpcode = "S2_storeriabs";
18205let CextOpcode = "S2_storeri";
18206let isPredicable = 1;
18207let DecoderNamespace = "MustExtend";
18208let isExtended = 1;
18209let opExtendable = 0;
18210let isExtentSigned = 0;
18211let opExtentBits = 18;
18212let opExtentAlign = 2;
18213let opNewValue = 1;
18214}
18215def R6_release_at_vi : HInst<
18216(outs),
18217(ins IntRegs:$Rs32),
18218"release($Rs32):at",
18219tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18220let Inst{7-2} = 0b000011;
18221let Inst{13-13} = 0b0;
18222let Inst{31-21} = 0b10100000111;
18223let isSolo = 1;
18224let mayStore = 1;
18225}
18226def R6_release_st_vi : HInst<
18227(outs),
18228(ins IntRegs:$Rs32),
18229"release($Rs32):st",
18230tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18231let Inst{7-2} = 0b001011;
18232let Inst{13-13} = 0b0;
18233let Inst{31-21} = 0b10100000111;
18234let isSolo = 1;
18235let mayStore = 1;
18236}
18237def S2_addasl_rrri : HInst<
18238(outs IntRegs:$Rd32),
18239(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
18240"$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
18241tc_2c13e7f5, TypeS_3op>, Enc_47ef61 {
18242let Inst{13-13} = 0b0;
18243let Inst{31-21} = 0b11000100000;
18244let hasNewValue = 1;
18245let opNewValue = 0;
18246let prefersSlot3 = 1;
18247}
18248def S2_allocframe : HInst<
18249(outs IntRegs:$Rx32),
18250(ins IntRegs:$Rx32in, u11_3Imm:$Ii),
18251"allocframe($Rx32,#$Ii):raw",
18252tc_934753bb, TypeST>, Enc_22c845 {
18253let Inst{13-11} = 0b000;
18254let Inst{31-21} = 0b10100000100;
18255let hasNewValue = 1;
18256let opNewValue = 0;
18257let addrMode = BaseImmOffset;
18258let accessSize = DoubleWordAccess;
18259let mayStore = 1;
18260let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
18261let Defs = [R30];
18262let Constraints = "$Rx32 = $Rx32in";
18263}
18264def S2_asl_i_p : HInst<
18265(outs DoubleRegs:$Rdd32),
18266(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18267"$Rdd32 = asl($Rss32,#$Ii)",
18268tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18269let Inst{7-5} = 0b010;
18270let Inst{31-21} = 0b10000000000;
18271}
18272def S2_asl_i_p_acc : HInst<
18273(outs DoubleRegs:$Rxx32),
18274(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18275"$Rxx32 += asl($Rss32,#$Ii)",
18276tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18277let Inst{7-5} = 0b110;
18278let Inst{31-21} = 0b10000010000;
18279let prefersSlot3 = 1;
18280let Constraints = "$Rxx32 = $Rxx32in";
18281}
18282def S2_asl_i_p_and : HInst<
18283(outs DoubleRegs:$Rxx32),
18284(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18285"$Rxx32 &= asl($Rss32,#$Ii)",
18286tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18287let Inst{7-5} = 0b010;
18288let Inst{31-21} = 0b10000010010;
18289let prefersSlot3 = 1;
18290let Constraints = "$Rxx32 = $Rxx32in";
18291}
18292def S2_asl_i_p_nac : HInst<
18293(outs DoubleRegs:$Rxx32),
18294(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18295"$Rxx32 -= asl($Rss32,#$Ii)",
18296tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18297let Inst{7-5} = 0b010;
18298let Inst{31-21} = 0b10000010000;
18299let prefersSlot3 = 1;
18300let Constraints = "$Rxx32 = $Rxx32in";
18301}
18302def S2_asl_i_p_or : HInst<
18303(outs DoubleRegs:$Rxx32),
18304(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18305"$Rxx32 |= asl($Rss32,#$Ii)",
18306tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18307let Inst{7-5} = 0b110;
18308let Inst{31-21} = 0b10000010010;
18309let prefersSlot3 = 1;
18310let Constraints = "$Rxx32 = $Rxx32in";
18311}
18312def S2_asl_i_p_xacc : HInst<
18313(outs DoubleRegs:$Rxx32),
18314(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18315"$Rxx32 ^= asl($Rss32,#$Ii)",
18316tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18317let Inst{7-5} = 0b010;
18318let Inst{31-21} = 0b10000010100;
18319let prefersSlot3 = 1;
18320let Constraints = "$Rxx32 = $Rxx32in";
18321}
18322def S2_asl_i_r : HInst<
18323(outs IntRegs:$Rd32),
18324(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18325"$Rd32 = asl($Rs32,#$Ii)",
18326tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18327let Inst{7-5} = 0b010;
18328let Inst{13-13} = 0b0;
18329let Inst{31-21} = 0b10001100000;
18330let hasNewValue = 1;
18331let opNewValue = 0;
18332}
18333def S2_asl_i_r_acc : HInst<
18334(outs IntRegs:$Rx32),
18335(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18336"$Rx32 += asl($Rs32,#$Ii)",
18337tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18338let Inst{7-5} = 0b110;
18339let Inst{13-13} = 0b0;
18340let Inst{31-21} = 0b10001110000;
18341let hasNewValue = 1;
18342let opNewValue = 0;
18343let prefersSlot3 = 1;
18344let Constraints = "$Rx32 = $Rx32in";
18345}
18346def S2_asl_i_r_and : HInst<
18347(outs IntRegs:$Rx32),
18348(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18349"$Rx32 &= asl($Rs32,#$Ii)",
18350tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18351let Inst{7-5} = 0b010;
18352let Inst{13-13} = 0b0;
18353let Inst{31-21} = 0b10001110010;
18354let hasNewValue = 1;
18355let opNewValue = 0;
18356let prefersSlot3 = 1;
18357let Constraints = "$Rx32 = $Rx32in";
18358}
18359def S2_asl_i_r_nac : HInst<
18360(outs IntRegs:$Rx32),
18361(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18362"$Rx32 -= asl($Rs32,#$Ii)",
18363tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18364let Inst{7-5} = 0b010;
18365let Inst{13-13} = 0b0;
18366let Inst{31-21} = 0b10001110000;
18367let hasNewValue = 1;
18368let opNewValue = 0;
18369let prefersSlot3 = 1;
18370let Constraints = "$Rx32 = $Rx32in";
18371}
18372def S2_asl_i_r_or : HInst<
18373(outs IntRegs:$Rx32),
18374(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18375"$Rx32 |= asl($Rs32,#$Ii)",
18376tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18377let Inst{7-5} = 0b110;
18378let Inst{13-13} = 0b0;
18379let Inst{31-21} = 0b10001110010;
18380let hasNewValue = 1;
18381let opNewValue = 0;
18382let prefersSlot3 = 1;
18383let Constraints = "$Rx32 = $Rx32in";
18384}
18385def S2_asl_i_r_sat : HInst<
18386(outs IntRegs:$Rd32),
18387(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18388"$Rd32 = asl($Rs32,#$Ii):sat",
18389tc_8a825db2, TypeS_2op>, Enc_a05677 {
18390let Inst{7-5} = 0b010;
18391let Inst{13-13} = 0b0;
18392let Inst{31-21} = 0b10001100010;
18393let hasNewValue = 1;
18394let opNewValue = 0;
18395let prefersSlot3 = 1;
18396let Defs = [USR_OVF];
18397}
18398def S2_asl_i_r_xacc : HInst<
18399(outs IntRegs:$Rx32),
18400(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18401"$Rx32 ^= asl($Rs32,#$Ii)",
18402tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18403let Inst{7-5} = 0b010;
18404let Inst{13-13} = 0b0;
18405let Inst{31-21} = 0b10001110100;
18406let hasNewValue = 1;
18407let opNewValue = 0;
18408let prefersSlot3 = 1;
18409let Constraints = "$Rx32 = $Rx32in";
18410}
18411def S2_asl_i_vh : HInst<
18412(outs DoubleRegs:$Rdd32),
18413(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18414"$Rdd32 = vaslh($Rss32,#$Ii)",
18415tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18416let Inst{7-5} = 0b010;
18417let Inst{13-12} = 0b00;
18418let Inst{31-21} = 0b10000000100;
18419}
18420def S2_asl_i_vw : HInst<
18421(outs DoubleRegs:$Rdd32),
18422(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18423"$Rdd32 = vaslw($Rss32,#$Ii)",
18424tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18425let Inst{7-5} = 0b010;
18426let Inst{13-13} = 0b0;
18427let Inst{31-21} = 0b10000000010;
18428}
18429def S2_asl_r_p : HInst<
18430(outs DoubleRegs:$Rdd32),
18431(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18432"$Rdd32 = asl($Rss32,$Rt32)",
18433tc_5da50c4b, TypeS_3op>, Enc_927852 {
18434let Inst{7-5} = 0b100;
18435let Inst{13-13} = 0b0;
18436let Inst{31-21} = 0b11000011100;
18437}
18438def S2_asl_r_p_acc : HInst<
18439(outs DoubleRegs:$Rxx32),
18440(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18441"$Rxx32 += asl($Rss32,$Rt32)",
18442tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18443let Inst{7-5} = 0b100;
18444let Inst{13-13} = 0b0;
18445let Inst{31-21} = 0b11001011110;
18446let prefersSlot3 = 1;
18447let Constraints = "$Rxx32 = $Rxx32in";
18448}
18449def S2_asl_r_p_and : HInst<
18450(outs DoubleRegs:$Rxx32),
18451(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18452"$Rxx32 &= asl($Rss32,$Rt32)",
18453tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18454let Inst{7-5} = 0b100;
18455let Inst{13-13} = 0b0;
18456let Inst{31-21} = 0b11001011010;
18457let prefersSlot3 = 1;
18458let Constraints = "$Rxx32 = $Rxx32in";
18459}
18460def S2_asl_r_p_nac : HInst<
18461(outs DoubleRegs:$Rxx32),
18462(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18463"$Rxx32 -= asl($Rss32,$Rt32)",
18464tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18465let Inst{7-5} = 0b100;
18466let Inst{13-13} = 0b0;
18467let Inst{31-21} = 0b11001011100;
18468let prefersSlot3 = 1;
18469let Constraints = "$Rxx32 = $Rxx32in";
18470}
18471def S2_asl_r_p_or : HInst<
18472(outs DoubleRegs:$Rxx32),
18473(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18474"$Rxx32 |= asl($Rss32,$Rt32)",
18475tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18476let Inst{7-5} = 0b100;
18477let Inst{13-13} = 0b0;
18478let Inst{31-21} = 0b11001011000;
18479let prefersSlot3 = 1;
18480let Constraints = "$Rxx32 = $Rxx32in";
18481}
18482def S2_asl_r_p_xor : HInst<
18483(outs DoubleRegs:$Rxx32),
18484(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18485"$Rxx32 ^= asl($Rss32,$Rt32)",
18486tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18487let Inst{7-5} = 0b100;
18488let Inst{13-13} = 0b0;
18489let Inst{31-21} = 0b11001011011;
18490let prefersSlot3 = 1;
18491let Constraints = "$Rxx32 = $Rxx32in";
18492}
18493def S2_asl_r_r : HInst<
18494(outs IntRegs:$Rd32),
18495(ins IntRegs:$Rs32, IntRegs:$Rt32),
18496"$Rd32 = asl($Rs32,$Rt32)",
18497tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18498let Inst{7-5} = 0b100;
18499let Inst{13-13} = 0b0;
18500let Inst{31-21} = 0b11000110010;
18501let hasNewValue = 1;
18502let opNewValue = 0;
18503}
18504def S2_asl_r_r_acc : HInst<
18505(outs IntRegs:$Rx32),
18506(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18507"$Rx32 += asl($Rs32,$Rt32)",
18508tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18509let Inst{7-5} = 0b100;
18510let Inst{13-13} = 0b0;
18511let Inst{31-21} = 0b11001100110;
18512let hasNewValue = 1;
18513let opNewValue = 0;
18514let prefersSlot3 = 1;
18515let Constraints = "$Rx32 = $Rx32in";
18516}
18517def S2_asl_r_r_and : HInst<
18518(outs IntRegs:$Rx32),
18519(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18520"$Rx32 &= asl($Rs32,$Rt32)",
18521tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18522let Inst{7-5} = 0b100;
18523let Inst{13-13} = 0b0;
18524let Inst{31-21} = 0b11001100010;
18525let hasNewValue = 1;
18526let opNewValue = 0;
18527let prefersSlot3 = 1;
18528let Constraints = "$Rx32 = $Rx32in";
18529}
18530def S2_asl_r_r_nac : HInst<
18531(outs IntRegs:$Rx32),
18532(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18533"$Rx32 -= asl($Rs32,$Rt32)",
18534tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18535let Inst{7-5} = 0b100;
18536let Inst{13-13} = 0b0;
18537let Inst{31-21} = 0b11001100100;
18538let hasNewValue = 1;
18539let opNewValue = 0;
18540let prefersSlot3 = 1;
18541let Constraints = "$Rx32 = $Rx32in";
18542}
18543def S2_asl_r_r_or : HInst<
18544(outs IntRegs:$Rx32),
18545(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18546"$Rx32 |= asl($Rs32,$Rt32)",
18547tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18548let Inst{7-5} = 0b100;
18549let Inst{13-13} = 0b0;
18550let Inst{31-21} = 0b11001100000;
18551let hasNewValue = 1;
18552let opNewValue = 0;
18553let prefersSlot3 = 1;
18554let Constraints = "$Rx32 = $Rx32in";
18555}
18556def S2_asl_r_r_sat : HInst<
18557(outs IntRegs:$Rd32),
18558(ins IntRegs:$Rs32, IntRegs:$Rt32),
18559"$Rd32 = asl($Rs32,$Rt32):sat",
18560tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18561let Inst{7-5} = 0b100;
18562let Inst{13-13} = 0b0;
18563let Inst{31-21} = 0b11000110000;
18564let hasNewValue = 1;
18565let opNewValue = 0;
18566let prefersSlot3 = 1;
18567let Defs = [USR_OVF];
18568}
18569def S2_asl_r_vh : HInst<
18570(outs DoubleRegs:$Rdd32),
18571(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18572"$Rdd32 = vaslh($Rss32,$Rt32)",
18573tc_5da50c4b, TypeS_3op>, Enc_927852 {
18574let Inst{7-5} = 0b100;
18575let Inst{13-13} = 0b0;
18576let Inst{31-21} = 0b11000011010;
18577}
18578def S2_asl_r_vw : HInst<
18579(outs DoubleRegs:$Rdd32),
18580(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18581"$Rdd32 = vaslw($Rss32,$Rt32)",
18582tc_5da50c4b, TypeS_3op>, Enc_927852 {
18583let Inst{7-5} = 0b100;
18584let Inst{13-13} = 0b0;
18585let Inst{31-21} = 0b11000011000;
18586}
18587def S2_asr_i_p : HInst<
18588(outs DoubleRegs:$Rdd32),
18589(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18590"$Rdd32 = asr($Rss32,#$Ii)",
18591tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18592let Inst{7-5} = 0b000;
18593let Inst{31-21} = 0b10000000000;
18594}
18595def S2_asr_i_p_acc : HInst<
18596(outs DoubleRegs:$Rxx32),
18597(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18598"$Rxx32 += asr($Rss32,#$Ii)",
18599tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18600let Inst{7-5} = 0b100;
18601let Inst{31-21} = 0b10000010000;
18602let prefersSlot3 = 1;
18603let Constraints = "$Rxx32 = $Rxx32in";
18604}
18605def S2_asr_i_p_and : HInst<
18606(outs DoubleRegs:$Rxx32),
18607(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18608"$Rxx32 &= asr($Rss32,#$Ii)",
18609tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18610let Inst{7-5} = 0b000;
18611let Inst{31-21} = 0b10000010010;
18612let prefersSlot3 = 1;
18613let Constraints = "$Rxx32 = $Rxx32in";
18614}
18615def S2_asr_i_p_nac : HInst<
18616(outs DoubleRegs:$Rxx32),
18617(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18618"$Rxx32 -= asr($Rss32,#$Ii)",
18619tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18620let Inst{7-5} = 0b000;
18621let Inst{31-21} = 0b10000010000;
18622let prefersSlot3 = 1;
18623let Constraints = "$Rxx32 = $Rxx32in";
18624}
18625def S2_asr_i_p_or : HInst<
18626(outs DoubleRegs:$Rxx32),
18627(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18628"$Rxx32 |= asr($Rss32,#$Ii)",
18629tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18630let Inst{7-5} = 0b100;
18631let Inst{31-21} = 0b10000010010;
18632let prefersSlot3 = 1;
18633let Constraints = "$Rxx32 = $Rxx32in";
18634}
18635def S2_asr_i_p_rnd : HInst<
18636(outs DoubleRegs:$Rdd32),
18637(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18638"$Rdd32 = asr($Rss32,#$Ii):rnd",
18639tc_0dfac0a7, TypeS_2op>, Enc_5eac98 {
18640let Inst{7-5} = 0b111;
18641let Inst{31-21} = 0b10000000110;
18642let prefersSlot3 = 1;
18643}
18644def S2_asr_i_p_rnd_goodsyntax : HInst<
18645(outs DoubleRegs:$Rdd32),
18646(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18647"$Rdd32 = asrrnd($Rss32,#$Ii)",
18648tc_0dfac0a7, TypeS_2op> {
18649let isPseudo = 1;
18650}
18651def S2_asr_i_r : HInst<
18652(outs IntRegs:$Rd32),
18653(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18654"$Rd32 = asr($Rs32,#$Ii)",
18655tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18656let Inst{7-5} = 0b000;
18657let Inst{13-13} = 0b0;
18658let Inst{31-21} = 0b10001100000;
18659let hasNewValue = 1;
18660let opNewValue = 0;
18661}
18662def S2_asr_i_r_acc : HInst<
18663(outs IntRegs:$Rx32),
18664(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18665"$Rx32 += asr($Rs32,#$Ii)",
18666tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18667let Inst{7-5} = 0b100;
18668let Inst{13-13} = 0b0;
18669let Inst{31-21} = 0b10001110000;
18670let hasNewValue = 1;
18671let opNewValue = 0;
18672let prefersSlot3 = 1;
18673let Constraints = "$Rx32 = $Rx32in";
18674}
18675def S2_asr_i_r_and : HInst<
18676(outs IntRegs:$Rx32),
18677(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18678"$Rx32 &= asr($Rs32,#$Ii)",
18679tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18680let Inst{7-5} = 0b000;
18681let Inst{13-13} = 0b0;
18682let Inst{31-21} = 0b10001110010;
18683let hasNewValue = 1;
18684let opNewValue = 0;
18685let prefersSlot3 = 1;
18686let Constraints = "$Rx32 = $Rx32in";
18687}
18688def S2_asr_i_r_nac : HInst<
18689(outs IntRegs:$Rx32),
18690(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18691"$Rx32 -= asr($Rs32,#$Ii)",
18692tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18693let Inst{7-5} = 0b000;
18694let Inst{13-13} = 0b0;
18695let Inst{31-21} = 0b10001110000;
18696let hasNewValue = 1;
18697let opNewValue = 0;
18698let prefersSlot3 = 1;
18699let Constraints = "$Rx32 = $Rx32in";
18700}
18701def S2_asr_i_r_or : HInst<
18702(outs IntRegs:$Rx32),
18703(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18704"$Rx32 |= asr($Rs32,#$Ii)",
18705tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18706let Inst{7-5} = 0b100;
18707let Inst{13-13} = 0b0;
18708let Inst{31-21} = 0b10001110010;
18709let hasNewValue = 1;
18710let opNewValue = 0;
18711let prefersSlot3 = 1;
18712let Constraints = "$Rx32 = $Rx32in";
18713}
18714def S2_asr_i_r_rnd : HInst<
18715(outs IntRegs:$Rd32),
18716(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18717"$Rd32 = asr($Rs32,#$Ii):rnd",
18718tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
18719let Inst{7-5} = 0b000;
18720let Inst{13-13} = 0b0;
18721let Inst{31-21} = 0b10001100010;
18722let hasNewValue = 1;
18723let opNewValue = 0;
18724let prefersSlot3 = 1;
18725}
18726def S2_asr_i_r_rnd_goodsyntax : HInst<
18727(outs IntRegs:$Rd32),
18728(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18729"$Rd32 = asrrnd($Rs32,#$Ii)",
18730tc_0dfac0a7, TypeS_2op> {
18731let hasNewValue = 1;
18732let opNewValue = 0;
18733let isPseudo = 1;
18734}
18735def S2_asr_i_svw_trun : HInst<
18736(outs IntRegs:$Rd32),
18737(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18738"$Rd32 = vasrw($Rss32,#$Ii)",
18739tc_f34c1c21, TypeS_2op>, Enc_8dec2e {
18740let Inst{7-5} = 0b010;
18741let Inst{13-13} = 0b0;
18742let Inst{31-21} = 0b10001000110;
18743let hasNewValue = 1;
18744let opNewValue = 0;
18745let prefersSlot3 = 1;
18746}
18747def S2_asr_i_vh : HInst<
18748(outs DoubleRegs:$Rdd32),
18749(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18750"$Rdd32 = vasrh($Rss32,#$Ii)",
18751tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18752let Inst{7-5} = 0b000;
18753let Inst{13-12} = 0b00;
18754let Inst{31-21} = 0b10000000100;
18755}
18756def S2_asr_i_vw : HInst<
18757(outs DoubleRegs:$Rdd32),
18758(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18759"$Rdd32 = vasrw($Rss32,#$Ii)",
18760tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18761let Inst{7-5} = 0b000;
18762let Inst{13-13} = 0b0;
18763let Inst{31-21} = 0b10000000010;
18764}
18765def S2_asr_r_p : HInst<
18766(outs DoubleRegs:$Rdd32),
18767(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18768"$Rdd32 = asr($Rss32,$Rt32)",
18769tc_5da50c4b, TypeS_3op>, Enc_927852 {
18770let Inst{7-5} = 0b000;
18771let Inst{13-13} = 0b0;
18772let Inst{31-21} = 0b11000011100;
18773}
18774def S2_asr_r_p_acc : HInst<
18775(outs DoubleRegs:$Rxx32),
18776(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18777"$Rxx32 += asr($Rss32,$Rt32)",
18778tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18779let Inst{7-5} = 0b000;
18780let Inst{13-13} = 0b0;
18781let Inst{31-21} = 0b11001011110;
18782let prefersSlot3 = 1;
18783let Constraints = "$Rxx32 = $Rxx32in";
18784}
18785def S2_asr_r_p_and : HInst<
18786(outs DoubleRegs:$Rxx32),
18787(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18788"$Rxx32 &= asr($Rss32,$Rt32)",
18789tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18790let Inst{7-5} = 0b000;
18791let Inst{13-13} = 0b0;
18792let Inst{31-21} = 0b11001011010;
18793let prefersSlot3 = 1;
18794let Constraints = "$Rxx32 = $Rxx32in";
18795}
18796def S2_asr_r_p_nac : HInst<
18797(outs DoubleRegs:$Rxx32),
18798(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18799"$Rxx32 -= asr($Rss32,$Rt32)",
18800tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18801let Inst{7-5} = 0b000;
18802let Inst{13-13} = 0b0;
18803let Inst{31-21} = 0b11001011100;
18804let prefersSlot3 = 1;
18805let Constraints = "$Rxx32 = $Rxx32in";
18806}
18807def S2_asr_r_p_or : HInst<
18808(outs DoubleRegs:$Rxx32),
18809(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18810"$Rxx32 |= asr($Rss32,$Rt32)",
18811tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18812let Inst{7-5} = 0b000;
18813let Inst{13-13} = 0b0;
18814let Inst{31-21} = 0b11001011000;
18815let prefersSlot3 = 1;
18816let Constraints = "$Rxx32 = $Rxx32in";
18817}
18818def S2_asr_r_p_xor : HInst<
18819(outs DoubleRegs:$Rxx32),
18820(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18821"$Rxx32 ^= asr($Rss32,$Rt32)",
18822tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18823let Inst{7-5} = 0b000;
18824let Inst{13-13} = 0b0;
18825let Inst{31-21} = 0b11001011011;
18826let prefersSlot3 = 1;
18827let Constraints = "$Rxx32 = $Rxx32in";
18828}
18829def S2_asr_r_r : HInst<
18830(outs IntRegs:$Rd32),
18831(ins IntRegs:$Rs32, IntRegs:$Rt32),
18832"$Rd32 = asr($Rs32,$Rt32)",
18833tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18834let Inst{7-5} = 0b000;
18835let Inst{13-13} = 0b0;
18836let Inst{31-21} = 0b11000110010;
18837let hasNewValue = 1;
18838let opNewValue = 0;
18839}
18840def S2_asr_r_r_acc : HInst<
18841(outs IntRegs:$Rx32),
18842(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18843"$Rx32 += asr($Rs32,$Rt32)",
18844tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18845let Inst{7-5} = 0b000;
18846let Inst{13-13} = 0b0;
18847let Inst{31-21} = 0b11001100110;
18848let hasNewValue = 1;
18849let opNewValue = 0;
18850let prefersSlot3 = 1;
18851let Constraints = "$Rx32 = $Rx32in";
18852}
18853def S2_asr_r_r_and : HInst<
18854(outs IntRegs:$Rx32),
18855(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18856"$Rx32 &= asr($Rs32,$Rt32)",
18857tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18858let Inst{7-5} = 0b000;
18859let Inst{13-13} = 0b0;
18860let Inst{31-21} = 0b11001100010;
18861let hasNewValue = 1;
18862let opNewValue = 0;
18863let prefersSlot3 = 1;
18864let Constraints = "$Rx32 = $Rx32in";
18865}
18866def S2_asr_r_r_nac : HInst<
18867(outs IntRegs:$Rx32),
18868(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18869"$Rx32 -= asr($Rs32,$Rt32)",
18870tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18871let Inst{7-5} = 0b000;
18872let Inst{13-13} = 0b0;
18873let Inst{31-21} = 0b11001100100;
18874let hasNewValue = 1;
18875let opNewValue = 0;
18876let prefersSlot3 = 1;
18877let Constraints = "$Rx32 = $Rx32in";
18878}
18879def S2_asr_r_r_or : HInst<
18880(outs IntRegs:$Rx32),
18881(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18882"$Rx32 |= asr($Rs32,$Rt32)",
18883tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18884let Inst{7-5} = 0b000;
18885let Inst{13-13} = 0b0;
18886let Inst{31-21} = 0b11001100000;
18887let hasNewValue = 1;
18888let opNewValue = 0;
18889let prefersSlot3 = 1;
18890let Constraints = "$Rx32 = $Rx32in";
18891}
18892def S2_asr_r_r_sat : HInst<
18893(outs IntRegs:$Rd32),
18894(ins IntRegs:$Rs32, IntRegs:$Rt32),
18895"$Rd32 = asr($Rs32,$Rt32):sat",
18896tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18897let Inst{7-5} = 0b000;
18898let Inst{13-13} = 0b0;
18899let Inst{31-21} = 0b11000110000;
18900let hasNewValue = 1;
18901let opNewValue = 0;
18902let prefersSlot3 = 1;
18903let Defs = [USR_OVF];
18904}
18905def S2_asr_r_svw_trun : HInst<
18906(outs IntRegs:$Rd32),
18907(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18908"$Rd32 = vasrw($Rss32,$Rt32)",
18909tc_f34c1c21, TypeS_3op>, Enc_3d5b28 {
18910let Inst{7-5} = 0b010;
18911let Inst{13-13} = 0b0;
18912let Inst{31-21} = 0b11000101000;
18913let hasNewValue = 1;
18914let opNewValue = 0;
18915let prefersSlot3 = 1;
18916}
18917def S2_asr_r_vh : HInst<
18918(outs DoubleRegs:$Rdd32),
18919(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18920"$Rdd32 = vasrh($Rss32,$Rt32)",
18921tc_5da50c4b, TypeS_3op>, Enc_927852 {
18922let Inst{7-5} = 0b000;
18923let Inst{13-13} = 0b0;
18924let Inst{31-21} = 0b11000011010;
18925}
18926def S2_asr_r_vw : HInst<
18927(outs DoubleRegs:$Rdd32),
18928(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18929"$Rdd32 = vasrw($Rss32,$Rt32)",
18930tc_5da50c4b, TypeS_3op>, Enc_927852 {
18931let Inst{7-5} = 0b000;
18932let Inst{13-13} = 0b0;
18933let Inst{31-21} = 0b11000011000;
18934}
18935def S2_brev : HInst<
18936(outs IntRegs:$Rd32),
18937(ins IntRegs:$Rs32),
18938"$Rd32 = brev($Rs32)",
18939tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18940let Inst{13-5} = 0b000000110;
18941let Inst{31-21} = 0b10001100010;
18942let hasNewValue = 1;
18943let opNewValue = 0;
18944let prefersSlot3 = 1;
18945}
18946def S2_brevp : HInst<
18947(outs DoubleRegs:$Rdd32),
18948(ins DoubleRegs:$Rss32),
18949"$Rdd32 = brev($Rss32)",
18950tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
18951let Inst{13-5} = 0b000000110;
18952let Inst{31-21} = 0b10000000110;
18953let prefersSlot3 = 1;
18954}
18955def S2_cabacdecbin : HInst<
18956(outs DoubleRegs:$Rdd32),
18957(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18958"$Rdd32 = decbin($Rss32,$Rtt32)",
18959tc_db596beb, TypeS_3op>, Enc_a56825, Requires<[UseCabac]> {
18960let Inst{7-5} = 0b110;
18961let Inst{13-13} = 0b0;
18962let Inst{31-21} = 0b11000001110;
18963let isPredicateLate = 1;
18964let prefersSlot3 = 1;
18965let Defs = [P0];
18966}
18967def S2_cl0 : HInst<
18968(outs IntRegs:$Rd32),
18969(ins IntRegs:$Rs32),
18970"$Rd32 = cl0($Rs32)",
18971tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18972let Inst{13-5} = 0b000000101;
18973let Inst{31-21} = 0b10001100000;
18974let hasNewValue = 1;
18975let opNewValue = 0;
18976let prefersSlot3 = 1;
18977}
18978def S2_cl0p : HInst<
18979(outs IntRegs:$Rd32),
18980(ins DoubleRegs:$Rss32),
18981"$Rd32 = cl0($Rss32)",
18982tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
18983let Inst{13-5} = 0b000000010;
18984let Inst{31-21} = 0b10001000010;
18985let hasNewValue = 1;
18986let opNewValue = 0;
18987let prefersSlot3 = 1;
18988}
18989def S2_cl1 : HInst<
18990(outs IntRegs:$Rd32),
18991(ins IntRegs:$Rs32),
18992"$Rd32 = cl1($Rs32)",
18993tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18994let Inst{13-5} = 0b000000110;
18995let Inst{31-21} = 0b10001100000;
18996let hasNewValue = 1;
18997let opNewValue = 0;
18998let prefersSlot3 = 1;
18999}
19000def S2_cl1p : HInst<
19001(outs IntRegs:$Rd32),
19002(ins DoubleRegs:$Rss32),
19003"$Rd32 = cl1($Rss32)",
19004tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19005let Inst{13-5} = 0b000000100;
19006let Inst{31-21} = 0b10001000010;
19007let hasNewValue = 1;
19008let opNewValue = 0;
19009let prefersSlot3 = 1;
19010}
19011def S2_clb : HInst<
19012(outs IntRegs:$Rd32),
19013(ins IntRegs:$Rs32),
19014"$Rd32 = clb($Rs32)",
19015tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19016let Inst{13-5} = 0b000000100;
19017let Inst{31-21} = 0b10001100000;
19018let hasNewValue = 1;
19019let opNewValue = 0;
19020let prefersSlot3 = 1;
19021}
19022def S2_clbnorm : HInst<
19023(outs IntRegs:$Rd32),
19024(ins IntRegs:$Rs32),
19025"$Rd32 = normamt($Rs32)",
19026tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19027let Inst{13-5} = 0b000000111;
19028let Inst{31-21} = 0b10001100000;
19029let hasNewValue = 1;
19030let opNewValue = 0;
19031let prefersSlot3 = 1;
19032}
19033def S2_clbp : HInst<
19034(outs IntRegs:$Rd32),
19035(ins DoubleRegs:$Rss32),
19036"$Rd32 = clb($Rss32)",
19037tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19038let Inst{13-5} = 0b000000000;
19039let Inst{31-21} = 0b10001000010;
19040let hasNewValue = 1;
19041let opNewValue = 0;
19042let prefersSlot3 = 1;
19043}
19044def S2_clrbit_i : HInst<
19045(outs IntRegs:$Rd32),
19046(ins IntRegs:$Rs32, u5_0Imm:$Ii),
19047"$Rd32 = clrbit($Rs32,#$Ii)",
19048tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19049let Inst{7-5} = 0b001;
19050let Inst{13-13} = 0b0;
19051let Inst{31-21} = 0b10001100110;
19052let hasNewValue = 1;
19053let opNewValue = 0;
19054}
19055def S2_clrbit_r : HInst<
19056(outs IntRegs:$Rd32),
19057(ins IntRegs:$Rs32, IntRegs:$Rt32),
19058"$Rd32 = clrbit($Rs32,$Rt32)",
19059tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19060let Inst{7-5} = 0b010;
19061let Inst{13-13} = 0b0;
19062let Inst{31-21} = 0b11000110100;
19063let hasNewValue = 1;
19064let opNewValue = 0;
19065}
19066def S2_ct0 : HInst<
19067(outs IntRegs:$Rd32),
19068(ins IntRegs:$Rs32),
19069"$Rd32 = ct0($Rs32)",
19070tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19071let Inst{13-5} = 0b000000100;
19072let Inst{31-21} = 0b10001100010;
19073let hasNewValue = 1;
19074let opNewValue = 0;
19075let prefersSlot3 = 1;
19076}
19077def S2_ct0p : HInst<
19078(outs IntRegs:$Rd32),
19079(ins DoubleRegs:$Rss32),
19080"$Rd32 = ct0($Rss32)",
19081tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19082let Inst{13-5} = 0b000000010;
19083let Inst{31-21} = 0b10001000111;
19084let hasNewValue = 1;
19085let opNewValue = 0;
19086let prefersSlot3 = 1;
19087}
19088def S2_ct1 : HInst<
19089(outs IntRegs:$Rd32),
19090(ins IntRegs:$Rs32),
19091"$Rd32 = ct1($Rs32)",
19092tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19093let Inst{13-5} = 0b000000101;
19094let Inst{31-21} = 0b10001100010;
19095let hasNewValue = 1;
19096let opNewValue = 0;
19097let prefersSlot3 = 1;
19098}
19099def S2_ct1p : HInst<
19100(outs IntRegs:$Rd32),
19101(ins DoubleRegs:$Rss32),
19102"$Rd32 = ct1($Rss32)",
19103tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19104let Inst{13-5} = 0b000000100;
19105let Inst{31-21} = 0b10001000111;
19106let hasNewValue = 1;
19107let opNewValue = 0;
19108let prefersSlot3 = 1;
19109}
19110def S2_deinterleave : HInst<
19111(outs DoubleRegs:$Rdd32),
19112(ins DoubleRegs:$Rss32),
19113"$Rdd32 = deinterleave($Rss32)",
19114tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19115let Inst{13-5} = 0b000000100;
19116let Inst{31-21} = 0b10000000110;
19117let prefersSlot3 = 1;
19118}
19119def S2_extractu : HInst<
19120(outs IntRegs:$Rd32),
19121(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19122"$Rd32 = extractu($Rs32,#$Ii,#$II)",
19123tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
19124let Inst{13-13} = 0b0;
19125let Inst{31-23} = 0b100011010;
19126let hasNewValue = 1;
19127let opNewValue = 0;
19128let prefersSlot3 = 1;
19129}
19130def S2_extractu_rp : HInst<
19131(outs IntRegs:$Rd32),
19132(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
19133"$Rd32 = extractu($Rs32,$Rtt32)",
19134tc_a08b630b, TypeS_3op>, Enc_e07374 {
19135let Inst{7-5} = 0b000;
19136let Inst{13-13} = 0b0;
19137let Inst{31-21} = 0b11001001000;
19138let hasNewValue = 1;
19139let opNewValue = 0;
19140let prefersSlot3 = 1;
19141}
19142def S2_extractup : HInst<
19143(outs DoubleRegs:$Rdd32),
19144(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19145"$Rdd32 = extractu($Rss32,#$Ii,#$II)",
19146tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
19147let Inst{31-24} = 0b10000001;
19148let prefersSlot3 = 1;
19149}
19150def S2_extractup_rp : HInst<
19151(outs DoubleRegs:$Rdd32),
19152(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19153"$Rdd32 = extractu($Rss32,$Rtt32)",
19154tc_a08b630b, TypeS_3op>, Enc_a56825 {
19155let Inst{7-5} = 0b000;
19156let Inst{13-13} = 0b0;
19157let Inst{31-21} = 0b11000001000;
19158let prefersSlot3 = 1;
19159}
19160def S2_insert : HInst<
19161(outs IntRegs:$Rx32),
19162(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19163"$Rx32 = insert($Rs32,#$Ii,#$II)",
19164tc_bb831a7c, TypeS_2op>, Enc_a1e29d {
19165let Inst{13-13} = 0b0;
19166let Inst{31-23} = 0b100011110;
19167let hasNewValue = 1;
19168let opNewValue = 0;
19169let prefersSlot3 = 1;
19170let Constraints = "$Rx32 = $Rx32in";
19171}
19172def S2_insert_rp : HInst<
19173(outs IntRegs:$Rx32),
19174(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19175"$Rx32 = insert($Rs32,$Rtt32)",
19176tc_a4e22bbd, TypeS_3op>, Enc_179b35 {
19177let Inst{7-5} = 0b000;
19178let Inst{13-13} = 0b0;
19179let Inst{31-21} = 0b11001000000;
19180let hasNewValue = 1;
19181let opNewValue = 0;
19182let prefersSlot3 = 1;
19183let Constraints = "$Rx32 = $Rx32in";
19184}
19185def S2_insertp : HInst<
19186(outs DoubleRegs:$Rxx32),
19187(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19188"$Rxx32 = insert($Rss32,#$Ii,#$II)",
19189tc_bb831a7c, TypeS_2op>, Enc_143a3c {
19190let Inst{31-24} = 0b10000011;
19191let prefersSlot3 = 1;
19192let Constraints = "$Rxx32 = $Rxx32in";
19193}
19194def S2_insertp_rp : HInst<
19195(outs DoubleRegs:$Rxx32),
19196(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19197"$Rxx32 = insert($Rss32,$Rtt32)",
19198tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
19199let Inst{7-5} = 0b000;
19200let Inst{13-13} = 0b0;
19201let Inst{31-21} = 0b11001010000;
19202let prefersSlot3 = 1;
19203let Constraints = "$Rxx32 = $Rxx32in";
19204}
19205def S2_interleave : HInst<
19206(outs DoubleRegs:$Rdd32),
19207(ins DoubleRegs:$Rss32),
19208"$Rdd32 = interleave($Rss32)",
19209tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19210let Inst{13-5} = 0b000000101;
19211let Inst{31-21} = 0b10000000110;
19212let prefersSlot3 = 1;
19213}
19214def S2_lfsp : HInst<
19215(outs DoubleRegs:$Rdd32),
19216(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19217"$Rdd32 = lfs($Rss32,$Rtt32)",
19218tc_a08b630b, TypeS_3op>, Enc_a56825 {
19219let Inst{7-5} = 0b110;
19220let Inst{13-13} = 0b0;
19221let Inst{31-21} = 0b11000001100;
19222let prefersSlot3 = 1;
19223}
19224def S2_lsl_r_p : HInst<
19225(outs DoubleRegs:$Rdd32),
19226(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19227"$Rdd32 = lsl($Rss32,$Rt32)",
19228tc_5da50c4b, TypeS_3op>, Enc_927852 {
19229let Inst{7-5} = 0b110;
19230let Inst{13-13} = 0b0;
19231let Inst{31-21} = 0b11000011100;
19232}
19233def S2_lsl_r_p_acc : HInst<
19234(outs DoubleRegs:$Rxx32),
19235(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19236"$Rxx32 += lsl($Rss32,$Rt32)",
19237tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19238let Inst{7-5} = 0b110;
19239let Inst{13-13} = 0b0;
19240let Inst{31-21} = 0b11001011110;
19241let prefersSlot3 = 1;
19242let Constraints = "$Rxx32 = $Rxx32in";
19243}
19244def S2_lsl_r_p_and : HInst<
19245(outs DoubleRegs:$Rxx32),
19246(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19247"$Rxx32 &= lsl($Rss32,$Rt32)",
19248tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19249let Inst{7-5} = 0b110;
19250let Inst{13-13} = 0b0;
19251let Inst{31-21} = 0b11001011010;
19252let prefersSlot3 = 1;
19253let Constraints = "$Rxx32 = $Rxx32in";
19254}
19255def S2_lsl_r_p_nac : HInst<
19256(outs DoubleRegs:$Rxx32),
19257(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19258"$Rxx32 -= lsl($Rss32,$Rt32)",
19259tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19260let Inst{7-5} = 0b110;
19261let Inst{13-13} = 0b0;
19262let Inst{31-21} = 0b11001011100;
19263let prefersSlot3 = 1;
19264let Constraints = "$Rxx32 = $Rxx32in";
19265}
19266def S2_lsl_r_p_or : HInst<
19267(outs DoubleRegs:$Rxx32),
19268(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19269"$Rxx32 |= lsl($Rss32,$Rt32)",
19270tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19271let Inst{7-5} = 0b110;
19272let Inst{13-13} = 0b0;
19273let Inst{31-21} = 0b11001011000;
19274let prefersSlot3 = 1;
19275let Constraints = "$Rxx32 = $Rxx32in";
19276}
19277def S2_lsl_r_p_xor : HInst<
19278(outs DoubleRegs:$Rxx32),
19279(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19280"$Rxx32 ^= lsl($Rss32,$Rt32)",
19281tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19282let Inst{7-5} = 0b110;
19283let Inst{13-13} = 0b0;
19284let Inst{31-21} = 0b11001011011;
19285let prefersSlot3 = 1;
19286let Constraints = "$Rxx32 = $Rxx32in";
19287}
19288def S2_lsl_r_r : HInst<
19289(outs IntRegs:$Rd32),
19290(ins IntRegs:$Rs32, IntRegs:$Rt32),
19291"$Rd32 = lsl($Rs32,$Rt32)",
19292tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19293let Inst{7-5} = 0b110;
19294let Inst{13-13} = 0b0;
19295let Inst{31-21} = 0b11000110010;
19296let hasNewValue = 1;
19297let opNewValue = 0;
19298}
19299def S2_lsl_r_r_acc : HInst<
19300(outs IntRegs:$Rx32),
19301(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19302"$Rx32 += lsl($Rs32,$Rt32)",
19303tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19304let Inst{7-5} = 0b110;
19305let Inst{13-13} = 0b0;
19306let Inst{31-21} = 0b11001100110;
19307let hasNewValue = 1;
19308let opNewValue = 0;
19309let prefersSlot3 = 1;
19310let Constraints = "$Rx32 = $Rx32in";
19311}
19312def S2_lsl_r_r_and : HInst<
19313(outs IntRegs:$Rx32),
19314(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19315"$Rx32 &= lsl($Rs32,$Rt32)",
19316tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19317let Inst{7-5} = 0b110;
19318let Inst{13-13} = 0b0;
19319let Inst{31-21} = 0b11001100010;
19320let hasNewValue = 1;
19321let opNewValue = 0;
19322let prefersSlot3 = 1;
19323let Constraints = "$Rx32 = $Rx32in";
19324}
19325def S2_lsl_r_r_nac : HInst<
19326(outs IntRegs:$Rx32),
19327(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19328"$Rx32 -= lsl($Rs32,$Rt32)",
19329tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19330let Inst{7-5} = 0b110;
19331let Inst{13-13} = 0b0;
19332let Inst{31-21} = 0b11001100100;
19333let hasNewValue = 1;
19334let opNewValue = 0;
19335let prefersSlot3 = 1;
19336let Constraints = "$Rx32 = $Rx32in";
19337}
19338def S2_lsl_r_r_or : HInst<
19339(outs IntRegs:$Rx32),
19340(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19341"$Rx32 |= lsl($Rs32,$Rt32)",
19342tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19343let Inst{7-5} = 0b110;
19344let Inst{13-13} = 0b0;
19345let Inst{31-21} = 0b11001100000;
19346let hasNewValue = 1;
19347let opNewValue = 0;
19348let prefersSlot3 = 1;
19349let Constraints = "$Rx32 = $Rx32in";
19350}
19351def S2_lsl_r_vh : HInst<
19352(outs DoubleRegs:$Rdd32),
19353(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19354"$Rdd32 = vlslh($Rss32,$Rt32)",
19355tc_5da50c4b, TypeS_3op>, Enc_927852 {
19356let Inst{7-5} = 0b110;
19357let Inst{13-13} = 0b0;
19358let Inst{31-21} = 0b11000011010;
19359}
19360def S2_lsl_r_vw : HInst<
19361(outs DoubleRegs:$Rdd32),
19362(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19363"$Rdd32 = vlslw($Rss32,$Rt32)",
19364tc_5da50c4b, TypeS_3op>, Enc_927852 {
19365let Inst{7-5} = 0b110;
19366let Inst{13-13} = 0b0;
19367let Inst{31-21} = 0b11000011000;
19368}
19369def S2_lsr_i_p : HInst<
19370(outs DoubleRegs:$Rdd32),
19371(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19372"$Rdd32 = lsr($Rss32,#$Ii)",
19373tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
19374let Inst{7-5} = 0b001;
19375let Inst{31-21} = 0b10000000000;
19376}
19377def S2_lsr_i_p_acc : HInst<
19378(outs DoubleRegs:$Rxx32),
19379(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19380"$Rxx32 += lsr($Rss32,#$Ii)",
19381tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19382let Inst{7-5} = 0b101;
19383let Inst{31-21} = 0b10000010000;
19384let prefersSlot3 = 1;
19385let Constraints = "$Rxx32 = $Rxx32in";
19386}
19387def S2_lsr_i_p_and : HInst<
19388(outs DoubleRegs:$Rxx32),
19389(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19390"$Rxx32 &= lsr($Rss32,#$Ii)",
19391tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19392let Inst{7-5} = 0b001;
19393let Inst{31-21} = 0b10000010010;
19394let prefersSlot3 = 1;
19395let Constraints = "$Rxx32 = $Rxx32in";
19396}
19397def S2_lsr_i_p_nac : HInst<
19398(outs DoubleRegs:$Rxx32),
19399(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19400"$Rxx32 -= lsr($Rss32,#$Ii)",
19401tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19402let Inst{7-5} = 0b001;
19403let Inst{31-21} = 0b10000010000;
19404let prefersSlot3 = 1;
19405let Constraints = "$Rxx32 = $Rxx32in";
19406}
19407def S2_lsr_i_p_or : HInst<
19408(outs DoubleRegs:$Rxx32),
19409(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19410"$Rxx32 |= lsr($Rss32,#$Ii)",
19411tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19412let Inst{7-5} = 0b101;
19413let Inst{31-21} = 0b10000010010;
19414let prefersSlot3 = 1;
19415let Constraints = "$Rxx32 = $Rxx32in";
19416}
19417def S2_lsr_i_p_xacc : HInst<
19418(outs DoubleRegs:$Rxx32),
19419(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19420"$Rxx32 ^= lsr($Rss32,#$Ii)",
19421tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19422let Inst{7-5} = 0b001;
19423let Inst{31-21} = 0b10000010100;
19424let prefersSlot3 = 1;
19425let Constraints = "$Rxx32 = $Rxx32in";
19426}
19427def S2_lsr_i_r : HInst<
19428(outs IntRegs:$Rd32),
19429(ins IntRegs:$Rs32, u5_0Imm:$Ii),
19430"$Rd32 = lsr($Rs32,#$Ii)",
19431tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19432let Inst{7-5} = 0b001;
19433let Inst{13-13} = 0b0;
19434let Inst{31-21} = 0b10001100000;
19435let hasNewValue = 1;
19436let opNewValue = 0;
19437}
19438def S2_lsr_i_r_acc : HInst<
19439(outs IntRegs:$Rx32),
19440(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19441"$Rx32 += lsr($Rs32,#$Ii)",
19442tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19443let Inst{7-5} = 0b101;
19444let Inst{13-13} = 0b0;
19445let Inst{31-21} = 0b10001110000;
19446let hasNewValue = 1;
19447let opNewValue = 0;
19448let prefersSlot3 = 1;
19449let Constraints = "$Rx32 = $Rx32in";
19450}
19451def S2_lsr_i_r_and : HInst<
19452(outs IntRegs:$Rx32),
19453(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19454"$Rx32 &= lsr($Rs32,#$Ii)",
19455tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19456let Inst{7-5} = 0b001;
19457let Inst{13-13} = 0b0;
19458let Inst{31-21} = 0b10001110010;
19459let hasNewValue = 1;
19460let opNewValue = 0;
19461let prefersSlot3 = 1;
19462let Constraints = "$Rx32 = $Rx32in";
19463}
19464def S2_lsr_i_r_nac : HInst<
19465(outs IntRegs:$Rx32),
19466(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19467"$Rx32 -= lsr($Rs32,#$Ii)",
19468tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19469let Inst{7-5} = 0b001;
19470let Inst{13-13} = 0b0;
19471let Inst{31-21} = 0b10001110000;
19472let hasNewValue = 1;
19473let opNewValue = 0;
19474let prefersSlot3 = 1;
19475let Constraints = "$Rx32 = $Rx32in";
19476}
19477def S2_lsr_i_r_or : HInst<
19478(outs IntRegs:$Rx32),
19479(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19480"$Rx32 |= lsr($Rs32,#$Ii)",
19481tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19482let Inst{7-5} = 0b101;
19483let Inst{13-13} = 0b0;
19484let Inst{31-21} = 0b10001110010;
19485let hasNewValue = 1;
19486let opNewValue = 0;
19487let prefersSlot3 = 1;
19488let Constraints = "$Rx32 = $Rx32in";
19489}
19490def S2_lsr_i_r_xacc : HInst<
19491(outs IntRegs:$Rx32),
19492(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19493"$Rx32 ^= lsr($Rs32,#$Ii)",
19494tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19495let Inst{7-5} = 0b001;
19496let Inst{13-13} = 0b0;
19497let Inst{31-21} = 0b10001110100;
19498let hasNewValue = 1;
19499let opNewValue = 0;
19500let prefersSlot3 = 1;
19501let Constraints = "$Rx32 = $Rx32in";
19502}
19503def S2_lsr_i_vh : HInst<
19504(outs DoubleRegs:$Rdd32),
19505(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19506"$Rdd32 = vlsrh($Rss32,#$Ii)",
19507tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
19508let Inst{7-5} = 0b001;
19509let Inst{13-12} = 0b00;
19510let Inst{31-21} = 0b10000000100;
19511}
19512def S2_lsr_i_vw : HInst<
19513(outs DoubleRegs:$Rdd32),
19514(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19515"$Rdd32 = vlsrw($Rss32,#$Ii)",
19516tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
19517let Inst{7-5} = 0b001;
19518let Inst{13-13} = 0b0;
19519let Inst{31-21} = 0b10000000010;
19520}
19521def S2_lsr_r_p : HInst<
19522(outs DoubleRegs:$Rdd32),
19523(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19524"$Rdd32 = lsr($Rss32,$Rt32)",
19525tc_5da50c4b, TypeS_3op>, Enc_927852 {
19526let Inst{7-5} = 0b010;
19527let Inst{13-13} = 0b0;
19528let Inst{31-21} = 0b11000011100;
19529}
19530def S2_lsr_r_p_acc : HInst<
19531(outs DoubleRegs:$Rxx32),
19532(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19533"$Rxx32 += lsr($Rss32,$Rt32)",
19534tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19535let Inst{7-5} = 0b010;
19536let Inst{13-13} = 0b0;
19537let Inst{31-21} = 0b11001011110;
19538let prefersSlot3 = 1;
19539let Constraints = "$Rxx32 = $Rxx32in";
19540}
19541def S2_lsr_r_p_and : HInst<
19542(outs DoubleRegs:$Rxx32),
19543(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19544"$Rxx32 &= lsr($Rss32,$Rt32)",
19545tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19546let Inst{7-5} = 0b010;
19547let Inst{13-13} = 0b0;
19548let Inst{31-21} = 0b11001011010;
19549let prefersSlot3 = 1;
19550let Constraints = "$Rxx32 = $Rxx32in";
19551}
19552def S2_lsr_r_p_nac : HInst<
19553(outs DoubleRegs:$Rxx32),
19554(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19555"$Rxx32 -= lsr($Rss32,$Rt32)",
19556tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19557let Inst{7-5} = 0b010;
19558let Inst{13-13} = 0b0;
19559let Inst{31-21} = 0b11001011100;
19560let prefersSlot3 = 1;
19561let Constraints = "$Rxx32 = $Rxx32in";
19562}
19563def S2_lsr_r_p_or : HInst<
19564(outs DoubleRegs:$Rxx32),
19565(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19566"$Rxx32 |= lsr($Rss32,$Rt32)",
19567tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19568let Inst{7-5} = 0b010;
19569let Inst{13-13} = 0b0;
19570let Inst{31-21} = 0b11001011000;
19571let prefersSlot3 = 1;
19572let Constraints = "$Rxx32 = $Rxx32in";
19573}
19574def S2_lsr_r_p_xor : HInst<
19575(outs DoubleRegs:$Rxx32),
19576(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19577"$Rxx32 ^= lsr($Rss32,$Rt32)",
19578tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19579let Inst{7-5} = 0b010;
19580let Inst{13-13} = 0b0;
19581let Inst{31-21} = 0b11001011011;
19582let prefersSlot3 = 1;
19583let Constraints = "$Rxx32 = $Rxx32in";
19584}
19585def S2_lsr_r_r : HInst<
19586(outs IntRegs:$Rd32),
19587(ins IntRegs:$Rs32, IntRegs:$Rt32),
19588"$Rd32 = lsr($Rs32,$Rt32)",
19589tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19590let Inst{7-5} = 0b010;
19591let Inst{13-13} = 0b0;
19592let Inst{31-21} = 0b11000110010;
19593let hasNewValue = 1;
19594let opNewValue = 0;
19595}
19596def S2_lsr_r_r_acc : HInst<
19597(outs IntRegs:$Rx32),
19598(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19599"$Rx32 += lsr($Rs32,$Rt32)",
19600tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19601let Inst{7-5} = 0b010;
19602let Inst{13-13} = 0b0;
19603let Inst{31-21} = 0b11001100110;
19604let hasNewValue = 1;
19605let opNewValue = 0;
19606let prefersSlot3 = 1;
19607let Constraints = "$Rx32 = $Rx32in";
19608}
19609def S2_lsr_r_r_and : HInst<
19610(outs IntRegs:$Rx32),
19611(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19612"$Rx32 &= lsr($Rs32,$Rt32)",
19613tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19614let Inst{7-5} = 0b010;
19615let Inst{13-13} = 0b0;
19616let Inst{31-21} = 0b11001100010;
19617let hasNewValue = 1;
19618let opNewValue = 0;
19619let prefersSlot3 = 1;
19620let Constraints = "$Rx32 = $Rx32in";
19621}
19622def S2_lsr_r_r_nac : HInst<
19623(outs IntRegs:$Rx32),
19624(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19625"$Rx32 -= lsr($Rs32,$Rt32)",
19626tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19627let Inst{7-5} = 0b010;
19628let Inst{13-13} = 0b0;
19629let Inst{31-21} = 0b11001100100;
19630let hasNewValue = 1;
19631let opNewValue = 0;
19632let prefersSlot3 = 1;
19633let Constraints = "$Rx32 = $Rx32in";
19634}
19635def S2_lsr_r_r_or : HInst<
19636(outs IntRegs:$Rx32),
19637(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19638"$Rx32 |= lsr($Rs32,$Rt32)",
19639tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19640let Inst{7-5} = 0b010;
19641let Inst{13-13} = 0b0;
19642let Inst{31-21} = 0b11001100000;
19643let hasNewValue = 1;
19644let opNewValue = 0;
19645let prefersSlot3 = 1;
19646let Constraints = "$Rx32 = $Rx32in";
19647}
19648def S2_lsr_r_vh : HInst<
19649(outs DoubleRegs:$Rdd32),
19650(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19651"$Rdd32 = vlsrh($Rss32,$Rt32)",
19652tc_5da50c4b, TypeS_3op>, Enc_927852 {
19653let Inst{7-5} = 0b010;
19654let Inst{13-13} = 0b0;
19655let Inst{31-21} = 0b11000011010;
19656}
19657def S2_lsr_r_vw : HInst<
19658(outs DoubleRegs:$Rdd32),
19659(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19660"$Rdd32 = vlsrw($Rss32,$Rt32)",
19661tc_5da50c4b, TypeS_3op>, Enc_927852 {
19662let Inst{7-5} = 0b010;
19663let Inst{13-13} = 0b0;
19664let Inst{31-21} = 0b11000011000;
19665}
19666def S2_mask : HInst<
19667(outs IntRegs:$Rd32),
19668(ins u5_0Imm:$Ii, u5_0Imm:$II),
19669"$Rd32 = mask(#$Ii,#$II)",
19670tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19671let Inst{13-13} = 0b1;
19672let Inst{20-16} = 0b00000;
19673let Inst{31-23} = 0b100011010;
19674let hasNewValue = 1;
19675let opNewValue = 0;
19676let prefersSlot3 = 1;
19677}
19678def S2_packhl : HInst<
19679(outs DoubleRegs:$Rdd32),
19680(ins IntRegs:$Rs32, IntRegs:$Rt32),
19681"$Rdd32 = packhl($Rs32,$Rt32)",
19682tc_713b66bf, TypeALU32_3op>, Enc_be32a5 {
19683let Inst{7-5} = 0b000;
19684let Inst{13-13} = 0b0;
19685let Inst{31-21} = 0b11110101100;
19686let InputType = "reg";
19687}
19688def S2_parityp : HInst<
19689(outs IntRegs:$Rd32),
19690(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19691"$Rd32 = parity($Rss32,$Rtt32)",
19692tc_a08b630b, TypeALU64>, Enc_d2216a {
19693let Inst{7-5} = 0b000;
19694let Inst{13-13} = 0b0;
19695let Inst{31-21} = 0b11010000000;
19696let hasNewValue = 1;
19697let opNewValue = 0;
19698let prefersSlot3 = 1;
19699}
19700def S2_pstorerbf_io : HInst<
19701(outs),
19702(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19703"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19704tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19705let Inst{2-2} = 0b0;
19706let Inst{31-21} = 0b01000100000;
19707let isPredicated = 1;
19708let isPredicatedFalse = 1;
19709let addrMode = BaseImmOffset;
19710let accessSize = ByteAccess;
19711let mayStore = 1;
19712let BaseOpcode = "S2_storerb_io";
19713let CextOpcode = "S2_storerb";
19714let InputType = "imm";
19715let isNVStorable = 1;
19716let isExtendable = 1;
19717let opExtendable = 2;
19718let isExtentSigned = 0;
19719let opExtentBits = 6;
19720let opExtentAlign = 0;
19721}
19722def S2_pstorerbf_pi : HInst<
19723(outs IntRegs:$Rx32),
19724(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19725"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19726tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19727let Inst{2-2} = 0b1;
19728let Inst{7-7} = 0b0;
19729let Inst{13-13} = 0b1;
19730let Inst{31-21} = 0b10101011000;
19731let isPredicated = 1;
19732let isPredicatedFalse = 1;
19733let addrMode = PostInc;
19734let accessSize = ByteAccess;
19735let mayStore = 1;
19736let BaseOpcode = "S2_storerb_pi";
19737let isNVStorable = 1;
19738let Constraints = "$Rx32 = $Rx32in";
19739}
19740def S2_pstorerbf_zomap : HInst<
19741(outs),
19742(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19743"if (!$Pv4) memb($Rs32) = $Rt32",
19744tc_8035e91f, TypeMAPPING> {
19745let isPseudo = 1;
19746let isCodeGenOnly = 1;
19747}
19748def S2_pstorerbfnew_pi : HInst<
19749(outs IntRegs:$Rx32),
19750(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19751"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19752tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19753let Inst{2-2} = 0b1;
19754let Inst{7-7} = 0b1;
19755let Inst{13-13} = 0b1;
19756let Inst{31-21} = 0b10101011000;
19757let isPredicated = 1;
19758let isPredicatedFalse = 1;
19759let addrMode = PostInc;
19760let accessSize = ByteAccess;
19761let isPredicatedNew = 1;
19762let mayStore = 1;
19763let BaseOpcode = "S2_storerb_pi";
19764let isNVStorable = 1;
19765let Constraints = "$Rx32 = $Rx32in";
19766}
19767def S2_pstorerbnewf_io : HInst<
19768(outs),
19769(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19770"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19771tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19772let Inst{2-2} = 0b0;
19773let Inst{12-11} = 0b00;
19774let Inst{31-21} = 0b01000100101;
19775let isPredicated = 1;
19776let isPredicatedFalse = 1;
19777let addrMode = BaseImmOffset;
19778let accessSize = ByteAccess;
19779let isNVStore = 1;
19780let isNewValue = 1;
19781let isRestrictNoSlot1Store = 1;
19782let mayStore = 1;
19783let BaseOpcode = "S2_storerb_io";
19784let CextOpcode = "S2_storerb";
19785let InputType = "imm";
19786let isExtendable = 1;
19787let opExtendable = 2;
19788let isExtentSigned = 0;
19789let opExtentBits = 6;
19790let opExtentAlign = 0;
19791let opNewValue = 3;
19792}
19793def S2_pstorerbnewf_pi : HInst<
19794(outs IntRegs:$Rx32),
19795(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19796"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19797tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19798let Inst{2-2} = 0b1;
19799let Inst{7-7} = 0b0;
19800let Inst{13-11} = 0b100;
19801let Inst{31-21} = 0b10101011101;
19802let isPredicated = 1;
19803let isPredicatedFalse = 1;
19804let addrMode = PostInc;
19805let accessSize = ByteAccess;
19806let isNVStore = 1;
19807let isNewValue = 1;
19808let isRestrictNoSlot1Store = 1;
19809let mayStore = 1;
19810let BaseOpcode = "S2_storerb_pi";
19811let CextOpcode = "S2_storerb";
19812let opNewValue = 4;
19813let Constraints = "$Rx32 = $Rx32in";
19814}
19815def S2_pstorerbnewf_zomap : HInst<
19816(outs),
19817(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19818"if (!$Pv4) memb($Rs32) = $Nt8.new",
19819tc_011e0e9d, TypeMAPPING> {
19820let isPseudo = 1;
19821let isCodeGenOnly = 1;
19822let opNewValue = 2;
19823}
19824def S2_pstorerbnewfnew_pi : HInst<
19825(outs IntRegs:$Rx32),
19826(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19827"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19828tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19829let Inst{2-2} = 0b1;
19830let Inst{7-7} = 0b1;
19831let Inst{13-11} = 0b100;
19832let Inst{31-21} = 0b10101011101;
19833let isPredicated = 1;
19834let isPredicatedFalse = 1;
19835let addrMode = PostInc;
19836let accessSize = ByteAccess;
19837let isNVStore = 1;
19838let isPredicatedNew = 1;
19839let isNewValue = 1;
19840let isRestrictNoSlot1Store = 1;
19841let mayStore = 1;
19842let BaseOpcode = "S2_storerb_pi";
19843let CextOpcode = "S2_storerb";
19844let opNewValue = 4;
19845let Constraints = "$Rx32 = $Rx32in";
19846}
19847def S2_pstorerbnewt_io : HInst<
19848(outs),
19849(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19850"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19851tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19852let Inst{2-2} = 0b0;
19853let Inst{12-11} = 0b00;
19854let Inst{31-21} = 0b01000000101;
19855let isPredicated = 1;
19856let addrMode = BaseImmOffset;
19857let accessSize = ByteAccess;
19858let isNVStore = 1;
19859let isNewValue = 1;
19860let isRestrictNoSlot1Store = 1;
19861let mayStore = 1;
19862let BaseOpcode = "S2_storerb_io";
19863let CextOpcode = "S2_storerb";
19864let InputType = "imm";
19865let isExtendable = 1;
19866let opExtendable = 2;
19867let isExtentSigned = 0;
19868let opExtentBits = 6;
19869let opExtentAlign = 0;
19870let opNewValue = 3;
19871}
19872def S2_pstorerbnewt_pi : HInst<
19873(outs IntRegs:$Rx32),
19874(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19875"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19876tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19877let Inst{2-2} = 0b0;
19878let Inst{7-7} = 0b0;
19879let Inst{13-11} = 0b100;
19880let Inst{31-21} = 0b10101011101;
19881let isPredicated = 1;
19882let addrMode = PostInc;
19883let accessSize = ByteAccess;
19884let isNVStore = 1;
19885let isNewValue = 1;
19886let isRestrictNoSlot1Store = 1;
19887let mayStore = 1;
19888let BaseOpcode = "S2_storerb_pi";
19889let CextOpcode = "S2_storerb";
19890let opNewValue = 4;
19891let Constraints = "$Rx32 = $Rx32in";
19892}
19893def S2_pstorerbnewt_zomap : HInst<
19894(outs),
19895(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19896"if ($Pv4) memb($Rs32) = $Nt8.new",
19897tc_011e0e9d, TypeMAPPING> {
19898let isPseudo = 1;
19899let isCodeGenOnly = 1;
19900let opNewValue = 2;
19901}
19902def S2_pstorerbnewtnew_pi : HInst<
19903(outs IntRegs:$Rx32),
19904(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19905"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19906tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19907let Inst{2-2} = 0b0;
19908let Inst{7-7} = 0b1;
19909let Inst{13-11} = 0b100;
19910let Inst{31-21} = 0b10101011101;
19911let isPredicated = 1;
19912let addrMode = PostInc;
19913let accessSize = ByteAccess;
19914let isNVStore = 1;
19915let isPredicatedNew = 1;
19916let isNewValue = 1;
19917let isRestrictNoSlot1Store = 1;
19918let mayStore = 1;
19919let BaseOpcode = "S2_storerb_pi";
19920let CextOpcode = "S2_storerb";
19921let opNewValue = 4;
19922let Constraints = "$Rx32 = $Rx32in";
19923}
19924def S2_pstorerbt_io : HInst<
19925(outs),
19926(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19927"if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19928tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19929let Inst{2-2} = 0b0;
19930let Inst{31-21} = 0b01000000000;
19931let isPredicated = 1;
19932let addrMode = BaseImmOffset;
19933let accessSize = ByteAccess;
19934let mayStore = 1;
19935let BaseOpcode = "S2_storerb_io";
19936let CextOpcode = "S2_storerb";
19937let InputType = "imm";
19938let isNVStorable = 1;
19939let isExtendable = 1;
19940let opExtendable = 2;
19941let isExtentSigned = 0;
19942let opExtentBits = 6;
19943let opExtentAlign = 0;
19944}
19945def S2_pstorerbt_pi : HInst<
19946(outs IntRegs:$Rx32),
19947(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19948"if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19949tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19950let Inst{2-2} = 0b0;
19951let Inst{7-7} = 0b0;
19952let Inst{13-13} = 0b1;
19953let Inst{31-21} = 0b10101011000;
19954let isPredicated = 1;
19955let addrMode = PostInc;
19956let accessSize = ByteAccess;
19957let mayStore = 1;
19958let BaseOpcode = "S2_storerb_pi";
19959let isNVStorable = 1;
19960let Constraints = "$Rx32 = $Rx32in";
19961}
19962def S2_pstorerbt_zomap : HInst<
19963(outs),
19964(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19965"if ($Pv4) memb($Rs32) = $Rt32",
19966tc_8035e91f, TypeMAPPING> {
19967let isPseudo = 1;
19968let isCodeGenOnly = 1;
19969}
19970def S2_pstorerbtnew_pi : HInst<
19971(outs IntRegs:$Rx32),
19972(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19973"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19974tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19975let Inst{2-2} = 0b0;
19976let Inst{7-7} = 0b1;
19977let Inst{13-13} = 0b1;
19978let Inst{31-21} = 0b10101011000;
19979let isPredicated = 1;
19980let addrMode = PostInc;
19981let accessSize = ByteAccess;
19982let isPredicatedNew = 1;
19983let mayStore = 1;
19984let BaseOpcode = "S2_storerb_pi";
19985let isNVStorable = 1;
19986let Constraints = "$Rx32 = $Rx32in";
19987}
19988def S2_pstorerdf_io : HInst<
19989(outs),
19990(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19991"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
19992tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19993let Inst{2-2} = 0b0;
19994let Inst{31-21} = 0b01000100110;
19995let isPredicated = 1;
19996let isPredicatedFalse = 1;
19997let addrMode = BaseImmOffset;
19998let accessSize = DoubleWordAccess;
19999let mayStore = 1;
20000let BaseOpcode = "S2_storerd_io";
20001let CextOpcode = "S2_storerd";
20002let InputType = "imm";
20003let isExtendable = 1;
20004let opExtendable = 2;
20005let isExtentSigned = 0;
20006let opExtentBits = 9;
20007let opExtentAlign = 3;
20008}
20009def S2_pstorerdf_pi : HInst<
20010(outs IntRegs:$Rx32),
20011(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20012"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
20013tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20014let Inst{2-2} = 0b1;
20015let Inst{7-7} = 0b0;
20016let Inst{13-13} = 0b1;
20017let Inst{31-21} = 0b10101011110;
20018let isPredicated = 1;
20019let isPredicatedFalse = 1;
20020let addrMode = PostInc;
20021let accessSize = DoubleWordAccess;
20022let mayStore = 1;
20023let BaseOpcode = "S2_storerd_pi";
20024let CextOpcode = "S2_storerd";
20025let Constraints = "$Rx32 = $Rx32in";
20026}
20027def S2_pstorerdf_zomap : HInst<
20028(outs),
20029(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20030"if (!$Pv4) memd($Rs32) = $Rtt32",
20031tc_8035e91f, TypeMAPPING> {
20032let isPseudo = 1;
20033let isCodeGenOnly = 1;
20034}
20035def S2_pstorerdfnew_pi : HInst<
20036(outs IntRegs:$Rx32),
20037(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20038"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20039tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20040let Inst{2-2} = 0b1;
20041let Inst{7-7} = 0b1;
20042let Inst{13-13} = 0b1;
20043let Inst{31-21} = 0b10101011110;
20044let isPredicated = 1;
20045let isPredicatedFalse = 1;
20046let addrMode = PostInc;
20047let accessSize = DoubleWordAccess;
20048let isPredicatedNew = 1;
20049let mayStore = 1;
20050let BaseOpcode = "S2_storerd_pi";
20051let CextOpcode = "S2_storerd";
20052let Constraints = "$Rx32 = $Rx32in";
20053}
20054def S2_pstorerdt_io : HInst<
20055(outs),
20056(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20057"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
20058tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20059let Inst{2-2} = 0b0;
20060let Inst{31-21} = 0b01000000110;
20061let isPredicated = 1;
20062let addrMode = BaseImmOffset;
20063let accessSize = DoubleWordAccess;
20064let mayStore = 1;
20065let BaseOpcode = "S2_storerd_io";
20066let CextOpcode = "S2_storerd";
20067let InputType = "imm";
20068let isExtendable = 1;
20069let opExtendable = 2;
20070let isExtentSigned = 0;
20071let opExtentBits = 9;
20072let opExtentAlign = 3;
20073}
20074def S2_pstorerdt_pi : HInst<
20075(outs IntRegs:$Rx32),
20076(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20077"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
20078tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20079let Inst{2-2} = 0b0;
20080let Inst{7-7} = 0b0;
20081let Inst{13-13} = 0b1;
20082let Inst{31-21} = 0b10101011110;
20083let isPredicated = 1;
20084let addrMode = PostInc;
20085let accessSize = DoubleWordAccess;
20086let mayStore = 1;
20087let BaseOpcode = "S2_storerd_pi";
20088let CextOpcode = "S2_storerd";
20089let Constraints = "$Rx32 = $Rx32in";
20090}
20091def S2_pstorerdt_zomap : HInst<
20092(outs),
20093(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20094"if ($Pv4) memd($Rs32) = $Rtt32",
20095tc_8035e91f, TypeMAPPING> {
20096let isPseudo = 1;
20097let isCodeGenOnly = 1;
20098}
20099def S2_pstorerdtnew_pi : HInst<
20100(outs IntRegs:$Rx32),
20101(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20102"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20103tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20104let Inst{2-2} = 0b0;
20105let Inst{7-7} = 0b1;
20106let Inst{13-13} = 0b1;
20107let Inst{31-21} = 0b10101011110;
20108let isPredicated = 1;
20109let addrMode = PostInc;
20110let accessSize = DoubleWordAccess;
20111let isPredicatedNew = 1;
20112let mayStore = 1;
20113let BaseOpcode = "S2_storerd_pi";
20114let CextOpcode = "S2_storerd";
20115let Constraints = "$Rx32 = $Rx32in";
20116}
20117def S2_pstorerff_io : HInst<
20118(outs),
20119(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20120"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20121tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20122let Inst{2-2} = 0b0;
20123let Inst{31-21} = 0b01000100011;
20124let isPredicated = 1;
20125let isPredicatedFalse = 1;
20126let addrMode = BaseImmOffset;
20127let accessSize = HalfWordAccess;
20128let mayStore = 1;
20129let BaseOpcode = "S2_storerf_io";
20130let CextOpcode = "S2_storerf";
20131let InputType = "imm";
20132let isExtendable = 1;
20133let opExtendable = 2;
20134let isExtentSigned = 0;
20135let opExtentBits = 7;
20136let opExtentAlign = 1;
20137}
20138def S2_pstorerff_pi : HInst<
20139(outs IntRegs:$Rx32),
20140(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20141"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20142tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20143let Inst{2-2} = 0b1;
20144let Inst{7-7} = 0b0;
20145let Inst{13-13} = 0b1;
20146let Inst{31-21} = 0b10101011011;
20147let isPredicated = 1;
20148let isPredicatedFalse = 1;
20149let addrMode = PostInc;
20150let accessSize = HalfWordAccess;
20151let mayStore = 1;
20152let BaseOpcode = "S2_storerf_pi";
20153let CextOpcode = "S2_storerf";
20154let Constraints = "$Rx32 = $Rx32in";
20155}
20156def S2_pstorerff_zomap : HInst<
20157(outs),
20158(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20159"if (!$Pv4) memh($Rs32) = $Rt32.h",
20160tc_8035e91f, TypeMAPPING> {
20161let isPseudo = 1;
20162let isCodeGenOnly = 1;
20163}
20164def S2_pstorerffnew_pi : HInst<
20165(outs IntRegs:$Rx32),
20166(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20167"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20168tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20169let Inst{2-2} = 0b1;
20170let Inst{7-7} = 0b1;
20171let Inst{13-13} = 0b1;
20172let Inst{31-21} = 0b10101011011;
20173let isPredicated = 1;
20174let isPredicatedFalse = 1;
20175let addrMode = PostInc;
20176let accessSize = HalfWordAccess;
20177let isPredicatedNew = 1;
20178let mayStore = 1;
20179let BaseOpcode = "S2_storerf_pi";
20180let CextOpcode = "S2_storerf";
20181let Constraints = "$Rx32 = $Rx32in";
20182}
20183def S2_pstorerft_io : HInst<
20184(outs),
20185(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20186"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20187tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20188let Inst{2-2} = 0b0;
20189let Inst{31-21} = 0b01000000011;
20190let isPredicated = 1;
20191let addrMode = BaseImmOffset;
20192let accessSize = HalfWordAccess;
20193let mayStore = 1;
20194let BaseOpcode = "S2_storerf_io";
20195let CextOpcode = "S2_storerf";
20196let InputType = "imm";
20197let isExtendable = 1;
20198let opExtendable = 2;
20199let isExtentSigned = 0;
20200let opExtentBits = 7;
20201let opExtentAlign = 1;
20202}
20203def S2_pstorerft_pi : HInst<
20204(outs IntRegs:$Rx32),
20205(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20206"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20207tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20208let Inst{2-2} = 0b0;
20209let Inst{7-7} = 0b0;
20210let Inst{13-13} = 0b1;
20211let Inst{31-21} = 0b10101011011;
20212let isPredicated = 1;
20213let addrMode = PostInc;
20214let accessSize = HalfWordAccess;
20215let mayStore = 1;
20216let BaseOpcode = "S2_storerf_pi";
20217let CextOpcode = "S2_storerf";
20218let Constraints = "$Rx32 = $Rx32in";
20219}
20220def S2_pstorerft_zomap : HInst<
20221(outs),
20222(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20223"if ($Pv4) memh($Rs32) = $Rt32.h",
20224tc_8035e91f, TypeMAPPING> {
20225let isPseudo = 1;
20226let isCodeGenOnly = 1;
20227}
20228def S2_pstorerftnew_pi : HInst<
20229(outs IntRegs:$Rx32),
20230(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20231"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20232tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20233let Inst{2-2} = 0b0;
20234let Inst{7-7} = 0b1;
20235let Inst{13-13} = 0b1;
20236let Inst{31-21} = 0b10101011011;
20237let isPredicated = 1;
20238let addrMode = PostInc;
20239let accessSize = HalfWordAccess;
20240let isPredicatedNew = 1;
20241let mayStore = 1;
20242let BaseOpcode = "S2_storerf_pi";
20243let CextOpcode = "S2_storerf";
20244let Constraints = "$Rx32 = $Rx32in";
20245}
20246def S2_pstorerhf_io : HInst<
20247(outs),
20248(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20249"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
20250tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20251let Inst{2-2} = 0b0;
20252let Inst{31-21} = 0b01000100010;
20253let isPredicated = 1;
20254let isPredicatedFalse = 1;
20255let addrMode = BaseImmOffset;
20256let accessSize = HalfWordAccess;
20257let mayStore = 1;
20258let BaseOpcode = "S2_storerh_io";
20259let CextOpcode = "S2_storerh";
20260let InputType = "imm";
20261let isNVStorable = 1;
20262let isExtendable = 1;
20263let opExtendable = 2;
20264let isExtentSigned = 0;
20265let opExtentBits = 7;
20266let opExtentAlign = 1;
20267}
20268def S2_pstorerhf_pi : HInst<
20269(outs IntRegs:$Rx32),
20270(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20271"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
20272tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20273let Inst{2-2} = 0b1;
20274let Inst{7-7} = 0b0;
20275let Inst{13-13} = 0b1;
20276let Inst{31-21} = 0b10101011010;
20277let isPredicated = 1;
20278let isPredicatedFalse = 1;
20279let addrMode = PostInc;
20280let accessSize = HalfWordAccess;
20281let mayStore = 1;
20282let BaseOpcode = "S2_storerh_pi";
20283let isNVStorable = 1;
20284let Constraints = "$Rx32 = $Rx32in";
20285}
20286def S2_pstorerhf_zomap : HInst<
20287(outs),
20288(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20289"if (!$Pv4) memh($Rs32) = $Rt32",
20290tc_8035e91f, TypeMAPPING> {
20291let isPseudo = 1;
20292let isCodeGenOnly = 1;
20293}
20294def S2_pstorerhfnew_pi : HInst<
20295(outs IntRegs:$Rx32),
20296(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20297"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20298tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20299let Inst{2-2} = 0b1;
20300let Inst{7-7} = 0b1;
20301let Inst{13-13} = 0b1;
20302let Inst{31-21} = 0b10101011010;
20303let isPredicated = 1;
20304let isPredicatedFalse = 1;
20305let addrMode = PostInc;
20306let accessSize = HalfWordAccess;
20307let isPredicatedNew = 1;
20308let mayStore = 1;
20309let BaseOpcode = "S2_storerh_pi";
20310let isNVStorable = 1;
20311let Constraints = "$Rx32 = $Rx32in";
20312}
20313def S2_pstorerhnewf_io : HInst<
20314(outs),
20315(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20316"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20317tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20318let Inst{2-2} = 0b0;
20319let Inst{12-11} = 0b01;
20320let Inst{31-21} = 0b01000100101;
20321let isPredicated = 1;
20322let isPredicatedFalse = 1;
20323let addrMode = BaseImmOffset;
20324let accessSize = HalfWordAccess;
20325let isNVStore = 1;
20326let isNewValue = 1;
20327let isRestrictNoSlot1Store = 1;
20328let mayStore = 1;
20329let BaseOpcode = "S2_storerh_io";
20330let CextOpcode = "S2_storerh";
20331let InputType = "imm";
20332let isExtendable = 1;
20333let opExtendable = 2;
20334let isExtentSigned = 0;
20335let opExtentBits = 7;
20336let opExtentAlign = 1;
20337let opNewValue = 3;
20338}
20339def S2_pstorerhnewf_pi : HInst<
20340(outs IntRegs:$Rx32),
20341(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20342"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20343tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20344let Inst{2-2} = 0b1;
20345let Inst{7-7} = 0b0;
20346let Inst{13-11} = 0b101;
20347let Inst{31-21} = 0b10101011101;
20348let isPredicated = 1;
20349let isPredicatedFalse = 1;
20350let addrMode = PostInc;
20351let accessSize = HalfWordAccess;
20352let isNVStore = 1;
20353let isNewValue = 1;
20354let isRestrictNoSlot1Store = 1;
20355let mayStore = 1;
20356let BaseOpcode = "S2_storerh_pi";
20357let CextOpcode = "S2_storerh";
20358let opNewValue = 4;
20359let Constraints = "$Rx32 = $Rx32in";
20360}
20361def S2_pstorerhnewf_zomap : HInst<
20362(outs),
20363(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20364"if (!$Pv4) memh($Rs32) = $Nt8.new",
20365tc_011e0e9d, TypeMAPPING> {
20366let isPseudo = 1;
20367let isCodeGenOnly = 1;
20368let opNewValue = 2;
20369}
20370def S2_pstorerhnewfnew_pi : HInst<
20371(outs IntRegs:$Rx32),
20372(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20373"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20374tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20375let Inst{2-2} = 0b1;
20376let Inst{7-7} = 0b1;
20377let Inst{13-11} = 0b101;
20378let Inst{31-21} = 0b10101011101;
20379let isPredicated = 1;
20380let isPredicatedFalse = 1;
20381let addrMode = PostInc;
20382let accessSize = HalfWordAccess;
20383let isNVStore = 1;
20384let isPredicatedNew = 1;
20385let isNewValue = 1;
20386let isRestrictNoSlot1Store = 1;
20387let mayStore = 1;
20388let BaseOpcode = "S2_storerh_pi";
20389let CextOpcode = "S2_storerh";
20390let opNewValue = 4;
20391let Constraints = "$Rx32 = $Rx32in";
20392}
20393def S2_pstorerhnewt_io : HInst<
20394(outs),
20395(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20396"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20397tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20398let Inst{2-2} = 0b0;
20399let Inst{12-11} = 0b01;
20400let Inst{31-21} = 0b01000000101;
20401let isPredicated = 1;
20402let addrMode = BaseImmOffset;
20403let accessSize = HalfWordAccess;
20404let isNVStore = 1;
20405let isNewValue = 1;
20406let isRestrictNoSlot1Store = 1;
20407let mayStore = 1;
20408let BaseOpcode = "S2_storerh_io";
20409let CextOpcode = "S2_storerh";
20410let InputType = "imm";
20411let isExtendable = 1;
20412let opExtendable = 2;
20413let isExtentSigned = 0;
20414let opExtentBits = 7;
20415let opExtentAlign = 1;
20416let opNewValue = 3;
20417}
20418def S2_pstorerhnewt_pi : HInst<
20419(outs IntRegs:$Rx32),
20420(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20421"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20422tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20423let Inst{2-2} = 0b0;
20424let Inst{7-7} = 0b0;
20425let Inst{13-11} = 0b101;
20426let Inst{31-21} = 0b10101011101;
20427let isPredicated = 1;
20428let addrMode = PostInc;
20429let accessSize = HalfWordAccess;
20430let isNVStore = 1;
20431let isNewValue = 1;
20432let isRestrictNoSlot1Store = 1;
20433let mayStore = 1;
20434let BaseOpcode = "S2_storerh_pi";
20435let CextOpcode = "S2_storerh";
20436let opNewValue = 4;
20437let Constraints = "$Rx32 = $Rx32in";
20438}
20439def S2_pstorerhnewt_zomap : HInst<
20440(outs),
20441(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20442"if ($Pv4) memh($Rs32) = $Nt8.new",
20443tc_011e0e9d, TypeMAPPING> {
20444let isPseudo = 1;
20445let isCodeGenOnly = 1;
20446let opNewValue = 2;
20447}
20448def S2_pstorerhnewtnew_pi : HInst<
20449(outs IntRegs:$Rx32),
20450(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20451"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20452tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20453let Inst{2-2} = 0b0;
20454let Inst{7-7} = 0b1;
20455let Inst{13-11} = 0b101;
20456let Inst{31-21} = 0b10101011101;
20457let isPredicated = 1;
20458let addrMode = PostInc;
20459let accessSize = HalfWordAccess;
20460let isNVStore = 1;
20461let isPredicatedNew = 1;
20462let isNewValue = 1;
20463let isRestrictNoSlot1Store = 1;
20464let mayStore = 1;
20465let BaseOpcode = "S2_storerh_pi";
20466let CextOpcode = "S2_storerh";
20467let opNewValue = 4;
20468let Constraints = "$Rx32 = $Rx32in";
20469}
20470def S2_pstorerht_io : HInst<
20471(outs),
20472(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20473"if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20474tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20475let Inst{2-2} = 0b0;
20476let Inst{31-21} = 0b01000000010;
20477let isPredicated = 1;
20478let addrMode = BaseImmOffset;
20479let accessSize = HalfWordAccess;
20480let mayStore = 1;
20481let BaseOpcode = "S2_storerh_io";
20482let CextOpcode = "S2_storerh";
20483let InputType = "imm";
20484let isNVStorable = 1;
20485let isExtendable = 1;
20486let opExtendable = 2;
20487let isExtentSigned = 0;
20488let opExtentBits = 7;
20489let opExtentAlign = 1;
20490}
20491def S2_pstorerht_pi : HInst<
20492(outs IntRegs:$Rx32),
20493(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20494"if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20495tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20496let Inst{2-2} = 0b0;
20497let Inst{7-7} = 0b0;
20498let Inst{13-13} = 0b1;
20499let Inst{31-21} = 0b10101011010;
20500let isPredicated = 1;
20501let addrMode = PostInc;
20502let accessSize = HalfWordAccess;
20503let mayStore = 1;
20504let BaseOpcode = "S2_storerh_pi";
20505let isNVStorable = 1;
20506let Constraints = "$Rx32 = $Rx32in";
20507}
20508def S2_pstorerht_zomap : HInst<
20509(outs),
20510(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20511"if ($Pv4) memh($Rs32) = $Rt32",
20512tc_8035e91f, TypeMAPPING> {
20513let isPseudo = 1;
20514let isCodeGenOnly = 1;
20515}
20516def S2_pstorerhtnew_pi : HInst<
20517(outs IntRegs:$Rx32),
20518(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20519"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20520tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20521let Inst{2-2} = 0b0;
20522let Inst{7-7} = 0b1;
20523let Inst{13-13} = 0b1;
20524let Inst{31-21} = 0b10101011010;
20525let isPredicated = 1;
20526let addrMode = PostInc;
20527let accessSize = HalfWordAccess;
20528let isPredicatedNew = 1;
20529let mayStore = 1;
20530let BaseOpcode = "S2_storerh_pi";
20531let isNVStorable = 1;
20532let Constraints = "$Rx32 = $Rx32in";
20533}
20534def S2_pstorerif_io : HInst<
20535(outs),
20536(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20537"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20538tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20539let Inst{2-2} = 0b0;
20540let Inst{31-21} = 0b01000100100;
20541let isPredicated = 1;
20542let isPredicatedFalse = 1;
20543let addrMode = BaseImmOffset;
20544let accessSize = WordAccess;
20545let mayStore = 1;
20546let BaseOpcode = "S2_storeri_io";
20547let CextOpcode = "S2_storeri";
20548let InputType = "imm";
20549let isNVStorable = 1;
20550let isExtendable = 1;
20551let opExtendable = 2;
20552let isExtentSigned = 0;
20553let opExtentBits = 8;
20554let opExtentAlign = 2;
20555}
20556def S2_pstorerif_pi : HInst<
20557(outs IntRegs:$Rx32),
20558(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20559"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20560tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20561let Inst{2-2} = 0b1;
20562let Inst{7-7} = 0b0;
20563let Inst{13-13} = 0b1;
20564let Inst{31-21} = 0b10101011100;
20565let isPredicated = 1;
20566let isPredicatedFalse = 1;
20567let addrMode = PostInc;
20568let accessSize = WordAccess;
20569let mayStore = 1;
20570let BaseOpcode = "S2_storeri_pi";
20571let isNVStorable = 1;
20572let Constraints = "$Rx32 = $Rx32in";
20573}
20574def S2_pstorerif_zomap : HInst<
20575(outs),
20576(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20577"if (!$Pv4) memw($Rs32) = $Rt32",
20578tc_8035e91f, TypeMAPPING> {
20579let isPseudo = 1;
20580let isCodeGenOnly = 1;
20581}
20582def S2_pstorerifnew_pi : HInst<
20583(outs IntRegs:$Rx32),
20584(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20585"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20586tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20587let Inst{2-2} = 0b1;
20588let Inst{7-7} = 0b1;
20589let Inst{13-13} = 0b1;
20590let Inst{31-21} = 0b10101011100;
20591let isPredicated = 1;
20592let isPredicatedFalse = 1;
20593let addrMode = PostInc;
20594let accessSize = WordAccess;
20595let isPredicatedNew = 1;
20596let mayStore = 1;
20597let BaseOpcode = "S2_storeri_pi";
20598let CextOpcode = "S2_storeri";
20599let isNVStorable = 1;
20600let Constraints = "$Rx32 = $Rx32in";
20601}
20602def S2_pstorerinewf_io : HInst<
20603(outs),
20604(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20605"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20606tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20607let Inst{2-2} = 0b0;
20608let Inst{12-11} = 0b10;
20609let Inst{31-21} = 0b01000100101;
20610let isPredicated = 1;
20611let isPredicatedFalse = 1;
20612let addrMode = BaseImmOffset;
20613let accessSize = WordAccess;
20614let isNVStore = 1;
20615let isNewValue = 1;
20616let isRestrictNoSlot1Store = 1;
20617let mayStore = 1;
20618let BaseOpcode = "S2_storeri_io";
20619let CextOpcode = "S2_storeri";
20620let InputType = "imm";
20621let isExtendable = 1;
20622let opExtendable = 2;
20623let isExtentSigned = 0;
20624let opExtentBits = 8;
20625let opExtentAlign = 2;
20626let opNewValue = 3;
20627}
20628def S2_pstorerinewf_pi : HInst<
20629(outs IntRegs:$Rx32),
20630(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20631"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20632tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20633let Inst{2-2} = 0b1;
20634let Inst{7-7} = 0b0;
20635let Inst{13-11} = 0b110;
20636let Inst{31-21} = 0b10101011101;
20637let isPredicated = 1;
20638let isPredicatedFalse = 1;
20639let addrMode = PostInc;
20640let accessSize = WordAccess;
20641let isNVStore = 1;
20642let isNewValue = 1;
20643let isRestrictNoSlot1Store = 1;
20644let mayStore = 1;
20645let BaseOpcode = "S2_storeri_pi";
20646let CextOpcode = "S2_storeri";
20647let opNewValue = 4;
20648let Constraints = "$Rx32 = $Rx32in";
20649}
20650def S2_pstorerinewf_zomap : HInst<
20651(outs),
20652(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20653"if (!$Pv4) memw($Rs32) = $Nt8.new",
20654tc_011e0e9d, TypeMAPPING> {
20655let isPseudo = 1;
20656let isCodeGenOnly = 1;
20657let opNewValue = 2;
20658}
20659def S2_pstorerinewfnew_pi : HInst<
20660(outs IntRegs:$Rx32),
20661(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20662"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20663tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20664let Inst{2-2} = 0b1;
20665let Inst{7-7} = 0b1;
20666let Inst{13-11} = 0b110;
20667let Inst{31-21} = 0b10101011101;
20668let isPredicated = 1;
20669let isPredicatedFalse = 1;
20670let addrMode = PostInc;
20671let accessSize = WordAccess;
20672let isNVStore = 1;
20673let isPredicatedNew = 1;
20674let isNewValue = 1;
20675let isRestrictNoSlot1Store = 1;
20676let mayStore = 1;
20677let BaseOpcode = "S2_storeri_pi";
20678let CextOpcode = "S2_storeri";
20679let opNewValue = 4;
20680let Constraints = "$Rx32 = $Rx32in";
20681}
20682def S2_pstorerinewt_io : HInst<
20683(outs),
20684(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20685"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20686tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20687let Inst{2-2} = 0b0;
20688let Inst{12-11} = 0b10;
20689let Inst{31-21} = 0b01000000101;
20690let isPredicated = 1;
20691let addrMode = BaseImmOffset;
20692let accessSize = WordAccess;
20693let isNVStore = 1;
20694let isNewValue = 1;
20695let isRestrictNoSlot1Store = 1;
20696let mayStore = 1;
20697let BaseOpcode = "S2_storeri_io";
20698let CextOpcode = "S2_storeri";
20699let InputType = "imm";
20700let isExtendable = 1;
20701let opExtendable = 2;
20702let isExtentSigned = 0;
20703let opExtentBits = 8;
20704let opExtentAlign = 2;
20705let opNewValue = 3;
20706}
20707def S2_pstorerinewt_pi : HInst<
20708(outs IntRegs:$Rx32),
20709(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20710"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20711tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20712let Inst{2-2} = 0b0;
20713let Inst{7-7} = 0b0;
20714let Inst{13-11} = 0b110;
20715let Inst{31-21} = 0b10101011101;
20716let isPredicated = 1;
20717let addrMode = PostInc;
20718let accessSize = WordAccess;
20719let isNVStore = 1;
20720let isNewValue = 1;
20721let isRestrictNoSlot1Store = 1;
20722let mayStore = 1;
20723let BaseOpcode = "S2_storeri_pi";
20724let CextOpcode = "S2_storeri";
20725let opNewValue = 4;
20726let Constraints = "$Rx32 = $Rx32in";
20727}
20728def S2_pstorerinewt_zomap : HInst<
20729(outs),
20730(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20731"if ($Pv4) memw($Rs32) = $Nt8.new",
20732tc_011e0e9d, TypeMAPPING> {
20733let isPseudo = 1;
20734let isCodeGenOnly = 1;
20735let opNewValue = 2;
20736}
20737def S2_pstorerinewtnew_pi : HInst<
20738(outs IntRegs:$Rx32),
20739(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20740"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20741tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20742let Inst{2-2} = 0b0;
20743let Inst{7-7} = 0b1;
20744let Inst{13-11} = 0b110;
20745let Inst{31-21} = 0b10101011101;
20746let isPredicated = 1;
20747let addrMode = PostInc;
20748let accessSize = WordAccess;
20749let isNVStore = 1;
20750let isPredicatedNew = 1;
20751let isNewValue = 1;
20752let isRestrictNoSlot1Store = 1;
20753let mayStore = 1;
20754let BaseOpcode = "S2_storeri_pi";
20755let CextOpcode = "S2_storeri";
20756let opNewValue = 4;
20757let Constraints = "$Rx32 = $Rx32in";
20758}
20759def S2_pstorerit_io : HInst<
20760(outs),
20761(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20762"if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20763tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20764let Inst{2-2} = 0b0;
20765let Inst{31-21} = 0b01000000100;
20766let isPredicated = 1;
20767let addrMode = BaseImmOffset;
20768let accessSize = WordAccess;
20769let mayStore = 1;
20770let BaseOpcode = "S2_storeri_io";
20771let CextOpcode = "S2_storeri";
20772let InputType = "imm";
20773let isNVStorable = 1;
20774let isExtendable = 1;
20775let opExtendable = 2;
20776let isExtentSigned = 0;
20777let opExtentBits = 8;
20778let opExtentAlign = 2;
20779}
20780def S2_pstorerit_pi : HInst<
20781(outs IntRegs:$Rx32),
20782(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20783"if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20784tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20785let Inst{2-2} = 0b0;
20786let Inst{7-7} = 0b0;
20787let Inst{13-13} = 0b1;
20788let Inst{31-21} = 0b10101011100;
20789let isPredicated = 1;
20790let addrMode = PostInc;
20791let accessSize = WordAccess;
20792let mayStore = 1;
20793let BaseOpcode = "S2_storeri_pi";
20794let isNVStorable = 1;
20795let Constraints = "$Rx32 = $Rx32in";
20796}
20797def S2_pstorerit_zomap : HInst<
20798(outs),
20799(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20800"if ($Pv4) memw($Rs32) = $Rt32",
20801tc_8035e91f, TypeMAPPING> {
20802let isPseudo = 1;
20803let isCodeGenOnly = 1;
20804}
20805def S2_pstoreritnew_pi : HInst<
20806(outs IntRegs:$Rx32),
20807(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20808"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20809tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20810let Inst{2-2} = 0b0;
20811let Inst{7-7} = 0b1;
20812let Inst{13-13} = 0b1;
20813let Inst{31-21} = 0b10101011100;
20814let isPredicated = 1;
20815let addrMode = PostInc;
20816let accessSize = WordAccess;
20817let isPredicatedNew = 1;
20818let mayStore = 1;
20819let BaseOpcode = "S2_storeri_pi";
20820let isNVStorable = 1;
20821let Constraints = "$Rx32 = $Rx32in";
20822}
20823def S2_setbit_i : HInst<
20824(outs IntRegs:$Rd32),
20825(ins IntRegs:$Rs32, u5_0Imm:$Ii),
20826"$Rd32 = setbit($Rs32,#$Ii)",
20827tc_5da50c4b, TypeS_2op>, Enc_a05677 {
20828let Inst{7-5} = 0b000;
20829let Inst{13-13} = 0b0;
20830let Inst{31-21} = 0b10001100110;
20831let hasNewValue = 1;
20832let opNewValue = 0;
20833}
20834def S2_setbit_r : HInst<
20835(outs IntRegs:$Rd32),
20836(ins IntRegs:$Rs32, IntRegs:$Rt32),
20837"$Rd32 = setbit($Rs32,$Rt32)",
20838tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
20839let Inst{7-5} = 0b000;
20840let Inst{13-13} = 0b0;
20841let Inst{31-21} = 0b11000110100;
20842let hasNewValue = 1;
20843let opNewValue = 0;
20844}
20845def S2_shuffeb : HInst<
20846(outs DoubleRegs:$Rdd32),
20847(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20848"$Rdd32 = shuffeb($Rss32,$Rtt32)",
20849tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20850let Inst{7-5} = 0b010;
20851let Inst{13-13} = 0b0;
20852let Inst{31-21} = 0b11000001000;
20853}
20854def S2_shuffeh : HInst<
20855(outs DoubleRegs:$Rdd32),
20856(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20857"$Rdd32 = shuffeh($Rss32,$Rtt32)",
20858tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20859let Inst{7-5} = 0b110;
20860let Inst{13-13} = 0b0;
20861let Inst{31-21} = 0b11000001000;
20862}
20863def S2_shuffob : HInst<
20864(outs DoubleRegs:$Rdd32),
20865(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20866"$Rdd32 = shuffob($Rtt32,$Rss32)",
20867tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20868let Inst{7-5} = 0b100;
20869let Inst{13-13} = 0b0;
20870let Inst{31-21} = 0b11000001000;
20871}
20872def S2_shuffoh : HInst<
20873(outs DoubleRegs:$Rdd32),
20874(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20875"$Rdd32 = shuffoh($Rtt32,$Rss32)",
20876tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20877let Inst{7-5} = 0b000;
20878let Inst{13-13} = 0b0;
20879let Inst{31-21} = 0b11000001100;
20880}
20881def S2_storerb_io : HInst<
20882(outs),
20883(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20884"memb($Rs32+#$Ii) = $Rt32",
20885tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20886let Inst{24-21} = 0b1000;
20887let Inst{31-27} = 0b10100;
20888let addrMode = BaseImmOffset;
20889let accessSize = ByteAccess;
20890let mayStore = 1;
20891let BaseOpcode = "S2_storerb_io";
20892let CextOpcode = "S2_storerb";
20893let InputType = "imm";
20894let isNVStorable = 1;
20895let isPredicable = 1;
20896let isExtendable = 1;
20897let opExtendable = 1;
20898let isExtentSigned = 1;
20899let opExtentBits = 11;
20900let opExtentAlign = 0;
20901}
20902def S2_storerb_pbr : HInst<
20903(outs IntRegs:$Rx32),
20904(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20905"memb($Rx32++$Mu2:brev) = $Rt32",
20906tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20907let Inst{7-0} = 0b00000000;
20908let Inst{31-21} = 0b10101111000;
20909let addrMode = PostInc;
20910let accessSize = ByteAccess;
20911let mayStore = 1;
20912let BaseOpcode = "S2_storerb_pbr";
20913let isNVStorable = 1;
20914let Constraints = "$Rx32 = $Rx32in";
20915}
20916def S2_storerb_pci : HInst<
20917(outs IntRegs:$Rx32),
20918(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20919"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20920tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel {
20921let Inst{2-0} = 0b000;
20922let Inst{7-7} = 0b0;
20923let Inst{31-21} = 0b10101001000;
20924let addrMode = PostInc;
20925let accessSize = ByteAccess;
20926let mayStore = 1;
20927let Uses = [CS];
20928let BaseOpcode = "S2_storerb_pci";
20929let isNVStorable = 1;
20930let Constraints = "$Rx32 = $Rx32in";
20931}
20932def S2_storerb_pcr : HInst<
20933(outs IntRegs:$Rx32),
20934(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20935"memb($Rx32++I:circ($Mu2)) = $Rt32",
20936tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20937let Inst{7-0} = 0b00000010;
20938let Inst{31-21} = 0b10101001000;
20939let addrMode = PostInc;
20940let accessSize = ByteAccess;
20941let mayStore = 1;
20942let Uses = [CS];
20943let BaseOpcode = "S2_storerb_pcr";
20944let isNVStorable = 1;
20945let Constraints = "$Rx32 = $Rx32in";
20946}
20947def S2_storerb_pi : HInst<
20948(outs IntRegs:$Rx32),
20949(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20950"memb($Rx32++#$Ii) = $Rt32",
20951tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
20952let Inst{2-0} = 0b000;
20953let Inst{7-7} = 0b0;
20954let Inst{13-13} = 0b0;
20955let Inst{31-21} = 0b10101011000;
20956let addrMode = PostInc;
20957let accessSize = ByteAccess;
20958let mayStore = 1;
20959let BaseOpcode = "S2_storerb_pi";
20960let CextOpcode = "S2_storerb";
20961let isNVStorable = 1;
20962let isPredicable = 1;
20963let Constraints = "$Rx32 = $Rx32in";
20964}
20965def S2_storerb_pr : HInst<
20966(outs IntRegs:$Rx32),
20967(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20968"memb($Rx32++$Mu2) = $Rt32",
20969tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20970let Inst{7-0} = 0b00000000;
20971let Inst{31-21} = 0b10101101000;
20972let addrMode = PostInc;
20973let accessSize = ByteAccess;
20974let mayStore = 1;
20975let BaseOpcode = "S2_storerb_pr";
20976let isNVStorable = 1;
20977let Constraints = "$Rx32 = $Rx32in";
20978}
20979def S2_storerb_zomap : HInst<
20980(outs),
20981(ins IntRegs:$Rs32, IntRegs:$Rt32),
20982"memb($Rs32) = $Rt32",
20983tc_ae5babd7, TypeMAPPING> {
20984let isPseudo = 1;
20985let isCodeGenOnly = 1;
20986}
20987def S2_storerbgp : HInst<
20988(outs),
20989(ins u32_0Imm:$Ii, IntRegs:$Rt32),
20990"memb(gp+#$Ii) = $Rt32",
20991tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
20992let Inst{24-21} = 0b0000;
20993let Inst{31-27} = 0b01001;
20994let accessSize = ByteAccess;
20995let mayStore = 1;
20996let Uses = [GP];
20997let BaseOpcode = "S2_storerbabs";
20998let isNVStorable = 1;
20999let isPredicable = 1;
21000let opExtendable = 0;
21001let isExtentSigned = 0;
21002let opExtentBits = 16;
21003let opExtentAlign = 0;
21004}
21005def S2_storerbnew_io : HInst<
21006(outs),
21007(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
21008"memb($Rs32+#$Ii) = $Nt8.new",
21009tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel {
21010let Inst{12-11} = 0b00;
21011let Inst{24-21} = 0b1101;
21012let Inst{31-27} = 0b10100;
21013let addrMode = BaseImmOffset;
21014let accessSize = ByteAccess;
21015let isNVStore = 1;
21016let isNewValue = 1;
21017let isRestrictNoSlot1Store = 1;
21018let mayStore = 1;
21019let BaseOpcode = "S2_storerb_io";
21020let CextOpcode = "S2_storerb";
21021let InputType = "imm";
21022let isPredicable = 1;
21023let isExtendable = 1;
21024let opExtendable = 1;
21025let isExtentSigned = 1;
21026let opExtentBits = 11;
21027let opExtentAlign = 0;
21028let opNewValue = 2;
21029}
21030def S2_storerbnew_pbr : HInst<
21031(outs IntRegs:$Rx32),
21032(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21033"memb($Rx32++$Mu2:brev) = $Nt8.new",
21034tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21035let Inst{7-0} = 0b00000000;
21036let Inst{12-11} = 0b00;
21037let Inst{31-21} = 0b10101111101;
21038let addrMode = PostInc;
21039let accessSize = ByteAccess;
21040let isNVStore = 1;
21041let isNewValue = 1;
21042let isRestrictNoSlot1Store = 1;
21043let mayStore = 1;
21044let BaseOpcode = "S2_storerb_pbr";
21045let opNewValue = 3;
21046let Constraints = "$Rx32 = $Rx32in";
21047}
21048def S2_storerbnew_pci : HInst<
21049(outs IntRegs:$Rx32),
21050(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21051"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21052tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel {
21053let Inst{2-0} = 0b000;
21054let Inst{7-7} = 0b0;
21055let Inst{12-11} = 0b00;
21056let Inst{31-21} = 0b10101001101;
21057let addrMode = PostInc;
21058let accessSize = ByteAccess;
21059let isNVStore = 1;
21060let isNewValue = 1;
21061let isRestrictNoSlot1Store = 1;
21062let mayStore = 1;
21063let Uses = [CS];
21064let BaseOpcode = "S2_storerb_pci";
21065let opNewValue = 4;
21066let Constraints = "$Rx32 = $Rx32in";
21067}
21068def S2_storerbnew_pcr : HInst<
21069(outs IntRegs:$Rx32),
21070(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21071"memb($Rx32++I:circ($Mu2)) = $Nt8.new",
21072tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21073let Inst{7-0} = 0b00000010;
21074let Inst{12-11} = 0b00;
21075let Inst{31-21} = 0b10101001101;
21076let addrMode = PostInc;
21077let accessSize = ByteAccess;
21078let isNVStore = 1;
21079let isNewValue = 1;
21080let isRestrictNoSlot1Store = 1;
21081let mayStore = 1;
21082let Uses = [CS];
21083let BaseOpcode = "S2_storerb_pcr";
21084let opNewValue = 3;
21085let Constraints = "$Rx32 = $Rx32in";
21086}
21087def S2_storerbnew_pi : HInst<
21088(outs IntRegs:$Rx32),
21089(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
21090"memb($Rx32++#$Ii) = $Nt8.new",
21091tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel {
21092let Inst{2-0} = 0b000;
21093let Inst{7-7} = 0b0;
21094let Inst{13-11} = 0b000;
21095let Inst{31-21} = 0b10101011101;
21096let addrMode = PostInc;
21097let accessSize = ByteAccess;
21098let isNVStore = 1;
21099let isNewValue = 1;
21100let isRestrictNoSlot1Store = 1;
21101let mayStore = 1;
21102let BaseOpcode = "S2_storerb_pi";
21103let isNVStorable = 1;
21104let isPredicable = 1;
21105let opNewValue = 3;
21106let Constraints = "$Rx32 = $Rx32in";
21107}
21108def S2_storerbnew_pr : HInst<
21109(outs IntRegs:$Rx32),
21110(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21111"memb($Rx32++$Mu2) = $Nt8.new",
21112tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21113let Inst{7-0} = 0b00000000;
21114let Inst{12-11} = 0b00;
21115let Inst{31-21} = 0b10101101101;
21116let addrMode = PostInc;
21117let accessSize = ByteAccess;
21118let isNVStore = 1;
21119let isNewValue = 1;
21120let isRestrictNoSlot1Store = 1;
21121let mayStore = 1;
21122let BaseOpcode = "S2_storerb_pr";
21123let opNewValue = 3;
21124let Constraints = "$Rx32 = $Rx32in";
21125}
21126def S2_storerbnew_zomap : HInst<
21127(outs),
21128(ins IntRegs:$Rs32, IntRegs:$Nt8),
21129"memb($Rs32) = $Nt8.new",
21130tc_5deb5e47, TypeMAPPING> {
21131let isPseudo = 1;
21132let isCodeGenOnly = 1;
21133let opNewValue = 1;
21134}
21135def S2_storerbnewgp : HInst<
21136(outs),
21137(ins u32_0Imm:$Ii, IntRegs:$Nt8),
21138"memb(gp+#$Ii) = $Nt8.new",
21139tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
21140let Inst{12-11} = 0b00;
21141let Inst{24-21} = 0b0101;
21142let Inst{31-27} = 0b01001;
21143let accessSize = ByteAccess;
21144let isNVStore = 1;
21145let isNewValue = 1;
21146let isRestrictNoSlot1Store = 1;
21147let mayStore = 1;
21148let Uses = [GP];
21149let BaseOpcode = "S2_storerbabs";
21150let isPredicable = 1;
21151let opExtendable = 0;
21152let isExtentSigned = 0;
21153let opExtentBits = 16;
21154let opExtentAlign = 0;
21155let opNewValue = 1;
21156}
21157def S2_storerd_io : HInst<
21158(outs),
21159(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
21160"memd($Rs32+#$Ii) = $Rtt32",
21161tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
21162let Inst{24-21} = 0b1110;
21163let Inst{31-27} = 0b10100;
21164let addrMode = BaseImmOffset;
21165let accessSize = DoubleWordAccess;
21166let mayStore = 1;
21167let BaseOpcode = "S2_storerd_io";
21168let CextOpcode = "S2_storerd";
21169let InputType = "imm";
21170let isPredicable = 1;
21171let isExtendable = 1;
21172let opExtendable = 1;
21173let isExtentSigned = 1;
21174let opExtentBits = 14;
21175let opExtentAlign = 3;
21176}
21177def S2_storerd_pbr : HInst<
21178(outs IntRegs:$Rx32),
21179(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21180"memd($Rx32++$Mu2:brev) = $Rtt32",
21181tc_a2b365d2, TypeST>, Enc_928ca1 {
21182let Inst{7-0} = 0b00000000;
21183let Inst{31-21} = 0b10101111110;
21184let addrMode = PostInc;
21185let accessSize = DoubleWordAccess;
21186let mayStore = 1;
21187let Constraints = "$Rx32 = $Rx32in";
21188}
21189def S2_storerd_pci : HInst<
21190(outs IntRegs:$Rx32),
21191(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21192"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
21193tc_b4dc7630, TypeST>, Enc_395cc4 {
21194let Inst{2-0} = 0b000;
21195let Inst{7-7} = 0b0;
21196let Inst{31-21} = 0b10101001110;
21197let addrMode = PostInc;
21198let accessSize = DoubleWordAccess;
21199let mayStore = 1;
21200let Uses = [CS];
21201let Constraints = "$Rx32 = $Rx32in";
21202}
21203def S2_storerd_pcr : HInst<
21204(outs IntRegs:$Rx32),
21205(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21206"memd($Rx32++I:circ($Mu2)) = $Rtt32",
21207tc_a2b365d2, TypeST>, Enc_928ca1 {
21208let Inst{7-0} = 0b00000010;
21209let Inst{31-21} = 0b10101001110;
21210let addrMode = PostInc;
21211let accessSize = DoubleWordAccess;
21212let mayStore = 1;
21213let Uses = [CS];
21214let Constraints = "$Rx32 = $Rx32in";
21215}
21216def S2_storerd_pi : HInst<
21217(outs IntRegs:$Rx32),
21218(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
21219"memd($Rx32++#$Ii) = $Rtt32",
21220tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
21221let Inst{2-0} = 0b000;
21222let Inst{7-7} = 0b0;
21223let Inst{13-13} = 0b0;
21224let Inst{31-21} = 0b10101011110;
21225let addrMode = PostInc;
21226let accessSize = DoubleWordAccess;
21227let mayStore = 1;
21228let BaseOpcode = "S2_storerd_pi";
21229let CextOpcode = "S2_storerd";
21230let isPredicable = 1;
21231let Constraints = "$Rx32 = $Rx32in";
21232}
21233def S2_storerd_pr : HInst<
21234(outs IntRegs:$Rx32),
21235(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21236"memd($Rx32++$Mu2) = $Rtt32",
21237tc_a2b365d2, TypeST>, Enc_928ca1 {
21238let Inst{7-0} = 0b00000000;
21239let Inst{31-21} = 0b10101101110;
21240let addrMode = PostInc;
21241let accessSize = DoubleWordAccess;
21242let mayStore = 1;
21243let Constraints = "$Rx32 = $Rx32in";
21244}
21245def S2_storerd_zomap : HInst<
21246(outs),
21247(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
21248"memd($Rs32) = $Rtt32",
21249tc_ae5babd7, TypeMAPPING> {
21250let isPseudo = 1;
21251let isCodeGenOnly = 1;
21252}
21253def S2_storerdgp : HInst<
21254(outs),
21255(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
21256"memd(gp+#$Ii) = $Rtt32",
21257tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
21258let Inst{24-21} = 0b0110;
21259let Inst{31-27} = 0b01001;
21260let accessSize = DoubleWordAccess;
21261let mayStore = 1;
21262let Uses = [GP];
21263let BaseOpcode = "S2_storerdabs";
21264let isPredicable = 1;
21265let opExtendable = 0;
21266let isExtentSigned = 0;
21267let opExtentBits = 19;
21268let opExtentAlign = 3;
21269}
21270def S2_storerf_io : HInst<
21271(outs),
21272(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21273"memh($Rs32+#$Ii) = $Rt32.h",
21274tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21275let Inst{24-21} = 0b1011;
21276let Inst{31-27} = 0b10100;
21277let addrMode = BaseImmOffset;
21278let accessSize = HalfWordAccess;
21279let mayStore = 1;
21280let BaseOpcode = "S2_storerf_io";
21281let CextOpcode = "S2_storerf";
21282let InputType = "imm";
21283let isPredicable = 1;
21284let isExtendable = 1;
21285let opExtendable = 1;
21286let isExtentSigned = 1;
21287let opExtentBits = 12;
21288let opExtentAlign = 1;
21289}
21290def S2_storerf_pbr : HInst<
21291(outs IntRegs:$Rx32),
21292(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21293"memh($Rx32++$Mu2:brev) = $Rt32.h",
21294tc_a2b365d2, TypeST>, Enc_d5c73f {
21295let Inst{7-0} = 0b00000000;
21296let Inst{31-21} = 0b10101111011;
21297let addrMode = PostInc;
21298let accessSize = HalfWordAccess;
21299let mayStore = 1;
21300let Constraints = "$Rx32 = $Rx32in";
21301}
21302def S2_storerf_pci : HInst<
21303(outs IntRegs:$Rx32),
21304(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21305"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
21306tc_b4dc7630, TypeST>, Enc_935d9b {
21307let Inst{2-0} = 0b000;
21308let Inst{7-7} = 0b0;
21309let Inst{31-21} = 0b10101001011;
21310let addrMode = PostInc;
21311let accessSize = HalfWordAccess;
21312let mayStore = 1;
21313let Uses = [CS];
21314let Constraints = "$Rx32 = $Rx32in";
21315}
21316def S2_storerf_pcr : HInst<
21317(outs IntRegs:$Rx32),
21318(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21319"memh($Rx32++I:circ($Mu2)) = $Rt32.h",
21320tc_a2b365d2, TypeST>, Enc_d5c73f {
21321let Inst{7-0} = 0b00000010;
21322let Inst{31-21} = 0b10101001011;
21323let addrMode = PostInc;
21324let accessSize = HalfWordAccess;
21325let mayStore = 1;
21326let Uses = [CS];
21327let Constraints = "$Rx32 = $Rx32in";
21328}
21329def S2_storerf_pi : HInst<
21330(outs IntRegs:$Rx32),
21331(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21332"memh($Rx32++#$Ii) = $Rt32.h",
21333tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21334let Inst{2-0} = 0b000;
21335let Inst{7-7} = 0b0;
21336let Inst{13-13} = 0b0;
21337let Inst{31-21} = 0b10101011011;
21338let addrMode = PostInc;
21339let accessSize = HalfWordAccess;
21340let mayStore = 1;
21341let BaseOpcode = "S2_storerf_pi";
21342let CextOpcode = "S2_storerf";
21343let isPredicable = 1;
21344let Constraints = "$Rx32 = $Rx32in";
21345}
21346def S2_storerf_pr : HInst<
21347(outs IntRegs:$Rx32),
21348(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21349"memh($Rx32++$Mu2) = $Rt32.h",
21350tc_a2b365d2, TypeST>, Enc_d5c73f {
21351let Inst{7-0} = 0b00000000;
21352let Inst{31-21} = 0b10101101011;
21353let addrMode = PostInc;
21354let accessSize = HalfWordAccess;
21355let mayStore = 1;
21356let Constraints = "$Rx32 = $Rx32in";
21357}
21358def S2_storerf_zomap : HInst<
21359(outs),
21360(ins IntRegs:$Rs32, IntRegs:$Rt32),
21361"memh($Rs32) = $Rt32.h",
21362tc_ae5babd7, TypeMAPPING> {
21363let isPseudo = 1;
21364let isCodeGenOnly = 1;
21365}
21366def S2_storerfgp : HInst<
21367(outs),
21368(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21369"memh(gp+#$Ii) = $Rt32.h",
21370tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21371let Inst{24-21} = 0b0011;
21372let Inst{31-27} = 0b01001;
21373let accessSize = HalfWordAccess;
21374let mayStore = 1;
21375let Uses = [GP];
21376let BaseOpcode = "S2_storerfabs";
21377let isPredicable = 1;
21378let opExtendable = 0;
21379let isExtentSigned = 0;
21380let opExtentBits = 17;
21381let opExtentAlign = 1;
21382}
21383def S2_storerh_io : HInst<
21384(outs),
21385(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21386"memh($Rs32+#$Ii) = $Rt32",
21387tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21388let Inst{24-21} = 0b1010;
21389let Inst{31-27} = 0b10100;
21390let addrMode = BaseImmOffset;
21391let accessSize = HalfWordAccess;
21392let mayStore = 1;
21393let BaseOpcode = "S2_storerh_io";
21394let CextOpcode = "S2_storerh";
21395let InputType = "imm";
21396let isNVStorable = 1;
21397let isPredicable = 1;
21398let isExtendable = 1;
21399let opExtendable = 1;
21400let isExtentSigned = 1;
21401let opExtentBits = 12;
21402let opExtentAlign = 1;
21403}
21404def S2_storerh_pbr : HInst<
21405(outs IntRegs:$Rx32),
21406(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21407"memh($Rx32++$Mu2:brev) = $Rt32",
21408tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21409let Inst{7-0} = 0b00000000;
21410let Inst{31-21} = 0b10101111010;
21411let addrMode = PostInc;
21412let accessSize = HalfWordAccess;
21413let mayStore = 1;
21414let BaseOpcode = "S2_storerh_pbr";
21415let isNVStorable = 1;
21416let Constraints = "$Rx32 = $Rx32in";
21417}
21418def S2_storerh_pci : HInst<
21419(outs IntRegs:$Rx32),
21420(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21421"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21422tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel {
21423let Inst{2-0} = 0b000;
21424let Inst{7-7} = 0b0;
21425let Inst{31-21} = 0b10101001010;
21426let addrMode = PostInc;
21427let accessSize = HalfWordAccess;
21428let mayStore = 1;
21429let Uses = [CS];
21430let BaseOpcode = "S2_storerh_pci";
21431let isNVStorable = 1;
21432let Constraints = "$Rx32 = $Rx32in";
21433}
21434def S2_storerh_pcr : HInst<
21435(outs IntRegs:$Rx32),
21436(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21437"memh($Rx32++I:circ($Mu2)) = $Rt32",
21438tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21439let Inst{7-0} = 0b00000010;
21440let Inst{31-21} = 0b10101001010;
21441let addrMode = PostInc;
21442let accessSize = HalfWordAccess;
21443let mayStore = 1;
21444let Uses = [CS];
21445let BaseOpcode = "S2_storerh_pcr";
21446let isNVStorable = 1;
21447let Constraints = "$Rx32 = $Rx32in";
21448}
21449def S2_storerh_pi : HInst<
21450(outs IntRegs:$Rx32),
21451(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21452"memh($Rx32++#$Ii) = $Rt32",
21453tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21454let Inst{2-0} = 0b000;
21455let Inst{7-7} = 0b0;
21456let Inst{13-13} = 0b0;
21457let Inst{31-21} = 0b10101011010;
21458let addrMode = PostInc;
21459let accessSize = HalfWordAccess;
21460let mayStore = 1;
21461let BaseOpcode = "S2_storerh_pi";
21462let CextOpcode = "S2_storerh";
21463let isNVStorable = 1;
21464let isPredicable = 1;
21465let Constraints = "$Rx32 = $Rx32in";
21466}
21467def S2_storerh_pr : HInst<
21468(outs IntRegs:$Rx32),
21469(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21470"memh($Rx32++$Mu2) = $Rt32",
21471tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21472let Inst{7-0} = 0b00000000;
21473let Inst{31-21} = 0b10101101010;
21474let addrMode = PostInc;
21475let accessSize = HalfWordAccess;
21476let mayStore = 1;
21477let BaseOpcode = "S2_storerh_pr";
21478let isNVStorable = 1;
21479let Constraints = "$Rx32 = $Rx32in";
21480}
21481def S2_storerh_zomap : HInst<
21482(outs),
21483(ins IntRegs:$Rs32, IntRegs:$Rt32),
21484"memh($Rs32) = $Rt32",
21485tc_ae5babd7, TypeMAPPING> {
21486let isPseudo = 1;
21487let isCodeGenOnly = 1;
21488}
21489def S2_storerhgp : HInst<
21490(outs),
21491(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21492"memh(gp+#$Ii) = $Rt32",
21493tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21494let Inst{24-21} = 0b0010;
21495let Inst{31-27} = 0b01001;
21496let accessSize = HalfWordAccess;
21497let mayStore = 1;
21498let Uses = [GP];
21499let BaseOpcode = "S2_storerhabs";
21500let isNVStorable = 1;
21501let isPredicable = 1;
21502let opExtendable = 0;
21503let isExtentSigned = 0;
21504let opExtentBits = 17;
21505let opExtentAlign = 1;
21506}
21507def S2_storerhnew_io : HInst<
21508(outs),
21509(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21510"memh($Rs32+#$Ii) = $Nt8.new",
21511tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel {
21512let Inst{12-11} = 0b01;
21513let Inst{24-21} = 0b1101;
21514let Inst{31-27} = 0b10100;
21515let addrMode = BaseImmOffset;
21516let accessSize = HalfWordAccess;
21517let isNVStore = 1;
21518let isNewValue = 1;
21519let isRestrictNoSlot1Store = 1;
21520let mayStore = 1;
21521let BaseOpcode = "S2_storerh_io";
21522let CextOpcode = "S2_storerh";
21523let InputType = "imm";
21524let isPredicable = 1;
21525let isExtendable = 1;
21526let opExtendable = 1;
21527let isExtentSigned = 1;
21528let opExtentBits = 12;
21529let opExtentAlign = 1;
21530let opNewValue = 2;
21531}
21532def S2_storerhnew_pbr : HInst<
21533(outs IntRegs:$Rx32),
21534(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21535"memh($Rx32++$Mu2:brev) = $Nt8.new",
21536tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21537let Inst{7-0} = 0b00000000;
21538let Inst{12-11} = 0b01;
21539let Inst{31-21} = 0b10101111101;
21540let addrMode = PostInc;
21541let accessSize = HalfWordAccess;
21542let isNVStore = 1;
21543let isNewValue = 1;
21544let isRestrictNoSlot1Store = 1;
21545let mayStore = 1;
21546let BaseOpcode = "S2_storerh_pbr";
21547let opNewValue = 3;
21548let Constraints = "$Rx32 = $Rx32in";
21549}
21550def S2_storerhnew_pci : HInst<
21551(outs IntRegs:$Rx32),
21552(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21553"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21554tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel {
21555let Inst{2-0} = 0b000;
21556let Inst{7-7} = 0b0;
21557let Inst{12-11} = 0b01;
21558let Inst{31-21} = 0b10101001101;
21559let addrMode = PostInc;
21560let accessSize = HalfWordAccess;
21561let isNVStore = 1;
21562let isNewValue = 1;
21563let isRestrictNoSlot1Store = 1;
21564let mayStore = 1;
21565let Uses = [CS];
21566let BaseOpcode = "S2_storerh_pci";
21567let opNewValue = 4;
21568let Constraints = "$Rx32 = $Rx32in";
21569}
21570def S2_storerhnew_pcr : HInst<
21571(outs IntRegs:$Rx32),
21572(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21573"memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21574tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21575let Inst{7-0} = 0b00000010;
21576let Inst{12-11} = 0b01;
21577let Inst{31-21} = 0b10101001101;
21578let addrMode = PostInc;
21579let accessSize = HalfWordAccess;
21580let isNVStore = 1;
21581let isNewValue = 1;
21582let isRestrictNoSlot1Store = 1;
21583let mayStore = 1;
21584let Uses = [CS];
21585let BaseOpcode = "S2_storerh_pcr";
21586let opNewValue = 3;
21587let Constraints = "$Rx32 = $Rx32in";
21588}
21589def S2_storerhnew_pi : HInst<
21590(outs IntRegs:$Rx32),
21591(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21592"memh($Rx32++#$Ii) = $Nt8.new",
21593tc_92240447, TypeST>, Enc_e26546, AddrModeRel {
21594let Inst{2-0} = 0b000;
21595let Inst{7-7} = 0b0;
21596let Inst{13-11} = 0b001;
21597let Inst{31-21} = 0b10101011101;
21598let addrMode = PostInc;
21599let accessSize = HalfWordAccess;
21600let isNVStore = 1;
21601let isNewValue = 1;
21602let isRestrictNoSlot1Store = 1;
21603let mayStore = 1;
21604let BaseOpcode = "S2_storerh_pi";
21605let isNVStorable = 1;
21606let isPredicable = 1;
21607let opNewValue = 3;
21608let Constraints = "$Rx32 = $Rx32in";
21609}
21610def S2_storerhnew_pr : HInst<
21611(outs IntRegs:$Rx32),
21612(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21613"memh($Rx32++$Mu2) = $Nt8.new",
21614tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21615let Inst{7-0} = 0b00000000;
21616let Inst{12-11} = 0b01;
21617let Inst{31-21} = 0b10101101101;
21618let addrMode = PostInc;
21619let accessSize = HalfWordAccess;
21620let isNVStore = 1;
21621let isNewValue = 1;
21622let isRestrictNoSlot1Store = 1;
21623let mayStore = 1;
21624let BaseOpcode = "S2_storerh_pr";
21625let opNewValue = 3;
21626let Constraints = "$Rx32 = $Rx32in";
21627}
21628def S2_storerhnew_zomap : HInst<
21629(outs),
21630(ins IntRegs:$Rs32, IntRegs:$Nt8),
21631"memh($Rs32) = $Nt8.new",
21632tc_5deb5e47, TypeMAPPING> {
21633let isPseudo = 1;
21634let isCodeGenOnly = 1;
21635let opNewValue = 1;
21636}
21637def S2_storerhnewgp : HInst<
21638(outs),
21639(ins u31_1Imm:$Ii, IntRegs:$Nt8),
21640"memh(gp+#$Ii) = $Nt8.new",
21641tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21642let Inst{12-11} = 0b01;
21643let Inst{24-21} = 0b0101;
21644let Inst{31-27} = 0b01001;
21645let accessSize = HalfWordAccess;
21646let isNVStore = 1;
21647let isNewValue = 1;
21648let isRestrictNoSlot1Store = 1;
21649let mayStore = 1;
21650let Uses = [GP];
21651let BaseOpcode = "S2_storerhabs";
21652let isPredicable = 1;
21653let opExtendable = 0;
21654let isExtentSigned = 0;
21655let opExtentBits = 17;
21656let opExtentAlign = 1;
21657let opNewValue = 1;
21658}
21659def S2_storeri_io : HInst<
21660(outs),
21661(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21662"memw($Rs32+#$Ii) = $Rt32",
21663tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21664let Inst{24-21} = 0b1100;
21665let Inst{31-27} = 0b10100;
21666let addrMode = BaseImmOffset;
21667let accessSize = WordAccess;
21668let mayStore = 1;
21669let BaseOpcode = "S2_storeri_io";
21670let CextOpcode = "S2_storeri";
21671let InputType = "imm";
21672let isNVStorable = 1;
21673let isPredicable = 1;
21674let isExtendable = 1;
21675let opExtendable = 1;
21676let isExtentSigned = 1;
21677let opExtentBits = 13;
21678let opExtentAlign = 2;
21679}
21680def S2_storeri_pbr : HInst<
21681(outs IntRegs:$Rx32),
21682(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21683"memw($Rx32++$Mu2:brev) = $Rt32",
21684tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21685let Inst{7-0} = 0b00000000;
21686let Inst{31-21} = 0b10101111100;
21687let addrMode = PostInc;
21688let accessSize = WordAccess;
21689let mayStore = 1;
21690let BaseOpcode = "S2_storeri_pbr";
21691let isNVStorable = 1;
21692let Constraints = "$Rx32 = $Rx32in";
21693}
21694def S2_storeri_pci : HInst<
21695(outs IntRegs:$Rx32),
21696(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21697"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21698tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel {
21699let Inst{2-0} = 0b000;
21700let Inst{7-7} = 0b0;
21701let Inst{31-21} = 0b10101001100;
21702let addrMode = PostInc;
21703let accessSize = WordAccess;
21704let mayStore = 1;
21705let Uses = [CS];
21706let BaseOpcode = "S2_storeri_pci";
21707let isNVStorable = 1;
21708let Constraints = "$Rx32 = $Rx32in";
21709}
21710def S2_storeri_pcr : HInst<
21711(outs IntRegs:$Rx32),
21712(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21713"memw($Rx32++I:circ($Mu2)) = $Rt32",
21714tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21715let Inst{7-0} = 0b00000010;
21716let Inst{31-21} = 0b10101001100;
21717let addrMode = PostInc;
21718let accessSize = WordAccess;
21719let mayStore = 1;
21720let Uses = [CS];
21721let BaseOpcode = "S2_storeri_pcr";
21722let isNVStorable = 1;
21723let Constraints = "$Rx32 = $Rx32in";
21724}
21725def S2_storeri_pi : HInst<
21726(outs IntRegs:$Rx32),
21727(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21728"memw($Rx32++#$Ii) = $Rt32",
21729tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21730let Inst{2-0} = 0b000;
21731let Inst{7-7} = 0b0;
21732let Inst{13-13} = 0b0;
21733let Inst{31-21} = 0b10101011100;
21734let addrMode = PostInc;
21735let accessSize = WordAccess;
21736let mayStore = 1;
21737let BaseOpcode = "S2_storeri_pi";
21738let CextOpcode = "S2_storeri";
21739let isNVStorable = 1;
21740let isPredicable = 1;
21741let Constraints = "$Rx32 = $Rx32in";
21742}
21743def S2_storeri_pr : HInst<
21744(outs IntRegs:$Rx32),
21745(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21746"memw($Rx32++$Mu2) = $Rt32",
21747tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21748let Inst{7-0} = 0b00000000;
21749let Inst{31-21} = 0b10101101100;
21750let addrMode = PostInc;
21751let accessSize = WordAccess;
21752let mayStore = 1;
21753let BaseOpcode = "S2_storeri_pr";
21754let isNVStorable = 1;
21755let Constraints = "$Rx32 = $Rx32in";
21756}
21757def S2_storeri_zomap : HInst<
21758(outs),
21759(ins IntRegs:$Rs32, IntRegs:$Rt32),
21760"memw($Rs32) = $Rt32",
21761tc_ae5babd7, TypeMAPPING> {
21762let isPseudo = 1;
21763let isCodeGenOnly = 1;
21764}
21765def S2_storerigp : HInst<
21766(outs),
21767(ins u30_2Imm:$Ii, IntRegs:$Rt32),
21768"memw(gp+#$Ii) = $Rt32",
21769tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
21770let Inst{24-21} = 0b0100;
21771let Inst{31-27} = 0b01001;
21772let accessSize = WordAccess;
21773let mayStore = 1;
21774let Uses = [GP];
21775let BaseOpcode = "S2_storeriabs";
21776let isNVStorable = 1;
21777let isPredicable = 1;
21778let opExtendable = 0;
21779let isExtentSigned = 0;
21780let opExtentBits = 18;
21781let opExtentAlign = 2;
21782}
21783def S2_storerinew_io : HInst<
21784(outs),
21785(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21786"memw($Rs32+#$Ii) = $Nt8.new",
21787tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel {
21788let Inst{12-11} = 0b10;
21789let Inst{24-21} = 0b1101;
21790let Inst{31-27} = 0b10100;
21791let addrMode = BaseImmOffset;
21792let accessSize = WordAccess;
21793let isNVStore = 1;
21794let isNewValue = 1;
21795let isRestrictNoSlot1Store = 1;
21796let mayStore = 1;
21797let BaseOpcode = "S2_storeri_io";
21798let CextOpcode = "S2_storeri";
21799let InputType = "imm";
21800let isPredicable = 1;
21801let isExtendable = 1;
21802let opExtendable = 1;
21803let isExtentSigned = 1;
21804let opExtentBits = 13;
21805let opExtentAlign = 2;
21806let opNewValue = 2;
21807}
21808def S2_storerinew_pbr : HInst<
21809(outs IntRegs:$Rx32),
21810(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21811"memw($Rx32++$Mu2:brev) = $Nt8.new",
21812tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21813let Inst{7-0} = 0b00000000;
21814let Inst{12-11} = 0b10;
21815let Inst{31-21} = 0b10101111101;
21816let addrMode = PostInc;
21817let accessSize = WordAccess;
21818let isNVStore = 1;
21819let isNewValue = 1;
21820let isRestrictNoSlot1Store = 1;
21821let mayStore = 1;
21822let BaseOpcode = "S2_storeri_pbr";
21823let opNewValue = 3;
21824let Constraints = "$Rx32 = $Rx32in";
21825}
21826def S2_storerinew_pci : HInst<
21827(outs IntRegs:$Rx32),
21828(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21829"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21830tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel {
21831let Inst{2-0} = 0b000;
21832let Inst{7-7} = 0b0;
21833let Inst{12-11} = 0b10;
21834let Inst{31-21} = 0b10101001101;
21835let addrMode = PostInc;
21836let accessSize = WordAccess;
21837let isNVStore = 1;
21838let isNewValue = 1;
21839let isRestrictNoSlot1Store = 1;
21840let mayStore = 1;
21841let Uses = [CS];
21842let BaseOpcode = "S2_storeri_pci";
21843let opNewValue = 4;
21844let Constraints = "$Rx32 = $Rx32in";
21845}
21846def S2_storerinew_pcr : HInst<
21847(outs IntRegs:$Rx32),
21848(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21849"memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21850tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21851let Inst{7-0} = 0b00000010;
21852let Inst{12-11} = 0b10;
21853let Inst{31-21} = 0b10101001101;
21854let addrMode = PostInc;
21855let accessSize = WordAccess;
21856let isNVStore = 1;
21857let isNewValue = 1;
21858let isRestrictNoSlot1Store = 1;
21859let mayStore = 1;
21860let Uses = [CS];
21861let BaseOpcode = "S2_storeri_pcr";
21862let opNewValue = 3;
21863let Constraints = "$Rx32 = $Rx32in";
21864}
21865def S2_storerinew_pi : HInst<
21866(outs IntRegs:$Rx32),
21867(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21868"memw($Rx32++#$Ii) = $Nt8.new",
21869tc_92240447, TypeST>, Enc_223005, AddrModeRel {
21870let Inst{2-0} = 0b000;
21871let Inst{7-7} = 0b0;
21872let Inst{13-11} = 0b010;
21873let Inst{31-21} = 0b10101011101;
21874let addrMode = PostInc;
21875let accessSize = WordAccess;
21876let isNVStore = 1;
21877let isNewValue = 1;
21878let isRestrictNoSlot1Store = 1;
21879let mayStore = 1;
21880let BaseOpcode = "S2_storeri_pi";
21881let isPredicable = 1;
21882let opNewValue = 3;
21883let Constraints = "$Rx32 = $Rx32in";
21884}
21885def S2_storerinew_pr : HInst<
21886(outs IntRegs:$Rx32),
21887(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21888"memw($Rx32++$Mu2) = $Nt8.new",
21889tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21890let Inst{7-0} = 0b00000000;
21891let Inst{12-11} = 0b10;
21892let Inst{31-21} = 0b10101101101;
21893let addrMode = PostInc;
21894let accessSize = WordAccess;
21895let isNVStore = 1;
21896let isNewValue = 1;
21897let isRestrictNoSlot1Store = 1;
21898let mayStore = 1;
21899let BaseOpcode = "S2_storeri_pr";
21900let opNewValue = 3;
21901let Constraints = "$Rx32 = $Rx32in";
21902}
21903def S2_storerinew_zomap : HInst<
21904(outs),
21905(ins IntRegs:$Rs32, IntRegs:$Nt8),
21906"memw($Rs32) = $Nt8.new",
21907tc_5deb5e47, TypeMAPPING> {
21908let isPseudo = 1;
21909let isCodeGenOnly = 1;
21910let opNewValue = 1;
21911}
21912def S2_storerinewgp : HInst<
21913(outs),
21914(ins u30_2Imm:$Ii, IntRegs:$Nt8),
21915"memw(gp+#$Ii) = $Nt8.new",
21916tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21917let Inst{12-11} = 0b10;
21918let Inst{24-21} = 0b0101;
21919let Inst{31-27} = 0b01001;
21920let accessSize = WordAccess;
21921let isNVStore = 1;
21922let isNewValue = 1;
21923let isRestrictNoSlot1Store = 1;
21924let mayStore = 1;
21925let Uses = [GP];
21926let BaseOpcode = "S2_storeriabs";
21927let isPredicable = 1;
21928let opExtendable = 0;
21929let isExtentSigned = 0;
21930let opExtentBits = 18;
21931let opExtentAlign = 2;
21932let opNewValue = 1;
21933}
21934def S2_storew_locked : HInst<
21935(outs PredRegs:$Pd4),
21936(ins IntRegs:$Rs32, IntRegs:$Rt32),
21937"memw_locked($Rs32,$Pd4) = $Rt32",
21938tc_6f42bc60, TypeST>, Enc_c2b48e {
21939let Inst{7-2} = 0b000000;
21940let Inst{13-13} = 0b0;
21941let Inst{31-21} = 0b10100000101;
21942let accessSize = WordAccess;
21943let isPredicateLate = 1;
21944let isSoloAX = 1;
21945let mayStore = 1;
21946}
21947def S2_storew_rl_at_vi : HInst<
21948(outs),
21949(ins IntRegs:$Rs32, IntRegs:$Rt32),
21950"memw_rl($Rs32):at = $Rt32",
21951tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21952let Inst{7-2} = 0b000010;
21953let Inst{13-13} = 0b0;
21954let Inst{31-21} = 0b10100000101;
21955let accessSize = WordAccess;
21956let isSolo = 1;
21957let mayStore = 1;
21958}
21959def S2_storew_rl_st_vi : HInst<
21960(outs),
21961(ins IntRegs:$Rs32, IntRegs:$Rt32),
21962"memw_rl($Rs32):st = $Rt32",
21963tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21964let Inst{7-2} = 0b001010;
21965let Inst{13-13} = 0b0;
21966let Inst{31-21} = 0b10100000101;
21967let accessSize = WordAccess;
21968let isSolo = 1;
21969let mayStore = 1;
21970}
21971def S2_svsathb : HInst<
21972(outs IntRegs:$Rd32),
21973(ins IntRegs:$Rs32),
21974"$Rd32 = vsathb($Rs32)",
21975tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
21976let Inst{13-5} = 0b000000000;
21977let Inst{31-21} = 0b10001100100;
21978let hasNewValue = 1;
21979let opNewValue = 0;
21980let Defs = [USR_OVF];
21981}
21982def S2_svsathub : HInst<
21983(outs IntRegs:$Rd32),
21984(ins IntRegs:$Rs32),
21985"$Rd32 = vsathub($Rs32)",
21986tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
21987let Inst{13-5} = 0b000000010;
21988let Inst{31-21} = 0b10001100100;
21989let hasNewValue = 1;
21990let opNewValue = 0;
21991let Defs = [USR_OVF];
21992}
21993def S2_tableidxb : HInst<
21994(outs IntRegs:$Rx32),
21995(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21996"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
21997tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
21998let Inst{31-22} = 0b1000011100;
21999let hasNewValue = 1;
22000let opNewValue = 0;
22001let prefersSlot3 = 1;
22002let Constraints = "$Rx32 = $Rx32in";
22003}
22004def S2_tableidxb_goodsyntax : HInst<
22005(outs IntRegs:$Rx32),
22006(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22007"$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
22008tc_bb831a7c, TypeS_2op> {
22009let hasNewValue = 1;
22010let opNewValue = 0;
22011let isPseudo = 1;
22012let isCodeGenOnly = 1;
22013let Constraints = "$Rx32 = $Rx32in";
22014}
22015def S2_tableidxd : HInst<
22016(outs IntRegs:$Rx32),
22017(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22018"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
22019tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22020let Inst{31-22} = 0b1000011111;
22021let hasNewValue = 1;
22022let opNewValue = 0;
22023let prefersSlot3 = 1;
22024let Constraints = "$Rx32 = $Rx32in";
22025}
22026def S2_tableidxd_goodsyntax : HInst<
22027(outs IntRegs:$Rx32),
22028(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22029"$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
22030tc_bb831a7c, TypeS_2op> {
22031let hasNewValue = 1;
22032let opNewValue = 0;
22033let isPseudo = 1;
22034let Constraints = "$Rx32 = $Rx32in";
22035}
22036def S2_tableidxh : HInst<
22037(outs IntRegs:$Rx32),
22038(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22039"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
22040tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22041let Inst{31-22} = 0b1000011101;
22042let hasNewValue = 1;
22043let opNewValue = 0;
22044let prefersSlot3 = 1;
22045let Constraints = "$Rx32 = $Rx32in";
22046}
22047def S2_tableidxh_goodsyntax : HInst<
22048(outs IntRegs:$Rx32),
22049(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22050"$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
22051tc_bb831a7c, TypeS_2op> {
22052let hasNewValue = 1;
22053let opNewValue = 0;
22054let isPseudo = 1;
22055let Constraints = "$Rx32 = $Rx32in";
22056}
22057def S2_tableidxw : HInst<
22058(outs IntRegs:$Rx32),
22059(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22060"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
22061tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22062let Inst{31-22} = 0b1000011110;
22063let hasNewValue = 1;
22064let opNewValue = 0;
22065let prefersSlot3 = 1;
22066let Constraints = "$Rx32 = $Rx32in";
22067}
22068def S2_tableidxw_goodsyntax : HInst<
22069(outs IntRegs:$Rx32),
22070(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22071"$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
22072tc_bb831a7c, TypeS_2op> {
22073let hasNewValue = 1;
22074let opNewValue = 0;
22075let isPseudo = 1;
22076let Constraints = "$Rx32 = $Rx32in";
22077}
22078def S2_togglebit_i : HInst<
22079(outs IntRegs:$Rd32),
22080(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22081"$Rd32 = togglebit($Rs32,#$Ii)",
22082tc_5da50c4b, TypeS_2op>, Enc_a05677 {
22083let Inst{7-5} = 0b010;
22084let Inst{13-13} = 0b0;
22085let Inst{31-21} = 0b10001100110;
22086let hasNewValue = 1;
22087let opNewValue = 0;
22088}
22089def S2_togglebit_r : HInst<
22090(outs IntRegs:$Rd32),
22091(ins IntRegs:$Rs32, IntRegs:$Rt32),
22092"$Rd32 = togglebit($Rs32,$Rt32)",
22093tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
22094let Inst{7-5} = 0b100;
22095let Inst{13-13} = 0b0;
22096let Inst{31-21} = 0b11000110100;
22097let hasNewValue = 1;
22098let opNewValue = 0;
22099}
22100def S2_tstbit_i : HInst<
22101(outs PredRegs:$Pd4),
22102(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22103"$Pd4 = tstbit($Rs32,#$Ii)",
22104tc_a1297125, TypeS_2op>, Enc_83ee64 {
22105let Inst{7-2} = 0b000000;
22106let Inst{13-13} = 0b0;
22107let Inst{31-21} = 0b10000101000;
22108}
22109def S2_tstbit_r : HInst<
22110(outs PredRegs:$Pd4),
22111(ins IntRegs:$Rs32, IntRegs:$Rt32),
22112"$Pd4 = tstbit($Rs32,$Rt32)",
22113tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22114let Inst{7-2} = 0b000000;
22115let Inst{13-13} = 0b0;
22116let Inst{31-21} = 0b11000111000;
22117}
22118def S2_valignib : HInst<
22119(outs DoubleRegs:$Rdd32),
22120(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
22121"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
22122tc_6fc5dbea, TypeS_3op>, Enc_729ff7 {
22123let Inst{13-13} = 0b0;
22124let Inst{31-21} = 0b11000000000;
22125}
22126def S2_valignrb : HInst<
22127(outs DoubleRegs:$Rdd32),
22128(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
22129"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
22130tc_6fc5dbea, TypeS_3op>, Enc_8c6530 {
22131let Inst{7-7} = 0b0;
22132let Inst{13-13} = 0b0;
22133let Inst{31-21} = 0b11000010000;
22134}
22135def S2_vcnegh : HInst<
22136(outs DoubleRegs:$Rdd32),
22137(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22138"$Rdd32 = vcnegh($Rss32,$Rt32)",
22139tc_8a825db2, TypeS_3op>, Enc_927852 {
22140let Inst{7-5} = 0b010;
22141let Inst{13-13} = 0b0;
22142let Inst{31-21} = 0b11000011110;
22143let prefersSlot3 = 1;
22144let Defs = [USR_OVF];
22145}
22146def S2_vcrotate : HInst<
22147(outs DoubleRegs:$Rdd32),
22148(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22149"$Rdd32 = vcrotate($Rss32,$Rt32)",
22150tc_0dfac0a7, TypeS_3op>, Enc_927852 {
22151let Inst{7-5} = 0b000;
22152let Inst{13-13} = 0b0;
22153let Inst{31-21} = 0b11000011110;
22154let prefersSlot3 = 1;
22155let Defs = [USR_OVF];
22156}
22157def S2_vrcnegh : HInst<
22158(outs DoubleRegs:$Rxx32),
22159(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
22160"$Rxx32 += vrcnegh($Rss32,$Rt32)",
22161tc_7f8ae742, TypeS_3op>, Enc_1aa186 {
22162let Inst{7-5} = 0b111;
22163let Inst{13-13} = 0b1;
22164let Inst{31-21} = 0b11001011001;
22165let prefersSlot3 = 1;
22166let Constraints = "$Rxx32 = $Rxx32in";
22167}
22168def S2_vrndpackwh : HInst<
22169(outs IntRegs:$Rd32),
22170(ins DoubleRegs:$Rss32),
22171"$Rd32 = vrndwh($Rss32)",
22172tc_e3d699e3, TypeS_2op>, Enc_90cd8b {
22173let Inst{13-5} = 0b000000100;
22174let Inst{31-21} = 0b10001000100;
22175let hasNewValue = 1;
22176let opNewValue = 0;
22177let prefersSlot3 = 1;
22178}
22179def S2_vrndpackwhs : HInst<
22180(outs IntRegs:$Rd32),
22181(ins DoubleRegs:$Rss32),
22182"$Rd32 = vrndwh($Rss32):sat",
22183tc_d61dfdc3, TypeS_2op>, Enc_90cd8b {
22184let Inst{13-5} = 0b000000110;
22185let Inst{31-21} = 0b10001000100;
22186let hasNewValue = 1;
22187let opNewValue = 0;
22188let prefersSlot3 = 1;
22189let Defs = [USR_OVF];
22190}
22191def S2_vsathb : HInst<
22192(outs IntRegs:$Rd32),
22193(ins DoubleRegs:$Rss32),
22194"$Rd32 = vsathb($Rss32)",
22195tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22196let Inst{13-5} = 0b000000110;
22197let Inst{31-21} = 0b10001000000;
22198let hasNewValue = 1;
22199let opNewValue = 0;
22200let Defs = [USR_OVF];
22201}
22202def S2_vsathb_nopack : HInst<
22203(outs DoubleRegs:$Rdd32),
22204(ins DoubleRegs:$Rss32),
22205"$Rdd32 = vsathb($Rss32)",
22206tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22207let Inst{13-5} = 0b000000111;
22208let Inst{31-21} = 0b10000000000;
22209let Defs = [USR_OVF];
22210}
22211def S2_vsathub : HInst<
22212(outs IntRegs:$Rd32),
22213(ins DoubleRegs:$Rss32),
22214"$Rd32 = vsathub($Rss32)",
22215tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22216let Inst{13-5} = 0b000000000;
22217let Inst{31-21} = 0b10001000000;
22218let hasNewValue = 1;
22219let opNewValue = 0;
22220let Defs = [USR_OVF];
22221}
22222def S2_vsathub_nopack : HInst<
22223(outs DoubleRegs:$Rdd32),
22224(ins DoubleRegs:$Rss32),
22225"$Rdd32 = vsathub($Rss32)",
22226tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22227let Inst{13-5} = 0b000000100;
22228let Inst{31-21} = 0b10000000000;
22229let Defs = [USR_OVF];
22230}
22231def S2_vsatwh : HInst<
22232(outs IntRegs:$Rd32),
22233(ins DoubleRegs:$Rss32),
22234"$Rd32 = vsatwh($Rss32)",
22235tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22236let Inst{13-5} = 0b000000010;
22237let Inst{31-21} = 0b10001000000;
22238let hasNewValue = 1;
22239let opNewValue = 0;
22240let Defs = [USR_OVF];
22241}
22242def S2_vsatwh_nopack : HInst<
22243(outs DoubleRegs:$Rdd32),
22244(ins DoubleRegs:$Rss32),
22245"$Rdd32 = vsatwh($Rss32)",
22246tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22247let Inst{13-5} = 0b000000110;
22248let Inst{31-21} = 0b10000000000;
22249let Defs = [USR_OVF];
22250}
22251def S2_vsatwuh : HInst<
22252(outs IntRegs:$Rd32),
22253(ins DoubleRegs:$Rss32),
22254"$Rd32 = vsatwuh($Rss32)",
22255tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22256let Inst{13-5} = 0b000000100;
22257let Inst{31-21} = 0b10001000000;
22258let hasNewValue = 1;
22259let opNewValue = 0;
22260let Defs = [USR_OVF];
22261}
22262def S2_vsatwuh_nopack : HInst<
22263(outs DoubleRegs:$Rdd32),
22264(ins DoubleRegs:$Rss32),
22265"$Rdd32 = vsatwuh($Rss32)",
22266tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22267let Inst{13-5} = 0b000000101;
22268let Inst{31-21} = 0b10000000000;
22269let Defs = [USR_OVF];
22270}
22271def S2_vsplatrb : HInst<
22272(outs IntRegs:$Rd32),
22273(ins IntRegs:$Rs32),
22274"$Rd32 = vsplatb($Rs32)",
22275tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22276let Inst{13-5} = 0b000000111;
22277let Inst{31-21} = 0b10001100010;
22278let hasNewValue = 1;
22279let opNewValue = 0;
22280let isAsCheapAsAMove = 1;
22281let isReMaterializable = 1;
22282}
22283def S2_vsplatrh : HInst<
22284(outs DoubleRegs:$Rdd32),
22285(ins IntRegs:$Rs32),
22286"$Rdd32 = vsplath($Rs32)",
22287tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22288let Inst{13-5} = 0b000000010;
22289let Inst{31-21} = 0b10000100010;
22290let isAsCheapAsAMove = 1;
22291let isReMaterializable = 1;
22292}
22293def S2_vspliceib : HInst<
22294(outs DoubleRegs:$Rdd32),
22295(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
22296"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
22297tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 {
22298let Inst{13-13} = 0b0;
22299let Inst{31-21} = 0b11000000100;
22300}
22301def S2_vsplicerb : HInst<
22302(outs DoubleRegs:$Rdd32),
22303(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
22304"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
22305tc_6fc5dbea, TypeS_3op>, Enc_dbd70c {
22306let Inst{7-7} = 0b0;
22307let Inst{13-13} = 0b0;
22308let Inst{31-21} = 0b11000010100;
22309}
22310def S2_vsxtbh : HInst<
22311(outs DoubleRegs:$Rdd32),
22312(ins IntRegs:$Rs32),
22313"$Rdd32 = vsxtbh($Rs32)",
22314tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22315let Inst{13-5} = 0b000000000;
22316let Inst{31-21} = 0b10000100000;
22317let isAsCheapAsAMove = 1;
22318let isReMaterializable = 1;
22319}
22320def S2_vsxthw : HInst<
22321(outs DoubleRegs:$Rdd32),
22322(ins IntRegs:$Rs32),
22323"$Rdd32 = vsxthw($Rs32)",
22324tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22325let Inst{13-5} = 0b000000100;
22326let Inst{31-21} = 0b10000100000;
22327let isAsCheapAsAMove = 1;
22328let isReMaterializable = 1;
22329}
22330def S2_vtrunehb : HInst<
22331(outs IntRegs:$Rd32),
22332(ins DoubleRegs:$Rss32),
22333"$Rd32 = vtrunehb($Rss32)",
22334tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22335let Inst{13-5} = 0b000000010;
22336let Inst{31-21} = 0b10001000100;
22337let hasNewValue = 1;
22338let opNewValue = 0;
22339}
22340def S2_vtrunewh : HInst<
22341(outs DoubleRegs:$Rdd32),
22342(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22343"$Rdd32 = vtrunewh($Rss32,$Rtt32)",
22344tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22345let Inst{7-5} = 0b010;
22346let Inst{13-13} = 0b0;
22347let Inst{31-21} = 0b11000001100;
22348}
22349def S2_vtrunohb : HInst<
22350(outs IntRegs:$Rd32),
22351(ins DoubleRegs:$Rss32),
22352"$Rd32 = vtrunohb($Rss32)",
22353tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22354let Inst{13-5} = 0b000000000;
22355let Inst{31-21} = 0b10001000100;
22356let hasNewValue = 1;
22357let opNewValue = 0;
22358}
22359def S2_vtrunowh : HInst<
22360(outs DoubleRegs:$Rdd32),
22361(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22362"$Rdd32 = vtrunowh($Rss32,$Rtt32)",
22363tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22364let Inst{7-5} = 0b100;
22365let Inst{13-13} = 0b0;
22366let Inst{31-21} = 0b11000001100;
22367}
22368def S2_vzxtbh : HInst<
22369(outs DoubleRegs:$Rdd32),
22370(ins IntRegs:$Rs32),
22371"$Rdd32 = vzxtbh($Rs32)",
22372tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22373let Inst{13-5} = 0b000000010;
22374let Inst{31-21} = 0b10000100000;
22375let isAsCheapAsAMove = 1;
22376let isReMaterializable = 1;
22377}
22378def S2_vzxthw : HInst<
22379(outs DoubleRegs:$Rdd32),
22380(ins IntRegs:$Rs32),
22381"$Rdd32 = vzxthw($Rs32)",
22382tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22383let Inst{13-5} = 0b000000110;
22384let Inst{31-21} = 0b10000100000;
22385let isAsCheapAsAMove = 1;
22386let isReMaterializable = 1;
22387}
22388def S4_addaddi : HInst<
22389(outs IntRegs:$Rd32),
22390(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22391"$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22392tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
22393let Inst{31-23} = 0b110110110;
22394let hasNewValue = 1;
22395let opNewValue = 0;
22396let prefersSlot3 = 1;
22397let isExtendable = 1;
22398let opExtendable = 3;
22399let isExtentSigned = 1;
22400let opExtentBits = 6;
22401let opExtentAlign = 0;
22402}
22403def S4_addi_asl_ri : HInst<
22404(outs IntRegs:$Rx32),
22405(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22406"$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22407tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22408let Inst{2-0} = 0b100;
22409let Inst{4-4} = 0b0;
22410let Inst{31-24} = 0b11011110;
22411let hasNewValue = 1;
22412let opNewValue = 0;
22413let prefersSlot3 = 1;
22414let isExtendable = 1;
22415let opExtendable = 1;
22416let isExtentSigned = 0;
22417let opExtentBits = 8;
22418let opExtentAlign = 0;
22419let Constraints = "$Rx32 = $Rx32in";
22420}
22421def S4_addi_lsr_ri : HInst<
22422(outs IntRegs:$Rx32),
22423(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22424"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22425tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22426let Inst{2-0} = 0b100;
22427let Inst{4-4} = 0b1;
22428let Inst{31-24} = 0b11011110;
22429let hasNewValue = 1;
22430let opNewValue = 0;
22431let prefersSlot3 = 1;
22432let isExtendable = 1;
22433let opExtendable = 1;
22434let isExtentSigned = 0;
22435let opExtentBits = 8;
22436let opExtentAlign = 0;
22437let Constraints = "$Rx32 = $Rx32in";
22438}
22439def S4_andi_asl_ri : HInst<
22440(outs IntRegs:$Rx32),
22441(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22442"$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22443tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22444let Inst{2-0} = 0b000;
22445let Inst{4-4} = 0b0;
22446let Inst{31-24} = 0b11011110;
22447let hasNewValue = 1;
22448let opNewValue = 0;
22449let prefersSlot3 = 1;
22450let isExtendable = 1;
22451let opExtendable = 1;
22452let isExtentSigned = 0;
22453let opExtentBits = 8;
22454let opExtentAlign = 0;
22455let Constraints = "$Rx32 = $Rx32in";
22456}
22457def S4_andi_lsr_ri : HInst<
22458(outs IntRegs:$Rx32),
22459(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22460"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22461tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22462let Inst{2-0} = 0b000;
22463let Inst{4-4} = 0b1;
22464let Inst{31-24} = 0b11011110;
22465let hasNewValue = 1;
22466let opNewValue = 0;
22467let prefersSlot3 = 1;
22468let isExtendable = 1;
22469let opExtendable = 1;
22470let isExtentSigned = 0;
22471let opExtentBits = 8;
22472let opExtentAlign = 0;
22473let Constraints = "$Rx32 = $Rx32in";
22474}
22475def S4_clbaddi : HInst<
22476(outs IntRegs:$Rd32),
22477(ins IntRegs:$Rs32, s6_0Imm:$Ii),
22478"$Rd32 = add(clb($Rs32),#$Ii)",
22479tc_a08b630b, TypeS_2op>, Enc_9fae8a {
22480let Inst{7-5} = 0b000;
22481let Inst{31-21} = 0b10001100001;
22482let hasNewValue = 1;
22483let opNewValue = 0;
22484let prefersSlot3 = 1;
22485}
22486def S4_clbpaddi : HInst<
22487(outs IntRegs:$Rd32),
22488(ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22489"$Rd32 = add(clb($Rss32),#$Ii)",
22490tc_a08b630b, TypeS_2op>, Enc_a1640c {
22491let Inst{7-5} = 0b010;
22492let Inst{31-21} = 0b10001000011;
22493let hasNewValue = 1;
22494let opNewValue = 0;
22495let prefersSlot3 = 1;
22496}
22497def S4_clbpnorm : HInst<
22498(outs IntRegs:$Rd32),
22499(ins DoubleRegs:$Rss32),
22500"$Rd32 = normamt($Rss32)",
22501tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
22502let Inst{13-5} = 0b000000000;
22503let Inst{31-21} = 0b10001000011;
22504let hasNewValue = 1;
22505let opNewValue = 0;
22506let prefersSlot3 = 1;
22507}
22508def S4_extract : HInst<
22509(outs IntRegs:$Rd32),
22510(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22511"$Rd32 = extract($Rs32,#$Ii,#$II)",
22512tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
22513let Inst{13-13} = 0b0;
22514let Inst{31-23} = 0b100011011;
22515let hasNewValue = 1;
22516let opNewValue = 0;
22517let prefersSlot3 = 1;
22518}
22519def S4_extract_rp : HInst<
22520(outs IntRegs:$Rd32),
22521(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22522"$Rd32 = extract($Rs32,$Rtt32)",
22523tc_a08b630b, TypeS_3op>, Enc_e07374 {
22524let Inst{7-5} = 0b010;
22525let Inst{13-13} = 0b0;
22526let Inst{31-21} = 0b11001001000;
22527let hasNewValue = 1;
22528let opNewValue = 0;
22529let prefersSlot3 = 1;
22530}
22531def S4_extractp : HInst<
22532(outs DoubleRegs:$Rdd32),
22533(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22534"$Rdd32 = extract($Rss32,#$Ii,#$II)",
22535tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
22536let Inst{31-24} = 0b10001010;
22537let prefersSlot3 = 1;
22538}
22539def S4_extractp_rp : HInst<
22540(outs DoubleRegs:$Rdd32),
22541(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22542"$Rdd32 = extract($Rss32,$Rtt32)",
22543tc_a08b630b, TypeS_3op>, Enc_a56825 {
22544let Inst{7-5} = 0b100;
22545let Inst{13-13} = 0b0;
22546let Inst{31-21} = 0b11000001110;
22547let prefersSlot3 = 1;
22548}
22549def S4_lsli : HInst<
22550(outs IntRegs:$Rd32),
22551(ins s6_0Imm:$Ii, IntRegs:$Rt32),
22552"$Rd32 = lsl(#$Ii,$Rt32)",
22553tc_5da50c4b, TypeS_3op>, Enc_fef969 {
22554let Inst{7-6} = 0b11;
22555let Inst{13-13} = 0b0;
22556let Inst{31-21} = 0b11000110100;
22557let hasNewValue = 1;
22558let opNewValue = 0;
22559}
22560def S4_ntstbit_i : HInst<
22561(outs PredRegs:$Pd4),
22562(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22563"$Pd4 = !tstbit($Rs32,#$Ii)",
22564tc_a1297125, TypeS_2op>, Enc_83ee64 {
22565let Inst{7-2} = 0b000000;
22566let Inst{13-13} = 0b0;
22567let Inst{31-21} = 0b10000101001;
22568}
22569def S4_ntstbit_r : HInst<
22570(outs PredRegs:$Pd4),
22571(ins IntRegs:$Rs32, IntRegs:$Rt32),
22572"$Pd4 = !tstbit($Rs32,$Rt32)",
22573tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22574let Inst{7-2} = 0b000000;
22575let Inst{13-13} = 0b0;
22576let Inst{31-21} = 0b11000111001;
22577}
22578def S4_or_andi : HInst<
22579(outs IntRegs:$Rx32),
22580(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22581"$Rx32 |= and($Rs32,#$Ii)",
22582tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22583let Inst{31-22} = 0b1101101000;
22584let hasNewValue = 1;
22585let opNewValue = 0;
22586let prefersSlot3 = 1;
22587let InputType = "imm";
22588let isExtendable = 1;
22589let opExtendable = 3;
22590let isExtentSigned = 1;
22591let opExtentBits = 10;
22592let opExtentAlign = 0;
22593let Constraints = "$Rx32 = $Rx32in";
22594}
22595def S4_or_andix : HInst<
22596(outs IntRegs:$Rx32),
22597(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22598"$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22599tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> {
22600let Inst{31-22} = 0b1101101001;
22601let hasNewValue = 1;
22602let opNewValue = 0;
22603let prefersSlot3 = 1;
22604let isExtendable = 1;
22605let opExtendable = 3;
22606let isExtentSigned = 1;
22607let opExtentBits = 10;
22608let opExtentAlign = 0;
22609let Constraints = "$Rx32 = $Rx32in";
22610}
22611def S4_or_ori : HInst<
22612(outs IntRegs:$Rx32),
22613(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22614"$Rx32 |= or($Rs32,#$Ii)",
22615tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22616let Inst{31-22} = 0b1101101010;
22617let hasNewValue = 1;
22618let opNewValue = 0;
22619let prefersSlot3 = 1;
22620let InputType = "imm";
22621let isExtendable = 1;
22622let opExtendable = 3;
22623let isExtentSigned = 1;
22624let opExtentBits = 10;
22625let opExtentAlign = 0;
22626let Constraints = "$Rx32 = $Rx32in";
22627}
22628def S4_ori_asl_ri : HInst<
22629(outs IntRegs:$Rx32),
22630(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22631"$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22632tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22633let Inst{2-0} = 0b010;
22634let Inst{4-4} = 0b0;
22635let Inst{31-24} = 0b11011110;
22636let hasNewValue = 1;
22637let opNewValue = 0;
22638let prefersSlot3 = 1;
22639let isExtendable = 1;
22640let opExtendable = 1;
22641let isExtentSigned = 0;
22642let opExtentBits = 8;
22643let opExtentAlign = 0;
22644let Constraints = "$Rx32 = $Rx32in";
22645}
22646def S4_ori_lsr_ri : HInst<
22647(outs IntRegs:$Rx32),
22648(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22649"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22650tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22651let Inst{2-0} = 0b010;
22652let Inst{4-4} = 0b1;
22653let Inst{31-24} = 0b11011110;
22654let hasNewValue = 1;
22655let opNewValue = 0;
22656let prefersSlot3 = 1;
22657let isExtendable = 1;
22658let opExtendable = 1;
22659let isExtentSigned = 0;
22660let opExtentBits = 8;
22661let opExtentAlign = 0;
22662let Constraints = "$Rx32 = $Rx32in";
22663}
22664def S4_parity : HInst<
22665(outs IntRegs:$Rd32),
22666(ins IntRegs:$Rs32, IntRegs:$Rt32),
22667"$Rd32 = parity($Rs32,$Rt32)",
22668tc_a08b630b, TypeALU64>, Enc_5ab2be {
22669let Inst{7-5} = 0b000;
22670let Inst{13-13} = 0b0;
22671let Inst{31-21} = 0b11010101111;
22672let hasNewValue = 1;
22673let opNewValue = 0;
22674let prefersSlot3 = 1;
22675}
22676def S4_pstorerbf_abs : HInst<
22677(outs),
22678(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22679"if (!$Pv4) memb(#$Ii) = $Rt32",
22680tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
22681let Inst{2-2} = 0b1;
22682let Inst{7-7} = 0b1;
22683let Inst{13-13} = 0b0;
22684let Inst{31-18} = 0b10101111000000;
22685let isPredicated = 1;
22686let isPredicatedFalse = 1;
22687let addrMode = Absolute;
22688let accessSize = ByteAccess;
22689let isExtended = 1;
22690let mayStore = 1;
22691let BaseOpcode = "S2_storerbabs";
22692let CextOpcode = "S2_storerb";
22693let isNVStorable = 1;
22694let DecoderNamespace = "MustExtend";
22695let isExtendable = 1;
22696let opExtendable = 1;
22697let isExtentSigned = 0;
22698let opExtentBits = 6;
22699let opExtentAlign = 0;
22700}
22701def S4_pstorerbf_rr : HInst<
22702(outs),
22703(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22704"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22705tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
22706let Inst{31-21} = 0b00110101000;
22707let isPredicated = 1;
22708let isPredicatedFalse = 1;
22709let addrMode = BaseRegOffset;
22710let accessSize = ByteAccess;
22711let mayStore = 1;
22712let BaseOpcode = "S4_storerb_rr";
22713let CextOpcode = "S2_storerb";
22714let InputType = "reg";
22715let isNVStorable = 1;
22716}
22717def S4_pstorerbfnew_abs : HInst<
22718(outs),
22719(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22720"if (!$Pv4.new) memb(#$Ii) = $Rt32",
22721tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
22722let Inst{2-2} = 0b1;
22723let Inst{7-7} = 0b1;
22724let Inst{13-13} = 0b1;
22725let Inst{31-18} = 0b10101111000000;
22726let isPredicated = 1;
22727let isPredicatedFalse = 1;
22728let addrMode = Absolute;
22729let accessSize = ByteAccess;
22730let isPredicatedNew = 1;
22731let isExtended = 1;
22732let mayStore = 1;
22733let BaseOpcode = "S2_storerbabs";
22734let CextOpcode = "S2_storerb";
22735let isNVStorable = 1;
22736let DecoderNamespace = "MustExtend";
22737let isExtendable = 1;
22738let opExtendable = 1;
22739let isExtentSigned = 0;
22740let opExtentBits = 6;
22741let opExtentAlign = 0;
22742}
22743def S4_pstorerbfnew_io : HInst<
22744(outs),
22745(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22746"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22747tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22748let Inst{2-2} = 0b0;
22749let Inst{31-21} = 0b01000110000;
22750let isPredicated = 1;
22751let isPredicatedFalse = 1;
22752let addrMode = BaseImmOffset;
22753let accessSize = ByteAccess;
22754let isPredicatedNew = 1;
22755let mayStore = 1;
22756let BaseOpcode = "S2_storerb_io";
22757let CextOpcode = "S2_storerb";
22758let InputType = "imm";
22759let isNVStorable = 1;
22760let isExtendable = 1;
22761let opExtendable = 2;
22762let isExtentSigned = 0;
22763let opExtentBits = 6;
22764let opExtentAlign = 0;
22765}
22766def S4_pstorerbfnew_rr : HInst<
22767(outs),
22768(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22769"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22770tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
22771let Inst{31-21} = 0b00110111000;
22772let isPredicated = 1;
22773let isPredicatedFalse = 1;
22774let addrMode = BaseRegOffset;
22775let accessSize = ByteAccess;
22776let isPredicatedNew = 1;
22777let mayStore = 1;
22778let BaseOpcode = "S4_storerb_rr";
22779let CextOpcode = "S2_storerb";
22780let InputType = "reg";
22781let isNVStorable = 1;
22782}
22783def S4_pstorerbfnew_zomap : HInst<
22784(outs),
22785(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22786"if (!$Pv4.new) memb($Rs32) = $Rt32",
22787tc_a2b365d2, TypeMAPPING> {
22788let isPseudo = 1;
22789let isCodeGenOnly = 1;
22790}
22791def S4_pstorerbnewf_abs : HInst<
22792(outs),
22793(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22794"if (!$Pv4) memb(#$Ii) = $Nt8.new",
22795tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22796let Inst{2-2} = 0b1;
22797let Inst{7-7} = 0b1;
22798let Inst{13-11} = 0b000;
22799let Inst{31-18} = 0b10101111101000;
22800let isPredicated = 1;
22801let isPredicatedFalse = 1;
22802let addrMode = Absolute;
22803let accessSize = ByteAccess;
22804let isNVStore = 1;
22805let isNewValue = 1;
22806let isExtended = 1;
22807let isRestrictNoSlot1Store = 1;
22808let mayStore = 1;
22809let BaseOpcode = "S2_storerbabs";
22810let CextOpcode = "S2_storerb";
22811let DecoderNamespace = "MustExtend";
22812let isExtendable = 1;
22813let opExtendable = 1;
22814let isExtentSigned = 0;
22815let opExtentBits = 6;
22816let opExtentAlign = 0;
22817let opNewValue = 2;
22818}
22819def S4_pstorerbnewf_rr : HInst<
22820(outs),
22821(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22822"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22823tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22824let Inst{4-3} = 0b00;
22825let Inst{31-21} = 0b00110101101;
22826let isPredicated = 1;
22827let isPredicatedFalse = 1;
22828let addrMode = BaseRegOffset;
22829let accessSize = ByteAccess;
22830let isNVStore = 1;
22831let isNewValue = 1;
22832let isRestrictNoSlot1Store = 1;
22833let mayStore = 1;
22834let BaseOpcode = "S4_storerb_rr";
22835let CextOpcode = "S2_storerb";
22836let InputType = "reg";
22837let opNewValue = 4;
22838}
22839def S4_pstorerbnewfnew_abs : HInst<
22840(outs),
22841(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22842"if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22843tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22844let Inst{2-2} = 0b1;
22845let Inst{7-7} = 0b1;
22846let Inst{13-11} = 0b100;
22847let Inst{31-18} = 0b10101111101000;
22848let isPredicated = 1;
22849let isPredicatedFalse = 1;
22850let addrMode = Absolute;
22851let accessSize = ByteAccess;
22852let isNVStore = 1;
22853let isPredicatedNew = 1;
22854let isNewValue = 1;
22855let isExtended = 1;
22856let isRestrictNoSlot1Store = 1;
22857let mayStore = 1;
22858let BaseOpcode = "S2_storerbabs";
22859let CextOpcode = "S2_storerb";
22860let DecoderNamespace = "MustExtend";
22861let isExtendable = 1;
22862let opExtendable = 1;
22863let isExtentSigned = 0;
22864let opExtentBits = 6;
22865let opExtentAlign = 0;
22866let opNewValue = 2;
22867}
22868def S4_pstorerbnewfnew_io : HInst<
22869(outs),
22870(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22871"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22872tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
22873let Inst{2-2} = 0b0;
22874let Inst{12-11} = 0b00;
22875let Inst{31-21} = 0b01000110101;
22876let isPredicated = 1;
22877let isPredicatedFalse = 1;
22878let addrMode = BaseImmOffset;
22879let accessSize = ByteAccess;
22880let isNVStore = 1;
22881let isPredicatedNew = 1;
22882let isNewValue = 1;
22883let isRestrictNoSlot1Store = 1;
22884let mayStore = 1;
22885let BaseOpcode = "S2_storerb_io";
22886let CextOpcode = "S2_storerb";
22887let InputType = "imm";
22888let isExtendable = 1;
22889let opExtendable = 2;
22890let isExtentSigned = 0;
22891let opExtentBits = 6;
22892let opExtentAlign = 0;
22893let opNewValue = 3;
22894}
22895def S4_pstorerbnewfnew_rr : HInst<
22896(outs),
22897(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22898"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22899tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
22900let Inst{4-3} = 0b00;
22901let Inst{31-21} = 0b00110111101;
22902let isPredicated = 1;
22903let isPredicatedFalse = 1;
22904let addrMode = BaseRegOffset;
22905let accessSize = ByteAccess;
22906let isNVStore = 1;
22907let isPredicatedNew = 1;
22908let isNewValue = 1;
22909let isRestrictNoSlot1Store = 1;
22910let mayStore = 1;
22911let BaseOpcode = "S4_storerb_rr";
22912let CextOpcode = "S2_storerb";
22913let InputType = "reg";
22914let opNewValue = 4;
22915}
22916def S4_pstorerbnewfnew_zomap : HInst<
22917(outs),
22918(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22919"if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22920tc_92240447, TypeMAPPING> {
22921let isPseudo = 1;
22922let isCodeGenOnly = 1;
22923let opNewValue = 2;
22924}
22925def S4_pstorerbnewt_abs : HInst<
22926(outs),
22927(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22928"if ($Pv4) memb(#$Ii) = $Nt8.new",
22929tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22930let Inst{2-2} = 0b0;
22931let Inst{7-7} = 0b1;
22932let Inst{13-11} = 0b000;
22933let Inst{31-18} = 0b10101111101000;
22934let isPredicated = 1;
22935let addrMode = Absolute;
22936let accessSize = ByteAccess;
22937let isNVStore = 1;
22938let isNewValue = 1;
22939let isExtended = 1;
22940let isRestrictNoSlot1Store = 1;
22941let mayStore = 1;
22942let BaseOpcode = "S2_storerbabs";
22943let CextOpcode = "S2_storerb";
22944let DecoderNamespace = "MustExtend";
22945let isExtendable = 1;
22946let opExtendable = 1;
22947let isExtentSigned = 0;
22948let opExtentBits = 6;
22949let opExtentAlign = 0;
22950let opNewValue = 2;
22951}
22952def S4_pstorerbnewt_rr : HInst<
22953(outs),
22954(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22955"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22956tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22957let Inst{4-3} = 0b00;
22958let Inst{31-21} = 0b00110100101;
22959let isPredicated = 1;
22960let addrMode = BaseRegOffset;
22961let accessSize = ByteAccess;
22962let isNVStore = 1;
22963let isNewValue = 1;
22964let isRestrictNoSlot1Store = 1;
22965let mayStore = 1;
22966let BaseOpcode = "S4_storerb_rr";
22967let CextOpcode = "S2_storerb";
22968let InputType = "reg";
22969let opNewValue = 4;
22970}
22971def S4_pstorerbnewtnew_abs : HInst<
22972(outs),
22973(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22974"if ($Pv4.new) memb(#$Ii) = $Nt8.new",
22975tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22976let Inst{2-2} = 0b0;
22977let Inst{7-7} = 0b1;
22978let Inst{13-11} = 0b100;
22979let Inst{31-18} = 0b10101111101000;
22980let isPredicated = 1;
22981let addrMode = Absolute;
22982let accessSize = ByteAccess;
22983let isNVStore = 1;
22984let isPredicatedNew = 1;
22985let isNewValue = 1;
22986let isExtended = 1;
22987let isRestrictNoSlot1Store = 1;
22988let mayStore = 1;
22989let BaseOpcode = "S2_storerbabs";
22990let CextOpcode = "S2_storerb";
22991let DecoderNamespace = "MustExtend";
22992let isExtendable = 1;
22993let opExtendable = 1;
22994let isExtentSigned = 0;
22995let opExtentBits = 6;
22996let opExtentAlign = 0;
22997let opNewValue = 2;
22998}
22999def S4_pstorerbnewtnew_io : HInst<
23000(outs),
23001(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
23002"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
23003tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
23004let Inst{2-2} = 0b0;
23005let Inst{12-11} = 0b00;
23006let Inst{31-21} = 0b01000010101;
23007let isPredicated = 1;
23008let addrMode = BaseImmOffset;
23009let accessSize = ByteAccess;
23010let isNVStore = 1;
23011let isPredicatedNew = 1;
23012let isNewValue = 1;
23013let isRestrictNoSlot1Store = 1;
23014let mayStore = 1;
23015let BaseOpcode = "S2_storerb_io";
23016let CextOpcode = "S2_storerb";
23017let InputType = "imm";
23018let isExtendable = 1;
23019let opExtendable = 2;
23020let isExtentSigned = 0;
23021let opExtentBits = 6;
23022let opExtentAlign = 0;
23023let opNewValue = 3;
23024}
23025def S4_pstorerbnewtnew_rr : HInst<
23026(outs),
23027(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23028"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23029tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23030let Inst{4-3} = 0b00;
23031let Inst{31-21} = 0b00110110101;
23032let isPredicated = 1;
23033let addrMode = BaseRegOffset;
23034let accessSize = ByteAccess;
23035let isNVStore = 1;
23036let isPredicatedNew = 1;
23037let isNewValue = 1;
23038let isRestrictNoSlot1Store = 1;
23039let mayStore = 1;
23040let BaseOpcode = "S4_storerb_rr";
23041let CextOpcode = "S2_storerb";
23042let InputType = "reg";
23043let opNewValue = 4;
23044}
23045def S4_pstorerbnewtnew_zomap : HInst<
23046(outs),
23047(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23048"if ($Pv4.new) memb($Rs32) = $Nt8.new",
23049tc_92240447, TypeMAPPING> {
23050let isPseudo = 1;
23051let isCodeGenOnly = 1;
23052let opNewValue = 2;
23053}
23054def S4_pstorerbt_abs : HInst<
23055(outs),
23056(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23057"if ($Pv4) memb(#$Ii) = $Rt32",
23058tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23059let Inst{2-2} = 0b0;
23060let Inst{7-7} = 0b1;
23061let Inst{13-13} = 0b0;
23062let Inst{31-18} = 0b10101111000000;
23063let isPredicated = 1;
23064let addrMode = Absolute;
23065let accessSize = ByteAccess;
23066let isExtended = 1;
23067let mayStore = 1;
23068let BaseOpcode = "S2_storerbabs";
23069let CextOpcode = "S2_storerb";
23070let isNVStorable = 1;
23071let DecoderNamespace = "MustExtend";
23072let isExtendable = 1;
23073let opExtendable = 1;
23074let isExtentSigned = 0;
23075let opExtentBits = 6;
23076let opExtentAlign = 0;
23077}
23078def S4_pstorerbt_rr : HInst<
23079(outs),
23080(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23081"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23082tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23083let Inst{31-21} = 0b00110100000;
23084let isPredicated = 1;
23085let addrMode = BaseRegOffset;
23086let accessSize = ByteAccess;
23087let mayStore = 1;
23088let BaseOpcode = "S4_storerb_rr";
23089let CextOpcode = "S2_storerb";
23090let InputType = "reg";
23091let isNVStorable = 1;
23092}
23093def S4_pstorerbtnew_abs : HInst<
23094(outs),
23095(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23096"if ($Pv4.new) memb(#$Ii) = $Rt32",
23097tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23098let Inst{2-2} = 0b0;
23099let Inst{7-7} = 0b1;
23100let Inst{13-13} = 0b1;
23101let Inst{31-18} = 0b10101111000000;
23102let isPredicated = 1;
23103let addrMode = Absolute;
23104let accessSize = ByteAccess;
23105let isPredicatedNew = 1;
23106let isExtended = 1;
23107let mayStore = 1;
23108let BaseOpcode = "S2_storerbabs";
23109let CextOpcode = "S2_storerb";
23110let isNVStorable = 1;
23111let DecoderNamespace = "MustExtend";
23112let isExtendable = 1;
23113let opExtendable = 1;
23114let isExtentSigned = 0;
23115let opExtentBits = 6;
23116let opExtentAlign = 0;
23117}
23118def S4_pstorerbtnew_io : HInst<
23119(outs),
23120(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
23121"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
23122tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
23123let Inst{2-2} = 0b0;
23124let Inst{31-21} = 0b01000010000;
23125let isPredicated = 1;
23126let addrMode = BaseImmOffset;
23127let accessSize = ByteAccess;
23128let isPredicatedNew = 1;
23129let mayStore = 1;
23130let BaseOpcode = "S2_storerb_io";
23131let CextOpcode = "S2_storerb";
23132let InputType = "imm";
23133let isNVStorable = 1;
23134let isExtendable = 1;
23135let opExtendable = 2;
23136let isExtentSigned = 0;
23137let opExtentBits = 6;
23138let opExtentAlign = 0;
23139}
23140def S4_pstorerbtnew_rr : HInst<
23141(outs),
23142(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23143"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23144tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23145let Inst{31-21} = 0b00110110000;
23146let isPredicated = 1;
23147let addrMode = BaseRegOffset;
23148let accessSize = ByteAccess;
23149let isPredicatedNew = 1;
23150let mayStore = 1;
23151let BaseOpcode = "S4_storerb_rr";
23152let CextOpcode = "S2_storerb";
23153let InputType = "reg";
23154let isNVStorable = 1;
23155}
23156def S4_pstorerbtnew_zomap : HInst<
23157(outs),
23158(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23159"if ($Pv4.new) memb($Rs32) = $Rt32",
23160tc_a2b365d2, TypeMAPPING> {
23161let isPseudo = 1;
23162let isCodeGenOnly = 1;
23163}
23164def S4_pstorerdf_abs : HInst<
23165(outs),
23166(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23167"if (!$Pv4) memd(#$Ii) = $Rtt32",
23168tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23169let Inst{2-2} = 0b1;
23170let Inst{7-7} = 0b1;
23171let Inst{13-13} = 0b0;
23172let Inst{31-18} = 0b10101111110000;
23173let isPredicated = 1;
23174let isPredicatedFalse = 1;
23175let addrMode = Absolute;
23176let accessSize = DoubleWordAccess;
23177let isExtended = 1;
23178let mayStore = 1;
23179let BaseOpcode = "S2_storerdabs";
23180let CextOpcode = "S2_storerd";
23181let DecoderNamespace = "MustExtend";
23182let isExtendable = 1;
23183let opExtendable = 1;
23184let isExtentSigned = 0;
23185let opExtentBits = 6;
23186let opExtentAlign = 0;
23187}
23188def S4_pstorerdf_rr : HInst<
23189(outs),
23190(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23191"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23192tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23193let Inst{31-21} = 0b00110101110;
23194let isPredicated = 1;
23195let isPredicatedFalse = 1;
23196let addrMode = BaseRegOffset;
23197let accessSize = DoubleWordAccess;
23198let mayStore = 1;
23199let BaseOpcode = "S2_storerd_rr";
23200let CextOpcode = "S2_storerd";
23201let InputType = "reg";
23202}
23203def S4_pstorerdfnew_abs : HInst<
23204(outs),
23205(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23206"if (!$Pv4.new) memd(#$Ii) = $Rtt32",
23207tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23208let Inst{2-2} = 0b1;
23209let Inst{7-7} = 0b1;
23210let Inst{13-13} = 0b1;
23211let Inst{31-18} = 0b10101111110000;
23212let isPredicated = 1;
23213let isPredicatedFalse = 1;
23214let addrMode = Absolute;
23215let accessSize = DoubleWordAccess;
23216let isPredicatedNew = 1;
23217let isExtended = 1;
23218let mayStore = 1;
23219let BaseOpcode = "S2_storerdabs";
23220let CextOpcode = "S2_storerd";
23221let DecoderNamespace = "MustExtend";
23222let isExtendable = 1;
23223let opExtendable = 1;
23224let isExtentSigned = 0;
23225let opExtentBits = 6;
23226let opExtentAlign = 0;
23227}
23228def S4_pstorerdfnew_io : HInst<
23229(outs),
23230(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23231"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23232tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23233let Inst{2-2} = 0b0;
23234let Inst{31-21} = 0b01000110110;
23235let isPredicated = 1;
23236let isPredicatedFalse = 1;
23237let addrMode = BaseImmOffset;
23238let accessSize = DoubleWordAccess;
23239let isPredicatedNew = 1;
23240let mayStore = 1;
23241let BaseOpcode = "S2_storerd_io";
23242let CextOpcode = "S2_storerd";
23243let InputType = "imm";
23244let isExtendable = 1;
23245let opExtendable = 2;
23246let isExtentSigned = 0;
23247let opExtentBits = 9;
23248let opExtentAlign = 3;
23249}
23250def S4_pstorerdfnew_rr : HInst<
23251(outs),
23252(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23253"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23254tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23255let Inst{31-21} = 0b00110111110;
23256let isPredicated = 1;
23257let isPredicatedFalse = 1;
23258let addrMode = BaseRegOffset;
23259let accessSize = DoubleWordAccess;
23260let isPredicatedNew = 1;
23261let mayStore = 1;
23262let BaseOpcode = "S2_storerd_rr";
23263let CextOpcode = "S2_storerd";
23264let InputType = "reg";
23265}
23266def S4_pstorerdfnew_zomap : HInst<
23267(outs),
23268(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23269"if (!$Pv4.new) memd($Rs32) = $Rtt32",
23270tc_a2b365d2, TypeMAPPING> {
23271let isPseudo = 1;
23272let isCodeGenOnly = 1;
23273}
23274def S4_pstorerdt_abs : HInst<
23275(outs),
23276(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23277"if ($Pv4) memd(#$Ii) = $Rtt32",
23278tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23279let Inst{2-2} = 0b0;
23280let Inst{7-7} = 0b1;
23281let Inst{13-13} = 0b0;
23282let Inst{31-18} = 0b10101111110000;
23283let isPredicated = 1;
23284let addrMode = Absolute;
23285let accessSize = DoubleWordAccess;
23286let isExtended = 1;
23287let mayStore = 1;
23288let BaseOpcode = "S2_storerdabs";
23289let CextOpcode = "S2_storerd";
23290let DecoderNamespace = "MustExtend";
23291let isExtendable = 1;
23292let opExtendable = 1;
23293let isExtentSigned = 0;
23294let opExtentBits = 6;
23295let opExtentAlign = 0;
23296}
23297def S4_pstorerdt_rr : HInst<
23298(outs),
23299(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23300"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23301tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23302let Inst{31-21} = 0b00110100110;
23303let isPredicated = 1;
23304let addrMode = BaseRegOffset;
23305let accessSize = DoubleWordAccess;
23306let mayStore = 1;
23307let BaseOpcode = "S2_storerd_rr";
23308let CextOpcode = "S2_storerd";
23309let InputType = "reg";
23310}
23311def S4_pstorerdtnew_abs : HInst<
23312(outs),
23313(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23314"if ($Pv4.new) memd(#$Ii) = $Rtt32",
23315tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23316let Inst{2-2} = 0b0;
23317let Inst{7-7} = 0b1;
23318let Inst{13-13} = 0b1;
23319let Inst{31-18} = 0b10101111110000;
23320let isPredicated = 1;
23321let addrMode = Absolute;
23322let accessSize = DoubleWordAccess;
23323let isPredicatedNew = 1;
23324let isExtended = 1;
23325let mayStore = 1;
23326let BaseOpcode = "S2_storerdabs";
23327let CextOpcode = "S2_storerd";
23328let DecoderNamespace = "MustExtend";
23329let isExtendable = 1;
23330let opExtendable = 1;
23331let isExtentSigned = 0;
23332let opExtentBits = 6;
23333let opExtentAlign = 0;
23334}
23335def S4_pstorerdtnew_io : HInst<
23336(outs),
23337(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23338"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23339tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23340let Inst{2-2} = 0b0;
23341let Inst{31-21} = 0b01000010110;
23342let isPredicated = 1;
23343let addrMode = BaseImmOffset;
23344let accessSize = DoubleWordAccess;
23345let isPredicatedNew = 1;
23346let mayStore = 1;
23347let BaseOpcode = "S2_storerd_io";
23348let CextOpcode = "S2_storerd";
23349let InputType = "imm";
23350let isExtendable = 1;
23351let opExtendable = 2;
23352let isExtentSigned = 0;
23353let opExtentBits = 9;
23354let opExtentAlign = 3;
23355}
23356def S4_pstorerdtnew_rr : HInst<
23357(outs),
23358(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23359"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23360tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23361let Inst{31-21} = 0b00110110110;
23362let isPredicated = 1;
23363let addrMode = BaseRegOffset;
23364let accessSize = DoubleWordAccess;
23365let isPredicatedNew = 1;
23366let mayStore = 1;
23367let BaseOpcode = "S2_storerd_rr";
23368let CextOpcode = "S2_storerd";
23369let InputType = "reg";
23370}
23371def S4_pstorerdtnew_zomap : HInst<
23372(outs),
23373(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23374"if ($Pv4.new) memd($Rs32) = $Rtt32",
23375tc_a2b365d2, TypeMAPPING> {
23376let isPseudo = 1;
23377let isCodeGenOnly = 1;
23378}
23379def S4_pstorerff_abs : HInst<
23380(outs),
23381(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23382"if (!$Pv4) memh(#$Ii) = $Rt32.h",
23383tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23384let Inst{2-2} = 0b1;
23385let Inst{7-7} = 0b1;
23386let Inst{13-13} = 0b0;
23387let Inst{31-18} = 0b10101111011000;
23388let isPredicated = 1;
23389let isPredicatedFalse = 1;
23390let addrMode = Absolute;
23391let accessSize = HalfWordAccess;
23392let isExtended = 1;
23393let mayStore = 1;
23394let BaseOpcode = "S2_storerfabs";
23395let CextOpcode = "S2_storerf";
23396let DecoderNamespace = "MustExtend";
23397let isExtendable = 1;
23398let opExtendable = 1;
23399let isExtentSigned = 0;
23400let opExtentBits = 6;
23401let opExtentAlign = 0;
23402}
23403def S4_pstorerff_rr : HInst<
23404(outs),
23405(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23406"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23407tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23408let Inst{31-21} = 0b00110101011;
23409let isPredicated = 1;
23410let isPredicatedFalse = 1;
23411let addrMode = BaseRegOffset;
23412let accessSize = HalfWordAccess;
23413let mayStore = 1;
23414let BaseOpcode = "S4_storerf_rr";
23415let CextOpcode = "S2_storerf";
23416let InputType = "reg";
23417}
23418def S4_pstorerffnew_abs : HInst<
23419(outs),
23420(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23421"if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23422tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23423let Inst{2-2} = 0b1;
23424let Inst{7-7} = 0b1;
23425let Inst{13-13} = 0b1;
23426let Inst{31-18} = 0b10101111011000;
23427let isPredicated = 1;
23428let isPredicatedFalse = 1;
23429let addrMode = Absolute;
23430let accessSize = HalfWordAccess;
23431let isPredicatedNew = 1;
23432let isExtended = 1;
23433let mayStore = 1;
23434let BaseOpcode = "S2_storerfabs";
23435let CextOpcode = "S2_storerf";
23436let DecoderNamespace = "MustExtend";
23437let isExtendable = 1;
23438let opExtendable = 1;
23439let isExtentSigned = 0;
23440let opExtentBits = 6;
23441let opExtentAlign = 0;
23442}
23443def S4_pstorerffnew_io : HInst<
23444(outs),
23445(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23446"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23447tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23448let Inst{2-2} = 0b0;
23449let Inst{31-21} = 0b01000110011;
23450let isPredicated = 1;
23451let isPredicatedFalse = 1;
23452let addrMode = BaseImmOffset;
23453let accessSize = HalfWordAccess;
23454let isPredicatedNew = 1;
23455let mayStore = 1;
23456let BaseOpcode = "S2_storerf_io";
23457let CextOpcode = "S2_storerf";
23458let InputType = "imm";
23459let isExtendable = 1;
23460let opExtendable = 2;
23461let isExtentSigned = 0;
23462let opExtentBits = 7;
23463let opExtentAlign = 1;
23464}
23465def S4_pstorerffnew_rr : HInst<
23466(outs),
23467(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23468"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23469tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23470let Inst{31-21} = 0b00110111011;
23471let isPredicated = 1;
23472let isPredicatedFalse = 1;
23473let addrMode = BaseRegOffset;
23474let accessSize = HalfWordAccess;
23475let isPredicatedNew = 1;
23476let mayStore = 1;
23477let BaseOpcode = "S4_storerf_rr";
23478let CextOpcode = "S2_storerf";
23479let InputType = "reg";
23480}
23481def S4_pstorerffnew_zomap : HInst<
23482(outs),
23483(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23484"if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23485tc_a2b365d2, TypeMAPPING> {
23486let isPseudo = 1;
23487let isCodeGenOnly = 1;
23488}
23489def S4_pstorerft_abs : HInst<
23490(outs),
23491(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23492"if ($Pv4) memh(#$Ii) = $Rt32.h",
23493tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23494let Inst{2-2} = 0b0;
23495let Inst{7-7} = 0b1;
23496let Inst{13-13} = 0b0;
23497let Inst{31-18} = 0b10101111011000;
23498let isPredicated = 1;
23499let addrMode = Absolute;
23500let accessSize = HalfWordAccess;
23501let isExtended = 1;
23502let mayStore = 1;
23503let BaseOpcode = "S2_storerfabs";
23504let CextOpcode = "S2_storerf";
23505let DecoderNamespace = "MustExtend";
23506let isExtendable = 1;
23507let opExtendable = 1;
23508let isExtentSigned = 0;
23509let opExtentBits = 6;
23510let opExtentAlign = 0;
23511}
23512def S4_pstorerft_rr : HInst<
23513(outs),
23514(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23515"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23516tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23517let Inst{31-21} = 0b00110100011;
23518let isPredicated = 1;
23519let addrMode = BaseRegOffset;
23520let accessSize = HalfWordAccess;
23521let mayStore = 1;
23522let BaseOpcode = "S4_storerf_rr";
23523let CextOpcode = "S2_storerf";
23524let InputType = "reg";
23525}
23526def S4_pstorerftnew_abs : HInst<
23527(outs),
23528(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23529"if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23530tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23531let Inst{2-2} = 0b0;
23532let Inst{7-7} = 0b1;
23533let Inst{13-13} = 0b1;
23534let Inst{31-18} = 0b10101111011000;
23535let isPredicated = 1;
23536let addrMode = Absolute;
23537let accessSize = HalfWordAccess;
23538let isPredicatedNew = 1;
23539let isExtended = 1;
23540let mayStore = 1;
23541let BaseOpcode = "S2_storerfabs";
23542let CextOpcode = "S2_storerf";
23543let DecoderNamespace = "MustExtend";
23544let isExtendable = 1;
23545let opExtendable = 1;
23546let isExtentSigned = 0;
23547let opExtentBits = 6;
23548let opExtentAlign = 0;
23549}
23550def S4_pstorerftnew_io : HInst<
23551(outs),
23552(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23553"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23554tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23555let Inst{2-2} = 0b0;
23556let Inst{31-21} = 0b01000010011;
23557let isPredicated = 1;
23558let addrMode = BaseImmOffset;
23559let accessSize = HalfWordAccess;
23560let isPredicatedNew = 1;
23561let mayStore = 1;
23562let BaseOpcode = "S2_storerf_io";
23563let CextOpcode = "S2_storerf";
23564let InputType = "imm";
23565let isExtendable = 1;
23566let opExtendable = 2;
23567let isExtentSigned = 0;
23568let opExtentBits = 7;
23569let opExtentAlign = 1;
23570}
23571def S4_pstorerftnew_rr : HInst<
23572(outs),
23573(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23574"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23575tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23576let Inst{31-21} = 0b00110110011;
23577let isPredicated = 1;
23578let addrMode = BaseRegOffset;
23579let accessSize = HalfWordAccess;
23580let isPredicatedNew = 1;
23581let mayStore = 1;
23582let BaseOpcode = "S4_storerf_rr";
23583let CextOpcode = "S2_storerf";
23584let InputType = "reg";
23585}
23586def S4_pstorerftnew_zomap : HInst<
23587(outs),
23588(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23589"if ($Pv4.new) memh($Rs32) = $Rt32.h",
23590tc_a2b365d2, TypeMAPPING> {
23591let isPseudo = 1;
23592let isCodeGenOnly = 1;
23593}
23594def S4_pstorerhf_abs : HInst<
23595(outs),
23596(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23597"if (!$Pv4) memh(#$Ii) = $Rt32",
23598tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23599let Inst{2-2} = 0b1;
23600let Inst{7-7} = 0b1;
23601let Inst{13-13} = 0b0;
23602let Inst{31-18} = 0b10101111010000;
23603let isPredicated = 1;
23604let isPredicatedFalse = 1;
23605let addrMode = Absolute;
23606let accessSize = HalfWordAccess;
23607let isExtended = 1;
23608let mayStore = 1;
23609let BaseOpcode = "S2_storerhabs";
23610let CextOpcode = "S2_storerh";
23611let isNVStorable = 1;
23612let DecoderNamespace = "MustExtend";
23613let isExtendable = 1;
23614let opExtendable = 1;
23615let isExtentSigned = 0;
23616let opExtentBits = 6;
23617let opExtentAlign = 0;
23618}
23619def S4_pstorerhf_rr : HInst<
23620(outs),
23621(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23622"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23623tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23624let Inst{31-21} = 0b00110101010;
23625let isPredicated = 1;
23626let isPredicatedFalse = 1;
23627let addrMode = BaseRegOffset;
23628let accessSize = HalfWordAccess;
23629let mayStore = 1;
23630let BaseOpcode = "S2_storerh_rr";
23631let CextOpcode = "S2_storerh";
23632let InputType = "reg";
23633let isNVStorable = 1;
23634}
23635def S4_pstorerhfnew_abs : HInst<
23636(outs),
23637(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23638"if (!$Pv4.new) memh(#$Ii) = $Rt32",
23639tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23640let Inst{2-2} = 0b1;
23641let Inst{7-7} = 0b1;
23642let Inst{13-13} = 0b1;
23643let Inst{31-18} = 0b10101111010000;
23644let isPredicated = 1;
23645let isPredicatedFalse = 1;
23646let addrMode = Absolute;
23647let accessSize = HalfWordAccess;
23648let isPredicatedNew = 1;
23649let isExtended = 1;
23650let mayStore = 1;
23651let BaseOpcode = "S2_storerhabs";
23652let CextOpcode = "S2_storerh";
23653let isNVStorable = 1;
23654let DecoderNamespace = "MustExtend";
23655let isExtendable = 1;
23656let opExtendable = 1;
23657let isExtentSigned = 0;
23658let opExtentBits = 6;
23659let opExtentAlign = 0;
23660}
23661def S4_pstorerhfnew_io : HInst<
23662(outs),
23663(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23664"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23665tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23666let Inst{2-2} = 0b0;
23667let Inst{31-21} = 0b01000110010;
23668let isPredicated = 1;
23669let isPredicatedFalse = 1;
23670let addrMode = BaseImmOffset;
23671let accessSize = HalfWordAccess;
23672let isPredicatedNew = 1;
23673let mayStore = 1;
23674let BaseOpcode = "S2_storerh_io";
23675let CextOpcode = "S2_storerh";
23676let InputType = "imm";
23677let isNVStorable = 1;
23678let isExtendable = 1;
23679let opExtendable = 2;
23680let isExtentSigned = 0;
23681let opExtentBits = 7;
23682let opExtentAlign = 1;
23683}
23684def S4_pstorerhfnew_rr : HInst<
23685(outs),
23686(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23687"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23688tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23689let Inst{31-21} = 0b00110111010;
23690let isPredicated = 1;
23691let isPredicatedFalse = 1;
23692let addrMode = BaseRegOffset;
23693let accessSize = HalfWordAccess;
23694let isPredicatedNew = 1;
23695let mayStore = 1;
23696let BaseOpcode = "S2_storerh_rr";
23697let CextOpcode = "S2_storerh";
23698let InputType = "reg";
23699let isNVStorable = 1;
23700}
23701def S4_pstorerhfnew_zomap : HInst<
23702(outs),
23703(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23704"if (!$Pv4.new) memh($Rs32) = $Rt32",
23705tc_a2b365d2, TypeMAPPING> {
23706let isPseudo = 1;
23707let isCodeGenOnly = 1;
23708}
23709def S4_pstorerhnewf_abs : HInst<
23710(outs),
23711(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23712"if (!$Pv4) memh(#$Ii) = $Nt8.new",
23713tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23714let Inst{2-2} = 0b1;
23715let Inst{7-7} = 0b1;
23716let Inst{13-11} = 0b001;
23717let Inst{31-18} = 0b10101111101000;
23718let isPredicated = 1;
23719let isPredicatedFalse = 1;
23720let addrMode = Absolute;
23721let accessSize = HalfWordAccess;
23722let isNVStore = 1;
23723let isNewValue = 1;
23724let isExtended = 1;
23725let isRestrictNoSlot1Store = 1;
23726let mayStore = 1;
23727let BaseOpcode = "S2_storerhabs";
23728let CextOpcode = "S2_storerh";
23729let DecoderNamespace = "MustExtend";
23730let isExtendable = 1;
23731let opExtendable = 1;
23732let isExtentSigned = 0;
23733let opExtentBits = 6;
23734let opExtentAlign = 0;
23735let opNewValue = 2;
23736}
23737def S4_pstorerhnewf_rr : HInst<
23738(outs),
23739(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23740"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23741tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23742let Inst{4-3} = 0b01;
23743let Inst{31-21} = 0b00110101101;
23744let isPredicated = 1;
23745let isPredicatedFalse = 1;
23746let addrMode = BaseRegOffset;
23747let accessSize = HalfWordAccess;
23748let isNVStore = 1;
23749let isNewValue = 1;
23750let isRestrictNoSlot1Store = 1;
23751let mayStore = 1;
23752let BaseOpcode = "S2_storerh_rr";
23753let CextOpcode = "S2_storerh";
23754let InputType = "reg";
23755let opNewValue = 4;
23756}
23757def S4_pstorerhnewfnew_abs : HInst<
23758(outs),
23759(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23760"if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23761tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23762let Inst{2-2} = 0b1;
23763let Inst{7-7} = 0b1;
23764let Inst{13-11} = 0b101;
23765let Inst{31-18} = 0b10101111101000;
23766let isPredicated = 1;
23767let isPredicatedFalse = 1;
23768let addrMode = Absolute;
23769let accessSize = HalfWordAccess;
23770let isNVStore = 1;
23771let isPredicatedNew = 1;
23772let isNewValue = 1;
23773let isExtended = 1;
23774let isRestrictNoSlot1Store = 1;
23775let mayStore = 1;
23776let BaseOpcode = "S2_storerhabs";
23777let CextOpcode = "S2_storerh";
23778let DecoderNamespace = "MustExtend";
23779let isExtendable = 1;
23780let opExtendable = 1;
23781let isExtentSigned = 0;
23782let opExtentBits = 6;
23783let opExtentAlign = 0;
23784let opNewValue = 2;
23785}
23786def S4_pstorerhnewfnew_io : HInst<
23787(outs),
23788(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23789"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23790tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23791let Inst{2-2} = 0b0;
23792let Inst{12-11} = 0b01;
23793let Inst{31-21} = 0b01000110101;
23794let isPredicated = 1;
23795let isPredicatedFalse = 1;
23796let addrMode = BaseImmOffset;
23797let accessSize = HalfWordAccess;
23798let isNVStore = 1;
23799let isPredicatedNew = 1;
23800let isNewValue = 1;
23801let isRestrictNoSlot1Store = 1;
23802let mayStore = 1;
23803let BaseOpcode = "S2_storerh_io";
23804let CextOpcode = "S2_storerh";
23805let InputType = "imm";
23806let isExtendable = 1;
23807let opExtendable = 2;
23808let isExtentSigned = 0;
23809let opExtentBits = 7;
23810let opExtentAlign = 1;
23811let opNewValue = 3;
23812}
23813def S4_pstorerhnewfnew_rr : HInst<
23814(outs),
23815(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23816"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23817tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23818let Inst{4-3} = 0b01;
23819let Inst{31-21} = 0b00110111101;
23820let isPredicated = 1;
23821let isPredicatedFalse = 1;
23822let addrMode = BaseRegOffset;
23823let accessSize = HalfWordAccess;
23824let isNVStore = 1;
23825let isPredicatedNew = 1;
23826let isNewValue = 1;
23827let isRestrictNoSlot1Store = 1;
23828let mayStore = 1;
23829let BaseOpcode = "S2_storerh_rr";
23830let CextOpcode = "S2_storerh";
23831let InputType = "reg";
23832let opNewValue = 4;
23833}
23834def S4_pstorerhnewfnew_zomap : HInst<
23835(outs),
23836(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23837"if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23838tc_92240447, TypeMAPPING> {
23839let isPseudo = 1;
23840let isCodeGenOnly = 1;
23841let opNewValue = 2;
23842}
23843def S4_pstorerhnewt_abs : HInst<
23844(outs),
23845(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23846"if ($Pv4) memh(#$Ii) = $Nt8.new",
23847tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23848let Inst{2-2} = 0b0;
23849let Inst{7-7} = 0b1;
23850let Inst{13-11} = 0b001;
23851let Inst{31-18} = 0b10101111101000;
23852let isPredicated = 1;
23853let addrMode = Absolute;
23854let accessSize = HalfWordAccess;
23855let isNVStore = 1;
23856let isNewValue = 1;
23857let isExtended = 1;
23858let isRestrictNoSlot1Store = 1;
23859let mayStore = 1;
23860let BaseOpcode = "S2_storerhabs";
23861let CextOpcode = "S2_storerh";
23862let DecoderNamespace = "MustExtend";
23863let isExtendable = 1;
23864let opExtendable = 1;
23865let isExtentSigned = 0;
23866let opExtentBits = 6;
23867let opExtentAlign = 0;
23868let opNewValue = 2;
23869}
23870def S4_pstorerhnewt_rr : HInst<
23871(outs),
23872(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23873"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23874tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23875let Inst{4-3} = 0b01;
23876let Inst{31-21} = 0b00110100101;
23877let isPredicated = 1;
23878let addrMode = BaseRegOffset;
23879let accessSize = HalfWordAccess;
23880let isNVStore = 1;
23881let isNewValue = 1;
23882let isRestrictNoSlot1Store = 1;
23883let mayStore = 1;
23884let BaseOpcode = "S2_storerh_rr";
23885let CextOpcode = "S2_storerh";
23886let InputType = "reg";
23887let opNewValue = 4;
23888}
23889def S4_pstorerhnewtnew_abs : HInst<
23890(outs),
23891(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23892"if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23893tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23894let Inst{2-2} = 0b0;
23895let Inst{7-7} = 0b1;
23896let Inst{13-11} = 0b101;
23897let Inst{31-18} = 0b10101111101000;
23898let isPredicated = 1;
23899let addrMode = Absolute;
23900let accessSize = HalfWordAccess;
23901let isNVStore = 1;
23902let isPredicatedNew = 1;
23903let isNewValue = 1;
23904let isExtended = 1;
23905let isRestrictNoSlot1Store = 1;
23906let mayStore = 1;
23907let BaseOpcode = "S2_storerhabs";
23908let CextOpcode = "S2_storerh";
23909let DecoderNamespace = "MustExtend";
23910let isExtendable = 1;
23911let opExtendable = 1;
23912let isExtentSigned = 0;
23913let opExtentBits = 6;
23914let opExtentAlign = 0;
23915let opNewValue = 2;
23916}
23917def S4_pstorerhnewtnew_io : HInst<
23918(outs),
23919(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23920"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23921tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23922let Inst{2-2} = 0b0;
23923let Inst{12-11} = 0b01;
23924let Inst{31-21} = 0b01000010101;
23925let isPredicated = 1;
23926let addrMode = BaseImmOffset;
23927let accessSize = HalfWordAccess;
23928let isNVStore = 1;
23929let isPredicatedNew = 1;
23930let isNewValue = 1;
23931let isRestrictNoSlot1Store = 1;
23932let mayStore = 1;
23933let BaseOpcode = "S2_storerh_io";
23934let CextOpcode = "S2_storerh";
23935let InputType = "imm";
23936let isExtendable = 1;
23937let opExtendable = 2;
23938let isExtentSigned = 0;
23939let opExtentBits = 7;
23940let opExtentAlign = 1;
23941let opNewValue = 3;
23942}
23943def S4_pstorerhnewtnew_rr : HInst<
23944(outs),
23945(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23946"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23947tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23948let Inst{4-3} = 0b01;
23949let Inst{31-21} = 0b00110110101;
23950let isPredicated = 1;
23951let addrMode = BaseRegOffset;
23952let accessSize = HalfWordAccess;
23953let isNVStore = 1;
23954let isPredicatedNew = 1;
23955let isNewValue = 1;
23956let isRestrictNoSlot1Store = 1;
23957let mayStore = 1;
23958let BaseOpcode = "S2_storerh_rr";
23959let CextOpcode = "S2_storerh";
23960let InputType = "reg";
23961let opNewValue = 4;
23962}
23963def S4_pstorerhnewtnew_zomap : HInst<
23964(outs),
23965(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23966"if ($Pv4.new) memh($Rs32) = $Nt8.new",
23967tc_92240447, TypeMAPPING> {
23968let isPseudo = 1;
23969let isCodeGenOnly = 1;
23970let opNewValue = 2;
23971}
23972def S4_pstorerht_abs : HInst<
23973(outs),
23974(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23975"if ($Pv4) memh(#$Ii) = $Rt32",
23976tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23977let Inst{2-2} = 0b0;
23978let Inst{7-7} = 0b1;
23979let Inst{13-13} = 0b0;
23980let Inst{31-18} = 0b10101111010000;
23981let isPredicated = 1;
23982let addrMode = Absolute;
23983let accessSize = HalfWordAccess;
23984let isExtended = 1;
23985let mayStore = 1;
23986let BaseOpcode = "S2_storerhabs";
23987let CextOpcode = "S2_storerh";
23988let isNVStorable = 1;
23989let DecoderNamespace = "MustExtend";
23990let isExtendable = 1;
23991let opExtendable = 1;
23992let isExtentSigned = 0;
23993let opExtentBits = 6;
23994let opExtentAlign = 0;
23995}
23996def S4_pstorerht_rr : HInst<
23997(outs),
23998(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23999"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24000tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24001let Inst{31-21} = 0b00110100010;
24002let isPredicated = 1;
24003let addrMode = BaseRegOffset;
24004let accessSize = HalfWordAccess;
24005let mayStore = 1;
24006let BaseOpcode = "S2_storerh_rr";
24007let CextOpcode = "S2_storerh";
24008let InputType = "reg";
24009let isNVStorable = 1;
24010}
24011def S4_pstorerhtnew_abs : HInst<
24012(outs),
24013(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24014"if ($Pv4.new) memh(#$Ii) = $Rt32",
24015tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24016let Inst{2-2} = 0b0;
24017let Inst{7-7} = 0b1;
24018let Inst{13-13} = 0b1;
24019let Inst{31-18} = 0b10101111010000;
24020let isPredicated = 1;
24021let addrMode = Absolute;
24022let accessSize = HalfWordAccess;
24023let isPredicatedNew = 1;
24024let isExtended = 1;
24025let mayStore = 1;
24026let BaseOpcode = "S2_storerhabs";
24027let CextOpcode = "S2_storerh";
24028let isNVStorable = 1;
24029let DecoderNamespace = "MustExtend";
24030let isExtendable = 1;
24031let opExtendable = 1;
24032let isExtentSigned = 0;
24033let opExtentBits = 6;
24034let opExtentAlign = 0;
24035}
24036def S4_pstorerhtnew_io : HInst<
24037(outs),
24038(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
24039"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
24040tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
24041let Inst{2-2} = 0b0;
24042let Inst{31-21} = 0b01000010010;
24043let isPredicated = 1;
24044let addrMode = BaseImmOffset;
24045let accessSize = HalfWordAccess;
24046let isPredicatedNew = 1;
24047let mayStore = 1;
24048let BaseOpcode = "S2_storerh_io";
24049let CextOpcode = "S2_storerh";
24050let InputType = "imm";
24051let isNVStorable = 1;
24052let isExtendable = 1;
24053let opExtendable = 2;
24054let isExtentSigned = 0;
24055let opExtentBits = 7;
24056let opExtentAlign = 1;
24057}
24058def S4_pstorerhtnew_rr : HInst<
24059(outs),
24060(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24061"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24062tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24063let Inst{31-21} = 0b00110110010;
24064let isPredicated = 1;
24065let addrMode = BaseRegOffset;
24066let accessSize = HalfWordAccess;
24067let isPredicatedNew = 1;
24068let mayStore = 1;
24069let BaseOpcode = "S2_storerh_rr";
24070let CextOpcode = "S2_storerh";
24071let InputType = "reg";
24072let isNVStorable = 1;
24073}
24074def S4_pstorerhtnew_zomap : HInst<
24075(outs),
24076(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24077"if ($Pv4.new) memh($Rs32) = $Rt32",
24078tc_a2b365d2, TypeMAPPING> {
24079let isPseudo = 1;
24080let isCodeGenOnly = 1;
24081}
24082def S4_pstorerif_abs : HInst<
24083(outs),
24084(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24085"if (!$Pv4) memw(#$Ii) = $Rt32",
24086tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24087let Inst{2-2} = 0b1;
24088let Inst{7-7} = 0b1;
24089let Inst{13-13} = 0b0;
24090let Inst{31-18} = 0b10101111100000;
24091let isPredicated = 1;
24092let isPredicatedFalse = 1;
24093let addrMode = Absolute;
24094let accessSize = WordAccess;
24095let isExtended = 1;
24096let mayStore = 1;
24097let BaseOpcode = "S2_storeriabs";
24098let CextOpcode = "S2_storeri";
24099let isNVStorable = 1;
24100let DecoderNamespace = "MustExtend";
24101let isExtendable = 1;
24102let opExtendable = 1;
24103let isExtentSigned = 0;
24104let opExtentBits = 6;
24105let opExtentAlign = 0;
24106}
24107def S4_pstorerif_rr : HInst<
24108(outs),
24109(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24110"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24111tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24112let Inst{31-21} = 0b00110101100;
24113let isPredicated = 1;
24114let isPredicatedFalse = 1;
24115let addrMode = BaseRegOffset;
24116let accessSize = WordAccess;
24117let mayStore = 1;
24118let BaseOpcode = "S2_storeri_rr";
24119let CextOpcode = "S2_storeri";
24120let InputType = "reg";
24121let isNVStorable = 1;
24122}
24123def S4_pstorerifnew_abs : HInst<
24124(outs),
24125(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24126"if (!$Pv4.new) memw(#$Ii) = $Rt32",
24127tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24128let Inst{2-2} = 0b1;
24129let Inst{7-7} = 0b1;
24130let Inst{13-13} = 0b1;
24131let Inst{31-18} = 0b10101111100000;
24132let isPredicated = 1;
24133let isPredicatedFalse = 1;
24134let addrMode = Absolute;
24135let accessSize = WordAccess;
24136let isPredicatedNew = 1;
24137let isExtended = 1;
24138let mayStore = 1;
24139let BaseOpcode = "S2_storeriabs";
24140let CextOpcode = "S2_storeri";
24141let isNVStorable = 1;
24142let DecoderNamespace = "MustExtend";
24143let isExtendable = 1;
24144let opExtendable = 1;
24145let isExtentSigned = 0;
24146let opExtentBits = 6;
24147let opExtentAlign = 0;
24148}
24149def S4_pstorerifnew_io : HInst<
24150(outs),
24151(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24152"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24153tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24154let Inst{2-2} = 0b0;
24155let Inst{31-21} = 0b01000110100;
24156let isPredicated = 1;
24157let isPredicatedFalse = 1;
24158let addrMode = BaseImmOffset;
24159let accessSize = WordAccess;
24160let isPredicatedNew = 1;
24161let mayStore = 1;
24162let BaseOpcode = "S2_storeri_io";
24163let CextOpcode = "S2_storeri";
24164let InputType = "imm";
24165let isNVStorable = 1;
24166let isExtendable = 1;
24167let opExtendable = 2;
24168let isExtentSigned = 0;
24169let opExtentBits = 8;
24170let opExtentAlign = 2;
24171}
24172def S4_pstorerifnew_rr : HInst<
24173(outs),
24174(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24175"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24176tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24177let Inst{31-21} = 0b00110111100;
24178let isPredicated = 1;
24179let isPredicatedFalse = 1;
24180let addrMode = BaseRegOffset;
24181let accessSize = WordAccess;
24182let isPredicatedNew = 1;
24183let mayStore = 1;
24184let BaseOpcode = "S2_storeri_rr";
24185let CextOpcode = "S2_storeri";
24186let InputType = "reg";
24187let isNVStorable = 1;
24188}
24189def S4_pstorerifnew_zomap : HInst<
24190(outs),
24191(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24192"if (!$Pv4.new) memw($Rs32) = $Rt32",
24193tc_a2b365d2, TypeMAPPING> {
24194let isPseudo = 1;
24195let isCodeGenOnly = 1;
24196}
24197def S4_pstorerinewf_abs : HInst<
24198(outs),
24199(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24200"if (!$Pv4) memw(#$Ii) = $Nt8.new",
24201tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24202let Inst{2-2} = 0b1;
24203let Inst{7-7} = 0b1;
24204let Inst{13-11} = 0b010;
24205let Inst{31-18} = 0b10101111101000;
24206let isPredicated = 1;
24207let isPredicatedFalse = 1;
24208let addrMode = Absolute;
24209let accessSize = WordAccess;
24210let isNVStore = 1;
24211let isNewValue = 1;
24212let isExtended = 1;
24213let isRestrictNoSlot1Store = 1;
24214let mayStore = 1;
24215let BaseOpcode = "S2_storeriabs";
24216let CextOpcode = "S2_storeri";
24217let DecoderNamespace = "MustExtend";
24218let isExtendable = 1;
24219let opExtendable = 1;
24220let isExtentSigned = 0;
24221let opExtentBits = 6;
24222let opExtentAlign = 0;
24223let opNewValue = 2;
24224}
24225def S4_pstorerinewf_rr : HInst<
24226(outs),
24227(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24228"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24229tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24230let Inst{4-3} = 0b10;
24231let Inst{31-21} = 0b00110101101;
24232let isPredicated = 1;
24233let isPredicatedFalse = 1;
24234let addrMode = BaseRegOffset;
24235let accessSize = WordAccess;
24236let isNVStore = 1;
24237let isNewValue = 1;
24238let isRestrictNoSlot1Store = 1;
24239let mayStore = 1;
24240let BaseOpcode = "S2_storeri_rr";
24241let CextOpcode = "S2_storeri";
24242let InputType = "reg";
24243let opNewValue = 4;
24244}
24245def S4_pstorerinewfnew_abs : HInst<
24246(outs),
24247(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24248"if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
24249tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24250let Inst{2-2} = 0b1;
24251let Inst{7-7} = 0b1;
24252let Inst{13-11} = 0b110;
24253let Inst{31-18} = 0b10101111101000;
24254let isPredicated = 1;
24255let isPredicatedFalse = 1;
24256let addrMode = Absolute;
24257let accessSize = WordAccess;
24258let isNVStore = 1;
24259let isPredicatedNew = 1;
24260let isNewValue = 1;
24261let isExtended = 1;
24262let isRestrictNoSlot1Store = 1;
24263let mayStore = 1;
24264let BaseOpcode = "S2_storeriabs";
24265let CextOpcode = "S2_storeri";
24266let DecoderNamespace = "MustExtend";
24267let isExtendable = 1;
24268let opExtendable = 1;
24269let isExtentSigned = 0;
24270let opExtentBits = 6;
24271let opExtentAlign = 0;
24272let opNewValue = 2;
24273}
24274def S4_pstorerinewfnew_io : HInst<
24275(outs),
24276(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24277"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24278tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24279let Inst{2-2} = 0b0;
24280let Inst{12-11} = 0b10;
24281let Inst{31-21} = 0b01000110101;
24282let isPredicated = 1;
24283let isPredicatedFalse = 1;
24284let addrMode = BaseImmOffset;
24285let accessSize = WordAccess;
24286let isNVStore = 1;
24287let isPredicatedNew = 1;
24288let isNewValue = 1;
24289let isRestrictNoSlot1Store = 1;
24290let mayStore = 1;
24291let BaseOpcode = "S2_storeri_io";
24292let CextOpcode = "S2_storeri";
24293let InputType = "imm";
24294let isExtendable = 1;
24295let opExtendable = 2;
24296let isExtentSigned = 0;
24297let opExtentBits = 8;
24298let opExtentAlign = 2;
24299let opNewValue = 3;
24300}
24301def S4_pstorerinewfnew_rr : HInst<
24302(outs),
24303(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24304"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24305tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24306let Inst{4-3} = 0b10;
24307let Inst{31-21} = 0b00110111101;
24308let isPredicated = 1;
24309let isPredicatedFalse = 1;
24310let addrMode = BaseRegOffset;
24311let accessSize = WordAccess;
24312let isNVStore = 1;
24313let isPredicatedNew = 1;
24314let isNewValue = 1;
24315let isRestrictNoSlot1Store = 1;
24316let mayStore = 1;
24317let BaseOpcode = "S2_storeri_rr";
24318let CextOpcode = "S2_storeri";
24319let InputType = "reg";
24320let opNewValue = 4;
24321}
24322def S4_pstorerinewfnew_zomap : HInst<
24323(outs),
24324(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24325"if (!$Pv4.new) memw($Rs32) = $Nt8.new",
24326tc_92240447, TypeMAPPING> {
24327let isPseudo = 1;
24328let isCodeGenOnly = 1;
24329let opNewValue = 2;
24330}
24331def S4_pstorerinewt_abs : HInst<
24332(outs),
24333(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24334"if ($Pv4) memw(#$Ii) = $Nt8.new",
24335tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24336let Inst{2-2} = 0b0;
24337let Inst{7-7} = 0b1;
24338let Inst{13-11} = 0b010;
24339let Inst{31-18} = 0b10101111101000;
24340let isPredicated = 1;
24341let addrMode = Absolute;
24342let accessSize = WordAccess;
24343let isNVStore = 1;
24344let isNewValue = 1;
24345let isExtended = 1;
24346let isRestrictNoSlot1Store = 1;
24347let mayStore = 1;
24348let BaseOpcode = "S2_storeriabs";
24349let CextOpcode = "S2_storeri";
24350let DecoderNamespace = "MustExtend";
24351let isExtendable = 1;
24352let opExtendable = 1;
24353let isExtentSigned = 0;
24354let opExtentBits = 6;
24355let opExtentAlign = 0;
24356let opNewValue = 2;
24357}
24358def S4_pstorerinewt_rr : HInst<
24359(outs),
24360(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24361"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24362tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24363let Inst{4-3} = 0b10;
24364let Inst{31-21} = 0b00110100101;
24365let isPredicated = 1;
24366let addrMode = BaseRegOffset;
24367let accessSize = WordAccess;
24368let isNVStore = 1;
24369let isNewValue = 1;
24370let isRestrictNoSlot1Store = 1;
24371let mayStore = 1;
24372let BaseOpcode = "S2_storeri_rr";
24373let CextOpcode = "S2_storeri";
24374let InputType = "reg";
24375let opNewValue = 4;
24376}
24377def S4_pstorerinewtnew_abs : HInst<
24378(outs),
24379(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24380"if ($Pv4.new) memw(#$Ii) = $Nt8.new",
24381tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24382let Inst{2-2} = 0b0;
24383let Inst{7-7} = 0b1;
24384let Inst{13-11} = 0b110;
24385let Inst{31-18} = 0b10101111101000;
24386let isPredicated = 1;
24387let addrMode = Absolute;
24388let accessSize = WordAccess;
24389let isNVStore = 1;
24390let isPredicatedNew = 1;
24391let isNewValue = 1;
24392let isExtended = 1;
24393let isRestrictNoSlot1Store = 1;
24394let mayStore = 1;
24395let BaseOpcode = "S2_storeriabs";
24396let CextOpcode = "S2_storeri";
24397let DecoderNamespace = "MustExtend";
24398let isExtendable = 1;
24399let opExtendable = 1;
24400let isExtentSigned = 0;
24401let opExtentBits = 6;
24402let opExtentAlign = 0;
24403let opNewValue = 2;
24404}
24405def S4_pstorerinewtnew_io : HInst<
24406(outs),
24407(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24408"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24409tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24410let Inst{2-2} = 0b0;
24411let Inst{12-11} = 0b10;
24412let Inst{31-21} = 0b01000010101;
24413let isPredicated = 1;
24414let addrMode = BaseImmOffset;
24415let accessSize = WordAccess;
24416let isNVStore = 1;
24417let isPredicatedNew = 1;
24418let isNewValue = 1;
24419let isRestrictNoSlot1Store = 1;
24420let mayStore = 1;
24421let BaseOpcode = "S2_storeri_io";
24422let CextOpcode = "S2_storeri";
24423let InputType = "imm";
24424let isExtendable = 1;
24425let opExtendable = 2;
24426let isExtentSigned = 0;
24427let opExtentBits = 8;
24428let opExtentAlign = 2;
24429let opNewValue = 3;
24430}
24431def S4_pstorerinewtnew_rr : HInst<
24432(outs),
24433(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24434"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24435tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24436let Inst{4-3} = 0b10;
24437let Inst{31-21} = 0b00110110101;
24438let isPredicated = 1;
24439let addrMode = BaseRegOffset;
24440let accessSize = WordAccess;
24441let isNVStore = 1;
24442let isPredicatedNew = 1;
24443let isNewValue = 1;
24444let isRestrictNoSlot1Store = 1;
24445let mayStore = 1;
24446let BaseOpcode = "S2_storeri_rr";
24447let CextOpcode = "S2_storeri";
24448let InputType = "reg";
24449let opNewValue = 4;
24450}
24451def S4_pstorerinewtnew_zomap : HInst<
24452(outs),
24453(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24454"if ($Pv4.new) memw($Rs32) = $Nt8.new",
24455tc_92240447, TypeMAPPING> {
24456let isPseudo = 1;
24457let isCodeGenOnly = 1;
24458let opNewValue = 2;
24459}
24460def S4_pstorerit_abs : HInst<
24461(outs),
24462(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24463"if ($Pv4) memw(#$Ii) = $Rt32",
24464tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24465let Inst{2-2} = 0b0;
24466let Inst{7-7} = 0b1;
24467let Inst{13-13} = 0b0;
24468let Inst{31-18} = 0b10101111100000;
24469let isPredicated = 1;
24470let addrMode = Absolute;
24471let accessSize = WordAccess;
24472let isExtended = 1;
24473let mayStore = 1;
24474let BaseOpcode = "S2_storeriabs";
24475let CextOpcode = "S2_storeri";
24476let isNVStorable = 1;
24477let DecoderNamespace = "MustExtend";
24478let isExtendable = 1;
24479let opExtendable = 1;
24480let isExtentSigned = 0;
24481let opExtentBits = 6;
24482let opExtentAlign = 0;
24483}
24484def S4_pstorerit_rr : HInst<
24485(outs),
24486(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24487"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24488tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24489let Inst{31-21} = 0b00110100100;
24490let isPredicated = 1;
24491let addrMode = BaseRegOffset;
24492let accessSize = WordAccess;
24493let mayStore = 1;
24494let BaseOpcode = "S2_storeri_rr";
24495let CextOpcode = "S2_storeri";
24496let InputType = "reg";
24497let isNVStorable = 1;
24498}
24499def S4_pstoreritnew_abs : HInst<
24500(outs),
24501(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24502"if ($Pv4.new) memw(#$Ii) = $Rt32",
24503tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24504let Inst{2-2} = 0b0;
24505let Inst{7-7} = 0b1;
24506let Inst{13-13} = 0b1;
24507let Inst{31-18} = 0b10101111100000;
24508let isPredicated = 1;
24509let addrMode = Absolute;
24510let accessSize = WordAccess;
24511let isPredicatedNew = 1;
24512let isExtended = 1;
24513let mayStore = 1;
24514let BaseOpcode = "S2_storeriabs";
24515let CextOpcode = "S2_storeri";
24516let isNVStorable = 1;
24517let DecoderNamespace = "MustExtend";
24518let isExtendable = 1;
24519let opExtendable = 1;
24520let isExtentSigned = 0;
24521let opExtentBits = 6;
24522let opExtentAlign = 0;
24523}
24524def S4_pstoreritnew_io : HInst<
24525(outs),
24526(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24527"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24528tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24529let Inst{2-2} = 0b0;
24530let Inst{31-21} = 0b01000010100;
24531let isPredicated = 1;
24532let addrMode = BaseImmOffset;
24533let accessSize = WordAccess;
24534let isPredicatedNew = 1;
24535let mayStore = 1;
24536let BaseOpcode = "S2_storeri_io";
24537let CextOpcode = "S2_storeri";
24538let InputType = "imm";
24539let isNVStorable = 1;
24540let isExtendable = 1;
24541let opExtendable = 2;
24542let isExtentSigned = 0;
24543let opExtentBits = 8;
24544let opExtentAlign = 2;
24545}
24546def S4_pstoreritnew_rr : HInst<
24547(outs),
24548(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24549"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24550tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24551let Inst{31-21} = 0b00110110100;
24552let isPredicated = 1;
24553let addrMode = BaseRegOffset;
24554let accessSize = WordAccess;
24555let isPredicatedNew = 1;
24556let mayStore = 1;
24557let BaseOpcode = "S2_storeri_rr";
24558let CextOpcode = "S2_storeri";
24559let InputType = "reg";
24560let isNVStorable = 1;
24561}
24562def S4_pstoreritnew_zomap : HInst<
24563(outs),
24564(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24565"if ($Pv4.new) memw($Rs32) = $Rt32",
24566tc_a2b365d2, TypeMAPPING> {
24567let isPseudo = 1;
24568let isCodeGenOnly = 1;
24569}
24570def S4_stored_locked : HInst<
24571(outs PredRegs:$Pd4),
24572(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24573"memd_locked($Rs32,$Pd4) = $Rtt32",
24574tc_6f42bc60, TypeST>, Enc_d7dc10 {
24575let Inst{7-2} = 0b000000;
24576let Inst{13-13} = 0b0;
24577let Inst{31-21} = 0b10100000111;
24578let accessSize = DoubleWordAccess;
24579let isPredicateLate = 1;
24580let isSoloAX = 1;
24581let mayStore = 1;
24582}
24583def S4_stored_rl_at_vi : HInst<
24584(outs),
24585(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24586"memd_rl($Rs32):at = $Rtt32",
24587tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24588let Inst{7-2} = 0b000010;
24589let Inst{13-13} = 0b0;
24590let Inst{31-21} = 0b10100000111;
24591let accessSize = DoubleWordAccess;
24592let isSolo = 1;
24593let mayStore = 1;
24594}
24595def S4_stored_rl_st_vi : HInst<
24596(outs),
24597(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24598"memd_rl($Rs32):st = $Rtt32",
24599tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24600let Inst{7-2} = 0b001010;
24601let Inst{13-13} = 0b0;
24602let Inst{31-21} = 0b10100000111;
24603let accessSize = DoubleWordAccess;
24604let isSolo = 1;
24605let mayStore = 1;
24606}
24607def S4_storeirb_io : HInst<
24608(outs),
24609(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24610"memb($Rs32+#$Ii) = #$II",
24611tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel {
24612let Inst{31-21} = 0b00111100000;
24613let addrMode = BaseImmOffset;
24614let accessSize = ByteAccess;
24615let mayStore = 1;
24616let BaseOpcode = "S4_storeirb_io";
24617let CextOpcode = "S2_storerb";
24618let InputType = "imm";
24619let isPredicable = 1;
24620let isExtendable = 1;
24621let opExtendable = 2;
24622let isExtentSigned = 1;
24623let opExtentBits = 8;
24624let opExtentAlign = 0;
24625}
24626def S4_storeirb_zomap : HInst<
24627(outs),
24628(ins IntRegs:$Rs32, s8_0Imm:$II),
24629"memb($Rs32) = #$II",
24630tc_7c31e19a, TypeMAPPING> {
24631let isPseudo = 1;
24632let isCodeGenOnly = 1;
24633}
24634def S4_storeirbf_io : HInst<
24635(outs),
24636(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24637"if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24638tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24639let Inst{31-21} = 0b00111000100;
24640let isPredicated = 1;
24641let isPredicatedFalse = 1;
24642let addrMode = BaseImmOffset;
24643let accessSize = ByteAccess;
24644let mayStore = 1;
24645let BaseOpcode = "S4_storeirb_io";
24646let CextOpcode = "S2_storerb";
24647let InputType = "imm";
24648let isExtendable = 1;
24649let opExtendable = 3;
24650let isExtentSigned = 1;
24651let opExtentBits = 6;
24652let opExtentAlign = 0;
24653}
24654def S4_storeirbf_zomap : HInst<
24655(outs),
24656(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24657"if (!$Pv4) memb($Rs32) = #$II",
24658tc_d03278fd, TypeMAPPING> {
24659let isPseudo = 1;
24660let isCodeGenOnly = 1;
24661}
24662def S4_storeirbfnew_io : HInst<
24663(outs),
24664(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24665"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24666tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24667let Inst{31-21} = 0b00111001100;
24668let isPredicated = 1;
24669let isPredicatedFalse = 1;
24670let addrMode = BaseImmOffset;
24671let accessSize = ByteAccess;
24672let isPredicatedNew = 1;
24673let mayStore = 1;
24674let BaseOpcode = "S4_storeirb_io";
24675let CextOpcode = "S2_storerb";
24676let InputType = "imm";
24677let isExtendable = 1;
24678let opExtendable = 3;
24679let isExtentSigned = 1;
24680let opExtentBits = 6;
24681let opExtentAlign = 0;
24682}
24683def S4_storeirbfnew_zomap : HInst<
24684(outs),
24685(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24686"if (!$Pv4.new) memb($Rs32) = #$II",
24687tc_65cbd974, TypeMAPPING> {
24688let isPseudo = 1;
24689let isCodeGenOnly = 1;
24690}
24691def S4_storeirbt_io : HInst<
24692(outs),
24693(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24694"if ($Pv4) memb($Rs32+#$Ii) = #$II",
24695tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24696let Inst{31-21} = 0b00111000000;
24697let isPredicated = 1;
24698let addrMode = BaseImmOffset;
24699let accessSize = ByteAccess;
24700let mayStore = 1;
24701let BaseOpcode = "S4_storeirb_io";
24702let CextOpcode = "S2_storerb";
24703let InputType = "imm";
24704let isExtendable = 1;
24705let opExtendable = 3;
24706let isExtentSigned = 1;
24707let opExtentBits = 6;
24708let opExtentAlign = 0;
24709}
24710def S4_storeirbt_zomap : HInst<
24711(outs),
24712(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24713"if ($Pv4) memb($Rs32) = #$II",
24714tc_d03278fd, TypeMAPPING> {
24715let isPseudo = 1;
24716let isCodeGenOnly = 1;
24717}
24718def S4_storeirbtnew_io : HInst<
24719(outs),
24720(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24721"if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24722tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24723let Inst{31-21} = 0b00111001000;
24724let isPredicated = 1;
24725let addrMode = BaseImmOffset;
24726let accessSize = ByteAccess;
24727let isPredicatedNew = 1;
24728let mayStore = 1;
24729let BaseOpcode = "S4_storeirb_io";
24730let CextOpcode = "S2_storerb";
24731let InputType = "imm";
24732let isExtendable = 1;
24733let opExtendable = 3;
24734let isExtentSigned = 1;
24735let opExtentBits = 6;
24736let opExtentAlign = 0;
24737}
24738def S4_storeirbtnew_zomap : HInst<
24739(outs),
24740(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24741"if ($Pv4.new) memb($Rs32) = #$II",
24742tc_65cbd974, TypeMAPPING> {
24743let isPseudo = 1;
24744let isCodeGenOnly = 1;
24745}
24746def S4_storeirh_io : HInst<
24747(outs),
24748(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24749"memh($Rs32+#$Ii) = #$II",
24750tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel {
24751let Inst{31-21} = 0b00111100001;
24752let addrMode = BaseImmOffset;
24753let accessSize = HalfWordAccess;
24754let mayStore = 1;
24755let BaseOpcode = "S4_storeirh_io";
24756let CextOpcode = "S2_storerh";
24757let InputType = "imm";
24758let isPredicable = 1;
24759let isExtendable = 1;
24760let opExtendable = 2;
24761let isExtentSigned = 1;
24762let opExtentBits = 8;
24763let opExtentAlign = 0;
24764}
24765def S4_storeirh_zomap : HInst<
24766(outs),
24767(ins IntRegs:$Rs32, s8_0Imm:$II),
24768"memh($Rs32) = #$II",
24769tc_7c31e19a, TypeMAPPING> {
24770let isPseudo = 1;
24771let isCodeGenOnly = 1;
24772}
24773def S4_storeirhf_io : HInst<
24774(outs),
24775(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24776"if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24777tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24778let Inst{31-21} = 0b00111000101;
24779let isPredicated = 1;
24780let isPredicatedFalse = 1;
24781let addrMode = BaseImmOffset;
24782let accessSize = HalfWordAccess;
24783let mayStore = 1;
24784let BaseOpcode = "S4_storeirh_io";
24785let CextOpcode = "S2_storerh";
24786let InputType = "imm";
24787let isExtendable = 1;
24788let opExtendable = 3;
24789let isExtentSigned = 1;
24790let opExtentBits = 6;
24791let opExtentAlign = 0;
24792}
24793def S4_storeirhf_zomap : HInst<
24794(outs),
24795(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24796"if (!$Pv4) memh($Rs32) = #$II",
24797tc_d03278fd, TypeMAPPING> {
24798let isPseudo = 1;
24799let isCodeGenOnly = 1;
24800}
24801def S4_storeirhfnew_io : HInst<
24802(outs),
24803(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24804"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24805tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24806let Inst{31-21} = 0b00111001101;
24807let isPredicated = 1;
24808let isPredicatedFalse = 1;
24809let addrMode = BaseImmOffset;
24810let accessSize = HalfWordAccess;
24811let isPredicatedNew = 1;
24812let mayStore = 1;
24813let BaseOpcode = "S4_storeirh_io";
24814let CextOpcode = "S2_storerh";
24815let InputType = "imm";
24816let isExtendable = 1;
24817let opExtendable = 3;
24818let isExtentSigned = 1;
24819let opExtentBits = 6;
24820let opExtentAlign = 0;
24821}
24822def S4_storeirhfnew_zomap : HInst<
24823(outs),
24824(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24825"if (!$Pv4.new) memh($Rs32) = #$II",
24826tc_65cbd974, TypeMAPPING> {
24827let isPseudo = 1;
24828let isCodeGenOnly = 1;
24829}
24830def S4_storeirht_io : HInst<
24831(outs),
24832(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24833"if ($Pv4) memh($Rs32+#$Ii) = #$II",
24834tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24835let Inst{31-21} = 0b00111000001;
24836let isPredicated = 1;
24837let addrMode = BaseImmOffset;
24838let accessSize = HalfWordAccess;
24839let mayStore = 1;
24840let BaseOpcode = "S4_storeirh_io";
24841let CextOpcode = "S2_storerh";
24842let InputType = "imm";
24843let isExtendable = 1;
24844let opExtendable = 3;
24845let isExtentSigned = 1;
24846let opExtentBits = 6;
24847let opExtentAlign = 0;
24848}
24849def S4_storeirht_zomap : HInst<
24850(outs),
24851(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24852"if ($Pv4) memh($Rs32) = #$II",
24853tc_d03278fd, TypeMAPPING> {
24854let isPseudo = 1;
24855let isCodeGenOnly = 1;
24856}
24857def S4_storeirhtnew_io : HInst<
24858(outs),
24859(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24860"if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24861tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24862let Inst{31-21} = 0b00111001001;
24863let isPredicated = 1;
24864let addrMode = BaseImmOffset;
24865let accessSize = HalfWordAccess;
24866let isPredicatedNew = 1;
24867let mayStore = 1;
24868let BaseOpcode = "S4_storeirh_io";
24869let CextOpcode = "S2_storerh";
24870let InputType = "imm";
24871let isExtendable = 1;
24872let opExtendable = 3;
24873let isExtentSigned = 1;
24874let opExtentBits = 6;
24875let opExtentAlign = 0;
24876}
24877def S4_storeirhtnew_zomap : HInst<
24878(outs),
24879(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24880"if ($Pv4.new) memh($Rs32) = #$II",
24881tc_65cbd974, TypeMAPPING> {
24882let isPseudo = 1;
24883let isCodeGenOnly = 1;
24884}
24885def S4_storeiri_io : HInst<
24886(outs),
24887(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24888"memw($Rs32+#$Ii) = #$II",
24889tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel {
24890let Inst{31-21} = 0b00111100010;
24891let addrMode = BaseImmOffset;
24892let accessSize = WordAccess;
24893let mayStore = 1;
24894let BaseOpcode = "S4_storeiri_io";
24895let CextOpcode = "S2_storeri";
24896let InputType = "imm";
24897let isPredicable = 1;
24898let isExtendable = 1;
24899let opExtendable = 2;
24900let isExtentSigned = 1;
24901let opExtentBits = 8;
24902let opExtentAlign = 0;
24903}
24904def S4_storeiri_zomap : HInst<
24905(outs),
24906(ins IntRegs:$Rs32, s8_0Imm:$II),
24907"memw($Rs32) = #$II",
24908tc_7c31e19a, TypeMAPPING> {
24909let isPseudo = 1;
24910let isCodeGenOnly = 1;
24911}
24912def S4_storeirif_io : HInst<
24913(outs),
24914(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24915"if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24916tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24917let Inst{31-21} = 0b00111000110;
24918let isPredicated = 1;
24919let isPredicatedFalse = 1;
24920let addrMode = BaseImmOffset;
24921let accessSize = WordAccess;
24922let mayStore = 1;
24923let BaseOpcode = "S4_storeiri_io";
24924let CextOpcode = "S2_storeri";
24925let InputType = "imm";
24926let isExtendable = 1;
24927let opExtendable = 3;
24928let isExtentSigned = 1;
24929let opExtentBits = 6;
24930let opExtentAlign = 0;
24931}
24932def S4_storeirif_zomap : HInst<
24933(outs),
24934(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24935"if (!$Pv4) memw($Rs32) = #$II",
24936tc_d03278fd, TypeMAPPING> {
24937let isPseudo = 1;
24938let isCodeGenOnly = 1;
24939}
24940def S4_storeirifnew_io : HInst<
24941(outs),
24942(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24943"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
24944tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
24945let Inst{31-21} = 0b00111001110;
24946let isPredicated = 1;
24947let isPredicatedFalse = 1;
24948let addrMode = BaseImmOffset;
24949let accessSize = WordAccess;
24950let isPredicatedNew = 1;
24951let mayStore = 1;
24952let BaseOpcode = "S4_storeiri_io";
24953let CextOpcode = "S2_storeri";
24954let InputType = "imm";
24955let isExtendable = 1;
24956let opExtendable = 3;
24957let isExtentSigned = 1;
24958let opExtentBits = 6;
24959let opExtentAlign = 0;
24960}
24961def S4_storeirifnew_zomap : HInst<
24962(outs),
24963(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24964"if (!$Pv4.new) memw($Rs32) = #$II",
24965tc_65cbd974, TypeMAPPING> {
24966let isPseudo = 1;
24967let isCodeGenOnly = 1;
24968}
24969def S4_storeirit_io : HInst<
24970(outs),
24971(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24972"if ($Pv4) memw($Rs32+#$Ii) = #$II",
24973tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24974let Inst{31-21} = 0b00111000010;
24975let isPredicated = 1;
24976let addrMode = BaseImmOffset;
24977let accessSize = WordAccess;
24978let mayStore = 1;
24979let BaseOpcode = "S4_storeiri_io";
24980let CextOpcode = "S2_storeri";
24981let InputType = "imm";
24982let isExtendable = 1;
24983let opExtendable = 3;
24984let isExtentSigned = 1;
24985let opExtentBits = 6;
24986let opExtentAlign = 0;
24987}
24988def S4_storeirit_zomap : HInst<
24989(outs),
24990(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24991"if ($Pv4) memw($Rs32) = #$II",
24992tc_d03278fd, TypeMAPPING> {
24993let isPseudo = 1;
24994let isCodeGenOnly = 1;
24995}
24996def S4_storeiritnew_io : HInst<
24997(outs),
24998(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24999"if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
25000tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
25001let Inst{31-21} = 0b00111001010;
25002let isPredicated = 1;
25003let addrMode = BaseImmOffset;
25004let accessSize = WordAccess;
25005let isPredicatedNew = 1;
25006let mayStore = 1;
25007let BaseOpcode = "S4_storeiri_io";
25008let CextOpcode = "S2_storeri";
25009let InputType = "imm";
25010let isExtendable = 1;
25011let opExtendable = 3;
25012let isExtentSigned = 1;
25013let opExtentBits = 6;
25014let opExtentAlign = 0;
25015}
25016def S4_storeiritnew_zomap : HInst<
25017(outs),
25018(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25019"if ($Pv4.new) memw($Rs32) = #$II",
25020tc_65cbd974, TypeMAPPING> {
25021let isPseudo = 1;
25022let isCodeGenOnly = 1;
25023}
25024def S4_storerb_ap : HInst<
25025(outs IntRegs:$Re32),
25026(ins u32_0Imm:$II, IntRegs:$Rt32),
25027"memb($Re32=#$II) = $Rt32",
25028tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25029let Inst{7-6} = 0b10;
25030let Inst{13-13} = 0b0;
25031let Inst{31-21} = 0b10101011000;
25032let addrMode = AbsoluteSet;
25033let accessSize = ByteAccess;
25034let isExtended = 1;
25035let mayStore = 1;
25036let BaseOpcode = "S2_storerb_ap";
25037let isNVStorable = 1;
25038let DecoderNamespace = "MustExtend";
25039let isExtendable = 1;
25040let opExtendable = 1;
25041let isExtentSigned = 0;
25042let opExtentBits = 6;
25043let opExtentAlign = 0;
25044}
25045def S4_storerb_rr : HInst<
25046(outs),
25047(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25048"memb($Rs32+$Ru32<<#$Ii) = $Rt32",
25049tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25050let Inst{6-5} = 0b00;
25051let Inst{31-21} = 0b00111011000;
25052let addrMode = BaseRegOffset;
25053let accessSize = ByteAccess;
25054let mayStore = 1;
25055let BaseOpcode = "S4_storerb_rr";
25056let CextOpcode = "S2_storerb";
25057let InputType = "reg";
25058let isNVStorable = 1;
25059let isPredicable = 1;
25060}
25061def S4_storerb_ur : HInst<
25062(outs),
25063(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25064"memb($Ru32<<#$Ii+#$II) = $Rt32",
25065tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25066let Inst{7-7} = 0b1;
25067let Inst{31-21} = 0b10101101000;
25068let addrMode = BaseLongOffset;
25069let accessSize = ByteAccess;
25070let isExtended = 1;
25071let mayStore = 1;
25072let BaseOpcode = "S4_storerb_ur";
25073let CextOpcode = "S2_storerb";
25074let InputType = "imm";
25075let isNVStorable = 1;
25076let DecoderNamespace = "MustExtend";
25077let isExtendable = 1;
25078let opExtendable = 2;
25079let isExtentSigned = 0;
25080let opExtentBits = 6;
25081let opExtentAlign = 0;
25082}
25083def S4_storerbnew_ap : HInst<
25084(outs IntRegs:$Re32),
25085(ins u32_0Imm:$II, IntRegs:$Nt8),
25086"memb($Re32=#$II) = $Nt8.new",
25087tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25088let Inst{7-6} = 0b10;
25089let Inst{13-11} = 0b000;
25090let Inst{31-21} = 0b10101011101;
25091let addrMode = AbsoluteSet;
25092let accessSize = ByteAccess;
25093let isNVStore = 1;
25094let isNewValue = 1;
25095let isExtended = 1;
25096let isRestrictNoSlot1Store = 1;
25097let mayStore = 1;
25098let BaseOpcode = "S2_storerb_ap";
25099let DecoderNamespace = "MustExtend";
25100let isExtendable = 1;
25101let opExtendable = 1;
25102let isExtentSigned = 0;
25103let opExtentBits = 6;
25104let opExtentAlign = 0;
25105let opNewValue = 2;
25106}
25107def S4_storerbnew_rr : HInst<
25108(outs),
25109(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25110"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25111tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25112let Inst{6-3} = 0b0000;
25113let Inst{31-21} = 0b00111011101;
25114let addrMode = BaseRegOffset;
25115let accessSize = ByteAccess;
25116let isNVStore = 1;
25117let isNewValue = 1;
25118let isRestrictNoSlot1Store = 1;
25119let mayStore = 1;
25120let BaseOpcode = "S4_storerb_rr";
25121let CextOpcode = "S2_storerb";
25122let InputType = "reg";
25123let isPredicable = 1;
25124let opNewValue = 3;
25125}
25126def S4_storerbnew_ur : HInst<
25127(outs),
25128(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25129"memb($Ru32<<#$Ii+#$II) = $Nt8.new",
25130tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25131let Inst{7-7} = 0b1;
25132let Inst{12-11} = 0b00;
25133let Inst{31-21} = 0b10101101101;
25134let addrMode = BaseLongOffset;
25135let accessSize = ByteAccess;
25136let isNVStore = 1;
25137let isNewValue = 1;
25138let isExtended = 1;
25139let isRestrictNoSlot1Store = 1;
25140let mayStore = 1;
25141let BaseOpcode = "S4_storerb_ur";
25142let CextOpcode = "S2_storerb";
25143let DecoderNamespace = "MustExtend";
25144let isExtendable = 1;
25145let opExtendable = 2;
25146let isExtentSigned = 0;
25147let opExtentBits = 6;
25148let opExtentAlign = 0;
25149let opNewValue = 3;
25150}
25151def S4_storerd_ap : HInst<
25152(outs IntRegs:$Re32),
25153(ins u32_0Imm:$II, DoubleRegs:$Rtt32),
25154"memd($Re32=#$II) = $Rtt32",
25155tc_bb07f2c5, TypeST>, Enc_c7a204 {
25156let Inst{7-6} = 0b10;
25157let Inst{13-13} = 0b0;
25158let Inst{31-21} = 0b10101011110;
25159let addrMode = AbsoluteSet;
25160let accessSize = DoubleWordAccess;
25161let isExtended = 1;
25162let mayStore = 1;
25163let BaseOpcode = "S4_storerd_ap";
25164let DecoderNamespace = "MustExtend";
25165let isExtendable = 1;
25166let opExtendable = 1;
25167let isExtentSigned = 0;
25168let opExtentBits = 6;
25169let opExtentAlign = 0;
25170}
25171def S4_storerd_rr : HInst<
25172(outs),
25173(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
25174"memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
25175tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
25176let Inst{6-5} = 0b00;
25177let Inst{31-21} = 0b00111011110;
25178let addrMode = BaseRegOffset;
25179let accessSize = DoubleWordAccess;
25180let mayStore = 1;
25181let BaseOpcode = "S2_storerd_rr";
25182let CextOpcode = "S2_storerd";
25183let InputType = "reg";
25184let isPredicable = 1;
25185}
25186def S4_storerd_ur : HInst<
25187(outs),
25188(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
25189"memd($Ru32<<#$Ii+#$II) = $Rtt32",
25190tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
25191let Inst{7-7} = 0b1;
25192let Inst{31-21} = 0b10101101110;
25193let addrMode = BaseLongOffset;
25194let accessSize = DoubleWordAccess;
25195let isExtended = 1;
25196let mayStore = 1;
25197let BaseOpcode = "S2_storerd_ur";
25198let CextOpcode = "S2_storerd";
25199let InputType = "imm";
25200let DecoderNamespace = "MustExtend";
25201let isExtendable = 1;
25202let opExtendable = 2;
25203let isExtentSigned = 0;
25204let opExtentBits = 6;
25205let opExtentAlign = 0;
25206}
25207def S4_storerf_ap : HInst<
25208(outs IntRegs:$Re32),
25209(ins u32_0Imm:$II, IntRegs:$Rt32),
25210"memh($Re32=#$II) = $Rt32.h",
25211tc_bb07f2c5, TypeST>, Enc_8bcba4 {
25212let Inst{7-6} = 0b10;
25213let Inst{13-13} = 0b0;
25214let Inst{31-21} = 0b10101011011;
25215let addrMode = AbsoluteSet;
25216let accessSize = HalfWordAccess;
25217let isExtended = 1;
25218let mayStore = 1;
25219let BaseOpcode = "S4_storerf_ap";
25220let DecoderNamespace = "MustExtend";
25221let isExtendable = 1;
25222let opExtendable = 1;
25223let isExtentSigned = 0;
25224let opExtentBits = 6;
25225let opExtentAlign = 0;
25226}
25227def S4_storerf_rr : HInst<
25228(outs),
25229(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25230"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
25231tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25232let Inst{6-5} = 0b00;
25233let Inst{31-21} = 0b00111011011;
25234let addrMode = BaseRegOffset;
25235let accessSize = HalfWordAccess;
25236let mayStore = 1;
25237let BaseOpcode = "S4_storerf_rr";
25238let CextOpcode = "S2_storerf";
25239let InputType = "reg";
25240let isPredicable = 1;
25241}
25242def S4_storerf_ur : HInst<
25243(outs),
25244(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25245"memh($Ru32<<#$Ii+#$II) = $Rt32.h",
25246tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25247let Inst{7-7} = 0b1;
25248let Inst{31-21} = 0b10101101011;
25249let addrMode = BaseLongOffset;
25250let accessSize = HalfWordAccess;
25251let isExtended = 1;
25252let mayStore = 1;
25253let BaseOpcode = "S4_storerf_rr";
25254let CextOpcode = "S2_storerf";
25255let InputType = "imm";
25256let DecoderNamespace = "MustExtend";
25257let isExtendable = 1;
25258let opExtendable = 2;
25259let isExtentSigned = 0;
25260let opExtentBits = 6;
25261let opExtentAlign = 0;
25262}
25263def S4_storerh_ap : HInst<
25264(outs IntRegs:$Re32),
25265(ins u32_0Imm:$II, IntRegs:$Rt32),
25266"memh($Re32=#$II) = $Rt32",
25267tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25268let Inst{7-6} = 0b10;
25269let Inst{13-13} = 0b0;
25270let Inst{31-21} = 0b10101011010;
25271let addrMode = AbsoluteSet;
25272let accessSize = HalfWordAccess;
25273let isExtended = 1;
25274let mayStore = 1;
25275let BaseOpcode = "S2_storerh_ap";
25276let isNVStorable = 1;
25277let DecoderNamespace = "MustExtend";
25278let isExtendable = 1;
25279let opExtendable = 1;
25280let isExtentSigned = 0;
25281let opExtentBits = 6;
25282let opExtentAlign = 0;
25283}
25284def S4_storerh_rr : HInst<
25285(outs),
25286(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25287"memh($Rs32+$Ru32<<#$Ii) = $Rt32",
25288tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25289let Inst{6-5} = 0b00;
25290let Inst{31-21} = 0b00111011010;
25291let addrMode = BaseRegOffset;
25292let accessSize = HalfWordAccess;
25293let mayStore = 1;
25294let BaseOpcode = "S2_storerh_rr";
25295let CextOpcode = "S2_storerh";
25296let InputType = "reg";
25297let isNVStorable = 1;
25298let isPredicable = 1;
25299}
25300def S4_storerh_ur : HInst<
25301(outs),
25302(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25303"memh($Ru32<<#$Ii+#$II) = $Rt32",
25304tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25305let Inst{7-7} = 0b1;
25306let Inst{31-21} = 0b10101101010;
25307let addrMode = BaseLongOffset;
25308let accessSize = HalfWordAccess;
25309let isExtended = 1;
25310let mayStore = 1;
25311let BaseOpcode = "S2_storerh_ur";
25312let CextOpcode = "S2_storerh";
25313let InputType = "imm";
25314let isNVStorable = 1;
25315let DecoderNamespace = "MustExtend";
25316let isExtendable = 1;
25317let opExtendable = 2;
25318let isExtentSigned = 0;
25319let opExtentBits = 6;
25320let opExtentAlign = 0;
25321}
25322def S4_storerhnew_ap : HInst<
25323(outs IntRegs:$Re32),
25324(ins u32_0Imm:$II, IntRegs:$Nt8),
25325"memh($Re32=#$II) = $Nt8.new",
25326tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25327let Inst{7-6} = 0b10;
25328let Inst{13-11} = 0b001;
25329let Inst{31-21} = 0b10101011101;
25330let addrMode = AbsoluteSet;
25331let accessSize = HalfWordAccess;
25332let isNVStore = 1;
25333let isNewValue = 1;
25334let isExtended = 1;
25335let isRestrictNoSlot1Store = 1;
25336let mayStore = 1;
25337let BaseOpcode = "S2_storerh_ap";
25338let DecoderNamespace = "MustExtend";
25339let isExtendable = 1;
25340let opExtendable = 1;
25341let isExtentSigned = 0;
25342let opExtentBits = 6;
25343let opExtentAlign = 0;
25344let opNewValue = 2;
25345}
25346def S4_storerhnew_rr : HInst<
25347(outs),
25348(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25349"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25350tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25351let Inst{6-3} = 0b0001;
25352let Inst{31-21} = 0b00111011101;
25353let addrMode = BaseRegOffset;
25354let accessSize = HalfWordAccess;
25355let isNVStore = 1;
25356let isNewValue = 1;
25357let isRestrictNoSlot1Store = 1;
25358let mayStore = 1;
25359let BaseOpcode = "S2_storerh_rr";
25360let CextOpcode = "S2_storerh";
25361let InputType = "reg";
25362let isPredicable = 1;
25363let opNewValue = 3;
25364}
25365def S4_storerhnew_ur : HInst<
25366(outs),
25367(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25368"memh($Ru32<<#$Ii+#$II) = $Nt8.new",
25369tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25370let Inst{7-7} = 0b1;
25371let Inst{12-11} = 0b01;
25372let Inst{31-21} = 0b10101101101;
25373let addrMode = BaseLongOffset;
25374let accessSize = HalfWordAccess;
25375let isNVStore = 1;
25376let isNewValue = 1;
25377let isExtended = 1;
25378let isRestrictNoSlot1Store = 1;
25379let mayStore = 1;
25380let BaseOpcode = "S2_storerh_ur";
25381let CextOpcode = "S2_storerh";
25382let DecoderNamespace = "MustExtend";
25383let isExtendable = 1;
25384let opExtendable = 2;
25385let isExtentSigned = 0;
25386let opExtentBits = 6;
25387let opExtentAlign = 0;
25388let opNewValue = 3;
25389}
25390def S4_storeri_ap : HInst<
25391(outs IntRegs:$Re32),
25392(ins u32_0Imm:$II, IntRegs:$Rt32),
25393"memw($Re32=#$II) = $Rt32",
25394tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25395let Inst{7-6} = 0b10;
25396let Inst{13-13} = 0b0;
25397let Inst{31-21} = 0b10101011100;
25398let addrMode = AbsoluteSet;
25399let accessSize = WordAccess;
25400let isExtended = 1;
25401let mayStore = 1;
25402let BaseOpcode = "S2_storeri_ap";
25403let isNVStorable = 1;
25404let DecoderNamespace = "MustExtend";
25405let isExtendable = 1;
25406let opExtendable = 1;
25407let isExtentSigned = 0;
25408let opExtentBits = 6;
25409let opExtentAlign = 0;
25410}
25411def S4_storeri_rr : HInst<
25412(outs),
25413(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25414"memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25415tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25416let Inst{6-5} = 0b00;
25417let Inst{31-21} = 0b00111011100;
25418let addrMode = BaseRegOffset;
25419let accessSize = WordAccess;
25420let mayStore = 1;
25421let BaseOpcode = "S2_storeri_rr";
25422let CextOpcode = "S2_storeri";
25423let InputType = "reg";
25424let isNVStorable = 1;
25425let isPredicable = 1;
25426}
25427def S4_storeri_ur : HInst<
25428(outs),
25429(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25430"memw($Ru32<<#$Ii+#$II) = $Rt32",
25431tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25432let Inst{7-7} = 0b1;
25433let Inst{31-21} = 0b10101101100;
25434let addrMode = BaseLongOffset;
25435let accessSize = WordAccess;
25436let isExtended = 1;
25437let mayStore = 1;
25438let BaseOpcode = "S2_storeri_ur";
25439let CextOpcode = "S2_storeri";
25440let InputType = "imm";
25441let isNVStorable = 1;
25442let DecoderNamespace = "MustExtend";
25443let isExtendable = 1;
25444let opExtendable = 2;
25445let isExtentSigned = 0;
25446let opExtentBits = 6;
25447let opExtentAlign = 0;
25448}
25449def S4_storerinew_ap : HInst<
25450(outs IntRegs:$Re32),
25451(ins u32_0Imm:$II, IntRegs:$Nt8),
25452"memw($Re32=#$II) = $Nt8.new",
25453tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25454let Inst{7-6} = 0b10;
25455let Inst{13-11} = 0b010;
25456let Inst{31-21} = 0b10101011101;
25457let addrMode = AbsoluteSet;
25458let accessSize = WordAccess;
25459let isNVStore = 1;
25460let isNewValue = 1;
25461let isExtended = 1;
25462let isRestrictNoSlot1Store = 1;
25463let mayStore = 1;
25464let BaseOpcode = "S2_storeri_ap";
25465let DecoderNamespace = "MustExtend";
25466let isExtendable = 1;
25467let opExtendable = 1;
25468let isExtentSigned = 0;
25469let opExtentBits = 6;
25470let opExtentAlign = 0;
25471let opNewValue = 2;
25472}
25473def S4_storerinew_rr : HInst<
25474(outs),
25475(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25476"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25477tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25478let Inst{6-3} = 0b0010;
25479let Inst{31-21} = 0b00111011101;
25480let addrMode = BaseRegOffset;
25481let accessSize = WordAccess;
25482let isNVStore = 1;
25483let isNewValue = 1;
25484let isRestrictNoSlot1Store = 1;
25485let mayStore = 1;
25486let BaseOpcode = "S2_storeri_rr";
25487let CextOpcode = "S2_storeri";
25488let InputType = "reg";
25489let isPredicable = 1;
25490let opNewValue = 3;
25491}
25492def S4_storerinew_ur : HInst<
25493(outs),
25494(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25495"memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25496tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25497let Inst{7-7} = 0b1;
25498let Inst{12-11} = 0b10;
25499let Inst{31-21} = 0b10101101101;
25500let addrMode = BaseLongOffset;
25501let accessSize = WordAccess;
25502let isNVStore = 1;
25503let isNewValue = 1;
25504let isExtended = 1;
25505let isRestrictNoSlot1Store = 1;
25506let mayStore = 1;
25507let BaseOpcode = "S2_storeri_ur";
25508let CextOpcode = "S2_storeri";
25509let DecoderNamespace = "MustExtend";
25510let isExtendable = 1;
25511let opExtendable = 2;
25512let isExtentSigned = 0;
25513let opExtentBits = 6;
25514let opExtentAlign = 0;
25515let opNewValue = 3;
25516}
25517def S4_subaddi : HInst<
25518(outs IntRegs:$Rd32),
25519(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25520"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25521tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
25522let Inst{31-23} = 0b110110111;
25523let hasNewValue = 1;
25524let opNewValue = 0;
25525let prefersSlot3 = 1;
25526let isExtendable = 1;
25527let opExtendable = 2;
25528let isExtentSigned = 1;
25529let opExtentBits = 6;
25530let opExtentAlign = 0;
25531}
25532def S4_subi_asl_ri : HInst<
25533(outs IntRegs:$Rx32),
25534(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25535"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25536tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25537let Inst{2-0} = 0b110;
25538let Inst{4-4} = 0b0;
25539let Inst{31-24} = 0b11011110;
25540let hasNewValue = 1;
25541let opNewValue = 0;
25542let prefersSlot3 = 1;
25543let isExtendable = 1;
25544let opExtendable = 1;
25545let isExtentSigned = 0;
25546let opExtentBits = 8;
25547let opExtentAlign = 0;
25548let Constraints = "$Rx32 = $Rx32in";
25549}
25550def S4_subi_lsr_ri : HInst<
25551(outs IntRegs:$Rx32),
25552(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25553"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25554tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25555let Inst{2-0} = 0b110;
25556let Inst{4-4} = 0b1;
25557let Inst{31-24} = 0b11011110;
25558let hasNewValue = 1;
25559let opNewValue = 0;
25560let prefersSlot3 = 1;
25561let isExtendable = 1;
25562let opExtendable = 1;
25563let isExtentSigned = 0;
25564let opExtentBits = 8;
25565let opExtentAlign = 0;
25566let Constraints = "$Rx32 = $Rx32in";
25567}
25568def S4_vrcrotate : HInst<
25569(outs DoubleRegs:$Rdd32),
25570(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25571"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25572tc_f0cdeccf, TypeS_3op>, Enc_645d54 {
25573let Inst{7-6} = 0b11;
25574let Inst{31-21} = 0b11000011110;
25575let prefersSlot3 = 1;
25576}
25577def S4_vrcrotate_acc : HInst<
25578(outs DoubleRegs:$Rxx32),
25579(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25580"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25581tc_a38c45dc, TypeS_3op>, Enc_b72622 {
25582let Inst{7-6} = 0b00;
25583let Inst{31-21} = 0b11001011101;
25584let prefersSlot3 = 1;
25585let Constraints = "$Rxx32 = $Rxx32in";
25586}
25587def S4_vxaddsubh : HInst<
25588(outs DoubleRegs:$Rdd32),
25589(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25590"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25591tc_8a825db2, TypeS_3op>, Enc_a56825 {
25592let Inst{7-5} = 0b100;
25593let Inst{13-13} = 0b0;
25594let Inst{31-21} = 0b11000001010;
25595let prefersSlot3 = 1;
25596let Defs = [USR_OVF];
25597}
25598def S4_vxaddsubhr : HInst<
25599(outs DoubleRegs:$Rdd32),
25600(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25601"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25602tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25603let Inst{7-5} = 0b000;
25604let Inst{13-13} = 0b0;
25605let Inst{31-21} = 0b11000001110;
25606let prefersSlot3 = 1;
25607let Defs = [USR_OVF];
25608}
25609def S4_vxaddsubw : HInst<
25610(outs DoubleRegs:$Rdd32),
25611(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25612"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25613tc_8a825db2, TypeS_3op>, Enc_a56825 {
25614let Inst{7-5} = 0b000;
25615let Inst{13-13} = 0b0;
25616let Inst{31-21} = 0b11000001010;
25617let prefersSlot3 = 1;
25618let Defs = [USR_OVF];
25619}
25620def S4_vxsubaddh : HInst<
25621(outs DoubleRegs:$Rdd32),
25622(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25623"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25624tc_8a825db2, TypeS_3op>, Enc_a56825 {
25625let Inst{7-5} = 0b110;
25626let Inst{13-13} = 0b0;
25627let Inst{31-21} = 0b11000001010;
25628let prefersSlot3 = 1;
25629let Defs = [USR_OVF];
25630}
25631def S4_vxsubaddhr : HInst<
25632(outs DoubleRegs:$Rdd32),
25633(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25634"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25635tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25636let Inst{7-5} = 0b010;
25637let Inst{13-13} = 0b0;
25638let Inst{31-21} = 0b11000001110;
25639let prefersSlot3 = 1;
25640let Defs = [USR_OVF];
25641}
25642def S4_vxsubaddw : HInst<
25643(outs DoubleRegs:$Rdd32),
25644(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25645"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25646tc_8a825db2, TypeS_3op>, Enc_a56825 {
25647let Inst{7-5} = 0b010;
25648let Inst{13-13} = 0b0;
25649let Inst{31-21} = 0b11000001010;
25650let prefersSlot3 = 1;
25651let Defs = [USR_OVF];
25652}
25653def S5_asrhub_rnd_sat : HInst<
25654(outs IntRegs:$Rd32),
25655(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25656"$Rd32 = vasrhub($Rss32,#$Ii):raw",
25657tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25658let Inst{7-5} = 0b100;
25659let Inst{13-12} = 0b00;
25660let Inst{31-21} = 0b10001000011;
25661let hasNewValue = 1;
25662let opNewValue = 0;
25663let prefersSlot3 = 1;
25664let Defs = [USR_OVF];
25665}
25666def S5_asrhub_rnd_sat_goodsyntax : HInst<
25667(outs IntRegs:$Rd32),
25668(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25669"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25670tc_0dfac0a7, TypeS_2op> {
25671let hasNewValue = 1;
25672let opNewValue = 0;
25673let isPseudo = 1;
25674}
25675def S5_asrhub_sat : HInst<
25676(outs IntRegs:$Rd32),
25677(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25678"$Rd32 = vasrhub($Rss32,#$Ii):sat",
25679tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25680let Inst{7-5} = 0b101;
25681let Inst{13-12} = 0b00;
25682let Inst{31-21} = 0b10001000011;
25683let hasNewValue = 1;
25684let opNewValue = 0;
25685let prefersSlot3 = 1;
25686let Defs = [USR_OVF];
25687}
25688def S5_popcountp : HInst<
25689(outs IntRegs:$Rd32),
25690(ins DoubleRegs:$Rss32),
25691"$Rd32 = popcount($Rss32)",
25692tc_d3632d88, TypeS_2op>, Enc_90cd8b {
25693let Inst{13-5} = 0b000000011;
25694let Inst{31-21} = 0b10001000011;
25695let hasNewValue = 1;
25696let opNewValue = 0;
25697let prefersSlot3 = 1;
25698}
25699def S5_vasrhrnd : HInst<
25700(outs DoubleRegs:$Rdd32),
25701(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25702"$Rdd32 = vasrh($Rss32,#$Ii):raw",
25703tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 {
25704let Inst{7-5} = 0b000;
25705let Inst{13-12} = 0b00;
25706let Inst{31-21} = 0b10000000001;
25707let prefersSlot3 = 1;
25708}
25709def S5_vasrhrnd_goodsyntax : HInst<
25710(outs DoubleRegs:$Rdd32),
25711(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25712"$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25713tc_0dfac0a7, TypeS_2op> {
25714let isPseudo = 1;
25715}
25716def S6_allocframe_to_raw : HInst<
25717(outs),
25718(ins u11_3Imm:$Ii),
25719"allocframe(#$Ii)",
25720tc_934753bb, TypeMAPPING>, Requires<[HasV65]> {
25721let isPseudo = 1;
25722let isCodeGenOnly = 1;
25723}
25724def S6_rol_i_p : HInst<
25725(outs DoubleRegs:$Rdd32),
25726(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25727"$Rdd32 = rol($Rss32,#$Ii)",
25728tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25729let Inst{7-5} = 0b011;
25730let Inst{31-21} = 0b10000000000;
25731}
25732def S6_rol_i_p_acc : HInst<
25733(outs DoubleRegs:$Rxx32),
25734(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25735"$Rxx32 += rol($Rss32,#$Ii)",
25736tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25737let Inst{7-5} = 0b111;
25738let Inst{31-21} = 0b10000010000;
25739let prefersSlot3 = 1;
25740let Constraints = "$Rxx32 = $Rxx32in";
25741}
25742def S6_rol_i_p_and : HInst<
25743(outs DoubleRegs:$Rxx32),
25744(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25745"$Rxx32 &= rol($Rss32,#$Ii)",
25746tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25747let Inst{7-5} = 0b011;
25748let Inst{31-21} = 0b10000010010;
25749let prefersSlot3 = 1;
25750let Constraints = "$Rxx32 = $Rxx32in";
25751}
25752def S6_rol_i_p_nac : HInst<
25753(outs DoubleRegs:$Rxx32),
25754(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25755"$Rxx32 -= rol($Rss32,#$Ii)",
25756tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25757let Inst{7-5} = 0b011;
25758let Inst{31-21} = 0b10000010000;
25759let prefersSlot3 = 1;
25760let Constraints = "$Rxx32 = $Rxx32in";
25761}
25762def S6_rol_i_p_or : HInst<
25763(outs DoubleRegs:$Rxx32),
25764(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25765"$Rxx32 |= rol($Rss32,#$Ii)",
25766tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25767let Inst{7-5} = 0b111;
25768let Inst{31-21} = 0b10000010010;
25769let prefersSlot3 = 1;
25770let Constraints = "$Rxx32 = $Rxx32in";
25771}
25772def S6_rol_i_p_xacc : HInst<
25773(outs DoubleRegs:$Rxx32),
25774(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25775"$Rxx32 ^= rol($Rss32,#$Ii)",
25776tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25777let Inst{7-5} = 0b011;
25778let Inst{31-21} = 0b10000010100;
25779let prefersSlot3 = 1;
25780let Constraints = "$Rxx32 = $Rxx32in";
25781}
25782def S6_rol_i_r : HInst<
25783(outs IntRegs:$Rd32),
25784(ins IntRegs:$Rs32, u5_0Imm:$Ii),
25785"$Rd32 = rol($Rs32,#$Ii)",
25786tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25787let Inst{7-5} = 0b011;
25788let Inst{13-13} = 0b0;
25789let Inst{31-21} = 0b10001100000;
25790let hasNewValue = 1;
25791let opNewValue = 0;
25792}
25793def S6_rol_i_r_acc : HInst<
25794(outs IntRegs:$Rx32),
25795(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25796"$Rx32 += rol($Rs32,#$Ii)",
25797tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25798let Inst{7-5} = 0b111;
25799let Inst{13-13} = 0b0;
25800let Inst{31-21} = 0b10001110000;
25801let hasNewValue = 1;
25802let opNewValue = 0;
25803let prefersSlot3 = 1;
25804let Constraints = "$Rx32 = $Rx32in";
25805}
25806def S6_rol_i_r_and : HInst<
25807(outs IntRegs:$Rx32),
25808(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25809"$Rx32 &= rol($Rs32,#$Ii)",
25810tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25811let Inst{7-5} = 0b011;
25812let Inst{13-13} = 0b0;
25813let Inst{31-21} = 0b10001110010;
25814let hasNewValue = 1;
25815let opNewValue = 0;
25816let prefersSlot3 = 1;
25817let Constraints = "$Rx32 = $Rx32in";
25818}
25819def S6_rol_i_r_nac : HInst<
25820(outs IntRegs:$Rx32),
25821(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25822"$Rx32 -= rol($Rs32,#$Ii)",
25823tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25824let Inst{7-5} = 0b011;
25825let Inst{13-13} = 0b0;
25826let Inst{31-21} = 0b10001110000;
25827let hasNewValue = 1;
25828let opNewValue = 0;
25829let prefersSlot3 = 1;
25830let Constraints = "$Rx32 = $Rx32in";
25831}
25832def S6_rol_i_r_or : HInst<
25833(outs IntRegs:$Rx32),
25834(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25835"$Rx32 |= rol($Rs32,#$Ii)",
25836tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25837let Inst{7-5} = 0b111;
25838let Inst{13-13} = 0b0;
25839let Inst{31-21} = 0b10001110010;
25840let hasNewValue = 1;
25841let opNewValue = 0;
25842let prefersSlot3 = 1;
25843let Constraints = "$Rx32 = $Rx32in";
25844}
25845def S6_rol_i_r_xacc : HInst<
25846(outs IntRegs:$Rx32),
25847(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25848"$Rx32 ^= rol($Rs32,#$Ii)",
25849tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25850let Inst{7-5} = 0b011;
25851let Inst{13-13} = 0b0;
25852let Inst{31-21} = 0b10001110100;
25853let hasNewValue = 1;
25854let opNewValue = 0;
25855let prefersSlot3 = 1;
25856let Constraints = "$Rx32 = $Rx32in";
25857}
25858def S6_vsplatrbp : HInst<
25859(outs DoubleRegs:$Rdd32),
25860(ins IntRegs:$Rs32),
25861"$Rdd32 = vsplatb($Rs32)",
25862tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25863let Inst{13-5} = 0b000000100;
25864let Inst{31-21} = 0b10000100010;
25865}
25866def S6_vtrunehb_ppp : HInst<
25867(outs DoubleRegs:$Rdd32),
25868(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25869"$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25870tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25871let Inst{7-5} = 0b011;
25872let Inst{13-13} = 0b0;
25873let Inst{31-21} = 0b11000001100;
25874}
25875def S6_vtrunohb_ppp : HInst<
25876(outs DoubleRegs:$Rdd32),
25877(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25878"$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25879tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25880let Inst{7-5} = 0b101;
25881let Inst{13-13} = 0b0;
25882let Inst{31-21} = 0b11000001100;
25883}
25884def SA1_addi : HInst<
25885(outs GeneralSubRegs:$Rx16),
25886(ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii),
25887"$Rx16 = add($Rx16in,#$Ii)",
25888tc_5b347363, TypeSUBINSN>, Enc_93af4c {
25889let Inst{12-11} = 0b00;
25890let hasNewValue = 1;
25891let opNewValue = 0;
25892let AsmVariantName = "NonParsable";
25893let DecoderNamespace = "SUBINSN_A";
25894let isExtendable = 1;
25895let opExtendable = 2;
25896let isExtentSigned = 1;
25897let opExtentBits = 7;
25898let opExtentAlign = 0;
25899let Constraints = "$Rx16 = $Rx16in";
25900}
25901def SA1_addrx : HInst<
25902(outs GeneralSubRegs:$Rx16),
25903(ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16),
25904"$Rx16 = add($Rx16in,$Rs16)",
25905tc_5b347363, TypeSUBINSN>, Enc_0527db {
25906let Inst{12-8} = 0b11000;
25907let hasNewValue = 1;
25908let opNewValue = 0;
25909let AsmVariantName = "NonParsable";
25910let DecoderNamespace = "SUBINSN_A";
25911let Constraints = "$Rx16 = $Rx16in";
25912}
25913def SA1_addsp : HInst<
25914(outs GeneralSubRegs:$Rd16),
25915(ins u6_2Imm:$Ii),
25916"$Rd16 = add(r29,#$Ii)",
25917tc_3d14a17b, TypeSUBINSN>, Enc_2df31d {
25918let Inst{12-10} = 0b011;
25919let hasNewValue = 1;
25920let opNewValue = 0;
25921let AsmVariantName = "NonParsable";
25922let Uses = [R29];
25923let DecoderNamespace = "SUBINSN_A";
25924}
25925def SA1_and1 : HInst<
25926(outs GeneralSubRegs:$Rd16),
25927(ins GeneralSubRegs:$Rs16),
25928"$Rd16 = and($Rs16,#1)",
25929tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
25930let Inst{12-8} = 0b10010;
25931let hasNewValue = 1;
25932let opNewValue = 0;
25933let AsmVariantName = "NonParsable";
25934let DecoderNamespace = "SUBINSN_A";
25935}
25936def SA1_clrf : HInst<
25937(outs GeneralSubRegs:$Rd16),
25938(ins),
25939"if (!p0) $Rd16 = #0",
25940tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25941let Inst{12-4} = 0b110100111;
25942let isPredicated = 1;
25943let isPredicatedFalse = 1;
25944let hasNewValue = 1;
25945let opNewValue = 0;
25946let AsmVariantName = "NonParsable";
25947let Uses = [P0];
25948let DecoderNamespace = "SUBINSN_A";
25949}
25950def SA1_clrfnew : HInst<
25951(outs GeneralSubRegs:$Rd16),
25952(ins),
25953"if (!p0.new) $Rd16 = #0",
25954tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
25955let Inst{12-4} = 0b110100101;
25956let isPredicated = 1;
25957let isPredicatedFalse = 1;
25958let hasNewValue = 1;
25959let opNewValue = 0;
25960let AsmVariantName = "NonParsable";
25961let isPredicatedNew = 1;
25962let Uses = [P0];
25963let DecoderNamespace = "SUBINSN_A";
25964}
25965def SA1_clrt : HInst<
25966(outs GeneralSubRegs:$Rd16),
25967(ins),
25968"if (p0) $Rd16 = #0",
25969tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25970let Inst{12-4} = 0b110100110;
25971let isPredicated = 1;
25972let hasNewValue = 1;
25973let opNewValue = 0;
25974let AsmVariantName = "NonParsable";
25975let Uses = [P0];
25976let DecoderNamespace = "SUBINSN_A";
25977}
25978def SA1_clrtnew : HInst<
25979(outs GeneralSubRegs:$Rd16),
25980(ins),
25981"if (p0.new) $Rd16 = #0",
25982tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
25983let Inst{12-4} = 0b110100100;
25984let isPredicated = 1;
25985let hasNewValue = 1;
25986let opNewValue = 0;
25987let AsmVariantName = "NonParsable";
25988let isPredicatedNew = 1;
25989let Uses = [P0];
25990let DecoderNamespace = "SUBINSN_A";
25991}
25992def SA1_cmpeqi : HInst<
25993(outs),
25994(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
25995"p0 = cmp.eq($Rs16,#$Ii)",
25996tc_59a7822c, TypeSUBINSN>, Enc_63eaeb {
25997let Inst{3-2} = 0b00;
25998let Inst{12-8} = 0b11001;
25999let AsmVariantName = "NonParsable";
26000let Defs = [P0];
26001let DecoderNamespace = "SUBINSN_A";
26002}
26003def SA1_combine0i : HInst<
26004(outs GeneralDoubleLow8Regs:$Rdd8),
26005(ins u2_0Imm:$Ii),
26006"$Rdd8 = combine(#0,#$Ii)",
26007tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26008let Inst{4-3} = 0b00;
26009let Inst{12-7} = 0b111000;
26010let hasNewValue = 1;
26011let opNewValue = 0;
26012let AsmVariantName = "NonParsable";
26013let DecoderNamespace = "SUBINSN_A";
26014}
26015def SA1_combine1i : HInst<
26016(outs GeneralDoubleLow8Regs:$Rdd8),
26017(ins u2_0Imm:$Ii),
26018"$Rdd8 = combine(#1,#$Ii)",
26019tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26020let Inst{4-3} = 0b01;
26021let Inst{12-7} = 0b111000;
26022let hasNewValue = 1;
26023let opNewValue = 0;
26024let AsmVariantName = "NonParsable";
26025let DecoderNamespace = "SUBINSN_A";
26026}
26027def SA1_combine2i : HInst<
26028(outs GeneralDoubleLow8Regs:$Rdd8),
26029(ins u2_0Imm:$Ii),
26030"$Rdd8 = combine(#2,#$Ii)",
26031tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26032let Inst{4-3} = 0b10;
26033let Inst{12-7} = 0b111000;
26034let hasNewValue = 1;
26035let opNewValue = 0;
26036let AsmVariantName = "NonParsable";
26037let DecoderNamespace = "SUBINSN_A";
26038}
26039def SA1_combine3i : HInst<
26040(outs GeneralDoubleLow8Regs:$Rdd8),
26041(ins u2_0Imm:$Ii),
26042"$Rdd8 = combine(#3,#$Ii)",
26043tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26044let Inst{4-3} = 0b11;
26045let Inst{12-7} = 0b111000;
26046let hasNewValue = 1;
26047let opNewValue = 0;
26048let AsmVariantName = "NonParsable";
26049let DecoderNamespace = "SUBINSN_A";
26050}
26051def SA1_combinerz : HInst<
26052(outs GeneralDoubleLow8Regs:$Rdd8),
26053(ins GeneralSubRegs:$Rs16),
26054"$Rdd8 = combine($Rs16,#0)",
26055tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26056let Inst{3-3} = 0b1;
26057let Inst{12-8} = 0b11101;
26058let hasNewValue = 1;
26059let opNewValue = 0;
26060let AsmVariantName = "NonParsable";
26061let DecoderNamespace = "SUBINSN_A";
26062}
26063def SA1_combinezr : HInst<
26064(outs GeneralDoubleLow8Regs:$Rdd8),
26065(ins GeneralSubRegs:$Rs16),
26066"$Rdd8 = combine(#0,$Rs16)",
26067tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26068let Inst{3-3} = 0b0;
26069let Inst{12-8} = 0b11101;
26070let hasNewValue = 1;
26071let opNewValue = 0;
26072let AsmVariantName = "NonParsable";
26073let DecoderNamespace = "SUBINSN_A";
26074}
26075def SA1_dec : HInst<
26076(outs GeneralSubRegs:$Rd16),
26077(ins GeneralSubRegs:$Rs16, n1Const:$n1),
26078"$Rd16 = add($Rs16,#$n1)",
26079tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 {
26080let Inst{12-8} = 0b10011;
26081let hasNewValue = 1;
26082let opNewValue = 0;
26083let AsmVariantName = "NonParsable";
26084let DecoderNamespace = "SUBINSN_A";
26085}
26086def SA1_inc : HInst<
26087(outs GeneralSubRegs:$Rd16),
26088(ins GeneralSubRegs:$Rs16),
26089"$Rd16 = add($Rs16,#1)",
26090tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26091let Inst{12-8} = 0b10001;
26092let hasNewValue = 1;
26093let opNewValue = 0;
26094let AsmVariantName = "NonParsable";
26095let DecoderNamespace = "SUBINSN_A";
26096}
26097def SA1_seti : HInst<
26098(outs GeneralSubRegs:$Rd16),
26099(ins u32_0Imm:$Ii),
26100"$Rd16 = #$Ii",
26101tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 {
26102let Inst{12-10} = 0b010;
26103let hasNewValue = 1;
26104let opNewValue = 0;
26105let AsmVariantName = "NonParsable";
26106let DecoderNamespace = "SUBINSN_A";
26107let isExtendable = 1;
26108let opExtendable = 1;
26109let isExtentSigned = 0;
26110let opExtentBits = 6;
26111let opExtentAlign = 0;
26112}
26113def SA1_setin1 : HInst<
26114(outs GeneralSubRegs:$Rd16),
26115(ins n1Const:$n1),
26116"$Rd16 = #$n1",
26117tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 {
26118let Inst{12-4} = 0b110100000;
26119let hasNewValue = 1;
26120let opNewValue = 0;
26121let AsmVariantName = "NonParsable";
26122let DecoderNamespace = "SUBINSN_A";
26123}
26124def SA1_sxtb : HInst<
26125(outs GeneralSubRegs:$Rd16),
26126(ins GeneralSubRegs:$Rs16),
26127"$Rd16 = sxtb($Rs16)",
26128tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26129let Inst{12-8} = 0b10101;
26130let hasNewValue = 1;
26131let opNewValue = 0;
26132let AsmVariantName = "NonParsable";
26133let DecoderNamespace = "SUBINSN_A";
26134}
26135def SA1_sxth : HInst<
26136(outs GeneralSubRegs:$Rd16),
26137(ins GeneralSubRegs:$Rs16),
26138"$Rd16 = sxth($Rs16)",
26139tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26140let Inst{12-8} = 0b10100;
26141let hasNewValue = 1;
26142let opNewValue = 0;
26143let AsmVariantName = "NonParsable";
26144let DecoderNamespace = "SUBINSN_A";
26145}
26146def SA1_tfr : HInst<
26147(outs GeneralSubRegs:$Rd16),
26148(ins GeneralSubRegs:$Rs16),
26149"$Rd16 = $Rs16",
26150tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26151let Inst{12-8} = 0b10000;
26152let hasNewValue = 1;
26153let opNewValue = 0;
26154let AsmVariantName = "NonParsable";
26155let DecoderNamespace = "SUBINSN_A";
26156}
26157def SA1_zxtb : HInst<
26158(outs GeneralSubRegs:$Rd16),
26159(ins GeneralSubRegs:$Rs16),
26160"$Rd16 = and($Rs16,#255)",
26161tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26162let Inst{12-8} = 0b10111;
26163let hasNewValue = 1;
26164let opNewValue = 0;
26165let AsmVariantName = "NonParsable";
26166let DecoderNamespace = "SUBINSN_A";
26167}
26168def SA1_zxth : HInst<
26169(outs GeneralSubRegs:$Rd16),
26170(ins GeneralSubRegs:$Rs16),
26171"$Rd16 = zxth($Rs16)",
26172tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26173let Inst{12-8} = 0b10110;
26174let hasNewValue = 1;
26175let opNewValue = 0;
26176let AsmVariantName = "NonParsable";
26177let DecoderNamespace = "SUBINSN_A";
26178}
26179def SL1_loadri_io : HInst<
26180(outs GeneralSubRegs:$Rd16),
26181(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26182"$Rd16 = memw($Rs16+#$Ii)",
26183tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 {
26184let Inst{12-12} = 0b0;
26185let hasNewValue = 1;
26186let opNewValue = 0;
26187let addrMode = BaseImmOffset;
26188let accessSize = WordAccess;
26189let AsmVariantName = "NonParsable";
26190let mayLoad = 1;
26191let DecoderNamespace = "SUBINSN_L1";
26192}
26193def SL1_loadrub_io : HInst<
26194(outs GeneralSubRegs:$Rd16),
26195(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26196"$Rd16 = memub($Rs16+#$Ii)",
26197tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 {
26198let Inst{12-12} = 0b1;
26199let hasNewValue = 1;
26200let opNewValue = 0;
26201let addrMode = BaseImmOffset;
26202let accessSize = ByteAccess;
26203let AsmVariantName = "NonParsable";
26204let mayLoad = 1;
26205let DecoderNamespace = "SUBINSN_L1";
26206}
26207def SL2_deallocframe : HInst<
26208(outs),
26209(ins),
26210"deallocframe",
26211tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 {
26212let Inst{12-0} = 0b1111100000000;
26213let accessSize = DoubleWordAccess;
26214let AsmVariantName = "NonParsable";
26215let mayLoad = 1;
26216let Uses = [FRAMEKEY, R30];
26217let Defs = [R29, R30, R31];
26218let DecoderNamespace = "SUBINSN_L2";
26219}
26220def SL2_jumpr31 : HInst<
26221(outs),
26222(ins),
26223"jumpr r31",
26224tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26225let Inst{12-0} = 0b1111111000000;
26226let isTerminator = 1;
26227let isIndirectBranch = 1;
26228let AsmVariantName = "NonParsable";
26229let cofMax1 = 1;
26230let isReturn = 1;
26231let Uses = [R31];
26232let Defs = [PC];
26233let DecoderNamespace = "SUBINSN_L2";
26234}
26235def SL2_jumpr31_f : HInst<
26236(outs),
26237(ins),
26238"if (!p0) jumpr r31",
26239tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26240let Inst{12-0} = 0b1111111000101;
26241let isPredicated = 1;
26242let isPredicatedFalse = 1;
26243let isTerminator = 1;
26244let isIndirectBranch = 1;
26245let AsmVariantName = "NonParsable";
26246let cofMax1 = 1;
26247let isReturn = 1;
26248let Uses = [P0, R31];
26249let Defs = [PC];
26250let isTaken = Inst{4};
26251let DecoderNamespace = "SUBINSN_L2";
26252}
26253def SL2_jumpr31_fnew : HInst<
26254(outs),
26255(ins),
26256"if (!p0.new) jumpr:nt r31",
26257tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26258let Inst{12-0} = 0b1111111000111;
26259let isPredicated = 1;
26260let isPredicatedFalse = 1;
26261let isTerminator = 1;
26262let isIndirectBranch = 1;
26263let AsmVariantName = "NonParsable";
26264let isPredicatedNew = 1;
26265let cofMax1 = 1;
26266let isReturn = 1;
26267let Uses = [P0, R31];
26268let Defs = [PC];
26269let isTaken = Inst{4};
26270let DecoderNamespace = "SUBINSN_L2";
26271}
26272def SL2_jumpr31_t : HInst<
26273(outs),
26274(ins),
26275"if (p0) jumpr r31",
26276tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26277let Inst{12-0} = 0b1111111000100;
26278let isPredicated = 1;
26279let isTerminator = 1;
26280let isIndirectBranch = 1;
26281let AsmVariantName = "NonParsable";
26282let cofMax1 = 1;
26283let isReturn = 1;
26284let Uses = [P0, R31];
26285let Defs = [PC];
26286let isTaken = Inst{4};
26287let DecoderNamespace = "SUBINSN_L2";
26288}
26289def SL2_jumpr31_tnew : HInst<
26290(outs),
26291(ins),
26292"if (p0.new) jumpr:nt r31",
26293tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26294let Inst{12-0} = 0b1111111000110;
26295let isPredicated = 1;
26296let isTerminator = 1;
26297let isIndirectBranch = 1;
26298let AsmVariantName = "NonParsable";
26299let isPredicatedNew = 1;
26300let cofMax1 = 1;
26301let isReturn = 1;
26302let Uses = [P0, R31];
26303let Defs = [PC];
26304let isTaken = Inst{4};
26305let DecoderNamespace = "SUBINSN_L2";
26306}
26307def SL2_loadrb_io : HInst<
26308(outs GeneralSubRegs:$Rd16),
26309(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
26310"$Rd16 = memb($Rs16+#$Ii)",
26311tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c {
26312let Inst{12-11} = 0b10;
26313let hasNewValue = 1;
26314let opNewValue = 0;
26315let addrMode = BaseImmOffset;
26316let accessSize = ByteAccess;
26317let AsmVariantName = "NonParsable";
26318let mayLoad = 1;
26319let DecoderNamespace = "SUBINSN_L2";
26320}
26321def SL2_loadrd_sp : HInst<
26322(outs GeneralDoubleLow8Regs:$Rdd8),
26323(ins u5_3Imm:$Ii),
26324"$Rdd8 = memd(r29+#$Ii)",
26325tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b {
26326let Inst{12-8} = 0b11110;
26327let hasNewValue = 1;
26328let opNewValue = 0;
26329let addrMode = BaseImmOffset;
26330let accessSize = DoubleWordAccess;
26331let AsmVariantName = "NonParsable";
26332let mayLoad = 1;
26333let Uses = [R29];
26334let DecoderNamespace = "SUBINSN_L2";
26335}
26336def SL2_loadrh_io : HInst<
26337(outs GeneralSubRegs:$Rd16),
26338(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26339"$Rd16 = memh($Rs16+#$Ii)",
26340tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26341let Inst{12-11} = 0b00;
26342let hasNewValue = 1;
26343let opNewValue = 0;
26344let addrMode = BaseImmOffset;
26345let accessSize = HalfWordAccess;
26346let AsmVariantName = "NonParsable";
26347let mayLoad = 1;
26348let DecoderNamespace = "SUBINSN_L2";
26349}
26350def SL2_loadri_sp : HInst<
26351(outs GeneralSubRegs:$Rd16),
26352(ins u5_2Imm:$Ii),
26353"$Rd16 = memw(r29+#$Ii)",
26354tc_8a6d0d94, TypeSUBINSN>, Enc_51635c {
26355let Inst{12-9} = 0b1110;
26356let hasNewValue = 1;
26357let opNewValue = 0;
26358let addrMode = BaseImmOffset;
26359let accessSize = WordAccess;
26360let AsmVariantName = "NonParsable";
26361let mayLoad = 1;
26362let Uses = [R29];
26363let DecoderNamespace = "SUBINSN_L2";
26364}
26365def SL2_loadruh_io : HInst<
26366(outs GeneralSubRegs:$Rd16),
26367(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26368"$Rd16 = memuh($Rs16+#$Ii)",
26369tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26370let Inst{12-11} = 0b01;
26371let hasNewValue = 1;
26372let opNewValue = 0;
26373let addrMode = BaseImmOffset;
26374let accessSize = HalfWordAccess;
26375let AsmVariantName = "NonParsable";
26376let mayLoad = 1;
26377let DecoderNamespace = "SUBINSN_L2";
26378}
26379def SL2_return : HInst<
26380(outs),
26381(ins),
26382"dealloc_return",
26383tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26384let Inst{12-0} = 0b1111101000000;
26385let isTerminator = 1;
26386let isIndirectBranch = 1;
26387let accessSize = DoubleWordAccess;
26388let AsmVariantName = "NonParsable";
26389let mayLoad = 1;
26390let cofMax1 = 1;
26391let isRestrictNoSlot1Store = 1;
26392let isReturn = 1;
26393let Uses = [FRAMEKEY, R30];
26394let Defs = [PC, R29, R30, R31];
26395let DecoderNamespace = "SUBINSN_L2";
26396}
26397def SL2_return_f : HInst<
26398(outs),
26399(ins),
26400"if (!p0) dealloc_return",
26401tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26402let Inst{12-0} = 0b1111101000101;
26403let isPredicated = 1;
26404let isPredicatedFalse = 1;
26405let isTerminator = 1;
26406let isIndirectBranch = 1;
26407let accessSize = DoubleWordAccess;
26408let AsmVariantName = "NonParsable";
26409let mayLoad = 1;
26410let cofMax1 = 1;
26411let isRestrictNoSlot1Store = 1;
26412let isReturn = 1;
26413let Uses = [FRAMEKEY, P0, R30];
26414let Defs = [PC, R29, R30, R31];
26415let isTaken = Inst{4};
26416let DecoderNamespace = "SUBINSN_L2";
26417}
26418def SL2_return_fnew : HInst<
26419(outs),
26420(ins),
26421"if (!p0.new) dealloc_return:nt",
26422tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26423let Inst{12-0} = 0b1111101000111;
26424let isPredicated = 1;
26425let isPredicatedFalse = 1;
26426let isTerminator = 1;
26427let isIndirectBranch = 1;
26428let accessSize = DoubleWordAccess;
26429let AsmVariantName = "NonParsable";
26430let isPredicatedNew = 1;
26431let mayLoad = 1;
26432let cofMax1 = 1;
26433let isRestrictNoSlot1Store = 1;
26434let isReturn = 1;
26435let Uses = [FRAMEKEY, P0, R30];
26436let Defs = [PC, R29, R30, R31];
26437let isTaken = Inst{4};
26438let DecoderNamespace = "SUBINSN_L2";
26439}
26440def SL2_return_t : HInst<
26441(outs),
26442(ins),
26443"if (p0) dealloc_return",
26444tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26445let Inst{12-0} = 0b1111101000100;
26446let isPredicated = 1;
26447let isTerminator = 1;
26448let isIndirectBranch = 1;
26449let accessSize = DoubleWordAccess;
26450let AsmVariantName = "NonParsable";
26451let mayLoad = 1;
26452let cofMax1 = 1;
26453let isRestrictNoSlot1Store = 1;
26454let isReturn = 1;
26455let Uses = [FRAMEKEY, P0, R30];
26456let Defs = [PC, R29, R30, R31];
26457let isTaken = Inst{4};
26458let DecoderNamespace = "SUBINSN_L2";
26459}
26460def SL2_return_tnew : HInst<
26461(outs),
26462(ins),
26463"if (p0.new) dealloc_return:nt",
26464tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26465let Inst{12-0} = 0b1111101000110;
26466let isPredicated = 1;
26467let isTerminator = 1;
26468let isIndirectBranch = 1;
26469let accessSize = DoubleWordAccess;
26470let AsmVariantName = "NonParsable";
26471let isPredicatedNew = 1;
26472let mayLoad = 1;
26473let cofMax1 = 1;
26474let isRestrictNoSlot1Store = 1;
26475let isReturn = 1;
26476let Uses = [FRAMEKEY, P0, R30];
26477let Defs = [PC, R29, R30, R31];
26478let isTaken = Inst{4};
26479let DecoderNamespace = "SUBINSN_L2";
26480}
26481def SS1_storeb_io : HInst<
26482(outs),
26483(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26484"memb($Rs16+#$Ii) = $Rt16",
26485tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc {
26486let Inst{12-12} = 0b1;
26487let addrMode = BaseImmOffset;
26488let accessSize = ByteAccess;
26489let AsmVariantName = "NonParsable";
26490let mayStore = 1;
26491let DecoderNamespace = "SUBINSN_S1";
26492}
26493def SS1_storew_io : HInst<
26494(outs),
26495(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26496"memw($Rs16+#$Ii) = $Rt16",
26497tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c {
26498let Inst{12-12} = 0b0;
26499let addrMode = BaseImmOffset;
26500let accessSize = WordAccess;
26501let AsmVariantName = "NonParsable";
26502let mayStore = 1;
26503let DecoderNamespace = "SUBINSN_S1";
26504}
26505def SS2_allocframe : HInst<
26506(outs),
26507(ins u5_3Imm:$Ii),
26508"allocframe(#$Ii)",
26509tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca {
26510let Inst{3-0} = 0b0000;
26511let Inst{12-9} = 0b1110;
26512let addrMode = BaseImmOffset;
26513let accessSize = DoubleWordAccess;
26514let AsmVariantName = "NonParsable";
26515let mayStore = 1;
26516let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31];
26517let Defs = [R29, R30];
26518let DecoderNamespace = "SUBINSN_S2";
26519}
26520def SS2_storebi0 : HInst<
26521(outs),
26522(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26523"memb($Rs16+#$Ii) = #0",
26524tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26525let Inst{12-8} = 0b10010;
26526let addrMode = BaseImmOffset;
26527let accessSize = ByteAccess;
26528let AsmVariantName = "NonParsable";
26529let mayStore = 1;
26530let DecoderNamespace = "SUBINSN_S2";
26531}
26532def SS2_storebi1 : HInst<
26533(outs),
26534(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26535"memb($Rs16+#$Ii) = #1",
26536tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26537let Inst{12-8} = 0b10011;
26538let addrMode = BaseImmOffset;
26539let accessSize = ByteAccess;
26540let AsmVariantName = "NonParsable";
26541let mayStore = 1;
26542let DecoderNamespace = "SUBINSN_S2";
26543}
26544def SS2_stored_sp : HInst<
26545(outs),
26546(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26547"memd(r29+#$Ii) = $Rtt8",
26548tc_0655b949, TypeSUBINSN>, Enc_b8309d {
26549let Inst{12-9} = 0b0101;
26550let addrMode = BaseImmOffset;
26551let accessSize = DoubleWordAccess;
26552let AsmVariantName = "NonParsable";
26553let mayStore = 1;
26554let Uses = [R29];
26555let DecoderNamespace = "SUBINSN_S2";
26556}
26557def SS2_storeh_io : HInst<
26558(outs),
26559(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26560"memh($Rs16+#$Ii) = $Rt16",
26561tc_ae5babd7, TypeSUBINSN>, Enc_625deb {
26562let Inst{12-11} = 0b00;
26563let addrMode = BaseImmOffset;
26564let accessSize = HalfWordAccess;
26565let AsmVariantName = "NonParsable";
26566let mayStore = 1;
26567let DecoderNamespace = "SUBINSN_S2";
26568}
26569def SS2_storew_sp : HInst<
26570(outs),
26571(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26572"memw(r29+#$Ii) = $Rt16",
26573tc_0655b949, TypeSUBINSN>, Enc_87c142 {
26574let Inst{12-9} = 0b0100;
26575let addrMode = BaseImmOffset;
26576let accessSize = WordAccess;
26577let AsmVariantName = "NonParsable";
26578let mayStore = 1;
26579let Uses = [R29];
26580let DecoderNamespace = "SUBINSN_S2";
26581}
26582def SS2_storewi0 : HInst<
26583(outs),
26584(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26585"memw($Rs16+#$Ii) = #0",
26586tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26587let Inst{12-8} = 0b10000;
26588let addrMode = BaseImmOffset;
26589let accessSize = WordAccess;
26590let AsmVariantName = "NonParsable";
26591let mayStore = 1;
26592let DecoderNamespace = "SUBINSN_S2";
26593}
26594def SS2_storewi1 : HInst<
26595(outs),
26596(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26597"memw($Rs16+#$Ii) = #1",
26598tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26599let Inst{12-8} = 0b10001;
26600let addrMode = BaseImmOffset;
26601let accessSize = WordAccess;
26602let AsmVariantName = "NonParsable";
26603let mayStore = 1;
26604let DecoderNamespace = "SUBINSN_S2";
26605}
26606def V6_MAP_equb : HInst<
26607(outs HvxQR:$Qd4),
26608(ins HvxVR:$Vu32, HvxVR:$Vv32),
26609"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26610PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26611let hasNewValue = 1;
26612let opNewValue = 0;
26613let isCVI = 1;
26614let isPseudo = 1;
26615let isCodeGenOnly = 1;
26616let DecoderNamespace = "EXT_mmvec";
26617}
26618def V6_MAP_equb_and : HInst<
26619(outs HvxQR:$Qx4),
26620(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26621"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26622PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26623let isCVI = 1;
26624let isPseudo = 1;
26625let isCodeGenOnly = 1;
26626let DecoderNamespace = "EXT_mmvec";
26627let Constraints = "$Qx4 = $Qx4in";
26628}
26629def V6_MAP_equb_ior : HInst<
26630(outs HvxQR:$Qx4),
26631(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26632"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26633PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26634let isAccumulator = 1;
26635let isCVI = 1;
26636let isPseudo = 1;
26637let isCodeGenOnly = 1;
26638let DecoderNamespace = "EXT_mmvec";
26639let Constraints = "$Qx4 = $Qx4in";
26640}
26641def V6_MAP_equb_xor : HInst<
26642(outs HvxQR:$Qx4),
26643(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26644"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26645PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26646let isCVI = 1;
26647let isPseudo = 1;
26648let isCodeGenOnly = 1;
26649let DecoderNamespace = "EXT_mmvec";
26650let Constraints = "$Qx4 = $Qx4in";
26651}
26652def V6_MAP_equh : HInst<
26653(outs HvxQR:$Qd4),
26654(ins HvxVR:$Vu32, HvxVR:$Vv32),
26655"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26656PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26657let hasNewValue = 1;
26658let opNewValue = 0;
26659let isCVI = 1;
26660let isPseudo = 1;
26661let isCodeGenOnly = 1;
26662let DecoderNamespace = "EXT_mmvec";
26663}
26664def V6_MAP_equh_and : HInst<
26665(outs HvxQR:$Qx4),
26666(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26667"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26668PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26669let isCVI = 1;
26670let isPseudo = 1;
26671let isCodeGenOnly = 1;
26672let DecoderNamespace = "EXT_mmvec";
26673let Constraints = "$Qx4 = $Qx4in";
26674}
26675def V6_MAP_equh_ior : HInst<
26676(outs HvxQR:$Qx4),
26677(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26678"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26679PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26680let isAccumulator = 1;
26681let isCVI = 1;
26682let isPseudo = 1;
26683let isCodeGenOnly = 1;
26684let DecoderNamespace = "EXT_mmvec";
26685let Constraints = "$Qx4 = $Qx4in";
26686}
26687def V6_MAP_equh_xor : HInst<
26688(outs HvxQR:$Qx4),
26689(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26690"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26691PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26692let isCVI = 1;
26693let isPseudo = 1;
26694let isCodeGenOnly = 1;
26695let DecoderNamespace = "EXT_mmvec";
26696let Constraints = "$Qx4 = $Qx4in";
26697}
26698def V6_MAP_equw : HInst<
26699(outs HvxQR:$Qd4),
26700(ins HvxVR:$Vu32, HvxVR:$Vv32),
26701"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26702PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26703let hasNewValue = 1;
26704let opNewValue = 0;
26705let isCVI = 1;
26706let isPseudo = 1;
26707let isCodeGenOnly = 1;
26708let DecoderNamespace = "EXT_mmvec";
26709}
26710def V6_MAP_equw_and : HInst<
26711(outs HvxQR:$Qx4),
26712(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26713"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26714PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26715let isCVI = 1;
26716let isPseudo = 1;
26717let isCodeGenOnly = 1;
26718let DecoderNamespace = "EXT_mmvec";
26719let Constraints = "$Qx4 = $Qx4in";
26720}
26721def V6_MAP_equw_ior : HInst<
26722(outs HvxQR:$Qx4),
26723(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26724"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26725PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26726let isAccumulator = 1;
26727let isCVI = 1;
26728let isPseudo = 1;
26729let isCodeGenOnly = 1;
26730let DecoderNamespace = "EXT_mmvec";
26731let Constraints = "$Qx4 = $Qx4in";
26732}
26733def V6_MAP_equw_xor : HInst<
26734(outs HvxQR:$Qx4),
26735(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26736"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26737PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26738let isCVI = 1;
26739let isPseudo = 1;
26740let isCodeGenOnly = 1;
26741let DecoderNamespace = "EXT_mmvec";
26742let Constraints = "$Qx4 = $Qx4in";
26743}
26744def V6_extractw : HInst<
26745(outs IntRegs:$Rd32),
26746(ins HvxVR:$Vu32, IntRegs:$Rs32),
26747"$Rd32 = vextract($Vu32,$Rs32)",
26748tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26749let Inst{7-5} = 0b001;
26750let Inst{13-13} = 0b0;
26751let Inst{31-21} = 0b10010010000;
26752let hasNewValue = 1;
26753let opNewValue = 0;
26754let isCVI = 1;
26755let isSolo = 1;
26756let mayLoad = 1;
26757let DecoderNamespace = "EXT_mmvec";
26758}
26759def V6_extractw_alt : HInst<
26760(outs IntRegs:$Rd32),
26761(ins HvxVR:$Vu32, IntRegs:$Rs32),
26762"$Rd32.w = vextract($Vu32,$Rs32)",
26763PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26764let hasNewValue = 1;
26765let opNewValue = 0;
26766let isCVI = 1;
26767let isPseudo = 1;
26768let isCodeGenOnly = 1;
26769let DecoderNamespace = "EXT_mmvec";
26770}
26771def V6_hi : HInst<
26772(outs HvxVR:$Vd32),
26773(ins HvxWR:$Vss32),
26774"$Vd32 = hi($Vss32)",
26775CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26776let hasNewValue = 1;
26777let opNewValue = 0;
26778let isCVI = 1;
26779let isPseudo = 1;
26780let DecoderNamespace = "EXT_mmvec";
26781}
26782def V6_ld0 : HInst<
26783(outs HvxVR:$Vd32),
26784(ins IntRegs:$Rt32),
26785"$Vd32 = vmem($Rt32)",
26786PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26787let hasNewValue = 1;
26788let opNewValue = 0;
26789let isCVI = 1;
26790let isPseudo = 1;
26791let isCodeGenOnly = 1;
26792let DecoderNamespace = "EXT_mmvec";
26793}
26794def V6_ldcnp0 : HInst<
26795(outs HvxVR:$Vd32),
26796(ins PredRegs:$Pv4, IntRegs:$Rt32),
26797"if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26798PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26799let hasNewValue = 1;
26800let opNewValue = 0;
26801let isCVI = 1;
26802let isPseudo = 1;
26803let isCodeGenOnly = 1;
26804let DecoderNamespace = "EXT_mmvec";
26805}
26806def V6_ldcnpnt0 : HInst<
26807(outs HvxVR:$Vd32),
26808(ins PredRegs:$Pv4, IntRegs:$Rt32),
26809"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26810PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26811let hasNewValue = 1;
26812let opNewValue = 0;
26813let isCVI = 1;
26814let isPseudo = 1;
26815let isCodeGenOnly = 1;
26816let DecoderNamespace = "EXT_mmvec";
26817}
26818def V6_ldcp0 : HInst<
26819(outs HvxVR:$Vd32),
26820(ins PredRegs:$Pv4, IntRegs:$Rt32),
26821"if ($Pv4) $Vd32.cur = vmem($Rt32)",
26822PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26823let hasNewValue = 1;
26824let opNewValue = 0;
26825let isCVI = 1;
26826let isPseudo = 1;
26827let isCodeGenOnly = 1;
26828let DecoderNamespace = "EXT_mmvec";
26829}
26830def V6_ldcpnt0 : HInst<
26831(outs HvxVR:$Vd32),
26832(ins PredRegs:$Pv4, IntRegs:$Rt32),
26833"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26834PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26835let hasNewValue = 1;
26836let opNewValue = 0;
26837let isCVI = 1;
26838let isPseudo = 1;
26839let isCodeGenOnly = 1;
26840let DecoderNamespace = "EXT_mmvec";
26841}
26842def V6_ldnp0 : HInst<
26843(outs HvxVR:$Vd32),
26844(ins PredRegs:$Pv4, IntRegs:$Rt32),
26845"if (!$Pv4) $Vd32 = vmem($Rt32)",
26846PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26847let hasNewValue = 1;
26848let opNewValue = 0;
26849let isCVI = 1;
26850let isPseudo = 1;
26851let isCodeGenOnly = 1;
26852let DecoderNamespace = "EXT_mmvec";
26853}
26854def V6_ldnpnt0 : HInst<
26855(outs HvxVR:$Vd32),
26856(ins PredRegs:$Pv4, IntRegs:$Rt32),
26857"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26858PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26859let hasNewValue = 1;
26860let opNewValue = 0;
26861let isCVI = 1;
26862let isPseudo = 1;
26863let isCodeGenOnly = 1;
26864let DecoderNamespace = "EXT_mmvec";
26865}
26866def V6_ldnt0 : HInst<
26867(outs HvxVR:$Vd32),
26868(ins IntRegs:$Rt32),
26869"$Vd32 = vmem($Rt32):nt",
26870PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26871let hasNewValue = 1;
26872let opNewValue = 0;
26873let isCVI = 1;
26874let isPseudo = 1;
26875let isCodeGenOnly = 1;
26876let DecoderNamespace = "EXT_mmvec";
26877}
26878def V6_ldp0 : HInst<
26879(outs HvxVR:$Vd32),
26880(ins PredRegs:$Pv4, IntRegs:$Rt32),
26881"if ($Pv4) $Vd32 = vmem($Rt32)",
26882PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26883let hasNewValue = 1;
26884let opNewValue = 0;
26885let isCVI = 1;
26886let isPseudo = 1;
26887let isCodeGenOnly = 1;
26888let DecoderNamespace = "EXT_mmvec";
26889}
26890def V6_ldpnt0 : HInst<
26891(outs HvxVR:$Vd32),
26892(ins PredRegs:$Pv4, IntRegs:$Rt32),
26893"if ($Pv4) $Vd32 = vmem($Rt32):nt",
26894PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26895let hasNewValue = 1;
26896let opNewValue = 0;
26897let isCVI = 1;
26898let isPseudo = 1;
26899let isCodeGenOnly = 1;
26900let DecoderNamespace = "EXT_mmvec";
26901}
26902def V6_ldtnp0 : HInst<
26903(outs HvxVR:$Vd32),
26904(ins PredRegs:$Pv4, IntRegs:$Rt32),
26905"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26906PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26907let hasNewValue = 1;
26908let opNewValue = 0;
26909let isCVI = 1;
26910let isPseudo = 1;
26911let isCodeGenOnly = 1;
26912let DecoderNamespace = "EXT_mmvec";
26913}
26914def V6_ldtnpnt0 : HInst<
26915(outs HvxVR:$Vd32),
26916(ins PredRegs:$Pv4, IntRegs:$Rt32),
26917"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26918PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26919let hasNewValue = 1;
26920let opNewValue = 0;
26921let isCVI = 1;
26922let isPseudo = 1;
26923let isCodeGenOnly = 1;
26924let DecoderNamespace = "EXT_mmvec";
26925}
26926def V6_ldtp0 : HInst<
26927(outs HvxVR:$Vd32),
26928(ins PredRegs:$Pv4, IntRegs:$Rt32),
26929"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26930PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26931let hasNewValue = 1;
26932let opNewValue = 0;
26933let isCVI = 1;
26934let isPseudo = 1;
26935let isCodeGenOnly = 1;
26936let DecoderNamespace = "EXT_mmvec";
26937}
26938def V6_ldtpnt0 : HInst<
26939(outs HvxVR:$Vd32),
26940(ins PredRegs:$Pv4, IntRegs:$Rt32),
26941"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26942PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26943let hasNewValue = 1;
26944let opNewValue = 0;
26945let isCVI = 1;
26946let isPseudo = 1;
26947let isCodeGenOnly = 1;
26948let DecoderNamespace = "EXT_mmvec";
26949}
26950def V6_ldu0 : HInst<
26951(outs HvxVR:$Vd32),
26952(ins IntRegs:$Rt32),
26953"$Vd32 = vmemu($Rt32)",
26954PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26955let hasNewValue = 1;
26956let opNewValue = 0;
26957let isCVI = 1;
26958let isPseudo = 1;
26959let isCodeGenOnly = 1;
26960let DecoderNamespace = "EXT_mmvec";
26961}
26962def V6_lo : HInst<
26963(outs HvxVR:$Vd32),
26964(ins HvxWR:$Vss32),
26965"$Vd32 = lo($Vss32)",
26966CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26967let hasNewValue = 1;
26968let opNewValue = 0;
26969let isCVI = 1;
26970let isPseudo = 1;
26971let DecoderNamespace = "EXT_mmvec";
26972}
26973def V6_lvsplatb : HInst<
26974(outs HvxVR:$Vd32),
26975(ins IntRegs:$Rt32),
26976"$Vd32.b = vsplat($Rt32)",
26977tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26978let Inst{13-5} = 0b000000010;
26979let Inst{31-21} = 0b00011001110;
26980let hasNewValue = 1;
26981let opNewValue = 0;
26982let isCVI = 1;
26983let DecoderNamespace = "EXT_mmvec";
26984}
26985def V6_lvsplath : HInst<
26986(outs HvxVR:$Vd32),
26987(ins IntRegs:$Rt32),
26988"$Vd32.h = vsplat($Rt32)",
26989tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26990let Inst{13-5} = 0b000000001;
26991let Inst{31-21} = 0b00011001110;
26992let hasNewValue = 1;
26993let opNewValue = 0;
26994let isCVI = 1;
26995let DecoderNamespace = "EXT_mmvec";
26996}
26997def V6_lvsplatw : HInst<
26998(outs HvxVR:$Vd32),
26999(ins IntRegs:$Rt32),
27000"$Vd32 = vsplat($Rt32)",
27001tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
27002let Inst{13-5} = 0b000000001;
27003let Inst{31-21} = 0b00011001101;
27004let hasNewValue = 1;
27005let opNewValue = 0;
27006let isCVI = 1;
27007let DecoderNamespace = "EXT_mmvec";
27008}
27009def V6_pred_and : HInst<
27010(outs HvxQR:$Qd4),
27011(ins HvxQR:$Qs4, HvxQR:$Qt4),
27012"$Qd4 = and($Qs4,$Qt4)",
27013tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27014let Inst{7-2} = 0b000000;
27015let Inst{13-10} = 0b0000;
27016let Inst{21-16} = 0b000011;
27017let Inst{31-24} = 0b00011110;
27018let hasNewValue = 1;
27019let opNewValue = 0;
27020let isCVI = 1;
27021let DecoderNamespace = "EXT_mmvec";
27022}
27023def V6_pred_and_n : HInst<
27024(outs HvxQR:$Qd4),
27025(ins HvxQR:$Qs4, HvxQR:$Qt4),
27026"$Qd4 = and($Qs4,!$Qt4)",
27027tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27028let Inst{7-2} = 0b000101;
27029let Inst{13-10} = 0b0000;
27030let Inst{21-16} = 0b000011;
27031let Inst{31-24} = 0b00011110;
27032let hasNewValue = 1;
27033let opNewValue = 0;
27034let isCVI = 1;
27035let DecoderNamespace = "EXT_mmvec";
27036}
27037def V6_pred_not : HInst<
27038(outs HvxQR:$Qd4),
27039(ins HvxQR:$Qs4),
27040"$Qd4 = not($Qs4)",
27041tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
27042let Inst{7-2} = 0b000010;
27043let Inst{13-10} = 0b0000;
27044let Inst{31-16} = 0b0001111000000011;
27045let hasNewValue = 1;
27046let opNewValue = 0;
27047let isCVI = 1;
27048let DecoderNamespace = "EXT_mmvec";
27049}
27050def V6_pred_or : HInst<
27051(outs HvxQR:$Qd4),
27052(ins HvxQR:$Qs4, HvxQR:$Qt4),
27053"$Qd4 = or($Qs4,$Qt4)",
27054tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27055let Inst{7-2} = 0b000001;
27056let Inst{13-10} = 0b0000;
27057let Inst{21-16} = 0b000011;
27058let Inst{31-24} = 0b00011110;
27059let hasNewValue = 1;
27060let opNewValue = 0;
27061let isCVI = 1;
27062let DecoderNamespace = "EXT_mmvec";
27063}
27064def V6_pred_or_n : HInst<
27065(outs HvxQR:$Qd4),
27066(ins HvxQR:$Qs4, HvxQR:$Qt4),
27067"$Qd4 = or($Qs4,!$Qt4)",
27068tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27069let Inst{7-2} = 0b000100;
27070let Inst{13-10} = 0b0000;
27071let Inst{21-16} = 0b000011;
27072let Inst{31-24} = 0b00011110;
27073let hasNewValue = 1;
27074let opNewValue = 0;
27075let isCVI = 1;
27076let DecoderNamespace = "EXT_mmvec";
27077}
27078def V6_pred_scalar2 : HInst<
27079(outs HvxQR:$Qd4),
27080(ins IntRegs:$Rt32),
27081"$Qd4 = vsetq($Rt32)",
27082tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
27083let Inst{13-2} = 0b000000010001;
27084let Inst{31-21} = 0b00011001101;
27085let hasNewValue = 1;
27086let opNewValue = 0;
27087let isCVI = 1;
27088let DecoderNamespace = "EXT_mmvec";
27089}
27090def V6_pred_scalar2v2 : HInst<
27091(outs HvxQR:$Qd4),
27092(ins IntRegs:$Rt32),
27093"$Qd4 = vsetq2($Rt32)",
27094tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
27095let Inst{13-2} = 0b000000010011;
27096let Inst{31-21} = 0b00011001101;
27097let hasNewValue = 1;
27098let opNewValue = 0;
27099let isCVI = 1;
27100let DecoderNamespace = "EXT_mmvec";
27101}
27102def V6_pred_xor : HInst<
27103(outs HvxQR:$Qd4),
27104(ins HvxQR:$Qs4, HvxQR:$Qt4),
27105"$Qd4 = xor($Qs4,$Qt4)",
27106tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27107let Inst{7-2} = 0b000011;
27108let Inst{13-10} = 0b0000;
27109let Inst{21-16} = 0b000011;
27110let Inst{31-24} = 0b00011110;
27111let hasNewValue = 1;
27112let opNewValue = 0;
27113let isCVI = 1;
27114let DecoderNamespace = "EXT_mmvec";
27115}
27116def V6_shuffeqh : HInst<
27117(outs HvxQR:$Qd4),
27118(ins HvxQR:$Qs4, HvxQR:$Qt4),
27119"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
27120tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27121let Inst{7-2} = 0b000110;
27122let Inst{13-10} = 0b0000;
27123let Inst{21-16} = 0b000011;
27124let Inst{31-24} = 0b00011110;
27125let hasNewValue = 1;
27126let opNewValue = 0;
27127let isCVI = 1;
27128let DecoderNamespace = "EXT_mmvec";
27129}
27130def V6_shuffeqw : HInst<
27131(outs HvxQR:$Qd4),
27132(ins HvxQR:$Qs4, HvxQR:$Qt4),
27133"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
27134tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27135let Inst{7-2} = 0b000111;
27136let Inst{13-10} = 0b0000;
27137let Inst{21-16} = 0b000011;
27138let Inst{31-24} = 0b00011110;
27139let hasNewValue = 1;
27140let opNewValue = 0;
27141let isCVI = 1;
27142let DecoderNamespace = "EXT_mmvec";
27143}
27144def V6_st0 : HInst<
27145(outs),
27146(ins IntRegs:$Rt32, HvxVR:$Vs32),
27147"vmem($Rt32) = $Vs32",
27148PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27149let isCVI = 1;
27150let isPseudo = 1;
27151let isCodeGenOnly = 1;
27152let DecoderNamespace = "EXT_mmvec";
27153}
27154def V6_stn0 : HInst<
27155(outs),
27156(ins IntRegs:$Rt32, HvxVR:$Os8),
27157"vmem($Rt32) = $Os8.new",
27158PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27159let isCVI = 1;
27160let isPseudo = 1;
27161let isCodeGenOnly = 1;
27162let DecoderNamespace = "EXT_mmvec";
27163let opNewValue = 1;
27164}
27165def V6_stnnt0 : HInst<
27166(outs),
27167(ins IntRegs:$Rt32, HvxVR:$Os8),
27168"vmem($Rt32):nt = $Os8.new",
27169PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27170let isCVI = 1;
27171let isPseudo = 1;
27172let isCodeGenOnly = 1;
27173let DecoderNamespace = "EXT_mmvec";
27174let opNewValue = 1;
27175}
27176def V6_stnp0 : HInst<
27177(outs),
27178(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27179"if (!$Pv4) vmem($Rt32) = $Vs32",
27180PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27181let isCVI = 1;
27182let isPseudo = 1;
27183let isCodeGenOnly = 1;
27184let DecoderNamespace = "EXT_mmvec";
27185}
27186def V6_stnpnt0 : HInst<
27187(outs),
27188(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27189"if (!$Pv4) vmem($Rt32):nt = $Vs32",
27190PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27191let isCVI = 1;
27192let isPseudo = 1;
27193let isCodeGenOnly = 1;
27194let DecoderNamespace = "EXT_mmvec";
27195}
27196def V6_stnq0 : HInst<
27197(outs),
27198(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27199"if (!$Qv4) vmem($Rt32) = $Vs32",
27200PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27201let isCVI = 1;
27202let isPseudo = 1;
27203let isCodeGenOnly = 1;
27204let DecoderNamespace = "EXT_mmvec";
27205}
27206def V6_stnqnt0 : HInst<
27207(outs),
27208(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27209"if (!$Qv4) vmem($Rt32):nt = $Vs32",
27210PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27211let isCVI = 1;
27212let isPseudo = 1;
27213let isCodeGenOnly = 1;
27214let DecoderNamespace = "EXT_mmvec";
27215}
27216def V6_stnt0 : HInst<
27217(outs),
27218(ins IntRegs:$Rt32, HvxVR:$Vs32),
27219"vmem($Rt32):nt = $Vs32",
27220PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27221let isCVI = 1;
27222let isPseudo = 1;
27223let isCodeGenOnly = 1;
27224let DecoderNamespace = "EXT_mmvec";
27225}
27226def V6_stp0 : HInst<
27227(outs),
27228(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27229"if ($Pv4) vmem($Rt32) = $Vs32",
27230PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27231let isCVI = 1;
27232let isPseudo = 1;
27233let isCodeGenOnly = 1;
27234let DecoderNamespace = "EXT_mmvec";
27235}
27236def V6_stpnt0 : HInst<
27237(outs),
27238(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27239"if ($Pv4) vmem($Rt32):nt = $Vs32",
27240PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27241let isCVI = 1;
27242let isPseudo = 1;
27243let isCodeGenOnly = 1;
27244let DecoderNamespace = "EXT_mmvec";
27245}
27246def V6_stq0 : HInst<
27247(outs),
27248(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27249"if ($Qv4) vmem($Rt32) = $Vs32",
27250PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27251let isCVI = 1;
27252let isPseudo = 1;
27253let isCodeGenOnly = 1;
27254let DecoderNamespace = "EXT_mmvec";
27255}
27256def V6_stqnt0 : HInst<
27257(outs),
27258(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27259"if ($Qv4) vmem($Rt32):nt = $Vs32",
27260PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27261let isCVI = 1;
27262let isPseudo = 1;
27263let isCodeGenOnly = 1;
27264let DecoderNamespace = "EXT_mmvec";
27265}
27266def V6_stu0 : HInst<
27267(outs),
27268(ins IntRegs:$Rt32, HvxVR:$Vs32),
27269"vmemu($Rt32) = $Vs32",
27270PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27271let isCVI = 1;
27272let isPseudo = 1;
27273let isCodeGenOnly = 1;
27274let DecoderNamespace = "EXT_mmvec";
27275}
27276def V6_stunp0 : HInst<
27277(outs),
27278(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27279"if (!$Pv4) vmemu($Rt32) = $Vs32",
27280PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27281let isCVI = 1;
27282let isPseudo = 1;
27283let isCodeGenOnly = 1;
27284let DecoderNamespace = "EXT_mmvec";
27285}
27286def V6_stup0 : HInst<
27287(outs),
27288(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27289"if ($Pv4) vmemu($Rt32) = $Vs32",
27290PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27291let isCVI = 1;
27292let isPseudo = 1;
27293let isCodeGenOnly = 1;
27294let DecoderNamespace = "EXT_mmvec";
27295}
27296def V6_v10mpyubs10 : HInst<
27297(outs HvxWR:$Vdd32),
27298(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27299"$Vdd32.w = v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27300tc_f175e046, TypeCVI_VX>, Requires<[UseHVXV69]> {
27301let hasNewValue = 1;
27302let opNewValue = 0;
27303let isCVI = 1;
27304let isPseudo = 1;
27305let DecoderNamespace = "EXT_mmvec";
27306}
27307def V6_v10mpyubs10_vxx : HInst<
27308(outs HvxWR:$Vxx32),
27309(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27310"$Vxx32.w += v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27311tc_4942646a, TypeCVI_VX>, Requires<[UseHVXV69]> {
27312let hasNewValue = 1;
27313let opNewValue = 0;
27314let isAccumulator = 1;
27315let isCVI = 1;
27316let isPseudo = 1;
27317let DecoderNamespace = "EXT_mmvec";
27318let Constraints = "$Vxx32 = $Vxx32in";
27319}
27320def V6_v6mpyhubs10 : HInst<
27321(outs HvxWR:$Vdd32),
27322(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27323"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27324tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27325let Inst{7-7} = 0b1;
27326let Inst{13-13} = 0b1;
27327let Inst{31-21} = 0b00011111010;
27328let hasNewValue = 1;
27329let opNewValue = 0;
27330let isCVI = 1;
27331let DecoderNamespace = "EXT_mmvec";
27332}
27333def V6_v6mpyhubs10_alt : HInst<
27334(outs HvxWR:$Vdd32),
27335(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27336"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h",
27337PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27338let hasNewValue = 1;
27339let opNewValue = 0;
27340let isCVI = 1;
27341let isPseudo = 1;
27342let isCodeGenOnly = 1;
27343let DecoderNamespace = "EXT_mmvec";
27344}
27345def V6_v6mpyhubs10_vxx : HInst<
27346(outs HvxWR:$Vxx32),
27347(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27348"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27349tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27350let Inst{7-7} = 0b1;
27351let Inst{13-13} = 0b1;
27352let Inst{31-21} = 0b00011111001;
27353let hasNewValue = 1;
27354let opNewValue = 0;
27355let isAccumulator = 1;
27356let isCVI = 1;
27357let DecoderNamespace = "EXT_mmvec";
27358let Constraints = "$Vxx32 = $Vxx32in";
27359}
27360def V6_v6mpyvubs10 : HInst<
27361(outs HvxWR:$Vdd32),
27362(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27363"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27364tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27365let Inst{7-7} = 0b0;
27366let Inst{13-13} = 0b1;
27367let Inst{31-21} = 0b00011111010;
27368let hasNewValue = 1;
27369let opNewValue = 0;
27370let isCVI = 1;
27371let DecoderNamespace = "EXT_mmvec";
27372}
27373def V6_v6mpyvubs10_alt : HInst<
27374(outs HvxWR:$Vdd32),
27375(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27376"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v",
27377PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27378let hasNewValue = 1;
27379let opNewValue = 0;
27380let isCVI = 1;
27381let isPseudo = 1;
27382let isCodeGenOnly = 1;
27383let DecoderNamespace = "EXT_mmvec";
27384}
27385def V6_v6mpyvubs10_vxx : HInst<
27386(outs HvxWR:$Vxx32),
27387(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27388"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27389tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27390let Inst{7-7} = 0b0;
27391let Inst{13-13} = 0b1;
27392let Inst{31-21} = 0b00011111001;
27393let hasNewValue = 1;
27394let opNewValue = 0;
27395let isAccumulator = 1;
27396let isCVI = 1;
27397let DecoderNamespace = "EXT_mmvec";
27398let Constraints = "$Vxx32 = $Vxx32in";
27399}
27400def V6_vL32Ub_ai : HInst<
27401(outs HvxVR:$Vd32),
27402(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27403"$Vd32 = vmemu($Rt32+#$Ii)",
27404tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]>, PostInc_BaseImm {
27405let Inst{7-5} = 0b111;
27406let Inst{12-11} = 0b00;
27407let Inst{31-21} = 0b00101000000;
27408let hasNewValue = 1;
27409let opNewValue = 0;
27410let addrMode = BaseImmOffset;
27411let accessSize = HVXVectorAccess;
27412let isCVLoad = 1;
27413let isCVI = 1;
27414let mayLoad = 1;
27415let isRestrictNoSlot1Store = 1;
27416let BaseOpcode = "V6_vL32Ub_ai";
27417let CextOpcode = "V6_vL32Ub";
27418let DecoderNamespace = "EXT_mmvec";
27419}
27420def V6_vL32Ub_pi : HInst<
27421(outs HvxVR:$Vd32, IntRegs:$Rx32),
27422(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27423"$Vd32 = vmemu($Rx32++#$Ii)",
27424tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]>, PostInc_BaseImm {
27425let Inst{7-5} = 0b111;
27426let Inst{13-11} = 0b000;
27427let Inst{31-21} = 0b00101001000;
27428let hasNewValue = 1;
27429let opNewValue = 0;
27430let addrMode = PostInc;
27431let accessSize = HVXVectorAccess;
27432let isCVLoad = 1;
27433let isCVI = 1;
27434let mayLoad = 1;
27435let isRestrictNoSlot1Store = 1;
27436let BaseOpcode = "V6_vL32b_pi";
27437let CextOpcode = "V6_vL32Ub";
27438let DecoderNamespace = "EXT_mmvec";
27439let Constraints = "$Rx32 = $Rx32in";
27440}
27441def V6_vL32Ub_ppu : HInst<
27442(outs HvxVR:$Vd32, IntRegs:$Rx32),
27443(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27444"$Vd32 = vmemu($Rx32++$Mu2)",
27445tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
27446let Inst{12-5} = 0b00000111;
27447let Inst{31-21} = 0b00101011000;
27448let hasNewValue = 1;
27449let opNewValue = 0;
27450let addrMode = PostInc;
27451let accessSize = HVXVectorAccess;
27452let isCVLoad = 1;
27453let isCVI = 1;
27454let mayLoad = 1;
27455let isRestrictNoSlot1Store = 1;
27456let DecoderNamespace = "EXT_mmvec";
27457let Constraints = "$Rx32 = $Rx32in";
27458}
27459def V6_vL32b_ai : HInst<
27460(outs HvxVR:$Vd32),
27461(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27462"$Vd32 = vmem($Rt32+#$Ii)",
27463tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27464let Inst{7-5} = 0b000;
27465let Inst{12-11} = 0b00;
27466let Inst{31-21} = 0b00101000000;
27467let hasNewValue = 1;
27468let opNewValue = 0;
27469let addrMode = BaseImmOffset;
27470let accessSize = HVXVectorAccess;
27471let isCVLoad = 1;
27472let isCVI = 1;
27473let mayLoad = 1;
27474let isRestrictNoSlot1Store = 1;
27475let BaseOpcode = "V6_vL32b_ai";
27476let CextOpcode = "V6_vL32b";
27477let isCVLoadable = 1;
27478let isPredicable = 1;
27479let DecoderNamespace = "EXT_mmvec";
27480}
27481def V6_vL32b_cur_ai : HInst<
27482(outs HvxVR:$Vd32),
27483(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27484"$Vd32.cur = vmem($Rt32+#$Ii)",
27485tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27486let Inst{7-5} = 0b001;
27487let Inst{12-11} = 0b00;
27488let Inst{31-21} = 0b00101000000;
27489let hasNewValue = 1;
27490let opNewValue = 0;
27491let addrMode = BaseImmOffset;
27492let accessSize = HVXVectorAccess;
27493let isCVLoad = 1;
27494let isCVI = 1;
27495let CVINew = 1;
27496let mayLoad = 1;
27497let isRestrictNoSlot1Store = 1;
27498let BaseOpcode = "V6_vL32b_cur_ai";
27499let CextOpcode = "V6_vL32b_cur";
27500let isPredicable = 1;
27501let DecoderNamespace = "EXT_mmvec";
27502}
27503def V6_vL32b_cur_npred_ai : HInst<
27504(outs HvxVR:$Vd32),
27505(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27506"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27507tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27508let Inst{7-5} = 0b101;
27509let Inst{31-21} = 0b00101000100;
27510let isPredicated = 1;
27511let isPredicatedFalse = 1;
27512let hasNewValue = 1;
27513let opNewValue = 0;
27514let addrMode = BaseImmOffset;
27515let accessSize = HVXVectorAccess;
27516let isCVLoad = 1;
27517let isCVI = 1;
27518let CVINew = 1;
27519let mayLoad = 1;
27520let isRestrictNoSlot1Store = 1;
27521let BaseOpcode = "V6_vL32b_cur_ai";
27522let DecoderNamespace = "EXT_mmvec";
27523}
27524def V6_vL32b_cur_npred_pi : HInst<
27525(outs HvxVR:$Vd32, IntRegs:$Rx32),
27526(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27527"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27528tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27529let Inst{7-5} = 0b101;
27530let Inst{13-13} = 0b0;
27531let Inst{31-21} = 0b00101001100;
27532let isPredicated = 1;
27533let isPredicatedFalse = 1;
27534let hasNewValue = 1;
27535let opNewValue = 0;
27536let addrMode = PostInc;
27537let accessSize = HVXVectorAccess;
27538let isCVLoad = 1;
27539let isCVI = 1;
27540let CVINew = 1;
27541let mayLoad = 1;
27542let isRestrictNoSlot1Store = 1;
27543let BaseOpcode = "V6_vL32b_cur_pi";
27544let DecoderNamespace = "EXT_mmvec";
27545let Constraints = "$Rx32 = $Rx32in";
27546}
27547def V6_vL32b_cur_npred_ppu : HInst<
27548(outs HvxVR:$Vd32, IntRegs:$Rx32),
27549(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27550"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27551tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27552let Inst{10-5} = 0b000101;
27553let Inst{31-21} = 0b00101011100;
27554let isPredicated = 1;
27555let isPredicatedFalse = 1;
27556let hasNewValue = 1;
27557let opNewValue = 0;
27558let addrMode = PostInc;
27559let accessSize = HVXVectorAccess;
27560let isCVLoad = 1;
27561let isCVI = 1;
27562let CVINew = 1;
27563let mayLoad = 1;
27564let isRestrictNoSlot1Store = 1;
27565let BaseOpcode = "V6_vL32b_cur_ppu";
27566let DecoderNamespace = "EXT_mmvec";
27567let Constraints = "$Rx32 = $Rx32in";
27568}
27569def V6_vL32b_cur_pi : HInst<
27570(outs HvxVR:$Vd32, IntRegs:$Rx32),
27571(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27572"$Vd32.cur = vmem($Rx32++#$Ii)",
27573tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27574let Inst{7-5} = 0b001;
27575let Inst{13-11} = 0b000;
27576let Inst{31-21} = 0b00101001000;
27577let hasNewValue = 1;
27578let opNewValue = 0;
27579let addrMode = PostInc;
27580let accessSize = HVXVectorAccess;
27581let isCVLoad = 1;
27582let isCVI = 1;
27583let CVINew = 1;
27584let mayLoad = 1;
27585let isRestrictNoSlot1Store = 1;
27586let BaseOpcode = "V6_vL32b_cur_pi";
27587let CextOpcode = "V6_vL32b_cur";
27588let isPredicable = 1;
27589let DecoderNamespace = "EXT_mmvec";
27590let Constraints = "$Rx32 = $Rx32in";
27591}
27592def V6_vL32b_cur_ppu : HInst<
27593(outs HvxVR:$Vd32, IntRegs:$Rx32),
27594(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27595"$Vd32.cur = vmem($Rx32++$Mu2)",
27596tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27597let Inst{12-5} = 0b00000001;
27598let Inst{31-21} = 0b00101011000;
27599let hasNewValue = 1;
27600let opNewValue = 0;
27601let addrMode = PostInc;
27602let accessSize = HVXVectorAccess;
27603let isCVLoad = 1;
27604let isCVI = 1;
27605let CVINew = 1;
27606let mayLoad = 1;
27607let isRestrictNoSlot1Store = 1;
27608let BaseOpcode = "V6_vL32b_cur_ppu";
27609let isPredicable = 1;
27610let DecoderNamespace = "EXT_mmvec";
27611let Constraints = "$Rx32 = $Rx32in";
27612}
27613def V6_vL32b_cur_pred_ai : HInst<
27614(outs HvxVR:$Vd32),
27615(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27616"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27617tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27618let Inst{7-5} = 0b100;
27619let Inst{31-21} = 0b00101000100;
27620let isPredicated = 1;
27621let hasNewValue = 1;
27622let opNewValue = 0;
27623let addrMode = BaseImmOffset;
27624let accessSize = HVXVectorAccess;
27625let isCVLoad = 1;
27626let isCVI = 1;
27627let CVINew = 1;
27628let mayLoad = 1;
27629let isRestrictNoSlot1Store = 1;
27630let BaseOpcode = "V6_vL32b_cur_ai";
27631let DecoderNamespace = "EXT_mmvec";
27632}
27633def V6_vL32b_cur_pred_pi : HInst<
27634(outs HvxVR:$Vd32, IntRegs:$Rx32),
27635(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27636"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27637tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27638let Inst{7-5} = 0b100;
27639let Inst{13-13} = 0b0;
27640let Inst{31-21} = 0b00101001100;
27641let isPredicated = 1;
27642let hasNewValue = 1;
27643let opNewValue = 0;
27644let addrMode = PostInc;
27645let accessSize = HVXVectorAccess;
27646let isCVLoad = 1;
27647let isCVI = 1;
27648let CVINew = 1;
27649let mayLoad = 1;
27650let isRestrictNoSlot1Store = 1;
27651let BaseOpcode = "V6_vL32b_cur_pi";
27652let DecoderNamespace = "EXT_mmvec";
27653let Constraints = "$Rx32 = $Rx32in";
27654}
27655def V6_vL32b_cur_pred_ppu : HInst<
27656(outs HvxVR:$Vd32, IntRegs:$Rx32),
27657(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27658"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27659tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27660let Inst{10-5} = 0b000100;
27661let Inst{31-21} = 0b00101011100;
27662let isPredicated = 1;
27663let hasNewValue = 1;
27664let opNewValue = 0;
27665let addrMode = PostInc;
27666let accessSize = HVXVectorAccess;
27667let isCVLoad = 1;
27668let isCVI = 1;
27669let CVINew = 1;
27670let mayLoad = 1;
27671let isRestrictNoSlot1Store = 1;
27672let BaseOpcode = "V6_vL32b_cur_ppu";
27673let DecoderNamespace = "EXT_mmvec";
27674let Constraints = "$Rx32 = $Rx32in";
27675}
27676def V6_vL32b_npred_ai : HInst<
27677(outs HvxVR:$Vd32),
27678(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27679"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27680tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27681let Inst{7-5} = 0b011;
27682let Inst{31-21} = 0b00101000100;
27683let isPredicated = 1;
27684let isPredicatedFalse = 1;
27685let hasNewValue = 1;
27686let opNewValue = 0;
27687let addrMode = BaseImmOffset;
27688let accessSize = HVXVectorAccess;
27689let isCVLoad = 1;
27690let isCVI = 1;
27691let mayLoad = 1;
27692let isRestrictNoSlot1Store = 1;
27693let BaseOpcode = "V6_vL32b_ai";
27694let DecoderNamespace = "EXT_mmvec";
27695}
27696def V6_vL32b_npred_pi : HInst<
27697(outs HvxVR:$Vd32, IntRegs:$Rx32),
27698(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27699"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27700tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27701let Inst{7-5} = 0b011;
27702let Inst{13-13} = 0b0;
27703let Inst{31-21} = 0b00101001100;
27704let isPredicated = 1;
27705let isPredicatedFalse = 1;
27706let hasNewValue = 1;
27707let opNewValue = 0;
27708let addrMode = PostInc;
27709let accessSize = HVXVectorAccess;
27710let isCVLoad = 1;
27711let isCVI = 1;
27712let mayLoad = 1;
27713let isRestrictNoSlot1Store = 1;
27714let BaseOpcode = "V6_vL32b_pi";
27715let DecoderNamespace = "EXT_mmvec";
27716let Constraints = "$Rx32 = $Rx32in";
27717}
27718def V6_vL32b_npred_ppu : HInst<
27719(outs HvxVR:$Vd32, IntRegs:$Rx32),
27720(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27721"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27722tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27723let Inst{10-5} = 0b000011;
27724let Inst{31-21} = 0b00101011100;
27725let isPredicated = 1;
27726let isPredicatedFalse = 1;
27727let hasNewValue = 1;
27728let opNewValue = 0;
27729let addrMode = PostInc;
27730let accessSize = HVXVectorAccess;
27731let isCVLoad = 1;
27732let isCVI = 1;
27733let mayLoad = 1;
27734let isRestrictNoSlot1Store = 1;
27735let BaseOpcode = "V6_vL32b_ppu";
27736let DecoderNamespace = "EXT_mmvec";
27737let Constraints = "$Rx32 = $Rx32in";
27738}
27739def V6_vL32b_nt_ai : HInst<
27740(outs HvxVR:$Vd32),
27741(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27742"$Vd32 = vmem($Rt32+#$Ii):nt",
27743tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27744let Inst{7-5} = 0b000;
27745let Inst{12-11} = 0b00;
27746let Inst{31-21} = 0b00101000010;
27747let hasNewValue = 1;
27748let opNewValue = 0;
27749let addrMode = BaseImmOffset;
27750let accessSize = HVXVectorAccess;
27751let isCVLoad = 1;
27752let isCVI = 1;
27753let mayLoad = 1;
27754let isNonTemporal = 1;
27755let isRestrictNoSlot1Store = 1;
27756let BaseOpcode = "V6_vL32b_nt_ai";
27757let CextOpcode = "V6_vL32b_nt";
27758let isCVLoadable = 1;
27759let isPredicable = 1;
27760let DecoderNamespace = "EXT_mmvec";
27761}
27762def V6_vL32b_nt_cur_ai : HInst<
27763(outs HvxVR:$Vd32),
27764(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27765"$Vd32.cur = vmem($Rt32+#$Ii):nt",
27766tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27767let Inst{7-5} = 0b001;
27768let Inst{12-11} = 0b00;
27769let Inst{31-21} = 0b00101000010;
27770let hasNewValue = 1;
27771let opNewValue = 0;
27772let addrMode = BaseImmOffset;
27773let accessSize = HVXVectorAccess;
27774let isCVLoad = 1;
27775let isCVI = 1;
27776let CVINew = 1;
27777let mayLoad = 1;
27778let isNonTemporal = 1;
27779let isRestrictNoSlot1Store = 1;
27780let BaseOpcode = "V6_vL32b_nt_cur_ai";
27781let CextOpcode = "V6_vL32b_nt_cur";
27782let isPredicable = 1;
27783let DecoderNamespace = "EXT_mmvec";
27784}
27785def V6_vL32b_nt_cur_npred_ai : HInst<
27786(outs HvxVR:$Vd32),
27787(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27788"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27789tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27790let Inst{7-5} = 0b101;
27791let Inst{31-21} = 0b00101000110;
27792let isPredicated = 1;
27793let isPredicatedFalse = 1;
27794let hasNewValue = 1;
27795let opNewValue = 0;
27796let addrMode = BaseImmOffset;
27797let accessSize = HVXVectorAccess;
27798let isCVLoad = 1;
27799let isCVI = 1;
27800let CVINew = 1;
27801let mayLoad = 1;
27802let isNonTemporal = 1;
27803let isRestrictNoSlot1Store = 1;
27804let BaseOpcode = "V6_vL32b_nt_cur_ai";
27805let DecoderNamespace = "EXT_mmvec";
27806}
27807def V6_vL32b_nt_cur_npred_pi : HInst<
27808(outs HvxVR:$Vd32, IntRegs:$Rx32),
27809(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27810"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27811tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27812let Inst{7-5} = 0b101;
27813let Inst{13-13} = 0b0;
27814let Inst{31-21} = 0b00101001110;
27815let isPredicated = 1;
27816let isPredicatedFalse = 1;
27817let hasNewValue = 1;
27818let opNewValue = 0;
27819let addrMode = PostInc;
27820let accessSize = HVXVectorAccess;
27821let isCVLoad = 1;
27822let isCVI = 1;
27823let CVINew = 1;
27824let mayLoad = 1;
27825let isNonTemporal = 1;
27826let isRestrictNoSlot1Store = 1;
27827let BaseOpcode = "V6_vL32b_nt_cur_pi";
27828let DecoderNamespace = "EXT_mmvec";
27829let Constraints = "$Rx32 = $Rx32in";
27830}
27831def V6_vL32b_nt_cur_npred_ppu : HInst<
27832(outs HvxVR:$Vd32, IntRegs:$Rx32),
27833(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27834"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27835tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27836let Inst{10-5} = 0b000101;
27837let Inst{31-21} = 0b00101011110;
27838let isPredicated = 1;
27839let isPredicatedFalse = 1;
27840let hasNewValue = 1;
27841let opNewValue = 0;
27842let addrMode = PostInc;
27843let accessSize = HVXVectorAccess;
27844let isCVLoad = 1;
27845let isCVI = 1;
27846let CVINew = 1;
27847let mayLoad = 1;
27848let isNonTemporal = 1;
27849let isRestrictNoSlot1Store = 1;
27850let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27851let DecoderNamespace = "EXT_mmvec";
27852let Constraints = "$Rx32 = $Rx32in";
27853}
27854def V6_vL32b_nt_cur_pi : HInst<
27855(outs HvxVR:$Vd32, IntRegs:$Rx32),
27856(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27857"$Vd32.cur = vmem($Rx32++#$Ii):nt",
27858tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27859let Inst{7-5} = 0b001;
27860let Inst{13-11} = 0b000;
27861let Inst{31-21} = 0b00101001010;
27862let hasNewValue = 1;
27863let opNewValue = 0;
27864let addrMode = PostInc;
27865let accessSize = HVXVectorAccess;
27866let isCVLoad = 1;
27867let isCVI = 1;
27868let CVINew = 1;
27869let mayLoad = 1;
27870let isNonTemporal = 1;
27871let isRestrictNoSlot1Store = 1;
27872let BaseOpcode = "V6_vL32b_nt_cur_pi";
27873let CextOpcode = "V6_vL32b_nt_cur";
27874let isPredicable = 1;
27875let DecoderNamespace = "EXT_mmvec";
27876let Constraints = "$Rx32 = $Rx32in";
27877}
27878def V6_vL32b_nt_cur_ppu : HInst<
27879(outs HvxVR:$Vd32, IntRegs:$Rx32),
27880(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27881"$Vd32.cur = vmem($Rx32++$Mu2):nt",
27882tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27883let Inst{12-5} = 0b00000001;
27884let Inst{31-21} = 0b00101011010;
27885let hasNewValue = 1;
27886let opNewValue = 0;
27887let addrMode = PostInc;
27888let accessSize = HVXVectorAccess;
27889let isCVLoad = 1;
27890let isCVI = 1;
27891let CVINew = 1;
27892let mayLoad = 1;
27893let isNonTemporal = 1;
27894let isRestrictNoSlot1Store = 1;
27895let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27896let isPredicable = 1;
27897let DecoderNamespace = "EXT_mmvec";
27898let Constraints = "$Rx32 = $Rx32in";
27899}
27900def V6_vL32b_nt_cur_pred_ai : HInst<
27901(outs HvxVR:$Vd32),
27902(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27903"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27904tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27905let Inst{7-5} = 0b100;
27906let Inst{31-21} = 0b00101000110;
27907let isPredicated = 1;
27908let hasNewValue = 1;
27909let opNewValue = 0;
27910let addrMode = BaseImmOffset;
27911let accessSize = HVXVectorAccess;
27912let isCVLoad = 1;
27913let isCVI = 1;
27914let CVINew = 1;
27915let mayLoad = 1;
27916let isNonTemporal = 1;
27917let isRestrictNoSlot1Store = 1;
27918let BaseOpcode = "V6_vL32b_nt_cur_ai";
27919let DecoderNamespace = "EXT_mmvec";
27920}
27921def V6_vL32b_nt_cur_pred_pi : HInst<
27922(outs HvxVR:$Vd32, IntRegs:$Rx32),
27923(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27924"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27925tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27926let Inst{7-5} = 0b100;
27927let Inst{13-13} = 0b0;
27928let Inst{31-21} = 0b00101001110;
27929let isPredicated = 1;
27930let hasNewValue = 1;
27931let opNewValue = 0;
27932let addrMode = PostInc;
27933let accessSize = HVXVectorAccess;
27934let isCVLoad = 1;
27935let isCVI = 1;
27936let CVINew = 1;
27937let mayLoad = 1;
27938let isNonTemporal = 1;
27939let isRestrictNoSlot1Store = 1;
27940let BaseOpcode = "V6_vL32b_nt_cur_pi";
27941let DecoderNamespace = "EXT_mmvec";
27942let Constraints = "$Rx32 = $Rx32in";
27943}
27944def V6_vL32b_nt_cur_pred_ppu : HInst<
27945(outs HvxVR:$Vd32, IntRegs:$Rx32),
27946(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27947"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27948tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27949let Inst{10-5} = 0b000100;
27950let Inst{31-21} = 0b00101011110;
27951let isPredicated = 1;
27952let hasNewValue = 1;
27953let opNewValue = 0;
27954let addrMode = PostInc;
27955let accessSize = HVXVectorAccess;
27956let isCVLoad = 1;
27957let isCVI = 1;
27958let CVINew = 1;
27959let mayLoad = 1;
27960let isNonTemporal = 1;
27961let isRestrictNoSlot1Store = 1;
27962let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27963let DecoderNamespace = "EXT_mmvec";
27964let Constraints = "$Rx32 = $Rx32in";
27965}
27966def V6_vL32b_nt_npred_ai : HInst<
27967(outs HvxVR:$Vd32),
27968(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27969"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27970tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27971let Inst{7-5} = 0b011;
27972let Inst{31-21} = 0b00101000110;
27973let isPredicated = 1;
27974let isPredicatedFalse = 1;
27975let hasNewValue = 1;
27976let opNewValue = 0;
27977let addrMode = BaseImmOffset;
27978let accessSize = HVXVectorAccess;
27979let isCVLoad = 1;
27980let isCVI = 1;
27981let mayLoad = 1;
27982let isNonTemporal = 1;
27983let isRestrictNoSlot1Store = 1;
27984let BaseOpcode = "V6_vL32b_nt_ai";
27985let DecoderNamespace = "EXT_mmvec";
27986}
27987def V6_vL32b_nt_npred_pi : HInst<
27988(outs HvxVR:$Vd32, IntRegs:$Rx32),
27989(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27990"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27991tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27992let Inst{7-5} = 0b011;
27993let Inst{13-13} = 0b0;
27994let Inst{31-21} = 0b00101001110;
27995let isPredicated = 1;
27996let isPredicatedFalse = 1;
27997let hasNewValue = 1;
27998let opNewValue = 0;
27999let addrMode = PostInc;
28000let accessSize = HVXVectorAccess;
28001let isCVLoad = 1;
28002let isCVI = 1;
28003let mayLoad = 1;
28004let isNonTemporal = 1;
28005let isRestrictNoSlot1Store = 1;
28006let BaseOpcode = "V6_vL32b_nt_pi";
28007let DecoderNamespace = "EXT_mmvec";
28008let Constraints = "$Rx32 = $Rx32in";
28009}
28010def V6_vL32b_nt_npred_ppu : HInst<
28011(outs HvxVR:$Vd32, IntRegs:$Rx32),
28012(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28013"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28014tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28015let Inst{10-5} = 0b000011;
28016let Inst{31-21} = 0b00101011110;
28017let isPredicated = 1;
28018let isPredicatedFalse = 1;
28019let hasNewValue = 1;
28020let opNewValue = 0;
28021let addrMode = PostInc;
28022let accessSize = HVXVectorAccess;
28023let isCVLoad = 1;
28024let isCVI = 1;
28025let mayLoad = 1;
28026let isNonTemporal = 1;
28027let isRestrictNoSlot1Store = 1;
28028let BaseOpcode = "V6_vL32b_nt_ppu";
28029let DecoderNamespace = "EXT_mmvec";
28030let Constraints = "$Rx32 = $Rx32in";
28031}
28032def V6_vL32b_nt_pi : HInst<
28033(outs HvxVR:$Vd32, IntRegs:$Rx32),
28034(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28035"$Vd32 = vmem($Rx32++#$Ii):nt",
28036tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28037let Inst{7-5} = 0b000;
28038let Inst{13-11} = 0b000;
28039let Inst{31-21} = 0b00101001010;
28040let hasNewValue = 1;
28041let opNewValue = 0;
28042let addrMode = PostInc;
28043let accessSize = HVXVectorAccess;
28044let isCVLoad = 1;
28045let isCVI = 1;
28046let mayLoad = 1;
28047let isNonTemporal = 1;
28048let isRestrictNoSlot1Store = 1;
28049let BaseOpcode = "V6_vL32b_nt_pi";
28050let CextOpcode = "V6_vL32b_nt";
28051let isCVLoadable = 1;
28052let isPredicable = 1;
28053let DecoderNamespace = "EXT_mmvec";
28054let Constraints = "$Rx32 = $Rx32in";
28055}
28056def V6_vL32b_nt_ppu : HInst<
28057(outs HvxVR:$Vd32, IntRegs:$Rx32),
28058(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28059"$Vd32 = vmem($Rx32++$Mu2):nt",
28060tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28061let Inst{12-5} = 0b00000000;
28062let Inst{31-21} = 0b00101011010;
28063let hasNewValue = 1;
28064let opNewValue = 0;
28065let addrMode = PostInc;
28066let accessSize = HVXVectorAccess;
28067let isCVLoad = 1;
28068let isCVI = 1;
28069let mayLoad = 1;
28070let isNonTemporal = 1;
28071let isRestrictNoSlot1Store = 1;
28072let BaseOpcode = "V6_vL32b_nt_ppu";
28073let isCVLoadable = 1;
28074let isPredicable = 1;
28075let DecoderNamespace = "EXT_mmvec";
28076let Constraints = "$Rx32 = $Rx32in";
28077}
28078def V6_vL32b_nt_pred_ai : HInst<
28079(outs HvxVR:$Vd32),
28080(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28081"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28082tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28083let Inst{7-5} = 0b010;
28084let Inst{31-21} = 0b00101000110;
28085let isPredicated = 1;
28086let hasNewValue = 1;
28087let opNewValue = 0;
28088let addrMode = BaseImmOffset;
28089let accessSize = HVXVectorAccess;
28090let isCVLoad = 1;
28091let isCVI = 1;
28092let mayLoad = 1;
28093let isNonTemporal = 1;
28094let isRestrictNoSlot1Store = 1;
28095let BaseOpcode = "V6_vL32b_nt_ai";
28096let DecoderNamespace = "EXT_mmvec";
28097}
28098def V6_vL32b_nt_pred_pi : HInst<
28099(outs HvxVR:$Vd32, IntRegs:$Rx32),
28100(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28101"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28102tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28103let Inst{7-5} = 0b010;
28104let Inst{13-13} = 0b0;
28105let Inst{31-21} = 0b00101001110;
28106let isPredicated = 1;
28107let hasNewValue = 1;
28108let opNewValue = 0;
28109let addrMode = PostInc;
28110let accessSize = HVXVectorAccess;
28111let isCVLoad = 1;
28112let isCVI = 1;
28113let mayLoad = 1;
28114let isNonTemporal = 1;
28115let isRestrictNoSlot1Store = 1;
28116let BaseOpcode = "V6_vL32b_nt_pi";
28117let DecoderNamespace = "EXT_mmvec";
28118let Constraints = "$Rx32 = $Rx32in";
28119}
28120def V6_vL32b_nt_pred_ppu : HInst<
28121(outs HvxVR:$Vd32, IntRegs:$Rx32),
28122(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28123"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28124tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28125let Inst{10-5} = 0b000010;
28126let Inst{31-21} = 0b00101011110;
28127let isPredicated = 1;
28128let hasNewValue = 1;
28129let opNewValue = 0;
28130let addrMode = PostInc;
28131let accessSize = HVXVectorAccess;
28132let isCVLoad = 1;
28133let isCVI = 1;
28134let mayLoad = 1;
28135let isNonTemporal = 1;
28136let isRestrictNoSlot1Store = 1;
28137let BaseOpcode = "V6_vL32b_nt_ppu";
28138let DecoderNamespace = "EXT_mmvec";
28139let Constraints = "$Rx32 = $Rx32in";
28140}
28141def V6_vL32b_nt_tmp_ai : HInst<
28142(outs HvxVR:$Vd32),
28143(ins IntRegs:$Rt32, s4_0Imm:$Ii),
28144"$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28145tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28146let Inst{7-5} = 0b010;
28147let Inst{12-11} = 0b00;
28148let Inst{31-21} = 0b00101000010;
28149let hasNewValue = 1;
28150let opNewValue = 0;
28151let addrMode = BaseImmOffset;
28152let accessSize = HVXVectorAccess;
28153let isCVLoad = 1;
28154let isCVI = 1;
28155let hasHvxTmp = 1;
28156let mayLoad = 1;
28157let isNonTemporal = 1;
28158let isRestrictNoSlot1Store = 1;
28159let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28160let CextOpcode = "V6_vL32b_nt_tmp";
28161let isPredicable = 1;
28162let DecoderNamespace = "EXT_mmvec";
28163}
28164def V6_vL32b_nt_tmp_npred_ai : HInst<
28165(outs HvxVR:$Vd32),
28166(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28167"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28168tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28169let Inst{7-5} = 0b111;
28170let Inst{31-21} = 0b00101000110;
28171let isPredicated = 1;
28172let isPredicatedFalse = 1;
28173let hasNewValue = 1;
28174let opNewValue = 0;
28175let addrMode = BaseImmOffset;
28176let accessSize = HVXVectorAccess;
28177let isCVLoad = 1;
28178let isCVI = 1;
28179let hasHvxTmp = 1;
28180let mayLoad = 1;
28181let isNonTemporal = 1;
28182let isRestrictNoSlot1Store = 1;
28183let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28184let DecoderNamespace = "EXT_mmvec";
28185}
28186def V6_vL32b_nt_tmp_npred_pi : HInst<
28187(outs HvxVR:$Vd32, IntRegs:$Rx32),
28188(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28189"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28190tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28191let Inst{7-5} = 0b111;
28192let Inst{13-13} = 0b0;
28193let Inst{31-21} = 0b00101001110;
28194let isPredicated = 1;
28195let isPredicatedFalse = 1;
28196let hasNewValue = 1;
28197let opNewValue = 0;
28198let addrMode = PostInc;
28199let accessSize = HVXVectorAccess;
28200let isCVLoad = 1;
28201let isCVI = 1;
28202let hasHvxTmp = 1;
28203let mayLoad = 1;
28204let isNonTemporal = 1;
28205let isRestrictNoSlot1Store = 1;
28206let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28207let DecoderNamespace = "EXT_mmvec";
28208let Constraints = "$Rx32 = $Rx32in";
28209}
28210def V6_vL32b_nt_tmp_npred_ppu : HInst<
28211(outs HvxVR:$Vd32, IntRegs:$Rx32),
28212(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28213"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28214tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28215let Inst{10-5} = 0b000111;
28216let Inst{31-21} = 0b00101011110;
28217let isPredicated = 1;
28218let isPredicatedFalse = 1;
28219let hasNewValue = 1;
28220let opNewValue = 0;
28221let addrMode = PostInc;
28222let accessSize = HVXVectorAccess;
28223let isCVLoad = 1;
28224let isCVI = 1;
28225let hasHvxTmp = 1;
28226let mayLoad = 1;
28227let isNonTemporal = 1;
28228let isRestrictNoSlot1Store = 1;
28229let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28230let DecoderNamespace = "EXT_mmvec";
28231let Constraints = "$Rx32 = $Rx32in";
28232}
28233def V6_vL32b_nt_tmp_pi : HInst<
28234(outs HvxVR:$Vd32, IntRegs:$Rx32),
28235(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28236"$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28237tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28238let Inst{7-5} = 0b010;
28239let Inst{13-11} = 0b000;
28240let Inst{31-21} = 0b00101001010;
28241let hasNewValue = 1;
28242let opNewValue = 0;
28243let addrMode = PostInc;
28244let accessSize = HVXVectorAccess;
28245let isCVLoad = 1;
28246let isCVI = 1;
28247let hasHvxTmp = 1;
28248let mayLoad = 1;
28249let isNonTemporal = 1;
28250let isRestrictNoSlot1Store = 1;
28251let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28252let CextOpcode = "V6_vL32b_nt_tmp";
28253let isPredicable = 1;
28254let DecoderNamespace = "EXT_mmvec";
28255let Constraints = "$Rx32 = $Rx32in";
28256}
28257def V6_vL32b_nt_tmp_ppu : HInst<
28258(outs HvxVR:$Vd32, IntRegs:$Rx32),
28259(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28260"$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28261tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28262let Inst{12-5} = 0b00000010;
28263let Inst{31-21} = 0b00101011010;
28264let hasNewValue = 1;
28265let opNewValue = 0;
28266let addrMode = PostInc;
28267let accessSize = HVXVectorAccess;
28268let isCVLoad = 1;
28269let isCVI = 1;
28270let hasHvxTmp = 1;
28271let mayLoad = 1;
28272let isNonTemporal = 1;
28273let isRestrictNoSlot1Store = 1;
28274let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28275let isPredicable = 1;
28276let DecoderNamespace = "EXT_mmvec";
28277let Constraints = "$Rx32 = $Rx32in";
28278}
28279def V6_vL32b_nt_tmp_pred_ai : HInst<
28280(outs HvxVR:$Vd32),
28281(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28282"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28283tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28284let Inst{7-5} = 0b110;
28285let Inst{31-21} = 0b00101000110;
28286let isPredicated = 1;
28287let hasNewValue = 1;
28288let opNewValue = 0;
28289let addrMode = BaseImmOffset;
28290let accessSize = HVXVectorAccess;
28291let isCVLoad = 1;
28292let isCVI = 1;
28293let hasHvxTmp = 1;
28294let mayLoad = 1;
28295let isNonTemporal = 1;
28296let isRestrictNoSlot1Store = 1;
28297let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28298let DecoderNamespace = "EXT_mmvec";
28299}
28300def V6_vL32b_nt_tmp_pred_pi : HInst<
28301(outs HvxVR:$Vd32, IntRegs:$Rx32),
28302(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28303"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28304tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28305let Inst{7-5} = 0b110;
28306let Inst{13-13} = 0b0;
28307let Inst{31-21} = 0b00101001110;
28308let isPredicated = 1;
28309let hasNewValue = 1;
28310let opNewValue = 0;
28311let addrMode = PostInc;
28312let accessSize = HVXVectorAccess;
28313let isCVLoad = 1;
28314let isCVI = 1;
28315let hasHvxTmp = 1;
28316let mayLoad = 1;
28317let isNonTemporal = 1;
28318let isRestrictNoSlot1Store = 1;
28319let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28320let DecoderNamespace = "EXT_mmvec";
28321let Constraints = "$Rx32 = $Rx32in";
28322}
28323def V6_vL32b_nt_tmp_pred_ppu : HInst<
28324(outs HvxVR:$Vd32, IntRegs:$Rx32),
28325(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28326"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28327tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28328let Inst{10-5} = 0b000110;
28329let Inst{31-21} = 0b00101011110;
28330let isPredicated = 1;
28331let hasNewValue = 1;
28332let opNewValue = 0;
28333let addrMode = PostInc;
28334let accessSize = HVXVectorAccess;
28335let isCVLoad = 1;
28336let isCVI = 1;
28337let hasHvxTmp = 1;
28338let mayLoad = 1;
28339let isNonTemporal = 1;
28340let isRestrictNoSlot1Store = 1;
28341let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28342let DecoderNamespace = "EXT_mmvec";
28343let Constraints = "$Rx32 = $Rx32in";
28344}
28345def V6_vL32b_pi : HInst<
28346(outs HvxVR:$Vd32, IntRegs:$Rx32),
28347(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28348"$Vd32 = vmem($Rx32++#$Ii)",
28349tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28350let Inst{7-5} = 0b000;
28351let Inst{13-11} = 0b000;
28352let Inst{31-21} = 0b00101001000;
28353let hasNewValue = 1;
28354let opNewValue = 0;
28355let addrMode = PostInc;
28356let accessSize = HVXVectorAccess;
28357let isCVLoad = 1;
28358let isCVI = 1;
28359let mayLoad = 1;
28360let isRestrictNoSlot1Store = 1;
28361let BaseOpcode = "V6_vL32b_pi";
28362let CextOpcode = "V6_vL32b";
28363let isCVLoadable = 1;
28364let isPredicable = 1;
28365let DecoderNamespace = "EXT_mmvec";
28366let Constraints = "$Rx32 = $Rx32in";
28367}
28368def V6_vL32b_ppu : HInst<
28369(outs HvxVR:$Vd32, IntRegs:$Rx32),
28370(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28371"$Vd32 = vmem($Rx32++$Mu2)",
28372tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28373let Inst{12-5} = 0b00000000;
28374let Inst{31-21} = 0b00101011000;
28375let hasNewValue = 1;
28376let opNewValue = 0;
28377let addrMode = PostInc;
28378let accessSize = HVXVectorAccess;
28379let isCVLoad = 1;
28380let isCVI = 1;
28381let mayLoad = 1;
28382let isRestrictNoSlot1Store = 1;
28383let BaseOpcode = "V6_vL32b_ppu";
28384let isCVLoadable = 1;
28385let isPredicable = 1;
28386let DecoderNamespace = "EXT_mmvec";
28387let Constraints = "$Rx32 = $Rx32in";
28388}
28389def V6_vL32b_pred_ai : HInst<
28390(outs HvxVR:$Vd32),
28391(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28392"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28393tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28394let Inst{7-5} = 0b010;
28395let Inst{31-21} = 0b00101000100;
28396let isPredicated = 1;
28397let hasNewValue = 1;
28398let opNewValue = 0;
28399let addrMode = BaseImmOffset;
28400let accessSize = HVXVectorAccess;
28401let isCVLoad = 1;
28402let isCVI = 1;
28403let mayLoad = 1;
28404let isRestrictNoSlot1Store = 1;
28405let BaseOpcode = "V6_vL32b_ai";
28406let DecoderNamespace = "EXT_mmvec";
28407}
28408def V6_vL32b_pred_pi : HInst<
28409(outs HvxVR:$Vd32, IntRegs:$Rx32),
28410(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28411"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28412tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28413let Inst{7-5} = 0b010;
28414let Inst{13-13} = 0b0;
28415let Inst{31-21} = 0b00101001100;
28416let isPredicated = 1;
28417let hasNewValue = 1;
28418let opNewValue = 0;
28419let addrMode = PostInc;
28420let accessSize = HVXVectorAccess;
28421let isCVLoad = 1;
28422let isCVI = 1;
28423let mayLoad = 1;
28424let isRestrictNoSlot1Store = 1;
28425let BaseOpcode = "V6_vL32b_pi";
28426let DecoderNamespace = "EXT_mmvec";
28427let Constraints = "$Rx32 = $Rx32in";
28428}
28429def V6_vL32b_pred_ppu : HInst<
28430(outs HvxVR:$Vd32, IntRegs:$Rx32),
28431(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28432"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28433tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28434let Inst{10-5} = 0b000010;
28435let Inst{31-21} = 0b00101011100;
28436let isPredicated = 1;
28437let hasNewValue = 1;
28438let opNewValue = 0;
28439let addrMode = PostInc;
28440let accessSize = HVXVectorAccess;
28441let isCVLoad = 1;
28442let isCVI = 1;
28443let mayLoad = 1;
28444let isRestrictNoSlot1Store = 1;
28445let BaseOpcode = "V6_vL32b_ppu";
28446let DecoderNamespace = "EXT_mmvec";
28447let Constraints = "$Rx32 = $Rx32in";
28448}
28449def V6_vL32b_tmp_ai : HInst<
28450(outs HvxVR:$Vd32),
28451(ins IntRegs:$Rt32, s4_0Imm:$Ii),
28452"$Vd32.tmp = vmem($Rt32+#$Ii)",
28453tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28454let Inst{7-5} = 0b010;
28455let Inst{12-11} = 0b00;
28456let Inst{31-21} = 0b00101000000;
28457let hasNewValue = 1;
28458let opNewValue = 0;
28459let addrMode = BaseImmOffset;
28460let accessSize = HVXVectorAccess;
28461let isCVLoad = 1;
28462let isCVI = 1;
28463let hasHvxTmp = 1;
28464let mayLoad = 1;
28465let isRestrictNoSlot1Store = 1;
28466let BaseOpcode = "V6_vL32b_tmp_ai";
28467let CextOpcode = "V6_vL32b_tmp";
28468let isPredicable = 1;
28469let DecoderNamespace = "EXT_mmvec";
28470}
28471def V6_vL32b_tmp_npred_ai : HInst<
28472(outs HvxVR:$Vd32),
28473(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28474"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28475tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28476let Inst{7-5} = 0b111;
28477let Inst{31-21} = 0b00101000100;
28478let isPredicated = 1;
28479let isPredicatedFalse = 1;
28480let hasNewValue = 1;
28481let opNewValue = 0;
28482let addrMode = BaseImmOffset;
28483let accessSize = HVXVectorAccess;
28484let isCVLoad = 1;
28485let isCVI = 1;
28486let hasHvxTmp = 1;
28487let mayLoad = 1;
28488let isRestrictNoSlot1Store = 1;
28489let BaseOpcode = "V6_vL32b_tmp_ai";
28490let DecoderNamespace = "EXT_mmvec";
28491}
28492def V6_vL32b_tmp_npred_pi : HInst<
28493(outs HvxVR:$Vd32, IntRegs:$Rx32),
28494(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28495"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28496tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28497let Inst{7-5} = 0b111;
28498let Inst{13-13} = 0b0;
28499let Inst{31-21} = 0b00101001100;
28500let isPredicated = 1;
28501let isPredicatedFalse = 1;
28502let hasNewValue = 1;
28503let opNewValue = 0;
28504let addrMode = PostInc;
28505let accessSize = HVXVectorAccess;
28506let isCVLoad = 1;
28507let isCVI = 1;
28508let hasHvxTmp = 1;
28509let mayLoad = 1;
28510let isRestrictNoSlot1Store = 1;
28511let BaseOpcode = "V6_vL32b_tmp_pi";
28512let DecoderNamespace = "EXT_mmvec";
28513let Constraints = "$Rx32 = $Rx32in";
28514}
28515def V6_vL32b_tmp_npred_ppu : HInst<
28516(outs HvxVR:$Vd32, IntRegs:$Rx32),
28517(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28518"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28519tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28520let Inst{10-5} = 0b000111;
28521let Inst{31-21} = 0b00101011100;
28522let isPredicated = 1;
28523let isPredicatedFalse = 1;
28524let hasNewValue = 1;
28525let opNewValue = 0;
28526let addrMode = PostInc;
28527let accessSize = HVXVectorAccess;
28528let isCVLoad = 1;
28529let isCVI = 1;
28530let hasHvxTmp = 1;
28531let mayLoad = 1;
28532let isRestrictNoSlot1Store = 1;
28533let BaseOpcode = "V6_vL32b_tmp_ppu";
28534let DecoderNamespace = "EXT_mmvec";
28535let Constraints = "$Rx32 = $Rx32in";
28536}
28537def V6_vL32b_tmp_pi : HInst<
28538(outs HvxVR:$Vd32, IntRegs:$Rx32),
28539(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28540"$Vd32.tmp = vmem($Rx32++#$Ii)",
28541tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28542let Inst{7-5} = 0b010;
28543let Inst{13-11} = 0b000;
28544let Inst{31-21} = 0b00101001000;
28545let hasNewValue = 1;
28546let opNewValue = 0;
28547let addrMode = PostInc;
28548let accessSize = HVXVectorAccess;
28549let isCVLoad = 1;
28550let isCVI = 1;
28551let hasHvxTmp = 1;
28552let mayLoad = 1;
28553let isRestrictNoSlot1Store = 1;
28554let BaseOpcode = "V6_vL32b_tmp_pi";
28555let CextOpcode = "V6_vL32b_tmp";
28556let isPredicable = 1;
28557let DecoderNamespace = "EXT_mmvec";
28558let Constraints = "$Rx32 = $Rx32in";
28559}
28560def V6_vL32b_tmp_ppu : HInst<
28561(outs HvxVR:$Vd32, IntRegs:$Rx32),
28562(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28563"$Vd32.tmp = vmem($Rx32++$Mu2)",
28564tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28565let Inst{12-5} = 0b00000010;
28566let Inst{31-21} = 0b00101011000;
28567let hasNewValue = 1;
28568let opNewValue = 0;
28569let addrMode = PostInc;
28570let accessSize = HVXVectorAccess;
28571let isCVLoad = 1;
28572let isCVI = 1;
28573let hasHvxTmp = 1;
28574let mayLoad = 1;
28575let isRestrictNoSlot1Store = 1;
28576let BaseOpcode = "V6_vL32b_tmp_ppu";
28577let isPredicable = 1;
28578let DecoderNamespace = "EXT_mmvec";
28579let Constraints = "$Rx32 = $Rx32in";
28580}
28581def V6_vL32b_tmp_pred_ai : HInst<
28582(outs HvxVR:$Vd32),
28583(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28584"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28585tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28586let Inst{7-5} = 0b110;
28587let Inst{31-21} = 0b00101000100;
28588let isPredicated = 1;
28589let hasNewValue = 1;
28590let opNewValue = 0;
28591let addrMode = BaseImmOffset;
28592let accessSize = HVXVectorAccess;
28593let isCVLoad = 1;
28594let isCVI = 1;
28595let hasHvxTmp = 1;
28596let mayLoad = 1;
28597let isRestrictNoSlot1Store = 1;
28598let BaseOpcode = "V6_vL32b_tmp_ai";
28599let DecoderNamespace = "EXT_mmvec";
28600}
28601def V6_vL32b_tmp_pred_pi : HInst<
28602(outs HvxVR:$Vd32, IntRegs:$Rx32),
28603(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28604"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28605tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28606let Inst{7-5} = 0b110;
28607let Inst{13-13} = 0b0;
28608let Inst{31-21} = 0b00101001100;
28609let isPredicated = 1;
28610let hasNewValue = 1;
28611let opNewValue = 0;
28612let addrMode = PostInc;
28613let accessSize = HVXVectorAccess;
28614let isCVLoad = 1;
28615let isCVI = 1;
28616let hasHvxTmp = 1;
28617let mayLoad = 1;
28618let isRestrictNoSlot1Store = 1;
28619let BaseOpcode = "V6_vL32b_tmp_pi";
28620let DecoderNamespace = "EXT_mmvec";
28621let Constraints = "$Rx32 = $Rx32in";
28622}
28623def V6_vL32b_tmp_pred_ppu : HInst<
28624(outs HvxVR:$Vd32, IntRegs:$Rx32),
28625(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28626"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28627tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28628let Inst{10-5} = 0b000110;
28629let Inst{31-21} = 0b00101011100;
28630let isPredicated = 1;
28631let hasNewValue = 1;
28632let opNewValue = 0;
28633let addrMode = PostInc;
28634let accessSize = HVXVectorAccess;
28635let isCVLoad = 1;
28636let isCVI = 1;
28637let hasHvxTmp = 1;
28638let mayLoad = 1;
28639let isRestrictNoSlot1Store = 1;
28640let BaseOpcode = "V6_vL32b_tmp_ppu";
28641let DecoderNamespace = "EXT_mmvec";
28642let Constraints = "$Rx32 = $Rx32in";
28643}
28644def V6_vS32Ub_ai : HInst<
28645(outs),
28646(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28647"vmemu($Rt32+#$Ii) = $Vs32",
28648tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28649let Inst{7-5} = 0b111;
28650let Inst{12-11} = 0b00;
28651let Inst{31-21} = 0b00101000001;
28652let addrMode = BaseImmOffset;
28653let accessSize = HVXVectorAccess;
28654let isCVI = 1;
28655let mayStore = 1;
28656let BaseOpcode = "V6_vS32Ub_ai";
28657let CextOpcode = "V6_vS32Ub";
28658let isPredicable = 1;
28659let DecoderNamespace = "EXT_mmvec";
28660}
28661def V6_vS32Ub_npred_ai : HInst<
28662(outs),
28663(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28664"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28665tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28666let Inst{7-5} = 0b111;
28667let Inst{31-21} = 0b00101000101;
28668let isPredicated = 1;
28669let isPredicatedFalse = 1;
28670let addrMode = BaseImmOffset;
28671let accessSize = HVXVectorAccess;
28672let isCVI = 1;
28673let mayStore = 1;
28674let BaseOpcode = "V6_vS32Ub_ai";
28675let DecoderNamespace = "EXT_mmvec";
28676}
28677def V6_vS32Ub_npred_pi : HInst<
28678(outs IntRegs:$Rx32),
28679(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28680"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28681tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28682let Inst{7-5} = 0b111;
28683let Inst{13-13} = 0b0;
28684let Inst{31-21} = 0b00101001101;
28685let isPredicated = 1;
28686let isPredicatedFalse = 1;
28687let addrMode = PostInc;
28688let accessSize = HVXVectorAccess;
28689let isCVI = 1;
28690let mayStore = 1;
28691let BaseOpcode = "V6_vS32Ub_pi";
28692let DecoderNamespace = "EXT_mmvec";
28693let Constraints = "$Rx32 = $Rx32in";
28694}
28695def V6_vS32Ub_npred_ppu : HInst<
28696(outs IntRegs:$Rx32),
28697(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28698"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28699tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28700let Inst{10-5} = 0b000111;
28701let Inst{31-21} = 0b00101011101;
28702let isPredicated = 1;
28703let isPredicatedFalse = 1;
28704let addrMode = PostInc;
28705let accessSize = HVXVectorAccess;
28706let isCVI = 1;
28707let mayStore = 1;
28708let BaseOpcode = "V6_vS32Ub_ppu";
28709let DecoderNamespace = "EXT_mmvec";
28710let Constraints = "$Rx32 = $Rx32in";
28711}
28712def V6_vS32Ub_pi : HInst<
28713(outs IntRegs:$Rx32),
28714(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28715"vmemu($Rx32++#$Ii) = $Vs32",
28716tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28717let Inst{7-5} = 0b111;
28718let Inst{13-11} = 0b000;
28719let Inst{31-21} = 0b00101001001;
28720let addrMode = PostInc;
28721let accessSize = HVXVectorAccess;
28722let isCVI = 1;
28723let mayStore = 1;
28724let BaseOpcode = "V6_vS32Ub_pi";
28725let CextOpcode = "V6_vS32Ub";
28726let isPredicable = 1;
28727let DecoderNamespace = "EXT_mmvec";
28728let Constraints = "$Rx32 = $Rx32in";
28729}
28730def V6_vS32Ub_ppu : HInst<
28731(outs IntRegs:$Rx32),
28732(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28733"vmemu($Rx32++$Mu2) = $Vs32",
28734tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28735let Inst{12-5} = 0b00000111;
28736let Inst{31-21} = 0b00101011001;
28737let addrMode = PostInc;
28738let accessSize = HVXVectorAccess;
28739let isCVI = 1;
28740let mayStore = 1;
28741let BaseOpcode = "V6_vS32Ub_ppu";
28742let isPredicable = 1;
28743let DecoderNamespace = "EXT_mmvec";
28744let Constraints = "$Rx32 = $Rx32in";
28745}
28746def V6_vS32Ub_pred_ai : HInst<
28747(outs),
28748(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28749"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28750tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28751let Inst{7-5} = 0b110;
28752let Inst{31-21} = 0b00101000101;
28753let isPredicated = 1;
28754let addrMode = BaseImmOffset;
28755let accessSize = HVXVectorAccess;
28756let isCVI = 1;
28757let mayStore = 1;
28758let BaseOpcode = "V6_vS32Ub_ai";
28759let DecoderNamespace = "EXT_mmvec";
28760}
28761def V6_vS32Ub_pred_pi : HInst<
28762(outs IntRegs:$Rx32),
28763(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28764"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28765tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28766let Inst{7-5} = 0b110;
28767let Inst{13-13} = 0b0;
28768let Inst{31-21} = 0b00101001101;
28769let isPredicated = 1;
28770let addrMode = PostInc;
28771let accessSize = HVXVectorAccess;
28772let isCVI = 1;
28773let mayStore = 1;
28774let BaseOpcode = "V6_vS32Ub_pi";
28775let DecoderNamespace = "EXT_mmvec";
28776let Constraints = "$Rx32 = $Rx32in";
28777}
28778def V6_vS32Ub_pred_ppu : HInst<
28779(outs IntRegs:$Rx32),
28780(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28781"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28782tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28783let Inst{10-5} = 0b000110;
28784let Inst{31-21} = 0b00101011101;
28785let isPredicated = 1;
28786let addrMode = PostInc;
28787let accessSize = HVXVectorAccess;
28788let isCVI = 1;
28789let mayStore = 1;
28790let BaseOpcode = "V6_vS32Ub_ppu";
28791let DecoderNamespace = "EXT_mmvec";
28792let Constraints = "$Rx32 = $Rx32in";
28793}
28794def V6_vS32b_ai : HInst<
28795(outs),
28796(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28797"vmem($Rt32+#$Ii) = $Vs32",
28798tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28799let Inst{7-5} = 0b000;
28800let Inst{12-11} = 0b00;
28801let Inst{31-21} = 0b00101000001;
28802let addrMode = BaseImmOffset;
28803let accessSize = HVXVectorAccess;
28804let isCVI = 1;
28805let mayStore = 1;
28806let BaseOpcode = "V6_vS32b_ai";
28807let CextOpcode = "V6_vS32b";
28808let isNVStorable = 1;
28809let isPredicable = 1;
28810let DecoderNamespace = "EXT_mmvec";
28811}
28812def V6_vS32b_new_ai : HInst<
28813(outs),
28814(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28815"vmem($Rt32+#$Ii) = $Os8.new",
28816tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28817let Inst{7-3} = 0b00100;
28818let Inst{12-11} = 0b00;
28819let Inst{31-21} = 0b00101000001;
28820let addrMode = BaseImmOffset;
28821let accessSize = HVXVectorAccess;
28822let isNVStore = 1;
28823let isCVI = 1;
28824let CVINew = 1;
28825let isNewValue = 1;
28826let mayStore = 1;
28827let BaseOpcode = "V6_vS32b_ai";
28828let CextOpcode = "V6_vS32b_new";
28829let isPredicable = 1;
28830let DecoderNamespace = "EXT_mmvec";
28831let opNewValue = 2;
28832}
28833def V6_vS32b_new_npred_ai : HInst<
28834(outs),
28835(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28836"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28837tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28838let Inst{7-3} = 0b01101;
28839let Inst{31-21} = 0b00101000101;
28840let isPredicated = 1;
28841let isPredicatedFalse = 1;
28842let addrMode = BaseImmOffset;
28843let accessSize = HVXVectorAccess;
28844let isNVStore = 1;
28845let isCVI = 1;
28846let CVINew = 1;
28847let isNewValue = 1;
28848let mayStore = 1;
28849let BaseOpcode = "V6_vS32b_ai";
28850let DecoderNamespace = "EXT_mmvec";
28851let opNewValue = 3;
28852}
28853def V6_vS32b_new_npred_pi : HInst<
28854(outs IntRegs:$Rx32),
28855(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28856"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28857tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28858let Inst{7-3} = 0b01101;
28859let Inst{13-13} = 0b0;
28860let Inst{31-21} = 0b00101001101;
28861let isPredicated = 1;
28862let isPredicatedFalse = 1;
28863let addrMode = PostInc;
28864let accessSize = HVXVectorAccess;
28865let isNVStore = 1;
28866let isCVI = 1;
28867let CVINew = 1;
28868let isNewValue = 1;
28869let mayStore = 1;
28870let BaseOpcode = "V6_vS32b_pi";
28871let DecoderNamespace = "EXT_mmvec";
28872let opNewValue = 4;
28873let Constraints = "$Rx32 = $Rx32in";
28874}
28875def V6_vS32b_new_npred_ppu : HInst<
28876(outs IntRegs:$Rx32),
28877(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28878"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28879tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28880let Inst{10-3} = 0b00001101;
28881let Inst{31-21} = 0b00101011101;
28882let isPredicated = 1;
28883let isPredicatedFalse = 1;
28884let addrMode = PostInc;
28885let accessSize = HVXVectorAccess;
28886let isNVStore = 1;
28887let isCVI = 1;
28888let CVINew = 1;
28889let isNewValue = 1;
28890let mayStore = 1;
28891let BaseOpcode = "V6_vS32b_ppu";
28892let DecoderNamespace = "EXT_mmvec";
28893let opNewValue = 4;
28894let Constraints = "$Rx32 = $Rx32in";
28895}
28896def V6_vS32b_new_pi : HInst<
28897(outs IntRegs:$Rx32),
28898(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28899"vmem($Rx32++#$Ii) = $Os8.new",
28900tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28901let Inst{7-3} = 0b00100;
28902let Inst{13-11} = 0b000;
28903let Inst{31-21} = 0b00101001001;
28904let addrMode = PostInc;
28905let accessSize = HVXVectorAccess;
28906let isNVStore = 1;
28907let isCVI = 1;
28908let CVINew = 1;
28909let isNewValue = 1;
28910let mayStore = 1;
28911let BaseOpcode = "V6_vS32b_pi";
28912let CextOpcode = "V6_vS32b_new";
28913let isPredicable = 1;
28914let DecoderNamespace = "EXT_mmvec";
28915let opNewValue = 3;
28916let Constraints = "$Rx32 = $Rx32in";
28917}
28918def V6_vS32b_new_ppu : HInst<
28919(outs IntRegs:$Rx32),
28920(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28921"vmem($Rx32++$Mu2) = $Os8.new",
28922tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28923let Inst{12-3} = 0b0000000100;
28924let Inst{31-21} = 0b00101011001;
28925let addrMode = PostInc;
28926let accessSize = HVXVectorAccess;
28927let isNVStore = 1;
28928let isCVI = 1;
28929let CVINew = 1;
28930let isNewValue = 1;
28931let mayStore = 1;
28932let BaseOpcode = "V6_vS32b_ppu";
28933let isPredicable = 1;
28934let DecoderNamespace = "EXT_mmvec";
28935let opNewValue = 3;
28936let Constraints = "$Rx32 = $Rx32in";
28937}
28938def V6_vS32b_new_pred_ai : HInst<
28939(outs),
28940(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28941"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28942tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28943let Inst{7-3} = 0b01000;
28944let Inst{31-21} = 0b00101000101;
28945let isPredicated = 1;
28946let addrMode = BaseImmOffset;
28947let accessSize = HVXVectorAccess;
28948let isNVStore = 1;
28949let isCVI = 1;
28950let CVINew = 1;
28951let isNewValue = 1;
28952let mayStore = 1;
28953let BaseOpcode = "V6_vS32b_ai";
28954let DecoderNamespace = "EXT_mmvec";
28955let opNewValue = 3;
28956}
28957def V6_vS32b_new_pred_pi : HInst<
28958(outs IntRegs:$Rx32),
28959(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28960"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28961tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28962let Inst{7-3} = 0b01000;
28963let Inst{13-13} = 0b0;
28964let Inst{31-21} = 0b00101001101;
28965let isPredicated = 1;
28966let addrMode = PostInc;
28967let accessSize = HVXVectorAccess;
28968let isNVStore = 1;
28969let isCVI = 1;
28970let CVINew = 1;
28971let isNewValue = 1;
28972let mayStore = 1;
28973let BaseOpcode = "V6_vS32b_pi";
28974let DecoderNamespace = "EXT_mmvec";
28975let opNewValue = 4;
28976let Constraints = "$Rx32 = $Rx32in";
28977}
28978def V6_vS32b_new_pred_ppu : HInst<
28979(outs IntRegs:$Rx32),
28980(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28981"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28982tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28983let Inst{10-3} = 0b00001000;
28984let Inst{31-21} = 0b00101011101;
28985let isPredicated = 1;
28986let addrMode = PostInc;
28987let accessSize = HVXVectorAccess;
28988let isNVStore = 1;
28989let isCVI = 1;
28990let CVINew = 1;
28991let isNewValue = 1;
28992let mayStore = 1;
28993let BaseOpcode = "V6_vS32b_ppu";
28994let DecoderNamespace = "EXT_mmvec";
28995let opNewValue = 4;
28996let Constraints = "$Rx32 = $Rx32in";
28997}
28998def V6_vS32b_npred_ai : HInst<
28999(outs),
29000(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29001"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
29002tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29003let Inst{7-5} = 0b001;
29004let Inst{31-21} = 0b00101000101;
29005let isPredicated = 1;
29006let isPredicatedFalse = 1;
29007let addrMode = BaseImmOffset;
29008let accessSize = HVXVectorAccess;
29009let isCVI = 1;
29010let mayStore = 1;
29011let BaseOpcode = "V6_vS32b_ai";
29012let isNVStorable = 1;
29013let DecoderNamespace = "EXT_mmvec";
29014}
29015def V6_vS32b_npred_pi : HInst<
29016(outs IntRegs:$Rx32),
29017(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29018"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
29019tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29020let Inst{7-5} = 0b001;
29021let Inst{13-13} = 0b0;
29022let Inst{31-21} = 0b00101001101;
29023let isPredicated = 1;
29024let isPredicatedFalse = 1;
29025let addrMode = PostInc;
29026let accessSize = HVXVectorAccess;
29027let isCVI = 1;
29028let mayStore = 1;
29029let BaseOpcode = "V6_vS32b_pi";
29030let isNVStorable = 1;
29031let DecoderNamespace = "EXT_mmvec";
29032let Constraints = "$Rx32 = $Rx32in";
29033}
29034def V6_vS32b_npred_ppu : HInst<
29035(outs IntRegs:$Rx32),
29036(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29037"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29038tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29039let Inst{10-5} = 0b000001;
29040let Inst{31-21} = 0b00101011101;
29041let isPredicated = 1;
29042let isPredicatedFalse = 1;
29043let addrMode = PostInc;
29044let accessSize = HVXVectorAccess;
29045let isCVI = 1;
29046let mayStore = 1;
29047let BaseOpcode = "V6_vS32b_ppu";
29048let isNVStorable = 1;
29049let DecoderNamespace = "EXT_mmvec";
29050let Constraints = "$Rx32 = $Rx32in";
29051}
29052def V6_vS32b_nqpred_ai : HInst<
29053(outs),
29054(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29055"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29056tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29057let Inst{7-5} = 0b001;
29058let Inst{31-21} = 0b00101000100;
29059let addrMode = BaseImmOffset;
29060let accessSize = HVXVectorAccess;
29061let isCVI = 1;
29062let mayStore = 1;
29063let DecoderNamespace = "EXT_mmvec";
29064}
29065def V6_vS32b_nqpred_pi : HInst<
29066(outs IntRegs:$Rx32),
29067(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29068"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29069tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29070let Inst{7-5} = 0b001;
29071let Inst{13-13} = 0b0;
29072let Inst{31-21} = 0b00101001100;
29073let addrMode = PostInc;
29074let accessSize = HVXVectorAccess;
29075let isCVI = 1;
29076let mayStore = 1;
29077let DecoderNamespace = "EXT_mmvec";
29078let Constraints = "$Rx32 = $Rx32in";
29079}
29080def V6_vS32b_nqpred_ppu : HInst<
29081(outs IntRegs:$Rx32),
29082(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29083"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29084tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29085let Inst{10-5} = 0b000001;
29086let Inst{31-21} = 0b00101011100;
29087let addrMode = PostInc;
29088let accessSize = HVXVectorAccess;
29089let isCVI = 1;
29090let mayStore = 1;
29091let DecoderNamespace = "EXT_mmvec";
29092let Constraints = "$Rx32 = $Rx32in";
29093}
29094def V6_vS32b_nt_ai : HInst<
29095(outs),
29096(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29097"vmem($Rt32+#$Ii):nt = $Vs32",
29098tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29099let Inst{7-5} = 0b000;
29100let Inst{12-11} = 0b00;
29101let Inst{31-21} = 0b00101000011;
29102let addrMode = BaseImmOffset;
29103let accessSize = HVXVectorAccess;
29104let isCVI = 1;
29105let isNonTemporal = 1;
29106let mayStore = 1;
29107let BaseOpcode = "V6_vS32b_ai";
29108let CextOpcode = "V6_vS32b_nt";
29109let isNVStorable = 1;
29110let isPredicable = 1;
29111let DecoderNamespace = "EXT_mmvec";
29112}
29113def V6_vS32b_nt_new_ai : HInst<
29114(outs),
29115(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29116"vmem($Rt32+#$Ii):nt = $Os8.new",
29117tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29118let Inst{7-3} = 0b00100;
29119let Inst{12-11} = 0b00;
29120let Inst{31-21} = 0b00101000011;
29121let addrMode = BaseImmOffset;
29122let accessSize = HVXVectorAccess;
29123let isNVStore = 1;
29124let isCVI = 1;
29125let CVINew = 1;
29126let isNewValue = 1;
29127let isNonTemporal = 1;
29128let mayStore = 1;
29129let BaseOpcode = "V6_vS32b_ai";
29130let CextOpcode = "V6_vS32b_nt_new";
29131let isPredicable = 1;
29132let DecoderNamespace = "EXT_mmvec";
29133let opNewValue = 2;
29134}
29135def V6_vS32b_nt_new_npred_ai : HInst<
29136(outs),
29137(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29138"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29139tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29140let Inst{7-3} = 0b01111;
29141let Inst{31-21} = 0b00101000111;
29142let isPredicated = 1;
29143let isPredicatedFalse = 1;
29144let addrMode = BaseImmOffset;
29145let accessSize = HVXVectorAccess;
29146let isNVStore = 1;
29147let isCVI = 1;
29148let CVINew = 1;
29149let isNewValue = 1;
29150let isNonTemporal = 1;
29151let mayStore = 1;
29152let BaseOpcode = "V6_vS32b_ai";
29153let DecoderNamespace = "EXT_mmvec";
29154let opNewValue = 3;
29155}
29156def V6_vS32b_nt_new_npred_pi : HInst<
29157(outs IntRegs:$Rx32),
29158(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29159"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29160tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29161let Inst{7-3} = 0b01111;
29162let Inst{13-13} = 0b0;
29163let Inst{31-21} = 0b00101001111;
29164let isPredicated = 1;
29165let isPredicatedFalse = 1;
29166let addrMode = PostInc;
29167let accessSize = HVXVectorAccess;
29168let isNVStore = 1;
29169let isCVI = 1;
29170let CVINew = 1;
29171let isNewValue = 1;
29172let isNonTemporal = 1;
29173let mayStore = 1;
29174let BaseOpcode = "V6_vS32b_pi";
29175let DecoderNamespace = "EXT_mmvec";
29176let opNewValue = 4;
29177let Constraints = "$Rx32 = $Rx32in";
29178}
29179def V6_vS32b_nt_new_npred_ppu : HInst<
29180(outs IntRegs:$Rx32),
29181(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29182"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29183tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29184let Inst{10-3} = 0b00001111;
29185let Inst{31-21} = 0b00101011111;
29186let isPredicated = 1;
29187let isPredicatedFalse = 1;
29188let addrMode = PostInc;
29189let accessSize = HVXVectorAccess;
29190let isNVStore = 1;
29191let isCVI = 1;
29192let CVINew = 1;
29193let isNewValue = 1;
29194let isNonTemporal = 1;
29195let mayStore = 1;
29196let BaseOpcode = "V6_vS32b_ppu";
29197let DecoderNamespace = "EXT_mmvec";
29198let opNewValue = 4;
29199let Constraints = "$Rx32 = $Rx32in";
29200}
29201def V6_vS32b_nt_new_pi : HInst<
29202(outs IntRegs:$Rx32),
29203(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29204"vmem($Rx32++#$Ii):nt = $Os8.new",
29205tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29206let Inst{7-3} = 0b00100;
29207let Inst{13-11} = 0b000;
29208let Inst{31-21} = 0b00101001011;
29209let addrMode = PostInc;
29210let accessSize = HVXVectorAccess;
29211let isNVStore = 1;
29212let isCVI = 1;
29213let CVINew = 1;
29214let isNewValue = 1;
29215let isNonTemporal = 1;
29216let mayStore = 1;
29217let BaseOpcode = "V6_vS32b_pi";
29218let CextOpcode = "V6_vS32b_nt_new";
29219let isPredicable = 1;
29220let DecoderNamespace = "EXT_mmvec";
29221let opNewValue = 3;
29222let Constraints = "$Rx32 = $Rx32in";
29223}
29224def V6_vS32b_nt_new_ppu : HInst<
29225(outs IntRegs:$Rx32),
29226(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29227"vmem($Rx32++$Mu2):nt = $Os8.new",
29228tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29229let Inst{12-3} = 0b0000000100;
29230let Inst{31-21} = 0b00101011011;
29231let addrMode = PostInc;
29232let accessSize = HVXVectorAccess;
29233let isNVStore = 1;
29234let isCVI = 1;
29235let CVINew = 1;
29236let isNewValue = 1;
29237let isNonTemporal = 1;
29238let mayStore = 1;
29239let BaseOpcode = "V6_vS32b_ppu";
29240let isPredicable = 1;
29241let DecoderNamespace = "EXT_mmvec";
29242let opNewValue = 3;
29243let Constraints = "$Rx32 = $Rx32in";
29244}
29245def V6_vS32b_nt_new_pred_ai : HInst<
29246(outs),
29247(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29248"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29249tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29250let Inst{7-3} = 0b01010;
29251let Inst{31-21} = 0b00101000111;
29252let isPredicated = 1;
29253let addrMode = BaseImmOffset;
29254let accessSize = HVXVectorAccess;
29255let isNVStore = 1;
29256let isCVI = 1;
29257let CVINew = 1;
29258let isNewValue = 1;
29259let isNonTemporal = 1;
29260let mayStore = 1;
29261let BaseOpcode = "V6_vS32b_ai";
29262let DecoderNamespace = "EXT_mmvec";
29263let opNewValue = 3;
29264}
29265def V6_vS32b_nt_new_pred_pi : HInst<
29266(outs IntRegs:$Rx32),
29267(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29268"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29269tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29270let Inst{7-3} = 0b01010;
29271let Inst{13-13} = 0b0;
29272let Inst{31-21} = 0b00101001111;
29273let isPredicated = 1;
29274let addrMode = PostInc;
29275let accessSize = HVXVectorAccess;
29276let isNVStore = 1;
29277let isCVI = 1;
29278let CVINew = 1;
29279let isNewValue = 1;
29280let isNonTemporal = 1;
29281let mayStore = 1;
29282let BaseOpcode = "V6_vS32b_pi";
29283let DecoderNamespace = "EXT_mmvec";
29284let opNewValue = 4;
29285let Constraints = "$Rx32 = $Rx32in";
29286}
29287def V6_vS32b_nt_new_pred_ppu : HInst<
29288(outs IntRegs:$Rx32),
29289(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29290"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29291tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29292let Inst{10-3} = 0b00001010;
29293let Inst{31-21} = 0b00101011111;
29294let isPredicated = 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_npred_ai : HInst<
29309(outs),
29310(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29311"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29312tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29313let Inst{7-5} = 0b001;
29314let Inst{31-21} = 0b00101000111;
29315let isPredicated = 1;
29316let isPredicatedFalse = 1;
29317let addrMode = BaseImmOffset;
29318let accessSize = HVXVectorAccess;
29319let isCVI = 1;
29320let isNonTemporal = 1;
29321let mayStore = 1;
29322let BaseOpcode = "V6_vS32b_ai";
29323let isNVStorable = 1;
29324let DecoderNamespace = "EXT_mmvec";
29325}
29326def V6_vS32b_nt_npred_pi : HInst<
29327(outs IntRegs:$Rx32),
29328(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29329"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29330tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29331let Inst{7-5} = 0b001;
29332let Inst{13-13} = 0b0;
29333let Inst{31-21} = 0b00101001111;
29334let isPredicated = 1;
29335let isPredicatedFalse = 1;
29336let addrMode = PostInc;
29337let accessSize = HVXVectorAccess;
29338let isCVI = 1;
29339let isNonTemporal = 1;
29340let mayStore = 1;
29341let BaseOpcode = "V6_vS32b_pi";
29342let isNVStorable = 1;
29343let DecoderNamespace = "EXT_mmvec";
29344let Constraints = "$Rx32 = $Rx32in";
29345}
29346def V6_vS32b_nt_npred_ppu : HInst<
29347(outs IntRegs:$Rx32),
29348(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29349"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29350tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29351let Inst{10-5} = 0b000001;
29352let Inst{31-21} = 0b00101011111;
29353let isPredicated = 1;
29354let isPredicatedFalse = 1;
29355let addrMode = PostInc;
29356let accessSize = HVXVectorAccess;
29357let isCVI = 1;
29358let isNonTemporal = 1;
29359let mayStore = 1;
29360let BaseOpcode = "V6_vS32b_ppu";
29361let isNVStorable = 1;
29362let DecoderNamespace = "EXT_mmvec";
29363let Constraints = "$Rx32 = $Rx32in";
29364}
29365def V6_vS32b_nt_nqpred_ai : HInst<
29366(outs),
29367(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29368"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29369tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29370let Inst{7-5} = 0b001;
29371let Inst{31-21} = 0b00101000110;
29372let addrMode = BaseImmOffset;
29373let accessSize = HVXVectorAccess;
29374let isCVI = 1;
29375let isNonTemporal = 1;
29376let mayStore = 1;
29377let DecoderNamespace = "EXT_mmvec";
29378}
29379def V6_vS32b_nt_nqpred_pi : HInst<
29380(outs IntRegs:$Rx32),
29381(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29382"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29383tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29384let Inst{7-5} = 0b001;
29385let Inst{13-13} = 0b0;
29386let Inst{31-21} = 0b00101001110;
29387let addrMode = PostInc;
29388let accessSize = HVXVectorAccess;
29389let isCVI = 1;
29390let isNonTemporal = 1;
29391let mayStore = 1;
29392let DecoderNamespace = "EXT_mmvec";
29393let Constraints = "$Rx32 = $Rx32in";
29394}
29395def V6_vS32b_nt_nqpred_ppu : HInst<
29396(outs IntRegs:$Rx32),
29397(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29398"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29399tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29400let Inst{10-5} = 0b000001;
29401let Inst{31-21} = 0b00101011110;
29402let addrMode = PostInc;
29403let accessSize = HVXVectorAccess;
29404let isCVI = 1;
29405let isNonTemporal = 1;
29406let mayStore = 1;
29407let DecoderNamespace = "EXT_mmvec";
29408let Constraints = "$Rx32 = $Rx32in";
29409}
29410def V6_vS32b_nt_pi : HInst<
29411(outs IntRegs:$Rx32),
29412(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29413"vmem($Rx32++#$Ii):nt = $Vs32",
29414tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29415let Inst{7-5} = 0b000;
29416let Inst{13-11} = 0b000;
29417let Inst{31-21} = 0b00101001011;
29418let addrMode = PostInc;
29419let accessSize = HVXVectorAccess;
29420let isCVI = 1;
29421let isNonTemporal = 1;
29422let mayStore = 1;
29423let BaseOpcode = "V6_vS32b_pi";
29424let CextOpcode = "V6_vS32b_nt";
29425let isNVStorable = 1;
29426let isPredicable = 1;
29427let DecoderNamespace = "EXT_mmvec";
29428let Constraints = "$Rx32 = $Rx32in";
29429}
29430def V6_vS32b_nt_ppu : HInst<
29431(outs IntRegs:$Rx32),
29432(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29433"vmem($Rx32++$Mu2):nt = $Vs32",
29434tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29435let Inst{12-5} = 0b00000000;
29436let Inst{31-21} = 0b00101011011;
29437let addrMode = PostInc;
29438let accessSize = HVXVectorAccess;
29439let isCVI = 1;
29440let isNonTemporal = 1;
29441let mayStore = 1;
29442let BaseOpcode = "V6_vS32b_ppu";
29443let isNVStorable = 1;
29444let isPredicable = 1;
29445let DecoderNamespace = "EXT_mmvec";
29446let Constraints = "$Rx32 = $Rx32in";
29447}
29448def V6_vS32b_nt_pred_ai : HInst<
29449(outs),
29450(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29451"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29452tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29453let Inst{7-5} = 0b000;
29454let Inst{31-21} = 0b00101000111;
29455let isPredicated = 1;
29456let addrMode = BaseImmOffset;
29457let accessSize = HVXVectorAccess;
29458let isCVI = 1;
29459let isNonTemporal = 1;
29460let mayStore = 1;
29461let BaseOpcode = "V6_vS32b_ai";
29462let isNVStorable = 1;
29463let DecoderNamespace = "EXT_mmvec";
29464}
29465def V6_vS32b_nt_pred_pi : HInst<
29466(outs IntRegs:$Rx32),
29467(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29468"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29469tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29470let Inst{7-5} = 0b000;
29471let Inst{13-13} = 0b0;
29472let Inst{31-21} = 0b00101001111;
29473let isPredicated = 1;
29474let addrMode = PostInc;
29475let accessSize = HVXVectorAccess;
29476let isCVI = 1;
29477let isNonTemporal = 1;
29478let mayStore = 1;
29479let BaseOpcode = "V6_vS32b_pi";
29480let isNVStorable = 1;
29481let DecoderNamespace = "EXT_mmvec";
29482let Constraints = "$Rx32 = $Rx32in";
29483}
29484def V6_vS32b_nt_pred_ppu : HInst<
29485(outs IntRegs:$Rx32),
29486(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29487"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29488tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29489let Inst{10-5} = 0b000000;
29490let Inst{31-21} = 0b00101011111;
29491let isPredicated = 1;
29492let addrMode = PostInc;
29493let accessSize = HVXVectorAccess;
29494let isCVI = 1;
29495let isNonTemporal = 1;
29496let mayStore = 1;
29497let BaseOpcode = "V6_vS32b_ppu";
29498let isNVStorable = 1;
29499let DecoderNamespace = "EXT_mmvec";
29500let Constraints = "$Rx32 = $Rx32in";
29501}
29502def V6_vS32b_nt_qpred_ai : HInst<
29503(outs),
29504(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29505"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29506tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29507let Inst{7-5} = 0b000;
29508let Inst{31-21} = 0b00101000110;
29509let addrMode = BaseImmOffset;
29510let accessSize = HVXVectorAccess;
29511let isCVI = 1;
29512let isNonTemporal = 1;
29513let mayStore = 1;
29514let DecoderNamespace = "EXT_mmvec";
29515}
29516def V6_vS32b_nt_qpred_pi : HInst<
29517(outs IntRegs:$Rx32),
29518(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29519"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29520tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29521let Inst{7-5} = 0b000;
29522let Inst{13-13} = 0b0;
29523let Inst{31-21} = 0b00101001110;
29524let addrMode = PostInc;
29525let accessSize = HVXVectorAccess;
29526let isCVI = 1;
29527let isNonTemporal = 1;
29528let mayStore = 1;
29529let DecoderNamespace = "EXT_mmvec";
29530let Constraints = "$Rx32 = $Rx32in";
29531}
29532def V6_vS32b_nt_qpred_ppu : HInst<
29533(outs IntRegs:$Rx32),
29534(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29535"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29536tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29537let Inst{10-5} = 0b000000;
29538let Inst{31-21} = 0b00101011110;
29539let addrMode = PostInc;
29540let accessSize = HVXVectorAccess;
29541let isCVI = 1;
29542let isNonTemporal = 1;
29543let mayStore = 1;
29544let DecoderNamespace = "EXT_mmvec";
29545let Constraints = "$Rx32 = $Rx32in";
29546}
29547def V6_vS32b_pi : HInst<
29548(outs IntRegs:$Rx32),
29549(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29550"vmem($Rx32++#$Ii) = $Vs32",
29551tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29552let Inst{7-5} = 0b000;
29553let Inst{13-11} = 0b000;
29554let Inst{31-21} = 0b00101001001;
29555let addrMode = PostInc;
29556let accessSize = HVXVectorAccess;
29557let isCVI = 1;
29558let mayStore = 1;
29559let BaseOpcode = "V6_vS32b_pi";
29560let CextOpcode = "V6_vS32b";
29561let isNVStorable = 1;
29562let isPredicable = 1;
29563let DecoderNamespace = "EXT_mmvec";
29564let Constraints = "$Rx32 = $Rx32in";
29565}
29566def V6_vS32b_ppu : HInst<
29567(outs IntRegs:$Rx32),
29568(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29569"vmem($Rx32++$Mu2) = $Vs32",
29570tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29571let Inst{12-5} = 0b00000000;
29572let Inst{31-21} = 0b00101011001;
29573let addrMode = PostInc;
29574let accessSize = HVXVectorAccess;
29575let isCVI = 1;
29576let mayStore = 1;
29577let BaseOpcode = "V6_vS32b_ppu";
29578let isNVStorable = 1;
29579let isPredicable = 1;
29580let DecoderNamespace = "EXT_mmvec";
29581let Constraints = "$Rx32 = $Rx32in";
29582}
29583def V6_vS32b_pred_ai : HInst<
29584(outs),
29585(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29586"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
29587tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29588let Inst{7-5} = 0b000;
29589let Inst{31-21} = 0b00101000101;
29590let isPredicated = 1;
29591let addrMode = BaseImmOffset;
29592let accessSize = HVXVectorAccess;
29593let isCVI = 1;
29594let mayStore = 1;
29595let BaseOpcode = "V6_vS32b_ai";
29596let isNVStorable = 1;
29597let DecoderNamespace = "EXT_mmvec";
29598}
29599def V6_vS32b_pred_pi : HInst<
29600(outs IntRegs:$Rx32),
29601(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29602"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
29603tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29604let Inst{7-5} = 0b000;
29605let Inst{13-13} = 0b0;
29606let Inst{31-21} = 0b00101001101;
29607let isPredicated = 1;
29608let addrMode = PostInc;
29609let accessSize = HVXVectorAccess;
29610let isCVI = 1;
29611let mayStore = 1;
29612let BaseOpcode = "V6_vS32b_pi";
29613let isNVStorable = 1;
29614let DecoderNamespace = "EXT_mmvec";
29615let Constraints = "$Rx32 = $Rx32in";
29616}
29617def V6_vS32b_pred_ppu : HInst<
29618(outs IntRegs:$Rx32),
29619(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29620"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
29621tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29622let Inst{10-5} = 0b000000;
29623let Inst{31-21} = 0b00101011101;
29624let isPredicated = 1;
29625let addrMode = PostInc;
29626let accessSize = HVXVectorAccess;
29627let isCVI = 1;
29628let mayStore = 1;
29629let BaseOpcode = "V6_vS32b_ppu";
29630let isNVStorable = 1;
29631let DecoderNamespace = "EXT_mmvec";
29632let Constraints = "$Rx32 = $Rx32in";
29633}
29634def V6_vS32b_qpred_ai : HInst<
29635(outs),
29636(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29637"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
29638tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29639let Inst{7-5} = 0b000;
29640let Inst{31-21} = 0b00101000100;
29641let addrMode = BaseImmOffset;
29642let accessSize = HVXVectorAccess;
29643let isCVI = 1;
29644let mayStore = 1;
29645let DecoderNamespace = "EXT_mmvec";
29646}
29647def V6_vS32b_qpred_pi : HInst<
29648(outs IntRegs:$Rx32),
29649(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29650"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
29651tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29652let Inst{7-5} = 0b000;
29653let Inst{13-13} = 0b0;
29654let Inst{31-21} = 0b00101001100;
29655let addrMode = PostInc;
29656let accessSize = HVXVectorAccess;
29657let isCVI = 1;
29658let mayStore = 1;
29659let DecoderNamespace = "EXT_mmvec";
29660let Constraints = "$Rx32 = $Rx32in";
29661}
29662def V6_vS32b_qpred_ppu : HInst<
29663(outs IntRegs:$Rx32),
29664(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29665"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
29666tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29667let Inst{10-5} = 0b000000;
29668let Inst{31-21} = 0b00101011100;
29669let addrMode = PostInc;
29670let accessSize = HVXVectorAccess;
29671let isCVI = 1;
29672let mayStore = 1;
29673let DecoderNamespace = "EXT_mmvec";
29674let Constraints = "$Rx32 = $Rx32in";
29675}
29676def V6_vS32b_srls_ai : HInst<
29677(outs),
29678(ins IntRegs:$Rt32, s4_0Imm:$Ii),
29679"vmem($Rt32+#$Ii):scatter_release",
29680tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
29681let Inst{7-0} = 0b00101000;
29682let Inst{12-11} = 0b00;
29683let Inst{31-21} = 0b00101000001;
29684let addrMode = BaseImmOffset;
29685let accessSize = HVXVectorAccess;
29686let isCVI = 1;
29687let CVINew = 1;
29688let mayStore = 1;
29689let DecoderNamespace = "EXT_mmvec";
29690}
29691def V6_vS32b_srls_pi : HInst<
29692(outs IntRegs:$Rx32),
29693(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
29694"vmem($Rx32++#$Ii):scatter_release",
29695tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
29696let Inst{7-0} = 0b00101000;
29697let Inst{13-11} = 0b000;
29698let Inst{31-21} = 0b00101001001;
29699let addrMode = PostInc;
29700let accessSize = HVXVectorAccess;
29701let isCVI = 1;
29702let CVINew = 1;
29703let mayStore = 1;
29704let DecoderNamespace = "EXT_mmvec";
29705let Constraints = "$Rx32 = $Rx32in";
29706}
29707def V6_vS32b_srls_ppu : HInst<
29708(outs IntRegs:$Rx32),
29709(ins IntRegs:$Rx32in, ModRegs:$Mu2),
29710"vmem($Rx32++$Mu2):scatter_release",
29711tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
29712let Inst{12-0} = 0b0000000101000;
29713let Inst{31-21} = 0b00101011001;
29714let addrMode = PostInc;
29715let accessSize = HVXVectorAccess;
29716let isCVI = 1;
29717let CVINew = 1;
29718let mayStore = 1;
29719let DecoderNamespace = "EXT_mmvec";
29720let Constraints = "$Rx32 = $Rx32in";
29721}
29722def V6_vabs_hf : HInst<
29723(outs HvxVR:$Vd32),
29724(ins HvxVR:$Vu32),
29725"$Vd32.hf = vabs($Vu32.hf)",
29726tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29727let Inst{7-5} = 0b100;
29728let Inst{13-13} = 0b1;
29729let Inst{31-16} = 0b0001111000000110;
29730let hasNewValue = 1;
29731let opNewValue = 0;
29732let isCVI = 1;
29733let DecoderNamespace = "EXT_mmvec";
29734}
29735def V6_vabs_sf : HInst<
29736(outs HvxVR:$Vd32),
29737(ins HvxVR:$Vu32),
29738"$Vd32.sf = vabs($Vu32.sf)",
29739tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29740let Inst{7-5} = 0b101;
29741let Inst{13-13} = 0b1;
29742let Inst{31-16} = 0b0001111000000110;
29743let hasNewValue = 1;
29744let opNewValue = 0;
29745let isCVI = 1;
29746let DecoderNamespace = "EXT_mmvec";
29747}
29748def V6_vabsb : HInst<
29749(outs HvxVR:$Vd32),
29750(ins HvxVR:$Vu32),
29751"$Vd32.b = vabs($Vu32.b)",
29752tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29753let Inst{7-5} = 0b100;
29754let Inst{13-13} = 0b0;
29755let Inst{31-16} = 0b0001111000000001;
29756let hasNewValue = 1;
29757let opNewValue = 0;
29758let isCVI = 1;
29759let DecoderNamespace = "EXT_mmvec";
29760}
29761def V6_vabsb_alt : HInst<
29762(outs HvxVR:$Vd32),
29763(ins HvxVR:$Vu32),
29764"$Vd32 = vabsb($Vu32)",
29765PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29766let hasNewValue = 1;
29767let opNewValue = 0;
29768let isCVI = 1;
29769let isPseudo = 1;
29770let isCodeGenOnly = 1;
29771let DecoderNamespace = "EXT_mmvec";
29772}
29773def V6_vabsb_sat : HInst<
29774(outs HvxVR:$Vd32),
29775(ins HvxVR:$Vu32),
29776"$Vd32.b = vabs($Vu32.b):sat",
29777tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29778let Inst{7-5} = 0b101;
29779let Inst{13-13} = 0b0;
29780let Inst{31-16} = 0b0001111000000001;
29781let hasNewValue = 1;
29782let opNewValue = 0;
29783let isCVI = 1;
29784let DecoderNamespace = "EXT_mmvec";
29785}
29786def V6_vabsb_sat_alt : HInst<
29787(outs HvxVR:$Vd32),
29788(ins HvxVR:$Vu32),
29789"$Vd32 = vabsb($Vu32):sat",
29790PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29791let hasNewValue = 1;
29792let opNewValue = 0;
29793let isCVI = 1;
29794let isPseudo = 1;
29795let isCodeGenOnly = 1;
29796let DecoderNamespace = "EXT_mmvec";
29797}
29798def V6_vabsdiffh : HInst<
29799(outs HvxVR:$Vd32),
29800(ins HvxVR:$Vu32, HvxVR:$Vv32),
29801"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29802tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29803let Inst{7-5} = 0b001;
29804let Inst{13-13} = 0b0;
29805let Inst{31-21} = 0b00011100110;
29806let hasNewValue = 1;
29807let opNewValue = 0;
29808let isCVI = 1;
29809let DecoderNamespace = "EXT_mmvec";
29810}
29811def V6_vabsdiffh_alt : HInst<
29812(outs HvxVR:$Vd32),
29813(ins HvxVR:$Vu32, HvxVR:$Vv32),
29814"$Vd32 = vabsdiffh($Vu32,$Vv32)",
29815PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29816let hasNewValue = 1;
29817let opNewValue = 0;
29818let isCVI = 1;
29819let isPseudo = 1;
29820let isCodeGenOnly = 1;
29821let DecoderNamespace = "EXT_mmvec";
29822}
29823def V6_vabsdiffub : HInst<
29824(outs HvxVR:$Vd32),
29825(ins HvxVR:$Vu32, HvxVR:$Vv32),
29826"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29827tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29828let Inst{7-5} = 0b000;
29829let Inst{13-13} = 0b0;
29830let Inst{31-21} = 0b00011100110;
29831let hasNewValue = 1;
29832let opNewValue = 0;
29833let isCVI = 1;
29834let DecoderNamespace = "EXT_mmvec";
29835}
29836def V6_vabsdiffub_alt : HInst<
29837(outs HvxVR:$Vd32),
29838(ins HvxVR:$Vu32, HvxVR:$Vv32),
29839"$Vd32 = vabsdiffub($Vu32,$Vv32)",
29840PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29841let hasNewValue = 1;
29842let opNewValue = 0;
29843let isCVI = 1;
29844let isPseudo = 1;
29845let isCodeGenOnly = 1;
29846let DecoderNamespace = "EXT_mmvec";
29847}
29848def V6_vabsdiffuh : HInst<
29849(outs HvxVR:$Vd32),
29850(ins HvxVR:$Vu32, HvxVR:$Vv32),
29851"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
29852tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29853let Inst{7-5} = 0b010;
29854let Inst{13-13} = 0b0;
29855let Inst{31-21} = 0b00011100110;
29856let hasNewValue = 1;
29857let opNewValue = 0;
29858let isCVI = 1;
29859let DecoderNamespace = "EXT_mmvec";
29860}
29861def V6_vabsdiffuh_alt : HInst<
29862(outs HvxVR:$Vd32),
29863(ins HvxVR:$Vu32, HvxVR:$Vv32),
29864"$Vd32 = vabsdiffuh($Vu32,$Vv32)",
29865PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29866let hasNewValue = 1;
29867let opNewValue = 0;
29868let isCVI = 1;
29869let isPseudo = 1;
29870let isCodeGenOnly = 1;
29871let DecoderNamespace = "EXT_mmvec";
29872}
29873def V6_vabsdiffw : HInst<
29874(outs HvxVR:$Vd32),
29875(ins HvxVR:$Vu32, HvxVR:$Vv32),
29876"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
29877tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29878let Inst{7-5} = 0b011;
29879let Inst{13-13} = 0b0;
29880let Inst{31-21} = 0b00011100110;
29881let hasNewValue = 1;
29882let opNewValue = 0;
29883let isCVI = 1;
29884let DecoderNamespace = "EXT_mmvec";
29885}
29886def V6_vabsdiffw_alt : HInst<
29887(outs HvxVR:$Vd32),
29888(ins HvxVR:$Vu32, HvxVR:$Vv32),
29889"$Vd32 = vabsdiffw($Vu32,$Vv32)",
29890PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29891let hasNewValue = 1;
29892let opNewValue = 0;
29893let isCVI = 1;
29894let isPseudo = 1;
29895let isCodeGenOnly = 1;
29896let DecoderNamespace = "EXT_mmvec";
29897}
29898def V6_vabsh : HInst<
29899(outs HvxVR:$Vd32),
29900(ins HvxVR:$Vu32),
29901"$Vd32.h = vabs($Vu32.h)",
29902tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29903let Inst{7-5} = 0b000;
29904let Inst{13-13} = 0b0;
29905let Inst{31-16} = 0b0001111000000000;
29906let hasNewValue = 1;
29907let opNewValue = 0;
29908let isCVI = 1;
29909let DecoderNamespace = "EXT_mmvec";
29910}
29911def V6_vabsh_alt : HInst<
29912(outs HvxVR:$Vd32),
29913(ins HvxVR:$Vu32),
29914"$Vd32 = vabsh($Vu32)",
29915PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29916let hasNewValue = 1;
29917let opNewValue = 0;
29918let isCVI = 1;
29919let isPseudo = 1;
29920let isCodeGenOnly = 1;
29921let DecoderNamespace = "EXT_mmvec";
29922}
29923def V6_vabsh_sat : HInst<
29924(outs HvxVR:$Vd32),
29925(ins HvxVR:$Vu32),
29926"$Vd32.h = vabs($Vu32.h):sat",
29927tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29928let Inst{7-5} = 0b001;
29929let Inst{13-13} = 0b0;
29930let Inst{31-16} = 0b0001111000000000;
29931let hasNewValue = 1;
29932let opNewValue = 0;
29933let isCVI = 1;
29934let DecoderNamespace = "EXT_mmvec";
29935}
29936def V6_vabsh_sat_alt : HInst<
29937(outs HvxVR:$Vd32),
29938(ins HvxVR:$Vu32),
29939"$Vd32 = vabsh($Vu32):sat",
29940PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29941let hasNewValue = 1;
29942let opNewValue = 0;
29943let isCVI = 1;
29944let isPseudo = 1;
29945let isCodeGenOnly = 1;
29946let DecoderNamespace = "EXT_mmvec";
29947}
29948def V6_vabsub_alt : HInst<
29949(outs HvxVR:$Vd32),
29950(ins HvxVR:$Vu32),
29951"$Vd32.ub = vabs($Vu32.b)",
29952tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29953let hasNewValue = 1;
29954let opNewValue = 0;
29955let isCVI = 1;
29956let isPseudo = 1;
29957let isCodeGenOnly = 1;
29958let DecoderNamespace = "EXT_mmvec";
29959}
29960def V6_vabsuh_alt : HInst<
29961(outs HvxVR:$Vd32),
29962(ins HvxVR:$Vu32),
29963"$Vd32.uh = vabs($Vu32.h)",
29964tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29965let hasNewValue = 1;
29966let opNewValue = 0;
29967let isCVI = 1;
29968let isPseudo = 1;
29969let isCodeGenOnly = 1;
29970let DecoderNamespace = "EXT_mmvec";
29971}
29972def V6_vabsuw_alt : HInst<
29973(outs HvxVR:$Vd32),
29974(ins HvxVR:$Vu32),
29975"$Vd32.uw = vabs($Vu32.w)",
29976tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29977let hasNewValue = 1;
29978let opNewValue = 0;
29979let isCVI = 1;
29980let isPseudo = 1;
29981let isCodeGenOnly = 1;
29982let DecoderNamespace = "EXT_mmvec";
29983}
29984def V6_vabsw : HInst<
29985(outs HvxVR:$Vd32),
29986(ins HvxVR:$Vu32),
29987"$Vd32.w = vabs($Vu32.w)",
29988tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29989let Inst{7-5} = 0b010;
29990let Inst{13-13} = 0b0;
29991let Inst{31-16} = 0b0001111000000000;
29992let hasNewValue = 1;
29993let opNewValue = 0;
29994let isCVI = 1;
29995let DecoderNamespace = "EXT_mmvec";
29996}
29997def V6_vabsw_alt : HInst<
29998(outs HvxVR:$Vd32),
29999(ins HvxVR:$Vu32),
30000"$Vd32 = vabsw($Vu32)",
30001PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30002let hasNewValue = 1;
30003let opNewValue = 0;
30004let isCVI = 1;
30005let isPseudo = 1;
30006let isCodeGenOnly = 1;
30007let DecoderNamespace = "EXT_mmvec";
30008}
30009def V6_vabsw_sat : HInst<
30010(outs HvxVR:$Vd32),
30011(ins HvxVR:$Vu32),
30012"$Vd32.w = vabs($Vu32.w):sat",
30013tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30014let Inst{7-5} = 0b011;
30015let Inst{13-13} = 0b0;
30016let Inst{31-16} = 0b0001111000000000;
30017let hasNewValue = 1;
30018let opNewValue = 0;
30019let isCVI = 1;
30020let DecoderNamespace = "EXT_mmvec";
30021}
30022def V6_vabsw_sat_alt : HInst<
30023(outs HvxVR:$Vd32),
30024(ins HvxVR:$Vu32),
30025"$Vd32 = vabsw($Vu32):sat",
30026PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30027let hasNewValue = 1;
30028let opNewValue = 0;
30029let isCVI = 1;
30030let isPseudo = 1;
30031let isCodeGenOnly = 1;
30032let DecoderNamespace = "EXT_mmvec";
30033}
30034def V6_vadd_hf : HInst<
30035(outs HvxVR:$Vd32),
30036(ins HvxVR:$Vu32, HvxVR:$Vv32),
30037"$Vd32.qf16 = vadd($Vu32.hf,$Vv32.hf)",
30038tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30039let Inst{7-5} = 0b011;
30040let Inst{13-13} = 0b1;
30041let Inst{31-21} = 0b00011111011;
30042let hasNewValue = 1;
30043let opNewValue = 0;
30044let isCVI = 1;
30045let DecoderNamespace = "EXT_mmvec";
30046}
30047def V6_vadd_hf_hf : HInst<
30048(outs HvxVR:$Vd32),
30049(ins HvxVR:$Vu32, HvxVR:$Vv32),
30050"$Vd32.hf = vadd($Vu32.hf,$Vv32.hf)",
30051tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30052let Inst{7-5} = 0b111;
30053let Inst{13-13} = 0b1;
30054let Inst{31-21} = 0b00011111101;
30055let hasNewValue = 1;
30056let opNewValue = 0;
30057let isCVI = 1;
30058let DecoderNamespace = "EXT_mmvec";
30059}
30060def V6_vadd_qf16 : HInst<
30061(outs HvxVR:$Vd32),
30062(ins HvxVR:$Vu32, HvxVR:$Vv32),
30063"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.qf16)",
30064tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30065let Inst{7-5} = 0b010;
30066let Inst{13-13} = 0b1;
30067let Inst{31-21} = 0b00011111011;
30068let hasNewValue = 1;
30069let opNewValue = 0;
30070let isCVI = 1;
30071let DecoderNamespace = "EXT_mmvec";
30072}
30073def V6_vadd_qf16_mix : HInst<
30074(outs HvxVR:$Vd32),
30075(ins HvxVR:$Vu32, HvxVR:$Vv32),
30076"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.hf)",
30077tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30078let Inst{7-5} = 0b100;
30079let Inst{13-13} = 0b1;
30080let Inst{31-21} = 0b00011111011;
30081let hasNewValue = 1;
30082let opNewValue = 0;
30083let isCVI = 1;
30084let DecoderNamespace = "EXT_mmvec";
30085}
30086def V6_vadd_qf32 : HInst<
30087(outs HvxVR:$Vd32),
30088(ins HvxVR:$Vu32, HvxVR:$Vv32),
30089"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.qf32)",
30090tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30091let Inst{7-5} = 0b000;
30092let Inst{13-13} = 0b1;
30093let Inst{31-21} = 0b00011111101;
30094let hasNewValue = 1;
30095let opNewValue = 0;
30096let isCVI = 1;
30097let DecoderNamespace = "EXT_mmvec";
30098}
30099def V6_vadd_qf32_mix : HInst<
30100(outs HvxVR:$Vd32),
30101(ins HvxVR:$Vu32, HvxVR:$Vv32),
30102"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.sf)",
30103tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30104let Inst{7-5} = 0b010;
30105let Inst{13-13} = 0b1;
30106let Inst{31-21} = 0b00011111101;
30107let hasNewValue = 1;
30108let opNewValue = 0;
30109let isCVI = 1;
30110let DecoderNamespace = "EXT_mmvec";
30111}
30112def V6_vadd_sf : HInst<
30113(outs HvxVR:$Vd32),
30114(ins HvxVR:$Vu32, HvxVR:$Vv32),
30115"$Vd32.qf32 = vadd($Vu32.sf,$Vv32.sf)",
30116tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30117let Inst{7-5} = 0b001;
30118let Inst{13-13} = 0b1;
30119let Inst{31-21} = 0b00011111101;
30120let hasNewValue = 1;
30121let opNewValue = 0;
30122let isCVI = 1;
30123let DecoderNamespace = "EXT_mmvec";
30124}
30125def V6_vadd_sf_hf : HInst<
30126(outs HvxWR:$Vdd32),
30127(ins HvxVR:$Vu32, HvxVR:$Vv32),
30128"$Vdd32.sf = vadd($Vu32.hf,$Vv32.hf)",
30129tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30130let Inst{7-5} = 0b100;
30131let Inst{13-13} = 0b1;
30132let Inst{31-21} = 0b00011111100;
30133let hasNewValue = 1;
30134let opNewValue = 0;
30135let isCVI = 1;
30136let DecoderNamespace = "EXT_mmvec";
30137}
30138def V6_vadd_sf_sf : HInst<
30139(outs HvxVR:$Vd32),
30140(ins HvxVR:$Vu32, HvxVR:$Vv32),
30141"$Vd32.sf = vadd($Vu32.sf,$Vv32.sf)",
30142tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30143let Inst{7-5} = 0b110;
30144let Inst{13-13} = 0b1;
30145let Inst{31-21} = 0b00011111100;
30146let hasNewValue = 1;
30147let opNewValue = 0;
30148let isCVI = 1;
30149let DecoderNamespace = "EXT_mmvec";
30150}
30151def V6_vaddb : HInst<
30152(outs HvxVR:$Vd32),
30153(ins HvxVR:$Vu32, HvxVR:$Vv32),
30154"$Vd32.b = vadd($Vu32.b,$Vv32.b)",
30155tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30156let Inst{7-5} = 0b110;
30157let Inst{13-13} = 0b0;
30158let Inst{31-21} = 0b00011111101;
30159let hasNewValue = 1;
30160let opNewValue = 0;
30161let isCVI = 1;
30162let DecoderNamespace = "EXT_mmvec";
30163}
30164def V6_vaddb_alt : HInst<
30165(outs HvxVR:$Vd32),
30166(ins HvxVR:$Vu32, HvxVR:$Vv32),
30167"$Vd32 = vaddb($Vu32,$Vv32)",
30168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30169let hasNewValue = 1;
30170let opNewValue = 0;
30171let isCVI = 1;
30172let isPseudo = 1;
30173let isCodeGenOnly = 1;
30174let DecoderNamespace = "EXT_mmvec";
30175}
30176def V6_vaddb_dv : HInst<
30177(outs HvxWR:$Vdd32),
30178(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30179"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
30180tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30181let Inst{7-5} = 0b100;
30182let Inst{13-13} = 0b0;
30183let Inst{31-21} = 0b00011100011;
30184let hasNewValue = 1;
30185let opNewValue = 0;
30186let isCVI = 1;
30187let DecoderNamespace = "EXT_mmvec";
30188}
30189def V6_vaddb_dv_alt : HInst<
30190(outs HvxWR:$Vdd32),
30191(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30192"$Vdd32 = vaddb($Vuu32,$Vvv32)",
30193PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30194let hasNewValue = 1;
30195let opNewValue = 0;
30196let isCVI = 1;
30197let isPseudo = 1;
30198let isCodeGenOnly = 1;
30199let DecoderNamespace = "EXT_mmvec";
30200}
30201def V6_vaddbnq : HInst<
30202(outs HvxVR:$Vx32),
30203(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30204"if (!$Qv4) $Vx32.b += $Vu32.b",
30205tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30206let Inst{7-5} = 0b011;
30207let Inst{13-13} = 0b1;
30208let Inst{21-16} = 0b000001;
30209let Inst{31-24} = 0b00011110;
30210let hasNewValue = 1;
30211let opNewValue = 0;
30212let isAccumulator = 1;
30213let isCVI = 1;
30214let DecoderNamespace = "EXT_mmvec";
30215let Constraints = "$Vx32 = $Vx32in";
30216}
30217def V6_vaddbnq_alt : HInst<
30218(outs HvxVR:$Vx32),
30219(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30220"if (!$Qv4.b) $Vx32.b += $Vu32.b",
30221PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30222let hasNewValue = 1;
30223let opNewValue = 0;
30224let isAccumulator = 1;
30225let isCVI = 1;
30226let isPseudo = 1;
30227let isCodeGenOnly = 1;
30228let DecoderNamespace = "EXT_mmvec";
30229let Constraints = "$Vx32 = $Vx32in";
30230}
30231def V6_vaddbq : HInst<
30232(outs HvxVR:$Vx32),
30233(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30234"if ($Qv4) $Vx32.b += $Vu32.b",
30235tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30236let Inst{7-5} = 0b000;
30237let Inst{13-13} = 0b1;
30238let Inst{21-16} = 0b000001;
30239let Inst{31-24} = 0b00011110;
30240let hasNewValue = 1;
30241let opNewValue = 0;
30242let isAccumulator = 1;
30243let isCVI = 1;
30244let DecoderNamespace = "EXT_mmvec";
30245let Constraints = "$Vx32 = $Vx32in";
30246}
30247def V6_vaddbq_alt : HInst<
30248(outs HvxVR:$Vx32),
30249(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30250"if ($Qv4.b) $Vx32.b += $Vu32.b",
30251PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30252let hasNewValue = 1;
30253let opNewValue = 0;
30254let isAccumulator = 1;
30255let isCVI = 1;
30256let isPseudo = 1;
30257let isCodeGenOnly = 1;
30258let DecoderNamespace = "EXT_mmvec";
30259let Constraints = "$Vx32 = $Vx32in";
30260}
30261def V6_vaddbsat : HInst<
30262(outs HvxVR:$Vd32),
30263(ins HvxVR:$Vu32, HvxVR:$Vv32),
30264"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
30265tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30266let Inst{7-5} = 0b000;
30267let Inst{13-13} = 0b0;
30268let Inst{31-21} = 0b00011111000;
30269let hasNewValue = 1;
30270let opNewValue = 0;
30271let isCVI = 1;
30272let DecoderNamespace = "EXT_mmvec";
30273}
30274def V6_vaddbsat_alt : HInst<
30275(outs HvxVR:$Vd32),
30276(ins HvxVR:$Vu32, HvxVR:$Vv32),
30277"$Vd32 = vaddb($Vu32,$Vv32):sat",
30278PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30279let hasNewValue = 1;
30280let opNewValue = 0;
30281let isCVI = 1;
30282let isPseudo = 1;
30283let isCodeGenOnly = 1;
30284let DecoderNamespace = "EXT_mmvec";
30285}
30286def V6_vaddbsat_dv : HInst<
30287(outs HvxWR:$Vdd32),
30288(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30289"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
30290tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30291let Inst{7-5} = 0b000;
30292let Inst{13-13} = 0b0;
30293let Inst{31-21} = 0b00011110101;
30294let hasNewValue = 1;
30295let opNewValue = 0;
30296let isCVI = 1;
30297let DecoderNamespace = "EXT_mmvec";
30298}
30299def V6_vaddbsat_dv_alt : HInst<
30300(outs HvxWR:$Vdd32),
30301(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30302"$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
30303PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30304let hasNewValue = 1;
30305let opNewValue = 0;
30306let isCVI = 1;
30307let isPseudo = 1;
30308let isCodeGenOnly = 1;
30309let DecoderNamespace = "EXT_mmvec";
30310}
30311def V6_vaddcarry : HInst<
30312(outs HvxVR:$Vd32, HvxQR:$Qx4),
30313(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
30314"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
30315tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
30316let Inst{7-7} = 0b0;
30317let Inst{13-13} = 0b1;
30318let Inst{31-21} = 0b00011100101;
30319let hasNewValue = 1;
30320let opNewValue = 0;
30321let isCVI = 1;
30322let DecoderNamespace = "EXT_mmvec";
30323let Constraints = "$Qx4 = $Qx4in";
30324}
30325def V6_vaddcarryo : HInst<
30326(outs HvxVR:$Vd32, HvxQR:$Qe4),
30327(ins HvxVR:$Vu32, HvxVR:$Vv32),
30328"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
30329tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
30330let Inst{7-7} = 0b0;
30331let Inst{13-13} = 0b1;
30332let Inst{31-21} = 0b00011101101;
30333let hasNewValue = 1;
30334let opNewValue = 0;
30335let hasNewValue2 = 1;
30336let opNewValue2 = 1;
30337let isCVI = 1;
30338let DecoderNamespace = "EXT_mmvec";
30339}
30340def V6_vaddcarrysat : HInst<
30341(outs HvxVR:$Vd32),
30342(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
30343"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
30344tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
30345let Inst{7-7} = 0b0;
30346let Inst{13-13} = 0b1;
30347let Inst{31-21} = 0b00011101100;
30348let hasNewValue = 1;
30349let opNewValue = 0;
30350let isCVI = 1;
30351let DecoderNamespace = "EXT_mmvec";
30352}
30353def V6_vaddclbh : HInst<
30354(outs HvxVR:$Vd32),
30355(ins HvxVR:$Vu32, HvxVR:$Vv32),
30356"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
30357tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30358let Inst{7-5} = 0b000;
30359let Inst{13-13} = 0b1;
30360let Inst{31-21} = 0b00011111000;
30361let hasNewValue = 1;
30362let opNewValue = 0;
30363let isCVI = 1;
30364let DecoderNamespace = "EXT_mmvec";
30365}
30366def V6_vaddclbw : HInst<
30367(outs HvxVR:$Vd32),
30368(ins HvxVR:$Vu32, HvxVR:$Vv32),
30369"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
30370tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30371let Inst{7-5} = 0b001;
30372let Inst{13-13} = 0b1;
30373let Inst{31-21} = 0b00011111000;
30374let hasNewValue = 1;
30375let opNewValue = 0;
30376let isCVI = 1;
30377let DecoderNamespace = "EXT_mmvec";
30378}
30379def V6_vaddh : HInst<
30380(outs HvxVR:$Vd32),
30381(ins HvxVR:$Vu32, HvxVR:$Vv32),
30382"$Vd32.h = vadd($Vu32.h,$Vv32.h)",
30383tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30384let Inst{7-5} = 0b111;
30385let Inst{13-13} = 0b0;
30386let Inst{31-21} = 0b00011111101;
30387let hasNewValue = 1;
30388let opNewValue = 0;
30389let isCVI = 1;
30390let DecoderNamespace = "EXT_mmvec";
30391}
30392def V6_vaddh_alt : HInst<
30393(outs HvxVR:$Vd32),
30394(ins HvxVR:$Vu32, HvxVR:$Vv32),
30395"$Vd32 = vaddh($Vu32,$Vv32)",
30396PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30397let hasNewValue = 1;
30398let opNewValue = 0;
30399let isCVI = 1;
30400let isPseudo = 1;
30401let isCodeGenOnly = 1;
30402let DecoderNamespace = "EXT_mmvec";
30403}
30404def V6_vaddh_dv : HInst<
30405(outs HvxWR:$Vdd32),
30406(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30407"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
30408tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30409let Inst{7-5} = 0b101;
30410let Inst{13-13} = 0b0;
30411let Inst{31-21} = 0b00011100011;
30412let hasNewValue = 1;
30413let opNewValue = 0;
30414let isCVI = 1;
30415let DecoderNamespace = "EXT_mmvec";
30416}
30417def V6_vaddh_dv_alt : HInst<
30418(outs HvxWR:$Vdd32),
30419(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30420"$Vdd32 = vaddh($Vuu32,$Vvv32)",
30421PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30422let hasNewValue = 1;
30423let opNewValue = 0;
30424let isCVI = 1;
30425let isPseudo = 1;
30426let isCodeGenOnly = 1;
30427let DecoderNamespace = "EXT_mmvec";
30428}
30429def V6_vaddhnq : HInst<
30430(outs HvxVR:$Vx32),
30431(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30432"if (!$Qv4) $Vx32.h += $Vu32.h",
30433tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30434let Inst{7-5} = 0b100;
30435let Inst{13-13} = 0b1;
30436let Inst{21-16} = 0b000001;
30437let Inst{31-24} = 0b00011110;
30438let hasNewValue = 1;
30439let opNewValue = 0;
30440let isAccumulator = 1;
30441let isCVI = 1;
30442let DecoderNamespace = "EXT_mmvec";
30443let Constraints = "$Vx32 = $Vx32in";
30444}
30445def V6_vaddhnq_alt : HInst<
30446(outs HvxVR:$Vx32),
30447(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30448"if (!$Qv4.h) $Vx32.h += $Vu32.h",
30449PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30450let hasNewValue = 1;
30451let opNewValue = 0;
30452let isAccumulator = 1;
30453let isCVI = 1;
30454let isPseudo = 1;
30455let isCodeGenOnly = 1;
30456let DecoderNamespace = "EXT_mmvec";
30457let Constraints = "$Vx32 = $Vx32in";
30458}
30459def V6_vaddhq : HInst<
30460(outs HvxVR:$Vx32),
30461(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30462"if ($Qv4) $Vx32.h += $Vu32.h",
30463tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30464let Inst{7-5} = 0b001;
30465let Inst{13-13} = 0b1;
30466let Inst{21-16} = 0b000001;
30467let Inst{31-24} = 0b00011110;
30468let hasNewValue = 1;
30469let opNewValue = 0;
30470let isAccumulator = 1;
30471let isCVI = 1;
30472let DecoderNamespace = "EXT_mmvec";
30473let Constraints = "$Vx32 = $Vx32in";
30474}
30475def V6_vaddhq_alt : HInst<
30476(outs HvxVR:$Vx32),
30477(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30478"if ($Qv4.h) $Vx32.h += $Vu32.h",
30479PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30480let hasNewValue = 1;
30481let opNewValue = 0;
30482let isAccumulator = 1;
30483let isCVI = 1;
30484let isPseudo = 1;
30485let isCodeGenOnly = 1;
30486let DecoderNamespace = "EXT_mmvec";
30487let Constraints = "$Vx32 = $Vx32in";
30488}
30489def V6_vaddhsat : HInst<
30490(outs HvxVR:$Vd32),
30491(ins HvxVR:$Vu32, HvxVR:$Vv32),
30492"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
30493tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30494let Inst{7-5} = 0b011;
30495let Inst{13-13} = 0b0;
30496let Inst{31-21} = 0b00011100010;
30497let hasNewValue = 1;
30498let opNewValue = 0;
30499let isCVI = 1;
30500let DecoderNamespace = "EXT_mmvec";
30501}
30502def V6_vaddhsat_alt : HInst<
30503(outs HvxVR:$Vd32),
30504(ins HvxVR:$Vu32, HvxVR:$Vv32),
30505"$Vd32 = vaddh($Vu32,$Vv32):sat",
30506PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30507let hasNewValue = 1;
30508let opNewValue = 0;
30509let isCVI = 1;
30510let isPseudo = 1;
30511let isCodeGenOnly = 1;
30512let DecoderNamespace = "EXT_mmvec";
30513}
30514def V6_vaddhsat_dv : HInst<
30515(outs HvxWR:$Vdd32),
30516(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30517"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
30518tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30519let Inst{7-5} = 0b001;
30520let Inst{13-13} = 0b0;
30521let Inst{31-21} = 0b00011100100;
30522let hasNewValue = 1;
30523let opNewValue = 0;
30524let isCVI = 1;
30525let DecoderNamespace = "EXT_mmvec";
30526}
30527def V6_vaddhsat_dv_alt : HInst<
30528(outs HvxWR:$Vdd32),
30529(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30530"$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
30531PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30532let hasNewValue = 1;
30533let opNewValue = 0;
30534let isCVI = 1;
30535let isPseudo = 1;
30536let isCodeGenOnly = 1;
30537let DecoderNamespace = "EXT_mmvec";
30538}
30539def V6_vaddhw : HInst<
30540(outs HvxWR:$Vdd32),
30541(ins HvxVR:$Vu32, HvxVR:$Vv32),
30542"$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
30543tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30544let Inst{7-5} = 0b100;
30545let Inst{13-13} = 0b0;
30546let Inst{31-21} = 0b00011100101;
30547let hasNewValue = 1;
30548let opNewValue = 0;
30549let isCVI = 1;
30550let DecoderNamespace = "EXT_mmvec";
30551}
30552def V6_vaddhw_acc : HInst<
30553(outs HvxWR:$Vxx32),
30554(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30555"$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
30556tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30557let Inst{7-5} = 0b010;
30558let Inst{13-13} = 0b1;
30559let Inst{31-21} = 0b00011100001;
30560let hasNewValue = 1;
30561let opNewValue = 0;
30562let isAccumulator = 1;
30563let isCVI = 1;
30564let DecoderNamespace = "EXT_mmvec";
30565let Constraints = "$Vxx32 = $Vxx32in";
30566}
30567def V6_vaddhw_acc_alt : HInst<
30568(outs HvxWR:$Vxx32),
30569(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30570"$Vxx32 += vaddh($Vu32,$Vv32)",
30571PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30572let hasNewValue = 1;
30573let opNewValue = 0;
30574let isAccumulator = 1;
30575let isCVI = 1;
30576let isPseudo = 1;
30577let isCodeGenOnly = 1;
30578let DecoderNamespace = "EXT_mmvec";
30579let Constraints = "$Vxx32 = $Vxx32in";
30580}
30581def V6_vaddhw_alt : HInst<
30582(outs HvxWR:$Vdd32),
30583(ins HvxVR:$Vu32, HvxVR:$Vv32),
30584"$Vdd32 = vaddh($Vu32,$Vv32)",
30585PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30586let hasNewValue = 1;
30587let opNewValue = 0;
30588let isCVI = 1;
30589let isPseudo = 1;
30590let isCodeGenOnly = 1;
30591let DecoderNamespace = "EXT_mmvec";
30592}
30593def V6_vaddubh : HInst<
30594(outs HvxWR:$Vdd32),
30595(ins HvxVR:$Vu32, HvxVR:$Vv32),
30596"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
30597tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30598let Inst{7-5} = 0b010;
30599let Inst{13-13} = 0b0;
30600let Inst{31-21} = 0b00011100101;
30601let hasNewValue = 1;
30602let opNewValue = 0;
30603let isCVI = 1;
30604let DecoderNamespace = "EXT_mmvec";
30605}
30606def V6_vaddubh_acc : HInst<
30607(outs HvxWR:$Vxx32),
30608(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30609"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
30610tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30611let Inst{7-5} = 0b101;
30612let Inst{13-13} = 0b1;
30613let Inst{31-21} = 0b00011100010;
30614let hasNewValue = 1;
30615let opNewValue = 0;
30616let isAccumulator = 1;
30617let isCVI = 1;
30618let DecoderNamespace = "EXT_mmvec";
30619let Constraints = "$Vxx32 = $Vxx32in";
30620}
30621def V6_vaddubh_acc_alt : HInst<
30622(outs HvxWR:$Vxx32),
30623(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30624"$Vxx32 += vaddub($Vu32,$Vv32)",
30625PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30626let hasNewValue = 1;
30627let opNewValue = 0;
30628let isAccumulator = 1;
30629let isCVI = 1;
30630let isPseudo = 1;
30631let isCodeGenOnly = 1;
30632let DecoderNamespace = "EXT_mmvec";
30633let Constraints = "$Vxx32 = $Vxx32in";
30634}
30635def V6_vaddubh_alt : HInst<
30636(outs HvxWR:$Vdd32),
30637(ins HvxVR:$Vu32, HvxVR:$Vv32),
30638"$Vdd32 = vaddub($Vu32,$Vv32)",
30639PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30640let hasNewValue = 1;
30641let opNewValue = 0;
30642let isCVI = 1;
30643let isPseudo = 1;
30644let isCodeGenOnly = 1;
30645let DecoderNamespace = "EXT_mmvec";
30646}
30647def V6_vaddubsat : HInst<
30648(outs HvxVR:$Vd32),
30649(ins HvxVR:$Vu32, HvxVR:$Vv32),
30650"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
30651tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30652let Inst{7-5} = 0b001;
30653let Inst{13-13} = 0b0;
30654let Inst{31-21} = 0b00011100010;
30655let hasNewValue = 1;
30656let opNewValue = 0;
30657let isCVI = 1;
30658let DecoderNamespace = "EXT_mmvec";
30659}
30660def V6_vaddubsat_alt : HInst<
30661(outs HvxVR:$Vd32),
30662(ins HvxVR:$Vu32, HvxVR:$Vv32),
30663"$Vd32 = vaddub($Vu32,$Vv32):sat",
30664PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30665let hasNewValue = 1;
30666let opNewValue = 0;
30667let isCVI = 1;
30668let isPseudo = 1;
30669let isCodeGenOnly = 1;
30670let DecoderNamespace = "EXT_mmvec";
30671}
30672def V6_vaddubsat_dv : HInst<
30673(outs HvxWR:$Vdd32),
30674(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30675"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
30676tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30677let Inst{7-5} = 0b111;
30678let Inst{13-13} = 0b0;
30679let Inst{31-21} = 0b00011100011;
30680let hasNewValue = 1;
30681let opNewValue = 0;
30682let isCVI = 1;
30683let DecoderNamespace = "EXT_mmvec";
30684}
30685def V6_vaddubsat_dv_alt : HInst<
30686(outs HvxWR:$Vdd32),
30687(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30688"$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
30689PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30690let hasNewValue = 1;
30691let opNewValue = 0;
30692let isCVI = 1;
30693let isPseudo = 1;
30694let isCodeGenOnly = 1;
30695let DecoderNamespace = "EXT_mmvec";
30696}
30697def V6_vaddububb_sat : HInst<
30698(outs HvxVR:$Vd32),
30699(ins HvxVR:$Vu32, HvxVR:$Vv32),
30700"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
30701tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30702let Inst{7-5} = 0b100;
30703let Inst{13-13} = 0b0;
30704let Inst{31-21} = 0b00011110101;
30705let hasNewValue = 1;
30706let opNewValue = 0;
30707let isCVI = 1;
30708let DecoderNamespace = "EXT_mmvec";
30709}
30710def V6_vadduhsat : HInst<
30711(outs HvxVR:$Vd32),
30712(ins HvxVR:$Vu32, HvxVR:$Vv32),
30713"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
30714tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30715let Inst{7-5} = 0b010;
30716let Inst{13-13} = 0b0;
30717let Inst{31-21} = 0b00011100010;
30718let hasNewValue = 1;
30719let opNewValue = 0;
30720let isCVI = 1;
30721let DecoderNamespace = "EXT_mmvec";
30722}
30723def V6_vadduhsat_alt : HInst<
30724(outs HvxVR:$Vd32),
30725(ins HvxVR:$Vu32, HvxVR:$Vv32),
30726"$Vd32 = vadduh($Vu32,$Vv32):sat",
30727PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30728let hasNewValue = 1;
30729let opNewValue = 0;
30730let isCVI = 1;
30731let isPseudo = 1;
30732let isCodeGenOnly = 1;
30733let DecoderNamespace = "EXT_mmvec";
30734}
30735def V6_vadduhsat_dv : HInst<
30736(outs HvxWR:$Vdd32),
30737(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30738"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
30739tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30740let Inst{7-5} = 0b000;
30741let Inst{13-13} = 0b0;
30742let Inst{31-21} = 0b00011100100;
30743let hasNewValue = 1;
30744let opNewValue = 0;
30745let isCVI = 1;
30746let DecoderNamespace = "EXT_mmvec";
30747}
30748def V6_vadduhsat_dv_alt : HInst<
30749(outs HvxWR:$Vdd32),
30750(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30751"$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
30752PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30753let hasNewValue = 1;
30754let opNewValue = 0;
30755let isCVI = 1;
30756let isPseudo = 1;
30757let isCodeGenOnly = 1;
30758let DecoderNamespace = "EXT_mmvec";
30759}
30760def V6_vadduhw : HInst<
30761(outs HvxWR:$Vdd32),
30762(ins HvxVR:$Vu32, HvxVR:$Vv32),
30763"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
30764tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30765let Inst{7-5} = 0b011;
30766let Inst{13-13} = 0b0;
30767let Inst{31-21} = 0b00011100101;
30768let hasNewValue = 1;
30769let opNewValue = 0;
30770let isCVI = 1;
30771let DecoderNamespace = "EXT_mmvec";
30772}
30773def V6_vadduhw_acc : HInst<
30774(outs HvxWR:$Vxx32),
30775(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30776"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
30777tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30778let Inst{7-5} = 0b100;
30779let Inst{13-13} = 0b1;
30780let Inst{31-21} = 0b00011100010;
30781let hasNewValue = 1;
30782let opNewValue = 0;
30783let isAccumulator = 1;
30784let isCVI = 1;
30785let DecoderNamespace = "EXT_mmvec";
30786let Constraints = "$Vxx32 = $Vxx32in";
30787}
30788def V6_vadduhw_acc_alt : HInst<
30789(outs HvxWR:$Vxx32),
30790(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30791"$Vxx32 += vadduh($Vu32,$Vv32)",
30792PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30793let hasNewValue = 1;
30794let opNewValue = 0;
30795let isAccumulator = 1;
30796let isCVI = 1;
30797let isPseudo = 1;
30798let isCodeGenOnly = 1;
30799let DecoderNamespace = "EXT_mmvec";
30800let Constraints = "$Vxx32 = $Vxx32in";
30801}
30802def V6_vadduhw_alt : HInst<
30803(outs HvxWR:$Vdd32),
30804(ins HvxVR:$Vu32, HvxVR:$Vv32),
30805"$Vdd32 = vadduh($Vu32,$Vv32)",
30806PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30807let hasNewValue = 1;
30808let opNewValue = 0;
30809let isCVI = 1;
30810let isPseudo = 1;
30811let isCodeGenOnly = 1;
30812let DecoderNamespace = "EXT_mmvec";
30813}
30814def V6_vadduwsat : HInst<
30815(outs HvxVR:$Vd32),
30816(ins HvxVR:$Vu32, HvxVR:$Vv32),
30817"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
30818tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30819let Inst{7-5} = 0b001;
30820let Inst{13-13} = 0b0;
30821let Inst{31-21} = 0b00011111011;
30822let hasNewValue = 1;
30823let opNewValue = 0;
30824let isCVI = 1;
30825let DecoderNamespace = "EXT_mmvec";
30826}
30827def V6_vadduwsat_alt : HInst<
30828(outs HvxVR:$Vd32),
30829(ins HvxVR:$Vu32, HvxVR:$Vv32),
30830"$Vd32 = vadduw($Vu32,$Vv32):sat",
30831PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30832let hasNewValue = 1;
30833let opNewValue = 0;
30834let isCVI = 1;
30835let isPseudo = 1;
30836let isCodeGenOnly = 1;
30837let DecoderNamespace = "EXT_mmvec";
30838}
30839def V6_vadduwsat_dv : HInst<
30840(outs HvxWR:$Vdd32),
30841(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30842"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
30843tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30844let Inst{7-5} = 0b010;
30845let Inst{13-13} = 0b0;
30846let Inst{31-21} = 0b00011110101;
30847let hasNewValue = 1;
30848let opNewValue = 0;
30849let isCVI = 1;
30850let DecoderNamespace = "EXT_mmvec";
30851}
30852def V6_vadduwsat_dv_alt : HInst<
30853(outs HvxWR:$Vdd32),
30854(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30855"$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
30856PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30857let hasNewValue = 1;
30858let opNewValue = 0;
30859let isCVI = 1;
30860let isPseudo = 1;
30861let isCodeGenOnly = 1;
30862let DecoderNamespace = "EXT_mmvec";
30863}
30864def V6_vaddw : HInst<
30865(outs HvxVR:$Vd32),
30866(ins HvxVR:$Vu32, HvxVR:$Vv32),
30867"$Vd32.w = vadd($Vu32.w,$Vv32.w)",
30868tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30869let Inst{7-5} = 0b000;
30870let Inst{13-13} = 0b0;
30871let Inst{31-21} = 0b00011100010;
30872let hasNewValue = 1;
30873let opNewValue = 0;
30874let isCVI = 1;
30875let DecoderNamespace = "EXT_mmvec";
30876}
30877def V6_vaddw_alt : HInst<
30878(outs HvxVR:$Vd32),
30879(ins HvxVR:$Vu32, HvxVR:$Vv32),
30880"$Vd32 = vaddw($Vu32,$Vv32)",
30881PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30882let hasNewValue = 1;
30883let opNewValue = 0;
30884let isCVI = 1;
30885let isPseudo = 1;
30886let isCodeGenOnly = 1;
30887let DecoderNamespace = "EXT_mmvec";
30888}
30889def V6_vaddw_dv : HInst<
30890(outs HvxWR:$Vdd32),
30891(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30892"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
30893tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30894let Inst{7-5} = 0b110;
30895let Inst{13-13} = 0b0;
30896let Inst{31-21} = 0b00011100011;
30897let hasNewValue = 1;
30898let opNewValue = 0;
30899let isCVI = 1;
30900let DecoderNamespace = "EXT_mmvec";
30901}
30902def V6_vaddw_dv_alt : HInst<
30903(outs HvxWR:$Vdd32),
30904(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30905"$Vdd32 = vaddw($Vuu32,$Vvv32)",
30906PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30907let hasNewValue = 1;
30908let opNewValue = 0;
30909let isCVI = 1;
30910let isPseudo = 1;
30911let isCodeGenOnly = 1;
30912let DecoderNamespace = "EXT_mmvec";
30913}
30914def V6_vaddwnq : HInst<
30915(outs HvxVR:$Vx32),
30916(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30917"if (!$Qv4) $Vx32.w += $Vu32.w",
30918tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30919let Inst{7-5} = 0b101;
30920let Inst{13-13} = 0b1;
30921let Inst{21-16} = 0b000001;
30922let Inst{31-24} = 0b00011110;
30923let hasNewValue = 1;
30924let opNewValue = 0;
30925let isAccumulator = 1;
30926let isCVI = 1;
30927let DecoderNamespace = "EXT_mmvec";
30928let Constraints = "$Vx32 = $Vx32in";
30929}
30930def V6_vaddwnq_alt : HInst<
30931(outs HvxVR:$Vx32),
30932(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30933"if (!$Qv4.w) $Vx32.w += $Vu32.w",
30934PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30935let hasNewValue = 1;
30936let opNewValue = 0;
30937let isAccumulator = 1;
30938let isCVI = 1;
30939let isPseudo = 1;
30940let isCodeGenOnly = 1;
30941let DecoderNamespace = "EXT_mmvec";
30942let Constraints = "$Vx32 = $Vx32in";
30943}
30944def V6_vaddwq : HInst<
30945(outs HvxVR:$Vx32),
30946(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30947"if ($Qv4) $Vx32.w += $Vu32.w",
30948tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30949let Inst{7-5} = 0b010;
30950let Inst{13-13} = 0b1;
30951let Inst{21-16} = 0b000001;
30952let Inst{31-24} = 0b00011110;
30953let hasNewValue = 1;
30954let opNewValue = 0;
30955let isAccumulator = 1;
30956let isCVI = 1;
30957let DecoderNamespace = "EXT_mmvec";
30958let Constraints = "$Vx32 = $Vx32in";
30959}
30960def V6_vaddwq_alt : HInst<
30961(outs HvxVR:$Vx32),
30962(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30963"if ($Qv4.w) $Vx32.w += $Vu32.w",
30964PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30965let hasNewValue = 1;
30966let opNewValue = 0;
30967let isAccumulator = 1;
30968let isCVI = 1;
30969let isPseudo = 1;
30970let isCodeGenOnly = 1;
30971let DecoderNamespace = "EXT_mmvec";
30972let Constraints = "$Vx32 = $Vx32in";
30973}
30974def V6_vaddwsat : HInst<
30975(outs HvxVR:$Vd32),
30976(ins HvxVR:$Vu32, HvxVR:$Vv32),
30977"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
30978tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30979let Inst{7-5} = 0b100;
30980let Inst{13-13} = 0b0;
30981let Inst{31-21} = 0b00011100010;
30982let hasNewValue = 1;
30983let opNewValue = 0;
30984let isCVI = 1;
30985let DecoderNamespace = "EXT_mmvec";
30986}
30987def V6_vaddwsat_alt : HInst<
30988(outs HvxVR:$Vd32),
30989(ins HvxVR:$Vu32, HvxVR:$Vv32),
30990"$Vd32 = vaddw($Vu32,$Vv32):sat",
30991PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30992let hasNewValue = 1;
30993let opNewValue = 0;
30994let isCVI = 1;
30995let isPseudo = 1;
30996let isCodeGenOnly = 1;
30997let DecoderNamespace = "EXT_mmvec";
30998}
30999def V6_vaddwsat_dv : HInst<
31000(outs HvxWR:$Vdd32),
31001(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31002"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
31003tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
31004let Inst{7-5} = 0b010;
31005let Inst{13-13} = 0b0;
31006let Inst{31-21} = 0b00011100100;
31007let hasNewValue = 1;
31008let opNewValue = 0;
31009let isCVI = 1;
31010let DecoderNamespace = "EXT_mmvec";
31011}
31012def V6_vaddwsat_dv_alt : HInst<
31013(outs HvxWR:$Vdd32),
31014(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31015"$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
31016PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31017let hasNewValue = 1;
31018let opNewValue = 0;
31019let isCVI = 1;
31020let isPseudo = 1;
31021let isCodeGenOnly = 1;
31022let DecoderNamespace = "EXT_mmvec";
31023}
31024def V6_valignb : HInst<
31025(outs HvxVR:$Vd32),
31026(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31027"$Vd32 = valign($Vu32,$Vv32,$Rt8)",
31028tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
31029let Inst{7-5} = 0b000;
31030let Inst{13-13} = 0b0;
31031let Inst{31-24} = 0b00011011;
31032let hasNewValue = 1;
31033let opNewValue = 0;
31034let isCVI = 1;
31035let DecoderNamespace = "EXT_mmvec";
31036}
31037def V6_valignbi : HInst<
31038(outs HvxVR:$Vd32),
31039(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
31040"$Vd32 = valign($Vu32,$Vv32,#$Ii)",
31041tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
31042let Inst{13-13} = 0b1;
31043let Inst{31-21} = 0b00011110001;
31044let hasNewValue = 1;
31045let opNewValue = 0;
31046let isCVI = 1;
31047let DecoderNamespace = "EXT_mmvec";
31048}
31049def V6_vand : HInst<
31050(outs HvxVR:$Vd32),
31051(ins HvxVR:$Vu32, HvxVR:$Vv32),
31052"$Vd32 = vand($Vu32,$Vv32)",
31053tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31054let Inst{7-5} = 0b101;
31055let Inst{13-13} = 0b0;
31056let Inst{31-21} = 0b00011100001;
31057let hasNewValue = 1;
31058let opNewValue = 0;
31059let isCVI = 1;
31060let DecoderNamespace = "EXT_mmvec";
31061}
31062def V6_vandnqrt : HInst<
31063(outs HvxVR:$Vd32),
31064(ins HvxQR:$Qu4, IntRegs:$Rt32),
31065"$Vd32 = vand(!$Qu4,$Rt32)",
31066tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> {
31067let Inst{7-5} = 0b101;
31068let Inst{13-10} = 0b0001;
31069let Inst{31-21} = 0b00011001101;
31070let hasNewValue = 1;
31071let opNewValue = 0;
31072let isCVI = 1;
31073let DecoderNamespace = "EXT_mmvec";
31074}
31075def V6_vandnqrt_acc : HInst<
31076(outs HvxVR:$Vx32),
31077(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31078"$Vx32 |= vand(!$Qu4,$Rt32)",
31079tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> {
31080let Inst{7-5} = 0b011;
31081let Inst{13-10} = 0b1001;
31082let Inst{31-21} = 0b00011001011;
31083let hasNewValue = 1;
31084let opNewValue = 0;
31085let isAccumulator = 1;
31086let isCVI = 1;
31087let DecoderNamespace = "EXT_mmvec";
31088let Constraints = "$Vx32 = $Vx32in";
31089}
31090def V6_vandnqrt_acc_alt : HInst<
31091(outs HvxVR:$Vx32),
31092(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31093"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
31094PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31095let hasNewValue = 1;
31096let opNewValue = 0;
31097let isAccumulator = 1;
31098let isCVI = 1;
31099let isPseudo = 1;
31100let isCodeGenOnly = 1;
31101let DecoderNamespace = "EXT_mmvec";
31102let Constraints = "$Vx32 = $Vx32in";
31103}
31104def V6_vandnqrt_alt : HInst<
31105(outs HvxVR:$Vd32),
31106(ins HvxQR:$Qu4, IntRegs:$Rt32),
31107"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
31108PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31109let hasNewValue = 1;
31110let opNewValue = 0;
31111let isCVI = 1;
31112let isPseudo = 1;
31113let isCodeGenOnly = 1;
31114let DecoderNamespace = "EXT_mmvec";
31115}
31116def V6_vandqrt : HInst<
31117(outs HvxVR:$Vd32),
31118(ins HvxQR:$Qu4, IntRegs:$Rt32),
31119"$Vd32 = vand($Qu4,$Rt32)",
31120tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
31121let Inst{7-5} = 0b101;
31122let Inst{13-10} = 0b0000;
31123let Inst{31-21} = 0b00011001101;
31124let hasNewValue = 1;
31125let opNewValue = 0;
31126let isCVI = 1;
31127let DecoderNamespace = "EXT_mmvec";
31128}
31129def V6_vandqrt_acc : HInst<
31130(outs HvxVR:$Vx32),
31131(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31132"$Vx32 |= vand($Qu4,$Rt32)",
31133tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
31134let Inst{7-5} = 0b011;
31135let Inst{13-10} = 0b1000;
31136let Inst{31-21} = 0b00011001011;
31137let hasNewValue = 1;
31138let opNewValue = 0;
31139let isAccumulator = 1;
31140let isCVI = 1;
31141let DecoderNamespace = "EXT_mmvec";
31142let Constraints = "$Vx32 = $Vx32in";
31143}
31144def V6_vandqrt_acc_alt : HInst<
31145(outs HvxVR:$Vx32),
31146(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31147"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
31148PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31149let hasNewValue = 1;
31150let opNewValue = 0;
31151let isAccumulator = 1;
31152let isCVI = 1;
31153let isPseudo = 1;
31154let isCodeGenOnly = 1;
31155let DecoderNamespace = "EXT_mmvec";
31156let Constraints = "$Vx32 = $Vx32in";
31157}
31158def V6_vandqrt_alt : HInst<
31159(outs HvxVR:$Vd32),
31160(ins HvxQR:$Qu4, IntRegs:$Rt32),
31161"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
31162PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31163let hasNewValue = 1;
31164let opNewValue = 0;
31165let isCVI = 1;
31166let isPseudo = 1;
31167let isCodeGenOnly = 1;
31168let DecoderNamespace = "EXT_mmvec";
31169}
31170def V6_vandvnqv : HInst<
31171(outs HvxVR:$Vd32),
31172(ins HvxQR:$Qv4, HvxVR:$Vu32),
31173"$Vd32 = vand(!$Qv4,$Vu32)",
31174tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31175let Inst{7-5} = 0b001;
31176let Inst{13-13} = 0b1;
31177let Inst{21-16} = 0b000011;
31178let Inst{31-24} = 0b00011110;
31179let hasNewValue = 1;
31180let opNewValue = 0;
31181let isCVI = 1;
31182let DecoderNamespace = "EXT_mmvec";
31183}
31184def V6_vandvqv : HInst<
31185(outs HvxVR:$Vd32),
31186(ins HvxQR:$Qv4, HvxVR:$Vu32),
31187"$Vd32 = vand($Qv4,$Vu32)",
31188tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31189let Inst{7-5} = 0b000;
31190let Inst{13-13} = 0b1;
31191let Inst{21-16} = 0b000011;
31192let Inst{31-24} = 0b00011110;
31193let hasNewValue = 1;
31194let opNewValue = 0;
31195let isCVI = 1;
31196let DecoderNamespace = "EXT_mmvec";
31197}
31198def V6_vandvrt : HInst<
31199(outs HvxQR:$Qd4),
31200(ins HvxVR:$Vu32, IntRegs:$Rt32),
31201"$Qd4 = vand($Vu32,$Rt32)",
31202tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
31203let Inst{7-2} = 0b010010;
31204let Inst{13-13} = 0b0;
31205let Inst{31-21} = 0b00011001101;
31206let hasNewValue = 1;
31207let opNewValue = 0;
31208let isCVI = 1;
31209let DecoderNamespace = "EXT_mmvec";
31210}
31211def V6_vandvrt_acc : HInst<
31212(outs HvxQR:$Qx4),
31213(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31214"$Qx4 |= vand($Vu32,$Rt32)",
31215tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
31216let Inst{7-2} = 0b100000;
31217let Inst{13-13} = 0b1;
31218let Inst{31-21} = 0b00011001011;
31219let isAccumulator = 1;
31220let isCVI = 1;
31221let DecoderNamespace = "EXT_mmvec";
31222let Constraints = "$Qx4 = $Qx4in";
31223}
31224def V6_vandvrt_acc_alt : HInst<
31225(outs HvxQR:$Qx4),
31226(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31227"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
31228PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31229let isAccumulator = 1;
31230let isCVI = 1;
31231let isPseudo = 1;
31232let isCodeGenOnly = 1;
31233let DecoderNamespace = "EXT_mmvec";
31234let Constraints = "$Qx4 = $Qx4in";
31235}
31236def V6_vandvrt_alt : HInst<
31237(outs HvxQR:$Qd4),
31238(ins HvxVR:$Vu32, IntRegs:$Rt32),
31239"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
31240PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31241let hasNewValue = 1;
31242let opNewValue = 0;
31243let isCVI = 1;
31244let isPseudo = 1;
31245let isCodeGenOnly = 1;
31246let DecoderNamespace = "EXT_mmvec";
31247}
31248def V6_vaslh : HInst<
31249(outs HvxVR:$Vd32),
31250(ins HvxVR:$Vu32, IntRegs:$Rt32),
31251"$Vd32.h = vasl($Vu32.h,$Rt32)",
31252tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31253let Inst{7-5} = 0b000;
31254let Inst{13-13} = 0b0;
31255let Inst{31-21} = 0b00011001100;
31256let hasNewValue = 1;
31257let opNewValue = 0;
31258let isCVI = 1;
31259let DecoderNamespace = "EXT_mmvec";
31260}
31261def V6_vaslh_acc : HInst<
31262(outs HvxVR:$Vx32),
31263(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31264"$Vx32.h += vasl($Vu32.h,$Rt32)",
31265tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31266let Inst{7-5} = 0b101;
31267let Inst{13-13} = 0b1;
31268let Inst{31-21} = 0b00011001101;
31269let hasNewValue = 1;
31270let opNewValue = 0;
31271let isAccumulator = 1;
31272let isCVI = 1;
31273let DecoderNamespace = "EXT_mmvec";
31274let Constraints = "$Vx32 = $Vx32in";
31275}
31276def V6_vaslh_acc_alt : HInst<
31277(outs HvxVR:$Vx32),
31278(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31279"$Vx32 += vaslh($Vu32,$Rt32)",
31280PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31281let hasNewValue = 1;
31282let opNewValue = 0;
31283let isAccumulator = 1;
31284let isCVI = 1;
31285let isPseudo = 1;
31286let isCodeGenOnly = 1;
31287let DecoderNamespace = "EXT_mmvec";
31288let Constraints = "$Vx32 = $Vx32in";
31289}
31290def V6_vaslh_alt : HInst<
31291(outs HvxVR:$Vd32),
31292(ins HvxVR:$Vu32, IntRegs:$Rt32),
31293"$Vd32 = vaslh($Vu32,$Rt32)",
31294PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31295let hasNewValue = 1;
31296let opNewValue = 0;
31297let isCVI = 1;
31298let isPseudo = 1;
31299let isCodeGenOnly = 1;
31300let DecoderNamespace = "EXT_mmvec";
31301}
31302def V6_vaslhv : HInst<
31303(outs HvxVR:$Vd32),
31304(ins HvxVR:$Vu32, HvxVR:$Vv32),
31305"$Vd32.h = vasl($Vu32.h,$Vv32.h)",
31306tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31307let Inst{7-5} = 0b101;
31308let Inst{13-13} = 0b0;
31309let Inst{31-21} = 0b00011111101;
31310let hasNewValue = 1;
31311let opNewValue = 0;
31312let isCVI = 1;
31313let DecoderNamespace = "EXT_mmvec";
31314}
31315def V6_vaslhv_alt : HInst<
31316(outs HvxVR:$Vd32),
31317(ins HvxVR:$Vu32, HvxVR:$Vv32),
31318"$Vd32 = vaslh($Vu32,$Vv32)",
31319PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31320let hasNewValue = 1;
31321let opNewValue = 0;
31322let isCVI = 1;
31323let isPseudo = 1;
31324let isCodeGenOnly = 1;
31325let DecoderNamespace = "EXT_mmvec";
31326}
31327def V6_vaslw : HInst<
31328(outs HvxVR:$Vd32),
31329(ins HvxVR:$Vu32, IntRegs:$Rt32),
31330"$Vd32.w = vasl($Vu32.w,$Rt32)",
31331tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31332let Inst{7-5} = 0b111;
31333let Inst{13-13} = 0b0;
31334let Inst{31-21} = 0b00011001011;
31335let hasNewValue = 1;
31336let opNewValue = 0;
31337let isCVI = 1;
31338let DecoderNamespace = "EXT_mmvec";
31339}
31340def V6_vaslw_acc : HInst<
31341(outs HvxVR:$Vx32),
31342(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31343"$Vx32.w += vasl($Vu32.w,$Rt32)",
31344tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31345let Inst{7-5} = 0b010;
31346let Inst{13-13} = 0b1;
31347let Inst{31-21} = 0b00011001011;
31348let hasNewValue = 1;
31349let opNewValue = 0;
31350let isAccumulator = 1;
31351let isCVI = 1;
31352let DecoderNamespace = "EXT_mmvec";
31353let Constraints = "$Vx32 = $Vx32in";
31354}
31355def V6_vaslw_acc_alt : HInst<
31356(outs HvxVR:$Vx32),
31357(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31358"$Vx32 += vaslw($Vu32,$Rt32)",
31359PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31360let hasNewValue = 1;
31361let opNewValue = 0;
31362let isAccumulator = 1;
31363let isCVI = 1;
31364let isPseudo = 1;
31365let isCodeGenOnly = 1;
31366let DecoderNamespace = "EXT_mmvec";
31367let Constraints = "$Vx32 = $Vx32in";
31368}
31369def V6_vaslw_alt : HInst<
31370(outs HvxVR:$Vd32),
31371(ins HvxVR:$Vu32, IntRegs:$Rt32),
31372"$Vd32 = vaslw($Vu32,$Rt32)",
31373PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31374let hasNewValue = 1;
31375let opNewValue = 0;
31376let isCVI = 1;
31377let isPseudo = 1;
31378let isCodeGenOnly = 1;
31379let DecoderNamespace = "EXT_mmvec";
31380}
31381def V6_vaslwv : HInst<
31382(outs HvxVR:$Vd32),
31383(ins HvxVR:$Vu32, HvxVR:$Vv32),
31384"$Vd32.w = vasl($Vu32.w,$Vv32.w)",
31385tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31386let Inst{7-5} = 0b100;
31387let Inst{13-13} = 0b0;
31388let Inst{31-21} = 0b00011111101;
31389let hasNewValue = 1;
31390let opNewValue = 0;
31391let isCVI = 1;
31392let DecoderNamespace = "EXT_mmvec";
31393}
31394def V6_vaslwv_alt : HInst<
31395(outs HvxVR:$Vd32),
31396(ins HvxVR:$Vu32, HvxVR:$Vv32),
31397"$Vd32 = vaslw($Vu32,$Vv32)",
31398PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31399let hasNewValue = 1;
31400let opNewValue = 0;
31401let isCVI = 1;
31402let isPseudo = 1;
31403let isCodeGenOnly = 1;
31404let DecoderNamespace = "EXT_mmvec";
31405}
31406def V6_vasr_into : HInst<
31407(outs HvxWR:$Vxx32),
31408(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31409"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
31410tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
31411let Inst{7-5} = 0b111;
31412let Inst{13-13} = 0b1;
31413let Inst{31-21} = 0b00011010101;
31414let hasNewValue = 1;
31415let opNewValue = 0;
31416let isCVI = 1;
31417let DecoderNamespace = "EXT_mmvec";
31418let Constraints = "$Vxx32 = $Vxx32in";
31419}
31420def V6_vasr_into_alt : HInst<
31421(outs HvxWR:$Vxx32),
31422(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31423"$Vxx32 = vasrinto($Vu32,$Vv32)",
31424PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
31425let hasNewValue = 1;
31426let opNewValue = 0;
31427let isCVI = 1;
31428let isPseudo = 1;
31429let isCodeGenOnly = 1;
31430let DecoderNamespace = "EXT_mmvec";
31431let Constraints = "$Vxx32 = $Vxx32in";
31432}
31433def V6_vasrh : HInst<
31434(outs HvxVR:$Vd32),
31435(ins HvxVR:$Vu32, IntRegs:$Rt32),
31436"$Vd32.h = vasr($Vu32.h,$Rt32)",
31437tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31438let Inst{7-5} = 0b110;
31439let Inst{13-13} = 0b0;
31440let Inst{31-21} = 0b00011001011;
31441let hasNewValue = 1;
31442let opNewValue = 0;
31443let isCVI = 1;
31444let DecoderNamespace = "EXT_mmvec";
31445}
31446def V6_vasrh_acc : HInst<
31447(outs HvxVR:$Vx32),
31448(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31449"$Vx32.h += vasr($Vu32.h,$Rt32)",
31450tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31451let Inst{7-5} = 0b111;
31452let Inst{13-13} = 0b1;
31453let Inst{31-21} = 0b00011001100;
31454let hasNewValue = 1;
31455let opNewValue = 0;
31456let isAccumulator = 1;
31457let isCVI = 1;
31458let DecoderNamespace = "EXT_mmvec";
31459let Constraints = "$Vx32 = $Vx32in";
31460}
31461def V6_vasrh_acc_alt : HInst<
31462(outs HvxVR:$Vx32),
31463(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31464"$Vx32 += vasrh($Vu32,$Rt32)",
31465PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31466let hasNewValue = 1;
31467let opNewValue = 0;
31468let isAccumulator = 1;
31469let isCVI = 1;
31470let isPseudo = 1;
31471let isCodeGenOnly = 1;
31472let DecoderNamespace = "EXT_mmvec";
31473let Constraints = "$Vx32 = $Vx32in";
31474}
31475def V6_vasrh_alt : HInst<
31476(outs HvxVR:$Vd32),
31477(ins HvxVR:$Vu32, IntRegs:$Rt32),
31478"$Vd32 = vasrh($Vu32,$Rt32)",
31479PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31480let hasNewValue = 1;
31481let opNewValue = 0;
31482let isCVI = 1;
31483let isPseudo = 1;
31484let isCodeGenOnly = 1;
31485let DecoderNamespace = "EXT_mmvec";
31486}
31487def V6_vasrhbrndsat : HInst<
31488(outs HvxVR:$Vd32),
31489(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31490"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31491tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31492let Inst{7-5} = 0b000;
31493let Inst{13-13} = 0b1;
31494let Inst{31-24} = 0b00011011;
31495let hasNewValue = 1;
31496let opNewValue = 0;
31497let isCVI = 1;
31498let DecoderNamespace = "EXT_mmvec";
31499}
31500def V6_vasrhbsat : HInst<
31501(outs HvxVR:$Vd32),
31502(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31503"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31504tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31505let Inst{7-5} = 0b000;
31506let Inst{13-13} = 0b0;
31507let Inst{31-24} = 0b00011000;
31508let hasNewValue = 1;
31509let opNewValue = 0;
31510let isCVI = 1;
31511let DecoderNamespace = "EXT_mmvec";
31512}
31513def V6_vasrhubrndsat : HInst<
31514(outs HvxVR:$Vd32),
31515(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31516"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31517tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31518let Inst{7-5} = 0b111;
31519let Inst{13-13} = 0b0;
31520let Inst{31-24} = 0b00011011;
31521let hasNewValue = 1;
31522let opNewValue = 0;
31523let isCVI = 1;
31524let DecoderNamespace = "EXT_mmvec";
31525}
31526def V6_vasrhubsat : HInst<
31527(outs HvxVR:$Vd32),
31528(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31529"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31530tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31531let Inst{7-5} = 0b110;
31532let Inst{13-13} = 0b0;
31533let Inst{31-24} = 0b00011011;
31534let hasNewValue = 1;
31535let opNewValue = 0;
31536let isCVI = 1;
31537let DecoderNamespace = "EXT_mmvec";
31538}
31539def V6_vasrhv : HInst<
31540(outs HvxVR:$Vd32),
31541(ins HvxVR:$Vu32, HvxVR:$Vv32),
31542"$Vd32.h = vasr($Vu32.h,$Vv32.h)",
31543tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31544let Inst{7-5} = 0b011;
31545let Inst{13-13} = 0b0;
31546let Inst{31-21} = 0b00011111101;
31547let hasNewValue = 1;
31548let opNewValue = 0;
31549let isCVI = 1;
31550let DecoderNamespace = "EXT_mmvec";
31551}
31552def V6_vasrhv_alt : HInst<
31553(outs HvxVR:$Vd32),
31554(ins HvxVR:$Vu32, HvxVR:$Vv32),
31555"$Vd32 = vasrh($Vu32,$Vv32)",
31556PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31557let hasNewValue = 1;
31558let opNewValue = 0;
31559let isCVI = 1;
31560let isPseudo = 1;
31561let isCodeGenOnly = 1;
31562let DecoderNamespace = "EXT_mmvec";
31563}
31564def V6_vasruhubrndsat : HInst<
31565(outs HvxVR:$Vd32),
31566(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31567"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
31568tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31569let Inst{7-5} = 0b111;
31570let Inst{13-13} = 0b0;
31571let Inst{31-24} = 0b00011000;
31572let hasNewValue = 1;
31573let opNewValue = 0;
31574let isCVI = 1;
31575let DecoderNamespace = "EXT_mmvec";
31576}
31577def V6_vasruhubsat : HInst<
31578(outs HvxVR:$Vd32),
31579(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31580"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
31581tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31582let Inst{7-5} = 0b101;
31583let Inst{13-13} = 0b1;
31584let Inst{31-24} = 0b00011000;
31585let hasNewValue = 1;
31586let opNewValue = 0;
31587let isCVI = 1;
31588let DecoderNamespace = "EXT_mmvec";
31589}
31590def V6_vasruwuhrndsat : HInst<
31591(outs HvxVR:$Vd32),
31592(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31593"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
31594tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31595let Inst{7-5} = 0b001;
31596let Inst{13-13} = 0b0;
31597let Inst{31-24} = 0b00011000;
31598let hasNewValue = 1;
31599let opNewValue = 0;
31600let isCVI = 1;
31601let DecoderNamespace = "EXT_mmvec";
31602}
31603def V6_vasruwuhsat : HInst<
31604(outs HvxVR:$Vd32),
31605(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31606"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
31607tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31608let Inst{7-5} = 0b100;
31609let Inst{13-13} = 0b1;
31610let Inst{31-24} = 0b00011000;
31611let hasNewValue = 1;
31612let opNewValue = 0;
31613let isCVI = 1;
31614let DecoderNamespace = "EXT_mmvec";
31615}
31616def V6_vasrvuhubrndsat : HInst<
31617(outs HvxVR:$Vd32),
31618(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31619"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):rnd:sat",
31620tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31621let Inst{7-5} = 0b011;
31622let Inst{13-13} = 0b0;
31623let Inst{31-21} = 0b00011101000;
31624let hasNewValue = 1;
31625let opNewValue = 0;
31626let isCVI = 1;
31627let DecoderNamespace = "EXT_mmvec";
31628}
31629def V6_vasrvuhubsat : HInst<
31630(outs HvxVR:$Vd32),
31631(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31632"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):sat",
31633tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31634let Inst{7-5} = 0b010;
31635let Inst{13-13} = 0b0;
31636let Inst{31-21} = 0b00011101000;
31637let hasNewValue = 1;
31638let opNewValue = 0;
31639let isCVI = 1;
31640let DecoderNamespace = "EXT_mmvec";
31641}
31642def V6_vasrvwuhrndsat : HInst<
31643(outs HvxVR:$Vd32),
31644(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31645"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):rnd:sat",
31646tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31647let Inst{7-5} = 0b001;
31648let Inst{13-13} = 0b0;
31649let Inst{31-21} = 0b00011101000;
31650let hasNewValue = 1;
31651let opNewValue = 0;
31652let isCVI = 1;
31653let DecoderNamespace = "EXT_mmvec";
31654}
31655def V6_vasrvwuhsat : HInst<
31656(outs HvxVR:$Vd32),
31657(ins HvxWR:$Vuu32, HvxVR:$Vv32),
31658"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):sat",
31659tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31660let Inst{7-5} = 0b000;
31661let Inst{13-13} = 0b0;
31662let Inst{31-21} = 0b00011101000;
31663let hasNewValue = 1;
31664let opNewValue = 0;
31665let isCVI = 1;
31666let DecoderNamespace = "EXT_mmvec";
31667}
31668def V6_vasrw : HInst<
31669(outs HvxVR:$Vd32),
31670(ins HvxVR:$Vu32, IntRegs:$Rt32),
31671"$Vd32.w = vasr($Vu32.w,$Rt32)",
31672tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31673let Inst{7-5} = 0b101;
31674let Inst{13-13} = 0b0;
31675let Inst{31-21} = 0b00011001011;
31676let hasNewValue = 1;
31677let opNewValue = 0;
31678let isCVI = 1;
31679let DecoderNamespace = "EXT_mmvec";
31680}
31681def V6_vasrw_acc : HInst<
31682(outs HvxVR:$Vx32),
31683(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31684"$Vx32.w += vasr($Vu32.w,$Rt32)",
31685tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31686let Inst{7-5} = 0b101;
31687let Inst{13-13} = 0b1;
31688let Inst{31-21} = 0b00011001011;
31689let hasNewValue = 1;
31690let opNewValue = 0;
31691let isAccumulator = 1;
31692let isCVI = 1;
31693let DecoderNamespace = "EXT_mmvec";
31694let Constraints = "$Vx32 = $Vx32in";
31695}
31696def V6_vasrw_acc_alt : HInst<
31697(outs HvxVR:$Vx32),
31698(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31699"$Vx32 += vasrw($Vu32,$Rt32)",
31700PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31701let hasNewValue = 1;
31702let opNewValue = 0;
31703let isAccumulator = 1;
31704let isCVI = 1;
31705let isPseudo = 1;
31706let isCodeGenOnly = 1;
31707let DecoderNamespace = "EXT_mmvec";
31708let Constraints = "$Vx32 = $Vx32in";
31709}
31710def V6_vasrw_alt : HInst<
31711(outs HvxVR:$Vd32),
31712(ins HvxVR:$Vu32, IntRegs:$Rt32),
31713"$Vd32 = vasrw($Vu32,$Rt32)",
31714PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31715let hasNewValue = 1;
31716let opNewValue = 0;
31717let isCVI = 1;
31718let isPseudo = 1;
31719let isCodeGenOnly = 1;
31720let DecoderNamespace = "EXT_mmvec";
31721}
31722def V6_vasrwh : HInst<
31723(outs HvxVR:$Vd32),
31724(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31725"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
31726tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31727let Inst{7-5} = 0b010;
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_vasrwhrndsat : HInst<
31736(outs HvxVR:$Vd32),
31737(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31738"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31739tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31740let Inst{7-5} = 0b100;
31741let Inst{13-13} = 0b0;
31742let Inst{31-24} = 0b00011011;
31743let hasNewValue = 1;
31744let opNewValue = 0;
31745let isCVI = 1;
31746let DecoderNamespace = "EXT_mmvec";
31747}
31748def V6_vasrwhsat : HInst<
31749(outs HvxVR:$Vd32),
31750(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31751"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31752tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31753let Inst{7-5} = 0b011;
31754let Inst{13-13} = 0b0;
31755let Inst{31-24} = 0b00011011;
31756let hasNewValue = 1;
31757let opNewValue = 0;
31758let isCVI = 1;
31759let DecoderNamespace = "EXT_mmvec";
31760}
31761def V6_vasrwuhrndsat : HInst<
31762(outs HvxVR:$Vd32),
31763(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31764"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31765tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31766let Inst{7-5} = 0b010;
31767let Inst{13-13} = 0b0;
31768let Inst{31-24} = 0b00011000;
31769let hasNewValue = 1;
31770let opNewValue = 0;
31771let isCVI = 1;
31772let DecoderNamespace = "EXT_mmvec";
31773}
31774def V6_vasrwuhsat : HInst<
31775(outs HvxVR:$Vd32),
31776(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31777"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31778tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31779let Inst{7-5} = 0b101;
31780let Inst{13-13} = 0b0;
31781let Inst{31-24} = 0b00011011;
31782let hasNewValue = 1;
31783let opNewValue = 0;
31784let isCVI = 1;
31785let DecoderNamespace = "EXT_mmvec";
31786}
31787def V6_vasrwv : HInst<
31788(outs HvxVR:$Vd32),
31789(ins HvxVR:$Vu32, HvxVR:$Vv32),
31790"$Vd32.w = vasr($Vu32.w,$Vv32.w)",
31791tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31792let Inst{7-5} = 0b000;
31793let Inst{13-13} = 0b0;
31794let Inst{31-21} = 0b00011111101;
31795let hasNewValue = 1;
31796let opNewValue = 0;
31797let isCVI = 1;
31798let DecoderNamespace = "EXT_mmvec";
31799}
31800def V6_vasrwv_alt : HInst<
31801(outs HvxVR:$Vd32),
31802(ins HvxVR:$Vu32, HvxVR:$Vv32),
31803"$Vd32 = vasrw($Vu32,$Vv32)",
31804PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31805let hasNewValue = 1;
31806let opNewValue = 0;
31807let isCVI = 1;
31808let isPseudo = 1;
31809let isCodeGenOnly = 1;
31810let DecoderNamespace = "EXT_mmvec";
31811}
31812def V6_vassign : HInst<
31813(outs HvxVR:$Vd32),
31814(ins HvxVR:$Vu32),
31815"$Vd32 = $Vu32",
31816tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
31817let Inst{7-5} = 0b111;
31818let Inst{13-13} = 0b1;
31819let Inst{31-16} = 0b0001111000000011;
31820let hasNewValue = 1;
31821let opNewValue = 0;
31822let isCVI = 1;
31823let DecoderNamespace = "EXT_mmvec";
31824}
31825def V6_vassign_fp : HInst<
31826(outs HvxVR:$Vd32),
31827(ins HvxVR:$Vu32),
31828"$Vd32.w = vfmv($Vu32.w)",
31829tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
31830let Inst{7-5} = 0b001;
31831let Inst{13-13} = 0b1;
31832let Inst{31-16} = 0b0001111000000110;
31833let hasNewValue = 1;
31834let opNewValue = 0;
31835let isCVI = 1;
31836let DecoderNamespace = "EXT_mmvec";
31837}
31838def V6_vassign_tmp : HInst<
31839(outs HvxVR:$Vd32),
31840(ins HvxVR:$Vu32),
31841"$Vd32.tmp = $Vu32",
31842tc_2120355e, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV69]> {
31843let Inst{7-5} = 0b110;
31844let Inst{13-13} = 0b0;
31845let Inst{31-16} = 0b0001111000000001;
31846let hasNewValue = 1;
31847let opNewValue = 0;
31848let isCVI = 1;
31849let hasHvxTmp = 1;
31850let DecoderNamespace = "EXT_mmvec";
31851}
31852def V6_vassignp : HInst<
31853(outs HvxWR:$Vdd32),
31854(ins HvxWR:$Vuu32),
31855"$Vdd32 = $Vuu32",
31856CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
31857let hasNewValue = 1;
31858let opNewValue = 0;
31859let isCVI = 1;
31860let isPseudo = 1;
31861let DecoderNamespace = "EXT_mmvec";
31862}
31863def V6_vavgb : HInst<
31864(outs HvxVR:$Vd32),
31865(ins HvxVR:$Vu32, HvxVR:$Vv32),
31866"$Vd32.b = vavg($Vu32.b,$Vv32.b)",
31867tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31868let Inst{7-5} = 0b100;
31869let Inst{13-13} = 0b1;
31870let Inst{31-21} = 0b00011111000;
31871let hasNewValue = 1;
31872let opNewValue = 0;
31873let isCVI = 1;
31874let DecoderNamespace = "EXT_mmvec";
31875}
31876def V6_vavgb_alt : HInst<
31877(outs HvxVR:$Vd32),
31878(ins HvxVR:$Vu32, HvxVR:$Vv32),
31879"$Vd32 = vavgb($Vu32,$Vv32)",
31880PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31881let hasNewValue = 1;
31882let opNewValue = 0;
31883let isCVI = 1;
31884let isPseudo = 1;
31885let isCodeGenOnly = 1;
31886let DecoderNamespace = "EXT_mmvec";
31887}
31888def V6_vavgbrnd : HInst<
31889(outs HvxVR:$Vd32),
31890(ins HvxVR:$Vu32, HvxVR:$Vv32),
31891"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
31892tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31893let Inst{7-5} = 0b101;
31894let Inst{13-13} = 0b1;
31895let Inst{31-21} = 0b00011111000;
31896let hasNewValue = 1;
31897let opNewValue = 0;
31898let isCVI = 1;
31899let DecoderNamespace = "EXT_mmvec";
31900}
31901def V6_vavgbrnd_alt : HInst<
31902(outs HvxVR:$Vd32),
31903(ins HvxVR:$Vu32, HvxVR:$Vv32),
31904"$Vd32 = vavgb($Vu32,$Vv32):rnd",
31905PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31906let hasNewValue = 1;
31907let opNewValue = 0;
31908let isCVI = 1;
31909let isPseudo = 1;
31910let isCodeGenOnly = 1;
31911let DecoderNamespace = "EXT_mmvec";
31912}
31913def V6_vavgh : HInst<
31914(outs HvxVR:$Vd32),
31915(ins HvxVR:$Vu32, HvxVR:$Vv32),
31916"$Vd32.h = vavg($Vu32.h,$Vv32.h)",
31917tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31918let Inst{7-5} = 0b110;
31919let Inst{13-13} = 0b0;
31920let Inst{31-21} = 0b00011100110;
31921let hasNewValue = 1;
31922let opNewValue = 0;
31923let isCVI = 1;
31924let DecoderNamespace = "EXT_mmvec";
31925}
31926def V6_vavgh_alt : HInst<
31927(outs HvxVR:$Vd32),
31928(ins HvxVR:$Vu32, HvxVR:$Vv32),
31929"$Vd32 = vavgh($Vu32,$Vv32)",
31930PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31931let hasNewValue = 1;
31932let opNewValue = 0;
31933let isCVI = 1;
31934let isPseudo = 1;
31935let isCodeGenOnly = 1;
31936let DecoderNamespace = "EXT_mmvec";
31937}
31938def V6_vavghrnd : HInst<
31939(outs HvxVR:$Vd32),
31940(ins HvxVR:$Vu32, HvxVR:$Vv32),
31941"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
31942tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31943let Inst{7-5} = 0b101;
31944let Inst{13-13} = 0b0;
31945let Inst{31-21} = 0b00011100111;
31946let hasNewValue = 1;
31947let opNewValue = 0;
31948let isCVI = 1;
31949let DecoderNamespace = "EXT_mmvec";
31950}
31951def V6_vavghrnd_alt : HInst<
31952(outs HvxVR:$Vd32),
31953(ins HvxVR:$Vu32, HvxVR:$Vv32),
31954"$Vd32 = vavgh($Vu32,$Vv32):rnd",
31955PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31956let hasNewValue = 1;
31957let opNewValue = 0;
31958let isCVI = 1;
31959let isPseudo = 1;
31960let isCodeGenOnly = 1;
31961let DecoderNamespace = "EXT_mmvec";
31962}
31963def V6_vavgub : HInst<
31964(outs HvxVR:$Vd32),
31965(ins HvxVR:$Vu32, HvxVR:$Vv32),
31966"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
31967tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31968let Inst{7-5} = 0b100;
31969let Inst{13-13} = 0b0;
31970let Inst{31-21} = 0b00011100110;
31971let hasNewValue = 1;
31972let opNewValue = 0;
31973let isCVI = 1;
31974let DecoderNamespace = "EXT_mmvec";
31975}
31976def V6_vavgub_alt : HInst<
31977(outs HvxVR:$Vd32),
31978(ins HvxVR:$Vu32, HvxVR:$Vv32),
31979"$Vd32 = vavgub($Vu32,$Vv32)",
31980PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31981let hasNewValue = 1;
31982let opNewValue = 0;
31983let isCVI = 1;
31984let isPseudo = 1;
31985let isCodeGenOnly = 1;
31986let DecoderNamespace = "EXT_mmvec";
31987}
31988def V6_vavgubrnd : HInst<
31989(outs HvxVR:$Vd32),
31990(ins HvxVR:$Vu32, HvxVR:$Vv32),
31991"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
31992tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31993let Inst{7-5} = 0b011;
31994let Inst{13-13} = 0b0;
31995let Inst{31-21} = 0b00011100111;
31996let hasNewValue = 1;
31997let opNewValue = 0;
31998let isCVI = 1;
31999let DecoderNamespace = "EXT_mmvec";
32000}
32001def V6_vavgubrnd_alt : HInst<
32002(outs HvxVR:$Vd32),
32003(ins HvxVR:$Vu32, HvxVR:$Vv32),
32004"$Vd32 = vavgub($Vu32,$Vv32):rnd",
32005PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32006let hasNewValue = 1;
32007let opNewValue = 0;
32008let isCVI = 1;
32009let isPseudo = 1;
32010let isCodeGenOnly = 1;
32011let DecoderNamespace = "EXT_mmvec";
32012}
32013def V6_vavguh : HInst<
32014(outs HvxVR:$Vd32),
32015(ins HvxVR:$Vu32, HvxVR:$Vv32),
32016"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
32017tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32018let Inst{7-5} = 0b101;
32019let Inst{13-13} = 0b0;
32020let Inst{31-21} = 0b00011100110;
32021let hasNewValue = 1;
32022let opNewValue = 0;
32023let isCVI = 1;
32024let DecoderNamespace = "EXT_mmvec";
32025}
32026def V6_vavguh_alt : HInst<
32027(outs HvxVR:$Vd32),
32028(ins HvxVR:$Vu32, HvxVR:$Vv32),
32029"$Vd32 = vavguh($Vu32,$Vv32)",
32030PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32031let hasNewValue = 1;
32032let opNewValue = 0;
32033let isCVI = 1;
32034let isPseudo = 1;
32035let isCodeGenOnly = 1;
32036let DecoderNamespace = "EXT_mmvec";
32037}
32038def V6_vavguhrnd : HInst<
32039(outs HvxVR:$Vd32),
32040(ins HvxVR:$Vu32, HvxVR:$Vv32),
32041"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
32042tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32043let Inst{7-5} = 0b100;
32044let Inst{13-13} = 0b0;
32045let Inst{31-21} = 0b00011100111;
32046let hasNewValue = 1;
32047let opNewValue = 0;
32048let isCVI = 1;
32049let DecoderNamespace = "EXT_mmvec";
32050}
32051def V6_vavguhrnd_alt : HInst<
32052(outs HvxVR:$Vd32),
32053(ins HvxVR:$Vu32, HvxVR:$Vv32),
32054"$Vd32 = vavguh($Vu32,$Vv32):rnd",
32055PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32056let hasNewValue = 1;
32057let opNewValue = 0;
32058let isCVI = 1;
32059let isPseudo = 1;
32060let isCodeGenOnly = 1;
32061let DecoderNamespace = "EXT_mmvec";
32062}
32063def V6_vavguw : HInst<
32064(outs HvxVR:$Vd32),
32065(ins HvxVR:$Vu32, HvxVR:$Vv32),
32066"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
32067tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32068let Inst{7-5} = 0b010;
32069let Inst{13-13} = 0b1;
32070let Inst{31-21} = 0b00011111000;
32071let hasNewValue = 1;
32072let opNewValue = 0;
32073let isCVI = 1;
32074let DecoderNamespace = "EXT_mmvec";
32075}
32076def V6_vavguw_alt : HInst<
32077(outs HvxVR:$Vd32),
32078(ins HvxVR:$Vu32, HvxVR:$Vv32),
32079"$Vd32 = vavguw($Vu32,$Vv32)",
32080PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32081let hasNewValue = 1;
32082let opNewValue = 0;
32083let isCVI = 1;
32084let isPseudo = 1;
32085let isCodeGenOnly = 1;
32086let DecoderNamespace = "EXT_mmvec";
32087}
32088def V6_vavguwrnd : HInst<
32089(outs HvxVR:$Vd32),
32090(ins HvxVR:$Vu32, HvxVR:$Vv32),
32091"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
32092tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32093let Inst{7-5} = 0b011;
32094let Inst{13-13} = 0b1;
32095let Inst{31-21} = 0b00011111000;
32096let hasNewValue = 1;
32097let opNewValue = 0;
32098let isCVI = 1;
32099let DecoderNamespace = "EXT_mmvec";
32100}
32101def V6_vavguwrnd_alt : HInst<
32102(outs HvxVR:$Vd32),
32103(ins HvxVR:$Vu32, HvxVR:$Vv32),
32104"$Vd32 = vavguw($Vu32,$Vv32):rnd",
32105PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32106let hasNewValue = 1;
32107let opNewValue = 0;
32108let isCVI = 1;
32109let isPseudo = 1;
32110let isCodeGenOnly = 1;
32111let DecoderNamespace = "EXT_mmvec";
32112}
32113def V6_vavgw : HInst<
32114(outs HvxVR:$Vd32),
32115(ins HvxVR:$Vu32, HvxVR:$Vv32),
32116"$Vd32.w = vavg($Vu32.w,$Vv32.w)",
32117tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32118let Inst{7-5} = 0b111;
32119let Inst{13-13} = 0b0;
32120let Inst{31-21} = 0b00011100110;
32121let hasNewValue = 1;
32122let opNewValue = 0;
32123let isCVI = 1;
32124let DecoderNamespace = "EXT_mmvec";
32125}
32126def V6_vavgw_alt : HInst<
32127(outs HvxVR:$Vd32),
32128(ins HvxVR:$Vu32, HvxVR:$Vv32),
32129"$Vd32 = vavgw($Vu32,$Vv32)",
32130PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32131let hasNewValue = 1;
32132let opNewValue = 0;
32133let isCVI = 1;
32134let isPseudo = 1;
32135let isCodeGenOnly = 1;
32136let DecoderNamespace = "EXT_mmvec";
32137}
32138def V6_vavgwrnd : HInst<
32139(outs HvxVR:$Vd32),
32140(ins HvxVR:$Vu32, HvxVR:$Vv32),
32141"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
32142tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32143let Inst{7-5} = 0b110;
32144let Inst{13-13} = 0b0;
32145let Inst{31-21} = 0b00011100111;
32146let hasNewValue = 1;
32147let opNewValue = 0;
32148let isCVI = 1;
32149let DecoderNamespace = "EXT_mmvec";
32150}
32151def V6_vavgwrnd_alt : HInst<
32152(outs HvxVR:$Vd32),
32153(ins HvxVR:$Vu32, HvxVR:$Vv32),
32154"$Vd32 = vavgw($Vu32,$Vv32):rnd",
32155PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32156let hasNewValue = 1;
32157let opNewValue = 0;
32158let isCVI = 1;
32159let isPseudo = 1;
32160let isCodeGenOnly = 1;
32161let DecoderNamespace = "EXT_mmvec";
32162}
32163def V6_vccombine : HInst<
32164(outs HvxWR:$Vdd32),
32165(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
32166"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
32167tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
32168let Inst{7-7} = 0b0;
32169let Inst{13-13} = 0b0;
32170let Inst{31-21} = 0b00011010011;
32171let isPredicated = 1;
32172let hasNewValue = 1;
32173let opNewValue = 0;
32174let isCVI = 1;
32175let DecoderNamespace = "EXT_mmvec";
32176}
32177def V6_vcl0h : HInst<
32178(outs HvxVR:$Vd32),
32179(ins HvxVR:$Vu32),
32180"$Vd32.uh = vcl0($Vu32.uh)",
32181tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32182let Inst{7-5} = 0b111;
32183let Inst{13-13} = 0b0;
32184let Inst{31-16} = 0b0001111000000010;
32185let hasNewValue = 1;
32186let opNewValue = 0;
32187let isCVI = 1;
32188let DecoderNamespace = "EXT_mmvec";
32189}
32190def V6_vcl0h_alt : HInst<
32191(outs HvxVR:$Vd32),
32192(ins HvxVR:$Vu32),
32193"$Vd32 = vcl0h($Vu32)",
32194PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32195let hasNewValue = 1;
32196let opNewValue = 0;
32197let isCVI = 1;
32198let isPseudo = 1;
32199let isCodeGenOnly = 1;
32200let DecoderNamespace = "EXT_mmvec";
32201}
32202def V6_vcl0w : HInst<
32203(outs HvxVR:$Vd32),
32204(ins HvxVR:$Vu32),
32205"$Vd32.uw = vcl0($Vu32.uw)",
32206tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32207let Inst{7-5} = 0b101;
32208let Inst{13-13} = 0b0;
32209let Inst{31-16} = 0b0001111000000010;
32210let hasNewValue = 1;
32211let opNewValue = 0;
32212let isCVI = 1;
32213let DecoderNamespace = "EXT_mmvec";
32214}
32215def V6_vcl0w_alt : HInst<
32216(outs HvxVR:$Vd32),
32217(ins HvxVR:$Vu32),
32218"$Vd32 = vcl0w($Vu32)",
32219PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32220let hasNewValue = 1;
32221let opNewValue = 0;
32222let isCVI = 1;
32223let isPseudo = 1;
32224let isCodeGenOnly = 1;
32225let DecoderNamespace = "EXT_mmvec";
32226}
32227def V6_vcmov : HInst<
32228(outs HvxVR:$Vd32),
32229(ins PredRegs:$Ps4, HvxVR:$Vu32),
32230"if ($Ps4) $Vd32 = $Vu32",
32231tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
32232let Inst{7-7} = 0b0;
32233let Inst{13-13} = 0b0;
32234let Inst{31-16} = 0b0001101000000000;
32235let isPredicated = 1;
32236let hasNewValue = 1;
32237let opNewValue = 0;
32238let isCVI = 1;
32239let DecoderNamespace = "EXT_mmvec";
32240}
32241def V6_vcombine : HInst<
32242(outs HvxWR:$Vdd32),
32243(ins HvxVR:$Vu32, HvxVR:$Vv32),
32244"$Vdd32 = vcombine($Vu32,$Vv32)",
32245tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
32246let Inst{7-5} = 0b111;
32247let Inst{13-13} = 0b0;
32248let Inst{31-21} = 0b00011111010;
32249let hasNewValue = 1;
32250let opNewValue = 0;
32251let isCVI = 1;
32252let isRegSequence = 1;
32253let DecoderNamespace = "EXT_mmvec";
32254}
32255def V6_vcombine_tmp : HInst<
32256(outs HvxWR:$Vdd32),
32257(ins HvxVR:$Vu32, HvxVR:$Vv32),
32258"$Vdd32.tmp = vcombine($Vu32,$Vv32)",
32259tc_aa047364, TypeCVI_VX>, Enc_71bb9b, Requires<[UseHVXV69]> {
32260let Inst{7-5} = 0b111;
32261let Inst{13-13} = 0b0;
32262let Inst{31-21} = 0b00011110101;
32263let hasNewValue = 1;
32264let opNewValue = 0;
32265let isCVI = 1;
32266let hasHvxTmp = 1;
32267let DecoderNamespace = "EXT_mmvec";
32268}
32269def V6_vconv_hf_qf16 : HInst<
32270(outs HvxVR:$Vd32),
32271(ins HvxVR:$Vu32),
32272"$Vd32.hf = $Vu32.qf16",
32273tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32274let Inst{7-5} = 0b011;
32275let Inst{13-13} = 0b1;
32276let Inst{31-16} = 0b0001111000000100;
32277let hasNewValue = 1;
32278let opNewValue = 0;
32279let isCVI = 1;
32280let DecoderNamespace = "EXT_mmvec";
32281}
32282def V6_vconv_hf_qf32 : HInst<
32283(outs HvxVR:$Vd32),
32284(ins HvxWR:$Vuu32),
32285"$Vd32.hf = $Vuu32.qf32",
32286tc_51d0ecc3, TypeCVI_VS>, Enc_a33d04, Requires<[UseHVXV68,UseHVXQFloat]> {
32287let Inst{7-5} = 0b110;
32288let Inst{13-13} = 0b1;
32289let Inst{31-16} = 0b0001111000000100;
32290let hasNewValue = 1;
32291let opNewValue = 0;
32292let isCVI = 1;
32293let DecoderNamespace = "EXT_mmvec";
32294}
32295def V6_vconv_sf_qf32 : HInst<
32296(outs HvxVR:$Vd32),
32297(ins HvxVR:$Vu32),
32298"$Vd32.sf = $Vu32.qf32",
32299tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32300let Inst{7-5} = 0b000;
32301let Inst{13-13} = 0b1;
32302let Inst{31-16} = 0b0001111000000100;
32303let hasNewValue = 1;
32304let opNewValue = 0;
32305let isCVI = 1;
32306let DecoderNamespace = "EXT_mmvec";
32307}
32308def V6_vcvt_b_hf : HInst<
32309(outs HvxVR:$Vd32),
32310(ins HvxVR:$Vu32, HvxVR:$Vv32),
32311"$Vd32.b = vcvt($Vu32.hf,$Vv32.hf)",
32312tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32313let Inst{7-5} = 0b110;
32314let Inst{13-13} = 0b1;
32315let Inst{31-21} = 0b00011111110;
32316let hasNewValue = 1;
32317let opNewValue = 0;
32318let isCVI = 1;
32319let DecoderNamespace = "EXT_mmvec";
32320}
32321def V6_vcvt_h_hf : HInst<
32322(outs HvxVR:$Vd32),
32323(ins HvxVR:$Vu32),
32324"$Vd32.h = vcvt($Vu32.hf)",
32325tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32326let Inst{7-5} = 0b000;
32327let Inst{13-13} = 0b1;
32328let Inst{31-16} = 0b0001111000000110;
32329let hasNewValue = 1;
32330let opNewValue = 0;
32331let isCVI = 1;
32332let DecoderNamespace = "EXT_mmvec";
32333}
32334def V6_vcvt_hf_b : HInst<
32335(outs HvxWR:$Vdd32),
32336(ins HvxVR:$Vu32),
32337"$Vdd32.hf = vcvt($Vu32.b)",
32338tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32339let Inst{7-5} = 0b010;
32340let Inst{13-13} = 0b1;
32341let Inst{31-16} = 0b0001111000000100;
32342let hasNewValue = 1;
32343let opNewValue = 0;
32344let isCVI = 1;
32345let DecoderNamespace = "EXT_mmvec";
32346}
32347def V6_vcvt_hf_h : HInst<
32348(outs HvxVR:$Vd32),
32349(ins HvxVR:$Vu32),
32350"$Vd32.hf = vcvt($Vu32.h)",
32351tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32352let Inst{7-5} = 0b111;
32353let Inst{13-13} = 0b1;
32354let Inst{31-16} = 0b0001111000000100;
32355let hasNewValue = 1;
32356let opNewValue = 0;
32357let isCVI = 1;
32358let DecoderNamespace = "EXT_mmvec";
32359}
32360def V6_vcvt_hf_sf : HInst<
32361(outs HvxVR:$Vd32),
32362(ins HvxVR:$Vu32, HvxVR:$Vv32),
32363"$Vd32.hf = vcvt($Vu32.sf,$Vv32.sf)",
32364tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32365let Inst{7-5} = 0b001;
32366let Inst{13-13} = 0b1;
32367let Inst{31-21} = 0b00011111011;
32368let hasNewValue = 1;
32369let opNewValue = 0;
32370let isCVI = 1;
32371let DecoderNamespace = "EXT_mmvec";
32372}
32373def V6_vcvt_hf_ub : HInst<
32374(outs HvxWR:$Vdd32),
32375(ins HvxVR:$Vu32),
32376"$Vdd32.hf = vcvt($Vu32.ub)",
32377tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32378let Inst{7-5} = 0b001;
32379let Inst{13-13} = 0b1;
32380let Inst{31-16} = 0b0001111000000100;
32381let hasNewValue = 1;
32382let opNewValue = 0;
32383let isCVI = 1;
32384let DecoderNamespace = "EXT_mmvec";
32385}
32386def V6_vcvt_hf_uh : HInst<
32387(outs HvxVR:$Vd32),
32388(ins HvxVR:$Vu32),
32389"$Vd32.hf = vcvt($Vu32.uh)",
32390tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32391let Inst{7-5} = 0b101;
32392let Inst{13-13} = 0b1;
32393let Inst{31-16} = 0b0001111000000100;
32394let hasNewValue = 1;
32395let opNewValue = 0;
32396let isCVI = 1;
32397let DecoderNamespace = "EXT_mmvec";
32398}
32399def V6_vcvt_sf_hf : HInst<
32400(outs HvxWR:$Vdd32),
32401(ins HvxVR:$Vu32),
32402"$Vdd32.sf = vcvt($Vu32.hf)",
32403tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32404let Inst{7-5} = 0b100;
32405let Inst{13-13} = 0b1;
32406let Inst{31-16} = 0b0001111000000100;
32407let hasNewValue = 1;
32408let opNewValue = 0;
32409let isCVI = 1;
32410let DecoderNamespace = "EXT_mmvec";
32411}
32412def V6_vcvt_ub_hf : HInst<
32413(outs HvxVR:$Vd32),
32414(ins HvxVR:$Vu32, HvxVR:$Vv32),
32415"$Vd32.ub = vcvt($Vu32.hf,$Vv32.hf)",
32416tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32417let Inst{7-5} = 0b101;
32418let Inst{13-13} = 0b1;
32419let Inst{31-21} = 0b00011111110;
32420let hasNewValue = 1;
32421let opNewValue = 0;
32422let isCVI = 1;
32423let DecoderNamespace = "EXT_mmvec";
32424}
32425def V6_vcvt_uh_hf : HInst<
32426(outs HvxVR:$Vd32),
32427(ins HvxVR:$Vu32),
32428"$Vd32.uh = vcvt($Vu32.hf)",
32429tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32430let Inst{7-5} = 0b000;
32431let Inst{13-13} = 0b1;
32432let Inst{31-16} = 0b0001111000000101;
32433let hasNewValue = 1;
32434let opNewValue = 0;
32435let isCVI = 1;
32436let DecoderNamespace = "EXT_mmvec";
32437}
32438def V6_vd0 : HInst<
32439(outs HvxVR:$Vd32),
32440(ins),
32441"$Vd32 = #0",
32442CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
32443let hasNewValue = 1;
32444let opNewValue = 0;
32445let isCVI = 1;
32446let isPseudo = 1;
32447let isCodeGenOnly = 1;
32448let DecoderNamespace = "EXT_mmvec";
32449}
32450def V6_vdd0 : HInst<
32451(outs HvxWR:$Vdd32),
32452(ins),
32453"$Vdd32 = #0",
32454tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
32455let hasNewValue = 1;
32456let opNewValue = 0;
32457let isCVI = 1;
32458let isPseudo = 1;
32459let isCodeGenOnly = 1;
32460let DecoderNamespace = "EXT_mmvec";
32461}
32462def V6_vdeal : HInst<
32463(outs HvxVR:$Vy32, HvxVR:$Vx32),
32464(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
32465"vdeal($Vy32,$Vx32,$Rt32)",
32466tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
32467let Inst{7-5} = 0b010;
32468let Inst{13-13} = 0b1;
32469let Inst{31-21} = 0b00011001111;
32470let hasNewValue = 1;
32471let opNewValue = 0;
32472let hasNewValue2 = 1;
32473let opNewValue2 = 1;
32474let isCVI = 1;
32475let DecoderNamespace = "EXT_mmvec";
32476let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
32477}
32478def V6_vdealb : HInst<
32479(outs HvxVR:$Vd32),
32480(ins HvxVR:$Vu32),
32481"$Vd32.b = vdeal($Vu32.b)",
32482tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32483let Inst{7-5} = 0b111;
32484let Inst{13-13} = 0b0;
32485let Inst{31-16} = 0b0001111000000000;
32486let hasNewValue = 1;
32487let opNewValue = 0;
32488let isCVI = 1;
32489let DecoderNamespace = "EXT_mmvec";
32490}
32491def V6_vdealb4w : HInst<
32492(outs HvxVR:$Vd32),
32493(ins HvxVR:$Vu32, HvxVR:$Vv32),
32494"$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
32495tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32496let Inst{7-5} = 0b111;
32497let Inst{13-13} = 0b0;
32498let Inst{31-21} = 0b00011111001;
32499let hasNewValue = 1;
32500let opNewValue = 0;
32501let isCVI = 1;
32502let DecoderNamespace = "EXT_mmvec";
32503}
32504def V6_vdealb4w_alt : HInst<
32505(outs HvxVR:$Vd32),
32506(ins HvxVR:$Vu32, HvxVR:$Vv32),
32507"$Vd32 = vdealb4w($Vu32,$Vv32)",
32508PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32509let hasNewValue = 1;
32510let opNewValue = 0;
32511let isCVI = 1;
32512let isPseudo = 1;
32513let isCodeGenOnly = 1;
32514let DecoderNamespace = "EXT_mmvec";
32515}
32516def V6_vdealb_alt : HInst<
32517(outs HvxVR:$Vd32),
32518(ins HvxVR:$Vu32),
32519"$Vd32 = vdealb($Vu32)",
32520PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32521let hasNewValue = 1;
32522let opNewValue = 0;
32523let isCVI = 1;
32524let isPseudo = 1;
32525let isCodeGenOnly = 1;
32526let DecoderNamespace = "EXT_mmvec";
32527}
32528def V6_vdealh : HInst<
32529(outs HvxVR:$Vd32),
32530(ins HvxVR:$Vu32),
32531"$Vd32.h = vdeal($Vu32.h)",
32532tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32533let Inst{7-5} = 0b110;
32534let Inst{13-13} = 0b0;
32535let Inst{31-16} = 0b0001111000000000;
32536let hasNewValue = 1;
32537let opNewValue = 0;
32538let isCVI = 1;
32539let DecoderNamespace = "EXT_mmvec";
32540}
32541def V6_vdealh_alt : HInst<
32542(outs HvxVR:$Vd32),
32543(ins HvxVR:$Vu32),
32544"$Vd32 = vdealh($Vu32)",
32545PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32546let hasNewValue = 1;
32547let opNewValue = 0;
32548let isCVI = 1;
32549let isPseudo = 1;
32550let isCodeGenOnly = 1;
32551let DecoderNamespace = "EXT_mmvec";
32552}
32553def V6_vdealvdd : HInst<
32554(outs HvxWR:$Vdd32),
32555(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32556"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
32557tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32558let Inst{7-5} = 0b100;
32559let Inst{13-13} = 0b1;
32560let Inst{31-24} = 0b00011011;
32561let hasNewValue = 1;
32562let opNewValue = 0;
32563let isCVI = 1;
32564let DecoderNamespace = "EXT_mmvec";
32565}
32566def V6_vdelta : HInst<
32567(outs HvxVR:$Vd32),
32568(ins HvxVR:$Vu32, HvxVR:$Vv32),
32569"$Vd32 = vdelta($Vu32,$Vv32)",
32570tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32571let Inst{7-5} = 0b001;
32572let Inst{13-13} = 0b0;
32573let Inst{31-21} = 0b00011111001;
32574let hasNewValue = 1;
32575let opNewValue = 0;
32576let isCVI = 1;
32577let DecoderNamespace = "EXT_mmvec";
32578}
32579def V6_vdmpy_sf_hf : HInst<
32580(outs HvxVR:$Vd32),
32581(ins HvxVR:$Vu32, HvxVR:$Vv32),
32582"$Vd32.sf = vdmpy($Vu32.hf,$Vv32.hf)",
32583tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32584let Inst{7-5} = 0b110;
32585let Inst{13-13} = 0b1;
32586let Inst{31-21} = 0b00011111101;
32587let hasNewValue = 1;
32588let opNewValue = 0;
32589let isCVI = 1;
32590let DecoderNamespace = "EXT_mmvec";
32591}
32592def V6_vdmpy_sf_hf_acc : HInst<
32593(outs HvxVR:$Vx32),
32594(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
32595"$Vx32.sf += vdmpy($Vu32.hf,$Vv32.hf)",
32596tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32597let Inst{7-5} = 0b011;
32598let Inst{13-13} = 0b1;
32599let Inst{31-21} = 0b00011100010;
32600let hasNewValue = 1;
32601let opNewValue = 0;
32602let isAccumulator = 1;
32603let isCVI = 1;
32604let DecoderNamespace = "EXT_mmvec";
32605let Constraints = "$Vx32 = $Vx32in";
32606}
32607def V6_vdmpybus : HInst<
32608(outs HvxVR:$Vd32),
32609(ins HvxVR:$Vu32, IntRegs:$Rt32),
32610"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
32611tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32612let Inst{7-5} = 0b110;
32613let Inst{13-13} = 0b0;
32614let Inst{31-21} = 0b00011001000;
32615let hasNewValue = 1;
32616let opNewValue = 0;
32617let isCVI = 1;
32618let DecoderNamespace = "EXT_mmvec";
32619}
32620def V6_vdmpybus_acc : HInst<
32621(outs HvxVR:$Vx32),
32622(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32623"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
32624tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32625let Inst{7-5} = 0b110;
32626let Inst{13-13} = 0b1;
32627let Inst{31-21} = 0b00011001000;
32628let hasNewValue = 1;
32629let opNewValue = 0;
32630let isAccumulator = 1;
32631let isCVI = 1;
32632let DecoderNamespace = "EXT_mmvec";
32633let Constraints = "$Vx32 = $Vx32in";
32634}
32635def V6_vdmpybus_acc_alt : HInst<
32636(outs HvxVR:$Vx32),
32637(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32638"$Vx32 += vdmpybus($Vu32,$Rt32)",
32639PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32640let hasNewValue = 1;
32641let opNewValue = 0;
32642let isAccumulator = 1;
32643let isCVI = 1;
32644let isPseudo = 1;
32645let isCodeGenOnly = 1;
32646let DecoderNamespace = "EXT_mmvec";
32647let Constraints = "$Vx32 = $Vx32in";
32648}
32649def V6_vdmpybus_alt : HInst<
32650(outs HvxVR:$Vd32),
32651(ins HvxVR:$Vu32, IntRegs:$Rt32),
32652"$Vd32 = vdmpybus($Vu32,$Rt32)",
32653PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32654let hasNewValue = 1;
32655let opNewValue = 0;
32656let isCVI = 1;
32657let isPseudo = 1;
32658let isCodeGenOnly = 1;
32659let DecoderNamespace = "EXT_mmvec";
32660}
32661def V6_vdmpybus_dv : HInst<
32662(outs HvxWR:$Vdd32),
32663(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32664"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
32665tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32666let Inst{7-5} = 0b111;
32667let Inst{13-13} = 0b0;
32668let Inst{31-21} = 0b00011001000;
32669let hasNewValue = 1;
32670let opNewValue = 0;
32671let isCVI = 1;
32672let DecoderNamespace = "EXT_mmvec";
32673}
32674def V6_vdmpybus_dv_acc : HInst<
32675(outs HvxWR:$Vxx32),
32676(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32677"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
32678tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32679let Inst{7-5} = 0b111;
32680let Inst{13-13} = 0b1;
32681let Inst{31-21} = 0b00011001000;
32682let hasNewValue = 1;
32683let opNewValue = 0;
32684let isAccumulator = 1;
32685let isCVI = 1;
32686let DecoderNamespace = "EXT_mmvec";
32687let Constraints = "$Vxx32 = $Vxx32in";
32688}
32689def V6_vdmpybus_dv_acc_alt : HInst<
32690(outs HvxWR:$Vxx32),
32691(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32692"$Vxx32 += vdmpybus($Vuu32,$Rt32)",
32693PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32694let hasNewValue = 1;
32695let opNewValue = 0;
32696let isAccumulator = 1;
32697let isCVI = 1;
32698let isPseudo = 1;
32699let isCodeGenOnly = 1;
32700let DecoderNamespace = "EXT_mmvec";
32701let Constraints = "$Vxx32 = $Vxx32in";
32702}
32703def V6_vdmpybus_dv_alt : HInst<
32704(outs HvxWR:$Vdd32),
32705(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32706"$Vdd32 = vdmpybus($Vuu32,$Rt32)",
32707PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32708let hasNewValue = 1;
32709let opNewValue = 0;
32710let isCVI = 1;
32711let isPseudo = 1;
32712let isCodeGenOnly = 1;
32713let DecoderNamespace = "EXT_mmvec";
32714}
32715def V6_vdmpyhb : HInst<
32716(outs HvxVR:$Vd32),
32717(ins HvxVR:$Vu32, IntRegs:$Rt32),
32718"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
32719tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32720let Inst{7-5} = 0b010;
32721let Inst{13-13} = 0b0;
32722let Inst{31-21} = 0b00011001000;
32723let hasNewValue = 1;
32724let opNewValue = 0;
32725let isCVI = 1;
32726let DecoderNamespace = "EXT_mmvec";
32727}
32728def V6_vdmpyhb_acc : HInst<
32729(outs HvxVR:$Vx32),
32730(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32731"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
32732tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32733let Inst{7-5} = 0b011;
32734let Inst{13-13} = 0b1;
32735let Inst{31-21} = 0b00011001000;
32736let hasNewValue = 1;
32737let opNewValue = 0;
32738let isAccumulator = 1;
32739let isCVI = 1;
32740let DecoderNamespace = "EXT_mmvec";
32741let Constraints = "$Vx32 = $Vx32in";
32742}
32743def V6_vdmpyhb_acc_alt : HInst<
32744(outs HvxVR:$Vx32),
32745(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32746"$Vx32 += vdmpyhb($Vu32,$Rt32)",
32747PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32748let hasNewValue = 1;
32749let opNewValue = 0;
32750let isAccumulator = 1;
32751let isCVI = 1;
32752let isPseudo = 1;
32753let isCodeGenOnly = 1;
32754let DecoderNamespace = "EXT_mmvec";
32755let Constraints = "$Vx32 = $Vx32in";
32756}
32757def V6_vdmpyhb_alt : HInst<
32758(outs HvxVR:$Vd32),
32759(ins HvxVR:$Vu32, IntRegs:$Rt32),
32760"$Vd32 = vdmpyhb($Vu32,$Rt32)",
32761PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32762let hasNewValue = 1;
32763let opNewValue = 0;
32764let isCVI = 1;
32765let isPseudo = 1;
32766let isCodeGenOnly = 1;
32767let DecoderNamespace = "EXT_mmvec";
32768}
32769def V6_vdmpyhb_dv : HInst<
32770(outs HvxWR:$Vdd32),
32771(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32772"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
32773tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32774let Inst{7-5} = 0b100;
32775let Inst{13-13} = 0b0;
32776let Inst{31-21} = 0b00011001001;
32777let hasNewValue = 1;
32778let opNewValue = 0;
32779let isCVI = 1;
32780let DecoderNamespace = "EXT_mmvec";
32781}
32782def V6_vdmpyhb_dv_acc : HInst<
32783(outs HvxWR:$Vxx32),
32784(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32785"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
32786tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32787let Inst{7-5} = 0b100;
32788let Inst{13-13} = 0b1;
32789let Inst{31-21} = 0b00011001001;
32790let hasNewValue = 1;
32791let opNewValue = 0;
32792let isAccumulator = 1;
32793let isCVI = 1;
32794let DecoderNamespace = "EXT_mmvec";
32795let Constraints = "$Vxx32 = $Vxx32in";
32796}
32797def V6_vdmpyhb_dv_acc_alt : HInst<
32798(outs HvxWR:$Vxx32),
32799(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32800"$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
32801PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32802let hasNewValue = 1;
32803let opNewValue = 0;
32804let isAccumulator = 1;
32805let isCVI = 1;
32806let isPseudo = 1;
32807let isCodeGenOnly = 1;
32808let DecoderNamespace = "EXT_mmvec";
32809let Constraints = "$Vxx32 = $Vxx32in";
32810}
32811def V6_vdmpyhb_dv_alt : HInst<
32812(outs HvxWR:$Vdd32),
32813(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32814"$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
32815PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32816let hasNewValue = 1;
32817let opNewValue = 0;
32818let isCVI = 1;
32819let isPseudo = 1;
32820let isCodeGenOnly = 1;
32821let DecoderNamespace = "EXT_mmvec";
32822}
32823def V6_vdmpyhisat : HInst<
32824(outs HvxVR:$Vd32),
32825(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32826"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
32827tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
32828let Inst{7-5} = 0b011;
32829let Inst{13-13} = 0b0;
32830let Inst{31-21} = 0b00011001001;
32831let hasNewValue = 1;
32832let opNewValue = 0;
32833let isCVI = 1;
32834let DecoderNamespace = "EXT_mmvec";
32835}
32836def V6_vdmpyhisat_acc : HInst<
32837(outs HvxVR:$Vx32),
32838(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32839"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
32840tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
32841let Inst{7-5} = 0b010;
32842let Inst{13-13} = 0b1;
32843let Inst{31-21} = 0b00011001001;
32844let hasNewValue = 1;
32845let opNewValue = 0;
32846let isAccumulator = 1;
32847let isCVI = 1;
32848let DecoderNamespace = "EXT_mmvec";
32849let Constraints = "$Vx32 = $Vx32in";
32850}
32851def V6_vdmpyhisat_acc_alt : HInst<
32852(outs HvxVR:$Vx32),
32853(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32854"$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
32855PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32856let hasNewValue = 1;
32857let opNewValue = 0;
32858let isAccumulator = 1;
32859let isCVI = 1;
32860let isPseudo = 1;
32861let isCodeGenOnly = 1;
32862let DecoderNamespace = "EXT_mmvec";
32863let Constraints = "$Vx32 = $Vx32in";
32864}
32865def V6_vdmpyhisat_alt : HInst<
32866(outs HvxVR:$Vd32),
32867(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32868"$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
32869PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32870let hasNewValue = 1;
32871let opNewValue = 0;
32872let isCVI = 1;
32873let isPseudo = 1;
32874let isCodeGenOnly = 1;
32875let DecoderNamespace = "EXT_mmvec";
32876}
32877def V6_vdmpyhsat : HInst<
32878(outs HvxVR:$Vd32),
32879(ins HvxVR:$Vu32, IntRegs:$Rt32),
32880"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
32881tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32882let Inst{7-5} = 0b010;
32883let Inst{13-13} = 0b0;
32884let Inst{31-21} = 0b00011001001;
32885let hasNewValue = 1;
32886let opNewValue = 0;
32887let isCVI = 1;
32888let DecoderNamespace = "EXT_mmvec";
32889}
32890def V6_vdmpyhsat_acc : HInst<
32891(outs HvxVR:$Vx32),
32892(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32893"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
32894tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32895let Inst{7-5} = 0b011;
32896let Inst{13-13} = 0b1;
32897let Inst{31-21} = 0b00011001001;
32898let hasNewValue = 1;
32899let opNewValue = 0;
32900let isAccumulator = 1;
32901let isCVI = 1;
32902let DecoderNamespace = "EXT_mmvec";
32903let Constraints = "$Vx32 = $Vx32in";
32904}
32905def V6_vdmpyhsat_acc_alt : HInst<
32906(outs HvxVR:$Vx32),
32907(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32908"$Vx32 += vdmpyh($Vu32,$Rt32):sat",
32909PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32910let hasNewValue = 1;
32911let opNewValue = 0;
32912let isAccumulator = 1;
32913let isCVI = 1;
32914let isPseudo = 1;
32915let isCodeGenOnly = 1;
32916let DecoderNamespace = "EXT_mmvec";
32917let Constraints = "$Vx32 = $Vx32in";
32918}
32919def V6_vdmpyhsat_alt : HInst<
32920(outs HvxVR:$Vd32),
32921(ins HvxVR:$Vu32, IntRegs:$Rt32),
32922"$Vd32 = vdmpyh($Vu32,$Rt32):sat",
32923PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32924let hasNewValue = 1;
32925let opNewValue = 0;
32926let isCVI = 1;
32927let isPseudo = 1;
32928let isCodeGenOnly = 1;
32929let DecoderNamespace = "EXT_mmvec";
32930}
32931def V6_vdmpyhsuisat : HInst<
32932(outs HvxVR:$Vd32),
32933(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32934"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
32935tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
32936let Inst{7-5} = 0b001;
32937let Inst{13-13} = 0b0;
32938let Inst{31-21} = 0b00011001001;
32939let hasNewValue = 1;
32940let opNewValue = 0;
32941let isCVI = 1;
32942let DecoderNamespace = "EXT_mmvec";
32943}
32944def V6_vdmpyhsuisat_acc : HInst<
32945(outs HvxVR:$Vx32),
32946(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32947"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
32948tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
32949let Inst{7-5} = 0b001;
32950let Inst{13-13} = 0b1;
32951let Inst{31-21} = 0b00011001001;
32952let hasNewValue = 1;
32953let opNewValue = 0;
32954let isAccumulator = 1;
32955let isCVI = 1;
32956let DecoderNamespace = "EXT_mmvec";
32957let Constraints = "$Vx32 = $Vx32in";
32958}
32959def V6_vdmpyhsuisat_acc_alt : HInst<
32960(outs HvxVR:$Vx32),
32961(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32962"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
32963PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32964let hasNewValue = 1;
32965let opNewValue = 0;
32966let isAccumulator = 1;
32967let isCVI = 1;
32968let isPseudo = 1;
32969let isCodeGenOnly = 1;
32970let DecoderNamespace = "EXT_mmvec";
32971let Constraints = "$Vx32 = $Vx32in";
32972}
32973def V6_vdmpyhsuisat_alt : HInst<
32974(outs HvxVR:$Vd32),
32975(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32976"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
32977PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32978let hasNewValue = 1;
32979let opNewValue = 0;
32980let isCVI = 1;
32981let isPseudo = 1;
32982let isCodeGenOnly = 1;
32983let DecoderNamespace = "EXT_mmvec";
32984}
32985def V6_vdmpyhsusat : HInst<
32986(outs HvxVR:$Vd32),
32987(ins HvxVR:$Vu32, IntRegs:$Rt32),
32988"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
32989tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32990let Inst{7-5} = 0b000;
32991let Inst{13-13} = 0b0;
32992let Inst{31-21} = 0b00011001001;
32993let hasNewValue = 1;
32994let opNewValue = 0;
32995let isCVI = 1;
32996let DecoderNamespace = "EXT_mmvec";
32997}
32998def V6_vdmpyhsusat_acc : HInst<
32999(outs HvxVR:$Vx32),
33000(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33001"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
33002tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33003let Inst{7-5} = 0b000;
33004let Inst{13-13} = 0b1;
33005let Inst{31-21} = 0b00011001001;
33006let hasNewValue = 1;
33007let opNewValue = 0;
33008let isAccumulator = 1;
33009let isCVI = 1;
33010let DecoderNamespace = "EXT_mmvec";
33011let Constraints = "$Vx32 = $Vx32in";
33012}
33013def V6_vdmpyhsusat_acc_alt : HInst<
33014(outs HvxVR:$Vx32),
33015(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33016"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
33017PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33018let hasNewValue = 1;
33019let opNewValue = 0;
33020let isAccumulator = 1;
33021let isCVI = 1;
33022let isPseudo = 1;
33023let isCodeGenOnly = 1;
33024let DecoderNamespace = "EXT_mmvec";
33025let Constraints = "$Vx32 = $Vx32in";
33026}
33027def V6_vdmpyhsusat_alt : HInst<
33028(outs HvxVR:$Vd32),
33029(ins HvxVR:$Vu32, IntRegs:$Rt32),
33030"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
33031PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33032let hasNewValue = 1;
33033let opNewValue = 0;
33034let isCVI = 1;
33035let isPseudo = 1;
33036let isCodeGenOnly = 1;
33037let DecoderNamespace = "EXT_mmvec";
33038}
33039def V6_vdmpyhvsat : HInst<
33040(outs HvxVR:$Vd32),
33041(ins HvxVR:$Vu32, HvxVR:$Vv32),
33042"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
33043tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
33044let Inst{7-5} = 0b011;
33045let Inst{13-13} = 0b0;
33046let Inst{31-21} = 0b00011100000;
33047let hasNewValue = 1;
33048let opNewValue = 0;
33049let isCVI = 1;
33050let DecoderNamespace = "EXT_mmvec";
33051}
33052def V6_vdmpyhvsat_acc : HInst<
33053(outs HvxVR:$Vx32),
33054(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33055"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
33056tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33057let Inst{7-5} = 0b011;
33058let Inst{13-13} = 0b1;
33059let Inst{31-21} = 0b00011100000;
33060let hasNewValue = 1;
33061let opNewValue = 0;
33062let isAccumulator = 1;
33063let isCVI = 1;
33064let DecoderNamespace = "EXT_mmvec";
33065let Constraints = "$Vx32 = $Vx32in";
33066}
33067def V6_vdmpyhvsat_acc_alt : HInst<
33068(outs HvxVR:$Vx32),
33069(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33070"$Vx32 += vdmpyh($Vu32,$Vv32):sat",
33071PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33072let hasNewValue = 1;
33073let opNewValue = 0;
33074let isAccumulator = 1;
33075let isCVI = 1;
33076let isPseudo = 1;
33077let isCodeGenOnly = 1;
33078let DecoderNamespace = "EXT_mmvec";
33079let Constraints = "$Vx32 = $Vx32in";
33080}
33081def V6_vdmpyhvsat_alt : HInst<
33082(outs HvxVR:$Vd32),
33083(ins HvxVR:$Vu32, HvxVR:$Vv32),
33084"$Vd32 = vdmpyh($Vu32,$Vv32):sat",
33085PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33086let hasNewValue = 1;
33087let opNewValue = 0;
33088let isCVI = 1;
33089let isPseudo = 1;
33090let isCodeGenOnly = 1;
33091let DecoderNamespace = "EXT_mmvec";
33092}
33093def V6_vdsaduh : HInst<
33094(outs HvxWR:$Vdd32),
33095(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33096"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
33097tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33098let Inst{7-5} = 0b101;
33099let Inst{13-13} = 0b0;
33100let Inst{31-21} = 0b00011001000;
33101let hasNewValue = 1;
33102let opNewValue = 0;
33103let isCVI = 1;
33104let DecoderNamespace = "EXT_mmvec";
33105}
33106def V6_vdsaduh_acc : HInst<
33107(outs HvxWR:$Vxx32),
33108(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33109"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
33110tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33111let Inst{7-5} = 0b000;
33112let Inst{13-13} = 0b1;
33113let Inst{31-21} = 0b00011001011;
33114let hasNewValue = 1;
33115let opNewValue = 0;
33116let isAccumulator = 1;
33117let isCVI = 1;
33118let DecoderNamespace = "EXT_mmvec";
33119let Constraints = "$Vxx32 = $Vxx32in";
33120}
33121def V6_vdsaduh_acc_alt : HInst<
33122(outs HvxWR:$Vxx32),
33123(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33124"$Vxx32 += vdsaduh($Vuu32,$Rt32)",
33125PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33126let hasNewValue = 1;
33127let opNewValue = 0;
33128let isAccumulator = 1;
33129let isCVI = 1;
33130let isPseudo = 1;
33131let isCodeGenOnly = 1;
33132let DecoderNamespace = "EXT_mmvec";
33133let Constraints = "$Vxx32 = $Vxx32in";
33134}
33135def V6_vdsaduh_alt : HInst<
33136(outs HvxWR:$Vdd32),
33137(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33138"$Vdd32 = vdsaduh($Vuu32,$Rt32)",
33139PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33140let hasNewValue = 1;
33141let opNewValue = 0;
33142let isCVI = 1;
33143let isPseudo = 1;
33144let isCodeGenOnly = 1;
33145let DecoderNamespace = "EXT_mmvec";
33146}
33147def V6_veqb : HInst<
33148(outs HvxQR:$Qd4),
33149(ins HvxVR:$Vu32, HvxVR:$Vv32),
33150"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
33151tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33152let Inst{7-2} = 0b000000;
33153let Inst{13-13} = 0b0;
33154let Inst{31-21} = 0b00011111100;
33155let hasNewValue = 1;
33156let opNewValue = 0;
33157let isCVI = 1;
33158let DecoderNamespace = "EXT_mmvec";
33159}
33160def V6_veqb_and : HInst<
33161(outs HvxQR:$Qx4),
33162(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33163"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
33164tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33165let Inst{7-2} = 0b000000;
33166let Inst{13-13} = 0b1;
33167let Inst{31-21} = 0b00011100100;
33168let isCVI = 1;
33169let DecoderNamespace = "EXT_mmvec";
33170let Constraints = "$Qx4 = $Qx4in";
33171}
33172def V6_veqb_or : HInst<
33173(outs HvxQR:$Qx4),
33174(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33175"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
33176tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33177let Inst{7-2} = 0b010000;
33178let Inst{13-13} = 0b1;
33179let Inst{31-21} = 0b00011100100;
33180let isAccumulator = 1;
33181let isCVI = 1;
33182let DecoderNamespace = "EXT_mmvec";
33183let Constraints = "$Qx4 = $Qx4in";
33184}
33185def V6_veqb_xor : HInst<
33186(outs HvxQR:$Qx4),
33187(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33188"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
33189tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33190let Inst{7-2} = 0b100000;
33191let Inst{13-13} = 0b1;
33192let Inst{31-21} = 0b00011100100;
33193let isCVI = 1;
33194let DecoderNamespace = "EXT_mmvec";
33195let Constraints = "$Qx4 = $Qx4in";
33196}
33197def V6_veqh : HInst<
33198(outs HvxQR:$Qd4),
33199(ins HvxVR:$Vu32, HvxVR:$Vv32),
33200"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
33201tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33202let Inst{7-2} = 0b000001;
33203let Inst{13-13} = 0b0;
33204let Inst{31-21} = 0b00011111100;
33205let hasNewValue = 1;
33206let opNewValue = 0;
33207let isCVI = 1;
33208let DecoderNamespace = "EXT_mmvec";
33209}
33210def V6_veqh_and : HInst<
33211(outs HvxQR:$Qx4),
33212(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33213"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
33214tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33215let Inst{7-2} = 0b000001;
33216let Inst{13-13} = 0b1;
33217let Inst{31-21} = 0b00011100100;
33218let isCVI = 1;
33219let DecoderNamespace = "EXT_mmvec";
33220let Constraints = "$Qx4 = $Qx4in";
33221}
33222def V6_veqh_or : HInst<
33223(outs HvxQR:$Qx4),
33224(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33225"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
33226tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33227let Inst{7-2} = 0b010001;
33228let Inst{13-13} = 0b1;
33229let Inst{31-21} = 0b00011100100;
33230let isAccumulator = 1;
33231let isCVI = 1;
33232let DecoderNamespace = "EXT_mmvec";
33233let Constraints = "$Qx4 = $Qx4in";
33234}
33235def V6_veqh_xor : HInst<
33236(outs HvxQR:$Qx4),
33237(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33238"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
33239tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33240let Inst{7-2} = 0b100001;
33241let Inst{13-13} = 0b1;
33242let Inst{31-21} = 0b00011100100;
33243let isCVI = 1;
33244let DecoderNamespace = "EXT_mmvec";
33245let Constraints = "$Qx4 = $Qx4in";
33246}
33247def V6_veqw : HInst<
33248(outs HvxQR:$Qd4),
33249(ins HvxVR:$Vu32, HvxVR:$Vv32),
33250"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
33251tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33252let Inst{7-2} = 0b000010;
33253let Inst{13-13} = 0b0;
33254let Inst{31-21} = 0b00011111100;
33255let hasNewValue = 1;
33256let opNewValue = 0;
33257let isCVI = 1;
33258let DecoderNamespace = "EXT_mmvec";
33259}
33260def V6_veqw_and : HInst<
33261(outs HvxQR:$Qx4),
33262(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33263"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
33264tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33265let Inst{7-2} = 0b000010;
33266let Inst{13-13} = 0b1;
33267let Inst{31-21} = 0b00011100100;
33268let isCVI = 1;
33269let DecoderNamespace = "EXT_mmvec";
33270let Constraints = "$Qx4 = $Qx4in";
33271}
33272def V6_veqw_or : HInst<
33273(outs HvxQR:$Qx4),
33274(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33275"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
33276tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33277let Inst{7-2} = 0b010010;
33278let Inst{13-13} = 0b1;
33279let Inst{31-21} = 0b00011100100;
33280let isAccumulator = 1;
33281let isCVI = 1;
33282let DecoderNamespace = "EXT_mmvec";
33283let Constraints = "$Qx4 = $Qx4in";
33284}
33285def V6_veqw_xor : HInst<
33286(outs HvxQR:$Qx4),
33287(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33288"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
33289tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33290let Inst{7-2} = 0b100010;
33291let Inst{13-13} = 0b1;
33292let Inst{31-21} = 0b00011100100;
33293let isCVI = 1;
33294let DecoderNamespace = "EXT_mmvec";
33295let Constraints = "$Qx4 = $Qx4in";
33296}
33297def V6_vfmax_hf : HInst<
33298(outs HvxVR:$Vd32),
33299(ins HvxVR:$Vu32, HvxVR:$Vv32),
33300"$Vd32.hf = vfmax($Vu32.hf,$Vv32.hf)",
33301tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33302let Inst{7-5} = 0b010;
33303let Inst{13-13} = 0b1;
33304let Inst{31-21} = 0b00011100011;
33305let hasNewValue = 1;
33306let opNewValue = 0;
33307let isCVI = 1;
33308let DecoderNamespace = "EXT_mmvec";
33309}
33310def V6_vfmax_sf : HInst<
33311(outs HvxVR:$Vd32),
33312(ins HvxVR:$Vu32, HvxVR:$Vv32),
33313"$Vd32.sf = vfmax($Vu32.sf,$Vv32.sf)",
33314tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33315let Inst{7-5} = 0b011;
33316let Inst{13-13} = 0b1;
33317let Inst{31-21} = 0b00011100011;
33318let hasNewValue = 1;
33319let opNewValue = 0;
33320let isCVI = 1;
33321let DecoderNamespace = "EXT_mmvec";
33322}
33323def V6_vfmin_hf : HInst<
33324(outs HvxVR:$Vd32),
33325(ins HvxVR:$Vu32, HvxVR:$Vv32),
33326"$Vd32.hf = vfmin($Vu32.hf,$Vv32.hf)",
33327tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33328let Inst{7-5} = 0b000;
33329let Inst{13-13} = 0b1;
33330let Inst{31-21} = 0b00011100011;
33331let hasNewValue = 1;
33332let opNewValue = 0;
33333let isCVI = 1;
33334let DecoderNamespace = "EXT_mmvec";
33335}
33336def V6_vfmin_sf : HInst<
33337(outs HvxVR:$Vd32),
33338(ins HvxVR:$Vu32, HvxVR:$Vv32),
33339"$Vd32.sf = vfmin($Vu32.sf,$Vv32.sf)",
33340tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33341let Inst{7-5} = 0b001;
33342let Inst{13-13} = 0b1;
33343let Inst{31-21} = 0b00011100011;
33344let hasNewValue = 1;
33345let opNewValue = 0;
33346let isCVI = 1;
33347let DecoderNamespace = "EXT_mmvec";
33348}
33349def V6_vfneg_hf : HInst<
33350(outs HvxVR:$Vd32),
33351(ins HvxVR:$Vu32),
33352"$Vd32.hf = vfneg($Vu32.hf)",
33353tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33354let Inst{7-5} = 0b010;
33355let Inst{13-13} = 0b1;
33356let Inst{31-16} = 0b0001111000000110;
33357let hasNewValue = 1;
33358let opNewValue = 0;
33359let isCVI = 1;
33360let DecoderNamespace = "EXT_mmvec";
33361}
33362def V6_vfneg_sf : HInst<
33363(outs HvxVR:$Vd32),
33364(ins HvxVR:$Vu32),
33365"$Vd32.sf = vfneg($Vu32.sf)",
33366tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33367let Inst{7-5} = 0b011;
33368let Inst{13-13} = 0b1;
33369let Inst{31-16} = 0b0001111000000110;
33370let hasNewValue = 1;
33371let opNewValue = 0;
33372let isCVI = 1;
33373let DecoderNamespace = "EXT_mmvec";
33374}
33375def V6_vgathermh : HInst<
33376(outs),
33377(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33378"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33379tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33380let Inst{12-5} = 0b00001000;
33381let Inst{31-21} = 0b00101111000;
33382let hasNewValue = 1;
33383let opNewValue = 0;
33384let accessSize = HalfWordAccess;
33385let isCVLoad = 1;
33386let isCVI = 1;
33387let mayLoad = 1;
33388let Defs = [VTMP];
33389let DecoderNamespace = "EXT_mmvec";
33390}
33391def V6_vgathermhq : HInst<
33392(outs),
33393(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33394"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33395tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33396let Inst{12-7} = 0b001010;
33397let Inst{31-21} = 0b00101111000;
33398let hasNewValue = 1;
33399let opNewValue = 0;
33400let accessSize = HalfWordAccess;
33401let isCVLoad = 1;
33402let isCVI = 1;
33403let mayLoad = 1;
33404let Defs = [VTMP];
33405let DecoderNamespace = "EXT_mmvec";
33406}
33407def V6_vgathermhw : HInst<
33408(outs),
33409(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33410"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33411tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> {
33412let Inst{12-5} = 0b00010000;
33413let Inst{31-21} = 0b00101111000;
33414let hasNewValue = 1;
33415let opNewValue = 0;
33416let accessSize = HalfWordAccess;
33417let isCVLoad = 1;
33418let isCVI = 1;
33419let mayLoad = 1;
33420let Defs = [VTMP];
33421let DecoderNamespace = "EXT_mmvec";
33422}
33423def V6_vgathermhwq : HInst<
33424(outs),
33425(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33426"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33427tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> {
33428let Inst{12-7} = 0b001100;
33429let Inst{31-21} = 0b00101111000;
33430let hasNewValue = 1;
33431let opNewValue = 0;
33432let accessSize = HalfWordAccess;
33433let isCVLoad = 1;
33434let isCVI = 1;
33435let mayLoad = 1;
33436let Defs = [VTMP];
33437let DecoderNamespace = "EXT_mmvec";
33438}
33439def V6_vgathermw : HInst<
33440(outs),
33441(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33442"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33443tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33444let Inst{12-5} = 0b00000000;
33445let Inst{31-21} = 0b00101111000;
33446let hasNewValue = 1;
33447let opNewValue = 0;
33448let accessSize = WordAccess;
33449let isCVLoad = 1;
33450let isCVI = 1;
33451let mayLoad = 1;
33452let Defs = [VTMP];
33453let DecoderNamespace = "EXT_mmvec";
33454}
33455def V6_vgathermwq : HInst<
33456(outs),
33457(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33458"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33459tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33460let Inst{12-7} = 0b001000;
33461let Inst{31-21} = 0b00101111000;
33462let hasNewValue = 1;
33463let opNewValue = 0;
33464let accessSize = WordAccess;
33465let isCVLoad = 1;
33466let isCVI = 1;
33467let mayLoad = 1;
33468let Defs = [VTMP];
33469let DecoderNamespace = "EXT_mmvec";
33470}
33471def V6_vgtb : HInst<
33472(outs HvxQR:$Qd4),
33473(ins HvxVR:$Vu32, HvxVR:$Vv32),
33474"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
33475tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33476let Inst{7-2} = 0b000100;
33477let Inst{13-13} = 0b0;
33478let Inst{31-21} = 0b00011111100;
33479let hasNewValue = 1;
33480let opNewValue = 0;
33481let isCVI = 1;
33482let DecoderNamespace = "EXT_mmvec";
33483}
33484def V6_vgtb_and : HInst<
33485(outs HvxQR:$Qx4),
33486(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33487"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
33488tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33489let Inst{7-2} = 0b000100;
33490let Inst{13-13} = 0b1;
33491let Inst{31-21} = 0b00011100100;
33492let isCVI = 1;
33493let DecoderNamespace = "EXT_mmvec";
33494let Constraints = "$Qx4 = $Qx4in";
33495}
33496def V6_vgtb_or : HInst<
33497(outs HvxQR:$Qx4),
33498(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33499"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
33500tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33501let Inst{7-2} = 0b010100;
33502let Inst{13-13} = 0b1;
33503let Inst{31-21} = 0b00011100100;
33504let isAccumulator = 1;
33505let isCVI = 1;
33506let DecoderNamespace = "EXT_mmvec";
33507let Constraints = "$Qx4 = $Qx4in";
33508}
33509def V6_vgtb_xor : HInst<
33510(outs HvxQR:$Qx4),
33511(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33512"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
33513tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33514let Inst{7-2} = 0b100100;
33515let Inst{13-13} = 0b1;
33516let Inst{31-21} = 0b00011100100;
33517let isCVI = 1;
33518let DecoderNamespace = "EXT_mmvec";
33519let Constraints = "$Qx4 = $Qx4in";
33520}
33521def V6_vgth : HInst<
33522(outs HvxQR:$Qd4),
33523(ins HvxVR:$Vu32, HvxVR:$Vv32),
33524"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
33525tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33526let Inst{7-2} = 0b000101;
33527let Inst{13-13} = 0b0;
33528let Inst{31-21} = 0b00011111100;
33529let hasNewValue = 1;
33530let opNewValue = 0;
33531let isCVI = 1;
33532let DecoderNamespace = "EXT_mmvec";
33533}
33534def V6_vgth_and : HInst<
33535(outs HvxQR:$Qx4),
33536(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33537"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
33538tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33539let Inst{7-2} = 0b000101;
33540let Inst{13-13} = 0b1;
33541let Inst{31-21} = 0b00011100100;
33542let isCVI = 1;
33543let DecoderNamespace = "EXT_mmvec";
33544let Constraints = "$Qx4 = $Qx4in";
33545}
33546def V6_vgth_or : HInst<
33547(outs HvxQR:$Qx4),
33548(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33549"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
33550tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33551let Inst{7-2} = 0b010101;
33552let Inst{13-13} = 0b1;
33553let Inst{31-21} = 0b00011100100;
33554let isAccumulator = 1;
33555let isCVI = 1;
33556let DecoderNamespace = "EXT_mmvec";
33557let Constraints = "$Qx4 = $Qx4in";
33558}
33559def V6_vgth_xor : HInst<
33560(outs HvxQR:$Qx4),
33561(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33562"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
33563tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33564let Inst{7-2} = 0b100101;
33565let Inst{13-13} = 0b1;
33566let Inst{31-21} = 0b00011100100;
33567let isCVI = 1;
33568let DecoderNamespace = "EXT_mmvec";
33569let Constraints = "$Qx4 = $Qx4in";
33570}
33571def V6_vgthf : HInst<
33572(outs HvxQR:$Qd4),
33573(ins HvxVR:$Vu32, HvxVR:$Vv32),
33574"$Qd4 = vcmp.gt($Vu32.hf,$Vv32.hf)",
33575tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33576let Inst{7-2} = 0b011101;
33577let Inst{13-13} = 0b1;
33578let Inst{31-21} = 0b00011100100;
33579let hasNewValue = 1;
33580let opNewValue = 0;
33581let isCVI = 1;
33582let DecoderNamespace = "EXT_mmvec";
33583}
33584def V6_vgthf_and : HInst<
33585(outs HvxQR:$Qx4),
33586(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33587"$Qx4 &= vcmp.gt($Vu32.hf,$Vv32.hf)",
33588tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33589let Inst{7-2} = 0b110011;
33590let Inst{13-13} = 0b1;
33591let Inst{31-21} = 0b00011100100;
33592let isCVI = 1;
33593let DecoderNamespace = "EXT_mmvec";
33594let Constraints = "$Qx4 = $Qx4in";
33595}
33596def V6_vgthf_or : HInst<
33597(outs HvxQR:$Qx4),
33598(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33599"$Qx4 |= vcmp.gt($Vu32.hf,$Vv32.hf)",
33600tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33601let Inst{7-2} = 0b001101;
33602let Inst{13-13} = 0b1;
33603let Inst{31-21} = 0b00011100100;
33604let isAccumulator = 1;
33605let isCVI = 1;
33606let DecoderNamespace = "EXT_mmvec";
33607let Constraints = "$Qx4 = $Qx4in";
33608}
33609def V6_vgthf_xor : HInst<
33610(outs HvxQR:$Qx4),
33611(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33612"$Qx4 ^= vcmp.gt($Vu32.hf,$Vv32.hf)",
33613tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33614let Inst{7-2} = 0b111011;
33615let Inst{13-13} = 0b1;
33616let Inst{31-21} = 0b00011100100;
33617let isCVI = 1;
33618let DecoderNamespace = "EXT_mmvec";
33619let Constraints = "$Qx4 = $Qx4in";
33620}
33621def V6_vgtsf : HInst<
33622(outs HvxQR:$Qd4),
33623(ins HvxVR:$Vu32, HvxVR:$Vv32),
33624"$Qd4 = vcmp.gt($Vu32.sf,$Vv32.sf)",
33625tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33626let Inst{7-2} = 0b011100;
33627let Inst{13-13} = 0b1;
33628let Inst{31-21} = 0b00011100100;
33629let hasNewValue = 1;
33630let opNewValue = 0;
33631let isCVI = 1;
33632let DecoderNamespace = "EXT_mmvec";
33633}
33634def V6_vgtsf_and : HInst<
33635(outs HvxQR:$Qx4),
33636(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33637"$Qx4 &= vcmp.gt($Vu32.sf,$Vv32.sf)",
33638tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33639let Inst{7-2} = 0b110010;
33640let Inst{13-13} = 0b1;
33641let Inst{31-21} = 0b00011100100;
33642let isCVI = 1;
33643let DecoderNamespace = "EXT_mmvec";
33644let Constraints = "$Qx4 = $Qx4in";
33645}
33646def V6_vgtsf_or : HInst<
33647(outs HvxQR:$Qx4),
33648(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33649"$Qx4 |= vcmp.gt($Vu32.sf,$Vv32.sf)",
33650tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33651let Inst{7-2} = 0b001100;
33652let Inst{13-13} = 0b1;
33653let Inst{31-21} = 0b00011100100;
33654let isAccumulator = 1;
33655let isCVI = 1;
33656let DecoderNamespace = "EXT_mmvec";
33657let Constraints = "$Qx4 = $Qx4in";
33658}
33659def V6_vgtsf_xor : HInst<
33660(outs HvxQR:$Qx4),
33661(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33662"$Qx4 ^= vcmp.gt($Vu32.sf,$Vv32.sf)",
33663tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33664let Inst{7-2} = 0b111010;
33665let Inst{13-13} = 0b1;
33666let Inst{31-21} = 0b00011100100;
33667let isCVI = 1;
33668let DecoderNamespace = "EXT_mmvec";
33669let Constraints = "$Qx4 = $Qx4in";
33670}
33671def V6_vgtub : HInst<
33672(outs HvxQR:$Qd4),
33673(ins HvxVR:$Vu32, HvxVR:$Vv32),
33674"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
33675tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33676let Inst{7-2} = 0b001000;
33677let Inst{13-13} = 0b0;
33678let Inst{31-21} = 0b00011111100;
33679let hasNewValue = 1;
33680let opNewValue = 0;
33681let isCVI = 1;
33682let DecoderNamespace = "EXT_mmvec";
33683}
33684def V6_vgtub_and : HInst<
33685(outs HvxQR:$Qx4),
33686(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33687"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
33688tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33689let Inst{7-2} = 0b001000;
33690let Inst{13-13} = 0b1;
33691let Inst{31-21} = 0b00011100100;
33692let isCVI = 1;
33693let DecoderNamespace = "EXT_mmvec";
33694let Constraints = "$Qx4 = $Qx4in";
33695}
33696def V6_vgtub_or : HInst<
33697(outs HvxQR:$Qx4),
33698(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33699"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
33700tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33701let Inst{7-2} = 0b011000;
33702let Inst{13-13} = 0b1;
33703let Inst{31-21} = 0b00011100100;
33704let isAccumulator = 1;
33705let isCVI = 1;
33706let DecoderNamespace = "EXT_mmvec";
33707let Constraints = "$Qx4 = $Qx4in";
33708}
33709def V6_vgtub_xor : HInst<
33710(outs HvxQR:$Qx4),
33711(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33712"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
33713tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33714let Inst{7-2} = 0b101000;
33715let Inst{13-13} = 0b1;
33716let Inst{31-21} = 0b00011100100;
33717let isCVI = 1;
33718let DecoderNamespace = "EXT_mmvec";
33719let Constraints = "$Qx4 = $Qx4in";
33720}
33721def V6_vgtuh : HInst<
33722(outs HvxQR:$Qd4),
33723(ins HvxVR:$Vu32, HvxVR:$Vv32),
33724"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
33725tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33726let Inst{7-2} = 0b001001;
33727let Inst{13-13} = 0b0;
33728let Inst{31-21} = 0b00011111100;
33729let hasNewValue = 1;
33730let opNewValue = 0;
33731let isCVI = 1;
33732let DecoderNamespace = "EXT_mmvec";
33733}
33734def V6_vgtuh_and : HInst<
33735(outs HvxQR:$Qx4),
33736(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33737"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
33738tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33739let Inst{7-2} = 0b001001;
33740let Inst{13-13} = 0b1;
33741let Inst{31-21} = 0b00011100100;
33742let isCVI = 1;
33743let DecoderNamespace = "EXT_mmvec";
33744let Constraints = "$Qx4 = $Qx4in";
33745}
33746def V6_vgtuh_or : HInst<
33747(outs HvxQR:$Qx4),
33748(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33749"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
33750tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33751let Inst{7-2} = 0b011001;
33752let Inst{13-13} = 0b1;
33753let Inst{31-21} = 0b00011100100;
33754let isAccumulator = 1;
33755let isCVI = 1;
33756let DecoderNamespace = "EXT_mmvec";
33757let Constraints = "$Qx4 = $Qx4in";
33758}
33759def V6_vgtuh_xor : HInst<
33760(outs HvxQR:$Qx4),
33761(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33762"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
33763tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33764let Inst{7-2} = 0b101001;
33765let Inst{13-13} = 0b1;
33766let Inst{31-21} = 0b00011100100;
33767let isCVI = 1;
33768let DecoderNamespace = "EXT_mmvec";
33769let Constraints = "$Qx4 = $Qx4in";
33770}
33771def V6_vgtuw : HInst<
33772(outs HvxQR:$Qd4),
33773(ins HvxVR:$Vu32, HvxVR:$Vv32),
33774"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
33775tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33776let Inst{7-2} = 0b001010;
33777let Inst{13-13} = 0b0;
33778let Inst{31-21} = 0b00011111100;
33779let hasNewValue = 1;
33780let opNewValue = 0;
33781let isCVI = 1;
33782let DecoderNamespace = "EXT_mmvec";
33783}
33784def V6_vgtuw_and : HInst<
33785(outs HvxQR:$Qx4),
33786(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33787"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
33788tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33789let Inst{7-2} = 0b001010;
33790let Inst{13-13} = 0b1;
33791let Inst{31-21} = 0b00011100100;
33792let isCVI = 1;
33793let DecoderNamespace = "EXT_mmvec";
33794let Constraints = "$Qx4 = $Qx4in";
33795}
33796def V6_vgtuw_or : HInst<
33797(outs HvxQR:$Qx4),
33798(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33799"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
33800tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33801let Inst{7-2} = 0b011010;
33802let Inst{13-13} = 0b1;
33803let Inst{31-21} = 0b00011100100;
33804let isAccumulator = 1;
33805let isCVI = 1;
33806let DecoderNamespace = "EXT_mmvec";
33807let Constraints = "$Qx4 = $Qx4in";
33808}
33809def V6_vgtuw_xor : HInst<
33810(outs HvxQR:$Qx4),
33811(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33812"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
33813tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33814let Inst{7-2} = 0b101010;
33815let Inst{13-13} = 0b1;
33816let Inst{31-21} = 0b00011100100;
33817let isCVI = 1;
33818let DecoderNamespace = "EXT_mmvec";
33819let Constraints = "$Qx4 = $Qx4in";
33820}
33821def V6_vgtw : HInst<
33822(outs HvxQR:$Qd4),
33823(ins HvxVR:$Vu32, HvxVR:$Vv32),
33824"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
33825tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33826let Inst{7-2} = 0b000110;
33827let Inst{13-13} = 0b0;
33828let Inst{31-21} = 0b00011111100;
33829let hasNewValue = 1;
33830let opNewValue = 0;
33831let isCVI = 1;
33832let DecoderNamespace = "EXT_mmvec";
33833}
33834def V6_vgtw_and : HInst<
33835(outs HvxQR:$Qx4),
33836(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33837"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
33838tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33839let Inst{7-2} = 0b000110;
33840let Inst{13-13} = 0b1;
33841let Inst{31-21} = 0b00011100100;
33842let isCVI = 1;
33843let DecoderNamespace = "EXT_mmvec";
33844let Constraints = "$Qx4 = $Qx4in";
33845}
33846def V6_vgtw_or : HInst<
33847(outs HvxQR:$Qx4),
33848(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33849"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
33850tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33851let Inst{7-2} = 0b010110;
33852let Inst{13-13} = 0b1;
33853let Inst{31-21} = 0b00011100100;
33854let isAccumulator = 1;
33855let isCVI = 1;
33856let DecoderNamespace = "EXT_mmvec";
33857let Constraints = "$Qx4 = $Qx4in";
33858}
33859def V6_vgtw_xor : HInst<
33860(outs HvxQR:$Qx4),
33861(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33862"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
33863tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33864let Inst{7-2} = 0b100110;
33865let Inst{13-13} = 0b1;
33866let Inst{31-21} = 0b00011100100;
33867let isCVI = 1;
33868let DecoderNamespace = "EXT_mmvec";
33869let Constraints = "$Qx4 = $Qx4in";
33870}
33871def V6_vhist : HInst<
33872(outs),
33873(ins),
33874"vhist",
33875tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
33876let Inst{13-0} = 0b10000010000000;
33877let Inst{31-16} = 0b0001111000000000;
33878let isCVI = 1;
33879let DecoderNamespace = "EXT_mmvec";
33880}
33881def V6_vhistq : HInst<
33882(outs),
33883(ins HvxQR:$Qv4),
33884"vhist($Qv4)",
33885tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
33886let Inst{13-0} = 0b10000010000000;
33887let Inst{21-16} = 0b000010;
33888let Inst{31-24} = 0b00011110;
33889let isCVI = 1;
33890let DecoderNamespace = "EXT_mmvec";
33891}
33892def V6_vinsertwr : HInst<
33893(outs HvxVR:$Vx32),
33894(ins HvxVR:$Vx32in, IntRegs:$Rt32),
33895"$Vx32.w = vinsert($Rt32)",
33896tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
33897let Inst{13-5} = 0b100000001;
33898let Inst{31-21} = 0b00011001101;
33899let hasNewValue = 1;
33900let opNewValue = 0;
33901let isCVI = 1;
33902let DecoderNamespace = "EXT_mmvec";
33903let Constraints = "$Vx32 = $Vx32in";
33904}
33905def V6_vlalignb : HInst<
33906(outs HvxVR:$Vd32),
33907(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33908"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
33909tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
33910let Inst{7-5} = 0b001;
33911let Inst{13-13} = 0b0;
33912let Inst{31-24} = 0b00011011;
33913let hasNewValue = 1;
33914let opNewValue = 0;
33915let isCVI = 1;
33916let DecoderNamespace = "EXT_mmvec";
33917}
33918def V6_vlalignbi : HInst<
33919(outs HvxVR:$Vd32),
33920(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33921"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
33922tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
33923let Inst{13-13} = 0b1;
33924let Inst{31-21} = 0b00011110011;
33925let hasNewValue = 1;
33926let opNewValue = 0;
33927let isCVI = 1;
33928let DecoderNamespace = "EXT_mmvec";
33929}
33930def V6_vlsrb : HInst<
33931(outs HvxVR:$Vd32),
33932(ins HvxVR:$Vu32, IntRegs:$Rt32),
33933"$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
33934tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
33935let Inst{7-5} = 0b011;
33936let Inst{13-13} = 0b0;
33937let Inst{31-21} = 0b00011001100;
33938let hasNewValue = 1;
33939let opNewValue = 0;
33940let isCVI = 1;
33941let DecoderNamespace = "EXT_mmvec";
33942}
33943def V6_vlsrh : HInst<
33944(outs HvxVR:$Vd32),
33945(ins HvxVR:$Vu32, IntRegs:$Rt32),
33946"$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
33947tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
33948let Inst{7-5} = 0b010;
33949let Inst{13-13} = 0b0;
33950let Inst{31-21} = 0b00011001100;
33951let hasNewValue = 1;
33952let opNewValue = 0;
33953let isCVI = 1;
33954let DecoderNamespace = "EXT_mmvec";
33955}
33956def V6_vlsrh_alt : HInst<
33957(outs HvxVR:$Vd32),
33958(ins HvxVR:$Vu32, IntRegs:$Rt32),
33959"$Vd32 = vlsrh($Vu32,$Rt32)",
33960PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33961let hasNewValue = 1;
33962let opNewValue = 0;
33963let isCVI = 1;
33964let isPseudo = 1;
33965let isCodeGenOnly = 1;
33966let DecoderNamespace = "EXT_mmvec";
33967}
33968def V6_vlsrhv : HInst<
33969(outs HvxVR:$Vd32),
33970(ins HvxVR:$Vu32, HvxVR:$Vv32),
33971"$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
33972tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
33973let Inst{7-5} = 0b010;
33974let Inst{13-13} = 0b0;
33975let Inst{31-21} = 0b00011111101;
33976let hasNewValue = 1;
33977let opNewValue = 0;
33978let isCVI = 1;
33979let DecoderNamespace = "EXT_mmvec";
33980}
33981def V6_vlsrhv_alt : HInst<
33982(outs HvxVR:$Vd32),
33983(ins HvxVR:$Vu32, HvxVR:$Vv32),
33984"$Vd32 = vlsrh($Vu32,$Vv32)",
33985PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33986let hasNewValue = 1;
33987let opNewValue = 0;
33988let isCVI = 1;
33989let isPseudo = 1;
33990let isCodeGenOnly = 1;
33991let DecoderNamespace = "EXT_mmvec";
33992}
33993def V6_vlsrw : HInst<
33994(outs HvxVR:$Vd32),
33995(ins HvxVR:$Vu32, IntRegs:$Rt32),
33996"$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
33997tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
33998let Inst{7-5} = 0b001;
33999let Inst{13-13} = 0b0;
34000let Inst{31-21} = 0b00011001100;
34001let hasNewValue = 1;
34002let opNewValue = 0;
34003let isCVI = 1;
34004let DecoderNamespace = "EXT_mmvec";
34005}
34006def V6_vlsrw_alt : HInst<
34007(outs HvxVR:$Vd32),
34008(ins HvxVR:$Vu32, IntRegs:$Rt32),
34009"$Vd32 = vlsrw($Vu32,$Rt32)",
34010PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34011let hasNewValue = 1;
34012let opNewValue = 0;
34013let isCVI = 1;
34014let isPseudo = 1;
34015let isCodeGenOnly = 1;
34016let DecoderNamespace = "EXT_mmvec";
34017}
34018def V6_vlsrwv : HInst<
34019(outs HvxVR:$Vd32),
34020(ins HvxVR:$Vu32, HvxVR:$Vv32),
34021"$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
34022tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
34023let Inst{7-5} = 0b001;
34024let Inst{13-13} = 0b0;
34025let Inst{31-21} = 0b00011111101;
34026let hasNewValue = 1;
34027let opNewValue = 0;
34028let isCVI = 1;
34029let DecoderNamespace = "EXT_mmvec";
34030}
34031def V6_vlsrwv_alt : HInst<
34032(outs HvxVR:$Vd32),
34033(ins HvxVR:$Vu32, HvxVR:$Vv32),
34034"$Vd32 = vlsrw($Vu32,$Vv32)",
34035PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34036let hasNewValue = 1;
34037let opNewValue = 0;
34038let isCVI = 1;
34039let isPseudo = 1;
34040let isCodeGenOnly = 1;
34041let DecoderNamespace = "EXT_mmvec";
34042}
34043def V6_vlut4 : HInst<
34044(outs HvxVR:$Vd32),
34045(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34046"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
34047tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
34048let Inst{7-5} = 0b100;
34049let Inst{13-13} = 0b0;
34050let Inst{31-21} = 0b00011001011;
34051let hasNewValue = 1;
34052let opNewValue = 0;
34053let isCVI = 1;
34054let DecoderNamespace = "EXT_mmvec";
34055}
34056def V6_vlutvvb : HInst<
34057(outs HvxVR:$Vd32),
34058(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34059"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
34060tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
34061let Inst{7-5} = 0b001;
34062let Inst{13-13} = 0b1;
34063let Inst{31-24} = 0b00011011;
34064let hasNewValue = 1;
34065let opNewValue = 0;
34066let isCVI = 1;
34067let DecoderNamespace = "EXT_mmvec";
34068}
34069def V6_vlutvvb_nm : HInst<
34070(outs HvxVR:$Vd32),
34071(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34072"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
34073tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
34074let Inst{7-5} = 0b011;
34075let Inst{13-13} = 0b0;
34076let Inst{31-24} = 0b00011000;
34077let hasNewValue = 1;
34078let opNewValue = 0;
34079let isCVI = 1;
34080let DecoderNamespace = "EXT_mmvec";
34081}
34082def V6_vlutvvb_oracc : HInst<
34083(outs HvxVR:$Vx32),
34084(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34085"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
34086tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
34087let Inst{7-5} = 0b101;
34088let Inst{13-13} = 0b1;
34089let Inst{31-24} = 0b00011011;
34090let hasNewValue = 1;
34091let opNewValue = 0;
34092let isAccumulator = 1;
34093let isCVI = 1;
34094let DecoderNamespace = "EXT_mmvec";
34095let Constraints = "$Vx32 = $Vx32in";
34096}
34097def V6_vlutvvb_oracci : HInst<
34098(outs HvxVR:$Vx32),
34099(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34100"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
34101tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
34102let Inst{13-13} = 0b1;
34103let Inst{31-21} = 0b00011100110;
34104let hasNewValue = 1;
34105let opNewValue = 0;
34106let isAccumulator = 1;
34107let isCVI = 1;
34108let DecoderNamespace = "EXT_mmvec";
34109let Constraints = "$Vx32 = $Vx32in";
34110}
34111def V6_vlutvvbi : HInst<
34112(outs HvxVR:$Vd32),
34113(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34114"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
34115tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
34116let Inst{13-13} = 0b0;
34117let Inst{31-21} = 0b00011110001;
34118let hasNewValue = 1;
34119let opNewValue = 0;
34120let isCVI = 1;
34121let DecoderNamespace = "EXT_mmvec";
34122}
34123def V6_vlutvwh : HInst<
34124(outs HvxWR:$Vdd32),
34125(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34126"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
34127tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
34128let Inst{7-5} = 0b110;
34129let Inst{13-13} = 0b1;
34130let Inst{31-24} = 0b00011011;
34131let hasNewValue = 1;
34132let opNewValue = 0;
34133let isCVI = 1;
34134let DecoderNamespace = "EXT_mmvec";
34135}
34136def V6_vlutvwh_nm : HInst<
34137(outs HvxWR:$Vdd32),
34138(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34139"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
34140tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
34141let Inst{7-5} = 0b100;
34142let Inst{13-13} = 0b0;
34143let Inst{31-24} = 0b00011000;
34144let hasNewValue = 1;
34145let opNewValue = 0;
34146let isCVI = 1;
34147let DecoderNamespace = "EXT_mmvec";
34148}
34149def V6_vlutvwh_oracc : HInst<
34150(outs HvxWR:$Vxx32),
34151(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34152"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
34153tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
34154let Inst{7-5} = 0b111;
34155let Inst{13-13} = 0b1;
34156let Inst{31-24} = 0b00011011;
34157let hasNewValue = 1;
34158let opNewValue = 0;
34159let isAccumulator = 1;
34160let isCVI = 1;
34161let DecoderNamespace = "EXT_mmvec";
34162let Constraints = "$Vxx32 = $Vxx32in";
34163}
34164def V6_vlutvwh_oracci : HInst<
34165(outs HvxWR:$Vxx32),
34166(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34167"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
34168tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
34169let Inst{13-13} = 0b1;
34170let Inst{31-21} = 0b00011100111;
34171let hasNewValue = 1;
34172let opNewValue = 0;
34173let isAccumulator = 1;
34174let isCVI = 1;
34175let DecoderNamespace = "EXT_mmvec";
34176let Constraints = "$Vxx32 = $Vxx32in";
34177}
34178def V6_vlutvwhi : HInst<
34179(outs HvxWR:$Vdd32),
34180(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34181"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
34182tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
34183let Inst{13-13} = 0b0;
34184let Inst{31-21} = 0b00011110011;
34185let hasNewValue = 1;
34186let opNewValue = 0;
34187let isCVI = 1;
34188let DecoderNamespace = "EXT_mmvec";
34189}
34190def V6_vmax_hf : HInst<
34191(outs HvxVR:$Vd32),
34192(ins HvxVR:$Vu32, HvxVR:$Vv32),
34193"$Vd32.hf = vmax($Vu32.hf,$Vv32.hf)",
34194tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34195let Inst{7-5} = 0b011;
34196let Inst{13-13} = 0b1;
34197let Inst{31-21} = 0b00011111110;
34198let hasNewValue = 1;
34199let opNewValue = 0;
34200let isCVI = 1;
34201let DecoderNamespace = "EXT_mmvec";
34202}
34203def V6_vmax_sf : HInst<
34204(outs HvxVR:$Vd32),
34205(ins HvxVR:$Vu32, HvxVR:$Vv32),
34206"$Vd32.sf = vmax($Vu32.sf,$Vv32.sf)",
34207tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34208let Inst{7-5} = 0b001;
34209let Inst{13-13} = 0b1;
34210let Inst{31-21} = 0b00011111110;
34211let hasNewValue = 1;
34212let opNewValue = 0;
34213let isCVI = 1;
34214let DecoderNamespace = "EXT_mmvec";
34215}
34216def V6_vmaxb : HInst<
34217(outs HvxVR:$Vd32),
34218(ins HvxVR:$Vu32, HvxVR:$Vv32),
34219"$Vd32.b = vmax($Vu32.b,$Vv32.b)",
34220tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34221let Inst{7-5} = 0b101;
34222let Inst{13-13} = 0b0;
34223let Inst{31-21} = 0b00011111001;
34224let hasNewValue = 1;
34225let opNewValue = 0;
34226let isCVI = 1;
34227let DecoderNamespace = "EXT_mmvec";
34228}
34229def V6_vmaxb_alt : HInst<
34230(outs HvxVR:$Vd32),
34231(ins HvxVR:$Vu32, HvxVR:$Vv32),
34232"$Vd32 = vmaxb($Vu32,$Vv32)",
34233PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34234let hasNewValue = 1;
34235let opNewValue = 0;
34236let isCVI = 1;
34237let isPseudo = 1;
34238let isCodeGenOnly = 1;
34239let DecoderNamespace = "EXT_mmvec";
34240}
34241def V6_vmaxh : HInst<
34242(outs HvxVR:$Vd32),
34243(ins HvxVR:$Vu32, HvxVR:$Vv32),
34244"$Vd32.h = vmax($Vu32.h,$Vv32.h)",
34245tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34246let Inst{7-5} = 0b111;
34247let Inst{13-13} = 0b0;
34248let Inst{31-21} = 0b00011111000;
34249let hasNewValue = 1;
34250let opNewValue = 0;
34251let isCVI = 1;
34252let DecoderNamespace = "EXT_mmvec";
34253}
34254def V6_vmaxh_alt : HInst<
34255(outs HvxVR:$Vd32),
34256(ins HvxVR:$Vu32, HvxVR:$Vv32),
34257"$Vd32 = vmaxh($Vu32,$Vv32)",
34258PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34259let hasNewValue = 1;
34260let opNewValue = 0;
34261let isCVI = 1;
34262let isPseudo = 1;
34263let isCodeGenOnly = 1;
34264let DecoderNamespace = "EXT_mmvec";
34265}
34266def V6_vmaxub : HInst<
34267(outs HvxVR:$Vd32),
34268(ins HvxVR:$Vu32, HvxVR:$Vv32),
34269"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
34270tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34271let Inst{7-5} = 0b101;
34272let Inst{13-13} = 0b0;
34273let Inst{31-21} = 0b00011111000;
34274let hasNewValue = 1;
34275let opNewValue = 0;
34276let isCVI = 1;
34277let DecoderNamespace = "EXT_mmvec";
34278}
34279def V6_vmaxub_alt : HInst<
34280(outs HvxVR:$Vd32),
34281(ins HvxVR:$Vu32, HvxVR:$Vv32),
34282"$Vd32 = vmaxub($Vu32,$Vv32)",
34283PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34284let hasNewValue = 1;
34285let opNewValue = 0;
34286let isCVI = 1;
34287let isPseudo = 1;
34288let isCodeGenOnly = 1;
34289let DecoderNamespace = "EXT_mmvec";
34290}
34291def V6_vmaxuh : HInst<
34292(outs HvxVR:$Vd32),
34293(ins HvxVR:$Vu32, HvxVR:$Vv32),
34294"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
34295tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34296let Inst{7-5} = 0b110;
34297let Inst{13-13} = 0b0;
34298let Inst{31-21} = 0b00011111000;
34299let hasNewValue = 1;
34300let opNewValue = 0;
34301let isCVI = 1;
34302let DecoderNamespace = "EXT_mmvec";
34303}
34304def V6_vmaxuh_alt : HInst<
34305(outs HvxVR:$Vd32),
34306(ins HvxVR:$Vu32, HvxVR:$Vv32),
34307"$Vd32 = vmaxuh($Vu32,$Vv32)",
34308PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34309let hasNewValue = 1;
34310let opNewValue = 0;
34311let isCVI = 1;
34312let isPseudo = 1;
34313let isCodeGenOnly = 1;
34314let DecoderNamespace = "EXT_mmvec";
34315}
34316def V6_vmaxw : HInst<
34317(outs HvxVR:$Vd32),
34318(ins HvxVR:$Vu32, HvxVR:$Vv32),
34319"$Vd32.w = vmax($Vu32.w,$Vv32.w)",
34320tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34321let Inst{7-5} = 0b000;
34322let Inst{13-13} = 0b0;
34323let Inst{31-21} = 0b00011111001;
34324let hasNewValue = 1;
34325let opNewValue = 0;
34326let isCVI = 1;
34327let DecoderNamespace = "EXT_mmvec";
34328}
34329def V6_vmaxw_alt : HInst<
34330(outs HvxVR:$Vd32),
34331(ins HvxVR:$Vu32, HvxVR:$Vv32),
34332"$Vd32 = vmaxw($Vu32,$Vv32)",
34333PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34334let hasNewValue = 1;
34335let opNewValue = 0;
34336let isCVI = 1;
34337let isPseudo = 1;
34338let isCodeGenOnly = 1;
34339let DecoderNamespace = "EXT_mmvec";
34340}
34341def V6_vmin_hf : HInst<
34342(outs HvxVR:$Vd32),
34343(ins HvxVR:$Vu32, HvxVR:$Vv32),
34344"$Vd32.hf = vmin($Vu32.hf,$Vv32.hf)",
34345tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34346let Inst{7-5} = 0b100;
34347let Inst{13-13} = 0b1;
34348let Inst{31-21} = 0b00011111110;
34349let hasNewValue = 1;
34350let opNewValue = 0;
34351let isCVI = 1;
34352let DecoderNamespace = "EXT_mmvec";
34353}
34354def V6_vmin_sf : HInst<
34355(outs HvxVR:$Vd32),
34356(ins HvxVR:$Vu32, HvxVR:$Vv32),
34357"$Vd32.sf = vmin($Vu32.sf,$Vv32.sf)",
34358tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34359let Inst{7-5} = 0b010;
34360let Inst{13-13} = 0b1;
34361let Inst{31-21} = 0b00011111110;
34362let hasNewValue = 1;
34363let opNewValue = 0;
34364let isCVI = 1;
34365let DecoderNamespace = "EXT_mmvec";
34366}
34367def V6_vminb : HInst<
34368(outs HvxVR:$Vd32),
34369(ins HvxVR:$Vu32, HvxVR:$Vv32),
34370"$Vd32.b = vmin($Vu32.b,$Vv32.b)",
34371tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34372let Inst{7-5} = 0b100;
34373let Inst{13-13} = 0b0;
34374let Inst{31-21} = 0b00011111001;
34375let hasNewValue = 1;
34376let opNewValue = 0;
34377let isCVI = 1;
34378let DecoderNamespace = "EXT_mmvec";
34379}
34380def V6_vminb_alt : HInst<
34381(outs HvxVR:$Vd32),
34382(ins HvxVR:$Vu32, HvxVR:$Vv32),
34383"$Vd32 = vminb($Vu32,$Vv32)",
34384PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34385let hasNewValue = 1;
34386let opNewValue = 0;
34387let isCVI = 1;
34388let isPseudo = 1;
34389let isCodeGenOnly = 1;
34390let DecoderNamespace = "EXT_mmvec";
34391}
34392def V6_vminh : HInst<
34393(outs HvxVR:$Vd32),
34394(ins HvxVR:$Vu32, HvxVR:$Vv32),
34395"$Vd32.h = vmin($Vu32.h,$Vv32.h)",
34396tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34397let Inst{7-5} = 0b011;
34398let Inst{13-13} = 0b0;
34399let Inst{31-21} = 0b00011111000;
34400let hasNewValue = 1;
34401let opNewValue = 0;
34402let isCVI = 1;
34403let DecoderNamespace = "EXT_mmvec";
34404}
34405def V6_vminh_alt : HInst<
34406(outs HvxVR:$Vd32),
34407(ins HvxVR:$Vu32, HvxVR:$Vv32),
34408"$Vd32 = vminh($Vu32,$Vv32)",
34409PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34410let hasNewValue = 1;
34411let opNewValue = 0;
34412let isCVI = 1;
34413let isPseudo = 1;
34414let isCodeGenOnly = 1;
34415let DecoderNamespace = "EXT_mmvec";
34416}
34417def V6_vminub : HInst<
34418(outs HvxVR:$Vd32),
34419(ins HvxVR:$Vu32, HvxVR:$Vv32),
34420"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
34421tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34422let Inst{7-5} = 0b001;
34423let Inst{13-13} = 0b0;
34424let Inst{31-21} = 0b00011111000;
34425let hasNewValue = 1;
34426let opNewValue = 0;
34427let isCVI = 1;
34428let DecoderNamespace = "EXT_mmvec";
34429}
34430def V6_vminub_alt : HInst<
34431(outs HvxVR:$Vd32),
34432(ins HvxVR:$Vu32, HvxVR:$Vv32),
34433"$Vd32 = vminub($Vu32,$Vv32)",
34434PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34435let hasNewValue = 1;
34436let opNewValue = 0;
34437let isCVI = 1;
34438let isPseudo = 1;
34439let isCodeGenOnly = 1;
34440let DecoderNamespace = "EXT_mmvec";
34441}
34442def V6_vminuh : HInst<
34443(outs HvxVR:$Vd32),
34444(ins HvxVR:$Vu32, HvxVR:$Vv32),
34445"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
34446tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34447let Inst{7-5} = 0b010;
34448let Inst{13-13} = 0b0;
34449let Inst{31-21} = 0b00011111000;
34450let hasNewValue = 1;
34451let opNewValue = 0;
34452let isCVI = 1;
34453let DecoderNamespace = "EXT_mmvec";
34454}
34455def V6_vminuh_alt : HInst<
34456(outs HvxVR:$Vd32),
34457(ins HvxVR:$Vu32, HvxVR:$Vv32),
34458"$Vd32 = vminuh($Vu32,$Vv32)",
34459PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34460let hasNewValue = 1;
34461let opNewValue = 0;
34462let isCVI = 1;
34463let isPseudo = 1;
34464let isCodeGenOnly = 1;
34465let DecoderNamespace = "EXT_mmvec";
34466}
34467def V6_vminw : HInst<
34468(outs HvxVR:$Vd32),
34469(ins HvxVR:$Vu32, HvxVR:$Vv32),
34470"$Vd32.w = vmin($Vu32.w,$Vv32.w)",
34471tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34472let Inst{7-5} = 0b100;
34473let Inst{13-13} = 0b0;
34474let Inst{31-21} = 0b00011111000;
34475let hasNewValue = 1;
34476let opNewValue = 0;
34477let isCVI = 1;
34478let DecoderNamespace = "EXT_mmvec";
34479}
34480def V6_vminw_alt : HInst<
34481(outs HvxVR:$Vd32),
34482(ins HvxVR:$Vu32, HvxVR:$Vv32),
34483"$Vd32 = vminw($Vu32,$Vv32)",
34484PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34485let hasNewValue = 1;
34486let opNewValue = 0;
34487let isCVI = 1;
34488let isPseudo = 1;
34489let isCodeGenOnly = 1;
34490let DecoderNamespace = "EXT_mmvec";
34491}
34492def V6_vmpabus : HInst<
34493(outs HvxWR:$Vdd32),
34494(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34495"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
34496tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
34497let Inst{7-5} = 0b110;
34498let Inst{13-13} = 0b0;
34499let Inst{31-21} = 0b00011001001;
34500let hasNewValue = 1;
34501let opNewValue = 0;
34502let isCVI = 1;
34503let DecoderNamespace = "EXT_mmvec";
34504}
34505def V6_vmpabus_acc : HInst<
34506(outs HvxWR:$Vxx32),
34507(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34508"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
34509tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
34510let Inst{7-5} = 0b110;
34511let Inst{13-13} = 0b1;
34512let Inst{31-21} = 0b00011001001;
34513let hasNewValue = 1;
34514let opNewValue = 0;
34515let isAccumulator = 1;
34516let isCVI = 1;
34517let DecoderNamespace = "EXT_mmvec";
34518let Constraints = "$Vxx32 = $Vxx32in";
34519}
34520def V6_vmpabus_acc_alt : HInst<
34521(outs HvxWR:$Vxx32),
34522(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34523"$Vxx32 += vmpabus($Vuu32,$Rt32)",
34524PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34525let hasNewValue = 1;
34526let opNewValue = 0;
34527let isAccumulator = 1;
34528let isCVI = 1;
34529let isPseudo = 1;
34530let isCodeGenOnly = 1;
34531let DecoderNamespace = "EXT_mmvec";
34532let Constraints = "$Vxx32 = $Vxx32in";
34533}
34534def V6_vmpabus_alt : HInst<
34535(outs HvxWR:$Vdd32),
34536(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34537"$Vdd32 = vmpabus($Vuu32,$Rt32)",
34538PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34539let hasNewValue = 1;
34540let opNewValue = 0;
34541let isCVI = 1;
34542let isPseudo = 1;
34543let isCodeGenOnly = 1;
34544let DecoderNamespace = "EXT_mmvec";
34545}
34546def V6_vmpabusv : HInst<
34547(outs HvxWR:$Vdd32),
34548(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
34549"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
34550tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
34551let Inst{7-5} = 0b011;
34552let Inst{13-13} = 0b0;
34553let Inst{31-21} = 0b00011100001;
34554let hasNewValue = 1;
34555let opNewValue = 0;
34556let isCVI = 1;
34557let DecoderNamespace = "EXT_mmvec";
34558}
34559def V6_vmpabusv_alt : HInst<
34560(outs HvxWR:$Vdd32),
34561(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
34562"$Vdd32 = vmpabus($Vuu32,$Vvv32)",
34563PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34564let hasNewValue = 1;
34565let opNewValue = 0;
34566let isCVI = 1;
34567let isPseudo = 1;
34568let isCodeGenOnly = 1;
34569let DecoderNamespace = "EXT_mmvec";
34570}
34571def V6_vmpabuu : HInst<
34572(outs HvxWR:$Vdd32),
34573(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34574"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
34575tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
34576let Inst{7-5} = 0b011;
34577let Inst{13-13} = 0b0;
34578let Inst{31-21} = 0b00011001011;
34579let hasNewValue = 1;
34580let opNewValue = 0;
34581let isCVI = 1;
34582let DecoderNamespace = "EXT_mmvec";
34583}
34584def V6_vmpabuu_acc : HInst<
34585(outs HvxWR:$Vxx32),
34586(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34587"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
34588tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
34589let Inst{7-5} = 0b100;
34590let Inst{13-13} = 0b1;
34591let Inst{31-21} = 0b00011001101;
34592let hasNewValue = 1;
34593let opNewValue = 0;
34594let isAccumulator = 1;
34595let isCVI = 1;
34596let DecoderNamespace = "EXT_mmvec";
34597let Constraints = "$Vxx32 = $Vxx32in";
34598}
34599def V6_vmpabuu_acc_alt : HInst<
34600(outs HvxWR:$Vxx32),
34601(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34602"$Vxx32 += vmpabuu($Vuu32,$Rt32)",
34603PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34604let hasNewValue = 1;
34605let opNewValue = 0;
34606let isAccumulator = 1;
34607let isCVI = 1;
34608let isPseudo = 1;
34609let isCodeGenOnly = 1;
34610let DecoderNamespace = "EXT_mmvec";
34611let Constraints = "$Vxx32 = $Vxx32in";
34612}
34613def V6_vmpabuu_alt : HInst<
34614(outs HvxWR:$Vdd32),
34615(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34616"$Vdd32 = vmpabuu($Vuu32,$Rt32)",
34617PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34618let hasNewValue = 1;
34619let opNewValue = 0;
34620let isCVI = 1;
34621let isPseudo = 1;
34622let isCodeGenOnly = 1;
34623let DecoderNamespace = "EXT_mmvec";
34624}
34625def V6_vmpabuuv : HInst<
34626(outs HvxWR:$Vdd32),
34627(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
34628"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
34629tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
34630let Inst{7-5} = 0b111;
34631let Inst{13-13} = 0b0;
34632let Inst{31-21} = 0b00011100111;
34633let hasNewValue = 1;
34634let opNewValue = 0;
34635let isCVI = 1;
34636let DecoderNamespace = "EXT_mmvec";
34637}
34638def V6_vmpabuuv_alt : HInst<
34639(outs HvxWR:$Vdd32),
34640(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
34641"$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
34642PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34643let hasNewValue = 1;
34644let opNewValue = 0;
34645let isCVI = 1;
34646let isPseudo = 1;
34647let isCodeGenOnly = 1;
34648let DecoderNamespace = "EXT_mmvec";
34649}
34650def V6_vmpahb : HInst<
34651(outs HvxWR:$Vdd32),
34652(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34653"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
34654tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
34655let Inst{7-5} = 0b111;
34656let Inst{13-13} = 0b0;
34657let Inst{31-21} = 0b00011001001;
34658let hasNewValue = 1;
34659let opNewValue = 0;
34660let isCVI = 1;
34661let DecoderNamespace = "EXT_mmvec";
34662}
34663def V6_vmpahb_acc : HInst<
34664(outs HvxWR:$Vxx32),
34665(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34666"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
34667tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
34668let Inst{7-5} = 0b111;
34669let Inst{13-13} = 0b1;
34670let Inst{31-21} = 0b00011001001;
34671let hasNewValue = 1;
34672let opNewValue = 0;
34673let isAccumulator = 1;
34674let isCVI = 1;
34675let DecoderNamespace = "EXT_mmvec";
34676let Constraints = "$Vxx32 = $Vxx32in";
34677}
34678def V6_vmpahb_acc_alt : HInst<
34679(outs HvxWR:$Vxx32),
34680(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34681"$Vxx32 += vmpahb($Vuu32,$Rt32)",
34682PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34683let hasNewValue = 1;
34684let opNewValue = 0;
34685let isAccumulator = 1;
34686let isCVI = 1;
34687let isPseudo = 1;
34688let isCodeGenOnly = 1;
34689let DecoderNamespace = "EXT_mmvec";
34690let Constraints = "$Vxx32 = $Vxx32in";
34691}
34692def V6_vmpahb_alt : HInst<
34693(outs HvxWR:$Vdd32),
34694(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34695"$Vdd32 = vmpahb($Vuu32,$Rt32)",
34696PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34697let hasNewValue = 1;
34698let opNewValue = 0;
34699let isCVI = 1;
34700let isPseudo = 1;
34701let isCodeGenOnly = 1;
34702let DecoderNamespace = "EXT_mmvec";
34703}
34704def V6_vmpahhsat : HInst<
34705(outs HvxVR:$Vx32),
34706(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34707"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
34708tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34709let Inst{7-5} = 0b100;
34710let Inst{13-13} = 0b1;
34711let Inst{31-21} = 0b00011001100;
34712let hasNewValue = 1;
34713let opNewValue = 0;
34714let isCVI = 1;
34715let DecoderNamespace = "EXT_mmvec";
34716let Constraints = "$Vx32 = $Vx32in";
34717}
34718def V6_vmpauhb : HInst<
34719(outs HvxWR:$Vdd32),
34720(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34721"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
34722tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
34723let Inst{7-5} = 0b101;
34724let Inst{13-13} = 0b0;
34725let Inst{31-21} = 0b00011001100;
34726let hasNewValue = 1;
34727let opNewValue = 0;
34728let isCVI = 1;
34729let DecoderNamespace = "EXT_mmvec";
34730}
34731def V6_vmpauhb_acc : HInst<
34732(outs HvxWR:$Vxx32),
34733(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34734"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
34735tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
34736let Inst{7-5} = 0b010;
34737let Inst{13-13} = 0b1;
34738let Inst{31-21} = 0b00011001100;
34739let hasNewValue = 1;
34740let opNewValue = 0;
34741let isAccumulator = 1;
34742let isCVI = 1;
34743let DecoderNamespace = "EXT_mmvec";
34744let Constraints = "$Vxx32 = $Vxx32in";
34745}
34746def V6_vmpauhb_acc_alt : HInst<
34747(outs HvxWR:$Vxx32),
34748(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34749"$Vxx32 += vmpauhb($Vuu32,$Rt32)",
34750PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34751let hasNewValue = 1;
34752let opNewValue = 0;
34753let isAccumulator = 1;
34754let isCVI = 1;
34755let isPseudo = 1;
34756let isCodeGenOnly = 1;
34757let DecoderNamespace = "EXT_mmvec";
34758let Constraints = "$Vxx32 = $Vxx32in";
34759}
34760def V6_vmpauhb_alt : HInst<
34761(outs HvxWR:$Vdd32),
34762(ins HvxWR:$Vuu32, IntRegs:$Rt32),
34763"$Vdd32 = vmpauhb($Vuu32,$Rt32)",
34764PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34765let hasNewValue = 1;
34766let opNewValue = 0;
34767let isCVI = 1;
34768let isPseudo = 1;
34769let isCodeGenOnly = 1;
34770let DecoderNamespace = "EXT_mmvec";
34771}
34772def V6_vmpauhuhsat : HInst<
34773(outs HvxVR:$Vx32),
34774(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34775"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
34776tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34777let Inst{7-5} = 0b101;
34778let Inst{13-13} = 0b1;
34779let Inst{31-21} = 0b00011001100;
34780let hasNewValue = 1;
34781let opNewValue = 0;
34782let isCVI = 1;
34783let DecoderNamespace = "EXT_mmvec";
34784let Constraints = "$Vx32 = $Vx32in";
34785}
34786def V6_vmpsuhuhsat : HInst<
34787(outs HvxVR:$Vx32),
34788(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34789"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
34790tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34791let Inst{7-5} = 0b110;
34792let Inst{13-13} = 0b1;
34793let Inst{31-21} = 0b00011001100;
34794let hasNewValue = 1;
34795let opNewValue = 0;
34796let isCVI = 1;
34797let DecoderNamespace = "EXT_mmvec";
34798let Constraints = "$Vx32 = $Vx32in";
34799}
34800def V6_vmpy_hf_hf : HInst<
34801(outs HvxVR:$Vd32),
34802(ins HvxVR:$Vu32, HvxVR:$Vv32),
34803"$Vd32.hf = vmpy($Vu32.hf,$Vv32.hf)",
34804tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
34805let Inst{7-5} = 0b011;
34806let Inst{13-13} = 0b1;
34807let Inst{31-21} = 0b00011111100;
34808let hasNewValue = 1;
34809let opNewValue = 0;
34810let isCVI = 1;
34811let DecoderNamespace = "EXT_mmvec";
34812}
34813def V6_vmpy_hf_hf_acc : HInst<
34814(outs HvxVR:$Vx32),
34815(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34816"$Vx32.hf += vmpy($Vu32.hf,$Vv32.hf)",
34817tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
34818let Inst{7-5} = 0b010;
34819let Inst{13-13} = 0b1;
34820let Inst{31-21} = 0b00011100010;
34821let hasNewValue = 1;
34822let opNewValue = 0;
34823let isAccumulator = 1;
34824let isCVI = 1;
34825let DecoderNamespace = "EXT_mmvec";
34826let Constraints = "$Vx32 = $Vx32in";
34827}
34828def V6_vmpy_qf16 : HInst<
34829(outs HvxVR:$Vd32),
34830(ins HvxVR:$Vu32, HvxVR:$Vv32),
34831"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.qf16)",
34832tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34833let Inst{7-5} = 0b011;
34834let Inst{13-13} = 0b1;
34835let Inst{31-21} = 0b00011111111;
34836let hasNewValue = 1;
34837let opNewValue = 0;
34838let isCVI = 1;
34839let DecoderNamespace = "EXT_mmvec";
34840}
34841def V6_vmpy_qf16_hf : HInst<
34842(outs HvxVR:$Vd32),
34843(ins HvxVR:$Vu32, HvxVR:$Vv32),
34844"$Vd32.qf16 = vmpy($Vu32.hf,$Vv32.hf)",
34845tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34846let Inst{7-5} = 0b100;
34847let Inst{13-13} = 0b1;
34848let Inst{31-21} = 0b00011111111;
34849let hasNewValue = 1;
34850let opNewValue = 0;
34851let isCVI = 1;
34852let DecoderNamespace = "EXT_mmvec";
34853}
34854def V6_vmpy_qf16_mix_hf : HInst<
34855(outs HvxVR:$Vd32),
34856(ins HvxVR:$Vu32, HvxVR:$Vv32),
34857"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.hf)",
34858tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34859let Inst{7-5} = 0b101;
34860let Inst{13-13} = 0b1;
34861let Inst{31-21} = 0b00011111111;
34862let hasNewValue = 1;
34863let opNewValue = 0;
34864let isCVI = 1;
34865let DecoderNamespace = "EXT_mmvec";
34866}
34867def V6_vmpy_qf32 : HInst<
34868(outs HvxVR:$Vd32),
34869(ins HvxVR:$Vu32, HvxVR:$Vv32),
34870"$Vd32.qf32 = vmpy($Vu32.qf32,$Vv32.qf32)",
34871tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34872let Inst{7-5} = 0b000;
34873let Inst{13-13} = 0b1;
34874let Inst{31-21} = 0b00011111111;
34875let hasNewValue = 1;
34876let opNewValue = 0;
34877let isCVI = 1;
34878let DecoderNamespace = "EXT_mmvec";
34879}
34880def V6_vmpy_qf32_hf : HInst<
34881(outs HvxWR:$Vdd32),
34882(ins HvxVR:$Vu32, HvxVR:$Vv32),
34883"$Vdd32.qf32 = vmpy($Vu32.hf,$Vv32.hf)",
34884tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
34885let Inst{7-5} = 0b111;
34886let Inst{13-13} = 0b1;
34887let Inst{31-21} = 0b00011111111;
34888let hasNewValue = 1;
34889let opNewValue = 0;
34890let isCVI = 1;
34891let DecoderNamespace = "EXT_mmvec";
34892}
34893def V6_vmpy_qf32_mix_hf : HInst<
34894(outs HvxWR:$Vdd32),
34895(ins HvxVR:$Vu32, HvxVR:$Vv32),
34896"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.hf)",
34897tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
34898let Inst{7-5} = 0b000;
34899let Inst{13-13} = 0b1;
34900let Inst{31-21} = 0b00011111100;
34901let hasNewValue = 1;
34902let opNewValue = 0;
34903let isCVI = 1;
34904let DecoderNamespace = "EXT_mmvec";
34905}
34906def V6_vmpy_qf32_qf16 : HInst<
34907(outs HvxWR:$Vdd32),
34908(ins HvxVR:$Vu32, HvxVR:$Vv32),
34909"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.qf16)",
34910tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
34911let Inst{7-5} = 0b110;
34912let Inst{13-13} = 0b1;
34913let Inst{31-21} = 0b00011111111;
34914let hasNewValue = 1;
34915let opNewValue = 0;
34916let isCVI = 1;
34917let DecoderNamespace = "EXT_mmvec";
34918}
34919def V6_vmpy_qf32_sf : HInst<
34920(outs HvxVR:$Vd32),
34921(ins HvxVR:$Vu32, HvxVR:$Vv32),
34922"$Vd32.qf32 = vmpy($Vu32.sf,$Vv32.sf)",
34923tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34924let Inst{7-5} = 0b001;
34925let Inst{13-13} = 0b1;
34926let Inst{31-21} = 0b00011111111;
34927let hasNewValue = 1;
34928let opNewValue = 0;
34929let isCVI = 1;
34930let DecoderNamespace = "EXT_mmvec";
34931}
34932def V6_vmpy_sf_hf : HInst<
34933(outs HvxWR:$Vdd32),
34934(ins HvxVR:$Vu32, HvxVR:$Vv32),
34935"$Vdd32.sf = vmpy($Vu32.hf,$Vv32.hf)",
34936tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
34937let Inst{7-5} = 0b010;
34938let Inst{13-13} = 0b1;
34939let Inst{31-21} = 0b00011111100;
34940let hasNewValue = 1;
34941let opNewValue = 0;
34942let isCVI = 1;
34943let DecoderNamespace = "EXT_mmvec";
34944}
34945def V6_vmpy_sf_hf_acc : HInst<
34946(outs HvxWR:$Vxx32),
34947(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34948"$Vxx32.sf += vmpy($Vu32.hf,$Vv32.hf)",
34949tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV68,UseHVXIEEEFP]> {
34950let Inst{7-5} = 0b001;
34951let Inst{13-13} = 0b1;
34952let Inst{31-21} = 0b00011100010;
34953let hasNewValue = 1;
34954let opNewValue = 0;
34955let isAccumulator = 1;
34956let isCVI = 1;
34957let DecoderNamespace = "EXT_mmvec";
34958let Constraints = "$Vxx32 = $Vxx32in";
34959}
34960def V6_vmpy_sf_sf : HInst<
34961(outs HvxVR:$Vd32),
34962(ins HvxVR:$Vu32, HvxVR:$Vv32),
34963"$Vd32.sf = vmpy($Vu32.sf,$Vv32.sf)",
34964tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
34965let Inst{7-5} = 0b001;
34966let Inst{13-13} = 0b1;
34967let Inst{31-21} = 0b00011111100;
34968let hasNewValue = 1;
34969let opNewValue = 0;
34970let isCVI = 1;
34971let DecoderNamespace = "EXT_mmvec";
34972}
34973def V6_vmpybus : HInst<
34974(outs HvxWR:$Vdd32),
34975(ins HvxVR:$Vu32, IntRegs:$Rt32),
34976"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
34977tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34978let Inst{7-5} = 0b101;
34979let Inst{13-13} = 0b0;
34980let Inst{31-21} = 0b00011001001;
34981let hasNewValue = 1;
34982let opNewValue = 0;
34983let isCVI = 1;
34984let DecoderNamespace = "EXT_mmvec";
34985}
34986def V6_vmpybus_acc : HInst<
34987(outs HvxWR:$Vxx32),
34988(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34989"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
34990tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34991let Inst{7-5} = 0b101;
34992let Inst{13-13} = 0b1;
34993let Inst{31-21} = 0b00011001001;
34994let hasNewValue = 1;
34995let opNewValue = 0;
34996let isAccumulator = 1;
34997let isCVI = 1;
34998let DecoderNamespace = "EXT_mmvec";
34999let Constraints = "$Vxx32 = $Vxx32in";
35000}
35001def V6_vmpybus_acc_alt : HInst<
35002(outs HvxWR:$Vxx32),
35003(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35004"$Vxx32 += vmpybus($Vu32,$Rt32)",
35005PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35006let hasNewValue = 1;
35007let opNewValue = 0;
35008let isAccumulator = 1;
35009let isCVI = 1;
35010let isPseudo = 1;
35011let isCodeGenOnly = 1;
35012let DecoderNamespace = "EXT_mmvec";
35013let Constraints = "$Vxx32 = $Vxx32in";
35014}
35015def V6_vmpybus_alt : HInst<
35016(outs HvxWR:$Vdd32),
35017(ins HvxVR:$Vu32, IntRegs:$Rt32),
35018"$Vdd32 = vmpybus($Vu32,$Rt32)",
35019PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35020let hasNewValue = 1;
35021let opNewValue = 0;
35022let isCVI = 1;
35023let isPseudo = 1;
35024let isCodeGenOnly = 1;
35025let DecoderNamespace = "EXT_mmvec";
35026}
35027def V6_vmpybusv : HInst<
35028(outs HvxWR:$Vdd32),
35029(ins HvxVR:$Vu32, HvxVR:$Vv32),
35030"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
35031tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35032let Inst{7-5} = 0b110;
35033let Inst{13-13} = 0b0;
35034let Inst{31-21} = 0b00011100000;
35035let hasNewValue = 1;
35036let opNewValue = 0;
35037let isCVI = 1;
35038let DecoderNamespace = "EXT_mmvec";
35039}
35040def V6_vmpybusv_acc : HInst<
35041(outs HvxWR:$Vxx32),
35042(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35043"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
35044tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35045let Inst{7-5} = 0b110;
35046let Inst{13-13} = 0b1;
35047let Inst{31-21} = 0b00011100000;
35048let hasNewValue = 1;
35049let opNewValue = 0;
35050let isAccumulator = 1;
35051let isCVI = 1;
35052let DecoderNamespace = "EXT_mmvec";
35053let Constraints = "$Vxx32 = $Vxx32in";
35054}
35055def V6_vmpybusv_acc_alt : HInst<
35056(outs HvxWR:$Vxx32),
35057(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35058"$Vxx32 += vmpybus($Vu32,$Vv32)",
35059PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35060let hasNewValue = 1;
35061let opNewValue = 0;
35062let isAccumulator = 1;
35063let isCVI = 1;
35064let isPseudo = 1;
35065let isCodeGenOnly = 1;
35066let DecoderNamespace = "EXT_mmvec";
35067let Constraints = "$Vxx32 = $Vxx32in";
35068}
35069def V6_vmpybusv_alt : HInst<
35070(outs HvxWR:$Vdd32),
35071(ins HvxVR:$Vu32, HvxVR:$Vv32),
35072"$Vdd32 = vmpybus($Vu32,$Vv32)",
35073PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35074let hasNewValue = 1;
35075let opNewValue = 0;
35076let isCVI = 1;
35077let isPseudo = 1;
35078let isCodeGenOnly = 1;
35079let DecoderNamespace = "EXT_mmvec";
35080}
35081def V6_vmpybv : HInst<
35082(outs HvxWR:$Vdd32),
35083(ins HvxVR:$Vu32, HvxVR:$Vv32),
35084"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
35085tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35086let Inst{7-5} = 0b100;
35087let Inst{13-13} = 0b0;
35088let Inst{31-21} = 0b00011100000;
35089let hasNewValue = 1;
35090let opNewValue = 0;
35091let isCVI = 1;
35092let DecoderNamespace = "EXT_mmvec";
35093}
35094def V6_vmpybv_acc : HInst<
35095(outs HvxWR:$Vxx32),
35096(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35097"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
35098tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35099let Inst{7-5} = 0b100;
35100let Inst{13-13} = 0b1;
35101let Inst{31-21} = 0b00011100000;
35102let hasNewValue = 1;
35103let opNewValue = 0;
35104let isAccumulator = 1;
35105let isCVI = 1;
35106let DecoderNamespace = "EXT_mmvec";
35107let Constraints = "$Vxx32 = $Vxx32in";
35108}
35109def V6_vmpybv_acc_alt : HInst<
35110(outs HvxWR:$Vxx32),
35111(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35112"$Vxx32 += vmpyb($Vu32,$Vv32)",
35113PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35114let hasNewValue = 1;
35115let opNewValue = 0;
35116let isAccumulator = 1;
35117let isCVI = 1;
35118let isPseudo = 1;
35119let isCodeGenOnly = 1;
35120let DecoderNamespace = "EXT_mmvec";
35121let Constraints = "$Vxx32 = $Vxx32in";
35122}
35123def V6_vmpybv_alt : HInst<
35124(outs HvxWR:$Vdd32),
35125(ins HvxVR:$Vu32, HvxVR:$Vv32),
35126"$Vdd32 = vmpyb($Vu32,$Vv32)",
35127PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35128let hasNewValue = 1;
35129let opNewValue = 0;
35130let isCVI = 1;
35131let isPseudo = 1;
35132let isCodeGenOnly = 1;
35133let DecoderNamespace = "EXT_mmvec";
35134}
35135def V6_vmpyewuh : HInst<
35136(outs HvxVR:$Vd32),
35137(ins HvxVR:$Vu32, HvxVR:$Vv32),
35138"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
35139tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35140let Inst{7-5} = 0b101;
35141let Inst{13-13} = 0b0;
35142let Inst{31-21} = 0b00011111111;
35143let hasNewValue = 1;
35144let opNewValue = 0;
35145let isCVI = 1;
35146let DecoderNamespace = "EXT_mmvec";
35147}
35148def V6_vmpyewuh_64 : HInst<
35149(outs HvxWR:$Vdd32),
35150(ins HvxVR:$Vu32, HvxVR:$Vv32),
35151"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
35152tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
35153let Inst{7-5} = 0b110;
35154let Inst{13-13} = 0b0;
35155let Inst{31-21} = 0b00011110101;
35156let hasNewValue = 1;
35157let opNewValue = 0;
35158let isCVI = 1;
35159let DecoderNamespace = "EXT_mmvec";
35160}
35161def V6_vmpyewuh_alt : HInst<
35162(outs HvxVR:$Vd32),
35163(ins HvxVR:$Vu32, HvxVR:$Vv32),
35164"$Vd32 = vmpyewuh($Vu32,$Vv32)",
35165PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35166let hasNewValue = 1;
35167let opNewValue = 0;
35168let isCVI = 1;
35169let isPseudo = 1;
35170let isCodeGenOnly = 1;
35171let DecoderNamespace = "EXT_mmvec";
35172}
35173def V6_vmpyh : HInst<
35174(outs HvxWR:$Vdd32),
35175(ins HvxVR:$Vu32, IntRegs:$Rt32),
35176"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
35177tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35178let Inst{7-5} = 0b000;
35179let Inst{13-13} = 0b0;
35180let Inst{31-21} = 0b00011001010;
35181let hasNewValue = 1;
35182let opNewValue = 0;
35183let isCVI = 1;
35184let DecoderNamespace = "EXT_mmvec";
35185}
35186def V6_vmpyh_acc : HInst<
35187(outs HvxWR:$Vxx32),
35188(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35189"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
35190tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
35191let Inst{7-5} = 0b110;
35192let Inst{13-13} = 0b1;
35193let Inst{31-21} = 0b00011001101;
35194let hasNewValue = 1;
35195let opNewValue = 0;
35196let isAccumulator = 1;
35197let isCVI = 1;
35198let DecoderNamespace = "EXT_mmvec";
35199let Constraints = "$Vxx32 = $Vxx32in";
35200}
35201def V6_vmpyh_acc_alt : HInst<
35202(outs HvxWR:$Vxx32),
35203(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35204"$Vxx32 += vmpyh($Vu32,$Rt32)",
35205PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35206let hasNewValue = 1;
35207let opNewValue = 0;
35208let isAccumulator = 1;
35209let isCVI = 1;
35210let isPseudo = 1;
35211let isCodeGenOnly = 1;
35212let DecoderNamespace = "EXT_mmvec";
35213let Constraints = "$Vxx32 = $Vxx32in";
35214}
35215def V6_vmpyh_alt : HInst<
35216(outs HvxWR:$Vdd32),
35217(ins HvxVR:$Vu32, IntRegs:$Rt32),
35218"$Vdd32 = vmpyh($Vu32,$Rt32)",
35219PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35220let hasNewValue = 1;
35221let opNewValue = 0;
35222let isCVI = 1;
35223let isPseudo = 1;
35224let isCodeGenOnly = 1;
35225let DecoderNamespace = "EXT_mmvec";
35226}
35227def V6_vmpyhsat_acc : HInst<
35228(outs HvxWR:$Vxx32),
35229(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35230"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
35231tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35232let Inst{7-5} = 0b000;
35233let Inst{13-13} = 0b1;
35234let Inst{31-21} = 0b00011001010;
35235let hasNewValue = 1;
35236let opNewValue = 0;
35237let isAccumulator = 1;
35238let isCVI = 1;
35239let DecoderNamespace = "EXT_mmvec";
35240let Constraints = "$Vxx32 = $Vxx32in";
35241}
35242def V6_vmpyhsat_acc_alt : HInst<
35243(outs HvxWR:$Vxx32),
35244(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35245"$Vxx32 += vmpyh($Vu32,$Rt32):sat",
35246PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35247let hasNewValue = 1;
35248let opNewValue = 0;
35249let isAccumulator = 1;
35250let isCVI = 1;
35251let isPseudo = 1;
35252let isCodeGenOnly = 1;
35253let DecoderNamespace = "EXT_mmvec";
35254let Constraints = "$Vxx32 = $Vxx32in";
35255}
35256def V6_vmpyhsrs : HInst<
35257(outs HvxVR:$Vd32),
35258(ins HvxVR:$Vu32, IntRegs:$Rt32),
35259"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
35260tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35261let Inst{7-5} = 0b010;
35262let Inst{13-13} = 0b0;
35263let Inst{31-21} = 0b00011001010;
35264let hasNewValue = 1;
35265let opNewValue = 0;
35266let isCVI = 1;
35267let DecoderNamespace = "EXT_mmvec";
35268}
35269def V6_vmpyhsrs_alt : HInst<
35270(outs HvxVR:$Vd32),
35271(ins HvxVR:$Vu32, IntRegs:$Rt32),
35272"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
35273PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35274let hasNewValue = 1;
35275let opNewValue = 0;
35276let isCVI = 1;
35277let isPseudo = 1;
35278let isCodeGenOnly = 1;
35279let DecoderNamespace = "EXT_mmvec";
35280}
35281def V6_vmpyhss : HInst<
35282(outs HvxVR:$Vd32),
35283(ins HvxVR:$Vu32, IntRegs:$Rt32),
35284"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
35285tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35286let Inst{7-5} = 0b001;
35287let Inst{13-13} = 0b0;
35288let Inst{31-21} = 0b00011001010;
35289let hasNewValue = 1;
35290let opNewValue = 0;
35291let isCVI = 1;
35292let DecoderNamespace = "EXT_mmvec";
35293}
35294def V6_vmpyhss_alt : HInst<
35295(outs HvxVR:$Vd32),
35296(ins HvxVR:$Vu32, IntRegs:$Rt32),
35297"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
35298PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35299let hasNewValue = 1;
35300let opNewValue = 0;
35301let isCVI = 1;
35302let isPseudo = 1;
35303let isCodeGenOnly = 1;
35304let DecoderNamespace = "EXT_mmvec";
35305}
35306def V6_vmpyhus : HInst<
35307(outs HvxWR:$Vdd32),
35308(ins HvxVR:$Vu32, HvxVR:$Vv32),
35309"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
35310tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35311let Inst{7-5} = 0b010;
35312let Inst{13-13} = 0b0;
35313let Inst{31-21} = 0b00011100001;
35314let hasNewValue = 1;
35315let opNewValue = 0;
35316let isCVI = 1;
35317let DecoderNamespace = "EXT_mmvec";
35318}
35319def V6_vmpyhus_acc : HInst<
35320(outs HvxWR:$Vxx32),
35321(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35322"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
35323tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35324let Inst{7-5} = 0b001;
35325let Inst{13-13} = 0b1;
35326let Inst{31-21} = 0b00011100001;
35327let hasNewValue = 1;
35328let opNewValue = 0;
35329let isAccumulator = 1;
35330let isCVI = 1;
35331let DecoderNamespace = "EXT_mmvec";
35332let Constraints = "$Vxx32 = $Vxx32in";
35333}
35334def V6_vmpyhus_acc_alt : HInst<
35335(outs HvxWR:$Vxx32),
35336(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35337"$Vxx32 += vmpyhus($Vu32,$Vv32)",
35338PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35339let hasNewValue = 1;
35340let opNewValue = 0;
35341let isAccumulator = 1;
35342let isCVI = 1;
35343let isPseudo = 1;
35344let isCodeGenOnly = 1;
35345let DecoderNamespace = "EXT_mmvec";
35346let Constraints = "$Vxx32 = $Vxx32in";
35347}
35348def V6_vmpyhus_alt : HInst<
35349(outs HvxWR:$Vdd32),
35350(ins HvxVR:$Vu32, HvxVR:$Vv32),
35351"$Vdd32 = vmpyhus($Vu32,$Vv32)",
35352PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35353let hasNewValue = 1;
35354let opNewValue = 0;
35355let isCVI = 1;
35356let isPseudo = 1;
35357let isCodeGenOnly = 1;
35358let DecoderNamespace = "EXT_mmvec";
35359}
35360def V6_vmpyhv : HInst<
35361(outs HvxWR:$Vdd32),
35362(ins HvxVR:$Vu32, HvxVR:$Vv32),
35363"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
35364tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35365let Inst{7-5} = 0b111;
35366let Inst{13-13} = 0b0;
35367let Inst{31-21} = 0b00011100000;
35368let hasNewValue = 1;
35369let opNewValue = 0;
35370let isCVI = 1;
35371let DecoderNamespace = "EXT_mmvec";
35372}
35373def V6_vmpyhv_acc : HInst<
35374(outs HvxWR:$Vxx32),
35375(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35376"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
35377tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35378let Inst{7-5} = 0b111;
35379let Inst{13-13} = 0b1;
35380let Inst{31-21} = 0b00011100000;
35381let hasNewValue = 1;
35382let opNewValue = 0;
35383let isAccumulator = 1;
35384let isCVI = 1;
35385let DecoderNamespace = "EXT_mmvec";
35386let Constraints = "$Vxx32 = $Vxx32in";
35387}
35388def V6_vmpyhv_acc_alt : HInst<
35389(outs HvxWR:$Vxx32),
35390(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35391"$Vxx32 += vmpyh($Vu32,$Vv32)",
35392PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35393let hasNewValue = 1;
35394let opNewValue = 0;
35395let isAccumulator = 1;
35396let isCVI = 1;
35397let isPseudo = 1;
35398let isCodeGenOnly = 1;
35399let DecoderNamespace = "EXT_mmvec";
35400let Constraints = "$Vxx32 = $Vxx32in";
35401}
35402def V6_vmpyhv_alt : HInst<
35403(outs HvxWR:$Vdd32),
35404(ins HvxVR:$Vu32, HvxVR:$Vv32),
35405"$Vdd32 = vmpyh($Vu32,$Vv32)",
35406PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35407let hasNewValue = 1;
35408let opNewValue = 0;
35409let isCVI = 1;
35410let isPseudo = 1;
35411let isCodeGenOnly = 1;
35412let DecoderNamespace = "EXT_mmvec";
35413}
35414def V6_vmpyhvsrs : HInst<
35415(outs HvxVR:$Vd32),
35416(ins HvxVR:$Vu32, HvxVR:$Vv32),
35417"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
35418tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35419let Inst{7-5} = 0b001;
35420let Inst{13-13} = 0b0;
35421let Inst{31-21} = 0b00011100001;
35422let hasNewValue = 1;
35423let opNewValue = 0;
35424let isCVI = 1;
35425let DecoderNamespace = "EXT_mmvec";
35426}
35427def V6_vmpyhvsrs_alt : HInst<
35428(outs HvxVR:$Vd32),
35429(ins HvxVR:$Vu32, HvxVR:$Vv32),
35430"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
35431PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35432let hasNewValue = 1;
35433let opNewValue = 0;
35434let isCVI = 1;
35435let isPseudo = 1;
35436let isCodeGenOnly = 1;
35437let DecoderNamespace = "EXT_mmvec";
35438}
35439def V6_vmpyieoh : HInst<
35440(outs HvxVR:$Vd32),
35441(ins HvxVR:$Vu32, HvxVR:$Vv32),
35442"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
35443tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35444let Inst{7-5} = 0b000;
35445let Inst{13-13} = 0b0;
35446let Inst{31-21} = 0b00011111011;
35447let hasNewValue = 1;
35448let opNewValue = 0;
35449let isCVI = 1;
35450let DecoderNamespace = "EXT_mmvec";
35451}
35452def V6_vmpyiewh_acc : HInst<
35453(outs HvxVR:$Vx32),
35454(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35455"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
35456tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35457let Inst{7-5} = 0b000;
35458let Inst{13-13} = 0b1;
35459let Inst{31-21} = 0b00011100010;
35460let hasNewValue = 1;
35461let opNewValue = 0;
35462let isAccumulator = 1;
35463let isCVI = 1;
35464let DecoderNamespace = "EXT_mmvec";
35465let Constraints = "$Vx32 = $Vx32in";
35466}
35467def V6_vmpyiewh_acc_alt : HInst<
35468(outs HvxVR:$Vx32),
35469(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35470"$Vx32 += vmpyiewh($Vu32,$Vv32)",
35471PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35472let hasNewValue = 1;
35473let opNewValue = 0;
35474let isAccumulator = 1;
35475let isCVI = 1;
35476let isPseudo = 1;
35477let isCodeGenOnly = 1;
35478let DecoderNamespace = "EXT_mmvec";
35479let Constraints = "$Vx32 = $Vx32in";
35480}
35481def V6_vmpyiewuh : HInst<
35482(outs HvxVR:$Vd32),
35483(ins HvxVR:$Vu32, HvxVR:$Vv32),
35484"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
35485tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35486let Inst{7-5} = 0b000;
35487let Inst{13-13} = 0b0;
35488let Inst{31-21} = 0b00011111110;
35489let hasNewValue = 1;
35490let opNewValue = 0;
35491let isCVI = 1;
35492let DecoderNamespace = "EXT_mmvec";
35493}
35494def V6_vmpyiewuh_acc : HInst<
35495(outs HvxVR:$Vx32),
35496(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35497"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
35498tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35499let Inst{7-5} = 0b101;
35500let Inst{13-13} = 0b1;
35501let Inst{31-21} = 0b00011100001;
35502let hasNewValue = 1;
35503let opNewValue = 0;
35504let isAccumulator = 1;
35505let isCVI = 1;
35506let DecoderNamespace = "EXT_mmvec";
35507let Constraints = "$Vx32 = $Vx32in";
35508}
35509def V6_vmpyiewuh_acc_alt : HInst<
35510(outs HvxVR:$Vx32),
35511(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35512"$Vx32 += vmpyiewuh($Vu32,$Vv32)",
35513PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35514let hasNewValue = 1;
35515let opNewValue = 0;
35516let isAccumulator = 1;
35517let isCVI = 1;
35518let isPseudo = 1;
35519let isCodeGenOnly = 1;
35520let DecoderNamespace = "EXT_mmvec";
35521let Constraints = "$Vx32 = $Vx32in";
35522}
35523def V6_vmpyiewuh_alt : HInst<
35524(outs HvxVR:$Vd32),
35525(ins HvxVR:$Vu32, HvxVR:$Vv32),
35526"$Vd32 = vmpyiewuh($Vu32,$Vv32)",
35527PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35528let hasNewValue = 1;
35529let opNewValue = 0;
35530let isCVI = 1;
35531let isPseudo = 1;
35532let isCodeGenOnly = 1;
35533let DecoderNamespace = "EXT_mmvec";
35534}
35535def V6_vmpyih : HInst<
35536(outs HvxVR:$Vd32),
35537(ins HvxVR:$Vu32, HvxVR:$Vv32),
35538"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
35539tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35540let Inst{7-5} = 0b100;
35541let Inst{13-13} = 0b0;
35542let Inst{31-21} = 0b00011100001;
35543let hasNewValue = 1;
35544let opNewValue = 0;
35545let isCVI = 1;
35546let DecoderNamespace = "EXT_mmvec";
35547}
35548def V6_vmpyih_acc : HInst<
35549(outs HvxVR:$Vx32),
35550(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35551"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
35552tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35553let Inst{7-5} = 0b100;
35554let Inst{13-13} = 0b1;
35555let Inst{31-21} = 0b00011100001;
35556let hasNewValue = 1;
35557let opNewValue = 0;
35558let isAccumulator = 1;
35559let isCVI = 1;
35560let DecoderNamespace = "EXT_mmvec";
35561let Constraints = "$Vx32 = $Vx32in";
35562}
35563def V6_vmpyih_acc_alt : HInst<
35564(outs HvxVR:$Vx32),
35565(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35566"$Vx32 += vmpyih($Vu32,$Vv32)",
35567PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35568let hasNewValue = 1;
35569let opNewValue = 0;
35570let isAccumulator = 1;
35571let isCVI = 1;
35572let isPseudo = 1;
35573let isCodeGenOnly = 1;
35574let DecoderNamespace = "EXT_mmvec";
35575let Constraints = "$Vx32 = $Vx32in";
35576}
35577def V6_vmpyih_alt : HInst<
35578(outs HvxVR:$Vd32),
35579(ins HvxVR:$Vu32, HvxVR:$Vv32),
35580"$Vd32 = vmpyih($Vu32,$Vv32)",
35581PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35582let hasNewValue = 1;
35583let opNewValue = 0;
35584let isCVI = 1;
35585let isPseudo = 1;
35586let isCodeGenOnly = 1;
35587let DecoderNamespace = "EXT_mmvec";
35588}
35589def V6_vmpyihb : HInst<
35590(outs HvxVR:$Vd32),
35591(ins HvxVR:$Vu32, IntRegs:$Rt32),
35592"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
35593tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35594let Inst{7-5} = 0b000;
35595let Inst{13-13} = 0b0;
35596let Inst{31-21} = 0b00011001011;
35597let hasNewValue = 1;
35598let opNewValue = 0;
35599let isCVI = 1;
35600let DecoderNamespace = "EXT_mmvec";
35601}
35602def V6_vmpyihb_acc : HInst<
35603(outs HvxVR:$Vx32),
35604(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35605"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
35606tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
35607let Inst{7-5} = 0b001;
35608let Inst{13-13} = 0b1;
35609let Inst{31-21} = 0b00011001011;
35610let hasNewValue = 1;
35611let opNewValue = 0;
35612let isAccumulator = 1;
35613let isCVI = 1;
35614let DecoderNamespace = "EXT_mmvec";
35615let Constraints = "$Vx32 = $Vx32in";
35616}
35617def V6_vmpyihb_acc_alt : HInst<
35618(outs HvxVR:$Vx32),
35619(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35620"$Vx32 += vmpyihb($Vu32,$Rt32)",
35621PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35622let hasNewValue = 1;
35623let opNewValue = 0;
35624let isAccumulator = 1;
35625let isCVI = 1;
35626let isPseudo = 1;
35627let isCodeGenOnly = 1;
35628let DecoderNamespace = "EXT_mmvec";
35629let Constraints = "$Vx32 = $Vx32in";
35630}
35631def V6_vmpyihb_alt : HInst<
35632(outs HvxVR:$Vd32),
35633(ins HvxVR:$Vu32, IntRegs:$Rt32),
35634"$Vd32 = vmpyihb($Vu32,$Rt32)",
35635PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35636let hasNewValue = 1;
35637let opNewValue = 0;
35638let isCVI = 1;
35639let isPseudo = 1;
35640let isCodeGenOnly = 1;
35641let DecoderNamespace = "EXT_mmvec";
35642}
35643def V6_vmpyiowh : HInst<
35644(outs HvxVR:$Vd32),
35645(ins HvxVR:$Vu32, HvxVR:$Vv32),
35646"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
35647tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35648let Inst{7-5} = 0b001;
35649let Inst{13-13} = 0b0;
35650let Inst{31-21} = 0b00011111110;
35651let hasNewValue = 1;
35652let opNewValue = 0;
35653let isCVI = 1;
35654let DecoderNamespace = "EXT_mmvec";
35655}
35656def V6_vmpyiowh_alt : HInst<
35657(outs HvxVR:$Vd32),
35658(ins HvxVR:$Vu32, HvxVR:$Vv32),
35659"$Vd32 = vmpyiowh($Vu32,$Vv32)",
35660PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35661let hasNewValue = 1;
35662let opNewValue = 0;
35663let isCVI = 1;
35664let isPseudo = 1;
35665let isCodeGenOnly = 1;
35666let DecoderNamespace = "EXT_mmvec";
35667}
35668def V6_vmpyiwb : HInst<
35669(outs HvxVR:$Vd32),
35670(ins HvxVR:$Vu32, IntRegs:$Rt32),
35671"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
35672tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35673let Inst{7-5} = 0b000;
35674let Inst{13-13} = 0b0;
35675let Inst{31-21} = 0b00011001101;
35676let hasNewValue = 1;
35677let opNewValue = 0;
35678let isCVI = 1;
35679let DecoderNamespace = "EXT_mmvec";
35680}
35681def V6_vmpyiwb_acc : HInst<
35682(outs HvxVR:$Vx32),
35683(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35684"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
35685tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
35686let Inst{7-5} = 0b010;
35687let Inst{13-13} = 0b1;
35688let Inst{31-21} = 0b00011001010;
35689let hasNewValue = 1;
35690let opNewValue = 0;
35691let isAccumulator = 1;
35692let isCVI = 1;
35693let DecoderNamespace = "EXT_mmvec";
35694let Constraints = "$Vx32 = $Vx32in";
35695}
35696def V6_vmpyiwb_acc_alt : HInst<
35697(outs HvxVR:$Vx32),
35698(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35699"$Vx32 += vmpyiwb($Vu32,$Rt32)",
35700PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35701let hasNewValue = 1;
35702let opNewValue = 0;
35703let isAccumulator = 1;
35704let isCVI = 1;
35705let isPseudo = 1;
35706let isCodeGenOnly = 1;
35707let DecoderNamespace = "EXT_mmvec";
35708let Constraints = "$Vx32 = $Vx32in";
35709}
35710def V6_vmpyiwb_alt : HInst<
35711(outs HvxVR:$Vd32),
35712(ins HvxVR:$Vu32, IntRegs:$Rt32),
35713"$Vd32 = vmpyiwb($Vu32,$Rt32)",
35714PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35715let hasNewValue = 1;
35716let opNewValue = 0;
35717let isCVI = 1;
35718let isPseudo = 1;
35719let isCodeGenOnly = 1;
35720let DecoderNamespace = "EXT_mmvec";
35721}
35722def V6_vmpyiwh : HInst<
35723(outs HvxVR:$Vd32),
35724(ins HvxVR:$Vu32, IntRegs:$Rt32),
35725"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
35726tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
35727let Inst{7-5} = 0b111;
35728let Inst{13-13} = 0b0;
35729let Inst{31-21} = 0b00011001100;
35730let hasNewValue = 1;
35731let opNewValue = 0;
35732let isCVI = 1;
35733let DecoderNamespace = "EXT_mmvec";
35734}
35735def V6_vmpyiwh_acc : HInst<
35736(outs HvxVR:$Vx32),
35737(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35738"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
35739tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
35740let Inst{7-5} = 0b011;
35741let Inst{13-13} = 0b1;
35742let Inst{31-21} = 0b00011001010;
35743let hasNewValue = 1;
35744let opNewValue = 0;
35745let isAccumulator = 1;
35746let isCVI = 1;
35747let DecoderNamespace = "EXT_mmvec";
35748let Constraints = "$Vx32 = $Vx32in";
35749}
35750def V6_vmpyiwh_acc_alt : HInst<
35751(outs HvxVR:$Vx32),
35752(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35753"$Vx32 += vmpyiwh($Vu32,$Rt32)",
35754PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35755let hasNewValue = 1;
35756let opNewValue = 0;
35757let isAccumulator = 1;
35758let isCVI = 1;
35759let isPseudo = 1;
35760let isCodeGenOnly = 1;
35761let DecoderNamespace = "EXT_mmvec";
35762let Constraints = "$Vx32 = $Vx32in";
35763}
35764def V6_vmpyiwh_alt : HInst<
35765(outs HvxVR:$Vd32),
35766(ins HvxVR:$Vu32, IntRegs:$Rt32),
35767"$Vd32 = vmpyiwh($Vu32,$Rt32)",
35768PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35769let hasNewValue = 1;
35770let opNewValue = 0;
35771let isCVI = 1;
35772let isPseudo = 1;
35773let isCodeGenOnly = 1;
35774let DecoderNamespace = "EXT_mmvec";
35775}
35776def V6_vmpyiwub : HInst<
35777(outs HvxVR:$Vd32),
35778(ins HvxVR:$Vu32, IntRegs:$Rt32),
35779"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
35780tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
35781let Inst{7-5} = 0b110;
35782let Inst{13-13} = 0b0;
35783let Inst{31-21} = 0b00011001100;
35784let hasNewValue = 1;
35785let opNewValue = 0;
35786let isCVI = 1;
35787let DecoderNamespace = "EXT_mmvec";
35788}
35789def V6_vmpyiwub_acc : HInst<
35790(outs HvxVR:$Vx32),
35791(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35792"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
35793tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
35794let Inst{7-5} = 0b001;
35795let Inst{13-13} = 0b1;
35796let Inst{31-21} = 0b00011001100;
35797let hasNewValue = 1;
35798let opNewValue = 0;
35799let isAccumulator = 1;
35800let isCVI = 1;
35801let DecoderNamespace = "EXT_mmvec";
35802let Constraints = "$Vx32 = $Vx32in";
35803}
35804def V6_vmpyiwub_acc_alt : HInst<
35805(outs HvxVR:$Vx32),
35806(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35807"$Vx32 += vmpyiwub($Vu32,$Rt32)",
35808PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35809let hasNewValue = 1;
35810let opNewValue = 0;
35811let isAccumulator = 1;
35812let isCVI = 1;
35813let isPseudo = 1;
35814let isCodeGenOnly = 1;
35815let DecoderNamespace = "EXT_mmvec";
35816let Constraints = "$Vx32 = $Vx32in";
35817}
35818def V6_vmpyiwub_alt : HInst<
35819(outs HvxVR:$Vd32),
35820(ins HvxVR:$Vu32, IntRegs:$Rt32),
35821"$Vd32 = vmpyiwub($Vu32,$Rt32)",
35822PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35823let hasNewValue = 1;
35824let opNewValue = 0;
35825let isCVI = 1;
35826let isPseudo = 1;
35827let isCodeGenOnly = 1;
35828let DecoderNamespace = "EXT_mmvec";
35829}
35830def V6_vmpyowh : HInst<
35831(outs HvxVR:$Vd32),
35832(ins HvxVR:$Vu32, HvxVR:$Vv32),
35833"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
35834tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35835let Inst{7-5} = 0b111;
35836let Inst{13-13} = 0b0;
35837let Inst{31-21} = 0b00011111111;
35838let hasNewValue = 1;
35839let opNewValue = 0;
35840let isCVI = 1;
35841let DecoderNamespace = "EXT_mmvec";
35842}
35843def V6_vmpyowh_64_acc : HInst<
35844(outs HvxWR:$Vxx32),
35845(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35846"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
35847tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
35848let Inst{7-5} = 0b011;
35849let Inst{13-13} = 0b1;
35850let Inst{31-21} = 0b00011100001;
35851let hasNewValue = 1;
35852let opNewValue = 0;
35853let isAccumulator = 1;
35854let isCVI = 1;
35855let DecoderNamespace = "EXT_mmvec";
35856let Constraints = "$Vxx32 = $Vxx32in";
35857}
35858def V6_vmpyowh_alt : HInst<
35859(outs HvxVR:$Vd32),
35860(ins HvxVR:$Vu32, HvxVR:$Vv32),
35861"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
35862PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35863let hasNewValue = 1;
35864let opNewValue = 0;
35865let isCVI = 1;
35866let isPseudo = 1;
35867let isCodeGenOnly = 1;
35868let DecoderNamespace = "EXT_mmvec";
35869}
35870def V6_vmpyowh_rnd : HInst<
35871(outs HvxVR:$Vd32),
35872(ins HvxVR:$Vu32, HvxVR:$Vv32),
35873"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
35874tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35875let Inst{7-5} = 0b000;
35876let Inst{13-13} = 0b0;
35877let Inst{31-21} = 0b00011111010;
35878let hasNewValue = 1;
35879let opNewValue = 0;
35880let isCVI = 1;
35881let DecoderNamespace = "EXT_mmvec";
35882}
35883def V6_vmpyowh_rnd_alt : HInst<
35884(outs HvxVR:$Vd32),
35885(ins HvxVR:$Vu32, HvxVR:$Vv32),
35886"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
35887PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35888let hasNewValue = 1;
35889let opNewValue = 0;
35890let isCVI = 1;
35891let isPseudo = 1;
35892let isCodeGenOnly = 1;
35893let DecoderNamespace = "EXT_mmvec";
35894}
35895def V6_vmpyowh_rnd_sacc : HInst<
35896(outs HvxVR:$Vx32),
35897(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35898"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
35899tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35900let Inst{7-5} = 0b111;
35901let Inst{13-13} = 0b1;
35902let Inst{31-21} = 0b00011100001;
35903let hasNewValue = 1;
35904let opNewValue = 0;
35905let isAccumulator = 1;
35906let isCVI = 1;
35907let DecoderNamespace = "EXT_mmvec";
35908let Constraints = "$Vx32 = $Vx32in";
35909}
35910def V6_vmpyowh_rnd_sacc_alt : HInst<
35911(outs HvxVR:$Vx32),
35912(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35913"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
35914PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35915let hasNewValue = 1;
35916let opNewValue = 0;
35917let isAccumulator = 1;
35918let isCVI = 1;
35919let isPseudo = 1;
35920let DecoderNamespace = "EXT_mmvec";
35921let Constraints = "$Vx32 = $Vx32in";
35922}
35923def V6_vmpyowh_sacc : HInst<
35924(outs HvxVR:$Vx32),
35925(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35926"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
35927tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35928let Inst{7-5} = 0b110;
35929let Inst{13-13} = 0b1;
35930let Inst{31-21} = 0b00011100001;
35931let hasNewValue = 1;
35932let opNewValue = 0;
35933let isAccumulator = 1;
35934let isCVI = 1;
35935let DecoderNamespace = "EXT_mmvec";
35936let Constraints = "$Vx32 = $Vx32in";
35937}
35938def V6_vmpyowh_sacc_alt : HInst<
35939(outs HvxVR:$Vx32),
35940(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35941"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
35942PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35943let hasNewValue = 1;
35944let opNewValue = 0;
35945let isAccumulator = 1;
35946let isCVI = 1;
35947let isPseudo = 1;
35948let DecoderNamespace = "EXT_mmvec";
35949let Constraints = "$Vx32 = $Vx32in";
35950}
35951def V6_vmpyub : HInst<
35952(outs HvxWR:$Vdd32),
35953(ins HvxVR:$Vu32, IntRegs:$Rt32),
35954"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
35955tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35956let Inst{7-5} = 0b000;
35957let Inst{13-13} = 0b0;
35958let Inst{31-21} = 0b00011001110;
35959let hasNewValue = 1;
35960let opNewValue = 0;
35961let isCVI = 1;
35962let DecoderNamespace = "EXT_mmvec";
35963}
35964def V6_vmpyub_acc : HInst<
35965(outs HvxWR:$Vxx32),
35966(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35967"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
35968tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35969let Inst{7-5} = 0b000;
35970let Inst{13-13} = 0b1;
35971let Inst{31-21} = 0b00011001100;
35972let hasNewValue = 1;
35973let opNewValue = 0;
35974let isAccumulator = 1;
35975let isCVI = 1;
35976let DecoderNamespace = "EXT_mmvec";
35977let Constraints = "$Vxx32 = $Vxx32in";
35978}
35979def V6_vmpyub_acc_alt : HInst<
35980(outs HvxWR:$Vxx32),
35981(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35982"$Vxx32 += vmpyub($Vu32,$Rt32)",
35983PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35984let hasNewValue = 1;
35985let opNewValue = 0;
35986let isAccumulator = 1;
35987let isCVI = 1;
35988let isPseudo = 1;
35989let isCodeGenOnly = 1;
35990let DecoderNamespace = "EXT_mmvec";
35991let Constraints = "$Vxx32 = $Vxx32in";
35992}
35993def V6_vmpyub_alt : HInst<
35994(outs HvxWR:$Vdd32),
35995(ins HvxVR:$Vu32, IntRegs:$Rt32),
35996"$Vdd32 = vmpyub($Vu32,$Rt32)",
35997PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35998let hasNewValue = 1;
35999let opNewValue = 0;
36000let isCVI = 1;
36001let isPseudo = 1;
36002let isCodeGenOnly = 1;
36003let DecoderNamespace = "EXT_mmvec";
36004}
36005def V6_vmpyubv : HInst<
36006(outs HvxWR:$Vdd32),
36007(ins HvxVR:$Vu32, HvxVR:$Vv32),
36008"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
36009tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36010let Inst{7-5} = 0b101;
36011let Inst{13-13} = 0b0;
36012let Inst{31-21} = 0b00011100000;
36013let hasNewValue = 1;
36014let opNewValue = 0;
36015let isCVI = 1;
36016let DecoderNamespace = "EXT_mmvec";
36017}
36018def V6_vmpyubv_acc : HInst<
36019(outs HvxWR:$Vxx32),
36020(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36021"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
36022tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36023let Inst{7-5} = 0b101;
36024let Inst{13-13} = 0b1;
36025let Inst{31-21} = 0b00011100000;
36026let hasNewValue = 1;
36027let opNewValue = 0;
36028let isAccumulator = 1;
36029let isCVI = 1;
36030let DecoderNamespace = "EXT_mmvec";
36031let Constraints = "$Vxx32 = $Vxx32in";
36032}
36033def V6_vmpyubv_acc_alt : HInst<
36034(outs HvxWR:$Vxx32),
36035(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36036"$Vxx32 += vmpyub($Vu32,$Vv32)",
36037PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36038let hasNewValue = 1;
36039let opNewValue = 0;
36040let isAccumulator = 1;
36041let isCVI = 1;
36042let isPseudo = 1;
36043let isCodeGenOnly = 1;
36044let DecoderNamespace = "EXT_mmvec";
36045let Constraints = "$Vxx32 = $Vxx32in";
36046}
36047def V6_vmpyubv_alt : HInst<
36048(outs HvxWR:$Vdd32),
36049(ins HvxVR:$Vu32, HvxVR:$Vv32),
36050"$Vdd32 = vmpyub($Vu32,$Vv32)",
36051PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36052let hasNewValue = 1;
36053let opNewValue = 0;
36054let isCVI = 1;
36055let isPseudo = 1;
36056let isCodeGenOnly = 1;
36057let DecoderNamespace = "EXT_mmvec";
36058}
36059def V6_vmpyuh : HInst<
36060(outs HvxWR:$Vdd32),
36061(ins HvxVR:$Vu32, IntRegs:$Rt32),
36062"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
36063tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
36064let Inst{7-5} = 0b011;
36065let Inst{13-13} = 0b0;
36066let Inst{31-21} = 0b00011001010;
36067let hasNewValue = 1;
36068let opNewValue = 0;
36069let isCVI = 1;
36070let DecoderNamespace = "EXT_mmvec";
36071}
36072def V6_vmpyuh_acc : HInst<
36073(outs HvxWR:$Vxx32),
36074(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36075"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
36076tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
36077let Inst{7-5} = 0b001;
36078let Inst{13-13} = 0b1;
36079let Inst{31-21} = 0b00011001010;
36080let hasNewValue = 1;
36081let opNewValue = 0;
36082let isAccumulator = 1;
36083let isCVI = 1;
36084let DecoderNamespace = "EXT_mmvec";
36085let Constraints = "$Vxx32 = $Vxx32in";
36086}
36087def V6_vmpyuh_acc_alt : HInst<
36088(outs HvxWR:$Vxx32),
36089(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36090"$Vxx32 += vmpyuh($Vu32,$Rt32)",
36091PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36092let hasNewValue = 1;
36093let opNewValue = 0;
36094let isAccumulator = 1;
36095let isCVI = 1;
36096let isPseudo = 1;
36097let isCodeGenOnly = 1;
36098let DecoderNamespace = "EXT_mmvec";
36099let Constraints = "$Vxx32 = $Vxx32in";
36100}
36101def V6_vmpyuh_alt : HInst<
36102(outs HvxWR:$Vdd32),
36103(ins HvxVR:$Vu32, IntRegs:$Rt32),
36104"$Vdd32 = vmpyuh($Vu32,$Rt32)",
36105PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36106let hasNewValue = 1;
36107let opNewValue = 0;
36108let isCVI = 1;
36109let isPseudo = 1;
36110let isCodeGenOnly = 1;
36111let DecoderNamespace = "EXT_mmvec";
36112}
36113def V6_vmpyuhe : HInst<
36114(outs HvxVR:$Vd32),
36115(ins HvxVR:$Vu32, IntRegs:$Rt32),
36116"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
36117tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
36118let Inst{7-5} = 0b010;
36119let Inst{13-13} = 0b0;
36120let Inst{31-21} = 0b00011001011;
36121let hasNewValue = 1;
36122let opNewValue = 0;
36123let isCVI = 1;
36124let DecoderNamespace = "EXT_mmvec";
36125}
36126def V6_vmpyuhe_acc : HInst<
36127(outs HvxVR:$Vx32),
36128(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36129"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
36130tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
36131let Inst{7-5} = 0b011;
36132let Inst{13-13} = 0b1;
36133let Inst{31-21} = 0b00011001100;
36134let hasNewValue = 1;
36135let opNewValue = 0;
36136let isAccumulator = 1;
36137let isCVI = 1;
36138let DecoderNamespace = "EXT_mmvec";
36139let Constraints = "$Vx32 = $Vx32in";
36140}
36141def V6_vmpyuhv : HInst<
36142(outs HvxWR:$Vdd32),
36143(ins HvxVR:$Vu32, HvxVR:$Vv32),
36144"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
36145tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36146let Inst{7-5} = 0b000;
36147let Inst{13-13} = 0b0;
36148let Inst{31-21} = 0b00011100001;
36149let hasNewValue = 1;
36150let opNewValue = 0;
36151let isCVI = 1;
36152let DecoderNamespace = "EXT_mmvec";
36153}
36154def V6_vmpyuhv_acc : HInst<
36155(outs HvxWR:$Vxx32),
36156(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36157"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
36158tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36159let Inst{7-5} = 0b000;
36160let Inst{13-13} = 0b1;
36161let Inst{31-21} = 0b00011100001;
36162let hasNewValue = 1;
36163let opNewValue = 0;
36164let isAccumulator = 1;
36165let isCVI = 1;
36166let DecoderNamespace = "EXT_mmvec";
36167let Constraints = "$Vxx32 = $Vxx32in";
36168}
36169def V6_vmpyuhv_acc_alt : HInst<
36170(outs HvxWR:$Vxx32),
36171(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36172"$Vxx32 += vmpyuh($Vu32,$Vv32)",
36173PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36174let hasNewValue = 1;
36175let opNewValue = 0;
36176let isAccumulator = 1;
36177let isCVI = 1;
36178let isPseudo = 1;
36179let isCodeGenOnly = 1;
36180let DecoderNamespace = "EXT_mmvec";
36181let Constraints = "$Vxx32 = $Vxx32in";
36182}
36183def V6_vmpyuhv_alt : HInst<
36184(outs HvxWR:$Vdd32),
36185(ins HvxVR:$Vu32, HvxVR:$Vv32),
36186"$Vdd32 = vmpyuh($Vu32,$Vv32)",
36187PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36188let hasNewValue = 1;
36189let opNewValue = 0;
36190let isCVI = 1;
36191let isPseudo = 1;
36192let isCodeGenOnly = 1;
36193let DecoderNamespace = "EXT_mmvec";
36194}
36195def V6_vmpyuhvs : HInst<
36196(outs HvxVR:$Vd32),
36197(ins HvxVR:$Vu32, HvxVR:$Vv32),
36198"$Vd32.uh = vmpy($Vu32.uh,$Vv32.uh):>>16",
36199tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV69]> {
36200let Inst{7-5} = 0b111;
36201let Inst{13-13} = 0b1;
36202let Inst{31-21} = 0b00011111110;
36203let hasNewValue = 1;
36204let opNewValue = 0;
36205let isCVI = 1;
36206let DecoderNamespace = "EXT_mmvec";
36207}
36208def V6_vmux : HInst<
36209(outs HvxVR:$Vd32),
36210(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
36211"$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
36212tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
36213let Inst{7-7} = 0b0;
36214let Inst{13-13} = 0b1;
36215let Inst{31-21} = 0b00011110111;
36216let hasNewValue = 1;
36217let opNewValue = 0;
36218let isCVI = 1;
36219let DecoderNamespace = "EXT_mmvec";
36220}
36221def V6_vnavgb : HInst<
36222(outs HvxVR:$Vd32),
36223(ins HvxVR:$Vu32, HvxVR:$Vv32),
36224"$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
36225tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
36226let Inst{7-5} = 0b110;
36227let Inst{13-13} = 0b1;
36228let Inst{31-21} = 0b00011111000;
36229let hasNewValue = 1;
36230let opNewValue = 0;
36231let isCVI = 1;
36232let DecoderNamespace = "EXT_mmvec";
36233}
36234def V6_vnavgb_alt : HInst<
36235(outs HvxVR:$Vd32),
36236(ins HvxVR:$Vu32, HvxVR:$Vv32),
36237"$Vd32 = vnavgb($Vu32,$Vv32)",
36238PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36239let hasNewValue = 1;
36240let opNewValue = 0;
36241let isCVI = 1;
36242let isPseudo = 1;
36243let isCodeGenOnly = 1;
36244let DecoderNamespace = "EXT_mmvec";
36245}
36246def V6_vnavgh : HInst<
36247(outs HvxVR:$Vd32),
36248(ins HvxVR:$Vu32, HvxVR:$Vv32),
36249"$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
36250tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36251let Inst{7-5} = 0b001;
36252let Inst{13-13} = 0b0;
36253let Inst{31-21} = 0b00011100111;
36254let hasNewValue = 1;
36255let opNewValue = 0;
36256let isCVI = 1;
36257let DecoderNamespace = "EXT_mmvec";
36258}
36259def V6_vnavgh_alt : HInst<
36260(outs HvxVR:$Vd32),
36261(ins HvxVR:$Vu32, HvxVR:$Vv32),
36262"$Vd32 = vnavgh($Vu32,$Vv32)",
36263PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36264let hasNewValue = 1;
36265let opNewValue = 0;
36266let isCVI = 1;
36267let isPseudo = 1;
36268let isCodeGenOnly = 1;
36269let DecoderNamespace = "EXT_mmvec";
36270}
36271def V6_vnavgub : HInst<
36272(outs HvxVR:$Vd32),
36273(ins HvxVR:$Vu32, HvxVR:$Vv32),
36274"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
36275tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36276let Inst{7-5} = 0b000;
36277let Inst{13-13} = 0b0;
36278let Inst{31-21} = 0b00011100111;
36279let hasNewValue = 1;
36280let opNewValue = 0;
36281let isCVI = 1;
36282let DecoderNamespace = "EXT_mmvec";
36283}
36284def V6_vnavgub_alt : HInst<
36285(outs HvxVR:$Vd32),
36286(ins HvxVR:$Vu32, HvxVR:$Vv32),
36287"$Vd32 = vnavgub($Vu32,$Vv32)",
36288PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36289let hasNewValue = 1;
36290let opNewValue = 0;
36291let isCVI = 1;
36292let isPseudo = 1;
36293let isCodeGenOnly = 1;
36294let DecoderNamespace = "EXT_mmvec";
36295}
36296def V6_vnavgw : HInst<
36297(outs HvxVR:$Vd32),
36298(ins HvxVR:$Vu32, HvxVR:$Vv32),
36299"$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
36300tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36301let Inst{7-5} = 0b010;
36302let Inst{13-13} = 0b0;
36303let Inst{31-21} = 0b00011100111;
36304let hasNewValue = 1;
36305let opNewValue = 0;
36306let isCVI = 1;
36307let DecoderNamespace = "EXT_mmvec";
36308}
36309def V6_vnavgw_alt : HInst<
36310(outs HvxVR:$Vd32),
36311(ins HvxVR:$Vu32, HvxVR:$Vv32),
36312"$Vd32 = vnavgw($Vu32,$Vv32)",
36313PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36314let hasNewValue = 1;
36315let opNewValue = 0;
36316let isCVI = 1;
36317let isPseudo = 1;
36318let isCodeGenOnly = 1;
36319let DecoderNamespace = "EXT_mmvec";
36320}
36321def V6_vnccombine : HInst<
36322(outs HvxWR:$Vdd32),
36323(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
36324"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
36325tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
36326let Inst{7-7} = 0b0;
36327let Inst{13-13} = 0b0;
36328let Inst{31-21} = 0b00011010010;
36329let isPredicated = 1;
36330let isPredicatedFalse = 1;
36331let hasNewValue = 1;
36332let opNewValue = 0;
36333let isCVI = 1;
36334let DecoderNamespace = "EXT_mmvec";
36335}
36336def V6_vncmov : HInst<
36337(outs HvxVR:$Vd32),
36338(ins PredRegs:$Ps4, HvxVR:$Vu32),
36339"if (!$Ps4) $Vd32 = $Vu32",
36340tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
36341let Inst{7-7} = 0b0;
36342let Inst{13-13} = 0b0;
36343let Inst{31-16} = 0b0001101000100000;
36344let isPredicated = 1;
36345let isPredicatedFalse = 1;
36346let hasNewValue = 1;
36347let opNewValue = 0;
36348let isCVI = 1;
36349let DecoderNamespace = "EXT_mmvec";
36350}
36351def V6_vnormamth : HInst<
36352(outs HvxVR:$Vd32),
36353(ins HvxVR:$Vu32),
36354"$Vd32.h = vnormamt($Vu32.h)",
36355tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36356let Inst{7-5} = 0b101;
36357let Inst{13-13} = 0b0;
36358let Inst{31-16} = 0b0001111000000011;
36359let hasNewValue = 1;
36360let opNewValue = 0;
36361let isCVI = 1;
36362let DecoderNamespace = "EXT_mmvec";
36363}
36364def V6_vnormamth_alt : HInst<
36365(outs HvxVR:$Vd32),
36366(ins HvxVR:$Vu32),
36367"$Vd32 = vnormamth($Vu32)",
36368PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36369let hasNewValue = 1;
36370let opNewValue = 0;
36371let isCVI = 1;
36372let isPseudo = 1;
36373let isCodeGenOnly = 1;
36374let DecoderNamespace = "EXT_mmvec";
36375}
36376def V6_vnormamtw : HInst<
36377(outs HvxVR:$Vd32),
36378(ins HvxVR:$Vu32),
36379"$Vd32.w = vnormamt($Vu32.w)",
36380tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36381let Inst{7-5} = 0b100;
36382let Inst{13-13} = 0b0;
36383let Inst{31-16} = 0b0001111000000011;
36384let hasNewValue = 1;
36385let opNewValue = 0;
36386let isCVI = 1;
36387let DecoderNamespace = "EXT_mmvec";
36388}
36389def V6_vnormamtw_alt : HInst<
36390(outs HvxVR:$Vd32),
36391(ins HvxVR:$Vu32),
36392"$Vd32 = vnormamtw($Vu32)",
36393PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36394let hasNewValue = 1;
36395let opNewValue = 0;
36396let isCVI = 1;
36397let isPseudo = 1;
36398let isCodeGenOnly = 1;
36399let DecoderNamespace = "EXT_mmvec";
36400}
36401def V6_vnot : HInst<
36402(outs HvxVR:$Vd32),
36403(ins HvxVR:$Vu32),
36404"$Vd32 = vnot($Vu32)",
36405tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
36406let Inst{7-5} = 0b100;
36407let Inst{13-13} = 0b0;
36408let Inst{31-16} = 0b0001111000000000;
36409let hasNewValue = 1;
36410let opNewValue = 0;
36411let isCVI = 1;
36412let DecoderNamespace = "EXT_mmvec";
36413}
36414def V6_vor : HInst<
36415(outs HvxVR:$Vd32),
36416(ins HvxVR:$Vu32, HvxVR:$Vv32),
36417"$Vd32 = vor($Vu32,$Vv32)",
36418tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36419let Inst{7-5} = 0b110;
36420let Inst{13-13} = 0b0;
36421let Inst{31-21} = 0b00011100001;
36422let hasNewValue = 1;
36423let opNewValue = 0;
36424let isCVI = 1;
36425let DecoderNamespace = "EXT_mmvec";
36426}
36427def V6_vpackeb : HInst<
36428(outs HvxVR:$Vd32),
36429(ins HvxVR:$Vu32, HvxVR:$Vv32),
36430"$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
36431tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36432let Inst{7-5} = 0b010;
36433let Inst{13-13} = 0b0;
36434let Inst{31-21} = 0b00011111110;
36435let hasNewValue = 1;
36436let opNewValue = 0;
36437let isCVI = 1;
36438let DecoderNamespace = "EXT_mmvec";
36439}
36440def V6_vpackeb_alt : HInst<
36441(outs HvxVR:$Vd32),
36442(ins HvxVR:$Vu32, HvxVR:$Vv32),
36443"$Vd32 = vpackeb($Vu32,$Vv32)",
36444PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36445let hasNewValue = 1;
36446let opNewValue = 0;
36447let isCVI = 1;
36448let isPseudo = 1;
36449let isCodeGenOnly = 1;
36450let DecoderNamespace = "EXT_mmvec";
36451}
36452def V6_vpackeh : HInst<
36453(outs HvxVR:$Vd32),
36454(ins HvxVR:$Vu32, HvxVR:$Vv32),
36455"$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
36456tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36457let Inst{7-5} = 0b011;
36458let Inst{13-13} = 0b0;
36459let Inst{31-21} = 0b00011111110;
36460let hasNewValue = 1;
36461let opNewValue = 0;
36462let isCVI = 1;
36463let DecoderNamespace = "EXT_mmvec";
36464}
36465def V6_vpackeh_alt : HInst<
36466(outs HvxVR:$Vd32),
36467(ins HvxVR:$Vu32, HvxVR:$Vv32),
36468"$Vd32 = vpackeh($Vu32,$Vv32)",
36469PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36470let hasNewValue = 1;
36471let opNewValue = 0;
36472let isCVI = 1;
36473let isPseudo = 1;
36474let isCodeGenOnly = 1;
36475let DecoderNamespace = "EXT_mmvec";
36476}
36477def V6_vpackhb_sat : HInst<
36478(outs HvxVR:$Vd32),
36479(ins HvxVR:$Vu32, HvxVR:$Vv32),
36480"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
36481tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36482let Inst{7-5} = 0b110;
36483let Inst{13-13} = 0b0;
36484let Inst{31-21} = 0b00011111110;
36485let hasNewValue = 1;
36486let opNewValue = 0;
36487let isCVI = 1;
36488let DecoderNamespace = "EXT_mmvec";
36489}
36490def V6_vpackhb_sat_alt : HInst<
36491(outs HvxVR:$Vd32),
36492(ins HvxVR:$Vu32, HvxVR:$Vv32),
36493"$Vd32 = vpackhb($Vu32,$Vv32):sat",
36494PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36495let hasNewValue = 1;
36496let opNewValue = 0;
36497let isCVI = 1;
36498let isPseudo = 1;
36499let isCodeGenOnly = 1;
36500let DecoderNamespace = "EXT_mmvec";
36501}
36502def V6_vpackhub_sat : HInst<
36503(outs HvxVR:$Vd32),
36504(ins HvxVR:$Vu32, HvxVR:$Vv32),
36505"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
36506tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36507let Inst{7-5} = 0b101;
36508let Inst{13-13} = 0b0;
36509let Inst{31-21} = 0b00011111110;
36510let hasNewValue = 1;
36511let opNewValue = 0;
36512let isCVI = 1;
36513let DecoderNamespace = "EXT_mmvec";
36514}
36515def V6_vpackhub_sat_alt : HInst<
36516(outs HvxVR:$Vd32),
36517(ins HvxVR:$Vu32, HvxVR:$Vv32),
36518"$Vd32 = vpackhub($Vu32,$Vv32):sat",
36519PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36520let hasNewValue = 1;
36521let opNewValue = 0;
36522let isCVI = 1;
36523let isPseudo = 1;
36524let isCodeGenOnly = 1;
36525let DecoderNamespace = "EXT_mmvec";
36526}
36527def V6_vpackob : HInst<
36528(outs HvxVR:$Vd32),
36529(ins HvxVR:$Vu32, HvxVR:$Vv32),
36530"$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
36531tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36532let Inst{7-5} = 0b001;
36533let Inst{13-13} = 0b0;
36534let Inst{31-21} = 0b00011111111;
36535let hasNewValue = 1;
36536let opNewValue = 0;
36537let isCVI = 1;
36538let DecoderNamespace = "EXT_mmvec";
36539}
36540def V6_vpackob_alt : HInst<
36541(outs HvxVR:$Vd32),
36542(ins HvxVR:$Vu32, HvxVR:$Vv32),
36543"$Vd32 = vpackob($Vu32,$Vv32)",
36544PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36545let hasNewValue = 1;
36546let opNewValue = 0;
36547let isCVI = 1;
36548let isPseudo = 1;
36549let isCodeGenOnly = 1;
36550let DecoderNamespace = "EXT_mmvec";
36551}
36552def V6_vpackoh : HInst<
36553(outs HvxVR:$Vd32),
36554(ins HvxVR:$Vu32, HvxVR:$Vv32),
36555"$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
36556tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36557let Inst{7-5} = 0b010;
36558let Inst{13-13} = 0b0;
36559let Inst{31-21} = 0b00011111111;
36560let hasNewValue = 1;
36561let opNewValue = 0;
36562let isCVI = 1;
36563let DecoderNamespace = "EXT_mmvec";
36564}
36565def V6_vpackoh_alt : HInst<
36566(outs HvxVR:$Vd32),
36567(ins HvxVR:$Vu32, HvxVR:$Vv32),
36568"$Vd32 = vpackoh($Vu32,$Vv32)",
36569PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36570let hasNewValue = 1;
36571let opNewValue = 0;
36572let isCVI = 1;
36573let isPseudo = 1;
36574let isCodeGenOnly = 1;
36575let DecoderNamespace = "EXT_mmvec";
36576}
36577def V6_vpackwh_sat : HInst<
36578(outs HvxVR:$Vd32),
36579(ins HvxVR:$Vu32, HvxVR:$Vv32),
36580"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
36581tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36582let Inst{7-5} = 0b000;
36583let Inst{13-13} = 0b0;
36584let Inst{31-21} = 0b00011111111;
36585let hasNewValue = 1;
36586let opNewValue = 0;
36587let isCVI = 1;
36588let DecoderNamespace = "EXT_mmvec";
36589}
36590def V6_vpackwh_sat_alt : HInst<
36591(outs HvxVR:$Vd32),
36592(ins HvxVR:$Vu32, HvxVR:$Vv32),
36593"$Vd32 = vpackwh($Vu32,$Vv32):sat",
36594PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36595let hasNewValue = 1;
36596let opNewValue = 0;
36597let isCVI = 1;
36598let isPseudo = 1;
36599let isCodeGenOnly = 1;
36600let DecoderNamespace = "EXT_mmvec";
36601}
36602def V6_vpackwuh_sat : HInst<
36603(outs HvxVR:$Vd32),
36604(ins HvxVR:$Vu32, HvxVR:$Vv32),
36605"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
36606tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36607let Inst{7-5} = 0b111;
36608let Inst{13-13} = 0b0;
36609let Inst{31-21} = 0b00011111110;
36610let hasNewValue = 1;
36611let opNewValue = 0;
36612let isCVI = 1;
36613let DecoderNamespace = "EXT_mmvec";
36614}
36615def V6_vpackwuh_sat_alt : HInst<
36616(outs HvxVR:$Vd32),
36617(ins HvxVR:$Vu32, HvxVR:$Vv32),
36618"$Vd32 = vpackwuh($Vu32,$Vv32):sat",
36619PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36620let hasNewValue = 1;
36621let opNewValue = 0;
36622let isCVI = 1;
36623let isPseudo = 1;
36624let isCodeGenOnly = 1;
36625let DecoderNamespace = "EXT_mmvec";
36626}
36627def V6_vpopcounth : HInst<
36628(outs HvxVR:$Vd32),
36629(ins HvxVR:$Vu32),
36630"$Vd32.h = vpopcount($Vu32.h)",
36631tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36632let Inst{7-5} = 0b110;
36633let Inst{13-13} = 0b0;
36634let Inst{31-16} = 0b0001111000000010;
36635let hasNewValue = 1;
36636let opNewValue = 0;
36637let isCVI = 1;
36638let DecoderNamespace = "EXT_mmvec";
36639}
36640def V6_vpopcounth_alt : HInst<
36641(outs HvxVR:$Vd32),
36642(ins HvxVR:$Vu32),
36643"$Vd32 = vpopcounth($Vu32)",
36644PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36645let hasNewValue = 1;
36646let opNewValue = 0;
36647let isCVI = 1;
36648let isPseudo = 1;
36649let isCodeGenOnly = 1;
36650let DecoderNamespace = "EXT_mmvec";
36651}
36652def V6_vprefixqb : HInst<
36653(outs HvxVR:$Vd32),
36654(ins HvxQR:$Qv4),
36655"$Vd32.b = prefixsum($Qv4)",
36656tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
36657let Inst{13-5} = 0b100000010;
36658let Inst{21-16} = 0b000011;
36659let Inst{31-24} = 0b00011110;
36660let hasNewValue = 1;
36661let opNewValue = 0;
36662let isCVI = 1;
36663let DecoderNamespace = "EXT_mmvec";
36664}
36665def V6_vprefixqh : HInst<
36666(outs HvxVR:$Vd32),
36667(ins HvxQR:$Qv4),
36668"$Vd32.h = prefixsum($Qv4)",
36669tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
36670let Inst{13-5} = 0b100001010;
36671let Inst{21-16} = 0b000011;
36672let Inst{31-24} = 0b00011110;
36673let hasNewValue = 1;
36674let opNewValue = 0;
36675let isCVI = 1;
36676let DecoderNamespace = "EXT_mmvec";
36677}
36678def V6_vprefixqw : HInst<
36679(outs HvxVR:$Vd32),
36680(ins HvxQR:$Qv4),
36681"$Vd32.w = prefixsum($Qv4)",
36682tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
36683let Inst{13-5} = 0b100010010;
36684let Inst{21-16} = 0b000011;
36685let Inst{31-24} = 0b00011110;
36686let hasNewValue = 1;
36687let opNewValue = 0;
36688let isCVI = 1;
36689let DecoderNamespace = "EXT_mmvec";
36690}
36691def V6_vrdelta : HInst<
36692(outs HvxVR:$Vd32),
36693(ins HvxVR:$Vu32, HvxVR:$Vv32),
36694"$Vd32 = vrdelta($Vu32,$Vv32)",
36695tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36696let Inst{7-5} = 0b011;
36697let Inst{13-13} = 0b0;
36698let Inst{31-21} = 0b00011111001;
36699let hasNewValue = 1;
36700let opNewValue = 0;
36701let isCVI = 1;
36702let DecoderNamespace = "EXT_mmvec";
36703}
36704def V6_vrmpybub_rtt : HInst<
36705(outs HvxWR:$Vdd32),
36706(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
36707"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
36708tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
36709let Inst{7-5} = 0b101;
36710let Inst{13-13} = 0b0;
36711let Inst{31-21} = 0b00011001110;
36712let hasNewValue = 1;
36713let opNewValue = 0;
36714let isCVI = 1;
36715let DecoderNamespace = "EXT_mmvec";
36716}
36717def V6_vrmpybub_rtt_acc : HInst<
36718(outs HvxWR:$Vxx32),
36719(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
36720"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
36721tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
36722let Inst{7-5} = 0b000;
36723let Inst{13-13} = 0b1;
36724let Inst{31-21} = 0b00011001101;
36725let hasNewValue = 1;
36726let opNewValue = 0;
36727let isAccumulator = 1;
36728let isCVI = 1;
36729let DecoderNamespace = "EXT_mmvec";
36730let Constraints = "$Vxx32 = $Vxx32in";
36731}
36732def V6_vrmpybub_rtt_acc_alt : HInst<
36733(outs HvxWR:$Vxx32),
36734(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
36735"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
36736PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36737let hasNewValue = 1;
36738let opNewValue = 0;
36739let isAccumulator = 1;
36740let isCVI = 1;
36741let isPseudo = 1;
36742let isCodeGenOnly = 1;
36743let DecoderNamespace = "EXT_mmvec";
36744let Constraints = "$Vxx32 = $Vxx32in";
36745}
36746def V6_vrmpybub_rtt_alt : HInst<
36747(outs HvxWR:$Vdd32),
36748(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
36749"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
36750PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36751let hasNewValue = 1;
36752let opNewValue = 0;
36753let isCVI = 1;
36754let isPseudo = 1;
36755let isCodeGenOnly = 1;
36756let DecoderNamespace = "EXT_mmvec";
36757}
36758def V6_vrmpybus : HInst<
36759(outs HvxVR:$Vd32),
36760(ins HvxVR:$Vu32, IntRegs:$Rt32),
36761"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
36762tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36763let Inst{7-5} = 0b100;
36764let Inst{13-13} = 0b0;
36765let Inst{31-21} = 0b00011001000;
36766let hasNewValue = 1;
36767let opNewValue = 0;
36768let isCVI = 1;
36769let DecoderNamespace = "EXT_mmvec";
36770}
36771def V6_vrmpybus_acc : HInst<
36772(outs HvxVR:$Vx32),
36773(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36774"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
36775tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36776let Inst{7-5} = 0b101;
36777let Inst{13-13} = 0b1;
36778let Inst{31-21} = 0b00011001000;
36779let hasNewValue = 1;
36780let opNewValue = 0;
36781let isAccumulator = 1;
36782let isCVI = 1;
36783let DecoderNamespace = "EXT_mmvec";
36784let Constraints = "$Vx32 = $Vx32in";
36785}
36786def V6_vrmpybus_acc_alt : HInst<
36787(outs HvxVR:$Vx32),
36788(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36789"$Vx32 += vrmpybus($Vu32,$Rt32)",
36790PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36791let hasNewValue = 1;
36792let opNewValue = 0;
36793let isAccumulator = 1;
36794let isCVI = 1;
36795let isPseudo = 1;
36796let isCodeGenOnly = 1;
36797let DecoderNamespace = "EXT_mmvec";
36798let Constraints = "$Vx32 = $Vx32in";
36799}
36800def V6_vrmpybus_alt : HInst<
36801(outs HvxVR:$Vd32),
36802(ins HvxVR:$Vu32, IntRegs:$Rt32),
36803"$Vd32 = vrmpybus($Vu32,$Rt32)",
36804PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36805let hasNewValue = 1;
36806let opNewValue = 0;
36807let isCVI = 1;
36808let isPseudo = 1;
36809let isCodeGenOnly = 1;
36810let DecoderNamespace = "EXT_mmvec";
36811}
36812def V6_vrmpybusi : HInst<
36813(outs HvxWR:$Vdd32),
36814(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36815"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
36816tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
36817let Inst{7-6} = 0b10;
36818let Inst{13-13} = 0b0;
36819let Inst{31-21} = 0b00011001010;
36820let hasNewValue = 1;
36821let opNewValue = 0;
36822let isCVI = 1;
36823let DecoderNamespace = "EXT_mmvec";
36824}
36825def V6_vrmpybusi_acc : HInst<
36826(outs HvxWR:$Vxx32),
36827(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36828"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
36829tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
36830let Inst{7-6} = 0b10;
36831let Inst{13-13} = 0b1;
36832let Inst{31-21} = 0b00011001010;
36833let hasNewValue = 1;
36834let opNewValue = 0;
36835let isAccumulator = 1;
36836let isCVI = 1;
36837let DecoderNamespace = "EXT_mmvec";
36838let Constraints = "$Vxx32 = $Vxx32in";
36839}
36840def V6_vrmpybusi_acc_alt : HInst<
36841(outs HvxWR:$Vxx32),
36842(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36843"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
36844PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36845let hasNewValue = 1;
36846let opNewValue = 0;
36847let isAccumulator = 1;
36848let isCVI = 1;
36849let isPseudo = 1;
36850let isCodeGenOnly = 1;
36851let DecoderNamespace = "EXT_mmvec";
36852let Constraints = "$Vxx32 = $Vxx32in";
36853}
36854def V6_vrmpybusi_alt : HInst<
36855(outs HvxWR:$Vdd32),
36856(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36857"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
36858PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36859let hasNewValue = 1;
36860let opNewValue = 0;
36861let isCVI = 1;
36862let isPseudo = 1;
36863let isCodeGenOnly = 1;
36864let DecoderNamespace = "EXT_mmvec";
36865}
36866def V6_vrmpybusv : HInst<
36867(outs HvxVR:$Vd32),
36868(ins HvxVR:$Vu32, HvxVR:$Vv32),
36869"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
36870tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
36871let Inst{7-5} = 0b010;
36872let Inst{13-13} = 0b0;
36873let Inst{31-21} = 0b00011100000;
36874let hasNewValue = 1;
36875let opNewValue = 0;
36876let isCVI = 1;
36877let DecoderNamespace = "EXT_mmvec";
36878}
36879def V6_vrmpybusv_acc : HInst<
36880(outs HvxVR:$Vx32),
36881(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36882"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
36883tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
36884let Inst{7-5} = 0b010;
36885let Inst{13-13} = 0b1;
36886let Inst{31-21} = 0b00011100000;
36887let hasNewValue = 1;
36888let opNewValue = 0;
36889let isAccumulator = 1;
36890let isCVI = 1;
36891let DecoderNamespace = "EXT_mmvec";
36892let Constraints = "$Vx32 = $Vx32in";
36893}
36894def V6_vrmpybusv_acc_alt : HInst<
36895(outs HvxVR:$Vx32),
36896(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36897"$Vx32 += vrmpybus($Vu32,$Vv32)",
36898PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36899let hasNewValue = 1;
36900let opNewValue = 0;
36901let isAccumulator = 1;
36902let isCVI = 1;
36903let isPseudo = 1;
36904let isCodeGenOnly = 1;
36905let DecoderNamespace = "EXT_mmvec";
36906let Constraints = "$Vx32 = $Vx32in";
36907}
36908def V6_vrmpybusv_alt : HInst<
36909(outs HvxVR:$Vd32),
36910(ins HvxVR:$Vu32, HvxVR:$Vv32),
36911"$Vd32 = vrmpybus($Vu32,$Vv32)",
36912PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36913let hasNewValue = 1;
36914let opNewValue = 0;
36915let isCVI = 1;
36916let isPseudo = 1;
36917let isCodeGenOnly = 1;
36918let DecoderNamespace = "EXT_mmvec";
36919}
36920def V6_vrmpybv : HInst<
36921(outs HvxVR:$Vd32),
36922(ins HvxVR:$Vu32, HvxVR:$Vv32),
36923"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
36924tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
36925let Inst{7-5} = 0b001;
36926let Inst{13-13} = 0b0;
36927let Inst{31-21} = 0b00011100000;
36928let hasNewValue = 1;
36929let opNewValue = 0;
36930let isCVI = 1;
36931let DecoderNamespace = "EXT_mmvec";
36932}
36933def V6_vrmpybv_acc : HInst<
36934(outs HvxVR:$Vx32),
36935(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36936"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
36937tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
36938let Inst{7-5} = 0b001;
36939let Inst{13-13} = 0b1;
36940let Inst{31-21} = 0b00011100000;
36941let hasNewValue = 1;
36942let opNewValue = 0;
36943let isAccumulator = 1;
36944let isCVI = 1;
36945let DecoderNamespace = "EXT_mmvec";
36946let Constraints = "$Vx32 = $Vx32in";
36947}
36948def V6_vrmpybv_acc_alt : HInst<
36949(outs HvxVR:$Vx32),
36950(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36951"$Vx32 += vrmpyb($Vu32,$Vv32)",
36952PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36953let hasNewValue = 1;
36954let opNewValue = 0;
36955let isAccumulator = 1;
36956let isCVI = 1;
36957let isPseudo = 1;
36958let isCodeGenOnly = 1;
36959let DecoderNamespace = "EXT_mmvec";
36960let Constraints = "$Vx32 = $Vx32in";
36961}
36962def V6_vrmpybv_alt : HInst<
36963(outs HvxVR:$Vd32),
36964(ins HvxVR:$Vu32, HvxVR:$Vv32),
36965"$Vd32 = vrmpyb($Vu32,$Vv32)",
36966PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36967let hasNewValue = 1;
36968let opNewValue = 0;
36969let isCVI = 1;
36970let isPseudo = 1;
36971let isCodeGenOnly = 1;
36972let DecoderNamespace = "EXT_mmvec";
36973}
36974def V6_vrmpyub : HInst<
36975(outs HvxVR:$Vd32),
36976(ins HvxVR:$Vu32, IntRegs:$Rt32),
36977"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
36978tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36979let Inst{7-5} = 0b011;
36980let Inst{13-13} = 0b0;
36981let Inst{31-21} = 0b00011001000;
36982let hasNewValue = 1;
36983let opNewValue = 0;
36984let isCVI = 1;
36985let DecoderNamespace = "EXT_mmvec";
36986}
36987def V6_vrmpyub_acc : HInst<
36988(outs HvxVR:$Vx32),
36989(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36990"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
36991tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36992let Inst{7-5} = 0b100;
36993let Inst{13-13} = 0b1;
36994let Inst{31-21} = 0b00011001000;
36995let hasNewValue = 1;
36996let opNewValue = 0;
36997let isAccumulator = 1;
36998let isCVI = 1;
36999let DecoderNamespace = "EXT_mmvec";
37000let Constraints = "$Vx32 = $Vx32in";
37001}
37002def V6_vrmpyub_acc_alt : HInst<
37003(outs HvxVR:$Vx32),
37004(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37005"$Vx32 += vrmpyub($Vu32,$Rt32)",
37006PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37007let hasNewValue = 1;
37008let opNewValue = 0;
37009let isAccumulator = 1;
37010let isCVI = 1;
37011let isPseudo = 1;
37012let isCodeGenOnly = 1;
37013let DecoderNamespace = "EXT_mmvec";
37014let Constraints = "$Vx32 = $Vx32in";
37015}
37016def V6_vrmpyub_alt : HInst<
37017(outs HvxVR:$Vd32),
37018(ins HvxVR:$Vu32, IntRegs:$Rt32),
37019"$Vd32 = vrmpyub($Vu32,$Rt32)",
37020PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37021let hasNewValue = 1;
37022let opNewValue = 0;
37023let isCVI = 1;
37024let isPseudo = 1;
37025let isCodeGenOnly = 1;
37026let DecoderNamespace = "EXT_mmvec";
37027}
37028def V6_vrmpyub_rtt : HInst<
37029(outs HvxWR:$Vdd32),
37030(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37031"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37032tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
37033let Inst{7-5} = 0b100;
37034let Inst{13-13} = 0b0;
37035let Inst{31-21} = 0b00011001110;
37036let hasNewValue = 1;
37037let opNewValue = 0;
37038let isCVI = 1;
37039let DecoderNamespace = "EXT_mmvec";
37040}
37041def V6_vrmpyub_rtt_acc : HInst<
37042(outs HvxWR:$Vxx32),
37043(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37044"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37045tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
37046let Inst{7-5} = 0b111;
37047let Inst{13-13} = 0b1;
37048let Inst{31-21} = 0b00011001101;
37049let hasNewValue = 1;
37050let opNewValue = 0;
37051let isAccumulator = 1;
37052let isCVI = 1;
37053let DecoderNamespace = "EXT_mmvec";
37054let Constraints = "$Vxx32 = $Vxx32in";
37055}
37056def V6_vrmpyub_rtt_acc_alt : HInst<
37057(outs HvxWR:$Vxx32),
37058(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37059"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37060PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37061let hasNewValue = 1;
37062let opNewValue = 0;
37063let isAccumulator = 1;
37064let isCVI = 1;
37065let isPseudo = 1;
37066let isCodeGenOnly = 1;
37067let DecoderNamespace = "EXT_mmvec";
37068let Constraints = "$Vxx32 = $Vxx32in";
37069}
37070def V6_vrmpyub_rtt_alt : HInst<
37071(outs HvxWR:$Vdd32),
37072(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37073"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37074PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37075let hasNewValue = 1;
37076let opNewValue = 0;
37077let isCVI = 1;
37078let isPseudo = 1;
37079let isCodeGenOnly = 1;
37080let DecoderNamespace = "EXT_mmvec";
37081}
37082def V6_vrmpyubi : HInst<
37083(outs HvxWR:$Vdd32),
37084(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37085"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37086tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37087let Inst{7-6} = 0b11;
37088let Inst{13-13} = 0b0;
37089let Inst{31-21} = 0b00011001101;
37090let hasNewValue = 1;
37091let opNewValue = 0;
37092let isCVI = 1;
37093let DecoderNamespace = "EXT_mmvec";
37094}
37095def V6_vrmpyubi_acc : HInst<
37096(outs HvxWR:$Vxx32),
37097(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37098"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37099tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37100let Inst{7-6} = 0b11;
37101let Inst{13-13} = 0b1;
37102let Inst{31-21} = 0b00011001011;
37103let hasNewValue = 1;
37104let opNewValue = 0;
37105let isAccumulator = 1;
37106let isCVI = 1;
37107let DecoderNamespace = "EXT_mmvec";
37108let Constraints = "$Vxx32 = $Vxx32in";
37109}
37110def V6_vrmpyubi_acc_alt : HInst<
37111(outs HvxWR:$Vxx32),
37112(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37113"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
37114PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37115let hasNewValue = 1;
37116let opNewValue = 0;
37117let isAccumulator = 1;
37118let isCVI = 1;
37119let isPseudo = 1;
37120let isCodeGenOnly = 1;
37121let DecoderNamespace = "EXT_mmvec";
37122let Constraints = "$Vxx32 = $Vxx32in";
37123}
37124def V6_vrmpyubi_alt : HInst<
37125(outs HvxWR:$Vdd32),
37126(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37127"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
37128PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37129let hasNewValue = 1;
37130let opNewValue = 0;
37131let isCVI = 1;
37132let isPseudo = 1;
37133let isCodeGenOnly = 1;
37134let DecoderNamespace = "EXT_mmvec";
37135}
37136def V6_vrmpyubv : HInst<
37137(outs HvxVR:$Vd32),
37138(ins HvxVR:$Vu32, HvxVR:$Vv32),
37139"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
37140tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37141let Inst{7-5} = 0b000;
37142let Inst{13-13} = 0b0;
37143let Inst{31-21} = 0b00011100000;
37144let hasNewValue = 1;
37145let opNewValue = 0;
37146let isCVI = 1;
37147let DecoderNamespace = "EXT_mmvec";
37148}
37149def V6_vrmpyubv_acc : HInst<
37150(outs HvxVR:$Vx32),
37151(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37152"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
37153tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37154let Inst{7-5} = 0b000;
37155let Inst{13-13} = 0b1;
37156let Inst{31-21} = 0b00011100000;
37157let hasNewValue = 1;
37158let opNewValue = 0;
37159let isAccumulator = 1;
37160let isCVI = 1;
37161let DecoderNamespace = "EXT_mmvec";
37162let Constraints = "$Vx32 = $Vx32in";
37163}
37164def V6_vrmpyubv_acc_alt : HInst<
37165(outs HvxVR:$Vx32),
37166(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37167"$Vx32 += vrmpyub($Vu32,$Vv32)",
37168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37169let hasNewValue = 1;
37170let opNewValue = 0;
37171let isAccumulator = 1;
37172let isCVI = 1;
37173let isPseudo = 1;
37174let isCodeGenOnly = 1;
37175let DecoderNamespace = "EXT_mmvec";
37176let Constraints = "$Vx32 = $Vx32in";
37177}
37178def V6_vrmpyubv_alt : HInst<
37179(outs HvxVR:$Vd32),
37180(ins HvxVR:$Vu32, HvxVR:$Vv32),
37181"$Vd32 = vrmpyub($Vu32,$Vv32)",
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_vrmpyzbb_rt : HInst<
37191(outs HvxVQR:$Vdddd32),
37192(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37193"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
37194tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37195let Inst{7-5} = 0b000;
37196let Inst{13-13} = 0b0;
37197let Inst{31-19} = 0b0001100111101;
37198let hasNewValue = 1;
37199let opNewValue = 0;
37200let isCVI = 1;
37201let DecoderNamespace = "EXT_mmvec";
37202}
37203def V6_vrmpyzbb_rt_acc : HInst<
37204(outs HvxVQR:$Vyyyy32),
37205(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37206"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
37207tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37208let Inst{7-5} = 0b010;
37209let Inst{13-13} = 0b1;
37210let Inst{31-19} = 0b0001100111000;
37211let hasNewValue = 1;
37212let opNewValue = 0;
37213let isAccumulator = 1;
37214let isCVI = 1;
37215let DecoderNamespace = "EXT_mmvec";
37216let Constraints = "$Vyyyy32 = $Vyyyy32in";
37217}
37218def V6_vrmpyzbb_rx : HInst<
37219(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37220(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37221"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
37222tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37223let Inst{7-5} = 0b000;
37224let Inst{13-13} = 0b0;
37225let Inst{31-19} = 0b0001100111100;
37226let hasNewValue = 1;
37227let opNewValue = 0;
37228let isCVI = 1;
37229let DecoderNamespace = "EXT_mmvec";
37230let Constraints = "$Rx8 = $Rx8in";
37231}
37232def V6_vrmpyzbb_rx_acc : HInst<
37233(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37234(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37235"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
37236tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37237let Inst{7-5} = 0b010;
37238let Inst{13-13} = 0b1;
37239let Inst{31-19} = 0b0001100111001;
37240let hasNewValue = 1;
37241let opNewValue = 0;
37242let isAccumulator = 1;
37243let isCVI = 1;
37244let DecoderNamespace = "EXT_mmvec";
37245let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37246}
37247def V6_vrmpyzbub_rt : HInst<
37248(outs HvxVQR:$Vdddd32),
37249(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37250"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
37251tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37252let Inst{7-5} = 0b010;
37253let Inst{13-13} = 0b0;
37254let Inst{31-19} = 0b0001100111111;
37255let hasNewValue = 1;
37256let opNewValue = 0;
37257let isCVI = 1;
37258let DecoderNamespace = "EXT_mmvec";
37259}
37260def V6_vrmpyzbub_rt_acc : HInst<
37261(outs HvxVQR:$Vyyyy32),
37262(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37263"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
37264tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37265let Inst{7-5} = 0b001;
37266let Inst{13-13} = 0b1;
37267let Inst{31-19} = 0b0001100111010;
37268let hasNewValue = 1;
37269let opNewValue = 0;
37270let isAccumulator = 1;
37271let isCVI = 1;
37272let DecoderNamespace = "EXT_mmvec";
37273let Constraints = "$Vyyyy32 = $Vyyyy32in";
37274}
37275def V6_vrmpyzbub_rx : HInst<
37276(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37277(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37278"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
37279tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37280let Inst{7-5} = 0b010;
37281let Inst{13-13} = 0b0;
37282let Inst{31-19} = 0b0001100111110;
37283let hasNewValue = 1;
37284let opNewValue = 0;
37285let isCVI = 1;
37286let DecoderNamespace = "EXT_mmvec";
37287let Constraints = "$Rx8 = $Rx8in";
37288}
37289def V6_vrmpyzbub_rx_acc : HInst<
37290(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37291(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37292"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
37293tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37294let Inst{7-5} = 0b001;
37295let Inst{13-13} = 0b1;
37296let Inst{31-19} = 0b0001100111011;
37297let hasNewValue = 1;
37298let opNewValue = 0;
37299let isAccumulator = 1;
37300let isCVI = 1;
37301let DecoderNamespace = "EXT_mmvec";
37302let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37303}
37304def V6_vrmpyzcb_rt : HInst<
37305(outs HvxVQR:$Vdddd32),
37306(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37307"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
37308tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37309let Inst{7-5} = 0b001;
37310let Inst{13-13} = 0b0;
37311let Inst{31-19} = 0b0001100111101;
37312let hasNewValue = 1;
37313let opNewValue = 0;
37314let isCVI = 1;
37315let DecoderNamespace = "EXT_mmvec";
37316}
37317def V6_vrmpyzcb_rt_acc : HInst<
37318(outs HvxVQR:$Vyyyy32),
37319(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37320"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
37321tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37322let Inst{7-5} = 0b011;
37323let Inst{13-13} = 0b1;
37324let Inst{31-19} = 0b0001100111000;
37325let hasNewValue = 1;
37326let opNewValue = 0;
37327let isAccumulator = 1;
37328let isCVI = 1;
37329let DecoderNamespace = "EXT_mmvec";
37330let Constraints = "$Vyyyy32 = $Vyyyy32in";
37331}
37332def V6_vrmpyzcb_rx : HInst<
37333(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37334(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37335"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
37336tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37337let Inst{7-5} = 0b001;
37338let Inst{13-13} = 0b0;
37339let Inst{31-19} = 0b0001100111100;
37340let hasNewValue = 1;
37341let opNewValue = 0;
37342let isCVI = 1;
37343let DecoderNamespace = "EXT_mmvec";
37344let Constraints = "$Rx8 = $Rx8in";
37345}
37346def V6_vrmpyzcb_rx_acc : HInst<
37347(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37348(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37349"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
37350tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37351let Inst{7-5} = 0b011;
37352let Inst{13-13} = 0b1;
37353let Inst{31-19} = 0b0001100111001;
37354let hasNewValue = 1;
37355let opNewValue = 0;
37356let isAccumulator = 1;
37357let isCVI = 1;
37358let DecoderNamespace = "EXT_mmvec";
37359let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37360}
37361def V6_vrmpyzcbs_rt : HInst<
37362(outs HvxVQR:$Vdddd32),
37363(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37364"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
37365tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37366let Inst{7-5} = 0b010;
37367let Inst{13-13} = 0b0;
37368let Inst{31-19} = 0b0001100111101;
37369let hasNewValue = 1;
37370let opNewValue = 0;
37371let isCVI = 1;
37372let DecoderNamespace = "EXT_mmvec";
37373}
37374def V6_vrmpyzcbs_rt_acc : HInst<
37375(outs HvxVQR:$Vyyyy32),
37376(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37377"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
37378tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37379let Inst{7-5} = 0b001;
37380let Inst{13-13} = 0b1;
37381let Inst{31-19} = 0b0001100111000;
37382let hasNewValue = 1;
37383let opNewValue = 0;
37384let isAccumulator = 1;
37385let isCVI = 1;
37386let DecoderNamespace = "EXT_mmvec";
37387let Constraints = "$Vyyyy32 = $Vyyyy32in";
37388}
37389def V6_vrmpyzcbs_rx : HInst<
37390(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37391(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37392"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
37393tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37394let Inst{7-5} = 0b010;
37395let Inst{13-13} = 0b0;
37396let Inst{31-19} = 0b0001100111100;
37397let hasNewValue = 1;
37398let opNewValue = 0;
37399let isCVI = 1;
37400let DecoderNamespace = "EXT_mmvec";
37401let Constraints = "$Rx8 = $Rx8in";
37402}
37403def V6_vrmpyzcbs_rx_acc : HInst<
37404(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37405(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37406"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
37407tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37408let Inst{7-5} = 0b001;
37409let Inst{13-13} = 0b1;
37410let Inst{31-19} = 0b0001100111001;
37411let hasNewValue = 1;
37412let opNewValue = 0;
37413let isAccumulator = 1;
37414let isCVI = 1;
37415let DecoderNamespace = "EXT_mmvec";
37416let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37417}
37418def V6_vrmpyznb_rt : HInst<
37419(outs HvxVQR:$Vdddd32),
37420(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37421"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
37422tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37423let Inst{7-5} = 0b000;
37424let Inst{13-13} = 0b0;
37425let Inst{31-19} = 0b0001100111111;
37426let hasNewValue = 1;
37427let opNewValue = 0;
37428let isCVI = 1;
37429let DecoderNamespace = "EXT_mmvec";
37430}
37431def V6_vrmpyznb_rt_acc : HInst<
37432(outs HvxVQR:$Vyyyy32),
37433(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37434"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
37435tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37436let Inst{7-5} = 0b010;
37437let Inst{13-13} = 0b1;
37438let Inst{31-19} = 0b0001100111010;
37439let hasNewValue = 1;
37440let opNewValue = 0;
37441let isAccumulator = 1;
37442let isCVI = 1;
37443let DecoderNamespace = "EXT_mmvec";
37444let Constraints = "$Vyyyy32 = $Vyyyy32in";
37445}
37446def V6_vrmpyznb_rx : HInst<
37447(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37448(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37449"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
37450tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37451let Inst{7-5} = 0b000;
37452let Inst{13-13} = 0b0;
37453let Inst{31-19} = 0b0001100111110;
37454let hasNewValue = 1;
37455let opNewValue = 0;
37456let isCVI = 1;
37457let DecoderNamespace = "EXT_mmvec";
37458let Constraints = "$Rx8 = $Rx8in";
37459}
37460def V6_vrmpyznb_rx_acc : HInst<
37461(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37462(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37463"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
37464tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37465let Inst{7-5} = 0b010;
37466let Inst{13-13} = 0b1;
37467let Inst{31-19} = 0b0001100111011;
37468let hasNewValue = 1;
37469let opNewValue = 0;
37470let isAccumulator = 1;
37471let isCVI = 1;
37472let DecoderNamespace = "EXT_mmvec";
37473let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37474}
37475def V6_vror : HInst<
37476(outs HvxVR:$Vd32),
37477(ins HvxVR:$Vu32, IntRegs:$Rt32),
37478"$Vd32 = vror($Vu32,$Rt32)",
37479tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
37480let Inst{7-5} = 0b001;
37481let Inst{13-13} = 0b0;
37482let Inst{31-21} = 0b00011001011;
37483let hasNewValue = 1;
37484let opNewValue = 0;
37485let isCVI = 1;
37486let DecoderNamespace = "EXT_mmvec";
37487}
37488def V6_vrotr : HInst<
37489(outs HvxVR:$Vd32),
37490(ins HvxVR:$Vu32, HvxVR:$Vv32),
37491"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
37492tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
37493let Inst{7-5} = 0b111;
37494let Inst{13-13} = 0b1;
37495let Inst{31-21} = 0b00011010100;
37496let hasNewValue = 1;
37497let opNewValue = 0;
37498let isCVI = 1;
37499let DecoderNamespace = "EXT_mmvec";
37500}
37501def V6_vrotr_alt : HInst<
37502(outs HvxVR:$Vd32),
37503(ins HvxVR:$Vu32, HvxVR:$Vv32),
37504"$Vd32 = vrotr($Vu32,$Vv32)",
37505PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
37506let hasNewValue = 1;
37507let opNewValue = 0;
37508let isCVI = 1;
37509let isPseudo = 1;
37510let isCodeGenOnly = 1;
37511let DecoderNamespace = "EXT_mmvec";
37512}
37513def V6_vroundhb : HInst<
37514(outs HvxVR:$Vd32),
37515(ins HvxVR:$Vu32, HvxVR:$Vv32),
37516"$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
37517tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
37518let Inst{7-5} = 0b110;
37519let Inst{13-13} = 0b0;
37520let Inst{31-21} = 0b00011111011;
37521let hasNewValue = 1;
37522let opNewValue = 0;
37523let isCVI = 1;
37524let DecoderNamespace = "EXT_mmvec";
37525}
37526def V6_vroundhb_alt : HInst<
37527(outs HvxVR:$Vd32),
37528(ins HvxVR:$Vu32, HvxVR:$Vv32),
37529"$Vd32 = vroundhb($Vu32,$Vv32):sat",
37530PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37531let hasNewValue = 1;
37532let opNewValue = 0;
37533let isCVI = 1;
37534let isPseudo = 1;
37535let isCodeGenOnly = 1;
37536let DecoderNamespace = "EXT_mmvec";
37537}
37538def V6_vroundhub : HInst<
37539(outs HvxVR:$Vd32),
37540(ins HvxVR:$Vu32, HvxVR:$Vv32),
37541"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
37542tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
37543let Inst{7-5} = 0b111;
37544let Inst{13-13} = 0b0;
37545let Inst{31-21} = 0b00011111011;
37546let hasNewValue = 1;
37547let opNewValue = 0;
37548let isCVI = 1;
37549let DecoderNamespace = "EXT_mmvec";
37550}
37551def V6_vroundhub_alt : HInst<
37552(outs HvxVR:$Vd32),
37553(ins HvxVR:$Vu32, HvxVR:$Vv32),
37554"$Vd32 = vroundhub($Vu32,$Vv32):sat",
37555PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37556let hasNewValue = 1;
37557let opNewValue = 0;
37558let isCVI = 1;
37559let isPseudo = 1;
37560let isCodeGenOnly = 1;
37561let DecoderNamespace = "EXT_mmvec";
37562}
37563def V6_vrounduhub : HInst<
37564(outs HvxVR:$Vd32),
37565(ins HvxVR:$Vu32, HvxVR:$Vv32),
37566"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
37567tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
37568let Inst{7-5} = 0b011;
37569let Inst{13-13} = 0b0;
37570let Inst{31-21} = 0b00011111111;
37571let hasNewValue = 1;
37572let opNewValue = 0;
37573let isCVI = 1;
37574let DecoderNamespace = "EXT_mmvec";
37575}
37576def V6_vrounduhub_alt : HInst<
37577(outs HvxVR:$Vd32),
37578(ins HvxVR:$Vu32, HvxVR:$Vv32),
37579"$Vd32 = vrounduhub($Vu32,$Vv32):sat",
37580PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37581let hasNewValue = 1;
37582let opNewValue = 0;
37583let isCVI = 1;
37584let isPseudo = 1;
37585let isCodeGenOnly = 1;
37586let DecoderNamespace = "EXT_mmvec";
37587}
37588def V6_vrounduwuh : HInst<
37589(outs HvxVR:$Vd32),
37590(ins HvxVR:$Vu32, HvxVR:$Vv32),
37591"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
37592tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
37593let Inst{7-5} = 0b100;
37594let Inst{13-13} = 0b0;
37595let Inst{31-21} = 0b00011111111;
37596let hasNewValue = 1;
37597let opNewValue = 0;
37598let isCVI = 1;
37599let DecoderNamespace = "EXT_mmvec";
37600}
37601def V6_vrounduwuh_alt : HInst<
37602(outs HvxVR:$Vd32),
37603(ins HvxVR:$Vu32, HvxVR:$Vv32),
37604"$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
37605PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37606let hasNewValue = 1;
37607let opNewValue = 0;
37608let isCVI = 1;
37609let isPseudo = 1;
37610let isCodeGenOnly = 1;
37611let DecoderNamespace = "EXT_mmvec";
37612}
37613def V6_vroundwh : HInst<
37614(outs HvxVR:$Vd32),
37615(ins HvxVR:$Vu32, HvxVR:$Vv32),
37616"$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
37617tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
37618let Inst{7-5} = 0b100;
37619let Inst{13-13} = 0b0;
37620let Inst{31-21} = 0b00011111011;
37621let hasNewValue = 1;
37622let opNewValue = 0;
37623let isCVI = 1;
37624let DecoderNamespace = "EXT_mmvec";
37625}
37626def V6_vroundwh_alt : HInst<
37627(outs HvxVR:$Vd32),
37628(ins HvxVR:$Vu32, HvxVR:$Vv32),
37629"$Vd32 = vroundwh($Vu32,$Vv32):sat",
37630PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37631let hasNewValue = 1;
37632let opNewValue = 0;
37633let isCVI = 1;
37634let isPseudo = 1;
37635let isCodeGenOnly = 1;
37636let DecoderNamespace = "EXT_mmvec";
37637}
37638def V6_vroundwuh : HInst<
37639(outs HvxVR:$Vd32),
37640(ins HvxVR:$Vu32, HvxVR:$Vv32),
37641"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
37642tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
37643let Inst{7-5} = 0b101;
37644let Inst{13-13} = 0b0;
37645let Inst{31-21} = 0b00011111011;
37646let hasNewValue = 1;
37647let opNewValue = 0;
37648let isCVI = 1;
37649let DecoderNamespace = "EXT_mmvec";
37650}
37651def V6_vroundwuh_alt : HInst<
37652(outs HvxVR:$Vd32),
37653(ins HvxVR:$Vu32, HvxVR:$Vv32),
37654"$Vd32 = vroundwuh($Vu32,$Vv32):sat",
37655PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37656let hasNewValue = 1;
37657let opNewValue = 0;
37658let isCVI = 1;
37659let isPseudo = 1;
37660let isCodeGenOnly = 1;
37661let DecoderNamespace = "EXT_mmvec";
37662}
37663def V6_vrsadubi : HInst<
37664(outs HvxWR:$Vdd32),
37665(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37666"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
37667tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37668let Inst{7-6} = 0b11;
37669let Inst{13-13} = 0b0;
37670let Inst{31-21} = 0b00011001010;
37671let hasNewValue = 1;
37672let opNewValue = 0;
37673let isCVI = 1;
37674let DecoderNamespace = "EXT_mmvec";
37675}
37676def V6_vrsadubi_acc : HInst<
37677(outs HvxWR:$Vxx32),
37678(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37679"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
37680tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37681let Inst{7-6} = 0b11;
37682let Inst{13-13} = 0b1;
37683let Inst{31-21} = 0b00011001010;
37684let hasNewValue = 1;
37685let opNewValue = 0;
37686let isAccumulator = 1;
37687let isCVI = 1;
37688let DecoderNamespace = "EXT_mmvec";
37689let Constraints = "$Vxx32 = $Vxx32in";
37690}
37691def V6_vrsadubi_acc_alt : HInst<
37692(outs HvxWR:$Vxx32),
37693(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37694"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
37695PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37696let hasNewValue = 1;
37697let opNewValue = 0;
37698let isAccumulator = 1;
37699let isCVI = 1;
37700let isPseudo = 1;
37701let isCodeGenOnly = 1;
37702let DecoderNamespace = "EXT_mmvec";
37703let Constraints = "$Vxx32 = $Vxx32in";
37704}
37705def V6_vrsadubi_alt : HInst<
37706(outs HvxWR:$Vdd32),
37707(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37708"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
37709PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37710let hasNewValue = 1;
37711let opNewValue = 0;
37712let isCVI = 1;
37713let isPseudo = 1;
37714let isCodeGenOnly = 1;
37715let DecoderNamespace = "EXT_mmvec";
37716}
37717def V6_vsatdw : HInst<
37718(outs HvxVR:$Vd32),
37719(ins HvxVR:$Vu32, HvxVR:$Vv32),
37720"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
37721tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
37722let Inst{7-5} = 0b111;
37723let Inst{13-13} = 0b1;
37724let Inst{31-21} = 0b00011101100;
37725let hasNewValue = 1;
37726let opNewValue = 0;
37727let isCVI = 1;
37728let DecoderNamespace = "EXT_mmvec";
37729}
37730def V6_vsathub : HInst<
37731(outs HvxVR:$Vd32),
37732(ins HvxVR:$Vu32, HvxVR:$Vv32),
37733"$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
37734tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37735let Inst{7-5} = 0b010;
37736let Inst{13-13} = 0b0;
37737let Inst{31-21} = 0b00011111011;
37738let hasNewValue = 1;
37739let opNewValue = 0;
37740let isCVI = 1;
37741let DecoderNamespace = "EXT_mmvec";
37742}
37743def V6_vsathub_alt : HInst<
37744(outs HvxVR:$Vd32),
37745(ins HvxVR:$Vu32, HvxVR:$Vv32),
37746"$Vd32 = vsathub($Vu32,$Vv32)",
37747PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37748let hasNewValue = 1;
37749let opNewValue = 0;
37750let isCVI = 1;
37751let isPseudo = 1;
37752let isCodeGenOnly = 1;
37753let DecoderNamespace = "EXT_mmvec";
37754}
37755def V6_vsatuwuh : HInst<
37756(outs HvxVR:$Vd32),
37757(ins HvxVR:$Vu32, HvxVR:$Vv32),
37758"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
37759tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
37760let Inst{7-5} = 0b110;
37761let Inst{13-13} = 0b0;
37762let Inst{31-21} = 0b00011111001;
37763let hasNewValue = 1;
37764let opNewValue = 0;
37765let isCVI = 1;
37766let DecoderNamespace = "EXT_mmvec";
37767}
37768def V6_vsatuwuh_alt : HInst<
37769(outs HvxVR:$Vd32),
37770(ins HvxVR:$Vu32, HvxVR:$Vv32),
37771"$Vd32 = vsatuwuh($Vu32,$Vv32)",
37772PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37773let hasNewValue = 1;
37774let opNewValue = 0;
37775let isCVI = 1;
37776let isPseudo = 1;
37777let isCodeGenOnly = 1;
37778let DecoderNamespace = "EXT_mmvec";
37779}
37780def V6_vsatwh : HInst<
37781(outs HvxVR:$Vd32),
37782(ins HvxVR:$Vu32, HvxVR:$Vv32),
37783"$Vd32.h = vsat($Vu32.w,$Vv32.w)",
37784tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37785let Inst{7-5} = 0b011;
37786let Inst{13-13} = 0b0;
37787let Inst{31-21} = 0b00011111011;
37788let hasNewValue = 1;
37789let opNewValue = 0;
37790let isCVI = 1;
37791let DecoderNamespace = "EXT_mmvec";
37792}
37793def V6_vsatwh_alt : HInst<
37794(outs HvxVR:$Vd32),
37795(ins HvxVR:$Vu32, HvxVR:$Vv32),
37796"$Vd32 = vsatwh($Vu32,$Vv32)",
37797PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37798let hasNewValue = 1;
37799let opNewValue = 0;
37800let isCVI = 1;
37801let isPseudo = 1;
37802let isCodeGenOnly = 1;
37803let DecoderNamespace = "EXT_mmvec";
37804}
37805def V6_vsb : HInst<
37806(outs HvxWR:$Vdd32),
37807(ins HvxVR:$Vu32),
37808"$Vdd32.h = vsxt($Vu32.b)",
37809tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37810let Inst{7-5} = 0b011;
37811let Inst{13-13} = 0b0;
37812let Inst{31-16} = 0b0001111000000010;
37813let hasNewValue = 1;
37814let opNewValue = 0;
37815let isCVI = 1;
37816let DecoderNamespace = "EXT_mmvec";
37817}
37818def V6_vsb_alt : HInst<
37819(outs HvxWR:$Vdd32),
37820(ins HvxVR:$Vu32),
37821"$Vdd32 = vsxtb($Vu32)",
37822PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37823let hasNewValue = 1;
37824let opNewValue = 0;
37825let isCVI = 1;
37826let isPseudo = 1;
37827let isCodeGenOnly = 1;
37828let DecoderNamespace = "EXT_mmvec";
37829}
37830def V6_vscattermh : HInst<
37831(outs),
37832(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37833"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
37834tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37835let Inst{7-5} = 0b001;
37836let Inst{31-21} = 0b00101111001;
37837let accessSize = HalfWordAccess;
37838let isCVI = 1;
37839let mayStore = 1;
37840let DecoderNamespace = "EXT_mmvec";
37841}
37842def V6_vscattermh_add : HInst<
37843(outs),
37844(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37845"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
37846tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37847let Inst{7-5} = 0b101;
37848let Inst{31-21} = 0b00101111001;
37849let accessSize = HalfWordAccess;
37850let isAccumulator = 1;
37851let isCVI = 1;
37852let mayStore = 1;
37853let DecoderNamespace = "EXT_mmvec";
37854}
37855def V6_vscattermh_add_alt : HInst<
37856(outs),
37857(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37858"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
37859PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37860let isAccumulator = 1;
37861let isCVI = 1;
37862let isPseudo = 1;
37863let isCodeGenOnly = 1;
37864let DecoderNamespace = "EXT_mmvec";
37865}
37866def V6_vscattermh_alt : HInst<
37867(outs),
37868(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37869"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
37870PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37871let isCVI = 1;
37872let isPseudo = 1;
37873let isCodeGenOnly = 1;
37874let DecoderNamespace = "EXT_mmvec";
37875}
37876def V6_vscattermhq : HInst<
37877(outs),
37878(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37879"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
37880tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
37881let Inst{7-7} = 0b1;
37882let Inst{31-21} = 0b00101111100;
37883let accessSize = HalfWordAccess;
37884let isCVI = 1;
37885let mayStore = 1;
37886let DecoderNamespace = "EXT_mmvec";
37887}
37888def V6_vscattermhq_alt : HInst<
37889(outs),
37890(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37891"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
37892PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37893let isCVI = 1;
37894let isPseudo = 1;
37895let isCodeGenOnly = 1;
37896let DecoderNamespace = "EXT_mmvec";
37897}
37898def V6_vscattermhw : HInst<
37899(outs),
37900(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37901"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
37902tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
37903let Inst{7-5} = 0b010;
37904let Inst{31-21} = 0b00101111001;
37905let accessSize = HalfWordAccess;
37906let isCVI = 1;
37907let mayStore = 1;
37908let DecoderNamespace = "EXT_mmvec";
37909}
37910def V6_vscattermhw_add : HInst<
37911(outs),
37912(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37913"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
37914tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
37915let Inst{7-5} = 0b110;
37916let Inst{31-21} = 0b00101111001;
37917let accessSize = HalfWordAccess;
37918let isAccumulator = 1;
37919let isCVI = 1;
37920let mayStore = 1;
37921let DecoderNamespace = "EXT_mmvec";
37922}
37923def V6_vscattermhwq : HInst<
37924(outs),
37925(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37926"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
37927tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
37928let Inst{7-7} = 0b0;
37929let Inst{31-21} = 0b00101111101;
37930let accessSize = HalfWordAccess;
37931let isCVI = 1;
37932let mayStore = 1;
37933let DecoderNamespace = "EXT_mmvec";
37934}
37935def V6_vscattermw : HInst<
37936(outs),
37937(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37938"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
37939tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37940let Inst{7-5} = 0b000;
37941let Inst{31-21} = 0b00101111001;
37942let accessSize = WordAccess;
37943let isCVI = 1;
37944let mayStore = 1;
37945let DecoderNamespace = "EXT_mmvec";
37946}
37947def V6_vscattermw_add : HInst<
37948(outs),
37949(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37950"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
37951tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37952let Inst{7-5} = 0b100;
37953let Inst{31-21} = 0b00101111001;
37954let accessSize = WordAccess;
37955let isAccumulator = 1;
37956let isCVI = 1;
37957let mayStore = 1;
37958let DecoderNamespace = "EXT_mmvec";
37959}
37960def V6_vscattermw_add_alt : HInst<
37961(outs),
37962(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37963"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
37964PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37965let isAccumulator = 1;
37966let isCVI = 1;
37967let isPseudo = 1;
37968let isCodeGenOnly = 1;
37969let DecoderNamespace = "EXT_mmvec";
37970}
37971def V6_vscattermw_alt : HInst<
37972(outs),
37973(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37974"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
37975PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37976let isCVI = 1;
37977let isPseudo = 1;
37978let isCodeGenOnly = 1;
37979let DecoderNamespace = "EXT_mmvec";
37980}
37981def V6_vscattermwh_add_alt : HInst<
37982(outs),
37983(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37984"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
37985PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37986let isAccumulator = 1;
37987let isCVI = 1;
37988let isPseudo = 1;
37989let isCodeGenOnly = 1;
37990let DecoderNamespace = "EXT_mmvec";
37991}
37992def V6_vscattermwh_alt : HInst<
37993(outs),
37994(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37995"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
37996PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37997let isCVI = 1;
37998let isPseudo = 1;
37999let isCodeGenOnly = 1;
38000let DecoderNamespace = "EXT_mmvec";
38001}
38002def V6_vscattermwhq_alt : HInst<
38003(outs),
38004(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38005"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
38006PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38007let isCVI = 1;
38008let isPseudo = 1;
38009let isCodeGenOnly = 1;
38010let DecoderNamespace = "EXT_mmvec";
38011}
38012def V6_vscattermwq : HInst<
38013(outs),
38014(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38015"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
38016tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
38017let Inst{7-7} = 0b0;
38018let Inst{31-21} = 0b00101111100;
38019let accessSize = WordAccess;
38020let isCVI = 1;
38021let mayStore = 1;
38022let DecoderNamespace = "EXT_mmvec";
38023}
38024def V6_vscattermwq_alt : HInst<
38025(outs),
38026(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38027"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
38028PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38029let isCVI = 1;
38030let isPseudo = 1;
38031let isCodeGenOnly = 1;
38032let DecoderNamespace = "EXT_mmvec";
38033}
38034def V6_vsh : HInst<
38035(outs HvxWR:$Vdd32),
38036(ins HvxVR:$Vu32),
38037"$Vdd32.w = vsxt($Vu32.h)",
38038tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38039let Inst{7-5} = 0b100;
38040let Inst{13-13} = 0b0;
38041let Inst{31-16} = 0b0001111000000010;
38042let hasNewValue = 1;
38043let opNewValue = 0;
38044let isCVI = 1;
38045let DecoderNamespace = "EXT_mmvec";
38046}
38047def V6_vsh_alt : HInst<
38048(outs HvxWR:$Vdd32),
38049(ins HvxVR:$Vu32),
38050"$Vdd32 = vsxth($Vu32)",
38051PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38052let hasNewValue = 1;
38053let opNewValue = 0;
38054let isCVI = 1;
38055let isPseudo = 1;
38056let isCodeGenOnly = 1;
38057let DecoderNamespace = "EXT_mmvec";
38058}
38059def V6_vshufeh : HInst<
38060(outs HvxVR:$Vd32),
38061(ins HvxVR:$Vu32, HvxVR:$Vv32),
38062"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
38063tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38064let Inst{7-5} = 0b011;
38065let Inst{13-13} = 0b0;
38066let Inst{31-21} = 0b00011111010;
38067let hasNewValue = 1;
38068let opNewValue = 0;
38069let isCVI = 1;
38070let DecoderNamespace = "EXT_mmvec";
38071}
38072def V6_vshufeh_alt : HInst<
38073(outs HvxVR:$Vd32),
38074(ins HvxVR:$Vu32, HvxVR:$Vv32),
38075"$Vd32 = vshuffeh($Vu32,$Vv32)",
38076PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38077let hasNewValue = 1;
38078let opNewValue = 0;
38079let isCVI = 1;
38080let isPseudo = 1;
38081let isCodeGenOnly = 1;
38082let DecoderNamespace = "EXT_mmvec";
38083}
38084def V6_vshuff : HInst<
38085(outs HvxVR:$Vy32, HvxVR:$Vx32),
38086(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
38087"vshuff($Vy32,$Vx32,$Rt32)",
38088tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
38089let Inst{7-5} = 0b001;
38090let Inst{13-13} = 0b1;
38091let Inst{31-21} = 0b00011001111;
38092let hasNewValue = 1;
38093let opNewValue = 0;
38094let hasNewValue2 = 1;
38095let opNewValue2 = 1;
38096let isCVI = 1;
38097let DecoderNamespace = "EXT_mmvec";
38098let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
38099}
38100def V6_vshuffb : HInst<
38101(outs HvxVR:$Vd32),
38102(ins HvxVR:$Vu32),
38103"$Vd32.b = vshuff($Vu32.b)",
38104tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38105let Inst{7-5} = 0b000;
38106let Inst{13-13} = 0b0;
38107let Inst{31-16} = 0b0001111000000010;
38108let hasNewValue = 1;
38109let opNewValue = 0;
38110let isCVI = 1;
38111let DecoderNamespace = "EXT_mmvec";
38112}
38113def V6_vshuffb_alt : HInst<
38114(outs HvxVR:$Vd32),
38115(ins HvxVR:$Vu32),
38116"$Vd32 = vshuffb($Vu32)",
38117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38118let hasNewValue = 1;
38119let opNewValue = 0;
38120let isCVI = 1;
38121let isPseudo = 1;
38122let isCodeGenOnly = 1;
38123let DecoderNamespace = "EXT_mmvec";
38124}
38125def V6_vshuffeb : HInst<
38126(outs HvxVR:$Vd32),
38127(ins HvxVR:$Vu32, HvxVR:$Vv32),
38128"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
38129tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38130let Inst{7-5} = 0b001;
38131let Inst{13-13} = 0b0;
38132let Inst{31-21} = 0b00011111010;
38133let hasNewValue = 1;
38134let opNewValue = 0;
38135let isCVI = 1;
38136let DecoderNamespace = "EXT_mmvec";
38137}
38138def V6_vshuffeb_alt : HInst<
38139(outs HvxVR:$Vd32),
38140(ins HvxVR:$Vu32, HvxVR:$Vv32),
38141"$Vd32 = vshuffeb($Vu32,$Vv32)",
38142PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38143let hasNewValue = 1;
38144let opNewValue = 0;
38145let isCVI = 1;
38146let isPseudo = 1;
38147let isCodeGenOnly = 1;
38148let DecoderNamespace = "EXT_mmvec";
38149}
38150def V6_vshuffh : HInst<
38151(outs HvxVR:$Vd32),
38152(ins HvxVR:$Vu32),
38153"$Vd32.h = vshuff($Vu32.h)",
38154tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38155let Inst{7-5} = 0b111;
38156let Inst{13-13} = 0b0;
38157let Inst{31-16} = 0b0001111000000001;
38158let hasNewValue = 1;
38159let opNewValue = 0;
38160let isCVI = 1;
38161let DecoderNamespace = "EXT_mmvec";
38162}
38163def V6_vshuffh_alt : HInst<
38164(outs HvxVR:$Vd32),
38165(ins HvxVR:$Vu32),
38166"$Vd32 = vshuffh($Vu32)",
38167PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38168let hasNewValue = 1;
38169let opNewValue = 0;
38170let isCVI = 1;
38171let isPseudo = 1;
38172let isCodeGenOnly = 1;
38173let DecoderNamespace = "EXT_mmvec";
38174}
38175def V6_vshuffob : HInst<
38176(outs HvxVR:$Vd32),
38177(ins HvxVR:$Vu32, HvxVR:$Vv32),
38178"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
38179tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38180let Inst{7-5} = 0b010;
38181let Inst{13-13} = 0b0;
38182let Inst{31-21} = 0b00011111010;
38183let hasNewValue = 1;
38184let opNewValue = 0;
38185let isCVI = 1;
38186let DecoderNamespace = "EXT_mmvec";
38187}
38188def V6_vshuffob_alt : HInst<
38189(outs HvxVR:$Vd32),
38190(ins HvxVR:$Vu32, HvxVR:$Vv32),
38191"$Vd32 = vshuffob($Vu32,$Vv32)",
38192PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38193let hasNewValue = 1;
38194let opNewValue = 0;
38195let isCVI = 1;
38196let isPseudo = 1;
38197let isCodeGenOnly = 1;
38198let DecoderNamespace = "EXT_mmvec";
38199}
38200def V6_vshuffvdd : HInst<
38201(outs HvxWR:$Vdd32),
38202(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
38203"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
38204tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
38205let Inst{7-5} = 0b011;
38206let Inst{13-13} = 0b1;
38207let Inst{31-24} = 0b00011011;
38208let hasNewValue = 1;
38209let opNewValue = 0;
38210let isCVI = 1;
38211let DecoderNamespace = "EXT_mmvec";
38212}
38213def V6_vshufoeb : HInst<
38214(outs HvxWR:$Vdd32),
38215(ins HvxVR:$Vu32, HvxVR:$Vv32),
38216"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
38217tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38218let Inst{7-5} = 0b110;
38219let Inst{13-13} = 0b0;
38220let Inst{31-21} = 0b00011111010;
38221let hasNewValue = 1;
38222let opNewValue = 0;
38223let isCVI = 1;
38224let DecoderNamespace = "EXT_mmvec";
38225}
38226def V6_vshufoeb_alt : HInst<
38227(outs HvxWR:$Vdd32),
38228(ins HvxVR:$Vu32, HvxVR:$Vv32),
38229"$Vdd32 = vshuffoeb($Vu32,$Vv32)",
38230PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38231let hasNewValue = 1;
38232let opNewValue = 0;
38233let isCVI = 1;
38234let isPseudo = 1;
38235let isCodeGenOnly = 1;
38236let DecoderNamespace = "EXT_mmvec";
38237}
38238def V6_vshufoeh : HInst<
38239(outs HvxWR:$Vdd32),
38240(ins HvxVR:$Vu32, HvxVR:$Vv32),
38241"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
38242tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38243let Inst{7-5} = 0b101;
38244let Inst{13-13} = 0b0;
38245let Inst{31-21} = 0b00011111010;
38246let hasNewValue = 1;
38247let opNewValue = 0;
38248let isCVI = 1;
38249let DecoderNamespace = "EXT_mmvec";
38250}
38251def V6_vshufoeh_alt : HInst<
38252(outs HvxWR:$Vdd32),
38253(ins HvxVR:$Vu32, HvxVR:$Vv32),
38254"$Vdd32 = vshuffoeh($Vu32,$Vv32)",
38255PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38256let hasNewValue = 1;
38257let opNewValue = 0;
38258let isCVI = 1;
38259let isPseudo = 1;
38260let isCodeGenOnly = 1;
38261let DecoderNamespace = "EXT_mmvec";
38262}
38263def V6_vshufoh : HInst<
38264(outs HvxVR:$Vd32),
38265(ins HvxVR:$Vu32, HvxVR:$Vv32),
38266"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
38267tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38268let Inst{7-5} = 0b100;
38269let Inst{13-13} = 0b0;
38270let Inst{31-21} = 0b00011111010;
38271let hasNewValue = 1;
38272let opNewValue = 0;
38273let isCVI = 1;
38274let DecoderNamespace = "EXT_mmvec";
38275}
38276def V6_vshufoh_alt : HInst<
38277(outs HvxVR:$Vd32),
38278(ins HvxVR:$Vu32, HvxVR:$Vv32),
38279"$Vd32 = vshuffoh($Vu32,$Vv32)",
38280PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38281let hasNewValue = 1;
38282let opNewValue = 0;
38283let isCVI = 1;
38284let isPseudo = 1;
38285let isCodeGenOnly = 1;
38286let DecoderNamespace = "EXT_mmvec";
38287}
38288def V6_vsub_hf : HInst<
38289(outs HvxVR:$Vd32),
38290(ins HvxVR:$Vu32, HvxVR:$Vv32),
38291"$Vd32.qf16 = vsub($Vu32.hf,$Vv32.hf)",
38292tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38293let Inst{7-5} = 0b110;
38294let Inst{13-13} = 0b1;
38295let Inst{31-21} = 0b00011111011;
38296let hasNewValue = 1;
38297let opNewValue = 0;
38298let isCVI = 1;
38299let DecoderNamespace = "EXT_mmvec";
38300}
38301def V6_vsub_hf_hf : HInst<
38302(outs HvxVR:$Vd32),
38303(ins HvxVR:$Vu32, HvxVR:$Vv32),
38304"$Vd32.hf = vsub($Vu32.hf,$Vv32.hf)",
38305tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38306let Inst{7-5} = 0b000;
38307let Inst{13-13} = 0b1;
38308let Inst{31-21} = 0b00011111011;
38309let hasNewValue = 1;
38310let opNewValue = 0;
38311let isCVI = 1;
38312let DecoderNamespace = "EXT_mmvec";
38313}
38314def V6_vsub_qf16 : HInst<
38315(outs HvxVR:$Vd32),
38316(ins HvxVR:$Vu32, HvxVR:$Vv32),
38317"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.qf16)",
38318tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38319let Inst{7-5} = 0b101;
38320let Inst{13-13} = 0b1;
38321let Inst{31-21} = 0b00011111011;
38322let hasNewValue = 1;
38323let opNewValue = 0;
38324let isCVI = 1;
38325let DecoderNamespace = "EXT_mmvec";
38326}
38327def V6_vsub_qf16_mix : HInst<
38328(outs HvxVR:$Vd32),
38329(ins HvxVR:$Vu32, HvxVR:$Vv32),
38330"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.hf)",
38331tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38332let Inst{7-5} = 0b111;
38333let Inst{13-13} = 0b1;
38334let Inst{31-21} = 0b00011111011;
38335let hasNewValue = 1;
38336let opNewValue = 0;
38337let isCVI = 1;
38338let DecoderNamespace = "EXT_mmvec";
38339}
38340def V6_vsub_qf32 : HInst<
38341(outs HvxVR:$Vd32),
38342(ins HvxVR:$Vu32, HvxVR:$Vv32),
38343"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.qf32)",
38344tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38345let Inst{7-5} = 0b011;
38346let Inst{13-13} = 0b1;
38347let Inst{31-21} = 0b00011111101;
38348let hasNewValue = 1;
38349let opNewValue = 0;
38350let isCVI = 1;
38351let DecoderNamespace = "EXT_mmvec";
38352}
38353def V6_vsub_qf32_mix : HInst<
38354(outs HvxVR:$Vd32),
38355(ins HvxVR:$Vu32, HvxVR:$Vv32),
38356"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.sf)",
38357tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38358let Inst{7-5} = 0b101;
38359let Inst{13-13} = 0b1;
38360let Inst{31-21} = 0b00011111101;
38361let hasNewValue = 1;
38362let opNewValue = 0;
38363let isCVI = 1;
38364let DecoderNamespace = "EXT_mmvec";
38365}
38366def V6_vsub_sf : HInst<
38367(outs HvxVR:$Vd32),
38368(ins HvxVR:$Vu32, HvxVR:$Vv32),
38369"$Vd32.qf32 = vsub($Vu32.sf,$Vv32.sf)",
38370tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38371let Inst{7-5} = 0b100;
38372let Inst{13-13} = 0b1;
38373let Inst{31-21} = 0b00011111101;
38374let hasNewValue = 1;
38375let opNewValue = 0;
38376let isCVI = 1;
38377let DecoderNamespace = "EXT_mmvec";
38378}
38379def V6_vsub_sf_hf : HInst<
38380(outs HvxWR:$Vdd32),
38381(ins HvxVR:$Vu32, HvxVR:$Vv32),
38382"$Vdd32.sf = vsub($Vu32.hf,$Vv32.hf)",
38383tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38384let Inst{7-5} = 0b101;
38385let Inst{13-13} = 0b1;
38386let Inst{31-21} = 0b00011111100;
38387let hasNewValue = 1;
38388let opNewValue = 0;
38389let isCVI = 1;
38390let DecoderNamespace = "EXT_mmvec";
38391}
38392def V6_vsub_sf_sf : HInst<
38393(outs HvxVR:$Vd32),
38394(ins HvxVR:$Vu32, HvxVR:$Vv32),
38395"$Vd32.sf = vsub($Vu32.sf,$Vv32.sf)",
38396tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38397let Inst{7-5} = 0b111;
38398let Inst{13-13} = 0b1;
38399let Inst{31-21} = 0b00011111100;
38400let hasNewValue = 1;
38401let opNewValue = 0;
38402let isCVI = 1;
38403let DecoderNamespace = "EXT_mmvec";
38404}
38405def V6_vsubb : HInst<
38406(outs HvxVR:$Vd32),
38407(ins HvxVR:$Vu32, HvxVR:$Vv32),
38408"$Vd32.b = vsub($Vu32.b,$Vv32.b)",
38409tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38410let Inst{7-5} = 0b101;
38411let Inst{13-13} = 0b0;
38412let Inst{31-21} = 0b00011100010;
38413let hasNewValue = 1;
38414let opNewValue = 0;
38415let isCVI = 1;
38416let DecoderNamespace = "EXT_mmvec";
38417}
38418def V6_vsubb_alt : HInst<
38419(outs HvxVR:$Vd32),
38420(ins HvxVR:$Vu32, HvxVR:$Vv32),
38421"$Vd32 = vsubb($Vu32,$Vv32)",
38422PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38423let hasNewValue = 1;
38424let opNewValue = 0;
38425let isCVI = 1;
38426let isPseudo = 1;
38427let isCodeGenOnly = 1;
38428let DecoderNamespace = "EXT_mmvec";
38429}
38430def V6_vsubb_dv : HInst<
38431(outs HvxWR:$Vdd32),
38432(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38433"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
38434tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38435let Inst{7-5} = 0b011;
38436let Inst{13-13} = 0b0;
38437let Inst{31-21} = 0b00011100100;
38438let hasNewValue = 1;
38439let opNewValue = 0;
38440let isCVI = 1;
38441let DecoderNamespace = "EXT_mmvec";
38442}
38443def V6_vsubb_dv_alt : HInst<
38444(outs HvxWR:$Vdd32),
38445(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38446"$Vdd32 = vsubb($Vuu32,$Vvv32)",
38447PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38448let hasNewValue = 1;
38449let opNewValue = 0;
38450let isCVI = 1;
38451let isPseudo = 1;
38452let isCodeGenOnly = 1;
38453let DecoderNamespace = "EXT_mmvec";
38454}
38455def V6_vsubbnq : HInst<
38456(outs HvxVR:$Vx32),
38457(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38458"if (!$Qv4) $Vx32.b -= $Vu32.b",
38459tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38460let Inst{7-5} = 0b001;
38461let Inst{13-13} = 0b1;
38462let Inst{21-16} = 0b000010;
38463let Inst{31-24} = 0b00011110;
38464let hasNewValue = 1;
38465let opNewValue = 0;
38466let isCVI = 1;
38467let DecoderNamespace = "EXT_mmvec";
38468let Constraints = "$Vx32 = $Vx32in";
38469}
38470def V6_vsubbnq_alt : HInst<
38471(outs HvxVR:$Vx32),
38472(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38473"if (!$Qv4.b) $Vx32.b -= $Vu32.b",
38474PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38475let hasNewValue = 1;
38476let opNewValue = 0;
38477let isCVI = 1;
38478let isPseudo = 1;
38479let isCodeGenOnly = 1;
38480let DecoderNamespace = "EXT_mmvec";
38481let Constraints = "$Vx32 = $Vx32in";
38482}
38483def V6_vsubbq : HInst<
38484(outs HvxVR:$Vx32),
38485(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38486"if ($Qv4) $Vx32.b -= $Vu32.b",
38487tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38488let Inst{7-5} = 0b110;
38489let Inst{13-13} = 0b1;
38490let Inst{21-16} = 0b000001;
38491let Inst{31-24} = 0b00011110;
38492let hasNewValue = 1;
38493let opNewValue = 0;
38494let isCVI = 1;
38495let DecoderNamespace = "EXT_mmvec";
38496let Constraints = "$Vx32 = $Vx32in";
38497}
38498def V6_vsubbq_alt : HInst<
38499(outs HvxVR:$Vx32),
38500(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38501"if ($Qv4.b) $Vx32.b -= $Vu32.b",
38502PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38503let hasNewValue = 1;
38504let opNewValue = 0;
38505let isCVI = 1;
38506let isPseudo = 1;
38507let isCodeGenOnly = 1;
38508let DecoderNamespace = "EXT_mmvec";
38509let Constraints = "$Vx32 = $Vx32in";
38510}
38511def V6_vsubbsat : HInst<
38512(outs HvxVR:$Vd32),
38513(ins HvxVR:$Vu32, HvxVR:$Vv32),
38514"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
38515tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
38516let Inst{7-5} = 0b010;
38517let Inst{13-13} = 0b0;
38518let Inst{31-21} = 0b00011111001;
38519let hasNewValue = 1;
38520let opNewValue = 0;
38521let isCVI = 1;
38522let DecoderNamespace = "EXT_mmvec";
38523}
38524def V6_vsubbsat_alt : HInst<
38525(outs HvxVR:$Vd32),
38526(ins HvxVR:$Vu32, HvxVR:$Vv32),
38527"$Vd32 = vsubb($Vu32,$Vv32):sat",
38528PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38529let hasNewValue = 1;
38530let opNewValue = 0;
38531let isCVI = 1;
38532let isPseudo = 1;
38533let isCodeGenOnly = 1;
38534let DecoderNamespace = "EXT_mmvec";
38535}
38536def V6_vsubbsat_dv : HInst<
38537(outs HvxWR:$Vdd32),
38538(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38539"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
38540tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
38541let Inst{7-5} = 0b001;
38542let Inst{13-13} = 0b0;
38543let Inst{31-21} = 0b00011110101;
38544let hasNewValue = 1;
38545let opNewValue = 0;
38546let isCVI = 1;
38547let DecoderNamespace = "EXT_mmvec";
38548}
38549def V6_vsubbsat_dv_alt : HInst<
38550(outs HvxWR:$Vdd32),
38551(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38552"$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
38553PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38554let hasNewValue = 1;
38555let opNewValue = 0;
38556let isCVI = 1;
38557let isPseudo = 1;
38558let isCodeGenOnly = 1;
38559let DecoderNamespace = "EXT_mmvec";
38560}
38561def V6_vsubcarry : HInst<
38562(outs HvxVR:$Vd32, HvxQR:$Qx4),
38563(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
38564"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
38565tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
38566let Inst{7-7} = 0b1;
38567let Inst{13-13} = 0b1;
38568let Inst{31-21} = 0b00011100101;
38569let hasNewValue = 1;
38570let opNewValue = 0;
38571let isCVI = 1;
38572let DecoderNamespace = "EXT_mmvec";
38573let Constraints = "$Qx4 = $Qx4in";
38574}
38575def V6_vsubcarryo : HInst<
38576(outs HvxVR:$Vd32, HvxQR:$Qe4),
38577(ins HvxVR:$Vu32, HvxVR:$Vv32),
38578"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
38579tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
38580let Inst{7-7} = 0b1;
38581let Inst{13-13} = 0b1;
38582let Inst{31-21} = 0b00011101101;
38583let hasNewValue = 1;
38584let opNewValue = 0;
38585let hasNewValue2 = 1;
38586let opNewValue2 = 1;
38587let isCVI = 1;
38588let DecoderNamespace = "EXT_mmvec";
38589}
38590def V6_vsubh : HInst<
38591(outs HvxVR:$Vd32),
38592(ins HvxVR:$Vu32, HvxVR:$Vv32),
38593"$Vd32.h = vsub($Vu32.h,$Vv32.h)",
38594tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38595let Inst{7-5} = 0b110;
38596let Inst{13-13} = 0b0;
38597let Inst{31-21} = 0b00011100010;
38598let hasNewValue = 1;
38599let opNewValue = 0;
38600let isCVI = 1;
38601let DecoderNamespace = "EXT_mmvec";
38602}
38603def V6_vsubh_alt : HInst<
38604(outs HvxVR:$Vd32),
38605(ins HvxVR:$Vu32, HvxVR:$Vv32),
38606"$Vd32 = vsubh($Vu32,$Vv32)",
38607PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38608let hasNewValue = 1;
38609let opNewValue = 0;
38610let isCVI = 1;
38611let isPseudo = 1;
38612let isCodeGenOnly = 1;
38613let DecoderNamespace = "EXT_mmvec";
38614}
38615def V6_vsubh_dv : HInst<
38616(outs HvxWR:$Vdd32),
38617(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38618"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
38619tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38620let Inst{7-5} = 0b100;
38621let Inst{13-13} = 0b0;
38622let Inst{31-21} = 0b00011100100;
38623let hasNewValue = 1;
38624let opNewValue = 0;
38625let isCVI = 1;
38626let DecoderNamespace = "EXT_mmvec";
38627}
38628def V6_vsubh_dv_alt : HInst<
38629(outs HvxWR:$Vdd32),
38630(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38631"$Vdd32 = vsubh($Vuu32,$Vvv32)",
38632PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38633let hasNewValue = 1;
38634let opNewValue = 0;
38635let isCVI = 1;
38636let isPseudo = 1;
38637let isCodeGenOnly = 1;
38638let DecoderNamespace = "EXT_mmvec";
38639}
38640def V6_vsubhnq : HInst<
38641(outs HvxVR:$Vx32),
38642(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38643"if (!$Qv4) $Vx32.h -= $Vu32.h",
38644tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38645let Inst{7-5} = 0b010;
38646let Inst{13-13} = 0b1;
38647let Inst{21-16} = 0b000010;
38648let Inst{31-24} = 0b00011110;
38649let hasNewValue = 1;
38650let opNewValue = 0;
38651let isCVI = 1;
38652let DecoderNamespace = "EXT_mmvec";
38653let Constraints = "$Vx32 = $Vx32in";
38654}
38655def V6_vsubhnq_alt : HInst<
38656(outs HvxVR:$Vx32),
38657(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38658"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
38659PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38660let hasNewValue = 1;
38661let opNewValue = 0;
38662let isCVI = 1;
38663let isPseudo = 1;
38664let isCodeGenOnly = 1;
38665let DecoderNamespace = "EXT_mmvec";
38666let Constraints = "$Vx32 = $Vx32in";
38667}
38668def V6_vsubhq : HInst<
38669(outs HvxVR:$Vx32),
38670(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38671"if ($Qv4) $Vx32.h -= $Vu32.h",
38672tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38673let Inst{7-5} = 0b111;
38674let Inst{13-13} = 0b1;
38675let Inst{21-16} = 0b000001;
38676let Inst{31-24} = 0b00011110;
38677let hasNewValue = 1;
38678let opNewValue = 0;
38679let isCVI = 1;
38680let DecoderNamespace = "EXT_mmvec";
38681let Constraints = "$Vx32 = $Vx32in";
38682}
38683def V6_vsubhq_alt : HInst<
38684(outs HvxVR:$Vx32),
38685(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38686"if ($Qv4.h) $Vx32.h -= $Vu32.h",
38687PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38688let hasNewValue = 1;
38689let opNewValue = 0;
38690let isCVI = 1;
38691let isPseudo = 1;
38692let isCodeGenOnly = 1;
38693let DecoderNamespace = "EXT_mmvec";
38694let Constraints = "$Vx32 = $Vx32in";
38695}
38696def V6_vsubhsat : HInst<
38697(outs HvxVR:$Vd32),
38698(ins HvxVR:$Vu32, HvxVR:$Vv32),
38699"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
38700tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38701let Inst{7-5} = 0b010;
38702let Inst{13-13} = 0b0;
38703let Inst{31-21} = 0b00011100011;
38704let hasNewValue = 1;
38705let opNewValue = 0;
38706let isCVI = 1;
38707let DecoderNamespace = "EXT_mmvec";
38708}
38709def V6_vsubhsat_alt : HInst<
38710(outs HvxVR:$Vd32),
38711(ins HvxVR:$Vu32, HvxVR:$Vv32),
38712"$Vd32 = vsubh($Vu32,$Vv32):sat",
38713PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38714let hasNewValue = 1;
38715let opNewValue = 0;
38716let isCVI = 1;
38717let isPseudo = 1;
38718let isCodeGenOnly = 1;
38719let DecoderNamespace = "EXT_mmvec";
38720}
38721def V6_vsubhsat_dv : HInst<
38722(outs HvxWR:$Vdd32),
38723(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38724"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
38725tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38726let Inst{7-5} = 0b000;
38727let Inst{13-13} = 0b0;
38728let Inst{31-21} = 0b00011100101;
38729let hasNewValue = 1;
38730let opNewValue = 0;
38731let isCVI = 1;
38732let DecoderNamespace = "EXT_mmvec";
38733}
38734def V6_vsubhsat_dv_alt : HInst<
38735(outs HvxWR:$Vdd32),
38736(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38737"$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
38738PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38739let hasNewValue = 1;
38740let opNewValue = 0;
38741let isCVI = 1;
38742let isPseudo = 1;
38743let isCodeGenOnly = 1;
38744let DecoderNamespace = "EXT_mmvec";
38745}
38746def V6_vsubhw : HInst<
38747(outs HvxWR:$Vdd32),
38748(ins HvxVR:$Vu32, HvxVR:$Vv32),
38749"$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
38750tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38751let Inst{7-5} = 0b111;
38752let Inst{13-13} = 0b0;
38753let Inst{31-21} = 0b00011100101;
38754let hasNewValue = 1;
38755let opNewValue = 0;
38756let isCVI = 1;
38757let DecoderNamespace = "EXT_mmvec";
38758}
38759def V6_vsubhw_alt : HInst<
38760(outs HvxWR:$Vdd32),
38761(ins HvxVR:$Vu32, HvxVR:$Vv32),
38762"$Vdd32 = vsubh($Vu32,$Vv32)",
38763PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38764let hasNewValue = 1;
38765let opNewValue = 0;
38766let isCVI = 1;
38767let isPseudo = 1;
38768let isCodeGenOnly = 1;
38769let DecoderNamespace = "EXT_mmvec";
38770}
38771def V6_vsububh : HInst<
38772(outs HvxWR:$Vdd32),
38773(ins HvxVR:$Vu32, HvxVR:$Vv32),
38774"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
38775tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38776let Inst{7-5} = 0b101;
38777let Inst{13-13} = 0b0;
38778let Inst{31-21} = 0b00011100101;
38779let hasNewValue = 1;
38780let opNewValue = 0;
38781let isCVI = 1;
38782let DecoderNamespace = "EXT_mmvec";
38783}
38784def V6_vsububh_alt : HInst<
38785(outs HvxWR:$Vdd32),
38786(ins HvxVR:$Vu32, HvxVR:$Vv32),
38787"$Vdd32 = vsubub($Vu32,$Vv32)",
38788PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38789let hasNewValue = 1;
38790let opNewValue = 0;
38791let isCVI = 1;
38792let isPseudo = 1;
38793let isCodeGenOnly = 1;
38794let DecoderNamespace = "EXT_mmvec";
38795}
38796def V6_vsububsat : HInst<
38797(outs HvxVR:$Vd32),
38798(ins HvxVR:$Vu32, HvxVR:$Vv32),
38799"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
38800tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38801let Inst{7-5} = 0b000;
38802let Inst{13-13} = 0b0;
38803let Inst{31-21} = 0b00011100011;
38804let hasNewValue = 1;
38805let opNewValue = 0;
38806let isCVI = 1;
38807let DecoderNamespace = "EXT_mmvec";
38808}
38809def V6_vsububsat_alt : HInst<
38810(outs HvxVR:$Vd32),
38811(ins HvxVR:$Vu32, HvxVR:$Vv32),
38812"$Vd32 = vsubub($Vu32,$Vv32):sat",
38813PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38814let hasNewValue = 1;
38815let opNewValue = 0;
38816let isCVI = 1;
38817let isPseudo = 1;
38818let isCodeGenOnly = 1;
38819let DecoderNamespace = "EXT_mmvec";
38820}
38821def V6_vsububsat_dv : HInst<
38822(outs HvxWR:$Vdd32),
38823(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38824"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
38825tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38826let Inst{7-5} = 0b110;
38827let Inst{13-13} = 0b0;
38828let Inst{31-21} = 0b00011100100;
38829let hasNewValue = 1;
38830let opNewValue = 0;
38831let isCVI = 1;
38832let DecoderNamespace = "EXT_mmvec";
38833}
38834def V6_vsububsat_dv_alt : HInst<
38835(outs HvxWR:$Vdd32),
38836(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38837"$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
38838PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38839let hasNewValue = 1;
38840let opNewValue = 0;
38841let isCVI = 1;
38842let isPseudo = 1;
38843let isCodeGenOnly = 1;
38844let DecoderNamespace = "EXT_mmvec";
38845}
38846def V6_vsubububb_sat : HInst<
38847(outs HvxVR:$Vd32),
38848(ins HvxVR:$Vu32, HvxVR:$Vv32),
38849"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
38850tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
38851let Inst{7-5} = 0b101;
38852let Inst{13-13} = 0b0;
38853let Inst{31-21} = 0b00011110101;
38854let hasNewValue = 1;
38855let opNewValue = 0;
38856let isCVI = 1;
38857let DecoderNamespace = "EXT_mmvec";
38858}
38859def V6_vsubuhsat : HInst<
38860(outs HvxVR:$Vd32),
38861(ins HvxVR:$Vu32, HvxVR:$Vv32),
38862"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
38863tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38864let Inst{7-5} = 0b001;
38865let Inst{13-13} = 0b0;
38866let Inst{31-21} = 0b00011100011;
38867let hasNewValue = 1;
38868let opNewValue = 0;
38869let isCVI = 1;
38870let DecoderNamespace = "EXT_mmvec";
38871}
38872def V6_vsubuhsat_alt : HInst<
38873(outs HvxVR:$Vd32),
38874(ins HvxVR:$Vu32, HvxVR:$Vv32),
38875"$Vd32 = vsubuh($Vu32,$Vv32):sat",
38876PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38877let hasNewValue = 1;
38878let opNewValue = 0;
38879let isCVI = 1;
38880let isPseudo = 1;
38881let isCodeGenOnly = 1;
38882let DecoderNamespace = "EXT_mmvec";
38883}
38884def V6_vsubuhsat_dv : HInst<
38885(outs HvxWR:$Vdd32),
38886(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38887"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
38888tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38889let Inst{7-5} = 0b111;
38890let Inst{13-13} = 0b0;
38891let Inst{31-21} = 0b00011100100;
38892let hasNewValue = 1;
38893let opNewValue = 0;
38894let isCVI = 1;
38895let DecoderNamespace = "EXT_mmvec";
38896}
38897def V6_vsubuhsat_dv_alt : HInst<
38898(outs HvxWR:$Vdd32),
38899(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38900"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
38901PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38902let hasNewValue = 1;
38903let opNewValue = 0;
38904let isCVI = 1;
38905let isPseudo = 1;
38906let isCodeGenOnly = 1;
38907let DecoderNamespace = "EXT_mmvec";
38908}
38909def V6_vsubuhw : HInst<
38910(outs HvxWR:$Vdd32),
38911(ins HvxVR:$Vu32, HvxVR:$Vv32),
38912"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
38913tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38914let Inst{7-5} = 0b110;
38915let Inst{13-13} = 0b0;
38916let Inst{31-21} = 0b00011100101;
38917let hasNewValue = 1;
38918let opNewValue = 0;
38919let isCVI = 1;
38920let DecoderNamespace = "EXT_mmvec";
38921}
38922def V6_vsubuhw_alt : HInst<
38923(outs HvxWR:$Vdd32),
38924(ins HvxVR:$Vu32, HvxVR:$Vv32),
38925"$Vdd32 = vsubuh($Vu32,$Vv32)",
38926PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38927let hasNewValue = 1;
38928let opNewValue = 0;
38929let isCVI = 1;
38930let isPseudo = 1;
38931let isCodeGenOnly = 1;
38932let DecoderNamespace = "EXT_mmvec";
38933}
38934def V6_vsubuwsat : HInst<
38935(outs HvxVR:$Vd32),
38936(ins HvxVR:$Vu32, HvxVR:$Vv32),
38937"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
38938tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
38939let Inst{7-5} = 0b100;
38940let Inst{13-13} = 0b0;
38941let Inst{31-21} = 0b00011111110;
38942let hasNewValue = 1;
38943let opNewValue = 0;
38944let isCVI = 1;
38945let DecoderNamespace = "EXT_mmvec";
38946}
38947def V6_vsubuwsat_alt : HInst<
38948(outs HvxVR:$Vd32),
38949(ins HvxVR:$Vu32, HvxVR:$Vv32),
38950"$Vd32 = vsubuw($Vu32,$Vv32):sat",
38951PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38952let hasNewValue = 1;
38953let opNewValue = 0;
38954let isCVI = 1;
38955let isPseudo = 1;
38956let isCodeGenOnly = 1;
38957let DecoderNamespace = "EXT_mmvec";
38958}
38959def V6_vsubuwsat_dv : HInst<
38960(outs HvxWR:$Vdd32),
38961(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38962"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
38963tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
38964let Inst{7-5} = 0b011;
38965let Inst{13-13} = 0b0;
38966let Inst{31-21} = 0b00011110101;
38967let hasNewValue = 1;
38968let opNewValue = 0;
38969let isCVI = 1;
38970let DecoderNamespace = "EXT_mmvec";
38971}
38972def V6_vsubuwsat_dv_alt : HInst<
38973(outs HvxWR:$Vdd32),
38974(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38975"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
38976PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38977let hasNewValue = 1;
38978let opNewValue = 0;
38979let isCVI = 1;
38980let isPseudo = 1;
38981let isCodeGenOnly = 1;
38982let DecoderNamespace = "EXT_mmvec";
38983}
38984def V6_vsubw : HInst<
38985(outs HvxVR:$Vd32),
38986(ins HvxVR:$Vu32, HvxVR:$Vv32),
38987"$Vd32.w = vsub($Vu32.w,$Vv32.w)",
38988tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38989let Inst{7-5} = 0b111;
38990let Inst{13-13} = 0b0;
38991let Inst{31-21} = 0b00011100010;
38992let hasNewValue = 1;
38993let opNewValue = 0;
38994let isCVI = 1;
38995let DecoderNamespace = "EXT_mmvec";
38996}
38997def V6_vsubw_alt : HInst<
38998(outs HvxVR:$Vd32),
38999(ins HvxVR:$Vu32, HvxVR:$Vv32),
39000"$Vd32 = vsubw($Vu32,$Vv32)",
39001PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39002let hasNewValue = 1;
39003let opNewValue = 0;
39004let isCVI = 1;
39005let isPseudo = 1;
39006let isCodeGenOnly = 1;
39007let DecoderNamespace = "EXT_mmvec";
39008}
39009def V6_vsubw_dv : HInst<
39010(outs HvxWR:$Vdd32),
39011(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39012"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
39013tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39014let Inst{7-5} = 0b101;
39015let Inst{13-13} = 0b0;
39016let Inst{31-21} = 0b00011100100;
39017let hasNewValue = 1;
39018let opNewValue = 0;
39019let isCVI = 1;
39020let DecoderNamespace = "EXT_mmvec";
39021}
39022def V6_vsubw_dv_alt : HInst<
39023(outs HvxWR:$Vdd32),
39024(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39025"$Vdd32 = vsubw($Vuu32,$Vvv32)",
39026PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39027let hasNewValue = 1;
39028let opNewValue = 0;
39029let isCVI = 1;
39030let isPseudo = 1;
39031let isCodeGenOnly = 1;
39032let DecoderNamespace = "EXT_mmvec";
39033}
39034def V6_vsubwnq : HInst<
39035(outs HvxVR:$Vx32),
39036(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39037"if (!$Qv4) $Vx32.w -= $Vu32.w",
39038tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39039let Inst{7-5} = 0b011;
39040let Inst{13-13} = 0b1;
39041let Inst{21-16} = 0b000010;
39042let Inst{31-24} = 0b00011110;
39043let hasNewValue = 1;
39044let opNewValue = 0;
39045let isCVI = 1;
39046let DecoderNamespace = "EXT_mmvec";
39047let Constraints = "$Vx32 = $Vx32in";
39048}
39049def V6_vsubwnq_alt : HInst<
39050(outs HvxVR:$Vx32),
39051(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39052"if (!$Qv4.w) $Vx32.w -= $Vu32.w",
39053PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39054let hasNewValue = 1;
39055let opNewValue = 0;
39056let isCVI = 1;
39057let isPseudo = 1;
39058let isCodeGenOnly = 1;
39059let DecoderNamespace = "EXT_mmvec";
39060let Constraints = "$Vx32 = $Vx32in";
39061}
39062def V6_vsubwq : HInst<
39063(outs HvxVR:$Vx32),
39064(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39065"if ($Qv4) $Vx32.w -= $Vu32.w",
39066tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39067let Inst{7-5} = 0b000;
39068let Inst{13-13} = 0b1;
39069let Inst{21-16} = 0b000010;
39070let Inst{31-24} = 0b00011110;
39071let hasNewValue = 1;
39072let opNewValue = 0;
39073let isCVI = 1;
39074let DecoderNamespace = "EXT_mmvec";
39075let Constraints = "$Vx32 = $Vx32in";
39076}
39077def V6_vsubwq_alt : HInst<
39078(outs HvxVR:$Vx32),
39079(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39080"if ($Qv4.w) $Vx32.w -= $Vu32.w",
39081PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39082let hasNewValue = 1;
39083let opNewValue = 0;
39084let isCVI = 1;
39085let isPseudo = 1;
39086let isCodeGenOnly = 1;
39087let DecoderNamespace = "EXT_mmvec";
39088let Constraints = "$Vx32 = $Vx32in";
39089}
39090def V6_vsubwsat : HInst<
39091(outs HvxVR:$Vd32),
39092(ins HvxVR:$Vu32, HvxVR:$Vv32),
39093"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
39094tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39095let Inst{7-5} = 0b011;
39096let Inst{13-13} = 0b0;
39097let Inst{31-21} = 0b00011100011;
39098let hasNewValue = 1;
39099let opNewValue = 0;
39100let isCVI = 1;
39101let DecoderNamespace = "EXT_mmvec";
39102}
39103def V6_vsubwsat_alt : HInst<
39104(outs HvxVR:$Vd32),
39105(ins HvxVR:$Vu32, HvxVR:$Vv32),
39106"$Vd32 = vsubw($Vu32,$Vv32):sat",
39107PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39108let hasNewValue = 1;
39109let opNewValue = 0;
39110let isCVI = 1;
39111let isPseudo = 1;
39112let isCodeGenOnly = 1;
39113let DecoderNamespace = "EXT_mmvec";
39114}
39115def V6_vsubwsat_dv : HInst<
39116(outs HvxWR:$Vdd32),
39117(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39118"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
39119tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39120let Inst{7-5} = 0b001;
39121let Inst{13-13} = 0b0;
39122let Inst{31-21} = 0b00011100101;
39123let hasNewValue = 1;
39124let opNewValue = 0;
39125let isCVI = 1;
39126let DecoderNamespace = "EXT_mmvec";
39127}
39128def V6_vsubwsat_dv_alt : HInst<
39129(outs HvxWR:$Vdd32),
39130(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39131"$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
39132PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39133let hasNewValue = 1;
39134let opNewValue = 0;
39135let isCVI = 1;
39136let isPseudo = 1;
39137let isCodeGenOnly = 1;
39138let DecoderNamespace = "EXT_mmvec";
39139}
39140def V6_vswap : HInst<
39141(outs HvxWR:$Vdd32),
39142(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
39143"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
39144tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
39145let Inst{7-7} = 0b0;
39146let Inst{13-13} = 0b1;
39147let Inst{31-21} = 0b00011110101;
39148let hasNewValue = 1;
39149let opNewValue = 0;
39150let isCVI = 1;
39151let DecoderNamespace = "EXT_mmvec";
39152}
39153def V6_vtmpyb : HInst<
39154(outs HvxWR:$Vdd32),
39155(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39156"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
39157tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39158let Inst{7-5} = 0b000;
39159let Inst{13-13} = 0b0;
39160let Inst{31-21} = 0b00011001000;
39161let hasNewValue = 1;
39162let opNewValue = 0;
39163let isCVI = 1;
39164let DecoderNamespace = "EXT_mmvec";
39165}
39166def V6_vtmpyb_acc : HInst<
39167(outs HvxWR:$Vxx32),
39168(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39169"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
39170tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39171let Inst{7-5} = 0b000;
39172let Inst{13-13} = 0b1;
39173let Inst{31-21} = 0b00011001000;
39174let hasNewValue = 1;
39175let opNewValue = 0;
39176let isAccumulator = 1;
39177let isCVI = 1;
39178let DecoderNamespace = "EXT_mmvec";
39179let Constraints = "$Vxx32 = $Vxx32in";
39180}
39181def V6_vtmpyb_acc_alt : HInst<
39182(outs HvxWR:$Vxx32),
39183(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39184"$Vxx32 += vtmpyb($Vuu32,$Rt32)",
39185PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39186let hasNewValue = 1;
39187let opNewValue = 0;
39188let isAccumulator = 1;
39189let isCVI = 1;
39190let isPseudo = 1;
39191let isCodeGenOnly = 1;
39192let DecoderNamespace = "EXT_mmvec";
39193let Constraints = "$Vxx32 = $Vxx32in";
39194}
39195def V6_vtmpyb_alt : HInst<
39196(outs HvxWR:$Vdd32),
39197(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39198"$Vdd32 = vtmpyb($Vuu32,$Rt32)",
39199PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39200let hasNewValue = 1;
39201let opNewValue = 0;
39202let isCVI = 1;
39203let isPseudo = 1;
39204let isCodeGenOnly = 1;
39205let DecoderNamespace = "EXT_mmvec";
39206}
39207def V6_vtmpybus : HInst<
39208(outs HvxWR:$Vdd32),
39209(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39210"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
39211tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39212let Inst{7-5} = 0b001;
39213let Inst{13-13} = 0b0;
39214let Inst{31-21} = 0b00011001000;
39215let hasNewValue = 1;
39216let opNewValue = 0;
39217let isCVI = 1;
39218let DecoderNamespace = "EXT_mmvec";
39219}
39220def V6_vtmpybus_acc : HInst<
39221(outs HvxWR:$Vxx32),
39222(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39223"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
39224tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39225let Inst{7-5} = 0b001;
39226let Inst{13-13} = 0b1;
39227let Inst{31-21} = 0b00011001000;
39228let hasNewValue = 1;
39229let opNewValue = 0;
39230let isAccumulator = 1;
39231let isCVI = 1;
39232let DecoderNamespace = "EXT_mmvec";
39233let Constraints = "$Vxx32 = $Vxx32in";
39234}
39235def V6_vtmpybus_acc_alt : HInst<
39236(outs HvxWR:$Vxx32),
39237(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39238"$Vxx32 += vtmpybus($Vuu32,$Rt32)",
39239PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39240let hasNewValue = 1;
39241let opNewValue = 0;
39242let isAccumulator = 1;
39243let isCVI = 1;
39244let isPseudo = 1;
39245let isCodeGenOnly = 1;
39246let DecoderNamespace = "EXT_mmvec";
39247let Constraints = "$Vxx32 = $Vxx32in";
39248}
39249def V6_vtmpybus_alt : HInst<
39250(outs HvxWR:$Vdd32),
39251(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39252"$Vdd32 = vtmpybus($Vuu32,$Rt32)",
39253PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39254let hasNewValue = 1;
39255let opNewValue = 0;
39256let isCVI = 1;
39257let isPseudo = 1;
39258let isCodeGenOnly = 1;
39259let DecoderNamespace = "EXT_mmvec";
39260}
39261def V6_vtmpyhb : HInst<
39262(outs HvxWR:$Vdd32),
39263(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39264"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
39265tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39266let Inst{7-5} = 0b100;
39267let Inst{13-13} = 0b0;
39268let Inst{31-21} = 0b00011001101;
39269let hasNewValue = 1;
39270let opNewValue = 0;
39271let isCVI = 1;
39272let DecoderNamespace = "EXT_mmvec";
39273}
39274def V6_vtmpyhb_acc : HInst<
39275(outs HvxWR:$Vxx32),
39276(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39277"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
39278tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39279let Inst{7-5} = 0b010;
39280let Inst{13-13} = 0b1;
39281let Inst{31-21} = 0b00011001000;
39282let hasNewValue = 1;
39283let opNewValue = 0;
39284let isAccumulator = 1;
39285let isCVI = 1;
39286let DecoderNamespace = "EXT_mmvec";
39287let Constraints = "$Vxx32 = $Vxx32in";
39288}
39289def V6_vtmpyhb_acc_alt : HInst<
39290(outs HvxWR:$Vxx32),
39291(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39292"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
39293PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39294let hasNewValue = 1;
39295let opNewValue = 0;
39296let isAccumulator = 1;
39297let isCVI = 1;
39298let isPseudo = 1;
39299let isCodeGenOnly = 1;
39300let DecoderNamespace = "EXT_mmvec";
39301let Constraints = "$Vxx32 = $Vxx32in";
39302}
39303def V6_vtmpyhb_alt : HInst<
39304(outs HvxWR:$Vdd32),
39305(ins HvxWR:$Vuu32, IntRegs:$Rt32),
39306"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
39307PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39308let hasNewValue = 1;
39309let opNewValue = 0;
39310let isCVI = 1;
39311let isPseudo = 1;
39312let isCodeGenOnly = 1;
39313let DecoderNamespace = "EXT_mmvec";
39314}
39315def V6_vtran2x2_map : HInst<
39316(outs HvxVR:$Vy32, HvxVR:$Vx32),
39317(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
39318"vtrans2x2($Vy32,$Vx32,$Rt32)",
39319PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39320let hasNewValue = 1;
39321let opNewValue = 0;
39322let hasNewValue2 = 1;
39323let opNewValue2 = 1;
39324let isCVI = 1;
39325let isPseudo = 1;
39326let isCodeGenOnly = 1;
39327let DecoderNamespace = "EXT_mmvec";
39328let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
39329}
39330def V6_vunpackb : HInst<
39331(outs HvxWR:$Vdd32),
39332(ins HvxVR:$Vu32),
39333"$Vdd32.h = vunpack($Vu32.b)",
39334tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39335let Inst{7-5} = 0b010;
39336let Inst{13-13} = 0b0;
39337let Inst{31-16} = 0b0001111000000001;
39338let hasNewValue = 1;
39339let opNewValue = 0;
39340let isCVI = 1;
39341let DecoderNamespace = "EXT_mmvec";
39342}
39343def V6_vunpackb_alt : HInst<
39344(outs HvxWR:$Vdd32),
39345(ins HvxVR:$Vu32),
39346"$Vdd32 = vunpackb($Vu32)",
39347PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39348let hasNewValue = 1;
39349let opNewValue = 0;
39350let isCVI = 1;
39351let isPseudo = 1;
39352let isCodeGenOnly = 1;
39353let DecoderNamespace = "EXT_mmvec";
39354}
39355def V6_vunpackh : HInst<
39356(outs HvxWR:$Vdd32),
39357(ins HvxVR:$Vu32),
39358"$Vdd32.w = vunpack($Vu32.h)",
39359tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39360let Inst{7-5} = 0b011;
39361let Inst{13-13} = 0b0;
39362let Inst{31-16} = 0b0001111000000001;
39363let hasNewValue = 1;
39364let opNewValue = 0;
39365let isCVI = 1;
39366let DecoderNamespace = "EXT_mmvec";
39367}
39368def V6_vunpackh_alt : HInst<
39369(outs HvxWR:$Vdd32),
39370(ins HvxVR:$Vu32),
39371"$Vdd32 = vunpackh($Vu32)",
39372PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39373let hasNewValue = 1;
39374let opNewValue = 0;
39375let isCVI = 1;
39376let isPseudo = 1;
39377let isCodeGenOnly = 1;
39378let DecoderNamespace = "EXT_mmvec";
39379}
39380def V6_vunpackob : HInst<
39381(outs HvxWR:$Vxx32),
39382(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
39383"$Vxx32.h |= vunpacko($Vu32.b)",
39384tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
39385let Inst{7-5} = 0b000;
39386let Inst{13-13} = 0b1;
39387let Inst{31-16} = 0b0001111000000000;
39388let hasNewValue = 1;
39389let opNewValue = 0;
39390let isAccumulator = 1;
39391let isCVI = 1;
39392let DecoderNamespace = "EXT_mmvec";
39393let Constraints = "$Vxx32 = $Vxx32in";
39394}
39395def V6_vunpackob_alt : HInst<
39396(outs HvxWR:$Vxx32),
39397(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
39398"$Vxx32 |= vunpackob($Vu32)",
39399PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39400let hasNewValue = 1;
39401let opNewValue = 0;
39402let isAccumulator = 1;
39403let isCVI = 1;
39404let isPseudo = 1;
39405let DecoderNamespace = "EXT_mmvec";
39406let Constraints = "$Vxx32 = $Vxx32in";
39407}
39408def V6_vunpackoh : HInst<
39409(outs HvxWR:$Vxx32),
39410(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
39411"$Vxx32.w |= vunpacko($Vu32.h)",
39412tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
39413let Inst{7-5} = 0b001;
39414let Inst{13-13} = 0b1;
39415let Inst{31-16} = 0b0001111000000000;
39416let hasNewValue = 1;
39417let opNewValue = 0;
39418let isAccumulator = 1;
39419let isCVI = 1;
39420let DecoderNamespace = "EXT_mmvec";
39421let Constraints = "$Vxx32 = $Vxx32in";
39422}
39423def V6_vunpackoh_alt : HInst<
39424(outs HvxWR:$Vxx32),
39425(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
39426"$Vxx32 |= vunpackoh($Vu32)",
39427PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39428let hasNewValue = 1;
39429let opNewValue = 0;
39430let isAccumulator = 1;
39431let isCVI = 1;
39432let isPseudo = 1;
39433let isCodeGenOnly = 1;
39434let DecoderNamespace = "EXT_mmvec";
39435let Constraints = "$Vxx32 = $Vxx32in";
39436}
39437def V6_vunpackub : HInst<
39438(outs HvxWR:$Vdd32),
39439(ins HvxVR:$Vu32),
39440"$Vdd32.uh = vunpack($Vu32.ub)",
39441tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39442let Inst{7-5} = 0b000;
39443let Inst{13-13} = 0b0;
39444let Inst{31-16} = 0b0001111000000001;
39445let hasNewValue = 1;
39446let opNewValue = 0;
39447let isCVI = 1;
39448let DecoderNamespace = "EXT_mmvec";
39449}
39450def V6_vunpackub_alt : HInst<
39451(outs HvxWR:$Vdd32),
39452(ins HvxVR:$Vu32),
39453"$Vdd32 = vunpackub($Vu32)",
39454PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39455let hasNewValue = 1;
39456let opNewValue = 0;
39457let isCVI = 1;
39458let isPseudo = 1;
39459let isCodeGenOnly = 1;
39460let DecoderNamespace = "EXT_mmvec";
39461}
39462def V6_vunpackuh : HInst<
39463(outs HvxWR:$Vdd32),
39464(ins HvxVR:$Vu32),
39465"$Vdd32.uw = vunpack($Vu32.uh)",
39466tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39467let Inst{7-5} = 0b001;
39468let Inst{13-13} = 0b0;
39469let Inst{31-16} = 0b0001111000000001;
39470let hasNewValue = 1;
39471let opNewValue = 0;
39472let isCVI = 1;
39473let DecoderNamespace = "EXT_mmvec";
39474}
39475def V6_vunpackuh_alt : HInst<
39476(outs HvxWR:$Vdd32),
39477(ins HvxVR:$Vu32),
39478"$Vdd32 = vunpackuh($Vu32)",
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_vwhist128 : HInst<
39488(outs),
39489(ins),
39490"vwhist128",
39491tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
39492let Inst{13-0} = 0b10010010000000;
39493let Inst{31-16} = 0b0001111000000000;
39494let isCVI = 1;
39495let DecoderNamespace = "EXT_mmvec";
39496}
39497def V6_vwhist128m : HInst<
39498(outs),
39499(ins u1_0Imm:$Ii),
39500"vwhist128(#$Ii)",
39501tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
39502let Inst{7-0} = 0b10000000;
39503let Inst{13-9} = 0b10011;
39504let Inst{31-16} = 0b0001111000000000;
39505let isCVI = 1;
39506let DecoderNamespace = "EXT_mmvec";
39507}
39508def V6_vwhist128q : HInst<
39509(outs),
39510(ins HvxQR:$Qv4),
39511"vwhist128($Qv4)",
39512tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
39513let Inst{13-0} = 0b10010010000000;
39514let Inst{21-16} = 0b000010;
39515let Inst{31-24} = 0b00011110;
39516let isCVI = 1;
39517let DecoderNamespace = "EXT_mmvec";
39518}
39519def V6_vwhist128qm : HInst<
39520(outs),
39521(ins HvxQR:$Qv4, u1_0Imm:$Ii),
39522"vwhist128($Qv4,#$Ii)",
39523tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
39524let Inst{7-0} = 0b10000000;
39525let Inst{13-9} = 0b10011;
39526let Inst{21-16} = 0b000010;
39527let Inst{31-24} = 0b00011110;
39528let isCVI = 1;
39529let DecoderNamespace = "EXT_mmvec";
39530}
39531def V6_vwhist256 : HInst<
39532(outs),
39533(ins),
39534"vwhist256",
39535tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
39536let Inst{13-0} = 0b10001010000000;
39537let Inst{31-16} = 0b0001111000000000;
39538let isCVI = 1;
39539let DecoderNamespace = "EXT_mmvec";
39540}
39541def V6_vwhist256_sat : HInst<
39542(outs),
39543(ins),
39544"vwhist256:sat",
39545tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
39546let Inst{13-0} = 0b10001110000000;
39547let Inst{31-16} = 0b0001111000000000;
39548let isCVI = 1;
39549let DecoderNamespace = "EXT_mmvec";
39550}
39551def V6_vwhist256q : HInst<
39552(outs),
39553(ins HvxQR:$Qv4),
39554"vwhist256($Qv4)",
39555tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
39556let Inst{13-0} = 0b10001010000000;
39557let Inst{21-16} = 0b000010;
39558let Inst{31-24} = 0b00011110;
39559let isCVI = 1;
39560let DecoderNamespace = "EXT_mmvec";
39561}
39562def V6_vwhist256q_sat : HInst<
39563(outs),
39564(ins HvxQR:$Qv4),
39565"vwhist256($Qv4):sat",
39566tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
39567let Inst{13-0} = 0b10001110000000;
39568let Inst{21-16} = 0b000010;
39569let Inst{31-24} = 0b00011110;
39570let isCVI = 1;
39571let DecoderNamespace = "EXT_mmvec";
39572}
39573def V6_vxor : HInst<
39574(outs HvxVR:$Vd32),
39575(ins HvxVR:$Vu32, HvxVR:$Vv32),
39576"$Vd32 = vxor($Vu32,$Vv32)",
39577tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39578let Inst{7-5} = 0b111;
39579let Inst{13-13} = 0b0;
39580let Inst{31-21} = 0b00011100001;
39581let hasNewValue = 1;
39582let opNewValue = 0;
39583let isCVI = 1;
39584let DecoderNamespace = "EXT_mmvec";
39585}
39586def V6_vzb : HInst<
39587(outs HvxWR:$Vdd32),
39588(ins HvxVR:$Vu32),
39589"$Vdd32.uh = vzxt($Vu32.ub)",
39590tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
39591let Inst{7-5} = 0b001;
39592let Inst{13-13} = 0b0;
39593let Inst{31-16} = 0b0001111000000010;
39594let hasNewValue = 1;
39595let opNewValue = 0;
39596let isCVI = 1;
39597let DecoderNamespace = "EXT_mmvec";
39598}
39599def V6_vzb_alt : HInst<
39600(outs HvxWR:$Vdd32),
39601(ins HvxVR:$Vu32),
39602"$Vdd32 = vzxtb($Vu32)",
39603PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39604let hasNewValue = 1;
39605let opNewValue = 0;
39606let isCVI = 1;
39607let isPseudo = 1;
39608let isCodeGenOnly = 1;
39609let DecoderNamespace = "EXT_mmvec";
39610}
39611def V6_vzh : HInst<
39612(outs HvxWR:$Vdd32),
39613(ins HvxVR:$Vu32),
39614"$Vdd32.uw = vzxt($Vu32.uh)",
39615tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
39616let Inst{7-5} = 0b010;
39617let Inst{13-13} = 0b0;
39618let Inst{31-16} = 0b0001111000000010;
39619let hasNewValue = 1;
39620let opNewValue = 0;
39621let isCVI = 1;
39622let DecoderNamespace = "EXT_mmvec";
39623}
39624def V6_vzh_alt : HInst<
39625(outs HvxWR:$Vdd32),
39626(ins HvxVR:$Vu32),
39627"$Vdd32 = vzxth($Vu32)",
39628PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39629let hasNewValue = 1;
39630let opNewValue = 0;
39631let isCVI = 1;
39632let isPseudo = 1;
39633let isCodeGenOnly = 1;
39634let DecoderNamespace = "EXT_mmvec";
39635}
39636def V6_zLd_ai : HInst<
39637(outs),
39638(ins IntRegs:$Rt32, s4_0Imm:$Ii),
39639"z = vmem($Rt32+#$Ii)",
39640tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
39641let Inst{7-0} = 0b00000000;
39642let Inst{12-11} = 0b00;
39643let Inst{31-21} = 0b00101100000;
39644let addrMode = BaseImmOffset;
39645let isCVI = 1;
39646let mayLoad = 1;
39647let isRestrictNoSlot1Store = 1;
39648let CextOpcode = "V6_zLd";
39649let DecoderNamespace = "EXT_mmvec";
39650}
39651def V6_zLd_pi : HInst<
39652(outs IntRegs:$Rx32),
39653(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
39654"z = vmem($Rx32++#$Ii)",
39655tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
39656let Inst{7-0} = 0b00000000;
39657let Inst{13-11} = 0b000;
39658let Inst{31-21} = 0b00101101000;
39659let addrMode = PostInc;
39660let isCVI = 1;
39661let mayLoad = 1;
39662let isRestrictNoSlot1Store = 1;
39663let CextOpcode = "V6_zLd";
39664let DecoderNamespace = "EXT_mmvec";
39665let Constraints = "$Rx32 = $Rx32in";
39666}
39667def V6_zLd_ppu : HInst<
39668(outs IntRegs:$Rx32),
39669(ins IntRegs:$Rx32in, ModRegs:$Mu2),
39670"z = vmem($Rx32++$Mu2)",
39671tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
39672let Inst{12-0} = 0b0000000000001;
39673let Inst{31-21} = 0b00101101000;
39674let addrMode = PostInc;
39675let isCVI = 1;
39676let mayLoad = 1;
39677let isRestrictNoSlot1Store = 1;
39678let DecoderNamespace = "EXT_mmvec";
39679let Constraints = "$Rx32 = $Rx32in";
39680}
39681def V6_zLd_pred_ai : HInst<
39682(outs),
39683(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
39684"if ($Pv4) z = vmem($Rt32+#$Ii)",
39685tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
39686let Inst{7-0} = 0b00000000;
39687let Inst{31-21} = 0b00101100100;
39688let isPredicated = 1;
39689let addrMode = BaseImmOffset;
39690let isCVI = 1;
39691let mayLoad = 1;
39692let isRestrictNoSlot1Store = 1;
39693let DecoderNamespace = "EXT_mmvec";
39694}
39695def V6_zLd_pred_pi : HInst<
39696(outs IntRegs:$Rx32),
39697(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
39698"if ($Pv4) z = vmem($Rx32++#$Ii)",
39699tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
39700let Inst{7-0} = 0b00000000;
39701let Inst{13-13} = 0b0;
39702let Inst{31-21} = 0b00101101100;
39703let isPredicated = 1;
39704let addrMode = PostInc;
39705let isCVI = 1;
39706let mayLoad = 1;
39707let isRestrictNoSlot1Store = 1;
39708let DecoderNamespace = "EXT_mmvec";
39709let Constraints = "$Rx32 = $Rx32in";
39710}
39711def V6_zLd_pred_ppu : HInst<
39712(outs IntRegs:$Rx32),
39713(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
39714"if ($Pv4) z = vmem($Rx32++$Mu2)",
39715tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
39716let Inst{10-0} = 0b00000000001;
39717let Inst{31-21} = 0b00101101100;
39718let isPredicated = 1;
39719let addrMode = PostInc;
39720let isCVI = 1;
39721let mayLoad = 1;
39722let isRestrictNoSlot1Store = 1;
39723let DecoderNamespace = "EXT_mmvec";
39724let Constraints = "$Rx32 = $Rx32in";
39725}
39726def V6_zextract : HInst<
39727(outs HvxVR:$Vd32),
39728(ins IntRegs:$Rt32),
39729"$Vd32 = zextract($Rt32)",
39730tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
39731let Inst{13-5} = 0b000001001;
39732let Inst{31-21} = 0b00011001101;
39733let hasNewValue = 1;
39734let opNewValue = 0;
39735let isCVI = 1;
39736let DecoderNamespace = "EXT_mmvec";
39737}
39738def V6_zld0 : HInst<
39739(outs),
39740(ins IntRegs:$Rt32),
39741"z = vmem($Rt32)",
39742PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
39743let isCVI = 1;
39744let isPseudo = 1;
39745let isCodeGenOnly = 1;
39746let DecoderNamespace = "EXT_mmvec";
39747}
39748def V6_zldp0 : HInst<
39749(outs),
39750(ins PredRegs:$Pv4, IntRegs:$Rt32),
39751"if ($Pv4) z = vmem($Rt32)",
39752PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
39753let isCVI = 1;
39754let isPseudo = 1;
39755let isCodeGenOnly = 1;
39756let DecoderNamespace = "EXT_mmvec";
39757}
39758def Y2_barrier : HInst<
39759(outs),
39760(ins),
39761"barrier",
39762tc_77f94a5e, TypeST>, Enc_e3b0c4 {
39763let Inst{13-0} = 0b00000000000000;
39764let Inst{31-16} = 0b1010100000000000;
39765let isSoloAX = 1;
39766let hasSideEffects = 1;
39767}
39768def Y2_break : HInst<
39769(outs),
39770(ins),
39771"brkpt",
39772tc_55255f2b, TypeCR>, Enc_e3b0c4 {
39773let Inst{13-0} = 0b00000000000000;
39774let Inst{31-16} = 0b0110110000100000;
39775let isSolo = 1;
39776}
39777def Y2_crswap_old : HInst<
39778(outs IntRegs:$Rx32),
39779(ins IntRegs:$Rx32in),
39780"crswap($Rx32,sgp)",
39781PSEUDO, TypeMAPPING> {
39782let hasNewValue = 1;
39783let opNewValue = 0;
39784let isPseudo = 1;
39785let isCodeGenOnly = 1;
39786let Constraints = "$Rx32 = $Rx32in";
39787}
39788def Y2_dccleana : HInst<
39789(outs),
39790(ins IntRegs:$Rs32),
39791"dccleana($Rs32)",
39792tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
39793let Inst{13-0} = 0b00000000000000;
39794let Inst{31-21} = 0b10100000000;
39795let isRestrictSlot1AOK = 1;
39796let hasSideEffects = 1;
39797}
39798def Y2_dccleaninva : HInst<
39799(outs),
39800(ins IntRegs:$Rs32),
39801"dccleaninva($Rs32)",
39802tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
39803let Inst{13-0} = 0b00000000000000;
39804let Inst{31-21} = 0b10100000010;
39805let isRestrictSlot1AOK = 1;
39806let hasSideEffects = 1;
39807}
39808def Y2_dcfetch : HInst<
39809(outs),
39810(ins IntRegs:$Rs32),
39811"dcfetch($Rs32)",
39812tc_d45ba9cd, TypeMAPPING> {
39813let hasSideEffects = 1;
39814let isPseudo = 1;
39815let isCodeGenOnly = 1;
39816}
39817def Y2_dcfetchbo : HInst<
39818(outs),
39819(ins IntRegs:$Rs32, u11_3Imm:$Ii),
39820"dcfetch($Rs32+#$Ii)",
39821tc_2237d952, TypeLD>, Enc_2d829e {
39822let Inst{13-11} = 0b000;
39823let Inst{31-21} = 0b10010100000;
39824let addrMode = BaseImmOffset;
39825let isRestrictNoSlot1Store = 1;
39826let hasSideEffects = 1;
39827}
39828def Y2_dcinva : HInst<
39829(outs),
39830(ins IntRegs:$Rs32),
39831"dcinva($Rs32)",
39832tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
39833let Inst{13-0} = 0b00000000000000;
39834let Inst{31-21} = 0b10100000001;
39835let isRestrictSlot1AOK = 1;
39836let hasSideEffects = 1;
39837}
39838def Y2_dczeroa : HInst<
39839(outs),
39840(ins IntRegs:$Rs32),
39841"dczeroa($Rs32)",
39842tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
39843let Inst{13-0} = 0b00000000000000;
39844let Inst{31-21} = 0b10100000110;
39845let isRestrictSlot1AOK = 1;
39846let mayStore = 1;
39847let hasSideEffects = 1;
39848}
39849def Y2_icinva : HInst<
39850(outs),
39851(ins IntRegs:$Rs32),
39852"icinva($Rs32)",
39853tc_0ba0d5da, TypeJ>, Enc_ecbcc8 {
39854let Inst{13-0} = 0b00000000000000;
39855let Inst{31-21} = 0b01010110110;
39856let isSolo = 1;
39857}
39858def Y2_isync : HInst<
39859(outs),
39860(ins),
39861"isync",
39862tc_9b34f5e0, TypeJ>, Enc_e3b0c4 {
39863let Inst{13-0} = 0b00000000000010;
39864let Inst{31-16} = 0b0101011111000000;
39865let isSolo = 1;
39866}
39867def Y2_k1lock_map : HInst<
39868(outs),
39869(ins),
39870"k1lock",
39871PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
39872let isPseudo = 1;
39873let isCodeGenOnly = 1;
39874}
39875def Y2_k1unlock_map : HInst<
39876(outs),
39877(ins),
39878"k1unlock",
39879PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
39880let isPseudo = 1;
39881let isCodeGenOnly = 1;
39882}
39883def Y2_syncht : HInst<
39884(outs),
39885(ins),
39886"syncht",
39887tc_77f94a5e, TypeST>, Enc_e3b0c4 {
39888let Inst{13-0} = 0b00000000000000;
39889let Inst{31-16} = 0b1010100001000000;
39890let isSolo = 1;
39891}
39892def Y2_tfrscrr : HInst<
39893(outs IntRegs:$Rd32),
39894(ins SysRegs:$Ss128),
39895"$Rd32 = $Ss128",
39896tc_fae9dfa5, TypeCR>, Enc_7d1542 {
39897let Inst{13-5} = 0b000000000;
39898let Inst{31-23} = 0b011011101;
39899let hasNewValue = 1;
39900let opNewValue = 0;
39901}
39902def Y2_tfrsrcr : HInst<
39903(outs SysRegs:$Sd128),
39904(ins IntRegs:$Rs32),
39905"$Sd128 = $Rs32",
39906tc_6ae3426b, TypeCR>, Enc_8f7633 {
39907let Inst{13-7} = 0b0000000;
39908let Inst{31-21} = 0b01100111000;
39909let hasNewValue = 1;
39910let opNewValue = 0;
39911}
39912def Y2_wait : HInst<
39913(outs),
39914(ins IntRegs:$Rs32),
39915"wait($Rs32)",
39916tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
39917let Inst{13-0} = 0b00000000000000;
39918let Inst{31-21} = 0b01100100010;
39919let isSolo = 1;
39920}
39921def Y4_l2fetch : HInst<
39922(outs),
39923(ins IntRegs:$Rs32, IntRegs:$Rt32),
39924"l2fetch($Rs32,$Rt32)",
39925tc_a3070909, TypeST>, Enc_ca3887 {
39926let Inst{7-0} = 0b00000000;
39927let Inst{13-13} = 0b0;
39928let Inst{31-21} = 0b10100110000;
39929let isSoloAX = 1;
39930let hasSideEffects = 1;
39931let mayStore = 1;
39932}
39933def Y4_tfrscpp : HInst<
39934(outs DoubleRegs:$Rdd32),
39935(ins SysRegs64:$Sss128),
39936"$Rdd32 = $Sss128",
39937tc_fae9dfa5, TypeCR>, Enc_e32517 {
39938let Inst{13-5} = 0b000000000;
39939let Inst{31-23} = 0b011011110;
39940}
39941def Y4_tfrspcp : HInst<
39942(outs SysRegs64:$Sdd128),
39943(ins DoubleRegs:$Rss32),
39944"$Sdd128 = $Rss32",
39945tc_6ae3426b, TypeCR>, Enc_a705fc {
39946let Inst{13-7} = 0b0000000;
39947let Inst{31-21} = 0b01101101000;
39948let hasNewValue = 1;
39949let opNewValue = 0;
39950}
39951def Y4_trace : HInst<
39952(outs),
39953(ins IntRegs:$Rs32),
39954"trace($Rs32)",
39955tc_d7718fbe, TypeCR>, Enc_ecbcc8 {
39956let Inst{13-0} = 0b00000000000000;
39957let Inst{31-21} = 0b01100010010;
39958let isSoloAX = 1;
39959}
39960def Y5_l2fetch : HInst<
39961(outs),
39962(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
39963"l2fetch($Rs32,$Rtt32)",
39964tc_a3070909, TypeST>, Enc_e6abcf {
39965let Inst{7-0} = 0b00000000;
39966let Inst{13-13} = 0b0;
39967let Inst{31-21} = 0b10100110100;
39968let isSoloAX = 1;
39969let hasSideEffects = 1;
39970let mayStore = 1;
39971}
39972def Y6_diag : HInst<
39973(outs),
39974(ins IntRegs:$Rs32),
39975"diag($Rs32)",
39976tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> {
39977let Inst{13-0} = 0b00000000100000;
39978let Inst{31-21} = 0b01100010010;
39979}
39980def Y6_diag0 : HInst<
39981(outs),
39982(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
39983"diag0($Rss32,$Rtt32)",
39984tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
39985let Inst{7-0} = 0b01000000;
39986let Inst{13-13} = 0b0;
39987let Inst{31-21} = 0b01100010010;
39988}
39989def Y6_diag1 : HInst<
39990(outs),
39991(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
39992"diag1($Rss32,$Rtt32)",
39993tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
39994let Inst{7-0} = 0b01100000;
39995let Inst{13-13} = 0b0;
39996let Inst{31-21} = 0b01100010010;
39997}
39998def Y6_dmlink : HInst<
39999(outs),
40000(ins IntRegs:$Rs32, IntRegs:$Rt32),
40001"dmlink($Rs32,$Rt32)",
40002tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
40003let Inst{7-0} = 0b01000000;
40004let Inst{13-13} = 0b0;
40005let Inst{31-21} = 0b10100110000;
40006let hasSideEffects = 1;
40007let isSolo = 1;
40008let mayStore = 1;
40009}
40010def Y6_dmpause : HInst<
40011(outs IntRegs:$Rd32),
40012(ins),
40013"$Rd32 = dmpause",
40014tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40015let Inst{13-5} = 0b000000011;
40016let Inst{31-16} = 0b1010100000000000;
40017let hasNewValue = 1;
40018let opNewValue = 0;
40019let hasSideEffects = 1;
40020let isSolo = 1;
40021}
40022def Y6_dmpoll : HInst<
40023(outs IntRegs:$Rd32),
40024(ins),
40025"$Rd32 = dmpoll",
40026tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40027let Inst{13-5} = 0b000000010;
40028let Inst{31-16} = 0b1010100000000000;
40029let hasNewValue = 1;
40030let opNewValue = 0;
40031let hasSideEffects = 1;
40032let isSolo = 1;
40033}
40034def Y6_dmresume : HInst<
40035(outs),
40036(ins IntRegs:$Rs32),
40037"dmresume($Rs32)",
40038tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
40039let Inst{13-0} = 0b00000010000000;
40040let Inst{31-21} = 0b10100110000;
40041let hasSideEffects = 1;
40042let isSolo = 1;
40043}
40044def Y6_dmstart : HInst<
40045(outs),
40046(ins IntRegs:$Rs32),
40047"dmstart($Rs32)",
40048tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
40049let Inst{13-0} = 0b00000000100000;
40050let Inst{31-21} = 0b10100110000;
40051let hasSideEffects = 1;
40052let isSolo = 1;
40053}
40054def Y6_dmwait : HInst<
40055(outs IntRegs:$Rd32),
40056(ins),
40057"$Rd32 = dmwait",
40058tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
40059let Inst{13-5} = 0b000000001;
40060let Inst{31-16} = 0b1010100000000000;
40061let hasNewValue = 1;
40062let opNewValue = 0;
40063let hasSideEffects = 1;
40064let isSolo = 1;
40065}
40066def dep_A2_addsat : HInst<
40067(outs IntRegs:$Rd32),
40068(ins IntRegs:$Rs32, IntRegs:$Rt32),
40069"$Rd32 = add($Rs32,$Rt32):sat:deprecated",
40070tc_8a825db2, TypeALU64>, Enc_5ab2be {
40071let Inst{7-5} = 0b000;
40072let Inst{13-13} = 0b0;
40073let Inst{31-21} = 0b11010101100;
40074let hasNewValue = 1;
40075let opNewValue = 0;
40076let prefersSlot3 = 1;
40077let Defs = [USR_OVF];
40078}
40079def dep_A2_subsat : HInst<
40080(outs IntRegs:$Rd32),
40081(ins IntRegs:$Rt32, IntRegs:$Rs32),
40082"$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
40083tc_8a825db2, TypeALU64>, Enc_bd6011 {
40084let Inst{7-5} = 0b100;
40085let Inst{13-13} = 0b0;
40086let Inst{31-21} = 0b11010101100;
40087let hasNewValue = 1;
40088let opNewValue = 0;
40089let prefersSlot3 = 1;
40090let Defs = [USR_OVF];
40091}
40092def dep_S2_packhl : HInst<
40093(outs DoubleRegs:$Rdd32),
40094(ins IntRegs:$Rs32, IntRegs:$Rt32),
40095"$Rdd32 = packhl($Rs32,$Rt32):deprecated",
40096tc_5da50c4b, TypeALU64>, Enc_be32a5 {
40097let Inst{7-5} = 0b000;
40098let Inst{13-13} = 0b0;
40099let Inst{31-21} = 0b11010100000;
40100}
40101def dup_A2_add : HInst<
40102(outs IntRegs:$Rd32),
40103(ins IntRegs:$Rs32, IntRegs:$Rt32),
40104"$Rd32 = add($Rs32,$Rt32)",
40105tc_388f9897, TypeALU32_3op>, Requires<[HasV69]> {
40106let hasNewValue = 1;
40107let opNewValue = 0;
40108let AsmVariantName = "NonParsable";
40109let isPseudo = 1;
40110}
40111def dup_A2_addi : HInst<
40112(outs IntRegs:$Rd32),
40113(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40114"$Rd32 = add($Rs32,#$Ii)",
40115tc_388f9897, TypeALU32_ADDI>, Requires<[HasV69]> {
40116let hasNewValue = 1;
40117let opNewValue = 0;
40118let AsmVariantName = "NonParsable";
40119let isPseudo = 1;
40120let isExtendable = 1;
40121let opExtendable = 2;
40122let isExtentSigned = 1;
40123let opExtentBits = 16;
40124let opExtentAlign = 0;
40125}
40126def dup_A2_andir : HInst<
40127(outs IntRegs:$Rd32),
40128(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40129"$Rd32 = and($Rs32,#$Ii)",
40130tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40131let hasNewValue = 1;
40132let opNewValue = 0;
40133let AsmVariantName = "NonParsable";
40134let isPseudo = 1;
40135let isExtendable = 1;
40136let opExtendable = 2;
40137let isExtentSigned = 1;
40138let opExtentBits = 10;
40139let opExtentAlign = 0;
40140}
40141def dup_A2_combineii : HInst<
40142(outs DoubleRegs:$Rdd32),
40143(ins s32_0Imm:$Ii, s8_0Imm:$II),
40144"$Rdd32 = combine(#$Ii,#$II)",
40145tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40146let AsmVariantName = "NonParsable";
40147let isPseudo = 1;
40148let isExtendable = 1;
40149let opExtendable = 1;
40150let isExtentSigned = 1;
40151let opExtentBits = 8;
40152let opExtentAlign = 0;
40153}
40154def dup_A2_sxtb : HInst<
40155(outs IntRegs:$Rd32),
40156(ins IntRegs:$Rs32),
40157"$Rd32 = sxtb($Rs32)",
40158tc_9124c04f, TypeALU32_2op>, Requires<[HasV69]> {
40159let hasNewValue = 1;
40160let opNewValue = 0;
40161let AsmVariantName = "NonParsable";
40162let isPseudo = 1;
40163}
40164def dup_A2_sxth : HInst<
40165(outs IntRegs:$Rd32),
40166(ins IntRegs:$Rs32),
40167"$Rd32 = sxth($Rs32)",
40168tc_9124c04f, TypeALU32_2op>, Requires<[HasV69]> {
40169let hasNewValue = 1;
40170let opNewValue = 0;
40171let AsmVariantName = "NonParsable";
40172let isPseudo = 1;
40173}
40174def dup_A2_tfr : HInst<
40175(outs IntRegs:$Rd32),
40176(ins IntRegs:$Rs32),
40177"$Rd32 = $Rs32",
40178tc_9124c04f, TypeALU32_2op>, Requires<[HasV69]> {
40179let hasNewValue = 1;
40180let opNewValue = 0;
40181let AsmVariantName = "NonParsable";
40182let isPseudo = 1;
40183}
40184def dup_A2_tfrsi : HInst<
40185(outs IntRegs:$Rd32),
40186(ins s32_0Imm:$Ii),
40187"$Rd32 = #$Ii",
40188tc_9124c04f, TypeALU32_2op>, Requires<[HasV69]> {
40189let hasNewValue = 1;
40190let opNewValue = 0;
40191let AsmVariantName = "NonParsable";
40192let isPseudo = 1;
40193let isExtendable = 1;
40194let opExtendable = 1;
40195let isExtentSigned = 1;
40196let opExtentBits = 16;
40197let opExtentAlign = 0;
40198}
40199def dup_A2_zxtb : HInst<
40200(outs IntRegs:$Rd32),
40201(ins IntRegs:$Rs32),
40202"$Rd32 = zxtb($Rs32)",
40203PSEUDO, TypeMAPPING>, Requires<[HasV69]> {
40204let hasNewValue = 1;
40205let opNewValue = 0;
40206let AsmVariantName = "NonParsable";
40207let isPseudo = 1;
40208}
40209def dup_A2_zxth : HInst<
40210(outs IntRegs:$Rd32),
40211(ins IntRegs:$Rs32),
40212"$Rd32 = zxth($Rs32)",
40213tc_9124c04f, TypeALU32_2op>, Requires<[HasV69]> {
40214let hasNewValue = 1;
40215let opNewValue = 0;
40216let AsmVariantName = "NonParsable";
40217let isPseudo = 1;
40218}
40219def dup_A4_combineii : HInst<
40220(outs DoubleRegs:$Rdd32),
40221(ins s8_0Imm:$Ii, u32_0Imm:$II),
40222"$Rdd32 = combine(#$Ii,#$II)",
40223tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40224let AsmVariantName = "NonParsable";
40225let isPseudo = 1;
40226let isExtendable = 1;
40227let opExtendable = 2;
40228let isExtentSigned = 0;
40229let opExtentBits = 6;
40230let opExtentAlign = 0;
40231}
40232def dup_A4_combineir : HInst<
40233(outs DoubleRegs:$Rdd32),
40234(ins s32_0Imm:$Ii, IntRegs:$Rs32),
40235"$Rdd32 = combine(#$Ii,$Rs32)",
40236tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40237let AsmVariantName = "NonParsable";
40238let isPseudo = 1;
40239let isExtendable = 1;
40240let opExtendable = 1;
40241let isExtentSigned = 1;
40242let opExtentBits = 8;
40243let opExtentAlign = 0;
40244}
40245def dup_A4_combineri : HInst<
40246(outs DoubleRegs:$Rdd32),
40247(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40248"$Rdd32 = combine($Rs32,#$Ii)",
40249tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40250let AsmVariantName = "NonParsable";
40251let isPseudo = 1;
40252let isExtendable = 1;
40253let opExtendable = 2;
40254let isExtentSigned = 1;
40255let opExtentBits = 8;
40256let opExtentAlign = 0;
40257}
40258def dup_C2_cmoveif : HInst<
40259(outs IntRegs:$Rd32),
40260(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40261"if (!$Pu4) $Rd32 = #$Ii",
40262tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40263let isPredicated = 1;
40264let isPredicatedFalse = 1;
40265let hasNewValue = 1;
40266let opNewValue = 0;
40267let AsmVariantName = "NonParsable";
40268let isPseudo = 1;
40269let isExtendable = 1;
40270let opExtendable = 2;
40271let isExtentSigned = 1;
40272let opExtentBits = 12;
40273let opExtentAlign = 0;
40274}
40275def dup_C2_cmoveit : HInst<
40276(outs IntRegs:$Rd32),
40277(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40278"if ($Pu4) $Rd32 = #$Ii",
40279tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40280let isPredicated = 1;
40281let hasNewValue = 1;
40282let opNewValue = 0;
40283let AsmVariantName = "NonParsable";
40284let isPseudo = 1;
40285let isExtendable = 1;
40286let opExtendable = 2;
40287let isExtentSigned = 1;
40288let opExtentBits = 12;
40289let opExtentAlign = 0;
40290}
40291def dup_C2_cmovenewif : HInst<
40292(outs IntRegs:$Rd32),
40293(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40294"if (!$Pu4.new) $Rd32 = #$Ii",
40295tc_4ac61d92, TypeALU32_2op>, Requires<[HasV69]> {
40296let isPredicated = 1;
40297let isPredicatedFalse = 1;
40298let hasNewValue = 1;
40299let opNewValue = 0;
40300let AsmVariantName = "NonParsable";
40301let isPredicatedNew = 1;
40302let isPseudo = 1;
40303let isExtendable = 1;
40304let opExtendable = 2;
40305let isExtentSigned = 1;
40306let opExtentBits = 12;
40307let opExtentAlign = 0;
40308}
40309def dup_C2_cmovenewit : HInst<
40310(outs IntRegs:$Rd32),
40311(ins PredRegs:$Pu4, s32_0Imm:$Ii),
40312"if ($Pu4.new) $Rd32 = #$Ii",
40313tc_4ac61d92, TypeALU32_2op>, Requires<[HasV69]> {
40314let isPredicated = 1;
40315let hasNewValue = 1;
40316let opNewValue = 0;
40317let AsmVariantName = "NonParsable";
40318let isPredicatedNew = 1;
40319let isPseudo = 1;
40320let isExtendable = 1;
40321let opExtendable = 2;
40322let isExtentSigned = 1;
40323let opExtentBits = 12;
40324let opExtentAlign = 0;
40325}
40326def dup_C2_cmpeqi : HInst<
40327(outs PredRegs:$Pd4),
40328(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40329"$Pd4 = cmp.eq($Rs32,#$Ii)",
40330tc_388f9897, TypeALU32_2op>, Requires<[HasV69]> {
40331let AsmVariantName = "NonParsable";
40332let isPseudo = 1;
40333let isExtendable = 1;
40334let opExtendable = 2;
40335let isExtentSigned = 1;
40336let opExtentBits = 10;
40337let opExtentAlign = 0;
40338}
40339def dup_L2_deallocframe : HInst<
40340(outs DoubleRegs:$Rdd32),
40341(ins IntRegs:$Rs32),
40342"$Rdd32 = deallocframe($Rs32):raw",
40343tc_aee6250c, TypeLD>, Requires<[HasV69]> {
40344let accessSize = DoubleWordAccess;
40345let AsmVariantName = "NonParsable";
40346let mayLoad = 1;
40347let Uses = [FRAMEKEY];
40348let Defs = [R29];
40349let isPseudo = 1;
40350}
40351def dup_L2_loadrb_io : HInst<
40352(outs IntRegs:$Rd32),
40353(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40354"$Rd32 = memb($Rs32+#$Ii)",
40355tc_eed07714, TypeLD>, Requires<[HasV69]> {
40356let hasNewValue = 1;
40357let opNewValue = 0;
40358let addrMode = BaseImmOffset;
40359let accessSize = ByteAccess;
40360let AsmVariantName = "NonParsable";
40361let mayLoad = 1;
40362let isPseudo = 1;
40363let isExtendable = 1;
40364let opExtendable = 2;
40365let isExtentSigned = 1;
40366let opExtentBits = 11;
40367let opExtentAlign = 0;
40368}
40369def dup_L2_loadrd_io : HInst<
40370(outs DoubleRegs:$Rdd32),
40371(ins IntRegs:$Rs32, s29_3Imm:$Ii),
40372"$Rdd32 = memd($Rs32+#$Ii)",
40373tc_eed07714, TypeLD>, Requires<[HasV69]> {
40374let addrMode = BaseImmOffset;
40375let accessSize = DoubleWordAccess;
40376let AsmVariantName = "NonParsable";
40377let mayLoad = 1;
40378let isPseudo = 1;
40379let isExtendable = 1;
40380let opExtendable = 2;
40381let isExtentSigned = 1;
40382let opExtentBits = 14;
40383let opExtentAlign = 3;
40384}
40385def dup_L2_loadrh_io : HInst<
40386(outs IntRegs:$Rd32),
40387(ins IntRegs:$Rs32, s31_1Imm:$Ii),
40388"$Rd32 = memh($Rs32+#$Ii)",
40389tc_eed07714, TypeLD>, Requires<[HasV69]> {
40390let hasNewValue = 1;
40391let opNewValue = 0;
40392let addrMode = BaseImmOffset;
40393let accessSize = HalfWordAccess;
40394let AsmVariantName = "NonParsable";
40395let mayLoad = 1;
40396let isPseudo = 1;
40397let isExtendable = 1;
40398let opExtendable = 2;
40399let isExtentSigned = 1;
40400let opExtentBits = 12;
40401let opExtentAlign = 1;
40402}
40403def dup_L2_loadri_io : HInst<
40404(outs IntRegs:$Rd32),
40405(ins IntRegs:$Rs32, s30_2Imm:$Ii),
40406"$Rd32 = memw($Rs32+#$Ii)",
40407tc_eed07714, TypeLD>, Requires<[HasV69]> {
40408let hasNewValue = 1;
40409let opNewValue = 0;
40410let addrMode = BaseImmOffset;
40411let accessSize = WordAccess;
40412let AsmVariantName = "NonParsable";
40413let mayLoad = 1;
40414let isPseudo = 1;
40415let isExtendable = 1;
40416let opExtendable = 2;
40417let isExtentSigned = 1;
40418let opExtentBits = 13;
40419let opExtentAlign = 2;
40420}
40421def dup_L2_loadrub_io : HInst<
40422(outs IntRegs:$Rd32),
40423(ins IntRegs:$Rs32, s32_0Imm:$Ii),
40424"$Rd32 = memub($Rs32+#$Ii)",
40425tc_eed07714, TypeLD>, Requires<[HasV69]> {
40426let hasNewValue = 1;
40427let opNewValue = 0;
40428let addrMode = BaseImmOffset;
40429let accessSize = ByteAccess;
40430let AsmVariantName = "NonParsable";
40431let mayLoad = 1;
40432let isPseudo = 1;
40433let isExtendable = 1;
40434let opExtendable = 2;
40435let isExtentSigned = 1;
40436let opExtentBits = 11;
40437let opExtentAlign = 0;
40438}
40439def dup_L2_loadruh_io : HInst<
40440(outs IntRegs:$Rd32),
40441(ins IntRegs:$Rs32, s31_1Imm:$Ii),
40442"$Rd32 = memuh($Rs32+#$Ii)",
40443tc_eed07714, TypeLD>, Requires<[HasV69]> {
40444let hasNewValue = 1;
40445let opNewValue = 0;
40446let addrMode = BaseImmOffset;
40447let accessSize = HalfWordAccess;
40448let AsmVariantName = "NonParsable";
40449let mayLoad = 1;
40450let isPseudo = 1;
40451let isExtendable = 1;
40452let opExtendable = 2;
40453let isExtentSigned = 1;
40454let opExtentBits = 12;
40455let opExtentAlign = 1;
40456}
40457def dup_S2_allocframe : HInst<
40458(outs IntRegs:$Rx32),
40459(ins IntRegs:$Rx32in, u11_3Imm:$Ii),
40460"allocframe($Rx32,#$Ii):raw",
40461tc_74a42bda, TypeST>, Requires<[HasV69]> {
40462let hasNewValue = 1;
40463let opNewValue = 0;
40464let addrMode = BaseImmOffset;
40465let accessSize = DoubleWordAccess;
40466let AsmVariantName = "NonParsable";
40467let mayStore = 1;
40468let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
40469let Defs = [R30];
40470let isPseudo = 1;
40471let Constraints = "$Rx32 = $Rx32in";
40472}
40473def dup_S2_storerb_io : HInst<
40474(outs),
40475(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
40476"memb($Rs32+#$Ii) = $Rt32",
40477tc_a9edeffa, TypeST>, Requires<[HasV69]> {
40478let addrMode = BaseImmOffset;
40479let accessSize = ByteAccess;
40480let AsmVariantName = "NonParsable";
40481let mayStore = 1;
40482let isPseudo = 1;
40483let isExtendable = 1;
40484let opExtendable = 1;
40485let isExtentSigned = 1;
40486let opExtentBits = 11;
40487let opExtentAlign = 0;
40488}
40489def dup_S2_storerd_io : HInst<
40490(outs),
40491(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
40492"memd($Rs32+#$Ii) = $Rtt32",
40493tc_a9edeffa, TypeST>, Requires<[HasV69]> {
40494let addrMode = BaseImmOffset;
40495let accessSize = DoubleWordAccess;
40496let AsmVariantName = "NonParsable";
40497let mayStore = 1;
40498let isPseudo = 1;
40499let isExtendable = 1;
40500let opExtendable = 1;
40501let isExtentSigned = 1;
40502let opExtentBits = 14;
40503let opExtentAlign = 3;
40504}
40505def dup_S2_storerh_io : HInst<
40506(outs),
40507(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
40508"memh($Rs32+#$Ii) = $Rt32",
40509tc_a9edeffa, TypeST>, Requires<[HasV69]> {
40510let addrMode = BaseImmOffset;
40511let accessSize = HalfWordAccess;
40512let AsmVariantName = "NonParsable";
40513let mayStore = 1;
40514let isPseudo = 1;
40515let isExtendable = 1;
40516let opExtendable = 1;
40517let isExtentSigned = 1;
40518let opExtentBits = 12;
40519let opExtentAlign = 1;
40520}
40521def dup_S2_storeri_io : HInst<
40522(outs),
40523(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
40524"memw($Rs32+#$Ii) = $Rt32",
40525tc_a9edeffa, TypeST>, Requires<[HasV69]> {
40526let addrMode = BaseImmOffset;
40527let accessSize = WordAccess;
40528let AsmVariantName = "NonParsable";
40529let mayStore = 1;
40530let isPseudo = 1;
40531let isExtendable = 1;
40532let opExtendable = 1;
40533let isExtentSigned = 1;
40534let opExtentBits = 13;
40535let opExtentAlign = 2;
40536}
40537def dup_S4_storeirb_io : HInst<
40538(outs),
40539(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
40540"memb($Rs32+#$Ii) = #$II",
40541tc_838c4d7a, TypeV4LDST>, Requires<[HasV69]> {
40542let addrMode = BaseImmOffset;
40543let accessSize = ByteAccess;
40544let AsmVariantName = "NonParsable";
40545let mayStore = 1;
40546let isPseudo = 1;
40547let isExtendable = 1;
40548let opExtendable = 2;
40549let isExtentSigned = 1;
40550let opExtentBits = 8;
40551let opExtentAlign = 0;
40552}
40553def dup_S4_storeiri_io : HInst<
40554(outs),
40555(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
40556"memw($Rs32+#$Ii) = #$II",
40557tc_838c4d7a, TypeV4LDST>, Requires<[HasV69]> {
40558let addrMode = BaseImmOffset;
40559let accessSize = WordAccess;
40560let AsmVariantName = "NonParsable";
40561let mayStore = 1;
40562let isPseudo = 1;
40563let isExtendable = 1;
40564let opExtendable = 2;
40565let isExtentSigned = 1;
40566let opExtentBits = 8;
40567let opExtentAlign = 0;
40568}
40569