[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / lib / Target / Hexagon / HexagonDepInstrInfo.td
blobbba36352815e20878a76861f72fd9ed71aeb2b5b
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 //===----------------------------------------------------------------------===//
11 def A2_abs : HInst<
12 (outs IntRegs:$Rd32),
13 (ins IntRegs:$Rs32),
14 "$Rd32 = abs($Rs32)",
15 tc_d61dfdc3, TypeS_2op>, Enc_5e2823 {
16 let Inst{13-5} = 0b000000100;
17 let Inst{31-21} = 0b10001100100;
18 let hasNewValue = 1;
19 let opNewValue = 0;
20 let prefersSlot3 = 1;
22 def A2_absp : HInst<
23 (outs DoubleRegs:$Rdd32),
24 (ins DoubleRegs:$Rss32),
25 "$Rdd32 = abs($Rss32)",
26 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
27 let Inst{13-5} = 0b000000110;
28 let Inst{31-21} = 0b10000000100;
29 let prefersSlot3 = 1;
31 def A2_abssat : HInst<
32 (outs IntRegs:$Rd32),
33 (ins IntRegs:$Rs32),
34 "$Rd32 = abs($Rs32):sat",
35 tc_d61dfdc3, TypeS_2op>, Enc_5e2823 {
36 let Inst{13-5} = 0b000000101;
37 let Inst{31-21} = 0b10001100100;
38 let hasNewValue = 1;
39 let opNewValue = 0;
40 let prefersSlot3 = 1;
41 let Defs = [USR_OVF];
43 def A2_add : HInst<
44 (outs IntRegs:$Rd32),
45 (ins IntRegs:$Rs32, IntRegs:$Rt32),
46 "$Rd32 = add($Rs32,$Rt32)",
47 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
48 let Inst{7-5} = 0b000;
49 let Inst{13-13} = 0b0;
50 let Inst{31-21} = 0b11110011000;
51 let hasNewValue = 1;
52 let opNewValue = 0;
53 let BaseOpcode = "A2_add";
54 let CextOpcode = "A2_add";
55 let InputType = "reg";
56 let isCommutable = 1;
57 let isPredicable = 1;
59 def A2_addh_h16_hh : HInst<
60 (outs IntRegs:$Rd32),
61 (ins IntRegs:$Rt32, IntRegs:$Rs32),
62 "$Rd32 = add($Rt32.h,$Rs32.h):<<16",
63 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
64 let Inst{7-5} = 0b011;
65 let Inst{13-13} = 0b0;
66 let Inst{31-21} = 0b11010101010;
67 let hasNewValue = 1;
68 let opNewValue = 0;
69 let prefersSlot3 = 1;
71 def A2_addh_h16_hl : HInst<
72 (outs IntRegs:$Rd32),
73 (ins IntRegs:$Rt32, IntRegs:$Rs32),
74 "$Rd32 = add($Rt32.h,$Rs32.l):<<16",
75 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
76 let Inst{7-5} = 0b010;
77 let Inst{13-13} = 0b0;
78 let Inst{31-21} = 0b11010101010;
79 let hasNewValue = 1;
80 let opNewValue = 0;
81 let prefersSlot3 = 1;
83 def A2_addh_h16_lh : HInst<
84 (outs IntRegs:$Rd32),
85 (ins IntRegs:$Rt32, IntRegs:$Rs32),
86 "$Rd32 = add($Rt32.l,$Rs32.h):<<16",
87 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
88 let Inst{7-5} = 0b001;
89 let Inst{13-13} = 0b0;
90 let Inst{31-21} = 0b11010101010;
91 let hasNewValue = 1;
92 let opNewValue = 0;
93 let prefersSlot3 = 1;
95 def A2_addh_h16_ll : HInst<
96 (outs IntRegs:$Rd32),
97 (ins IntRegs:$Rt32, IntRegs:$Rs32),
98 "$Rd32 = add($Rt32.l,$Rs32.l):<<16",
99 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
100 let Inst{7-5} = 0b000;
101 let Inst{13-13} = 0b0;
102 let Inst{31-21} = 0b11010101010;
103 let hasNewValue = 1;
104 let opNewValue = 0;
105 let prefersSlot3 = 1;
107 def 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",
111 tc_8a825db2, TypeALU64>, Enc_bd6011 {
112 let Inst{7-5} = 0b111;
113 let Inst{13-13} = 0b0;
114 let Inst{31-21} = 0b11010101010;
115 let hasNewValue = 1;
116 let opNewValue = 0;
117 let prefersSlot3 = 1;
118 let Defs = [USR_OVF];
120 def 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",
124 tc_8a825db2, TypeALU64>, Enc_bd6011 {
125 let Inst{7-5} = 0b110;
126 let Inst{13-13} = 0b0;
127 let Inst{31-21} = 0b11010101010;
128 let hasNewValue = 1;
129 let opNewValue = 0;
130 let prefersSlot3 = 1;
131 let Defs = [USR_OVF];
133 def 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",
137 tc_8a825db2, TypeALU64>, Enc_bd6011 {
138 let Inst{7-5} = 0b101;
139 let Inst{13-13} = 0b0;
140 let Inst{31-21} = 0b11010101010;
141 let hasNewValue = 1;
142 let opNewValue = 0;
143 let prefersSlot3 = 1;
144 let Defs = [USR_OVF];
146 def 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",
150 tc_8a825db2, TypeALU64>, Enc_bd6011 {
151 let Inst{7-5} = 0b100;
152 let Inst{13-13} = 0b0;
153 let Inst{31-21} = 0b11010101010;
154 let hasNewValue = 1;
155 let opNewValue = 0;
156 let prefersSlot3 = 1;
157 let Defs = [USR_OVF];
159 def A2_addh_l16_hl : HInst<
160 (outs IntRegs:$Rd32),
161 (ins IntRegs:$Rt32, IntRegs:$Rs32),
162 "$Rd32 = add($Rt32.l,$Rs32.h)",
163 tc_f34c1c21, TypeALU64>, Enc_bd6011 {
164 let Inst{7-5} = 0b010;
165 let Inst{13-13} = 0b0;
166 let Inst{31-21} = 0b11010101000;
167 let hasNewValue = 1;
168 let opNewValue = 0;
169 let prefersSlot3 = 1;
171 def A2_addh_l16_ll : HInst<
172 (outs IntRegs:$Rd32),
173 (ins IntRegs:$Rt32, IntRegs:$Rs32),
174 "$Rd32 = add($Rt32.l,$Rs32.l)",
175 tc_f34c1c21, TypeALU64>, Enc_bd6011 {
176 let Inst{7-5} = 0b000;
177 let Inst{13-13} = 0b0;
178 let Inst{31-21} = 0b11010101000;
179 let hasNewValue = 1;
180 let opNewValue = 0;
181 let prefersSlot3 = 1;
183 def A2_addh_l16_sat_hl : HInst<
184 (outs IntRegs:$Rd32),
185 (ins IntRegs:$Rt32, IntRegs:$Rs32),
186 "$Rd32 = add($Rt32.l,$Rs32.h):sat",
187 tc_8a825db2, TypeALU64>, Enc_bd6011 {
188 let Inst{7-5} = 0b110;
189 let Inst{13-13} = 0b0;
190 let Inst{31-21} = 0b11010101000;
191 let hasNewValue = 1;
192 let opNewValue = 0;
193 let prefersSlot3 = 1;
194 let Defs = [USR_OVF];
196 def A2_addh_l16_sat_ll : HInst<
197 (outs IntRegs:$Rd32),
198 (ins IntRegs:$Rt32, IntRegs:$Rs32),
199 "$Rd32 = add($Rt32.l,$Rs32.l):sat",
200 tc_8a825db2, TypeALU64>, Enc_bd6011 {
201 let Inst{7-5} = 0b100;
202 let Inst{13-13} = 0b0;
203 let Inst{31-21} = 0b11010101000;
204 let hasNewValue = 1;
205 let opNewValue = 0;
206 let prefersSlot3 = 1;
207 let Defs = [USR_OVF];
209 def A2_addi : HInst<
210 (outs IntRegs:$Rd32),
211 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
212 "$Rd32 = add($Rs32,#$Ii)",
213 tc_713b66bf, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel {
214 let Inst{31-28} = 0b1011;
215 let hasNewValue = 1;
216 let opNewValue = 0;
217 let BaseOpcode = "A2_addi";
218 let CextOpcode = "A2_add";
219 let InputType = "imm";
220 let isAdd = 1;
221 let isPredicable = 1;
222 let isExtendable = 1;
223 let opExtendable = 2;
224 let isExtentSigned = 1;
225 let opExtentBits = 16;
226 let opExtentAlign = 0;
228 def A2_addp : HInst<
229 (outs DoubleRegs:$Rdd32),
230 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
231 "$Rdd32 = add($Rss32,$Rtt32)",
232 tc_5da50c4b, TypeALU64>, Enc_a56825 {
233 let Inst{7-5} = 0b111;
234 let Inst{13-13} = 0b0;
235 let Inst{31-21} = 0b11010011000;
236 let isAdd = 1;
237 let isCommutable = 1;
239 def A2_addpsat : HInst<
240 (outs DoubleRegs:$Rdd32),
241 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
242 "$Rdd32 = add($Rss32,$Rtt32):sat",
243 tc_8a825db2, TypeALU64>, Enc_a56825 {
244 let Inst{7-5} = 0b101;
245 let Inst{13-13} = 0b0;
246 let Inst{31-21} = 0b11010011011;
247 let prefersSlot3 = 1;
248 let Defs = [USR_OVF];
249 let isCommutable = 1;
251 def A2_addsat : HInst<
252 (outs IntRegs:$Rd32),
253 (ins IntRegs:$Rs32, IntRegs:$Rt32),
254 "$Rd32 = add($Rs32,$Rt32):sat",
255 tc_95a33176, TypeALU32_3op>, Enc_5ab2be {
256 let Inst{7-5} = 0b000;
257 let Inst{13-13} = 0b0;
258 let Inst{31-21} = 0b11110110010;
259 let hasNewValue = 1;
260 let opNewValue = 0;
261 let prefersSlot3 = 1;
262 let Defs = [USR_OVF];
263 let InputType = "reg";
264 let isCommutable = 1;
266 def A2_addsp : HInst<
267 (outs DoubleRegs:$Rdd32),
268 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
269 "$Rdd32 = add($Rs32,$Rtt32)",
270 tc_01d44cb2, TypeALU64> {
271 let isPseudo = 1;
273 def A2_addsph : HInst<
274 (outs DoubleRegs:$Rdd32),
275 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
276 "$Rdd32 = add($Rss32,$Rtt32):raw:hi",
277 tc_01d44cb2, TypeALU64>, Enc_a56825 {
278 let Inst{7-5} = 0b111;
279 let Inst{13-13} = 0b0;
280 let Inst{31-21} = 0b11010011011;
281 let prefersSlot3 = 1;
283 def A2_addspl : HInst<
284 (outs DoubleRegs:$Rdd32),
285 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
286 "$Rdd32 = add($Rss32,$Rtt32):raw:lo",
287 tc_01d44cb2, TypeALU64>, Enc_a56825 {
288 let Inst{7-5} = 0b110;
289 let Inst{13-13} = 0b0;
290 let Inst{31-21} = 0b11010011011;
291 let prefersSlot3 = 1;
293 def A2_and : HInst<
294 (outs IntRegs:$Rd32),
295 (ins IntRegs:$Rs32, IntRegs:$Rt32),
296 "$Rd32 = and($Rs32,$Rt32)",
297 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
298 let Inst{7-5} = 0b000;
299 let Inst{13-13} = 0b0;
300 let Inst{31-21} = 0b11110001000;
301 let hasNewValue = 1;
302 let opNewValue = 0;
303 let BaseOpcode = "A2_and";
304 let CextOpcode = "A2_and";
305 let InputType = "reg";
306 let isCommutable = 1;
307 let isPredicable = 1;
309 def A2_andir : HInst<
310 (outs IntRegs:$Rd32),
311 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
312 "$Rd32 = and($Rs32,#$Ii)",
313 tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel {
314 let Inst{31-22} = 0b0111011000;
315 let hasNewValue = 1;
316 let opNewValue = 0;
317 let CextOpcode = "A2_and";
318 let InputType = "imm";
319 let isExtendable = 1;
320 let opExtendable = 2;
321 let isExtentSigned = 1;
322 let opExtentBits = 10;
323 let opExtentAlign = 0;
325 def A2_andp : HInst<
326 (outs DoubleRegs:$Rdd32),
327 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
328 "$Rdd32 = and($Rss32,$Rtt32)",
329 tc_5da50c4b, TypeALU64>, Enc_a56825 {
330 let Inst{7-5} = 0b000;
331 let Inst{13-13} = 0b0;
332 let Inst{31-21} = 0b11010011111;
333 let isCommutable = 1;
335 def A2_aslh : HInst<
336 (outs IntRegs:$Rd32),
337 (ins IntRegs:$Rs32),
338 "$Rd32 = aslh($Rs32)",
339 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
340 let Inst{13-5} = 0b000000000;
341 let Inst{31-21} = 0b01110000000;
342 let hasNewValue = 1;
343 let opNewValue = 0;
344 let BaseOpcode = "A2_aslh";
345 let isPredicable = 1;
347 def A2_asrh : HInst<
348 (outs IntRegs:$Rd32),
349 (ins IntRegs:$Rs32),
350 "$Rd32 = asrh($Rs32)",
351 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
352 let Inst{13-5} = 0b000000000;
353 let Inst{31-21} = 0b01110000001;
354 let hasNewValue = 1;
355 let opNewValue = 0;
356 let BaseOpcode = "A2_asrh";
357 let isPredicable = 1;
359 def A2_combine_hh : HInst<
360 (outs IntRegs:$Rd32),
361 (ins IntRegs:$Rt32, IntRegs:$Rs32),
362 "$Rd32 = combine($Rt32.h,$Rs32.h)",
363 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
364 let Inst{7-5} = 0b000;
365 let Inst{13-13} = 0b0;
366 let Inst{31-21} = 0b11110011100;
367 let hasNewValue = 1;
368 let opNewValue = 0;
369 let InputType = "reg";
371 def A2_combine_hl : HInst<
372 (outs IntRegs:$Rd32),
373 (ins IntRegs:$Rt32, IntRegs:$Rs32),
374 "$Rd32 = combine($Rt32.h,$Rs32.l)",
375 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
376 let Inst{7-5} = 0b000;
377 let Inst{13-13} = 0b0;
378 let Inst{31-21} = 0b11110011101;
379 let hasNewValue = 1;
380 let opNewValue = 0;
381 let InputType = "reg";
383 def A2_combine_lh : HInst<
384 (outs IntRegs:$Rd32),
385 (ins IntRegs:$Rt32, IntRegs:$Rs32),
386 "$Rd32 = combine($Rt32.l,$Rs32.h)",
387 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
388 let Inst{7-5} = 0b000;
389 let Inst{13-13} = 0b0;
390 let Inst{31-21} = 0b11110011110;
391 let hasNewValue = 1;
392 let opNewValue = 0;
393 let InputType = "reg";
395 def A2_combine_ll : HInst<
396 (outs IntRegs:$Rd32),
397 (ins IntRegs:$Rt32, IntRegs:$Rs32),
398 "$Rd32 = combine($Rt32.l,$Rs32.l)",
399 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
400 let Inst{7-5} = 0b000;
401 let Inst{13-13} = 0b0;
402 let Inst{31-21} = 0b11110011111;
403 let hasNewValue = 1;
404 let opNewValue = 0;
405 let InputType = "reg";
407 def A2_combineii : HInst<
408 (outs DoubleRegs:$Rdd32),
409 (ins s32_0Imm:$Ii, s8_0Imm:$II),
410 "$Rdd32 = combine(#$Ii,#$II)",
411 tc_713b66bf, TypeALU32_2op>, Enc_18c338 {
412 let Inst{31-23} = 0b011111000;
413 let isAsCheapAsAMove = 1;
414 let isMoveImm = 1;
415 let isReMaterializable = 1;
416 let isExtendable = 1;
417 let opExtendable = 1;
418 let isExtentSigned = 1;
419 let opExtentBits = 8;
420 let opExtentAlign = 0;
422 def A2_combinew : HInst<
423 (outs DoubleRegs:$Rdd32),
424 (ins IntRegs:$Rs32, IntRegs:$Rt32),
425 "$Rdd32 = combine($Rs32,$Rt32)",
426 tc_713b66bf, TypeALU32_3op>, Enc_be32a5, PredNewRel {
427 let Inst{7-5} = 0b000;
428 let Inst{13-13} = 0b0;
429 let Inst{31-21} = 0b11110101000;
430 let BaseOpcode = "A2_combinew";
431 let InputType = "reg";
432 let isPredicable = 1;
434 def A2_max : HInst<
435 (outs IntRegs:$Rd32),
436 (ins IntRegs:$Rs32, IntRegs:$Rt32),
437 "$Rd32 = max($Rs32,$Rt32)",
438 tc_8a825db2, TypeALU64>, Enc_5ab2be {
439 let Inst{7-5} = 0b000;
440 let Inst{13-13} = 0b0;
441 let Inst{31-21} = 0b11010101110;
442 let hasNewValue = 1;
443 let opNewValue = 0;
444 let prefersSlot3 = 1;
446 def A2_maxp : HInst<
447 (outs DoubleRegs:$Rdd32),
448 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
449 "$Rdd32 = max($Rss32,$Rtt32)",
450 tc_8a825db2, TypeALU64>, Enc_a56825 {
451 let Inst{7-5} = 0b100;
452 let Inst{13-13} = 0b0;
453 let Inst{31-21} = 0b11010011110;
454 let prefersSlot3 = 1;
456 def A2_maxu : HInst<
457 (outs IntRegs:$Rd32),
458 (ins IntRegs:$Rs32, IntRegs:$Rt32),
459 "$Rd32 = maxu($Rs32,$Rt32)",
460 tc_8a825db2, TypeALU64>, Enc_5ab2be {
461 let Inst{7-5} = 0b100;
462 let Inst{13-13} = 0b0;
463 let Inst{31-21} = 0b11010101110;
464 let hasNewValue = 1;
465 let opNewValue = 0;
466 let prefersSlot3 = 1;
468 def A2_maxup : HInst<
469 (outs DoubleRegs:$Rdd32),
470 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
471 "$Rdd32 = maxu($Rss32,$Rtt32)",
472 tc_8a825db2, TypeALU64>, Enc_a56825 {
473 let Inst{7-5} = 0b101;
474 let Inst{13-13} = 0b0;
475 let Inst{31-21} = 0b11010011110;
476 let prefersSlot3 = 1;
478 def A2_min : HInst<
479 (outs IntRegs:$Rd32),
480 (ins IntRegs:$Rt32, IntRegs:$Rs32),
481 "$Rd32 = min($Rt32,$Rs32)",
482 tc_8a825db2, TypeALU64>, Enc_bd6011 {
483 let Inst{7-5} = 0b000;
484 let Inst{13-13} = 0b0;
485 let Inst{31-21} = 0b11010101101;
486 let hasNewValue = 1;
487 let opNewValue = 0;
488 let prefersSlot3 = 1;
490 def A2_minp : HInst<
491 (outs DoubleRegs:$Rdd32),
492 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
493 "$Rdd32 = min($Rtt32,$Rss32)",
494 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
495 let Inst{7-5} = 0b110;
496 let Inst{13-13} = 0b0;
497 let Inst{31-21} = 0b11010011101;
498 let prefersSlot3 = 1;
500 def A2_minu : HInst<
501 (outs IntRegs:$Rd32),
502 (ins IntRegs:$Rt32, IntRegs:$Rs32),
503 "$Rd32 = minu($Rt32,$Rs32)",
504 tc_8a825db2, TypeALU64>, Enc_bd6011 {
505 let Inst{7-5} = 0b100;
506 let Inst{13-13} = 0b0;
507 let Inst{31-21} = 0b11010101101;
508 let hasNewValue = 1;
509 let opNewValue = 0;
510 let prefersSlot3 = 1;
512 def A2_minup : HInst<
513 (outs DoubleRegs:$Rdd32),
514 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
515 "$Rdd32 = minu($Rtt32,$Rss32)",
516 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
517 let Inst{7-5} = 0b111;
518 let Inst{13-13} = 0b0;
519 let Inst{31-21} = 0b11010011101;
520 let prefersSlot3 = 1;
522 def A2_neg : HInst<
523 (outs IntRegs:$Rd32),
524 (ins IntRegs:$Rs32),
525 "$Rd32 = neg($Rs32)",
526 tc_c57d9f39, TypeALU32_2op> {
527 let hasNewValue = 1;
528 let opNewValue = 0;
529 let isPseudo = 1;
530 let isCodeGenOnly = 1;
532 def A2_negp : HInst<
533 (outs DoubleRegs:$Rdd32),
534 (ins DoubleRegs:$Rss32),
535 "$Rdd32 = neg($Rss32)",
536 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
537 let Inst{13-5} = 0b000000101;
538 let Inst{31-21} = 0b10000000100;
540 def A2_negsat : HInst<
541 (outs IntRegs:$Rd32),
542 (ins IntRegs:$Rs32),
543 "$Rd32 = neg($Rs32):sat",
544 tc_d61dfdc3, TypeS_2op>, Enc_5e2823 {
545 let Inst{13-5} = 0b000000110;
546 let Inst{31-21} = 0b10001100100;
547 let hasNewValue = 1;
548 let opNewValue = 0;
549 let prefersSlot3 = 1;
550 let Defs = [USR_OVF];
552 def A2_nop : HInst<
553 (outs),
554 (ins),
555 "nop",
556 tc_b837298f, TypeALU32_2op>, Enc_e3b0c4 {
557 let Inst{13-0} = 0b00000000000000;
558 let Inst{31-16} = 0b0111111100000000;
560 def A2_not : HInst<
561 (outs IntRegs:$Rd32),
562 (ins IntRegs:$Rs32),
563 "$Rd32 = not($Rs32)",
564 tc_c57d9f39, TypeALU32_2op> {
565 let hasNewValue = 1;
566 let opNewValue = 0;
567 let isPseudo = 1;
568 let isCodeGenOnly = 1;
570 def A2_notp : HInst<
571 (outs DoubleRegs:$Rdd32),
572 (ins DoubleRegs:$Rss32),
573 "$Rdd32 = not($Rss32)",
574 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
575 let Inst{13-5} = 0b000000100;
576 let Inst{31-21} = 0b10000000100;
578 def A2_or : HInst<
579 (outs IntRegs:$Rd32),
580 (ins IntRegs:$Rs32, IntRegs:$Rt32),
581 "$Rd32 = or($Rs32,$Rt32)",
582 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
583 let Inst{7-5} = 0b000;
584 let Inst{13-13} = 0b0;
585 let Inst{31-21} = 0b11110001001;
586 let hasNewValue = 1;
587 let opNewValue = 0;
588 let BaseOpcode = "A2_or";
589 let CextOpcode = "A2_or";
590 let InputType = "reg";
591 let isCommutable = 1;
592 let isPredicable = 1;
594 def A2_orir : HInst<
595 (outs IntRegs:$Rd32),
596 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
597 "$Rd32 = or($Rs32,#$Ii)",
598 tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel {
599 let Inst{31-22} = 0b0111011010;
600 let hasNewValue = 1;
601 let opNewValue = 0;
602 let CextOpcode = "A2_or";
603 let InputType = "imm";
604 let isExtendable = 1;
605 let opExtendable = 2;
606 let isExtentSigned = 1;
607 let opExtentBits = 10;
608 let opExtentAlign = 0;
610 def A2_orp : HInst<
611 (outs DoubleRegs:$Rdd32),
612 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
613 "$Rdd32 = or($Rss32,$Rtt32)",
614 tc_5da50c4b, TypeALU64>, Enc_a56825 {
615 let Inst{7-5} = 0b010;
616 let Inst{13-13} = 0b0;
617 let Inst{31-21} = 0b11010011111;
618 let isCommutable = 1;
620 def A2_paddf : HInst<
621 (outs IntRegs:$Rd32),
622 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
623 "if (!$Pu4) $Rd32 = add($Rs32,$Rt32)",
624 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
625 let Inst{7-7} = 0b1;
626 let Inst{13-13} = 0b0;
627 let Inst{31-21} = 0b11111011000;
628 let isPredicated = 1;
629 let isPredicatedFalse = 1;
630 let hasNewValue = 1;
631 let opNewValue = 0;
632 let BaseOpcode = "A2_add";
633 let CextOpcode = "A2_add";
634 let InputType = "reg";
636 def A2_paddfnew : HInst<
637 (outs IntRegs:$Rd32),
638 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
639 "if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)",
640 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
641 let Inst{7-7} = 0b1;
642 let Inst{13-13} = 0b1;
643 let Inst{31-21} = 0b11111011000;
644 let isPredicated = 1;
645 let isPredicatedFalse = 1;
646 let hasNewValue = 1;
647 let opNewValue = 0;
648 let isPredicatedNew = 1;
649 let BaseOpcode = "A2_add";
650 let CextOpcode = "A2_add";
651 let InputType = "reg";
653 def A2_paddif : HInst<
654 (outs IntRegs:$Rd32),
655 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
656 "if (!$Pu4) $Rd32 = add($Rs32,#$Ii)",
657 tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
658 let Inst{13-13} = 0b0;
659 let Inst{31-23} = 0b011101001;
660 let isPredicated = 1;
661 let isPredicatedFalse = 1;
662 let hasNewValue = 1;
663 let opNewValue = 0;
664 let BaseOpcode = "A2_addi";
665 let CextOpcode = "A2_add";
666 let InputType = "imm";
667 let isExtendable = 1;
668 let opExtendable = 3;
669 let isExtentSigned = 1;
670 let opExtentBits = 8;
671 let opExtentAlign = 0;
673 def A2_paddifnew : HInst<
674 (outs IntRegs:$Rd32),
675 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
676 "if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)",
677 tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
678 let Inst{13-13} = 0b1;
679 let Inst{31-23} = 0b011101001;
680 let isPredicated = 1;
681 let isPredicatedFalse = 1;
682 let hasNewValue = 1;
683 let opNewValue = 0;
684 let isPredicatedNew = 1;
685 let BaseOpcode = "A2_addi";
686 let CextOpcode = "A2_add";
687 let InputType = "imm";
688 let isExtendable = 1;
689 let opExtendable = 3;
690 let isExtentSigned = 1;
691 let opExtentBits = 8;
692 let opExtentAlign = 0;
694 def A2_paddit : HInst<
695 (outs IntRegs:$Rd32),
696 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
697 "if ($Pu4) $Rd32 = add($Rs32,#$Ii)",
698 tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
699 let Inst{13-13} = 0b0;
700 let Inst{31-23} = 0b011101000;
701 let isPredicated = 1;
702 let hasNewValue = 1;
703 let opNewValue = 0;
704 let BaseOpcode = "A2_addi";
705 let CextOpcode = "A2_add";
706 let InputType = "imm";
707 let isExtendable = 1;
708 let opExtendable = 3;
709 let isExtentSigned = 1;
710 let opExtentBits = 8;
711 let opExtentAlign = 0;
713 def A2_padditnew : HInst<
714 (outs IntRegs:$Rd32),
715 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
716 "if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)",
717 tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
718 let Inst{13-13} = 0b1;
719 let Inst{31-23} = 0b011101000;
720 let isPredicated = 1;
721 let hasNewValue = 1;
722 let opNewValue = 0;
723 let isPredicatedNew = 1;
724 let BaseOpcode = "A2_addi";
725 let CextOpcode = "A2_add";
726 let InputType = "imm";
727 let isExtendable = 1;
728 let opExtendable = 3;
729 let isExtentSigned = 1;
730 let opExtentBits = 8;
731 let opExtentAlign = 0;
733 def A2_paddt : HInst<
734 (outs IntRegs:$Rd32),
735 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
736 "if ($Pu4) $Rd32 = add($Rs32,$Rt32)",
737 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
738 let Inst{7-7} = 0b0;
739 let Inst{13-13} = 0b0;
740 let Inst{31-21} = 0b11111011000;
741 let isPredicated = 1;
742 let hasNewValue = 1;
743 let opNewValue = 0;
744 let BaseOpcode = "A2_add";
745 let CextOpcode = "A2_add";
746 let InputType = "reg";
748 def A2_paddtnew : HInst<
749 (outs IntRegs:$Rd32),
750 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
751 "if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)",
752 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
753 let Inst{7-7} = 0b0;
754 let Inst{13-13} = 0b1;
755 let Inst{31-21} = 0b11111011000;
756 let isPredicated = 1;
757 let hasNewValue = 1;
758 let opNewValue = 0;
759 let isPredicatedNew = 1;
760 let BaseOpcode = "A2_add";
761 let CextOpcode = "A2_add";
762 let InputType = "reg";
764 def A2_pandf : HInst<
765 (outs IntRegs:$Rd32),
766 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
767 "if (!$Pu4) $Rd32 = and($Rs32,$Rt32)",
768 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
769 let Inst{7-7} = 0b1;
770 let Inst{13-13} = 0b0;
771 let Inst{31-21} = 0b11111001000;
772 let isPredicated = 1;
773 let isPredicatedFalse = 1;
774 let hasNewValue = 1;
775 let opNewValue = 0;
776 let BaseOpcode = "A2_and";
778 def A2_pandfnew : HInst<
779 (outs IntRegs:$Rd32),
780 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
781 "if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)",
782 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
783 let Inst{7-7} = 0b1;
784 let Inst{13-13} = 0b1;
785 let Inst{31-21} = 0b11111001000;
786 let isPredicated = 1;
787 let isPredicatedFalse = 1;
788 let hasNewValue = 1;
789 let opNewValue = 0;
790 let isPredicatedNew = 1;
791 let BaseOpcode = "A2_and";
793 def A2_pandt : HInst<
794 (outs IntRegs:$Rd32),
795 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
796 "if ($Pu4) $Rd32 = and($Rs32,$Rt32)",
797 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
798 let Inst{7-7} = 0b0;
799 let Inst{13-13} = 0b0;
800 let Inst{31-21} = 0b11111001000;
801 let isPredicated = 1;
802 let hasNewValue = 1;
803 let opNewValue = 0;
804 let BaseOpcode = "A2_and";
806 def A2_pandtnew : HInst<
807 (outs IntRegs:$Rd32),
808 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
809 "if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)",
810 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
811 let Inst{7-7} = 0b0;
812 let Inst{13-13} = 0b1;
813 let Inst{31-21} = 0b11111001000;
814 let isPredicated = 1;
815 let hasNewValue = 1;
816 let opNewValue = 0;
817 let isPredicatedNew = 1;
818 let BaseOpcode = "A2_and";
820 def A2_porf : HInst<
821 (outs IntRegs:$Rd32),
822 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
823 "if (!$Pu4) $Rd32 = or($Rs32,$Rt32)",
824 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
825 let Inst{7-7} = 0b1;
826 let Inst{13-13} = 0b0;
827 let Inst{31-21} = 0b11111001001;
828 let isPredicated = 1;
829 let isPredicatedFalse = 1;
830 let hasNewValue = 1;
831 let opNewValue = 0;
832 let BaseOpcode = "A2_or";
834 def A2_porfnew : HInst<
835 (outs IntRegs:$Rd32),
836 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
837 "if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)",
838 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
839 let Inst{7-7} = 0b1;
840 let Inst{13-13} = 0b1;
841 let Inst{31-21} = 0b11111001001;
842 let isPredicated = 1;
843 let isPredicatedFalse = 1;
844 let hasNewValue = 1;
845 let opNewValue = 0;
846 let isPredicatedNew = 1;
847 let BaseOpcode = "A2_or";
849 def A2_port : HInst<
850 (outs IntRegs:$Rd32),
851 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
852 "if ($Pu4) $Rd32 = or($Rs32,$Rt32)",
853 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
854 let Inst{7-7} = 0b0;
855 let Inst{13-13} = 0b0;
856 let Inst{31-21} = 0b11111001001;
857 let isPredicated = 1;
858 let hasNewValue = 1;
859 let opNewValue = 0;
860 let BaseOpcode = "A2_or";
862 def A2_portnew : HInst<
863 (outs IntRegs:$Rd32),
864 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
865 "if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)",
866 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
867 let Inst{7-7} = 0b0;
868 let Inst{13-13} = 0b1;
869 let Inst{31-21} = 0b11111001001;
870 let isPredicated = 1;
871 let hasNewValue = 1;
872 let opNewValue = 0;
873 let isPredicatedNew = 1;
874 let BaseOpcode = "A2_or";
876 def A2_psubf : HInst<
877 (outs IntRegs:$Rd32),
878 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
879 "if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)",
880 tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
881 let Inst{7-7} = 0b1;
882 let Inst{13-13} = 0b0;
883 let Inst{31-21} = 0b11111011001;
884 let isPredicated = 1;
885 let isPredicatedFalse = 1;
886 let hasNewValue = 1;
887 let opNewValue = 0;
888 let BaseOpcode = "A2_sub";
890 def A2_psubfnew : HInst<
891 (outs IntRegs:$Rd32),
892 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
893 "if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
894 tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
895 let Inst{7-7} = 0b1;
896 let Inst{13-13} = 0b1;
897 let Inst{31-21} = 0b11111011001;
898 let isPredicated = 1;
899 let isPredicatedFalse = 1;
900 let hasNewValue = 1;
901 let opNewValue = 0;
902 let isPredicatedNew = 1;
903 let BaseOpcode = "A2_sub";
905 def A2_psubt : HInst<
906 (outs IntRegs:$Rd32),
907 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
908 "if ($Pu4) $Rd32 = sub($Rt32,$Rs32)",
909 tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
910 let Inst{7-7} = 0b0;
911 let Inst{13-13} = 0b0;
912 let Inst{31-21} = 0b11111011001;
913 let isPredicated = 1;
914 let hasNewValue = 1;
915 let opNewValue = 0;
916 let BaseOpcode = "A2_sub";
918 def A2_psubtnew : HInst<
919 (outs IntRegs:$Rd32),
920 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
921 "if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
922 tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
923 let Inst{7-7} = 0b0;
924 let Inst{13-13} = 0b1;
925 let Inst{31-21} = 0b11111011001;
926 let isPredicated = 1;
927 let hasNewValue = 1;
928 let opNewValue = 0;
929 let isPredicatedNew = 1;
930 let BaseOpcode = "A2_sub";
932 def A2_pxorf : HInst<
933 (outs IntRegs:$Rd32),
934 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
935 "if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)",
936 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
937 let Inst{7-7} = 0b1;
938 let Inst{13-13} = 0b0;
939 let Inst{31-21} = 0b11111001011;
940 let isPredicated = 1;
941 let isPredicatedFalse = 1;
942 let hasNewValue = 1;
943 let opNewValue = 0;
944 let BaseOpcode = "A2_xor";
946 def A2_pxorfnew : HInst<
947 (outs IntRegs:$Rd32),
948 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
949 "if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
950 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
951 let Inst{7-7} = 0b1;
952 let Inst{13-13} = 0b1;
953 let Inst{31-21} = 0b11111001011;
954 let isPredicated = 1;
955 let isPredicatedFalse = 1;
956 let hasNewValue = 1;
957 let opNewValue = 0;
958 let isPredicatedNew = 1;
959 let BaseOpcode = "A2_xor";
961 def A2_pxort : HInst<
962 (outs IntRegs:$Rd32),
963 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
964 "if ($Pu4) $Rd32 = xor($Rs32,$Rt32)",
965 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
966 let Inst{7-7} = 0b0;
967 let Inst{13-13} = 0b0;
968 let Inst{31-21} = 0b11111001011;
969 let isPredicated = 1;
970 let hasNewValue = 1;
971 let opNewValue = 0;
972 let BaseOpcode = "A2_xor";
974 def A2_pxortnew : HInst<
975 (outs IntRegs:$Rd32),
976 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
977 "if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
978 tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
979 let Inst{7-7} = 0b0;
980 let Inst{13-13} = 0b1;
981 let Inst{31-21} = 0b11111001011;
982 let isPredicated = 1;
983 let hasNewValue = 1;
984 let opNewValue = 0;
985 let isPredicatedNew = 1;
986 let BaseOpcode = "A2_xor";
988 def A2_roundsat : HInst<
989 (outs IntRegs:$Rd32),
990 (ins DoubleRegs:$Rss32),
991 "$Rd32 = round($Rss32):sat",
992 tc_d61dfdc3, TypeS_2op>, Enc_90cd8b {
993 let Inst{13-5} = 0b000000001;
994 let Inst{31-21} = 0b10001000110;
995 let hasNewValue = 1;
996 let opNewValue = 0;
997 let prefersSlot3 = 1;
998 let Defs = [USR_OVF];
1000 def A2_sat : HInst<
1001 (outs IntRegs:$Rd32),
1002 (ins DoubleRegs:$Rss32),
1003 "$Rd32 = sat($Rss32)",
1004 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
1005 let Inst{13-5} = 0b000000000;
1006 let Inst{31-21} = 0b10001000110;
1007 let hasNewValue = 1;
1008 let opNewValue = 0;
1009 let Defs = [USR_OVF];
1011 def A2_satb : HInst<
1012 (outs IntRegs:$Rd32),
1013 (ins IntRegs:$Rs32),
1014 "$Rd32 = satb($Rs32)",
1015 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
1016 let Inst{13-5} = 0b000000111;
1017 let Inst{31-21} = 0b10001100110;
1018 let hasNewValue = 1;
1019 let opNewValue = 0;
1020 let Defs = [USR_OVF];
1022 def A2_sath : HInst<
1023 (outs IntRegs:$Rd32),
1024 (ins IntRegs:$Rs32),
1025 "$Rd32 = sath($Rs32)",
1026 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
1027 let Inst{13-5} = 0b000000100;
1028 let Inst{31-21} = 0b10001100110;
1029 let hasNewValue = 1;
1030 let opNewValue = 0;
1031 let Defs = [USR_OVF];
1033 def A2_satub : HInst<
1034 (outs IntRegs:$Rd32),
1035 (ins IntRegs:$Rs32),
1036 "$Rd32 = satub($Rs32)",
1037 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
1038 let Inst{13-5} = 0b000000110;
1039 let Inst{31-21} = 0b10001100110;
1040 let hasNewValue = 1;
1041 let opNewValue = 0;
1042 let Defs = [USR_OVF];
1044 def A2_satuh : HInst<
1045 (outs IntRegs:$Rd32),
1046 (ins IntRegs:$Rs32),
1047 "$Rd32 = satuh($Rs32)",
1048 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
1049 let Inst{13-5} = 0b000000101;
1050 let Inst{31-21} = 0b10001100110;
1051 let hasNewValue = 1;
1052 let opNewValue = 0;
1053 let Defs = [USR_OVF];
1055 def A2_sub : HInst<
1056 (outs IntRegs:$Rd32),
1057 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1058 "$Rd32 = sub($Rt32,$Rs32)",
1059 tc_713b66bf, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel {
1060 let Inst{7-5} = 0b000;
1061 let Inst{13-13} = 0b0;
1062 let Inst{31-21} = 0b11110011001;
1063 let hasNewValue = 1;
1064 let opNewValue = 0;
1065 let BaseOpcode = "A2_sub";
1066 let CextOpcode = "A2_sub";
1067 let InputType = "reg";
1068 let isPredicable = 1;
1070 def A2_subh_h16_hh : HInst<
1071 (outs IntRegs:$Rd32),
1072 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1073 "$Rd32 = sub($Rt32.h,$Rs32.h):<<16",
1074 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
1075 let Inst{7-5} = 0b011;
1076 let Inst{13-13} = 0b0;
1077 let Inst{31-21} = 0b11010101011;
1078 let hasNewValue = 1;
1079 let opNewValue = 0;
1080 let prefersSlot3 = 1;
1082 def A2_subh_h16_hl : HInst<
1083 (outs IntRegs:$Rd32),
1084 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1085 "$Rd32 = sub($Rt32.h,$Rs32.l):<<16",
1086 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
1087 let Inst{7-5} = 0b010;
1088 let Inst{13-13} = 0b0;
1089 let Inst{31-21} = 0b11010101011;
1090 let hasNewValue = 1;
1091 let opNewValue = 0;
1092 let prefersSlot3 = 1;
1094 def A2_subh_h16_lh : HInst<
1095 (outs IntRegs:$Rd32),
1096 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1097 "$Rd32 = sub($Rt32.l,$Rs32.h):<<16",
1098 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
1099 let Inst{7-5} = 0b001;
1100 let Inst{13-13} = 0b0;
1101 let Inst{31-21} = 0b11010101011;
1102 let hasNewValue = 1;
1103 let opNewValue = 0;
1104 let prefersSlot3 = 1;
1106 def A2_subh_h16_ll : HInst<
1107 (outs IntRegs:$Rd32),
1108 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1109 "$Rd32 = sub($Rt32.l,$Rs32.l):<<16",
1110 tc_01d44cb2, TypeALU64>, Enc_bd6011 {
1111 let Inst{7-5} = 0b000;
1112 let Inst{13-13} = 0b0;
1113 let Inst{31-21} = 0b11010101011;
1114 let hasNewValue = 1;
1115 let opNewValue = 0;
1116 let prefersSlot3 = 1;
1118 def 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",
1122 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1123 let Inst{7-5} = 0b111;
1124 let Inst{13-13} = 0b0;
1125 let Inst{31-21} = 0b11010101011;
1126 let hasNewValue = 1;
1127 let opNewValue = 0;
1128 let prefersSlot3 = 1;
1129 let Defs = [USR_OVF];
1131 def 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",
1135 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1136 let Inst{7-5} = 0b110;
1137 let Inst{13-13} = 0b0;
1138 let Inst{31-21} = 0b11010101011;
1139 let hasNewValue = 1;
1140 let opNewValue = 0;
1141 let prefersSlot3 = 1;
1142 let Defs = [USR_OVF];
1144 def 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",
1148 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1149 let Inst{7-5} = 0b101;
1150 let Inst{13-13} = 0b0;
1151 let Inst{31-21} = 0b11010101011;
1152 let hasNewValue = 1;
1153 let opNewValue = 0;
1154 let prefersSlot3 = 1;
1155 let Defs = [USR_OVF];
1157 def 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",
1161 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1162 let Inst{7-5} = 0b100;
1163 let Inst{13-13} = 0b0;
1164 let Inst{31-21} = 0b11010101011;
1165 let hasNewValue = 1;
1166 let opNewValue = 0;
1167 let prefersSlot3 = 1;
1168 let Defs = [USR_OVF];
1170 def A2_subh_l16_hl : HInst<
1171 (outs IntRegs:$Rd32),
1172 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1173 "$Rd32 = sub($Rt32.l,$Rs32.h)",
1174 tc_f34c1c21, TypeALU64>, Enc_bd6011 {
1175 let Inst{7-5} = 0b010;
1176 let Inst{13-13} = 0b0;
1177 let Inst{31-21} = 0b11010101001;
1178 let hasNewValue = 1;
1179 let opNewValue = 0;
1180 let prefersSlot3 = 1;
1182 def A2_subh_l16_ll : HInst<
1183 (outs IntRegs:$Rd32),
1184 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1185 "$Rd32 = sub($Rt32.l,$Rs32.l)",
1186 tc_f34c1c21, TypeALU64>, Enc_bd6011 {
1187 let Inst{7-5} = 0b000;
1188 let Inst{13-13} = 0b0;
1189 let Inst{31-21} = 0b11010101001;
1190 let hasNewValue = 1;
1191 let opNewValue = 0;
1192 let prefersSlot3 = 1;
1194 def A2_subh_l16_sat_hl : HInst<
1195 (outs IntRegs:$Rd32),
1196 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1197 "$Rd32 = sub($Rt32.l,$Rs32.h):sat",
1198 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1199 let Inst{7-5} = 0b110;
1200 let Inst{13-13} = 0b0;
1201 let Inst{31-21} = 0b11010101001;
1202 let hasNewValue = 1;
1203 let opNewValue = 0;
1204 let prefersSlot3 = 1;
1205 let Defs = [USR_OVF];
1207 def A2_subh_l16_sat_ll : HInst<
1208 (outs IntRegs:$Rd32),
1209 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1210 "$Rd32 = sub($Rt32.l,$Rs32.l):sat",
1211 tc_8a825db2, TypeALU64>, Enc_bd6011 {
1212 let Inst{7-5} = 0b100;
1213 let Inst{13-13} = 0b0;
1214 let Inst{31-21} = 0b11010101001;
1215 let hasNewValue = 1;
1216 let opNewValue = 0;
1217 let prefersSlot3 = 1;
1218 let Defs = [USR_OVF];
1220 def A2_subp : HInst<
1221 (outs DoubleRegs:$Rdd32),
1222 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1223 "$Rdd32 = sub($Rtt32,$Rss32)",
1224 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
1225 let Inst{7-5} = 0b111;
1226 let Inst{13-13} = 0b0;
1227 let Inst{31-21} = 0b11010011001;
1229 def A2_subri : HInst<
1230 (outs IntRegs:$Rd32),
1231 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
1232 "$Rd32 = sub(#$Ii,$Rs32)",
1233 tc_713b66bf, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel {
1234 let Inst{31-22} = 0b0111011001;
1235 let hasNewValue = 1;
1236 let opNewValue = 0;
1237 let CextOpcode = "A2_sub";
1238 let InputType = "imm";
1239 let isExtendable = 1;
1240 let opExtendable = 1;
1241 let isExtentSigned = 1;
1242 let opExtentBits = 10;
1243 let opExtentAlign = 0;
1245 def A2_subsat : HInst<
1246 (outs IntRegs:$Rd32),
1247 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1248 "$Rd32 = sub($Rt32,$Rs32):sat",
1249 tc_95a33176, TypeALU32_3op>, Enc_bd6011 {
1250 let Inst{7-5} = 0b000;
1251 let Inst{13-13} = 0b0;
1252 let Inst{31-21} = 0b11110110110;
1253 let hasNewValue = 1;
1254 let opNewValue = 0;
1255 let prefersSlot3 = 1;
1256 let Defs = [USR_OVF];
1257 let InputType = "reg";
1259 def A2_svaddh : HInst<
1260 (outs IntRegs:$Rd32),
1261 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1262 "$Rd32 = vaddh($Rs32,$Rt32)",
1263 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be {
1264 let Inst{7-5} = 0b000;
1265 let Inst{13-13} = 0b0;
1266 let Inst{31-21} = 0b11110110000;
1267 let hasNewValue = 1;
1268 let opNewValue = 0;
1269 let InputType = "reg";
1270 let isCommutable = 1;
1272 def A2_svaddhs : HInst<
1273 (outs IntRegs:$Rd32),
1274 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1275 "$Rd32 = vaddh($Rs32,$Rt32):sat",
1276 tc_95a33176, TypeALU32_3op>, Enc_5ab2be {
1277 let Inst{7-5} = 0b000;
1278 let Inst{13-13} = 0b0;
1279 let Inst{31-21} = 0b11110110001;
1280 let hasNewValue = 1;
1281 let opNewValue = 0;
1282 let prefersSlot3 = 1;
1283 let Defs = [USR_OVF];
1284 let InputType = "reg";
1285 let isCommutable = 1;
1287 def A2_svadduhs : HInst<
1288 (outs IntRegs:$Rd32),
1289 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1290 "$Rd32 = vadduh($Rs32,$Rt32):sat",
1291 tc_95a33176, TypeALU32_3op>, Enc_5ab2be {
1292 let Inst{7-5} = 0b000;
1293 let Inst{13-13} = 0b0;
1294 let Inst{31-21} = 0b11110110011;
1295 let hasNewValue = 1;
1296 let opNewValue = 0;
1297 let prefersSlot3 = 1;
1298 let Defs = [USR_OVF];
1299 let InputType = "reg";
1300 let isCommutable = 1;
1302 def A2_svavgh : HInst<
1303 (outs IntRegs:$Rd32),
1304 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1305 "$Rd32 = vavgh($Rs32,$Rt32)",
1306 tc_8b5bd4f5, TypeALU32_3op>, Enc_5ab2be {
1307 let Inst{7-5} = 0b000;
1308 let Inst{13-13} = 0b0;
1309 let Inst{31-21} = 0b11110111000;
1310 let hasNewValue = 1;
1311 let opNewValue = 0;
1312 let prefersSlot3 = 1;
1313 let InputType = "reg";
1314 let isCommutable = 1;
1316 def A2_svavghs : HInst<
1317 (outs IntRegs:$Rd32),
1318 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1319 "$Rd32 = vavgh($Rs32,$Rt32):rnd",
1320 tc_84a7500d, TypeALU32_3op>, Enc_5ab2be {
1321 let Inst{7-5} = 0b000;
1322 let Inst{13-13} = 0b0;
1323 let Inst{31-21} = 0b11110111001;
1324 let hasNewValue = 1;
1325 let opNewValue = 0;
1326 let prefersSlot3 = 1;
1327 let InputType = "reg";
1328 let isCommutable = 1;
1330 def A2_svnavgh : HInst<
1331 (outs IntRegs:$Rd32),
1332 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1333 "$Rd32 = vnavgh($Rt32,$Rs32)",
1334 tc_8b5bd4f5, TypeALU32_3op>, Enc_bd6011 {
1335 let Inst{7-5} = 0b000;
1336 let Inst{13-13} = 0b0;
1337 let Inst{31-21} = 0b11110111011;
1338 let hasNewValue = 1;
1339 let opNewValue = 0;
1340 let prefersSlot3 = 1;
1341 let InputType = "reg";
1343 def A2_svsubh : HInst<
1344 (outs IntRegs:$Rd32),
1345 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1346 "$Rd32 = vsubh($Rt32,$Rs32)",
1347 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
1348 let Inst{7-5} = 0b000;
1349 let Inst{13-13} = 0b0;
1350 let Inst{31-21} = 0b11110110100;
1351 let hasNewValue = 1;
1352 let opNewValue = 0;
1353 let InputType = "reg";
1355 def A2_svsubhs : HInst<
1356 (outs IntRegs:$Rd32),
1357 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1358 "$Rd32 = vsubh($Rt32,$Rs32):sat",
1359 tc_95a33176, TypeALU32_3op>, Enc_bd6011 {
1360 let Inst{7-5} = 0b000;
1361 let Inst{13-13} = 0b0;
1362 let Inst{31-21} = 0b11110110101;
1363 let hasNewValue = 1;
1364 let opNewValue = 0;
1365 let prefersSlot3 = 1;
1366 let Defs = [USR_OVF];
1367 let InputType = "reg";
1369 def A2_svsubuhs : HInst<
1370 (outs IntRegs:$Rd32),
1371 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1372 "$Rd32 = vsubuh($Rt32,$Rs32):sat",
1373 tc_95a33176, TypeALU32_3op>, Enc_bd6011 {
1374 let Inst{7-5} = 0b000;
1375 let Inst{13-13} = 0b0;
1376 let Inst{31-21} = 0b11110110111;
1377 let hasNewValue = 1;
1378 let opNewValue = 0;
1379 let prefersSlot3 = 1;
1380 let Defs = [USR_OVF];
1381 let InputType = "reg";
1383 def A2_swiz : HInst<
1384 (outs IntRegs:$Rd32),
1385 (ins IntRegs:$Rs32),
1386 "$Rd32 = swiz($Rs32)",
1387 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
1388 let Inst{13-5} = 0b000000111;
1389 let Inst{31-21} = 0b10001100100;
1390 let hasNewValue = 1;
1391 let opNewValue = 0;
1393 def A2_sxtb : HInst<
1394 (outs IntRegs:$Rd32),
1395 (ins IntRegs:$Rs32),
1396 "$Rd32 = sxtb($Rs32)",
1397 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1398 let Inst{13-5} = 0b000000000;
1399 let Inst{31-21} = 0b01110000101;
1400 let hasNewValue = 1;
1401 let opNewValue = 0;
1402 let BaseOpcode = "A2_sxtb";
1403 let isPredicable = 1;
1405 def A2_sxth : HInst<
1406 (outs IntRegs:$Rd32),
1407 (ins IntRegs:$Rs32),
1408 "$Rd32 = sxth($Rs32)",
1409 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1410 let Inst{13-5} = 0b000000000;
1411 let Inst{31-21} = 0b01110000111;
1412 let hasNewValue = 1;
1413 let opNewValue = 0;
1414 let BaseOpcode = "A2_sxth";
1415 let isPredicable = 1;
1417 def A2_sxtw : HInst<
1418 (outs DoubleRegs:$Rdd32),
1419 (ins IntRegs:$Rs32),
1420 "$Rdd32 = sxtw($Rs32)",
1421 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
1422 let Inst{13-5} = 0b000000000;
1423 let Inst{31-21} = 0b10000100010;
1425 def A2_tfr : HInst<
1426 (outs IntRegs:$Rd32),
1427 (ins IntRegs:$Rs32),
1428 "$Rd32 = $Rs32",
1429 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1430 let Inst{13-5} = 0b000000000;
1431 let Inst{31-21} = 0b01110000011;
1432 let hasNewValue = 1;
1433 let opNewValue = 0;
1434 let BaseOpcode = "A2_tfr";
1435 let InputType = "reg";
1436 let isPredicable = 1;
1438 def A2_tfrcrr : HInst<
1439 (outs IntRegs:$Rd32),
1440 (ins CtrRegs:$Cs32),
1441 "$Rd32 = $Cs32",
1442 tc_7476d766, TypeCR>, Enc_0cb018 {
1443 let Inst{13-5} = 0b000000000;
1444 let Inst{31-21} = 0b01101010000;
1445 let hasNewValue = 1;
1446 let opNewValue = 0;
1448 def A2_tfrf : HInst<
1449 (outs IntRegs:$Rd32),
1450 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1451 "if (!$Pu4) $Rd32 = $Rs32",
1452 tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel {
1453 let isPredicated = 1;
1454 let isPredicatedFalse = 1;
1455 let hasNewValue = 1;
1456 let opNewValue = 0;
1457 let BaseOpcode = "A2_tfr";
1458 let CextOpcode = "A2_tfr";
1459 let InputType = "reg";
1460 let isPseudo = 1;
1461 let isCodeGenOnly = 1;
1463 def A2_tfrfnew : HInst<
1464 (outs IntRegs:$Rd32),
1465 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1466 "if (!$Pu4.new) $Rd32 = $Rs32",
1467 tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel {
1468 let isPredicated = 1;
1469 let isPredicatedFalse = 1;
1470 let hasNewValue = 1;
1471 let opNewValue = 0;
1472 let isPredicatedNew = 1;
1473 let BaseOpcode = "A2_tfr";
1474 let CextOpcode = "A2_tfr";
1475 let InputType = "reg";
1476 let isPseudo = 1;
1477 let isCodeGenOnly = 1;
1479 def A2_tfrih : HInst<
1480 (outs IntRegs:$Rx32),
1481 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1482 "$Rx32.h = #$Ii",
1483 tc_713b66bf, TypeALU32_2op>, Enc_51436c {
1484 let Inst{21-21} = 0b1;
1485 let Inst{31-24} = 0b01110010;
1486 let hasNewValue = 1;
1487 let opNewValue = 0;
1488 let Constraints = "$Rx32 = $Rx32in";
1490 def A2_tfril : HInst<
1491 (outs IntRegs:$Rx32),
1492 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1493 "$Rx32.l = #$Ii",
1494 tc_713b66bf, TypeALU32_2op>, Enc_51436c {
1495 let Inst{21-21} = 0b1;
1496 let Inst{31-24} = 0b01110001;
1497 let hasNewValue = 1;
1498 let opNewValue = 0;
1499 let Constraints = "$Rx32 = $Rx32in";
1501 def A2_tfrp : HInst<
1502 (outs DoubleRegs:$Rdd32),
1503 (ins DoubleRegs:$Rss32),
1504 "$Rdd32 = $Rss32",
1505 tc_713b66bf, TypeALU32_2op>, PredNewRel {
1506 let BaseOpcode = "A2_tfrp";
1507 let isPredicable = 1;
1508 let isPseudo = 1;
1510 def A2_tfrpf : HInst<
1511 (outs DoubleRegs:$Rdd32),
1512 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1513 "if (!$Pu4) $Rdd32 = $Rss32",
1514 tc_713b66bf, TypeALU32_2op>, PredNewRel {
1515 let isPredicated = 1;
1516 let isPredicatedFalse = 1;
1517 let BaseOpcode = "A2_tfrp";
1518 let isPseudo = 1;
1520 def A2_tfrpfnew : HInst<
1521 (outs DoubleRegs:$Rdd32),
1522 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1523 "if (!$Pu4.new) $Rdd32 = $Rss32",
1524 tc_86173609, TypeALU32_2op>, PredNewRel {
1525 let isPredicated = 1;
1526 let isPredicatedFalse = 1;
1527 let isPredicatedNew = 1;
1528 let BaseOpcode = "A2_tfrp";
1529 let isPseudo = 1;
1531 def A2_tfrpi : HInst<
1532 (outs DoubleRegs:$Rdd32),
1533 (ins s8_0Imm:$Ii),
1534 "$Rdd32 = #$Ii",
1535 tc_713b66bf, TypeALU64> {
1536 let isAsCheapAsAMove = 1;
1537 let isMoveImm = 1;
1538 let isReMaterializable = 1;
1539 let isPseudo = 1;
1541 def A2_tfrpt : HInst<
1542 (outs DoubleRegs:$Rdd32),
1543 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1544 "if ($Pu4) $Rdd32 = $Rss32",
1545 tc_713b66bf, TypeALU32_2op>, PredNewRel {
1546 let isPredicated = 1;
1547 let BaseOpcode = "A2_tfrp";
1548 let isPseudo = 1;
1550 def A2_tfrptnew : HInst<
1551 (outs DoubleRegs:$Rdd32),
1552 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1553 "if ($Pu4.new) $Rdd32 = $Rss32",
1554 tc_86173609, TypeALU32_2op>, PredNewRel {
1555 let isPredicated = 1;
1556 let isPredicatedNew = 1;
1557 let BaseOpcode = "A2_tfrp";
1558 let isPseudo = 1;
1560 def A2_tfrrcr : HInst<
1561 (outs CtrRegs:$Cd32),
1562 (ins IntRegs:$Rs32),
1563 "$Cd32 = $Rs32",
1564 tc_49fdfd4b, TypeCR>, Enc_bd811a {
1565 let Inst{13-5} = 0b000000000;
1566 let Inst{31-21} = 0b01100010001;
1567 let hasNewValue = 1;
1568 let opNewValue = 0;
1570 def A2_tfrsi : HInst<
1571 (outs IntRegs:$Rd32),
1572 (ins s32_0Imm:$Ii),
1573 "$Rd32 = #$Ii",
1574 tc_c57d9f39, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel {
1575 let Inst{21-21} = 0b0;
1576 let Inst{31-24} = 0b01111000;
1577 let hasNewValue = 1;
1578 let opNewValue = 0;
1579 let BaseOpcode = "A2_tfrsi";
1580 let CextOpcode = "A2_tfr";
1581 let InputType = "imm";
1582 let isAsCheapAsAMove = 1;
1583 let isMoveImm = 1;
1584 let isPredicable = 1;
1585 let isReMaterializable = 1;
1586 let isExtendable = 1;
1587 let opExtendable = 1;
1588 let isExtentSigned = 1;
1589 let opExtentBits = 16;
1590 let opExtentAlign = 0;
1592 def A2_tfrt : HInst<
1593 (outs IntRegs:$Rd32),
1594 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1595 "if ($Pu4) $Rd32 = $Rs32",
1596 tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel {
1597 let isPredicated = 1;
1598 let hasNewValue = 1;
1599 let opNewValue = 0;
1600 let BaseOpcode = "A2_tfr";
1601 let CextOpcode = "A2_tfr";
1602 let InputType = "reg";
1603 let isPseudo = 1;
1604 let isCodeGenOnly = 1;
1606 def A2_tfrtnew : HInst<
1607 (outs IntRegs:$Rd32),
1608 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1609 "if ($Pu4.new) $Rd32 = $Rs32",
1610 tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel {
1611 let isPredicated = 1;
1612 let hasNewValue = 1;
1613 let opNewValue = 0;
1614 let isPredicatedNew = 1;
1615 let BaseOpcode = "A2_tfr";
1616 let CextOpcode = "A2_tfr";
1617 let InputType = "reg";
1618 let isPseudo = 1;
1619 let isCodeGenOnly = 1;
1621 def A2_vabsh : HInst<
1622 (outs DoubleRegs:$Rdd32),
1623 (ins DoubleRegs:$Rss32),
1624 "$Rdd32 = vabsh($Rss32)",
1625 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
1626 let Inst{13-5} = 0b000000100;
1627 let Inst{31-21} = 0b10000000010;
1628 let prefersSlot3 = 1;
1630 def A2_vabshsat : HInst<
1631 (outs DoubleRegs:$Rdd32),
1632 (ins DoubleRegs:$Rss32),
1633 "$Rdd32 = vabsh($Rss32):sat",
1634 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
1635 let Inst{13-5} = 0b000000101;
1636 let Inst{31-21} = 0b10000000010;
1637 let prefersSlot3 = 1;
1638 let Defs = [USR_OVF];
1640 def A2_vabsw : HInst<
1641 (outs DoubleRegs:$Rdd32),
1642 (ins DoubleRegs:$Rss32),
1643 "$Rdd32 = vabsw($Rss32)",
1644 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
1645 let Inst{13-5} = 0b000000110;
1646 let Inst{31-21} = 0b10000000010;
1647 let prefersSlot3 = 1;
1649 def A2_vabswsat : HInst<
1650 (outs DoubleRegs:$Rdd32),
1651 (ins DoubleRegs:$Rss32),
1652 "$Rdd32 = vabsw($Rss32):sat",
1653 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
1654 let Inst{13-5} = 0b000000111;
1655 let Inst{31-21} = 0b10000000010;
1656 let prefersSlot3 = 1;
1657 let Defs = [USR_OVF];
1659 def A2_vaddb_map : HInst<
1660 (outs DoubleRegs:$Rdd32),
1661 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1662 "$Rdd32 = vaddb($Rss32,$Rtt32)",
1663 tc_5da50c4b, TypeMAPPING> {
1664 let isPseudo = 1;
1665 let isCodeGenOnly = 1;
1667 def A2_vaddh : HInst<
1668 (outs DoubleRegs:$Rdd32),
1669 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1670 "$Rdd32 = vaddh($Rss32,$Rtt32)",
1671 tc_5da50c4b, TypeALU64>, Enc_a56825 {
1672 let Inst{7-5} = 0b010;
1673 let Inst{13-13} = 0b0;
1674 let Inst{31-21} = 0b11010011000;
1676 def A2_vaddhs : HInst<
1677 (outs DoubleRegs:$Rdd32),
1678 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1679 "$Rdd32 = vaddh($Rss32,$Rtt32):sat",
1680 tc_8a825db2, TypeALU64>, Enc_a56825 {
1681 let Inst{7-5} = 0b011;
1682 let Inst{13-13} = 0b0;
1683 let Inst{31-21} = 0b11010011000;
1684 let prefersSlot3 = 1;
1685 let Defs = [USR_OVF];
1687 def A2_vaddub : HInst<
1688 (outs DoubleRegs:$Rdd32),
1689 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1690 "$Rdd32 = vaddub($Rss32,$Rtt32)",
1691 tc_5da50c4b, TypeALU64>, Enc_a56825 {
1692 let Inst{7-5} = 0b000;
1693 let Inst{13-13} = 0b0;
1694 let Inst{31-21} = 0b11010011000;
1696 def A2_vaddubs : HInst<
1697 (outs DoubleRegs:$Rdd32),
1698 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1699 "$Rdd32 = vaddub($Rss32,$Rtt32):sat",
1700 tc_8a825db2, TypeALU64>, Enc_a56825 {
1701 let Inst{7-5} = 0b001;
1702 let Inst{13-13} = 0b0;
1703 let Inst{31-21} = 0b11010011000;
1704 let prefersSlot3 = 1;
1705 let Defs = [USR_OVF];
1707 def A2_vadduhs : HInst<
1708 (outs DoubleRegs:$Rdd32),
1709 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1710 "$Rdd32 = vadduh($Rss32,$Rtt32):sat",
1711 tc_8a825db2, TypeALU64>, Enc_a56825 {
1712 let Inst{7-5} = 0b100;
1713 let Inst{13-13} = 0b0;
1714 let Inst{31-21} = 0b11010011000;
1715 let prefersSlot3 = 1;
1716 let Defs = [USR_OVF];
1718 def A2_vaddw : HInst<
1719 (outs DoubleRegs:$Rdd32),
1720 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1721 "$Rdd32 = vaddw($Rss32,$Rtt32)",
1722 tc_5da50c4b, TypeALU64>, Enc_a56825 {
1723 let Inst{7-5} = 0b101;
1724 let Inst{13-13} = 0b0;
1725 let Inst{31-21} = 0b11010011000;
1727 def A2_vaddws : HInst<
1728 (outs DoubleRegs:$Rdd32),
1729 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1730 "$Rdd32 = vaddw($Rss32,$Rtt32):sat",
1731 tc_8a825db2, TypeALU64>, Enc_a56825 {
1732 let Inst{7-5} = 0b110;
1733 let Inst{13-13} = 0b0;
1734 let Inst{31-21} = 0b11010011000;
1735 let prefersSlot3 = 1;
1736 let Defs = [USR_OVF];
1738 def A2_vavgh : HInst<
1739 (outs DoubleRegs:$Rdd32),
1740 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1741 "$Rdd32 = vavgh($Rss32,$Rtt32)",
1742 tc_f098b237, TypeALU64>, Enc_a56825 {
1743 let Inst{7-5} = 0b010;
1744 let Inst{13-13} = 0b0;
1745 let Inst{31-21} = 0b11010011010;
1746 let prefersSlot3 = 1;
1748 def A2_vavghcr : HInst<
1749 (outs DoubleRegs:$Rdd32),
1750 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1751 "$Rdd32 = vavgh($Rss32,$Rtt32):crnd",
1752 tc_0dfac0a7, TypeALU64>, Enc_a56825 {
1753 let Inst{7-5} = 0b100;
1754 let Inst{13-13} = 0b0;
1755 let Inst{31-21} = 0b11010011010;
1756 let prefersSlot3 = 1;
1758 def A2_vavghr : HInst<
1759 (outs DoubleRegs:$Rdd32),
1760 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1761 "$Rdd32 = vavgh($Rss32,$Rtt32):rnd",
1762 tc_20131976, TypeALU64>, Enc_a56825 {
1763 let Inst{7-5} = 0b011;
1764 let Inst{13-13} = 0b0;
1765 let Inst{31-21} = 0b11010011010;
1766 let prefersSlot3 = 1;
1768 def A2_vavgub : HInst<
1769 (outs DoubleRegs:$Rdd32),
1770 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1771 "$Rdd32 = vavgub($Rss32,$Rtt32)",
1772 tc_f098b237, TypeALU64>, Enc_a56825 {
1773 let Inst{7-5} = 0b000;
1774 let Inst{13-13} = 0b0;
1775 let Inst{31-21} = 0b11010011010;
1776 let prefersSlot3 = 1;
1778 def A2_vavgubr : HInst<
1779 (outs DoubleRegs:$Rdd32),
1780 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1781 "$Rdd32 = vavgub($Rss32,$Rtt32):rnd",
1782 tc_20131976, TypeALU64>, Enc_a56825 {
1783 let Inst{7-5} = 0b001;
1784 let Inst{13-13} = 0b0;
1785 let Inst{31-21} = 0b11010011010;
1786 let prefersSlot3 = 1;
1788 def A2_vavguh : HInst<
1789 (outs DoubleRegs:$Rdd32),
1790 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1791 "$Rdd32 = vavguh($Rss32,$Rtt32)",
1792 tc_f098b237, TypeALU64>, Enc_a56825 {
1793 let Inst{7-5} = 0b101;
1794 let Inst{13-13} = 0b0;
1795 let Inst{31-21} = 0b11010011010;
1796 let prefersSlot3 = 1;
1798 def A2_vavguhr : HInst<
1799 (outs DoubleRegs:$Rdd32),
1800 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1801 "$Rdd32 = vavguh($Rss32,$Rtt32):rnd",
1802 tc_20131976, TypeALU64>, Enc_a56825 {
1803 let Inst{7-5} = 0b110;
1804 let Inst{13-13} = 0b0;
1805 let Inst{31-21} = 0b11010011010;
1806 let prefersSlot3 = 1;
1808 def A2_vavguw : HInst<
1809 (outs DoubleRegs:$Rdd32),
1810 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1811 "$Rdd32 = vavguw($Rss32,$Rtt32)",
1812 tc_f098b237, TypeALU64>, Enc_a56825 {
1813 let Inst{7-5} = 0b011;
1814 let Inst{13-13} = 0b0;
1815 let Inst{31-21} = 0b11010011011;
1816 let prefersSlot3 = 1;
1818 def A2_vavguwr : HInst<
1819 (outs DoubleRegs:$Rdd32),
1820 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1821 "$Rdd32 = vavguw($Rss32,$Rtt32):rnd",
1822 tc_20131976, TypeALU64>, Enc_a56825 {
1823 let Inst{7-5} = 0b100;
1824 let Inst{13-13} = 0b0;
1825 let Inst{31-21} = 0b11010011011;
1826 let prefersSlot3 = 1;
1828 def A2_vavgw : HInst<
1829 (outs DoubleRegs:$Rdd32),
1830 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1831 "$Rdd32 = vavgw($Rss32,$Rtt32)",
1832 tc_f098b237, TypeALU64>, Enc_a56825 {
1833 let Inst{7-5} = 0b000;
1834 let Inst{13-13} = 0b0;
1835 let Inst{31-21} = 0b11010011011;
1836 let prefersSlot3 = 1;
1838 def A2_vavgwcr : HInst<
1839 (outs DoubleRegs:$Rdd32),
1840 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1841 "$Rdd32 = vavgw($Rss32,$Rtt32):crnd",
1842 tc_0dfac0a7, TypeALU64>, Enc_a56825 {
1843 let Inst{7-5} = 0b010;
1844 let Inst{13-13} = 0b0;
1845 let Inst{31-21} = 0b11010011011;
1846 let prefersSlot3 = 1;
1848 def A2_vavgwr : HInst<
1849 (outs DoubleRegs:$Rdd32),
1850 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1851 "$Rdd32 = vavgw($Rss32,$Rtt32):rnd",
1852 tc_20131976, TypeALU64>, Enc_a56825 {
1853 let Inst{7-5} = 0b001;
1854 let Inst{13-13} = 0b0;
1855 let Inst{31-21} = 0b11010011011;
1856 let prefersSlot3 = 1;
1858 def A2_vcmpbeq : HInst<
1859 (outs PredRegs:$Pd4),
1860 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1861 "$Pd4 = vcmpb.eq($Rss32,$Rtt32)",
1862 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1863 let Inst{7-2} = 0b110000;
1864 let Inst{13-13} = 0b0;
1865 let Inst{31-21} = 0b11010010000;
1867 def A2_vcmpbgtu : HInst<
1868 (outs PredRegs:$Pd4),
1869 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1870 "$Pd4 = vcmpb.gtu($Rss32,$Rtt32)",
1871 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1872 let Inst{7-2} = 0b111000;
1873 let Inst{13-13} = 0b0;
1874 let Inst{31-21} = 0b11010010000;
1876 def A2_vcmpheq : HInst<
1877 (outs PredRegs:$Pd4),
1878 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1879 "$Pd4 = vcmph.eq($Rss32,$Rtt32)",
1880 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1881 let Inst{7-2} = 0b011000;
1882 let Inst{13-13} = 0b0;
1883 let Inst{31-21} = 0b11010010000;
1885 def A2_vcmphgt : HInst<
1886 (outs PredRegs:$Pd4),
1887 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1888 "$Pd4 = vcmph.gt($Rss32,$Rtt32)",
1889 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1890 let Inst{7-2} = 0b100000;
1891 let Inst{13-13} = 0b0;
1892 let Inst{31-21} = 0b11010010000;
1894 def A2_vcmphgtu : HInst<
1895 (outs PredRegs:$Pd4),
1896 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1897 "$Pd4 = vcmph.gtu($Rss32,$Rtt32)",
1898 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1899 let Inst{7-2} = 0b101000;
1900 let Inst{13-13} = 0b0;
1901 let Inst{31-21} = 0b11010010000;
1903 def A2_vcmpweq : HInst<
1904 (outs PredRegs:$Pd4),
1905 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1906 "$Pd4 = vcmpw.eq($Rss32,$Rtt32)",
1907 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1908 let Inst{7-2} = 0b000000;
1909 let Inst{13-13} = 0b0;
1910 let Inst{31-21} = 0b11010010000;
1912 def A2_vcmpwgt : HInst<
1913 (outs PredRegs:$Pd4),
1914 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1915 "$Pd4 = vcmpw.gt($Rss32,$Rtt32)",
1916 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1917 let Inst{7-2} = 0b001000;
1918 let Inst{13-13} = 0b0;
1919 let Inst{31-21} = 0b11010010000;
1921 def A2_vcmpwgtu : HInst<
1922 (outs PredRegs:$Pd4),
1923 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1924 "$Pd4 = vcmpw.gtu($Rss32,$Rtt32)",
1925 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
1926 let Inst{7-2} = 0b010000;
1927 let Inst{13-13} = 0b0;
1928 let Inst{31-21} = 0b11010010000;
1930 def A2_vconj : HInst<
1931 (outs DoubleRegs:$Rdd32),
1932 (ins DoubleRegs:$Rss32),
1933 "$Rdd32 = vconj($Rss32):sat",
1934 tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb {
1935 let Inst{13-5} = 0b000000111;
1936 let Inst{31-21} = 0b10000000100;
1937 let prefersSlot3 = 1;
1938 let Defs = [USR_OVF];
1940 def A2_vmaxb : HInst<
1941 (outs DoubleRegs:$Rdd32),
1942 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1943 "$Rdd32 = vmaxb($Rtt32,$Rss32)",
1944 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1945 let Inst{7-5} = 0b110;
1946 let Inst{13-13} = 0b0;
1947 let Inst{31-21} = 0b11010011110;
1948 let prefersSlot3 = 1;
1950 def A2_vmaxh : HInst<
1951 (outs DoubleRegs:$Rdd32),
1952 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1953 "$Rdd32 = vmaxh($Rtt32,$Rss32)",
1954 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1955 let Inst{7-5} = 0b001;
1956 let Inst{13-13} = 0b0;
1957 let Inst{31-21} = 0b11010011110;
1958 let prefersSlot3 = 1;
1960 def A2_vmaxub : HInst<
1961 (outs DoubleRegs:$Rdd32),
1962 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1963 "$Rdd32 = vmaxub($Rtt32,$Rss32)",
1964 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1965 let Inst{7-5} = 0b000;
1966 let Inst{13-13} = 0b0;
1967 let Inst{31-21} = 0b11010011110;
1968 let prefersSlot3 = 1;
1970 def A2_vmaxuh : HInst<
1971 (outs DoubleRegs:$Rdd32),
1972 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1973 "$Rdd32 = vmaxuh($Rtt32,$Rss32)",
1974 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1975 let Inst{7-5} = 0b010;
1976 let Inst{13-13} = 0b0;
1977 let Inst{31-21} = 0b11010011110;
1978 let prefersSlot3 = 1;
1980 def A2_vmaxuw : HInst<
1981 (outs DoubleRegs:$Rdd32),
1982 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1983 "$Rdd32 = vmaxuw($Rtt32,$Rss32)",
1984 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1985 let Inst{7-5} = 0b101;
1986 let Inst{13-13} = 0b0;
1987 let Inst{31-21} = 0b11010011101;
1988 let prefersSlot3 = 1;
1990 def A2_vmaxw : HInst<
1991 (outs DoubleRegs:$Rdd32),
1992 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1993 "$Rdd32 = vmaxw($Rtt32,$Rss32)",
1994 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
1995 let Inst{7-5} = 0b011;
1996 let Inst{13-13} = 0b0;
1997 let Inst{31-21} = 0b11010011110;
1998 let prefersSlot3 = 1;
2000 def A2_vminb : HInst<
2001 (outs DoubleRegs:$Rdd32),
2002 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2003 "$Rdd32 = vminb($Rtt32,$Rss32)",
2004 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2005 let Inst{7-5} = 0b111;
2006 let Inst{13-13} = 0b0;
2007 let Inst{31-21} = 0b11010011110;
2008 let prefersSlot3 = 1;
2010 def A2_vminh : HInst<
2011 (outs DoubleRegs:$Rdd32),
2012 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2013 "$Rdd32 = vminh($Rtt32,$Rss32)",
2014 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2015 let Inst{7-5} = 0b001;
2016 let Inst{13-13} = 0b0;
2017 let Inst{31-21} = 0b11010011101;
2018 let prefersSlot3 = 1;
2020 def A2_vminub : HInst<
2021 (outs DoubleRegs:$Rdd32),
2022 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2023 "$Rdd32 = vminub($Rtt32,$Rss32)",
2024 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2025 let Inst{7-5} = 0b000;
2026 let Inst{13-13} = 0b0;
2027 let Inst{31-21} = 0b11010011101;
2028 let prefersSlot3 = 1;
2030 def A2_vminuh : HInst<
2031 (outs DoubleRegs:$Rdd32),
2032 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2033 "$Rdd32 = vminuh($Rtt32,$Rss32)",
2034 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2035 let Inst{7-5} = 0b010;
2036 let Inst{13-13} = 0b0;
2037 let Inst{31-21} = 0b11010011101;
2038 let prefersSlot3 = 1;
2040 def A2_vminuw : HInst<
2041 (outs DoubleRegs:$Rdd32),
2042 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2043 "$Rdd32 = vminuw($Rtt32,$Rss32)",
2044 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2045 let Inst{7-5} = 0b100;
2046 let Inst{13-13} = 0b0;
2047 let Inst{31-21} = 0b11010011101;
2048 let prefersSlot3 = 1;
2050 def A2_vminw : HInst<
2051 (outs DoubleRegs:$Rdd32),
2052 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2053 "$Rdd32 = vminw($Rtt32,$Rss32)",
2054 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2055 let Inst{7-5} = 0b011;
2056 let Inst{13-13} = 0b0;
2057 let Inst{31-21} = 0b11010011101;
2058 let prefersSlot3 = 1;
2060 def A2_vnavgh : HInst<
2061 (outs DoubleRegs:$Rdd32),
2062 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2063 "$Rdd32 = vnavgh($Rtt32,$Rss32)",
2064 tc_f098b237, TypeALU64>, Enc_ea23e4 {
2065 let Inst{7-5} = 0b000;
2066 let Inst{13-13} = 0b0;
2067 let Inst{31-21} = 0b11010011100;
2068 let prefersSlot3 = 1;
2070 def A2_vnavghcr : HInst<
2071 (outs DoubleRegs:$Rdd32),
2072 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2073 "$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat",
2074 tc_0dfac0a7, TypeALU64>, Enc_ea23e4 {
2075 let Inst{7-5} = 0b010;
2076 let Inst{13-13} = 0b0;
2077 let Inst{31-21} = 0b11010011100;
2078 let prefersSlot3 = 1;
2079 let Defs = [USR_OVF];
2081 def A2_vnavghr : HInst<
2082 (outs DoubleRegs:$Rdd32),
2083 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2084 "$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat",
2085 tc_0dfac0a7, TypeALU64>, Enc_ea23e4 {
2086 let Inst{7-5} = 0b001;
2087 let Inst{13-13} = 0b0;
2088 let Inst{31-21} = 0b11010011100;
2089 let prefersSlot3 = 1;
2090 let Defs = [USR_OVF];
2092 def A2_vnavgw : HInst<
2093 (outs DoubleRegs:$Rdd32),
2094 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2095 "$Rdd32 = vnavgw($Rtt32,$Rss32)",
2096 tc_f098b237, TypeALU64>, Enc_ea23e4 {
2097 let Inst{7-5} = 0b011;
2098 let Inst{13-13} = 0b0;
2099 let Inst{31-21} = 0b11010011100;
2100 let prefersSlot3 = 1;
2102 def A2_vnavgwcr : HInst<
2103 (outs DoubleRegs:$Rdd32),
2104 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2105 "$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat",
2106 tc_0dfac0a7, TypeALU64>, Enc_ea23e4 {
2107 let Inst{7-5} = 0b110;
2108 let Inst{13-13} = 0b0;
2109 let Inst{31-21} = 0b11010011100;
2110 let prefersSlot3 = 1;
2111 let Defs = [USR_OVF];
2113 def A2_vnavgwr : HInst<
2114 (outs DoubleRegs:$Rdd32),
2115 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2116 "$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat",
2117 tc_0dfac0a7, TypeALU64>, Enc_ea23e4 {
2118 let Inst{7-5} = 0b100;
2119 let Inst{13-13} = 0b0;
2120 let Inst{31-21} = 0b11010011100;
2121 let prefersSlot3 = 1;
2122 let Defs = [USR_OVF];
2124 def A2_vraddub : HInst<
2125 (outs DoubleRegs:$Rdd32),
2126 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2127 "$Rdd32 = vraddub($Rss32,$Rtt32)",
2128 tc_c21d7447, TypeM>, Enc_a56825 {
2129 let Inst{7-5} = 0b001;
2130 let Inst{13-13} = 0b0;
2131 let Inst{31-21} = 0b11101000010;
2132 let prefersSlot3 = 1;
2134 def A2_vraddub_acc : HInst<
2135 (outs DoubleRegs:$Rxx32),
2136 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2137 "$Rxx32 += vraddub($Rss32,$Rtt32)",
2138 tc_7f8ae742, TypeM>, Enc_88c16c {
2139 let Inst{7-5} = 0b001;
2140 let Inst{13-13} = 0b0;
2141 let Inst{31-21} = 0b11101010010;
2142 let prefersSlot3 = 1;
2143 let Constraints = "$Rxx32 = $Rxx32in";
2145 def A2_vrsadub : HInst<
2146 (outs DoubleRegs:$Rdd32),
2147 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2148 "$Rdd32 = vrsadub($Rss32,$Rtt32)",
2149 tc_c21d7447, TypeM>, Enc_a56825 {
2150 let Inst{7-5} = 0b010;
2151 let Inst{13-13} = 0b0;
2152 let Inst{31-21} = 0b11101000010;
2153 let prefersSlot3 = 1;
2155 def A2_vrsadub_acc : HInst<
2156 (outs DoubleRegs:$Rxx32),
2157 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2158 "$Rxx32 += vrsadub($Rss32,$Rtt32)",
2159 tc_7f8ae742, TypeM>, Enc_88c16c {
2160 let Inst{7-5} = 0b010;
2161 let Inst{13-13} = 0b0;
2162 let Inst{31-21} = 0b11101010010;
2163 let prefersSlot3 = 1;
2164 let Constraints = "$Rxx32 = $Rxx32in";
2166 def A2_vsubb_map : HInst<
2167 (outs DoubleRegs:$Rdd32),
2168 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2169 "$Rdd32 = vsubb($Rss32,$Rtt32)",
2170 tc_5da50c4b, TypeMAPPING> {
2171 let isPseudo = 1;
2172 let isCodeGenOnly = 1;
2174 def A2_vsubh : HInst<
2175 (outs DoubleRegs:$Rdd32),
2176 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2177 "$Rdd32 = vsubh($Rtt32,$Rss32)",
2178 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
2179 let Inst{7-5} = 0b010;
2180 let Inst{13-13} = 0b0;
2181 let Inst{31-21} = 0b11010011001;
2183 def A2_vsubhs : HInst<
2184 (outs DoubleRegs:$Rdd32),
2185 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2186 "$Rdd32 = vsubh($Rtt32,$Rss32):sat",
2187 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2188 let Inst{7-5} = 0b011;
2189 let Inst{13-13} = 0b0;
2190 let Inst{31-21} = 0b11010011001;
2191 let prefersSlot3 = 1;
2192 let Defs = [USR_OVF];
2194 def A2_vsubub : HInst<
2195 (outs DoubleRegs:$Rdd32),
2196 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2197 "$Rdd32 = vsubub($Rtt32,$Rss32)",
2198 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
2199 let Inst{7-5} = 0b000;
2200 let Inst{13-13} = 0b0;
2201 let Inst{31-21} = 0b11010011001;
2203 def A2_vsububs : HInst<
2204 (outs DoubleRegs:$Rdd32),
2205 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2206 "$Rdd32 = vsubub($Rtt32,$Rss32):sat",
2207 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2208 let Inst{7-5} = 0b001;
2209 let Inst{13-13} = 0b0;
2210 let Inst{31-21} = 0b11010011001;
2211 let prefersSlot3 = 1;
2212 let Defs = [USR_OVF];
2214 def A2_vsubuhs : HInst<
2215 (outs DoubleRegs:$Rdd32),
2216 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2217 "$Rdd32 = vsubuh($Rtt32,$Rss32):sat",
2218 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2219 let Inst{7-5} = 0b100;
2220 let Inst{13-13} = 0b0;
2221 let Inst{31-21} = 0b11010011001;
2222 let prefersSlot3 = 1;
2223 let Defs = [USR_OVF];
2225 def A2_vsubw : HInst<
2226 (outs DoubleRegs:$Rdd32),
2227 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2228 "$Rdd32 = vsubw($Rtt32,$Rss32)",
2229 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
2230 let Inst{7-5} = 0b101;
2231 let Inst{13-13} = 0b0;
2232 let Inst{31-21} = 0b11010011001;
2234 def A2_vsubws : HInst<
2235 (outs DoubleRegs:$Rdd32),
2236 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2237 "$Rdd32 = vsubw($Rtt32,$Rss32):sat",
2238 tc_8a825db2, TypeALU64>, Enc_ea23e4 {
2239 let Inst{7-5} = 0b110;
2240 let Inst{13-13} = 0b0;
2241 let Inst{31-21} = 0b11010011001;
2242 let prefersSlot3 = 1;
2243 let Defs = [USR_OVF];
2245 def A2_xor : HInst<
2246 (outs IntRegs:$Rd32),
2247 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2248 "$Rd32 = xor($Rs32,$Rt32)",
2249 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel {
2250 let Inst{7-5} = 0b000;
2251 let Inst{13-13} = 0b0;
2252 let Inst{31-21} = 0b11110001011;
2253 let hasNewValue = 1;
2254 let opNewValue = 0;
2255 let BaseOpcode = "A2_xor";
2256 let InputType = "reg";
2257 let isCommutable = 1;
2258 let isPredicable = 1;
2260 def A2_xorp : HInst<
2261 (outs DoubleRegs:$Rdd32),
2262 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2263 "$Rdd32 = xor($Rss32,$Rtt32)",
2264 tc_5da50c4b, TypeALU64>, Enc_a56825 {
2265 let Inst{7-5} = 0b100;
2266 let Inst{13-13} = 0b0;
2267 let Inst{31-21} = 0b11010011111;
2268 let isCommutable = 1;
2270 def A2_zxtb : HInst<
2271 (outs IntRegs:$Rd32),
2272 (ins IntRegs:$Rs32),
2273 "$Rd32 = zxtb($Rs32)",
2274 tc_713b66bf, TypeALU32_2op>, PredNewRel {
2275 let hasNewValue = 1;
2276 let opNewValue = 0;
2277 let BaseOpcode = "A2_zxtb";
2278 let isPredicable = 1;
2279 let isPseudo = 1;
2280 let isCodeGenOnly = 1;
2282 def A2_zxth : HInst<
2283 (outs IntRegs:$Rd32),
2284 (ins IntRegs:$Rs32),
2285 "$Rd32 = zxth($Rs32)",
2286 tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel {
2287 let Inst{13-5} = 0b000000000;
2288 let Inst{31-21} = 0b01110000110;
2289 let hasNewValue = 1;
2290 let opNewValue = 0;
2291 let BaseOpcode = "A2_zxth";
2292 let isPredicable = 1;
2294 def 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",
2298 tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 {
2299 let Inst{7-7} = 0b0;
2300 let Inst{13-13} = 0b0;
2301 let Inst{31-21} = 0b11000010110;
2302 let isPredicateLate = 1;
2303 let Constraints = "$Px4 = $Px4in";
2305 def A4_andn : HInst<
2306 (outs IntRegs:$Rd32),
2307 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2308 "$Rd32 = and($Rt32,~$Rs32)",
2309 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
2310 let Inst{7-5} = 0b000;
2311 let Inst{13-13} = 0b0;
2312 let Inst{31-21} = 0b11110001100;
2313 let hasNewValue = 1;
2314 let opNewValue = 0;
2315 let InputType = "reg";
2317 def A4_andnp : HInst<
2318 (outs DoubleRegs:$Rdd32),
2319 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2320 "$Rdd32 = and($Rtt32,~$Rss32)",
2321 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
2322 let Inst{7-5} = 0b001;
2323 let Inst{13-13} = 0b0;
2324 let Inst{31-21} = 0b11010011111;
2326 def A4_bitsplit : HInst<
2327 (outs DoubleRegs:$Rdd32),
2328 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2329 "$Rdd32 = bitsplit($Rs32,$Rt32)",
2330 tc_f34c1c21, TypeALU64>, Enc_be32a5 {
2331 let Inst{7-5} = 0b000;
2332 let Inst{13-13} = 0b0;
2333 let Inst{31-21} = 0b11010100001;
2334 let prefersSlot3 = 1;
2336 def A4_bitspliti : HInst<
2337 (outs DoubleRegs:$Rdd32),
2338 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2339 "$Rdd32 = bitsplit($Rs32,#$Ii)",
2340 tc_f34c1c21, TypeS_2op>, Enc_311abd {
2341 let Inst{7-5} = 0b100;
2342 let Inst{13-13} = 0b0;
2343 let Inst{31-21} = 0b10001000110;
2344 let prefersSlot3 = 1;
2346 def A4_boundscheck : HInst<
2347 (outs PredRegs:$Pd4),
2348 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
2349 "$Pd4 = boundscheck($Rs32,$Rtt32)",
2350 tc_4a55d03c, TypeALU64> {
2351 let isPseudo = 1;
2353 def A4_boundscheck_hi : HInst<
2354 (outs PredRegs:$Pd4),
2355 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2356 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi",
2357 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
2358 let Inst{7-2} = 0b101000;
2359 let Inst{13-13} = 0b1;
2360 let Inst{31-21} = 0b11010010000;
2362 def A4_boundscheck_lo : HInst<
2363 (outs PredRegs:$Pd4),
2364 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2365 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo",
2366 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
2367 let Inst{7-2} = 0b100000;
2368 let Inst{13-13} = 0b1;
2369 let Inst{31-21} = 0b11010010000;
2371 def A4_cmpbeq : HInst<
2372 (outs PredRegs:$Pd4),
2373 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2374 "$Pd4 = cmpb.eq($Rs32,$Rt32)",
2375 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2376 let Inst{7-2} = 0b110000;
2377 let Inst{13-13} = 0b0;
2378 let Inst{31-21} = 0b11000111110;
2379 let CextOpcode = "A4_cmpbeq";
2380 let InputType = "reg";
2381 let isCommutable = 1;
2382 let isCompare = 1;
2384 def A4_cmpbeqi : HInst<
2385 (outs PredRegs:$Pd4),
2386 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
2387 "$Pd4 = cmpb.eq($Rs32,#$Ii)",
2388 tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel {
2389 let Inst{4-2} = 0b000;
2390 let Inst{13-13} = 0b0;
2391 let Inst{31-21} = 0b11011101000;
2392 let CextOpcode = "A4_cmpbeq";
2393 let InputType = "imm";
2394 let isCommutable = 1;
2395 let isCompare = 1;
2397 def A4_cmpbgt : HInst<
2398 (outs PredRegs:$Pd4),
2399 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2400 "$Pd4 = cmpb.gt($Rs32,$Rt32)",
2401 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2402 let Inst{7-2} = 0b010000;
2403 let Inst{13-13} = 0b0;
2404 let Inst{31-21} = 0b11000111110;
2405 let CextOpcode = "A4_cmpbgt";
2406 let InputType = "reg";
2407 let isCompare = 1;
2409 def A4_cmpbgti : HInst<
2410 (outs PredRegs:$Pd4),
2411 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
2412 "$Pd4 = cmpb.gt($Rs32,#$Ii)",
2413 tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel {
2414 let Inst{4-2} = 0b000;
2415 let Inst{13-13} = 0b0;
2416 let Inst{31-21} = 0b11011101001;
2417 let CextOpcode = "A4_cmpbgt";
2418 let InputType = "imm";
2419 let isCompare = 1;
2421 def A4_cmpbgtu : HInst<
2422 (outs PredRegs:$Pd4),
2423 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2424 "$Pd4 = cmpb.gtu($Rs32,$Rt32)",
2425 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2426 let Inst{7-2} = 0b111000;
2427 let Inst{13-13} = 0b0;
2428 let Inst{31-21} = 0b11000111110;
2429 let CextOpcode = "A4_cmpbgtu";
2430 let InputType = "reg";
2431 let isCompare = 1;
2433 def A4_cmpbgtui : HInst<
2434 (outs PredRegs:$Pd4),
2435 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2436 "$Pd4 = cmpb.gtu($Rs32,#$Ii)",
2437 tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel {
2438 let Inst{4-2} = 0b000;
2439 let Inst{13-12} = 0b00;
2440 let Inst{31-21} = 0b11011101010;
2441 let CextOpcode = "A4_cmpbgtu";
2442 let InputType = "imm";
2443 let isCompare = 1;
2444 let isExtendable = 1;
2445 let opExtendable = 2;
2446 let isExtentSigned = 0;
2447 let opExtentBits = 7;
2448 let opExtentAlign = 0;
2450 def A4_cmpheq : HInst<
2451 (outs PredRegs:$Pd4),
2452 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2453 "$Pd4 = cmph.eq($Rs32,$Rt32)",
2454 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2455 let Inst{7-2} = 0b011000;
2456 let Inst{13-13} = 0b0;
2457 let Inst{31-21} = 0b11000111110;
2458 let CextOpcode = "A4_cmpheq";
2459 let InputType = "reg";
2460 let isCommutable = 1;
2461 let isCompare = 1;
2463 def A4_cmpheqi : HInst<
2464 (outs PredRegs:$Pd4),
2465 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2466 "$Pd4 = cmph.eq($Rs32,#$Ii)",
2467 tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel {
2468 let Inst{4-2} = 0b010;
2469 let Inst{13-13} = 0b0;
2470 let Inst{31-21} = 0b11011101000;
2471 let CextOpcode = "A4_cmpheq";
2472 let InputType = "imm";
2473 let isCommutable = 1;
2474 let isCompare = 1;
2475 let isExtendable = 1;
2476 let opExtendable = 2;
2477 let isExtentSigned = 1;
2478 let opExtentBits = 8;
2479 let opExtentAlign = 0;
2481 def A4_cmphgt : HInst<
2482 (outs PredRegs:$Pd4),
2483 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2484 "$Pd4 = cmph.gt($Rs32,$Rt32)",
2485 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2486 let Inst{7-2} = 0b100000;
2487 let Inst{13-13} = 0b0;
2488 let Inst{31-21} = 0b11000111110;
2489 let CextOpcode = "A4_cmphgt";
2490 let InputType = "reg";
2491 let isCompare = 1;
2493 def A4_cmphgti : HInst<
2494 (outs PredRegs:$Pd4),
2495 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2496 "$Pd4 = cmph.gt($Rs32,#$Ii)",
2497 tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel {
2498 let Inst{4-2} = 0b010;
2499 let Inst{13-13} = 0b0;
2500 let Inst{31-21} = 0b11011101001;
2501 let CextOpcode = "A4_cmphgt";
2502 let InputType = "imm";
2503 let isCompare = 1;
2504 let isExtendable = 1;
2505 let opExtendable = 2;
2506 let isExtentSigned = 1;
2507 let opExtentBits = 8;
2508 let opExtentAlign = 0;
2510 def A4_cmphgtu : HInst<
2511 (outs PredRegs:$Pd4),
2512 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2513 "$Pd4 = cmph.gtu($Rs32,$Rt32)",
2514 tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2515 let Inst{7-2} = 0b101000;
2516 let Inst{13-13} = 0b0;
2517 let Inst{31-21} = 0b11000111110;
2518 let CextOpcode = "A4_cmphgtu";
2519 let InputType = "reg";
2520 let isCompare = 1;
2522 def A4_cmphgtui : HInst<
2523 (outs PredRegs:$Pd4),
2524 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2525 "$Pd4 = cmph.gtu($Rs32,#$Ii)",
2526 tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel {
2527 let Inst{4-2} = 0b010;
2528 let Inst{13-12} = 0b00;
2529 let Inst{31-21} = 0b11011101010;
2530 let CextOpcode = "A4_cmphgtu";
2531 let InputType = "imm";
2532 let isCompare = 1;
2533 let isExtendable = 1;
2534 let opExtendable = 2;
2535 let isExtentSigned = 0;
2536 let opExtentBits = 7;
2537 let opExtentAlign = 0;
2539 def A4_combineii : HInst<
2540 (outs DoubleRegs:$Rdd32),
2541 (ins s8_0Imm:$Ii, u32_0Imm:$II),
2542 "$Rdd32 = combine(#$Ii,#$II)",
2543 tc_713b66bf, TypeALU32_2op>, Enc_f0cca7 {
2544 let Inst{31-21} = 0b01111100100;
2545 let isExtendable = 1;
2546 let opExtendable = 2;
2547 let isExtentSigned = 0;
2548 let opExtentBits = 6;
2549 let opExtentAlign = 0;
2551 def A4_combineir : HInst<
2552 (outs DoubleRegs:$Rdd32),
2553 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
2554 "$Rdd32 = combine(#$Ii,$Rs32)",
2555 tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 {
2556 let Inst{13-13} = 0b1;
2557 let Inst{31-21} = 0b01110011001;
2558 let isExtendable = 1;
2559 let opExtendable = 1;
2560 let isExtentSigned = 1;
2561 let opExtentBits = 8;
2562 let opExtentAlign = 0;
2564 def A4_combineri : HInst<
2565 (outs DoubleRegs:$Rdd32),
2566 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2567 "$Rdd32 = combine($Rs32,#$Ii)",
2568 tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 {
2569 let Inst{13-13} = 0b1;
2570 let Inst{31-21} = 0b01110011000;
2571 let isExtendable = 1;
2572 let opExtendable = 2;
2573 let isExtentSigned = 1;
2574 let opExtentBits = 8;
2575 let opExtentAlign = 0;
2577 def A4_cround_ri : HInst<
2578 (outs IntRegs:$Rd32),
2579 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2580 "$Rd32 = cround($Rs32,#$Ii)",
2581 tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
2582 let Inst{7-5} = 0b000;
2583 let Inst{13-13} = 0b0;
2584 let Inst{31-21} = 0b10001100111;
2585 let hasNewValue = 1;
2586 let opNewValue = 0;
2587 let prefersSlot3 = 1;
2589 def A4_cround_rr : HInst<
2590 (outs IntRegs:$Rd32),
2591 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2592 "$Rd32 = cround($Rs32,$Rt32)",
2593 tc_0dfac0a7, TypeS_3op>, Enc_5ab2be {
2594 let Inst{7-5} = 0b000;
2595 let Inst{13-13} = 0b0;
2596 let Inst{31-21} = 0b11000110110;
2597 let hasNewValue = 1;
2598 let opNewValue = 0;
2599 let prefersSlot3 = 1;
2601 def A4_ext : HInst<
2602 (outs),
2603 (ins u26_6Imm:$Ii),
2604 "immext(#$Ii)",
2605 tc_112d30d6, TypeEXTENDER>, Enc_2b518f {
2606 let Inst{31-28} = 0b0000;
2608 def A4_modwrapu : HInst<
2609 (outs IntRegs:$Rd32),
2610 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2611 "$Rd32 = modwrap($Rs32,$Rt32)",
2612 tc_8a825db2, TypeALU64>, Enc_5ab2be {
2613 let Inst{7-5} = 0b111;
2614 let Inst{13-13} = 0b0;
2615 let Inst{31-21} = 0b11010011111;
2616 let hasNewValue = 1;
2617 let opNewValue = 0;
2618 let prefersSlot3 = 1;
2620 def A4_orn : HInst<
2621 (outs IntRegs:$Rd32),
2622 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2623 "$Rd32 = or($Rt32,~$Rs32)",
2624 tc_713b66bf, TypeALU32_3op>, Enc_bd6011 {
2625 let Inst{7-5} = 0b000;
2626 let Inst{13-13} = 0b0;
2627 let Inst{31-21} = 0b11110001101;
2628 let hasNewValue = 1;
2629 let opNewValue = 0;
2630 let InputType = "reg";
2632 def A4_ornp : HInst<
2633 (outs DoubleRegs:$Rdd32),
2634 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2635 "$Rdd32 = or($Rtt32,~$Rss32)",
2636 tc_5da50c4b, TypeALU64>, Enc_ea23e4 {
2637 let Inst{7-5} = 0b011;
2638 let Inst{13-13} = 0b0;
2639 let Inst{31-21} = 0b11010011111;
2641 def A4_paslhf : HInst<
2642 (outs IntRegs:$Rd32),
2643 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2644 "if (!$Pu4) $Rd32 = aslh($Rs32)",
2645 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2646 let Inst{7-5} = 0b000;
2647 let Inst{13-10} = 0b1010;
2648 let Inst{31-21} = 0b01110000000;
2649 let isPredicated = 1;
2650 let isPredicatedFalse = 1;
2651 let hasNewValue = 1;
2652 let opNewValue = 0;
2653 let BaseOpcode = "A2_aslh";
2655 def A4_paslhfnew : HInst<
2656 (outs IntRegs:$Rd32),
2657 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2658 "if (!$Pu4.new) $Rd32 = aslh($Rs32)",
2659 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2660 let Inst{7-5} = 0b000;
2661 let Inst{13-10} = 0b1011;
2662 let Inst{31-21} = 0b01110000000;
2663 let isPredicated = 1;
2664 let isPredicatedFalse = 1;
2665 let hasNewValue = 1;
2666 let opNewValue = 0;
2667 let isPredicatedNew = 1;
2668 let BaseOpcode = "A2_aslh";
2670 def A4_paslht : HInst<
2671 (outs IntRegs:$Rd32),
2672 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2673 "if ($Pu4) $Rd32 = aslh($Rs32)",
2674 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2675 let Inst{7-5} = 0b000;
2676 let Inst{13-10} = 0b1000;
2677 let Inst{31-21} = 0b01110000000;
2678 let isPredicated = 1;
2679 let hasNewValue = 1;
2680 let opNewValue = 0;
2681 let BaseOpcode = "A2_aslh";
2683 def A4_paslhtnew : HInst<
2684 (outs IntRegs:$Rd32),
2685 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2686 "if ($Pu4.new) $Rd32 = aslh($Rs32)",
2687 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2688 let Inst{7-5} = 0b000;
2689 let Inst{13-10} = 0b1001;
2690 let Inst{31-21} = 0b01110000000;
2691 let isPredicated = 1;
2692 let hasNewValue = 1;
2693 let opNewValue = 0;
2694 let isPredicatedNew = 1;
2695 let BaseOpcode = "A2_aslh";
2697 def A4_pasrhf : HInst<
2698 (outs IntRegs:$Rd32),
2699 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2700 "if (!$Pu4) $Rd32 = asrh($Rs32)",
2701 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2702 let Inst{7-5} = 0b000;
2703 let Inst{13-10} = 0b1010;
2704 let Inst{31-21} = 0b01110000001;
2705 let isPredicated = 1;
2706 let isPredicatedFalse = 1;
2707 let hasNewValue = 1;
2708 let opNewValue = 0;
2709 let BaseOpcode = "A2_asrh";
2711 def A4_pasrhfnew : HInst<
2712 (outs IntRegs:$Rd32),
2713 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2714 "if (!$Pu4.new) $Rd32 = asrh($Rs32)",
2715 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2716 let Inst{7-5} = 0b000;
2717 let Inst{13-10} = 0b1011;
2718 let Inst{31-21} = 0b01110000001;
2719 let isPredicated = 1;
2720 let isPredicatedFalse = 1;
2721 let hasNewValue = 1;
2722 let opNewValue = 0;
2723 let isPredicatedNew = 1;
2724 let BaseOpcode = "A2_asrh";
2726 def A4_pasrht : HInst<
2727 (outs IntRegs:$Rd32),
2728 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2729 "if ($Pu4) $Rd32 = asrh($Rs32)",
2730 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2731 let Inst{7-5} = 0b000;
2732 let Inst{13-10} = 0b1000;
2733 let Inst{31-21} = 0b01110000001;
2734 let isPredicated = 1;
2735 let hasNewValue = 1;
2736 let opNewValue = 0;
2737 let BaseOpcode = "A2_asrh";
2739 def A4_pasrhtnew : HInst<
2740 (outs IntRegs:$Rd32),
2741 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2742 "if ($Pu4.new) $Rd32 = asrh($Rs32)",
2743 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2744 let Inst{7-5} = 0b000;
2745 let Inst{13-10} = 0b1001;
2746 let Inst{31-21} = 0b01110000001;
2747 let isPredicated = 1;
2748 let hasNewValue = 1;
2749 let opNewValue = 0;
2750 let isPredicatedNew = 1;
2751 let BaseOpcode = "A2_asrh";
2753 def A4_psxtbf : HInst<
2754 (outs IntRegs:$Rd32),
2755 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2756 "if (!$Pu4) $Rd32 = sxtb($Rs32)",
2757 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2758 let Inst{7-5} = 0b000;
2759 let Inst{13-10} = 0b1010;
2760 let Inst{31-21} = 0b01110000101;
2761 let isPredicated = 1;
2762 let isPredicatedFalse = 1;
2763 let hasNewValue = 1;
2764 let opNewValue = 0;
2765 let BaseOpcode = "A2_sxtb";
2767 def A4_psxtbfnew : HInst<
2768 (outs IntRegs:$Rd32),
2769 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2770 "if (!$Pu4.new) $Rd32 = sxtb($Rs32)",
2771 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2772 let Inst{7-5} = 0b000;
2773 let Inst{13-10} = 0b1011;
2774 let Inst{31-21} = 0b01110000101;
2775 let isPredicated = 1;
2776 let isPredicatedFalse = 1;
2777 let hasNewValue = 1;
2778 let opNewValue = 0;
2779 let isPredicatedNew = 1;
2780 let BaseOpcode = "A2_sxtb";
2782 def A4_psxtbt : HInst<
2783 (outs IntRegs:$Rd32),
2784 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2785 "if ($Pu4) $Rd32 = sxtb($Rs32)",
2786 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2787 let Inst{7-5} = 0b000;
2788 let Inst{13-10} = 0b1000;
2789 let Inst{31-21} = 0b01110000101;
2790 let isPredicated = 1;
2791 let hasNewValue = 1;
2792 let opNewValue = 0;
2793 let BaseOpcode = "A2_sxtb";
2795 def A4_psxtbtnew : HInst<
2796 (outs IntRegs:$Rd32),
2797 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2798 "if ($Pu4.new) $Rd32 = sxtb($Rs32)",
2799 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2800 let Inst{7-5} = 0b000;
2801 let Inst{13-10} = 0b1001;
2802 let Inst{31-21} = 0b01110000101;
2803 let isPredicated = 1;
2804 let hasNewValue = 1;
2805 let opNewValue = 0;
2806 let isPredicatedNew = 1;
2807 let BaseOpcode = "A2_sxtb";
2809 def A4_psxthf : HInst<
2810 (outs IntRegs:$Rd32),
2811 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2812 "if (!$Pu4) $Rd32 = sxth($Rs32)",
2813 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2814 let Inst{7-5} = 0b000;
2815 let Inst{13-10} = 0b1010;
2816 let Inst{31-21} = 0b01110000111;
2817 let isPredicated = 1;
2818 let isPredicatedFalse = 1;
2819 let hasNewValue = 1;
2820 let opNewValue = 0;
2821 let BaseOpcode = "A2_sxth";
2823 def A4_psxthfnew : HInst<
2824 (outs IntRegs:$Rd32),
2825 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2826 "if (!$Pu4.new) $Rd32 = sxth($Rs32)",
2827 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2828 let Inst{7-5} = 0b000;
2829 let Inst{13-10} = 0b1011;
2830 let Inst{31-21} = 0b01110000111;
2831 let isPredicated = 1;
2832 let isPredicatedFalse = 1;
2833 let hasNewValue = 1;
2834 let opNewValue = 0;
2835 let isPredicatedNew = 1;
2836 let BaseOpcode = "A2_sxth";
2838 def A4_psxtht : HInst<
2839 (outs IntRegs:$Rd32),
2840 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2841 "if ($Pu4) $Rd32 = sxth($Rs32)",
2842 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2843 let Inst{7-5} = 0b000;
2844 let Inst{13-10} = 0b1000;
2845 let Inst{31-21} = 0b01110000111;
2846 let isPredicated = 1;
2847 let hasNewValue = 1;
2848 let opNewValue = 0;
2849 let BaseOpcode = "A2_sxth";
2851 def A4_psxthtnew : HInst<
2852 (outs IntRegs:$Rd32),
2853 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2854 "if ($Pu4.new) $Rd32 = sxth($Rs32)",
2855 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2856 let Inst{7-5} = 0b000;
2857 let Inst{13-10} = 0b1001;
2858 let Inst{31-21} = 0b01110000111;
2859 let isPredicated = 1;
2860 let hasNewValue = 1;
2861 let opNewValue = 0;
2862 let isPredicatedNew = 1;
2863 let BaseOpcode = "A2_sxth";
2865 def A4_pzxtbf : HInst<
2866 (outs IntRegs:$Rd32),
2867 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2868 "if (!$Pu4) $Rd32 = zxtb($Rs32)",
2869 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2870 let Inst{7-5} = 0b000;
2871 let Inst{13-10} = 0b1010;
2872 let Inst{31-21} = 0b01110000100;
2873 let isPredicated = 1;
2874 let isPredicatedFalse = 1;
2875 let hasNewValue = 1;
2876 let opNewValue = 0;
2877 let BaseOpcode = "A2_zxtb";
2879 def A4_pzxtbfnew : HInst<
2880 (outs IntRegs:$Rd32),
2881 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2882 "if (!$Pu4.new) $Rd32 = zxtb($Rs32)",
2883 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2884 let Inst{7-5} = 0b000;
2885 let Inst{13-10} = 0b1011;
2886 let Inst{31-21} = 0b01110000100;
2887 let isPredicated = 1;
2888 let isPredicatedFalse = 1;
2889 let hasNewValue = 1;
2890 let opNewValue = 0;
2891 let isPredicatedNew = 1;
2892 let BaseOpcode = "A2_zxtb";
2894 def A4_pzxtbt : HInst<
2895 (outs IntRegs:$Rd32),
2896 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2897 "if ($Pu4) $Rd32 = zxtb($Rs32)",
2898 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2899 let Inst{7-5} = 0b000;
2900 let Inst{13-10} = 0b1000;
2901 let Inst{31-21} = 0b01110000100;
2902 let isPredicated = 1;
2903 let hasNewValue = 1;
2904 let opNewValue = 0;
2905 let BaseOpcode = "A2_zxtb";
2907 def A4_pzxtbtnew : HInst<
2908 (outs IntRegs:$Rd32),
2909 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2910 "if ($Pu4.new) $Rd32 = zxtb($Rs32)",
2911 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2912 let Inst{7-5} = 0b000;
2913 let Inst{13-10} = 0b1001;
2914 let Inst{31-21} = 0b01110000100;
2915 let isPredicated = 1;
2916 let hasNewValue = 1;
2917 let opNewValue = 0;
2918 let isPredicatedNew = 1;
2919 let BaseOpcode = "A2_zxtb";
2921 def A4_pzxthf : HInst<
2922 (outs IntRegs:$Rd32),
2923 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2924 "if (!$Pu4) $Rd32 = zxth($Rs32)",
2925 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2926 let Inst{7-5} = 0b000;
2927 let Inst{13-10} = 0b1010;
2928 let Inst{31-21} = 0b01110000110;
2929 let isPredicated = 1;
2930 let isPredicatedFalse = 1;
2931 let hasNewValue = 1;
2932 let opNewValue = 0;
2933 let BaseOpcode = "A2_zxth";
2935 def A4_pzxthfnew : HInst<
2936 (outs IntRegs:$Rd32),
2937 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2938 "if (!$Pu4.new) $Rd32 = zxth($Rs32)",
2939 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2940 let Inst{7-5} = 0b000;
2941 let Inst{13-10} = 0b1011;
2942 let Inst{31-21} = 0b01110000110;
2943 let isPredicated = 1;
2944 let isPredicatedFalse = 1;
2945 let hasNewValue = 1;
2946 let opNewValue = 0;
2947 let isPredicatedNew = 1;
2948 let BaseOpcode = "A2_zxth";
2950 def A4_pzxtht : HInst<
2951 (outs IntRegs:$Rd32),
2952 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2953 "if ($Pu4) $Rd32 = zxth($Rs32)",
2954 tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2955 let Inst{7-5} = 0b000;
2956 let Inst{13-10} = 0b1000;
2957 let Inst{31-21} = 0b01110000110;
2958 let isPredicated = 1;
2959 let hasNewValue = 1;
2960 let opNewValue = 0;
2961 let BaseOpcode = "A2_zxth";
2963 def A4_pzxthtnew : HInst<
2964 (outs IntRegs:$Rd32),
2965 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2966 "if ($Pu4.new) $Rd32 = zxth($Rs32)",
2967 tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2968 let Inst{7-5} = 0b000;
2969 let Inst{13-10} = 0b1001;
2970 let Inst{31-21} = 0b01110000110;
2971 let isPredicated = 1;
2972 let hasNewValue = 1;
2973 let opNewValue = 0;
2974 let isPredicatedNew = 1;
2975 let BaseOpcode = "A2_zxth";
2977 def A4_rcmpeq : HInst<
2978 (outs IntRegs:$Rd32),
2979 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2980 "$Rd32 = cmp.eq($Rs32,$Rt32)",
2981 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
2982 let Inst{7-5} = 0b000;
2983 let Inst{13-13} = 0b0;
2984 let Inst{31-21} = 0b11110011010;
2985 let hasNewValue = 1;
2986 let opNewValue = 0;
2987 let CextOpcode = "A4_rcmpeq";
2988 let InputType = "reg";
2989 let isCommutable = 1;
2991 def A4_rcmpeqi : HInst<
2992 (outs IntRegs:$Rd32),
2993 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2994 "$Rd32 = cmp.eq($Rs32,#$Ii)",
2995 tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
2996 let Inst{13-13} = 0b1;
2997 let Inst{31-21} = 0b01110011010;
2998 let hasNewValue = 1;
2999 let opNewValue = 0;
3000 let CextOpcode = "A4_rcmpeqi";
3001 let InputType = "imm";
3002 let isExtendable = 1;
3003 let opExtendable = 2;
3004 let isExtentSigned = 1;
3005 let opExtentBits = 8;
3006 let opExtentAlign = 0;
3008 def A4_rcmpneq : HInst<
3009 (outs IntRegs:$Rd32),
3010 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3011 "$Rd32 = !cmp.eq($Rs32,$Rt32)",
3012 tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
3013 let Inst{7-5} = 0b000;
3014 let Inst{13-13} = 0b0;
3015 let Inst{31-21} = 0b11110011011;
3016 let hasNewValue = 1;
3017 let opNewValue = 0;
3018 let CextOpcode = "A4_rcmpneq";
3019 let InputType = "reg";
3020 let isCommutable = 1;
3022 def A4_rcmpneqi : HInst<
3023 (outs IntRegs:$Rd32),
3024 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3025 "$Rd32 = !cmp.eq($Rs32,#$Ii)",
3026 tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
3027 let Inst{13-13} = 0b1;
3028 let Inst{31-21} = 0b01110011011;
3029 let hasNewValue = 1;
3030 let opNewValue = 0;
3031 let CextOpcode = "A4_rcmpeqi";
3032 let InputType = "imm";
3033 let isExtendable = 1;
3034 let opExtendable = 2;
3035 let isExtentSigned = 1;
3036 let opExtentBits = 8;
3037 let opExtentAlign = 0;
3039 def A4_round_ri : HInst<
3040 (outs IntRegs:$Rd32),
3041 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3042 "$Rd32 = round($Rs32,#$Ii)",
3043 tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
3044 let Inst{7-5} = 0b100;
3045 let Inst{13-13} = 0b0;
3046 let Inst{31-21} = 0b10001100111;
3047 let hasNewValue = 1;
3048 let opNewValue = 0;
3049 let prefersSlot3 = 1;
3051 def A4_round_ri_sat : HInst<
3052 (outs IntRegs:$Rd32),
3053 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3054 "$Rd32 = round($Rs32,#$Ii):sat",
3055 tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
3056 let Inst{7-5} = 0b110;
3057 let Inst{13-13} = 0b0;
3058 let Inst{31-21} = 0b10001100111;
3059 let hasNewValue = 1;
3060 let opNewValue = 0;
3061 let prefersSlot3 = 1;
3062 let Defs = [USR_OVF];
3064 def A4_round_rr : HInst<
3065 (outs IntRegs:$Rd32),
3066 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3067 "$Rd32 = round($Rs32,$Rt32)",
3068 tc_0dfac0a7, TypeS_3op>, Enc_5ab2be {
3069 let Inst{7-5} = 0b100;
3070 let Inst{13-13} = 0b0;
3071 let Inst{31-21} = 0b11000110110;
3072 let hasNewValue = 1;
3073 let opNewValue = 0;
3074 let prefersSlot3 = 1;
3076 def A4_round_rr_sat : HInst<
3077 (outs IntRegs:$Rd32),
3078 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3079 "$Rd32 = round($Rs32,$Rt32):sat",
3080 tc_0dfac0a7, TypeS_3op>, Enc_5ab2be {
3081 let Inst{7-5} = 0b110;
3082 let Inst{13-13} = 0b0;
3083 let Inst{31-21} = 0b11000110110;
3084 let hasNewValue = 1;
3085 let opNewValue = 0;
3086 let prefersSlot3 = 1;
3087 let Defs = [USR_OVF];
3089 def 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",
3093 tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 {
3094 let Inst{7-7} = 0b0;
3095 let Inst{13-13} = 0b0;
3096 let Inst{31-21} = 0b11000010111;
3097 let isPredicateLate = 1;
3098 let Constraints = "$Px4 = $Px4in";
3100 def A4_tfrcpp : HInst<
3101 (outs DoubleRegs:$Rdd32),
3102 (ins CtrRegs64:$Css32),
3103 "$Rdd32 = $Css32",
3104 tc_7476d766, TypeCR>, Enc_667b39 {
3105 let Inst{13-5} = 0b000000000;
3106 let Inst{31-21} = 0b01101000000;
3108 def A4_tfrpcp : HInst<
3109 (outs CtrRegs64:$Cdd32),
3110 (ins DoubleRegs:$Rss32),
3111 "$Cdd32 = $Rss32",
3112 tc_49fdfd4b, TypeCR>, Enc_0ed752 {
3113 let Inst{13-5} = 0b000000000;
3114 let Inst{31-21} = 0b01100011001;
3116 def A4_tlbmatch : HInst<
3117 (outs PredRegs:$Pd4),
3118 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3119 "$Pd4 = tlbmatch($Rss32,$Rt32)",
3120 tc_d68dca5c, TypeALU64>, Enc_03833b {
3121 let Inst{7-2} = 0b011000;
3122 let Inst{13-13} = 0b1;
3123 let Inst{31-21} = 0b11010010000;
3124 let isPredicateLate = 1;
3126 def A4_vcmpbeq_any : HInst<
3127 (outs PredRegs:$Pd4),
3128 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3129 "$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))",
3130 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3131 let Inst{7-2} = 0b000000;
3132 let Inst{13-13} = 0b1;
3133 let Inst{31-21} = 0b11010010000;
3135 def A4_vcmpbeqi : HInst<
3136 (outs PredRegs:$Pd4),
3137 (ins DoubleRegs:$Rss32, u8_0Imm:$Ii),
3138 "$Pd4 = vcmpb.eq($Rss32,#$Ii)",
3139 tc_a1297125, TypeALU64>, Enc_0d8adb {
3140 let Inst{4-2} = 0b000;
3141 let Inst{13-13} = 0b0;
3142 let Inst{31-21} = 0b11011100000;
3144 def A4_vcmpbgt : HInst<
3145 (outs PredRegs:$Pd4),
3146 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3147 "$Pd4 = vcmpb.gt($Rss32,$Rtt32)",
3148 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3149 let Inst{7-2} = 0b010000;
3150 let Inst{13-13} = 0b1;
3151 let Inst{31-21} = 0b11010010000;
3153 def A4_vcmpbgti : HInst<
3154 (outs PredRegs:$Pd4),
3155 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3156 "$Pd4 = vcmpb.gt($Rss32,#$Ii)",
3157 tc_a1297125, TypeALU64>, Enc_0d8adb {
3158 let Inst{4-2} = 0b000;
3159 let Inst{13-13} = 0b0;
3160 let Inst{31-21} = 0b11011100001;
3162 def A4_vcmpbgtui : HInst<
3163 (outs PredRegs:$Pd4),
3164 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3165 "$Pd4 = vcmpb.gtu($Rss32,#$Ii)",
3166 tc_a1297125, TypeALU64>, Enc_3680c2 {
3167 let Inst{4-2} = 0b000;
3168 let Inst{13-12} = 0b00;
3169 let Inst{31-21} = 0b11011100010;
3171 def A4_vcmpheqi : HInst<
3172 (outs PredRegs:$Pd4),
3173 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3174 "$Pd4 = vcmph.eq($Rss32,#$Ii)",
3175 tc_a1297125, TypeALU64>, Enc_0d8adb {
3176 let Inst{4-2} = 0b010;
3177 let Inst{13-13} = 0b0;
3178 let Inst{31-21} = 0b11011100000;
3180 def A4_vcmphgti : HInst<
3181 (outs PredRegs:$Pd4),
3182 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3183 "$Pd4 = vcmph.gt($Rss32,#$Ii)",
3184 tc_a1297125, TypeALU64>, Enc_0d8adb {
3185 let Inst{4-2} = 0b010;
3186 let Inst{13-13} = 0b0;
3187 let Inst{31-21} = 0b11011100001;
3189 def A4_vcmphgtui : HInst<
3190 (outs PredRegs:$Pd4),
3191 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3192 "$Pd4 = vcmph.gtu($Rss32,#$Ii)",
3193 tc_a1297125, TypeALU64>, Enc_3680c2 {
3194 let Inst{4-2} = 0b010;
3195 let Inst{13-12} = 0b00;
3196 let Inst{31-21} = 0b11011100010;
3198 def A4_vcmpweqi : HInst<
3199 (outs PredRegs:$Pd4),
3200 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3201 "$Pd4 = vcmpw.eq($Rss32,#$Ii)",
3202 tc_a1297125, TypeALU64>, Enc_0d8adb {
3203 let Inst{4-2} = 0b100;
3204 let Inst{13-13} = 0b0;
3205 let Inst{31-21} = 0b11011100000;
3207 def A4_vcmpwgti : HInst<
3208 (outs PredRegs:$Pd4),
3209 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3210 "$Pd4 = vcmpw.gt($Rss32,#$Ii)",
3211 tc_a1297125, TypeALU64>, Enc_0d8adb {
3212 let Inst{4-2} = 0b100;
3213 let Inst{13-13} = 0b0;
3214 let Inst{31-21} = 0b11011100001;
3216 def A4_vcmpwgtui : HInst<
3217 (outs PredRegs:$Pd4),
3218 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3219 "$Pd4 = vcmpw.gtu($Rss32,#$Ii)",
3220 tc_a1297125, TypeALU64>, Enc_3680c2 {
3221 let Inst{4-2} = 0b100;
3222 let Inst{13-12} = 0b00;
3223 let Inst{31-21} = 0b11011100010;
3225 def A4_vrmaxh : HInst<
3226 (outs DoubleRegs:$Rxx32),
3227 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3228 "$Rxx32 = vrmaxh($Rss32,$Ru32)",
3229 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3230 let Inst{7-5} = 0b001;
3231 let Inst{13-13} = 0b0;
3232 let Inst{31-21} = 0b11001011001;
3233 let prefersSlot3 = 1;
3234 let Constraints = "$Rxx32 = $Rxx32in";
3236 def A4_vrmaxuh : HInst<
3237 (outs DoubleRegs:$Rxx32),
3238 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3239 "$Rxx32 = vrmaxuh($Rss32,$Ru32)",
3240 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3241 let Inst{7-5} = 0b001;
3242 let Inst{13-13} = 0b1;
3243 let Inst{31-21} = 0b11001011001;
3244 let prefersSlot3 = 1;
3245 let Constraints = "$Rxx32 = $Rxx32in";
3247 def A4_vrmaxuw : HInst<
3248 (outs DoubleRegs:$Rxx32),
3249 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3250 "$Rxx32 = vrmaxuw($Rss32,$Ru32)",
3251 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3252 let Inst{7-5} = 0b010;
3253 let Inst{13-13} = 0b1;
3254 let Inst{31-21} = 0b11001011001;
3255 let prefersSlot3 = 1;
3256 let Constraints = "$Rxx32 = $Rxx32in";
3258 def A4_vrmaxw : HInst<
3259 (outs DoubleRegs:$Rxx32),
3260 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3261 "$Rxx32 = vrmaxw($Rss32,$Ru32)",
3262 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3263 let Inst{7-5} = 0b010;
3264 let Inst{13-13} = 0b0;
3265 let Inst{31-21} = 0b11001011001;
3266 let prefersSlot3 = 1;
3267 let Constraints = "$Rxx32 = $Rxx32in";
3269 def A4_vrminh : HInst<
3270 (outs DoubleRegs:$Rxx32),
3271 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3272 "$Rxx32 = vrminh($Rss32,$Ru32)",
3273 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3274 let Inst{7-5} = 0b101;
3275 let Inst{13-13} = 0b0;
3276 let Inst{31-21} = 0b11001011001;
3277 let prefersSlot3 = 1;
3278 let Constraints = "$Rxx32 = $Rxx32in";
3280 def A4_vrminuh : HInst<
3281 (outs DoubleRegs:$Rxx32),
3282 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3283 "$Rxx32 = vrminuh($Rss32,$Ru32)",
3284 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3285 let Inst{7-5} = 0b101;
3286 let Inst{13-13} = 0b1;
3287 let Inst{31-21} = 0b11001011001;
3288 let prefersSlot3 = 1;
3289 let Constraints = "$Rxx32 = $Rxx32in";
3291 def A4_vrminuw : HInst<
3292 (outs DoubleRegs:$Rxx32),
3293 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3294 "$Rxx32 = vrminuw($Rss32,$Ru32)",
3295 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3296 let Inst{7-5} = 0b110;
3297 let Inst{13-13} = 0b1;
3298 let Inst{31-21} = 0b11001011001;
3299 let prefersSlot3 = 1;
3300 let Constraints = "$Rxx32 = $Rxx32in";
3302 def A4_vrminw : HInst<
3303 (outs DoubleRegs:$Rxx32),
3304 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3305 "$Rxx32 = vrminw($Rss32,$Ru32)",
3306 tc_788b1d09, TypeS_3op>, Enc_412ff0 {
3307 let Inst{7-5} = 0b110;
3308 let Inst{13-13} = 0b0;
3309 let Inst{31-21} = 0b11001011001;
3310 let prefersSlot3 = 1;
3311 let Constraints = "$Rxx32 = $Rxx32in";
3313 def A5_ACS : HInst<
3314 (outs DoubleRegs:$Rxx32, PredRegs:$Pe4),
3315 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3316 "$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)",
3317 tc_38e0bae9, TypeM>, Enc_831a7d, Requires<[HasV55]> {
3318 let Inst{7-7} = 0b0;
3319 let Inst{13-13} = 0b0;
3320 let Inst{31-21} = 0b11101010101;
3321 let isPredicateLate = 1;
3322 let prefersSlot3 = 1;
3323 let Defs = [USR_OVF];
3324 let Constraints = "$Rxx32 = $Rxx32in";
3326 def A5_vaddhubs : HInst<
3327 (outs IntRegs:$Rd32),
3328 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3329 "$Rd32 = vaddhub($Rss32,$Rtt32):sat",
3330 tc_0dfac0a7, TypeS_3op>, Enc_d2216a {
3331 let Inst{7-5} = 0b001;
3332 let Inst{13-13} = 0b0;
3333 let Inst{31-21} = 0b11000001010;
3334 let hasNewValue = 1;
3335 let opNewValue = 0;
3336 let prefersSlot3 = 1;
3337 let Defs = [USR_OVF];
3339 def A6_vcmpbeq_notany : HInst<
3340 (outs PredRegs:$Pd4),
3341 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3342 "$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))",
3343 tc_407e96f9, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> {
3344 let Inst{7-2} = 0b001000;
3345 let Inst{13-13} = 0b1;
3346 let Inst{31-21} = 0b11010010000;
3348 def A6_vminub_RdP : HInst<
3349 (outs DoubleRegs:$Rdd32, PredRegs:$Pe4),
3350 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
3351 "$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)",
3352 tc_7401744f, TypeM>, Enc_d2c7f1, Requires<[HasV62]> {
3353 let Inst{7-7} = 0b0;
3354 let Inst{13-13} = 0b0;
3355 let Inst{31-21} = 0b11101010111;
3356 let isPredicateLate = 1;
3357 let prefersSlot3 = 1;
3359 def A7_clip : HInst<
3360 (outs IntRegs:$Rd32),
3361 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3362 "$Rd32 = clip($Rs32,#$Ii)",
3363 tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV67,UseAudio]> {
3364 let Inst{7-5} = 0b101;
3365 let Inst{13-13} = 0b0;
3366 let Inst{31-21} = 0b10001000110;
3367 let hasNewValue = 1;
3368 let opNewValue = 0;
3370 def A7_croundd_ri : HInst<
3371 (outs DoubleRegs:$Rdd32),
3372 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
3373 "$Rdd32 = cround($Rss32,#$Ii)",
3374 tc_9b3c0462, TypeS_2op>, Enc_5eac98, Requires<[HasV67,UseAudio]> {
3375 let Inst{7-5} = 0b010;
3376 let Inst{31-21} = 0b10001100111;
3377 let prefersSlot3 = 1;
3379 def A7_croundd_rr : HInst<
3380 (outs DoubleRegs:$Rdd32),
3381 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3382 "$Rdd32 = cround($Rss32,$Rt32)",
3383 tc_9b3c0462, TypeS_3op>, Enc_927852, Requires<[HasV67,UseAudio]> {
3384 let Inst{7-5} = 0b010;
3385 let Inst{13-13} = 0b0;
3386 let Inst{31-21} = 0b11000110110;
3387 let prefersSlot3 = 1;
3389 def A7_vclip : HInst<
3390 (outs DoubleRegs:$Rdd32),
3391 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
3392 "$Rdd32 = vclip($Rss32,#$Ii)",
3393 tc_407e96f9, TypeS_2op>, Enc_7e5a82, Requires<[HasV67,UseAudio]> {
3394 let Inst{7-5} = 0b110;
3395 let Inst{13-13} = 0b0;
3396 let Inst{31-21} = 0b10001000110;
3398 def C2_all8 : HInst<
3399 (outs PredRegs:$Pd4),
3400 (ins PredRegs:$Ps4),
3401 "$Pd4 = all8($Ps4)",
3402 tc_151bf368, TypeCR>, Enc_65d691 {
3403 let Inst{13-2} = 0b000000000000;
3404 let Inst{31-18} = 0b01101011101000;
3406 def C2_and : HInst<
3407 (outs PredRegs:$Pd4),
3408 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3409 "$Pd4 = and($Pt4,$Ps4)",
3410 tc_651cbe02, TypeCR>, Enc_454a26 {
3411 let Inst{7-2} = 0b000000;
3412 let Inst{13-10} = 0b0000;
3413 let Inst{31-18} = 0b01101011000000;
3415 def C2_andn : HInst<
3416 (outs PredRegs:$Pd4),
3417 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3418 "$Pd4 = and($Pt4,!$Ps4)",
3419 tc_651cbe02, TypeCR>, Enc_454a26 {
3420 let Inst{7-2} = 0b000000;
3421 let Inst{13-10} = 0b0000;
3422 let Inst{31-18} = 0b01101011011000;
3424 def C2_any8 : HInst<
3425 (outs PredRegs:$Pd4),
3426 (ins PredRegs:$Ps4),
3427 "$Pd4 = any8($Ps4)",
3428 tc_151bf368, TypeCR>, Enc_65d691 {
3429 let Inst{13-2} = 0b000000000000;
3430 let Inst{31-18} = 0b01101011100000;
3432 def C2_bitsclr : HInst<
3433 (outs PredRegs:$Pd4),
3434 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3435 "$Pd4 = bitsclr($Rs32,$Rt32)",
3436 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
3437 let Inst{7-2} = 0b000000;
3438 let Inst{13-13} = 0b0;
3439 let Inst{31-21} = 0b11000111100;
3441 def C2_bitsclri : HInst<
3442 (outs PredRegs:$Pd4),
3443 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
3444 "$Pd4 = bitsclr($Rs32,#$Ii)",
3445 tc_a1297125, TypeS_2op>, Enc_5d6c34 {
3446 let Inst{7-2} = 0b000000;
3447 let Inst{31-21} = 0b10000101100;
3449 def C2_bitsset : HInst<
3450 (outs PredRegs:$Pd4),
3451 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3452 "$Pd4 = bitsset($Rs32,$Rt32)",
3453 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
3454 let Inst{7-2} = 0b000000;
3455 let Inst{13-13} = 0b0;
3456 let Inst{31-21} = 0b11000111010;
3458 def C2_ccombinewf : HInst<
3459 (outs DoubleRegs:$Rdd32),
3460 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3461 "if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3462 tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3463 let Inst{7-7} = 0b1;
3464 let Inst{13-13} = 0b0;
3465 let Inst{31-21} = 0b11111101000;
3466 let isPredicated = 1;
3467 let isPredicatedFalse = 1;
3468 let BaseOpcode = "A2_combinew";
3470 def C2_ccombinewnewf : HInst<
3471 (outs DoubleRegs:$Rdd32),
3472 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3473 "if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3474 tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3475 let Inst{7-7} = 0b1;
3476 let Inst{13-13} = 0b1;
3477 let Inst{31-21} = 0b11111101000;
3478 let isPredicated = 1;
3479 let isPredicatedFalse = 1;
3480 let isPredicatedNew = 1;
3481 let BaseOpcode = "A2_combinew";
3483 def C2_ccombinewnewt : HInst<
3484 (outs DoubleRegs:$Rdd32),
3485 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3486 "if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3487 tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3488 let Inst{7-7} = 0b0;
3489 let Inst{13-13} = 0b1;
3490 let Inst{31-21} = 0b11111101000;
3491 let isPredicated = 1;
3492 let isPredicatedNew = 1;
3493 let BaseOpcode = "A2_combinew";
3495 def C2_ccombinewt : HInst<
3496 (outs DoubleRegs:$Rdd32),
3497 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3498 "if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3499 tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3500 let Inst{7-7} = 0b0;
3501 let Inst{13-13} = 0b0;
3502 let Inst{31-21} = 0b11111101000;
3503 let isPredicated = 1;
3504 let BaseOpcode = "A2_combinew";
3506 def C2_cmoveif : HInst<
3507 (outs IntRegs:$Rd32),
3508 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3509 "if (!$Pu4) $Rd32 = #$Ii",
3510 tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3511 let Inst{13-13} = 0b0;
3512 let Inst{20-20} = 0b0;
3513 let Inst{31-23} = 0b011111101;
3514 let isPredicated = 1;
3515 let isPredicatedFalse = 1;
3516 let hasNewValue = 1;
3517 let opNewValue = 0;
3518 let BaseOpcode = "A2_tfrsi";
3519 let CextOpcode = "A2_tfr";
3520 let InputType = "imm";
3521 let isMoveImm = 1;
3522 let isExtendable = 1;
3523 let opExtendable = 2;
3524 let isExtentSigned = 1;
3525 let opExtentBits = 12;
3526 let opExtentAlign = 0;
3528 def C2_cmoveit : HInst<
3529 (outs IntRegs:$Rd32),
3530 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3531 "if ($Pu4) $Rd32 = #$Ii",
3532 tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3533 let Inst{13-13} = 0b0;
3534 let Inst{20-20} = 0b0;
3535 let Inst{31-23} = 0b011111100;
3536 let isPredicated = 1;
3537 let hasNewValue = 1;
3538 let opNewValue = 0;
3539 let BaseOpcode = "A2_tfrsi";
3540 let CextOpcode = "A2_tfr";
3541 let InputType = "imm";
3542 let isMoveImm = 1;
3543 let isExtendable = 1;
3544 let opExtendable = 2;
3545 let isExtentSigned = 1;
3546 let opExtentBits = 12;
3547 let opExtentAlign = 0;
3549 def C2_cmovenewif : HInst<
3550 (outs IntRegs:$Rd32),
3551 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3552 "if (!$Pu4.new) $Rd32 = #$Ii",
3553 tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3554 let Inst{13-13} = 0b1;
3555 let Inst{20-20} = 0b0;
3556 let Inst{31-23} = 0b011111101;
3557 let isPredicated = 1;
3558 let isPredicatedFalse = 1;
3559 let hasNewValue = 1;
3560 let opNewValue = 0;
3561 let isPredicatedNew = 1;
3562 let BaseOpcode = "A2_tfrsi";
3563 let CextOpcode = "A2_tfr";
3564 let InputType = "imm";
3565 let isMoveImm = 1;
3566 let isExtendable = 1;
3567 let opExtendable = 2;
3568 let isExtentSigned = 1;
3569 let opExtentBits = 12;
3570 let opExtentAlign = 0;
3572 def C2_cmovenewit : HInst<
3573 (outs IntRegs:$Rd32),
3574 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3575 "if ($Pu4.new) $Rd32 = #$Ii",
3576 tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3577 let Inst{13-13} = 0b1;
3578 let Inst{20-20} = 0b0;
3579 let Inst{31-23} = 0b011111100;
3580 let isPredicated = 1;
3581 let hasNewValue = 1;
3582 let opNewValue = 0;
3583 let isPredicatedNew = 1;
3584 let BaseOpcode = "A2_tfrsi";
3585 let CextOpcode = "A2_tfr";
3586 let InputType = "imm";
3587 let isMoveImm = 1;
3588 let isExtendable = 1;
3589 let opExtendable = 2;
3590 let isExtentSigned = 1;
3591 let opExtentBits = 12;
3592 let opExtentAlign = 0;
3594 def C2_cmpeq : HInst<
3595 (outs PredRegs:$Pd4),
3596 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3597 "$Pd4 = cmp.eq($Rs32,$Rt32)",
3598 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3599 let Inst{7-2} = 0b000000;
3600 let Inst{13-13} = 0b0;
3601 let Inst{31-21} = 0b11110010000;
3602 let CextOpcode = "C2_cmpeq";
3603 let InputType = "reg";
3604 let isCommutable = 1;
3605 let isCompare = 1;
3607 def C2_cmpeqi : HInst<
3608 (outs PredRegs:$Pd4),
3609 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3610 "$Pd4 = cmp.eq($Rs32,#$Ii)",
3611 tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3612 let Inst{4-2} = 0b000;
3613 let Inst{31-22} = 0b0111010100;
3614 let CextOpcode = "C2_cmpeq";
3615 let InputType = "imm";
3616 let isCompare = 1;
3617 let isExtendable = 1;
3618 let opExtendable = 2;
3619 let isExtentSigned = 1;
3620 let opExtentBits = 10;
3621 let opExtentAlign = 0;
3623 def C2_cmpeqp : HInst<
3624 (outs PredRegs:$Pd4),
3625 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3626 "$Pd4 = cmp.eq($Rss32,$Rtt32)",
3627 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3628 let Inst{7-2} = 0b000000;
3629 let Inst{13-13} = 0b0;
3630 let Inst{31-21} = 0b11010010100;
3631 let isCommutable = 1;
3632 let isCompare = 1;
3634 def C2_cmpgei : HInst<
3635 (outs PredRegs:$Pd4),
3636 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
3637 "$Pd4 = cmp.ge($Rs32,#$Ii)",
3638 tc_d33e5eee, TypeALU32_2op> {
3639 let isCompare = 1;
3640 let isPseudo = 1;
3642 def C2_cmpgeui : HInst<
3643 (outs PredRegs:$Pd4),
3644 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
3645 "$Pd4 = cmp.geu($Rs32,#$Ii)",
3646 tc_d33e5eee, TypeALU32_2op> {
3647 let isCompare = 1;
3648 let isPseudo = 1;
3650 def C2_cmpgt : HInst<
3651 (outs PredRegs:$Pd4),
3652 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3653 "$Pd4 = cmp.gt($Rs32,$Rt32)",
3654 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3655 let Inst{7-2} = 0b000000;
3656 let Inst{13-13} = 0b0;
3657 let Inst{31-21} = 0b11110010010;
3658 let CextOpcode = "C2_cmpgt";
3659 let InputType = "reg";
3660 let isCompare = 1;
3662 def C2_cmpgti : HInst<
3663 (outs PredRegs:$Pd4),
3664 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3665 "$Pd4 = cmp.gt($Rs32,#$Ii)",
3666 tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3667 let Inst{4-2} = 0b000;
3668 let Inst{31-22} = 0b0111010101;
3669 let CextOpcode = "C2_cmpgt";
3670 let InputType = "imm";
3671 let isCompare = 1;
3672 let isExtendable = 1;
3673 let opExtendable = 2;
3674 let isExtentSigned = 1;
3675 let opExtentBits = 10;
3676 let opExtentAlign = 0;
3678 def C2_cmpgtp : HInst<
3679 (outs PredRegs:$Pd4),
3680 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3681 "$Pd4 = cmp.gt($Rss32,$Rtt32)",
3682 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3683 let Inst{7-2} = 0b010000;
3684 let Inst{13-13} = 0b0;
3685 let Inst{31-21} = 0b11010010100;
3686 let isCompare = 1;
3688 def C2_cmpgtu : HInst<
3689 (outs PredRegs:$Pd4),
3690 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3691 "$Pd4 = cmp.gtu($Rs32,$Rt32)",
3692 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3693 let Inst{7-2} = 0b000000;
3694 let Inst{13-13} = 0b0;
3695 let Inst{31-21} = 0b11110010011;
3696 let CextOpcode = "C2_cmpgtu";
3697 let InputType = "reg";
3698 let isCompare = 1;
3700 def C2_cmpgtui : HInst<
3701 (outs PredRegs:$Pd4),
3702 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3703 "$Pd4 = cmp.gtu($Rs32,#$Ii)",
3704 tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3705 let Inst{4-2} = 0b000;
3706 let Inst{31-21} = 0b01110101100;
3707 let CextOpcode = "C2_cmpgtu";
3708 let InputType = "imm";
3709 let isCompare = 1;
3710 let isExtendable = 1;
3711 let opExtendable = 2;
3712 let isExtentSigned = 0;
3713 let opExtentBits = 9;
3714 let opExtentAlign = 0;
3716 def C2_cmpgtup : HInst<
3717 (outs PredRegs:$Pd4),
3718 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3719 "$Pd4 = cmp.gtu($Rss32,$Rtt32)",
3720 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
3721 let Inst{7-2} = 0b100000;
3722 let Inst{13-13} = 0b0;
3723 let Inst{31-21} = 0b11010010100;
3724 let isCompare = 1;
3726 def C2_cmplt : HInst<
3727 (outs PredRegs:$Pd4),
3728 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3729 "$Pd4 = cmp.lt($Rs32,$Rt32)",
3730 tc_d33e5eee, TypeALU32_3op> {
3731 let isCompare = 1;
3732 let isPseudo = 1;
3733 let isCodeGenOnly = 1;
3735 def C2_cmpltu : HInst<
3736 (outs PredRegs:$Pd4),
3737 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3738 "$Pd4 = cmp.ltu($Rs32,$Rt32)",
3739 tc_d33e5eee, TypeALU32_3op> {
3740 let isCompare = 1;
3741 let isPseudo = 1;
3742 let isCodeGenOnly = 1;
3744 def C2_mask : HInst<
3745 (outs DoubleRegs:$Rdd32),
3746 (ins PredRegs:$Pt4),
3747 "$Rdd32 = mask($Pt4)",
3748 tc_9f6cd987, TypeS_2op>, Enc_78e566 {
3749 let Inst{7-5} = 0b000;
3750 let Inst{13-10} = 0b0000;
3751 let Inst{31-16} = 0b1000011000000000;
3753 def C2_mux : HInst<
3754 (outs IntRegs:$Rd32),
3755 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3756 "$Rd32 = mux($Pu4,$Rs32,$Rt32)",
3757 tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54 {
3758 let Inst{7-7} = 0b0;
3759 let Inst{13-13} = 0b0;
3760 let Inst{31-21} = 0b11110100000;
3761 let hasNewValue = 1;
3762 let opNewValue = 0;
3763 let InputType = "reg";
3765 def C2_muxii : HInst<
3766 (outs IntRegs:$Rd32),
3767 (ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II),
3768 "$Rd32 = mux($Pu4,#$Ii,#$II)",
3769 tc_1c2c7a4a, TypeALU32_2op>, Enc_830e5d {
3770 let Inst{31-25} = 0b0111101;
3771 let hasNewValue = 1;
3772 let opNewValue = 0;
3773 let isExtendable = 1;
3774 let opExtendable = 2;
3775 let isExtentSigned = 1;
3776 let opExtentBits = 8;
3777 let opExtentAlign = 0;
3779 def C2_muxir : HInst<
3780 (outs IntRegs:$Rd32),
3781 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
3782 "$Rd32 = mux($Pu4,$Rs32,#$Ii)",
3783 tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f {
3784 let Inst{13-13} = 0b0;
3785 let Inst{31-23} = 0b011100110;
3786 let hasNewValue = 1;
3787 let opNewValue = 0;
3788 let InputType = "imm";
3789 let isExtendable = 1;
3790 let opExtendable = 3;
3791 let isExtentSigned = 1;
3792 let opExtentBits = 8;
3793 let opExtentAlign = 0;
3795 def C2_muxri : HInst<
3796 (outs IntRegs:$Rd32),
3797 (ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32),
3798 "$Rd32 = mux($Pu4,#$Ii,$Rs32)",
3799 tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f {
3800 let Inst{13-13} = 0b0;
3801 let Inst{31-23} = 0b011100111;
3802 let hasNewValue = 1;
3803 let opNewValue = 0;
3804 let InputType = "imm";
3805 let isExtendable = 1;
3806 let opExtendable = 2;
3807 let isExtentSigned = 1;
3808 let opExtentBits = 8;
3809 let opExtentAlign = 0;
3811 def C2_not : HInst<
3812 (outs PredRegs:$Pd4),
3813 (ins PredRegs:$Ps4),
3814 "$Pd4 = not($Ps4)",
3815 tc_151bf368, TypeCR>, Enc_65d691 {
3816 let Inst{13-2} = 0b000000000000;
3817 let Inst{31-18} = 0b01101011110000;
3819 def C2_or : HInst<
3820 (outs PredRegs:$Pd4),
3821 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3822 "$Pd4 = or($Pt4,$Ps4)",
3823 tc_651cbe02, TypeCR>, Enc_454a26 {
3824 let Inst{7-2} = 0b000000;
3825 let Inst{13-10} = 0b0000;
3826 let Inst{31-18} = 0b01101011001000;
3828 def C2_orn : HInst<
3829 (outs PredRegs:$Pd4),
3830 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3831 "$Pd4 = or($Pt4,!$Ps4)",
3832 tc_651cbe02, TypeCR>, Enc_454a26 {
3833 let Inst{7-2} = 0b000000;
3834 let Inst{13-10} = 0b0000;
3835 let Inst{31-18} = 0b01101011111000;
3837 def C2_pxfer_map : HInst<
3838 (outs PredRegs:$Pd4),
3839 (ins PredRegs:$Ps4),
3840 "$Pd4 = $Ps4",
3841 tc_651cbe02, TypeMAPPING> {
3842 let isPseudo = 1;
3843 let isCodeGenOnly = 1;
3845 def C2_tfrpr : HInst<
3846 (outs IntRegs:$Rd32),
3847 (ins PredRegs:$Ps4),
3848 "$Rd32 = $Ps4",
3849 tc_9f6cd987, TypeS_2op>, Enc_f5e933 {
3850 let Inst{13-5} = 0b000000000;
3851 let Inst{31-18} = 0b10001001010000;
3852 let hasNewValue = 1;
3853 let opNewValue = 0;
3855 def C2_tfrrp : HInst<
3856 (outs PredRegs:$Pd4),
3857 (ins IntRegs:$Rs32),
3858 "$Pd4 = $Rs32",
3859 tc_55b33fda, TypeS_2op>, Enc_48b75f {
3860 let Inst{13-2} = 0b000000000000;
3861 let Inst{31-21} = 0b10000101010;
3863 def C2_vitpack : HInst<
3864 (outs IntRegs:$Rd32),
3865 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3866 "$Rd32 = vitpack($Ps4,$Pt4)",
3867 tc_f34c1c21, TypeS_2op>, Enc_527412 {
3868 let Inst{7-5} = 0b000;
3869 let Inst{13-10} = 0b0000;
3870 let Inst{31-18} = 0b10001001000000;
3871 let hasNewValue = 1;
3872 let opNewValue = 0;
3873 let prefersSlot3 = 1;
3875 def C2_vmux : HInst<
3876 (outs DoubleRegs:$Rdd32),
3877 (ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3878 "$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)",
3879 tc_6fc5dbea, TypeALU64>, Enc_329361 {
3880 let Inst{7-7} = 0b0;
3881 let Inst{13-13} = 0b0;
3882 let Inst{31-21} = 0b11010001000;
3884 def C2_xor : HInst<
3885 (outs PredRegs:$Pd4),
3886 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3887 "$Pd4 = xor($Ps4,$Pt4)",
3888 tc_651cbe02, TypeCR>, Enc_284ebb {
3889 let Inst{7-2} = 0b000000;
3890 let Inst{13-10} = 0b0000;
3891 let Inst{31-18} = 0b01101011010000;
3893 def C4_addipc : HInst<
3894 (outs IntRegs:$Rd32),
3895 (ins u32_0Imm:$Ii),
3896 "$Rd32 = add(pc,#$Ii)",
3897 tc_3edca78f, TypeCR>, Enc_607661 {
3898 let Inst{6-5} = 0b00;
3899 let Inst{13-13} = 0b0;
3900 let Inst{31-16} = 0b0110101001001001;
3901 let hasNewValue = 1;
3902 let opNewValue = 0;
3903 let isExtendable = 1;
3904 let opExtendable = 1;
3905 let isExtentSigned = 0;
3906 let opExtentBits = 6;
3907 let opExtentAlign = 0;
3909 def C4_and_and : HInst<
3910 (outs PredRegs:$Pd4),
3911 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3912 "$Pd4 = and($Ps4,and($Pt4,$Pu4))",
3913 tc_a7a13fac, TypeCR>, Enc_9ac432 {
3914 let Inst{5-2} = 0b0000;
3915 let Inst{13-10} = 0b0000;
3916 let Inst{31-18} = 0b01101011000100;
3918 def C4_and_andn : HInst<
3919 (outs PredRegs:$Pd4),
3920 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3921 "$Pd4 = and($Ps4,and($Pt4,!$Pu4))",
3922 tc_a7a13fac, TypeCR>, Enc_9ac432 {
3923 let Inst{5-2} = 0b0000;
3924 let Inst{13-10} = 0b0000;
3925 let Inst{31-18} = 0b01101011100100;
3927 def C4_and_or : HInst<
3928 (outs PredRegs:$Pd4),
3929 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3930 "$Pd4 = and($Ps4,or($Pt4,$Pu4))",
3931 tc_a7a13fac, TypeCR>, Enc_9ac432 {
3932 let Inst{5-2} = 0b0000;
3933 let Inst{13-10} = 0b0000;
3934 let Inst{31-18} = 0b01101011001100;
3936 def C4_and_orn : HInst<
3937 (outs PredRegs:$Pd4),
3938 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3939 "$Pd4 = and($Ps4,or($Pt4,!$Pu4))",
3940 tc_a7a13fac, TypeCR>, Enc_9ac432 {
3941 let Inst{5-2} = 0b0000;
3942 let Inst{13-10} = 0b0000;
3943 let Inst{31-18} = 0b01101011101100;
3945 def C4_cmplte : HInst<
3946 (outs PredRegs:$Pd4),
3947 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3948 "$Pd4 = !cmp.gt($Rs32,$Rt32)",
3949 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3950 let Inst{7-2} = 0b000100;
3951 let Inst{13-13} = 0b0;
3952 let Inst{31-21} = 0b11110010010;
3953 let CextOpcode = "C4_cmplte";
3954 let InputType = "reg";
3955 let isCompare = 1;
3957 def C4_cmpltei : HInst<
3958 (outs PredRegs:$Pd4),
3959 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3960 "$Pd4 = !cmp.gt($Rs32,#$Ii)",
3961 tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3962 let Inst{4-2} = 0b100;
3963 let Inst{31-22} = 0b0111010101;
3964 let CextOpcode = "C4_cmplte";
3965 let InputType = "imm";
3966 let isCompare = 1;
3967 let isExtendable = 1;
3968 let opExtendable = 2;
3969 let isExtentSigned = 1;
3970 let opExtentBits = 10;
3971 let opExtentAlign = 0;
3973 def C4_cmplteu : HInst<
3974 (outs PredRegs:$Pd4),
3975 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3976 "$Pd4 = !cmp.gtu($Rs32,$Rt32)",
3977 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3978 let Inst{7-2} = 0b000100;
3979 let Inst{13-13} = 0b0;
3980 let Inst{31-21} = 0b11110010011;
3981 let CextOpcode = "C4_cmplteu";
3982 let InputType = "reg";
3983 let isCompare = 1;
3985 def C4_cmplteui : HInst<
3986 (outs PredRegs:$Pd4),
3987 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3988 "$Pd4 = !cmp.gtu($Rs32,#$Ii)",
3989 tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3990 let Inst{4-2} = 0b100;
3991 let Inst{31-21} = 0b01110101100;
3992 let CextOpcode = "C4_cmplteu";
3993 let InputType = "imm";
3994 let isCompare = 1;
3995 let isExtendable = 1;
3996 let opExtendable = 2;
3997 let isExtentSigned = 0;
3998 let opExtentBits = 9;
3999 let opExtentAlign = 0;
4001 def C4_cmpneq : HInst<
4002 (outs PredRegs:$Pd4),
4003 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4004 "$Pd4 = !cmp.eq($Rs32,$Rt32)",
4005 tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
4006 let Inst{7-2} = 0b000100;
4007 let Inst{13-13} = 0b0;
4008 let Inst{31-21} = 0b11110010000;
4009 let CextOpcode = "C4_cmpneq";
4010 let InputType = "reg";
4011 let isCommutable = 1;
4012 let isCompare = 1;
4014 def C4_cmpneqi : HInst<
4015 (outs PredRegs:$Pd4),
4016 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
4017 "$Pd4 = !cmp.eq($Rs32,#$Ii)",
4018 tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
4019 let Inst{4-2} = 0b100;
4020 let Inst{31-22} = 0b0111010100;
4021 let CextOpcode = "C4_cmpneq";
4022 let InputType = "imm";
4023 let isCompare = 1;
4024 let isExtendable = 1;
4025 let opExtendable = 2;
4026 let isExtentSigned = 1;
4027 let opExtentBits = 10;
4028 let opExtentAlign = 0;
4030 def C4_fastcorner9 : HInst<
4031 (outs PredRegs:$Pd4),
4032 (ins PredRegs:$Ps4, PredRegs:$Pt4),
4033 "$Pd4 = fastcorner9($Ps4,$Pt4)",
4034 tc_651cbe02, TypeCR>, Enc_284ebb {
4035 let Inst{7-2} = 0b100100;
4036 let Inst{13-10} = 0b1000;
4037 let Inst{31-18} = 0b01101011000000;
4039 def C4_fastcorner9_not : HInst<
4040 (outs PredRegs:$Pd4),
4041 (ins PredRegs:$Ps4, PredRegs:$Pt4),
4042 "$Pd4 = !fastcorner9($Ps4,$Pt4)",
4043 tc_651cbe02, TypeCR>, Enc_284ebb {
4044 let Inst{7-2} = 0b100100;
4045 let Inst{13-10} = 0b1000;
4046 let Inst{31-18} = 0b01101011000100;
4048 def C4_nbitsclr : HInst<
4049 (outs PredRegs:$Pd4),
4050 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4051 "$Pd4 = !bitsclr($Rs32,$Rt32)",
4052 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4053 let Inst{7-2} = 0b000000;
4054 let Inst{13-13} = 0b0;
4055 let Inst{31-21} = 0b11000111101;
4057 def C4_nbitsclri : HInst<
4058 (outs PredRegs:$Pd4),
4059 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
4060 "$Pd4 = !bitsclr($Rs32,#$Ii)",
4061 tc_a1297125, TypeS_2op>, Enc_5d6c34 {
4062 let Inst{7-2} = 0b000000;
4063 let Inst{31-21} = 0b10000101101;
4065 def C4_nbitsset : HInst<
4066 (outs PredRegs:$Pd4),
4067 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4068 "$Pd4 = !bitsset($Rs32,$Rt32)",
4069 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4070 let Inst{7-2} = 0b000000;
4071 let Inst{13-13} = 0b0;
4072 let Inst{31-21} = 0b11000111011;
4074 def C4_or_and : HInst<
4075 (outs PredRegs:$Pd4),
4076 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4077 "$Pd4 = or($Ps4,and($Pt4,$Pu4))",
4078 tc_a7a13fac, TypeCR>, Enc_9ac432 {
4079 let Inst{5-2} = 0b0000;
4080 let Inst{13-10} = 0b0000;
4081 let Inst{31-18} = 0b01101011010100;
4083 def C4_or_andn : HInst<
4084 (outs PredRegs:$Pd4),
4085 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4086 "$Pd4 = or($Ps4,and($Pt4,!$Pu4))",
4087 tc_a7a13fac, TypeCR>, Enc_9ac432 {
4088 let Inst{5-2} = 0b0000;
4089 let Inst{13-10} = 0b0000;
4090 let Inst{31-18} = 0b01101011110100;
4092 def C4_or_or : HInst<
4093 (outs PredRegs:$Pd4),
4094 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4095 "$Pd4 = or($Ps4,or($Pt4,$Pu4))",
4096 tc_a7a13fac, TypeCR>, Enc_9ac432 {
4097 let Inst{5-2} = 0b0000;
4098 let Inst{13-10} = 0b0000;
4099 let Inst{31-18} = 0b01101011011100;
4101 def C4_or_orn : HInst<
4102 (outs PredRegs:$Pd4),
4103 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4104 "$Pd4 = or($Ps4,or($Pt4,!$Pu4))",
4105 tc_a7a13fac, TypeCR>, Enc_9ac432 {
4106 let Inst{5-2} = 0b0000;
4107 let Inst{13-10} = 0b0000;
4108 let Inst{31-18} = 0b01101011111100;
4110 def F2_conv_d2df : HInst<
4111 (outs DoubleRegs:$Rdd32),
4112 (ins DoubleRegs:$Rss32),
4113 "$Rdd32 = convert_d2df($Rss32)",
4114 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4115 let Inst{13-5} = 0b000000011;
4116 let Inst{31-21} = 0b10000000111;
4117 let isFP = 1;
4118 let Uses = [USR];
4120 def F2_conv_d2sf : HInst<
4121 (outs IntRegs:$Rd32),
4122 (ins DoubleRegs:$Rss32),
4123 "$Rd32 = convert_d2sf($Rss32)",
4124 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4125 let Inst{13-5} = 0b000000001;
4126 let Inst{31-21} = 0b10001000010;
4127 let hasNewValue = 1;
4128 let opNewValue = 0;
4129 let isFP = 1;
4130 let Uses = [USR];
4132 def F2_conv_df2d : HInst<
4133 (outs DoubleRegs:$Rdd32),
4134 (ins DoubleRegs:$Rss32),
4135 "$Rdd32 = convert_df2d($Rss32)",
4136 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4137 let Inst{13-5} = 0b000000000;
4138 let Inst{31-21} = 0b10000000111;
4139 let isFP = 1;
4140 let Uses = [USR];
4142 def F2_conv_df2d_chop : HInst<
4143 (outs DoubleRegs:$Rdd32),
4144 (ins DoubleRegs:$Rss32),
4145 "$Rdd32 = convert_df2d($Rss32):chop",
4146 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4147 let Inst{13-5} = 0b000000110;
4148 let Inst{31-21} = 0b10000000111;
4149 let isFP = 1;
4150 let Uses = [USR];
4152 def F2_conv_df2sf : HInst<
4153 (outs IntRegs:$Rd32),
4154 (ins DoubleRegs:$Rss32),
4155 "$Rd32 = convert_df2sf($Rss32)",
4156 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4157 let Inst{13-5} = 0b000000001;
4158 let Inst{31-21} = 0b10001000000;
4159 let hasNewValue = 1;
4160 let opNewValue = 0;
4161 let isFP = 1;
4162 let Uses = [USR];
4164 def F2_conv_df2ud : HInst<
4165 (outs DoubleRegs:$Rdd32),
4166 (ins DoubleRegs:$Rss32),
4167 "$Rdd32 = convert_df2ud($Rss32)",
4168 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4169 let Inst{13-5} = 0b000000001;
4170 let Inst{31-21} = 0b10000000111;
4171 let isFP = 1;
4172 let Uses = [USR];
4174 def F2_conv_df2ud_chop : HInst<
4175 (outs DoubleRegs:$Rdd32),
4176 (ins DoubleRegs:$Rss32),
4177 "$Rdd32 = convert_df2ud($Rss32):chop",
4178 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4179 let Inst{13-5} = 0b000000111;
4180 let Inst{31-21} = 0b10000000111;
4181 let isFP = 1;
4182 let Uses = [USR];
4184 def F2_conv_df2uw : HInst<
4185 (outs IntRegs:$Rd32),
4186 (ins DoubleRegs:$Rss32),
4187 "$Rd32 = convert_df2uw($Rss32)",
4188 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4189 let Inst{13-5} = 0b000000001;
4190 let Inst{31-21} = 0b10001000011;
4191 let hasNewValue = 1;
4192 let opNewValue = 0;
4193 let isFP = 1;
4194 let Uses = [USR];
4196 def F2_conv_df2uw_chop : HInst<
4197 (outs IntRegs:$Rd32),
4198 (ins DoubleRegs:$Rss32),
4199 "$Rd32 = convert_df2uw($Rss32):chop",
4200 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4201 let Inst{13-5} = 0b000000001;
4202 let Inst{31-21} = 0b10001000101;
4203 let hasNewValue = 1;
4204 let opNewValue = 0;
4205 let isFP = 1;
4206 let Uses = [USR];
4208 def F2_conv_df2w : HInst<
4209 (outs IntRegs:$Rd32),
4210 (ins DoubleRegs:$Rss32),
4211 "$Rd32 = convert_df2w($Rss32)",
4212 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4213 let Inst{13-5} = 0b000000001;
4214 let Inst{31-21} = 0b10001000100;
4215 let hasNewValue = 1;
4216 let opNewValue = 0;
4217 let isFP = 1;
4218 let Uses = [USR];
4220 def F2_conv_df2w_chop : HInst<
4221 (outs IntRegs:$Rd32),
4222 (ins DoubleRegs:$Rss32),
4223 "$Rd32 = convert_df2w($Rss32):chop",
4224 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4225 let Inst{13-5} = 0b000000001;
4226 let Inst{31-21} = 0b10001000111;
4227 let hasNewValue = 1;
4228 let opNewValue = 0;
4229 let isFP = 1;
4230 let Uses = [USR];
4232 def F2_conv_sf2d : HInst<
4233 (outs DoubleRegs:$Rdd32),
4234 (ins IntRegs:$Rs32),
4235 "$Rdd32 = convert_sf2d($Rs32)",
4236 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4237 let Inst{13-5} = 0b000000100;
4238 let Inst{31-21} = 0b10000100100;
4239 let isFP = 1;
4240 let Uses = [USR];
4242 def F2_conv_sf2d_chop : HInst<
4243 (outs DoubleRegs:$Rdd32),
4244 (ins IntRegs:$Rs32),
4245 "$Rdd32 = convert_sf2d($Rs32):chop",
4246 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4247 let Inst{13-5} = 0b000000110;
4248 let Inst{31-21} = 0b10000100100;
4249 let isFP = 1;
4250 let Uses = [USR];
4252 def F2_conv_sf2df : HInst<
4253 (outs DoubleRegs:$Rdd32),
4254 (ins IntRegs:$Rs32),
4255 "$Rdd32 = convert_sf2df($Rs32)",
4256 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4257 let Inst{13-5} = 0b000000000;
4258 let Inst{31-21} = 0b10000100100;
4259 let isFP = 1;
4260 let Uses = [USR];
4262 def F2_conv_sf2ud : HInst<
4263 (outs DoubleRegs:$Rdd32),
4264 (ins IntRegs:$Rs32),
4265 "$Rdd32 = convert_sf2ud($Rs32)",
4266 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4267 let Inst{13-5} = 0b000000011;
4268 let Inst{31-21} = 0b10000100100;
4269 let isFP = 1;
4270 let Uses = [USR];
4272 def F2_conv_sf2ud_chop : HInst<
4273 (outs DoubleRegs:$Rdd32),
4274 (ins IntRegs:$Rs32),
4275 "$Rdd32 = convert_sf2ud($Rs32):chop",
4276 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4277 let Inst{13-5} = 0b000000101;
4278 let Inst{31-21} = 0b10000100100;
4279 let isFP = 1;
4280 let Uses = [USR];
4282 def F2_conv_sf2uw : HInst<
4283 (outs IntRegs:$Rd32),
4284 (ins IntRegs:$Rs32),
4285 "$Rd32 = convert_sf2uw($Rs32)",
4286 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4287 let Inst{13-5} = 0b000000000;
4288 let Inst{31-21} = 0b10001011011;
4289 let hasNewValue = 1;
4290 let opNewValue = 0;
4291 let isFP = 1;
4292 let Uses = [USR];
4294 def F2_conv_sf2uw_chop : HInst<
4295 (outs IntRegs:$Rd32),
4296 (ins IntRegs:$Rs32),
4297 "$Rd32 = convert_sf2uw($Rs32):chop",
4298 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4299 let Inst{13-5} = 0b000000001;
4300 let Inst{31-21} = 0b10001011011;
4301 let hasNewValue = 1;
4302 let opNewValue = 0;
4303 let isFP = 1;
4304 let Uses = [USR];
4306 def F2_conv_sf2w : HInst<
4307 (outs IntRegs:$Rd32),
4308 (ins IntRegs:$Rs32),
4309 "$Rd32 = convert_sf2w($Rs32)",
4310 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4311 let Inst{13-5} = 0b000000000;
4312 let Inst{31-21} = 0b10001011100;
4313 let hasNewValue = 1;
4314 let opNewValue = 0;
4315 let isFP = 1;
4316 let Uses = [USR];
4318 def F2_conv_sf2w_chop : HInst<
4319 (outs IntRegs:$Rd32),
4320 (ins IntRegs:$Rs32),
4321 "$Rd32 = convert_sf2w($Rs32):chop",
4322 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4323 let Inst{13-5} = 0b000000001;
4324 let Inst{31-21} = 0b10001011100;
4325 let hasNewValue = 1;
4326 let opNewValue = 0;
4327 let isFP = 1;
4328 let Uses = [USR];
4330 def F2_conv_ud2df : HInst<
4331 (outs DoubleRegs:$Rdd32),
4332 (ins DoubleRegs:$Rss32),
4333 "$Rdd32 = convert_ud2df($Rss32)",
4334 tc_9783714b, TypeS_2op>, Enc_b9c5fb {
4335 let Inst{13-5} = 0b000000010;
4336 let Inst{31-21} = 0b10000000111;
4337 let isFP = 1;
4338 let Uses = [USR];
4340 def F2_conv_ud2sf : HInst<
4341 (outs IntRegs:$Rd32),
4342 (ins DoubleRegs:$Rss32),
4343 "$Rd32 = convert_ud2sf($Rss32)",
4344 tc_9783714b, TypeS_2op>, Enc_90cd8b {
4345 let Inst{13-5} = 0b000000001;
4346 let Inst{31-21} = 0b10001000001;
4347 let hasNewValue = 1;
4348 let opNewValue = 0;
4349 let isFP = 1;
4350 let Uses = [USR];
4352 def F2_conv_uw2df : HInst<
4353 (outs DoubleRegs:$Rdd32),
4354 (ins IntRegs:$Rs32),
4355 "$Rdd32 = convert_uw2df($Rs32)",
4356 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4357 let Inst{13-5} = 0b000000001;
4358 let Inst{31-21} = 0b10000100100;
4359 let isFP = 1;
4360 let Uses = [USR];
4362 def F2_conv_uw2sf : HInst<
4363 (outs IntRegs:$Rd32),
4364 (ins IntRegs:$Rs32),
4365 "$Rd32 = convert_uw2sf($Rs32)",
4366 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4367 let Inst{13-5} = 0b000000000;
4368 let Inst{31-21} = 0b10001011001;
4369 let hasNewValue = 1;
4370 let opNewValue = 0;
4371 let isFP = 1;
4372 let Uses = [USR];
4374 def F2_conv_w2df : HInst<
4375 (outs DoubleRegs:$Rdd32),
4376 (ins IntRegs:$Rs32),
4377 "$Rdd32 = convert_w2df($Rs32)",
4378 tc_9783714b, TypeS_2op>, Enc_3a3d62 {
4379 let Inst{13-5} = 0b000000010;
4380 let Inst{31-21} = 0b10000100100;
4381 let isFP = 1;
4382 let Uses = [USR];
4384 def F2_conv_w2sf : HInst<
4385 (outs IntRegs:$Rd32),
4386 (ins IntRegs:$Rs32),
4387 "$Rd32 = convert_w2sf($Rs32)",
4388 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4389 let Inst{13-5} = 0b000000000;
4390 let Inst{31-21} = 0b10001011010;
4391 let hasNewValue = 1;
4392 let opNewValue = 0;
4393 let isFP = 1;
4394 let Uses = [USR];
4396 def F2_dfadd : HInst<
4397 (outs DoubleRegs:$Rdd32),
4398 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4399 "$Rdd32 = dfadd($Rss32,$Rtt32)",
4400 tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> {
4401 let Inst{7-5} = 0b011;
4402 let Inst{13-13} = 0b0;
4403 let Inst{31-21} = 0b11101000000;
4404 let isFP = 1;
4405 let Uses = [USR];
4407 def F2_dfclass : HInst<
4408 (outs PredRegs:$Pd4),
4409 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
4410 "$Pd4 = dfclass($Rss32,#$Ii)",
4411 tc_a1297125, TypeALU64>, Enc_1f19b5 {
4412 let Inst{4-2} = 0b100;
4413 let Inst{13-10} = 0b0000;
4414 let Inst{31-21} = 0b11011100100;
4415 let isFP = 1;
4416 let Uses = [USR];
4418 def F2_dfcmpeq : HInst<
4419 (outs PredRegs:$Pd4),
4420 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4421 "$Pd4 = dfcmp.eq($Rss32,$Rtt32)",
4422 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4423 let Inst{7-2} = 0b000000;
4424 let Inst{13-13} = 0b0;
4425 let Inst{31-21} = 0b11010010111;
4426 let isFP = 1;
4427 let Uses = [USR];
4428 let isCompare = 1;
4430 def F2_dfcmpge : HInst<
4431 (outs PredRegs:$Pd4),
4432 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4433 "$Pd4 = dfcmp.ge($Rss32,$Rtt32)",
4434 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4435 let Inst{7-2} = 0b010000;
4436 let Inst{13-13} = 0b0;
4437 let Inst{31-21} = 0b11010010111;
4438 let isFP = 1;
4439 let Uses = [USR];
4440 let isCompare = 1;
4442 def F2_dfcmpgt : HInst<
4443 (outs PredRegs:$Pd4),
4444 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4445 "$Pd4 = dfcmp.gt($Rss32,$Rtt32)",
4446 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4447 let Inst{7-2} = 0b001000;
4448 let Inst{13-13} = 0b0;
4449 let Inst{31-21} = 0b11010010111;
4450 let isFP = 1;
4451 let Uses = [USR];
4452 let isCompare = 1;
4454 def F2_dfcmpuo : HInst<
4455 (outs PredRegs:$Pd4),
4456 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4457 "$Pd4 = dfcmp.uo($Rss32,$Rtt32)",
4458 tc_4a55d03c, TypeALU64>, Enc_fcf7a7 {
4459 let Inst{7-2} = 0b011000;
4460 let Inst{13-13} = 0b0;
4461 let Inst{31-21} = 0b11010010111;
4462 let isFP = 1;
4463 let Uses = [USR];
4464 let isCompare = 1;
4466 def F2_dfimm_n : HInst<
4467 (outs DoubleRegs:$Rdd32),
4468 (ins u10_0Imm:$Ii),
4469 "$Rdd32 = dfmake(#$Ii):neg",
4470 tc_65279839, TypeALU64>, Enc_e6c957 {
4471 let Inst{20-16} = 0b00000;
4472 let Inst{31-22} = 0b1101100101;
4473 let prefersSlot3 = 1;
4475 def F2_dfimm_p : HInst<
4476 (outs DoubleRegs:$Rdd32),
4477 (ins u10_0Imm:$Ii),
4478 "$Rdd32 = dfmake(#$Ii):pos",
4479 tc_65279839, TypeALU64>, Enc_e6c957 {
4480 let Inst{20-16} = 0b00000;
4481 let Inst{31-22} = 0b1101100100;
4482 let prefersSlot3 = 1;
4484 def F2_dfmax : HInst<
4485 (outs DoubleRegs:$Rdd32),
4486 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4487 "$Rdd32 = dfmax($Rss32,$Rtt32)",
4488 tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> {
4489 let Inst{7-5} = 0b011;
4490 let Inst{13-13} = 0b0;
4491 let Inst{31-21} = 0b11101000001;
4492 let isFP = 1;
4493 let prefersSlot3 = 1;
4494 let Uses = [USR];
4496 def F2_dfmin : HInst<
4497 (outs DoubleRegs:$Rdd32),
4498 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4499 "$Rdd32 = dfmin($Rss32,$Rtt32)",
4500 tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> {
4501 let Inst{7-5} = 0b011;
4502 let Inst{13-13} = 0b0;
4503 let Inst{31-21} = 0b11101000110;
4504 let isFP = 1;
4505 let prefersSlot3 = 1;
4506 let Uses = [USR];
4508 def F2_dfmpyfix : HInst<
4509 (outs DoubleRegs:$Rdd32),
4510 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4511 "$Rdd32 = dfmpyfix($Rss32,$Rtt32)",
4512 tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV67]> {
4513 let Inst{7-5} = 0b011;
4514 let Inst{13-13} = 0b0;
4515 let Inst{31-21} = 0b11101000010;
4516 let isFP = 1;
4517 let Uses = [USR];
4519 def F2_dfmpyhh : HInst<
4520 (outs DoubleRegs:$Rxx32),
4521 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4522 "$Rxx32 += dfmpyhh($Rss32,$Rtt32)",
4523 tc_0a195f2c, TypeM>, Enc_88c16c, Requires<[HasV67]> {
4524 let Inst{7-5} = 0b011;
4525 let Inst{13-13} = 0b0;
4526 let Inst{31-21} = 0b11101010100;
4527 let isFP = 1;
4528 let Uses = [USR];
4529 let Constraints = "$Rxx32 = $Rxx32in";
4531 def F2_dfmpylh : HInst<
4532 (outs DoubleRegs:$Rxx32),
4533 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4534 "$Rxx32 += dfmpylh($Rss32,$Rtt32)",
4535 tc_01e1be3b, TypeM>, Enc_88c16c, Requires<[HasV67]> {
4536 let Inst{7-5} = 0b011;
4537 let Inst{13-13} = 0b0;
4538 let Inst{31-21} = 0b11101010000;
4539 let prefersSlot3 = 1;
4540 let Constraints = "$Rxx32 = $Rxx32in";
4542 def F2_dfmpyll : HInst<
4543 (outs DoubleRegs:$Rdd32),
4544 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4545 "$Rdd32 = dfmpyll($Rss32,$Rtt32)",
4546 tc_556f6577, TypeM>, Enc_a56825, Requires<[HasV67]> {
4547 let Inst{7-5} = 0b011;
4548 let Inst{13-13} = 0b0;
4549 let Inst{31-21} = 0b11101000101;
4550 let prefersSlot3 = 1;
4552 def F2_dfsub : HInst<
4553 (outs DoubleRegs:$Rdd32),
4554 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4555 "$Rdd32 = dfsub($Rss32,$Rtt32)",
4556 tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> {
4557 let Inst{7-5} = 0b011;
4558 let Inst{13-13} = 0b0;
4559 let Inst{31-21} = 0b11101000100;
4560 let isFP = 1;
4561 let Uses = [USR];
4563 def F2_sfadd : HInst<
4564 (outs IntRegs:$Rd32),
4565 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4566 "$Rd32 = sfadd($Rs32,$Rt32)",
4567 tc_02fe1c65, TypeM>, Enc_5ab2be {
4568 let Inst{7-5} = 0b000;
4569 let Inst{13-13} = 0b0;
4570 let Inst{31-21} = 0b11101011000;
4571 let hasNewValue = 1;
4572 let opNewValue = 0;
4573 let isFP = 1;
4574 let Uses = [USR];
4575 let isCommutable = 1;
4577 def F2_sfclass : HInst<
4578 (outs PredRegs:$Pd4),
4579 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
4580 "$Pd4 = sfclass($Rs32,#$Ii)",
4581 tc_a1297125, TypeS_2op>, Enc_83ee64 {
4582 let Inst{7-2} = 0b000000;
4583 let Inst{13-13} = 0b0;
4584 let Inst{31-21} = 0b10000101111;
4585 let isFP = 1;
4586 let Uses = [USR];
4588 def F2_sfcmpeq : HInst<
4589 (outs PredRegs:$Pd4),
4590 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4591 "$Pd4 = sfcmp.eq($Rs32,$Rt32)",
4592 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4593 let Inst{7-2} = 0b011000;
4594 let Inst{13-13} = 0b0;
4595 let Inst{31-21} = 0b11000111111;
4596 let isFP = 1;
4597 let Uses = [USR];
4598 let isCompare = 1;
4600 def F2_sfcmpge : HInst<
4601 (outs PredRegs:$Pd4),
4602 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4603 "$Pd4 = sfcmp.ge($Rs32,$Rt32)",
4604 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4605 let Inst{7-2} = 0b000000;
4606 let Inst{13-13} = 0b0;
4607 let Inst{31-21} = 0b11000111111;
4608 let isFP = 1;
4609 let Uses = [USR];
4610 let isCompare = 1;
4612 def F2_sfcmpgt : HInst<
4613 (outs PredRegs:$Pd4),
4614 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4615 "$Pd4 = sfcmp.gt($Rs32,$Rt32)",
4616 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4617 let Inst{7-2} = 0b100000;
4618 let Inst{13-13} = 0b0;
4619 let Inst{31-21} = 0b11000111111;
4620 let isFP = 1;
4621 let Uses = [USR];
4622 let isCompare = 1;
4624 def F2_sfcmpuo : HInst<
4625 (outs PredRegs:$Pd4),
4626 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4627 "$Pd4 = sfcmp.uo($Rs32,$Rt32)",
4628 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
4629 let Inst{7-2} = 0b001000;
4630 let Inst{13-13} = 0b0;
4631 let Inst{31-21} = 0b11000111111;
4632 let isFP = 1;
4633 let Uses = [USR];
4634 let isCompare = 1;
4636 def F2_sffixupd : HInst<
4637 (outs IntRegs:$Rd32),
4638 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4639 "$Rd32 = sffixupd($Rs32,$Rt32)",
4640 tc_02fe1c65, TypeM>, Enc_5ab2be {
4641 let Inst{7-5} = 0b001;
4642 let Inst{13-13} = 0b0;
4643 let Inst{31-21} = 0b11101011110;
4644 let hasNewValue = 1;
4645 let opNewValue = 0;
4646 let isFP = 1;
4648 def F2_sffixupn : HInst<
4649 (outs IntRegs:$Rd32),
4650 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4651 "$Rd32 = sffixupn($Rs32,$Rt32)",
4652 tc_02fe1c65, TypeM>, Enc_5ab2be {
4653 let Inst{7-5} = 0b000;
4654 let Inst{13-13} = 0b0;
4655 let Inst{31-21} = 0b11101011110;
4656 let hasNewValue = 1;
4657 let opNewValue = 0;
4658 let isFP = 1;
4660 def F2_sffixupr : HInst<
4661 (outs IntRegs:$Rd32),
4662 (ins IntRegs:$Rs32),
4663 "$Rd32 = sffixupr($Rs32)",
4664 tc_9783714b, TypeS_2op>, Enc_5e2823 {
4665 let Inst{13-5} = 0b000000000;
4666 let Inst{31-21} = 0b10001011101;
4667 let hasNewValue = 1;
4668 let opNewValue = 0;
4669 let isFP = 1;
4671 def F2_sffma : HInst<
4672 (outs IntRegs:$Rx32),
4673 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4674 "$Rx32 += sfmpy($Rs32,$Rt32)",
4675 tc_9e72dc89, TypeM>, Enc_2ae154 {
4676 let Inst{7-5} = 0b100;
4677 let Inst{13-13} = 0b0;
4678 let Inst{31-21} = 0b11101111000;
4679 let hasNewValue = 1;
4680 let opNewValue = 0;
4681 let isFP = 1;
4682 let Uses = [USR];
4683 let Constraints = "$Rx32 = $Rx32in";
4685 def F2_sffma_lib : HInst<
4686 (outs IntRegs:$Rx32),
4687 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4688 "$Rx32 += sfmpy($Rs32,$Rt32):lib",
4689 tc_9e72dc89, TypeM>, Enc_2ae154 {
4690 let Inst{7-5} = 0b110;
4691 let Inst{13-13} = 0b0;
4692 let Inst{31-21} = 0b11101111000;
4693 let hasNewValue = 1;
4694 let opNewValue = 0;
4695 let isFP = 1;
4696 let Uses = [USR];
4697 let Constraints = "$Rx32 = $Rx32in";
4699 def 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",
4703 tc_9edb7c77, TypeM>, Enc_437f33 {
4704 let Inst{7-7} = 0b1;
4705 let Inst{13-13} = 0b0;
4706 let Inst{31-21} = 0b11101111011;
4707 let hasNewValue = 1;
4708 let opNewValue = 0;
4709 let isFP = 1;
4710 let Uses = [USR];
4711 let Constraints = "$Rx32 = $Rx32in";
4713 def F2_sffms : HInst<
4714 (outs IntRegs:$Rx32),
4715 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4716 "$Rx32 -= sfmpy($Rs32,$Rt32)",
4717 tc_9e72dc89, TypeM>, Enc_2ae154 {
4718 let Inst{7-5} = 0b101;
4719 let Inst{13-13} = 0b0;
4720 let Inst{31-21} = 0b11101111000;
4721 let hasNewValue = 1;
4722 let opNewValue = 0;
4723 let isFP = 1;
4724 let Uses = [USR];
4725 let Constraints = "$Rx32 = $Rx32in";
4727 def F2_sffms_lib : HInst<
4728 (outs IntRegs:$Rx32),
4729 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4730 "$Rx32 -= sfmpy($Rs32,$Rt32):lib",
4731 tc_9e72dc89, TypeM>, Enc_2ae154 {
4732 let Inst{7-5} = 0b111;
4733 let Inst{13-13} = 0b0;
4734 let Inst{31-21} = 0b11101111000;
4735 let hasNewValue = 1;
4736 let opNewValue = 0;
4737 let isFP = 1;
4738 let Uses = [USR];
4739 let Constraints = "$Rx32 = $Rx32in";
4741 def F2_sfimm_n : HInst<
4742 (outs IntRegs:$Rd32),
4743 (ins u10_0Imm:$Ii),
4744 "$Rd32 = sfmake(#$Ii):neg",
4745 tc_65279839, TypeALU64>, Enc_6c9440 {
4746 let Inst{20-16} = 0b00000;
4747 let Inst{31-22} = 0b1101011001;
4748 let hasNewValue = 1;
4749 let opNewValue = 0;
4750 let prefersSlot3 = 1;
4752 def F2_sfimm_p : HInst<
4753 (outs IntRegs:$Rd32),
4754 (ins u10_0Imm:$Ii),
4755 "$Rd32 = sfmake(#$Ii):pos",
4756 tc_65279839, TypeALU64>, Enc_6c9440 {
4757 let Inst{20-16} = 0b00000;
4758 let Inst{31-22} = 0b1101011000;
4759 let hasNewValue = 1;
4760 let opNewValue = 0;
4761 let prefersSlot3 = 1;
4763 def F2_sfinvsqrta : HInst<
4764 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4765 (ins IntRegs:$Rs32),
4766 "$Rd32,$Pe4 = sfinvsqrta($Rs32)",
4767 tc_7f7f45f5, TypeS_2op>, Enc_890909 {
4768 let Inst{13-7} = 0b0000000;
4769 let Inst{31-21} = 0b10001011111;
4770 let hasNewValue = 1;
4771 let opNewValue = 0;
4772 let isFP = 1;
4773 let isPredicateLate = 1;
4775 def F2_sfmax : HInst<
4776 (outs IntRegs:$Rd32),
4777 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4778 "$Rd32 = sfmax($Rs32,$Rt32)",
4779 tc_c20701f0, TypeM>, Enc_5ab2be {
4780 let Inst{7-5} = 0b000;
4781 let Inst{13-13} = 0b0;
4782 let Inst{31-21} = 0b11101011100;
4783 let hasNewValue = 1;
4784 let opNewValue = 0;
4785 let isFP = 1;
4786 let prefersSlot3 = 1;
4787 let Uses = [USR];
4789 def F2_sfmin : HInst<
4790 (outs IntRegs:$Rd32),
4791 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4792 "$Rd32 = sfmin($Rs32,$Rt32)",
4793 tc_c20701f0, TypeM>, Enc_5ab2be {
4794 let Inst{7-5} = 0b001;
4795 let Inst{13-13} = 0b0;
4796 let Inst{31-21} = 0b11101011100;
4797 let hasNewValue = 1;
4798 let opNewValue = 0;
4799 let isFP = 1;
4800 let prefersSlot3 = 1;
4801 let Uses = [USR];
4803 def F2_sfmpy : HInst<
4804 (outs IntRegs:$Rd32),
4805 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4806 "$Rd32 = sfmpy($Rs32,$Rt32)",
4807 tc_02fe1c65, TypeM>, Enc_5ab2be {
4808 let Inst{7-5} = 0b000;
4809 let Inst{13-13} = 0b0;
4810 let Inst{31-21} = 0b11101011010;
4811 let hasNewValue = 1;
4812 let opNewValue = 0;
4813 let isFP = 1;
4814 let Uses = [USR];
4815 let isCommutable = 1;
4817 def F2_sfrecipa : HInst<
4818 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4819 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4820 "$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)",
4821 tc_f7569068, TypeM>, Enc_a94f3b {
4822 let Inst{7-7} = 0b1;
4823 let Inst{13-13} = 0b0;
4824 let Inst{31-21} = 0b11101011111;
4825 let hasNewValue = 1;
4826 let opNewValue = 0;
4827 let isFP = 1;
4828 let isPredicateLate = 1;
4830 def F2_sfsub : HInst<
4831 (outs IntRegs:$Rd32),
4832 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4833 "$Rd32 = sfsub($Rs32,$Rt32)",
4834 tc_02fe1c65, TypeM>, Enc_5ab2be {
4835 let Inst{7-5} = 0b001;
4836 let Inst{13-13} = 0b0;
4837 let Inst{31-21} = 0b11101011000;
4838 let hasNewValue = 1;
4839 let opNewValue = 0;
4840 let isFP = 1;
4841 let Uses = [USR];
4843 def G4_tfrgcpp : HInst<
4844 (outs DoubleRegs:$Rdd32),
4845 (ins GuestRegs64:$Gss32),
4846 "$Rdd32 = $Gss32",
4847 tc_fae9dfa5, TypeCR>, Enc_0aa344 {
4848 let Inst{13-5} = 0b000000000;
4849 let Inst{31-21} = 0b01101000001;
4851 def G4_tfrgcrr : HInst<
4852 (outs IntRegs:$Rd32),
4853 (ins GuestRegs:$Gs32),
4854 "$Rd32 = $Gs32",
4855 tc_fae9dfa5, TypeCR>, Enc_44271f {
4856 let Inst{13-5} = 0b000000000;
4857 let Inst{31-21} = 0b01101010001;
4858 let hasNewValue = 1;
4859 let opNewValue = 0;
4861 def G4_tfrgpcp : HInst<
4862 (outs GuestRegs64:$Gdd32),
4863 (ins DoubleRegs:$Rss32),
4864 "$Gdd32 = $Rss32",
4865 tc_6ae3426b, TypeCR>, Enc_ed5027 {
4866 let Inst{13-5} = 0b000000000;
4867 let Inst{31-21} = 0b01100011000;
4868 let hasNewValue = 1;
4869 let opNewValue = 0;
4871 def G4_tfrgrcr : HInst<
4872 (outs GuestRegs:$Gd32),
4873 (ins IntRegs:$Rs32),
4874 "$Gd32 = $Rs32",
4875 tc_6ae3426b, TypeCR>, Enc_621fba {
4876 let Inst{13-5} = 0b000000000;
4877 let Inst{31-21} = 0b01100010000;
4878 let hasNewValue = 1;
4879 let opNewValue = 0;
4881 def J2_call : HInst<
4882 (outs),
4883 (ins a30_2Imm:$Ii),
4884 "call $Ii",
4885 tc_44fffc58, TypeJ>, Enc_81ac1d, PredRel {
4886 let Inst{0-0} = 0b0;
4887 let Inst{31-25} = 0b0101101;
4888 let isCall = 1;
4889 let prefersSlot3 = 1;
4890 let cofRelax2 = 1;
4891 let cofMax1 = 1;
4892 let Uses = [R29];
4893 let Defs = [PC, R31];
4894 let BaseOpcode = "J2_call";
4895 let hasSideEffects = 1;
4896 let isPredicable = 1;
4897 let isExtendable = 1;
4898 let opExtendable = 0;
4899 let isExtentSigned = 1;
4900 let opExtentBits = 24;
4901 let opExtentAlign = 2;
4903 def J2_callf : HInst<
4904 (outs),
4905 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4906 "if (!$Pu4) call $Ii",
4907 tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4908 let Inst{0-0} = 0b0;
4909 let Inst{12-10} = 0b000;
4910 let Inst{21-21} = 0b1;
4911 let Inst{31-24} = 0b01011101;
4912 let isPredicated = 1;
4913 let isPredicatedFalse = 1;
4914 let isCall = 1;
4915 let prefersSlot3 = 1;
4916 let cofRelax1 = 1;
4917 let cofRelax2 = 1;
4918 let cofMax1 = 1;
4919 let Uses = [R29];
4920 let Defs = [PC, R31];
4921 let BaseOpcode = "J2_call";
4922 let hasSideEffects = 1;
4923 let isTaken = Inst{12};
4924 let isExtendable = 1;
4925 let opExtendable = 1;
4926 let isExtentSigned = 1;
4927 let opExtentBits = 17;
4928 let opExtentAlign = 2;
4930 def J2_callr : HInst<
4931 (outs),
4932 (ins IntRegs:$Rs32),
4933 "callr $Rs32",
4934 tc_362b0be2, TypeJ>, Enc_ecbcc8 {
4935 let Inst{13-0} = 0b00000000000000;
4936 let Inst{31-21} = 0b01010000101;
4937 let isCall = 1;
4938 let prefersSlot3 = 1;
4939 let cofMax1 = 1;
4940 let Uses = [R29];
4941 let Defs = [PC, R31];
4942 let hasSideEffects = 1;
4944 def J2_callrf : HInst<
4945 (outs),
4946 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4947 "if (!$Pu4) callr $Rs32",
4948 tc_dc51281d, TypeJ>, Enc_88d4d9 {
4949 let Inst{7-0} = 0b00000000;
4950 let Inst{13-10} = 0b0000;
4951 let Inst{31-21} = 0b01010001001;
4952 let isPredicated = 1;
4953 let isPredicatedFalse = 1;
4954 let isCall = 1;
4955 let prefersSlot3 = 1;
4956 let cofMax1 = 1;
4957 let Uses = [R29];
4958 let Defs = [PC, R31];
4959 let hasSideEffects = 1;
4960 let isTaken = Inst{12};
4962 def J2_callrt : HInst<
4963 (outs),
4964 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4965 "if ($Pu4) callr $Rs32",
4966 tc_dc51281d, TypeJ>, Enc_88d4d9 {
4967 let Inst{7-0} = 0b00000000;
4968 let Inst{13-10} = 0b0000;
4969 let Inst{31-21} = 0b01010001000;
4970 let isPredicated = 1;
4971 let isCall = 1;
4972 let prefersSlot3 = 1;
4973 let cofMax1 = 1;
4974 let Uses = [R29];
4975 let Defs = [PC, R31];
4976 let hasSideEffects = 1;
4977 let isTaken = Inst{12};
4979 def J2_callt : HInst<
4980 (outs),
4981 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4982 "if ($Pu4) call $Ii",
4983 tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4984 let Inst{0-0} = 0b0;
4985 let Inst{12-10} = 0b000;
4986 let Inst{21-21} = 0b0;
4987 let Inst{31-24} = 0b01011101;
4988 let isPredicated = 1;
4989 let isCall = 1;
4990 let prefersSlot3 = 1;
4991 let cofRelax1 = 1;
4992 let cofRelax2 = 1;
4993 let cofMax1 = 1;
4994 let Uses = [R29];
4995 let Defs = [PC, R31];
4996 let BaseOpcode = "J2_call";
4997 let hasSideEffects = 1;
4998 let isTaken = Inst{12};
4999 let isExtendable = 1;
5000 let opExtendable = 1;
5001 let isExtentSigned = 1;
5002 let opExtentBits = 17;
5003 let opExtentAlign = 2;
5005 def J2_endloop0 : HInst<
5006 (outs),
5007 (ins),
5008 "endloop0",
5009 tc_23708a21, TypeJ> {
5010 let Uses = [LC0, SA0];
5011 let Defs = [LC0, P3, PC, USR];
5012 let isBranch = 1;
5013 let isTerminator = 1;
5014 let isPseudo = 1;
5016 def J2_endloop01 : HInst<
5017 (outs),
5018 (ins),
5019 "endloop01",
5020 tc_23708a21, TypeJ> {
5021 let Uses = [LC0, LC1, SA0, SA1];
5022 let Defs = [LC0, LC1, P3, PC, USR];
5023 let isPseudo = 1;
5025 def J2_endloop1 : HInst<
5026 (outs),
5027 (ins),
5028 "endloop1",
5029 tc_23708a21, TypeJ> {
5030 let Uses = [LC1, SA1];
5031 let Defs = [LC1, PC];
5032 let isBranch = 1;
5033 let isTerminator = 1;
5034 let isPseudo = 1;
5036 def J2_jump : HInst<
5037 (outs),
5038 (ins b30_2Imm:$Ii),
5039 "jump $Ii",
5040 tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel {
5041 let Inst{0-0} = 0b0;
5042 let Inst{31-25} = 0b0101100;
5043 let isTerminator = 1;
5044 let isBranch = 1;
5045 let cofRelax2 = 1;
5046 let cofMax1 = 1;
5047 let Defs = [PC];
5048 let BaseOpcode = "J2_jump";
5049 let InputType = "imm";
5050 let isBarrier = 1;
5051 let isPredicable = 1;
5052 let isExtendable = 1;
5053 let opExtendable = 0;
5054 let isExtentSigned = 1;
5055 let opExtentBits = 24;
5056 let opExtentAlign = 2;
5058 def J2_jumpf : HInst<
5059 (outs),
5060 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5061 "if (!$Pu4) jump:nt $Ii",
5062 tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5063 let Inst{0-0} = 0b0;
5064 let Inst{12-10} = 0b000;
5065 let Inst{21-21} = 0b1;
5066 let Inst{31-24} = 0b01011100;
5067 let isPredicated = 1;
5068 let isPredicatedFalse = 1;
5069 let isTerminator = 1;
5070 let isBranch = 1;
5071 let cofRelax1 = 1;
5072 let cofRelax2 = 1;
5073 let cofMax1 = 1;
5074 let Defs = [PC];
5075 let BaseOpcode = "J2_jump";
5076 let InputType = "imm";
5077 let isTaken = Inst{12};
5078 let isExtendable = 1;
5079 let opExtendable = 1;
5080 let isExtentSigned = 1;
5081 let opExtentBits = 17;
5082 let opExtentAlign = 2;
5084 def J2_jumpf_nopred_map : HInst<
5085 (outs),
5086 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5087 "if (!$Pu4) jump $Ii",
5088 tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5089 let isPseudo = 1;
5090 let isCodeGenOnly = 1;
5092 def J2_jumpfnew : HInst<
5093 (outs),
5094 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5095 "if (!$Pu4.new) jump:nt $Ii",
5096 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5097 let Inst{0-0} = 0b0;
5098 let Inst{12-10} = 0b010;
5099 let Inst{21-21} = 0b1;
5100 let Inst{31-24} = 0b01011100;
5101 let isPredicated = 1;
5102 let isPredicatedFalse = 1;
5103 let isTerminator = 1;
5104 let isBranch = 1;
5105 let isPredicatedNew = 1;
5106 let cofRelax1 = 1;
5107 let cofRelax2 = 1;
5108 let cofMax1 = 1;
5109 let Defs = [PC];
5110 let BaseOpcode = "J2_jump";
5111 let InputType = "imm";
5112 let isTaken = Inst{12};
5113 let isExtendable = 1;
5114 let opExtendable = 1;
5115 let isExtentSigned = 1;
5116 let opExtentBits = 17;
5117 let opExtentAlign = 2;
5119 def J2_jumpfnewpt : HInst<
5120 (outs),
5121 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5122 "if (!$Pu4.new) jump:t $Ii",
5123 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5124 let Inst{0-0} = 0b0;
5125 let Inst{12-10} = 0b110;
5126 let Inst{21-21} = 0b1;
5127 let Inst{31-24} = 0b01011100;
5128 let isPredicated = 1;
5129 let isPredicatedFalse = 1;
5130 let isTerminator = 1;
5131 let isBranch = 1;
5132 let isPredicatedNew = 1;
5133 let cofRelax1 = 1;
5134 let cofRelax2 = 1;
5135 let cofMax1 = 1;
5136 let Defs = [PC];
5137 let BaseOpcode = "J2_jump";
5138 let InputType = "imm";
5139 let isTaken = Inst{12};
5140 let isExtendable = 1;
5141 let opExtendable = 1;
5142 let isExtentSigned = 1;
5143 let opExtentBits = 17;
5144 let opExtentAlign = 2;
5146 def J2_jumpfpt : HInst<
5147 (outs),
5148 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5149 "if (!$Pu4) jump:t $Ii",
5150 tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5151 let Inst{0-0} = 0b0;
5152 let Inst{12-10} = 0b100;
5153 let Inst{21-21} = 0b1;
5154 let Inst{31-24} = 0b01011100;
5155 let isPredicated = 1;
5156 let isPredicatedFalse = 1;
5157 let isTerminator = 1;
5158 let isBranch = 1;
5159 let cofRelax1 = 1;
5160 let cofRelax2 = 1;
5161 let cofMax1 = 1;
5162 let Defs = [PC];
5163 let BaseOpcode = "J2_jump";
5164 let InputType = "imm";
5165 let isTaken = Inst{12};
5166 let isExtendable = 1;
5167 let opExtendable = 1;
5168 let isExtentSigned = 1;
5169 let opExtentBits = 17;
5170 let opExtentAlign = 2;
5172 def J2_jumpr : HInst<
5173 (outs),
5174 (ins IntRegs:$Rs32),
5175 "jumpr $Rs32",
5176 tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel {
5177 let Inst{13-0} = 0b00000000000000;
5178 let Inst{31-21} = 0b01010010100;
5179 let isTerminator = 1;
5180 let isIndirectBranch = 1;
5181 let isBranch = 1;
5182 let cofMax1 = 1;
5183 let Defs = [PC];
5184 let BaseOpcode = "J2_jumpr";
5185 let InputType = "reg";
5186 let isBarrier = 1;
5187 let isPredicable = 1;
5189 def J2_jumprf : HInst<
5190 (outs),
5191 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5192 "if (!$Pu4) jumpr:nt $Rs32",
5193 tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5194 let Inst{7-0} = 0b00000000;
5195 let Inst{13-10} = 0b0000;
5196 let Inst{31-21} = 0b01010011011;
5197 let isPredicated = 1;
5198 let isPredicatedFalse = 1;
5199 let isTerminator = 1;
5200 let isIndirectBranch = 1;
5201 let isBranch = 1;
5202 let cofMax1 = 1;
5203 let Defs = [PC];
5204 let BaseOpcode = "J2_jumpr";
5205 let InputType = "reg";
5206 let isTaken = Inst{12};
5208 def J2_jumprf_nopred_map : HInst<
5209 (outs),
5210 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5211 "if (!$Pu4) jumpr $Rs32",
5212 tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5213 let isPseudo = 1;
5214 let isCodeGenOnly = 1;
5216 def J2_jumprfnew : HInst<
5217 (outs),
5218 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5219 "if (!$Pu4.new) jumpr:nt $Rs32",
5220 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5221 let Inst{7-0} = 0b00000000;
5222 let Inst{13-10} = 0b0010;
5223 let Inst{31-21} = 0b01010011011;
5224 let isPredicated = 1;
5225 let isPredicatedFalse = 1;
5226 let isTerminator = 1;
5227 let isIndirectBranch = 1;
5228 let isBranch = 1;
5229 let isPredicatedNew = 1;
5230 let cofMax1 = 1;
5231 let Defs = [PC];
5232 let BaseOpcode = "J2_jumpr";
5233 let InputType = "reg";
5234 let isTaken = Inst{12};
5236 def J2_jumprfnewpt : HInst<
5237 (outs),
5238 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5239 "if (!$Pu4.new) jumpr:t $Rs32",
5240 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5241 let Inst{7-0} = 0b00000000;
5242 let Inst{13-10} = 0b0110;
5243 let Inst{31-21} = 0b01010011011;
5244 let isPredicated = 1;
5245 let isPredicatedFalse = 1;
5246 let isTerminator = 1;
5247 let isIndirectBranch = 1;
5248 let isBranch = 1;
5249 let isPredicatedNew = 1;
5250 let cofMax1 = 1;
5251 let Defs = [PC];
5252 let BaseOpcode = "J2_jumpr";
5253 let InputType = "reg";
5254 let isTaken = Inst{12};
5256 def J2_jumprfpt : HInst<
5257 (outs),
5258 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5259 "if (!$Pu4) jumpr:t $Rs32",
5260 tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5261 let Inst{7-0} = 0b00000000;
5262 let Inst{13-10} = 0b0100;
5263 let Inst{31-21} = 0b01010011011;
5264 let isPredicated = 1;
5265 let isPredicatedFalse = 1;
5266 let isTerminator = 1;
5267 let isIndirectBranch = 1;
5268 let isBranch = 1;
5269 let cofMax1 = 1;
5270 let Defs = [PC];
5271 let BaseOpcode = "J2_jumpr";
5272 let InputType = "reg";
5273 let isTaken = Inst{12};
5275 def J2_jumprgtez : HInst<
5276 (outs),
5277 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5278 "if ($Rs32>=#0) jump:nt $Ii",
5279 tc_57a55b54, TypeCR>, Enc_0fa531 {
5280 let Inst{0-0} = 0b0;
5281 let Inst{12-12} = 0b0;
5282 let Inst{31-22} = 0b0110000101;
5283 let isPredicated = 1;
5284 let isTerminator = 1;
5285 let isBranch = 1;
5286 let isPredicatedNew = 1;
5287 let cofRelax1 = 1;
5288 let cofRelax2 = 1;
5289 let cofMax1 = 1;
5290 let Defs = [PC];
5291 let isTaken = Inst{12};
5293 def J2_jumprgtezpt : HInst<
5294 (outs),
5295 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5296 "if ($Rs32>=#0) jump:t $Ii",
5297 tc_57a55b54, TypeCR>, Enc_0fa531 {
5298 let Inst{0-0} = 0b0;
5299 let Inst{12-12} = 0b1;
5300 let Inst{31-22} = 0b0110000101;
5301 let isPredicated = 1;
5302 let isTerminator = 1;
5303 let isBranch = 1;
5304 let isPredicatedNew = 1;
5305 let cofRelax1 = 1;
5306 let cofRelax2 = 1;
5307 let cofMax1 = 1;
5308 let Defs = [PC];
5309 let isTaken = Inst{12};
5311 def J2_jumprltez : HInst<
5312 (outs),
5313 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5314 "if ($Rs32<=#0) jump:nt $Ii",
5315 tc_57a55b54, TypeCR>, Enc_0fa531 {
5316 let Inst{0-0} = 0b0;
5317 let Inst{12-12} = 0b0;
5318 let Inst{31-22} = 0b0110000111;
5319 let isPredicated = 1;
5320 let isTerminator = 1;
5321 let isBranch = 1;
5322 let isPredicatedNew = 1;
5323 let cofRelax1 = 1;
5324 let cofRelax2 = 1;
5325 let cofMax1 = 1;
5326 let Defs = [PC];
5327 let isTaken = Inst{12};
5329 def J2_jumprltezpt : HInst<
5330 (outs),
5331 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5332 "if ($Rs32<=#0) jump:t $Ii",
5333 tc_57a55b54, TypeCR>, Enc_0fa531 {
5334 let Inst{0-0} = 0b0;
5335 let Inst{12-12} = 0b1;
5336 let Inst{31-22} = 0b0110000111;
5337 let isPredicated = 1;
5338 let isTerminator = 1;
5339 let isBranch = 1;
5340 let isPredicatedNew = 1;
5341 let cofRelax1 = 1;
5342 let cofRelax2 = 1;
5343 let cofMax1 = 1;
5344 let Defs = [PC];
5345 let isTaken = Inst{12};
5347 def J2_jumprnz : HInst<
5348 (outs),
5349 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5350 "if ($Rs32==#0) jump:nt $Ii",
5351 tc_57a55b54, TypeCR>, Enc_0fa531 {
5352 let Inst{0-0} = 0b0;
5353 let Inst{12-12} = 0b0;
5354 let Inst{31-22} = 0b0110000110;
5355 let isPredicated = 1;
5356 let isTerminator = 1;
5357 let isBranch = 1;
5358 let isPredicatedNew = 1;
5359 let cofRelax1 = 1;
5360 let cofRelax2 = 1;
5361 let cofMax1 = 1;
5362 let Defs = [PC];
5363 let isTaken = Inst{12};
5365 def J2_jumprnzpt : HInst<
5366 (outs),
5367 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5368 "if ($Rs32==#0) jump:t $Ii",
5369 tc_57a55b54, TypeCR>, Enc_0fa531 {
5370 let Inst{0-0} = 0b0;
5371 let Inst{12-12} = 0b1;
5372 let Inst{31-22} = 0b0110000110;
5373 let isPredicated = 1;
5374 let isTerminator = 1;
5375 let isBranch = 1;
5376 let isPredicatedNew = 1;
5377 let cofRelax1 = 1;
5378 let cofRelax2 = 1;
5379 let cofMax1 = 1;
5380 let Defs = [PC];
5381 let isTaken = Inst{12};
5383 def J2_jumprt : HInst<
5384 (outs),
5385 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5386 "if ($Pu4) jumpr:nt $Rs32",
5387 tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5388 let Inst{7-0} = 0b00000000;
5389 let Inst{13-10} = 0b0000;
5390 let Inst{31-21} = 0b01010011010;
5391 let isPredicated = 1;
5392 let isTerminator = 1;
5393 let isIndirectBranch = 1;
5394 let isBranch = 1;
5395 let cofMax1 = 1;
5396 let Defs = [PC];
5397 let BaseOpcode = "J2_jumpr";
5398 let InputType = "reg";
5399 let isTaken = Inst{12};
5401 def J2_jumprt_nopred_map : HInst<
5402 (outs),
5403 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5404 "if ($Pu4) jumpr $Rs32",
5405 tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5406 let isPseudo = 1;
5407 let isCodeGenOnly = 1;
5409 def J2_jumprtnew : HInst<
5410 (outs),
5411 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5412 "if ($Pu4.new) jumpr:nt $Rs32",
5413 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5414 let Inst{7-0} = 0b00000000;
5415 let Inst{13-10} = 0b0010;
5416 let Inst{31-21} = 0b01010011010;
5417 let isPredicated = 1;
5418 let isTerminator = 1;
5419 let isIndirectBranch = 1;
5420 let isBranch = 1;
5421 let isPredicatedNew = 1;
5422 let cofMax1 = 1;
5423 let Defs = [PC];
5424 let BaseOpcode = "J2_jumpr";
5425 let InputType = "reg";
5426 let isTaken = Inst{12};
5428 def J2_jumprtnewpt : HInst<
5429 (outs),
5430 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5431 "if ($Pu4.new) jumpr:t $Rs32",
5432 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5433 let Inst{7-0} = 0b00000000;
5434 let Inst{13-10} = 0b0110;
5435 let Inst{31-21} = 0b01010011010;
5436 let isPredicated = 1;
5437 let isTerminator = 1;
5438 let isIndirectBranch = 1;
5439 let isBranch = 1;
5440 let isPredicatedNew = 1;
5441 let cofMax1 = 1;
5442 let Defs = [PC];
5443 let BaseOpcode = "J2_jumpr";
5444 let InputType = "reg";
5445 let isTaken = Inst{12};
5447 def J2_jumprtpt : HInst<
5448 (outs),
5449 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5450 "if ($Pu4) jumpr:t $Rs32",
5451 tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5452 let Inst{7-0} = 0b00000000;
5453 let Inst{13-10} = 0b0100;
5454 let Inst{31-21} = 0b01010011010;
5455 let isPredicated = 1;
5456 let isTerminator = 1;
5457 let isIndirectBranch = 1;
5458 let isBranch = 1;
5459 let cofMax1 = 1;
5460 let Defs = [PC];
5461 let BaseOpcode = "J2_jumpr";
5462 let InputType = "reg";
5463 let isTaken = Inst{12};
5465 def J2_jumprz : HInst<
5466 (outs),
5467 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5468 "if ($Rs32!=#0) jump:nt $Ii",
5469 tc_57a55b54, TypeCR>, Enc_0fa531 {
5470 let Inst{0-0} = 0b0;
5471 let Inst{12-12} = 0b0;
5472 let Inst{31-22} = 0b0110000100;
5473 let isPredicated = 1;
5474 let isTerminator = 1;
5475 let isBranch = 1;
5476 let isPredicatedNew = 1;
5477 let cofRelax1 = 1;
5478 let cofRelax2 = 1;
5479 let cofMax1 = 1;
5480 let Defs = [PC];
5481 let isTaken = Inst{12};
5483 def J2_jumprzpt : HInst<
5484 (outs),
5485 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5486 "if ($Rs32!=#0) jump:t $Ii",
5487 tc_57a55b54, TypeCR>, Enc_0fa531 {
5488 let Inst{0-0} = 0b0;
5489 let Inst{12-12} = 0b1;
5490 let Inst{31-22} = 0b0110000100;
5491 let isPredicated = 1;
5492 let isTerminator = 1;
5493 let isBranch = 1;
5494 let isPredicatedNew = 1;
5495 let cofRelax1 = 1;
5496 let cofRelax2 = 1;
5497 let cofMax1 = 1;
5498 let Defs = [PC];
5499 let isTaken = Inst{12};
5501 def J2_jumpt : HInst<
5502 (outs),
5503 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5504 "if ($Pu4) jump:nt $Ii",
5505 tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5506 let Inst{0-0} = 0b0;
5507 let Inst{12-10} = 0b000;
5508 let Inst{21-21} = 0b0;
5509 let Inst{31-24} = 0b01011100;
5510 let isPredicated = 1;
5511 let isTerminator = 1;
5512 let isBranch = 1;
5513 let cofRelax1 = 1;
5514 let cofRelax2 = 1;
5515 let cofMax1 = 1;
5516 let Defs = [PC];
5517 let BaseOpcode = "J2_jump";
5518 let InputType = "imm";
5519 let isTaken = Inst{12};
5520 let isExtendable = 1;
5521 let opExtendable = 1;
5522 let isExtentSigned = 1;
5523 let opExtentBits = 17;
5524 let opExtentAlign = 2;
5526 def J2_jumpt_nopred_map : HInst<
5527 (outs),
5528 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5529 "if ($Pu4) jump $Ii",
5530 tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5531 let isPseudo = 1;
5532 let isCodeGenOnly = 1;
5534 def J2_jumptnew : HInst<
5535 (outs),
5536 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5537 "if ($Pu4.new) jump:nt $Ii",
5538 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5539 let Inst{0-0} = 0b0;
5540 let Inst{12-10} = 0b010;
5541 let Inst{21-21} = 0b0;
5542 let Inst{31-24} = 0b01011100;
5543 let isPredicated = 1;
5544 let isTerminator = 1;
5545 let isBranch = 1;
5546 let isPredicatedNew = 1;
5547 let cofRelax1 = 1;
5548 let cofRelax2 = 1;
5549 let cofMax1 = 1;
5550 let Defs = [PC];
5551 let BaseOpcode = "J2_jump";
5552 let InputType = "imm";
5553 let isTaken = Inst{12};
5554 let isExtendable = 1;
5555 let opExtendable = 1;
5556 let isExtentSigned = 1;
5557 let opExtentBits = 17;
5558 let opExtentAlign = 2;
5560 def J2_jumptnewpt : HInst<
5561 (outs),
5562 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5563 "if ($Pu4.new) jump:t $Ii",
5564 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5565 let Inst{0-0} = 0b0;
5566 let Inst{12-10} = 0b110;
5567 let Inst{21-21} = 0b0;
5568 let Inst{31-24} = 0b01011100;
5569 let isPredicated = 1;
5570 let isTerminator = 1;
5571 let isBranch = 1;
5572 let isPredicatedNew = 1;
5573 let cofRelax1 = 1;
5574 let cofRelax2 = 1;
5575 let cofMax1 = 1;
5576 let Defs = [PC];
5577 let BaseOpcode = "J2_jump";
5578 let InputType = "imm";
5579 let isTaken = Inst{12};
5580 let isExtendable = 1;
5581 let opExtendable = 1;
5582 let isExtentSigned = 1;
5583 let opExtentBits = 17;
5584 let opExtentAlign = 2;
5586 def J2_jumptpt : HInst<
5587 (outs),
5588 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5589 "if ($Pu4) jump:t $Ii",
5590 tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5591 let Inst{0-0} = 0b0;
5592 let Inst{12-10} = 0b100;
5593 let Inst{21-21} = 0b0;
5594 let Inst{31-24} = 0b01011100;
5595 let isPredicated = 1;
5596 let isTerminator = 1;
5597 let isBranch = 1;
5598 let cofRelax1 = 1;
5599 let cofRelax2 = 1;
5600 let cofMax1 = 1;
5601 let Defs = [PC];
5602 let BaseOpcode = "J2_jump";
5603 let InputType = "imm";
5604 let isTaken = Inst{12};
5605 let isExtendable = 1;
5606 let opExtendable = 1;
5607 let isExtentSigned = 1;
5608 let opExtentBits = 17;
5609 let opExtentAlign = 2;
5611 def J2_loop0i : HInst<
5612 (outs),
5613 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5614 "loop0($Ii,#$II)",
5615 tc_1248597c, TypeCR>, Enc_4dc228 {
5616 let Inst{2-2} = 0b0;
5617 let Inst{13-13} = 0b0;
5618 let Inst{31-21} = 0b01101001000;
5619 let cofRelax1 = 1;
5620 let cofRelax2 = 1;
5621 let Defs = [LC0, SA0, USR];
5622 let isExtendable = 1;
5623 let opExtendable = 0;
5624 let isExtentSigned = 1;
5625 let opExtentBits = 9;
5626 let opExtentAlign = 2;
5628 def J2_loop0r : HInst<
5629 (outs),
5630 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5631 "loop0($Ii,$Rs32)",
5632 tc_9406230a, TypeCR>, Enc_864a5a {
5633 let Inst{2-0} = 0b000;
5634 let Inst{7-5} = 0b000;
5635 let Inst{13-13} = 0b0;
5636 let Inst{31-21} = 0b01100000000;
5637 let cofRelax1 = 1;
5638 let cofRelax2 = 1;
5639 let Defs = [LC0, SA0, USR];
5640 let isExtendable = 1;
5641 let opExtendable = 0;
5642 let isExtentSigned = 1;
5643 let opExtentBits = 9;
5644 let opExtentAlign = 2;
5646 def J2_loop1i : HInst<
5647 (outs),
5648 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5649 "loop1($Ii,#$II)",
5650 tc_1248597c, TypeCR>, Enc_4dc228 {
5651 let Inst{2-2} = 0b0;
5652 let Inst{13-13} = 0b0;
5653 let Inst{31-21} = 0b01101001001;
5654 let cofRelax1 = 1;
5655 let cofRelax2 = 1;
5656 let Defs = [LC1, SA1];
5657 let isExtendable = 1;
5658 let opExtendable = 0;
5659 let isExtentSigned = 1;
5660 let opExtentBits = 9;
5661 let opExtentAlign = 2;
5663 def J2_loop1r : HInst<
5664 (outs),
5665 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5666 "loop1($Ii,$Rs32)",
5667 tc_9406230a, TypeCR>, Enc_864a5a {
5668 let Inst{2-0} = 0b000;
5669 let Inst{7-5} = 0b000;
5670 let Inst{13-13} = 0b0;
5671 let Inst{31-21} = 0b01100000001;
5672 let cofRelax1 = 1;
5673 let cofRelax2 = 1;
5674 let Defs = [LC1, SA1];
5675 let isExtendable = 1;
5676 let opExtendable = 0;
5677 let isExtentSigned = 1;
5678 let opExtentBits = 9;
5679 let opExtentAlign = 2;
5681 def J2_pause : HInst<
5682 (outs),
5683 (ins u8_0Imm:$Ii),
5684 "pause(#$Ii)",
5685 tc_d57d649c, TypeJ>, Enc_a51a9a {
5686 let Inst{1-0} = 0b00;
5687 let Inst{7-5} = 0b000;
5688 let Inst{13-13} = 0b0;
5689 let Inst{31-16} = 0b0101010001000000;
5690 let isSolo = 1;
5692 def J2_ploop1si : HInst<
5693 (outs),
5694 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5695 "p3 = sp1loop0($Ii,#$II)",
5696 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5697 let Inst{2-2} = 0b0;
5698 let Inst{13-13} = 0b0;
5699 let Inst{31-21} = 0b01101001101;
5700 let isPredicateLate = 1;
5701 let cofRelax1 = 1;
5702 let cofRelax2 = 1;
5703 let Defs = [LC0, P3, SA0, USR];
5704 let isExtendable = 1;
5705 let opExtendable = 0;
5706 let isExtentSigned = 1;
5707 let opExtentBits = 9;
5708 let opExtentAlign = 2;
5710 def J2_ploop1sr : HInst<
5711 (outs),
5712 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5713 "p3 = sp1loop0($Ii,$Rs32)",
5714 tc_6d861a95, TypeCR>, Enc_864a5a {
5715 let Inst{2-0} = 0b000;
5716 let Inst{7-5} = 0b000;
5717 let Inst{13-13} = 0b0;
5718 let Inst{31-21} = 0b01100000101;
5719 let isPredicateLate = 1;
5720 let cofRelax1 = 1;
5721 let cofRelax2 = 1;
5722 let Defs = [LC0, P3, SA0, USR];
5723 let isExtendable = 1;
5724 let opExtendable = 0;
5725 let isExtentSigned = 1;
5726 let opExtentBits = 9;
5727 let opExtentAlign = 2;
5729 def J2_ploop2si : HInst<
5730 (outs),
5731 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5732 "p3 = sp2loop0($Ii,#$II)",
5733 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5734 let Inst{2-2} = 0b0;
5735 let Inst{13-13} = 0b0;
5736 let Inst{31-21} = 0b01101001110;
5737 let isPredicateLate = 1;
5738 let cofRelax1 = 1;
5739 let cofRelax2 = 1;
5740 let Defs = [LC0, P3, SA0, USR];
5741 let isExtendable = 1;
5742 let opExtendable = 0;
5743 let isExtentSigned = 1;
5744 let opExtentBits = 9;
5745 let opExtentAlign = 2;
5747 def J2_ploop2sr : HInst<
5748 (outs),
5749 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5750 "p3 = sp2loop0($Ii,$Rs32)",
5751 tc_6d861a95, TypeCR>, Enc_864a5a {
5752 let Inst{2-0} = 0b000;
5753 let Inst{7-5} = 0b000;
5754 let Inst{13-13} = 0b0;
5755 let Inst{31-21} = 0b01100000110;
5756 let isPredicateLate = 1;
5757 let cofRelax1 = 1;
5758 let cofRelax2 = 1;
5759 let Defs = [LC0, P3, SA0, USR];
5760 let isExtendable = 1;
5761 let opExtendable = 0;
5762 let isExtentSigned = 1;
5763 let opExtentBits = 9;
5764 let opExtentAlign = 2;
5766 def J2_ploop3si : HInst<
5767 (outs),
5768 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5769 "p3 = sp3loop0($Ii,#$II)",
5770 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5771 let Inst{2-2} = 0b0;
5772 let Inst{13-13} = 0b0;
5773 let Inst{31-21} = 0b01101001111;
5774 let isPredicateLate = 1;
5775 let cofRelax1 = 1;
5776 let cofRelax2 = 1;
5777 let Defs = [LC0, P3, SA0, USR];
5778 let isExtendable = 1;
5779 let opExtendable = 0;
5780 let isExtentSigned = 1;
5781 let opExtentBits = 9;
5782 let opExtentAlign = 2;
5784 def J2_ploop3sr : HInst<
5785 (outs),
5786 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5787 "p3 = sp3loop0($Ii,$Rs32)",
5788 tc_6d861a95, TypeCR>, Enc_864a5a {
5789 let Inst{2-0} = 0b000;
5790 let Inst{7-5} = 0b000;
5791 let Inst{13-13} = 0b0;
5792 let Inst{31-21} = 0b01100000111;
5793 let isPredicateLate = 1;
5794 let cofRelax1 = 1;
5795 let cofRelax2 = 1;
5796 let Defs = [LC0, P3, SA0, USR];
5797 let isExtendable = 1;
5798 let opExtendable = 0;
5799 let isExtentSigned = 1;
5800 let opExtentBits = 9;
5801 let opExtentAlign = 2;
5803 def J2_trap0 : HInst<
5804 (outs),
5805 (ins u8_0Imm:$Ii),
5806 "trap0(#$Ii)",
5807 tc_45f9d1be, TypeJ>, Enc_a51a9a {
5808 let Inst{1-0} = 0b00;
5809 let Inst{7-5} = 0b000;
5810 let Inst{13-13} = 0b0;
5811 let Inst{31-16} = 0b0101010000000000;
5812 let isSolo = 1;
5813 let hasSideEffects = 1;
5815 def J2_trap1 : HInst<
5816 (outs IntRegs:$Rx32),
5817 (ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5818 "trap1($Rx32,#$Ii)",
5819 tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> {
5820 let Inst{1-0} = 0b00;
5821 let Inst{7-5} = 0b000;
5822 let Inst{13-13} = 0b0;
5823 let Inst{31-21} = 0b01010100100;
5824 let hasNewValue = 1;
5825 let opNewValue = 0;
5826 let isSolo = 1;
5827 let Uses = [GOSP];
5828 let Defs = [GOSP, PC];
5829 let hasSideEffects = 1;
5830 let Constraints = "$Rx32 = $Rx32in";
5832 def J2_trap1_noregmap : HInst<
5833 (outs),
5834 (ins u8_0Imm:$Ii),
5835 "trap1(#$Ii)",
5836 tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> {
5837 let hasSideEffects = 1;
5838 let isPseudo = 1;
5839 let isCodeGenOnly = 1;
5841 def 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",
5845 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5846 let Inst{0-0} = 0b0;
5847 let Inst{13-13} = 0b0;
5848 let Inst{19-19} = 0b0;
5849 let Inst{31-22} = 0b0010000001;
5850 let isPredicated = 1;
5851 let isPredicatedFalse = 1;
5852 let isTerminator = 1;
5853 let isBranch = 1;
5854 let isNewValue = 1;
5855 let cofMax1 = 1;
5856 let isRestrictNoSlot1Store = 1;
5857 let Defs = [PC];
5858 let BaseOpcode = "J4_cmpeqr";
5859 let isTaken = Inst{13};
5860 let isExtendable = 1;
5861 let opExtendable = 2;
5862 let isExtentSigned = 1;
5863 let opExtentBits = 11;
5864 let opExtentAlign = 2;
5865 let opNewValue = 0;
5867 def 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",
5871 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5872 let Inst{0-0} = 0b0;
5873 let Inst{13-13} = 0b1;
5874 let Inst{19-19} = 0b0;
5875 let Inst{31-22} = 0b0010000001;
5876 let isPredicated = 1;
5877 let isPredicatedFalse = 1;
5878 let isTerminator = 1;
5879 let isBranch = 1;
5880 let isNewValue = 1;
5881 let cofMax1 = 1;
5882 let isRestrictNoSlot1Store = 1;
5883 let Defs = [PC];
5884 let BaseOpcode = "J4_cmpeqr";
5885 let isTaken = Inst{13};
5886 let isExtendable = 1;
5887 let opExtendable = 2;
5888 let isExtentSigned = 1;
5889 let opExtentBits = 11;
5890 let opExtentAlign = 2;
5891 let opNewValue = 0;
5893 def 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",
5897 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5898 let Inst{0-0} = 0b0;
5899 let Inst{13-12} = 0b00;
5900 let Inst{31-22} = 0b0001010001;
5901 let isPredicated = 1;
5902 let isPredicatedFalse = 1;
5903 let isTerminator = 1;
5904 let isBranch = 1;
5905 let isPredicatedNew = 1;
5906 let cofRelax1 = 1;
5907 let cofRelax2 = 1;
5908 let cofMax1 = 1;
5909 let Uses = [P0];
5910 let Defs = [P0, PC];
5911 let BaseOpcode = "J4_cmpeqp0";
5912 let isTaken = Inst{13};
5913 let isExtendable = 1;
5914 let opExtendable = 2;
5915 let isExtentSigned = 1;
5916 let opExtentBits = 11;
5917 let opExtentAlign = 2;
5919 def 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",
5923 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5924 let Inst{0-0} = 0b0;
5925 let Inst{13-12} = 0b10;
5926 let Inst{31-22} = 0b0001010001;
5927 let isPredicated = 1;
5928 let isPredicatedFalse = 1;
5929 let isTerminator = 1;
5930 let isBranch = 1;
5931 let isPredicatedNew = 1;
5932 let cofRelax1 = 1;
5933 let cofRelax2 = 1;
5934 let cofMax1 = 1;
5935 let Uses = [P0];
5936 let Defs = [P0, PC];
5937 let BaseOpcode = "J4_cmpeqp0";
5938 let isTaken = Inst{13};
5939 let isExtendable = 1;
5940 let opExtendable = 2;
5941 let isExtentSigned = 1;
5942 let opExtentBits = 11;
5943 let opExtentAlign = 2;
5945 def 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",
5949 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5950 let Inst{0-0} = 0b0;
5951 let Inst{13-12} = 0b01;
5952 let Inst{31-22} = 0b0001010001;
5953 let isPredicated = 1;
5954 let isPredicatedFalse = 1;
5955 let isTerminator = 1;
5956 let isBranch = 1;
5957 let isPredicatedNew = 1;
5958 let cofRelax1 = 1;
5959 let cofRelax2 = 1;
5960 let cofMax1 = 1;
5961 let Uses = [P1];
5962 let Defs = [P1, PC];
5963 let BaseOpcode = "J4_cmpeqp1";
5964 let isTaken = Inst{13};
5965 let isExtendable = 1;
5966 let opExtendable = 2;
5967 let isExtentSigned = 1;
5968 let opExtentBits = 11;
5969 let opExtentAlign = 2;
5971 def 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",
5975 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5976 let Inst{0-0} = 0b0;
5977 let Inst{13-12} = 0b11;
5978 let Inst{31-22} = 0b0001010001;
5979 let isPredicated = 1;
5980 let isPredicatedFalse = 1;
5981 let isTerminator = 1;
5982 let isBranch = 1;
5983 let isPredicatedNew = 1;
5984 let cofRelax1 = 1;
5985 let cofRelax2 = 1;
5986 let cofMax1 = 1;
5987 let Uses = [P1];
5988 let Defs = [P1, PC];
5989 let BaseOpcode = "J4_cmpeqp1";
5990 let isTaken = Inst{13};
5991 let isExtendable = 1;
5992 let opExtendable = 2;
5993 let isExtentSigned = 1;
5994 let opExtentBits = 11;
5995 let opExtentAlign = 2;
5997 def 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",
6001 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6002 let Inst{0-0} = 0b0;
6003 let Inst{13-13} = 0b0;
6004 let Inst{19-19} = 0b0;
6005 let Inst{31-22} = 0b0010000000;
6006 let isPredicated = 1;
6007 let isTerminator = 1;
6008 let isBranch = 1;
6009 let isNewValue = 1;
6010 let cofMax1 = 1;
6011 let isRestrictNoSlot1Store = 1;
6012 let Defs = [PC];
6013 let BaseOpcode = "J4_cmpeqr";
6014 let isTaken = Inst{13};
6015 let isExtendable = 1;
6016 let opExtendable = 2;
6017 let isExtentSigned = 1;
6018 let opExtentBits = 11;
6019 let opExtentAlign = 2;
6020 let opNewValue = 0;
6022 def 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",
6026 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6027 let Inst{0-0} = 0b0;
6028 let Inst{13-13} = 0b1;
6029 let Inst{19-19} = 0b0;
6030 let Inst{31-22} = 0b0010000000;
6031 let isPredicated = 1;
6032 let isTerminator = 1;
6033 let isBranch = 1;
6034 let isNewValue = 1;
6035 let cofMax1 = 1;
6036 let isRestrictNoSlot1Store = 1;
6037 let Defs = [PC];
6038 let BaseOpcode = "J4_cmpeqr";
6039 let isTaken = Inst{13};
6040 let isExtendable = 1;
6041 let opExtendable = 2;
6042 let isExtentSigned = 1;
6043 let opExtentBits = 11;
6044 let opExtentAlign = 2;
6045 let opNewValue = 0;
6047 def 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",
6051 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6052 let Inst{0-0} = 0b0;
6053 let Inst{13-12} = 0b00;
6054 let Inst{31-22} = 0b0001010000;
6055 let isPredicated = 1;
6056 let isTerminator = 1;
6057 let isBranch = 1;
6058 let isPredicatedNew = 1;
6059 let cofRelax1 = 1;
6060 let cofRelax2 = 1;
6061 let cofMax1 = 1;
6062 let Uses = [P0];
6063 let Defs = [P0, PC];
6064 let BaseOpcode = "J4_cmpeqp0";
6065 let isTaken = Inst{13};
6066 let isExtendable = 1;
6067 let opExtendable = 2;
6068 let isExtentSigned = 1;
6069 let opExtentBits = 11;
6070 let opExtentAlign = 2;
6072 def 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",
6076 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6077 let Inst{0-0} = 0b0;
6078 let Inst{13-12} = 0b10;
6079 let Inst{31-22} = 0b0001010000;
6080 let isPredicated = 1;
6081 let isTerminator = 1;
6082 let isBranch = 1;
6083 let isPredicatedNew = 1;
6084 let cofRelax1 = 1;
6085 let cofRelax2 = 1;
6086 let cofMax1 = 1;
6087 let Uses = [P0];
6088 let Defs = [P0, PC];
6089 let BaseOpcode = "J4_cmpeqp0";
6090 let isTaken = Inst{13};
6091 let isExtendable = 1;
6092 let opExtendable = 2;
6093 let isExtentSigned = 1;
6094 let opExtentBits = 11;
6095 let opExtentAlign = 2;
6097 def 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",
6101 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6102 let Inst{0-0} = 0b0;
6103 let Inst{13-12} = 0b01;
6104 let Inst{31-22} = 0b0001010000;
6105 let isPredicated = 1;
6106 let isTerminator = 1;
6107 let isBranch = 1;
6108 let isPredicatedNew = 1;
6109 let cofRelax1 = 1;
6110 let cofRelax2 = 1;
6111 let cofMax1 = 1;
6112 let Uses = [P1];
6113 let Defs = [P1, PC];
6114 let BaseOpcode = "J4_cmpeqp1";
6115 let isTaken = Inst{13};
6116 let isExtendable = 1;
6117 let opExtendable = 2;
6118 let isExtentSigned = 1;
6119 let opExtentBits = 11;
6120 let opExtentAlign = 2;
6122 def 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",
6126 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6127 let Inst{0-0} = 0b0;
6128 let Inst{13-12} = 0b11;
6129 let Inst{31-22} = 0b0001010000;
6130 let isPredicated = 1;
6131 let isTerminator = 1;
6132 let isBranch = 1;
6133 let isPredicatedNew = 1;
6134 let cofRelax1 = 1;
6135 let cofRelax2 = 1;
6136 let cofMax1 = 1;
6137 let Uses = [P1];
6138 let Defs = [P1, PC];
6139 let BaseOpcode = "J4_cmpeqp1";
6140 let isTaken = Inst{13};
6141 let isExtendable = 1;
6142 let opExtendable = 2;
6143 let isExtentSigned = 1;
6144 let opExtentBits = 11;
6145 let opExtentAlign = 2;
6147 def 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",
6151 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6152 let Inst{0-0} = 0b0;
6153 let Inst{13-13} = 0b0;
6154 let Inst{19-19} = 0b0;
6155 let Inst{31-22} = 0b0010010001;
6156 let isPredicated = 1;
6157 let isPredicatedFalse = 1;
6158 let isTerminator = 1;
6159 let isBranch = 1;
6160 let isNewValue = 1;
6161 let cofMax1 = 1;
6162 let isRestrictNoSlot1Store = 1;
6163 let Defs = [PC];
6164 let BaseOpcode = "J4_cmpeqi";
6165 let isTaken = Inst{13};
6166 let isExtendable = 1;
6167 let opExtendable = 2;
6168 let isExtentSigned = 1;
6169 let opExtentBits = 11;
6170 let opExtentAlign = 2;
6171 let opNewValue = 0;
6173 def 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",
6177 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6178 let Inst{0-0} = 0b0;
6179 let Inst{13-13} = 0b1;
6180 let Inst{19-19} = 0b0;
6181 let Inst{31-22} = 0b0010010001;
6182 let isPredicated = 1;
6183 let isPredicatedFalse = 1;
6184 let isTerminator = 1;
6185 let isBranch = 1;
6186 let isNewValue = 1;
6187 let cofMax1 = 1;
6188 let isRestrictNoSlot1Store = 1;
6189 let Defs = [PC];
6190 let BaseOpcode = "J4_cmpeqi";
6191 let isTaken = Inst{13};
6192 let isExtendable = 1;
6193 let opExtendable = 2;
6194 let isExtentSigned = 1;
6195 let opExtentBits = 11;
6196 let opExtentAlign = 2;
6197 let opNewValue = 0;
6199 def 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",
6203 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6204 let Inst{0-0} = 0b0;
6205 let Inst{13-13} = 0b0;
6206 let Inst{31-22} = 0b0001000001;
6207 let isPredicated = 1;
6208 let isPredicatedFalse = 1;
6209 let isTerminator = 1;
6210 let isBranch = 1;
6211 let isPredicatedNew = 1;
6212 let cofRelax1 = 1;
6213 let cofRelax2 = 1;
6214 let cofMax1 = 1;
6215 let Uses = [P0];
6216 let Defs = [P0, PC];
6217 let BaseOpcode = "J4_cmpeqip0";
6218 let isTaken = Inst{13};
6219 let isExtendable = 1;
6220 let opExtendable = 2;
6221 let isExtentSigned = 1;
6222 let opExtentBits = 11;
6223 let opExtentAlign = 2;
6225 def 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",
6229 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6230 let Inst{0-0} = 0b0;
6231 let Inst{13-13} = 0b1;
6232 let Inst{31-22} = 0b0001000001;
6233 let isPredicated = 1;
6234 let isPredicatedFalse = 1;
6235 let isTerminator = 1;
6236 let isBranch = 1;
6237 let isPredicatedNew = 1;
6238 let cofRelax1 = 1;
6239 let cofRelax2 = 1;
6240 let cofMax1 = 1;
6241 let Uses = [P0];
6242 let Defs = [P0, PC];
6243 let BaseOpcode = "J4_cmpeqip0";
6244 let isTaken = Inst{13};
6245 let isExtendable = 1;
6246 let opExtendable = 2;
6247 let isExtentSigned = 1;
6248 let opExtentBits = 11;
6249 let opExtentAlign = 2;
6251 def 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",
6255 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6256 let Inst{0-0} = 0b0;
6257 let Inst{13-13} = 0b0;
6258 let Inst{31-22} = 0b0001001001;
6259 let isPredicated = 1;
6260 let isPredicatedFalse = 1;
6261 let isTerminator = 1;
6262 let isBranch = 1;
6263 let isPredicatedNew = 1;
6264 let cofRelax1 = 1;
6265 let cofRelax2 = 1;
6266 let cofMax1 = 1;
6267 let Uses = [P1];
6268 let Defs = [P1, PC];
6269 let BaseOpcode = "J4_cmpeqip1";
6270 let isTaken = Inst{13};
6271 let isExtendable = 1;
6272 let opExtendable = 2;
6273 let isExtentSigned = 1;
6274 let opExtentBits = 11;
6275 let opExtentAlign = 2;
6277 def 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",
6281 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6282 let Inst{0-0} = 0b0;
6283 let Inst{13-13} = 0b1;
6284 let Inst{31-22} = 0b0001001001;
6285 let isPredicated = 1;
6286 let isPredicatedFalse = 1;
6287 let isTerminator = 1;
6288 let isBranch = 1;
6289 let isPredicatedNew = 1;
6290 let cofRelax1 = 1;
6291 let cofRelax2 = 1;
6292 let cofMax1 = 1;
6293 let Uses = [P1];
6294 let Defs = [P1, PC];
6295 let BaseOpcode = "J4_cmpeqip1";
6296 let isTaken = Inst{13};
6297 let isExtendable = 1;
6298 let opExtendable = 2;
6299 let isExtentSigned = 1;
6300 let opExtentBits = 11;
6301 let opExtentAlign = 2;
6303 def 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",
6307 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6308 let Inst{0-0} = 0b0;
6309 let Inst{13-13} = 0b0;
6310 let Inst{19-19} = 0b0;
6311 let Inst{31-22} = 0b0010010000;
6312 let isPredicated = 1;
6313 let isTerminator = 1;
6314 let isBranch = 1;
6315 let isNewValue = 1;
6316 let cofMax1 = 1;
6317 let isRestrictNoSlot1Store = 1;
6318 let Defs = [PC];
6319 let BaseOpcode = "J4_cmpeqi";
6320 let isTaken = Inst{13};
6321 let isExtendable = 1;
6322 let opExtendable = 2;
6323 let isExtentSigned = 1;
6324 let opExtentBits = 11;
6325 let opExtentAlign = 2;
6326 let opNewValue = 0;
6328 def 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",
6332 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6333 let Inst{0-0} = 0b0;
6334 let Inst{13-13} = 0b1;
6335 let Inst{19-19} = 0b0;
6336 let Inst{31-22} = 0b0010010000;
6337 let isPredicated = 1;
6338 let isTerminator = 1;
6339 let isBranch = 1;
6340 let isNewValue = 1;
6341 let cofMax1 = 1;
6342 let isRestrictNoSlot1Store = 1;
6343 let Defs = [PC];
6344 let BaseOpcode = "J4_cmpeqi";
6345 let isTaken = Inst{13};
6346 let isExtendable = 1;
6347 let opExtendable = 2;
6348 let isExtentSigned = 1;
6349 let opExtentBits = 11;
6350 let opExtentAlign = 2;
6351 let opNewValue = 0;
6353 def 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",
6357 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6358 let Inst{0-0} = 0b0;
6359 let Inst{13-13} = 0b0;
6360 let Inst{31-22} = 0b0001000000;
6361 let isPredicated = 1;
6362 let isTerminator = 1;
6363 let isBranch = 1;
6364 let isPredicatedNew = 1;
6365 let cofRelax1 = 1;
6366 let cofRelax2 = 1;
6367 let cofMax1 = 1;
6368 let Uses = [P0];
6369 let Defs = [P0, PC];
6370 let BaseOpcode = "J4_cmpeqip0";
6371 let isTaken = Inst{13};
6372 let isExtendable = 1;
6373 let opExtendable = 2;
6374 let isExtentSigned = 1;
6375 let opExtentBits = 11;
6376 let opExtentAlign = 2;
6378 def 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",
6382 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6383 let Inst{0-0} = 0b0;
6384 let Inst{13-13} = 0b1;
6385 let Inst{31-22} = 0b0001000000;
6386 let isPredicated = 1;
6387 let isTerminator = 1;
6388 let isBranch = 1;
6389 let isPredicatedNew = 1;
6390 let cofRelax1 = 1;
6391 let cofRelax2 = 1;
6392 let cofMax1 = 1;
6393 let Uses = [P0];
6394 let Defs = [P0, PC];
6395 let BaseOpcode = "J4_cmpeqip0";
6396 let isTaken = Inst{13};
6397 let isExtendable = 1;
6398 let opExtendable = 2;
6399 let isExtentSigned = 1;
6400 let opExtentBits = 11;
6401 let opExtentAlign = 2;
6403 def 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",
6407 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6408 let Inst{0-0} = 0b0;
6409 let Inst{13-13} = 0b0;
6410 let Inst{31-22} = 0b0001001000;
6411 let isPredicated = 1;
6412 let isTerminator = 1;
6413 let isBranch = 1;
6414 let isPredicatedNew = 1;
6415 let cofRelax1 = 1;
6416 let cofRelax2 = 1;
6417 let cofMax1 = 1;
6418 let Uses = [P1];
6419 let Defs = [P1, PC];
6420 let BaseOpcode = "J4_cmpeqip1";
6421 let isTaken = Inst{13};
6422 let isExtendable = 1;
6423 let opExtendable = 2;
6424 let isExtentSigned = 1;
6425 let opExtentBits = 11;
6426 let opExtentAlign = 2;
6428 def 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",
6432 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6433 let Inst{0-0} = 0b0;
6434 let Inst{13-13} = 0b1;
6435 let Inst{31-22} = 0b0001001000;
6436 let isPredicated = 1;
6437 let isTerminator = 1;
6438 let isBranch = 1;
6439 let isPredicatedNew = 1;
6440 let cofRelax1 = 1;
6441 let cofRelax2 = 1;
6442 let cofMax1 = 1;
6443 let Uses = [P1];
6444 let Defs = [P1, PC];
6445 let BaseOpcode = "J4_cmpeqip1";
6446 let isTaken = Inst{13};
6447 let isExtendable = 1;
6448 let opExtendable = 2;
6449 let isExtentSigned = 1;
6450 let opExtentBits = 11;
6451 let opExtentAlign = 2;
6453 def 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",
6457 tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel {
6458 let Inst{0-0} = 0b0;
6459 let Inst{13-8} = 0b000000;
6460 let Inst{19-19} = 0b0;
6461 let Inst{31-22} = 0b0010011001;
6462 let isPredicated = 1;
6463 let isPredicatedFalse = 1;
6464 let isTerminator = 1;
6465 let isBranch = 1;
6466 let isNewValue = 1;
6467 let cofMax1 = 1;
6468 let isRestrictNoSlot1Store = 1;
6469 let Defs = [PC];
6470 let BaseOpcode = "J4_cmpeqn1r";
6471 let isTaken = Inst{13};
6472 let isExtendable = 1;
6473 let opExtendable = 2;
6474 let isExtentSigned = 1;
6475 let opExtentBits = 11;
6476 let opExtentAlign = 2;
6477 let opNewValue = 0;
6479 def 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",
6483 tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel {
6484 let Inst{0-0} = 0b0;
6485 let Inst{13-8} = 0b100000;
6486 let Inst{19-19} = 0b0;
6487 let Inst{31-22} = 0b0010011001;
6488 let isPredicated = 1;
6489 let isPredicatedFalse = 1;
6490 let isTerminator = 1;
6491 let isBranch = 1;
6492 let isNewValue = 1;
6493 let cofMax1 = 1;
6494 let isRestrictNoSlot1Store = 1;
6495 let Defs = [PC];
6496 let BaseOpcode = "J4_cmpeqn1r";
6497 let isTaken = Inst{13};
6498 let isExtendable = 1;
6499 let opExtendable = 2;
6500 let isExtentSigned = 1;
6501 let opExtentBits = 11;
6502 let opExtentAlign = 2;
6503 let opNewValue = 0;
6505 def 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",
6509 tc_24f426ab, TypeCJ>, Enc_1de724, PredRel {
6510 let Inst{0-0} = 0b0;
6511 let Inst{13-8} = 0b000000;
6512 let Inst{31-22} = 0b0001000111;
6513 let isPredicated = 1;
6514 let isPredicatedFalse = 1;
6515 let isTerminator = 1;
6516 let isBranch = 1;
6517 let isPredicatedNew = 1;
6518 let cofRelax1 = 1;
6519 let cofRelax2 = 1;
6520 let cofMax1 = 1;
6521 let Uses = [P0];
6522 let Defs = [P0, PC];
6523 let BaseOpcode = "J4_cmpeqn1p0";
6524 let isTaken = Inst{13};
6525 let isExtendable = 1;
6526 let opExtendable = 2;
6527 let isExtentSigned = 1;
6528 let opExtentBits = 11;
6529 let opExtentAlign = 2;
6531 def 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",
6535 tc_24f426ab, TypeCJ>, Enc_14640c, PredRel {
6536 let Inst{0-0} = 0b0;
6537 let Inst{13-8} = 0b100000;
6538 let Inst{31-22} = 0b0001000111;
6539 let isPredicated = 1;
6540 let isPredicatedFalse = 1;
6541 let isTerminator = 1;
6542 let isBranch = 1;
6543 let isPredicatedNew = 1;
6544 let cofRelax1 = 1;
6545 let cofRelax2 = 1;
6546 let cofMax1 = 1;
6547 let Uses = [P0];
6548 let Defs = [P0, PC];
6549 let BaseOpcode = "J4_cmpeqn1p0";
6550 let isTaken = Inst{13};
6551 let isExtendable = 1;
6552 let opExtendable = 2;
6553 let isExtentSigned = 1;
6554 let opExtentBits = 11;
6555 let opExtentAlign = 2;
6557 def 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",
6561 tc_24f426ab, TypeCJ>, Enc_668704, PredRel {
6562 let Inst{0-0} = 0b0;
6563 let Inst{13-8} = 0b000000;
6564 let Inst{31-22} = 0b0001001111;
6565 let isPredicated = 1;
6566 let isPredicatedFalse = 1;
6567 let isTerminator = 1;
6568 let isBranch = 1;
6569 let isPredicatedNew = 1;
6570 let cofRelax1 = 1;
6571 let cofRelax2 = 1;
6572 let cofMax1 = 1;
6573 let Uses = [P1];
6574 let Defs = [P1, PC];
6575 let BaseOpcode = "J4_cmpeqn1p1";
6576 let isTaken = Inst{13};
6577 let isExtendable = 1;
6578 let opExtendable = 2;
6579 let isExtentSigned = 1;
6580 let opExtentBits = 11;
6581 let opExtentAlign = 2;
6583 def 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",
6587 tc_24f426ab, TypeCJ>, Enc_800e04, PredRel {
6588 let Inst{0-0} = 0b0;
6589 let Inst{13-8} = 0b100000;
6590 let Inst{31-22} = 0b0001001111;
6591 let isPredicated = 1;
6592 let isPredicatedFalse = 1;
6593 let isTerminator = 1;
6594 let isBranch = 1;
6595 let isPredicatedNew = 1;
6596 let cofRelax1 = 1;
6597 let cofRelax2 = 1;
6598 let cofMax1 = 1;
6599 let Uses = [P1];
6600 let Defs = [P1, PC];
6601 let BaseOpcode = "J4_cmpeqn1p1";
6602 let isTaken = Inst{13};
6603 let isExtendable = 1;
6604 let opExtendable = 2;
6605 let isExtentSigned = 1;
6606 let opExtentBits = 11;
6607 let opExtentAlign = 2;
6609 def 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",
6613 tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel {
6614 let Inst{0-0} = 0b0;
6615 let Inst{13-8} = 0b000000;
6616 let Inst{19-19} = 0b0;
6617 let Inst{31-22} = 0b0010011000;
6618 let isPredicated = 1;
6619 let isTerminator = 1;
6620 let isBranch = 1;
6621 let isNewValue = 1;
6622 let cofMax1 = 1;
6623 let isRestrictNoSlot1Store = 1;
6624 let Defs = [PC];
6625 let BaseOpcode = "J4_cmpeqn1r";
6626 let isTaken = Inst{13};
6627 let isExtendable = 1;
6628 let opExtendable = 2;
6629 let isExtentSigned = 1;
6630 let opExtentBits = 11;
6631 let opExtentAlign = 2;
6632 let opNewValue = 0;
6634 def 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",
6638 tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel {
6639 let Inst{0-0} = 0b0;
6640 let Inst{13-8} = 0b100000;
6641 let Inst{19-19} = 0b0;
6642 let Inst{31-22} = 0b0010011000;
6643 let isPredicated = 1;
6644 let isTerminator = 1;
6645 let isBranch = 1;
6646 let isNewValue = 1;
6647 let cofMax1 = 1;
6648 let isRestrictNoSlot1Store = 1;
6649 let Defs = [PC];
6650 let BaseOpcode = "J4_cmpeqn1r";
6651 let isTaken = Inst{13};
6652 let isExtendable = 1;
6653 let opExtendable = 2;
6654 let isExtentSigned = 1;
6655 let opExtentBits = 11;
6656 let opExtentAlign = 2;
6657 let opNewValue = 0;
6659 def 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",
6663 tc_24f426ab, TypeCJ>, Enc_405228, PredRel {
6664 let Inst{0-0} = 0b0;
6665 let Inst{13-8} = 0b000000;
6666 let Inst{31-22} = 0b0001000110;
6667 let isPredicated = 1;
6668 let isTerminator = 1;
6669 let isBranch = 1;
6670 let isPredicatedNew = 1;
6671 let cofRelax1 = 1;
6672 let cofRelax2 = 1;
6673 let cofMax1 = 1;
6674 let Uses = [P0];
6675 let Defs = [P0, PC];
6676 let BaseOpcode = "J4_cmpeqn1p0";
6677 let isTaken = Inst{13};
6678 let isExtendable = 1;
6679 let opExtendable = 2;
6680 let isExtentSigned = 1;
6681 let opExtentBits = 11;
6682 let opExtentAlign = 2;
6684 def 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",
6688 tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel {
6689 let Inst{0-0} = 0b0;
6690 let Inst{13-8} = 0b100000;
6691 let Inst{31-22} = 0b0001000110;
6692 let isPredicated = 1;
6693 let isTerminator = 1;
6694 let isBranch = 1;
6695 let isPredicatedNew = 1;
6696 let cofRelax1 = 1;
6697 let cofRelax2 = 1;
6698 let cofMax1 = 1;
6699 let Uses = [P0];
6700 let Defs = [P0, PC];
6701 let BaseOpcode = "J4_cmpeqn1p0";
6702 let isTaken = Inst{13};
6703 let isExtendable = 1;
6704 let opExtendable = 2;
6705 let isExtentSigned = 1;
6706 let opExtentBits = 11;
6707 let opExtentAlign = 2;
6709 def 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",
6713 tc_24f426ab, TypeCJ>, Enc_736575, PredRel {
6714 let Inst{0-0} = 0b0;
6715 let Inst{13-8} = 0b000000;
6716 let Inst{31-22} = 0b0001001110;
6717 let isPredicated = 1;
6718 let isTerminator = 1;
6719 let isBranch = 1;
6720 let isPredicatedNew = 1;
6721 let cofRelax1 = 1;
6722 let cofRelax2 = 1;
6723 let cofMax1 = 1;
6724 let Uses = [P1];
6725 let Defs = [P1, PC];
6726 let BaseOpcode = "J4_cmpeqn1p1";
6727 let isTaken = Inst{13};
6728 let isExtendable = 1;
6729 let opExtendable = 2;
6730 let isExtentSigned = 1;
6731 let opExtentBits = 11;
6732 let opExtentAlign = 2;
6734 def 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",
6738 tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel {
6739 let Inst{0-0} = 0b0;
6740 let Inst{13-8} = 0b100000;
6741 let Inst{31-22} = 0b0001001110;
6742 let isPredicated = 1;
6743 let isTerminator = 1;
6744 let isBranch = 1;
6745 let isPredicatedNew = 1;
6746 let cofRelax1 = 1;
6747 let cofRelax2 = 1;
6748 let cofMax1 = 1;
6749 let Uses = [P1];
6750 let Defs = [P1, PC];
6751 let BaseOpcode = "J4_cmpeqn1p1";
6752 let isTaken = Inst{13};
6753 let isExtendable = 1;
6754 let opExtendable = 2;
6755 let isExtentSigned = 1;
6756 let opExtentBits = 11;
6757 let opExtentAlign = 2;
6759 def 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",
6763 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6764 let Inst{0-0} = 0b0;
6765 let Inst{13-13} = 0b0;
6766 let Inst{19-19} = 0b0;
6767 let Inst{31-22} = 0b0010000011;
6768 let isPredicated = 1;
6769 let isPredicatedFalse = 1;
6770 let isTerminator = 1;
6771 let isBranch = 1;
6772 let isNewValue = 1;
6773 let cofMax1 = 1;
6774 let isRestrictNoSlot1Store = 1;
6775 let Defs = [PC];
6776 let BaseOpcode = "J4_cmpgtr";
6777 let isTaken = Inst{13};
6778 let isExtendable = 1;
6779 let opExtendable = 2;
6780 let isExtentSigned = 1;
6781 let opExtentBits = 11;
6782 let opExtentAlign = 2;
6783 let opNewValue = 0;
6785 def 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",
6789 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6790 let Inst{0-0} = 0b0;
6791 let Inst{13-13} = 0b1;
6792 let Inst{19-19} = 0b0;
6793 let Inst{31-22} = 0b0010000011;
6794 let isPredicated = 1;
6795 let isPredicatedFalse = 1;
6796 let isTerminator = 1;
6797 let isBranch = 1;
6798 let isNewValue = 1;
6799 let cofMax1 = 1;
6800 let isRestrictNoSlot1Store = 1;
6801 let Defs = [PC];
6802 let BaseOpcode = "J4_cmpgtr";
6803 let isTaken = Inst{13};
6804 let isExtendable = 1;
6805 let opExtendable = 2;
6806 let isExtentSigned = 1;
6807 let opExtentBits = 11;
6808 let opExtentAlign = 2;
6809 let opNewValue = 0;
6811 def 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",
6815 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6816 let Inst{0-0} = 0b0;
6817 let Inst{13-12} = 0b00;
6818 let Inst{31-22} = 0b0001010011;
6819 let isPredicated = 1;
6820 let isPredicatedFalse = 1;
6821 let isTerminator = 1;
6822 let isBranch = 1;
6823 let isPredicatedNew = 1;
6824 let cofRelax1 = 1;
6825 let cofRelax2 = 1;
6826 let cofMax1 = 1;
6827 let Uses = [P0];
6828 let Defs = [P0, PC];
6829 let BaseOpcode = "J4_cmpgtp0";
6830 let isTaken = Inst{13};
6831 let isExtendable = 1;
6832 let opExtendable = 2;
6833 let isExtentSigned = 1;
6834 let opExtentBits = 11;
6835 let opExtentAlign = 2;
6837 def 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",
6841 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6842 let Inst{0-0} = 0b0;
6843 let Inst{13-12} = 0b10;
6844 let Inst{31-22} = 0b0001010011;
6845 let isPredicated = 1;
6846 let isPredicatedFalse = 1;
6847 let isTerminator = 1;
6848 let isBranch = 1;
6849 let isPredicatedNew = 1;
6850 let cofRelax1 = 1;
6851 let cofRelax2 = 1;
6852 let cofMax1 = 1;
6853 let Uses = [P0];
6854 let Defs = [P0, PC];
6855 let BaseOpcode = "J4_cmpgtp0";
6856 let isTaken = Inst{13};
6857 let isExtendable = 1;
6858 let opExtendable = 2;
6859 let isExtentSigned = 1;
6860 let opExtentBits = 11;
6861 let opExtentAlign = 2;
6863 def 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",
6867 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6868 let Inst{0-0} = 0b0;
6869 let Inst{13-12} = 0b01;
6870 let Inst{31-22} = 0b0001010011;
6871 let isPredicated = 1;
6872 let isPredicatedFalse = 1;
6873 let isTerminator = 1;
6874 let isBranch = 1;
6875 let isPredicatedNew = 1;
6876 let cofRelax1 = 1;
6877 let cofRelax2 = 1;
6878 let cofMax1 = 1;
6879 let Uses = [P1];
6880 let Defs = [P1, PC];
6881 let BaseOpcode = "J4_cmpgtp1";
6882 let isTaken = Inst{13};
6883 let isExtendable = 1;
6884 let opExtendable = 2;
6885 let isExtentSigned = 1;
6886 let opExtentBits = 11;
6887 let opExtentAlign = 2;
6889 def 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",
6893 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6894 let Inst{0-0} = 0b0;
6895 let Inst{13-12} = 0b11;
6896 let Inst{31-22} = 0b0001010011;
6897 let isPredicated = 1;
6898 let isPredicatedFalse = 1;
6899 let isTerminator = 1;
6900 let isBranch = 1;
6901 let isPredicatedNew = 1;
6902 let cofRelax1 = 1;
6903 let cofRelax2 = 1;
6904 let cofMax1 = 1;
6905 let Uses = [P1];
6906 let Defs = [P1, PC];
6907 let BaseOpcode = "J4_cmpgtp1";
6908 let isTaken = Inst{13};
6909 let isExtendable = 1;
6910 let opExtendable = 2;
6911 let isExtentSigned = 1;
6912 let opExtentBits = 11;
6913 let opExtentAlign = 2;
6915 def 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",
6919 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6920 let Inst{0-0} = 0b0;
6921 let Inst{13-13} = 0b0;
6922 let Inst{19-19} = 0b0;
6923 let Inst{31-22} = 0b0010000010;
6924 let isPredicated = 1;
6925 let isTerminator = 1;
6926 let isBranch = 1;
6927 let isNewValue = 1;
6928 let cofMax1 = 1;
6929 let isRestrictNoSlot1Store = 1;
6930 let Defs = [PC];
6931 let BaseOpcode = "J4_cmpgtr";
6932 let isTaken = Inst{13};
6933 let isExtendable = 1;
6934 let opExtendable = 2;
6935 let isExtentSigned = 1;
6936 let opExtentBits = 11;
6937 let opExtentAlign = 2;
6938 let opNewValue = 0;
6940 def 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",
6944 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6945 let Inst{0-0} = 0b0;
6946 let Inst{13-13} = 0b1;
6947 let Inst{19-19} = 0b0;
6948 let Inst{31-22} = 0b0010000010;
6949 let isPredicated = 1;
6950 let isTerminator = 1;
6951 let isBranch = 1;
6952 let isNewValue = 1;
6953 let cofMax1 = 1;
6954 let isRestrictNoSlot1Store = 1;
6955 let Defs = [PC];
6956 let BaseOpcode = "J4_cmpgtr";
6957 let isTaken = Inst{13};
6958 let isExtendable = 1;
6959 let opExtendable = 2;
6960 let isExtentSigned = 1;
6961 let opExtentBits = 11;
6962 let opExtentAlign = 2;
6963 let opNewValue = 0;
6965 def 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",
6969 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6970 let Inst{0-0} = 0b0;
6971 let Inst{13-12} = 0b00;
6972 let Inst{31-22} = 0b0001010010;
6973 let isPredicated = 1;
6974 let isTerminator = 1;
6975 let isBranch = 1;
6976 let isPredicatedNew = 1;
6977 let cofRelax1 = 1;
6978 let cofRelax2 = 1;
6979 let cofMax1 = 1;
6980 let Uses = [P0];
6981 let Defs = [P0, PC];
6982 let BaseOpcode = "J4_cmpgtp0";
6983 let isTaken = Inst{13};
6984 let isExtendable = 1;
6985 let opExtendable = 2;
6986 let isExtentSigned = 1;
6987 let opExtentBits = 11;
6988 let opExtentAlign = 2;
6990 def 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",
6994 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6995 let Inst{0-0} = 0b0;
6996 let Inst{13-12} = 0b10;
6997 let Inst{31-22} = 0b0001010010;
6998 let isPredicated = 1;
6999 let isTerminator = 1;
7000 let isBranch = 1;
7001 let isPredicatedNew = 1;
7002 let cofRelax1 = 1;
7003 let cofRelax2 = 1;
7004 let cofMax1 = 1;
7005 let Uses = [P0];
7006 let Defs = [P0, PC];
7007 let BaseOpcode = "J4_cmpgtp0";
7008 let isTaken = Inst{13};
7009 let isExtendable = 1;
7010 let opExtendable = 2;
7011 let isExtentSigned = 1;
7012 let opExtentBits = 11;
7013 let opExtentAlign = 2;
7015 def 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",
7019 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7020 let Inst{0-0} = 0b0;
7021 let Inst{13-12} = 0b01;
7022 let Inst{31-22} = 0b0001010010;
7023 let isPredicated = 1;
7024 let isTerminator = 1;
7025 let isBranch = 1;
7026 let isPredicatedNew = 1;
7027 let cofRelax1 = 1;
7028 let cofRelax2 = 1;
7029 let cofMax1 = 1;
7030 let Uses = [P1];
7031 let Defs = [P1, PC];
7032 let BaseOpcode = "J4_cmpgtp1";
7033 let isTaken = Inst{13};
7034 let isExtendable = 1;
7035 let opExtendable = 2;
7036 let isExtentSigned = 1;
7037 let opExtentBits = 11;
7038 let opExtentAlign = 2;
7040 def 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",
7044 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7045 let Inst{0-0} = 0b0;
7046 let Inst{13-12} = 0b11;
7047 let Inst{31-22} = 0b0001010010;
7048 let isPredicated = 1;
7049 let isTerminator = 1;
7050 let isBranch = 1;
7051 let isPredicatedNew = 1;
7052 let cofRelax1 = 1;
7053 let cofRelax2 = 1;
7054 let cofMax1 = 1;
7055 let Uses = [P1];
7056 let Defs = [P1, PC];
7057 let BaseOpcode = "J4_cmpgtp1";
7058 let isTaken = Inst{13};
7059 let isExtendable = 1;
7060 let opExtendable = 2;
7061 let isExtentSigned = 1;
7062 let opExtentBits = 11;
7063 let opExtentAlign = 2;
7065 def 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",
7069 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7070 let Inst{0-0} = 0b0;
7071 let Inst{13-13} = 0b0;
7072 let Inst{19-19} = 0b0;
7073 let Inst{31-22} = 0b0010010011;
7074 let isPredicated = 1;
7075 let isPredicatedFalse = 1;
7076 let isTerminator = 1;
7077 let isBranch = 1;
7078 let isNewValue = 1;
7079 let cofMax1 = 1;
7080 let isRestrictNoSlot1Store = 1;
7081 let Defs = [PC];
7082 let BaseOpcode = "J4_cmpgtir";
7083 let isTaken = Inst{13};
7084 let isExtendable = 1;
7085 let opExtendable = 2;
7086 let isExtentSigned = 1;
7087 let opExtentBits = 11;
7088 let opExtentAlign = 2;
7089 let opNewValue = 0;
7091 def 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",
7095 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7096 let Inst{0-0} = 0b0;
7097 let Inst{13-13} = 0b1;
7098 let Inst{19-19} = 0b0;
7099 let Inst{31-22} = 0b0010010011;
7100 let isPredicated = 1;
7101 let isPredicatedFalse = 1;
7102 let isTerminator = 1;
7103 let isBranch = 1;
7104 let isNewValue = 1;
7105 let cofMax1 = 1;
7106 let isRestrictNoSlot1Store = 1;
7107 let Defs = [PC];
7108 let BaseOpcode = "J4_cmpgtir";
7109 let isTaken = Inst{13};
7110 let isExtendable = 1;
7111 let opExtendable = 2;
7112 let isExtentSigned = 1;
7113 let opExtentBits = 11;
7114 let opExtentAlign = 2;
7115 let opNewValue = 0;
7117 def 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",
7121 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7122 let Inst{0-0} = 0b0;
7123 let Inst{13-13} = 0b0;
7124 let Inst{31-22} = 0b0001000011;
7125 let isPredicated = 1;
7126 let isPredicatedFalse = 1;
7127 let isTerminator = 1;
7128 let isBranch = 1;
7129 let isPredicatedNew = 1;
7130 let cofRelax1 = 1;
7131 let cofRelax2 = 1;
7132 let cofMax1 = 1;
7133 let Uses = [P0];
7134 let Defs = [P0, PC];
7135 let BaseOpcode = "J4_cmpgtip0";
7136 let isTaken = Inst{13};
7137 let isExtendable = 1;
7138 let opExtendable = 2;
7139 let isExtentSigned = 1;
7140 let opExtentBits = 11;
7141 let opExtentAlign = 2;
7143 def 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",
7147 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7148 let Inst{0-0} = 0b0;
7149 let Inst{13-13} = 0b1;
7150 let Inst{31-22} = 0b0001000011;
7151 let isPredicated = 1;
7152 let isPredicatedFalse = 1;
7153 let isTerminator = 1;
7154 let isBranch = 1;
7155 let isPredicatedNew = 1;
7156 let cofRelax1 = 1;
7157 let cofRelax2 = 1;
7158 let cofMax1 = 1;
7159 let Uses = [P0];
7160 let Defs = [P0, PC];
7161 let BaseOpcode = "J4_cmpgtip0";
7162 let isTaken = Inst{13};
7163 let isExtendable = 1;
7164 let opExtendable = 2;
7165 let isExtentSigned = 1;
7166 let opExtentBits = 11;
7167 let opExtentAlign = 2;
7169 def 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",
7173 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7174 let Inst{0-0} = 0b0;
7175 let Inst{13-13} = 0b0;
7176 let Inst{31-22} = 0b0001001011;
7177 let isPredicated = 1;
7178 let isPredicatedFalse = 1;
7179 let isTerminator = 1;
7180 let isBranch = 1;
7181 let isPredicatedNew = 1;
7182 let cofRelax1 = 1;
7183 let cofRelax2 = 1;
7184 let cofMax1 = 1;
7185 let Uses = [P1];
7186 let Defs = [P1, PC];
7187 let BaseOpcode = "J4_cmpgtip1";
7188 let isTaken = Inst{13};
7189 let isExtendable = 1;
7190 let opExtendable = 2;
7191 let isExtentSigned = 1;
7192 let opExtentBits = 11;
7193 let opExtentAlign = 2;
7195 def 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",
7199 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7200 let Inst{0-0} = 0b0;
7201 let Inst{13-13} = 0b1;
7202 let Inst{31-22} = 0b0001001011;
7203 let isPredicated = 1;
7204 let isPredicatedFalse = 1;
7205 let isTerminator = 1;
7206 let isBranch = 1;
7207 let isPredicatedNew = 1;
7208 let cofRelax1 = 1;
7209 let cofRelax2 = 1;
7210 let cofMax1 = 1;
7211 let Uses = [P1];
7212 let Defs = [P1, PC];
7213 let BaseOpcode = "J4_cmpgtip1";
7214 let isTaken = Inst{13};
7215 let isExtendable = 1;
7216 let opExtendable = 2;
7217 let isExtentSigned = 1;
7218 let opExtentBits = 11;
7219 let opExtentAlign = 2;
7221 def 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",
7225 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7226 let Inst{0-0} = 0b0;
7227 let Inst{13-13} = 0b0;
7228 let Inst{19-19} = 0b0;
7229 let Inst{31-22} = 0b0010010010;
7230 let isPredicated = 1;
7231 let isTerminator = 1;
7232 let isBranch = 1;
7233 let isNewValue = 1;
7234 let cofMax1 = 1;
7235 let isRestrictNoSlot1Store = 1;
7236 let Defs = [PC];
7237 let BaseOpcode = "J4_cmpgtir";
7238 let isTaken = Inst{13};
7239 let isExtendable = 1;
7240 let opExtendable = 2;
7241 let isExtentSigned = 1;
7242 let opExtentBits = 11;
7243 let opExtentAlign = 2;
7244 let opNewValue = 0;
7246 def 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",
7250 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7251 let Inst{0-0} = 0b0;
7252 let Inst{13-13} = 0b1;
7253 let Inst{19-19} = 0b0;
7254 let Inst{31-22} = 0b0010010010;
7255 let isPredicated = 1;
7256 let isTerminator = 1;
7257 let isBranch = 1;
7258 let isNewValue = 1;
7259 let cofMax1 = 1;
7260 let isRestrictNoSlot1Store = 1;
7261 let Defs = [PC];
7262 let BaseOpcode = "J4_cmpgtir";
7263 let isTaken = Inst{13};
7264 let isExtendable = 1;
7265 let opExtendable = 2;
7266 let isExtentSigned = 1;
7267 let opExtentBits = 11;
7268 let opExtentAlign = 2;
7269 let opNewValue = 0;
7271 def 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",
7275 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7276 let Inst{0-0} = 0b0;
7277 let Inst{13-13} = 0b0;
7278 let Inst{31-22} = 0b0001000010;
7279 let isPredicated = 1;
7280 let isTerminator = 1;
7281 let isBranch = 1;
7282 let isPredicatedNew = 1;
7283 let cofRelax1 = 1;
7284 let cofRelax2 = 1;
7285 let cofMax1 = 1;
7286 let Uses = [P0];
7287 let Defs = [P0, PC];
7288 let BaseOpcode = "J4_cmpgtip0";
7289 let isTaken = Inst{13};
7290 let isExtendable = 1;
7291 let opExtendable = 2;
7292 let isExtentSigned = 1;
7293 let opExtentBits = 11;
7294 let opExtentAlign = 2;
7296 def 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",
7300 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7301 let Inst{0-0} = 0b0;
7302 let Inst{13-13} = 0b1;
7303 let Inst{31-22} = 0b0001000010;
7304 let isPredicated = 1;
7305 let isTerminator = 1;
7306 let isBranch = 1;
7307 let isPredicatedNew = 1;
7308 let cofRelax1 = 1;
7309 let cofRelax2 = 1;
7310 let cofMax1 = 1;
7311 let Uses = [P0];
7312 let Defs = [P0, PC];
7313 let BaseOpcode = "J4_cmpgtip0";
7314 let isTaken = Inst{13};
7315 let isExtendable = 1;
7316 let opExtendable = 2;
7317 let isExtentSigned = 1;
7318 let opExtentBits = 11;
7319 let opExtentAlign = 2;
7321 def 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",
7325 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7326 let Inst{0-0} = 0b0;
7327 let Inst{13-13} = 0b0;
7328 let Inst{31-22} = 0b0001001010;
7329 let isPredicated = 1;
7330 let isTerminator = 1;
7331 let isBranch = 1;
7332 let isPredicatedNew = 1;
7333 let cofRelax1 = 1;
7334 let cofRelax2 = 1;
7335 let cofMax1 = 1;
7336 let Uses = [P1];
7337 let Defs = [P1, PC];
7338 let BaseOpcode = "J4_cmpgtip1";
7339 let isTaken = Inst{13};
7340 let isExtendable = 1;
7341 let opExtendable = 2;
7342 let isExtentSigned = 1;
7343 let opExtentBits = 11;
7344 let opExtentAlign = 2;
7346 def 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",
7350 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7351 let Inst{0-0} = 0b0;
7352 let Inst{13-13} = 0b1;
7353 let Inst{31-22} = 0b0001001010;
7354 let isPredicated = 1;
7355 let isTerminator = 1;
7356 let isBranch = 1;
7357 let isPredicatedNew = 1;
7358 let cofRelax1 = 1;
7359 let cofRelax2 = 1;
7360 let cofMax1 = 1;
7361 let Uses = [P1];
7362 let Defs = [P1, PC];
7363 let BaseOpcode = "J4_cmpgtip1";
7364 let isTaken = Inst{13};
7365 let isExtendable = 1;
7366 let opExtendable = 2;
7367 let isExtentSigned = 1;
7368 let opExtentBits = 11;
7369 let opExtentAlign = 2;
7371 def 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",
7375 tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel {
7376 let Inst{0-0} = 0b0;
7377 let Inst{13-8} = 0b000000;
7378 let Inst{19-19} = 0b0;
7379 let Inst{31-22} = 0b0010011011;
7380 let isPredicated = 1;
7381 let isPredicatedFalse = 1;
7382 let isTerminator = 1;
7383 let isBranch = 1;
7384 let isNewValue = 1;
7385 let cofMax1 = 1;
7386 let isRestrictNoSlot1Store = 1;
7387 let Defs = [PC];
7388 let BaseOpcode = "J4_cmpgtn1r";
7389 let isTaken = Inst{13};
7390 let isExtendable = 1;
7391 let opExtendable = 2;
7392 let isExtentSigned = 1;
7393 let opExtentBits = 11;
7394 let opExtentAlign = 2;
7395 let opNewValue = 0;
7397 def 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",
7401 tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel {
7402 let Inst{0-0} = 0b0;
7403 let Inst{13-8} = 0b100000;
7404 let Inst{19-19} = 0b0;
7405 let Inst{31-22} = 0b0010011011;
7406 let isPredicated = 1;
7407 let isPredicatedFalse = 1;
7408 let isTerminator = 1;
7409 let isBranch = 1;
7410 let isNewValue = 1;
7411 let cofMax1 = 1;
7412 let isRestrictNoSlot1Store = 1;
7413 let Defs = [PC];
7414 let BaseOpcode = "J4_cmpgtn1r";
7415 let isTaken = Inst{13};
7416 let isExtendable = 1;
7417 let opExtendable = 2;
7418 let isExtentSigned = 1;
7419 let opExtentBits = 11;
7420 let opExtentAlign = 2;
7421 let opNewValue = 0;
7423 def 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",
7427 tc_24f426ab, TypeCJ>, Enc_a42857, PredRel {
7428 let Inst{0-0} = 0b0;
7429 let Inst{13-8} = 0b000001;
7430 let Inst{31-22} = 0b0001000111;
7431 let isPredicated = 1;
7432 let isPredicatedFalse = 1;
7433 let isTerminator = 1;
7434 let isBranch = 1;
7435 let isPredicatedNew = 1;
7436 let cofRelax1 = 1;
7437 let cofRelax2 = 1;
7438 let cofMax1 = 1;
7439 let Uses = [P0];
7440 let Defs = [P0, PC];
7441 let BaseOpcode = "J4_cmpgtn1p0";
7442 let isTaken = Inst{13};
7443 let isExtendable = 1;
7444 let opExtendable = 2;
7445 let isExtentSigned = 1;
7446 let opExtentBits = 11;
7447 let opExtentAlign = 2;
7449 def 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",
7453 tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel {
7454 let Inst{0-0} = 0b0;
7455 let Inst{13-8} = 0b100001;
7456 let Inst{31-22} = 0b0001000111;
7457 let isPredicated = 1;
7458 let isPredicatedFalse = 1;
7459 let isTerminator = 1;
7460 let isBranch = 1;
7461 let isPredicatedNew = 1;
7462 let cofRelax1 = 1;
7463 let cofRelax2 = 1;
7464 let cofMax1 = 1;
7465 let Uses = [P0];
7466 let Defs = [P0, PC];
7467 let BaseOpcode = "J4_cmpgtn1p0";
7468 let isTaken = Inst{13};
7469 let isExtendable = 1;
7470 let opExtendable = 2;
7471 let isExtentSigned = 1;
7472 let opExtentBits = 11;
7473 let opExtentAlign = 2;
7475 def 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",
7479 tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel {
7480 let Inst{0-0} = 0b0;
7481 let Inst{13-8} = 0b000001;
7482 let Inst{31-22} = 0b0001001111;
7483 let isPredicated = 1;
7484 let isPredicatedFalse = 1;
7485 let isTerminator = 1;
7486 let isBranch = 1;
7487 let isPredicatedNew = 1;
7488 let cofRelax1 = 1;
7489 let cofRelax2 = 1;
7490 let cofMax1 = 1;
7491 let Uses = [P1];
7492 let Defs = [P1, PC];
7493 let BaseOpcode = "J4_cmpgtn1p1";
7494 let isTaken = Inst{13};
7495 let isExtendable = 1;
7496 let opExtendable = 2;
7497 let isExtentSigned = 1;
7498 let opExtentBits = 11;
7499 let opExtentAlign = 2;
7501 def 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",
7505 tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel {
7506 let Inst{0-0} = 0b0;
7507 let Inst{13-8} = 0b100001;
7508 let Inst{31-22} = 0b0001001111;
7509 let isPredicated = 1;
7510 let isPredicatedFalse = 1;
7511 let isTerminator = 1;
7512 let isBranch = 1;
7513 let isPredicatedNew = 1;
7514 let cofRelax1 = 1;
7515 let cofRelax2 = 1;
7516 let cofMax1 = 1;
7517 let Uses = [P1];
7518 let Defs = [P1, PC];
7519 let BaseOpcode = "J4_cmpgtn1p1";
7520 let isTaken = Inst{13};
7521 let isExtendable = 1;
7522 let opExtendable = 2;
7523 let isExtentSigned = 1;
7524 let opExtentBits = 11;
7525 let opExtentAlign = 2;
7527 def 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",
7531 tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel {
7532 let Inst{0-0} = 0b0;
7533 let Inst{13-8} = 0b000000;
7534 let Inst{19-19} = 0b0;
7535 let Inst{31-22} = 0b0010011010;
7536 let isPredicated = 1;
7537 let isTerminator = 1;
7538 let isBranch = 1;
7539 let isNewValue = 1;
7540 let cofMax1 = 1;
7541 let isRestrictNoSlot1Store = 1;
7542 let Defs = [PC];
7543 let BaseOpcode = "J4_cmpgtn1r";
7544 let isTaken = Inst{13};
7545 let isExtendable = 1;
7546 let opExtendable = 2;
7547 let isExtentSigned = 1;
7548 let opExtentBits = 11;
7549 let opExtentAlign = 2;
7550 let opNewValue = 0;
7552 def 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",
7556 tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel {
7557 let Inst{0-0} = 0b0;
7558 let Inst{13-8} = 0b100000;
7559 let Inst{19-19} = 0b0;
7560 let Inst{31-22} = 0b0010011010;
7561 let isPredicated = 1;
7562 let isTerminator = 1;
7563 let isBranch = 1;
7564 let isNewValue = 1;
7565 let cofMax1 = 1;
7566 let isRestrictNoSlot1Store = 1;
7567 let Defs = [PC];
7568 let BaseOpcode = "J4_cmpgtn1r";
7569 let isTaken = Inst{13};
7570 let isExtendable = 1;
7571 let opExtendable = 2;
7572 let isExtentSigned = 1;
7573 let opExtentBits = 11;
7574 let opExtentAlign = 2;
7575 let opNewValue = 0;
7577 def 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",
7581 tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel {
7582 let Inst{0-0} = 0b0;
7583 let Inst{13-8} = 0b000001;
7584 let Inst{31-22} = 0b0001000110;
7585 let isPredicated = 1;
7586 let isTerminator = 1;
7587 let isBranch = 1;
7588 let isPredicatedNew = 1;
7589 let cofRelax1 = 1;
7590 let cofRelax2 = 1;
7591 let cofMax1 = 1;
7592 let Uses = [P0];
7593 let Defs = [P0, PC];
7594 let BaseOpcode = "J4_cmpgtn1p0";
7595 let isTaken = Inst{13};
7596 let isExtendable = 1;
7597 let opExtendable = 2;
7598 let isExtentSigned = 1;
7599 let opExtentBits = 11;
7600 let opExtentAlign = 2;
7602 def 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",
7606 tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel {
7607 let Inst{0-0} = 0b0;
7608 let Inst{13-8} = 0b100001;
7609 let Inst{31-22} = 0b0001000110;
7610 let isPredicated = 1;
7611 let isTerminator = 1;
7612 let isBranch = 1;
7613 let isPredicatedNew = 1;
7614 let cofRelax1 = 1;
7615 let cofRelax2 = 1;
7616 let cofMax1 = 1;
7617 let Uses = [P0];
7618 let Defs = [P0, PC];
7619 let BaseOpcode = "J4_cmpgtn1p0";
7620 let isTaken = Inst{13};
7621 let isExtendable = 1;
7622 let opExtendable = 2;
7623 let isExtentSigned = 1;
7624 let opExtentBits = 11;
7625 let opExtentAlign = 2;
7627 def 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",
7631 tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel {
7632 let Inst{0-0} = 0b0;
7633 let Inst{13-8} = 0b000001;
7634 let Inst{31-22} = 0b0001001110;
7635 let isPredicated = 1;
7636 let isTerminator = 1;
7637 let isBranch = 1;
7638 let isPredicatedNew = 1;
7639 let cofRelax1 = 1;
7640 let cofRelax2 = 1;
7641 let cofMax1 = 1;
7642 let Uses = [P1];
7643 let Defs = [P1, PC];
7644 let BaseOpcode = "J4_cmpgtn1p1";
7645 let isTaken = Inst{13};
7646 let isExtendable = 1;
7647 let opExtendable = 2;
7648 let isExtentSigned = 1;
7649 let opExtentBits = 11;
7650 let opExtentAlign = 2;
7652 def 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",
7656 tc_24f426ab, TypeCJ>, Enc_178717, PredRel {
7657 let Inst{0-0} = 0b0;
7658 let Inst{13-8} = 0b100001;
7659 let Inst{31-22} = 0b0001001110;
7660 let isPredicated = 1;
7661 let isTerminator = 1;
7662 let isBranch = 1;
7663 let isPredicatedNew = 1;
7664 let cofRelax1 = 1;
7665 let cofRelax2 = 1;
7666 let cofMax1 = 1;
7667 let Uses = [P1];
7668 let Defs = [P1, PC];
7669 let BaseOpcode = "J4_cmpgtn1p1";
7670 let isTaken = Inst{13};
7671 let isExtendable = 1;
7672 let opExtendable = 2;
7673 let isExtentSigned = 1;
7674 let opExtentBits = 11;
7675 let opExtentAlign = 2;
7677 def 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",
7681 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7682 let Inst{0-0} = 0b0;
7683 let Inst{13-13} = 0b0;
7684 let Inst{19-19} = 0b0;
7685 let Inst{31-22} = 0b0010000101;
7686 let isPredicated = 1;
7687 let isPredicatedFalse = 1;
7688 let isTerminator = 1;
7689 let isBranch = 1;
7690 let isNewValue = 1;
7691 let cofMax1 = 1;
7692 let isRestrictNoSlot1Store = 1;
7693 let Defs = [PC];
7694 let BaseOpcode = "J4_cmpgtur";
7695 let isTaken = Inst{13};
7696 let isExtendable = 1;
7697 let opExtendable = 2;
7698 let isExtentSigned = 1;
7699 let opExtentBits = 11;
7700 let opExtentAlign = 2;
7701 let opNewValue = 0;
7703 def 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",
7707 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7708 let Inst{0-0} = 0b0;
7709 let Inst{13-13} = 0b1;
7710 let Inst{19-19} = 0b0;
7711 let Inst{31-22} = 0b0010000101;
7712 let isPredicated = 1;
7713 let isPredicatedFalse = 1;
7714 let isTerminator = 1;
7715 let isBranch = 1;
7716 let isNewValue = 1;
7717 let cofMax1 = 1;
7718 let isRestrictNoSlot1Store = 1;
7719 let Defs = [PC];
7720 let BaseOpcode = "J4_cmpgtur";
7721 let isTaken = Inst{13};
7722 let isExtendable = 1;
7723 let opExtendable = 2;
7724 let isExtentSigned = 1;
7725 let opExtentBits = 11;
7726 let opExtentAlign = 2;
7727 let opNewValue = 0;
7729 def 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",
7733 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7734 let Inst{0-0} = 0b0;
7735 let Inst{13-12} = 0b00;
7736 let Inst{31-22} = 0b0001010101;
7737 let isPredicated = 1;
7738 let isPredicatedFalse = 1;
7739 let isTerminator = 1;
7740 let isBranch = 1;
7741 let isPredicatedNew = 1;
7742 let cofRelax1 = 1;
7743 let cofRelax2 = 1;
7744 let cofMax1 = 1;
7745 let Uses = [P0];
7746 let Defs = [P0, PC];
7747 let BaseOpcode = "J4_cmpgtup0";
7748 let isTaken = Inst{13};
7749 let isExtendable = 1;
7750 let opExtendable = 2;
7751 let isExtentSigned = 1;
7752 let opExtentBits = 11;
7753 let opExtentAlign = 2;
7755 def 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",
7759 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7760 let Inst{0-0} = 0b0;
7761 let Inst{13-12} = 0b10;
7762 let Inst{31-22} = 0b0001010101;
7763 let isPredicated = 1;
7764 let isPredicatedFalse = 1;
7765 let isTerminator = 1;
7766 let isBranch = 1;
7767 let isPredicatedNew = 1;
7768 let cofRelax1 = 1;
7769 let cofRelax2 = 1;
7770 let cofMax1 = 1;
7771 let Uses = [P0];
7772 let Defs = [P0, PC];
7773 let BaseOpcode = "J4_cmpgtup0";
7774 let isTaken = Inst{13};
7775 let isExtendable = 1;
7776 let opExtendable = 2;
7777 let isExtentSigned = 1;
7778 let opExtentBits = 11;
7779 let opExtentAlign = 2;
7781 def 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",
7785 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7786 let Inst{0-0} = 0b0;
7787 let Inst{13-12} = 0b01;
7788 let Inst{31-22} = 0b0001010101;
7789 let isPredicated = 1;
7790 let isPredicatedFalse = 1;
7791 let isTerminator = 1;
7792 let isBranch = 1;
7793 let isPredicatedNew = 1;
7794 let cofRelax1 = 1;
7795 let cofRelax2 = 1;
7796 let cofMax1 = 1;
7797 let Uses = [P1];
7798 let Defs = [P1, PC];
7799 let BaseOpcode = "J4_cmpgtup1";
7800 let isTaken = Inst{13};
7801 let isExtendable = 1;
7802 let opExtendable = 2;
7803 let isExtentSigned = 1;
7804 let opExtentBits = 11;
7805 let opExtentAlign = 2;
7807 def 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",
7811 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7812 let Inst{0-0} = 0b0;
7813 let Inst{13-12} = 0b11;
7814 let Inst{31-22} = 0b0001010101;
7815 let isPredicated = 1;
7816 let isPredicatedFalse = 1;
7817 let isTerminator = 1;
7818 let isBranch = 1;
7819 let isPredicatedNew = 1;
7820 let cofRelax1 = 1;
7821 let cofRelax2 = 1;
7822 let cofMax1 = 1;
7823 let Uses = [P1];
7824 let Defs = [P1, PC];
7825 let BaseOpcode = "J4_cmpgtup1";
7826 let isTaken = Inst{13};
7827 let isExtendable = 1;
7828 let opExtendable = 2;
7829 let isExtentSigned = 1;
7830 let opExtentBits = 11;
7831 let opExtentAlign = 2;
7833 def 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",
7837 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7838 let Inst{0-0} = 0b0;
7839 let Inst{13-13} = 0b0;
7840 let Inst{19-19} = 0b0;
7841 let Inst{31-22} = 0b0010000100;
7842 let isPredicated = 1;
7843 let isTerminator = 1;
7844 let isBranch = 1;
7845 let isNewValue = 1;
7846 let cofMax1 = 1;
7847 let isRestrictNoSlot1Store = 1;
7848 let Defs = [PC];
7849 let BaseOpcode = "J4_cmpgtur";
7850 let isTaken = Inst{13};
7851 let isExtendable = 1;
7852 let opExtendable = 2;
7853 let isExtentSigned = 1;
7854 let opExtentBits = 11;
7855 let opExtentAlign = 2;
7856 let opNewValue = 0;
7858 def 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",
7862 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7863 let Inst{0-0} = 0b0;
7864 let Inst{13-13} = 0b1;
7865 let Inst{19-19} = 0b0;
7866 let Inst{31-22} = 0b0010000100;
7867 let isPredicated = 1;
7868 let isTerminator = 1;
7869 let isBranch = 1;
7870 let isNewValue = 1;
7871 let cofMax1 = 1;
7872 let isRestrictNoSlot1Store = 1;
7873 let Defs = [PC];
7874 let BaseOpcode = "J4_cmpgtur";
7875 let isTaken = Inst{13};
7876 let isExtendable = 1;
7877 let opExtendable = 2;
7878 let isExtentSigned = 1;
7879 let opExtentBits = 11;
7880 let opExtentAlign = 2;
7881 let opNewValue = 0;
7883 def 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",
7887 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7888 let Inst{0-0} = 0b0;
7889 let Inst{13-12} = 0b00;
7890 let Inst{31-22} = 0b0001010100;
7891 let isPredicated = 1;
7892 let isTerminator = 1;
7893 let isBranch = 1;
7894 let isPredicatedNew = 1;
7895 let cofRelax1 = 1;
7896 let cofRelax2 = 1;
7897 let cofMax1 = 1;
7898 let Uses = [P0];
7899 let Defs = [P0, PC];
7900 let BaseOpcode = "J4_cmpgtup0";
7901 let isTaken = Inst{13};
7902 let isExtendable = 1;
7903 let opExtendable = 2;
7904 let isExtentSigned = 1;
7905 let opExtentBits = 11;
7906 let opExtentAlign = 2;
7908 def 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",
7912 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7913 let Inst{0-0} = 0b0;
7914 let Inst{13-12} = 0b10;
7915 let Inst{31-22} = 0b0001010100;
7916 let isPredicated = 1;
7917 let isTerminator = 1;
7918 let isBranch = 1;
7919 let isPredicatedNew = 1;
7920 let cofRelax1 = 1;
7921 let cofRelax2 = 1;
7922 let cofMax1 = 1;
7923 let Uses = [P0];
7924 let Defs = [P0, PC];
7925 let BaseOpcode = "J4_cmpgtup0";
7926 let isTaken = Inst{13};
7927 let isExtendable = 1;
7928 let opExtendable = 2;
7929 let isExtentSigned = 1;
7930 let opExtentBits = 11;
7931 let opExtentAlign = 2;
7933 def 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",
7937 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7938 let Inst{0-0} = 0b0;
7939 let Inst{13-12} = 0b01;
7940 let Inst{31-22} = 0b0001010100;
7941 let isPredicated = 1;
7942 let isTerminator = 1;
7943 let isBranch = 1;
7944 let isPredicatedNew = 1;
7945 let cofRelax1 = 1;
7946 let cofRelax2 = 1;
7947 let cofMax1 = 1;
7948 let Uses = [P1];
7949 let Defs = [P1, PC];
7950 let BaseOpcode = "J4_cmpgtup1";
7951 let isTaken = Inst{13};
7952 let isExtendable = 1;
7953 let opExtendable = 2;
7954 let isExtentSigned = 1;
7955 let opExtentBits = 11;
7956 let opExtentAlign = 2;
7958 def 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",
7962 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7963 let Inst{0-0} = 0b0;
7964 let Inst{13-12} = 0b11;
7965 let Inst{31-22} = 0b0001010100;
7966 let isPredicated = 1;
7967 let isTerminator = 1;
7968 let isBranch = 1;
7969 let isPredicatedNew = 1;
7970 let cofRelax1 = 1;
7971 let cofRelax2 = 1;
7972 let cofMax1 = 1;
7973 let Uses = [P1];
7974 let Defs = [P1, PC];
7975 let BaseOpcode = "J4_cmpgtup1";
7976 let isTaken = Inst{13};
7977 let isExtendable = 1;
7978 let opExtendable = 2;
7979 let isExtentSigned = 1;
7980 let opExtentBits = 11;
7981 let opExtentAlign = 2;
7983 def 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",
7987 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7988 let Inst{0-0} = 0b0;
7989 let Inst{13-13} = 0b0;
7990 let Inst{19-19} = 0b0;
7991 let Inst{31-22} = 0b0010010101;
7992 let isPredicated = 1;
7993 let isPredicatedFalse = 1;
7994 let isTerminator = 1;
7995 let isBranch = 1;
7996 let isNewValue = 1;
7997 let cofMax1 = 1;
7998 let isRestrictNoSlot1Store = 1;
7999 let Defs = [PC];
8000 let BaseOpcode = "J4_cmpgtuir";
8001 let isTaken = Inst{13};
8002 let isExtendable = 1;
8003 let opExtendable = 2;
8004 let isExtentSigned = 1;
8005 let opExtentBits = 11;
8006 let opExtentAlign = 2;
8007 let opNewValue = 0;
8009 def 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",
8013 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8014 let Inst{0-0} = 0b0;
8015 let Inst{13-13} = 0b1;
8016 let Inst{19-19} = 0b0;
8017 let Inst{31-22} = 0b0010010101;
8018 let isPredicated = 1;
8019 let isPredicatedFalse = 1;
8020 let isTerminator = 1;
8021 let isBranch = 1;
8022 let isNewValue = 1;
8023 let cofMax1 = 1;
8024 let isRestrictNoSlot1Store = 1;
8025 let Defs = [PC];
8026 let BaseOpcode = "J4_cmpgtuir";
8027 let isTaken = Inst{13};
8028 let isExtendable = 1;
8029 let opExtendable = 2;
8030 let isExtentSigned = 1;
8031 let opExtentBits = 11;
8032 let opExtentAlign = 2;
8033 let opNewValue = 0;
8035 def 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",
8039 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8040 let Inst{0-0} = 0b0;
8041 let Inst{13-13} = 0b0;
8042 let Inst{31-22} = 0b0001000101;
8043 let isPredicated = 1;
8044 let isPredicatedFalse = 1;
8045 let isTerminator = 1;
8046 let isBranch = 1;
8047 let isPredicatedNew = 1;
8048 let cofRelax1 = 1;
8049 let cofRelax2 = 1;
8050 let cofMax1 = 1;
8051 let Uses = [P0];
8052 let Defs = [P0, PC];
8053 let BaseOpcode = "J4_cmpgtuip0";
8054 let isTaken = Inst{13};
8055 let isExtendable = 1;
8056 let opExtendable = 2;
8057 let isExtentSigned = 1;
8058 let opExtentBits = 11;
8059 let opExtentAlign = 2;
8061 def 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",
8065 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8066 let Inst{0-0} = 0b0;
8067 let Inst{13-13} = 0b1;
8068 let Inst{31-22} = 0b0001000101;
8069 let isPredicated = 1;
8070 let isPredicatedFalse = 1;
8071 let isTerminator = 1;
8072 let isBranch = 1;
8073 let isPredicatedNew = 1;
8074 let cofRelax1 = 1;
8075 let cofRelax2 = 1;
8076 let cofMax1 = 1;
8077 let Uses = [P0];
8078 let Defs = [P0, PC];
8079 let BaseOpcode = "J4_cmpgtuip0";
8080 let isTaken = Inst{13};
8081 let isExtendable = 1;
8082 let opExtendable = 2;
8083 let isExtentSigned = 1;
8084 let opExtentBits = 11;
8085 let opExtentAlign = 2;
8087 def 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",
8091 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8092 let Inst{0-0} = 0b0;
8093 let Inst{13-13} = 0b0;
8094 let Inst{31-22} = 0b0001001101;
8095 let isPredicated = 1;
8096 let isPredicatedFalse = 1;
8097 let isTerminator = 1;
8098 let isBranch = 1;
8099 let isPredicatedNew = 1;
8100 let cofRelax1 = 1;
8101 let cofRelax2 = 1;
8102 let cofMax1 = 1;
8103 let Uses = [P1];
8104 let Defs = [P1, PC];
8105 let BaseOpcode = "J4_cmpgtuip1";
8106 let isTaken = Inst{13};
8107 let isExtendable = 1;
8108 let opExtendable = 2;
8109 let isExtentSigned = 1;
8110 let opExtentBits = 11;
8111 let opExtentAlign = 2;
8113 def 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",
8117 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8118 let Inst{0-0} = 0b0;
8119 let Inst{13-13} = 0b1;
8120 let Inst{31-22} = 0b0001001101;
8121 let isPredicated = 1;
8122 let isPredicatedFalse = 1;
8123 let isTerminator = 1;
8124 let isBranch = 1;
8125 let isPredicatedNew = 1;
8126 let cofRelax1 = 1;
8127 let cofRelax2 = 1;
8128 let cofMax1 = 1;
8129 let Uses = [P1];
8130 let Defs = [P1, PC];
8131 let BaseOpcode = "J4_cmpgtuip1";
8132 let isTaken = Inst{13};
8133 let isExtendable = 1;
8134 let opExtendable = 2;
8135 let isExtentSigned = 1;
8136 let opExtentBits = 11;
8137 let opExtentAlign = 2;
8139 def 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",
8143 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8144 let Inst{0-0} = 0b0;
8145 let Inst{13-13} = 0b0;
8146 let Inst{19-19} = 0b0;
8147 let Inst{31-22} = 0b0010010100;
8148 let isPredicated = 1;
8149 let isTerminator = 1;
8150 let isBranch = 1;
8151 let isNewValue = 1;
8152 let cofMax1 = 1;
8153 let isRestrictNoSlot1Store = 1;
8154 let Defs = [PC];
8155 let BaseOpcode = "J4_cmpgtuir";
8156 let isTaken = Inst{13};
8157 let isExtendable = 1;
8158 let opExtendable = 2;
8159 let isExtentSigned = 1;
8160 let opExtentBits = 11;
8161 let opExtentAlign = 2;
8162 let opNewValue = 0;
8164 def 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",
8168 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8169 let Inst{0-0} = 0b0;
8170 let Inst{13-13} = 0b1;
8171 let Inst{19-19} = 0b0;
8172 let Inst{31-22} = 0b0010010100;
8173 let isPredicated = 1;
8174 let isTerminator = 1;
8175 let isBranch = 1;
8176 let isNewValue = 1;
8177 let cofMax1 = 1;
8178 let isRestrictNoSlot1Store = 1;
8179 let Defs = [PC];
8180 let BaseOpcode = "J4_cmpgtuir";
8181 let isTaken = Inst{13};
8182 let isExtendable = 1;
8183 let opExtendable = 2;
8184 let isExtentSigned = 1;
8185 let opExtentBits = 11;
8186 let opExtentAlign = 2;
8187 let opNewValue = 0;
8189 def 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",
8193 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8194 let Inst{0-0} = 0b0;
8195 let Inst{13-13} = 0b0;
8196 let Inst{31-22} = 0b0001000100;
8197 let isPredicated = 1;
8198 let isTerminator = 1;
8199 let isBranch = 1;
8200 let isPredicatedNew = 1;
8201 let cofRelax1 = 1;
8202 let cofRelax2 = 1;
8203 let cofMax1 = 1;
8204 let Uses = [P0];
8205 let Defs = [P0, PC];
8206 let BaseOpcode = "J4_cmpgtuip0";
8207 let isTaken = Inst{13};
8208 let isExtendable = 1;
8209 let opExtendable = 2;
8210 let isExtentSigned = 1;
8211 let opExtentBits = 11;
8212 let opExtentAlign = 2;
8214 def 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",
8218 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8219 let Inst{0-0} = 0b0;
8220 let Inst{13-13} = 0b1;
8221 let Inst{31-22} = 0b0001000100;
8222 let isPredicated = 1;
8223 let isTerminator = 1;
8224 let isBranch = 1;
8225 let isPredicatedNew = 1;
8226 let cofRelax1 = 1;
8227 let cofRelax2 = 1;
8228 let cofMax1 = 1;
8229 let Uses = [P0];
8230 let Defs = [P0, PC];
8231 let BaseOpcode = "J4_cmpgtuip0";
8232 let isTaken = Inst{13};
8233 let isExtendable = 1;
8234 let opExtendable = 2;
8235 let isExtentSigned = 1;
8236 let opExtentBits = 11;
8237 let opExtentAlign = 2;
8239 def 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",
8243 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8244 let Inst{0-0} = 0b0;
8245 let Inst{13-13} = 0b0;
8246 let Inst{31-22} = 0b0001001100;
8247 let isPredicated = 1;
8248 let isTerminator = 1;
8249 let isBranch = 1;
8250 let isPredicatedNew = 1;
8251 let cofRelax1 = 1;
8252 let cofRelax2 = 1;
8253 let cofMax1 = 1;
8254 let Uses = [P1];
8255 let Defs = [P1, PC];
8256 let BaseOpcode = "J4_cmpgtuip1";
8257 let isTaken = Inst{13};
8258 let isExtendable = 1;
8259 let opExtendable = 2;
8260 let isExtentSigned = 1;
8261 let opExtentBits = 11;
8262 let opExtentAlign = 2;
8264 def 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",
8268 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8269 let Inst{0-0} = 0b0;
8270 let Inst{13-13} = 0b1;
8271 let Inst{31-22} = 0b0001001100;
8272 let isPredicated = 1;
8273 let isTerminator = 1;
8274 let isBranch = 1;
8275 let isPredicatedNew = 1;
8276 let cofRelax1 = 1;
8277 let cofRelax2 = 1;
8278 let cofMax1 = 1;
8279 let Uses = [P1];
8280 let Defs = [P1, PC];
8281 let BaseOpcode = "J4_cmpgtuip1";
8282 let isTaken = Inst{13};
8283 let isExtendable = 1;
8284 let opExtendable = 2;
8285 let isExtentSigned = 1;
8286 let opExtentBits = 11;
8287 let opExtentAlign = 2;
8289 def 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",
8293 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8294 let Inst{0-0} = 0b0;
8295 let Inst{13-13} = 0b0;
8296 let Inst{19-19} = 0b0;
8297 let Inst{31-22} = 0b0010000111;
8298 let isPredicated = 1;
8299 let isPredicatedFalse = 1;
8300 let isTerminator = 1;
8301 let isBranch = 1;
8302 let isNewValue = 1;
8303 let cofMax1 = 1;
8304 let isRestrictNoSlot1Store = 1;
8305 let Defs = [PC];
8306 let BaseOpcode = "J4_cmpltr";
8307 let isTaken = Inst{13};
8308 let isExtendable = 1;
8309 let opExtendable = 2;
8310 let isExtentSigned = 1;
8311 let opExtentBits = 11;
8312 let opExtentAlign = 2;
8313 let opNewValue = 1;
8315 def 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",
8319 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8320 let Inst{0-0} = 0b0;
8321 let Inst{13-13} = 0b1;
8322 let Inst{19-19} = 0b0;
8323 let Inst{31-22} = 0b0010000111;
8324 let isPredicated = 1;
8325 let isPredicatedFalse = 1;
8326 let isTerminator = 1;
8327 let isBranch = 1;
8328 let isNewValue = 1;
8329 let cofMax1 = 1;
8330 let isRestrictNoSlot1Store = 1;
8331 let Defs = [PC];
8332 let BaseOpcode = "J4_cmpltr";
8333 let isTaken = Inst{13};
8334 let isExtendable = 1;
8335 let opExtendable = 2;
8336 let isExtentSigned = 1;
8337 let opExtentBits = 11;
8338 let opExtentAlign = 2;
8339 let opNewValue = 1;
8341 def 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",
8345 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8346 let Inst{0-0} = 0b0;
8347 let Inst{13-13} = 0b0;
8348 let Inst{19-19} = 0b0;
8349 let Inst{31-22} = 0b0010000110;
8350 let isPredicated = 1;
8351 let isTerminator = 1;
8352 let isBranch = 1;
8353 let isNewValue = 1;
8354 let cofMax1 = 1;
8355 let isRestrictNoSlot1Store = 1;
8356 let Defs = [PC];
8357 let BaseOpcode = "J4_cmpltr";
8358 let isTaken = Inst{13};
8359 let isExtendable = 1;
8360 let opExtendable = 2;
8361 let isExtentSigned = 1;
8362 let opExtentBits = 11;
8363 let opExtentAlign = 2;
8364 let opNewValue = 1;
8366 def 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",
8370 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8371 let Inst{0-0} = 0b0;
8372 let Inst{13-13} = 0b1;
8373 let Inst{19-19} = 0b0;
8374 let Inst{31-22} = 0b0010000110;
8375 let isPredicated = 1;
8376 let isTerminator = 1;
8377 let isBranch = 1;
8378 let isNewValue = 1;
8379 let cofMax1 = 1;
8380 let isRestrictNoSlot1Store = 1;
8381 let Defs = [PC];
8382 let BaseOpcode = "J4_cmpltr";
8383 let isTaken = Inst{13};
8384 let isExtendable = 1;
8385 let opExtendable = 2;
8386 let isExtentSigned = 1;
8387 let opExtentBits = 11;
8388 let opExtentAlign = 2;
8389 let opNewValue = 1;
8391 def 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",
8395 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8396 let Inst{0-0} = 0b0;
8397 let Inst{13-13} = 0b0;
8398 let Inst{19-19} = 0b0;
8399 let Inst{31-22} = 0b0010001001;
8400 let isPredicated = 1;
8401 let isPredicatedFalse = 1;
8402 let isTerminator = 1;
8403 let isBranch = 1;
8404 let isNewValue = 1;
8405 let cofMax1 = 1;
8406 let isRestrictNoSlot1Store = 1;
8407 let Defs = [PC];
8408 let BaseOpcode = "J4_cmpltur";
8409 let isTaken = Inst{13};
8410 let isExtendable = 1;
8411 let opExtendable = 2;
8412 let isExtentSigned = 1;
8413 let opExtentBits = 11;
8414 let opExtentAlign = 2;
8415 let opNewValue = 1;
8417 def 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",
8421 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8422 let Inst{0-0} = 0b0;
8423 let Inst{13-13} = 0b1;
8424 let Inst{19-19} = 0b0;
8425 let Inst{31-22} = 0b0010001001;
8426 let isPredicated = 1;
8427 let isPredicatedFalse = 1;
8428 let isTerminator = 1;
8429 let isBranch = 1;
8430 let isNewValue = 1;
8431 let cofMax1 = 1;
8432 let isRestrictNoSlot1Store = 1;
8433 let Defs = [PC];
8434 let BaseOpcode = "J4_cmpltur";
8435 let isTaken = Inst{13};
8436 let isExtendable = 1;
8437 let opExtendable = 2;
8438 let isExtentSigned = 1;
8439 let opExtentBits = 11;
8440 let opExtentAlign = 2;
8441 let opNewValue = 1;
8443 def 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",
8447 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8448 let Inst{0-0} = 0b0;
8449 let Inst{13-13} = 0b0;
8450 let Inst{19-19} = 0b0;
8451 let Inst{31-22} = 0b0010001000;
8452 let isPredicated = 1;
8453 let isTerminator = 1;
8454 let isBranch = 1;
8455 let isNewValue = 1;
8456 let cofMax1 = 1;
8457 let isRestrictNoSlot1Store = 1;
8458 let Defs = [PC];
8459 let BaseOpcode = "J4_cmpltur";
8460 let isTaken = Inst{13};
8461 let isExtendable = 1;
8462 let opExtendable = 2;
8463 let isExtentSigned = 1;
8464 let opExtentBits = 11;
8465 let opExtentAlign = 2;
8466 let opNewValue = 1;
8468 def 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",
8472 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8473 let Inst{0-0} = 0b0;
8474 let Inst{13-13} = 0b1;
8475 let Inst{19-19} = 0b0;
8476 let Inst{31-22} = 0b0010001000;
8477 let isPredicated = 1;
8478 let isTerminator = 1;
8479 let isBranch = 1;
8480 let isNewValue = 1;
8481 let cofMax1 = 1;
8482 let isRestrictNoSlot1Store = 1;
8483 let Defs = [PC];
8484 let BaseOpcode = "J4_cmpltur";
8485 let isTaken = Inst{13};
8486 let isExtendable = 1;
8487 let opExtendable = 2;
8488 let isExtentSigned = 1;
8489 let opExtentBits = 11;
8490 let opExtentAlign = 2;
8491 let opNewValue = 1;
8493 def J4_hintjumpr : HInst<
8494 (outs),
8495 (ins IntRegs:$Rs32),
8496 "hintjr($Rs32)",
8497 tc_60e324ff, TypeJ>, Enc_ecbcc8 {
8498 let Inst{13-0} = 0b00000000000000;
8499 let Inst{31-21} = 0b01010010101;
8500 let isTerminator = 1;
8501 let isIndirectBranch = 1;
8502 let isBranch = 1;
8503 let cofMax1 = 1;
8505 def J4_jumpseti : HInst<
8506 (outs GeneralSubRegs:$Rd16),
8507 (ins u6_0Imm:$II, b30_2Imm:$Ii),
8508 "$Rd16 = #$II ; jump $Ii",
8509 tc_5502c366, TypeCJ>, Enc_9e4c3f {
8510 let Inst{0-0} = 0b0;
8511 let Inst{31-22} = 0b0001011000;
8512 let hasNewValue = 1;
8513 let opNewValue = 0;
8514 let isTerminator = 1;
8515 let isBranch = 1;
8516 let cofRelax2 = 1;
8517 let cofMax1 = 1;
8518 let Defs = [PC];
8519 let isExtendable = 1;
8520 let opExtendable = 2;
8521 let isExtentSigned = 1;
8522 let opExtentBits = 11;
8523 let opExtentAlign = 2;
8525 def J4_jumpsetr : HInst<
8526 (outs GeneralSubRegs:$Rd16),
8527 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8528 "$Rd16 = $Rs16 ; jump $Ii",
8529 tc_5502c366, TypeCJ>, Enc_66bce1 {
8530 let Inst{0-0} = 0b0;
8531 let Inst{13-12} = 0b00;
8532 let Inst{31-22} = 0b0001011100;
8533 let hasNewValue = 1;
8534 let opNewValue = 0;
8535 let isTerminator = 1;
8536 let isBranch = 1;
8537 let cofRelax2 = 1;
8538 let cofMax1 = 1;
8539 let Defs = [PC];
8540 let isExtendable = 1;
8541 let opExtendable = 2;
8542 let isExtentSigned = 1;
8543 let opExtentBits = 11;
8544 let opExtentAlign = 2;
8546 def J4_tstbit0_f_jumpnv_nt : HInst<
8547 (outs),
8548 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8549 "if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8550 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8551 let Inst{0-0} = 0b0;
8552 let Inst{13-8} = 0b000000;
8553 let Inst{19-19} = 0b0;
8554 let Inst{31-22} = 0b0010010111;
8555 let isPredicated = 1;
8556 let isPredicatedFalse = 1;
8557 let isTerminator = 1;
8558 let isBranch = 1;
8559 let isNewValue = 1;
8560 let cofMax1 = 1;
8561 let isRestrictNoSlot1Store = 1;
8562 let Defs = [PC];
8563 let isTaken = Inst{13};
8564 let isExtendable = 1;
8565 let opExtendable = 1;
8566 let isExtentSigned = 1;
8567 let opExtentBits = 11;
8568 let opExtentAlign = 2;
8569 let opNewValue = 0;
8571 def J4_tstbit0_f_jumpnv_t : HInst<
8572 (outs),
8573 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8574 "if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8575 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8576 let Inst{0-0} = 0b0;
8577 let Inst{13-8} = 0b100000;
8578 let Inst{19-19} = 0b0;
8579 let Inst{31-22} = 0b0010010111;
8580 let isPredicated = 1;
8581 let isPredicatedFalse = 1;
8582 let isTerminator = 1;
8583 let isBranch = 1;
8584 let isNewValue = 1;
8585 let cofMax1 = 1;
8586 let isRestrictNoSlot1Store = 1;
8587 let Defs = [PC];
8588 let isTaken = Inst{13};
8589 let isExtendable = 1;
8590 let opExtendable = 1;
8591 let isExtentSigned = 1;
8592 let opExtentBits = 11;
8593 let opExtentAlign = 2;
8594 let opNewValue = 0;
8596 def J4_tstbit0_fp0_jump_nt : HInst<
8597 (outs),
8598 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8599 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8600 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8601 let Inst{0-0} = 0b0;
8602 let Inst{13-8} = 0b000011;
8603 let Inst{31-22} = 0b0001000111;
8604 let isPredicated = 1;
8605 let isPredicatedFalse = 1;
8606 let isTerminator = 1;
8607 let isBranch = 1;
8608 let isPredicatedNew = 1;
8609 let cofRelax1 = 1;
8610 let cofRelax2 = 1;
8611 let cofMax1 = 1;
8612 let Uses = [P0];
8613 let Defs = [P0, PC];
8614 let isTaken = Inst{13};
8615 let isExtendable = 1;
8616 let opExtendable = 1;
8617 let isExtentSigned = 1;
8618 let opExtentBits = 11;
8619 let opExtentAlign = 2;
8621 def J4_tstbit0_fp0_jump_t : HInst<
8622 (outs),
8623 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8624 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8625 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8626 let Inst{0-0} = 0b0;
8627 let Inst{13-8} = 0b100011;
8628 let Inst{31-22} = 0b0001000111;
8629 let isPredicated = 1;
8630 let isPredicatedFalse = 1;
8631 let isTerminator = 1;
8632 let isBranch = 1;
8633 let isPredicatedNew = 1;
8634 let cofRelax1 = 1;
8635 let cofRelax2 = 1;
8636 let cofMax1 = 1;
8637 let Uses = [P0];
8638 let Defs = [P0, PC];
8639 let isTaken = Inst{13};
8640 let isExtendable = 1;
8641 let opExtendable = 1;
8642 let isExtentSigned = 1;
8643 let opExtentBits = 11;
8644 let opExtentAlign = 2;
8646 def J4_tstbit0_fp1_jump_nt : HInst<
8647 (outs),
8648 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8649 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8650 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8651 let Inst{0-0} = 0b0;
8652 let Inst{13-8} = 0b000011;
8653 let Inst{31-22} = 0b0001001111;
8654 let isPredicated = 1;
8655 let isPredicatedFalse = 1;
8656 let isTerminator = 1;
8657 let isBranch = 1;
8658 let isPredicatedNew = 1;
8659 let cofRelax1 = 1;
8660 let cofRelax2 = 1;
8661 let cofMax1 = 1;
8662 let Uses = [P1];
8663 let Defs = [P1, PC];
8664 let isTaken = Inst{13};
8665 let isExtendable = 1;
8666 let opExtendable = 1;
8667 let isExtentSigned = 1;
8668 let opExtentBits = 11;
8669 let opExtentAlign = 2;
8671 def J4_tstbit0_fp1_jump_t : HInst<
8672 (outs),
8673 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8674 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8675 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8676 let Inst{0-0} = 0b0;
8677 let Inst{13-8} = 0b100011;
8678 let Inst{31-22} = 0b0001001111;
8679 let isPredicated = 1;
8680 let isPredicatedFalse = 1;
8681 let isTerminator = 1;
8682 let isBranch = 1;
8683 let isPredicatedNew = 1;
8684 let cofRelax1 = 1;
8685 let cofRelax2 = 1;
8686 let cofMax1 = 1;
8687 let Uses = [P1];
8688 let Defs = [P1, PC];
8689 let isTaken = Inst{13};
8690 let isExtendable = 1;
8691 let opExtendable = 1;
8692 let isExtentSigned = 1;
8693 let opExtentBits = 11;
8694 let opExtentAlign = 2;
8696 def J4_tstbit0_t_jumpnv_nt : HInst<
8697 (outs),
8698 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8699 "if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8700 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8701 let Inst{0-0} = 0b0;
8702 let Inst{13-8} = 0b000000;
8703 let Inst{19-19} = 0b0;
8704 let Inst{31-22} = 0b0010010110;
8705 let isPredicated = 1;
8706 let isTerminator = 1;
8707 let isBranch = 1;
8708 let isNewValue = 1;
8709 let cofMax1 = 1;
8710 let isRestrictNoSlot1Store = 1;
8711 let Defs = [PC];
8712 let isTaken = Inst{13};
8713 let isExtendable = 1;
8714 let opExtendable = 1;
8715 let isExtentSigned = 1;
8716 let opExtentBits = 11;
8717 let opExtentAlign = 2;
8718 let opNewValue = 0;
8720 def J4_tstbit0_t_jumpnv_t : HInst<
8721 (outs),
8722 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8723 "if (tstbit($Ns8.new,#0)) jump:t $Ii",
8724 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8725 let Inst{0-0} = 0b0;
8726 let Inst{13-8} = 0b100000;
8727 let Inst{19-19} = 0b0;
8728 let Inst{31-22} = 0b0010010110;
8729 let isPredicated = 1;
8730 let isTerminator = 1;
8731 let isBranch = 1;
8732 let isNewValue = 1;
8733 let cofMax1 = 1;
8734 let isRestrictNoSlot1Store = 1;
8735 let Defs = [PC];
8736 let isTaken = Inst{13};
8737 let isExtendable = 1;
8738 let opExtendable = 1;
8739 let isExtentSigned = 1;
8740 let opExtentBits = 11;
8741 let opExtentAlign = 2;
8742 let opNewValue = 0;
8744 def J4_tstbit0_tp0_jump_nt : HInst<
8745 (outs),
8746 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8747 "p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8748 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8749 let Inst{0-0} = 0b0;
8750 let Inst{13-8} = 0b000011;
8751 let Inst{31-22} = 0b0001000110;
8752 let isPredicated = 1;
8753 let isTerminator = 1;
8754 let isBranch = 1;
8755 let isPredicatedNew = 1;
8756 let cofRelax1 = 1;
8757 let cofRelax2 = 1;
8758 let cofMax1 = 1;
8759 let Uses = [P0];
8760 let Defs = [P0, PC];
8761 let isTaken = Inst{13};
8762 let isExtendable = 1;
8763 let opExtendable = 1;
8764 let isExtentSigned = 1;
8765 let opExtentBits = 11;
8766 let opExtentAlign = 2;
8768 def J4_tstbit0_tp0_jump_t : HInst<
8769 (outs),
8770 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8771 "p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8772 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8773 let Inst{0-0} = 0b0;
8774 let Inst{13-8} = 0b100011;
8775 let Inst{31-22} = 0b0001000110;
8776 let isPredicated = 1;
8777 let isTerminator = 1;
8778 let isBranch = 1;
8779 let isPredicatedNew = 1;
8780 let cofRelax1 = 1;
8781 let cofRelax2 = 1;
8782 let cofMax1 = 1;
8783 let Uses = [P0];
8784 let Defs = [P0, PC];
8785 let isTaken = Inst{13};
8786 let isExtendable = 1;
8787 let opExtendable = 1;
8788 let isExtentSigned = 1;
8789 let opExtentBits = 11;
8790 let opExtentAlign = 2;
8792 def J4_tstbit0_tp1_jump_nt : HInst<
8793 (outs),
8794 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8795 "p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8796 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8797 let Inst{0-0} = 0b0;
8798 let Inst{13-8} = 0b000011;
8799 let Inst{31-22} = 0b0001001110;
8800 let isPredicated = 1;
8801 let isTerminator = 1;
8802 let isBranch = 1;
8803 let isPredicatedNew = 1;
8804 let cofRelax1 = 1;
8805 let cofRelax2 = 1;
8806 let cofMax1 = 1;
8807 let Uses = [P1];
8808 let Defs = [P1, PC];
8809 let isTaken = Inst{13};
8810 let isExtendable = 1;
8811 let opExtendable = 1;
8812 let isExtentSigned = 1;
8813 let opExtentBits = 11;
8814 let opExtentAlign = 2;
8816 def J4_tstbit0_tp1_jump_t : HInst<
8817 (outs),
8818 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8819 "p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8820 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8821 let Inst{0-0} = 0b0;
8822 let Inst{13-8} = 0b100011;
8823 let Inst{31-22} = 0b0001001110;
8824 let isPredicated = 1;
8825 let isTerminator = 1;
8826 let isBranch = 1;
8827 let isPredicatedNew = 1;
8828 let cofRelax1 = 1;
8829 let cofRelax2 = 1;
8830 let cofMax1 = 1;
8831 let Uses = [P1];
8832 let Defs = [P1, PC];
8833 let isTaken = Inst{13};
8834 let isExtendable = 1;
8835 let opExtendable = 1;
8836 let isExtentSigned = 1;
8837 let opExtentBits = 11;
8838 let opExtentAlign = 2;
8840 def L2_deallocframe : HInst<
8841 (outs DoubleRegs:$Rdd32),
8842 (ins IntRegs:$Rs32),
8843 "$Rdd32 = deallocframe($Rs32):raw",
8844 tc_e9170fb7, TypeLD>, Enc_3a3d62 {
8845 let Inst{13-5} = 0b000000000;
8846 let Inst{31-21} = 0b10010000000;
8847 let accessSize = DoubleWordAccess;
8848 let mayLoad = 1;
8849 let Uses = [FRAMEKEY];
8850 let Defs = [R29];
8852 def L2_loadalignb_io : HInst<
8853 (outs DoubleRegs:$Ryy32),
8854 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8855 "$Ryy32 = memb_fifo($Rs32+#$Ii)",
8856 tc_fedb7e19, TypeLD>, Enc_a27588 {
8857 let Inst{24-21} = 0b0100;
8858 let Inst{31-27} = 0b10010;
8859 let addrMode = BaseImmOffset;
8860 let accessSize = ByteAccess;
8861 let mayLoad = 1;
8862 let isExtendable = 1;
8863 let opExtendable = 3;
8864 let isExtentSigned = 1;
8865 let opExtentBits = 11;
8866 let opExtentAlign = 0;
8867 let Constraints = "$Ryy32 = $Ryy32in";
8869 def L2_loadalignb_pbr : HInst<
8870 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8871 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8872 "$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8873 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8874 let Inst{12-5} = 0b00000000;
8875 let Inst{31-21} = 0b10011110100;
8876 let addrMode = PostInc;
8877 let accessSize = ByteAccess;
8878 let mayLoad = 1;
8879 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8881 def L2_loadalignb_pci : HInst<
8882 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8883 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8884 "$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8885 tc_76bb5435, TypeLD>, Enc_74aef2 {
8886 let Inst{12-9} = 0b0000;
8887 let Inst{31-21} = 0b10011000100;
8888 let addrMode = PostInc;
8889 let accessSize = ByteAccess;
8890 let mayLoad = 1;
8891 let Uses = [CS];
8892 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8894 def L2_loadalignb_pcr : HInst<
8895 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8896 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8897 "$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8898 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8899 let Inst{12-5} = 0b00010000;
8900 let Inst{31-21} = 0b10011000100;
8901 let addrMode = PostInc;
8902 let accessSize = ByteAccess;
8903 let mayLoad = 1;
8904 let Uses = [CS];
8905 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8907 def L2_loadalignb_pi : HInst<
8908 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8909 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8910 "$Ryy32 = memb_fifo($Rx32++#$Ii)",
8911 tc_1c7522a8, TypeLD>, Enc_6b197f {
8912 let Inst{13-9} = 0b00000;
8913 let Inst{31-21} = 0b10011010100;
8914 let addrMode = PostInc;
8915 let accessSize = ByteAccess;
8916 let mayLoad = 1;
8917 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8919 def L2_loadalignb_pr : HInst<
8920 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8921 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8922 "$Ryy32 = memb_fifo($Rx32++$Mu2)",
8923 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8924 let Inst{12-5} = 0b00000000;
8925 let Inst{31-21} = 0b10011100100;
8926 let addrMode = PostInc;
8927 let accessSize = ByteAccess;
8928 let mayLoad = 1;
8929 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8931 def L2_loadalignb_zomap : HInst<
8932 (outs DoubleRegs:$Ryy32),
8933 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8934 "$Ryy32 = memb_fifo($Rs32)",
8935 tc_fedb7e19, TypeMAPPING> {
8936 let isPseudo = 1;
8937 let isCodeGenOnly = 1;
8938 let Constraints = "$Ryy32 = $Ryy32in";
8940 def L2_loadalignh_io : HInst<
8941 (outs DoubleRegs:$Ryy32),
8942 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8943 "$Ryy32 = memh_fifo($Rs32+#$Ii)",
8944 tc_fedb7e19, TypeLD>, Enc_5cd7e9 {
8945 let Inst{24-21} = 0b0010;
8946 let Inst{31-27} = 0b10010;
8947 let addrMode = BaseImmOffset;
8948 let accessSize = HalfWordAccess;
8949 let mayLoad = 1;
8950 let isExtendable = 1;
8951 let opExtendable = 3;
8952 let isExtentSigned = 1;
8953 let opExtentBits = 12;
8954 let opExtentAlign = 1;
8955 let Constraints = "$Ryy32 = $Ryy32in";
8957 def L2_loadalignh_pbr : HInst<
8958 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8959 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8960 "$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8961 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8962 let Inst{12-5} = 0b00000000;
8963 let Inst{31-21} = 0b10011110010;
8964 let addrMode = PostInc;
8965 let accessSize = HalfWordAccess;
8966 let mayLoad = 1;
8967 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8969 def L2_loadalignh_pci : HInst<
8970 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8971 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8972 "$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
8973 tc_76bb5435, TypeLD>, Enc_9e2e1c {
8974 let Inst{12-9} = 0b0000;
8975 let Inst{31-21} = 0b10011000010;
8976 let addrMode = PostInc;
8977 let accessSize = HalfWordAccess;
8978 let mayLoad = 1;
8979 let Uses = [CS];
8980 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8982 def L2_loadalignh_pcr : HInst<
8983 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8984 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8985 "$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
8986 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8987 let Inst{12-5} = 0b00010000;
8988 let Inst{31-21} = 0b10011000010;
8989 let addrMode = PostInc;
8990 let accessSize = HalfWordAccess;
8991 let mayLoad = 1;
8992 let Uses = [CS];
8993 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8995 def L2_loadalignh_pi : HInst<
8996 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8997 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
8998 "$Ryy32 = memh_fifo($Rx32++#$Ii)",
8999 tc_1c7522a8, TypeLD>, Enc_bd1cbc {
9000 let Inst{13-9} = 0b00000;
9001 let Inst{31-21} = 0b10011010010;
9002 let addrMode = PostInc;
9003 let accessSize = HalfWordAccess;
9004 let mayLoad = 1;
9005 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9007 def L2_loadalignh_pr : HInst<
9008 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9009 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9010 "$Ryy32 = memh_fifo($Rx32++$Mu2)",
9011 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9012 let Inst{12-5} = 0b00000000;
9013 let Inst{31-21} = 0b10011100010;
9014 let addrMode = PostInc;
9015 let accessSize = HalfWordAccess;
9016 let mayLoad = 1;
9017 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9019 def L2_loadalignh_zomap : HInst<
9020 (outs DoubleRegs:$Ryy32),
9021 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
9022 "$Ryy32 = memh_fifo($Rs32)",
9023 tc_fedb7e19, TypeMAPPING> {
9024 let isPseudo = 1;
9025 let isCodeGenOnly = 1;
9026 let Constraints = "$Ryy32 = $Ryy32in";
9028 def L2_loadbsw2_io : HInst<
9029 (outs IntRegs:$Rd32),
9030 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9031 "$Rd32 = membh($Rs32+#$Ii)",
9032 tc_4222e6bf, TypeLD>, Enc_de0214 {
9033 let Inst{24-21} = 0b0001;
9034 let Inst{31-27} = 0b10010;
9035 let hasNewValue = 1;
9036 let opNewValue = 0;
9037 let addrMode = BaseImmOffset;
9038 let accessSize = HalfWordAccess;
9039 let mayLoad = 1;
9040 let isExtendable = 1;
9041 let opExtendable = 2;
9042 let isExtentSigned = 1;
9043 let opExtentBits = 12;
9044 let opExtentAlign = 1;
9046 def L2_loadbsw2_pbr : HInst<
9047 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9048 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9049 "$Rd32 = membh($Rx32++$Mu2:brev)",
9050 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9051 let Inst{12-5} = 0b00000000;
9052 let Inst{31-21} = 0b10011110001;
9053 let hasNewValue = 1;
9054 let opNewValue = 0;
9055 let addrMode = PostInc;
9056 let accessSize = HalfWordAccess;
9057 let mayLoad = 1;
9058 let Constraints = "$Rx32 = $Rx32in";
9060 def L2_loadbsw2_pci : HInst<
9061 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9062 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9063 "$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
9064 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9065 let Inst{12-9} = 0b0000;
9066 let Inst{31-21} = 0b10011000001;
9067 let hasNewValue = 1;
9068 let opNewValue = 0;
9069 let addrMode = PostInc;
9070 let accessSize = HalfWordAccess;
9071 let mayLoad = 1;
9072 let Uses = [CS];
9073 let Constraints = "$Rx32 = $Rx32in";
9075 def L2_loadbsw2_pcr : HInst<
9076 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9077 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9078 "$Rd32 = membh($Rx32++I:circ($Mu2))",
9079 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9080 let Inst{12-5} = 0b00010000;
9081 let Inst{31-21} = 0b10011000001;
9082 let hasNewValue = 1;
9083 let opNewValue = 0;
9084 let addrMode = PostInc;
9085 let accessSize = HalfWordAccess;
9086 let mayLoad = 1;
9087 let Uses = [CS];
9088 let Constraints = "$Rx32 = $Rx32in";
9090 def L2_loadbsw2_pi : HInst<
9091 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9092 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9093 "$Rd32 = membh($Rx32++#$Ii)",
9094 tc_075c8dd8, TypeLD>, Enc_152467 {
9095 let Inst{13-9} = 0b00000;
9096 let Inst{31-21} = 0b10011010001;
9097 let hasNewValue = 1;
9098 let opNewValue = 0;
9099 let addrMode = PostInc;
9100 let accessSize = HalfWordAccess;
9101 let mayLoad = 1;
9102 let Constraints = "$Rx32 = $Rx32in";
9104 def L2_loadbsw2_pr : HInst<
9105 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9106 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9107 "$Rd32 = membh($Rx32++$Mu2)",
9108 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9109 let Inst{12-5} = 0b00000000;
9110 let Inst{31-21} = 0b10011100001;
9111 let hasNewValue = 1;
9112 let opNewValue = 0;
9113 let addrMode = PostInc;
9114 let accessSize = HalfWordAccess;
9115 let mayLoad = 1;
9116 let Constraints = "$Rx32 = $Rx32in";
9118 def L2_loadbsw2_zomap : HInst<
9119 (outs IntRegs:$Rd32),
9120 (ins IntRegs:$Rs32),
9121 "$Rd32 = membh($Rs32)",
9122 tc_4222e6bf, TypeMAPPING> {
9123 let hasNewValue = 1;
9124 let opNewValue = 0;
9125 let isPseudo = 1;
9126 let isCodeGenOnly = 1;
9128 def L2_loadbsw4_io : HInst<
9129 (outs DoubleRegs:$Rdd32),
9130 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9131 "$Rdd32 = membh($Rs32+#$Ii)",
9132 tc_4222e6bf, TypeLD>, Enc_2d7491 {
9133 let Inst{24-21} = 0b0111;
9134 let Inst{31-27} = 0b10010;
9135 let addrMode = BaseImmOffset;
9136 let accessSize = WordAccess;
9137 let mayLoad = 1;
9138 let isExtendable = 1;
9139 let opExtendable = 2;
9140 let isExtentSigned = 1;
9141 let opExtentBits = 13;
9142 let opExtentAlign = 2;
9144 def L2_loadbsw4_pbr : HInst<
9145 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9146 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9147 "$Rdd32 = membh($Rx32++$Mu2:brev)",
9148 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9149 let Inst{12-5} = 0b00000000;
9150 let Inst{31-21} = 0b10011110111;
9151 let addrMode = PostInc;
9152 let accessSize = WordAccess;
9153 let mayLoad = 1;
9154 let Constraints = "$Rx32 = $Rx32in";
9156 def L2_loadbsw4_pci : HInst<
9157 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9158 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9159 "$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9160 tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9161 let Inst{12-9} = 0b0000;
9162 let Inst{31-21} = 0b10011000111;
9163 let addrMode = PostInc;
9164 let accessSize = WordAccess;
9165 let mayLoad = 1;
9166 let Uses = [CS];
9167 let Constraints = "$Rx32 = $Rx32in";
9169 def L2_loadbsw4_pcr : HInst<
9170 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9171 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9172 "$Rdd32 = membh($Rx32++I:circ($Mu2))",
9173 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9174 let Inst{12-5} = 0b00010000;
9175 let Inst{31-21} = 0b10011000111;
9176 let addrMode = PostInc;
9177 let accessSize = WordAccess;
9178 let mayLoad = 1;
9179 let Uses = [CS];
9180 let Constraints = "$Rx32 = $Rx32in";
9182 def L2_loadbsw4_pi : HInst<
9183 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9184 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9185 "$Rdd32 = membh($Rx32++#$Ii)",
9186 tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9187 let Inst{13-9} = 0b00000;
9188 let Inst{31-21} = 0b10011010111;
9189 let addrMode = PostInc;
9190 let accessSize = WordAccess;
9191 let mayLoad = 1;
9192 let Constraints = "$Rx32 = $Rx32in";
9194 def L2_loadbsw4_pr : HInst<
9195 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9196 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9197 "$Rdd32 = membh($Rx32++$Mu2)",
9198 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9199 let Inst{12-5} = 0b00000000;
9200 let Inst{31-21} = 0b10011100111;
9201 let addrMode = PostInc;
9202 let accessSize = WordAccess;
9203 let mayLoad = 1;
9204 let Constraints = "$Rx32 = $Rx32in";
9206 def L2_loadbsw4_zomap : HInst<
9207 (outs DoubleRegs:$Rdd32),
9208 (ins IntRegs:$Rs32),
9209 "$Rdd32 = membh($Rs32)",
9210 tc_4222e6bf, TypeMAPPING> {
9211 let isPseudo = 1;
9212 let isCodeGenOnly = 1;
9214 def L2_loadbzw2_io : HInst<
9215 (outs IntRegs:$Rd32),
9216 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9217 "$Rd32 = memubh($Rs32+#$Ii)",
9218 tc_4222e6bf, TypeLD>, Enc_de0214 {
9219 let Inst{24-21} = 0b0011;
9220 let Inst{31-27} = 0b10010;
9221 let hasNewValue = 1;
9222 let opNewValue = 0;
9223 let addrMode = BaseImmOffset;
9224 let accessSize = HalfWordAccess;
9225 let mayLoad = 1;
9226 let isExtendable = 1;
9227 let opExtendable = 2;
9228 let isExtentSigned = 1;
9229 let opExtentBits = 12;
9230 let opExtentAlign = 1;
9232 def L2_loadbzw2_pbr : HInst<
9233 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9234 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9235 "$Rd32 = memubh($Rx32++$Mu2:brev)",
9236 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9237 let Inst{12-5} = 0b00000000;
9238 let Inst{31-21} = 0b10011110011;
9239 let hasNewValue = 1;
9240 let opNewValue = 0;
9241 let addrMode = PostInc;
9242 let accessSize = HalfWordAccess;
9243 let mayLoad = 1;
9244 let Constraints = "$Rx32 = $Rx32in";
9246 def L2_loadbzw2_pci : HInst<
9247 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9248 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9249 "$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9250 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9251 let Inst{12-9} = 0b0000;
9252 let Inst{31-21} = 0b10011000011;
9253 let hasNewValue = 1;
9254 let opNewValue = 0;
9255 let addrMode = PostInc;
9256 let accessSize = HalfWordAccess;
9257 let mayLoad = 1;
9258 let Uses = [CS];
9259 let Constraints = "$Rx32 = $Rx32in";
9261 def L2_loadbzw2_pcr : HInst<
9262 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9263 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9264 "$Rd32 = memubh($Rx32++I:circ($Mu2))",
9265 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9266 let Inst{12-5} = 0b00010000;
9267 let Inst{31-21} = 0b10011000011;
9268 let hasNewValue = 1;
9269 let opNewValue = 0;
9270 let addrMode = PostInc;
9271 let accessSize = HalfWordAccess;
9272 let mayLoad = 1;
9273 let Uses = [CS];
9274 let Constraints = "$Rx32 = $Rx32in";
9276 def L2_loadbzw2_pi : HInst<
9277 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9278 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9279 "$Rd32 = memubh($Rx32++#$Ii)",
9280 tc_075c8dd8, TypeLD>, Enc_152467 {
9281 let Inst{13-9} = 0b00000;
9282 let Inst{31-21} = 0b10011010011;
9283 let hasNewValue = 1;
9284 let opNewValue = 0;
9285 let addrMode = PostInc;
9286 let accessSize = HalfWordAccess;
9287 let mayLoad = 1;
9288 let Constraints = "$Rx32 = $Rx32in";
9290 def L2_loadbzw2_pr : HInst<
9291 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9292 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9293 "$Rd32 = memubh($Rx32++$Mu2)",
9294 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9295 let Inst{12-5} = 0b00000000;
9296 let Inst{31-21} = 0b10011100011;
9297 let hasNewValue = 1;
9298 let opNewValue = 0;
9299 let addrMode = PostInc;
9300 let accessSize = HalfWordAccess;
9301 let mayLoad = 1;
9302 let Constraints = "$Rx32 = $Rx32in";
9304 def L2_loadbzw2_zomap : HInst<
9305 (outs IntRegs:$Rd32),
9306 (ins IntRegs:$Rs32),
9307 "$Rd32 = memubh($Rs32)",
9308 tc_4222e6bf, TypeMAPPING> {
9309 let hasNewValue = 1;
9310 let opNewValue = 0;
9311 let isPseudo = 1;
9312 let isCodeGenOnly = 1;
9314 def L2_loadbzw4_io : HInst<
9315 (outs DoubleRegs:$Rdd32),
9316 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9317 "$Rdd32 = memubh($Rs32+#$Ii)",
9318 tc_4222e6bf, TypeLD>, Enc_2d7491 {
9319 let Inst{24-21} = 0b0101;
9320 let Inst{31-27} = 0b10010;
9321 let addrMode = BaseImmOffset;
9322 let accessSize = WordAccess;
9323 let mayLoad = 1;
9324 let isExtendable = 1;
9325 let opExtendable = 2;
9326 let isExtentSigned = 1;
9327 let opExtentBits = 13;
9328 let opExtentAlign = 2;
9330 def L2_loadbzw4_pbr : HInst<
9331 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9332 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9333 "$Rdd32 = memubh($Rx32++$Mu2:brev)",
9334 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9335 let Inst{12-5} = 0b00000000;
9336 let Inst{31-21} = 0b10011110101;
9337 let addrMode = PostInc;
9338 let accessSize = WordAccess;
9339 let mayLoad = 1;
9340 let Constraints = "$Rx32 = $Rx32in";
9342 def L2_loadbzw4_pci : HInst<
9343 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9344 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9345 "$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9346 tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9347 let Inst{12-9} = 0b0000;
9348 let Inst{31-21} = 0b10011000101;
9349 let addrMode = PostInc;
9350 let accessSize = WordAccess;
9351 let mayLoad = 1;
9352 let Uses = [CS];
9353 let Constraints = "$Rx32 = $Rx32in";
9355 def L2_loadbzw4_pcr : HInst<
9356 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9357 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9358 "$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9359 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9360 let Inst{12-5} = 0b00010000;
9361 let Inst{31-21} = 0b10011000101;
9362 let addrMode = PostInc;
9363 let accessSize = WordAccess;
9364 let mayLoad = 1;
9365 let Uses = [CS];
9366 let Constraints = "$Rx32 = $Rx32in";
9368 def L2_loadbzw4_pi : HInst<
9369 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9370 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9371 "$Rdd32 = memubh($Rx32++#$Ii)",
9372 tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9373 let Inst{13-9} = 0b00000;
9374 let Inst{31-21} = 0b10011010101;
9375 let addrMode = PostInc;
9376 let accessSize = WordAccess;
9377 let mayLoad = 1;
9378 let Constraints = "$Rx32 = $Rx32in";
9380 def L2_loadbzw4_pr : HInst<
9381 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9382 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9383 "$Rdd32 = memubh($Rx32++$Mu2)",
9384 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9385 let Inst{12-5} = 0b00000000;
9386 let Inst{31-21} = 0b10011100101;
9387 let addrMode = PostInc;
9388 let accessSize = WordAccess;
9389 let mayLoad = 1;
9390 let Constraints = "$Rx32 = $Rx32in";
9392 def L2_loadbzw4_zomap : HInst<
9393 (outs DoubleRegs:$Rdd32),
9394 (ins IntRegs:$Rs32),
9395 "$Rdd32 = memubh($Rs32)",
9396 tc_4222e6bf, TypeMAPPING> {
9397 let isPseudo = 1;
9398 let isCodeGenOnly = 1;
9400 def L2_loadrb_io : HInst<
9401 (outs IntRegs:$Rd32),
9402 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9403 "$Rd32 = memb($Rs32+#$Ii)",
9404 tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9405 let Inst{24-21} = 0b1000;
9406 let Inst{31-27} = 0b10010;
9407 let hasNewValue = 1;
9408 let opNewValue = 0;
9409 let addrMode = BaseImmOffset;
9410 let accessSize = ByteAccess;
9411 let mayLoad = 1;
9412 let BaseOpcode = "L2_loadrb_io";
9413 let CextOpcode = "L2_loadrb";
9414 let isPredicable = 1;
9415 let isExtendable = 1;
9416 let opExtendable = 2;
9417 let isExtentSigned = 1;
9418 let opExtentBits = 11;
9419 let opExtentAlign = 0;
9421 def L2_loadrb_pbr : HInst<
9422 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9423 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9424 "$Rd32 = memb($Rx32++$Mu2:brev)",
9425 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9426 let Inst{12-5} = 0b00000000;
9427 let Inst{31-21} = 0b10011111000;
9428 let hasNewValue = 1;
9429 let opNewValue = 0;
9430 let addrMode = PostInc;
9431 let accessSize = ByteAccess;
9432 let mayLoad = 1;
9433 let Constraints = "$Rx32 = $Rx32in";
9435 def L2_loadrb_pci : HInst<
9436 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9437 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9438 "$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9439 tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9440 let Inst{12-9} = 0b0000;
9441 let Inst{31-21} = 0b10011001000;
9442 let hasNewValue = 1;
9443 let opNewValue = 0;
9444 let addrMode = PostInc;
9445 let accessSize = ByteAccess;
9446 let mayLoad = 1;
9447 let Uses = [CS];
9448 let Constraints = "$Rx32 = $Rx32in";
9450 def L2_loadrb_pcr : HInst<
9451 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9452 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9453 "$Rd32 = memb($Rx32++I:circ($Mu2))",
9454 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9455 let Inst{12-5} = 0b00010000;
9456 let Inst{31-21} = 0b10011001000;
9457 let hasNewValue = 1;
9458 let opNewValue = 0;
9459 let addrMode = PostInc;
9460 let accessSize = ByteAccess;
9461 let mayLoad = 1;
9462 let Uses = [CS];
9463 let Constraints = "$Rx32 = $Rx32in";
9465 def L2_loadrb_pi : HInst<
9466 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9467 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9468 "$Rd32 = memb($Rx32++#$Ii)",
9469 tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9470 let Inst{13-9} = 0b00000;
9471 let Inst{31-21} = 0b10011011000;
9472 let hasNewValue = 1;
9473 let opNewValue = 0;
9474 let addrMode = PostInc;
9475 let accessSize = ByteAccess;
9476 let mayLoad = 1;
9477 let BaseOpcode = "L2_loadrb_pi";
9478 let CextOpcode = "L2_loadrb";
9479 let isPredicable = 1;
9480 let Constraints = "$Rx32 = $Rx32in";
9482 def L2_loadrb_pr : HInst<
9483 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9484 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9485 "$Rd32 = memb($Rx32++$Mu2)",
9486 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9487 let Inst{12-5} = 0b00000000;
9488 let Inst{31-21} = 0b10011101000;
9489 let hasNewValue = 1;
9490 let opNewValue = 0;
9491 let addrMode = PostInc;
9492 let accessSize = ByteAccess;
9493 let mayLoad = 1;
9494 let Constraints = "$Rx32 = $Rx32in";
9496 def L2_loadrb_zomap : HInst<
9497 (outs IntRegs:$Rd32),
9498 (ins IntRegs:$Rs32),
9499 "$Rd32 = memb($Rs32)",
9500 tc_4222e6bf, TypeMAPPING> {
9501 let hasNewValue = 1;
9502 let opNewValue = 0;
9503 let isPseudo = 1;
9504 let isCodeGenOnly = 1;
9506 def L2_loadrbgp : HInst<
9507 (outs IntRegs:$Rd32),
9508 (ins u32_0Imm:$Ii),
9509 "$Rd32 = memb(gp+#$Ii)",
9510 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9511 let Inst{24-21} = 0b1000;
9512 let Inst{31-27} = 0b01001;
9513 let hasNewValue = 1;
9514 let opNewValue = 0;
9515 let accessSize = ByteAccess;
9516 let mayLoad = 1;
9517 let Uses = [GP];
9518 let BaseOpcode = "L4_loadrb_abs";
9519 let isPredicable = 1;
9520 let opExtendable = 1;
9521 let isExtentSigned = 0;
9522 let opExtentBits = 16;
9523 let opExtentAlign = 0;
9525 def L2_loadrd_io : HInst<
9526 (outs DoubleRegs:$Rdd32),
9527 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
9528 "$Rdd32 = memd($Rs32+#$Ii)",
9529 tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9530 let Inst{24-21} = 0b1110;
9531 let Inst{31-27} = 0b10010;
9532 let addrMode = BaseImmOffset;
9533 let accessSize = DoubleWordAccess;
9534 let mayLoad = 1;
9535 let BaseOpcode = "L2_loadrd_io";
9536 let CextOpcode = "L2_loadrd";
9537 let isPredicable = 1;
9538 let isExtendable = 1;
9539 let opExtendable = 2;
9540 let isExtentSigned = 1;
9541 let opExtentBits = 14;
9542 let opExtentAlign = 3;
9544 def L2_loadrd_pbr : HInst<
9545 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9546 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9547 "$Rdd32 = memd($Rx32++$Mu2:brev)",
9548 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9549 let Inst{12-5} = 0b00000000;
9550 let Inst{31-21} = 0b10011111110;
9551 let addrMode = PostInc;
9552 let accessSize = DoubleWordAccess;
9553 let mayLoad = 1;
9554 let Constraints = "$Rx32 = $Rx32in";
9556 def L2_loadrd_pci : HInst<
9557 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9558 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9559 "$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9560 tc_5ceb2f9e, TypeLD>, Enc_b05839 {
9561 let Inst{12-9} = 0b0000;
9562 let Inst{31-21} = 0b10011001110;
9563 let addrMode = PostInc;
9564 let accessSize = DoubleWordAccess;
9565 let mayLoad = 1;
9566 let Uses = [CS];
9567 let Constraints = "$Rx32 = $Rx32in";
9569 def L2_loadrd_pcr : HInst<
9570 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9571 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9572 "$Rdd32 = memd($Rx32++I:circ($Mu2))",
9573 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9574 let Inst{12-5} = 0b00010000;
9575 let Inst{31-21} = 0b10011001110;
9576 let addrMode = PostInc;
9577 let accessSize = DoubleWordAccess;
9578 let mayLoad = 1;
9579 let Uses = [CS];
9580 let Constraints = "$Rx32 = $Rx32in";
9582 def L2_loadrd_pi : HInst<
9583 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9584 (ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9585 "$Rdd32 = memd($Rx32++#$Ii)",
9586 tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9587 let Inst{13-9} = 0b00000;
9588 let Inst{31-21} = 0b10011011110;
9589 let addrMode = PostInc;
9590 let accessSize = DoubleWordAccess;
9591 let mayLoad = 1;
9592 let BaseOpcode = "L2_loadrd_pi";
9593 let CextOpcode = "L2_loadrd";
9594 let isPredicable = 1;
9595 let Constraints = "$Rx32 = $Rx32in";
9597 def L2_loadrd_pr : HInst<
9598 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9599 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9600 "$Rdd32 = memd($Rx32++$Mu2)",
9601 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9602 let Inst{12-5} = 0b00000000;
9603 let Inst{31-21} = 0b10011101110;
9604 let addrMode = PostInc;
9605 let accessSize = DoubleWordAccess;
9606 let mayLoad = 1;
9607 let Constraints = "$Rx32 = $Rx32in";
9609 def L2_loadrd_zomap : HInst<
9610 (outs DoubleRegs:$Rdd32),
9611 (ins IntRegs:$Rs32),
9612 "$Rdd32 = memd($Rs32)",
9613 tc_4222e6bf, TypeMAPPING> {
9614 let isPseudo = 1;
9615 let isCodeGenOnly = 1;
9617 def L2_loadrdgp : HInst<
9618 (outs DoubleRegs:$Rdd32),
9619 (ins u29_3Imm:$Ii),
9620 "$Rdd32 = memd(gp+#$Ii)",
9621 tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
9622 let Inst{24-21} = 0b1110;
9623 let Inst{31-27} = 0b01001;
9624 let accessSize = DoubleWordAccess;
9625 let mayLoad = 1;
9626 let Uses = [GP];
9627 let BaseOpcode = "L4_loadrd_abs";
9628 let isPredicable = 1;
9629 let opExtendable = 1;
9630 let isExtentSigned = 0;
9631 let opExtentBits = 19;
9632 let opExtentAlign = 3;
9634 def L2_loadrh_io : HInst<
9635 (outs IntRegs:$Rd32),
9636 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9637 "$Rd32 = memh($Rs32+#$Ii)",
9638 tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9639 let Inst{24-21} = 0b1010;
9640 let Inst{31-27} = 0b10010;
9641 let hasNewValue = 1;
9642 let opNewValue = 0;
9643 let addrMode = BaseImmOffset;
9644 let accessSize = HalfWordAccess;
9645 let mayLoad = 1;
9646 let BaseOpcode = "L2_loadrh_io";
9647 let CextOpcode = "L2_loadrh";
9648 let isPredicable = 1;
9649 let isExtendable = 1;
9650 let opExtendable = 2;
9651 let isExtentSigned = 1;
9652 let opExtentBits = 12;
9653 let opExtentAlign = 1;
9655 def L2_loadrh_pbr : HInst<
9656 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9657 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9658 "$Rd32 = memh($Rx32++$Mu2:brev)",
9659 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9660 let Inst{12-5} = 0b00000000;
9661 let Inst{31-21} = 0b10011111010;
9662 let hasNewValue = 1;
9663 let opNewValue = 0;
9664 let addrMode = PostInc;
9665 let accessSize = HalfWordAccess;
9666 let mayLoad = 1;
9667 let Constraints = "$Rx32 = $Rx32in";
9669 def L2_loadrh_pci : HInst<
9670 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9671 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9672 "$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9673 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9674 let Inst{12-9} = 0b0000;
9675 let Inst{31-21} = 0b10011001010;
9676 let hasNewValue = 1;
9677 let opNewValue = 0;
9678 let addrMode = PostInc;
9679 let accessSize = HalfWordAccess;
9680 let mayLoad = 1;
9681 let Uses = [CS];
9682 let Constraints = "$Rx32 = $Rx32in";
9684 def L2_loadrh_pcr : HInst<
9685 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9686 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9687 "$Rd32 = memh($Rx32++I:circ($Mu2))",
9688 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9689 let Inst{12-5} = 0b00010000;
9690 let Inst{31-21} = 0b10011001010;
9691 let hasNewValue = 1;
9692 let opNewValue = 0;
9693 let addrMode = PostInc;
9694 let accessSize = HalfWordAccess;
9695 let mayLoad = 1;
9696 let Uses = [CS];
9697 let Constraints = "$Rx32 = $Rx32in";
9699 def L2_loadrh_pi : HInst<
9700 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9701 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9702 "$Rd32 = memh($Rx32++#$Ii)",
9703 tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9704 let Inst{13-9} = 0b00000;
9705 let Inst{31-21} = 0b10011011010;
9706 let hasNewValue = 1;
9707 let opNewValue = 0;
9708 let addrMode = PostInc;
9709 let accessSize = HalfWordAccess;
9710 let mayLoad = 1;
9711 let BaseOpcode = "L2_loadrh_pi";
9712 let CextOpcode = "L2_loadrh";
9713 let isPredicable = 1;
9714 let Constraints = "$Rx32 = $Rx32in";
9716 def L2_loadrh_pr : HInst<
9717 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9718 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9719 "$Rd32 = memh($Rx32++$Mu2)",
9720 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9721 let Inst{12-5} = 0b00000000;
9722 let Inst{31-21} = 0b10011101010;
9723 let hasNewValue = 1;
9724 let opNewValue = 0;
9725 let addrMode = PostInc;
9726 let accessSize = HalfWordAccess;
9727 let mayLoad = 1;
9728 let Constraints = "$Rx32 = $Rx32in";
9730 def L2_loadrh_zomap : HInst<
9731 (outs IntRegs:$Rd32),
9732 (ins IntRegs:$Rs32),
9733 "$Rd32 = memh($Rs32)",
9734 tc_4222e6bf, TypeMAPPING> {
9735 let hasNewValue = 1;
9736 let opNewValue = 0;
9737 let isPseudo = 1;
9738 let isCodeGenOnly = 1;
9740 def L2_loadrhgp : HInst<
9741 (outs IntRegs:$Rd32),
9742 (ins u31_1Imm:$Ii),
9743 "$Rd32 = memh(gp+#$Ii)",
9744 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9745 let Inst{24-21} = 0b1010;
9746 let Inst{31-27} = 0b01001;
9747 let hasNewValue = 1;
9748 let opNewValue = 0;
9749 let accessSize = HalfWordAccess;
9750 let mayLoad = 1;
9751 let Uses = [GP];
9752 let BaseOpcode = "L4_loadrh_abs";
9753 let isPredicable = 1;
9754 let opExtendable = 1;
9755 let isExtentSigned = 0;
9756 let opExtentBits = 17;
9757 let opExtentAlign = 1;
9759 def L2_loadri_io : HInst<
9760 (outs IntRegs:$Rd32),
9761 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9762 "$Rd32 = memw($Rs32+#$Ii)",
9763 tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9764 let Inst{24-21} = 0b1100;
9765 let Inst{31-27} = 0b10010;
9766 let hasNewValue = 1;
9767 let opNewValue = 0;
9768 let addrMode = BaseImmOffset;
9769 let accessSize = WordAccess;
9770 let mayLoad = 1;
9771 let BaseOpcode = "L2_loadri_io";
9772 let CextOpcode = "L2_loadri";
9773 let isPredicable = 1;
9774 let isExtendable = 1;
9775 let opExtendable = 2;
9776 let isExtentSigned = 1;
9777 let opExtentBits = 13;
9778 let opExtentAlign = 2;
9780 def L2_loadri_pbr : HInst<
9781 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9782 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9783 "$Rd32 = memw($Rx32++$Mu2:brev)",
9784 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9785 let Inst{12-5} = 0b00000000;
9786 let Inst{31-21} = 0b10011111100;
9787 let hasNewValue = 1;
9788 let opNewValue = 0;
9789 let addrMode = PostInc;
9790 let accessSize = WordAccess;
9791 let mayLoad = 1;
9792 let Constraints = "$Rx32 = $Rx32in";
9794 def L2_loadri_pci : HInst<
9795 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9796 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9797 "$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9798 tc_5ceb2f9e, TypeLD>, Enc_27fd0e {
9799 let Inst{12-9} = 0b0000;
9800 let Inst{31-21} = 0b10011001100;
9801 let hasNewValue = 1;
9802 let opNewValue = 0;
9803 let addrMode = PostInc;
9804 let accessSize = WordAccess;
9805 let mayLoad = 1;
9806 let Uses = [CS];
9807 let Constraints = "$Rx32 = $Rx32in";
9809 def L2_loadri_pcr : HInst<
9810 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9811 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9812 "$Rd32 = memw($Rx32++I:circ($Mu2))",
9813 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9814 let Inst{12-5} = 0b00010000;
9815 let Inst{31-21} = 0b10011001100;
9816 let hasNewValue = 1;
9817 let opNewValue = 0;
9818 let addrMode = PostInc;
9819 let accessSize = WordAccess;
9820 let mayLoad = 1;
9821 let Uses = [CS];
9822 let Constraints = "$Rx32 = $Rx32in";
9824 def L2_loadri_pi : HInst<
9825 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9826 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9827 "$Rd32 = memw($Rx32++#$Ii)",
9828 tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9829 let Inst{13-9} = 0b00000;
9830 let Inst{31-21} = 0b10011011100;
9831 let hasNewValue = 1;
9832 let opNewValue = 0;
9833 let addrMode = PostInc;
9834 let accessSize = WordAccess;
9835 let mayLoad = 1;
9836 let BaseOpcode = "L2_loadri_pi";
9837 let CextOpcode = "L2_loadri";
9838 let isPredicable = 1;
9839 let Constraints = "$Rx32 = $Rx32in";
9841 def L2_loadri_pr : HInst<
9842 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9843 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9844 "$Rd32 = memw($Rx32++$Mu2)",
9845 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9846 let Inst{12-5} = 0b00000000;
9847 let Inst{31-21} = 0b10011101100;
9848 let hasNewValue = 1;
9849 let opNewValue = 0;
9850 let addrMode = PostInc;
9851 let accessSize = WordAccess;
9852 let mayLoad = 1;
9853 let Constraints = "$Rx32 = $Rx32in";
9855 def L2_loadri_zomap : HInst<
9856 (outs IntRegs:$Rd32),
9857 (ins IntRegs:$Rs32),
9858 "$Rd32 = memw($Rs32)",
9859 tc_4222e6bf, TypeMAPPING> {
9860 let hasNewValue = 1;
9861 let opNewValue = 0;
9862 let isPseudo = 1;
9863 let isCodeGenOnly = 1;
9865 def L2_loadrigp : HInst<
9866 (outs IntRegs:$Rd32),
9867 (ins u30_2Imm:$Ii),
9868 "$Rd32 = memw(gp+#$Ii)",
9869 tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9870 let Inst{24-21} = 0b1100;
9871 let Inst{31-27} = 0b01001;
9872 let hasNewValue = 1;
9873 let opNewValue = 0;
9874 let accessSize = WordAccess;
9875 let mayLoad = 1;
9876 let Uses = [GP];
9877 let BaseOpcode = "L4_loadri_abs";
9878 let isPredicable = 1;
9879 let opExtendable = 1;
9880 let isExtentSigned = 0;
9881 let opExtentBits = 18;
9882 let opExtentAlign = 2;
9884 def L2_loadrub_io : HInst<
9885 (outs IntRegs:$Rd32),
9886 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9887 "$Rd32 = memub($Rs32+#$Ii)",
9888 tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9889 let Inst{24-21} = 0b1001;
9890 let Inst{31-27} = 0b10010;
9891 let hasNewValue = 1;
9892 let opNewValue = 0;
9893 let addrMode = BaseImmOffset;
9894 let accessSize = ByteAccess;
9895 let mayLoad = 1;
9896 let BaseOpcode = "L2_loadrub_io";
9897 let CextOpcode = "L2_loadrub";
9898 let isPredicable = 1;
9899 let isExtendable = 1;
9900 let opExtendable = 2;
9901 let isExtentSigned = 1;
9902 let opExtentBits = 11;
9903 let opExtentAlign = 0;
9905 def L2_loadrub_pbr : HInst<
9906 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9907 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9908 "$Rd32 = memub($Rx32++$Mu2:brev)",
9909 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9910 let Inst{12-5} = 0b00000000;
9911 let Inst{31-21} = 0b10011111001;
9912 let hasNewValue = 1;
9913 let opNewValue = 0;
9914 let addrMode = PostInc;
9915 let accessSize = ByteAccess;
9916 let mayLoad = 1;
9917 let Constraints = "$Rx32 = $Rx32in";
9919 def L2_loadrub_pci : HInst<
9920 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9921 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9922 "$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9923 tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9924 let Inst{12-9} = 0b0000;
9925 let Inst{31-21} = 0b10011001001;
9926 let hasNewValue = 1;
9927 let opNewValue = 0;
9928 let addrMode = PostInc;
9929 let accessSize = ByteAccess;
9930 let mayLoad = 1;
9931 let Uses = [CS];
9932 let Constraints = "$Rx32 = $Rx32in";
9934 def L2_loadrub_pcr : HInst<
9935 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9936 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9937 "$Rd32 = memub($Rx32++I:circ($Mu2))",
9938 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9939 let Inst{12-5} = 0b00010000;
9940 let Inst{31-21} = 0b10011001001;
9941 let hasNewValue = 1;
9942 let opNewValue = 0;
9943 let addrMode = PostInc;
9944 let accessSize = ByteAccess;
9945 let mayLoad = 1;
9946 let Uses = [CS];
9947 let Constraints = "$Rx32 = $Rx32in";
9949 def L2_loadrub_pi : HInst<
9950 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9951 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9952 "$Rd32 = memub($Rx32++#$Ii)",
9953 tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9954 let Inst{13-9} = 0b00000;
9955 let Inst{31-21} = 0b10011011001;
9956 let hasNewValue = 1;
9957 let opNewValue = 0;
9958 let addrMode = PostInc;
9959 let accessSize = ByteAccess;
9960 let mayLoad = 1;
9961 let BaseOpcode = "L2_loadrub_pi";
9962 let CextOpcode = "L2_loadrub";
9963 let isPredicable = 1;
9964 let Constraints = "$Rx32 = $Rx32in";
9966 def L2_loadrub_pr : HInst<
9967 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9968 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9969 "$Rd32 = memub($Rx32++$Mu2)",
9970 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9971 let Inst{12-5} = 0b00000000;
9972 let Inst{31-21} = 0b10011101001;
9973 let hasNewValue = 1;
9974 let opNewValue = 0;
9975 let addrMode = PostInc;
9976 let accessSize = ByteAccess;
9977 let mayLoad = 1;
9978 let Constraints = "$Rx32 = $Rx32in";
9980 def L2_loadrub_zomap : HInst<
9981 (outs IntRegs:$Rd32),
9982 (ins IntRegs:$Rs32),
9983 "$Rd32 = memub($Rs32)",
9984 tc_4222e6bf, TypeMAPPING> {
9985 let hasNewValue = 1;
9986 let opNewValue = 0;
9987 let isPseudo = 1;
9988 let isCodeGenOnly = 1;
9990 def L2_loadrubgp : HInst<
9991 (outs IntRegs:$Rd32),
9992 (ins u32_0Imm:$Ii),
9993 "$Rd32 = memub(gp+#$Ii)",
9994 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9995 let Inst{24-21} = 0b1001;
9996 let Inst{31-27} = 0b01001;
9997 let hasNewValue = 1;
9998 let opNewValue = 0;
9999 let accessSize = ByteAccess;
10000 let mayLoad = 1;
10001 let Uses = [GP];
10002 let BaseOpcode = "L4_loadrub_abs";
10003 let isPredicable = 1;
10004 let opExtendable = 1;
10005 let isExtentSigned = 0;
10006 let opExtentBits = 16;
10007 let opExtentAlign = 0;
10009 def L2_loadruh_io : HInst<
10010 (outs IntRegs:$Rd32),
10011 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
10012 "$Rd32 = memuh($Rs32+#$Ii)",
10013 tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
10014 let Inst{24-21} = 0b1011;
10015 let Inst{31-27} = 0b10010;
10016 let hasNewValue = 1;
10017 let opNewValue = 0;
10018 let addrMode = BaseImmOffset;
10019 let accessSize = HalfWordAccess;
10020 let mayLoad = 1;
10021 let BaseOpcode = "L2_loadruh_io";
10022 let CextOpcode = "L2_loadruh";
10023 let isPredicable = 1;
10024 let isExtendable = 1;
10025 let opExtendable = 2;
10026 let isExtentSigned = 1;
10027 let opExtentBits = 12;
10028 let opExtentAlign = 1;
10030 def L2_loadruh_pbr : HInst<
10031 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10032 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10033 "$Rd32 = memuh($Rx32++$Mu2:brev)",
10034 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10035 let Inst{12-5} = 0b00000000;
10036 let Inst{31-21} = 0b10011111011;
10037 let hasNewValue = 1;
10038 let opNewValue = 0;
10039 let addrMode = PostInc;
10040 let accessSize = HalfWordAccess;
10041 let mayLoad = 1;
10042 let Constraints = "$Rx32 = $Rx32in";
10044 def L2_loadruh_pci : HInst<
10045 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10046 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
10047 "$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
10048 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
10049 let Inst{12-9} = 0b0000;
10050 let Inst{31-21} = 0b10011001011;
10051 let hasNewValue = 1;
10052 let opNewValue = 0;
10053 let addrMode = PostInc;
10054 let accessSize = HalfWordAccess;
10055 let mayLoad = 1;
10056 let Uses = [CS];
10057 let Constraints = "$Rx32 = $Rx32in";
10059 def L2_loadruh_pcr : HInst<
10060 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10061 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10062 "$Rd32 = memuh($Rx32++I:circ($Mu2))",
10063 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10064 let Inst{12-5} = 0b00010000;
10065 let Inst{31-21} = 0b10011001011;
10066 let hasNewValue = 1;
10067 let opNewValue = 0;
10068 let addrMode = PostInc;
10069 let accessSize = HalfWordAccess;
10070 let mayLoad = 1;
10071 let Uses = [CS];
10072 let Constraints = "$Rx32 = $Rx32in";
10074 def L2_loadruh_pi : HInst<
10075 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10076 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
10077 "$Rd32 = memuh($Rx32++#$Ii)",
10078 tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
10079 let Inst{13-9} = 0b00000;
10080 let Inst{31-21} = 0b10011011011;
10081 let hasNewValue = 1;
10082 let opNewValue = 0;
10083 let addrMode = PostInc;
10084 let accessSize = HalfWordAccess;
10085 let mayLoad = 1;
10086 let BaseOpcode = "L2_loadruh_pi";
10087 let CextOpcode = "L2_loadruh";
10088 let isPredicable = 1;
10089 let Constraints = "$Rx32 = $Rx32in";
10091 def L2_loadruh_pr : HInst<
10092 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10093 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10094 "$Rd32 = memuh($Rx32++$Mu2)",
10095 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10096 let Inst{12-5} = 0b00000000;
10097 let Inst{31-21} = 0b10011101011;
10098 let hasNewValue = 1;
10099 let opNewValue = 0;
10100 let addrMode = PostInc;
10101 let accessSize = HalfWordAccess;
10102 let mayLoad = 1;
10103 let Constraints = "$Rx32 = $Rx32in";
10105 def L2_loadruh_zomap : HInst<
10106 (outs IntRegs:$Rd32),
10107 (ins IntRegs:$Rs32),
10108 "$Rd32 = memuh($Rs32)",
10109 tc_4222e6bf, TypeMAPPING> {
10110 let hasNewValue = 1;
10111 let opNewValue = 0;
10112 let isPseudo = 1;
10113 let isCodeGenOnly = 1;
10115 def L2_loadruhgp : HInst<
10116 (outs IntRegs:$Rd32),
10117 (ins u31_1Imm:$Ii),
10118 "$Rd32 = memuh(gp+#$Ii)",
10119 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10120 let Inst{24-21} = 0b1011;
10121 let Inst{31-27} = 0b01001;
10122 let hasNewValue = 1;
10123 let opNewValue = 0;
10124 let accessSize = HalfWordAccess;
10125 let mayLoad = 1;
10126 let Uses = [GP];
10127 let BaseOpcode = "L4_loadruh_abs";
10128 let isPredicable = 1;
10129 let opExtendable = 1;
10130 let isExtentSigned = 0;
10131 let opExtentBits = 17;
10132 let opExtentAlign = 1;
10134 def L2_loadw_aq : HInst<
10135 (outs IntRegs:$Rd32),
10136 (ins IntRegs:$Rs32),
10137 "$Rd32 = memw_aq($Rs32)",
10138 tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> {
10139 let Inst{13-5} = 0b001000000;
10140 let Inst{31-21} = 0b10010010000;
10141 let hasNewValue = 1;
10142 let opNewValue = 0;
10143 let accessSize = WordAccess;
10144 let mayLoad = 1;
10146 def L2_loadw_locked : HInst<
10147 (outs IntRegs:$Rd32),
10148 (ins IntRegs:$Rs32),
10149 "$Rd32 = memw_locked($Rs32)",
10150 tc_64b00d8a, TypeLD>, Enc_5e2823 {
10151 let Inst{13-5} = 0b000000000;
10152 let Inst{31-21} = 0b10010010000;
10153 let hasNewValue = 1;
10154 let opNewValue = 0;
10155 let accessSize = WordAccess;
10156 let mayLoad = 1;
10157 let isSoloAX = 1;
10159 def L2_ploadrbf_io : HInst<
10160 (outs IntRegs:$Rd32),
10161 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10162 "if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10163 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10164 let Inst{13-13} = 0b0;
10165 let Inst{31-21} = 0b01000101000;
10166 let isPredicated = 1;
10167 let isPredicatedFalse = 1;
10168 let hasNewValue = 1;
10169 let opNewValue = 0;
10170 let addrMode = BaseImmOffset;
10171 let accessSize = ByteAccess;
10172 let mayLoad = 1;
10173 let BaseOpcode = "L2_loadrb_io";
10174 let CextOpcode = "L2_loadrb";
10175 let isExtendable = 1;
10176 let opExtendable = 3;
10177 let isExtentSigned = 0;
10178 let opExtentBits = 6;
10179 let opExtentAlign = 0;
10181 def L2_ploadrbf_pi : HInst<
10182 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10183 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10184 "if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10185 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10186 let Inst{13-11} = 0b101;
10187 let Inst{31-21} = 0b10011011000;
10188 let isPredicated = 1;
10189 let isPredicatedFalse = 1;
10190 let hasNewValue = 1;
10191 let opNewValue = 0;
10192 let addrMode = PostInc;
10193 let accessSize = ByteAccess;
10194 let mayLoad = 1;
10195 let BaseOpcode = "L2_loadrb_pi";
10196 let Constraints = "$Rx32 = $Rx32in";
10198 def L2_ploadrbf_zomap : HInst<
10199 (outs IntRegs:$Rd32),
10200 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10201 "if (!$Pt4) $Rd32 = memb($Rs32)",
10202 tc_fedb7e19, TypeMAPPING> {
10203 let hasNewValue = 1;
10204 let opNewValue = 0;
10205 let isPseudo = 1;
10206 let isCodeGenOnly = 1;
10208 def L2_ploadrbfnew_io : HInst<
10209 (outs IntRegs:$Rd32),
10210 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10211 "if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10212 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10213 let Inst{13-13} = 0b0;
10214 let Inst{31-21} = 0b01000111000;
10215 let isPredicated = 1;
10216 let isPredicatedFalse = 1;
10217 let hasNewValue = 1;
10218 let opNewValue = 0;
10219 let addrMode = BaseImmOffset;
10220 let accessSize = ByteAccess;
10221 let isPredicatedNew = 1;
10222 let mayLoad = 1;
10223 let BaseOpcode = "L2_loadrb_io";
10224 let CextOpcode = "L2_loadrb";
10225 let isExtendable = 1;
10226 let opExtendable = 3;
10227 let isExtentSigned = 0;
10228 let opExtentBits = 6;
10229 let opExtentAlign = 0;
10231 def L2_ploadrbfnew_pi : HInst<
10232 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10233 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10234 "if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10235 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10236 let Inst{13-11} = 0b111;
10237 let Inst{31-21} = 0b10011011000;
10238 let isPredicated = 1;
10239 let isPredicatedFalse = 1;
10240 let hasNewValue = 1;
10241 let opNewValue = 0;
10242 let addrMode = PostInc;
10243 let accessSize = ByteAccess;
10244 let isPredicatedNew = 1;
10245 let mayLoad = 1;
10246 let BaseOpcode = "L2_loadrb_pi";
10247 let Constraints = "$Rx32 = $Rx32in";
10249 def L2_ploadrbfnew_zomap : HInst<
10250 (outs IntRegs:$Rd32),
10251 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10252 "if (!$Pt4.new) $Rd32 = memb($Rs32)",
10253 tc_075c8dd8, TypeMAPPING> {
10254 let hasNewValue = 1;
10255 let opNewValue = 0;
10256 let isPseudo = 1;
10257 let isCodeGenOnly = 1;
10259 def L2_ploadrbt_io : HInst<
10260 (outs IntRegs:$Rd32),
10261 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10262 "if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10263 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10264 let Inst{13-13} = 0b0;
10265 let Inst{31-21} = 0b01000001000;
10266 let isPredicated = 1;
10267 let hasNewValue = 1;
10268 let opNewValue = 0;
10269 let addrMode = BaseImmOffset;
10270 let accessSize = ByteAccess;
10271 let mayLoad = 1;
10272 let BaseOpcode = "L2_loadrb_io";
10273 let CextOpcode = "L2_loadrb";
10274 let isExtendable = 1;
10275 let opExtendable = 3;
10276 let isExtentSigned = 0;
10277 let opExtentBits = 6;
10278 let opExtentAlign = 0;
10280 def L2_ploadrbt_pi : HInst<
10281 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10282 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10283 "if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10284 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10285 let Inst{13-11} = 0b100;
10286 let Inst{31-21} = 0b10011011000;
10287 let isPredicated = 1;
10288 let hasNewValue = 1;
10289 let opNewValue = 0;
10290 let addrMode = PostInc;
10291 let accessSize = ByteAccess;
10292 let mayLoad = 1;
10293 let BaseOpcode = "L2_loadrb_pi";
10294 let Constraints = "$Rx32 = $Rx32in";
10296 def L2_ploadrbt_zomap : HInst<
10297 (outs IntRegs:$Rd32),
10298 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10299 "if ($Pt4) $Rd32 = memb($Rs32)",
10300 tc_fedb7e19, TypeMAPPING> {
10301 let hasNewValue = 1;
10302 let opNewValue = 0;
10303 let isPseudo = 1;
10304 let isCodeGenOnly = 1;
10306 def L2_ploadrbtnew_io : HInst<
10307 (outs IntRegs:$Rd32),
10308 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10309 "if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10310 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10311 let Inst{13-13} = 0b0;
10312 let Inst{31-21} = 0b01000011000;
10313 let isPredicated = 1;
10314 let hasNewValue = 1;
10315 let opNewValue = 0;
10316 let addrMode = BaseImmOffset;
10317 let accessSize = ByteAccess;
10318 let isPredicatedNew = 1;
10319 let mayLoad = 1;
10320 let BaseOpcode = "L2_loadrb_io";
10321 let CextOpcode = "L2_loadrb";
10322 let isExtendable = 1;
10323 let opExtendable = 3;
10324 let isExtentSigned = 0;
10325 let opExtentBits = 6;
10326 let opExtentAlign = 0;
10328 def L2_ploadrbtnew_pi : HInst<
10329 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10330 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10331 "if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10332 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10333 let Inst{13-11} = 0b110;
10334 let Inst{31-21} = 0b10011011000;
10335 let isPredicated = 1;
10336 let hasNewValue = 1;
10337 let opNewValue = 0;
10338 let addrMode = PostInc;
10339 let accessSize = ByteAccess;
10340 let isPredicatedNew = 1;
10341 let mayLoad = 1;
10342 let BaseOpcode = "L2_loadrb_pi";
10343 let Constraints = "$Rx32 = $Rx32in";
10345 def L2_ploadrbtnew_zomap : HInst<
10346 (outs IntRegs:$Rd32),
10347 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10348 "if ($Pt4.new) $Rd32 = memb($Rs32)",
10349 tc_075c8dd8, TypeMAPPING> {
10350 let hasNewValue = 1;
10351 let opNewValue = 0;
10352 let isPseudo = 1;
10353 let isCodeGenOnly = 1;
10355 def L2_ploadrdf_io : HInst<
10356 (outs DoubleRegs:$Rdd32),
10357 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10358 "if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10359 tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10360 let Inst{13-13} = 0b0;
10361 let Inst{31-21} = 0b01000101110;
10362 let isPredicated = 1;
10363 let isPredicatedFalse = 1;
10364 let addrMode = BaseImmOffset;
10365 let accessSize = DoubleWordAccess;
10366 let mayLoad = 1;
10367 let BaseOpcode = "L2_loadrd_io";
10368 let CextOpcode = "L2_loadrd";
10369 let isExtendable = 1;
10370 let opExtendable = 3;
10371 let isExtentSigned = 0;
10372 let opExtentBits = 9;
10373 let opExtentAlign = 3;
10375 def L2_ploadrdf_pi : HInst<
10376 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10377 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10378 "if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10379 tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10380 let Inst{13-11} = 0b101;
10381 let Inst{31-21} = 0b10011011110;
10382 let isPredicated = 1;
10383 let isPredicatedFalse = 1;
10384 let addrMode = PostInc;
10385 let accessSize = DoubleWordAccess;
10386 let mayLoad = 1;
10387 let BaseOpcode = "L2_loadrd_pi";
10388 let Constraints = "$Rx32 = $Rx32in";
10390 def L2_ploadrdf_zomap : HInst<
10391 (outs DoubleRegs:$Rdd32),
10392 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10393 "if (!$Pt4) $Rdd32 = memd($Rs32)",
10394 tc_fedb7e19, TypeMAPPING> {
10395 let isPseudo = 1;
10396 let isCodeGenOnly = 1;
10398 def L2_ploadrdfnew_io : HInst<
10399 (outs DoubleRegs:$Rdd32),
10400 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10401 "if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10402 tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10403 let Inst{13-13} = 0b0;
10404 let Inst{31-21} = 0b01000111110;
10405 let isPredicated = 1;
10406 let isPredicatedFalse = 1;
10407 let addrMode = BaseImmOffset;
10408 let accessSize = DoubleWordAccess;
10409 let isPredicatedNew = 1;
10410 let mayLoad = 1;
10411 let BaseOpcode = "L2_loadrd_io";
10412 let CextOpcode = "L2_loadrd";
10413 let isExtendable = 1;
10414 let opExtendable = 3;
10415 let isExtentSigned = 0;
10416 let opExtentBits = 9;
10417 let opExtentAlign = 3;
10419 def L2_ploadrdfnew_pi : HInst<
10420 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10421 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10422 "if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10423 tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10424 let Inst{13-11} = 0b111;
10425 let Inst{31-21} = 0b10011011110;
10426 let isPredicated = 1;
10427 let isPredicatedFalse = 1;
10428 let addrMode = PostInc;
10429 let accessSize = DoubleWordAccess;
10430 let isPredicatedNew = 1;
10431 let mayLoad = 1;
10432 let BaseOpcode = "L2_loadrd_pi";
10433 let Constraints = "$Rx32 = $Rx32in";
10435 def L2_ploadrdfnew_zomap : HInst<
10436 (outs DoubleRegs:$Rdd32),
10437 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10438 "if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10439 tc_075c8dd8, TypeMAPPING> {
10440 let isPseudo = 1;
10441 let isCodeGenOnly = 1;
10443 def L2_ploadrdt_io : HInst<
10444 (outs DoubleRegs:$Rdd32),
10445 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10446 "if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10447 tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10448 let Inst{13-13} = 0b0;
10449 let Inst{31-21} = 0b01000001110;
10450 let isPredicated = 1;
10451 let addrMode = BaseImmOffset;
10452 let accessSize = DoubleWordAccess;
10453 let mayLoad = 1;
10454 let BaseOpcode = "L2_loadrd_io";
10455 let CextOpcode = "L2_loadrd";
10456 let isExtendable = 1;
10457 let opExtendable = 3;
10458 let isExtentSigned = 0;
10459 let opExtentBits = 9;
10460 let opExtentAlign = 3;
10462 def L2_ploadrdt_pi : HInst<
10463 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10464 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10465 "if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10466 tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10467 let Inst{13-11} = 0b100;
10468 let Inst{31-21} = 0b10011011110;
10469 let isPredicated = 1;
10470 let addrMode = PostInc;
10471 let accessSize = DoubleWordAccess;
10472 let mayLoad = 1;
10473 let BaseOpcode = "L2_loadrd_pi";
10474 let Constraints = "$Rx32 = $Rx32in";
10476 def L2_ploadrdt_zomap : HInst<
10477 (outs DoubleRegs:$Rdd32),
10478 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10479 "if ($Pt4) $Rdd32 = memd($Rs32)",
10480 tc_fedb7e19, TypeMAPPING> {
10481 let isPseudo = 1;
10482 let isCodeGenOnly = 1;
10484 def L2_ploadrdtnew_io : HInst<
10485 (outs DoubleRegs:$Rdd32),
10486 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10487 "if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10488 tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10489 let Inst{13-13} = 0b0;
10490 let Inst{31-21} = 0b01000011110;
10491 let isPredicated = 1;
10492 let addrMode = BaseImmOffset;
10493 let accessSize = DoubleWordAccess;
10494 let isPredicatedNew = 1;
10495 let mayLoad = 1;
10496 let BaseOpcode = "L2_loadrd_io";
10497 let CextOpcode = "L2_loadrd";
10498 let isExtendable = 1;
10499 let opExtendable = 3;
10500 let isExtentSigned = 0;
10501 let opExtentBits = 9;
10502 let opExtentAlign = 3;
10504 def L2_ploadrdtnew_pi : HInst<
10505 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10506 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10507 "if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10508 tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10509 let Inst{13-11} = 0b110;
10510 let Inst{31-21} = 0b10011011110;
10511 let isPredicated = 1;
10512 let addrMode = PostInc;
10513 let accessSize = DoubleWordAccess;
10514 let isPredicatedNew = 1;
10515 let mayLoad = 1;
10516 let BaseOpcode = "L2_loadrd_pi";
10517 let Constraints = "$Rx32 = $Rx32in";
10519 def L2_ploadrdtnew_zomap : HInst<
10520 (outs DoubleRegs:$Rdd32),
10521 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10522 "if ($Pt4.new) $Rdd32 = memd($Rs32)",
10523 tc_075c8dd8, TypeMAPPING> {
10524 let isPseudo = 1;
10525 let isCodeGenOnly = 1;
10527 def L2_ploadrhf_io : HInst<
10528 (outs IntRegs:$Rd32),
10529 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10530 "if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10531 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10532 let Inst{13-13} = 0b0;
10533 let Inst{31-21} = 0b01000101010;
10534 let isPredicated = 1;
10535 let isPredicatedFalse = 1;
10536 let hasNewValue = 1;
10537 let opNewValue = 0;
10538 let addrMode = BaseImmOffset;
10539 let accessSize = HalfWordAccess;
10540 let mayLoad = 1;
10541 let BaseOpcode = "L2_loadrh_io";
10542 let CextOpcode = "L2_loadrh";
10543 let isExtendable = 1;
10544 let opExtendable = 3;
10545 let isExtentSigned = 0;
10546 let opExtentBits = 7;
10547 let opExtentAlign = 1;
10549 def L2_ploadrhf_pi : HInst<
10550 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10551 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10552 "if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10553 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10554 let Inst{13-11} = 0b101;
10555 let Inst{31-21} = 0b10011011010;
10556 let isPredicated = 1;
10557 let isPredicatedFalse = 1;
10558 let hasNewValue = 1;
10559 let opNewValue = 0;
10560 let addrMode = PostInc;
10561 let accessSize = HalfWordAccess;
10562 let mayLoad = 1;
10563 let BaseOpcode = "L2_loadrh_pi";
10564 let Constraints = "$Rx32 = $Rx32in";
10566 def L2_ploadrhf_zomap : HInst<
10567 (outs IntRegs:$Rd32),
10568 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10569 "if (!$Pt4) $Rd32 = memh($Rs32)",
10570 tc_fedb7e19, TypeMAPPING> {
10571 let hasNewValue = 1;
10572 let opNewValue = 0;
10573 let isPseudo = 1;
10574 let isCodeGenOnly = 1;
10576 def L2_ploadrhfnew_io : HInst<
10577 (outs IntRegs:$Rd32),
10578 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10579 "if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10580 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10581 let Inst{13-13} = 0b0;
10582 let Inst{31-21} = 0b01000111010;
10583 let isPredicated = 1;
10584 let isPredicatedFalse = 1;
10585 let hasNewValue = 1;
10586 let opNewValue = 0;
10587 let addrMode = BaseImmOffset;
10588 let accessSize = HalfWordAccess;
10589 let isPredicatedNew = 1;
10590 let mayLoad = 1;
10591 let BaseOpcode = "L2_loadrh_io";
10592 let CextOpcode = "L2_loadrh";
10593 let isExtendable = 1;
10594 let opExtendable = 3;
10595 let isExtentSigned = 0;
10596 let opExtentBits = 7;
10597 let opExtentAlign = 1;
10599 def L2_ploadrhfnew_pi : HInst<
10600 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10601 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10602 "if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10603 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10604 let Inst{13-11} = 0b111;
10605 let Inst{31-21} = 0b10011011010;
10606 let isPredicated = 1;
10607 let isPredicatedFalse = 1;
10608 let hasNewValue = 1;
10609 let opNewValue = 0;
10610 let addrMode = PostInc;
10611 let accessSize = HalfWordAccess;
10612 let isPredicatedNew = 1;
10613 let mayLoad = 1;
10614 let BaseOpcode = "L2_loadrh_pi";
10615 let Constraints = "$Rx32 = $Rx32in";
10617 def L2_ploadrhfnew_zomap : HInst<
10618 (outs IntRegs:$Rd32),
10619 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10620 "if (!$Pt4.new) $Rd32 = memh($Rs32)",
10621 tc_075c8dd8, TypeMAPPING> {
10622 let hasNewValue = 1;
10623 let opNewValue = 0;
10624 let isPseudo = 1;
10625 let isCodeGenOnly = 1;
10627 def L2_ploadrht_io : HInst<
10628 (outs IntRegs:$Rd32),
10629 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10630 "if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10631 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10632 let Inst{13-13} = 0b0;
10633 let Inst{31-21} = 0b01000001010;
10634 let isPredicated = 1;
10635 let hasNewValue = 1;
10636 let opNewValue = 0;
10637 let addrMode = BaseImmOffset;
10638 let accessSize = HalfWordAccess;
10639 let mayLoad = 1;
10640 let BaseOpcode = "L2_loadrh_io";
10641 let CextOpcode = "L2_loadrh";
10642 let isExtendable = 1;
10643 let opExtendable = 3;
10644 let isExtentSigned = 0;
10645 let opExtentBits = 7;
10646 let opExtentAlign = 1;
10648 def L2_ploadrht_pi : HInst<
10649 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10650 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10651 "if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10652 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10653 let Inst{13-11} = 0b100;
10654 let Inst{31-21} = 0b10011011010;
10655 let isPredicated = 1;
10656 let hasNewValue = 1;
10657 let opNewValue = 0;
10658 let addrMode = PostInc;
10659 let accessSize = HalfWordAccess;
10660 let mayLoad = 1;
10661 let BaseOpcode = "L2_loadrh_pi";
10662 let Constraints = "$Rx32 = $Rx32in";
10664 def L2_ploadrht_zomap : HInst<
10665 (outs IntRegs:$Rd32),
10666 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10667 "if ($Pt4) $Rd32 = memh($Rs32)",
10668 tc_fedb7e19, TypeMAPPING> {
10669 let hasNewValue = 1;
10670 let opNewValue = 0;
10671 let isPseudo = 1;
10672 let isCodeGenOnly = 1;
10674 def L2_ploadrhtnew_io : HInst<
10675 (outs IntRegs:$Rd32),
10676 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10677 "if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10678 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10679 let Inst{13-13} = 0b0;
10680 let Inst{31-21} = 0b01000011010;
10681 let isPredicated = 1;
10682 let hasNewValue = 1;
10683 let opNewValue = 0;
10684 let addrMode = BaseImmOffset;
10685 let accessSize = HalfWordAccess;
10686 let isPredicatedNew = 1;
10687 let mayLoad = 1;
10688 let BaseOpcode = "L2_loadrh_io";
10689 let CextOpcode = "L2_loadrh";
10690 let isExtendable = 1;
10691 let opExtendable = 3;
10692 let isExtentSigned = 0;
10693 let opExtentBits = 7;
10694 let opExtentAlign = 1;
10696 def L2_ploadrhtnew_pi : HInst<
10697 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10698 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10699 "if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10700 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10701 let Inst{13-11} = 0b110;
10702 let Inst{31-21} = 0b10011011010;
10703 let isPredicated = 1;
10704 let hasNewValue = 1;
10705 let opNewValue = 0;
10706 let addrMode = PostInc;
10707 let accessSize = HalfWordAccess;
10708 let isPredicatedNew = 1;
10709 let mayLoad = 1;
10710 let BaseOpcode = "L2_loadrh_pi";
10711 let Constraints = "$Rx32 = $Rx32in";
10713 def L2_ploadrhtnew_zomap : HInst<
10714 (outs IntRegs:$Rd32),
10715 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10716 "if ($Pt4.new) $Rd32 = memh($Rs32)",
10717 tc_075c8dd8, TypeMAPPING> {
10718 let hasNewValue = 1;
10719 let opNewValue = 0;
10720 let isPseudo = 1;
10721 let isCodeGenOnly = 1;
10723 def L2_ploadrif_io : HInst<
10724 (outs IntRegs:$Rd32),
10725 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10726 "if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10727 tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10728 let Inst{13-13} = 0b0;
10729 let Inst{31-21} = 0b01000101100;
10730 let isPredicated = 1;
10731 let isPredicatedFalse = 1;
10732 let hasNewValue = 1;
10733 let opNewValue = 0;
10734 let addrMode = BaseImmOffset;
10735 let accessSize = WordAccess;
10736 let mayLoad = 1;
10737 let BaseOpcode = "L2_loadri_io";
10738 let CextOpcode = "L2_loadri";
10739 let isExtendable = 1;
10740 let opExtendable = 3;
10741 let isExtentSigned = 0;
10742 let opExtentBits = 8;
10743 let opExtentAlign = 2;
10745 def L2_ploadrif_pi : HInst<
10746 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10747 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10748 "if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10749 tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10750 let Inst{13-11} = 0b101;
10751 let Inst{31-21} = 0b10011011100;
10752 let isPredicated = 1;
10753 let isPredicatedFalse = 1;
10754 let hasNewValue = 1;
10755 let opNewValue = 0;
10756 let addrMode = PostInc;
10757 let accessSize = WordAccess;
10758 let mayLoad = 1;
10759 let BaseOpcode = "L2_loadri_pi";
10760 let Constraints = "$Rx32 = $Rx32in";
10762 def L2_ploadrif_zomap : HInst<
10763 (outs IntRegs:$Rd32),
10764 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10765 "if (!$Pt4) $Rd32 = memw($Rs32)",
10766 tc_fedb7e19, TypeMAPPING> {
10767 let hasNewValue = 1;
10768 let opNewValue = 0;
10769 let isPseudo = 1;
10770 let isCodeGenOnly = 1;
10772 def L2_ploadrifnew_io : HInst<
10773 (outs IntRegs:$Rd32),
10774 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10775 "if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10776 tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10777 let Inst{13-13} = 0b0;
10778 let Inst{31-21} = 0b01000111100;
10779 let isPredicated = 1;
10780 let isPredicatedFalse = 1;
10781 let hasNewValue = 1;
10782 let opNewValue = 0;
10783 let addrMode = BaseImmOffset;
10784 let accessSize = WordAccess;
10785 let isPredicatedNew = 1;
10786 let mayLoad = 1;
10787 let BaseOpcode = "L2_loadri_io";
10788 let CextOpcode = "L2_loadri";
10789 let isExtendable = 1;
10790 let opExtendable = 3;
10791 let isExtentSigned = 0;
10792 let opExtentBits = 8;
10793 let opExtentAlign = 2;
10795 def L2_ploadrifnew_pi : HInst<
10796 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10797 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10798 "if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10799 tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10800 let Inst{13-11} = 0b111;
10801 let Inst{31-21} = 0b10011011100;
10802 let isPredicated = 1;
10803 let isPredicatedFalse = 1;
10804 let hasNewValue = 1;
10805 let opNewValue = 0;
10806 let addrMode = PostInc;
10807 let accessSize = WordAccess;
10808 let isPredicatedNew = 1;
10809 let mayLoad = 1;
10810 let BaseOpcode = "L2_loadri_pi";
10811 let Constraints = "$Rx32 = $Rx32in";
10813 def L2_ploadrifnew_zomap : HInst<
10814 (outs IntRegs:$Rd32),
10815 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10816 "if (!$Pt4.new) $Rd32 = memw($Rs32)",
10817 tc_075c8dd8, TypeMAPPING> {
10818 let hasNewValue = 1;
10819 let opNewValue = 0;
10820 let isPseudo = 1;
10821 let isCodeGenOnly = 1;
10823 def L2_ploadrit_io : HInst<
10824 (outs IntRegs:$Rd32),
10825 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10826 "if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10827 tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10828 let Inst{13-13} = 0b0;
10829 let Inst{31-21} = 0b01000001100;
10830 let isPredicated = 1;
10831 let hasNewValue = 1;
10832 let opNewValue = 0;
10833 let addrMode = BaseImmOffset;
10834 let accessSize = WordAccess;
10835 let mayLoad = 1;
10836 let BaseOpcode = "L2_loadri_io";
10837 let CextOpcode = "L2_loadri";
10838 let isExtendable = 1;
10839 let opExtendable = 3;
10840 let isExtentSigned = 0;
10841 let opExtentBits = 8;
10842 let opExtentAlign = 2;
10844 def L2_ploadrit_pi : HInst<
10845 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10846 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10847 "if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10848 tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10849 let Inst{13-11} = 0b100;
10850 let Inst{31-21} = 0b10011011100;
10851 let isPredicated = 1;
10852 let hasNewValue = 1;
10853 let opNewValue = 0;
10854 let addrMode = PostInc;
10855 let accessSize = WordAccess;
10856 let mayLoad = 1;
10857 let BaseOpcode = "L2_loadri_pi";
10858 let Constraints = "$Rx32 = $Rx32in";
10860 def L2_ploadrit_zomap : HInst<
10861 (outs IntRegs:$Rd32),
10862 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10863 "if ($Pt4) $Rd32 = memw($Rs32)",
10864 tc_fedb7e19, TypeMAPPING> {
10865 let hasNewValue = 1;
10866 let opNewValue = 0;
10867 let isPseudo = 1;
10868 let isCodeGenOnly = 1;
10870 def L2_ploadritnew_io : HInst<
10871 (outs IntRegs:$Rd32),
10872 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10873 "if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10874 tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10875 let Inst{13-13} = 0b0;
10876 let Inst{31-21} = 0b01000011100;
10877 let isPredicated = 1;
10878 let hasNewValue = 1;
10879 let opNewValue = 0;
10880 let addrMode = BaseImmOffset;
10881 let accessSize = WordAccess;
10882 let isPredicatedNew = 1;
10883 let mayLoad = 1;
10884 let BaseOpcode = "L2_loadri_io";
10885 let CextOpcode = "L2_loadri";
10886 let isExtendable = 1;
10887 let opExtendable = 3;
10888 let isExtentSigned = 0;
10889 let opExtentBits = 8;
10890 let opExtentAlign = 2;
10892 def L2_ploadritnew_pi : HInst<
10893 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10894 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10895 "if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10896 tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10897 let Inst{13-11} = 0b110;
10898 let Inst{31-21} = 0b10011011100;
10899 let isPredicated = 1;
10900 let hasNewValue = 1;
10901 let opNewValue = 0;
10902 let addrMode = PostInc;
10903 let accessSize = WordAccess;
10904 let isPredicatedNew = 1;
10905 let mayLoad = 1;
10906 let BaseOpcode = "L2_loadri_pi";
10907 let Constraints = "$Rx32 = $Rx32in";
10909 def L2_ploadritnew_zomap : HInst<
10910 (outs IntRegs:$Rd32),
10911 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10912 "if ($Pt4.new) $Rd32 = memw($Rs32)",
10913 tc_075c8dd8, TypeMAPPING> {
10914 let hasNewValue = 1;
10915 let opNewValue = 0;
10916 let isPseudo = 1;
10917 let isCodeGenOnly = 1;
10919 def L2_ploadrubf_io : HInst<
10920 (outs IntRegs:$Rd32),
10921 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10922 "if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10923 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10924 let Inst{13-13} = 0b0;
10925 let Inst{31-21} = 0b01000101001;
10926 let isPredicated = 1;
10927 let isPredicatedFalse = 1;
10928 let hasNewValue = 1;
10929 let opNewValue = 0;
10930 let addrMode = BaseImmOffset;
10931 let accessSize = ByteAccess;
10932 let mayLoad = 1;
10933 let BaseOpcode = "L2_loadrub_io";
10934 let CextOpcode = "L2_loadrub";
10935 let isExtendable = 1;
10936 let opExtendable = 3;
10937 let isExtentSigned = 0;
10938 let opExtentBits = 6;
10939 let opExtentAlign = 0;
10941 def L2_ploadrubf_pi : HInst<
10942 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10943 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10944 "if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10945 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10946 let Inst{13-11} = 0b101;
10947 let Inst{31-21} = 0b10011011001;
10948 let isPredicated = 1;
10949 let isPredicatedFalse = 1;
10950 let hasNewValue = 1;
10951 let opNewValue = 0;
10952 let addrMode = PostInc;
10953 let accessSize = ByteAccess;
10954 let mayLoad = 1;
10955 let BaseOpcode = "L2_loadrub_pi";
10956 let Constraints = "$Rx32 = $Rx32in";
10958 def L2_ploadrubf_zomap : HInst<
10959 (outs IntRegs:$Rd32),
10960 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10961 "if (!$Pt4) $Rd32 = memub($Rs32)",
10962 tc_fedb7e19, TypeMAPPING> {
10963 let hasNewValue = 1;
10964 let opNewValue = 0;
10965 let isPseudo = 1;
10966 let isCodeGenOnly = 1;
10968 def L2_ploadrubfnew_io : HInst<
10969 (outs IntRegs:$Rd32),
10970 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10971 "if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10972 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10973 let Inst{13-13} = 0b0;
10974 let Inst{31-21} = 0b01000111001;
10975 let isPredicated = 1;
10976 let isPredicatedFalse = 1;
10977 let hasNewValue = 1;
10978 let opNewValue = 0;
10979 let addrMode = BaseImmOffset;
10980 let accessSize = ByteAccess;
10981 let isPredicatedNew = 1;
10982 let mayLoad = 1;
10983 let BaseOpcode = "L2_loadrub_io";
10984 let CextOpcode = "L2_loadrub";
10985 let isExtendable = 1;
10986 let opExtendable = 3;
10987 let isExtentSigned = 0;
10988 let opExtentBits = 6;
10989 let opExtentAlign = 0;
10991 def L2_ploadrubfnew_pi : HInst<
10992 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10993 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10994 "if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10995 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10996 let Inst{13-11} = 0b111;
10997 let Inst{31-21} = 0b10011011001;
10998 let isPredicated = 1;
10999 let isPredicatedFalse = 1;
11000 let hasNewValue = 1;
11001 let opNewValue = 0;
11002 let addrMode = PostInc;
11003 let accessSize = ByteAccess;
11004 let isPredicatedNew = 1;
11005 let mayLoad = 1;
11006 let BaseOpcode = "L2_loadrub_pi";
11007 let Constraints = "$Rx32 = $Rx32in";
11009 def L2_ploadrubfnew_zomap : HInst<
11010 (outs IntRegs:$Rd32),
11011 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11012 "if (!$Pt4.new) $Rd32 = memub($Rs32)",
11013 tc_075c8dd8, TypeMAPPING> {
11014 let hasNewValue = 1;
11015 let opNewValue = 0;
11016 let isPseudo = 1;
11017 let isCodeGenOnly = 1;
11019 def L2_ploadrubt_io : HInst<
11020 (outs IntRegs:$Rd32),
11021 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11022 "if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
11023 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11024 let Inst{13-13} = 0b0;
11025 let Inst{31-21} = 0b01000001001;
11026 let isPredicated = 1;
11027 let hasNewValue = 1;
11028 let opNewValue = 0;
11029 let addrMode = BaseImmOffset;
11030 let accessSize = ByteAccess;
11031 let mayLoad = 1;
11032 let BaseOpcode = "L2_loadrub_io";
11033 let CextOpcode = "L2_loadrub";
11034 let isExtendable = 1;
11035 let opExtendable = 3;
11036 let isExtentSigned = 0;
11037 let opExtentBits = 6;
11038 let opExtentAlign = 0;
11040 def L2_ploadrubt_pi : HInst<
11041 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11042 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11043 "if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
11044 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
11045 let Inst{13-11} = 0b100;
11046 let Inst{31-21} = 0b10011011001;
11047 let isPredicated = 1;
11048 let hasNewValue = 1;
11049 let opNewValue = 0;
11050 let addrMode = PostInc;
11051 let accessSize = ByteAccess;
11052 let mayLoad = 1;
11053 let BaseOpcode = "L2_loadrub_pi";
11054 let Constraints = "$Rx32 = $Rx32in";
11056 def L2_ploadrubt_zomap : HInst<
11057 (outs IntRegs:$Rd32),
11058 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11059 "if ($Pt4) $Rd32 = memub($Rs32)",
11060 tc_fedb7e19, TypeMAPPING> {
11061 let hasNewValue = 1;
11062 let opNewValue = 0;
11063 let isPseudo = 1;
11064 let isCodeGenOnly = 1;
11066 def L2_ploadrubtnew_io : HInst<
11067 (outs IntRegs:$Rd32),
11068 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11069 "if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11070 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11071 let Inst{13-13} = 0b0;
11072 let Inst{31-21} = 0b01000011001;
11073 let isPredicated = 1;
11074 let hasNewValue = 1;
11075 let opNewValue = 0;
11076 let addrMode = BaseImmOffset;
11077 let accessSize = ByteAccess;
11078 let isPredicatedNew = 1;
11079 let mayLoad = 1;
11080 let BaseOpcode = "L2_loadrub_io";
11081 let CextOpcode = "L2_loadrub";
11082 let isExtendable = 1;
11083 let opExtendable = 3;
11084 let isExtentSigned = 0;
11085 let opExtentBits = 6;
11086 let opExtentAlign = 0;
11088 def L2_ploadrubtnew_pi : HInst<
11089 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11090 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11091 "if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11092 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11093 let Inst{13-11} = 0b110;
11094 let Inst{31-21} = 0b10011011001;
11095 let isPredicated = 1;
11096 let hasNewValue = 1;
11097 let opNewValue = 0;
11098 let addrMode = PostInc;
11099 let accessSize = ByteAccess;
11100 let isPredicatedNew = 1;
11101 let mayLoad = 1;
11102 let BaseOpcode = "L2_loadrub_pi";
11103 let Constraints = "$Rx32 = $Rx32in";
11105 def L2_ploadrubtnew_zomap : HInst<
11106 (outs IntRegs:$Rd32),
11107 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11108 "if ($Pt4.new) $Rd32 = memub($Rs32)",
11109 tc_075c8dd8, TypeMAPPING> {
11110 let hasNewValue = 1;
11111 let opNewValue = 0;
11112 let isPseudo = 1;
11113 let isCodeGenOnly = 1;
11115 def L2_ploadruhf_io : HInst<
11116 (outs IntRegs:$Rd32),
11117 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11118 "if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11119 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11120 let Inst{13-13} = 0b0;
11121 let Inst{31-21} = 0b01000101011;
11122 let isPredicated = 1;
11123 let isPredicatedFalse = 1;
11124 let hasNewValue = 1;
11125 let opNewValue = 0;
11126 let addrMode = BaseImmOffset;
11127 let accessSize = HalfWordAccess;
11128 let mayLoad = 1;
11129 let BaseOpcode = "L2_loadruh_io";
11130 let CextOpcode = "L2_loadruh";
11131 let isExtendable = 1;
11132 let opExtendable = 3;
11133 let isExtentSigned = 0;
11134 let opExtentBits = 7;
11135 let opExtentAlign = 1;
11137 def L2_ploadruhf_pi : HInst<
11138 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11139 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11140 "if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11141 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11142 let Inst{13-11} = 0b101;
11143 let Inst{31-21} = 0b10011011011;
11144 let isPredicated = 1;
11145 let isPredicatedFalse = 1;
11146 let hasNewValue = 1;
11147 let opNewValue = 0;
11148 let addrMode = PostInc;
11149 let accessSize = HalfWordAccess;
11150 let mayLoad = 1;
11151 let BaseOpcode = "L2_loadruh_pi";
11152 let Constraints = "$Rx32 = $Rx32in";
11154 def L2_ploadruhf_zomap : HInst<
11155 (outs IntRegs:$Rd32),
11156 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11157 "if (!$Pt4) $Rd32 = memuh($Rs32)",
11158 tc_fedb7e19, TypeMAPPING> {
11159 let hasNewValue = 1;
11160 let opNewValue = 0;
11161 let isPseudo = 1;
11162 let isCodeGenOnly = 1;
11164 def L2_ploadruhfnew_io : HInst<
11165 (outs IntRegs:$Rd32),
11166 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11167 "if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11168 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11169 let Inst{13-13} = 0b0;
11170 let Inst{31-21} = 0b01000111011;
11171 let isPredicated = 1;
11172 let isPredicatedFalse = 1;
11173 let hasNewValue = 1;
11174 let opNewValue = 0;
11175 let addrMode = BaseImmOffset;
11176 let accessSize = HalfWordAccess;
11177 let isPredicatedNew = 1;
11178 let mayLoad = 1;
11179 let BaseOpcode = "L2_loadruh_io";
11180 let CextOpcode = "L2_loadruh";
11181 let isExtendable = 1;
11182 let opExtendable = 3;
11183 let isExtentSigned = 0;
11184 let opExtentBits = 7;
11185 let opExtentAlign = 1;
11187 def L2_ploadruhfnew_pi : HInst<
11188 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11189 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11190 "if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11191 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11192 let Inst{13-11} = 0b111;
11193 let Inst{31-21} = 0b10011011011;
11194 let isPredicated = 1;
11195 let isPredicatedFalse = 1;
11196 let hasNewValue = 1;
11197 let opNewValue = 0;
11198 let addrMode = PostInc;
11199 let accessSize = HalfWordAccess;
11200 let isPredicatedNew = 1;
11201 let mayLoad = 1;
11202 let BaseOpcode = "L2_loadruh_pi";
11203 let Constraints = "$Rx32 = $Rx32in";
11205 def L2_ploadruhfnew_zomap : HInst<
11206 (outs IntRegs:$Rd32),
11207 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11208 "if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11209 tc_075c8dd8, TypeMAPPING> {
11210 let hasNewValue = 1;
11211 let opNewValue = 0;
11212 let isPseudo = 1;
11213 let isCodeGenOnly = 1;
11215 def L2_ploadruht_io : HInst<
11216 (outs IntRegs:$Rd32),
11217 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11218 "if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11219 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11220 let Inst{13-13} = 0b0;
11221 let Inst{31-21} = 0b01000001011;
11222 let isPredicated = 1;
11223 let hasNewValue = 1;
11224 let opNewValue = 0;
11225 let addrMode = BaseImmOffset;
11226 let accessSize = HalfWordAccess;
11227 let mayLoad = 1;
11228 let BaseOpcode = "L2_loadruh_io";
11229 let CextOpcode = "L2_loadruh";
11230 let isExtendable = 1;
11231 let opExtendable = 3;
11232 let isExtentSigned = 0;
11233 let opExtentBits = 7;
11234 let opExtentAlign = 1;
11236 def L2_ploadruht_pi : HInst<
11237 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11238 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11239 "if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11240 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11241 let Inst{13-11} = 0b100;
11242 let Inst{31-21} = 0b10011011011;
11243 let isPredicated = 1;
11244 let hasNewValue = 1;
11245 let opNewValue = 0;
11246 let addrMode = PostInc;
11247 let accessSize = HalfWordAccess;
11248 let mayLoad = 1;
11249 let BaseOpcode = "L2_loadruh_pi";
11250 let Constraints = "$Rx32 = $Rx32in";
11252 def L2_ploadruht_zomap : HInst<
11253 (outs IntRegs:$Rd32),
11254 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11255 "if ($Pt4) $Rd32 = memuh($Rs32)",
11256 tc_fedb7e19, TypeMAPPING> {
11257 let hasNewValue = 1;
11258 let opNewValue = 0;
11259 let isPseudo = 1;
11260 let isCodeGenOnly = 1;
11262 def L2_ploadruhtnew_io : HInst<
11263 (outs IntRegs:$Rd32),
11264 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11265 "if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11266 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11267 let Inst{13-13} = 0b0;
11268 let Inst{31-21} = 0b01000011011;
11269 let isPredicated = 1;
11270 let hasNewValue = 1;
11271 let opNewValue = 0;
11272 let addrMode = BaseImmOffset;
11273 let accessSize = HalfWordAccess;
11274 let isPredicatedNew = 1;
11275 let mayLoad = 1;
11276 let BaseOpcode = "L2_loadruh_io";
11277 let CextOpcode = "L2_loadruh";
11278 let isExtendable = 1;
11279 let opExtendable = 3;
11280 let isExtentSigned = 0;
11281 let opExtentBits = 7;
11282 let opExtentAlign = 1;
11284 def L2_ploadruhtnew_pi : HInst<
11285 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11286 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11287 "if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11288 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11289 let Inst{13-11} = 0b110;
11290 let Inst{31-21} = 0b10011011011;
11291 let isPredicated = 1;
11292 let hasNewValue = 1;
11293 let opNewValue = 0;
11294 let addrMode = PostInc;
11295 let accessSize = HalfWordAccess;
11296 let isPredicatedNew = 1;
11297 let mayLoad = 1;
11298 let BaseOpcode = "L2_loadruh_pi";
11299 let Constraints = "$Rx32 = $Rx32in";
11301 def L2_ploadruhtnew_zomap : HInst<
11302 (outs IntRegs:$Rd32),
11303 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11304 "if ($Pt4.new) $Rd32 = memuh($Rs32)",
11305 tc_075c8dd8, TypeMAPPING> {
11306 let hasNewValue = 1;
11307 let opNewValue = 0;
11308 let isPseudo = 1;
11309 let isCodeGenOnly = 1;
11311 def L4_add_memopb_io : HInst<
11312 (outs),
11313 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11314 "memb($Rs32+#$Ii) += $Rt32",
11315 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11316 let Inst{6-5} = 0b00;
11317 let Inst{13-13} = 0b0;
11318 let Inst{31-21} = 0b00111110000;
11319 let addrMode = BaseImmOffset;
11320 let accessSize = ByteAccess;
11321 let mayLoad = 1;
11322 let isRestrictNoSlot1Store = 1;
11323 let mayStore = 1;
11324 let isExtendable = 1;
11325 let opExtendable = 1;
11326 let isExtentSigned = 0;
11327 let opExtentBits = 6;
11328 let opExtentAlign = 0;
11330 def L4_add_memopb_zomap : HInst<
11331 (outs),
11332 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11333 "memb($Rs32) += $Rt32",
11334 tc_9bcfb2ee, TypeMAPPING> {
11335 let isPseudo = 1;
11336 let isCodeGenOnly = 1;
11338 def L4_add_memoph_io : HInst<
11339 (outs),
11340 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11341 "memh($Rs32+#$Ii) += $Rt32",
11342 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11343 let Inst{6-5} = 0b00;
11344 let Inst{13-13} = 0b0;
11345 let Inst{31-21} = 0b00111110001;
11346 let addrMode = BaseImmOffset;
11347 let accessSize = HalfWordAccess;
11348 let mayLoad = 1;
11349 let isRestrictNoSlot1Store = 1;
11350 let mayStore = 1;
11351 let isExtendable = 1;
11352 let opExtendable = 1;
11353 let isExtentSigned = 0;
11354 let opExtentBits = 7;
11355 let opExtentAlign = 1;
11357 def L4_add_memoph_zomap : HInst<
11358 (outs),
11359 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11360 "memh($Rs32) += $Rt32",
11361 tc_9bcfb2ee, TypeMAPPING> {
11362 let isPseudo = 1;
11363 let isCodeGenOnly = 1;
11365 def L4_add_memopw_io : HInst<
11366 (outs),
11367 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11368 "memw($Rs32+#$Ii) += $Rt32",
11369 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11370 let Inst{6-5} = 0b00;
11371 let Inst{13-13} = 0b0;
11372 let Inst{31-21} = 0b00111110010;
11373 let addrMode = BaseImmOffset;
11374 let accessSize = WordAccess;
11375 let mayLoad = 1;
11376 let isRestrictNoSlot1Store = 1;
11377 let mayStore = 1;
11378 let isExtendable = 1;
11379 let opExtendable = 1;
11380 let isExtentSigned = 0;
11381 let opExtentBits = 8;
11382 let opExtentAlign = 2;
11384 def L4_add_memopw_zomap : HInst<
11385 (outs),
11386 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11387 "memw($Rs32) += $Rt32",
11388 tc_9bcfb2ee, TypeMAPPING> {
11389 let isPseudo = 1;
11390 let isCodeGenOnly = 1;
11392 def L4_and_memopb_io : HInst<
11393 (outs),
11394 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11395 "memb($Rs32+#$Ii) &= $Rt32",
11396 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11397 let Inst{6-5} = 0b10;
11398 let Inst{13-13} = 0b0;
11399 let Inst{31-21} = 0b00111110000;
11400 let addrMode = BaseImmOffset;
11401 let accessSize = ByteAccess;
11402 let mayLoad = 1;
11403 let isRestrictNoSlot1Store = 1;
11404 let mayStore = 1;
11405 let isExtendable = 1;
11406 let opExtendable = 1;
11407 let isExtentSigned = 0;
11408 let opExtentBits = 6;
11409 let opExtentAlign = 0;
11411 def L4_and_memopb_zomap : HInst<
11412 (outs),
11413 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11414 "memb($Rs32) &= $Rt32",
11415 tc_9bcfb2ee, TypeMAPPING> {
11416 let isPseudo = 1;
11417 let isCodeGenOnly = 1;
11419 def L4_and_memoph_io : HInst<
11420 (outs),
11421 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11422 "memh($Rs32+#$Ii) &= $Rt32",
11423 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11424 let Inst{6-5} = 0b10;
11425 let Inst{13-13} = 0b0;
11426 let Inst{31-21} = 0b00111110001;
11427 let addrMode = BaseImmOffset;
11428 let accessSize = HalfWordAccess;
11429 let mayLoad = 1;
11430 let isRestrictNoSlot1Store = 1;
11431 let mayStore = 1;
11432 let isExtendable = 1;
11433 let opExtendable = 1;
11434 let isExtentSigned = 0;
11435 let opExtentBits = 7;
11436 let opExtentAlign = 1;
11438 def L4_and_memoph_zomap : HInst<
11439 (outs),
11440 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11441 "memh($Rs32) &= $Rt32",
11442 tc_9bcfb2ee, TypeMAPPING> {
11443 let isPseudo = 1;
11444 let isCodeGenOnly = 1;
11446 def L4_and_memopw_io : HInst<
11447 (outs),
11448 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11449 "memw($Rs32+#$Ii) &= $Rt32",
11450 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11451 let Inst{6-5} = 0b10;
11452 let Inst{13-13} = 0b0;
11453 let Inst{31-21} = 0b00111110010;
11454 let addrMode = BaseImmOffset;
11455 let accessSize = WordAccess;
11456 let mayLoad = 1;
11457 let isRestrictNoSlot1Store = 1;
11458 let mayStore = 1;
11459 let isExtendable = 1;
11460 let opExtendable = 1;
11461 let isExtentSigned = 0;
11462 let opExtentBits = 8;
11463 let opExtentAlign = 2;
11465 def L4_and_memopw_zomap : HInst<
11466 (outs),
11467 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11468 "memw($Rs32) &= $Rt32",
11469 tc_9bcfb2ee, TypeMAPPING> {
11470 let isPseudo = 1;
11471 let isCodeGenOnly = 1;
11473 def L4_iadd_memopb_io : HInst<
11474 (outs),
11475 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11476 "memb($Rs32+#$Ii) += #$II",
11477 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11478 let Inst{6-5} = 0b00;
11479 let Inst{13-13} = 0b0;
11480 let Inst{31-21} = 0b00111111000;
11481 let addrMode = BaseImmOffset;
11482 let accessSize = ByteAccess;
11483 let mayLoad = 1;
11484 let isRestrictNoSlot1Store = 1;
11485 let mayStore = 1;
11486 let isExtendable = 1;
11487 let opExtendable = 1;
11488 let isExtentSigned = 0;
11489 let opExtentBits = 6;
11490 let opExtentAlign = 0;
11492 def L4_iadd_memopb_zomap : HInst<
11493 (outs),
11494 (ins IntRegs:$Rs32, u5_0Imm:$II),
11495 "memb($Rs32) += #$II",
11496 tc_158aa3f7, TypeMAPPING> {
11497 let isPseudo = 1;
11498 let isCodeGenOnly = 1;
11500 def L4_iadd_memoph_io : HInst<
11501 (outs),
11502 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11503 "memh($Rs32+#$Ii) += #$II",
11504 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11505 let Inst{6-5} = 0b00;
11506 let Inst{13-13} = 0b0;
11507 let Inst{31-21} = 0b00111111001;
11508 let addrMode = BaseImmOffset;
11509 let accessSize = HalfWordAccess;
11510 let mayLoad = 1;
11511 let isRestrictNoSlot1Store = 1;
11512 let mayStore = 1;
11513 let isExtendable = 1;
11514 let opExtendable = 1;
11515 let isExtentSigned = 0;
11516 let opExtentBits = 7;
11517 let opExtentAlign = 1;
11519 def L4_iadd_memoph_zomap : HInst<
11520 (outs),
11521 (ins IntRegs:$Rs32, u5_0Imm:$II),
11522 "memh($Rs32) += #$II",
11523 tc_158aa3f7, TypeMAPPING> {
11524 let isPseudo = 1;
11525 let isCodeGenOnly = 1;
11527 def L4_iadd_memopw_io : HInst<
11528 (outs),
11529 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11530 "memw($Rs32+#$Ii) += #$II",
11531 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11532 let Inst{6-5} = 0b00;
11533 let Inst{13-13} = 0b0;
11534 let Inst{31-21} = 0b00111111010;
11535 let addrMode = BaseImmOffset;
11536 let accessSize = WordAccess;
11537 let mayLoad = 1;
11538 let isRestrictNoSlot1Store = 1;
11539 let mayStore = 1;
11540 let isExtendable = 1;
11541 let opExtendable = 1;
11542 let isExtentSigned = 0;
11543 let opExtentBits = 8;
11544 let opExtentAlign = 2;
11546 def L4_iadd_memopw_zomap : HInst<
11547 (outs),
11548 (ins IntRegs:$Rs32, u5_0Imm:$II),
11549 "memw($Rs32) += #$II",
11550 tc_158aa3f7, TypeMAPPING> {
11551 let isPseudo = 1;
11552 let isCodeGenOnly = 1;
11554 def L4_iand_memopb_io : HInst<
11555 (outs),
11556 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11557 "memb($Rs32+#$Ii) = clrbit(#$II)",
11558 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11559 let Inst{6-5} = 0b10;
11560 let Inst{13-13} = 0b0;
11561 let Inst{31-21} = 0b00111111000;
11562 let addrMode = BaseImmOffset;
11563 let accessSize = ByteAccess;
11564 let mayLoad = 1;
11565 let isRestrictNoSlot1Store = 1;
11566 let mayStore = 1;
11567 let isExtendable = 1;
11568 let opExtendable = 1;
11569 let isExtentSigned = 0;
11570 let opExtentBits = 6;
11571 let opExtentAlign = 0;
11573 def L4_iand_memopb_zomap : HInst<
11574 (outs),
11575 (ins IntRegs:$Rs32, u5_0Imm:$II),
11576 "memb($Rs32) = clrbit(#$II)",
11577 tc_158aa3f7, TypeMAPPING> {
11578 let isPseudo = 1;
11579 let isCodeGenOnly = 1;
11581 def L4_iand_memoph_io : HInst<
11582 (outs),
11583 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11584 "memh($Rs32+#$Ii) = clrbit(#$II)",
11585 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11586 let Inst{6-5} = 0b10;
11587 let Inst{13-13} = 0b0;
11588 let Inst{31-21} = 0b00111111001;
11589 let addrMode = BaseImmOffset;
11590 let accessSize = HalfWordAccess;
11591 let mayLoad = 1;
11592 let isRestrictNoSlot1Store = 1;
11593 let mayStore = 1;
11594 let isExtendable = 1;
11595 let opExtendable = 1;
11596 let isExtentSigned = 0;
11597 let opExtentBits = 7;
11598 let opExtentAlign = 1;
11600 def L4_iand_memoph_zomap : HInst<
11601 (outs),
11602 (ins IntRegs:$Rs32, u5_0Imm:$II),
11603 "memh($Rs32) = clrbit(#$II)",
11604 tc_158aa3f7, TypeMAPPING> {
11605 let isPseudo = 1;
11606 let isCodeGenOnly = 1;
11608 def L4_iand_memopw_io : HInst<
11609 (outs),
11610 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11611 "memw($Rs32+#$Ii) = clrbit(#$II)",
11612 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11613 let Inst{6-5} = 0b10;
11614 let Inst{13-13} = 0b0;
11615 let Inst{31-21} = 0b00111111010;
11616 let addrMode = BaseImmOffset;
11617 let accessSize = WordAccess;
11618 let mayLoad = 1;
11619 let isRestrictNoSlot1Store = 1;
11620 let mayStore = 1;
11621 let isExtendable = 1;
11622 let opExtendable = 1;
11623 let isExtentSigned = 0;
11624 let opExtentBits = 8;
11625 let opExtentAlign = 2;
11627 def L4_iand_memopw_zomap : HInst<
11628 (outs),
11629 (ins IntRegs:$Rs32, u5_0Imm:$II),
11630 "memw($Rs32) = clrbit(#$II)",
11631 tc_158aa3f7, TypeMAPPING> {
11632 let isPseudo = 1;
11633 let isCodeGenOnly = 1;
11635 def L4_ior_memopb_io : HInst<
11636 (outs),
11637 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11638 "memb($Rs32+#$Ii) = setbit(#$II)",
11639 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11640 let Inst{6-5} = 0b11;
11641 let Inst{13-13} = 0b0;
11642 let Inst{31-21} = 0b00111111000;
11643 let addrMode = BaseImmOffset;
11644 let accessSize = ByteAccess;
11645 let mayLoad = 1;
11646 let isRestrictNoSlot1Store = 1;
11647 let mayStore = 1;
11648 let isExtendable = 1;
11649 let opExtendable = 1;
11650 let isExtentSigned = 0;
11651 let opExtentBits = 6;
11652 let opExtentAlign = 0;
11654 def L4_ior_memopb_zomap : HInst<
11655 (outs),
11656 (ins IntRegs:$Rs32, u5_0Imm:$II),
11657 "memb($Rs32) = setbit(#$II)",
11658 tc_158aa3f7, TypeMAPPING> {
11659 let isPseudo = 1;
11660 let isCodeGenOnly = 1;
11662 def L4_ior_memoph_io : HInst<
11663 (outs),
11664 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11665 "memh($Rs32+#$Ii) = setbit(#$II)",
11666 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11667 let Inst{6-5} = 0b11;
11668 let Inst{13-13} = 0b0;
11669 let Inst{31-21} = 0b00111111001;
11670 let addrMode = BaseImmOffset;
11671 let accessSize = HalfWordAccess;
11672 let mayLoad = 1;
11673 let isRestrictNoSlot1Store = 1;
11674 let mayStore = 1;
11675 let isExtendable = 1;
11676 let opExtendable = 1;
11677 let isExtentSigned = 0;
11678 let opExtentBits = 7;
11679 let opExtentAlign = 1;
11681 def L4_ior_memoph_zomap : HInst<
11682 (outs),
11683 (ins IntRegs:$Rs32, u5_0Imm:$II),
11684 "memh($Rs32) = setbit(#$II)",
11685 tc_158aa3f7, TypeMAPPING> {
11686 let isPseudo = 1;
11687 let isCodeGenOnly = 1;
11689 def L4_ior_memopw_io : HInst<
11690 (outs),
11691 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11692 "memw($Rs32+#$Ii) = setbit(#$II)",
11693 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11694 let Inst{6-5} = 0b11;
11695 let Inst{13-13} = 0b0;
11696 let Inst{31-21} = 0b00111111010;
11697 let addrMode = BaseImmOffset;
11698 let accessSize = WordAccess;
11699 let mayLoad = 1;
11700 let isRestrictNoSlot1Store = 1;
11701 let mayStore = 1;
11702 let isExtendable = 1;
11703 let opExtendable = 1;
11704 let isExtentSigned = 0;
11705 let opExtentBits = 8;
11706 let opExtentAlign = 2;
11708 def L4_ior_memopw_zomap : HInst<
11709 (outs),
11710 (ins IntRegs:$Rs32, u5_0Imm:$II),
11711 "memw($Rs32) = setbit(#$II)",
11712 tc_158aa3f7, TypeMAPPING> {
11713 let isPseudo = 1;
11714 let isCodeGenOnly = 1;
11716 def L4_isub_memopb_io : HInst<
11717 (outs),
11718 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11719 "memb($Rs32+#$Ii) -= #$II",
11720 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11721 let Inst{6-5} = 0b01;
11722 let Inst{13-13} = 0b0;
11723 let Inst{31-21} = 0b00111111000;
11724 let addrMode = BaseImmOffset;
11725 let accessSize = ByteAccess;
11726 let mayLoad = 1;
11727 let isRestrictNoSlot1Store = 1;
11728 let mayStore = 1;
11729 let isExtendable = 1;
11730 let opExtendable = 1;
11731 let isExtentSigned = 0;
11732 let opExtentBits = 6;
11733 let opExtentAlign = 0;
11735 def L4_isub_memopb_zomap : HInst<
11736 (outs),
11737 (ins IntRegs:$Rs32, u5_0Imm:$II),
11738 "memb($Rs32) -= #$II",
11739 tc_158aa3f7, TypeMAPPING> {
11740 let isPseudo = 1;
11741 let isCodeGenOnly = 1;
11743 def L4_isub_memoph_io : HInst<
11744 (outs),
11745 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11746 "memh($Rs32+#$Ii) -= #$II",
11747 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11748 let Inst{6-5} = 0b01;
11749 let Inst{13-13} = 0b0;
11750 let Inst{31-21} = 0b00111111001;
11751 let addrMode = BaseImmOffset;
11752 let accessSize = HalfWordAccess;
11753 let mayLoad = 1;
11754 let isRestrictNoSlot1Store = 1;
11755 let mayStore = 1;
11756 let isExtendable = 1;
11757 let opExtendable = 1;
11758 let isExtentSigned = 0;
11759 let opExtentBits = 7;
11760 let opExtentAlign = 1;
11762 def L4_isub_memoph_zomap : HInst<
11763 (outs),
11764 (ins IntRegs:$Rs32, u5_0Imm:$II),
11765 "memh($Rs32) -= #$II",
11766 tc_158aa3f7, TypeMAPPING> {
11767 let isPseudo = 1;
11768 let isCodeGenOnly = 1;
11770 def L4_isub_memopw_io : HInst<
11771 (outs),
11772 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11773 "memw($Rs32+#$Ii) -= #$II",
11774 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11775 let Inst{6-5} = 0b01;
11776 let Inst{13-13} = 0b0;
11777 let Inst{31-21} = 0b00111111010;
11778 let addrMode = BaseImmOffset;
11779 let accessSize = WordAccess;
11780 let mayLoad = 1;
11781 let isRestrictNoSlot1Store = 1;
11782 let mayStore = 1;
11783 let isExtendable = 1;
11784 let opExtendable = 1;
11785 let isExtentSigned = 0;
11786 let opExtentBits = 8;
11787 let opExtentAlign = 2;
11789 def L4_isub_memopw_zomap : HInst<
11790 (outs),
11791 (ins IntRegs:$Rs32, u5_0Imm:$II),
11792 "memw($Rs32) -= #$II",
11793 tc_158aa3f7, TypeMAPPING> {
11794 let isPseudo = 1;
11795 let isCodeGenOnly = 1;
11797 def L4_loadalignb_ap : HInst<
11798 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11799 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11800 "$Ryy32 = memb_fifo($Re32=#$II)",
11801 tc_ac65613f, TypeLD>, Enc_f394d3 {
11802 let Inst{7-7} = 0b0;
11803 let Inst{13-12} = 0b01;
11804 let Inst{31-21} = 0b10011010100;
11805 let addrMode = AbsoluteSet;
11806 let accessSize = ByteAccess;
11807 let mayLoad = 1;
11808 let isExtended = 1;
11809 let DecoderNamespace = "MustExtend";
11810 let isExtendable = 1;
11811 let opExtendable = 3;
11812 let isExtentSigned = 0;
11813 let opExtentBits = 6;
11814 let opExtentAlign = 0;
11815 let Constraints = "$Ryy32 = $Ryy32in";
11817 def L4_loadalignb_ur : HInst<
11818 (outs DoubleRegs:$Ryy32),
11819 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11820 "$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11821 tc_a32e03e7, TypeLD>, Enc_04c959 {
11822 let Inst{12-12} = 0b1;
11823 let Inst{31-21} = 0b10011100100;
11824 let addrMode = BaseLongOffset;
11825 let accessSize = ByteAccess;
11826 let mayLoad = 1;
11827 let isExtended = 1;
11828 let InputType = "imm";
11829 let DecoderNamespace = "MustExtend";
11830 let isExtendable = 1;
11831 let opExtendable = 4;
11832 let isExtentSigned = 0;
11833 let opExtentBits = 6;
11834 let opExtentAlign = 0;
11835 let Constraints = "$Ryy32 = $Ryy32in";
11837 def L4_loadalignh_ap : HInst<
11838 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11839 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11840 "$Ryy32 = memh_fifo($Re32=#$II)",
11841 tc_ac65613f, TypeLD>, Enc_f394d3 {
11842 let Inst{7-7} = 0b0;
11843 let Inst{13-12} = 0b01;
11844 let Inst{31-21} = 0b10011010010;
11845 let addrMode = AbsoluteSet;
11846 let accessSize = HalfWordAccess;
11847 let mayLoad = 1;
11848 let isExtended = 1;
11849 let DecoderNamespace = "MustExtend";
11850 let isExtendable = 1;
11851 let opExtendable = 3;
11852 let isExtentSigned = 0;
11853 let opExtentBits = 6;
11854 let opExtentAlign = 0;
11855 let Constraints = "$Ryy32 = $Ryy32in";
11857 def L4_loadalignh_ur : HInst<
11858 (outs DoubleRegs:$Ryy32),
11859 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11860 "$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11861 tc_a32e03e7, TypeLD>, Enc_04c959 {
11862 let Inst{12-12} = 0b1;
11863 let Inst{31-21} = 0b10011100010;
11864 let addrMode = BaseLongOffset;
11865 let accessSize = HalfWordAccess;
11866 let mayLoad = 1;
11867 let isExtended = 1;
11868 let InputType = "imm";
11869 let DecoderNamespace = "MustExtend";
11870 let isExtendable = 1;
11871 let opExtendable = 4;
11872 let isExtentSigned = 0;
11873 let opExtentBits = 6;
11874 let opExtentAlign = 0;
11875 let Constraints = "$Ryy32 = $Ryy32in";
11877 def L4_loadbsw2_ap : HInst<
11878 (outs IntRegs:$Rd32, IntRegs:$Re32),
11879 (ins u32_0Imm:$II),
11880 "$Rd32 = membh($Re32=#$II)",
11881 tc_822c3c68, TypeLD>, Enc_323f2d {
11882 let Inst{7-7} = 0b0;
11883 let Inst{13-12} = 0b01;
11884 let Inst{31-21} = 0b10011010001;
11885 let hasNewValue = 1;
11886 let opNewValue = 0;
11887 let addrMode = AbsoluteSet;
11888 let accessSize = HalfWordAccess;
11889 let mayLoad = 1;
11890 let isExtended = 1;
11891 let DecoderNamespace = "MustExtend";
11892 let isExtendable = 1;
11893 let opExtendable = 2;
11894 let isExtentSigned = 0;
11895 let opExtentBits = 6;
11896 let opExtentAlign = 0;
11898 def L4_loadbsw2_ur : HInst<
11899 (outs IntRegs:$Rd32),
11900 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11901 "$Rd32 = membh($Rt32<<#$Ii+#$II)",
11902 tc_abfd9a6d, TypeLD>, Enc_4f677b {
11903 let Inst{12-12} = 0b1;
11904 let Inst{31-21} = 0b10011100001;
11905 let hasNewValue = 1;
11906 let opNewValue = 0;
11907 let addrMode = BaseLongOffset;
11908 let accessSize = HalfWordAccess;
11909 let mayLoad = 1;
11910 let isExtended = 1;
11911 let InputType = "imm";
11912 let DecoderNamespace = "MustExtend";
11913 let isExtendable = 1;
11914 let opExtendable = 3;
11915 let isExtentSigned = 0;
11916 let opExtentBits = 6;
11917 let opExtentAlign = 0;
11919 def L4_loadbsw4_ap : HInst<
11920 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11921 (ins u32_0Imm:$II),
11922 "$Rdd32 = membh($Re32=#$II)",
11923 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
11924 let Inst{7-7} = 0b0;
11925 let Inst{13-12} = 0b01;
11926 let Inst{31-21} = 0b10011010111;
11927 let addrMode = AbsoluteSet;
11928 let accessSize = WordAccess;
11929 let mayLoad = 1;
11930 let isExtended = 1;
11931 let DecoderNamespace = "MustExtend";
11932 let isExtendable = 1;
11933 let opExtendable = 2;
11934 let isExtentSigned = 0;
11935 let opExtentBits = 6;
11936 let opExtentAlign = 0;
11938 def L4_loadbsw4_ur : HInst<
11939 (outs DoubleRegs:$Rdd32),
11940 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11941 "$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11942 tc_abfd9a6d, TypeLD>, Enc_6185fe {
11943 let Inst{12-12} = 0b1;
11944 let Inst{31-21} = 0b10011100111;
11945 let addrMode = BaseLongOffset;
11946 let accessSize = WordAccess;
11947 let mayLoad = 1;
11948 let isExtended = 1;
11949 let InputType = "imm";
11950 let DecoderNamespace = "MustExtend";
11951 let isExtendable = 1;
11952 let opExtendable = 3;
11953 let isExtentSigned = 0;
11954 let opExtentBits = 6;
11955 let opExtentAlign = 0;
11957 def L4_loadbzw2_ap : HInst<
11958 (outs IntRegs:$Rd32, IntRegs:$Re32),
11959 (ins u32_0Imm:$II),
11960 "$Rd32 = memubh($Re32=#$II)",
11961 tc_822c3c68, TypeLD>, Enc_323f2d {
11962 let Inst{7-7} = 0b0;
11963 let Inst{13-12} = 0b01;
11964 let Inst{31-21} = 0b10011010011;
11965 let hasNewValue = 1;
11966 let opNewValue = 0;
11967 let addrMode = AbsoluteSet;
11968 let accessSize = HalfWordAccess;
11969 let mayLoad = 1;
11970 let isExtended = 1;
11971 let DecoderNamespace = "MustExtend";
11972 let isExtendable = 1;
11973 let opExtendable = 2;
11974 let isExtentSigned = 0;
11975 let opExtentBits = 6;
11976 let opExtentAlign = 0;
11978 def L4_loadbzw2_ur : HInst<
11979 (outs IntRegs:$Rd32),
11980 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11981 "$Rd32 = memubh($Rt32<<#$Ii+#$II)",
11982 tc_abfd9a6d, TypeLD>, Enc_4f677b {
11983 let Inst{12-12} = 0b1;
11984 let Inst{31-21} = 0b10011100011;
11985 let hasNewValue = 1;
11986 let opNewValue = 0;
11987 let addrMode = BaseLongOffset;
11988 let accessSize = HalfWordAccess;
11989 let mayLoad = 1;
11990 let isExtended = 1;
11991 let InputType = "imm";
11992 let DecoderNamespace = "MustExtend";
11993 let isExtendable = 1;
11994 let opExtendable = 3;
11995 let isExtentSigned = 0;
11996 let opExtentBits = 6;
11997 let opExtentAlign = 0;
11999 def L4_loadbzw4_ap : HInst<
12000 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12001 (ins u32_0Imm:$II),
12002 "$Rdd32 = memubh($Re32=#$II)",
12003 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12004 let Inst{7-7} = 0b0;
12005 let Inst{13-12} = 0b01;
12006 let Inst{31-21} = 0b10011010101;
12007 let addrMode = AbsoluteSet;
12008 let accessSize = WordAccess;
12009 let mayLoad = 1;
12010 let isExtended = 1;
12011 let DecoderNamespace = "MustExtend";
12012 let isExtendable = 1;
12013 let opExtendable = 2;
12014 let isExtentSigned = 0;
12015 let opExtentBits = 6;
12016 let opExtentAlign = 0;
12018 def L4_loadbzw4_ur : HInst<
12019 (outs DoubleRegs:$Rdd32),
12020 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12021 "$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
12022 tc_abfd9a6d, TypeLD>, Enc_6185fe {
12023 let Inst{12-12} = 0b1;
12024 let Inst{31-21} = 0b10011100101;
12025 let addrMode = BaseLongOffset;
12026 let accessSize = WordAccess;
12027 let mayLoad = 1;
12028 let isExtended = 1;
12029 let InputType = "imm";
12030 let DecoderNamespace = "MustExtend";
12031 let isExtendable = 1;
12032 let opExtendable = 3;
12033 let isExtentSigned = 0;
12034 let opExtentBits = 6;
12035 let opExtentAlign = 0;
12037 def L4_loadd_aq : HInst<
12038 (outs DoubleRegs:$Rdd32),
12039 (ins IntRegs:$Rs32),
12040 "$Rdd32 = memd_aq($Rs32)",
12041 tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> {
12042 let Inst{13-5} = 0b011000000;
12043 let Inst{31-21} = 0b10010010000;
12044 let accessSize = DoubleWordAccess;
12045 let mayLoad = 1;
12047 def L4_loadd_locked : HInst<
12048 (outs DoubleRegs:$Rdd32),
12049 (ins IntRegs:$Rs32),
12050 "$Rdd32 = memd_locked($Rs32)",
12051 tc_64b00d8a, TypeLD>, Enc_3a3d62 {
12052 let Inst{13-5} = 0b010000000;
12053 let Inst{31-21} = 0b10010010000;
12054 let accessSize = DoubleWordAccess;
12055 let mayLoad = 1;
12056 let isSoloAX = 1;
12058 def L4_loadrb_ap : HInst<
12059 (outs IntRegs:$Rd32, IntRegs:$Re32),
12060 (ins u32_0Imm:$II),
12061 "$Rd32 = memb($Re32=#$II)",
12062 tc_822c3c68, TypeLD>, Enc_323f2d {
12063 let Inst{7-7} = 0b0;
12064 let Inst{13-12} = 0b01;
12065 let Inst{31-21} = 0b10011011000;
12066 let hasNewValue = 1;
12067 let opNewValue = 0;
12068 let addrMode = AbsoluteSet;
12069 let accessSize = ByteAccess;
12070 let mayLoad = 1;
12071 let isExtended = 1;
12072 let DecoderNamespace = "MustExtend";
12073 let isExtendable = 1;
12074 let opExtendable = 2;
12075 let isExtentSigned = 0;
12076 let opExtentBits = 6;
12077 let opExtentAlign = 0;
12079 def L4_loadrb_rr : HInst<
12080 (outs IntRegs:$Rd32),
12081 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12082 "$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12083 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12084 let Inst{6-5} = 0b00;
12085 let Inst{31-21} = 0b00111010000;
12086 let hasNewValue = 1;
12087 let opNewValue = 0;
12088 let addrMode = BaseRegOffset;
12089 let accessSize = ByteAccess;
12090 let mayLoad = 1;
12091 let BaseOpcode = "L4_loadrb_rr";
12092 let CextOpcode = "L2_loadrb";
12093 let InputType = "reg";
12094 let isPredicable = 1;
12096 def L4_loadrb_ur : HInst<
12097 (outs IntRegs:$Rd32),
12098 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12099 "$Rd32 = memb($Rt32<<#$Ii+#$II)",
12100 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12101 let Inst{12-12} = 0b1;
12102 let Inst{31-21} = 0b10011101000;
12103 let hasNewValue = 1;
12104 let opNewValue = 0;
12105 let addrMode = BaseLongOffset;
12106 let accessSize = ByteAccess;
12107 let mayLoad = 1;
12108 let isExtended = 1;
12109 let CextOpcode = "L2_loadrb";
12110 let InputType = "imm";
12111 let DecoderNamespace = "MustExtend";
12112 let isExtendable = 1;
12113 let opExtendable = 3;
12114 let isExtentSigned = 0;
12115 let opExtentBits = 6;
12116 let opExtentAlign = 0;
12118 def L4_loadrd_ap : HInst<
12119 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12120 (ins u32_0Imm:$II),
12121 "$Rdd32 = memd($Re32=#$II)",
12122 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12123 let Inst{7-7} = 0b0;
12124 let Inst{13-12} = 0b01;
12125 let Inst{31-21} = 0b10011011110;
12126 let addrMode = AbsoluteSet;
12127 let accessSize = DoubleWordAccess;
12128 let mayLoad = 1;
12129 let isExtended = 1;
12130 let DecoderNamespace = "MustExtend";
12131 let isExtendable = 1;
12132 let opExtendable = 2;
12133 let isExtentSigned = 0;
12134 let opExtentBits = 6;
12135 let opExtentAlign = 0;
12137 def L4_loadrd_rr : HInst<
12138 (outs DoubleRegs:$Rdd32),
12139 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12140 "$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12141 tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12142 let Inst{6-5} = 0b00;
12143 let Inst{31-21} = 0b00111010110;
12144 let addrMode = BaseRegOffset;
12145 let accessSize = DoubleWordAccess;
12146 let mayLoad = 1;
12147 let BaseOpcode = "L4_loadrd_rr";
12148 let CextOpcode = "L2_loadrd";
12149 let InputType = "reg";
12150 let isPredicable = 1;
12152 def L4_loadrd_ur : HInst<
12153 (outs DoubleRegs:$Rdd32),
12154 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12155 "$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12156 tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12157 let Inst{12-12} = 0b1;
12158 let Inst{31-21} = 0b10011101110;
12159 let addrMode = BaseLongOffset;
12160 let accessSize = DoubleWordAccess;
12161 let mayLoad = 1;
12162 let isExtended = 1;
12163 let CextOpcode = "L2_loadrd";
12164 let InputType = "imm";
12165 let DecoderNamespace = "MustExtend";
12166 let isExtendable = 1;
12167 let opExtendable = 3;
12168 let isExtentSigned = 0;
12169 let opExtentBits = 6;
12170 let opExtentAlign = 0;
12172 def L4_loadrh_ap : HInst<
12173 (outs IntRegs:$Rd32, IntRegs:$Re32),
12174 (ins u32_0Imm:$II),
12175 "$Rd32 = memh($Re32=#$II)",
12176 tc_822c3c68, TypeLD>, Enc_323f2d {
12177 let Inst{7-7} = 0b0;
12178 let Inst{13-12} = 0b01;
12179 let Inst{31-21} = 0b10011011010;
12180 let hasNewValue = 1;
12181 let opNewValue = 0;
12182 let addrMode = AbsoluteSet;
12183 let accessSize = HalfWordAccess;
12184 let mayLoad = 1;
12185 let isExtended = 1;
12186 let DecoderNamespace = "MustExtend";
12187 let isExtendable = 1;
12188 let opExtendable = 2;
12189 let isExtentSigned = 0;
12190 let opExtentBits = 6;
12191 let opExtentAlign = 0;
12193 def L4_loadrh_rr : HInst<
12194 (outs IntRegs:$Rd32),
12195 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12196 "$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12197 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12198 let Inst{6-5} = 0b00;
12199 let Inst{31-21} = 0b00111010010;
12200 let hasNewValue = 1;
12201 let opNewValue = 0;
12202 let addrMode = BaseRegOffset;
12203 let accessSize = HalfWordAccess;
12204 let mayLoad = 1;
12205 let BaseOpcode = "L4_loadrh_rr";
12206 let CextOpcode = "L2_loadrh";
12207 let InputType = "reg";
12208 let isPredicable = 1;
12210 def L4_loadrh_ur : HInst<
12211 (outs IntRegs:$Rd32),
12212 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12213 "$Rd32 = memh($Rt32<<#$Ii+#$II)",
12214 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12215 let Inst{12-12} = 0b1;
12216 let Inst{31-21} = 0b10011101010;
12217 let hasNewValue = 1;
12218 let opNewValue = 0;
12219 let addrMode = BaseLongOffset;
12220 let accessSize = HalfWordAccess;
12221 let mayLoad = 1;
12222 let isExtended = 1;
12223 let CextOpcode = "L2_loadrh";
12224 let InputType = "imm";
12225 let DecoderNamespace = "MustExtend";
12226 let isExtendable = 1;
12227 let opExtendable = 3;
12228 let isExtentSigned = 0;
12229 let opExtentBits = 6;
12230 let opExtentAlign = 0;
12232 def L4_loadri_ap : HInst<
12233 (outs IntRegs:$Rd32, IntRegs:$Re32),
12234 (ins u32_0Imm:$II),
12235 "$Rd32 = memw($Re32=#$II)",
12236 tc_822c3c68, TypeLD>, Enc_323f2d {
12237 let Inst{7-7} = 0b0;
12238 let Inst{13-12} = 0b01;
12239 let Inst{31-21} = 0b10011011100;
12240 let hasNewValue = 1;
12241 let opNewValue = 0;
12242 let addrMode = AbsoluteSet;
12243 let accessSize = WordAccess;
12244 let mayLoad = 1;
12245 let isExtended = 1;
12246 let DecoderNamespace = "MustExtend";
12247 let isExtendable = 1;
12248 let opExtendable = 2;
12249 let isExtentSigned = 0;
12250 let opExtentBits = 6;
12251 let opExtentAlign = 0;
12253 def L4_loadri_rr : HInst<
12254 (outs IntRegs:$Rd32),
12255 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12256 "$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12257 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12258 let Inst{6-5} = 0b00;
12259 let Inst{31-21} = 0b00111010100;
12260 let hasNewValue = 1;
12261 let opNewValue = 0;
12262 let addrMode = BaseRegOffset;
12263 let accessSize = WordAccess;
12264 let mayLoad = 1;
12265 let BaseOpcode = "L4_loadri_rr";
12266 let CextOpcode = "L2_loadri";
12267 let InputType = "reg";
12268 let isPredicable = 1;
12270 def L4_loadri_ur : HInst<
12271 (outs IntRegs:$Rd32),
12272 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12273 "$Rd32 = memw($Rt32<<#$Ii+#$II)",
12274 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12275 let Inst{12-12} = 0b1;
12276 let Inst{31-21} = 0b10011101100;
12277 let hasNewValue = 1;
12278 let opNewValue = 0;
12279 let addrMode = BaseLongOffset;
12280 let accessSize = WordAccess;
12281 let mayLoad = 1;
12282 let isExtended = 1;
12283 let CextOpcode = "L2_loadri";
12284 let InputType = "imm";
12285 let DecoderNamespace = "MustExtend";
12286 let isExtendable = 1;
12287 let opExtendable = 3;
12288 let isExtentSigned = 0;
12289 let opExtentBits = 6;
12290 let opExtentAlign = 0;
12292 def L4_loadrub_ap : HInst<
12293 (outs IntRegs:$Rd32, IntRegs:$Re32),
12294 (ins u32_0Imm:$II),
12295 "$Rd32 = memub($Re32=#$II)",
12296 tc_822c3c68, TypeLD>, Enc_323f2d {
12297 let Inst{7-7} = 0b0;
12298 let Inst{13-12} = 0b01;
12299 let Inst{31-21} = 0b10011011001;
12300 let hasNewValue = 1;
12301 let opNewValue = 0;
12302 let addrMode = AbsoluteSet;
12303 let accessSize = ByteAccess;
12304 let mayLoad = 1;
12305 let isExtended = 1;
12306 let DecoderNamespace = "MustExtend";
12307 let isExtendable = 1;
12308 let opExtendable = 2;
12309 let isExtentSigned = 0;
12310 let opExtentBits = 6;
12311 let opExtentAlign = 0;
12313 def L4_loadrub_rr : HInst<
12314 (outs IntRegs:$Rd32),
12315 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12316 "$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12317 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12318 let Inst{6-5} = 0b00;
12319 let Inst{31-21} = 0b00111010001;
12320 let hasNewValue = 1;
12321 let opNewValue = 0;
12322 let addrMode = BaseRegOffset;
12323 let accessSize = ByteAccess;
12324 let mayLoad = 1;
12325 let BaseOpcode = "L4_loadrub_rr";
12326 let CextOpcode = "L2_loadrub";
12327 let InputType = "reg";
12328 let isPredicable = 1;
12330 def L4_loadrub_ur : HInst<
12331 (outs IntRegs:$Rd32),
12332 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12333 "$Rd32 = memub($Rt32<<#$Ii+#$II)",
12334 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12335 let Inst{12-12} = 0b1;
12336 let Inst{31-21} = 0b10011101001;
12337 let hasNewValue = 1;
12338 let opNewValue = 0;
12339 let addrMode = BaseLongOffset;
12340 let accessSize = ByteAccess;
12341 let mayLoad = 1;
12342 let isExtended = 1;
12343 let CextOpcode = "L2_loadrub";
12344 let InputType = "imm";
12345 let DecoderNamespace = "MustExtend";
12346 let isExtendable = 1;
12347 let opExtendable = 3;
12348 let isExtentSigned = 0;
12349 let opExtentBits = 6;
12350 let opExtentAlign = 0;
12352 def L4_loadruh_ap : HInst<
12353 (outs IntRegs:$Rd32, IntRegs:$Re32),
12354 (ins u32_0Imm:$II),
12355 "$Rd32 = memuh($Re32=#$II)",
12356 tc_822c3c68, TypeLD>, Enc_323f2d {
12357 let Inst{7-7} = 0b0;
12358 let Inst{13-12} = 0b01;
12359 let Inst{31-21} = 0b10011011011;
12360 let hasNewValue = 1;
12361 let opNewValue = 0;
12362 let addrMode = AbsoluteSet;
12363 let accessSize = HalfWordAccess;
12364 let mayLoad = 1;
12365 let isExtended = 1;
12366 let DecoderNamespace = "MustExtend";
12367 let isExtendable = 1;
12368 let opExtendable = 2;
12369 let isExtentSigned = 0;
12370 let opExtentBits = 6;
12371 let opExtentAlign = 0;
12373 def L4_loadruh_rr : HInst<
12374 (outs IntRegs:$Rd32),
12375 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12376 "$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12377 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12378 let Inst{6-5} = 0b00;
12379 let Inst{31-21} = 0b00111010011;
12380 let hasNewValue = 1;
12381 let opNewValue = 0;
12382 let addrMode = BaseRegOffset;
12383 let accessSize = HalfWordAccess;
12384 let mayLoad = 1;
12385 let BaseOpcode = "L4_loadruh_rr";
12386 let CextOpcode = "L2_loadruh";
12387 let InputType = "reg";
12388 let isPredicable = 1;
12390 def L4_loadruh_ur : HInst<
12391 (outs IntRegs:$Rd32),
12392 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12393 "$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12394 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12395 let Inst{12-12} = 0b1;
12396 let Inst{31-21} = 0b10011101011;
12397 let hasNewValue = 1;
12398 let opNewValue = 0;
12399 let addrMode = BaseLongOffset;
12400 let accessSize = HalfWordAccess;
12401 let mayLoad = 1;
12402 let isExtended = 1;
12403 let CextOpcode = "L2_loadruh";
12404 let InputType = "imm";
12405 let DecoderNamespace = "MustExtend";
12406 let isExtendable = 1;
12407 let opExtendable = 3;
12408 let isExtentSigned = 0;
12409 let opExtentBits = 6;
12410 let opExtentAlign = 0;
12412 def L4_or_memopb_io : HInst<
12413 (outs),
12414 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12415 "memb($Rs32+#$Ii) |= $Rt32",
12416 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
12417 let Inst{6-5} = 0b11;
12418 let Inst{13-13} = 0b0;
12419 let Inst{31-21} = 0b00111110000;
12420 let addrMode = BaseImmOffset;
12421 let accessSize = ByteAccess;
12422 let mayLoad = 1;
12423 let isRestrictNoSlot1Store = 1;
12424 let mayStore = 1;
12425 let isExtendable = 1;
12426 let opExtendable = 1;
12427 let isExtentSigned = 0;
12428 let opExtentBits = 6;
12429 let opExtentAlign = 0;
12431 def L4_or_memopb_zomap : HInst<
12432 (outs),
12433 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12434 "memb($Rs32) |= $Rt32",
12435 tc_9bcfb2ee, TypeMAPPING> {
12436 let isPseudo = 1;
12437 let isCodeGenOnly = 1;
12439 def L4_or_memoph_io : HInst<
12440 (outs),
12441 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12442 "memh($Rs32+#$Ii) |= $Rt32",
12443 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
12444 let Inst{6-5} = 0b11;
12445 let Inst{13-13} = 0b0;
12446 let Inst{31-21} = 0b00111110001;
12447 let addrMode = BaseImmOffset;
12448 let accessSize = HalfWordAccess;
12449 let mayLoad = 1;
12450 let isRestrictNoSlot1Store = 1;
12451 let mayStore = 1;
12452 let isExtendable = 1;
12453 let opExtendable = 1;
12454 let isExtentSigned = 0;
12455 let opExtentBits = 7;
12456 let opExtentAlign = 1;
12458 def L4_or_memoph_zomap : HInst<
12459 (outs),
12460 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12461 "memh($Rs32) |= $Rt32",
12462 tc_9bcfb2ee, TypeMAPPING> {
12463 let isPseudo = 1;
12464 let isCodeGenOnly = 1;
12466 def L4_or_memopw_io : HInst<
12467 (outs),
12468 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12469 "memw($Rs32+#$Ii) |= $Rt32",
12470 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
12471 let Inst{6-5} = 0b11;
12472 let Inst{13-13} = 0b0;
12473 let Inst{31-21} = 0b00111110010;
12474 let addrMode = BaseImmOffset;
12475 let accessSize = WordAccess;
12476 let mayLoad = 1;
12477 let isRestrictNoSlot1Store = 1;
12478 let mayStore = 1;
12479 let isExtendable = 1;
12480 let opExtendable = 1;
12481 let isExtentSigned = 0;
12482 let opExtentBits = 8;
12483 let opExtentAlign = 2;
12485 def L4_or_memopw_zomap : HInst<
12486 (outs),
12487 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12488 "memw($Rs32) |= $Rt32",
12489 tc_9bcfb2ee, TypeMAPPING> {
12490 let isPseudo = 1;
12491 let isCodeGenOnly = 1;
12493 def L4_ploadrbf_abs : HInst<
12494 (outs IntRegs:$Rd32),
12495 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12496 "if (!$Pt4) $Rd32 = memb(#$Ii)",
12497 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12498 let Inst{7-5} = 0b100;
12499 let Inst{13-11} = 0b101;
12500 let Inst{31-21} = 0b10011111000;
12501 let isPredicated = 1;
12502 let isPredicatedFalse = 1;
12503 let hasNewValue = 1;
12504 let opNewValue = 0;
12505 let addrMode = Absolute;
12506 let accessSize = ByteAccess;
12507 let mayLoad = 1;
12508 let isExtended = 1;
12509 let BaseOpcode = "L4_loadrb_abs";
12510 let CextOpcode = "L2_loadrb";
12511 let DecoderNamespace = "MustExtend";
12512 let isExtendable = 1;
12513 let opExtendable = 2;
12514 let isExtentSigned = 0;
12515 let opExtentBits = 6;
12516 let opExtentAlign = 0;
12518 def L4_ploadrbf_rr : HInst<
12519 (outs IntRegs:$Rd32),
12520 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12521 "if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12522 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12523 let Inst{31-21} = 0b00110001000;
12524 let isPredicated = 1;
12525 let isPredicatedFalse = 1;
12526 let hasNewValue = 1;
12527 let opNewValue = 0;
12528 let addrMode = BaseRegOffset;
12529 let accessSize = ByteAccess;
12530 let mayLoad = 1;
12531 let BaseOpcode = "L4_loadrb_rr";
12532 let CextOpcode = "L2_loadrb";
12533 let InputType = "reg";
12535 def L4_ploadrbfnew_abs : HInst<
12536 (outs IntRegs:$Rd32),
12537 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12538 "if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12539 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12540 let Inst{7-5} = 0b100;
12541 let Inst{13-11} = 0b111;
12542 let Inst{31-21} = 0b10011111000;
12543 let isPredicated = 1;
12544 let isPredicatedFalse = 1;
12545 let hasNewValue = 1;
12546 let opNewValue = 0;
12547 let addrMode = Absolute;
12548 let accessSize = ByteAccess;
12549 let isPredicatedNew = 1;
12550 let mayLoad = 1;
12551 let isExtended = 1;
12552 let BaseOpcode = "L4_loadrb_abs";
12553 let CextOpcode = "L2_loadrb";
12554 let DecoderNamespace = "MustExtend";
12555 let isExtendable = 1;
12556 let opExtendable = 2;
12557 let isExtentSigned = 0;
12558 let opExtentBits = 6;
12559 let opExtentAlign = 0;
12561 def L4_ploadrbfnew_rr : HInst<
12562 (outs IntRegs:$Rd32),
12563 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12564 "if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12565 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12566 let Inst{31-21} = 0b00110011000;
12567 let isPredicated = 1;
12568 let isPredicatedFalse = 1;
12569 let hasNewValue = 1;
12570 let opNewValue = 0;
12571 let addrMode = BaseRegOffset;
12572 let accessSize = ByteAccess;
12573 let isPredicatedNew = 1;
12574 let mayLoad = 1;
12575 let BaseOpcode = "L4_loadrb_rr";
12576 let CextOpcode = "L2_loadrb";
12577 let InputType = "reg";
12579 def L4_ploadrbt_abs : HInst<
12580 (outs IntRegs:$Rd32),
12581 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12582 "if ($Pt4) $Rd32 = memb(#$Ii)",
12583 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12584 let Inst{7-5} = 0b100;
12585 let Inst{13-11} = 0b100;
12586 let Inst{31-21} = 0b10011111000;
12587 let isPredicated = 1;
12588 let hasNewValue = 1;
12589 let opNewValue = 0;
12590 let addrMode = Absolute;
12591 let accessSize = ByteAccess;
12592 let mayLoad = 1;
12593 let isExtended = 1;
12594 let BaseOpcode = "L4_loadrb_abs";
12595 let CextOpcode = "L2_loadrb";
12596 let DecoderNamespace = "MustExtend";
12597 let isExtendable = 1;
12598 let opExtendable = 2;
12599 let isExtentSigned = 0;
12600 let opExtentBits = 6;
12601 let opExtentAlign = 0;
12603 def L4_ploadrbt_rr : HInst<
12604 (outs IntRegs:$Rd32),
12605 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12606 "if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12607 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12608 let Inst{31-21} = 0b00110000000;
12609 let isPredicated = 1;
12610 let hasNewValue = 1;
12611 let opNewValue = 0;
12612 let addrMode = BaseRegOffset;
12613 let accessSize = ByteAccess;
12614 let mayLoad = 1;
12615 let BaseOpcode = "L4_loadrb_rr";
12616 let CextOpcode = "L2_loadrb";
12617 let InputType = "reg";
12619 def L4_ploadrbtnew_abs : HInst<
12620 (outs IntRegs:$Rd32),
12621 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12622 "if ($Pt4.new) $Rd32 = memb(#$Ii)",
12623 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12624 let Inst{7-5} = 0b100;
12625 let Inst{13-11} = 0b110;
12626 let Inst{31-21} = 0b10011111000;
12627 let isPredicated = 1;
12628 let hasNewValue = 1;
12629 let opNewValue = 0;
12630 let addrMode = Absolute;
12631 let accessSize = ByteAccess;
12632 let isPredicatedNew = 1;
12633 let mayLoad = 1;
12634 let isExtended = 1;
12635 let BaseOpcode = "L4_loadrb_abs";
12636 let CextOpcode = "L2_loadrb";
12637 let DecoderNamespace = "MustExtend";
12638 let isExtendable = 1;
12639 let opExtendable = 2;
12640 let isExtentSigned = 0;
12641 let opExtentBits = 6;
12642 let opExtentAlign = 0;
12644 def L4_ploadrbtnew_rr : HInst<
12645 (outs IntRegs:$Rd32),
12646 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12647 "if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12648 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12649 let Inst{31-21} = 0b00110010000;
12650 let isPredicated = 1;
12651 let hasNewValue = 1;
12652 let opNewValue = 0;
12653 let addrMode = BaseRegOffset;
12654 let accessSize = ByteAccess;
12655 let isPredicatedNew = 1;
12656 let mayLoad = 1;
12657 let BaseOpcode = "L4_loadrb_rr";
12658 let CextOpcode = "L2_loadrb";
12659 let InputType = "reg";
12661 def L4_ploadrdf_abs : HInst<
12662 (outs DoubleRegs:$Rdd32),
12663 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12664 "if (!$Pt4) $Rdd32 = memd(#$Ii)",
12665 tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12666 let Inst{7-5} = 0b100;
12667 let Inst{13-11} = 0b101;
12668 let Inst{31-21} = 0b10011111110;
12669 let isPredicated = 1;
12670 let isPredicatedFalse = 1;
12671 let addrMode = Absolute;
12672 let accessSize = DoubleWordAccess;
12673 let mayLoad = 1;
12674 let isExtended = 1;
12675 let BaseOpcode = "L4_loadrd_abs";
12676 let CextOpcode = "L2_loadrd";
12677 let DecoderNamespace = "MustExtend";
12678 let isExtendable = 1;
12679 let opExtendable = 2;
12680 let isExtentSigned = 0;
12681 let opExtentBits = 6;
12682 let opExtentAlign = 0;
12684 def L4_ploadrdf_rr : HInst<
12685 (outs DoubleRegs:$Rdd32),
12686 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12687 "if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12688 tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12689 let Inst{31-21} = 0b00110001110;
12690 let isPredicated = 1;
12691 let isPredicatedFalse = 1;
12692 let addrMode = BaseRegOffset;
12693 let accessSize = DoubleWordAccess;
12694 let mayLoad = 1;
12695 let BaseOpcode = "L4_loadrd_rr";
12696 let CextOpcode = "L2_loadrd";
12697 let InputType = "reg";
12699 def L4_ploadrdfnew_abs : HInst<
12700 (outs DoubleRegs:$Rdd32),
12701 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12702 "if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12703 tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12704 let Inst{7-5} = 0b100;
12705 let Inst{13-11} = 0b111;
12706 let Inst{31-21} = 0b10011111110;
12707 let isPredicated = 1;
12708 let isPredicatedFalse = 1;
12709 let addrMode = Absolute;
12710 let accessSize = DoubleWordAccess;
12711 let isPredicatedNew = 1;
12712 let mayLoad = 1;
12713 let isExtended = 1;
12714 let BaseOpcode = "L4_loadrd_abs";
12715 let CextOpcode = "L2_loadrd";
12716 let DecoderNamespace = "MustExtend";
12717 let isExtendable = 1;
12718 let opExtendable = 2;
12719 let isExtentSigned = 0;
12720 let opExtentBits = 6;
12721 let opExtentAlign = 0;
12723 def L4_ploadrdfnew_rr : HInst<
12724 (outs DoubleRegs:$Rdd32),
12725 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12726 "if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12727 tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12728 let Inst{31-21} = 0b00110011110;
12729 let isPredicated = 1;
12730 let isPredicatedFalse = 1;
12731 let addrMode = BaseRegOffset;
12732 let accessSize = DoubleWordAccess;
12733 let isPredicatedNew = 1;
12734 let mayLoad = 1;
12735 let BaseOpcode = "L4_loadrd_rr";
12736 let CextOpcode = "L2_loadrd";
12737 let InputType = "reg";
12739 def L4_ploadrdt_abs : HInst<
12740 (outs DoubleRegs:$Rdd32),
12741 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12742 "if ($Pt4) $Rdd32 = memd(#$Ii)",
12743 tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12744 let Inst{7-5} = 0b100;
12745 let Inst{13-11} = 0b100;
12746 let Inst{31-21} = 0b10011111110;
12747 let isPredicated = 1;
12748 let addrMode = Absolute;
12749 let accessSize = DoubleWordAccess;
12750 let mayLoad = 1;
12751 let isExtended = 1;
12752 let BaseOpcode = "L4_loadrd_abs";
12753 let CextOpcode = "L2_loadrd";
12754 let DecoderNamespace = "MustExtend";
12755 let isExtendable = 1;
12756 let opExtendable = 2;
12757 let isExtentSigned = 0;
12758 let opExtentBits = 6;
12759 let opExtentAlign = 0;
12761 def L4_ploadrdt_rr : HInst<
12762 (outs DoubleRegs:$Rdd32),
12763 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12764 "if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12765 tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12766 let Inst{31-21} = 0b00110000110;
12767 let isPredicated = 1;
12768 let addrMode = BaseRegOffset;
12769 let accessSize = DoubleWordAccess;
12770 let mayLoad = 1;
12771 let BaseOpcode = "L4_loadrd_rr";
12772 let CextOpcode = "L2_loadrd";
12773 let InputType = "reg";
12775 def L4_ploadrdtnew_abs : HInst<
12776 (outs DoubleRegs:$Rdd32),
12777 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12778 "if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12779 tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12780 let Inst{7-5} = 0b100;
12781 let Inst{13-11} = 0b110;
12782 let Inst{31-21} = 0b10011111110;
12783 let isPredicated = 1;
12784 let addrMode = Absolute;
12785 let accessSize = DoubleWordAccess;
12786 let isPredicatedNew = 1;
12787 let mayLoad = 1;
12788 let isExtended = 1;
12789 let BaseOpcode = "L4_loadrd_abs";
12790 let CextOpcode = "L2_loadrd";
12791 let DecoderNamespace = "MustExtend";
12792 let isExtendable = 1;
12793 let opExtendable = 2;
12794 let isExtentSigned = 0;
12795 let opExtentBits = 6;
12796 let opExtentAlign = 0;
12798 def L4_ploadrdtnew_rr : HInst<
12799 (outs DoubleRegs:$Rdd32),
12800 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12801 "if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12802 tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12803 let Inst{31-21} = 0b00110010110;
12804 let isPredicated = 1;
12805 let addrMode = BaseRegOffset;
12806 let accessSize = DoubleWordAccess;
12807 let isPredicatedNew = 1;
12808 let mayLoad = 1;
12809 let BaseOpcode = "L4_loadrd_rr";
12810 let CextOpcode = "L2_loadrd";
12811 let InputType = "reg";
12813 def L4_ploadrhf_abs : HInst<
12814 (outs IntRegs:$Rd32),
12815 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12816 "if (!$Pt4) $Rd32 = memh(#$Ii)",
12817 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12818 let Inst{7-5} = 0b100;
12819 let Inst{13-11} = 0b101;
12820 let Inst{31-21} = 0b10011111010;
12821 let isPredicated = 1;
12822 let isPredicatedFalse = 1;
12823 let hasNewValue = 1;
12824 let opNewValue = 0;
12825 let addrMode = Absolute;
12826 let accessSize = HalfWordAccess;
12827 let mayLoad = 1;
12828 let isExtended = 1;
12829 let BaseOpcode = "L4_loadrh_abs";
12830 let CextOpcode = "L2_loadrh";
12831 let DecoderNamespace = "MustExtend";
12832 let isExtendable = 1;
12833 let opExtendable = 2;
12834 let isExtentSigned = 0;
12835 let opExtentBits = 6;
12836 let opExtentAlign = 0;
12838 def L4_ploadrhf_rr : HInst<
12839 (outs IntRegs:$Rd32),
12840 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12841 "if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12842 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12843 let Inst{31-21} = 0b00110001010;
12844 let isPredicated = 1;
12845 let isPredicatedFalse = 1;
12846 let hasNewValue = 1;
12847 let opNewValue = 0;
12848 let addrMode = BaseRegOffset;
12849 let accessSize = HalfWordAccess;
12850 let mayLoad = 1;
12851 let BaseOpcode = "L4_loadrh_rr";
12852 let CextOpcode = "L2_loadrh";
12853 let InputType = "reg";
12855 def L4_ploadrhfnew_abs : HInst<
12856 (outs IntRegs:$Rd32),
12857 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12858 "if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12859 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12860 let Inst{7-5} = 0b100;
12861 let Inst{13-11} = 0b111;
12862 let Inst{31-21} = 0b10011111010;
12863 let isPredicated = 1;
12864 let isPredicatedFalse = 1;
12865 let hasNewValue = 1;
12866 let opNewValue = 0;
12867 let addrMode = Absolute;
12868 let accessSize = HalfWordAccess;
12869 let isPredicatedNew = 1;
12870 let mayLoad = 1;
12871 let isExtended = 1;
12872 let BaseOpcode = "L4_loadrh_abs";
12873 let CextOpcode = "L2_loadrh";
12874 let DecoderNamespace = "MustExtend";
12875 let isExtendable = 1;
12876 let opExtendable = 2;
12877 let isExtentSigned = 0;
12878 let opExtentBits = 6;
12879 let opExtentAlign = 0;
12881 def L4_ploadrhfnew_rr : HInst<
12882 (outs IntRegs:$Rd32),
12883 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12884 "if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12885 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12886 let Inst{31-21} = 0b00110011010;
12887 let isPredicated = 1;
12888 let isPredicatedFalse = 1;
12889 let hasNewValue = 1;
12890 let opNewValue = 0;
12891 let addrMode = BaseRegOffset;
12892 let accessSize = HalfWordAccess;
12893 let isPredicatedNew = 1;
12894 let mayLoad = 1;
12895 let BaseOpcode = "L4_loadrh_rr";
12896 let CextOpcode = "L2_loadrh";
12897 let InputType = "reg";
12899 def L4_ploadrht_abs : HInst<
12900 (outs IntRegs:$Rd32),
12901 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12902 "if ($Pt4) $Rd32 = memh(#$Ii)",
12903 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12904 let Inst{7-5} = 0b100;
12905 let Inst{13-11} = 0b100;
12906 let Inst{31-21} = 0b10011111010;
12907 let isPredicated = 1;
12908 let hasNewValue = 1;
12909 let opNewValue = 0;
12910 let addrMode = Absolute;
12911 let accessSize = HalfWordAccess;
12912 let mayLoad = 1;
12913 let isExtended = 1;
12914 let BaseOpcode = "L4_loadrh_abs";
12915 let CextOpcode = "L2_loadrh";
12916 let DecoderNamespace = "MustExtend";
12917 let isExtendable = 1;
12918 let opExtendable = 2;
12919 let isExtentSigned = 0;
12920 let opExtentBits = 6;
12921 let opExtentAlign = 0;
12923 def L4_ploadrht_rr : HInst<
12924 (outs IntRegs:$Rd32),
12925 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12926 "if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12927 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12928 let Inst{31-21} = 0b00110000010;
12929 let isPredicated = 1;
12930 let hasNewValue = 1;
12931 let opNewValue = 0;
12932 let addrMode = BaseRegOffset;
12933 let accessSize = HalfWordAccess;
12934 let mayLoad = 1;
12935 let BaseOpcode = "L4_loadrh_rr";
12936 let CextOpcode = "L2_loadrh";
12937 let InputType = "reg";
12939 def L4_ploadrhtnew_abs : HInst<
12940 (outs IntRegs:$Rd32),
12941 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12942 "if ($Pt4.new) $Rd32 = memh(#$Ii)",
12943 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12944 let Inst{7-5} = 0b100;
12945 let Inst{13-11} = 0b110;
12946 let Inst{31-21} = 0b10011111010;
12947 let isPredicated = 1;
12948 let hasNewValue = 1;
12949 let opNewValue = 0;
12950 let addrMode = Absolute;
12951 let accessSize = HalfWordAccess;
12952 let isPredicatedNew = 1;
12953 let mayLoad = 1;
12954 let isExtended = 1;
12955 let BaseOpcode = "L4_loadrh_abs";
12956 let CextOpcode = "L2_loadrh";
12957 let DecoderNamespace = "MustExtend";
12958 let isExtendable = 1;
12959 let opExtendable = 2;
12960 let isExtentSigned = 0;
12961 let opExtentBits = 6;
12962 let opExtentAlign = 0;
12964 def L4_ploadrhtnew_rr : HInst<
12965 (outs IntRegs:$Rd32),
12966 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12967 "if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12968 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12969 let Inst{31-21} = 0b00110010010;
12970 let isPredicated = 1;
12971 let hasNewValue = 1;
12972 let opNewValue = 0;
12973 let addrMode = BaseRegOffset;
12974 let accessSize = HalfWordAccess;
12975 let isPredicatedNew = 1;
12976 let mayLoad = 1;
12977 let BaseOpcode = "L4_loadrh_rr";
12978 let CextOpcode = "L2_loadrh";
12979 let InputType = "reg";
12981 def L4_ploadrif_abs : HInst<
12982 (outs IntRegs:$Rd32),
12983 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12984 "if (!$Pt4) $Rd32 = memw(#$Ii)",
12985 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12986 let Inst{7-5} = 0b100;
12987 let Inst{13-11} = 0b101;
12988 let Inst{31-21} = 0b10011111100;
12989 let isPredicated = 1;
12990 let isPredicatedFalse = 1;
12991 let hasNewValue = 1;
12992 let opNewValue = 0;
12993 let addrMode = Absolute;
12994 let accessSize = WordAccess;
12995 let mayLoad = 1;
12996 let isExtended = 1;
12997 let BaseOpcode = "L4_loadri_abs";
12998 let CextOpcode = "L2_loadri";
12999 let DecoderNamespace = "MustExtend";
13000 let isExtendable = 1;
13001 let opExtendable = 2;
13002 let isExtentSigned = 0;
13003 let opExtentBits = 6;
13004 let opExtentAlign = 0;
13006 def L4_ploadrif_rr : HInst<
13007 (outs IntRegs:$Rd32),
13008 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13009 "if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13010 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13011 let Inst{31-21} = 0b00110001100;
13012 let isPredicated = 1;
13013 let isPredicatedFalse = 1;
13014 let hasNewValue = 1;
13015 let opNewValue = 0;
13016 let addrMode = BaseRegOffset;
13017 let accessSize = WordAccess;
13018 let mayLoad = 1;
13019 let BaseOpcode = "L4_loadri_rr";
13020 let CextOpcode = "L2_loadri";
13021 let InputType = "reg";
13023 def L4_ploadrifnew_abs : HInst<
13024 (outs IntRegs:$Rd32),
13025 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13026 "if (!$Pt4.new) $Rd32 = memw(#$Ii)",
13027 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13028 let Inst{7-5} = 0b100;
13029 let Inst{13-11} = 0b111;
13030 let Inst{31-21} = 0b10011111100;
13031 let isPredicated = 1;
13032 let isPredicatedFalse = 1;
13033 let hasNewValue = 1;
13034 let opNewValue = 0;
13035 let addrMode = Absolute;
13036 let accessSize = WordAccess;
13037 let isPredicatedNew = 1;
13038 let mayLoad = 1;
13039 let isExtended = 1;
13040 let BaseOpcode = "L4_loadri_abs";
13041 let CextOpcode = "L2_loadri";
13042 let DecoderNamespace = "MustExtend";
13043 let isExtendable = 1;
13044 let opExtendable = 2;
13045 let isExtentSigned = 0;
13046 let opExtentBits = 6;
13047 let opExtentAlign = 0;
13049 def L4_ploadrifnew_rr : HInst<
13050 (outs IntRegs:$Rd32),
13051 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13052 "if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13053 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13054 let Inst{31-21} = 0b00110011100;
13055 let isPredicated = 1;
13056 let isPredicatedFalse = 1;
13057 let hasNewValue = 1;
13058 let opNewValue = 0;
13059 let addrMode = BaseRegOffset;
13060 let accessSize = WordAccess;
13061 let isPredicatedNew = 1;
13062 let mayLoad = 1;
13063 let BaseOpcode = "L4_loadri_rr";
13064 let CextOpcode = "L2_loadri";
13065 let InputType = "reg";
13067 def L4_ploadrit_abs : HInst<
13068 (outs IntRegs:$Rd32),
13069 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13070 "if ($Pt4) $Rd32 = memw(#$Ii)",
13071 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13072 let Inst{7-5} = 0b100;
13073 let Inst{13-11} = 0b100;
13074 let Inst{31-21} = 0b10011111100;
13075 let isPredicated = 1;
13076 let hasNewValue = 1;
13077 let opNewValue = 0;
13078 let addrMode = Absolute;
13079 let accessSize = WordAccess;
13080 let mayLoad = 1;
13081 let isExtended = 1;
13082 let BaseOpcode = "L4_loadri_abs";
13083 let CextOpcode = "L2_loadri";
13084 let DecoderNamespace = "MustExtend";
13085 let isExtendable = 1;
13086 let opExtendable = 2;
13087 let isExtentSigned = 0;
13088 let opExtentBits = 6;
13089 let opExtentAlign = 0;
13091 def L4_ploadrit_rr : HInst<
13092 (outs IntRegs:$Rd32),
13093 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13094 "if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13095 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13096 let Inst{31-21} = 0b00110000100;
13097 let isPredicated = 1;
13098 let hasNewValue = 1;
13099 let opNewValue = 0;
13100 let addrMode = BaseRegOffset;
13101 let accessSize = WordAccess;
13102 let mayLoad = 1;
13103 let BaseOpcode = "L4_loadri_rr";
13104 let CextOpcode = "L2_loadri";
13105 let InputType = "reg";
13107 def L4_ploadritnew_abs : HInst<
13108 (outs IntRegs:$Rd32),
13109 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13110 "if ($Pt4.new) $Rd32 = memw(#$Ii)",
13111 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13112 let Inst{7-5} = 0b100;
13113 let Inst{13-11} = 0b110;
13114 let Inst{31-21} = 0b10011111100;
13115 let isPredicated = 1;
13116 let hasNewValue = 1;
13117 let opNewValue = 0;
13118 let addrMode = Absolute;
13119 let accessSize = WordAccess;
13120 let isPredicatedNew = 1;
13121 let mayLoad = 1;
13122 let isExtended = 1;
13123 let BaseOpcode = "L4_loadri_abs";
13124 let CextOpcode = "L2_loadri";
13125 let DecoderNamespace = "MustExtend";
13126 let isExtendable = 1;
13127 let opExtendable = 2;
13128 let isExtentSigned = 0;
13129 let opExtentBits = 6;
13130 let opExtentAlign = 0;
13132 def L4_ploadritnew_rr : HInst<
13133 (outs IntRegs:$Rd32),
13134 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13135 "if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13136 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13137 let Inst{31-21} = 0b00110010100;
13138 let isPredicated = 1;
13139 let hasNewValue = 1;
13140 let opNewValue = 0;
13141 let addrMode = BaseRegOffset;
13142 let accessSize = WordAccess;
13143 let isPredicatedNew = 1;
13144 let mayLoad = 1;
13145 let BaseOpcode = "L4_loadri_rr";
13146 let CextOpcode = "L2_loadri";
13147 let InputType = "reg";
13149 def L4_ploadrubf_abs : HInst<
13150 (outs IntRegs:$Rd32),
13151 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13152 "if (!$Pt4) $Rd32 = memub(#$Ii)",
13153 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13154 let Inst{7-5} = 0b100;
13155 let Inst{13-11} = 0b101;
13156 let Inst{31-21} = 0b10011111001;
13157 let isPredicated = 1;
13158 let isPredicatedFalse = 1;
13159 let hasNewValue = 1;
13160 let opNewValue = 0;
13161 let addrMode = Absolute;
13162 let accessSize = ByteAccess;
13163 let mayLoad = 1;
13164 let isExtended = 1;
13165 let BaseOpcode = "L4_loadrub_abs";
13166 let CextOpcode = "L2_loadrub";
13167 let DecoderNamespace = "MustExtend";
13168 let isExtendable = 1;
13169 let opExtendable = 2;
13170 let isExtentSigned = 0;
13171 let opExtentBits = 6;
13172 let opExtentAlign = 0;
13174 def L4_ploadrubf_rr : HInst<
13175 (outs IntRegs:$Rd32),
13176 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13177 "if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13178 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13179 let Inst{31-21} = 0b00110001001;
13180 let isPredicated = 1;
13181 let isPredicatedFalse = 1;
13182 let hasNewValue = 1;
13183 let opNewValue = 0;
13184 let addrMode = BaseRegOffset;
13185 let accessSize = ByteAccess;
13186 let mayLoad = 1;
13187 let BaseOpcode = "L4_loadrub_rr";
13188 let CextOpcode = "L2_loadrub";
13189 let InputType = "reg";
13191 def L4_ploadrubfnew_abs : HInst<
13192 (outs IntRegs:$Rd32),
13193 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13194 "if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13195 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13196 let Inst{7-5} = 0b100;
13197 let Inst{13-11} = 0b111;
13198 let Inst{31-21} = 0b10011111001;
13199 let isPredicated = 1;
13200 let isPredicatedFalse = 1;
13201 let hasNewValue = 1;
13202 let opNewValue = 0;
13203 let addrMode = Absolute;
13204 let accessSize = ByteAccess;
13205 let isPredicatedNew = 1;
13206 let mayLoad = 1;
13207 let isExtended = 1;
13208 let BaseOpcode = "L4_loadrub_abs";
13209 let CextOpcode = "L2_loadrub";
13210 let DecoderNamespace = "MustExtend";
13211 let isExtendable = 1;
13212 let opExtendable = 2;
13213 let isExtentSigned = 0;
13214 let opExtentBits = 6;
13215 let opExtentAlign = 0;
13217 def L4_ploadrubfnew_rr : HInst<
13218 (outs IntRegs:$Rd32),
13219 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13220 "if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13221 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13222 let Inst{31-21} = 0b00110011001;
13223 let isPredicated = 1;
13224 let isPredicatedFalse = 1;
13225 let hasNewValue = 1;
13226 let opNewValue = 0;
13227 let addrMode = BaseRegOffset;
13228 let accessSize = ByteAccess;
13229 let isPredicatedNew = 1;
13230 let mayLoad = 1;
13231 let BaseOpcode = "L4_loadrub_rr";
13232 let CextOpcode = "L2_loadrub";
13233 let InputType = "reg";
13235 def L4_ploadrubt_abs : HInst<
13236 (outs IntRegs:$Rd32),
13237 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13238 "if ($Pt4) $Rd32 = memub(#$Ii)",
13239 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13240 let Inst{7-5} = 0b100;
13241 let Inst{13-11} = 0b100;
13242 let Inst{31-21} = 0b10011111001;
13243 let isPredicated = 1;
13244 let hasNewValue = 1;
13245 let opNewValue = 0;
13246 let addrMode = Absolute;
13247 let accessSize = ByteAccess;
13248 let mayLoad = 1;
13249 let isExtended = 1;
13250 let BaseOpcode = "L4_loadrub_abs";
13251 let CextOpcode = "L2_loadrub";
13252 let DecoderNamespace = "MustExtend";
13253 let isExtendable = 1;
13254 let opExtendable = 2;
13255 let isExtentSigned = 0;
13256 let opExtentBits = 6;
13257 let opExtentAlign = 0;
13259 def L4_ploadrubt_rr : HInst<
13260 (outs IntRegs:$Rd32),
13261 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13262 "if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13263 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13264 let Inst{31-21} = 0b00110000001;
13265 let isPredicated = 1;
13266 let hasNewValue = 1;
13267 let opNewValue = 0;
13268 let addrMode = BaseRegOffset;
13269 let accessSize = ByteAccess;
13270 let mayLoad = 1;
13271 let BaseOpcode = "L4_loadrub_rr";
13272 let CextOpcode = "L2_loadrub";
13273 let InputType = "reg";
13275 def L4_ploadrubtnew_abs : HInst<
13276 (outs IntRegs:$Rd32),
13277 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13278 "if ($Pt4.new) $Rd32 = memub(#$Ii)",
13279 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13280 let Inst{7-5} = 0b100;
13281 let Inst{13-11} = 0b110;
13282 let Inst{31-21} = 0b10011111001;
13283 let isPredicated = 1;
13284 let hasNewValue = 1;
13285 let opNewValue = 0;
13286 let addrMode = Absolute;
13287 let accessSize = ByteAccess;
13288 let isPredicatedNew = 1;
13289 let mayLoad = 1;
13290 let isExtended = 1;
13291 let BaseOpcode = "L4_loadrub_abs";
13292 let CextOpcode = "L2_loadrub";
13293 let DecoderNamespace = "MustExtend";
13294 let isExtendable = 1;
13295 let opExtendable = 2;
13296 let isExtentSigned = 0;
13297 let opExtentBits = 6;
13298 let opExtentAlign = 0;
13300 def L4_ploadrubtnew_rr : HInst<
13301 (outs IntRegs:$Rd32),
13302 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13303 "if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13304 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13305 let Inst{31-21} = 0b00110010001;
13306 let isPredicated = 1;
13307 let hasNewValue = 1;
13308 let opNewValue = 0;
13309 let addrMode = BaseRegOffset;
13310 let accessSize = ByteAccess;
13311 let isPredicatedNew = 1;
13312 let mayLoad = 1;
13313 let BaseOpcode = "L4_loadrub_rr";
13314 let CextOpcode = "L2_loadrub";
13315 let InputType = "reg";
13317 def L4_ploadruhf_abs : HInst<
13318 (outs IntRegs:$Rd32),
13319 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13320 "if (!$Pt4) $Rd32 = memuh(#$Ii)",
13321 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13322 let Inst{7-5} = 0b100;
13323 let Inst{13-11} = 0b101;
13324 let Inst{31-21} = 0b10011111011;
13325 let isPredicated = 1;
13326 let isPredicatedFalse = 1;
13327 let hasNewValue = 1;
13328 let opNewValue = 0;
13329 let addrMode = Absolute;
13330 let accessSize = HalfWordAccess;
13331 let mayLoad = 1;
13332 let isExtended = 1;
13333 let BaseOpcode = "L4_loadruh_abs";
13334 let CextOpcode = "L2_loadruh";
13335 let DecoderNamespace = "MustExtend";
13336 let isExtendable = 1;
13337 let opExtendable = 2;
13338 let isExtentSigned = 0;
13339 let opExtentBits = 6;
13340 let opExtentAlign = 0;
13342 def L4_ploadruhf_rr : HInst<
13343 (outs IntRegs:$Rd32),
13344 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13345 "if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13346 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13347 let Inst{31-21} = 0b00110001011;
13348 let isPredicated = 1;
13349 let isPredicatedFalse = 1;
13350 let hasNewValue = 1;
13351 let opNewValue = 0;
13352 let addrMode = BaseRegOffset;
13353 let accessSize = HalfWordAccess;
13354 let mayLoad = 1;
13355 let BaseOpcode = "L4_loadruh_rr";
13356 let CextOpcode = "L2_loadruh";
13357 let InputType = "reg";
13359 def L4_ploadruhfnew_abs : HInst<
13360 (outs IntRegs:$Rd32),
13361 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13362 "if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13363 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13364 let Inst{7-5} = 0b100;
13365 let Inst{13-11} = 0b111;
13366 let Inst{31-21} = 0b10011111011;
13367 let isPredicated = 1;
13368 let isPredicatedFalse = 1;
13369 let hasNewValue = 1;
13370 let opNewValue = 0;
13371 let addrMode = Absolute;
13372 let accessSize = HalfWordAccess;
13373 let isPredicatedNew = 1;
13374 let mayLoad = 1;
13375 let isExtended = 1;
13376 let BaseOpcode = "L4_loadruh_abs";
13377 let CextOpcode = "L2_loadruh";
13378 let DecoderNamespace = "MustExtend";
13379 let isExtendable = 1;
13380 let opExtendable = 2;
13381 let isExtentSigned = 0;
13382 let opExtentBits = 6;
13383 let opExtentAlign = 0;
13385 def L4_ploadruhfnew_rr : HInst<
13386 (outs IntRegs:$Rd32),
13387 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13388 "if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13389 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13390 let Inst{31-21} = 0b00110011011;
13391 let isPredicated = 1;
13392 let isPredicatedFalse = 1;
13393 let hasNewValue = 1;
13394 let opNewValue = 0;
13395 let addrMode = BaseRegOffset;
13396 let accessSize = HalfWordAccess;
13397 let isPredicatedNew = 1;
13398 let mayLoad = 1;
13399 let BaseOpcode = "L4_loadruh_rr";
13400 let CextOpcode = "L2_loadruh";
13401 let InputType = "reg";
13403 def L4_ploadruht_abs : HInst<
13404 (outs IntRegs:$Rd32),
13405 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13406 "if ($Pt4) $Rd32 = memuh(#$Ii)",
13407 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13408 let Inst{7-5} = 0b100;
13409 let Inst{13-11} = 0b100;
13410 let Inst{31-21} = 0b10011111011;
13411 let isPredicated = 1;
13412 let hasNewValue = 1;
13413 let opNewValue = 0;
13414 let addrMode = Absolute;
13415 let accessSize = HalfWordAccess;
13416 let mayLoad = 1;
13417 let isExtended = 1;
13418 let BaseOpcode = "L4_loadruh_abs";
13419 let CextOpcode = "L2_loadruh";
13420 let DecoderNamespace = "MustExtend";
13421 let isExtendable = 1;
13422 let opExtendable = 2;
13423 let isExtentSigned = 0;
13424 let opExtentBits = 6;
13425 let opExtentAlign = 0;
13427 def L4_ploadruht_rr : HInst<
13428 (outs IntRegs:$Rd32),
13429 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13430 "if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13431 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13432 let Inst{31-21} = 0b00110000011;
13433 let isPredicated = 1;
13434 let hasNewValue = 1;
13435 let opNewValue = 0;
13436 let addrMode = BaseRegOffset;
13437 let accessSize = HalfWordAccess;
13438 let mayLoad = 1;
13439 let BaseOpcode = "L4_loadruh_rr";
13440 let CextOpcode = "L2_loadruh";
13441 let InputType = "reg";
13443 def L4_ploadruhtnew_abs : HInst<
13444 (outs IntRegs:$Rd32),
13445 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13446 "if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13447 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13448 let Inst{7-5} = 0b100;
13449 let Inst{13-11} = 0b110;
13450 let Inst{31-21} = 0b10011111011;
13451 let isPredicated = 1;
13452 let hasNewValue = 1;
13453 let opNewValue = 0;
13454 let addrMode = Absolute;
13455 let accessSize = HalfWordAccess;
13456 let isPredicatedNew = 1;
13457 let mayLoad = 1;
13458 let isExtended = 1;
13459 let BaseOpcode = "L4_loadruh_abs";
13460 let CextOpcode = "L2_loadruh";
13461 let DecoderNamespace = "MustExtend";
13462 let isExtendable = 1;
13463 let opExtendable = 2;
13464 let isExtentSigned = 0;
13465 let opExtentBits = 6;
13466 let opExtentAlign = 0;
13468 def L4_ploadruhtnew_rr : HInst<
13469 (outs IntRegs:$Rd32),
13470 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13471 "if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13472 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13473 let Inst{31-21} = 0b00110010011;
13474 let isPredicated = 1;
13475 let hasNewValue = 1;
13476 let opNewValue = 0;
13477 let addrMode = BaseRegOffset;
13478 let accessSize = HalfWordAccess;
13479 let isPredicatedNew = 1;
13480 let mayLoad = 1;
13481 let BaseOpcode = "L4_loadruh_rr";
13482 let CextOpcode = "L2_loadruh";
13483 let InputType = "reg";
13485 def L4_return : HInst<
13486 (outs DoubleRegs:$Rdd32),
13487 (ins IntRegs:$Rs32),
13488 "$Rdd32 = dealloc_return($Rs32):raw",
13489 tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel {
13490 let Inst{13-5} = 0b000000000;
13491 let Inst{31-21} = 0b10010110000;
13492 let isTerminator = 1;
13493 let isIndirectBranch = 1;
13494 let accessSize = DoubleWordAccess;
13495 let mayLoad = 1;
13496 let cofMax1 = 1;
13497 let isRestrictNoSlot1Store = 1;
13498 let isReturn = 1;
13499 let Uses = [FRAMEKEY];
13500 let Defs = [PC, R29];
13501 let BaseOpcode = "L4_return";
13502 let isBarrier = 1;
13503 let isPredicable = 1;
13504 let isTaken = 1;
13506 def L4_return_f : HInst<
13507 (outs DoubleRegs:$Rdd32),
13508 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13509 "if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13510 tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13511 let Inst{7-5} = 0b000;
13512 let Inst{13-10} = 0b1100;
13513 let Inst{31-21} = 0b10010110000;
13514 let isPredicated = 1;
13515 let isPredicatedFalse = 1;
13516 let isTerminator = 1;
13517 let isIndirectBranch = 1;
13518 let accessSize = DoubleWordAccess;
13519 let mayLoad = 1;
13520 let cofMax1 = 1;
13521 let isRestrictNoSlot1Store = 1;
13522 let isReturn = 1;
13523 let Uses = [FRAMEKEY];
13524 let Defs = [PC, R29];
13525 let BaseOpcode = "L4_return";
13526 let isTaken = Inst{12};
13528 def L4_return_fnew_pnt : HInst<
13529 (outs DoubleRegs:$Rdd32),
13530 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13531 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13532 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13533 let Inst{7-5} = 0b000;
13534 let Inst{13-10} = 0b1010;
13535 let Inst{31-21} = 0b10010110000;
13536 let isPredicated = 1;
13537 let isPredicatedFalse = 1;
13538 let isTerminator = 1;
13539 let isIndirectBranch = 1;
13540 let accessSize = DoubleWordAccess;
13541 let isPredicatedNew = 1;
13542 let mayLoad = 1;
13543 let cofMax1 = 1;
13544 let isRestrictNoSlot1Store = 1;
13545 let isReturn = 1;
13546 let Uses = [FRAMEKEY];
13547 let Defs = [PC, R29];
13548 let BaseOpcode = "L4_return";
13549 let isTaken = Inst{12};
13551 def L4_return_fnew_pt : HInst<
13552 (outs DoubleRegs:$Rdd32),
13553 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13554 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13555 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13556 let Inst{7-5} = 0b000;
13557 let Inst{13-10} = 0b1110;
13558 let Inst{31-21} = 0b10010110000;
13559 let isPredicated = 1;
13560 let isPredicatedFalse = 1;
13561 let isTerminator = 1;
13562 let isIndirectBranch = 1;
13563 let accessSize = DoubleWordAccess;
13564 let isPredicatedNew = 1;
13565 let mayLoad = 1;
13566 let cofMax1 = 1;
13567 let isRestrictNoSlot1Store = 1;
13568 let isReturn = 1;
13569 let Uses = [FRAMEKEY];
13570 let Defs = [PC, R29];
13571 let BaseOpcode = "L4_return";
13572 let isTaken = Inst{12};
13574 def L4_return_map_to_raw_f : HInst<
13575 (outs),
13576 (ins PredRegs:$Pv4),
13577 "if (!$Pv4) dealloc_return",
13578 tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> {
13579 let isPseudo = 1;
13580 let isCodeGenOnly = 1;
13582 def L4_return_map_to_raw_fnew_pnt : HInst<
13583 (outs),
13584 (ins PredRegs:$Pv4),
13585 "if (!$Pv4.new) dealloc_return:nt",
13586 tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13587 let isPseudo = 1;
13588 let isCodeGenOnly = 1;
13590 def L4_return_map_to_raw_fnew_pt : HInst<
13591 (outs),
13592 (ins PredRegs:$Pv4),
13593 "if (!$Pv4.new) dealloc_return:t",
13594 tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13595 let isPseudo = 1;
13596 let isCodeGenOnly = 1;
13598 def L4_return_map_to_raw_t : HInst<
13599 (outs),
13600 (ins PredRegs:$Pv4),
13601 "if ($Pv4) dealloc_return",
13602 tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> {
13603 let isPseudo = 1;
13604 let isCodeGenOnly = 1;
13606 def L4_return_map_to_raw_tnew_pnt : HInst<
13607 (outs),
13608 (ins PredRegs:$Pv4),
13609 "if ($Pv4.new) dealloc_return:nt",
13610 tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13611 let isPseudo = 1;
13612 let isCodeGenOnly = 1;
13614 def L4_return_map_to_raw_tnew_pt : HInst<
13615 (outs),
13616 (ins PredRegs:$Pv4),
13617 "if ($Pv4.new) dealloc_return:t",
13618 tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13619 let isPseudo = 1;
13620 let isCodeGenOnly = 1;
13622 def L4_return_t : HInst<
13623 (outs DoubleRegs:$Rdd32),
13624 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13625 "if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13626 tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13627 let Inst{7-5} = 0b000;
13628 let Inst{13-10} = 0b0100;
13629 let Inst{31-21} = 0b10010110000;
13630 let isPredicated = 1;
13631 let isTerminator = 1;
13632 let isIndirectBranch = 1;
13633 let accessSize = DoubleWordAccess;
13634 let mayLoad = 1;
13635 let cofMax1 = 1;
13636 let isRestrictNoSlot1Store = 1;
13637 let isReturn = 1;
13638 let Uses = [FRAMEKEY];
13639 let Defs = [PC, R29];
13640 let BaseOpcode = "L4_return";
13641 let isTaken = Inst{12};
13643 def L4_return_tnew_pnt : HInst<
13644 (outs DoubleRegs:$Rdd32),
13645 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13646 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13647 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13648 let Inst{7-5} = 0b000;
13649 let Inst{13-10} = 0b0010;
13650 let Inst{31-21} = 0b10010110000;
13651 let isPredicated = 1;
13652 let isTerminator = 1;
13653 let isIndirectBranch = 1;
13654 let accessSize = DoubleWordAccess;
13655 let isPredicatedNew = 1;
13656 let mayLoad = 1;
13657 let cofMax1 = 1;
13658 let isRestrictNoSlot1Store = 1;
13659 let isReturn = 1;
13660 let Uses = [FRAMEKEY];
13661 let Defs = [PC, R29];
13662 let BaseOpcode = "L4_return";
13663 let isTaken = Inst{12};
13665 def L4_return_tnew_pt : HInst<
13666 (outs DoubleRegs:$Rdd32),
13667 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13668 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13669 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13670 let Inst{7-5} = 0b000;
13671 let Inst{13-10} = 0b0110;
13672 let Inst{31-21} = 0b10010110000;
13673 let isPredicated = 1;
13674 let isTerminator = 1;
13675 let isIndirectBranch = 1;
13676 let accessSize = DoubleWordAccess;
13677 let isPredicatedNew = 1;
13678 let mayLoad = 1;
13679 let cofMax1 = 1;
13680 let isRestrictNoSlot1Store = 1;
13681 let isReturn = 1;
13682 let Uses = [FRAMEKEY];
13683 let Defs = [PC, R29];
13684 let BaseOpcode = "L4_return";
13685 let isTaken = Inst{12};
13687 def L4_sub_memopb_io : HInst<
13688 (outs),
13689 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13690 "memb($Rs32+#$Ii) -= $Rt32",
13691 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
13692 let Inst{6-5} = 0b01;
13693 let Inst{13-13} = 0b0;
13694 let Inst{31-21} = 0b00111110000;
13695 let addrMode = BaseImmOffset;
13696 let accessSize = ByteAccess;
13697 let mayLoad = 1;
13698 let isRestrictNoSlot1Store = 1;
13699 let mayStore = 1;
13700 let isExtendable = 1;
13701 let opExtendable = 1;
13702 let isExtentSigned = 0;
13703 let opExtentBits = 6;
13704 let opExtentAlign = 0;
13706 def L4_sub_memopb_zomap : HInst<
13707 (outs),
13708 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13709 "memb($Rs32) -= $Rt32",
13710 tc_9bcfb2ee, TypeMAPPING> {
13711 let isPseudo = 1;
13712 let isCodeGenOnly = 1;
13714 def L4_sub_memoph_io : HInst<
13715 (outs),
13716 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13717 "memh($Rs32+#$Ii) -= $Rt32",
13718 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
13719 let Inst{6-5} = 0b01;
13720 let Inst{13-13} = 0b0;
13721 let Inst{31-21} = 0b00111110001;
13722 let addrMode = BaseImmOffset;
13723 let accessSize = HalfWordAccess;
13724 let mayLoad = 1;
13725 let isRestrictNoSlot1Store = 1;
13726 let mayStore = 1;
13727 let isExtendable = 1;
13728 let opExtendable = 1;
13729 let isExtentSigned = 0;
13730 let opExtentBits = 7;
13731 let opExtentAlign = 1;
13733 def L4_sub_memoph_zomap : HInst<
13734 (outs),
13735 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13736 "memh($Rs32) -= $Rt32",
13737 tc_9bcfb2ee, TypeMAPPING> {
13738 let isPseudo = 1;
13739 let isCodeGenOnly = 1;
13741 def L4_sub_memopw_io : HInst<
13742 (outs),
13743 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13744 "memw($Rs32+#$Ii) -= $Rt32",
13745 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
13746 let Inst{6-5} = 0b01;
13747 let Inst{13-13} = 0b0;
13748 let Inst{31-21} = 0b00111110010;
13749 let addrMode = BaseImmOffset;
13750 let accessSize = WordAccess;
13751 let mayLoad = 1;
13752 let isRestrictNoSlot1Store = 1;
13753 let mayStore = 1;
13754 let isExtendable = 1;
13755 let opExtendable = 1;
13756 let isExtentSigned = 0;
13757 let opExtentBits = 8;
13758 let opExtentAlign = 2;
13760 def L4_sub_memopw_zomap : HInst<
13761 (outs),
13762 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13763 "memw($Rs32) -= $Rt32",
13764 tc_9bcfb2ee, TypeMAPPING> {
13765 let isPseudo = 1;
13766 let isCodeGenOnly = 1;
13768 def L6_deallocframe_map_to_raw : HInst<
13769 (outs),
13770 (ins),
13771 "deallocframe",
13772 tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> {
13773 let isPseudo = 1;
13774 let isCodeGenOnly = 1;
13776 def L6_memcpy : HInst<
13777 (outs),
13778 (ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13779 "memcpy($Rs32,$Rt32,$Mu2)",
13780 tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13781 let Inst{7-0} = 0b01000000;
13782 let Inst{31-21} = 0b10010010000;
13783 let mayLoad = 1;
13784 let isSolo = 1;
13785 let mayStore = 1;
13787 def L6_return_map_to_raw : HInst<
13788 (outs),
13789 (ins),
13790 "dealloc_return",
13791 tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> {
13792 let isPseudo = 1;
13793 let isCodeGenOnly = 1;
13795 def M2_acci : HInst<
13796 (outs IntRegs:$Rx32),
13797 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13798 "$Rx32 += add($Rs32,$Rt32)",
13799 tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel {
13800 let Inst{7-5} = 0b001;
13801 let Inst{13-13} = 0b0;
13802 let Inst{31-21} = 0b11101111000;
13803 let hasNewValue = 1;
13804 let opNewValue = 0;
13805 let prefersSlot3 = 1;
13806 let CextOpcode = "M2_acci";
13807 let InputType = "reg";
13808 let Constraints = "$Rx32 = $Rx32in";
13810 def M2_accii : HInst<
13811 (outs IntRegs:$Rx32),
13812 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13813 "$Rx32 += add($Rs32,#$Ii)",
13814 tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel {
13815 let Inst{13-13} = 0b0;
13816 let Inst{31-21} = 0b11100010000;
13817 let hasNewValue = 1;
13818 let opNewValue = 0;
13819 let prefersSlot3 = 1;
13820 let CextOpcode = "M2_acci";
13821 let InputType = "imm";
13822 let isExtendable = 1;
13823 let opExtendable = 3;
13824 let isExtentSigned = 1;
13825 let opExtentBits = 8;
13826 let opExtentAlign = 0;
13827 let Constraints = "$Rx32 = $Rx32in";
13829 def M2_cmaci_s0 : HInst<
13830 (outs DoubleRegs:$Rxx32),
13831 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13832 "$Rxx32 += cmpyi($Rs32,$Rt32)",
13833 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13834 let Inst{7-5} = 0b001;
13835 let Inst{13-13} = 0b0;
13836 let Inst{31-21} = 0b11100111000;
13837 let prefersSlot3 = 1;
13838 let Constraints = "$Rxx32 = $Rxx32in";
13840 def M2_cmacr_s0 : HInst<
13841 (outs DoubleRegs:$Rxx32),
13842 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13843 "$Rxx32 += cmpyr($Rs32,$Rt32)",
13844 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13845 let Inst{7-5} = 0b010;
13846 let Inst{13-13} = 0b0;
13847 let Inst{31-21} = 0b11100111000;
13848 let prefersSlot3 = 1;
13849 let Constraints = "$Rxx32 = $Rxx32in";
13851 def M2_cmacs_s0 : HInst<
13852 (outs DoubleRegs:$Rxx32),
13853 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13854 "$Rxx32 += cmpy($Rs32,$Rt32):sat",
13855 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13856 let Inst{7-5} = 0b110;
13857 let Inst{13-13} = 0b0;
13858 let Inst{31-21} = 0b11100111000;
13859 let prefersSlot3 = 1;
13860 let Defs = [USR_OVF];
13861 let Constraints = "$Rxx32 = $Rxx32in";
13863 def M2_cmacs_s1 : HInst<
13864 (outs DoubleRegs:$Rxx32),
13865 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13866 "$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13867 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13868 let Inst{7-5} = 0b110;
13869 let Inst{13-13} = 0b0;
13870 let Inst{31-21} = 0b11100111100;
13871 let prefersSlot3 = 1;
13872 let Defs = [USR_OVF];
13873 let Constraints = "$Rxx32 = $Rxx32in";
13875 def M2_cmacsc_s0 : HInst<
13876 (outs DoubleRegs:$Rxx32),
13877 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13878 "$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13879 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13880 let Inst{7-5} = 0b110;
13881 let Inst{13-13} = 0b0;
13882 let Inst{31-21} = 0b11100111010;
13883 let prefersSlot3 = 1;
13884 let Defs = [USR_OVF];
13885 let Constraints = "$Rxx32 = $Rxx32in";
13887 def M2_cmacsc_s1 : HInst<
13888 (outs DoubleRegs:$Rxx32),
13889 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13890 "$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13891 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13892 let Inst{7-5} = 0b110;
13893 let Inst{13-13} = 0b0;
13894 let Inst{31-21} = 0b11100111110;
13895 let prefersSlot3 = 1;
13896 let Defs = [USR_OVF];
13897 let Constraints = "$Rxx32 = $Rxx32in";
13899 def M2_cmpyi_s0 : HInst<
13900 (outs DoubleRegs:$Rdd32),
13901 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13902 "$Rdd32 = cmpyi($Rs32,$Rt32)",
13903 tc_c21d7447, TypeM>, Enc_be32a5 {
13904 let Inst{7-5} = 0b001;
13905 let Inst{13-13} = 0b0;
13906 let Inst{31-21} = 0b11100101000;
13907 let prefersSlot3 = 1;
13909 def M2_cmpyr_s0 : HInst<
13910 (outs DoubleRegs:$Rdd32),
13911 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13912 "$Rdd32 = cmpyr($Rs32,$Rt32)",
13913 tc_c21d7447, TypeM>, Enc_be32a5 {
13914 let Inst{7-5} = 0b010;
13915 let Inst{13-13} = 0b0;
13916 let Inst{31-21} = 0b11100101000;
13917 let prefersSlot3 = 1;
13919 def M2_cmpyrs_s0 : HInst<
13920 (outs IntRegs:$Rd32),
13921 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13922 "$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13923 tc_c21d7447, TypeM>, Enc_5ab2be {
13924 let Inst{7-5} = 0b110;
13925 let Inst{13-13} = 0b0;
13926 let Inst{31-21} = 0b11101101001;
13927 let hasNewValue = 1;
13928 let opNewValue = 0;
13929 let prefersSlot3 = 1;
13930 let Defs = [USR_OVF];
13932 def M2_cmpyrs_s1 : HInst<
13933 (outs IntRegs:$Rd32),
13934 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13935 "$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13936 tc_c21d7447, TypeM>, Enc_5ab2be {
13937 let Inst{7-5} = 0b110;
13938 let Inst{13-13} = 0b0;
13939 let Inst{31-21} = 0b11101101101;
13940 let hasNewValue = 1;
13941 let opNewValue = 0;
13942 let prefersSlot3 = 1;
13943 let Defs = [USR_OVF];
13945 def M2_cmpyrsc_s0 : HInst<
13946 (outs IntRegs:$Rd32),
13947 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13948 "$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13949 tc_c21d7447, TypeM>, Enc_5ab2be {
13950 let Inst{7-5} = 0b110;
13951 let Inst{13-13} = 0b0;
13952 let Inst{31-21} = 0b11101101011;
13953 let hasNewValue = 1;
13954 let opNewValue = 0;
13955 let prefersSlot3 = 1;
13956 let Defs = [USR_OVF];
13958 def M2_cmpyrsc_s1 : HInst<
13959 (outs IntRegs:$Rd32),
13960 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13961 "$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13962 tc_c21d7447, TypeM>, Enc_5ab2be {
13963 let Inst{7-5} = 0b110;
13964 let Inst{13-13} = 0b0;
13965 let Inst{31-21} = 0b11101101111;
13966 let hasNewValue = 1;
13967 let opNewValue = 0;
13968 let prefersSlot3 = 1;
13969 let Defs = [USR_OVF];
13971 def M2_cmpys_s0 : HInst<
13972 (outs DoubleRegs:$Rdd32),
13973 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13974 "$Rdd32 = cmpy($Rs32,$Rt32):sat",
13975 tc_c21d7447, TypeM>, Enc_be32a5 {
13976 let Inst{7-5} = 0b110;
13977 let Inst{13-13} = 0b0;
13978 let Inst{31-21} = 0b11100101000;
13979 let prefersSlot3 = 1;
13980 let Defs = [USR_OVF];
13982 def M2_cmpys_s1 : HInst<
13983 (outs DoubleRegs:$Rdd32),
13984 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13985 "$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
13986 tc_c21d7447, TypeM>, Enc_be32a5 {
13987 let Inst{7-5} = 0b110;
13988 let Inst{13-13} = 0b0;
13989 let Inst{31-21} = 0b11100101100;
13990 let prefersSlot3 = 1;
13991 let Defs = [USR_OVF];
13993 def M2_cmpysc_s0 : HInst<
13994 (outs DoubleRegs:$Rdd32),
13995 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13996 "$Rdd32 = cmpy($Rs32,$Rt32*):sat",
13997 tc_c21d7447, TypeM>, Enc_be32a5 {
13998 let Inst{7-5} = 0b110;
13999 let Inst{13-13} = 0b0;
14000 let Inst{31-21} = 0b11100101010;
14001 let prefersSlot3 = 1;
14002 let Defs = [USR_OVF];
14004 def M2_cmpysc_s1 : HInst<
14005 (outs DoubleRegs:$Rdd32),
14006 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14007 "$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
14008 tc_c21d7447, TypeM>, Enc_be32a5 {
14009 let Inst{7-5} = 0b110;
14010 let Inst{13-13} = 0b0;
14011 let Inst{31-21} = 0b11100101110;
14012 let prefersSlot3 = 1;
14013 let Defs = [USR_OVF];
14015 def M2_cnacs_s0 : HInst<
14016 (outs DoubleRegs:$Rxx32),
14017 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14018 "$Rxx32 -= cmpy($Rs32,$Rt32):sat",
14019 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14020 let Inst{7-5} = 0b111;
14021 let Inst{13-13} = 0b0;
14022 let Inst{31-21} = 0b11100111000;
14023 let prefersSlot3 = 1;
14024 let Defs = [USR_OVF];
14025 let Constraints = "$Rxx32 = $Rxx32in";
14027 def M2_cnacs_s1 : HInst<
14028 (outs DoubleRegs:$Rxx32),
14029 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14030 "$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
14031 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14032 let Inst{7-5} = 0b111;
14033 let Inst{13-13} = 0b0;
14034 let Inst{31-21} = 0b11100111100;
14035 let prefersSlot3 = 1;
14036 let Defs = [USR_OVF];
14037 let Constraints = "$Rxx32 = $Rxx32in";
14039 def M2_cnacsc_s0 : HInst<
14040 (outs DoubleRegs:$Rxx32),
14041 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14042 "$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
14043 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14044 let Inst{7-5} = 0b111;
14045 let Inst{13-13} = 0b0;
14046 let Inst{31-21} = 0b11100111010;
14047 let prefersSlot3 = 1;
14048 let Defs = [USR_OVF];
14049 let Constraints = "$Rxx32 = $Rxx32in";
14051 def M2_cnacsc_s1 : HInst<
14052 (outs DoubleRegs:$Rxx32),
14053 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14054 "$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
14055 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14056 let Inst{7-5} = 0b111;
14057 let Inst{13-13} = 0b0;
14058 let Inst{31-21} = 0b11100111110;
14059 let prefersSlot3 = 1;
14060 let Defs = [USR_OVF];
14061 let Constraints = "$Rxx32 = $Rxx32in";
14063 def M2_dpmpyss_acc_s0 : HInst<
14064 (outs DoubleRegs:$Rxx32),
14065 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14066 "$Rxx32 += mpy($Rs32,$Rt32)",
14067 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14068 let Inst{7-5} = 0b000;
14069 let Inst{13-13} = 0b0;
14070 let Inst{31-21} = 0b11100111000;
14071 let prefersSlot3 = 1;
14072 let Constraints = "$Rxx32 = $Rxx32in";
14074 def M2_dpmpyss_nac_s0 : HInst<
14075 (outs DoubleRegs:$Rxx32),
14076 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14077 "$Rxx32 -= mpy($Rs32,$Rt32)",
14078 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14079 let Inst{7-5} = 0b000;
14080 let Inst{13-13} = 0b0;
14081 let Inst{31-21} = 0b11100111001;
14082 let prefersSlot3 = 1;
14083 let Constraints = "$Rxx32 = $Rxx32in";
14085 def M2_dpmpyss_rnd_s0 : HInst<
14086 (outs IntRegs:$Rd32),
14087 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14088 "$Rd32 = mpy($Rs32,$Rt32):rnd",
14089 tc_c21d7447, TypeM>, Enc_5ab2be {
14090 let Inst{7-5} = 0b001;
14091 let Inst{13-13} = 0b0;
14092 let Inst{31-21} = 0b11101101001;
14093 let hasNewValue = 1;
14094 let opNewValue = 0;
14095 let prefersSlot3 = 1;
14097 def M2_dpmpyss_s0 : HInst<
14098 (outs DoubleRegs:$Rdd32),
14099 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14100 "$Rdd32 = mpy($Rs32,$Rt32)",
14101 tc_c21d7447, TypeM>, Enc_be32a5 {
14102 let Inst{7-5} = 0b000;
14103 let Inst{13-13} = 0b0;
14104 let Inst{31-21} = 0b11100101000;
14105 let prefersSlot3 = 1;
14107 def M2_dpmpyuu_acc_s0 : HInst<
14108 (outs DoubleRegs:$Rxx32),
14109 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14110 "$Rxx32 += mpyu($Rs32,$Rt32)",
14111 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14112 let Inst{7-5} = 0b000;
14113 let Inst{13-13} = 0b0;
14114 let Inst{31-21} = 0b11100111010;
14115 let prefersSlot3 = 1;
14116 let Constraints = "$Rxx32 = $Rxx32in";
14118 def M2_dpmpyuu_nac_s0 : HInst<
14119 (outs DoubleRegs:$Rxx32),
14120 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14121 "$Rxx32 -= mpyu($Rs32,$Rt32)",
14122 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14123 let Inst{7-5} = 0b000;
14124 let Inst{13-13} = 0b0;
14125 let Inst{31-21} = 0b11100111011;
14126 let prefersSlot3 = 1;
14127 let Constraints = "$Rxx32 = $Rxx32in";
14129 def M2_dpmpyuu_s0 : HInst<
14130 (outs DoubleRegs:$Rdd32),
14131 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14132 "$Rdd32 = mpyu($Rs32,$Rt32)",
14133 tc_c21d7447, TypeM>, Enc_be32a5 {
14134 let Inst{7-5} = 0b000;
14135 let Inst{13-13} = 0b0;
14136 let Inst{31-21} = 0b11100101010;
14137 let prefersSlot3 = 1;
14139 def M2_hmmpyh_rs1 : HInst<
14140 (outs IntRegs:$Rd32),
14141 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14142 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14143 tc_c21d7447, TypeM>, Enc_5ab2be {
14144 let Inst{7-5} = 0b100;
14145 let Inst{13-13} = 0b0;
14146 let Inst{31-21} = 0b11101101101;
14147 let hasNewValue = 1;
14148 let opNewValue = 0;
14149 let prefersSlot3 = 1;
14150 let Defs = [USR_OVF];
14152 def M2_hmmpyh_s1 : HInst<
14153 (outs IntRegs:$Rd32),
14154 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14155 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14156 tc_c21d7447, TypeM>, Enc_5ab2be {
14157 let Inst{7-5} = 0b000;
14158 let Inst{13-13} = 0b0;
14159 let Inst{31-21} = 0b11101101101;
14160 let hasNewValue = 1;
14161 let opNewValue = 0;
14162 let prefersSlot3 = 1;
14163 let Defs = [USR_OVF];
14165 def M2_hmmpyl_rs1 : HInst<
14166 (outs IntRegs:$Rd32),
14167 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14168 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14169 tc_c21d7447, TypeM>, Enc_5ab2be {
14170 let Inst{7-5} = 0b100;
14171 let Inst{13-13} = 0b0;
14172 let Inst{31-21} = 0b11101101111;
14173 let hasNewValue = 1;
14174 let opNewValue = 0;
14175 let prefersSlot3 = 1;
14176 let Defs = [USR_OVF];
14178 def M2_hmmpyl_s1 : HInst<
14179 (outs IntRegs:$Rd32),
14180 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14181 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14182 tc_c21d7447, TypeM>, Enc_5ab2be {
14183 let Inst{7-5} = 0b001;
14184 let Inst{13-13} = 0b0;
14185 let Inst{31-21} = 0b11101101101;
14186 let hasNewValue = 1;
14187 let opNewValue = 0;
14188 let prefersSlot3 = 1;
14189 let Defs = [USR_OVF];
14191 def M2_maci : HInst<
14192 (outs IntRegs:$Rx32),
14193 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14194 "$Rx32 += mpyi($Rs32,$Rt32)",
14195 tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel {
14196 let Inst{7-5} = 0b000;
14197 let Inst{13-13} = 0b0;
14198 let Inst{31-21} = 0b11101111000;
14199 let hasNewValue = 1;
14200 let opNewValue = 0;
14201 let prefersSlot3 = 1;
14202 let CextOpcode = "M2_maci";
14203 let InputType = "reg";
14204 let Constraints = "$Rx32 = $Rx32in";
14206 def M2_macsin : HInst<
14207 (outs IntRegs:$Rx32),
14208 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14209 "$Rx32 -= mpyi($Rs32,#$Ii)",
14210 tc_a154b476, TypeM>, Enc_c90aca {
14211 let Inst{13-13} = 0b0;
14212 let Inst{31-21} = 0b11100001100;
14213 let hasNewValue = 1;
14214 let opNewValue = 0;
14215 let prefersSlot3 = 1;
14216 let InputType = "imm";
14217 let isExtendable = 1;
14218 let opExtendable = 3;
14219 let isExtentSigned = 0;
14220 let opExtentBits = 8;
14221 let opExtentAlign = 0;
14222 let Constraints = "$Rx32 = $Rx32in";
14224 def M2_macsip : HInst<
14225 (outs IntRegs:$Rx32),
14226 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14227 "$Rx32 += mpyi($Rs32,#$Ii)",
14228 tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel {
14229 let Inst{13-13} = 0b0;
14230 let Inst{31-21} = 0b11100001000;
14231 let hasNewValue = 1;
14232 let opNewValue = 0;
14233 let prefersSlot3 = 1;
14234 let CextOpcode = "M2_maci";
14235 let InputType = "imm";
14236 let isExtendable = 1;
14237 let opExtendable = 3;
14238 let isExtentSigned = 0;
14239 let opExtentBits = 8;
14240 let opExtentAlign = 0;
14241 let Constraints = "$Rx32 = $Rx32in";
14243 def M2_mmachs_rs0 : HInst<
14244 (outs DoubleRegs:$Rxx32),
14245 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14246 "$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14247 tc_7f8ae742, TypeM>, Enc_88c16c {
14248 let Inst{7-5} = 0b111;
14249 let Inst{13-13} = 0b0;
14250 let Inst{31-21} = 0b11101010001;
14251 let prefersSlot3 = 1;
14252 let Defs = [USR_OVF];
14253 let Constraints = "$Rxx32 = $Rxx32in";
14255 def M2_mmachs_rs1 : HInst<
14256 (outs DoubleRegs:$Rxx32),
14257 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14258 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14259 tc_7f8ae742, TypeM>, Enc_88c16c {
14260 let Inst{7-5} = 0b111;
14261 let Inst{13-13} = 0b0;
14262 let Inst{31-21} = 0b11101010101;
14263 let prefersSlot3 = 1;
14264 let Defs = [USR_OVF];
14265 let Constraints = "$Rxx32 = $Rxx32in";
14267 def M2_mmachs_s0 : HInst<
14268 (outs DoubleRegs:$Rxx32),
14269 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14270 "$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14271 tc_7f8ae742, TypeM>, Enc_88c16c {
14272 let Inst{7-5} = 0b111;
14273 let Inst{13-13} = 0b0;
14274 let Inst{31-21} = 0b11101010000;
14275 let prefersSlot3 = 1;
14276 let Defs = [USR_OVF];
14277 let Constraints = "$Rxx32 = $Rxx32in";
14279 def M2_mmachs_s1 : HInst<
14280 (outs DoubleRegs:$Rxx32),
14281 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14282 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14283 tc_7f8ae742, TypeM>, Enc_88c16c {
14284 let Inst{7-5} = 0b111;
14285 let Inst{13-13} = 0b0;
14286 let Inst{31-21} = 0b11101010100;
14287 let prefersSlot3 = 1;
14288 let Defs = [USR_OVF];
14289 let Constraints = "$Rxx32 = $Rxx32in";
14291 def M2_mmacls_rs0 : HInst<
14292 (outs DoubleRegs:$Rxx32),
14293 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14294 "$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14295 tc_7f8ae742, TypeM>, Enc_88c16c {
14296 let Inst{7-5} = 0b101;
14297 let Inst{13-13} = 0b0;
14298 let Inst{31-21} = 0b11101010001;
14299 let prefersSlot3 = 1;
14300 let Defs = [USR_OVF];
14301 let Constraints = "$Rxx32 = $Rxx32in";
14303 def M2_mmacls_rs1 : HInst<
14304 (outs DoubleRegs:$Rxx32),
14305 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14306 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14307 tc_7f8ae742, TypeM>, Enc_88c16c {
14308 let Inst{7-5} = 0b101;
14309 let Inst{13-13} = 0b0;
14310 let Inst{31-21} = 0b11101010101;
14311 let prefersSlot3 = 1;
14312 let Defs = [USR_OVF];
14313 let Constraints = "$Rxx32 = $Rxx32in";
14315 def M2_mmacls_s0 : HInst<
14316 (outs DoubleRegs:$Rxx32),
14317 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14318 "$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14319 tc_7f8ae742, TypeM>, Enc_88c16c {
14320 let Inst{7-5} = 0b101;
14321 let Inst{13-13} = 0b0;
14322 let Inst{31-21} = 0b11101010000;
14323 let prefersSlot3 = 1;
14324 let Defs = [USR_OVF];
14325 let Constraints = "$Rxx32 = $Rxx32in";
14327 def M2_mmacls_s1 : HInst<
14328 (outs DoubleRegs:$Rxx32),
14329 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14330 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14331 tc_7f8ae742, TypeM>, Enc_88c16c {
14332 let Inst{7-5} = 0b101;
14333 let Inst{13-13} = 0b0;
14334 let Inst{31-21} = 0b11101010100;
14335 let prefersSlot3 = 1;
14336 let Defs = [USR_OVF];
14337 let Constraints = "$Rxx32 = $Rxx32in";
14339 def M2_mmacuhs_rs0 : HInst<
14340 (outs DoubleRegs:$Rxx32),
14341 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14342 "$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14343 tc_7f8ae742, TypeM>, Enc_88c16c {
14344 let Inst{7-5} = 0b111;
14345 let Inst{13-13} = 0b0;
14346 let Inst{31-21} = 0b11101010011;
14347 let prefersSlot3 = 1;
14348 let Defs = [USR_OVF];
14349 let Constraints = "$Rxx32 = $Rxx32in";
14351 def M2_mmacuhs_rs1 : HInst<
14352 (outs DoubleRegs:$Rxx32),
14353 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14354 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14355 tc_7f8ae742, TypeM>, Enc_88c16c {
14356 let Inst{7-5} = 0b111;
14357 let Inst{13-13} = 0b0;
14358 let Inst{31-21} = 0b11101010111;
14359 let prefersSlot3 = 1;
14360 let Defs = [USR_OVF];
14361 let Constraints = "$Rxx32 = $Rxx32in";
14363 def M2_mmacuhs_s0 : HInst<
14364 (outs DoubleRegs:$Rxx32),
14365 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14366 "$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14367 tc_7f8ae742, TypeM>, Enc_88c16c {
14368 let Inst{7-5} = 0b111;
14369 let Inst{13-13} = 0b0;
14370 let Inst{31-21} = 0b11101010010;
14371 let prefersSlot3 = 1;
14372 let Defs = [USR_OVF];
14373 let Constraints = "$Rxx32 = $Rxx32in";
14375 def M2_mmacuhs_s1 : HInst<
14376 (outs DoubleRegs:$Rxx32),
14377 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14378 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14379 tc_7f8ae742, TypeM>, Enc_88c16c {
14380 let Inst{7-5} = 0b111;
14381 let Inst{13-13} = 0b0;
14382 let Inst{31-21} = 0b11101010110;
14383 let prefersSlot3 = 1;
14384 let Defs = [USR_OVF];
14385 let Constraints = "$Rxx32 = $Rxx32in";
14387 def M2_mmaculs_rs0 : HInst<
14388 (outs DoubleRegs:$Rxx32),
14389 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14390 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14391 tc_7f8ae742, TypeM>, Enc_88c16c {
14392 let Inst{7-5} = 0b101;
14393 let Inst{13-13} = 0b0;
14394 let Inst{31-21} = 0b11101010011;
14395 let prefersSlot3 = 1;
14396 let Defs = [USR_OVF];
14397 let Constraints = "$Rxx32 = $Rxx32in";
14399 def M2_mmaculs_rs1 : HInst<
14400 (outs DoubleRegs:$Rxx32),
14401 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14402 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14403 tc_7f8ae742, TypeM>, Enc_88c16c {
14404 let Inst{7-5} = 0b101;
14405 let Inst{13-13} = 0b0;
14406 let Inst{31-21} = 0b11101010111;
14407 let prefersSlot3 = 1;
14408 let Defs = [USR_OVF];
14409 let Constraints = "$Rxx32 = $Rxx32in";
14411 def M2_mmaculs_s0 : HInst<
14412 (outs DoubleRegs:$Rxx32),
14413 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14414 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14415 tc_7f8ae742, TypeM>, Enc_88c16c {
14416 let Inst{7-5} = 0b101;
14417 let Inst{13-13} = 0b0;
14418 let Inst{31-21} = 0b11101010010;
14419 let prefersSlot3 = 1;
14420 let Defs = [USR_OVF];
14421 let Constraints = "$Rxx32 = $Rxx32in";
14423 def M2_mmaculs_s1 : HInst<
14424 (outs DoubleRegs:$Rxx32),
14425 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14426 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14427 tc_7f8ae742, TypeM>, Enc_88c16c {
14428 let Inst{7-5} = 0b101;
14429 let Inst{13-13} = 0b0;
14430 let Inst{31-21} = 0b11101010110;
14431 let prefersSlot3 = 1;
14432 let Defs = [USR_OVF];
14433 let Constraints = "$Rxx32 = $Rxx32in";
14435 def M2_mmpyh_rs0 : HInst<
14436 (outs DoubleRegs:$Rdd32),
14437 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14438 "$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14439 tc_c21d7447, TypeM>, Enc_a56825 {
14440 let Inst{7-5} = 0b111;
14441 let Inst{13-13} = 0b0;
14442 let Inst{31-21} = 0b11101000001;
14443 let prefersSlot3 = 1;
14444 let Defs = [USR_OVF];
14446 def M2_mmpyh_rs1 : HInst<
14447 (outs DoubleRegs:$Rdd32),
14448 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14449 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14450 tc_c21d7447, TypeM>, Enc_a56825 {
14451 let Inst{7-5} = 0b111;
14452 let Inst{13-13} = 0b0;
14453 let Inst{31-21} = 0b11101000101;
14454 let prefersSlot3 = 1;
14455 let Defs = [USR_OVF];
14457 def M2_mmpyh_s0 : HInst<
14458 (outs DoubleRegs:$Rdd32),
14459 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14460 "$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14461 tc_c21d7447, TypeM>, Enc_a56825 {
14462 let Inst{7-5} = 0b111;
14463 let Inst{13-13} = 0b0;
14464 let Inst{31-21} = 0b11101000000;
14465 let prefersSlot3 = 1;
14466 let Defs = [USR_OVF];
14468 def M2_mmpyh_s1 : HInst<
14469 (outs DoubleRegs:$Rdd32),
14470 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14471 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14472 tc_c21d7447, TypeM>, Enc_a56825 {
14473 let Inst{7-5} = 0b111;
14474 let Inst{13-13} = 0b0;
14475 let Inst{31-21} = 0b11101000100;
14476 let prefersSlot3 = 1;
14477 let Defs = [USR_OVF];
14479 def M2_mmpyl_rs0 : HInst<
14480 (outs DoubleRegs:$Rdd32),
14481 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14482 "$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14483 tc_c21d7447, TypeM>, Enc_a56825 {
14484 let Inst{7-5} = 0b101;
14485 let Inst{13-13} = 0b0;
14486 let Inst{31-21} = 0b11101000001;
14487 let prefersSlot3 = 1;
14488 let Defs = [USR_OVF];
14490 def M2_mmpyl_rs1 : HInst<
14491 (outs DoubleRegs:$Rdd32),
14492 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14493 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14494 tc_c21d7447, TypeM>, Enc_a56825 {
14495 let Inst{7-5} = 0b101;
14496 let Inst{13-13} = 0b0;
14497 let Inst{31-21} = 0b11101000101;
14498 let prefersSlot3 = 1;
14499 let Defs = [USR_OVF];
14501 def M2_mmpyl_s0 : HInst<
14502 (outs DoubleRegs:$Rdd32),
14503 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14504 "$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14505 tc_c21d7447, TypeM>, Enc_a56825 {
14506 let Inst{7-5} = 0b101;
14507 let Inst{13-13} = 0b0;
14508 let Inst{31-21} = 0b11101000000;
14509 let prefersSlot3 = 1;
14510 let Defs = [USR_OVF];
14512 def M2_mmpyl_s1 : HInst<
14513 (outs DoubleRegs:$Rdd32),
14514 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14515 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14516 tc_c21d7447, TypeM>, Enc_a56825 {
14517 let Inst{7-5} = 0b101;
14518 let Inst{13-13} = 0b0;
14519 let Inst{31-21} = 0b11101000100;
14520 let prefersSlot3 = 1;
14521 let Defs = [USR_OVF];
14523 def M2_mmpyuh_rs0 : HInst<
14524 (outs DoubleRegs:$Rdd32),
14525 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14526 "$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14527 tc_c21d7447, TypeM>, Enc_a56825 {
14528 let Inst{7-5} = 0b111;
14529 let Inst{13-13} = 0b0;
14530 let Inst{31-21} = 0b11101000011;
14531 let prefersSlot3 = 1;
14532 let Defs = [USR_OVF];
14534 def M2_mmpyuh_rs1 : HInst<
14535 (outs DoubleRegs:$Rdd32),
14536 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14537 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14538 tc_c21d7447, TypeM>, Enc_a56825 {
14539 let Inst{7-5} = 0b111;
14540 let Inst{13-13} = 0b0;
14541 let Inst{31-21} = 0b11101000111;
14542 let prefersSlot3 = 1;
14543 let Defs = [USR_OVF];
14545 def M2_mmpyuh_s0 : HInst<
14546 (outs DoubleRegs:$Rdd32),
14547 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14548 "$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14549 tc_c21d7447, TypeM>, Enc_a56825 {
14550 let Inst{7-5} = 0b111;
14551 let Inst{13-13} = 0b0;
14552 let Inst{31-21} = 0b11101000010;
14553 let prefersSlot3 = 1;
14554 let Defs = [USR_OVF];
14556 def M2_mmpyuh_s1 : HInst<
14557 (outs DoubleRegs:$Rdd32),
14558 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14559 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14560 tc_c21d7447, TypeM>, Enc_a56825 {
14561 let Inst{7-5} = 0b111;
14562 let Inst{13-13} = 0b0;
14563 let Inst{31-21} = 0b11101000110;
14564 let prefersSlot3 = 1;
14565 let Defs = [USR_OVF];
14567 def M2_mmpyul_rs0 : HInst<
14568 (outs DoubleRegs:$Rdd32),
14569 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14570 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14571 tc_c21d7447, TypeM>, Enc_a56825 {
14572 let Inst{7-5} = 0b101;
14573 let Inst{13-13} = 0b0;
14574 let Inst{31-21} = 0b11101000011;
14575 let prefersSlot3 = 1;
14576 let Defs = [USR_OVF];
14578 def M2_mmpyul_rs1 : HInst<
14579 (outs DoubleRegs:$Rdd32),
14580 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14581 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14582 tc_c21d7447, TypeM>, Enc_a56825 {
14583 let Inst{7-5} = 0b101;
14584 let Inst{13-13} = 0b0;
14585 let Inst{31-21} = 0b11101000111;
14586 let prefersSlot3 = 1;
14587 let Defs = [USR_OVF];
14589 def M2_mmpyul_s0 : HInst<
14590 (outs DoubleRegs:$Rdd32),
14591 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14592 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14593 tc_c21d7447, TypeM>, Enc_a56825 {
14594 let Inst{7-5} = 0b101;
14595 let Inst{13-13} = 0b0;
14596 let Inst{31-21} = 0b11101000010;
14597 let prefersSlot3 = 1;
14598 let Defs = [USR_OVF];
14600 def M2_mmpyul_s1 : HInst<
14601 (outs DoubleRegs:$Rdd32),
14602 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14603 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14604 tc_c21d7447, TypeM>, Enc_a56825 {
14605 let Inst{7-5} = 0b101;
14606 let Inst{13-13} = 0b0;
14607 let Inst{31-21} = 0b11101000110;
14608 let prefersSlot3 = 1;
14609 let Defs = [USR_OVF];
14611 def M2_mnaci : HInst<
14612 (outs IntRegs:$Rx32),
14613 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14614 "$Rx32 -= mpyi($Rs32,$Rt32)",
14615 tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14616 let Inst{7-5} = 0b000;
14617 let Inst{13-13} = 0b0;
14618 let Inst{31-21} = 0b11101111100;
14619 let hasNewValue = 1;
14620 let opNewValue = 0;
14621 let prefersSlot3 = 1;
14622 let Constraints = "$Rx32 = $Rx32in";
14624 def M2_mpy_acc_hh_s0 : HInst<
14625 (outs IntRegs:$Rx32),
14626 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14627 "$Rx32 += mpy($Rs32.h,$Rt32.h)",
14628 tc_7f8ae742, TypeM>, Enc_2ae154 {
14629 let Inst{7-5} = 0b011;
14630 let Inst{13-13} = 0b0;
14631 let Inst{31-21} = 0b11101110000;
14632 let hasNewValue = 1;
14633 let opNewValue = 0;
14634 let prefersSlot3 = 1;
14635 let Constraints = "$Rx32 = $Rx32in";
14637 def M2_mpy_acc_hh_s1 : HInst<
14638 (outs IntRegs:$Rx32),
14639 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14640 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14641 tc_7f8ae742, TypeM>, Enc_2ae154 {
14642 let Inst{7-5} = 0b011;
14643 let Inst{13-13} = 0b0;
14644 let Inst{31-21} = 0b11101110100;
14645 let hasNewValue = 1;
14646 let opNewValue = 0;
14647 let prefersSlot3 = 1;
14648 let Constraints = "$Rx32 = $Rx32in";
14650 def M2_mpy_acc_hl_s0 : HInst<
14651 (outs IntRegs:$Rx32),
14652 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14653 "$Rx32 += mpy($Rs32.h,$Rt32.l)",
14654 tc_7f8ae742, TypeM>, Enc_2ae154 {
14655 let Inst{7-5} = 0b010;
14656 let Inst{13-13} = 0b0;
14657 let Inst{31-21} = 0b11101110000;
14658 let hasNewValue = 1;
14659 let opNewValue = 0;
14660 let prefersSlot3 = 1;
14661 let Constraints = "$Rx32 = $Rx32in";
14663 def M2_mpy_acc_hl_s1 : HInst<
14664 (outs IntRegs:$Rx32),
14665 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14666 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14667 tc_7f8ae742, TypeM>, Enc_2ae154 {
14668 let Inst{7-5} = 0b010;
14669 let Inst{13-13} = 0b0;
14670 let Inst{31-21} = 0b11101110100;
14671 let hasNewValue = 1;
14672 let opNewValue = 0;
14673 let prefersSlot3 = 1;
14674 let Constraints = "$Rx32 = $Rx32in";
14676 def M2_mpy_acc_lh_s0 : HInst<
14677 (outs IntRegs:$Rx32),
14678 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14679 "$Rx32 += mpy($Rs32.l,$Rt32.h)",
14680 tc_7f8ae742, TypeM>, Enc_2ae154 {
14681 let Inst{7-5} = 0b001;
14682 let Inst{13-13} = 0b0;
14683 let Inst{31-21} = 0b11101110000;
14684 let hasNewValue = 1;
14685 let opNewValue = 0;
14686 let prefersSlot3 = 1;
14687 let Constraints = "$Rx32 = $Rx32in";
14689 def M2_mpy_acc_lh_s1 : HInst<
14690 (outs IntRegs:$Rx32),
14691 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14692 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14693 tc_7f8ae742, TypeM>, Enc_2ae154 {
14694 let Inst{7-5} = 0b001;
14695 let Inst{13-13} = 0b0;
14696 let Inst{31-21} = 0b11101110100;
14697 let hasNewValue = 1;
14698 let opNewValue = 0;
14699 let prefersSlot3 = 1;
14700 let Constraints = "$Rx32 = $Rx32in";
14702 def M2_mpy_acc_ll_s0 : HInst<
14703 (outs IntRegs:$Rx32),
14704 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14705 "$Rx32 += mpy($Rs32.l,$Rt32.l)",
14706 tc_7f8ae742, TypeM>, Enc_2ae154 {
14707 let Inst{7-5} = 0b000;
14708 let Inst{13-13} = 0b0;
14709 let Inst{31-21} = 0b11101110000;
14710 let hasNewValue = 1;
14711 let opNewValue = 0;
14712 let prefersSlot3 = 1;
14713 let Constraints = "$Rx32 = $Rx32in";
14715 def M2_mpy_acc_ll_s1 : HInst<
14716 (outs IntRegs:$Rx32),
14717 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14718 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14719 tc_7f8ae742, TypeM>, Enc_2ae154 {
14720 let Inst{7-5} = 0b000;
14721 let Inst{13-13} = 0b0;
14722 let Inst{31-21} = 0b11101110100;
14723 let hasNewValue = 1;
14724 let opNewValue = 0;
14725 let prefersSlot3 = 1;
14726 let Constraints = "$Rx32 = $Rx32in";
14728 def M2_mpy_acc_sat_hh_s0 : HInst<
14729 (outs IntRegs:$Rx32),
14730 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14731 "$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14732 tc_7f8ae742, TypeM>, Enc_2ae154 {
14733 let Inst{7-5} = 0b111;
14734 let Inst{13-13} = 0b0;
14735 let Inst{31-21} = 0b11101110000;
14736 let hasNewValue = 1;
14737 let opNewValue = 0;
14738 let prefersSlot3 = 1;
14739 let Defs = [USR_OVF];
14740 let Constraints = "$Rx32 = $Rx32in";
14742 def M2_mpy_acc_sat_hh_s1 : HInst<
14743 (outs IntRegs:$Rx32),
14744 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14745 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14746 tc_7f8ae742, TypeM>, Enc_2ae154 {
14747 let Inst{7-5} = 0b111;
14748 let Inst{13-13} = 0b0;
14749 let Inst{31-21} = 0b11101110100;
14750 let hasNewValue = 1;
14751 let opNewValue = 0;
14752 let prefersSlot3 = 1;
14753 let Defs = [USR_OVF];
14754 let Constraints = "$Rx32 = $Rx32in";
14756 def M2_mpy_acc_sat_hl_s0 : HInst<
14757 (outs IntRegs:$Rx32),
14758 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14759 "$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14760 tc_7f8ae742, TypeM>, Enc_2ae154 {
14761 let Inst{7-5} = 0b110;
14762 let Inst{13-13} = 0b0;
14763 let Inst{31-21} = 0b11101110000;
14764 let hasNewValue = 1;
14765 let opNewValue = 0;
14766 let prefersSlot3 = 1;
14767 let Defs = [USR_OVF];
14768 let Constraints = "$Rx32 = $Rx32in";
14770 def M2_mpy_acc_sat_hl_s1 : HInst<
14771 (outs IntRegs:$Rx32),
14772 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14773 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14774 tc_7f8ae742, TypeM>, Enc_2ae154 {
14775 let Inst{7-5} = 0b110;
14776 let Inst{13-13} = 0b0;
14777 let Inst{31-21} = 0b11101110100;
14778 let hasNewValue = 1;
14779 let opNewValue = 0;
14780 let prefersSlot3 = 1;
14781 let Defs = [USR_OVF];
14782 let Constraints = "$Rx32 = $Rx32in";
14784 def M2_mpy_acc_sat_lh_s0 : HInst<
14785 (outs IntRegs:$Rx32),
14786 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14787 "$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14788 tc_7f8ae742, TypeM>, Enc_2ae154 {
14789 let Inst{7-5} = 0b101;
14790 let Inst{13-13} = 0b0;
14791 let Inst{31-21} = 0b11101110000;
14792 let hasNewValue = 1;
14793 let opNewValue = 0;
14794 let prefersSlot3 = 1;
14795 let Defs = [USR_OVF];
14796 let Constraints = "$Rx32 = $Rx32in";
14798 def M2_mpy_acc_sat_lh_s1 : HInst<
14799 (outs IntRegs:$Rx32),
14800 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14801 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14802 tc_7f8ae742, TypeM>, Enc_2ae154 {
14803 let Inst{7-5} = 0b101;
14804 let Inst{13-13} = 0b0;
14805 let Inst{31-21} = 0b11101110100;
14806 let hasNewValue = 1;
14807 let opNewValue = 0;
14808 let prefersSlot3 = 1;
14809 let Defs = [USR_OVF];
14810 let Constraints = "$Rx32 = $Rx32in";
14812 def M2_mpy_acc_sat_ll_s0 : HInst<
14813 (outs IntRegs:$Rx32),
14814 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14815 "$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14816 tc_7f8ae742, TypeM>, Enc_2ae154 {
14817 let Inst{7-5} = 0b100;
14818 let Inst{13-13} = 0b0;
14819 let Inst{31-21} = 0b11101110000;
14820 let hasNewValue = 1;
14821 let opNewValue = 0;
14822 let prefersSlot3 = 1;
14823 let Defs = [USR_OVF];
14824 let Constraints = "$Rx32 = $Rx32in";
14826 def M2_mpy_acc_sat_ll_s1 : HInst<
14827 (outs IntRegs:$Rx32),
14828 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14829 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14830 tc_7f8ae742, TypeM>, Enc_2ae154 {
14831 let Inst{7-5} = 0b100;
14832 let Inst{13-13} = 0b0;
14833 let Inst{31-21} = 0b11101110100;
14834 let hasNewValue = 1;
14835 let opNewValue = 0;
14836 let prefersSlot3 = 1;
14837 let Defs = [USR_OVF];
14838 let Constraints = "$Rx32 = $Rx32in";
14840 def M2_mpy_hh_s0 : HInst<
14841 (outs IntRegs:$Rd32),
14842 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14843 "$Rd32 = mpy($Rs32.h,$Rt32.h)",
14844 tc_c21d7447, TypeM>, Enc_5ab2be {
14845 let Inst{7-5} = 0b011;
14846 let Inst{13-13} = 0b0;
14847 let Inst{31-21} = 0b11101100000;
14848 let hasNewValue = 1;
14849 let opNewValue = 0;
14850 let prefersSlot3 = 1;
14852 def M2_mpy_hh_s1 : HInst<
14853 (outs IntRegs:$Rd32),
14854 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14855 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14856 tc_c21d7447, TypeM>, Enc_5ab2be {
14857 let Inst{7-5} = 0b011;
14858 let Inst{13-13} = 0b0;
14859 let Inst{31-21} = 0b11101100100;
14860 let hasNewValue = 1;
14861 let opNewValue = 0;
14862 let prefersSlot3 = 1;
14864 def M2_mpy_hl_s0 : HInst<
14865 (outs IntRegs:$Rd32),
14866 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14867 "$Rd32 = mpy($Rs32.h,$Rt32.l)",
14868 tc_c21d7447, TypeM>, Enc_5ab2be {
14869 let Inst{7-5} = 0b010;
14870 let Inst{13-13} = 0b0;
14871 let Inst{31-21} = 0b11101100000;
14872 let hasNewValue = 1;
14873 let opNewValue = 0;
14874 let prefersSlot3 = 1;
14876 def M2_mpy_hl_s1 : HInst<
14877 (outs IntRegs:$Rd32),
14878 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14879 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14880 tc_c21d7447, TypeM>, Enc_5ab2be {
14881 let Inst{7-5} = 0b010;
14882 let Inst{13-13} = 0b0;
14883 let Inst{31-21} = 0b11101100100;
14884 let hasNewValue = 1;
14885 let opNewValue = 0;
14886 let prefersSlot3 = 1;
14888 def M2_mpy_lh_s0 : HInst<
14889 (outs IntRegs:$Rd32),
14890 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14891 "$Rd32 = mpy($Rs32.l,$Rt32.h)",
14892 tc_c21d7447, TypeM>, Enc_5ab2be {
14893 let Inst{7-5} = 0b001;
14894 let Inst{13-13} = 0b0;
14895 let Inst{31-21} = 0b11101100000;
14896 let hasNewValue = 1;
14897 let opNewValue = 0;
14898 let prefersSlot3 = 1;
14900 def M2_mpy_lh_s1 : HInst<
14901 (outs IntRegs:$Rd32),
14902 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14903 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14904 tc_c21d7447, TypeM>, Enc_5ab2be {
14905 let Inst{7-5} = 0b001;
14906 let Inst{13-13} = 0b0;
14907 let Inst{31-21} = 0b11101100100;
14908 let hasNewValue = 1;
14909 let opNewValue = 0;
14910 let prefersSlot3 = 1;
14912 def M2_mpy_ll_s0 : HInst<
14913 (outs IntRegs:$Rd32),
14914 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14915 "$Rd32 = mpy($Rs32.l,$Rt32.l)",
14916 tc_c21d7447, TypeM>, Enc_5ab2be {
14917 let Inst{7-5} = 0b000;
14918 let Inst{13-13} = 0b0;
14919 let Inst{31-21} = 0b11101100000;
14920 let hasNewValue = 1;
14921 let opNewValue = 0;
14922 let prefersSlot3 = 1;
14924 def M2_mpy_ll_s1 : HInst<
14925 (outs IntRegs:$Rd32),
14926 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14927 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14928 tc_c21d7447, TypeM>, Enc_5ab2be {
14929 let Inst{7-5} = 0b000;
14930 let Inst{13-13} = 0b0;
14931 let Inst{31-21} = 0b11101100100;
14932 let hasNewValue = 1;
14933 let opNewValue = 0;
14934 let prefersSlot3 = 1;
14936 def M2_mpy_nac_hh_s0 : HInst<
14937 (outs IntRegs:$Rx32),
14938 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14939 "$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14940 tc_7f8ae742, TypeM>, Enc_2ae154 {
14941 let Inst{7-5} = 0b011;
14942 let Inst{13-13} = 0b0;
14943 let Inst{31-21} = 0b11101110001;
14944 let hasNewValue = 1;
14945 let opNewValue = 0;
14946 let prefersSlot3 = 1;
14947 let Constraints = "$Rx32 = $Rx32in";
14949 def M2_mpy_nac_hh_s1 : HInst<
14950 (outs IntRegs:$Rx32),
14951 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14952 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14953 tc_7f8ae742, TypeM>, Enc_2ae154 {
14954 let Inst{7-5} = 0b011;
14955 let Inst{13-13} = 0b0;
14956 let Inst{31-21} = 0b11101110101;
14957 let hasNewValue = 1;
14958 let opNewValue = 0;
14959 let prefersSlot3 = 1;
14960 let Constraints = "$Rx32 = $Rx32in";
14962 def M2_mpy_nac_hl_s0 : HInst<
14963 (outs IntRegs:$Rx32),
14964 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14965 "$Rx32 -= mpy($Rs32.h,$Rt32.l)",
14966 tc_7f8ae742, TypeM>, Enc_2ae154 {
14967 let Inst{7-5} = 0b010;
14968 let Inst{13-13} = 0b0;
14969 let Inst{31-21} = 0b11101110001;
14970 let hasNewValue = 1;
14971 let opNewValue = 0;
14972 let prefersSlot3 = 1;
14973 let Constraints = "$Rx32 = $Rx32in";
14975 def M2_mpy_nac_hl_s1 : HInst<
14976 (outs IntRegs:$Rx32),
14977 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14978 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
14979 tc_7f8ae742, TypeM>, Enc_2ae154 {
14980 let Inst{7-5} = 0b010;
14981 let Inst{13-13} = 0b0;
14982 let Inst{31-21} = 0b11101110101;
14983 let hasNewValue = 1;
14984 let opNewValue = 0;
14985 let prefersSlot3 = 1;
14986 let Constraints = "$Rx32 = $Rx32in";
14988 def M2_mpy_nac_lh_s0 : HInst<
14989 (outs IntRegs:$Rx32),
14990 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14991 "$Rx32 -= mpy($Rs32.l,$Rt32.h)",
14992 tc_7f8ae742, TypeM>, Enc_2ae154 {
14993 let Inst{7-5} = 0b001;
14994 let Inst{13-13} = 0b0;
14995 let Inst{31-21} = 0b11101110001;
14996 let hasNewValue = 1;
14997 let opNewValue = 0;
14998 let prefersSlot3 = 1;
14999 let Constraints = "$Rx32 = $Rx32in";
15001 def M2_mpy_nac_lh_s1 : HInst<
15002 (outs IntRegs:$Rx32),
15003 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15004 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15005 tc_7f8ae742, TypeM>, Enc_2ae154 {
15006 let Inst{7-5} = 0b001;
15007 let Inst{13-13} = 0b0;
15008 let Inst{31-21} = 0b11101110101;
15009 let hasNewValue = 1;
15010 let opNewValue = 0;
15011 let prefersSlot3 = 1;
15012 let Constraints = "$Rx32 = $Rx32in";
15014 def M2_mpy_nac_ll_s0 : HInst<
15015 (outs IntRegs:$Rx32),
15016 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15017 "$Rx32 -= mpy($Rs32.l,$Rt32.l)",
15018 tc_7f8ae742, TypeM>, Enc_2ae154 {
15019 let Inst{7-5} = 0b000;
15020 let Inst{13-13} = 0b0;
15021 let Inst{31-21} = 0b11101110001;
15022 let hasNewValue = 1;
15023 let opNewValue = 0;
15024 let prefersSlot3 = 1;
15025 let Constraints = "$Rx32 = $Rx32in";
15027 def M2_mpy_nac_ll_s1 : HInst<
15028 (outs IntRegs:$Rx32),
15029 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15030 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15031 tc_7f8ae742, TypeM>, Enc_2ae154 {
15032 let Inst{7-5} = 0b000;
15033 let Inst{13-13} = 0b0;
15034 let Inst{31-21} = 0b11101110101;
15035 let hasNewValue = 1;
15036 let opNewValue = 0;
15037 let prefersSlot3 = 1;
15038 let Constraints = "$Rx32 = $Rx32in";
15040 def M2_mpy_nac_sat_hh_s0 : HInst<
15041 (outs IntRegs:$Rx32),
15042 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15043 "$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
15044 tc_7f8ae742, TypeM>, Enc_2ae154 {
15045 let Inst{7-5} = 0b111;
15046 let Inst{13-13} = 0b0;
15047 let Inst{31-21} = 0b11101110001;
15048 let hasNewValue = 1;
15049 let opNewValue = 0;
15050 let prefersSlot3 = 1;
15051 let Defs = [USR_OVF];
15052 let Constraints = "$Rx32 = $Rx32in";
15054 def M2_mpy_nac_sat_hh_s1 : HInst<
15055 (outs IntRegs:$Rx32),
15056 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15057 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
15058 tc_7f8ae742, TypeM>, Enc_2ae154 {
15059 let Inst{7-5} = 0b111;
15060 let Inst{13-13} = 0b0;
15061 let Inst{31-21} = 0b11101110101;
15062 let hasNewValue = 1;
15063 let opNewValue = 0;
15064 let prefersSlot3 = 1;
15065 let Defs = [USR_OVF];
15066 let Constraints = "$Rx32 = $Rx32in";
15068 def M2_mpy_nac_sat_hl_s0 : HInst<
15069 (outs IntRegs:$Rx32),
15070 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15071 "$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
15072 tc_7f8ae742, TypeM>, Enc_2ae154 {
15073 let Inst{7-5} = 0b110;
15074 let Inst{13-13} = 0b0;
15075 let Inst{31-21} = 0b11101110001;
15076 let hasNewValue = 1;
15077 let opNewValue = 0;
15078 let prefersSlot3 = 1;
15079 let Defs = [USR_OVF];
15080 let Constraints = "$Rx32 = $Rx32in";
15082 def M2_mpy_nac_sat_hl_s1 : HInst<
15083 (outs IntRegs:$Rx32),
15084 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15085 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
15086 tc_7f8ae742, TypeM>, Enc_2ae154 {
15087 let Inst{7-5} = 0b110;
15088 let Inst{13-13} = 0b0;
15089 let Inst{31-21} = 0b11101110101;
15090 let hasNewValue = 1;
15091 let opNewValue = 0;
15092 let prefersSlot3 = 1;
15093 let Defs = [USR_OVF];
15094 let Constraints = "$Rx32 = $Rx32in";
15096 def M2_mpy_nac_sat_lh_s0 : HInst<
15097 (outs IntRegs:$Rx32),
15098 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15099 "$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
15100 tc_7f8ae742, TypeM>, Enc_2ae154 {
15101 let Inst{7-5} = 0b101;
15102 let Inst{13-13} = 0b0;
15103 let Inst{31-21} = 0b11101110001;
15104 let hasNewValue = 1;
15105 let opNewValue = 0;
15106 let prefersSlot3 = 1;
15107 let Defs = [USR_OVF];
15108 let Constraints = "$Rx32 = $Rx32in";
15110 def M2_mpy_nac_sat_lh_s1 : HInst<
15111 (outs IntRegs:$Rx32),
15112 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15113 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
15114 tc_7f8ae742, TypeM>, Enc_2ae154 {
15115 let Inst{7-5} = 0b101;
15116 let Inst{13-13} = 0b0;
15117 let Inst{31-21} = 0b11101110101;
15118 let hasNewValue = 1;
15119 let opNewValue = 0;
15120 let prefersSlot3 = 1;
15121 let Defs = [USR_OVF];
15122 let Constraints = "$Rx32 = $Rx32in";
15124 def M2_mpy_nac_sat_ll_s0 : HInst<
15125 (outs IntRegs:$Rx32),
15126 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15127 "$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
15128 tc_7f8ae742, TypeM>, Enc_2ae154 {
15129 let Inst{7-5} = 0b100;
15130 let Inst{13-13} = 0b0;
15131 let Inst{31-21} = 0b11101110001;
15132 let hasNewValue = 1;
15133 let opNewValue = 0;
15134 let prefersSlot3 = 1;
15135 let Defs = [USR_OVF];
15136 let Constraints = "$Rx32 = $Rx32in";
15138 def M2_mpy_nac_sat_ll_s1 : HInst<
15139 (outs IntRegs:$Rx32),
15140 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15141 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15142 tc_7f8ae742, TypeM>, Enc_2ae154 {
15143 let Inst{7-5} = 0b100;
15144 let Inst{13-13} = 0b0;
15145 let Inst{31-21} = 0b11101110101;
15146 let hasNewValue = 1;
15147 let opNewValue = 0;
15148 let prefersSlot3 = 1;
15149 let Defs = [USR_OVF];
15150 let Constraints = "$Rx32 = $Rx32in";
15152 def M2_mpy_rnd_hh_s0 : HInst<
15153 (outs IntRegs:$Rd32),
15154 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15155 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15156 tc_c21d7447, TypeM>, Enc_5ab2be {
15157 let Inst{7-5} = 0b011;
15158 let Inst{13-13} = 0b0;
15159 let Inst{31-21} = 0b11101100001;
15160 let hasNewValue = 1;
15161 let opNewValue = 0;
15162 let prefersSlot3 = 1;
15164 def M2_mpy_rnd_hh_s1 : HInst<
15165 (outs IntRegs:$Rd32),
15166 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15167 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15168 tc_c21d7447, TypeM>, Enc_5ab2be {
15169 let Inst{7-5} = 0b011;
15170 let Inst{13-13} = 0b0;
15171 let Inst{31-21} = 0b11101100101;
15172 let hasNewValue = 1;
15173 let opNewValue = 0;
15174 let prefersSlot3 = 1;
15176 def M2_mpy_rnd_hl_s0 : HInst<
15177 (outs IntRegs:$Rd32),
15178 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15179 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15180 tc_c21d7447, TypeM>, Enc_5ab2be {
15181 let Inst{7-5} = 0b010;
15182 let Inst{13-13} = 0b0;
15183 let Inst{31-21} = 0b11101100001;
15184 let hasNewValue = 1;
15185 let opNewValue = 0;
15186 let prefersSlot3 = 1;
15188 def M2_mpy_rnd_hl_s1 : HInst<
15189 (outs IntRegs:$Rd32),
15190 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15191 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15192 tc_c21d7447, TypeM>, Enc_5ab2be {
15193 let Inst{7-5} = 0b010;
15194 let Inst{13-13} = 0b0;
15195 let Inst{31-21} = 0b11101100101;
15196 let hasNewValue = 1;
15197 let opNewValue = 0;
15198 let prefersSlot3 = 1;
15200 def M2_mpy_rnd_lh_s0 : HInst<
15201 (outs IntRegs:$Rd32),
15202 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15203 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15204 tc_c21d7447, TypeM>, Enc_5ab2be {
15205 let Inst{7-5} = 0b001;
15206 let Inst{13-13} = 0b0;
15207 let Inst{31-21} = 0b11101100001;
15208 let hasNewValue = 1;
15209 let opNewValue = 0;
15210 let prefersSlot3 = 1;
15212 def M2_mpy_rnd_lh_s1 : HInst<
15213 (outs IntRegs:$Rd32),
15214 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15215 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15216 tc_c21d7447, TypeM>, Enc_5ab2be {
15217 let Inst{7-5} = 0b001;
15218 let Inst{13-13} = 0b0;
15219 let Inst{31-21} = 0b11101100101;
15220 let hasNewValue = 1;
15221 let opNewValue = 0;
15222 let prefersSlot3 = 1;
15224 def M2_mpy_rnd_ll_s0 : HInst<
15225 (outs IntRegs:$Rd32),
15226 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15227 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15228 tc_c21d7447, TypeM>, Enc_5ab2be {
15229 let Inst{7-5} = 0b000;
15230 let Inst{13-13} = 0b0;
15231 let Inst{31-21} = 0b11101100001;
15232 let hasNewValue = 1;
15233 let opNewValue = 0;
15234 let prefersSlot3 = 1;
15236 def M2_mpy_rnd_ll_s1 : HInst<
15237 (outs IntRegs:$Rd32),
15238 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15239 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15240 tc_c21d7447, TypeM>, Enc_5ab2be {
15241 let Inst{7-5} = 0b000;
15242 let Inst{13-13} = 0b0;
15243 let Inst{31-21} = 0b11101100101;
15244 let hasNewValue = 1;
15245 let opNewValue = 0;
15246 let prefersSlot3 = 1;
15248 def M2_mpy_sat_hh_s0 : HInst<
15249 (outs IntRegs:$Rd32),
15250 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15251 "$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15252 tc_c21d7447, TypeM>, Enc_5ab2be {
15253 let Inst{7-5} = 0b111;
15254 let Inst{13-13} = 0b0;
15255 let Inst{31-21} = 0b11101100000;
15256 let hasNewValue = 1;
15257 let opNewValue = 0;
15258 let prefersSlot3 = 1;
15259 let Defs = [USR_OVF];
15261 def M2_mpy_sat_hh_s1 : HInst<
15262 (outs IntRegs:$Rd32),
15263 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15264 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15265 tc_c21d7447, TypeM>, Enc_5ab2be {
15266 let Inst{7-5} = 0b111;
15267 let Inst{13-13} = 0b0;
15268 let Inst{31-21} = 0b11101100100;
15269 let hasNewValue = 1;
15270 let opNewValue = 0;
15271 let prefersSlot3 = 1;
15272 let Defs = [USR_OVF];
15274 def M2_mpy_sat_hl_s0 : HInst<
15275 (outs IntRegs:$Rd32),
15276 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15277 "$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15278 tc_c21d7447, TypeM>, Enc_5ab2be {
15279 let Inst{7-5} = 0b110;
15280 let Inst{13-13} = 0b0;
15281 let Inst{31-21} = 0b11101100000;
15282 let hasNewValue = 1;
15283 let opNewValue = 0;
15284 let prefersSlot3 = 1;
15285 let Defs = [USR_OVF];
15287 def M2_mpy_sat_hl_s1 : HInst<
15288 (outs IntRegs:$Rd32),
15289 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15290 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15291 tc_c21d7447, TypeM>, Enc_5ab2be {
15292 let Inst{7-5} = 0b110;
15293 let Inst{13-13} = 0b0;
15294 let Inst{31-21} = 0b11101100100;
15295 let hasNewValue = 1;
15296 let opNewValue = 0;
15297 let prefersSlot3 = 1;
15298 let Defs = [USR_OVF];
15300 def M2_mpy_sat_lh_s0 : HInst<
15301 (outs IntRegs:$Rd32),
15302 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15303 "$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15304 tc_c21d7447, TypeM>, Enc_5ab2be {
15305 let Inst{7-5} = 0b101;
15306 let Inst{13-13} = 0b0;
15307 let Inst{31-21} = 0b11101100000;
15308 let hasNewValue = 1;
15309 let opNewValue = 0;
15310 let prefersSlot3 = 1;
15311 let Defs = [USR_OVF];
15313 def M2_mpy_sat_lh_s1 : HInst<
15314 (outs IntRegs:$Rd32),
15315 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15316 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15317 tc_c21d7447, TypeM>, Enc_5ab2be {
15318 let Inst{7-5} = 0b101;
15319 let Inst{13-13} = 0b0;
15320 let Inst{31-21} = 0b11101100100;
15321 let hasNewValue = 1;
15322 let opNewValue = 0;
15323 let prefersSlot3 = 1;
15324 let Defs = [USR_OVF];
15326 def M2_mpy_sat_ll_s0 : HInst<
15327 (outs IntRegs:$Rd32),
15328 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15329 "$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15330 tc_c21d7447, TypeM>, Enc_5ab2be {
15331 let Inst{7-5} = 0b100;
15332 let Inst{13-13} = 0b0;
15333 let Inst{31-21} = 0b11101100000;
15334 let hasNewValue = 1;
15335 let opNewValue = 0;
15336 let prefersSlot3 = 1;
15337 let Defs = [USR_OVF];
15339 def M2_mpy_sat_ll_s1 : HInst<
15340 (outs IntRegs:$Rd32),
15341 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15342 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15343 tc_c21d7447, TypeM>, Enc_5ab2be {
15344 let Inst{7-5} = 0b100;
15345 let Inst{13-13} = 0b0;
15346 let Inst{31-21} = 0b11101100100;
15347 let hasNewValue = 1;
15348 let opNewValue = 0;
15349 let prefersSlot3 = 1;
15350 let Defs = [USR_OVF];
15352 def M2_mpy_sat_rnd_hh_s0 : HInst<
15353 (outs IntRegs:$Rd32),
15354 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15355 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15356 tc_c21d7447, TypeM>, Enc_5ab2be {
15357 let Inst{7-5} = 0b111;
15358 let Inst{13-13} = 0b0;
15359 let Inst{31-21} = 0b11101100001;
15360 let hasNewValue = 1;
15361 let opNewValue = 0;
15362 let prefersSlot3 = 1;
15363 let Defs = [USR_OVF];
15365 def M2_mpy_sat_rnd_hh_s1 : HInst<
15366 (outs IntRegs:$Rd32),
15367 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15368 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15369 tc_c21d7447, TypeM>, Enc_5ab2be {
15370 let Inst{7-5} = 0b111;
15371 let Inst{13-13} = 0b0;
15372 let Inst{31-21} = 0b11101100101;
15373 let hasNewValue = 1;
15374 let opNewValue = 0;
15375 let prefersSlot3 = 1;
15376 let Defs = [USR_OVF];
15378 def M2_mpy_sat_rnd_hl_s0 : HInst<
15379 (outs IntRegs:$Rd32),
15380 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15381 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15382 tc_c21d7447, TypeM>, Enc_5ab2be {
15383 let Inst{7-5} = 0b110;
15384 let Inst{13-13} = 0b0;
15385 let Inst{31-21} = 0b11101100001;
15386 let hasNewValue = 1;
15387 let opNewValue = 0;
15388 let prefersSlot3 = 1;
15389 let Defs = [USR_OVF];
15391 def M2_mpy_sat_rnd_hl_s1 : HInst<
15392 (outs IntRegs:$Rd32),
15393 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15394 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15395 tc_c21d7447, TypeM>, Enc_5ab2be {
15396 let Inst{7-5} = 0b110;
15397 let Inst{13-13} = 0b0;
15398 let Inst{31-21} = 0b11101100101;
15399 let hasNewValue = 1;
15400 let opNewValue = 0;
15401 let prefersSlot3 = 1;
15402 let Defs = [USR_OVF];
15404 def M2_mpy_sat_rnd_lh_s0 : HInst<
15405 (outs IntRegs:$Rd32),
15406 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15407 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15408 tc_c21d7447, TypeM>, Enc_5ab2be {
15409 let Inst{7-5} = 0b101;
15410 let Inst{13-13} = 0b0;
15411 let Inst{31-21} = 0b11101100001;
15412 let hasNewValue = 1;
15413 let opNewValue = 0;
15414 let prefersSlot3 = 1;
15415 let Defs = [USR_OVF];
15417 def M2_mpy_sat_rnd_lh_s1 : HInst<
15418 (outs IntRegs:$Rd32),
15419 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15420 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15421 tc_c21d7447, TypeM>, Enc_5ab2be {
15422 let Inst{7-5} = 0b101;
15423 let Inst{13-13} = 0b0;
15424 let Inst{31-21} = 0b11101100101;
15425 let hasNewValue = 1;
15426 let opNewValue = 0;
15427 let prefersSlot3 = 1;
15428 let Defs = [USR_OVF];
15430 def M2_mpy_sat_rnd_ll_s0 : HInst<
15431 (outs IntRegs:$Rd32),
15432 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15433 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15434 tc_c21d7447, TypeM>, Enc_5ab2be {
15435 let Inst{7-5} = 0b100;
15436 let Inst{13-13} = 0b0;
15437 let Inst{31-21} = 0b11101100001;
15438 let hasNewValue = 1;
15439 let opNewValue = 0;
15440 let prefersSlot3 = 1;
15441 let Defs = [USR_OVF];
15443 def M2_mpy_sat_rnd_ll_s1 : HInst<
15444 (outs IntRegs:$Rd32),
15445 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15446 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15447 tc_c21d7447, TypeM>, Enc_5ab2be {
15448 let Inst{7-5} = 0b100;
15449 let Inst{13-13} = 0b0;
15450 let Inst{31-21} = 0b11101100101;
15451 let hasNewValue = 1;
15452 let opNewValue = 0;
15453 let prefersSlot3 = 1;
15454 let Defs = [USR_OVF];
15456 def M2_mpy_up : HInst<
15457 (outs IntRegs:$Rd32),
15458 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15459 "$Rd32 = mpy($Rs32,$Rt32)",
15460 tc_c21d7447, TypeM>, Enc_5ab2be {
15461 let Inst{7-5} = 0b001;
15462 let Inst{13-13} = 0b0;
15463 let Inst{31-21} = 0b11101101000;
15464 let hasNewValue = 1;
15465 let opNewValue = 0;
15466 let prefersSlot3 = 1;
15468 def M2_mpy_up_s1 : HInst<
15469 (outs IntRegs:$Rd32),
15470 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15471 "$Rd32 = mpy($Rs32,$Rt32):<<1",
15472 tc_c21d7447, TypeM>, Enc_5ab2be {
15473 let Inst{7-5} = 0b010;
15474 let Inst{13-13} = 0b0;
15475 let Inst{31-21} = 0b11101101101;
15476 let hasNewValue = 1;
15477 let opNewValue = 0;
15478 let prefersSlot3 = 1;
15480 def M2_mpy_up_s1_sat : HInst<
15481 (outs IntRegs:$Rd32),
15482 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15483 "$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15484 tc_c21d7447, TypeM>, Enc_5ab2be {
15485 let Inst{7-5} = 0b000;
15486 let Inst{13-13} = 0b0;
15487 let Inst{31-21} = 0b11101101111;
15488 let hasNewValue = 1;
15489 let opNewValue = 0;
15490 let prefersSlot3 = 1;
15491 let Defs = [USR_OVF];
15493 def M2_mpyd_acc_hh_s0 : HInst<
15494 (outs DoubleRegs:$Rxx32),
15495 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15496 "$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15497 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15498 let Inst{7-5} = 0b011;
15499 let Inst{13-13} = 0b0;
15500 let Inst{31-21} = 0b11100110000;
15501 let prefersSlot3 = 1;
15502 let Constraints = "$Rxx32 = $Rxx32in";
15504 def M2_mpyd_acc_hh_s1 : HInst<
15505 (outs DoubleRegs:$Rxx32),
15506 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15507 "$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15508 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15509 let Inst{7-5} = 0b011;
15510 let Inst{13-13} = 0b0;
15511 let Inst{31-21} = 0b11100110100;
15512 let prefersSlot3 = 1;
15513 let Constraints = "$Rxx32 = $Rxx32in";
15515 def M2_mpyd_acc_hl_s0 : HInst<
15516 (outs DoubleRegs:$Rxx32),
15517 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15518 "$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15519 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15520 let Inst{7-5} = 0b010;
15521 let Inst{13-13} = 0b0;
15522 let Inst{31-21} = 0b11100110000;
15523 let prefersSlot3 = 1;
15524 let Constraints = "$Rxx32 = $Rxx32in";
15526 def M2_mpyd_acc_hl_s1 : HInst<
15527 (outs DoubleRegs:$Rxx32),
15528 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15529 "$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15530 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15531 let Inst{7-5} = 0b010;
15532 let Inst{13-13} = 0b0;
15533 let Inst{31-21} = 0b11100110100;
15534 let prefersSlot3 = 1;
15535 let Constraints = "$Rxx32 = $Rxx32in";
15537 def M2_mpyd_acc_lh_s0 : HInst<
15538 (outs DoubleRegs:$Rxx32),
15539 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15540 "$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15541 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15542 let Inst{7-5} = 0b001;
15543 let Inst{13-13} = 0b0;
15544 let Inst{31-21} = 0b11100110000;
15545 let prefersSlot3 = 1;
15546 let Constraints = "$Rxx32 = $Rxx32in";
15548 def M2_mpyd_acc_lh_s1 : HInst<
15549 (outs DoubleRegs:$Rxx32),
15550 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15551 "$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15552 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15553 let Inst{7-5} = 0b001;
15554 let Inst{13-13} = 0b0;
15555 let Inst{31-21} = 0b11100110100;
15556 let prefersSlot3 = 1;
15557 let Constraints = "$Rxx32 = $Rxx32in";
15559 def M2_mpyd_acc_ll_s0 : HInst<
15560 (outs DoubleRegs:$Rxx32),
15561 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15562 "$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15563 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15564 let Inst{7-5} = 0b000;
15565 let Inst{13-13} = 0b0;
15566 let Inst{31-21} = 0b11100110000;
15567 let prefersSlot3 = 1;
15568 let Constraints = "$Rxx32 = $Rxx32in";
15570 def M2_mpyd_acc_ll_s1 : HInst<
15571 (outs DoubleRegs:$Rxx32),
15572 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15573 "$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15574 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15575 let Inst{7-5} = 0b000;
15576 let Inst{13-13} = 0b0;
15577 let Inst{31-21} = 0b11100110100;
15578 let prefersSlot3 = 1;
15579 let Constraints = "$Rxx32 = $Rxx32in";
15581 def M2_mpyd_hh_s0 : HInst<
15582 (outs DoubleRegs:$Rdd32),
15583 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15584 "$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15585 tc_c21d7447, TypeM>, Enc_be32a5 {
15586 let Inst{7-5} = 0b011;
15587 let Inst{13-13} = 0b0;
15588 let Inst{31-21} = 0b11100100000;
15589 let prefersSlot3 = 1;
15591 def M2_mpyd_hh_s1 : HInst<
15592 (outs DoubleRegs:$Rdd32),
15593 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15594 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15595 tc_c21d7447, TypeM>, Enc_be32a5 {
15596 let Inst{7-5} = 0b011;
15597 let Inst{13-13} = 0b0;
15598 let Inst{31-21} = 0b11100100100;
15599 let prefersSlot3 = 1;
15601 def M2_mpyd_hl_s0 : HInst<
15602 (outs DoubleRegs:$Rdd32),
15603 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15604 "$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15605 tc_c21d7447, TypeM>, Enc_be32a5 {
15606 let Inst{7-5} = 0b010;
15607 let Inst{13-13} = 0b0;
15608 let Inst{31-21} = 0b11100100000;
15609 let prefersSlot3 = 1;
15611 def M2_mpyd_hl_s1 : HInst<
15612 (outs DoubleRegs:$Rdd32),
15613 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15614 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15615 tc_c21d7447, TypeM>, Enc_be32a5 {
15616 let Inst{7-5} = 0b010;
15617 let Inst{13-13} = 0b0;
15618 let Inst{31-21} = 0b11100100100;
15619 let prefersSlot3 = 1;
15621 def M2_mpyd_lh_s0 : HInst<
15622 (outs DoubleRegs:$Rdd32),
15623 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15624 "$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15625 tc_c21d7447, TypeM>, Enc_be32a5 {
15626 let Inst{7-5} = 0b001;
15627 let Inst{13-13} = 0b0;
15628 let Inst{31-21} = 0b11100100000;
15629 let prefersSlot3 = 1;
15631 def M2_mpyd_lh_s1 : HInst<
15632 (outs DoubleRegs:$Rdd32),
15633 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15634 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15635 tc_c21d7447, TypeM>, Enc_be32a5 {
15636 let Inst{7-5} = 0b001;
15637 let Inst{13-13} = 0b0;
15638 let Inst{31-21} = 0b11100100100;
15639 let prefersSlot3 = 1;
15641 def M2_mpyd_ll_s0 : HInst<
15642 (outs DoubleRegs:$Rdd32),
15643 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15644 "$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15645 tc_c21d7447, TypeM>, Enc_be32a5 {
15646 let Inst{7-5} = 0b000;
15647 let Inst{13-13} = 0b0;
15648 let Inst{31-21} = 0b11100100000;
15649 let prefersSlot3 = 1;
15651 def M2_mpyd_ll_s1 : HInst<
15652 (outs DoubleRegs:$Rdd32),
15653 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15654 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15655 tc_c21d7447, TypeM>, Enc_be32a5 {
15656 let Inst{7-5} = 0b000;
15657 let Inst{13-13} = 0b0;
15658 let Inst{31-21} = 0b11100100100;
15659 let prefersSlot3 = 1;
15661 def M2_mpyd_nac_hh_s0 : HInst<
15662 (outs DoubleRegs:$Rxx32),
15663 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15664 "$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15665 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15666 let Inst{7-5} = 0b011;
15667 let Inst{13-13} = 0b0;
15668 let Inst{31-21} = 0b11100110001;
15669 let prefersSlot3 = 1;
15670 let Constraints = "$Rxx32 = $Rxx32in";
15672 def M2_mpyd_nac_hh_s1 : HInst<
15673 (outs DoubleRegs:$Rxx32),
15674 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15675 "$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15676 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15677 let Inst{7-5} = 0b011;
15678 let Inst{13-13} = 0b0;
15679 let Inst{31-21} = 0b11100110101;
15680 let prefersSlot3 = 1;
15681 let Constraints = "$Rxx32 = $Rxx32in";
15683 def M2_mpyd_nac_hl_s0 : HInst<
15684 (outs DoubleRegs:$Rxx32),
15685 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15686 "$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15687 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15688 let Inst{7-5} = 0b010;
15689 let Inst{13-13} = 0b0;
15690 let Inst{31-21} = 0b11100110001;
15691 let prefersSlot3 = 1;
15692 let Constraints = "$Rxx32 = $Rxx32in";
15694 def M2_mpyd_nac_hl_s1 : HInst<
15695 (outs DoubleRegs:$Rxx32),
15696 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15697 "$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15698 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15699 let Inst{7-5} = 0b010;
15700 let Inst{13-13} = 0b0;
15701 let Inst{31-21} = 0b11100110101;
15702 let prefersSlot3 = 1;
15703 let Constraints = "$Rxx32 = $Rxx32in";
15705 def M2_mpyd_nac_lh_s0 : HInst<
15706 (outs DoubleRegs:$Rxx32),
15707 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15708 "$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15709 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15710 let Inst{7-5} = 0b001;
15711 let Inst{13-13} = 0b0;
15712 let Inst{31-21} = 0b11100110001;
15713 let prefersSlot3 = 1;
15714 let Constraints = "$Rxx32 = $Rxx32in";
15716 def M2_mpyd_nac_lh_s1 : HInst<
15717 (outs DoubleRegs:$Rxx32),
15718 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15719 "$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15720 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15721 let Inst{7-5} = 0b001;
15722 let Inst{13-13} = 0b0;
15723 let Inst{31-21} = 0b11100110101;
15724 let prefersSlot3 = 1;
15725 let Constraints = "$Rxx32 = $Rxx32in";
15727 def M2_mpyd_nac_ll_s0 : HInst<
15728 (outs DoubleRegs:$Rxx32),
15729 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15730 "$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15731 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15732 let Inst{7-5} = 0b000;
15733 let Inst{13-13} = 0b0;
15734 let Inst{31-21} = 0b11100110001;
15735 let prefersSlot3 = 1;
15736 let Constraints = "$Rxx32 = $Rxx32in";
15738 def M2_mpyd_nac_ll_s1 : HInst<
15739 (outs DoubleRegs:$Rxx32),
15740 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15741 "$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15742 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15743 let Inst{7-5} = 0b000;
15744 let Inst{13-13} = 0b0;
15745 let Inst{31-21} = 0b11100110101;
15746 let prefersSlot3 = 1;
15747 let Constraints = "$Rxx32 = $Rxx32in";
15749 def M2_mpyd_rnd_hh_s0 : HInst<
15750 (outs DoubleRegs:$Rdd32),
15751 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15752 "$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15753 tc_c21d7447, TypeM>, Enc_be32a5 {
15754 let Inst{7-5} = 0b011;
15755 let Inst{13-13} = 0b0;
15756 let Inst{31-21} = 0b11100100001;
15757 let prefersSlot3 = 1;
15759 def M2_mpyd_rnd_hh_s1 : HInst<
15760 (outs DoubleRegs:$Rdd32),
15761 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15762 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15763 tc_c21d7447, TypeM>, Enc_be32a5 {
15764 let Inst{7-5} = 0b011;
15765 let Inst{13-13} = 0b0;
15766 let Inst{31-21} = 0b11100100101;
15767 let prefersSlot3 = 1;
15769 def M2_mpyd_rnd_hl_s0 : HInst<
15770 (outs DoubleRegs:$Rdd32),
15771 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15772 "$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15773 tc_c21d7447, TypeM>, Enc_be32a5 {
15774 let Inst{7-5} = 0b010;
15775 let Inst{13-13} = 0b0;
15776 let Inst{31-21} = 0b11100100001;
15777 let prefersSlot3 = 1;
15779 def M2_mpyd_rnd_hl_s1 : HInst<
15780 (outs DoubleRegs:$Rdd32),
15781 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15782 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15783 tc_c21d7447, TypeM>, Enc_be32a5 {
15784 let Inst{7-5} = 0b010;
15785 let Inst{13-13} = 0b0;
15786 let Inst{31-21} = 0b11100100101;
15787 let prefersSlot3 = 1;
15789 def M2_mpyd_rnd_lh_s0 : HInst<
15790 (outs DoubleRegs:$Rdd32),
15791 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15792 "$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15793 tc_c21d7447, TypeM>, Enc_be32a5 {
15794 let Inst{7-5} = 0b001;
15795 let Inst{13-13} = 0b0;
15796 let Inst{31-21} = 0b11100100001;
15797 let prefersSlot3 = 1;
15799 def M2_mpyd_rnd_lh_s1 : HInst<
15800 (outs DoubleRegs:$Rdd32),
15801 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15802 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15803 tc_c21d7447, TypeM>, Enc_be32a5 {
15804 let Inst{7-5} = 0b001;
15805 let Inst{13-13} = 0b0;
15806 let Inst{31-21} = 0b11100100101;
15807 let prefersSlot3 = 1;
15809 def M2_mpyd_rnd_ll_s0 : HInst<
15810 (outs DoubleRegs:$Rdd32),
15811 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15812 "$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15813 tc_c21d7447, TypeM>, Enc_be32a5 {
15814 let Inst{7-5} = 0b000;
15815 let Inst{13-13} = 0b0;
15816 let Inst{31-21} = 0b11100100001;
15817 let prefersSlot3 = 1;
15819 def M2_mpyd_rnd_ll_s1 : HInst<
15820 (outs DoubleRegs:$Rdd32),
15821 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15822 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15823 tc_c21d7447, TypeM>, Enc_be32a5 {
15824 let Inst{7-5} = 0b000;
15825 let Inst{13-13} = 0b0;
15826 let Inst{31-21} = 0b11100100101;
15827 let prefersSlot3 = 1;
15829 def M2_mpyi : HInst<
15830 (outs IntRegs:$Rd32),
15831 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15832 "$Rd32 = mpyi($Rs32,$Rt32)",
15833 tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel {
15834 let Inst{7-5} = 0b000;
15835 let Inst{13-13} = 0b0;
15836 let Inst{31-21} = 0b11101101000;
15837 let hasNewValue = 1;
15838 let opNewValue = 0;
15839 let prefersSlot3 = 1;
15840 let CextOpcode = "M2_mpyi";
15841 let InputType = "reg";
15843 def M2_mpysin : HInst<
15844 (outs IntRegs:$Rd32),
15845 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
15846 "$Rd32 = -mpyi($Rs32,#$Ii)",
15847 tc_38382228, TypeM>, Enc_b8c967 {
15848 let Inst{13-13} = 0b0;
15849 let Inst{31-21} = 0b11100000100;
15850 let hasNewValue = 1;
15851 let opNewValue = 0;
15852 let prefersSlot3 = 1;
15854 def M2_mpysip : HInst<
15855 (outs IntRegs:$Rd32),
15856 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
15857 "$Rd32 = +mpyi($Rs32,#$Ii)",
15858 tc_38382228, TypeM>, Enc_b8c967 {
15859 let Inst{13-13} = 0b0;
15860 let Inst{31-21} = 0b11100000000;
15861 let hasNewValue = 1;
15862 let opNewValue = 0;
15863 let prefersSlot3 = 1;
15864 let isExtendable = 1;
15865 let opExtendable = 2;
15866 let isExtentSigned = 0;
15867 let opExtentBits = 8;
15868 let opExtentAlign = 0;
15870 def M2_mpysmi : HInst<
15871 (outs IntRegs:$Rd32),
15872 (ins IntRegs:$Rs32, m32_0Imm:$Ii),
15873 "$Rd32 = mpyi($Rs32,#$Ii)",
15874 tc_38382228, TypeM>, ImmRegRel {
15875 let hasNewValue = 1;
15876 let opNewValue = 0;
15877 let CextOpcode = "M2_mpyi";
15878 let InputType = "imm";
15879 let isPseudo = 1;
15880 let isExtendable = 1;
15881 let opExtendable = 2;
15882 let isExtentSigned = 1;
15883 let opExtentBits = 9;
15884 let opExtentAlign = 0;
15886 def M2_mpysu_up : HInst<
15887 (outs IntRegs:$Rd32),
15888 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15889 "$Rd32 = mpysu($Rs32,$Rt32)",
15890 tc_c21d7447, TypeM>, Enc_5ab2be {
15891 let Inst{7-5} = 0b001;
15892 let Inst{13-13} = 0b0;
15893 let Inst{31-21} = 0b11101101011;
15894 let hasNewValue = 1;
15895 let opNewValue = 0;
15896 let prefersSlot3 = 1;
15898 def M2_mpyu_acc_hh_s0 : HInst<
15899 (outs IntRegs:$Rx32),
15900 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15901 "$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15902 tc_7f8ae742, TypeM>, Enc_2ae154 {
15903 let Inst{7-5} = 0b011;
15904 let Inst{13-13} = 0b0;
15905 let Inst{31-21} = 0b11101110010;
15906 let hasNewValue = 1;
15907 let opNewValue = 0;
15908 let prefersSlot3 = 1;
15909 let Constraints = "$Rx32 = $Rx32in";
15911 def M2_mpyu_acc_hh_s1 : HInst<
15912 (outs IntRegs:$Rx32),
15913 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15914 "$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15915 tc_7f8ae742, TypeM>, Enc_2ae154 {
15916 let Inst{7-5} = 0b011;
15917 let Inst{13-13} = 0b0;
15918 let Inst{31-21} = 0b11101110110;
15919 let hasNewValue = 1;
15920 let opNewValue = 0;
15921 let prefersSlot3 = 1;
15922 let Constraints = "$Rx32 = $Rx32in";
15924 def M2_mpyu_acc_hl_s0 : HInst<
15925 (outs IntRegs:$Rx32),
15926 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15927 "$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15928 tc_7f8ae742, TypeM>, Enc_2ae154 {
15929 let Inst{7-5} = 0b010;
15930 let Inst{13-13} = 0b0;
15931 let Inst{31-21} = 0b11101110010;
15932 let hasNewValue = 1;
15933 let opNewValue = 0;
15934 let prefersSlot3 = 1;
15935 let Constraints = "$Rx32 = $Rx32in";
15937 def M2_mpyu_acc_hl_s1 : HInst<
15938 (outs IntRegs:$Rx32),
15939 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15940 "$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15941 tc_7f8ae742, TypeM>, Enc_2ae154 {
15942 let Inst{7-5} = 0b010;
15943 let Inst{13-13} = 0b0;
15944 let Inst{31-21} = 0b11101110110;
15945 let hasNewValue = 1;
15946 let opNewValue = 0;
15947 let prefersSlot3 = 1;
15948 let Constraints = "$Rx32 = $Rx32in";
15950 def M2_mpyu_acc_lh_s0 : HInst<
15951 (outs IntRegs:$Rx32),
15952 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15953 "$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15954 tc_7f8ae742, TypeM>, Enc_2ae154 {
15955 let Inst{7-5} = 0b001;
15956 let Inst{13-13} = 0b0;
15957 let Inst{31-21} = 0b11101110010;
15958 let hasNewValue = 1;
15959 let opNewValue = 0;
15960 let prefersSlot3 = 1;
15961 let Constraints = "$Rx32 = $Rx32in";
15963 def M2_mpyu_acc_lh_s1 : HInst<
15964 (outs IntRegs:$Rx32),
15965 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15966 "$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15967 tc_7f8ae742, TypeM>, Enc_2ae154 {
15968 let Inst{7-5} = 0b001;
15969 let Inst{13-13} = 0b0;
15970 let Inst{31-21} = 0b11101110110;
15971 let hasNewValue = 1;
15972 let opNewValue = 0;
15973 let prefersSlot3 = 1;
15974 let Constraints = "$Rx32 = $Rx32in";
15976 def M2_mpyu_acc_ll_s0 : HInst<
15977 (outs IntRegs:$Rx32),
15978 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15979 "$Rx32 += mpyu($Rs32.l,$Rt32.l)",
15980 tc_7f8ae742, TypeM>, Enc_2ae154 {
15981 let Inst{7-5} = 0b000;
15982 let Inst{13-13} = 0b0;
15983 let Inst{31-21} = 0b11101110010;
15984 let hasNewValue = 1;
15985 let opNewValue = 0;
15986 let prefersSlot3 = 1;
15987 let Constraints = "$Rx32 = $Rx32in";
15989 def M2_mpyu_acc_ll_s1 : HInst<
15990 (outs IntRegs:$Rx32),
15991 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15992 "$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15993 tc_7f8ae742, TypeM>, Enc_2ae154 {
15994 let Inst{7-5} = 0b000;
15995 let Inst{13-13} = 0b0;
15996 let Inst{31-21} = 0b11101110110;
15997 let hasNewValue = 1;
15998 let opNewValue = 0;
15999 let prefersSlot3 = 1;
16000 let Constraints = "$Rx32 = $Rx32in";
16002 def M2_mpyu_hh_s0 : HInst<
16003 (outs IntRegs:$Rd32),
16004 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16005 "$Rd32 = mpyu($Rs32.h,$Rt32.h)",
16006 tc_c21d7447, TypeM>, Enc_5ab2be {
16007 let Inst{7-5} = 0b011;
16008 let Inst{13-13} = 0b0;
16009 let Inst{31-21} = 0b11101100010;
16010 let hasNewValue = 1;
16011 let opNewValue = 0;
16012 let prefersSlot3 = 1;
16014 def M2_mpyu_hh_s1 : HInst<
16015 (outs IntRegs:$Rd32),
16016 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16017 "$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16018 tc_c21d7447, TypeM>, Enc_5ab2be {
16019 let Inst{7-5} = 0b011;
16020 let Inst{13-13} = 0b0;
16021 let Inst{31-21} = 0b11101100110;
16022 let hasNewValue = 1;
16023 let opNewValue = 0;
16024 let prefersSlot3 = 1;
16026 def M2_mpyu_hl_s0 : HInst<
16027 (outs IntRegs:$Rd32),
16028 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16029 "$Rd32 = mpyu($Rs32.h,$Rt32.l)",
16030 tc_c21d7447, TypeM>, Enc_5ab2be {
16031 let Inst{7-5} = 0b010;
16032 let Inst{13-13} = 0b0;
16033 let Inst{31-21} = 0b11101100010;
16034 let hasNewValue = 1;
16035 let opNewValue = 0;
16036 let prefersSlot3 = 1;
16038 def M2_mpyu_hl_s1 : HInst<
16039 (outs IntRegs:$Rd32),
16040 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16041 "$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16042 tc_c21d7447, TypeM>, Enc_5ab2be {
16043 let Inst{7-5} = 0b010;
16044 let Inst{13-13} = 0b0;
16045 let Inst{31-21} = 0b11101100110;
16046 let hasNewValue = 1;
16047 let opNewValue = 0;
16048 let prefersSlot3 = 1;
16050 def M2_mpyu_lh_s0 : HInst<
16051 (outs IntRegs:$Rd32),
16052 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16053 "$Rd32 = mpyu($Rs32.l,$Rt32.h)",
16054 tc_c21d7447, TypeM>, Enc_5ab2be {
16055 let Inst{7-5} = 0b001;
16056 let Inst{13-13} = 0b0;
16057 let Inst{31-21} = 0b11101100010;
16058 let hasNewValue = 1;
16059 let opNewValue = 0;
16060 let prefersSlot3 = 1;
16062 def M2_mpyu_lh_s1 : HInst<
16063 (outs IntRegs:$Rd32),
16064 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16065 "$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16066 tc_c21d7447, TypeM>, Enc_5ab2be {
16067 let Inst{7-5} = 0b001;
16068 let Inst{13-13} = 0b0;
16069 let Inst{31-21} = 0b11101100110;
16070 let hasNewValue = 1;
16071 let opNewValue = 0;
16072 let prefersSlot3 = 1;
16074 def M2_mpyu_ll_s0 : HInst<
16075 (outs IntRegs:$Rd32),
16076 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16077 "$Rd32 = mpyu($Rs32.l,$Rt32.l)",
16078 tc_c21d7447, TypeM>, Enc_5ab2be {
16079 let Inst{7-5} = 0b000;
16080 let Inst{13-13} = 0b0;
16081 let Inst{31-21} = 0b11101100010;
16082 let hasNewValue = 1;
16083 let opNewValue = 0;
16084 let prefersSlot3 = 1;
16086 def M2_mpyu_ll_s1 : HInst<
16087 (outs IntRegs:$Rd32),
16088 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16089 "$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16090 tc_c21d7447, TypeM>, Enc_5ab2be {
16091 let Inst{7-5} = 0b000;
16092 let Inst{13-13} = 0b0;
16093 let Inst{31-21} = 0b11101100110;
16094 let hasNewValue = 1;
16095 let opNewValue = 0;
16096 let prefersSlot3 = 1;
16098 def M2_mpyu_nac_hh_s0 : HInst<
16099 (outs IntRegs:$Rx32),
16100 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16101 "$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
16102 tc_7f8ae742, TypeM>, Enc_2ae154 {
16103 let Inst{7-5} = 0b011;
16104 let Inst{13-13} = 0b0;
16105 let Inst{31-21} = 0b11101110011;
16106 let hasNewValue = 1;
16107 let opNewValue = 0;
16108 let prefersSlot3 = 1;
16109 let Constraints = "$Rx32 = $Rx32in";
16111 def M2_mpyu_nac_hh_s1 : HInst<
16112 (outs IntRegs:$Rx32),
16113 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16114 "$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16115 tc_7f8ae742, TypeM>, Enc_2ae154 {
16116 let Inst{7-5} = 0b011;
16117 let Inst{13-13} = 0b0;
16118 let Inst{31-21} = 0b11101110111;
16119 let hasNewValue = 1;
16120 let opNewValue = 0;
16121 let prefersSlot3 = 1;
16122 let Constraints = "$Rx32 = $Rx32in";
16124 def M2_mpyu_nac_hl_s0 : HInst<
16125 (outs IntRegs:$Rx32),
16126 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16127 "$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
16128 tc_7f8ae742, TypeM>, Enc_2ae154 {
16129 let Inst{7-5} = 0b010;
16130 let Inst{13-13} = 0b0;
16131 let Inst{31-21} = 0b11101110011;
16132 let hasNewValue = 1;
16133 let opNewValue = 0;
16134 let prefersSlot3 = 1;
16135 let Constraints = "$Rx32 = $Rx32in";
16137 def M2_mpyu_nac_hl_s1 : HInst<
16138 (outs IntRegs:$Rx32),
16139 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16140 "$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16141 tc_7f8ae742, TypeM>, Enc_2ae154 {
16142 let Inst{7-5} = 0b010;
16143 let Inst{13-13} = 0b0;
16144 let Inst{31-21} = 0b11101110111;
16145 let hasNewValue = 1;
16146 let opNewValue = 0;
16147 let prefersSlot3 = 1;
16148 let Constraints = "$Rx32 = $Rx32in";
16150 def M2_mpyu_nac_lh_s0 : HInst<
16151 (outs IntRegs:$Rx32),
16152 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16153 "$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16154 tc_7f8ae742, TypeM>, Enc_2ae154 {
16155 let Inst{7-5} = 0b001;
16156 let Inst{13-13} = 0b0;
16157 let Inst{31-21} = 0b11101110011;
16158 let hasNewValue = 1;
16159 let opNewValue = 0;
16160 let prefersSlot3 = 1;
16161 let Constraints = "$Rx32 = $Rx32in";
16163 def M2_mpyu_nac_lh_s1 : HInst<
16164 (outs IntRegs:$Rx32),
16165 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16166 "$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16167 tc_7f8ae742, TypeM>, Enc_2ae154 {
16168 let Inst{7-5} = 0b001;
16169 let Inst{13-13} = 0b0;
16170 let Inst{31-21} = 0b11101110111;
16171 let hasNewValue = 1;
16172 let opNewValue = 0;
16173 let prefersSlot3 = 1;
16174 let Constraints = "$Rx32 = $Rx32in";
16176 def M2_mpyu_nac_ll_s0 : HInst<
16177 (outs IntRegs:$Rx32),
16178 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16179 "$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16180 tc_7f8ae742, TypeM>, Enc_2ae154 {
16181 let Inst{7-5} = 0b000;
16182 let Inst{13-13} = 0b0;
16183 let Inst{31-21} = 0b11101110011;
16184 let hasNewValue = 1;
16185 let opNewValue = 0;
16186 let prefersSlot3 = 1;
16187 let Constraints = "$Rx32 = $Rx32in";
16189 def M2_mpyu_nac_ll_s1 : HInst<
16190 (outs IntRegs:$Rx32),
16191 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16192 "$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16193 tc_7f8ae742, TypeM>, Enc_2ae154 {
16194 let Inst{7-5} = 0b000;
16195 let Inst{13-13} = 0b0;
16196 let Inst{31-21} = 0b11101110111;
16197 let hasNewValue = 1;
16198 let opNewValue = 0;
16199 let prefersSlot3 = 1;
16200 let Constraints = "$Rx32 = $Rx32in";
16202 def M2_mpyu_up : HInst<
16203 (outs IntRegs:$Rd32),
16204 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16205 "$Rd32 = mpyu($Rs32,$Rt32)",
16206 tc_c21d7447, TypeM>, Enc_5ab2be {
16207 let Inst{7-5} = 0b001;
16208 let Inst{13-13} = 0b0;
16209 let Inst{31-21} = 0b11101101010;
16210 let hasNewValue = 1;
16211 let opNewValue = 0;
16212 let prefersSlot3 = 1;
16214 def M2_mpyud_acc_hh_s0 : HInst<
16215 (outs DoubleRegs:$Rxx32),
16216 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16217 "$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16218 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16219 let Inst{7-5} = 0b011;
16220 let Inst{13-13} = 0b0;
16221 let Inst{31-21} = 0b11100110010;
16222 let prefersSlot3 = 1;
16223 let Constraints = "$Rxx32 = $Rxx32in";
16225 def M2_mpyud_acc_hh_s1 : HInst<
16226 (outs DoubleRegs:$Rxx32),
16227 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16228 "$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16229 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16230 let Inst{7-5} = 0b011;
16231 let Inst{13-13} = 0b0;
16232 let Inst{31-21} = 0b11100110110;
16233 let prefersSlot3 = 1;
16234 let Constraints = "$Rxx32 = $Rxx32in";
16236 def M2_mpyud_acc_hl_s0 : HInst<
16237 (outs DoubleRegs:$Rxx32),
16238 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16239 "$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16240 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16241 let Inst{7-5} = 0b010;
16242 let Inst{13-13} = 0b0;
16243 let Inst{31-21} = 0b11100110010;
16244 let prefersSlot3 = 1;
16245 let Constraints = "$Rxx32 = $Rxx32in";
16247 def M2_mpyud_acc_hl_s1 : HInst<
16248 (outs DoubleRegs:$Rxx32),
16249 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16250 "$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16251 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16252 let Inst{7-5} = 0b010;
16253 let Inst{13-13} = 0b0;
16254 let Inst{31-21} = 0b11100110110;
16255 let prefersSlot3 = 1;
16256 let Constraints = "$Rxx32 = $Rxx32in";
16258 def M2_mpyud_acc_lh_s0 : HInst<
16259 (outs DoubleRegs:$Rxx32),
16260 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16261 "$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16262 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16263 let Inst{7-5} = 0b001;
16264 let Inst{13-13} = 0b0;
16265 let Inst{31-21} = 0b11100110010;
16266 let prefersSlot3 = 1;
16267 let Constraints = "$Rxx32 = $Rxx32in";
16269 def M2_mpyud_acc_lh_s1 : HInst<
16270 (outs DoubleRegs:$Rxx32),
16271 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16272 "$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16273 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16274 let Inst{7-5} = 0b001;
16275 let Inst{13-13} = 0b0;
16276 let Inst{31-21} = 0b11100110110;
16277 let prefersSlot3 = 1;
16278 let Constraints = "$Rxx32 = $Rxx32in";
16280 def M2_mpyud_acc_ll_s0 : HInst<
16281 (outs DoubleRegs:$Rxx32),
16282 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16283 "$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16284 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16285 let Inst{7-5} = 0b000;
16286 let Inst{13-13} = 0b0;
16287 let Inst{31-21} = 0b11100110010;
16288 let prefersSlot3 = 1;
16289 let Constraints = "$Rxx32 = $Rxx32in";
16291 def M2_mpyud_acc_ll_s1 : HInst<
16292 (outs DoubleRegs:$Rxx32),
16293 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16294 "$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16295 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16296 let Inst{7-5} = 0b000;
16297 let Inst{13-13} = 0b0;
16298 let Inst{31-21} = 0b11100110110;
16299 let prefersSlot3 = 1;
16300 let Constraints = "$Rxx32 = $Rxx32in";
16302 def M2_mpyud_hh_s0 : HInst<
16303 (outs DoubleRegs:$Rdd32),
16304 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16305 "$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16306 tc_c21d7447, TypeM>, Enc_be32a5 {
16307 let Inst{7-5} = 0b011;
16308 let Inst{13-13} = 0b0;
16309 let Inst{31-21} = 0b11100100010;
16310 let prefersSlot3 = 1;
16312 def M2_mpyud_hh_s1 : HInst<
16313 (outs DoubleRegs:$Rdd32),
16314 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16315 "$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16316 tc_c21d7447, TypeM>, Enc_be32a5 {
16317 let Inst{7-5} = 0b011;
16318 let Inst{13-13} = 0b0;
16319 let Inst{31-21} = 0b11100100110;
16320 let prefersSlot3 = 1;
16322 def M2_mpyud_hl_s0 : HInst<
16323 (outs DoubleRegs:$Rdd32),
16324 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16325 "$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16326 tc_c21d7447, TypeM>, Enc_be32a5 {
16327 let Inst{7-5} = 0b010;
16328 let Inst{13-13} = 0b0;
16329 let Inst{31-21} = 0b11100100010;
16330 let prefersSlot3 = 1;
16332 def M2_mpyud_hl_s1 : HInst<
16333 (outs DoubleRegs:$Rdd32),
16334 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16335 "$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16336 tc_c21d7447, TypeM>, Enc_be32a5 {
16337 let Inst{7-5} = 0b010;
16338 let Inst{13-13} = 0b0;
16339 let Inst{31-21} = 0b11100100110;
16340 let prefersSlot3 = 1;
16342 def M2_mpyud_lh_s0 : HInst<
16343 (outs DoubleRegs:$Rdd32),
16344 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16345 "$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16346 tc_c21d7447, TypeM>, Enc_be32a5 {
16347 let Inst{7-5} = 0b001;
16348 let Inst{13-13} = 0b0;
16349 let Inst{31-21} = 0b11100100010;
16350 let prefersSlot3 = 1;
16352 def M2_mpyud_lh_s1 : HInst<
16353 (outs DoubleRegs:$Rdd32),
16354 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16355 "$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16356 tc_c21d7447, TypeM>, Enc_be32a5 {
16357 let Inst{7-5} = 0b001;
16358 let Inst{13-13} = 0b0;
16359 let Inst{31-21} = 0b11100100110;
16360 let prefersSlot3 = 1;
16362 def M2_mpyud_ll_s0 : HInst<
16363 (outs DoubleRegs:$Rdd32),
16364 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16365 "$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16366 tc_c21d7447, TypeM>, Enc_be32a5 {
16367 let Inst{7-5} = 0b000;
16368 let Inst{13-13} = 0b0;
16369 let Inst{31-21} = 0b11100100010;
16370 let prefersSlot3 = 1;
16372 def M2_mpyud_ll_s1 : HInst<
16373 (outs DoubleRegs:$Rdd32),
16374 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16375 "$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16376 tc_c21d7447, TypeM>, Enc_be32a5 {
16377 let Inst{7-5} = 0b000;
16378 let Inst{13-13} = 0b0;
16379 let Inst{31-21} = 0b11100100110;
16380 let prefersSlot3 = 1;
16382 def M2_mpyud_nac_hh_s0 : HInst<
16383 (outs DoubleRegs:$Rxx32),
16384 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16385 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16386 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16387 let Inst{7-5} = 0b011;
16388 let Inst{13-13} = 0b0;
16389 let Inst{31-21} = 0b11100110011;
16390 let prefersSlot3 = 1;
16391 let Constraints = "$Rxx32 = $Rxx32in";
16393 def M2_mpyud_nac_hh_s1 : HInst<
16394 (outs DoubleRegs:$Rxx32),
16395 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16396 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16397 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16398 let Inst{7-5} = 0b011;
16399 let Inst{13-13} = 0b0;
16400 let Inst{31-21} = 0b11100110111;
16401 let prefersSlot3 = 1;
16402 let Constraints = "$Rxx32 = $Rxx32in";
16404 def M2_mpyud_nac_hl_s0 : HInst<
16405 (outs DoubleRegs:$Rxx32),
16406 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16407 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16408 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16409 let Inst{7-5} = 0b010;
16410 let Inst{13-13} = 0b0;
16411 let Inst{31-21} = 0b11100110011;
16412 let prefersSlot3 = 1;
16413 let Constraints = "$Rxx32 = $Rxx32in";
16415 def M2_mpyud_nac_hl_s1 : HInst<
16416 (outs DoubleRegs:$Rxx32),
16417 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16418 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16419 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16420 let Inst{7-5} = 0b010;
16421 let Inst{13-13} = 0b0;
16422 let Inst{31-21} = 0b11100110111;
16423 let prefersSlot3 = 1;
16424 let Constraints = "$Rxx32 = $Rxx32in";
16426 def M2_mpyud_nac_lh_s0 : HInst<
16427 (outs DoubleRegs:$Rxx32),
16428 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16429 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16430 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16431 let Inst{7-5} = 0b001;
16432 let Inst{13-13} = 0b0;
16433 let Inst{31-21} = 0b11100110011;
16434 let prefersSlot3 = 1;
16435 let Constraints = "$Rxx32 = $Rxx32in";
16437 def M2_mpyud_nac_lh_s1 : HInst<
16438 (outs DoubleRegs:$Rxx32),
16439 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16440 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16441 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16442 let Inst{7-5} = 0b001;
16443 let Inst{13-13} = 0b0;
16444 let Inst{31-21} = 0b11100110111;
16445 let prefersSlot3 = 1;
16446 let Constraints = "$Rxx32 = $Rxx32in";
16448 def M2_mpyud_nac_ll_s0 : HInst<
16449 (outs DoubleRegs:$Rxx32),
16450 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16451 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16452 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16453 let Inst{7-5} = 0b000;
16454 let Inst{13-13} = 0b0;
16455 let Inst{31-21} = 0b11100110011;
16456 let prefersSlot3 = 1;
16457 let Constraints = "$Rxx32 = $Rxx32in";
16459 def M2_mpyud_nac_ll_s1 : HInst<
16460 (outs DoubleRegs:$Rxx32),
16461 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16462 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16463 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16464 let Inst{7-5} = 0b000;
16465 let Inst{13-13} = 0b0;
16466 let Inst{31-21} = 0b11100110111;
16467 let prefersSlot3 = 1;
16468 let Constraints = "$Rxx32 = $Rxx32in";
16470 def M2_mpyui : HInst<
16471 (outs IntRegs:$Rd32),
16472 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16473 "$Rd32 = mpyui($Rs32,$Rt32)",
16474 tc_c21d7447, TypeM> {
16475 let hasNewValue = 1;
16476 let opNewValue = 0;
16477 let isPseudo = 1;
16478 let isCodeGenOnly = 1;
16480 def M2_nacci : HInst<
16481 (outs IntRegs:$Rx32),
16482 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16483 "$Rx32 -= add($Rs32,$Rt32)",
16484 tc_2c13e7f5, TypeM>, Enc_2ae154 {
16485 let Inst{7-5} = 0b001;
16486 let Inst{13-13} = 0b0;
16487 let Inst{31-21} = 0b11101111100;
16488 let hasNewValue = 1;
16489 let opNewValue = 0;
16490 let prefersSlot3 = 1;
16491 let InputType = "reg";
16492 let Constraints = "$Rx32 = $Rx32in";
16494 def M2_naccii : HInst<
16495 (outs IntRegs:$Rx32),
16496 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16497 "$Rx32 -= add($Rs32,#$Ii)",
16498 tc_2c13e7f5, TypeM>, Enc_c90aca {
16499 let Inst{13-13} = 0b0;
16500 let Inst{31-21} = 0b11100010100;
16501 let hasNewValue = 1;
16502 let opNewValue = 0;
16503 let prefersSlot3 = 1;
16504 let InputType = "imm";
16505 let isExtendable = 1;
16506 let opExtendable = 3;
16507 let isExtentSigned = 1;
16508 let opExtentBits = 8;
16509 let opExtentAlign = 0;
16510 let Constraints = "$Rx32 = $Rx32in";
16512 def M2_subacc : HInst<
16513 (outs IntRegs:$Rx32),
16514 (ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16515 "$Rx32 += sub($Rt32,$Rs32)",
16516 tc_2c13e7f5, TypeM>, Enc_a568d4 {
16517 let Inst{7-5} = 0b011;
16518 let Inst{13-13} = 0b0;
16519 let Inst{31-21} = 0b11101111000;
16520 let hasNewValue = 1;
16521 let opNewValue = 0;
16522 let prefersSlot3 = 1;
16523 let InputType = "reg";
16524 let Constraints = "$Rx32 = $Rx32in";
16526 def M2_vabsdiffh : HInst<
16527 (outs DoubleRegs:$Rdd32),
16528 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16529 "$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16530 tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16531 let Inst{7-5} = 0b000;
16532 let Inst{13-13} = 0b0;
16533 let Inst{31-21} = 0b11101000011;
16534 let prefersSlot3 = 1;
16536 def M2_vabsdiffw : HInst<
16537 (outs DoubleRegs:$Rdd32),
16538 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16539 "$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16540 tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16541 let Inst{7-5} = 0b000;
16542 let Inst{13-13} = 0b0;
16543 let Inst{31-21} = 0b11101000001;
16544 let prefersSlot3 = 1;
16546 def M2_vcmac_s0_sat_i : HInst<
16547 (outs DoubleRegs:$Rxx32),
16548 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16549 "$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16550 tc_7f8ae742, TypeM>, Enc_88c16c {
16551 let Inst{7-5} = 0b100;
16552 let Inst{13-13} = 0b0;
16553 let Inst{31-21} = 0b11101010010;
16554 let prefersSlot3 = 1;
16555 let Defs = [USR_OVF];
16556 let Constraints = "$Rxx32 = $Rxx32in";
16558 def M2_vcmac_s0_sat_r : HInst<
16559 (outs DoubleRegs:$Rxx32),
16560 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16561 "$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16562 tc_7f8ae742, TypeM>, Enc_88c16c {
16563 let Inst{7-5} = 0b100;
16564 let Inst{13-13} = 0b0;
16565 let Inst{31-21} = 0b11101010001;
16566 let prefersSlot3 = 1;
16567 let Defs = [USR_OVF];
16568 let Constraints = "$Rxx32 = $Rxx32in";
16570 def M2_vcmpy_s0_sat_i : HInst<
16571 (outs DoubleRegs:$Rdd32),
16572 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16573 "$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16574 tc_c21d7447, TypeM>, Enc_a56825 {
16575 let Inst{7-5} = 0b110;
16576 let Inst{13-13} = 0b0;
16577 let Inst{31-21} = 0b11101000010;
16578 let prefersSlot3 = 1;
16579 let Defs = [USR_OVF];
16581 def M2_vcmpy_s0_sat_r : HInst<
16582 (outs DoubleRegs:$Rdd32),
16583 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16584 "$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16585 tc_c21d7447, TypeM>, Enc_a56825 {
16586 let Inst{7-5} = 0b110;
16587 let Inst{13-13} = 0b0;
16588 let Inst{31-21} = 0b11101000001;
16589 let prefersSlot3 = 1;
16590 let Defs = [USR_OVF];
16592 def M2_vcmpy_s1_sat_i : HInst<
16593 (outs DoubleRegs:$Rdd32),
16594 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16595 "$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16596 tc_c21d7447, TypeM>, Enc_a56825 {
16597 let Inst{7-5} = 0b110;
16598 let Inst{13-13} = 0b0;
16599 let Inst{31-21} = 0b11101000110;
16600 let prefersSlot3 = 1;
16601 let Defs = [USR_OVF];
16603 def M2_vcmpy_s1_sat_r : HInst<
16604 (outs DoubleRegs:$Rdd32),
16605 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16606 "$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16607 tc_c21d7447, TypeM>, Enc_a56825 {
16608 let Inst{7-5} = 0b110;
16609 let Inst{13-13} = 0b0;
16610 let Inst{31-21} = 0b11101000101;
16611 let prefersSlot3 = 1;
16612 let Defs = [USR_OVF];
16614 def M2_vdmacs_s0 : HInst<
16615 (outs DoubleRegs:$Rxx32),
16616 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16617 "$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16618 tc_7f8ae742, TypeM>, Enc_88c16c {
16619 let Inst{7-5} = 0b100;
16620 let Inst{13-13} = 0b0;
16621 let Inst{31-21} = 0b11101010000;
16622 let prefersSlot3 = 1;
16623 let Defs = [USR_OVF];
16624 let Constraints = "$Rxx32 = $Rxx32in";
16626 def M2_vdmacs_s1 : HInst<
16627 (outs DoubleRegs:$Rxx32),
16628 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16629 "$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16630 tc_7f8ae742, TypeM>, Enc_88c16c {
16631 let Inst{7-5} = 0b100;
16632 let Inst{13-13} = 0b0;
16633 let Inst{31-21} = 0b11101010100;
16634 let prefersSlot3 = 1;
16635 let Defs = [USR_OVF];
16636 let Constraints = "$Rxx32 = $Rxx32in";
16638 def M2_vdmpyrs_s0 : HInst<
16639 (outs IntRegs:$Rd32),
16640 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16641 "$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16642 tc_c21d7447, TypeM>, Enc_d2216a {
16643 let Inst{7-5} = 0b000;
16644 let Inst{13-13} = 0b0;
16645 let Inst{31-21} = 0b11101001000;
16646 let hasNewValue = 1;
16647 let opNewValue = 0;
16648 let prefersSlot3 = 1;
16649 let Defs = [USR_OVF];
16651 def M2_vdmpyrs_s1 : HInst<
16652 (outs IntRegs:$Rd32),
16653 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16654 "$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16655 tc_c21d7447, TypeM>, Enc_d2216a {
16656 let Inst{7-5} = 0b000;
16657 let Inst{13-13} = 0b0;
16658 let Inst{31-21} = 0b11101001100;
16659 let hasNewValue = 1;
16660 let opNewValue = 0;
16661 let prefersSlot3 = 1;
16662 let Defs = [USR_OVF];
16664 def M2_vdmpys_s0 : HInst<
16665 (outs DoubleRegs:$Rdd32),
16666 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16667 "$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16668 tc_c21d7447, TypeM>, Enc_a56825 {
16669 let Inst{7-5} = 0b100;
16670 let Inst{13-13} = 0b0;
16671 let Inst{31-21} = 0b11101000000;
16672 let prefersSlot3 = 1;
16673 let Defs = [USR_OVF];
16675 def M2_vdmpys_s1 : HInst<
16676 (outs DoubleRegs:$Rdd32),
16677 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16678 "$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16679 tc_c21d7447, TypeM>, Enc_a56825 {
16680 let Inst{7-5} = 0b100;
16681 let Inst{13-13} = 0b0;
16682 let Inst{31-21} = 0b11101000100;
16683 let prefersSlot3 = 1;
16684 let Defs = [USR_OVF];
16686 def M2_vmac2 : HInst<
16687 (outs DoubleRegs:$Rxx32),
16688 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16689 "$Rxx32 += vmpyh($Rs32,$Rt32)",
16690 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16691 let Inst{7-5} = 0b001;
16692 let Inst{13-13} = 0b0;
16693 let Inst{31-21} = 0b11100111001;
16694 let prefersSlot3 = 1;
16695 let Constraints = "$Rxx32 = $Rxx32in";
16697 def M2_vmac2es : HInst<
16698 (outs DoubleRegs:$Rxx32),
16699 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16700 "$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16701 tc_7f8ae742, TypeM>, Enc_88c16c {
16702 let Inst{7-5} = 0b010;
16703 let Inst{13-13} = 0b0;
16704 let Inst{31-21} = 0b11101010001;
16705 let prefersSlot3 = 1;
16706 let Constraints = "$Rxx32 = $Rxx32in";
16708 def M2_vmac2es_s0 : HInst<
16709 (outs DoubleRegs:$Rxx32),
16710 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16711 "$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16712 tc_7f8ae742, TypeM>, Enc_88c16c {
16713 let Inst{7-5} = 0b110;
16714 let Inst{13-13} = 0b0;
16715 let Inst{31-21} = 0b11101010000;
16716 let prefersSlot3 = 1;
16717 let Defs = [USR_OVF];
16718 let Constraints = "$Rxx32 = $Rxx32in";
16720 def M2_vmac2es_s1 : HInst<
16721 (outs DoubleRegs:$Rxx32),
16722 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16723 "$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16724 tc_7f8ae742, TypeM>, Enc_88c16c {
16725 let Inst{7-5} = 0b110;
16726 let Inst{13-13} = 0b0;
16727 let Inst{31-21} = 0b11101010100;
16728 let prefersSlot3 = 1;
16729 let Defs = [USR_OVF];
16730 let Constraints = "$Rxx32 = $Rxx32in";
16732 def M2_vmac2s_s0 : HInst<
16733 (outs DoubleRegs:$Rxx32),
16734 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16735 "$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16736 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16737 let Inst{7-5} = 0b101;
16738 let Inst{13-13} = 0b0;
16739 let Inst{31-21} = 0b11100111000;
16740 let prefersSlot3 = 1;
16741 let Defs = [USR_OVF];
16742 let Constraints = "$Rxx32 = $Rxx32in";
16744 def M2_vmac2s_s1 : HInst<
16745 (outs DoubleRegs:$Rxx32),
16746 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16747 "$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16748 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16749 let Inst{7-5} = 0b101;
16750 let Inst{13-13} = 0b0;
16751 let Inst{31-21} = 0b11100111100;
16752 let prefersSlot3 = 1;
16753 let Defs = [USR_OVF];
16754 let Constraints = "$Rxx32 = $Rxx32in";
16756 def M2_vmac2su_s0 : HInst<
16757 (outs DoubleRegs:$Rxx32),
16758 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16759 "$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16760 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16761 let Inst{7-5} = 0b101;
16762 let Inst{13-13} = 0b0;
16763 let Inst{31-21} = 0b11100111011;
16764 let prefersSlot3 = 1;
16765 let Defs = [USR_OVF];
16766 let Constraints = "$Rxx32 = $Rxx32in";
16768 def M2_vmac2su_s1 : HInst<
16769 (outs DoubleRegs:$Rxx32),
16770 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16771 "$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16772 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16773 let Inst{7-5} = 0b101;
16774 let Inst{13-13} = 0b0;
16775 let Inst{31-21} = 0b11100111111;
16776 let prefersSlot3 = 1;
16777 let Defs = [USR_OVF];
16778 let Constraints = "$Rxx32 = $Rxx32in";
16780 def M2_vmpy2es_s0 : HInst<
16781 (outs DoubleRegs:$Rdd32),
16782 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16783 "$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16784 tc_c21d7447, TypeM>, Enc_a56825 {
16785 let Inst{7-5} = 0b110;
16786 let Inst{13-13} = 0b0;
16787 let Inst{31-21} = 0b11101000000;
16788 let prefersSlot3 = 1;
16789 let Defs = [USR_OVF];
16791 def M2_vmpy2es_s1 : HInst<
16792 (outs DoubleRegs:$Rdd32),
16793 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16794 "$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16795 tc_c21d7447, TypeM>, Enc_a56825 {
16796 let Inst{7-5} = 0b110;
16797 let Inst{13-13} = 0b0;
16798 let Inst{31-21} = 0b11101000100;
16799 let prefersSlot3 = 1;
16800 let Defs = [USR_OVF];
16802 def M2_vmpy2s_s0 : HInst<
16803 (outs DoubleRegs:$Rdd32),
16804 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16805 "$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16806 tc_c21d7447, TypeM>, Enc_be32a5 {
16807 let Inst{7-5} = 0b101;
16808 let Inst{13-13} = 0b0;
16809 let Inst{31-21} = 0b11100101000;
16810 let prefersSlot3 = 1;
16811 let Defs = [USR_OVF];
16813 def M2_vmpy2s_s0pack : HInst<
16814 (outs IntRegs:$Rd32),
16815 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16816 "$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16817 tc_c21d7447, TypeM>, Enc_5ab2be {
16818 let Inst{7-5} = 0b111;
16819 let Inst{13-13} = 0b0;
16820 let Inst{31-21} = 0b11101101001;
16821 let hasNewValue = 1;
16822 let opNewValue = 0;
16823 let prefersSlot3 = 1;
16824 let Defs = [USR_OVF];
16826 def M2_vmpy2s_s1 : HInst<
16827 (outs DoubleRegs:$Rdd32),
16828 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16829 "$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16830 tc_c21d7447, TypeM>, Enc_be32a5 {
16831 let Inst{7-5} = 0b101;
16832 let Inst{13-13} = 0b0;
16833 let Inst{31-21} = 0b11100101100;
16834 let prefersSlot3 = 1;
16835 let Defs = [USR_OVF];
16837 def M2_vmpy2s_s1pack : HInst<
16838 (outs IntRegs:$Rd32),
16839 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16840 "$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16841 tc_c21d7447, TypeM>, Enc_5ab2be {
16842 let Inst{7-5} = 0b111;
16843 let Inst{13-13} = 0b0;
16844 let Inst{31-21} = 0b11101101101;
16845 let hasNewValue = 1;
16846 let opNewValue = 0;
16847 let prefersSlot3 = 1;
16848 let Defs = [USR_OVF];
16850 def M2_vmpy2su_s0 : HInst<
16851 (outs DoubleRegs:$Rdd32),
16852 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16853 "$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16854 tc_c21d7447, TypeM>, Enc_be32a5 {
16855 let Inst{7-5} = 0b111;
16856 let Inst{13-13} = 0b0;
16857 let Inst{31-21} = 0b11100101000;
16858 let prefersSlot3 = 1;
16859 let Defs = [USR_OVF];
16861 def M2_vmpy2su_s1 : HInst<
16862 (outs DoubleRegs:$Rdd32),
16863 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16864 "$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16865 tc_c21d7447, TypeM>, Enc_be32a5 {
16866 let Inst{7-5} = 0b111;
16867 let Inst{13-13} = 0b0;
16868 let Inst{31-21} = 0b11100101100;
16869 let prefersSlot3 = 1;
16870 let Defs = [USR_OVF];
16872 def M2_vraddh : HInst<
16873 (outs IntRegs:$Rd32),
16874 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16875 "$Rd32 = vraddh($Rss32,$Rtt32)",
16876 tc_c21d7447, TypeM>, Enc_d2216a {
16877 let Inst{7-5} = 0b111;
16878 let Inst{13-13} = 0b0;
16879 let Inst{31-21} = 0b11101001001;
16880 let hasNewValue = 1;
16881 let opNewValue = 0;
16882 let prefersSlot3 = 1;
16884 def M2_vradduh : HInst<
16885 (outs IntRegs:$Rd32),
16886 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16887 "$Rd32 = vradduh($Rss32,$Rtt32)",
16888 tc_c21d7447, TypeM>, Enc_d2216a {
16889 let Inst{7-5} = 0b001;
16890 let Inst{13-13} = 0b0;
16891 let Inst{31-21} = 0b11101001000;
16892 let hasNewValue = 1;
16893 let opNewValue = 0;
16894 let prefersSlot3 = 1;
16896 def M2_vrcmaci_s0 : HInst<
16897 (outs DoubleRegs:$Rxx32),
16898 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16899 "$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16900 tc_7f8ae742, TypeM>, Enc_88c16c {
16901 let Inst{7-5} = 0b000;
16902 let Inst{13-13} = 0b0;
16903 let Inst{31-21} = 0b11101010000;
16904 let prefersSlot3 = 1;
16905 let Constraints = "$Rxx32 = $Rxx32in";
16907 def M2_vrcmaci_s0c : HInst<
16908 (outs DoubleRegs:$Rxx32),
16909 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16910 "$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16911 tc_7f8ae742, TypeM>, Enc_88c16c {
16912 let Inst{7-5} = 0b000;
16913 let Inst{13-13} = 0b0;
16914 let Inst{31-21} = 0b11101010010;
16915 let prefersSlot3 = 1;
16916 let Constraints = "$Rxx32 = $Rxx32in";
16918 def M2_vrcmacr_s0 : HInst<
16919 (outs DoubleRegs:$Rxx32),
16920 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16921 "$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16922 tc_7f8ae742, TypeM>, Enc_88c16c {
16923 let Inst{7-5} = 0b001;
16924 let Inst{13-13} = 0b0;
16925 let Inst{31-21} = 0b11101010000;
16926 let prefersSlot3 = 1;
16927 let Constraints = "$Rxx32 = $Rxx32in";
16929 def M2_vrcmacr_s0c : HInst<
16930 (outs DoubleRegs:$Rxx32),
16931 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16932 "$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16933 tc_7f8ae742, TypeM>, Enc_88c16c {
16934 let Inst{7-5} = 0b001;
16935 let Inst{13-13} = 0b0;
16936 let Inst{31-21} = 0b11101010011;
16937 let prefersSlot3 = 1;
16938 let Constraints = "$Rxx32 = $Rxx32in";
16940 def M2_vrcmpyi_s0 : HInst<
16941 (outs DoubleRegs:$Rdd32),
16942 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16943 "$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16944 tc_c21d7447, TypeM>, Enc_a56825 {
16945 let Inst{7-5} = 0b000;
16946 let Inst{13-13} = 0b0;
16947 let Inst{31-21} = 0b11101000000;
16948 let prefersSlot3 = 1;
16950 def M2_vrcmpyi_s0c : HInst<
16951 (outs DoubleRegs:$Rdd32),
16952 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16953 "$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16954 tc_c21d7447, TypeM>, Enc_a56825 {
16955 let Inst{7-5} = 0b000;
16956 let Inst{13-13} = 0b0;
16957 let Inst{31-21} = 0b11101000010;
16958 let prefersSlot3 = 1;
16960 def M2_vrcmpyr_s0 : HInst<
16961 (outs DoubleRegs:$Rdd32),
16962 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16963 "$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
16964 tc_c21d7447, TypeM>, Enc_a56825 {
16965 let Inst{7-5} = 0b001;
16966 let Inst{13-13} = 0b0;
16967 let Inst{31-21} = 0b11101000000;
16968 let prefersSlot3 = 1;
16970 def M2_vrcmpyr_s0c : HInst<
16971 (outs DoubleRegs:$Rdd32),
16972 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16973 "$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
16974 tc_c21d7447, TypeM>, Enc_a56825 {
16975 let Inst{7-5} = 0b001;
16976 let Inst{13-13} = 0b0;
16977 let Inst{31-21} = 0b11101000011;
16978 let prefersSlot3 = 1;
16980 def M2_vrcmpys_acc_s1 : HInst<
16981 (outs DoubleRegs:$Rxx32),
16982 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
16983 "$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
16984 tc_7f8ae742, TypeM> {
16985 let isPseudo = 1;
16986 let Constraints = "$Rxx32 = $Rxx32in";
16988 def M2_vrcmpys_acc_s1_h : HInst<
16989 (outs DoubleRegs:$Rxx32),
16990 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16991 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16992 tc_7f8ae742, TypeM>, Enc_88c16c {
16993 let Inst{7-5} = 0b100;
16994 let Inst{13-13} = 0b0;
16995 let Inst{31-21} = 0b11101010101;
16996 let prefersSlot3 = 1;
16997 let Defs = [USR_OVF];
16998 let Constraints = "$Rxx32 = $Rxx32in";
17000 def M2_vrcmpys_acc_s1_l : HInst<
17001 (outs DoubleRegs:$Rxx32),
17002 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17003 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17004 tc_7f8ae742, TypeM>, Enc_88c16c {
17005 let Inst{7-5} = 0b100;
17006 let Inst{13-13} = 0b0;
17007 let Inst{31-21} = 0b11101010111;
17008 let prefersSlot3 = 1;
17009 let Defs = [USR_OVF];
17010 let Constraints = "$Rxx32 = $Rxx32in";
17012 def M2_vrcmpys_s1 : HInst<
17013 (outs DoubleRegs:$Rdd32),
17014 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17015 "$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
17016 tc_c21d7447, TypeM> {
17017 let isPseudo = 1;
17019 def M2_vrcmpys_s1_h : HInst<
17020 (outs DoubleRegs:$Rdd32),
17021 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17022 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17023 tc_c21d7447, TypeM>, Enc_a56825 {
17024 let Inst{7-5} = 0b100;
17025 let Inst{13-13} = 0b0;
17026 let Inst{31-21} = 0b11101000101;
17027 let prefersSlot3 = 1;
17028 let Defs = [USR_OVF];
17030 def M2_vrcmpys_s1_l : HInst<
17031 (outs DoubleRegs:$Rdd32),
17032 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17033 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17034 tc_c21d7447, TypeM>, Enc_a56825 {
17035 let Inst{7-5} = 0b100;
17036 let Inst{13-13} = 0b0;
17037 let Inst{31-21} = 0b11101000111;
17038 let prefersSlot3 = 1;
17039 let Defs = [USR_OVF];
17041 def M2_vrcmpys_s1rp : HInst<
17042 (outs IntRegs:$Rd32),
17043 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17044 "$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
17045 tc_c21d7447, TypeM> {
17046 let hasNewValue = 1;
17047 let opNewValue = 0;
17048 let isPseudo = 1;
17050 def M2_vrcmpys_s1rp_h : HInst<
17051 (outs IntRegs:$Rd32),
17052 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17053 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
17054 tc_c21d7447, TypeM>, Enc_d2216a {
17055 let Inst{7-5} = 0b110;
17056 let Inst{13-13} = 0b0;
17057 let Inst{31-21} = 0b11101001101;
17058 let hasNewValue = 1;
17059 let opNewValue = 0;
17060 let prefersSlot3 = 1;
17061 let Defs = [USR_OVF];
17063 def M2_vrcmpys_s1rp_l : HInst<
17064 (outs IntRegs:$Rd32),
17065 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17066 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
17067 tc_c21d7447, TypeM>, Enc_d2216a {
17068 let Inst{7-5} = 0b111;
17069 let Inst{13-13} = 0b0;
17070 let Inst{31-21} = 0b11101001101;
17071 let hasNewValue = 1;
17072 let opNewValue = 0;
17073 let prefersSlot3 = 1;
17074 let Defs = [USR_OVF];
17076 def M2_vrmac_s0 : HInst<
17077 (outs DoubleRegs:$Rxx32),
17078 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17079 "$Rxx32 += vrmpyh($Rss32,$Rtt32)",
17080 tc_7f8ae742, TypeM>, Enc_88c16c {
17081 let Inst{7-5} = 0b010;
17082 let Inst{13-13} = 0b0;
17083 let Inst{31-21} = 0b11101010000;
17084 let prefersSlot3 = 1;
17085 let Constraints = "$Rxx32 = $Rxx32in";
17087 def M2_vrmpy_s0 : HInst<
17088 (outs DoubleRegs:$Rdd32),
17089 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17090 "$Rdd32 = vrmpyh($Rss32,$Rtt32)",
17091 tc_c21d7447, TypeM>, Enc_a56825 {
17092 let Inst{7-5} = 0b010;
17093 let Inst{13-13} = 0b0;
17094 let Inst{31-21} = 0b11101000000;
17095 let prefersSlot3 = 1;
17097 def M2_xor_xacc : HInst<
17098 (outs IntRegs:$Rx32),
17099 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17100 "$Rx32 ^= xor($Rs32,$Rt32)",
17101 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17102 let Inst{7-5} = 0b011;
17103 let Inst{13-13} = 0b0;
17104 let Inst{31-21} = 0b11101111100;
17105 let hasNewValue = 1;
17106 let opNewValue = 0;
17107 let prefersSlot3 = 1;
17108 let InputType = "reg";
17109 let Constraints = "$Rx32 = $Rx32in";
17111 def M4_and_and : HInst<
17112 (outs IntRegs:$Rx32),
17113 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17114 "$Rx32 &= and($Rs32,$Rt32)",
17115 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17116 let Inst{7-5} = 0b000;
17117 let Inst{13-13} = 0b0;
17118 let Inst{31-21} = 0b11101111010;
17119 let hasNewValue = 1;
17120 let opNewValue = 0;
17121 let prefersSlot3 = 1;
17122 let InputType = "reg";
17123 let Constraints = "$Rx32 = $Rx32in";
17125 def M4_and_andn : HInst<
17126 (outs IntRegs:$Rx32),
17127 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17128 "$Rx32 &= and($Rs32,~$Rt32)",
17129 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17130 let Inst{7-5} = 0b001;
17131 let Inst{13-13} = 0b0;
17132 let Inst{31-21} = 0b11101111001;
17133 let hasNewValue = 1;
17134 let opNewValue = 0;
17135 let prefersSlot3 = 1;
17136 let InputType = "reg";
17137 let Constraints = "$Rx32 = $Rx32in";
17139 def M4_and_or : HInst<
17140 (outs IntRegs:$Rx32),
17141 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17142 "$Rx32 &= or($Rs32,$Rt32)",
17143 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17144 let Inst{7-5} = 0b001;
17145 let Inst{13-13} = 0b0;
17146 let Inst{31-21} = 0b11101111010;
17147 let hasNewValue = 1;
17148 let opNewValue = 0;
17149 let prefersSlot3 = 1;
17150 let InputType = "reg";
17151 let Constraints = "$Rx32 = $Rx32in";
17153 def M4_and_xor : HInst<
17154 (outs IntRegs:$Rx32),
17155 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17156 "$Rx32 &= xor($Rs32,$Rt32)",
17157 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17158 let Inst{7-5} = 0b010;
17159 let Inst{13-13} = 0b0;
17160 let Inst{31-21} = 0b11101111010;
17161 let hasNewValue = 1;
17162 let opNewValue = 0;
17163 let prefersSlot3 = 1;
17164 let InputType = "reg";
17165 let Constraints = "$Rx32 = $Rx32in";
17167 def M4_cmpyi_wh : HInst<
17168 (outs IntRegs:$Rd32),
17169 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17170 "$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17171 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17172 let Inst{7-5} = 0b100;
17173 let Inst{13-13} = 0b0;
17174 let Inst{31-21} = 0b11000101000;
17175 let hasNewValue = 1;
17176 let opNewValue = 0;
17177 let prefersSlot3 = 1;
17178 let Defs = [USR_OVF];
17180 def M4_cmpyi_whc : HInst<
17181 (outs IntRegs:$Rd32),
17182 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17183 "$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17184 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17185 let Inst{7-5} = 0b101;
17186 let Inst{13-13} = 0b0;
17187 let Inst{31-21} = 0b11000101000;
17188 let hasNewValue = 1;
17189 let opNewValue = 0;
17190 let prefersSlot3 = 1;
17191 let Defs = [USR_OVF];
17193 def M4_cmpyr_wh : HInst<
17194 (outs IntRegs:$Rd32),
17195 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17196 "$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17197 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17198 let Inst{7-5} = 0b110;
17199 let Inst{13-13} = 0b0;
17200 let Inst{31-21} = 0b11000101000;
17201 let hasNewValue = 1;
17202 let opNewValue = 0;
17203 let prefersSlot3 = 1;
17204 let Defs = [USR_OVF];
17206 def M4_cmpyr_whc : HInst<
17207 (outs IntRegs:$Rd32),
17208 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17209 "$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17210 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17211 let Inst{7-5} = 0b111;
17212 let Inst{13-13} = 0b0;
17213 let Inst{31-21} = 0b11000101000;
17214 let hasNewValue = 1;
17215 let opNewValue = 0;
17216 let prefersSlot3 = 1;
17217 let Defs = [USR_OVF];
17219 def M4_mac_up_s1_sat : HInst<
17220 (outs IntRegs:$Rx32),
17221 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17222 "$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17223 tc_7f8ae742, TypeM>, Enc_2ae154 {
17224 let Inst{7-5} = 0b000;
17225 let Inst{13-13} = 0b0;
17226 let Inst{31-21} = 0b11101111011;
17227 let hasNewValue = 1;
17228 let opNewValue = 0;
17229 let prefersSlot3 = 1;
17230 let Defs = [USR_OVF];
17231 let InputType = "reg";
17232 let Constraints = "$Rx32 = $Rx32in";
17234 def M4_mpyri_addi : HInst<
17235 (outs IntRegs:$Rd32),
17236 (ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17237 "$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17238 tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel {
17239 let Inst{31-24} = 0b11011000;
17240 let hasNewValue = 1;
17241 let opNewValue = 0;
17242 let prefersSlot3 = 1;
17243 let CextOpcode = "M4_mpyri_addr";
17244 let isExtendable = 1;
17245 let opExtendable = 1;
17246 let isExtentSigned = 0;
17247 let opExtentBits = 6;
17248 let opExtentAlign = 0;
17250 def M4_mpyri_addr : HInst<
17251 (outs IntRegs:$Rd32),
17252 (ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17253 "$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17254 tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel {
17255 let Inst{31-23} = 0b110111111;
17256 let hasNewValue = 1;
17257 let opNewValue = 0;
17258 let prefersSlot3 = 1;
17259 let CextOpcode = "M4_mpyri_addr";
17260 let InputType = "imm";
17261 let isExtendable = 1;
17262 let opExtendable = 3;
17263 let isExtentSigned = 0;
17264 let opExtentBits = 6;
17265 let opExtentAlign = 0;
17267 def M4_mpyri_addr_u2 : HInst<
17268 (outs IntRegs:$Rd32),
17269 (ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17270 "$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17271 tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> {
17272 let Inst{31-23} = 0b110111110;
17273 let hasNewValue = 1;
17274 let opNewValue = 0;
17275 let prefersSlot3 = 1;
17277 def M4_mpyrr_addi : HInst<
17278 (outs IntRegs:$Rd32),
17279 (ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17280 "$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17281 tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel {
17282 let Inst{31-23} = 0b110101110;
17283 let hasNewValue = 1;
17284 let opNewValue = 0;
17285 let prefersSlot3 = 1;
17286 let CextOpcode = "M4_mpyrr_addr";
17287 let InputType = "imm";
17288 let isExtendable = 1;
17289 let opExtendable = 1;
17290 let isExtentSigned = 0;
17291 let opExtentBits = 6;
17292 let opExtentAlign = 0;
17294 def M4_mpyrr_addr : HInst<
17295 (outs IntRegs:$Ry32),
17296 (ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17297 "$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17298 tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel {
17299 let Inst{7-5} = 0b000;
17300 let Inst{13-13} = 0b0;
17301 let Inst{31-21} = 0b11100011000;
17302 let hasNewValue = 1;
17303 let opNewValue = 0;
17304 let prefersSlot3 = 1;
17305 let CextOpcode = "M4_mpyrr_addr";
17306 let InputType = "reg";
17307 let Constraints = "$Ry32 = $Ry32in";
17309 def M4_nac_up_s1_sat : HInst<
17310 (outs IntRegs:$Rx32),
17311 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17312 "$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17313 tc_7f8ae742, TypeM>, Enc_2ae154 {
17314 let Inst{7-5} = 0b001;
17315 let Inst{13-13} = 0b0;
17316 let Inst{31-21} = 0b11101111011;
17317 let hasNewValue = 1;
17318 let opNewValue = 0;
17319 let prefersSlot3 = 1;
17320 let Defs = [USR_OVF];
17321 let InputType = "reg";
17322 let Constraints = "$Rx32 = $Rx32in";
17324 def M4_or_and : HInst<
17325 (outs IntRegs:$Rx32),
17326 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17327 "$Rx32 |= and($Rs32,$Rt32)",
17328 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17329 let Inst{7-5} = 0b011;
17330 let Inst{13-13} = 0b0;
17331 let Inst{31-21} = 0b11101111010;
17332 let hasNewValue = 1;
17333 let opNewValue = 0;
17334 let prefersSlot3 = 1;
17335 let InputType = "reg";
17336 let Constraints = "$Rx32 = $Rx32in";
17338 def M4_or_andn : HInst<
17339 (outs IntRegs:$Rx32),
17340 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17341 "$Rx32 |= and($Rs32,~$Rt32)",
17342 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17343 let Inst{7-5} = 0b000;
17344 let Inst{13-13} = 0b0;
17345 let Inst{31-21} = 0b11101111001;
17346 let hasNewValue = 1;
17347 let opNewValue = 0;
17348 let prefersSlot3 = 1;
17349 let InputType = "reg";
17350 let Constraints = "$Rx32 = $Rx32in";
17352 def M4_or_or : HInst<
17353 (outs IntRegs:$Rx32),
17354 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17355 "$Rx32 |= or($Rs32,$Rt32)",
17356 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17357 let Inst{7-5} = 0b000;
17358 let Inst{13-13} = 0b0;
17359 let Inst{31-21} = 0b11101111110;
17360 let hasNewValue = 1;
17361 let opNewValue = 0;
17362 let prefersSlot3 = 1;
17363 let InputType = "reg";
17364 let Constraints = "$Rx32 = $Rx32in";
17366 def M4_or_xor : HInst<
17367 (outs IntRegs:$Rx32),
17368 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17369 "$Rx32 |= xor($Rs32,$Rt32)",
17370 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17371 let Inst{7-5} = 0b001;
17372 let Inst{13-13} = 0b0;
17373 let Inst{31-21} = 0b11101111110;
17374 let hasNewValue = 1;
17375 let opNewValue = 0;
17376 let prefersSlot3 = 1;
17377 let InputType = "reg";
17378 let Constraints = "$Rx32 = $Rx32in";
17380 def M4_pmpyw : HInst<
17381 (outs DoubleRegs:$Rdd32),
17382 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17383 "$Rdd32 = pmpyw($Rs32,$Rt32)",
17384 tc_c21d7447, TypeM>, Enc_be32a5 {
17385 let Inst{7-5} = 0b111;
17386 let Inst{13-13} = 0b0;
17387 let Inst{31-21} = 0b11100101010;
17388 let prefersSlot3 = 1;
17390 def M4_pmpyw_acc : HInst<
17391 (outs DoubleRegs:$Rxx32),
17392 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17393 "$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17394 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17395 let Inst{7-5} = 0b111;
17396 let Inst{13-13} = 0b0;
17397 let Inst{31-21} = 0b11100111001;
17398 let prefersSlot3 = 1;
17399 let Constraints = "$Rxx32 = $Rxx32in";
17401 def M4_vpmpyh : HInst<
17402 (outs DoubleRegs:$Rdd32),
17403 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17404 "$Rdd32 = vpmpyh($Rs32,$Rt32)",
17405 tc_c21d7447, TypeM>, Enc_be32a5 {
17406 let Inst{7-5} = 0b111;
17407 let Inst{13-13} = 0b0;
17408 let Inst{31-21} = 0b11100101110;
17409 let prefersSlot3 = 1;
17411 def M4_vpmpyh_acc : HInst<
17412 (outs DoubleRegs:$Rxx32),
17413 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17414 "$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17415 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17416 let Inst{7-5} = 0b111;
17417 let Inst{13-13} = 0b0;
17418 let Inst{31-21} = 0b11100111101;
17419 let prefersSlot3 = 1;
17420 let Constraints = "$Rxx32 = $Rxx32in";
17422 def M4_vrmpyeh_acc_s0 : HInst<
17423 (outs DoubleRegs:$Rxx32),
17424 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17425 "$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17426 tc_7f8ae742, TypeM>, Enc_88c16c {
17427 let Inst{7-5} = 0b110;
17428 let Inst{13-13} = 0b0;
17429 let Inst{31-21} = 0b11101010001;
17430 let prefersSlot3 = 1;
17431 let Constraints = "$Rxx32 = $Rxx32in";
17433 def M4_vrmpyeh_acc_s1 : HInst<
17434 (outs DoubleRegs:$Rxx32),
17435 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17436 "$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17437 tc_7f8ae742, TypeM>, Enc_88c16c {
17438 let Inst{7-5} = 0b110;
17439 let Inst{13-13} = 0b0;
17440 let Inst{31-21} = 0b11101010101;
17441 let prefersSlot3 = 1;
17442 let Constraints = "$Rxx32 = $Rxx32in";
17444 def M4_vrmpyeh_s0 : HInst<
17445 (outs DoubleRegs:$Rdd32),
17446 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17447 "$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17448 tc_c21d7447, TypeM>, Enc_a56825 {
17449 let Inst{7-5} = 0b100;
17450 let Inst{13-13} = 0b0;
17451 let Inst{31-21} = 0b11101000010;
17452 let prefersSlot3 = 1;
17454 def M4_vrmpyeh_s1 : HInst<
17455 (outs DoubleRegs:$Rdd32),
17456 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17457 "$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17458 tc_c21d7447, TypeM>, Enc_a56825 {
17459 let Inst{7-5} = 0b100;
17460 let Inst{13-13} = 0b0;
17461 let Inst{31-21} = 0b11101000110;
17462 let prefersSlot3 = 1;
17464 def M4_vrmpyoh_acc_s0 : HInst<
17465 (outs DoubleRegs:$Rxx32),
17466 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17467 "$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17468 tc_7f8ae742, TypeM>, Enc_88c16c {
17469 let Inst{7-5} = 0b110;
17470 let Inst{13-13} = 0b0;
17471 let Inst{31-21} = 0b11101010011;
17472 let prefersSlot3 = 1;
17473 let Constraints = "$Rxx32 = $Rxx32in";
17475 def M4_vrmpyoh_acc_s1 : HInst<
17476 (outs DoubleRegs:$Rxx32),
17477 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17478 "$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17479 tc_7f8ae742, TypeM>, Enc_88c16c {
17480 let Inst{7-5} = 0b110;
17481 let Inst{13-13} = 0b0;
17482 let Inst{31-21} = 0b11101010111;
17483 let prefersSlot3 = 1;
17484 let Constraints = "$Rxx32 = $Rxx32in";
17486 def M4_vrmpyoh_s0 : HInst<
17487 (outs DoubleRegs:$Rdd32),
17488 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17489 "$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17490 tc_c21d7447, TypeM>, Enc_a56825 {
17491 let Inst{7-5} = 0b010;
17492 let Inst{13-13} = 0b0;
17493 let Inst{31-21} = 0b11101000001;
17494 let prefersSlot3 = 1;
17496 def M4_vrmpyoh_s1 : HInst<
17497 (outs DoubleRegs:$Rdd32),
17498 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17499 "$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17500 tc_c21d7447, TypeM>, Enc_a56825 {
17501 let Inst{7-5} = 0b010;
17502 let Inst{13-13} = 0b0;
17503 let Inst{31-21} = 0b11101000101;
17504 let prefersSlot3 = 1;
17506 def M4_xor_and : HInst<
17507 (outs IntRegs:$Rx32),
17508 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17509 "$Rx32 ^= and($Rs32,$Rt32)",
17510 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17511 let Inst{7-5} = 0b010;
17512 let Inst{13-13} = 0b0;
17513 let Inst{31-21} = 0b11101111110;
17514 let hasNewValue = 1;
17515 let opNewValue = 0;
17516 let prefersSlot3 = 1;
17517 let InputType = "reg";
17518 let Constraints = "$Rx32 = $Rx32in";
17520 def M4_xor_andn : HInst<
17521 (outs IntRegs:$Rx32),
17522 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17523 "$Rx32 ^= and($Rs32,~$Rt32)",
17524 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17525 let Inst{7-5} = 0b010;
17526 let Inst{13-13} = 0b0;
17527 let Inst{31-21} = 0b11101111001;
17528 let hasNewValue = 1;
17529 let opNewValue = 0;
17530 let prefersSlot3 = 1;
17531 let InputType = "reg";
17532 let Constraints = "$Rx32 = $Rx32in";
17534 def M4_xor_or : HInst<
17535 (outs IntRegs:$Rx32),
17536 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17537 "$Rx32 ^= or($Rs32,$Rt32)",
17538 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17539 let Inst{7-5} = 0b011;
17540 let Inst{13-13} = 0b0;
17541 let Inst{31-21} = 0b11101111110;
17542 let hasNewValue = 1;
17543 let opNewValue = 0;
17544 let prefersSlot3 = 1;
17545 let InputType = "reg";
17546 let Constraints = "$Rx32 = $Rx32in";
17548 def M4_xor_xacc : HInst<
17549 (outs DoubleRegs:$Rxx32),
17550 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17551 "$Rxx32 ^= xor($Rss32,$Rtt32)",
17552 tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
17553 let Inst{7-5} = 0b000;
17554 let Inst{13-13} = 0b0;
17555 let Inst{31-21} = 0b11001010100;
17556 let prefersSlot3 = 1;
17557 let Constraints = "$Rxx32 = $Rxx32in";
17559 def M5_vdmacbsu : HInst<
17560 (outs DoubleRegs:$Rxx32),
17561 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17562 "$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17563 tc_7f8ae742, TypeM>, Enc_88c16c {
17564 let Inst{7-5} = 0b001;
17565 let Inst{13-13} = 0b0;
17566 let Inst{31-21} = 0b11101010001;
17567 let prefersSlot3 = 1;
17568 let Defs = [USR_OVF];
17569 let Constraints = "$Rxx32 = $Rxx32in";
17571 def M5_vdmpybsu : HInst<
17572 (outs DoubleRegs:$Rdd32),
17573 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17574 "$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17575 tc_c21d7447, TypeM>, Enc_a56825 {
17576 let Inst{7-5} = 0b001;
17577 let Inst{13-13} = 0b0;
17578 let Inst{31-21} = 0b11101000101;
17579 let prefersSlot3 = 1;
17580 let Defs = [USR_OVF];
17582 def M5_vmacbsu : HInst<
17583 (outs DoubleRegs:$Rxx32),
17584 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17585 "$Rxx32 += vmpybsu($Rs32,$Rt32)",
17586 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17587 let Inst{7-5} = 0b001;
17588 let Inst{13-13} = 0b0;
17589 let Inst{31-21} = 0b11100111110;
17590 let prefersSlot3 = 1;
17591 let Constraints = "$Rxx32 = $Rxx32in";
17593 def M5_vmacbuu : HInst<
17594 (outs DoubleRegs:$Rxx32),
17595 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17596 "$Rxx32 += vmpybu($Rs32,$Rt32)",
17597 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17598 let Inst{7-5} = 0b001;
17599 let Inst{13-13} = 0b0;
17600 let Inst{31-21} = 0b11100111100;
17601 let prefersSlot3 = 1;
17602 let Constraints = "$Rxx32 = $Rxx32in";
17604 def M5_vmpybsu : HInst<
17605 (outs DoubleRegs:$Rdd32),
17606 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17607 "$Rdd32 = vmpybsu($Rs32,$Rt32)",
17608 tc_c21d7447, TypeM>, Enc_be32a5 {
17609 let Inst{7-5} = 0b001;
17610 let Inst{13-13} = 0b0;
17611 let Inst{31-21} = 0b11100101010;
17612 let prefersSlot3 = 1;
17614 def M5_vmpybuu : HInst<
17615 (outs DoubleRegs:$Rdd32),
17616 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17617 "$Rdd32 = vmpybu($Rs32,$Rt32)",
17618 tc_c21d7447, TypeM>, Enc_be32a5 {
17619 let Inst{7-5} = 0b001;
17620 let Inst{13-13} = 0b0;
17621 let Inst{31-21} = 0b11100101100;
17622 let prefersSlot3 = 1;
17624 def M5_vrmacbsu : HInst<
17625 (outs DoubleRegs:$Rxx32),
17626 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17627 "$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17628 tc_7f8ae742, TypeM>, Enc_88c16c {
17629 let Inst{7-5} = 0b001;
17630 let Inst{13-13} = 0b0;
17631 let Inst{31-21} = 0b11101010110;
17632 let prefersSlot3 = 1;
17633 let Constraints = "$Rxx32 = $Rxx32in";
17635 def M5_vrmacbuu : HInst<
17636 (outs DoubleRegs:$Rxx32),
17637 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17638 "$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17639 tc_7f8ae742, TypeM>, Enc_88c16c {
17640 let Inst{7-5} = 0b001;
17641 let Inst{13-13} = 0b0;
17642 let Inst{31-21} = 0b11101010100;
17643 let prefersSlot3 = 1;
17644 let Constraints = "$Rxx32 = $Rxx32in";
17646 def M5_vrmpybsu : HInst<
17647 (outs DoubleRegs:$Rdd32),
17648 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17649 "$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17650 tc_c21d7447, TypeM>, Enc_a56825 {
17651 let Inst{7-5} = 0b001;
17652 let Inst{13-13} = 0b0;
17653 let Inst{31-21} = 0b11101000110;
17654 let prefersSlot3 = 1;
17656 def M5_vrmpybuu : HInst<
17657 (outs DoubleRegs:$Rdd32),
17658 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17659 "$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17660 tc_c21d7447, TypeM>, Enc_a56825 {
17661 let Inst{7-5} = 0b001;
17662 let Inst{13-13} = 0b0;
17663 let Inst{31-21} = 0b11101000100;
17664 let prefersSlot3 = 1;
17666 def M6_vabsdiffb : HInst<
17667 (outs DoubleRegs:$Rdd32),
17668 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17669 "$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17670 tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17671 let Inst{7-5} = 0b000;
17672 let Inst{13-13} = 0b0;
17673 let Inst{31-21} = 0b11101000111;
17674 let prefersSlot3 = 1;
17676 def M6_vabsdiffub : HInst<
17677 (outs DoubleRegs:$Rdd32),
17678 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17679 "$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17680 tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17681 let Inst{7-5} = 0b000;
17682 let Inst{13-13} = 0b0;
17683 let Inst{31-21} = 0b11101000101;
17684 let prefersSlot3 = 1;
17686 def M7_dcmpyiw : HInst<
17687 (outs DoubleRegs:$Rdd32),
17688 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17689 "$Rdd32 = cmpyiw($Rss32,$Rtt32)",
17690 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17691 let Inst{7-5} = 0b010;
17692 let Inst{13-13} = 0b0;
17693 let Inst{31-21} = 0b11101000011;
17694 let prefersSlot3 = 1;
17696 def M7_dcmpyiw_acc : HInst<
17697 (outs DoubleRegs:$Rxx32),
17698 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17699 "$Rxx32 += cmpyiw($Rss32,$Rtt32)",
17700 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17701 let Inst{7-5} = 0b010;
17702 let Inst{13-13} = 0b0;
17703 let Inst{31-21} = 0b11101010011;
17704 let prefersSlot3 = 1;
17705 let Constraints = "$Rxx32 = $Rxx32in";
17707 def M7_dcmpyiwc : HInst<
17708 (outs DoubleRegs:$Rdd32),
17709 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17710 "$Rdd32 = cmpyiw($Rss32,$Rtt32*)",
17711 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17712 let Inst{7-5} = 0b010;
17713 let Inst{13-13} = 0b0;
17714 let Inst{31-21} = 0b11101000111;
17715 let prefersSlot3 = 1;
17717 def M7_dcmpyiwc_acc : HInst<
17718 (outs DoubleRegs:$Rxx32),
17719 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17720 "$Rxx32 += cmpyiw($Rss32,$Rtt32*)",
17721 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17722 let Inst{7-5} = 0b110;
17723 let Inst{13-13} = 0b0;
17724 let Inst{31-21} = 0b11101010010;
17725 let prefersSlot3 = 1;
17726 let Constraints = "$Rxx32 = $Rxx32in";
17728 def M7_dcmpyrw : HInst<
17729 (outs DoubleRegs:$Rdd32),
17730 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17731 "$Rdd32 = cmpyrw($Rss32,$Rtt32)",
17732 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17733 let Inst{7-5} = 0b010;
17734 let Inst{13-13} = 0b0;
17735 let Inst{31-21} = 0b11101000100;
17736 let prefersSlot3 = 1;
17738 def M7_dcmpyrw_acc : HInst<
17739 (outs DoubleRegs:$Rxx32),
17740 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17741 "$Rxx32 += cmpyrw($Rss32,$Rtt32)",
17742 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17743 let Inst{7-5} = 0b010;
17744 let Inst{13-13} = 0b0;
17745 let Inst{31-21} = 0b11101010100;
17746 let prefersSlot3 = 1;
17747 let Constraints = "$Rxx32 = $Rxx32in";
17749 def M7_dcmpyrwc : HInst<
17750 (outs DoubleRegs:$Rdd32),
17751 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17752 "$Rdd32 = cmpyrw($Rss32,$Rtt32*)",
17753 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17754 let Inst{7-5} = 0b010;
17755 let Inst{13-13} = 0b0;
17756 let Inst{31-21} = 0b11101000110;
17757 let prefersSlot3 = 1;
17759 def M7_dcmpyrwc_acc : HInst<
17760 (outs DoubleRegs:$Rxx32),
17761 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17762 "$Rxx32 += cmpyrw($Rss32,$Rtt32*)",
17763 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17764 let Inst{7-5} = 0b010;
17765 let Inst{13-13} = 0b0;
17766 let Inst{31-21} = 0b11101010110;
17767 let prefersSlot3 = 1;
17768 let Constraints = "$Rxx32 = $Rxx32in";
17770 def M7_vdmpy : HInst<
17771 (outs DoubleRegs:$Rdd32),
17772 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17773 "$Rdd32 = vdmpyw($Rss32,$Rtt32)",
17774 tc_5a4b5e58, TypeM>, Requires<[HasV67]> {
17775 let isPseudo = 1;
17776 let isCodeGenOnly = 1;
17778 def M7_vdmpy_acc : HInst<
17779 (outs DoubleRegs:$Rxx32),
17780 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17781 "$Rxx32 += vdmpyw($Rss32,$Rtt32)",
17782 tc_197dce51, TypeM>, Requires<[HasV67]> {
17783 let isPseudo = 1;
17784 let isCodeGenOnly = 1;
17785 let Constraints = "$Rxx32 = $Rxx32in";
17787 def M7_wcmpyiw : HInst<
17788 (outs IntRegs:$Rd32),
17789 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17790 "$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat",
17791 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17792 let Inst{7-5} = 0b000;
17793 let Inst{13-13} = 0b0;
17794 let Inst{31-21} = 0b11101001001;
17795 let hasNewValue = 1;
17796 let opNewValue = 0;
17797 let prefersSlot3 = 1;
17798 let Defs = [USR_OVF];
17800 def M7_wcmpyiw_rnd : HInst<
17801 (outs IntRegs:$Rd32),
17802 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17803 "$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat",
17804 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17805 let Inst{7-5} = 0b000;
17806 let Inst{13-13} = 0b0;
17807 let Inst{31-21} = 0b11101001101;
17808 let hasNewValue = 1;
17809 let opNewValue = 0;
17810 let prefersSlot3 = 1;
17811 let Defs = [USR_OVF];
17813 def M7_wcmpyiwc : HInst<
17814 (outs IntRegs:$Rd32),
17815 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17816 "$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat",
17817 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17818 let Inst{7-5} = 0b100;
17819 let Inst{13-13} = 0b0;
17820 let Inst{31-21} = 0b11101001000;
17821 let hasNewValue = 1;
17822 let opNewValue = 0;
17823 let prefersSlot3 = 1;
17824 let Defs = [USR_OVF];
17826 def M7_wcmpyiwc_rnd : HInst<
17827 (outs IntRegs:$Rd32),
17828 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17829 "$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat",
17830 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17831 let Inst{7-5} = 0b100;
17832 let Inst{13-13} = 0b0;
17833 let Inst{31-21} = 0b11101001100;
17834 let hasNewValue = 1;
17835 let opNewValue = 0;
17836 let prefersSlot3 = 1;
17837 let Defs = [USR_OVF];
17839 def M7_wcmpyrw : HInst<
17840 (outs IntRegs:$Rd32),
17841 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17842 "$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat",
17843 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17844 let Inst{7-5} = 0b000;
17845 let Inst{13-13} = 0b0;
17846 let Inst{31-21} = 0b11101001010;
17847 let hasNewValue = 1;
17848 let opNewValue = 0;
17849 let prefersSlot3 = 1;
17850 let Defs = [USR_OVF];
17852 def M7_wcmpyrw_rnd : HInst<
17853 (outs IntRegs:$Rd32),
17854 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17855 "$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat",
17856 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17857 let Inst{7-5} = 0b000;
17858 let Inst{13-13} = 0b0;
17859 let Inst{31-21} = 0b11101001110;
17860 let hasNewValue = 1;
17861 let opNewValue = 0;
17862 let prefersSlot3 = 1;
17863 let Defs = [USR_OVF];
17865 def M7_wcmpyrwc : HInst<
17866 (outs IntRegs:$Rd32),
17867 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17868 "$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat",
17869 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17870 let Inst{7-5} = 0b000;
17871 let Inst{13-13} = 0b0;
17872 let Inst{31-21} = 0b11101001011;
17873 let hasNewValue = 1;
17874 let opNewValue = 0;
17875 let prefersSlot3 = 1;
17876 let Defs = [USR_OVF];
17878 def M7_wcmpyrwc_rnd : HInst<
17879 (outs IntRegs:$Rd32),
17880 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17881 "$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat",
17882 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17883 let Inst{7-5} = 0b000;
17884 let Inst{13-13} = 0b0;
17885 let Inst{31-21} = 0b11101001111;
17886 let hasNewValue = 1;
17887 let opNewValue = 0;
17888 let prefersSlot3 = 1;
17889 let Defs = [USR_OVF];
17891 def PS_loadrbabs : HInst<
17892 (outs IntRegs:$Rd32),
17893 (ins u32_0Imm:$Ii),
17894 "$Rd32 = memb(#$Ii)",
17895 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17896 let Inst{24-21} = 0b1000;
17897 let Inst{31-27} = 0b01001;
17898 let hasNewValue = 1;
17899 let opNewValue = 0;
17900 let addrMode = Absolute;
17901 let accessSize = ByteAccess;
17902 let mayLoad = 1;
17903 let isExtended = 1;
17904 let BaseOpcode = "L4_loadrb_abs";
17905 let CextOpcode = "L2_loadrb";
17906 let isPredicable = 1;
17907 let DecoderNamespace = "MustExtend";
17908 let isExtended = 1;
17909 let opExtendable = 1;
17910 let isExtentSigned = 0;
17911 let opExtentBits = 16;
17912 let opExtentAlign = 0;
17914 def PS_loadrdabs : HInst<
17915 (outs DoubleRegs:$Rdd32),
17916 (ins u29_3Imm:$Ii),
17917 "$Rdd32 = memd(#$Ii)",
17918 tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
17919 let Inst{24-21} = 0b1110;
17920 let Inst{31-27} = 0b01001;
17921 let addrMode = Absolute;
17922 let accessSize = DoubleWordAccess;
17923 let mayLoad = 1;
17924 let isExtended = 1;
17925 let BaseOpcode = "L4_loadrd_abs";
17926 let CextOpcode = "L2_loadrd";
17927 let isPredicable = 1;
17928 let DecoderNamespace = "MustExtend";
17929 let isExtended = 1;
17930 let opExtendable = 1;
17931 let isExtentSigned = 0;
17932 let opExtentBits = 19;
17933 let opExtentAlign = 3;
17935 def PS_loadrhabs : HInst<
17936 (outs IntRegs:$Rd32),
17937 (ins u31_1Imm:$Ii),
17938 "$Rd32 = memh(#$Ii)",
17939 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17940 let Inst{24-21} = 0b1010;
17941 let Inst{31-27} = 0b01001;
17942 let hasNewValue = 1;
17943 let opNewValue = 0;
17944 let addrMode = Absolute;
17945 let accessSize = HalfWordAccess;
17946 let mayLoad = 1;
17947 let isExtended = 1;
17948 let BaseOpcode = "L4_loadrh_abs";
17949 let CextOpcode = "L2_loadrh";
17950 let isPredicable = 1;
17951 let DecoderNamespace = "MustExtend";
17952 let isExtended = 1;
17953 let opExtendable = 1;
17954 let isExtentSigned = 0;
17955 let opExtentBits = 17;
17956 let opExtentAlign = 1;
17958 def PS_loadriabs : HInst<
17959 (outs IntRegs:$Rd32),
17960 (ins u30_2Imm:$Ii),
17961 "$Rd32 = memw(#$Ii)",
17962 tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17963 let Inst{24-21} = 0b1100;
17964 let Inst{31-27} = 0b01001;
17965 let hasNewValue = 1;
17966 let opNewValue = 0;
17967 let addrMode = Absolute;
17968 let accessSize = WordAccess;
17969 let mayLoad = 1;
17970 let isExtended = 1;
17971 let BaseOpcode = "L4_loadri_abs";
17972 let CextOpcode = "L2_loadri";
17973 let isPredicable = 1;
17974 let DecoderNamespace = "MustExtend";
17975 let isExtended = 1;
17976 let opExtendable = 1;
17977 let isExtentSigned = 0;
17978 let opExtentBits = 18;
17979 let opExtentAlign = 2;
17981 def PS_loadrubabs : HInst<
17982 (outs IntRegs:$Rd32),
17983 (ins u32_0Imm:$Ii),
17984 "$Rd32 = memub(#$Ii)",
17985 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17986 let Inst{24-21} = 0b1001;
17987 let Inst{31-27} = 0b01001;
17988 let hasNewValue = 1;
17989 let opNewValue = 0;
17990 let addrMode = Absolute;
17991 let accessSize = ByteAccess;
17992 let mayLoad = 1;
17993 let isExtended = 1;
17994 let BaseOpcode = "L4_loadrub_abs";
17995 let CextOpcode = "L2_loadrub";
17996 let isPredicable = 1;
17997 let DecoderNamespace = "MustExtend";
17998 let isExtended = 1;
17999 let opExtendable = 1;
18000 let isExtentSigned = 0;
18001 let opExtentBits = 16;
18002 let opExtentAlign = 0;
18004 def PS_loadruhabs : HInst<
18005 (outs IntRegs:$Rd32),
18006 (ins u31_1Imm:$Ii),
18007 "$Rd32 = memuh(#$Ii)",
18008 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
18009 let Inst{24-21} = 0b1011;
18010 let Inst{31-27} = 0b01001;
18011 let hasNewValue = 1;
18012 let opNewValue = 0;
18013 let addrMode = Absolute;
18014 let accessSize = HalfWordAccess;
18015 let mayLoad = 1;
18016 let isExtended = 1;
18017 let BaseOpcode = "L4_loadruh_abs";
18018 let CextOpcode = "L2_loadruh";
18019 let isPredicable = 1;
18020 let DecoderNamespace = "MustExtend";
18021 let isExtended = 1;
18022 let opExtendable = 1;
18023 let isExtentSigned = 0;
18024 let opExtentBits = 17;
18025 let opExtentAlign = 1;
18027 def PS_storerbabs : HInst<
18028 (outs),
18029 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
18030 "memb(#$Ii) = $Rt32",
18031 tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
18032 let Inst{24-21} = 0b0000;
18033 let Inst{31-27} = 0b01001;
18034 let addrMode = Absolute;
18035 let accessSize = ByteAccess;
18036 let isExtended = 1;
18037 let mayStore = 1;
18038 let BaseOpcode = "S2_storerbabs";
18039 let CextOpcode = "S2_storerb";
18040 let isNVStorable = 1;
18041 let isPredicable = 1;
18042 let DecoderNamespace = "MustExtend";
18043 let isExtended = 1;
18044 let opExtendable = 0;
18045 let isExtentSigned = 0;
18046 let opExtentBits = 16;
18047 let opExtentAlign = 0;
18049 def PS_storerbnewabs : HInst<
18050 (outs),
18051 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
18052 "memb(#$Ii) = $Nt8.new",
18053 tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
18054 let Inst{12-11} = 0b00;
18055 let Inst{24-21} = 0b0101;
18056 let Inst{31-27} = 0b01001;
18057 let addrMode = Absolute;
18058 let accessSize = ByteAccess;
18059 let isNVStore = 1;
18060 let isNewValue = 1;
18061 let isExtended = 1;
18062 let isRestrictNoSlot1Store = 1;
18063 let mayStore = 1;
18064 let BaseOpcode = "S2_storerbabs";
18065 let CextOpcode = "S2_storerb";
18066 let isPredicable = 1;
18067 let DecoderNamespace = "MustExtend";
18068 let isExtended = 1;
18069 let opExtendable = 0;
18070 let isExtentSigned = 0;
18071 let opExtentBits = 16;
18072 let opExtentAlign = 0;
18073 let opNewValue = 1;
18075 def PS_storerdabs : HInst<
18076 (outs),
18077 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
18078 "memd(#$Ii) = $Rtt32",
18079 tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
18080 let Inst{24-21} = 0b0110;
18081 let Inst{31-27} = 0b01001;
18082 let addrMode = Absolute;
18083 let accessSize = DoubleWordAccess;
18084 let isExtended = 1;
18085 let mayStore = 1;
18086 let BaseOpcode = "S2_storerdabs";
18087 let CextOpcode = "S2_storerd";
18088 let isPredicable = 1;
18089 let DecoderNamespace = "MustExtend";
18090 let isExtended = 1;
18091 let opExtendable = 0;
18092 let isExtentSigned = 0;
18093 let opExtentBits = 19;
18094 let opExtentAlign = 3;
18096 def PS_storerfabs : HInst<
18097 (outs),
18098 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
18099 "memh(#$Ii) = $Rt32.h",
18100 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18101 let Inst{24-21} = 0b0011;
18102 let Inst{31-27} = 0b01001;
18103 let addrMode = Absolute;
18104 let accessSize = HalfWordAccess;
18105 let isExtended = 1;
18106 let mayStore = 1;
18107 let BaseOpcode = "S2_storerfabs";
18108 let CextOpcode = "S2_storerf";
18109 let isPredicable = 1;
18110 let DecoderNamespace = "MustExtend";
18111 let isExtended = 1;
18112 let opExtendable = 0;
18113 let isExtentSigned = 0;
18114 let opExtentBits = 17;
18115 let opExtentAlign = 1;
18117 def PS_storerhabs : HInst<
18118 (outs),
18119 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
18120 "memh(#$Ii) = $Rt32",
18121 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18122 let Inst{24-21} = 0b0010;
18123 let Inst{31-27} = 0b01001;
18124 let addrMode = Absolute;
18125 let accessSize = HalfWordAccess;
18126 let isExtended = 1;
18127 let mayStore = 1;
18128 let BaseOpcode = "S2_storerhabs";
18129 let CextOpcode = "S2_storerh";
18130 let isNVStorable = 1;
18131 let isPredicable = 1;
18132 let DecoderNamespace = "MustExtend";
18133 let isExtended = 1;
18134 let opExtendable = 0;
18135 let isExtentSigned = 0;
18136 let opExtentBits = 17;
18137 let opExtentAlign = 1;
18139 def PS_storerhnewabs : HInst<
18140 (outs),
18141 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
18142 "memh(#$Ii) = $Nt8.new",
18143 tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
18144 let Inst{12-11} = 0b01;
18145 let Inst{24-21} = 0b0101;
18146 let Inst{31-27} = 0b01001;
18147 let addrMode = Absolute;
18148 let accessSize = HalfWordAccess;
18149 let isNVStore = 1;
18150 let isNewValue = 1;
18151 let isExtended = 1;
18152 let isRestrictNoSlot1Store = 1;
18153 let mayStore = 1;
18154 let BaseOpcode = "S2_storerhabs";
18155 let CextOpcode = "S2_storerh";
18156 let isPredicable = 1;
18157 let DecoderNamespace = "MustExtend";
18158 let isExtended = 1;
18159 let opExtendable = 0;
18160 let isExtentSigned = 0;
18161 let opExtentBits = 17;
18162 let opExtentAlign = 1;
18163 let opNewValue = 1;
18165 def PS_storeriabs : HInst<
18166 (outs),
18167 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
18168 "memw(#$Ii) = $Rt32",
18169 tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
18170 let Inst{24-21} = 0b0100;
18171 let Inst{31-27} = 0b01001;
18172 let addrMode = Absolute;
18173 let accessSize = WordAccess;
18174 let isExtended = 1;
18175 let mayStore = 1;
18176 let BaseOpcode = "S2_storeriabs";
18177 let CextOpcode = "S2_storeri";
18178 let isNVStorable = 1;
18179 let isPredicable = 1;
18180 let DecoderNamespace = "MustExtend";
18181 let isExtended = 1;
18182 let opExtendable = 0;
18183 let isExtentSigned = 0;
18184 let opExtentBits = 18;
18185 let opExtentAlign = 2;
18187 def PS_storerinewabs : HInst<
18188 (outs),
18189 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
18190 "memw(#$Ii) = $Nt8.new",
18191 tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
18192 let Inst{12-11} = 0b10;
18193 let Inst{24-21} = 0b0101;
18194 let Inst{31-27} = 0b01001;
18195 let addrMode = Absolute;
18196 let accessSize = WordAccess;
18197 let isNVStore = 1;
18198 let isNewValue = 1;
18199 let isExtended = 1;
18200 let isRestrictNoSlot1Store = 1;
18201 let mayStore = 1;
18202 let BaseOpcode = "S2_storeriabs";
18203 let CextOpcode = "S2_storeri";
18204 let isPredicable = 1;
18205 let DecoderNamespace = "MustExtend";
18206 let isExtended = 1;
18207 let opExtendable = 0;
18208 let isExtentSigned = 0;
18209 let opExtentBits = 18;
18210 let opExtentAlign = 2;
18211 let opNewValue = 1;
18213 def PS_trap1 : HInst<
18214 (outs),
18215 (ins u8_0Imm:$Ii),
18216 "trap1(#$Ii)",
18217 tc_53c851ab, TypeJ>, Enc_a51a9a, Requires<[HasPreV65]> {
18218 let Inst{1-0} = 0b00;
18219 let Inst{7-5} = 0b000;
18220 let Inst{13-13} = 0b0;
18221 let Inst{31-16} = 0b0101010010000000;
18223 def R6_release_at_vi : HInst<
18224 (outs),
18225 (ins IntRegs:$Rs32),
18226 "release($Rs32):at",
18227 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18228 let Inst{7-2} = 0b000011;
18229 let Inst{13-13} = 0b0;
18230 let Inst{31-21} = 0b10100000111;
18231 let isSolo = 1;
18232 let mayStore = 1;
18234 def R6_release_st_vi : HInst<
18235 (outs),
18236 (ins IntRegs:$Rs32),
18237 "release($Rs32):st",
18238 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18239 let Inst{7-2} = 0b001011;
18240 let Inst{13-13} = 0b0;
18241 let Inst{31-21} = 0b10100000111;
18242 let isSolo = 1;
18243 let mayStore = 1;
18245 def S2_addasl_rrri : HInst<
18246 (outs IntRegs:$Rd32),
18247 (ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
18248 "$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
18249 tc_2c13e7f5, TypeS_3op>, Enc_47ef61 {
18250 let Inst{13-13} = 0b0;
18251 let Inst{31-21} = 0b11000100000;
18252 let hasNewValue = 1;
18253 let opNewValue = 0;
18254 let prefersSlot3 = 1;
18256 def S2_allocframe : HInst<
18257 (outs IntRegs:$Rx32),
18258 (ins IntRegs:$Rx32in, u11_3Imm:$Ii),
18259 "allocframe($Rx32,#$Ii):raw",
18260 tc_934753bb, TypeST>, Enc_22c845 {
18261 let Inst{13-11} = 0b000;
18262 let Inst{31-21} = 0b10100000100;
18263 let hasNewValue = 1;
18264 let opNewValue = 0;
18265 let addrMode = BaseImmOffset;
18266 let accessSize = DoubleWordAccess;
18267 let mayStore = 1;
18268 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
18269 let Defs = [R30];
18270 let Constraints = "$Rx32 = $Rx32in";
18272 def S2_asl_i_p : HInst<
18273 (outs DoubleRegs:$Rdd32),
18274 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18275 "$Rdd32 = asl($Rss32,#$Ii)",
18276 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18277 let Inst{7-5} = 0b010;
18278 let Inst{31-21} = 0b10000000000;
18280 def S2_asl_i_p_acc : HInst<
18281 (outs DoubleRegs:$Rxx32),
18282 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18283 "$Rxx32 += asl($Rss32,#$Ii)",
18284 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18285 let Inst{7-5} = 0b110;
18286 let Inst{31-21} = 0b10000010000;
18287 let prefersSlot3 = 1;
18288 let Constraints = "$Rxx32 = $Rxx32in";
18290 def S2_asl_i_p_and : HInst<
18291 (outs DoubleRegs:$Rxx32),
18292 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18293 "$Rxx32 &= asl($Rss32,#$Ii)",
18294 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18295 let Inst{7-5} = 0b010;
18296 let Inst{31-21} = 0b10000010010;
18297 let prefersSlot3 = 1;
18298 let Constraints = "$Rxx32 = $Rxx32in";
18300 def S2_asl_i_p_nac : HInst<
18301 (outs DoubleRegs:$Rxx32),
18302 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18303 "$Rxx32 -= asl($Rss32,#$Ii)",
18304 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18305 let Inst{7-5} = 0b010;
18306 let Inst{31-21} = 0b10000010000;
18307 let prefersSlot3 = 1;
18308 let Constraints = "$Rxx32 = $Rxx32in";
18310 def S2_asl_i_p_or : HInst<
18311 (outs DoubleRegs:$Rxx32),
18312 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18313 "$Rxx32 |= asl($Rss32,#$Ii)",
18314 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18315 let Inst{7-5} = 0b110;
18316 let Inst{31-21} = 0b10000010010;
18317 let prefersSlot3 = 1;
18318 let Constraints = "$Rxx32 = $Rxx32in";
18320 def S2_asl_i_p_xacc : HInst<
18321 (outs DoubleRegs:$Rxx32),
18322 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18323 "$Rxx32 ^= asl($Rss32,#$Ii)",
18324 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18325 let Inst{7-5} = 0b010;
18326 let Inst{31-21} = 0b10000010100;
18327 let prefersSlot3 = 1;
18328 let Constraints = "$Rxx32 = $Rxx32in";
18330 def S2_asl_i_r : HInst<
18331 (outs IntRegs:$Rd32),
18332 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18333 "$Rd32 = asl($Rs32,#$Ii)",
18334 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18335 let Inst{7-5} = 0b010;
18336 let Inst{13-13} = 0b0;
18337 let Inst{31-21} = 0b10001100000;
18338 let hasNewValue = 1;
18339 let opNewValue = 0;
18341 def S2_asl_i_r_acc : HInst<
18342 (outs IntRegs:$Rx32),
18343 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18344 "$Rx32 += asl($Rs32,#$Ii)",
18345 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18346 let Inst{7-5} = 0b110;
18347 let Inst{13-13} = 0b0;
18348 let Inst{31-21} = 0b10001110000;
18349 let hasNewValue = 1;
18350 let opNewValue = 0;
18351 let prefersSlot3 = 1;
18352 let Constraints = "$Rx32 = $Rx32in";
18354 def S2_asl_i_r_and : HInst<
18355 (outs IntRegs:$Rx32),
18356 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18357 "$Rx32 &= asl($Rs32,#$Ii)",
18358 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18359 let Inst{7-5} = 0b010;
18360 let Inst{13-13} = 0b0;
18361 let Inst{31-21} = 0b10001110010;
18362 let hasNewValue = 1;
18363 let opNewValue = 0;
18364 let prefersSlot3 = 1;
18365 let Constraints = "$Rx32 = $Rx32in";
18367 def S2_asl_i_r_nac : HInst<
18368 (outs IntRegs:$Rx32),
18369 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18370 "$Rx32 -= asl($Rs32,#$Ii)",
18371 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18372 let Inst{7-5} = 0b010;
18373 let Inst{13-13} = 0b0;
18374 let Inst{31-21} = 0b10001110000;
18375 let hasNewValue = 1;
18376 let opNewValue = 0;
18377 let prefersSlot3 = 1;
18378 let Constraints = "$Rx32 = $Rx32in";
18380 def S2_asl_i_r_or : HInst<
18381 (outs IntRegs:$Rx32),
18382 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18383 "$Rx32 |= asl($Rs32,#$Ii)",
18384 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18385 let Inst{7-5} = 0b110;
18386 let Inst{13-13} = 0b0;
18387 let Inst{31-21} = 0b10001110010;
18388 let hasNewValue = 1;
18389 let opNewValue = 0;
18390 let prefersSlot3 = 1;
18391 let Constraints = "$Rx32 = $Rx32in";
18393 def S2_asl_i_r_sat : HInst<
18394 (outs IntRegs:$Rd32),
18395 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18396 "$Rd32 = asl($Rs32,#$Ii):sat",
18397 tc_8a825db2, TypeS_2op>, Enc_a05677 {
18398 let Inst{7-5} = 0b010;
18399 let Inst{13-13} = 0b0;
18400 let Inst{31-21} = 0b10001100010;
18401 let hasNewValue = 1;
18402 let opNewValue = 0;
18403 let prefersSlot3 = 1;
18404 let Defs = [USR_OVF];
18406 def S2_asl_i_r_xacc : HInst<
18407 (outs IntRegs:$Rx32),
18408 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18409 "$Rx32 ^= asl($Rs32,#$Ii)",
18410 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18411 let Inst{7-5} = 0b010;
18412 let Inst{13-13} = 0b0;
18413 let Inst{31-21} = 0b10001110100;
18414 let hasNewValue = 1;
18415 let opNewValue = 0;
18416 let prefersSlot3 = 1;
18417 let Constraints = "$Rx32 = $Rx32in";
18419 def S2_asl_i_vh : HInst<
18420 (outs DoubleRegs:$Rdd32),
18421 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18422 "$Rdd32 = vaslh($Rss32,#$Ii)",
18423 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18424 let Inst{7-5} = 0b010;
18425 let Inst{13-12} = 0b00;
18426 let Inst{31-21} = 0b10000000100;
18428 def S2_asl_i_vw : HInst<
18429 (outs DoubleRegs:$Rdd32),
18430 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18431 "$Rdd32 = vaslw($Rss32,#$Ii)",
18432 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18433 let Inst{7-5} = 0b010;
18434 let Inst{13-13} = 0b0;
18435 let Inst{31-21} = 0b10000000010;
18437 def S2_asl_r_p : HInst<
18438 (outs DoubleRegs:$Rdd32),
18439 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18440 "$Rdd32 = asl($Rss32,$Rt32)",
18441 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18442 let Inst{7-5} = 0b100;
18443 let Inst{13-13} = 0b0;
18444 let Inst{31-21} = 0b11000011100;
18446 def S2_asl_r_p_acc : HInst<
18447 (outs DoubleRegs:$Rxx32),
18448 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18449 "$Rxx32 += asl($Rss32,$Rt32)",
18450 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18451 let Inst{7-5} = 0b100;
18452 let Inst{13-13} = 0b0;
18453 let Inst{31-21} = 0b11001011110;
18454 let prefersSlot3 = 1;
18455 let Constraints = "$Rxx32 = $Rxx32in";
18457 def S2_asl_r_p_and : HInst<
18458 (outs DoubleRegs:$Rxx32),
18459 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18460 "$Rxx32 &= asl($Rss32,$Rt32)",
18461 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18462 let Inst{7-5} = 0b100;
18463 let Inst{13-13} = 0b0;
18464 let Inst{31-21} = 0b11001011010;
18465 let prefersSlot3 = 1;
18466 let Constraints = "$Rxx32 = $Rxx32in";
18468 def S2_asl_r_p_nac : HInst<
18469 (outs DoubleRegs:$Rxx32),
18470 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18471 "$Rxx32 -= asl($Rss32,$Rt32)",
18472 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18473 let Inst{7-5} = 0b100;
18474 let Inst{13-13} = 0b0;
18475 let Inst{31-21} = 0b11001011100;
18476 let prefersSlot3 = 1;
18477 let Constraints = "$Rxx32 = $Rxx32in";
18479 def S2_asl_r_p_or : HInst<
18480 (outs DoubleRegs:$Rxx32),
18481 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18482 "$Rxx32 |= asl($Rss32,$Rt32)",
18483 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18484 let Inst{7-5} = 0b100;
18485 let Inst{13-13} = 0b0;
18486 let Inst{31-21} = 0b11001011000;
18487 let prefersSlot3 = 1;
18488 let Constraints = "$Rxx32 = $Rxx32in";
18490 def S2_asl_r_p_xor : HInst<
18491 (outs DoubleRegs:$Rxx32),
18492 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18493 "$Rxx32 ^= asl($Rss32,$Rt32)",
18494 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18495 let Inst{7-5} = 0b100;
18496 let Inst{13-13} = 0b0;
18497 let Inst{31-21} = 0b11001011011;
18498 let prefersSlot3 = 1;
18499 let Constraints = "$Rxx32 = $Rxx32in";
18501 def S2_asl_r_r : HInst<
18502 (outs IntRegs:$Rd32),
18503 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18504 "$Rd32 = asl($Rs32,$Rt32)",
18505 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18506 let Inst{7-5} = 0b100;
18507 let Inst{13-13} = 0b0;
18508 let Inst{31-21} = 0b11000110010;
18509 let hasNewValue = 1;
18510 let opNewValue = 0;
18512 def S2_asl_r_r_acc : HInst<
18513 (outs IntRegs:$Rx32),
18514 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18515 "$Rx32 += asl($Rs32,$Rt32)",
18516 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18517 let Inst{7-5} = 0b100;
18518 let Inst{13-13} = 0b0;
18519 let Inst{31-21} = 0b11001100110;
18520 let hasNewValue = 1;
18521 let opNewValue = 0;
18522 let prefersSlot3 = 1;
18523 let Constraints = "$Rx32 = $Rx32in";
18525 def S2_asl_r_r_and : HInst<
18526 (outs IntRegs:$Rx32),
18527 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18528 "$Rx32 &= asl($Rs32,$Rt32)",
18529 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18530 let Inst{7-5} = 0b100;
18531 let Inst{13-13} = 0b0;
18532 let Inst{31-21} = 0b11001100010;
18533 let hasNewValue = 1;
18534 let opNewValue = 0;
18535 let prefersSlot3 = 1;
18536 let Constraints = "$Rx32 = $Rx32in";
18538 def S2_asl_r_r_nac : HInst<
18539 (outs IntRegs:$Rx32),
18540 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18541 "$Rx32 -= asl($Rs32,$Rt32)",
18542 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18543 let Inst{7-5} = 0b100;
18544 let Inst{13-13} = 0b0;
18545 let Inst{31-21} = 0b11001100100;
18546 let hasNewValue = 1;
18547 let opNewValue = 0;
18548 let prefersSlot3 = 1;
18549 let Constraints = "$Rx32 = $Rx32in";
18551 def S2_asl_r_r_or : HInst<
18552 (outs IntRegs:$Rx32),
18553 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18554 "$Rx32 |= asl($Rs32,$Rt32)",
18555 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18556 let Inst{7-5} = 0b100;
18557 let Inst{13-13} = 0b0;
18558 let Inst{31-21} = 0b11001100000;
18559 let hasNewValue = 1;
18560 let opNewValue = 0;
18561 let prefersSlot3 = 1;
18562 let Constraints = "$Rx32 = $Rx32in";
18564 def S2_asl_r_r_sat : HInst<
18565 (outs IntRegs:$Rd32),
18566 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18567 "$Rd32 = asl($Rs32,$Rt32):sat",
18568 tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18569 let Inst{7-5} = 0b100;
18570 let Inst{13-13} = 0b0;
18571 let Inst{31-21} = 0b11000110000;
18572 let hasNewValue = 1;
18573 let opNewValue = 0;
18574 let prefersSlot3 = 1;
18575 let Defs = [USR_OVF];
18577 def S2_asl_r_vh : HInst<
18578 (outs DoubleRegs:$Rdd32),
18579 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18580 "$Rdd32 = vaslh($Rss32,$Rt32)",
18581 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18582 let Inst{7-5} = 0b100;
18583 let Inst{13-13} = 0b0;
18584 let Inst{31-21} = 0b11000011010;
18586 def S2_asl_r_vw : HInst<
18587 (outs DoubleRegs:$Rdd32),
18588 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18589 "$Rdd32 = vaslw($Rss32,$Rt32)",
18590 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18591 let Inst{7-5} = 0b100;
18592 let Inst{13-13} = 0b0;
18593 let Inst{31-21} = 0b11000011000;
18595 def S2_asr_i_p : HInst<
18596 (outs DoubleRegs:$Rdd32),
18597 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18598 "$Rdd32 = asr($Rss32,#$Ii)",
18599 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18600 let Inst{7-5} = 0b000;
18601 let Inst{31-21} = 0b10000000000;
18603 def S2_asr_i_p_acc : HInst<
18604 (outs DoubleRegs:$Rxx32),
18605 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18606 "$Rxx32 += asr($Rss32,#$Ii)",
18607 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18608 let Inst{7-5} = 0b100;
18609 let Inst{31-21} = 0b10000010000;
18610 let prefersSlot3 = 1;
18611 let Constraints = "$Rxx32 = $Rxx32in";
18613 def S2_asr_i_p_and : HInst<
18614 (outs DoubleRegs:$Rxx32),
18615 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18616 "$Rxx32 &= asr($Rss32,#$Ii)",
18617 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18618 let Inst{7-5} = 0b000;
18619 let Inst{31-21} = 0b10000010010;
18620 let prefersSlot3 = 1;
18621 let Constraints = "$Rxx32 = $Rxx32in";
18623 def S2_asr_i_p_nac : HInst<
18624 (outs DoubleRegs:$Rxx32),
18625 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18626 "$Rxx32 -= asr($Rss32,#$Ii)",
18627 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18628 let Inst{7-5} = 0b000;
18629 let Inst{31-21} = 0b10000010000;
18630 let prefersSlot3 = 1;
18631 let Constraints = "$Rxx32 = $Rxx32in";
18633 def S2_asr_i_p_or : HInst<
18634 (outs DoubleRegs:$Rxx32),
18635 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18636 "$Rxx32 |= asr($Rss32,#$Ii)",
18637 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18638 let Inst{7-5} = 0b100;
18639 let Inst{31-21} = 0b10000010010;
18640 let prefersSlot3 = 1;
18641 let Constraints = "$Rxx32 = $Rxx32in";
18643 def S2_asr_i_p_rnd : HInst<
18644 (outs DoubleRegs:$Rdd32),
18645 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18646 "$Rdd32 = asr($Rss32,#$Ii):rnd",
18647 tc_0dfac0a7, TypeS_2op>, Enc_5eac98 {
18648 let Inst{7-5} = 0b111;
18649 let Inst{31-21} = 0b10000000110;
18650 let prefersSlot3 = 1;
18652 def S2_asr_i_p_rnd_goodsyntax : HInst<
18653 (outs DoubleRegs:$Rdd32),
18654 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18655 "$Rdd32 = asrrnd($Rss32,#$Ii)",
18656 tc_0dfac0a7, TypeS_2op> {
18657 let isPseudo = 1;
18659 def S2_asr_i_r : HInst<
18660 (outs IntRegs:$Rd32),
18661 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18662 "$Rd32 = asr($Rs32,#$Ii)",
18663 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18664 let Inst{7-5} = 0b000;
18665 let Inst{13-13} = 0b0;
18666 let Inst{31-21} = 0b10001100000;
18667 let hasNewValue = 1;
18668 let opNewValue = 0;
18670 def S2_asr_i_r_acc : HInst<
18671 (outs IntRegs:$Rx32),
18672 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18673 "$Rx32 += asr($Rs32,#$Ii)",
18674 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18675 let Inst{7-5} = 0b100;
18676 let Inst{13-13} = 0b0;
18677 let Inst{31-21} = 0b10001110000;
18678 let hasNewValue = 1;
18679 let opNewValue = 0;
18680 let prefersSlot3 = 1;
18681 let Constraints = "$Rx32 = $Rx32in";
18683 def S2_asr_i_r_and : HInst<
18684 (outs IntRegs:$Rx32),
18685 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18686 "$Rx32 &= asr($Rs32,#$Ii)",
18687 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18688 let Inst{7-5} = 0b000;
18689 let Inst{13-13} = 0b0;
18690 let Inst{31-21} = 0b10001110010;
18691 let hasNewValue = 1;
18692 let opNewValue = 0;
18693 let prefersSlot3 = 1;
18694 let Constraints = "$Rx32 = $Rx32in";
18696 def S2_asr_i_r_nac : HInst<
18697 (outs IntRegs:$Rx32),
18698 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18699 "$Rx32 -= asr($Rs32,#$Ii)",
18700 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18701 let Inst{7-5} = 0b000;
18702 let Inst{13-13} = 0b0;
18703 let Inst{31-21} = 0b10001110000;
18704 let hasNewValue = 1;
18705 let opNewValue = 0;
18706 let prefersSlot3 = 1;
18707 let Constraints = "$Rx32 = $Rx32in";
18709 def S2_asr_i_r_or : HInst<
18710 (outs IntRegs:$Rx32),
18711 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18712 "$Rx32 |= asr($Rs32,#$Ii)",
18713 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18714 let Inst{7-5} = 0b100;
18715 let Inst{13-13} = 0b0;
18716 let Inst{31-21} = 0b10001110010;
18717 let hasNewValue = 1;
18718 let opNewValue = 0;
18719 let prefersSlot3 = 1;
18720 let Constraints = "$Rx32 = $Rx32in";
18722 def S2_asr_i_r_rnd : HInst<
18723 (outs IntRegs:$Rd32),
18724 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18725 "$Rd32 = asr($Rs32,#$Ii):rnd",
18726 tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
18727 let Inst{7-5} = 0b000;
18728 let Inst{13-13} = 0b0;
18729 let Inst{31-21} = 0b10001100010;
18730 let hasNewValue = 1;
18731 let opNewValue = 0;
18732 let prefersSlot3 = 1;
18734 def S2_asr_i_r_rnd_goodsyntax : HInst<
18735 (outs IntRegs:$Rd32),
18736 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18737 "$Rd32 = asrrnd($Rs32,#$Ii)",
18738 tc_0dfac0a7, TypeS_2op> {
18739 let hasNewValue = 1;
18740 let opNewValue = 0;
18741 let isPseudo = 1;
18743 def S2_asr_i_svw_trun : HInst<
18744 (outs IntRegs:$Rd32),
18745 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18746 "$Rd32 = vasrw($Rss32,#$Ii)",
18747 tc_f34c1c21, TypeS_2op>, Enc_8dec2e {
18748 let Inst{7-5} = 0b010;
18749 let Inst{13-13} = 0b0;
18750 let Inst{31-21} = 0b10001000110;
18751 let hasNewValue = 1;
18752 let opNewValue = 0;
18753 let prefersSlot3 = 1;
18755 def S2_asr_i_vh : HInst<
18756 (outs DoubleRegs:$Rdd32),
18757 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18758 "$Rdd32 = vasrh($Rss32,#$Ii)",
18759 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18760 let Inst{7-5} = 0b000;
18761 let Inst{13-12} = 0b00;
18762 let Inst{31-21} = 0b10000000100;
18764 def S2_asr_i_vw : HInst<
18765 (outs DoubleRegs:$Rdd32),
18766 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18767 "$Rdd32 = vasrw($Rss32,#$Ii)",
18768 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18769 let Inst{7-5} = 0b000;
18770 let Inst{13-13} = 0b0;
18771 let Inst{31-21} = 0b10000000010;
18773 def S2_asr_r_p : HInst<
18774 (outs DoubleRegs:$Rdd32),
18775 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18776 "$Rdd32 = asr($Rss32,$Rt32)",
18777 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18778 let Inst{7-5} = 0b000;
18779 let Inst{13-13} = 0b0;
18780 let Inst{31-21} = 0b11000011100;
18782 def S2_asr_r_p_acc : HInst<
18783 (outs DoubleRegs:$Rxx32),
18784 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18785 "$Rxx32 += asr($Rss32,$Rt32)",
18786 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18787 let Inst{7-5} = 0b000;
18788 let Inst{13-13} = 0b0;
18789 let Inst{31-21} = 0b11001011110;
18790 let prefersSlot3 = 1;
18791 let Constraints = "$Rxx32 = $Rxx32in";
18793 def S2_asr_r_p_and : HInst<
18794 (outs DoubleRegs:$Rxx32),
18795 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18796 "$Rxx32 &= asr($Rss32,$Rt32)",
18797 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18798 let Inst{7-5} = 0b000;
18799 let Inst{13-13} = 0b0;
18800 let Inst{31-21} = 0b11001011010;
18801 let prefersSlot3 = 1;
18802 let Constraints = "$Rxx32 = $Rxx32in";
18804 def S2_asr_r_p_nac : HInst<
18805 (outs DoubleRegs:$Rxx32),
18806 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18807 "$Rxx32 -= asr($Rss32,$Rt32)",
18808 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18809 let Inst{7-5} = 0b000;
18810 let Inst{13-13} = 0b0;
18811 let Inst{31-21} = 0b11001011100;
18812 let prefersSlot3 = 1;
18813 let Constraints = "$Rxx32 = $Rxx32in";
18815 def S2_asr_r_p_or : HInst<
18816 (outs DoubleRegs:$Rxx32),
18817 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18818 "$Rxx32 |= asr($Rss32,$Rt32)",
18819 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18820 let Inst{7-5} = 0b000;
18821 let Inst{13-13} = 0b0;
18822 let Inst{31-21} = 0b11001011000;
18823 let prefersSlot3 = 1;
18824 let Constraints = "$Rxx32 = $Rxx32in";
18826 def S2_asr_r_p_xor : HInst<
18827 (outs DoubleRegs:$Rxx32),
18828 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18829 "$Rxx32 ^= asr($Rss32,$Rt32)",
18830 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18831 let Inst{7-5} = 0b000;
18832 let Inst{13-13} = 0b0;
18833 let Inst{31-21} = 0b11001011011;
18834 let prefersSlot3 = 1;
18835 let Constraints = "$Rxx32 = $Rxx32in";
18837 def S2_asr_r_r : HInst<
18838 (outs IntRegs:$Rd32),
18839 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18840 "$Rd32 = asr($Rs32,$Rt32)",
18841 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18842 let Inst{7-5} = 0b000;
18843 let Inst{13-13} = 0b0;
18844 let Inst{31-21} = 0b11000110010;
18845 let hasNewValue = 1;
18846 let opNewValue = 0;
18848 def S2_asr_r_r_acc : HInst<
18849 (outs IntRegs:$Rx32),
18850 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18851 "$Rx32 += asr($Rs32,$Rt32)",
18852 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18853 let Inst{7-5} = 0b000;
18854 let Inst{13-13} = 0b0;
18855 let Inst{31-21} = 0b11001100110;
18856 let hasNewValue = 1;
18857 let opNewValue = 0;
18858 let prefersSlot3 = 1;
18859 let Constraints = "$Rx32 = $Rx32in";
18861 def S2_asr_r_r_and : HInst<
18862 (outs IntRegs:$Rx32),
18863 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18864 "$Rx32 &= asr($Rs32,$Rt32)",
18865 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18866 let Inst{7-5} = 0b000;
18867 let Inst{13-13} = 0b0;
18868 let Inst{31-21} = 0b11001100010;
18869 let hasNewValue = 1;
18870 let opNewValue = 0;
18871 let prefersSlot3 = 1;
18872 let Constraints = "$Rx32 = $Rx32in";
18874 def S2_asr_r_r_nac : HInst<
18875 (outs IntRegs:$Rx32),
18876 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18877 "$Rx32 -= asr($Rs32,$Rt32)",
18878 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18879 let Inst{7-5} = 0b000;
18880 let Inst{13-13} = 0b0;
18881 let Inst{31-21} = 0b11001100100;
18882 let hasNewValue = 1;
18883 let opNewValue = 0;
18884 let prefersSlot3 = 1;
18885 let Constraints = "$Rx32 = $Rx32in";
18887 def S2_asr_r_r_or : HInst<
18888 (outs IntRegs:$Rx32),
18889 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18890 "$Rx32 |= asr($Rs32,$Rt32)",
18891 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18892 let Inst{7-5} = 0b000;
18893 let Inst{13-13} = 0b0;
18894 let Inst{31-21} = 0b11001100000;
18895 let hasNewValue = 1;
18896 let opNewValue = 0;
18897 let prefersSlot3 = 1;
18898 let Constraints = "$Rx32 = $Rx32in";
18900 def S2_asr_r_r_sat : HInst<
18901 (outs IntRegs:$Rd32),
18902 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18903 "$Rd32 = asr($Rs32,$Rt32):sat",
18904 tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18905 let Inst{7-5} = 0b000;
18906 let Inst{13-13} = 0b0;
18907 let Inst{31-21} = 0b11000110000;
18908 let hasNewValue = 1;
18909 let opNewValue = 0;
18910 let prefersSlot3 = 1;
18911 let Defs = [USR_OVF];
18913 def S2_asr_r_svw_trun : HInst<
18914 (outs IntRegs:$Rd32),
18915 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18916 "$Rd32 = vasrw($Rss32,$Rt32)",
18917 tc_f34c1c21, TypeS_3op>, Enc_3d5b28 {
18918 let Inst{7-5} = 0b010;
18919 let Inst{13-13} = 0b0;
18920 let Inst{31-21} = 0b11000101000;
18921 let hasNewValue = 1;
18922 let opNewValue = 0;
18923 let prefersSlot3 = 1;
18925 def S2_asr_r_vh : HInst<
18926 (outs DoubleRegs:$Rdd32),
18927 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18928 "$Rdd32 = vasrh($Rss32,$Rt32)",
18929 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18930 let Inst{7-5} = 0b000;
18931 let Inst{13-13} = 0b0;
18932 let Inst{31-21} = 0b11000011010;
18934 def S2_asr_r_vw : HInst<
18935 (outs DoubleRegs:$Rdd32),
18936 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18937 "$Rdd32 = vasrw($Rss32,$Rt32)",
18938 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18939 let Inst{7-5} = 0b000;
18940 let Inst{13-13} = 0b0;
18941 let Inst{31-21} = 0b11000011000;
18943 def S2_brev : HInst<
18944 (outs IntRegs:$Rd32),
18945 (ins IntRegs:$Rs32),
18946 "$Rd32 = brev($Rs32)",
18947 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18948 let Inst{13-5} = 0b000000110;
18949 let Inst{31-21} = 0b10001100010;
18950 let hasNewValue = 1;
18951 let opNewValue = 0;
18952 let prefersSlot3 = 1;
18954 def S2_brevp : HInst<
18955 (outs DoubleRegs:$Rdd32),
18956 (ins DoubleRegs:$Rss32),
18957 "$Rdd32 = brev($Rss32)",
18958 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
18959 let Inst{13-5} = 0b000000110;
18960 let Inst{31-21} = 0b10000000110;
18961 let prefersSlot3 = 1;
18963 def S2_cabacdecbin : HInst<
18964 (outs DoubleRegs:$Rdd32),
18965 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18966 "$Rdd32 = decbin($Rss32,$Rtt32)",
18967 tc_db596beb, TypeS_3op>, Enc_a56825 {
18968 let Inst{7-5} = 0b110;
18969 let Inst{13-13} = 0b0;
18970 let Inst{31-21} = 0b11000001110;
18971 let isPredicateLate = 1;
18972 let prefersSlot3 = 1;
18973 let Defs = [P0];
18975 def S2_cl0 : HInst<
18976 (outs IntRegs:$Rd32),
18977 (ins IntRegs:$Rs32),
18978 "$Rd32 = cl0($Rs32)",
18979 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18980 let Inst{13-5} = 0b000000101;
18981 let Inst{31-21} = 0b10001100000;
18982 let hasNewValue = 1;
18983 let opNewValue = 0;
18984 let prefersSlot3 = 1;
18986 def S2_cl0p : HInst<
18987 (outs IntRegs:$Rd32),
18988 (ins DoubleRegs:$Rss32),
18989 "$Rd32 = cl0($Rss32)",
18990 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
18991 let Inst{13-5} = 0b000000010;
18992 let Inst{31-21} = 0b10001000010;
18993 let hasNewValue = 1;
18994 let opNewValue = 0;
18995 let prefersSlot3 = 1;
18997 def S2_cl1 : HInst<
18998 (outs IntRegs:$Rd32),
18999 (ins IntRegs:$Rs32),
19000 "$Rd32 = cl1($Rs32)",
19001 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19002 let Inst{13-5} = 0b000000110;
19003 let Inst{31-21} = 0b10001100000;
19004 let hasNewValue = 1;
19005 let opNewValue = 0;
19006 let prefersSlot3 = 1;
19008 def S2_cl1p : HInst<
19009 (outs IntRegs:$Rd32),
19010 (ins DoubleRegs:$Rss32),
19011 "$Rd32 = cl1($Rss32)",
19012 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19013 let Inst{13-5} = 0b000000100;
19014 let Inst{31-21} = 0b10001000010;
19015 let hasNewValue = 1;
19016 let opNewValue = 0;
19017 let prefersSlot3 = 1;
19019 def S2_clb : HInst<
19020 (outs IntRegs:$Rd32),
19021 (ins IntRegs:$Rs32),
19022 "$Rd32 = clb($Rs32)",
19023 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19024 let Inst{13-5} = 0b000000100;
19025 let Inst{31-21} = 0b10001100000;
19026 let hasNewValue = 1;
19027 let opNewValue = 0;
19028 let prefersSlot3 = 1;
19030 def S2_clbnorm : HInst<
19031 (outs IntRegs:$Rd32),
19032 (ins IntRegs:$Rs32),
19033 "$Rd32 = normamt($Rs32)",
19034 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19035 let Inst{13-5} = 0b000000111;
19036 let Inst{31-21} = 0b10001100000;
19037 let hasNewValue = 1;
19038 let opNewValue = 0;
19039 let prefersSlot3 = 1;
19041 def S2_clbp : HInst<
19042 (outs IntRegs:$Rd32),
19043 (ins DoubleRegs:$Rss32),
19044 "$Rd32 = clb($Rss32)",
19045 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19046 let Inst{13-5} = 0b000000000;
19047 let Inst{31-21} = 0b10001000010;
19048 let hasNewValue = 1;
19049 let opNewValue = 0;
19050 let prefersSlot3 = 1;
19052 def S2_clrbit_i : HInst<
19053 (outs IntRegs:$Rd32),
19054 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19055 "$Rd32 = clrbit($Rs32,#$Ii)",
19056 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19057 let Inst{7-5} = 0b001;
19058 let Inst{13-13} = 0b0;
19059 let Inst{31-21} = 0b10001100110;
19060 let hasNewValue = 1;
19061 let opNewValue = 0;
19063 def S2_clrbit_r : HInst<
19064 (outs IntRegs:$Rd32),
19065 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19066 "$Rd32 = clrbit($Rs32,$Rt32)",
19067 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19068 let Inst{7-5} = 0b010;
19069 let Inst{13-13} = 0b0;
19070 let Inst{31-21} = 0b11000110100;
19071 let hasNewValue = 1;
19072 let opNewValue = 0;
19074 def S2_ct0 : HInst<
19075 (outs IntRegs:$Rd32),
19076 (ins IntRegs:$Rs32),
19077 "$Rd32 = ct0($Rs32)",
19078 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19079 let Inst{13-5} = 0b000000100;
19080 let Inst{31-21} = 0b10001100010;
19081 let hasNewValue = 1;
19082 let opNewValue = 0;
19083 let prefersSlot3 = 1;
19085 def S2_ct0p : HInst<
19086 (outs IntRegs:$Rd32),
19087 (ins DoubleRegs:$Rss32),
19088 "$Rd32 = ct0($Rss32)",
19089 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19090 let Inst{13-5} = 0b000000010;
19091 let Inst{31-21} = 0b10001000111;
19092 let hasNewValue = 1;
19093 let opNewValue = 0;
19094 let prefersSlot3 = 1;
19096 def S2_ct1 : HInst<
19097 (outs IntRegs:$Rd32),
19098 (ins IntRegs:$Rs32),
19099 "$Rd32 = ct1($Rs32)",
19100 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19101 let Inst{13-5} = 0b000000101;
19102 let Inst{31-21} = 0b10001100010;
19103 let hasNewValue = 1;
19104 let opNewValue = 0;
19105 let prefersSlot3 = 1;
19107 def S2_ct1p : HInst<
19108 (outs IntRegs:$Rd32),
19109 (ins DoubleRegs:$Rss32),
19110 "$Rd32 = ct1($Rss32)",
19111 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19112 let Inst{13-5} = 0b000000100;
19113 let Inst{31-21} = 0b10001000111;
19114 let hasNewValue = 1;
19115 let opNewValue = 0;
19116 let prefersSlot3 = 1;
19118 def S2_deinterleave : HInst<
19119 (outs DoubleRegs:$Rdd32),
19120 (ins DoubleRegs:$Rss32),
19121 "$Rdd32 = deinterleave($Rss32)",
19122 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19123 let Inst{13-5} = 0b000000100;
19124 let Inst{31-21} = 0b10000000110;
19125 let prefersSlot3 = 1;
19127 def S2_extractu : HInst<
19128 (outs IntRegs:$Rd32),
19129 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19130 "$Rd32 = extractu($Rs32,#$Ii,#$II)",
19131 tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
19132 let Inst{13-13} = 0b0;
19133 let Inst{31-23} = 0b100011010;
19134 let hasNewValue = 1;
19135 let opNewValue = 0;
19136 let prefersSlot3 = 1;
19138 def S2_extractu_rp : HInst<
19139 (outs IntRegs:$Rd32),
19140 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
19141 "$Rd32 = extractu($Rs32,$Rtt32)",
19142 tc_a08b630b, TypeS_3op>, Enc_e07374 {
19143 let Inst{7-5} = 0b000;
19144 let Inst{13-13} = 0b0;
19145 let Inst{31-21} = 0b11001001000;
19146 let hasNewValue = 1;
19147 let opNewValue = 0;
19148 let prefersSlot3 = 1;
19150 def S2_extractup : HInst<
19151 (outs DoubleRegs:$Rdd32),
19152 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19153 "$Rdd32 = extractu($Rss32,#$Ii,#$II)",
19154 tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
19155 let Inst{31-24} = 0b10000001;
19156 let prefersSlot3 = 1;
19158 def S2_extractup_rp : HInst<
19159 (outs DoubleRegs:$Rdd32),
19160 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19161 "$Rdd32 = extractu($Rss32,$Rtt32)",
19162 tc_a08b630b, TypeS_3op>, Enc_a56825 {
19163 let Inst{7-5} = 0b000;
19164 let Inst{13-13} = 0b0;
19165 let Inst{31-21} = 0b11000001000;
19166 let prefersSlot3 = 1;
19168 def S2_insert : HInst<
19169 (outs IntRegs:$Rx32),
19170 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19171 "$Rx32 = insert($Rs32,#$Ii,#$II)",
19172 tc_bb831a7c, TypeS_2op>, Enc_a1e29d {
19173 let Inst{13-13} = 0b0;
19174 let Inst{31-23} = 0b100011110;
19175 let hasNewValue = 1;
19176 let opNewValue = 0;
19177 let prefersSlot3 = 1;
19178 let Constraints = "$Rx32 = $Rx32in";
19180 def S2_insert_rp : HInst<
19181 (outs IntRegs:$Rx32),
19182 (ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19183 "$Rx32 = insert($Rs32,$Rtt32)",
19184 tc_a4e22bbd, TypeS_3op>, Enc_179b35 {
19185 let Inst{7-5} = 0b000;
19186 let Inst{13-13} = 0b0;
19187 let Inst{31-21} = 0b11001000000;
19188 let hasNewValue = 1;
19189 let opNewValue = 0;
19190 let prefersSlot3 = 1;
19191 let Constraints = "$Rx32 = $Rx32in";
19193 def S2_insertp : HInst<
19194 (outs DoubleRegs:$Rxx32),
19195 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19196 "$Rxx32 = insert($Rss32,#$Ii,#$II)",
19197 tc_bb831a7c, TypeS_2op>, Enc_143a3c {
19198 let Inst{31-24} = 0b10000011;
19199 let prefersSlot3 = 1;
19200 let Constraints = "$Rxx32 = $Rxx32in";
19202 def S2_insertp_rp : HInst<
19203 (outs DoubleRegs:$Rxx32),
19204 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19205 "$Rxx32 = insert($Rss32,$Rtt32)",
19206 tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
19207 let Inst{7-5} = 0b000;
19208 let Inst{13-13} = 0b0;
19209 let Inst{31-21} = 0b11001010000;
19210 let prefersSlot3 = 1;
19211 let Constraints = "$Rxx32 = $Rxx32in";
19213 def S2_interleave : HInst<
19214 (outs DoubleRegs:$Rdd32),
19215 (ins DoubleRegs:$Rss32),
19216 "$Rdd32 = interleave($Rss32)",
19217 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19218 let Inst{13-5} = 0b000000101;
19219 let Inst{31-21} = 0b10000000110;
19220 let prefersSlot3 = 1;
19222 def S2_lfsp : HInst<
19223 (outs DoubleRegs:$Rdd32),
19224 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19225 "$Rdd32 = lfs($Rss32,$Rtt32)",
19226 tc_a08b630b, TypeS_3op>, Enc_a56825 {
19227 let Inst{7-5} = 0b110;
19228 let Inst{13-13} = 0b0;
19229 let Inst{31-21} = 0b11000001100;
19230 let prefersSlot3 = 1;
19232 def S2_lsl_r_p : HInst<
19233 (outs DoubleRegs:$Rdd32),
19234 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19235 "$Rdd32 = lsl($Rss32,$Rt32)",
19236 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19237 let Inst{7-5} = 0b110;
19238 let Inst{13-13} = 0b0;
19239 let Inst{31-21} = 0b11000011100;
19241 def S2_lsl_r_p_acc : HInst<
19242 (outs DoubleRegs:$Rxx32),
19243 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19244 "$Rxx32 += lsl($Rss32,$Rt32)",
19245 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19246 let Inst{7-5} = 0b110;
19247 let Inst{13-13} = 0b0;
19248 let Inst{31-21} = 0b11001011110;
19249 let prefersSlot3 = 1;
19250 let Constraints = "$Rxx32 = $Rxx32in";
19252 def S2_lsl_r_p_and : HInst<
19253 (outs DoubleRegs:$Rxx32),
19254 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19255 "$Rxx32 &= lsl($Rss32,$Rt32)",
19256 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19257 let Inst{7-5} = 0b110;
19258 let Inst{13-13} = 0b0;
19259 let Inst{31-21} = 0b11001011010;
19260 let prefersSlot3 = 1;
19261 let Constraints = "$Rxx32 = $Rxx32in";
19263 def S2_lsl_r_p_nac : HInst<
19264 (outs DoubleRegs:$Rxx32),
19265 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19266 "$Rxx32 -= lsl($Rss32,$Rt32)",
19267 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19268 let Inst{7-5} = 0b110;
19269 let Inst{13-13} = 0b0;
19270 let Inst{31-21} = 0b11001011100;
19271 let prefersSlot3 = 1;
19272 let Constraints = "$Rxx32 = $Rxx32in";
19274 def S2_lsl_r_p_or : HInst<
19275 (outs DoubleRegs:$Rxx32),
19276 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19277 "$Rxx32 |= lsl($Rss32,$Rt32)",
19278 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19279 let Inst{7-5} = 0b110;
19280 let Inst{13-13} = 0b0;
19281 let Inst{31-21} = 0b11001011000;
19282 let prefersSlot3 = 1;
19283 let Constraints = "$Rxx32 = $Rxx32in";
19285 def S2_lsl_r_p_xor : HInst<
19286 (outs DoubleRegs:$Rxx32),
19287 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19288 "$Rxx32 ^= lsl($Rss32,$Rt32)",
19289 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19290 let Inst{7-5} = 0b110;
19291 let Inst{13-13} = 0b0;
19292 let Inst{31-21} = 0b11001011011;
19293 let prefersSlot3 = 1;
19294 let Constraints = "$Rxx32 = $Rxx32in";
19296 def S2_lsl_r_r : HInst<
19297 (outs IntRegs:$Rd32),
19298 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19299 "$Rd32 = lsl($Rs32,$Rt32)",
19300 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19301 let Inst{7-5} = 0b110;
19302 let Inst{13-13} = 0b0;
19303 let Inst{31-21} = 0b11000110010;
19304 let hasNewValue = 1;
19305 let opNewValue = 0;
19307 def S2_lsl_r_r_acc : HInst<
19308 (outs IntRegs:$Rx32),
19309 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19310 "$Rx32 += lsl($Rs32,$Rt32)",
19311 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19312 let Inst{7-5} = 0b110;
19313 let Inst{13-13} = 0b0;
19314 let Inst{31-21} = 0b11001100110;
19315 let hasNewValue = 1;
19316 let opNewValue = 0;
19317 let prefersSlot3 = 1;
19318 let Constraints = "$Rx32 = $Rx32in";
19320 def S2_lsl_r_r_and : HInst<
19321 (outs IntRegs:$Rx32),
19322 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19323 "$Rx32 &= lsl($Rs32,$Rt32)",
19324 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19325 let Inst{7-5} = 0b110;
19326 let Inst{13-13} = 0b0;
19327 let Inst{31-21} = 0b11001100010;
19328 let hasNewValue = 1;
19329 let opNewValue = 0;
19330 let prefersSlot3 = 1;
19331 let Constraints = "$Rx32 = $Rx32in";
19333 def S2_lsl_r_r_nac : HInst<
19334 (outs IntRegs:$Rx32),
19335 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19336 "$Rx32 -= lsl($Rs32,$Rt32)",
19337 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19338 let Inst{7-5} = 0b110;
19339 let Inst{13-13} = 0b0;
19340 let Inst{31-21} = 0b11001100100;
19341 let hasNewValue = 1;
19342 let opNewValue = 0;
19343 let prefersSlot3 = 1;
19344 let Constraints = "$Rx32 = $Rx32in";
19346 def S2_lsl_r_r_or : HInst<
19347 (outs IntRegs:$Rx32),
19348 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19349 "$Rx32 |= lsl($Rs32,$Rt32)",
19350 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19351 let Inst{7-5} = 0b110;
19352 let Inst{13-13} = 0b0;
19353 let Inst{31-21} = 0b11001100000;
19354 let hasNewValue = 1;
19355 let opNewValue = 0;
19356 let prefersSlot3 = 1;
19357 let Constraints = "$Rx32 = $Rx32in";
19359 def S2_lsl_r_vh : HInst<
19360 (outs DoubleRegs:$Rdd32),
19361 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19362 "$Rdd32 = vlslh($Rss32,$Rt32)",
19363 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19364 let Inst{7-5} = 0b110;
19365 let Inst{13-13} = 0b0;
19366 let Inst{31-21} = 0b11000011010;
19368 def S2_lsl_r_vw : HInst<
19369 (outs DoubleRegs:$Rdd32),
19370 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19371 "$Rdd32 = vlslw($Rss32,$Rt32)",
19372 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19373 let Inst{7-5} = 0b110;
19374 let Inst{13-13} = 0b0;
19375 let Inst{31-21} = 0b11000011000;
19377 def S2_lsr_i_p : HInst<
19378 (outs DoubleRegs:$Rdd32),
19379 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19380 "$Rdd32 = lsr($Rss32,#$Ii)",
19381 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
19382 let Inst{7-5} = 0b001;
19383 let Inst{31-21} = 0b10000000000;
19385 def S2_lsr_i_p_acc : HInst<
19386 (outs DoubleRegs:$Rxx32),
19387 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19388 "$Rxx32 += lsr($Rss32,#$Ii)",
19389 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19390 let Inst{7-5} = 0b101;
19391 let Inst{31-21} = 0b10000010000;
19392 let prefersSlot3 = 1;
19393 let Constraints = "$Rxx32 = $Rxx32in";
19395 def S2_lsr_i_p_and : HInst<
19396 (outs DoubleRegs:$Rxx32),
19397 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19398 "$Rxx32 &= lsr($Rss32,#$Ii)",
19399 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19400 let Inst{7-5} = 0b001;
19401 let Inst{31-21} = 0b10000010010;
19402 let prefersSlot3 = 1;
19403 let Constraints = "$Rxx32 = $Rxx32in";
19405 def S2_lsr_i_p_nac : HInst<
19406 (outs DoubleRegs:$Rxx32),
19407 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19408 "$Rxx32 -= lsr($Rss32,#$Ii)",
19409 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19410 let Inst{7-5} = 0b001;
19411 let Inst{31-21} = 0b10000010000;
19412 let prefersSlot3 = 1;
19413 let Constraints = "$Rxx32 = $Rxx32in";
19415 def S2_lsr_i_p_or : HInst<
19416 (outs DoubleRegs:$Rxx32),
19417 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19418 "$Rxx32 |= lsr($Rss32,#$Ii)",
19419 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19420 let Inst{7-5} = 0b101;
19421 let Inst{31-21} = 0b10000010010;
19422 let prefersSlot3 = 1;
19423 let Constraints = "$Rxx32 = $Rxx32in";
19425 def S2_lsr_i_p_xacc : HInst<
19426 (outs DoubleRegs:$Rxx32),
19427 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19428 "$Rxx32 ^= lsr($Rss32,#$Ii)",
19429 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19430 let Inst{7-5} = 0b001;
19431 let Inst{31-21} = 0b10000010100;
19432 let prefersSlot3 = 1;
19433 let Constraints = "$Rxx32 = $Rxx32in";
19435 def S2_lsr_i_r : HInst<
19436 (outs IntRegs:$Rd32),
19437 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19438 "$Rd32 = lsr($Rs32,#$Ii)",
19439 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19440 let Inst{7-5} = 0b001;
19441 let Inst{13-13} = 0b0;
19442 let Inst{31-21} = 0b10001100000;
19443 let hasNewValue = 1;
19444 let opNewValue = 0;
19446 def S2_lsr_i_r_acc : HInst<
19447 (outs IntRegs:$Rx32),
19448 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19449 "$Rx32 += lsr($Rs32,#$Ii)",
19450 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19451 let Inst{7-5} = 0b101;
19452 let Inst{13-13} = 0b0;
19453 let Inst{31-21} = 0b10001110000;
19454 let hasNewValue = 1;
19455 let opNewValue = 0;
19456 let prefersSlot3 = 1;
19457 let Constraints = "$Rx32 = $Rx32in";
19459 def S2_lsr_i_r_and : HInst<
19460 (outs IntRegs:$Rx32),
19461 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19462 "$Rx32 &= lsr($Rs32,#$Ii)",
19463 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19464 let Inst{7-5} = 0b001;
19465 let Inst{13-13} = 0b0;
19466 let Inst{31-21} = 0b10001110010;
19467 let hasNewValue = 1;
19468 let opNewValue = 0;
19469 let prefersSlot3 = 1;
19470 let Constraints = "$Rx32 = $Rx32in";
19472 def S2_lsr_i_r_nac : HInst<
19473 (outs IntRegs:$Rx32),
19474 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19475 "$Rx32 -= lsr($Rs32,#$Ii)",
19476 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19477 let Inst{7-5} = 0b001;
19478 let Inst{13-13} = 0b0;
19479 let Inst{31-21} = 0b10001110000;
19480 let hasNewValue = 1;
19481 let opNewValue = 0;
19482 let prefersSlot3 = 1;
19483 let Constraints = "$Rx32 = $Rx32in";
19485 def S2_lsr_i_r_or : HInst<
19486 (outs IntRegs:$Rx32),
19487 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19488 "$Rx32 |= lsr($Rs32,#$Ii)",
19489 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19490 let Inst{7-5} = 0b101;
19491 let Inst{13-13} = 0b0;
19492 let Inst{31-21} = 0b10001110010;
19493 let hasNewValue = 1;
19494 let opNewValue = 0;
19495 let prefersSlot3 = 1;
19496 let Constraints = "$Rx32 = $Rx32in";
19498 def S2_lsr_i_r_xacc : HInst<
19499 (outs IntRegs:$Rx32),
19500 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19501 "$Rx32 ^= lsr($Rs32,#$Ii)",
19502 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19503 let Inst{7-5} = 0b001;
19504 let Inst{13-13} = 0b0;
19505 let Inst{31-21} = 0b10001110100;
19506 let hasNewValue = 1;
19507 let opNewValue = 0;
19508 let prefersSlot3 = 1;
19509 let Constraints = "$Rx32 = $Rx32in";
19511 def S2_lsr_i_vh : HInst<
19512 (outs DoubleRegs:$Rdd32),
19513 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19514 "$Rdd32 = vlsrh($Rss32,#$Ii)",
19515 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
19516 let Inst{7-5} = 0b001;
19517 let Inst{13-12} = 0b00;
19518 let Inst{31-21} = 0b10000000100;
19520 def S2_lsr_i_vw : HInst<
19521 (outs DoubleRegs:$Rdd32),
19522 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19523 "$Rdd32 = vlsrw($Rss32,#$Ii)",
19524 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
19525 let Inst{7-5} = 0b001;
19526 let Inst{13-13} = 0b0;
19527 let Inst{31-21} = 0b10000000010;
19529 def S2_lsr_r_p : HInst<
19530 (outs DoubleRegs:$Rdd32),
19531 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19532 "$Rdd32 = lsr($Rss32,$Rt32)",
19533 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19534 let Inst{7-5} = 0b010;
19535 let Inst{13-13} = 0b0;
19536 let Inst{31-21} = 0b11000011100;
19538 def S2_lsr_r_p_acc : HInst<
19539 (outs DoubleRegs:$Rxx32),
19540 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19541 "$Rxx32 += lsr($Rss32,$Rt32)",
19542 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19543 let Inst{7-5} = 0b010;
19544 let Inst{13-13} = 0b0;
19545 let Inst{31-21} = 0b11001011110;
19546 let prefersSlot3 = 1;
19547 let Constraints = "$Rxx32 = $Rxx32in";
19549 def S2_lsr_r_p_and : HInst<
19550 (outs DoubleRegs:$Rxx32),
19551 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19552 "$Rxx32 &= lsr($Rss32,$Rt32)",
19553 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19554 let Inst{7-5} = 0b010;
19555 let Inst{13-13} = 0b0;
19556 let Inst{31-21} = 0b11001011010;
19557 let prefersSlot3 = 1;
19558 let Constraints = "$Rxx32 = $Rxx32in";
19560 def S2_lsr_r_p_nac : HInst<
19561 (outs DoubleRegs:$Rxx32),
19562 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19563 "$Rxx32 -= lsr($Rss32,$Rt32)",
19564 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19565 let Inst{7-5} = 0b010;
19566 let Inst{13-13} = 0b0;
19567 let Inst{31-21} = 0b11001011100;
19568 let prefersSlot3 = 1;
19569 let Constraints = "$Rxx32 = $Rxx32in";
19571 def S2_lsr_r_p_or : HInst<
19572 (outs DoubleRegs:$Rxx32),
19573 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19574 "$Rxx32 |= lsr($Rss32,$Rt32)",
19575 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19576 let Inst{7-5} = 0b010;
19577 let Inst{13-13} = 0b0;
19578 let Inst{31-21} = 0b11001011000;
19579 let prefersSlot3 = 1;
19580 let Constraints = "$Rxx32 = $Rxx32in";
19582 def S2_lsr_r_p_xor : HInst<
19583 (outs DoubleRegs:$Rxx32),
19584 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19585 "$Rxx32 ^= lsr($Rss32,$Rt32)",
19586 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19587 let Inst{7-5} = 0b010;
19588 let Inst{13-13} = 0b0;
19589 let Inst{31-21} = 0b11001011011;
19590 let prefersSlot3 = 1;
19591 let Constraints = "$Rxx32 = $Rxx32in";
19593 def S2_lsr_r_r : HInst<
19594 (outs IntRegs:$Rd32),
19595 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19596 "$Rd32 = lsr($Rs32,$Rt32)",
19597 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19598 let Inst{7-5} = 0b010;
19599 let Inst{13-13} = 0b0;
19600 let Inst{31-21} = 0b11000110010;
19601 let hasNewValue = 1;
19602 let opNewValue = 0;
19604 def S2_lsr_r_r_acc : HInst<
19605 (outs IntRegs:$Rx32),
19606 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19607 "$Rx32 += lsr($Rs32,$Rt32)",
19608 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19609 let Inst{7-5} = 0b010;
19610 let Inst{13-13} = 0b0;
19611 let Inst{31-21} = 0b11001100110;
19612 let hasNewValue = 1;
19613 let opNewValue = 0;
19614 let prefersSlot3 = 1;
19615 let Constraints = "$Rx32 = $Rx32in";
19617 def S2_lsr_r_r_and : HInst<
19618 (outs IntRegs:$Rx32),
19619 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19620 "$Rx32 &= lsr($Rs32,$Rt32)",
19621 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19622 let Inst{7-5} = 0b010;
19623 let Inst{13-13} = 0b0;
19624 let Inst{31-21} = 0b11001100010;
19625 let hasNewValue = 1;
19626 let opNewValue = 0;
19627 let prefersSlot3 = 1;
19628 let Constraints = "$Rx32 = $Rx32in";
19630 def S2_lsr_r_r_nac : HInst<
19631 (outs IntRegs:$Rx32),
19632 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19633 "$Rx32 -= lsr($Rs32,$Rt32)",
19634 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19635 let Inst{7-5} = 0b010;
19636 let Inst{13-13} = 0b0;
19637 let Inst{31-21} = 0b11001100100;
19638 let hasNewValue = 1;
19639 let opNewValue = 0;
19640 let prefersSlot3 = 1;
19641 let Constraints = "$Rx32 = $Rx32in";
19643 def S2_lsr_r_r_or : HInst<
19644 (outs IntRegs:$Rx32),
19645 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19646 "$Rx32 |= lsr($Rs32,$Rt32)",
19647 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19648 let Inst{7-5} = 0b010;
19649 let Inst{13-13} = 0b0;
19650 let Inst{31-21} = 0b11001100000;
19651 let hasNewValue = 1;
19652 let opNewValue = 0;
19653 let prefersSlot3 = 1;
19654 let Constraints = "$Rx32 = $Rx32in";
19656 def S2_lsr_r_vh : HInst<
19657 (outs DoubleRegs:$Rdd32),
19658 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19659 "$Rdd32 = vlsrh($Rss32,$Rt32)",
19660 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19661 let Inst{7-5} = 0b010;
19662 let Inst{13-13} = 0b0;
19663 let Inst{31-21} = 0b11000011010;
19665 def S2_lsr_r_vw : HInst<
19666 (outs DoubleRegs:$Rdd32),
19667 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19668 "$Rdd32 = vlsrw($Rss32,$Rt32)",
19669 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19670 let Inst{7-5} = 0b010;
19671 let Inst{13-13} = 0b0;
19672 let Inst{31-21} = 0b11000011000;
19674 def S2_mask : HInst<
19675 (outs IntRegs:$Rd32),
19676 (ins u5_0Imm:$Ii, u5_0Imm:$II),
19677 "$Rd32 = mask(#$Ii,#$II)",
19678 tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19679 let Inst{13-13} = 0b1;
19680 let Inst{20-16} = 0b00000;
19681 let Inst{31-23} = 0b100011010;
19682 let hasNewValue = 1;
19683 let opNewValue = 0;
19684 let prefersSlot3 = 1;
19686 def S2_packhl : HInst<
19687 (outs DoubleRegs:$Rdd32),
19688 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19689 "$Rdd32 = packhl($Rs32,$Rt32)",
19690 tc_713b66bf, TypeALU32_3op>, Enc_be32a5 {
19691 let Inst{7-5} = 0b000;
19692 let Inst{13-13} = 0b0;
19693 let Inst{31-21} = 0b11110101100;
19694 let InputType = "reg";
19696 def S2_parityp : HInst<
19697 (outs IntRegs:$Rd32),
19698 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19699 "$Rd32 = parity($Rss32,$Rtt32)",
19700 tc_a08b630b, TypeALU64>, Enc_d2216a {
19701 let Inst{7-5} = 0b000;
19702 let Inst{13-13} = 0b0;
19703 let Inst{31-21} = 0b11010000000;
19704 let hasNewValue = 1;
19705 let opNewValue = 0;
19706 let prefersSlot3 = 1;
19708 def S2_pstorerbf_io : HInst<
19709 (outs),
19710 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19711 "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19712 tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19713 let Inst{2-2} = 0b0;
19714 let Inst{31-21} = 0b01000100000;
19715 let isPredicated = 1;
19716 let isPredicatedFalse = 1;
19717 let addrMode = BaseImmOffset;
19718 let accessSize = ByteAccess;
19719 let mayStore = 1;
19720 let BaseOpcode = "S2_storerb_io";
19721 let CextOpcode = "S2_storerb";
19722 let InputType = "imm";
19723 let isNVStorable = 1;
19724 let isExtendable = 1;
19725 let opExtendable = 2;
19726 let isExtentSigned = 0;
19727 let opExtentBits = 6;
19728 let opExtentAlign = 0;
19730 def S2_pstorerbf_pi : HInst<
19731 (outs IntRegs:$Rx32),
19732 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19733 "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19734 tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19735 let Inst{2-2} = 0b1;
19736 let Inst{7-7} = 0b0;
19737 let Inst{13-13} = 0b1;
19738 let Inst{31-21} = 0b10101011000;
19739 let isPredicated = 1;
19740 let isPredicatedFalse = 1;
19741 let addrMode = PostInc;
19742 let accessSize = ByteAccess;
19743 let mayStore = 1;
19744 let BaseOpcode = "S2_storerb_pi";
19745 let isNVStorable = 1;
19746 let Constraints = "$Rx32 = $Rx32in";
19748 def S2_pstorerbf_zomap : HInst<
19749 (outs),
19750 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19751 "if (!$Pv4) memb($Rs32) = $Rt32",
19752 tc_8035e91f, TypeMAPPING> {
19753 let isPseudo = 1;
19754 let isCodeGenOnly = 1;
19756 def S2_pstorerbfnew_pi : HInst<
19757 (outs IntRegs:$Rx32),
19758 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19759 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19760 tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19761 let Inst{2-2} = 0b1;
19762 let Inst{7-7} = 0b1;
19763 let Inst{13-13} = 0b1;
19764 let Inst{31-21} = 0b10101011000;
19765 let isPredicated = 1;
19766 let isPredicatedFalse = 1;
19767 let addrMode = PostInc;
19768 let accessSize = ByteAccess;
19769 let isPredicatedNew = 1;
19770 let mayStore = 1;
19771 let BaseOpcode = "S2_storerb_pi";
19772 let isNVStorable = 1;
19773 let Constraints = "$Rx32 = $Rx32in";
19775 def S2_pstorerbnewf_io : HInst<
19776 (outs),
19777 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19778 "if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19779 tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19780 let Inst{2-2} = 0b0;
19781 let Inst{12-11} = 0b00;
19782 let Inst{31-21} = 0b01000100101;
19783 let isPredicated = 1;
19784 let isPredicatedFalse = 1;
19785 let addrMode = BaseImmOffset;
19786 let accessSize = ByteAccess;
19787 let isNVStore = 1;
19788 let isNewValue = 1;
19789 let isRestrictNoSlot1Store = 1;
19790 let mayStore = 1;
19791 let BaseOpcode = "S2_storerb_io";
19792 let CextOpcode = "S2_storerb";
19793 let InputType = "imm";
19794 let isExtendable = 1;
19795 let opExtendable = 2;
19796 let isExtentSigned = 0;
19797 let opExtentBits = 6;
19798 let opExtentAlign = 0;
19799 let opNewValue = 3;
19801 def S2_pstorerbnewf_pi : HInst<
19802 (outs IntRegs:$Rx32),
19803 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19804 "if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19805 tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19806 let Inst{2-2} = 0b1;
19807 let Inst{7-7} = 0b0;
19808 let Inst{13-11} = 0b100;
19809 let Inst{31-21} = 0b10101011101;
19810 let isPredicated = 1;
19811 let isPredicatedFalse = 1;
19812 let addrMode = PostInc;
19813 let accessSize = ByteAccess;
19814 let isNVStore = 1;
19815 let isNewValue = 1;
19816 let isRestrictNoSlot1Store = 1;
19817 let mayStore = 1;
19818 let BaseOpcode = "S2_storerb_pi";
19819 let CextOpcode = "S2_storerb";
19820 let opNewValue = 4;
19821 let Constraints = "$Rx32 = $Rx32in";
19823 def S2_pstorerbnewf_zomap : HInst<
19824 (outs),
19825 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19826 "if (!$Pv4) memb($Rs32) = $Nt8.new",
19827 tc_011e0e9d, TypeMAPPING> {
19828 let isPseudo = 1;
19829 let isCodeGenOnly = 1;
19830 let opNewValue = 2;
19832 def S2_pstorerbnewfnew_pi : HInst<
19833 (outs IntRegs:$Rx32),
19834 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19835 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19836 tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19837 let Inst{2-2} = 0b1;
19838 let Inst{7-7} = 0b1;
19839 let Inst{13-11} = 0b100;
19840 let Inst{31-21} = 0b10101011101;
19841 let isPredicated = 1;
19842 let isPredicatedFalse = 1;
19843 let addrMode = PostInc;
19844 let accessSize = ByteAccess;
19845 let isNVStore = 1;
19846 let isPredicatedNew = 1;
19847 let isNewValue = 1;
19848 let isRestrictNoSlot1Store = 1;
19849 let mayStore = 1;
19850 let BaseOpcode = "S2_storerb_pi";
19851 let CextOpcode = "S2_storerb";
19852 let opNewValue = 4;
19853 let Constraints = "$Rx32 = $Rx32in";
19855 def S2_pstorerbnewt_io : HInst<
19856 (outs),
19857 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19858 "if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19859 tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19860 let Inst{2-2} = 0b0;
19861 let Inst{12-11} = 0b00;
19862 let Inst{31-21} = 0b01000000101;
19863 let isPredicated = 1;
19864 let addrMode = BaseImmOffset;
19865 let accessSize = ByteAccess;
19866 let isNVStore = 1;
19867 let isNewValue = 1;
19868 let isRestrictNoSlot1Store = 1;
19869 let mayStore = 1;
19870 let BaseOpcode = "S2_storerb_io";
19871 let CextOpcode = "S2_storerb";
19872 let InputType = "imm";
19873 let isExtendable = 1;
19874 let opExtendable = 2;
19875 let isExtentSigned = 0;
19876 let opExtentBits = 6;
19877 let opExtentAlign = 0;
19878 let opNewValue = 3;
19880 def S2_pstorerbnewt_pi : HInst<
19881 (outs IntRegs:$Rx32),
19882 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19883 "if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19884 tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19885 let Inst{2-2} = 0b0;
19886 let Inst{7-7} = 0b0;
19887 let Inst{13-11} = 0b100;
19888 let Inst{31-21} = 0b10101011101;
19889 let isPredicated = 1;
19890 let addrMode = PostInc;
19891 let accessSize = ByteAccess;
19892 let isNVStore = 1;
19893 let isNewValue = 1;
19894 let isRestrictNoSlot1Store = 1;
19895 let mayStore = 1;
19896 let BaseOpcode = "S2_storerb_pi";
19897 let CextOpcode = "S2_storerb";
19898 let opNewValue = 4;
19899 let Constraints = "$Rx32 = $Rx32in";
19901 def S2_pstorerbnewt_zomap : HInst<
19902 (outs),
19903 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19904 "if ($Pv4) memb($Rs32) = $Nt8.new",
19905 tc_011e0e9d, TypeMAPPING> {
19906 let isPseudo = 1;
19907 let isCodeGenOnly = 1;
19908 let opNewValue = 2;
19910 def S2_pstorerbnewtnew_pi : HInst<
19911 (outs IntRegs:$Rx32),
19912 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19913 "if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19914 tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19915 let Inst{2-2} = 0b0;
19916 let Inst{7-7} = 0b1;
19917 let Inst{13-11} = 0b100;
19918 let Inst{31-21} = 0b10101011101;
19919 let isPredicated = 1;
19920 let addrMode = PostInc;
19921 let accessSize = ByteAccess;
19922 let isNVStore = 1;
19923 let isPredicatedNew = 1;
19924 let isNewValue = 1;
19925 let isRestrictNoSlot1Store = 1;
19926 let mayStore = 1;
19927 let BaseOpcode = "S2_storerb_pi";
19928 let CextOpcode = "S2_storerb";
19929 let opNewValue = 4;
19930 let Constraints = "$Rx32 = $Rx32in";
19932 def S2_pstorerbt_io : HInst<
19933 (outs),
19934 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19935 "if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19936 tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19937 let Inst{2-2} = 0b0;
19938 let Inst{31-21} = 0b01000000000;
19939 let isPredicated = 1;
19940 let addrMode = BaseImmOffset;
19941 let accessSize = ByteAccess;
19942 let mayStore = 1;
19943 let BaseOpcode = "S2_storerb_io";
19944 let CextOpcode = "S2_storerb";
19945 let InputType = "imm";
19946 let isNVStorable = 1;
19947 let isExtendable = 1;
19948 let opExtendable = 2;
19949 let isExtentSigned = 0;
19950 let opExtentBits = 6;
19951 let opExtentAlign = 0;
19953 def S2_pstorerbt_pi : HInst<
19954 (outs IntRegs:$Rx32),
19955 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19956 "if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19957 tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19958 let Inst{2-2} = 0b0;
19959 let Inst{7-7} = 0b0;
19960 let Inst{13-13} = 0b1;
19961 let Inst{31-21} = 0b10101011000;
19962 let isPredicated = 1;
19963 let addrMode = PostInc;
19964 let accessSize = ByteAccess;
19965 let mayStore = 1;
19966 let BaseOpcode = "S2_storerb_pi";
19967 let isNVStorable = 1;
19968 let Constraints = "$Rx32 = $Rx32in";
19970 def S2_pstorerbt_zomap : HInst<
19971 (outs),
19972 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19973 "if ($Pv4) memb($Rs32) = $Rt32",
19974 tc_8035e91f, TypeMAPPING> {
19975 let isPseudo = 1;
19976 let isCodeGenOnly = 1;
19978 def S2_pstorerbtnew_pi : HInst<
19979 (outs IntRegs:$Rx32),
19980 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19981 "if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19982 tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19983 let Inst{2-2} = 0b0;
19984 let Inst{7-7} = 0b1;
19985 let Inst{13-13} = 0b1;
19986 let Inst{31-21} = 0b10101011000;
19987 let isPredicated = 1;
19988 let addrMode = PostInc;
19989 let accessSize = ByteAccess;
19990 let isPredicatedNew = 1;
19991 let mayStore = 1;
19992 let BaseOpcode = "S2_storerb_pi";
19993 let isNVStorable = 1;
19994 let Constraints = "$Rx32 = $Rx32in";
19996 def S2_pstorerdf_io : HInst<
19997 (outs),
19998 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19999 "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
20000 tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20001 let Inst{2-2} = 0b0;
20002 let Inst{31-21} = 0b01000100110;
20003 let isPredicated = 1;
20004 let isPredicatedFalse = 1;
20005 let addrMode = BaseImmOffset;
20006 let accessSize = DoubleWordAccess;
20007 let mayStore = 1;
20008 let BaseOpcode = "S2_storerd_io";
20009 let CextOpcode = "S2_storerd";
20010 let InputType = "imm";
20011 let isExtendable = 1;
20012 let opExtendable = 2;
20013 let isExtentSigned = 0;
20014 let opExtentBits = 9;
20015 let opExtentAlign = 3;
20017 def S2_pstorerdf_pi : HInst<
20018 (outs IntRegs:$Rx32),
20019 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20020 "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
20021 tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20022 let Inst{2-2} = 0b1;
20023 let Inst{7-7} = 0b0;
20024 let Inst{13-13} = 0b1;
20025 let Inst{31-21} = 0b10101011110;
20026 let isPredicated = 1;
20027 let isPredicatedFalse = 1;
20028 let addrMode = PostInc;
20029 let accessSize = DoubleWordAccess;
20030 let mayStore = 1;
20031 let BaseOpcode = "S2_storerd_pi";
20032 let CextOpcode = "S2_storerd";
20033 let Constraints = "$Rx32 = $Rx32in";
20035 def S2_pstorerdf_zomap : HInst<
20036 (outs),
20037 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20038 "if (!$Pv4) memd($Rs32) = $Rtt32",
20039 tc_8035e91f, TypeMAPPING> {
20040 let isPseudo = 1;
20041 let isCodeGenOnly = 1;
20043 def S2_pstorerdfnew_pi : HInst<
20044 (outs IntRegs:$Rx32),
20045 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20046 "if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20047 tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20048 let Inst{2-2} = 0b1;
20049 let Inst{7-7} = 0b1;
20050 let Inst{13-13} = 0b1;
20051 let Inst{31-21} = 0b10101011110;
20052 let isPredicated = 1;
20053 let isPredicatedFalse = 1;
20054 let addrMode = PostInc;
20055 let accessSize = DoubleWordAccess;
20056 let isPredicatedNew = 1;
20057 let mayStore = 1;
20058 let BaseOpcode = "S2_storerd_pi";
20059 let CextOpcode = "S2_storerd";
20060 let Constraints = "$Rx32 = $Rx32in";
20062 def S2_pstorerdt_io : HInst<
20063 (outs),
20064 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20065 "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
20066 tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20067 let Inst{2-2} = 0b0;
20068 let Inst{31-21} = 0b01000000110;
20069 let isPredicated = 1;
20070 let addrMode = BaseImmOffset;
20071 let accessSize = DoubleWordAccess;
20072 let mayStore = 1;
20073 let BaseOpcode = "S2_storerd_io";
20074 let CextOpcode = "S2_storerd";
20075 let InputType = "imm";
20076 let isExtendable = 1;
20077 let opExtendable = 2;
20078 let isExtentSigned = 0;
20079 let opExtentBits = 9;
20080 let opExtentAlign = 3;
20082 def S2_pstorerdt_pi : HInst<
20083 (outs IntRegs:$Rx32),
20084 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20085 "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
20086 tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20087 let Inst{2-2} = 0b0;
20088 let Inst{7-7} = 0b0;
20089 let Inst{13-13} = 0b1;
20090 let Inst{31-21} = 0b10101011110;
20091 let isPredicated = 1;
20092 let addrMode = PostInc;
20093 let accessSize = DoubleWordAccess;
20094 let mayStore = 1;
20095 let BaseOpcode = "S2_storerd_pi";
20096 let CextOpcode = "S2_storerd";
20097 let Constraints = "$Rx32 = $Rx32in";
20099 def S2_pstorerdt_zomap : HInst<
20100 (outs),
20101 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20102 "if ($Pv4) memd($Rs32) = $Rtt32",
20103 tc_8035e91f, TypeMAPPING> {
20104 let isPseudo = 1;
20105 let isCodeGenOnly = 1;
20107 def S2_pstorerdtnew_pi : HInst<
20108 (outs IntRegs:$Rx32),
20109 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20110 "if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20111 tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20112 let Inst{2-2} = 0b0;
20113 let Inst{7-7} = 0b1;
20114 let Inst{13-13} = 0b1;
20115 let Inst{31-21} = 0b10101011110;
20116 let isPredicated = 1;
20117 let addrMode = PostInc;
20118 let accessSize = DoubleWordAccess;
20119 let isPredicatedNew = 1;
20120 let mayStore = 1;
20121 let BaseOpcode = "S2_storerd_pi";
20122 let CextOpcode = "S2_storerd";
20123 let Constraints = "$Rx32 = $Rx32in";
20125 def S2_pstorerff_io : HInst<
20126 (outs),
20127 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20128 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20129 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20130 let Inst{2-2} = 0b0;
20131 let Inst{31-21} = 0b01000100011;
20132 let isPredicated = 1;
20133 let isPredicatedFalse = 1;
20134 let addrMode = BaseImmOffset;
20135 let accessSize = HalfWordAccess;
20136 let mayStore = 1;
20137 let BaseOpcode = "S2_storerf_io";
20138 let CextOpcode = "S2_storerf";
20139 let InputType = "imm";
20140 let isExtendable = 1;
20141 let opExtendable = 2;
20142 let isExtentSigned = 0;
20143 let opExtentBits = 7;
20144 let opExtentAlign = 1;
20146 def S2_pstorerff_pi : HInst<
20147 (outs IntRegs:$Rx32),
20148 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20149 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20150 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20151 let Inst{2-2} = 0b1;
20152 let Inst{7-7} = 0b0;
20153 let Inst{13-13} = 0b1;
20154 let Inst{31-21} = 0b10101011011;
20155 let isPredicated = 1;
20156 let isPredicatedFalse = 1;
20157 let addrMode = PostInc;
20158 let accessSize = HalfWordAccess;
20159 let mayStore = 1;
20160 let BaseOpcode = "S2_storerf_pi";
20161 let CextOpcode = "S2_storerf";
20162 let Constraints = "$Rx32 = $Rx32in";
20164 def S2_pstorerff_zomap : HInst<
20165 (outs),
20166 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20167 "if (!$Pv4) memh($Rs32) = $Rt32.h",
20168 tc_8035e91f, TypeMAPPING> {
20169 let isPseudo = 1;
20170 let isCodeGenOnly = 1;
20172 def S2_pstorerffnew_pi : HInst<
20173 (outs IntRegs:$Rx32),
20174 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20175 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20176 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20177 let Inst{2-2} = 0b1;
20178 let Inst{7-7} = 0b1;
20179 let Inst{13-13} = 0b1;
20180 let Inst{31-21} = 0b10101011011;
20181 let isPredicated = 1;
20182 let isPredicatedFalse = 1;
20183 let addrMode = PostInc;
20184 let accessSize = HalfWordAccess;
20185 let isPredicatedNew = 1;
20186 let mayStore = 1;
20187 let BaseOpcode = "S2_storerf_pi";
20188 let CextOpcode = "S2_storerf";
20189 let Constraints = "$Rx32 = $Rx32in";
20191 def S2_pstorerft_io : HInst<
20192 (outs),
20193 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20194 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20195 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20196 let Inst{2-2} = 0b0;
20197 let Inst{31-21} = 0b01000000011;
20198 let isPredicated = 1;
20199 let addrMode = BaseImmOffset;
20200 let accessSize = HalfWordAccess;
20201 let mayStore = 1;
20202 let BaseOpcode = "S2_storerf_io";
20203 let CextOpcode = "S2_storerf";
20204 let InputType = "imm";
20205 let isExtendable = 1;
20206 let opExtendable = 2;
20207 let isExtentSigned = 0;
20208 let opExtentBits = 7;
20209 let opExtentAlign = 1;
20211 def S2_pstorerft_pi : HInst<
20212 (outs IntRegs:$Rx32),
20213 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20214 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20215 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20216 let Inst{2-2} = 0b0;
20217 let Inst{7-7} = 0b0;
20218 let Inst{13-13} = 0b1;
20219 let Inst{31-21} = 0b10101011011;
20220 let isPredicated = 1;
20221 let addrMode = PostInc;
20222 let accessSize = HalfWordAccess;
20223 let mayStore = 1;
20224 let BaseOpcode = "S2_storerf_pi";
20225 let CextOpcode = "S2_storerf";
20226 let Constraints = "$Rx32 = $Rx32in";
20228 def S2_pstorerft_zomap : HInst<
20229 (outs),
20230 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20231 "if ($Pv4) memh($Rs32) = $Rt32.h",
20232 tc_8035e91f, TypeMAPPING> {
20233 let isPseudo = 1;
20234 let isCodeGenOnly = 1;
20236 def S2_pstorerftnew_pi : HInst<
20237 (outs IntRegs:$Rx32),
20238 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20239 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20240 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20241 let Inst{2-2} = 0b0;
20242 let Inst{7-7} = 0b1;
20243 let Inst{13-13} = 0b1;
20244 let Inst{31-21} = 0b10101011011;
20245 let isPredicated = 1;
20246 let addrMode = PostInc;
20247 let accessSize = HalfWordAccess;
20248 let isPredicatedNew = 1;
20249 let mayStore = 1;
20250 let BaseOpcode = "S2_storerf_pi";
20251 let CextOpcode = "S2_storerf";
20252 let Constraints = "$Rx32 = $Rx32in";
20254 def S2_pstorerhf_io : HInst<
20255 (outs),
20256 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20257 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
20258 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20259 let Inst{2-2} = 0b0;
20260 let Inst{31-21} = 0b01000100010;
20261 let isPredicated = 1;
20262 let isPredicatedFalse = 1;
20263 let addrMode = BaseImmOffset;
20264 let accessSize = HalfWordAccess;
20265 let mayStore = 1;
20266 let BaseOpcode = "S2_storerh_io";
20267 let CextOpcode = "S2_storerh";
20268 let InputType = "imm";
20269 let isNVStorable = 1;
20270 let isExtendable = 1;
20271 let opExtendable = 2;
20272 let isExtentSigned = 0;
20273 let opExtentBits = 7;
20274 let opExtentAlign = 1;
20276 def S2_pstorerhf_pi : HInst<
20277 (outs IntRegs:$Rx32),
20278 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20279 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
20280 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20281 let Inst{2-2} = 0b1;
20282 let Inst{7-7} = 0b0;
20283 let Inst{13-13} = 0b1;
20284 let Inst{31-21} = 0b10101011010;
20285 let isPredicated = 1;
20286 let isPredicatedFalse = 1;
20287 let addrMode = PostInc;
20288 let accessSize = HalfWordAccess;
20289 let mayStore = 1;
20290 let BaseOpcode = "S2_storerh_pi";
20291 let isNVStorable = 1;
20292 let Constraints = "$Rx32 = $Rx32in";
20294 def S2_pstorerhf_zomap : HInst<
20295 (outs),
20296 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20297 "if (!$Pv4) memh($Rs32) = $Rt32",
20298 tc_8035e91f, TypeMAPPING> {
20299 let isPseudo = 1;
20300 let isCodeGenOnly = 1;
20302 def S2_pstorerhfnew_pi : HInst<
20303 (outs IntRegs:$Rx32),
20304 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20305 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20306 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20307 let Inst{2-2} = 0b1;
20308 let Inst{7-7} = 0b1;
20309 let Inst{13-13} = 0b1;
20310 let Inst{31-21} = 0b10101011010;
20311 let isPredicated = 1;
20312 let isPredicatedFalse = 1;
20313 let addrMode = PostInc;
20314 let accessSize = HalfWordAccess;
20315 let isPredicatedNew = 1;
20316 let mayStore = 1;
20317 let BaseOpcode = "S2_storerh_pi";
20318 let isNVStorable = 1;
20319 let Constraints = "$Rx32 = $Rx32in";
20321 def S2_pstorerhnewf_io : HInst<
20322 (outs),
20323 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20324 "if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20325 tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20326 let Inst{2-2} = 0b0;
20327 let Inst{12-11} = 0b01;
20328 let Inst{31-21} = 0b01000100101;
20329 let isPredicated = 1;
20330 let isPredicatedFalse = 1;
20331 let addrMode = BaseImmOffset;
20332 let accessSize = HalfWordAccess;
20333 let isNVStore = 1;
20334 let isNewValue = 1;
20335 let isRestrictNoSlot1Store = 1;
20336 let mayStore = 1;
20337 let BaseOpcode = "S2_storerh_io";
20338 let CextOpcode = "S2_storerh";
20339 let InputType = "imm";
20340 let isExtendable = 1;
20341 let opExtendable = 2;
20342 let isExtentSigned = 0;
20343 let opExtentBits = 7;
20344 let opExtentAlign = 1;
20345 let opNewValue = 3;
20347 def S2_pstorerhnewf_pi : HInst<
20348 (outs IntRegs:$Rx32),
20349 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20350 "if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20351 tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20352 let Inst{2-2} = 0b1;
20353 let Inst{7-7} = 0b0;
20354 let Inst{13-11} = 0b101;
20355 let Inst{31-21} = 0b10101011101;
20356 let isPredicated = 1;
20357 let isPredicatedFalse = 1;
20358 let addrMode = PostInc;
20359 let accessSize = HalfWordAccess;
20360 let isNVStore = 1;
20361 let isNewValue = 1;
20362 let isRestrictNoSlot1Store = 1;
20363 let mayStore = 1;
20364 let BaseOpcode = "S2_storerh_pi";
20365 let CextOpcode = "S2_storerh";
20366 let opNewValue = 4;
20367 let Constraints = "$Rx32 = $Rx32in";
20369 def S2_pstorerhnewf_zomap : HInst<
20370 (outs),
20371 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20372 "if (!$Pv4) memh($Rs32) = $Nt8.new",
20373 tc_011e0e9d, TypeMAPPING> {
20374 let isPseudo = 1;
20375 let isCodeGenOnly = 1;
20376 let opNewValue = 2;
20378 def S2_pstorerhnewfnew_pi : HInst<
20379 (outs IntRegs:$Rx32),
20380 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20381 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20382 tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20383 let Inst{2-2} = 0b1;
20384 let Inst{7-7} = 0b1;
20385 let Inst{13-11} = 0b101;
20386 let Inst{31-21} = 0b10101011101;
20387 let isPredicated = 1;
20388 let isPredicatedFalse = 1;
20389 let addrMode = PostInc;
20390 let accessSize = HalfWordAccess;
20391 let isNVStore = 1;
20392 let isPredicatedNew = 1;
20393 let isNewValue = 1;
20394 let isRestrictNoSlot1Store = 1;
20395 let mayStore = 1;
20396 let BaseOpcode = "S2_storerh_pi";
20397 let CextOpcode = "S2_storerh";
20398 let opNewValue = 4;
20399 let Constraints = "$Rx32 = $Rx32in";
20401 def S2_pstorerhnewt_io : HInst<
20402 (outs),
20403 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20404 "if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20405 tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20406 let Inst{2-2} = 0b0;
20407 let Inst{12-11} = 0b01;
20408 let Inst{31-21} = 0b01000000101;
20409 let isPredicated = 1;
20410 let addrMode = BaseImmOffset;
20411 let accessSize = HalfWordAccess;
20412 let isNVStore = 1;
20413 let isNewValue = 1;
20414 let isRestrictNoSlot1Store = 1;
20415 let mayStore = 1;
20416 let BaseOpcode = "S2_storerh_io";
20417 let CextOpcode = "S2_storerh";
20418 let InputType = "imm";
20419 let isExtendable = 1;
20420 let opExtendable = 2;
20421 let isExtentSigned = 0;
20422 let opExtentBits = 7;
20423 let opExtentAlign = 1;
20424 let opNewValue = 3;
20426 def S2_pstorerhnewt_pi : HInst<
20427 (outs IntRegs:$Rx32),
20428 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20429 "if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20430 tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20431 let Inst{2-2} = 0b0;
20432 let Inst{7-7} = 0b0;
20433 let Inst{13-11} = 0b101;
20434 let Inst{31-21} = 0b10101011101;
20435 let isPredicated = 1;
20436 let addrMode = PostInc;
20437 let accessSize = HalfWordAccess;
20438 let isNVStore = 1;
20439 let isNewValue = 1;
20440 let isRestrictNoSlot1Store = 1;
20441 let mayStore = 1;
20442 let BaseOpcode = "S2_storerh_pi";
20443 let CextOpcode = "S2_storerh";
20444 let opNewValue = 4;
20445 let Constraints = "$Rx32 = $Rx32in";
20447 def S2_pstorerhnewt_zomap : HInst<
20448 (outs),
20449 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20450 "if ($Pv4) memh($Rs32) = $Nt8.new",
20451 tc_011e0e9d, TypeMAPPING> {
20452 let isPseudo = 1;
20453 let isCodeGenOnly = 1;
20454 let opNewValue = 2;
20456 def S2_pstorerhnewtnew_pi : HInst<
20457 (outs IntRegs:$Rx32),
20458 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20459 "if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20460 tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20461 let Inst{2-2} = 0b0;
20462 let Inst{7-7} = 0b1;
20463 let Inst{13-11} = 0b101;
20464 let Inst{31-21} = 0b10101011101;
20465 let isPredicated = 1;
20466 let addrMode = PostInc;
20467 let accessSize = HalfWordAccess;
20468 let isNVStore = 1;
20469 let isPredicatedNew = 1;
20470 let isNewValue = 1;
20471 let isRestrictNoSlot1Store = 1;
20472 let mayStore = 1;
20473 let BaseOpcode = "S2_storerh_pi";
20474 let CextOpcode = "S2_storerh";
20475 let opNewValue = 4;
20476 let Constraints = "$Rx32 = $Rx32in";
20478 def S2_pstorerht_io : HInst<
20479 (outs),
20480 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20481 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20482 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20483 let Inst{2-2} = 0b0;
20484 let Inst{31-21} = 0b01000000010;
20485 let isPredicated = 1;
20486 let addrMode = BaseImmOffset;
20487 let accessSize = HalfWordAccess;
20488 let mayStore = 1;
20489 let BaseOpcode = "S2_storerh_io";
20490 let CextOpcode = "S2_storerh";
20491 let InputType = "imm";
20492 let isNVStorable = 1;
20493 let isExtendable = 1;
20494 let opExtendable = 2;
20495 let isExtentSigned = 0;
20496 let opExtentBits = 7;
20497 let opExtentAlign = 1;
20499 def S2_pstorerht_pi : HInst<
20500 (outs IntRegs:$Rx32),
20501 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20502 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20503 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20504 let Inst{2-2} = 0b0;
20505 let Inst{7-7} = 0b0;
20506 let Inst{13-13} = 0b1;
20507 let Inst{31-21} = 0b10101011010;
20508 let isPredicated = 1;
20509 let addrMode = PostInc;
20510 let accessSize = HalfWordAccess;
20511 let mayStore = 1;
20512 let BaseOpcode = "S2_storerh_pi";
20513 let isNVStorable = 1;
20514 let Constraints = "$Rx32 = $Rx32in";
20516 def S2_pstorerht_zomap : HInst<
20517 (outs),
20518 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20519 "if ($Pv4) memh($Rs32) = $Rt32",
20520 tc_8035e91f, TypeMAPPING> {
20521 let isPseudo = 1;
20522 let isCodeGenOnly = 1;
20524 def S2_pstorerhtnew_pi : HInst<
20525 (outs IntRegs:$Rx32),
20526 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20527 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20528 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20529 let Inst{2-2} = 0b0;
20530 let Inst{7-7} = 0b1;
20531 let Inst{13-13} = 0b1;
20532 let Inst{31-21} = 0b10101011010;
20533 let isPredicated = 1;
20534 let addrMode = PostInc;
20535 let accessSize = HalfWordAccess;
20536 let isPredicatedNew = 1;
20537 let mayStore = 1;
20538 let BaseOpcode = "S2_storerh_pi";
20539 let isNVStorable = 1;
20540 let Constraints = "$Rx32 = $Rx32in";
20542 def S2_pstorerif_io : HInst<
20543 (outs),
20544 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20545 "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20546 tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20547 let Inst{2-2} = 0b0;
20548 let Inst{31-21} = 0b01000100100;
20549 let isPredicated = 1;
20550 let isPredicatedFalse = 1;
20551 let addrMode = BaseImmOffset;
20552 let accessSize = WordAccess;
20553 let mayStore = 1;
20554 let BaseOpcode = "S2_storeri_io";
20555 let CextOpcode = "S2_storeri";
20556 let InputType = "imm";
20557 let isNVStorable = 1;
20558 let isExtendable = 1;
20559 let opExtendable = 2;
20560 let isExtentSigned = 0;
20561 let opExtentBits = 8;
20562 let opExtentAlign = 2;
20564 def S2_pstorerif_pi : HInst<
20565 (outs IntRegs:$Rx32),
20566 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20567 "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20568 tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20569 let Inst{2-2} = 0b1;
20570 let Inst{7-7} = 0b0;
20571 let Inst{13-13} = 0b1;
20572 let Inst{31-21} = 0b10101011100;
20573 let isPredicated = 1;
20574 let isPredicatedFalse = 1;
20575 let addrMode = PostInc;
20576 let accessSize = WordAccess;
20577 let mayStore = 1;
20578 let BaseOpcode = "S2_storeri_pi";
20579 let isNVStorable = 1;
20580 let Constraints = "$Rx32 = $Rx32in";
20582 def S2_pstorerif_zomap : HInst<
20583 (outs),
20584 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20585 "if (!$Pv4) memw($Rs32) = $Rt32",
20586 tc_8035e91f, TypeMAPPING> {
20587 let isPseudo = 1;
20588 let isCodeGenOnly = 1;
20590 def S2_pstorerifnew_pi : HInst<
20591 (outs IntRegs:$Rx32),
20592 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20593 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20594 tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20595 let Inst{2-2} = 0b1;
20596 let Inst{7-7} = 0b1;
20597 let Inst{13-13} = 0b1;
20598 let Inst{31-21} = 0b10101011100;
20599 let isPredicated = 1;
20600 let isPredicatedFalse = 1;
20601 let addrMode = PostInc;
20602 let accessSize = WordAccess;
20603 let isPredicatedNew = 1;
20604 let mayStore = 1;
20605 let BaseOpcode = "S2_storeri_pi";
20606 let CextOpcode = "S2_storeri";
20607 let isNVStorable = 1;
20608 let Constraints = "$Rx32 = $Rx32in";
20610 def S2_pstorerinewf_io : HInst<
20611 (outs),
20612 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20613 "if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20614 tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20615 let Inst{2-2} = 0b0;
20616 let Inst{12-11} = 0b10;
20617 let Inst{31-21} = 0b01000100101;
20618 let isPredicated = 1;
20619 let isPredicatedFalse = 1;
20620 let addrMode = BaseImmOffset;
20621 let accessSize = WordAccess;
20622 let isNVStore = 1;
20623 let isNewValue = 1;
20624 let isRestrictNoSlot1Store = 1;
20625 let mayStore = 1;
20626 let BaseOpcode = "S2_storeri_io";
20627 let CextOpcode = "S2_storeri";
20628 let InputType = "imm";
20629 let isExtendable = 1;
20630 let opExtendable = 2;
20631 let isExtentSigned = 0;
20632 let opExtentBits = 8;
20633 let opExtentAlign = 2;
20634 let opNewValue = 3;
20636 def S2_pstorerinewf_pi : HInst<
20637 (outs IntRegs:$Rx32),
20638 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20639 "if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20640 tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20641 let Inst{2-2} = 0b1;
20642 let Inst{7-7} = 0b0;
20643 let Inst{13-11} = 0b110;
20644 let Inst{31-21} = 0b10101011101;
20645 let isPredicated = 1;
20646 let isPredicatedFalse = 1;
20647 let addrMode = PostInc;
20648 let accessSize = WordAccess;
20649 let isNVStore = 1;
20650 let isNewValue = 1;
20651 let isRestrictNoSlot1Store = 1;
20652 let mayStore = 1;
20653 let BaseOpcode = "S2_storeri_pi";
20654 let CextOpcode = "S2_storeri";
20655 let opNewValue = 4;
20656 let Constraints = "$Rx32 = $Rx32in";
20658 def S2_pstorerinewf_zomap : HInst<
20659 (outs),
20660 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20661 "if (!$Pv4) memw($Rs32) = $Nt8.new",
20662 tc_011e0e9d, TypeMAPPING> {
20663 let isPseudo = 1;
20664 let isCodeGenOnly = 1;
20665 let opNewValue = 2;
20667 def S2_pstorerinewfnew_pi : HInst<
20668 (outs IntRegs:$Rx32),
20669 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20670 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20671 tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20672 let Inst{2-2} = 0b1;
20673 let Inst{7-7} = 0b1;
20674 let Inst{13-11} = 0b110;
20675 let Inst{31-21} = 0b10101011101;
20676 let isPredicated = 1;
20677 let isPredicatedFalse = 1;
20678 let addrMode = PostInc;
20679 let accessSize = WordAccess;
20680 let isNVStore = 1;
20681 let isPredicatedNew = 1;
20682 let isNewValue = 1;
20683 let isRestrictNoSlot1Store = 1;
20684 let mayStore = 1;
20685 let BaseOpcode = "S2_storeri_pi";
20686 let CextOpcode = "S2_storeri";
20687 let opNewValue = 4;
20688 let Constraints = "$Rx32 = $Rx32in";
20690 def S2_pstorerinewt_io : HInst<
20691 (outs),
20692 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20693 "if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20694 tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20695 let Inst{2-2} = 0b0;
20696 let Inst{12-11} = 0b10;
20697 let Inst{31-21} = 0b01000000101;
20698 let isPredicated = 1;
20699 let addrMode = BaseImmOffset;
20700 let accessSize = WordAccess;
20701 let isNVStore = 1;
20702 let isNewValue = 1;
20703 let isRestrictNoSlot1Store = 1;
20704 let mayStore = 1;
20705 let BaseOpcode = "S2_storeri_io";
20706 let CextOpcode = "S2_storeri";
20707 let InputType = "imm";
20708 let isExtendable = 1;
20709 let opExtendable = 2;
20710 let isExtentSigned = 0;
20711 let opExtentBits = 8;
20712 let opExtentAlign = 2;
20713 let opNewValue = 3;
20715 def S2_pstorerinewt_pi : HInst<
20716 (outs IntRegs:$Rx32),
20717 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20718 "if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20719 tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20720 let Inst{2-2} = 0b0;
20721 let Inst{7-7} = 0b0;
20722 let Inst{13-11} = 0b110;
20723 let Inst{31-21} = 0b10101011101;
20724 let isPredicated = 1;
20725 let addrMode = PostInc;
20726 let accessSize = WordAccess;
20727 let isNVStore = 1;
20728 let isNewValue = 1;
20729 let isRestrictNoSlot1Store = 1;
20730 let mayStore = 1;
20731 let BaseOpcode = "S2_storeri_pi";
20732 let CextOpcode = "S2_storeri";
20733 let opNewValue = 4;
20734 let Constraints = "$Rx32 = $Rx32in";
20736 def S2_pstorerinewt_zomap : HInst<
20737 (outs),
20738 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20739 "if ($Pv4) memw($Rs32) = $Nt8.new",
20740 tc_011e0e9d, TypeMAPPING> {
20741 let isPseudo = 1;
20742 let isCodeGenOnly = 1;
20743 let opNewValue = 2;
20745 def S2_pstorerinewtnew_pi : HInst<
20746 (outs IntRegs:$Rx32),
20747 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20748 "if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20749 tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20750 let Inst{2-2} = 0b0;
20751 let Inst{7-7} = 0b1;
20752 let Inst{13-11} = 0b110;
20753 let Inst{31-21} = 0b10101011101;
20754 let isPredicated = 1;
20755 let addrMode = PostInc;
20756 let accessSize = WordAccess;
20757 let isNVStore = 1;
20758 let isPredicatedNew = 1;
20759 let isNewValue = 1;
20760 let isRestrictNoSlot1Store = 1;
20761 let mayStore = 1;
20762 let BaseOpcode = "S2_storeri_pi";
20763 let CextOpcode = "S2_storeri";
20764 let opNewValue = 4;
20765 let Constraints = "$Rx32 = $Rx32in";
20767 def S2_pstorerit_io : HInst<
20768 (outs),
20769 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20770 "if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20771 tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20772 let Inst{2-2} = 0b0;
20773 let Inst{31-21} = 0b01000000100;
20774 let isPredicated = 1;
20775 let addrMode = BaseImmOffset;
20776 let accessSize = WordAccess;
20777 let mayStore = 1;
20778 let BaseOpcode = "S2_storeri_io";
20779 let CextOpcode = "S2_storeri";
20780 let InputType = "imm";
20781 let isNVStorable = 1;
20782 let isExtendable = 1;
20783 let opExtendable = 2;
20784 let isExtentSigned = 0;
20785 let opExtentBits = 8;
20786 let opExtentAlign = 2;
20788 def S2_pstorerit_pi : HInst<
20789 (outs IntRegs:$Rx32),
20790 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20791 "if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20792 tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20793 let Inst{2-2} = 0b0;
20794 let Inst{7-7} = 0b0;
20795 let Inst{13-13} = 0b1;
20796 let Inst{31-21} = 0b10101011100;
20797 let isPredicated = 1;
20798 let addrMode = PostInc;
20799 let accessSize = WordAccess;
20800 let mayStore = 1;
20801 let BaseOpcode = "S2_storeri_pi";
20802 let isNVStorable = 1;
20803 let Constraints = "$Rx32 = $Rx32in";
20805 def S2_pstorerit_zomap : HInst<
20806 (outs),
20807 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20808 "if ($Pv4) memw($Rs32) = $Rt32",
20809 tc_8035e91f, TypeMAPPING> {
20810 let isPseudo = 1;
20811 let isCodeGenOnly = 1;
20813 def S2_pstoreritnew_pi : HInst<
20814 (outs IntRegs:$Rx32),
20815 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20816 "if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20817 tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20818 let Inst{2-2} = 0b0;
20819 let Inst{7-7} = 0b1;
20820 let Inst{13-13} = 0b1;
20821 let Inst{31-21} = 0b10101011100;
20822 let isPredicated = 1;
20823 let addrMode = PostInc;
20824 let accessSize = WordAccess;
20825 let isPredicatedNew = 1;
20826 let mayStore = 1;
20827 let BaseOpcode = "S2_storeri_pi";
20828 let isNVStorable = 1;
20829 let Constraints = "$Rx32 = $Rx32in";
20831 def S2_setbit_i : HInst<
20832 (outs IntRegs:$Rd32),
20833 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
20834 "$Rd32 = setbit($Rs32,#$Ii)",
20835 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
20836 let Inst{7-5} = 0b000;
20837 let Inst{13-13} = 0b0;
20838 let Inst{31-21} = 0b10001100110;
20839 let hasNewValue = 1;
20840 let opNewValue = 0;
20842 def S2_setbit_r : HInst<
20843 (outs IntRegs:$Rd32),
20844 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20845 "$Rd32 = setbit($Rs32,$Rt32)",
20846 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
20847 let Inst{7-5} = 0b000;
20848 let Inst{13-13} = 0b0;
20849 let Inst{31-21} = 0b11000110100;
20850 let hasNewValue = 1;
20851 let opNewValue = 0;
20853 def S2_shuffeb : HInst<
20854 (outs DoubleRegs:$Rdd32),
20855 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20856 "$Rdd32 = shuffeb($Rss32,$Rtt32)",
20857 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20858 let Inst{7-5} = 0b010;
20859 let Inst{13-13} = 0b0;
20860 let Inst{31-21} = 0b11000001000;
20862 def S2_shuffeh : HInst<
20863 (outs DoubleRegs:$Rdd32),
20864 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20865 "$Rdd32 = shuffeh($Rss32,$Rtt32)",
20866 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20867 let Inst{7-5} = 0b110;
20868 let Inst{13-13} = 0b0;
20869 let Inst{31-21} = 0b11000001000;
20871 def S2_shuffob : HInst<
20872 (outs DoubleRegs:$Rdd32),
20873 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20874 "$Rdd32 = shuffob($Rtt32,$Rss32)",
20875 tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20876 let Inst{7-5} = 0b100;
20877 let Inst{13-13} = 0b0;
20878 let Inst{31-21} = 0b11000001000;
20880 def S2_shuffoh : HInst<
20881 (outs DoubleRegs:$Rdd32),
20882 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20883 "$Rdd32 = shuffoh($Rtt32,$Rss32)",
20884 tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20885 let Inst{7-5} = 0b000;
20886 let Inst{13-13} = 0b0;
20887 let Inst{31-21} = 0b11000001100;
20889 def S2_storerb_io : HInst<
20890 (outs),
20891 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20892 "memb($Rs32+#$Ii) = $Rt32",
20893 tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20894 let Inst{24-21} = 0b1000;
20895 let Inst{31-27} = 0b10100;
20896 let addrMode = BaseImmOffset;
20897 let accessSize = ByteAccess;
20898 let mayStore = 1;
20899 let BaseOpcode = "S2_storerb_io";
20900 let CextOpcode = "S2_storerb";
20901 let InputType = "imm";
20902 let isNVStorable = 1;
20903 let isPredicable = 1;
20904 let isExtendable = 1;
20905 let opExtendable = 1;
20906 let isExtentSigned = 1;
20907 let opExtentBits = 11;
20908 let opExtentAlign = 0;
20910 def S2_storerb_pbr : HInst<
20911 (outs IntRegs:$Rx32),
20912 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20913 "memb($Rx32++$Mu2:brev) = $Rt32",
20914 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20915 let Inst{7-0} = 0b00000000;
20916 let Inst{31-21} = 0b10101111000;
20917 let addrMode = PostInc;
20918 let accessSize = ByteAccess;
20919 let mayStore = 1;
20920 let BaseOpcode = "S2_storerb_pbr";
20921 let isNVStorable = 1;
20922 let Constraints = "$Rx32 = $Rx32in";
20924 def S2_storerb_pci : HInst<
20925 (outs IntRegs:$Rx32),
20926 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20927 "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20928 tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel {
20929 let Inst{2-0} = 0b000;
20930 let Inst{7-7} = 0b0;
20931 let Inst{31-21} = 0b10101001000;
20932 let addrMode = PostInc;
20933 let accessSize = ByteAccess;
20934 let mayStore = 1;
20935 let Uses = [CS];
20936 let BaseOpcode = "S2_storerb_pci";
20937 let isNVStorable = 1;
20938 let Constraints = "$Rx32 = $Rx32in";
20940 def S2_storerb_pcr : HInst<
20941 (outs IntRegs:$Rx32),
20942 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20943 "memb($Rx32++I:circ($Mu2)) = $Rt32",
20944 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20945 let Inst{7-0} = 0b00000010;
20946 let Inst{31-21} = 0b10101001000;
20947 let addrMode = PostInc;
20948 let accessSize = ByteAccess;
20949 let mayStore = 1;
20950 let Uses = [CS];
20951 let BaseOpcode = "S2_storerb_pcr";
20952 let isNVStorable = 1;
20953 let Constraints = "$Rx32 = $Rx32in";
20955 def S2_storerb_pi : HInst<
20956 (outs IntRegs:$Rx32),
20957 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20958 "memb($Rx32++#$Ii) = $Rt32",
20959 tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
20960 let Inst{2-0} = 0b000;
20961 let Inst{7-7} = 0b0;
20962 let Inst{13-13} = 0b0;
20963 let Inst{31-21} = 0b10101011000;
20964 let addrMode = PostInc;
20965 let accessSize = ByteAccess;
20966 let mayStore = 1;
20967 let BaseOpcode = "S2_storerb_pi";
20968 let CextOpcode = "S2_storerb";
20969 let isNVStorable = 1;
20970 let isPredicable = 1;
20971 let Constraints = "$Rx32 = $Rx32in";
20973 def S2_storerb_pr : HInst<
20974 (outs IntRegs:$Rx32),
20975 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20976 "memb($Rx32++$Mu2) = $Rt32",
20977 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20978 let Inst{7-0} = 0b00000000;
20979 let Inst{31-21} = 0b10101101000;
20980 let addrMode = PostInc;
20981 let accessSize = ByteAccess;
20982 let mayStore = 1;
20983 let BaseOpcode = "S2_storerb_pr";
20984 let isNVStorable = 1;
20985 let Constraints = "$Rx32 = $Rx32in";
20987 def S2_storerb_zomap : HInst<
20988 (outs),
20989 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20990 "memb($Rs32) = $Rt32",
20991 tc_ae5babd7, TypeMAPPING> {
20992 let isPseudo = 1;
20993 let isCodeGenOnly = 1;
20995 def S2_storerbgp : HInst<
20996 (outs),
20997 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
20998 "memb(gp+#$Ii) = $Rt32",
20999 tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
21000 let Inst{24-21} = 0b0000;
21001 let Inst{31-27} = 0b01001;
21002 let accessSize = ByteAccess;
21003 let mayStore = 1;
21004 let Uses = [GP];
21005 let BaseOpcode = "S2_storerbabs";
21006 let isNVStorable = 1;
21007 let isPredicable = 1;
21008 let opExtendable = 0;
21009 let isExtentSigned = 0;
21010 let opExtentBits = 16;
21011 let opExtentAlign = 0;
21013 def S2_storerbnew_io : HInst<
21014 (outs),
21015 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
21016 "memb($Rs32+#$Ii) = $Nt8.new",
21017 tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel {
21018 let Inst{12-11} = 0b00;
21019 let Inst{24-21} = 0b1101;
21020 let Inst{31-27} = 0b10100;
21021 let addrMode = BaseImmOffset;
21022 let accessSize = ByteAccess;
21023 let isNVStore = 1;
21024 let isNewValue = 1;
21025 let isRestrictNoSlot1Store = 1;
21026 let mayStore = 1;
21027 let BaseOpcode = "S2_storerb_io";
21028 let CextOpcode = "S2_storerb";
21029 let InputType = "imm";
21030 let isPredicable = 1;
21031 let isExtendable = 1;
21032 let opExtendable = 1;
21033 let isExtentSigned = 1;
21034 let opExtentBits = 11;
21035 let opExtentAlign = 0;
21036 let opNewValue = 2;
21038 def S2_storerbnew_pbr : HInst<
21039 (outs IntRegs:$Rx32),
21040 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21041 "memb($Rx32++$Mu2:brev) = $Nt8.new",
21042 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21043 let Inst{7-0} = 0b00000000;
21044 let Inst{12-11} = 0b00;
21045 let Inst{31-21} = 0b10101111101;
21046 let addrMode = PostInc;
21047 let accessSize = ByteAccess;
21048 let isNVStore = 1;
21049 let isNewValue = 1;
21050 let isRestrictNoSlot1Store = 1;
21051 let mayStore = 1;
21052 let BaseOpcode = "S2_storerb_pbr";
21053 let opNewValue = 3;
21054 let Constraints = "$Rx32 = $Rx32in";
21056 def S2_storerbnew_pci : HInst<
21057 (outs IntRegs:$Rx32),
21058 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21059 "memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21060 tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel {
21061 let Inst{2-0} = 0b000;
21062 let Inst{7-7} = 0b0;
21063 let Inst{12-11} = 0b00;
21064 let Inst{31-21} = 0b10101001101;
21065 let addrMode = PostInc;
21066 let accessSize = ByteAccess;
21067 let isNVStore = 1;
21068 let isNewValue = 1;
21069 let isRestrictNoSlot1Store = 1;
21070 let mayStore = 1;
21071 let Uses = [CS];
21072 let BaseOpcode = "S2_storerb_pci";
21073 let opNewValue = 4;
21074 let Constraints = "$Rx32 = $Rx32in";
21076 def S2_storerbnew_pcr : HInst<
21077 (outs IntRegs:$Rx32),
21078 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21079 "memb($Rx32++I:circ($Mu2)) = $Nt8.new",
21080 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21081 let Inst{7-0} = 0b00000010;
21082 let Inst{12-11} = 0b00;
21083 let Inst{31-21} = 0b10101001101;
21084 let addrMode = PostInc;
21085 let accessSize = ByteAccess;
21086 let isNVStore = 1;
21087 let isNewValue = 1;
21088 let isRestrictNoSlot1Store = 1;
21089 let mayStore = 1;
21090 let Uses = [CS];
21091 let BaseOpcode = "S2_storerb_pcr";
21092 let opNewValue = 3;
21093 let Constraints = "$Rx32 = $Rx32in";
21095 def S2_storerbnew_pi : HInst<
21096 (outs IntRegs:$Rx32),
21097 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
21098 "memb($Rx32++#$Ii) = $Nt8.new",
21099 tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel {
21100 let Inst{2-0} = 0b000;
21101 let Inst{7-7} = 0b0;
21102 let Inst{13-11} = 0b000;
21103 let Inst{31-21} = 0b10101011101;
21104 let addrMode = PostInc;
21105 let accessSize = ByteAccess;
21106 let isNVStore = 1;
21107 let isNewValue = 1;
21108 let isRestrictNoSlot1Store = 1;
21109 let mayStore = 1;
21110 let BaseOpcode = "S2_storerb_pi";
21111 let isNVStorable = 1;
21112 let isPredicable = 1;
21113 let opNewValue = 3;
21114 let Constraints = "$Rx32 = $Rx32in";
21116 def S2_storerbnew_pr : HInst<
21117 (outs IntRegs:$Rx32),
21118 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21119 "memb($Rx32++$Mu2) = $Nt8.new",
21120 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21121 let Inst{7-0} = 0b00000000;
21122 let Inst{12-11} = 0b00;
21123 let Inst{31-21} = 0b10101101101;
21124 let addrMode = PostInc;
21125 let accessSize = ByteAccess;
21126 let isNVStore = 1;
21127 let isNewValue = 1;
21128 let isRestrictNoSlot1Store = 1;
21129 let mayStore = 1;
21130 let BaseOpcode = "S2_storerb_pr";
21131 let opNewValue = 3;
21132 let Constraints = "$Rx32 = $Rx32in";
21134 def S2_storerbnew_zomap : HInst<
21135 (outs),
21136 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21137 "memb($Rs32) = $Nt8.new",
21138 tc_5deb5e47, TypeMAPPING> {
21139 let isPseudo = 1;
21140 let isCodeGenOnly = 1;
21141 let opNewValue = 1;
21143 def S2_storerbnewgp : HInst<
21144 (outs),
21145 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
21146 "memb(gp+#$Ii) = $Nt8.new",
21147 tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
21148 let Inst{12-11} = 0b00;
21149 let Inst{24-21} = 0b0101;
21150 let Inst{31-27} = 0b01001;
21151 let accessSize = ByteAccess;
21152 let isNVStore = 1;
21153 let isNewValue = 1;
21154 let isRestrictNoSlot1Store = 1;
21155 let mayStore = 1;
21156 let Uses = [GP];
21157 let BaseOpcode = "S2_storerbabs";
21158 let isPredicable = 1;
21159 let opExtendable = 0;
21160 let isExtentSigned = 0;
21161 let opExtentBits = 16;
21162 let opExtentAlign = 0;
21163 let opNewValue = 1;
21165 def S2_storerd_io : HInst<
21166 (outs),
21167 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
21168 "memd($Rs32+#$Ii) = $Rtt32",
21169 tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
21170 let Inst{24-21} = 0b1110;
21171 let Inst{31-27} = 0b10100;
21172 let addrMode = BaseImmOffset;
21173 let accessSize = DoubleWordAccess;
21174 let mayStore = 1;
21175 let BaseOpcode = "S2_storerd_io";
21176 let CextOpcode = "S2_storerd";
21177 let InputType = "imm";
21178 let isPredicable = 1;
21179 let isExtendable = 1;
21180 let opExtendable = 1;
21181 let isExtentSigned = 1;
21182 let opExtentBits = 14;
21183 let opExtentAlign = 3;
21185 def S2_storerd_pbr : HInst<
21186 (outs IntRegs:$Rx32),
21187 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21188 "memd($Rx32++$Mu2:brev) = $Rtt32",
21189 tc_a2b365d2, TypeST>, Enc_928ca1 {
21190 let Inst{7-0} = 0b00000000;
21191 let Inst{31-21} = 0b10101111110;
21192 let addrMode = PostInc;
21193 let accessSize = DoubleWordAccess;
21194 let mayStore = 1;
21195 let Constraints = "$Rx32 = $Rx32in";
21197 def S2_storerd_pci : HInst<
21198 (outs IntRegs:$Rx32),
21199 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21200 "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
21201 tc_b4dc7630, TypeST>, Enc_395cc4 {
21202 let Inst{2-0} = 0b000;
21203 let Inst{7-7} = 0b0;
21204 let Inst{31-21} = 0b10101001110;
21205 let addrMode = PostInc;
21206 let accessSize = DoubleWordAccess;
21207 let mayStore = 1;
21208 let Uses = [CS];
21209 let Constraints = "$Rx32 = $Rx32in";
21211 def S2_storerd_pcr : HInst<
21212 (outs IntRegs:$Rx32),
21213 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21214 "memd($Rx32++I:circ($Mu2)) = $Rtt32",
21215 tc_a2b365d2, TypeST>, Enc_928ca1 {
21216 let Inst{7-0} = 0b00000010;
21217 let Inst{31-21} = 0b10101001110;
21218 let addrMode = PostInc;
21219 let accessSize = DoubleWordAccess;
21220 let mayStore = 1;
21221 let Uses = [CS];
21222 let Constraints = "$Rx32 = $Rx32in";
21224 def S2_storerd_pi : HInst<
21225 (outs IntRegs:$Rx32),
21226 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
21227 "memd($Rx32++#$Ii) = $Rtt32",
21228 tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
21229 let Inst{2-0} = 0b000;
21230 let Inst{7-7} = 0b0;
21231 let Inst{13-13} = 0b0;
21232 let Inst{31-21} = 0b10101011110;
21233 let addrMode = PostInc;
21234 let accessSize = DoubleWordAccess;
21235 let mayStore = 1;
21236 let BaseOpcode = "S2_storerd_pi";
21237 let CextOpcode = "S2_storerd";
21238 let isPredicable = 1;
21239 let Constraints = "$Rx32 = $Rx32in";
21241 def S2_storerd_pr : HInst<
21242 (outs IntRegs:$Rx32),
21243 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21244 "memd($Rx32++$Mu2) = $Rtt32",
21245 tc_a2b365d2, TypeST>, Enc_928ca1 {
21246 let Inst{7-0} = 0b00000000;
21247 let Inst{31-21} = 0b10101101110;
21248 let addrMode = PostInc;
21249 let accessSize = DoubleWordAccess;
21250 let mayStore = 1;
21251 let Constraints = "$Rx32 = $Rx32in";
21253 def S2_storerd_zomap : HInst<
21254 (outs),
21255 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
21256 "memd($Rs32) = $Rtt32",
21257 tc_ae5babd7, TypeMAPPING> {
21258 let isPseudo = 1;
21259 let isCodeGenOnly = 1;
21261 def S2_storerdgp : HInst<
21262 (outs),
21263 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
21264 "memd(gp+#$Ii) = $Rtt32",
21265 tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
21266 let Inst{24-21} = 0b0110;
21267 let Inst{31-27} = 0b01001;
21268 let accessSize = DoubleWordAccess;
21269 let mayStore = 1;
21270 let Uses = [GP];
21271 let BaseOpcode = "S2_storerdabs";
21272 let isPredicable = 1;
21273 let opExtendable = 0;
21274 let isExtentSigned = 0;
21275 let opExtentBits = 19;
21276 let opExtentAlign = 3;
21278 def S2_storerf_io : HInst<
21279 (outs),
21280 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21281 "memh($Rs32+#$Ii) = $Rt32.h",
21282 tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21283 let Inst{24-21} = 0b1011;
21284 let Inst{31-27} = 0b10100;
21285 let addrMode = BaseImmOffset;
21286 let accessSize = HalfWordAccess;
21287 let mayStore = 1;
21288 let BaseOpcode = "S2_storerf_io";
21289 let CextOpcode = "S2_storerf";
21290 let InputType = "imm";
21291 let isPredicable = 1;
21292 let isExtendable = 1;
21293 let opExtendable = 1;
21294 let isExtentSigned = 1;
21295 let opExtentBits = 12;
21296 let opExtentAlign = 1;
21298 def S2_storerf_pbr : HInst<
21299 (outs IntRegs:$Rx32),
21300 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21301 "memh($Rx32++$Mu2:brev) = $Rt32.h",
21302 tc_a2b365d2, TypeST>, Enc_d5c73f {
21303 let Inst{7-0} = 0b00000000;
21304 let Inst{31-21} = 0b10101111011;
21305 let addrMode = PostInc;
21306 let accessSize = HalfWordAccess;
21307 let mayStore = 1;
21308 let Constraints = "$Rx32 = $Rx32in";
21310 def S2_storerf_pci : HInst<
21311 (outs IntRegs:$Rx32),
21312 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21313 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
21314 tc_b4dc7630, TypeST>, Enc_935d9b {
21315 let Inst{2-0} = 0b000;
21316 let Inst{7-7} = 0b0;
21317 let Inst{31-21} = 0b10101001011;
21318 let addrMode = PostInc;
21319 let accessSize = HalfWordAccess;
21320 let mayStore = 1;
21321 let Uses = [CS];
21322 let Constraints = "$Rx32 = $Rx32in";
21324 def S2_storerf_pcr : HInst<
21325 (outs IntRegs:$Rx32),
21326 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21327 "memh($Rx32++I:circ($Mu2)) = $Rt32.h",
21328 tc_a2b365d2, TypeST>, Enc_d5c73f {
21329 let Inst{7-0} = 0b00000010;
21330 let Inst{31-21} = 0b10101001011;
21331 let addrMode = PostInc;
21332 let accessSize = HalfWordAccess;
21333 let mayStore = 1;
21334 let Uses = [CS];
21335 let Constraints = "$Rx32 = $Rx32in";
21337 def S2_storerf_pi : HInst<
21338 (outs IntRegs:$Rx32),
21339 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21340 "memh($Rx32++#$Ii) = $Rt32.h",
21341 tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21342 let Inst{2-0} = 0b000;
21343 let Inst{7-7} = 0b0;
21344 let Inst{13-13} = 0b0;
21345 let Inst{31-21} = 0b10101011011;
21346 let addrMode = PostInc;
21347 let accessSize = HalfWordAccess;
21348 let mayStore = 1;
21349 let BaseOpcode = "S2_storerf_pi";
21350 let CextOpcode = "S2_storerf";
21351 let isPredicable = 1;
21352 let Constraints = "$Rx32 = $Rx32in";
21354 def S2_storerf_pr : HInst<
21355 (outs IntRegs:$Rx32),
21356 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21357 "memh($Rx32++$Mu2) = $Rt32.h",
21358 tc_a2b365d2, TypeST>, Enc_d5c73f {
21359 let Inst{7-0} = 0b00000000;
21360 let Inst{31-21} = 0b10101101011;
21361 let addrMode = PostInc;
21362 let accessSize = HalfWordAccess;
21363 let mayStore = 1;
21364 let Constraints = "$Rx32 = $Rx32in";
21366 def S2_storerf_zomap : HInst<
21367 (outs),
21368 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21369 "memh($Rs32) = $Rt32.h",
21370 tc_ae5babd7, TypeMAPPING> {
21371 let isPseudo = 1;
21372 let isCodeGenOnly = 1;
21374 def S2_storerfgp : HInst<
21375 (outs),
21376 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21377 "memh(gp+#$Ii) = $Rt32.h",
21378 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21379 let Inst{24-21} = 0b0011;
21380 let Inst{31-27} = 0b01001;
21381 let accessSize = HalfWordAccess;
21382 let mayStore = 1;
21383 let Uses = [GP];
21384 let BaseOpcode = "S2_storerfabs";
21385 let isPredicable = 1;
21386 let opExtendable = 0;
21387 let isExtentSigned = 0;
21388 let opExtentBits = 17;
21389 let opExtentAlign = 1;
21391 def S2_storerh_io : HInst<
21392 (outs),
21393 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21394 "memh($Rs32+#$Ii) = $Rt32",
21395 tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21396 let Inst{24-21} = 0b1010;
21397 let Inst{31-27} = 0b10100;
21398 let addrMode = BaseImmOffset;
21399 let accessSize = HalfWordAccess;
21400 let mayStore = 1;
21401 let BaseOpcode = "S2_storerh_io";
21402 let CextOpcode = "S2_storerh";
21403 let InputType = "imm";
21404 let isNVStorable = 1;
21405 let isPredicable = 1;
21406 let isExtendable = 1;
21407 let opExtendable = 1;
21408 let isExtentSigned = 1;
21409 let opExtentBits = 12;
21410 let opExtentAlign = 1;
21412 def S2_storerh_pbr : HInst<
21413 (outs IntRegs:$Rx32),
21414 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21415 "memh($Rx32++$Mu2:brev) = $Rt32",
21416 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21417 let Inst{7-0} = 0b00000000;
21418 let Inst{31-21} = 0b10101111010;
21419 let addrMode = PostInc;
21420 let accessSize = HalfWordAccess;
21421 let mayStore = 1;
21422 let BaseOpcode = "S2_storerh_pbr";
21423 let isNVStorable = 1;
21424 let Constraints = "$Rx32 = $Rx32in";
21426 def S2_storerh_pci : HInst<
21427 (outs IntRegs:$Rx32),
21428 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21429 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21430 tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel {
21431 let Inst{2-0} = 0b000;
21432 let Inst{7-7} = 0b0;
21433 let Inst{31-21} = 0b10101001010;
21434 let addrMode = PostInc;
21435 let accessSize = HalfWordAccess;
21436 let mayStore = 1;
21437 let Uses = [CS];
21438 let BaseOpcode = "S2_storerh_pci";
21439 let isNVStorable = 1;
21440 let Constraints = "$Rx32 = $Rx32in";
21442 def S2_storerh_pcr : HInst<
21443 (outs IntRegs:$Rx32),
21444 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21445 "memh($Rx32++I:circ($Mu2)) = $Rt32",
21446 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21447 let Inst{7-0} = 0b00000010;
21448 let Inst{31-21} = 0b10101001010;
21449 let addrMode = PostInc;
21450 let accessSize = HalfWordAccess;
21451 let mayStore = 1;
21452 let Uses = [CS];
21453 let BaseOpcode = "S2_storerh_pcr";
21454 let isNVStorable = 1;
21455 let Constraints = "$Rx32 = $Rx32in";
21457 def S2_storerh_pi : HInst<
21458 (outs IntRegs:$Rx32),
21459 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21460 "memh($Rx32++#$Ii) = $Rt32",
21461 tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21462 let Inst{2-0} = 0b000;
21463 let Inst{7-7} = 0b0;
21464 let Inst{13-13} = 0b0;
21465 let Inst{31-21} = 0b10101011010;
21466 let addrMode = PostInc;
21467 let accessSize = HalfWordAccess;
21468 let mayStore = 1;
21469 let BaseOpcode = "S2_storerh_pi";
21470 let CextOpcode = "S2_storerh";
21471 let isNVStorable = 1;
21472 let isPredicable = 1;
21473 let Constraints = "$Rx32 = $Rx32in";
21475 def S2_storerh_pr : HInst<
21476 (outs IntRegs:$Rx32),
21477 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21478 "memh($Rx32++$Mu2) = $Rt32",
21479 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21480 let Inst{7-0} = 0b00000000;
21481 let Inst{31-21} = 0b10101101010;
21482 let addrMode = PostInc;
21483 let accessSize = HalfWordAccess;
21484 let mayStore = 1;
21485 let BaseOpcode = "S2_storerh_pr";
21486 let isNVStorable = 1;
21487 let Constraints = "$Rx32 = $Rx32in";
21489 def S2_storerh_zomap : HInst<
21490 (outs),
21491 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21492 "memh($Rs32) = $Rt32",
21493 tc_ae5babd7, TypeMAPPING> {
21494 let isPseudo = 1;
21495 let isCodeGenOnly = 1;
21497 def S2_storerhgp : HInst<
21498 (outs),
21499 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21500 "memh(gp+#$Ii) = $Rt32",
21501 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21502 let Inst{24-21} = 0b0010;
21503 let Inst{31-27} = 0b01001;
21504 let accessSize = HalfWordAccess;
21505 let mayStore = 1;
21506 let Uses = [GP];
21507 let BaseOpcode = "S2_storerhabs";
21508 let isNVStorable = 1;
21509 let isPredicable = 1;
21510 let opExtendable = 0;
21511 let isExtentSigned = 0;
21512 let opExtentBits = 17;
21513 let opExtentAlign = 1;
21515 def S2_storerhnew_io : HInst<
21516 (outs),
21517 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21518 "memh($Rs32+#$Ii) = $Nt8.new",
21519 tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel {
21520 let Inst{12-11} = 0b01;
21521 let Inst{24-21} = 0b1101;
21522 let Inst{31-27} = 0b10100;
21523 let addrMode = BaseImmOffset;
21524 let accessSize = HalfWordAccess;
21525 let isNVStore = 1;
21526 let isNewValue = 1;
21527 let isRestrictNoSlot1Store = 1;
21528 let mayStore = 1;
21529 let BaseOpcode = "S2_storerh_io";
21530 let CextOpcode = "S2_storerh";
21531 let InputType = "imm";
21532 let isPredicable = 1;
21533 let isExtendable = 1;
21534 let opExtendable = 1;
21535 let isExtentSigned = 1;
21536 let opExtentBits = 12;
21537 let opExtentAlign = 1;
21538 let opNewValue = 2;
21540 def S2_storerhnew_pbr : HInst<
21541 (outs IntRegs:$Rx32),
21542 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21543 "memh($Rx32++$Mu2:brev) = $Nt8.new",
21544 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21545 let Inst{7-0} = 0b00000000;
21546 let Inst{12-11} = 0b01;
21547 let Inst{31-21} = 0b10101111101;
21548 let addrMode = PostInc;
21549 let accessSize = HalfWordAccess;
21550 let isNVStore = 1;
21551 let isNewValue = 1;
21552 let isRestrictNoSlot1Store = 1;
21553 let mayStore = 1;
21554 let BaseOpcode = "S2_storerh_pbr";
21555 let opNewValue = 3;
21556 let Constraints = "$Rx32 = $Rx32in";
21558 def S2_storerhnew_pci : HInst<
21559 (outs IntRegs:$Rx32),
21560 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21561 "memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21562 tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel {
21563 let Inst{2-0} = 0b000;
21564 let Inst{7-7} = 0b0;
21565 let Inst{12-11} = 0b01;
21566 let Inst{31-21} = 0b10101001101;
21567 let addrMode = PostInc;
21568 let accessSize = HalfWordAccess;
21569 let isNVStore = 1;
21570 let isNewValue = 1;
21571 let isRestrictNoSlot1Store = 1;
21572 let mayStore = 1;
21573 let Uses = [CS];
21574 let BaseOpcode = "S2_storerh_pci";
21575 let opNewValue = 4;
21576 let Constraints = "$Rx32 = $Rx32in";
21578 def S2_storerhnew_pcr : HInst<
21579 (outs IntRegs:$Rx32),
21580 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21581 "memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21582 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21583 let Inst{7-0} = 0b00000010;
21584 let Inst{12-11} = 0b01;
21585 let Inst{31-21} = 0b10101001101;
21586 let addrMode = PostInc;
21587 let accessSize = HalfWordAccess;
21588 let isNVStore = 1;
21589 let isNewValue = 1;
21590 let isRestrictNoSlot1Store = 1;
21591 let mayStore = 1;
21592 let Uses = [CS];
21593 let BaseOpcode = "S2_storerh_pcr";
21594 let opNewValue = 3;
21595 let Constraints = "$Rx32 = $Rx32in";
21597 def S2_storerhnew_pi : HInst<
21598 (outs IntRegs:$Rx32),
21599 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21600 "memh($Rx32++#$Ii) = $Nt8.new",
21601 tc_92240447, TypeST>, Enc_e26546, AddrModeRel {
21602 let Inst{2-0} = 0b000;
21603 let Inst{7-7} = 0b0;
21604 let Inst{13-11} = 0b001;
21605 let Inst{31-21} = 0b10101011101;
21606 let addrMode = PostInc;
21607 let accessSize = HalfWordAccess;
21608 let isNVStore = 1;
21609 let isNewValue = 1;
21610 let isRestrictNoSlot1Store = 1;
21611 let mayStore = 1;
21612 let BaseOpcode = "S2_storerh_pi";
21613 let isNVStorable = 1;
21614 let isPredicable = 1;
21615 let opNewValue = 3;
21616 let Constraints = "$Rx32 = $Rx32in";
21618 def S2_storerhnew_pr : HInst<
21619 (outs IntRegs:$Rx32),
21620 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21621 "memh($Rx32++$Mu2) = $Nt8.new",
21622 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21623 let Inst{7-0} = 0b00000000;
21624 let Inst{12-11} = 0b01;
21625 let Inst{31-21} = 0b10101101101;
21626 let addrMode = PostInc;
21627 let accessSize = HalfWordAccess;
21628 let isNVStore = 1;
21629 let isNewValue = 1;
21630 let isRestrictNoSlot1Store = 1;
21631 let mayStore = 1;
21632 let BaseOpcode = "S2_storerh_pr";
21633 let opNewValue = 3;
21634 let Constraints = "$Rx32 = $Rx32in";
21636 def S2_storerhnew_zomap : HInst<
21637 (outs),
21638 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21639 "memh($Rs32) = $Nt8.new",
21640 tc_5deb5e47, TypeMAPPING> {
21641 let isPseudo = 1;
21642 let isCodeGenOnly = 1;
21643 let opNewValue = 1;
21645 def S2_storerhnewgp : HInst<
21646 (outs),
21647 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
21648 "memh(gp+#$Ii) = $Nt8.new",
21649 tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21650 let Inst{12-11} = 0b01;
21651 let Inst{24-21} = 0b0101;
21652 let Inst{31-27} = 0b01001;
21653 let accessSize = HalfWordAccess;
21654 let isNVStore = 1;
21655 let isNewValue = 1;
21656 let isRestrictNoSlot1Store = 1;
21657 let mayStore = 1;
21658 let Uses = [GP];
21659 let BaseOpcode = "S2_storerhabs";
21660 let isPredicable = 1;
21661 let opExtendable = 0;
21662 let isExtentSigned = 0;
21663 let opExtentBits = 17;
21664 let opExtentAlign = 1;
21665 let opNewValue = 1;
21667 def S2_storeri_io : HInst<
21668 (outs),
21669 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21670 "memw($Rs32+#$Ii) = $Rt32",
21671 tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21672 let Inst{24-21} = 0b1100;
21673 let Inst{31-27} = 0b10100;
21674 let addrMode = BaseImmOffset;
21675 let accessSize = WordAccess;
21676 let mayStore = 1;
21677 let BaseOpcode = "S2_storeri_io";
21678 let CextOpcode = "S2_storeri";
21679 let InputType = "imm";
21680 let isNVStorable = 1;
21681 let isPredicable = 1;
21682 let isExtendable = 1;
21683 let opExtendable = 1;
21684 let isExtentSigned = 1;
21685 let opExtentBits = 13;
21686 let opExtentAlign = 2;
21688 def S2_storeri_pbr : HInst<
21689 (outs IntRegs:$Rx32),
21690 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21691 "memw($Rx32++$Mu2:brev) = $Rt32",
21692 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21693 let Inst{7-0} = 0b00000000;
21694 let Inst{31-21} = 0b10101111100;
21695 let addrMode = PostInc;
21696 let accessSize = WordAccess;
21697 let mayStore = 1;
21698 let BaseOpcode = "S2_storeri_pbr";
21699 let isNVStorable = 1;
21700 let Constraints = "$Rx32 = $Rx32in";
21702 def S2_storeri_pci : HInst<
21703 (outs IntRegs:$Rx32),
21704 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21705 "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21706 tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel {
21707 let Inst{2-0} = 0b000;
21708 let Inst{7-7} = 0b0;
21709 let Inst{31-21} = 0b10101001100;
21710 let addrMode = PostInc;
21711 let accessSize = WordAccess;
21712 let mayStore = 1;
21713 let Uses = [CS];
21714 let BaseOpcode = "S2_storeri_pci";
21715 let isNVStorable = 1;
21716 let Constraints = "$Rx32 = $Rx32in";
21718 def S2_storeri_pcr : HInst<
21719 (outs IntRegs:$Rx32),
21720 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21721 "memw($Rx32++I:circ($Mu2)) = $Rt32",
21722 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21723 let Inst{7-0} = 0b00000010;
21724 let Inst{31-21} = 0b10101001100;
21725 let addrMode = PostInc;
21726 let accessSize = WordAccess;
21727 let mayStore = 1;
21728 let Uses = [CS];
21729 let BaseOpcode = "S2_storeri_pcr";
21730 let isNVStorable = 1;
21731 let Constraints = "$Rx32 = $Rx32in";
21733 def S2_storeri_pi : HInst<
21734 (outs IntRegs:$Rx32),
21735 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21736 "memw($Rx32++#$Ii) = $Rt32",
21737 tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21738 let Inst{2-0} = 0b000;
21739 let Inst{7-7} = 0b0;
21740 let Inst{13-13} = 0b0;
21741 let Inst{31-21} = 0b10101011100;
21742 let addrMode = PostInc;
21743 let accessSize = WordAccess;
21744 let mayStore = 1;
21745 let BaseOpcode = "S2_storeri_pi";
21746 let CextOpcode = "S2_storeri";
21747 let isNVStorable = 1;
21748 let isPredicable = 1;
21749 let Constraints = "$Rx32 = $Rx32in";
21751 def S2_storeri_pr : HInst<
21752 (outs IntRegs:$Rx32),
21753 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21754 "memw($Rx32++$Mu2) = $Rt32",
21755 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21756 let Inst{7-0} = 0b00000000;
21757 let Inst{31-21} = 0b10101101100;
21758 let addrMode = PostInc;
21759 let accessSize = WordAccess;
21760 let mayStore = 1;
21761 let BaseOpcode = "S2_storeri_pr";
21762 let isNVStorable = 1;
21763 let Constraints = "$Rx32 = $Rx32in";
21765 def S2_storeri_zomap : HInst<
21766 (outs),
21767 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21768 "memw($Rs32) = $Rt32",
21769 tc_ae5babd7, TypeMAPPING> {
21770 let isPseudo = 1;
21771 let isCodeGenOnly = 1;
21773 def S2_storerigp : HInst<
21774 (outs),
21775 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
21776 "memw(gp+#$Ii) = $Rt32",
21777 tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
21778 let Inst{24-21} = 0b0100;
21779 let Inst{31-27} = 0b01001;
21780 let accessSize = WordAccess;
21781 let mayStore = 1;
21782 let Uses = [GP];
21783 let BaseOpcode = "S2_storeriabs";
21784 let isNVStorable = 1;
21785 let isPredicable = 1;
21786 let opExtendable = 0;
21787 let isExtentSigned = 0;
21788 let opExtentBits = 18;
21789 let opExtentAlign = 2;
21791 def S2_storerinew_io : HInst<
21792 (outs),
21793 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21794 "memw($Rs32+#$Ii) = $Nt8.new",
21795 tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel {
21796 let Inst{12-11} = 0b10;
21797 let Inst{24-21} = 0b1101;
21798 let Inst{31-27} = 0b10100;
21799 let addrMode = BaseImmOffset;
21800 let accessSize = WordAccess;
21801 let isNVStore = 1;
21802 let isNewValue = 1;
21803 let isRestrictNoSlot1Store = 1;
21804 let mayStore = 1;
21805 let BaseOpcode = "S2_storeri_io";
21806 let CextOpcode = "S2_storeri";
21807 let InputType = "imm";
21808 let isPredicable = 1;
21809 let isExtendable = 1;
21810 let opExtendable = 1;
21811 let isExtentSigned = 1;
21812 let opExtentBits = 13;
21813 let opExtentAlign = 2;
21814 let opNewValue = 2;
21816 def S2_storerinew_pbr : HInst<
21817 (outs IntRegs:$Rx32),
21818 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21819 "memw($Rx32++$Mu2:brev) = $Nt8.new",
21820 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21821 let Inst{7-0} = 0b00000000;
21822 let Inst{12-11} = 0b10;
21823 let Inst{31-21} = 0b10101111101;
21824 let addrMode = PostInc;
21825 let accessSize = WordAccess;
21826 let isNVStore = 1;
21827 let isNewValue = 1;
21828 let isRestrictNoSlot1Store = 1;
21829 let mayStore = 1;
21830 let BaseOpcode = "S2_storeri_pbr";
21831 let opNewValue = 3;
21832 let Constraints = "$Rx32 = $Rx32in";
21834 def S2_storerinew_pci : HInst<
21835 (outs IntRegs:$Rx32),
21836 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21837 "memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21838 tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel {
21839 let Inst{2-0} = 0b000;
21840 let Inst{7-7} = 0b0;
21841 let Inst{12-11} = 0b10;
21842 let Inst{31-21} = 0b10101001101;
21843 let addrMode = PostInc;
21844 let accessSize = WordAccess;
21845 let isNVStore = 1;
21846 let isNewValue = 1;
21847 let isRestrictNoSlot1Store = 1;
21848 let mayStore = 1;
21849 let Uses = [CS];
21850 let BaseOpcode = "S2_storeri_pci";
21851 let opNewValue = 4;
21852 let Constraints = "$Rx32 = $Rx32in";
21854 def S2_storerinew_pcr : HInst<
21855 (outs IntRegs:$Rx32),
21856 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21857 "memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21858 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21859 let Inst{7-0} = 0b00000010;
21860 let Inst{12-11} = 0b10;
21861 let Inst{31-21} = 0b10101001101;
21862 let addrMode = PostInc;
21863 let accessSize = WordAccess;
21864 let isNVStore = 1;
21865 let isNewValue = 1;
21866 let isRestrictNoSlot1Store = 1;
21867 let mayStore = 1;
21868 let Uses = [CS];
21869 let BaseOpcode = "S2_storeri_pcr";
21870 let opNewValue = 3;
21871 let Constraints = "$Rx32 = $Rx32in";
21873 def S2_storerinew_pi : HInst<
21874 (outs IntRegs:$Rx32),
21875 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21876 "memw($Rx32++#$Ii) = $Nt8.new",
21877 tc_92240447, TypeST>, Enc_223005, AddrModeRel {
21878 let Inst{2-0} = 0b000;
21879 let Inst{7-7} = 0b0;
21880 let Inst{13-11} = 0b010;
21881 let Inst{31-21} = 0b10101011101;
21882 let addrMode = PostInc;
21883 let accessSize = WordAccess;
21884 let isNVStore = 1;
21885 let isNewValue = 1;
21886 let isRestrictNoSlot1Store = 1;
21887 let mayStore = 1;
21888 let BaseOpcode = "S2_storeri_pi";
21889 let isPredicable = 1;
21890 let opNewValue = 3;
21891 let Constraints = "$Rx32 = $Rx32in";
21893 def S2_storerinew_pr : HInst<
21894 (outs IntRegs:$Rx32),
21895 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21896 "memw($Rx32++$Mu2) = $Nt8.new",
21897 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21898 let Inst{7-0} = 0b00000000;
21899 let Inst{12-11} = 0b10;
21900 let Inst{31-21} = 0b10101101101;
21901 let addrMode = PostInc;
21902 let accessSize = WordAccess;
21903 let isNVStore = 1;
21904 let isNewValue = 1;
21905 let isRestrictNoSlot1Store = 1;
21906 let mayStore = 1;
21907 let BaseOpcode = "S2_storeri_pr";
21908 let opNewValue = 3;
21909 let Constraints = "$Rx32 = $Rx32in";
21911 def S2_storerinew_zomap : HInst<
21912 (outs),
21913 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21914 "memw($Rs32) = $Nt8.new",
21915 tc_5deb5e47, TypeMAPPING> {
21916 let isPseudo = 1;
21917 let isCodeGenOnly = 1;
21918 let opNewValue = 1;
21920 def S2_storerinewgp : HInst<
21921 (outs),
21922 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
21923 "memw(gp+#$Ii) = $Nt8.new",
21924 tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21925 let Inst{12-11} = 0b10;
21926 let Inst{24-21} = 0b0101;
21927 let Inst{31-27} = 0b01001;
21928 let accessSize = WordAccess;
21929 let isNVStore = 1;
21930 let isNewValue = 1;
21931 let isRestrictNoSlot1Store = 1;
21932 let mayStore = 1;
21933 let Uses = [GP];
21934 let BaseOpcode = "S2_storeriabs";
21935 let isPredicable = 1;
21936 let opExtendable = 0;
21937 let isExtentSigned = 0;
21938 let opExtentBits = 18;
21939 let opExtentAlign = 2;
21940 let opNewValue = 1;
21942 def S2_storew_locked : HInst<
21943 (outs PredRegs:$Pd4),
21944 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21945 "memw_locked($Rs32,$Pd4) = $Rt32",
21946 tc_6f42bc60, TypeST>, Enc_c2b48e {
21947 let Inst{7-2} = 0b000000;
21948 let Inst{13-13} = 0b0;
21949 let Inst{31-21} = 0b10100000101;
21950 let accessSize = WordAccess;
21951 let isPredicateLate = 1;
21952 let isSoloAX = 1;
21953 let mayStore = 1;
21955 def S2_storew_rl_at_vi : HInst<
21956 (outs),
21957 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21958 "memw_rl($Rs32):at = $Rt32",
21959 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21960 let Inst{7-2} = 0b000010;
21961 let Inst{13-13} = 0b0;
21962 let Inst{31-21} = 0b10100000101;
21963 let accessSize = WordAccess;
21964 let isSolo = 1;
21965 let mayStore = 1;
21967 def S2_storew_rl_st_vi : HInst<
21968 (outs),
21969 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21970 "memw_rl($Rs32):st = $Rt32",
21971 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
21972 let Inst{7-2} = 0b001010;
21973 let Inst{13-13} = 0b0;
21974 let Inst{31-21} = 0b10100000101;
21975 let accessSize = WordAccess;
21976 let isSolo = 1;
21977 let mayStore = 1;
21979 def S2_svsathb : HInst<
21980 (outs IntRegs:$Rd32),
21981 (ins IntRegs:$Rs32),
21982 "$Rd32 = vsathb($Rs32)",
21983 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
21984 let Inst{13-5} = 0b000000000;
21985 let Inst{31-21} = 0b10001100100;
21986 let hasNewValue = 1;
21987 let opNewValue = 0;
21988 let Defs = [USR_OVF];
21990 def S2_svsathub : HInst<
21991 (outs IntRegs:$Rd32),
21992 (ins IntRegs:$Rs32),
21993 "$Rd32 = vsathub($Rs32)",
21994 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
21995 let Inst{13-5} = 0b000000010;
21996 let Inst{31-21} = 0b10001100100;
21997 let hasNewValue = 1;
21998 let opNewValue = 0;
21999 let Defs = [USR_OVF];
22001 def S2_tableidxb : HInst<
22002 (outs IntRegs:$Rx32),
22003 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22004 "$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
22005 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22006 let Inst{31-22} = 0b1000011100;
22007 let hasNewValue = 1;
22008 let opNewValue = 0;
22009 let prefersSlot3 = 1;
22010 let Constraints = "$Rx32 = $Rx32in";
22012 def S2_tableidxb_goodsyntax : HInst<
22013 (outs IntRegs:$Rx32),
22014 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22015 "$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
22016 tc_bb831a7c, TypeS_2op> {
22017 let hasNewValue = 1;
22018 let opNewValue = 0;
22019 let isPseudo = 1;
22020 let isCodeGenOnly = 1;
22021 let Constraints = "$Rx32 = $Rx32in";
22023 def S2_tableidxd : HInst<
22024 (outs IntRegs:$Rx32),
22025 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22026 "$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
22027 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22028 let Inst{31-22} = 0b1000011111;
22029 let hasNewValue = 1;
22030 let opNewValue = 0;
22031 let prefersSlot3 = 1;
22032 let Constraints = "$Rx32 = $Rx32in";
22034 def S2_tableidxd_goodsyntax : HInst<
22035 (outs IntRegs:$Rx32),
22036 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22037 "$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
22038 tc_bb831a7c, TypeS_2op> {
22039 let hasNewValue = 1;
22040 let opNewValue = 0;
22041 let isPseudo = 1;
22042 let Constraints = "$Rx32 = $Rx32in";
22044 def S2_tableidxh : HInst<
22045 (outs IntRegs:$Rx32),
22046 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22047 "$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
22048 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22049 let Inst{31-22} = 0b1000011101;
22050 let hasNewValue = 1;
22051 let opNewValue = 0;
22052 let prefersSlot3 = 1;
22053 let Constraints = "$Rx32 = $Rx32in";
22055 def S2_tableidxh_goodsyntax : HInst<
22056 (outs IntRegs:$Rx32),
22057 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22058 "$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
22059 tc_bb831a7c, TypeS_2op> {
22060 let hasNewValue = 1;
22061 let opNewValue = 0;
22062 let isPseudo = 1;
22063 let Constraints = "$Rx32 = $Rx32in";
22065 def S2_tableidxw : HInst<
22066 (outs IntRegs:$Rx32),
22067 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22068 "$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
22069 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22070 let Inst{31-22} = 0b1000011110;
22071 let hasNewValue = 1;
22072 let opNewValue = 0;
22073 let prefersSlot3 = 1;
22074 let Constraints = "$Rx32 = $Rx32in";
22076 def S2_tableidxw_goodsyntax : HInst<
22077 (outs IntRegs:$Rx32),
22078 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22079 "$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
22080 tc_bb831a7c, TypeS_2op> {
22081 let hasNewValue = 1;
22082 let opNewValue = 0;
22083 let isPseudo = 1;
22084 let Constraints = "$Rx32 = $Rx32in";
22086 def S2_togglebit_i : HInst<
22087 (outs IntRegs:$Rd32),
22088 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22089 "$Rd32 = togglebit($Rs32,#$Ii)",
22090 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
22091 let Inst{7-5} = 0b010;
22092 let Inst{13-13} = 0b0;
22093 let Inst{31-21} = 0b10001100110;
22094 let hasNewValue = 1;
22095 let opNewValue = 0;
22097 def S2_togglebit_r : HInst<
22098 (outs IntRegs:$Rd32),
22099 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22100 "$Rd32 = togglebit($Rs32,$Rt32)",
22101 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
22102 let Inst{7-5} = 0b100;
22103 let Inst{13-13} = 0b0;
22104 let Inst{31-21} = 0b11000110100;
22105 let hasNewValue = 1;
22106 let opNewValue = 0;
22108 def S2_tstbit_i : HInst<
22109 (outs PredRegs:$Pd4),
22110 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22111 "$Pd4 = tstbit($Rs32,#$Ii)",
22112 tc_a1297125, TypeS_2op>, Enc_83ee64 {
22113 let Inst{7-2} = 0b000000;
22114 let Inst{13-13} = 0b0;
22115 let Inst{31-21} = 0b10000101000;
22117 def S2_tstbit_r : HInst<
22118 (outs PredRegs:$Pd4),
22119 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22120 "$Pd4 = tstbit($Rs32,$Rt32)",
22121 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22122 let Inst{7-2} = 0b000000;
22123 let Inst{13-13} = 0b0;
22124 let Inst{31-21} = 0b11000111000;
22126 def S2_valignib : HInst<
22127 (outs DoubleRegs:$Rdd32),
22128 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
22129 "$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
22130 tc_6fc5dbea, TypeS_3op>, Enc_729ff7 {
22131 let Inst{13-13} = 0b0;
22132 let Inst{31-21} = 0b11000000000;
22134 def S2_valignrb : HInst<
22135 (outs DoubleRegs:$Rdd32),
22136 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
22137 "$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
22138 tc_6fc5dbea, TypeS_3op>, Enc_8c6530 {
22139 let Inst{7-7} = 0b0;
22140 let Inst{13-13} = 0b0;
22141 let Inst{31-21} = 0b11000010000;
22143 def S2_vcnegh : HInst<
22144 (outs DoubleRegs:$Rdd32),
22145 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22146 "$Rdd32 = vcnegh($Rss32,$Rt32)",
22147 tc_8a825db2, TypeS_3op>, Enc_927852 {
22148 let Inst{7-5} = 0b010;
22149 let Inst{13-13} = 0b0;
22150 let Inst{31-21} = 0b11000011110;
22151 let prefersSlot3 = 1;
22152 let Defs = [USR_OVF];
22154 def S2_vcrotate : HInst<
22155 (outs DoubleRegs:$Rdd32),
22156 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22157 "$Rdd32 = vcrotate($Rss32,$Rt32)",
22158 tc_0dfac0a7, TypeS_3op>, Enc_927852 {
22159 let Inst{7-5} = 0b000;
22160 let Inst{13-13} = 0b0;
22161 let Inst{31-21} = 0b11000011110;
22162 let prefersSlot3 = 1;
22163 let Defs = [USR_OVF];
22165 def S2_vrcnegh : HInst<
22166 (outs DoubleRegs:$Rxx32),
22167 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
22168 "$Rxx32 += vrcnegh($Rss32,$Rt32)",
22169 tc_7f8ae742, TypeS_3op>, Enc_1aa186 {
22170 let Inst{7-5} = 0b111;
22171 let Inst{13-13} = 0b1;
22172 let Inst{31-21} = 0b11001011001;
22173 let prefersSlot3 = 1;
22174 let Constraints = "$Rxx32 = $Rxx32in";
22176 def S2_vrndpackwh : HInst<
22177 (outs IntRegs:$Rd32),
22178 (ins DoubleRegs:$Rss32),
22179 "$Rd32 = vrndwh($Rss32)",
22180 tc_e3d699e3, TypeS_2op>, Enc_90cd8b {
22181 let Inst{13-5} = 0b000000100;
22182 let Inst{31-21} = 0b10001000100;
22183 let hasNewValue = 1;
22184 let opNewValue = 0;
22185 let prefersSlot3 = 1;
22187 def S2_vrndpackwhs : HInst<
22188 (outs IntRegs:$Rd32),
22189 (ins DoubleRegs:$Rss32),
22190 "$Rd32 = vrndwh($Rss32):sat",
22191 tc_d61dfdc3, TypeS_2op>, Enc_90cd8b {
22192 let Inst{13-5} = 0b000000110;
22193 let Inst{31-21} = 0b10001000100;
22194 let hasNewValue = 1;
22195 let opNewValue = 0;
22196 let prefersSlot3 = 1;
22197 let Defs = [USR_OVF];
22199 def S2_vsathb : HInst<
22200 (outs IntRegs:$Rd32),
22201 (ins DoubleRegs:$Rss32),
22202 "$Rd32 = vsathb($Rss32)",
22203 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22204 let Inst{13-5} = 0b000000110;
22205 let Inst{31-21} = 0b10001000000;
22206 let hasNewValue = 1;
22207 let opNewValue = 0;
22208 let Defs = [USR_OVF];
22210 def S2_vsathb_nopack : HInst<
22211 (outs DoubleRegs:$Rdd32),
22212 (ins DoubleRegs:$Rss32),
22213 "$Rdd32 = vsathb($Rss32)",
22214 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22215 let Inst{13-5} = 0b000000111;
22216 let Inst{31-21} = 0b10000000000;
22217 let Defs = [USR_OVF];
22219 def S2_vsathub : HInst<
22220 (outs IntRegs:$Rd32),
22221 (ins DoubleRegs:$Rss32),
22222 "$Rd32 = vsathub($Rss32)",
22223 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22224 let Inst{13-5} = 0b000000000;
22225 let Inst{31-21} = 0b10001000000;
22226 let hasNewValue = 1;
22227 let opNewValue = 0;
22228 let Defs = [USR_OVF];
22230 def S2_vsathub_nopack : HInst<
22231 (outs DoubleRegs:$Rdd32),
22232 (ins DoubleRegs:$Rss32),
22233 "$Rdd32 = vsathub($Rss32)",
22234 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22235 let Inst{13-5} = 0b000000100;
22236 let Inst{31-21} = 0b10000000000;
22237 let Defs = [USR_OVF];
22239 def S2_vsatwh : HInst<
22240 (outs IntRegs:$Rd32),
22241 (ins DoubleRegs:$Rss32),
22242 "$Rd32 = vsatwh($Rss32)",
22243 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22244 let Inst{13-5} = 0b000000010;
22245 let Inst{31-21} = 0b10001000000;
22246 let hasNewValue = 1;
22247 let opNewValue = 0;
22248 let Defs = [USR_OVF];
22250 def S2_vsatwh_nopack : HInst<
22251 (outs DoubleRegs:$Rdd32),
22252 (ins DoubleRegs:$Rss32),
22253 "$Rdd32 = vsatwh($Rss32)",
22254 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22255 let Inst{13-5} = 0b000000110;
22256 let Inst{31-21} = 0b10000000000;
22257 let Defs = [USR_OVF];
22259 def S2_vsatwuh : HInst<
22260 (outs IntRegs:$Rd32),
22261 (ins DoubleRegs:$Rss32),
22262 "$Rd32 = vsatwuh($Rss32)",
22263 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22264 let Inst{13-5} = 0b000000100;
22265 let Inst{31-21} = 0b10001000000;
22266 let hasNewValue = 1;
22267 let opNewValue = 0;
22268 let Defs = [USR_OVF];
22270 def S2_vsatwuh_nopack : HInst<
22271 (outs DoubleRegs:$Rdd32),
22272 (ins DoubleRegs:$Rss32),
22273 "$Rdd32 = vsatwuh($Rss32)",
22274 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22275 let Inst{13-5} = 0b000000101;
22276 let Inst{31-21} = 0b10000000000;
22277 let Defs = [USR_OVF];
22279 def S2_vsplatrb : HInst<
22280 (outs IntRegs:$Rd32),
22281 (ins IntRegs:$Rs32),
22282 "$Rd32 = vsplatb($Rs32)",
22283 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22284 let Inst{13-5} = 0b000000111;
22285 let Inst{31-21} = 0b10001100010;
22286 let hasNewValue = 1;
22287 let opNewValue = 0;
22288 let isAsCheapAsAMove = 1;
22289 let isReMaterializable = 1;
22291 def S2_vsplatrh : HInst<
22292 (outs DoubleRegs:$Rdd32),
22293 (ins IntRegs:$Rs32),
22294 "$Rdd32 = vsplath($Rs32)",
22295 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22296 let Inst{13-5} = 0b000000010;
22297 let Inst{31-21} = 0b10000100010;
22298 let isAsCheapAsAMove = 1;
22299 let isReMaterializable = 1;
22301 def S2_vspliceib : HInst<
22302 (outs DoubleRegs:$Rdd32),
22303 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
22304 "$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
22305 tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 {
22306 let Inst{13-13} = 0b0;
22307 let Inst{31-21} = 0b11000000100;
22309 def S2_vsplicerb : HInst<
22310 (outs DoubleRegs:$Rdd32),
22311 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
22312 "$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
22313 tc_6fc5dbea, TypeS_3op>, Enc_dbd70c {
22314 let Inst{7-7} = 0b0;
22315 let Inst{13-13} = 0b0;
22316 let Inst{31-21} = 0b11000010100;
22318 def S2_vsxtbh : HInst<
22319 (outs DoubleRegs:$Rdd32),
22320 (ins IntRegs:$Rs32),
22321 "$Rdd32 = vsxtbh($Rs32)",
22322 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22323 let Inst{13-5} = 0b000000000;
22324 let Inst{31-21} = 0b10000100000;
22325 let isAsCheapAsAMove = 1;
22326 let isReMaterializable = 1;
22328 def S2_vsxthw : HInst<
22329 (outs DoubleRegs:$Rdd32),
22330 (ins IntRegs:$Rs32),
22331 "$Rdd32 = vsxthw($Rs32)",
22332 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22333 let Inst{13-5} = 0b000000100;
22334 let Inst{31-21} = 0b10000100000;
22335 let isAsCheapAsAMove = 1;
22336 let isReMaterializable = 1;
22338 def S2_vtrunehb : HInst<
22339 (outs IntRegs:$Rd32),
22340 (ins DoubleRegs:$Rss32),
22341 "$Rd32 = vtrunehb($Rss32)",
22342 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22343 let Inst{13-5} = 0b000000010;
22344 let Inst{31-21} = 0b10001000100;
22345 let hasNewValue = 1;
22346 let opNewValue = 0;
22348 def S2_vtrunewh : HInst<
22349 (outs DoubleRegs:$Rdd32),
22350 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22351 "$Rdd32 = vtrunewh($Rss32,$Rtt32)",
22352 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22353 let Inst{7-5} = 0b010;
22354 let Inst{13-13} = 0b0;
22355 let Inst{31-21} = 0b11000001100;
22357 def S2_vtrunohb : HInst<
22358 (outs IntRegs:$Rd32),
22359 (ins DoubleRegs:$Rss32),
22360 "$Rd32 = vtrunohb($Rss32)",
22361 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22362 let Inst{13-5} = 0b000000000;
22363 let Inst{31-21} = 0b10001000100;
22364 let hasNewValue = 1;
22365 let opNewValue = 0;
22367 def S2_vtrunowh : HInst<
22368 (outs DoubleRegs:$Rdd32),
22369 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22370 "$Rdd32 = vtrunowh($Rss32,$Rtt32)",
22371 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22372 let Inst{7-5} = 0b100;
22373 let Inst{13-13} = 0b0;
22374 let Inst{31-21} = 0b11000001100;
22376 def S2_vzxtbh : HInst<
22377 (outs DoubleRegs:$Rdd32),
22378 (ins IntRegs:$Rs32),
22379 "$Rdd32 = vzxtbh($Rs32)",
22380 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22381 let Inst{13-5} = 0b000000010;
22382 let Inst{31-21} = 0b10000100000;
22383 let isAsCheapAsAMove = 1;
22384 let isReMaterializable = 1;
22386 def S2_vzxthw : HInst<
22387 (outs DoubleRegs:$Rdd32),
22388 (ins IntRegs:$Rs32),
22389 "$Rdd32 = vzxthw($Rs32)",
22390 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22391 let Inst{13-5} = 0b000000110;
22392 let Inst{31-21} = 0b10000100000;
22393 let isAsCheapAsAMove = 1;
22394 let isReMaterializable = 1;
22396 def S4_addaddi : HInst<
22397 (outs IntRegs:$Rd32),
22398 (ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22399 "$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22400 tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
22401 let Inst{31-23} = 0b110110110;
22402 let hasNewValue = 1;
22403 let opNewValue = 0;
22404 let prefersSlot3 = 1;
22405 let isExtendable = 1;
22406 let opExtendable = 3;
22407 let isExtentSigned = 1;
22408 let opExtentBits = 6;
22409 let opExtentAlign = 0;
22411 def S4_addi_asl_ri : HInst<
22412 (outs IntRegs:$Rx32),
22413 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22414 "$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22415 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22416 let Inst{2-0} = 0b100;
22417 let Inst{4-4} = 0b0;
22418 let Inst{31-24} = 0b11011110;
22419 let hasNewValue = 1;
22420 let opNewValue = 0;
22421 let prefersSlot3 = 1;
22422 let isExtendable = 1;
22423 let opExtendable = 1;
22424 let isExtentSigned = 0;
22425 let opExtentBits = 8;
22426 let opExtentAlign = 0;
22427 let Constraints = "$Rx32 = $Rx32in";
22429 def S4_addi_lsr_ri : HInst<
22430 (outs IntRegs:$Rx32),
22431 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22432 "$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22433 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22434 let Inst{2-0} = 0b100;
22435 let Inst{4-4} = 0b1;
22436 let Inst{31-24} = 0b11011110;
22437 let hasNewValue = 1;
22438 let opNewValue = 0;
22439 let prefersSlot3 = 1;
22440 let isExtendable = 1;
22441 let opExtendable = 1;
22442 let isExtentSigned = 0;
22443 let opExtentBits = 8;
22444 let opExtentAlign = 0;
22445 let Constraints = "$Rx32 = $Rx32in";
22447 def S4_andi_asl_ri : HInst<
22448 (outs IntRegs:$Rx32),
22449 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22450 "$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22451 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22452 let Inst{2-0} = 0b000;
22453 let Inst{4-4} = 0b0;
22454 let Inst{31-24} = 0b11011110;
22455 let hasNewValue = 1;
22456 let opNewValue = 0;
22457 let prefersSlot3 = 1;
22458 let isExtendable = 1;
22459 let opExtendable = 1;
22460 let isExtentSigned = 0;
22461 let opExtentBits = 8;
22462 let opExtentAlign = 0;
22463 let Constraints = "$Rx32 = $Rx32in";
22465 def S4_andi_lsr_ri : HInst<
22466 (outs IntRegs:$Rx32),
22467 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22468 "$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22469 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22470 let Inst{2-0} = 0b000;
22471 let Inst{4-4} = 0b1;
22472 let Inst{31-24} = 0b11011110;
22473 let hasNewValue = 1;
22474 let opNewValue = 0;
22475 let prefersSlot3 = 1;
22476 let isExtendable = 1;
22477 let opExtendable = 1;
22478 let isExtentSigned = 0;
22479 let opExtentBits = 8;
22480 let opExtentAlign = 0;
22481 let Constraints = "$Rx32 = $Rx32in";
22483 def S4_clbaddi : HInst<
22484 (outs IntRegs:$Rd32),
22485 (ins IntRegs:$Rs32, s6_0Imm:$Ii),
22486 "$Rd32 = add(clb($Rs32),#$Ii)",
22487 tc_a08b630b, TypeS_2op>, Enc_9fae8a {
22488 let Inst{7-5} = 0b000;
22489 let Inst{31-21} = 0b10001100001;
22490 let hasNewValue = 1;
22491 let opNewValue = 0;
22492 let prefersSlot3 = 1;
22494 def S4_clbpaddi : HInst<
22495 (outs IntRegs:$Rd32),
22496 (ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22497 "$Rd32 = add(clb($Rss32),#$Ii)",
22498 tc_a08b630b, TypeS_2op>, Enc_a1640c {
22499 let Inst{7-5} = 0b010;
22500 let Inst{31-21} = 0b10001000011;
22501 let hasNewValue = 1;
22502 let opNewValue = 0;
22503 let prefersSlot3 = 1;
22505 def S4_clbpnorm : HInst<
22506 (outs IntRegs:$Rd32),
22507 (ins DoubleRegs:$Rss32),
22508 "$Rd32 = normamt($Rss32)",
22509 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
22510 let Inst{13-5} = 0b000000000;
22511 let Inst{31-21} = 0b10001000011;
22512 let hasNewValue = 1;
22513 let opNewValue = 0;
22514 let prefersSlot3 = 1;
22516 def S4_extract : HInst<
22517 (outs IntRegs:$Rd32),
22518 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22519 "$Rd32 = extract($Rs32,#$Ii,#$II)",
22520 tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
22521 let Inst{13-13} = 0b0;
22522 let Inst{31-23} = 0b100011011;
22523 let hasNewValue = 1;
22524 let opNewValue = 0;
22525 let prefersSlot3 = 1;
22527 def S4_extract_rp : HInst<
22528 (outs IntRegs:$Rd32),
22529 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22530 "$Rd32 = extract($Rs32,$Rtt32)",
22531 tc_a08b630b, TypeS_3op>, Enc_e07374 {
22532 let Inst{7-5} = 0b010;
22533 let Inst{13-13} = 0b0;
22534 let Inst{31-21} = 0b11001001000;
22535 let hasNewValue = 1;
22536 let opNewValue = 0;
22537 let prefersSlot3 = 1;
22539 def S4_extractp : HInst<
22540 (outs DoubleRegs:$Rdd32),
22541 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22542 "$Rdd32 = extract($Rss32,#$Ii,#$II)",
22543 tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
22544 let Inst{31-24} = 0b10001010;
22545 let prefersSlot3 = 1;
22547 def S4_extractp_rp : HInst<
22548 (outs DoubleRegs:$Rdd32),
22549 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22550 "$Rdd32 = extract($Rss32,$Rtt32)",
22551 tc_a08b630b, TypeS_3op>, Enc_a56825 {
22552 let Inst{7-5} = 0b100;
22553 let Inst{13-13} = 0b0;
22554 let Inst{31-21} = 0b11000001110;
22555 let prefersSlot3 = 1;
22557 def S4_lsli : HInst<
22558 (outs IntRegs:$Rd32),
22559 (ins s6_0Imm:$Ii, IntRegs:$Rt32),
22560 "$Rd32 = lsl(#$Ii,$Rt32)",
22561 tc_5da50c4b, TypeS_3op>, Enc_fef969 {
22562 let Inst{7-6} = 0b11;
22563 let Inst{13-13} = 0b0;
22564 let Inst{31-21} = 0b11000110100;
22565 let hasNewValue = 1;
22566 let opNewValue = 0;
22568 def S4_ntstbit_i : HInst<
22569 (outs PredRegs:$Pd4),
22570 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22571 "$Pd4 = !tstbit($Rs32,#$Ii)",
22572 tc_a1297125, TypeS_2op>, Enc_83ee64 {
22573 let Inst{7-2} = 0b000000;
22574 let Inst{13-13} = 0b0;
22575 let Inst{31-21} = 0b10000101001;
22577 def S4_ntstbit_r : HInst<
22578 (outs PredRegs:$Pd4),
22579 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22580 "$Pd4 = !tstbit($Rs32,$Rt32)",
22581 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22582 let Inst{7-2} = 0b000000;
22583 let Inst{13-13} = 0b0;
22584 let Inst{31-21} = 0b11000111001;
22586 def S4_or_andi : HInst<
22587 (outs IntRegs:$Rx32),
22588 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22589 "$Rx32 |= and($Rs32,#$Ii)",
22590 tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22591 let Inst{31-22} = 0b1101101000;
22592 let hasNewValue = 1;
22593 let opNewValue = 0;
22594 let prefersSlot3 = 1;
22595 let InputType = "imm";
22596 let isExtendable = 1;
22597 let opExtendable = 3;
22598 let isExtentSigned = 1;
22599 let opExtentBits = 10;
22600 let opExtentAlign = 0;
22601 let Constraints = "$Rx32 = $Rx32in";
22603 def S4_or_andix : HInst<
22604 (outs IntRegs:$Rx32),
22605 (ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22606 "$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22607 tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> {
22608 let Inst{31-22} = 0b1101101001;
22609 let hasNewValue = 1;
22610 let opNewValue = 0;
22611 let prefersSlot3 = 1;
22612 let isExtendable = 1;
22613 let opExtendable = 3;
22614 let isExtentSigned = 1;
22615 let opExtentBits = 10;
22616 let opExtentAlign = 0;
22617 let Constraints = "$Rx32 = $Rx32in";
22619 def S4_or_ori : HInst<
22620 (outs IntRegs:$Rx32),
22621 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22622 "$Rx32 |= or($Rs32,#$Ii)",
22623 tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22624 let Inst{31-22} = 0b1101101010;
22625 let hasNewValue = 1;
22626 let opNewValue = 0;
22627 let prefersSlot3 = 1;
22628 let InputType = "imm";
22629 let isExtendable = 1;
22630 let opExtendable = 3;
22631 let isExtentSigned = 1;
22632 let opExtentBits = 10;
22633 let opExtentAlign = 0;
22634 let Constraints = "$Rx32 = $Rx32in";
22636 def S4_ori_asl_ri : HInst<
22637 (outs IntRegs:$Rx32),
22638 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22639 "$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22640 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22641 let Inst{2-0} = 0b010;
22642 let Inst{4-4} = 0b0;
22643 let Inst{31-24} = 0b11011110;
22644 let hasNewValue = 1;
22645 let opNewValue = 0;
22646 let prefersSlot3 = 1;
22647 let isExtendable = 1;
22648 let opExtendable = 1;
22649 let isExtentSigned = 0;
22650 let opExtentBits = 8;
22651 let opExtentAlign = 0;
22652 let Constraints = "$Rx32 = $Rx32in";
22654 def S4_ori_lsr_ri : HInst<
22655 (outs IntRegs:$Rx32),
22656 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22657 "$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22658 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22659 let Inst{2-0} = 0b010;
22660 let Inst{4-4} = 0b1;
22661 let Inst{31-24} = 0b11011110;
22662 let hasNewValue = 1;
22663 let opNewValue = 0;
22664 let prefersSlot3 = 1;
22665 let isExtendable = 1;
22666 let opExtendable = 1;
22667 let isExtentSigned = 0;
22668 let opExtentBits = 8;
22669 let opExtentAlign = 0;
22670 let Constraints = "$Rx32 = $Rx32in";
22672 def S4_parity : HInst<
22673 (outs IntRegs:$Rd32),
22674 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22675 "$Rd32 = parity($Rs32,$Rt32)",
22676 tc_a08b630b, TypeALU64>, Enc_5ab2be {
22677 let Inst{7-5} = 0b000;
22678 let Inst{13-13} = 0b0;
22679 let Inst{31-21} = 0b11010101111;
22680 let hasNewValue = 1;
22681 let opNewValue = 0;
22682 let prefersSlot3 = 1;
22684 def S4_pstorerbf_abs : HInst<
22685 (outs),
22686 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22687 "if (!$Pv4) memb(#$Ii) = $Rt32",
22688 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
22689 let Inst{2-2} = 0b1;
22690 let Inst{7-7} = 0b1;
22691 let Inst{13-13} = 0b0;
22692 let Inst{31-18} = 0b10101111000000;
22693 let isPredicated = 1;
22694 let isPredicatedFalse = 1;
22695 let addrMode = Absolute;
22696 let accessSize = ByteAccess;
22697 let isExtended = 1;
22698 let mayStore = 1;
22699 let BaseOpcode = "S2_storerbabs";
22700 let CextOpcode = "S2_storerb";
22701 let isNVStorable = 1;
22702 let DecoderNamespace = "MustExtend";
22703 let isExtendable = 1;
22704 let opExtendable = 1;
22705 let isExtentSigned = 0;
22706 let opExtentBits = 6;
22707 let opExtentAlign = 0;
22709 def S4_pstorerbf_rr : HInst<
22710 (outs),
22711 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22712 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22713 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
22714 let Inst{31-21} = 0b00110101000;
22715 let isPredicated = 1;
22716 let isPredicatedFalse = 1;
22717 let addrMode = BaseRegOffset;
22718 let accessSize = ByteAccess;
22719 let mayStore = 1;
22720 let BaseOpcode = "S4_storerb_rr";
22721 let CextOpcode = "S2_storerb";
22722 let InputType = "reg";
22723 let isNVStorable = 1;
22725 def S4_pstorerbfnew_abs : HInst<
22726 (outs),
22727 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22728 "if (!$Pv4.new) memb(#$Ii) = $Rt32",
22729 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
22730 let Inst{2-2} = 0b1;
22731 let Inst{7-7} = 0b1;
22732 let Inst{13-13} = 0b1;
22733 let Inst{31-18} = 0b10101111000000;
22734 let isPredicated = 1;
22735 let isPredicatedFalse = 1;
22736 let addrMode = Absolute;
22737 let accessSize = ByteAccess;
22738 let isPredicatedNew = 1;
22739 let isExtended = 1;
22740 let mayStore = 1;
22741 let BaseOpcode = "S2_storerbabs";
22742 let CextOpcode = "S2_storerb";
22743 let isNVStorable = 1;
22744 let DecoderNamespace = "MustExtend";
22745 let isExtendable = 1;
22746 let opExtendable = 1;
22747 let isExtentSigned = 0;
22748 let opExtentBits = 6;
22749 let opExtentAlign = 0;
22751 def S4_pstorerbfnew_io : HInst<
22752 (outs),
22753 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22754 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22755 tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22756 let Inst{2-2} = 0b0;
22757 let Inst{31-21} = 0b01000110000;
22758 let isPredicated = 1;
22759 let isPredicatedFalse = 1;
22760 let addrMode = BaseImmOffset;
22761 let accessSize = ByteAccess;
22762 let isPredicatedNew = 1;
22763 let mayStore = 1;
22764 let BaseOpcode = "S2_storerb_io";
22765 let CextOpcode = "S2_storerb";
22766 let InputType = "imm";
22767 let isNVStorable = 1;
22768 let isExtendable = 1;
22769 let opExtendable = 2;
22770 let isExtentSigned = 0;
22771 let opExtentBits = 6;
22772 let opExtentAlign = 0;
22774 def S4_pstorerbfnew_rr : HInst<
22775 (outs),
22776 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22777 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22778 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
22779 let Inst{31-21} = 0b00110111000;
22780 let isPredicated = 1;
22781 let isPredicatedFalse = 1;
22782 let addrMode = BaseRegOffset;
22783 let accessSize = ByteAccess;
22784 let isPredicatedNew = 1;
22785 let mayStore = 1;
22786 let BaseOpcode = "S4_storerb_rr";
22787 let CextOpcode = "S2_storerb";
22788 let InputType = "reg";
22789 let isNVStorable = 1;
22791 def S4_pstorerbfnew_zomap : HInst<
22792 (outs),
22793 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22794 "if (!$Pv4.new) memb($Rs32) = $Rt32",
22795 tc_a2b365d2, TypeMAPPING> {
22796 let isPseudo = 1;
22797 let isCodeGenOnly = 1;
22799 def S4_pstorerbnewf_abs : HInst<
22800 (outs),
22801 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22802 "if (!$Pv4) memb(#$Ii) = $Nt8.new",
22803 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22804 let Inst{2-2} = 0b1;
22805 let Inst{7-7} = 0b1;
22806 let Inst{13-11} = 0b000;
22807 let Inst{31-18} = 0b10101111101000;
22808 let isPredicated = 1;
22809 let isPredicatedFalse = 1;
22810 let addrMode = Absolute;
22811 let accessSize = ByteAccess;
22812 let isNVStore = 1;
22813 let isNewValue = 1;
22814 let isExtended = 1;
22815 let isRestrictNoSlot1Store = 1;
22816 let mayStore = 1;
22817 let BaseOpcode = "S2_storerbabs";
22818 let CextOpcode = "S2_storerb";
22819 let DecoderNamespace = "MustExtend";
22820 let isExtendable = 1;
22821 let opExtendable = 1;
22822 let isExtentSigned = 0;
22823 let opExtentBits = 6;
22824 let opExtentAlign = 0;
22825 let opNewValue = 2;
22827 def S4_pstorerbnewf_rr : HInst<
22828 (outs),
22829 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22830 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22831 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22832 let Inst{4-3} = 0b00;
22833 let Inst{31-21} = 0b00110101101;
22834 let isPredicated = 1;
22835 let isPredicatedFalse = 1;
22836 let addrMode = BaseRegOffset;
22837 let accessSize = ByteAccess;
22838 let isNVStore = 1;
22839 let isNewValue = 1;
22840 let isRestrictNoSlot1Store = 1;
22841 let mayStore = 1;
22842 let BaseOpcode = "S4_storerb_rr";
22843 let CextOpcode = "S2_storerb";
22844 let InputType = "reg";
22845 let opNewValue = 4;
22847 def S4_pstorerbnewfnew_abs : HInst<
22848 (outs),
22849 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22850 "if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22851 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22852 let Inst{2-2} = 0b1;
22853 let Inst{7-7} = 0b1;
22854 let Inst{13-11} = 0b100;
22855 let Inst{31-18} = 0b10101111101000;
22856 let isPredicated = 1;
22857 let isPredicatedFalse = 1;
22858 let addrMode = Absolute;
22859 let accessSize = ByteAccess;
22860 let isNVStore = 1;
22861 let isPredicatedNew = 1;
22862 let isNewValue = 1;
22863 let isExtended = 1;
22864 let isRestrictNoSlot1Store = 1;
22865 let mayStore = 1;
22866 let BaseOpcode = "S2_storerbabs";
22867 let CextOpcode = "S2_storerb";
22868 let DecoderNamespace = "MustExtend";
22869 let isExtendable = 1;
22870 let opExtendable = 1;
22871 let isExtentSigned = 0;
22872 let opExtentBits = 6;
22873 let opExtentAlign = 0;
22874 let opNewValue = 2;
22876 def S4_pstorerbnewfnew_io : HInst<
22877 (outs),
22878 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22879 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22880 tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
22881 let Inst{2-2} = 0b0;
22882 let Inst{12-11} = 0b00;
22883 let Inst{31-21} = 0b01000110101;
22884 let isPredicated = 1;
22885 let isPredicatedFalse = 1;
22886 let addrMode = BaseImmOffset;
22887 let accessSize = ByteAccess;
22888 let isNVStore = 1;
22889 let isPredicatedNew = 1;
22890 let isNewValue = 1;
22891 let isRestrictNoSlot1Store = 1;
22892 let mayStore = 1;
22893 let BaseOpcode = "S2_storerb_io";
22894 let CextOpcode = "S2_storerb";
22895 let InputType = "imm";
22896 let isExtendable = 1;
22897 let opExtendable = 2;
22898 let isExtentSigned = 0;
22899 let opExtentBits = 6;
22900 let opExtentAlign = 0;
22901 let opNewValue = 3;
22903 def S4_pstorerbnewfnew_rr : HInst<
22904 (outs),
22905 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22906 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22907 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
22908 let Inst{4-3} = 0b00;
22909 let Inst{31-21} = 0b00110111101;
22910 let isPredicated = 1;
22911 let isPredicatedFalse = 1;
22912 let addrMode = BaseRegOffset;
22913 let accessSize = ByteAccess;
22914 let isNVStore = 1;
22915 let isPredicatedNew = 1;
22916 let isNewValue = 1;
22917 let isRestrictNoSlot1Store = 1;
22918 let mayStore = 1;
22919 let BaseOpcode = "S4_storerb_rr";
22920 let CextOpcode = "S2_storerb";
22921 let InputType = "reg";
22922 let opNewValue = 4;
22924 def S4_pstorerbnewfnew_zomap : HInst<
22925 (outs),
22926 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22927 "if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22928 tc_92240447, TypeMAPPING> {
22929 let isPseudo = 1;
22930 let isCodeGenOnly = 1;
22931 let opNewValue = 2;
22933 def S4_pstorerbnewt_abs : HInst<
22934 (outs),
22935 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22936 "if ($Pv4) memb(#$Ii) = $Nt8.new",
22937 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22938 let Inst{2-2} = 0b0;
22939 let Inst{7-7} = 0b1;
22940 let Inst{13-11} = 0b000;
22941 let Inst{31-18} = 0b10101111101000;
22942 let isPredicated = 1;
22943 let addrMode = Absolute;
22944 let accessSize = ByteAccess;
22945 let isNVStore = 1;
22946 let isNewValue = 1;
22947 let isExtended = 1;
22948 let isRestrictNoSlot1Store = 1;
22949 let mayStore = 1;
22950 let BaseOpcode = "S2_storerbabs";
22951 let CextOpcode = "S2_storerb";
22952 let DecoderNamespace = "MustExtend";
22953 let isExtendable = 1;
22954 let opExtendable = 1;
22955 let isExtentSigned = 0;
22956 let opExtentBits = 6;
22957 let opExtentAlign = 0;
22958 let opNewValue = 2;
22960 def S4_pstorerbnewt_rr : HInst<
22961 (outs),
22962 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22963 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22964 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22965 let Inst{4-3} = 0b00;
22966 let Inst{31-21} = 0b00110100101;
22967 let isPredicated = 1;
22968 let addrMode = BaseRegOffset;
22969 let accessSize = ByteAccess;
22970 let isNVStore = 1;
22971 let isNewValue = 1;
22972 let isRestrictNoSlot1Store = 1;
22973 let mayStore = 1;
22974 let BaseOpcode = "S4_storerb_rr";
22975 let CextOpcode = "S2_storerb";
22976 let InputType = "reg";
22977 let opNewValue = 4;
22979 def S4_pstorerbnewtnew_abs : HInst<
22980 (outs),
22981 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22982 "if ($Pv4.new) memb(#$Ii) = $Nt8.new",
22983 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22984 let Inst{2-2} = 0b0;
22985 let Inst{7-7} = 0b1;
22986 let Inst{13-11} = 0b100;
22987 let Inst{31-18} = 0b10101111101000;
22988 let isPredicated = 1;
22989 let addrMode = Absolute;
22990 let accessSize = ByteAccess;
22991 let isNVStore = 1;
22992 let isPredicatedNew = 1;
22993 let isNewValue = 1;
22994 let isExtended = 1;
22995 let isRestrictNoSlot1Store = 1;
22996 let mayStore = 1;
22997 let BaseOpcode = "S2_storerbabs";
22998 let CextOpcode = "S2_storerb";
22999 let DecoderNamespace = "MustExtend";
23000 let isExtendable = 1;
23001 let opExtendable = 1;
23002 let isExtentSigned = 0;
23003 let opExtentBits = 6;
23004 let opExtentAlign = 0;
23005 let opNewValue = 2;
23007 def S4_pstorerbnewtnew_io : HInst<
23008 (outs),
23009 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
23010 "if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
23011 tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
23012 let Inst{2-2} = 0b0;
23013 let Inst{12-11} = 0b00;
23014 let Inst{31-21} = 0b01000010101;
23015 let isPredicated = 1;
23016 let addrMode = BaseImmOffset;
23017 let accessSize = ByteAccess;
23018 let isNVStore = 1;
23019 let isPredicatedNew = 1;
23020 let isNewValue = 1;
23021 let isRestrictNoSlot1Store = 1;
23022 let mayStore = 1;
23023 let BaseOpcode = "S2_storerb_io";
23024 let CextOpcode = "S2_storerb";
23025 let InputType = "imm";
23026 let isExtendable = 1;
23027 let opExtendable = 2;
23028 let isExtentSigned = 0;
23029 let opExtentBits = 6;
23030 let opExtentAlign = 0;
23031 let opNewValue = 3;
23033 def S4_pstorerbnewtnew_rr : HInst<
23034 (outs),
23035 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23036 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23037 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23038 let Inst{4-3} = 0b00;
23039 let Inst{31-21} = 0b00110110101;
23040 let isPredicated = 1;
23041 let addrMode = BaseRegOffset;
23042 let accessSize = ByteAccess;
23043 let isNVStore = 1;
23044 let isPredicatedNew = 1;
23045 let isNewValue = 1;
23046 let isRestrictNoSlot1Store = 1;
23047 let mayStore = 1;
23048 let BaseOpcode = "S4_storerb_rr";
23049 let CextOpcode = "S2_storerb";
23050 let InputType = "reg";
23051 let opNewValue = 4;
23053 def S4_pstorerbnewtnew_zomap : HInst<
23054 (outs),
23055 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23056 "if ($Pv4.new) memb($Rs32) = $Nt8.new",
23057 tc_92240447, TypeMAPPING> {
23058 let isPseudo = 1;
23059 let isCodeGenOnly = 1;
23060 let opNewValue = 2;
23062 def S4_pstorerbt_abs : HInst<
23063 (outs),
23064 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23065 "if ($Pv4) memb(#$Ii) = $Rt32",
23066 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23067 let Inst{2-2} = 0b0;
23068 let Inst{7-7} = 0b1;
23069 let Inst{13-13} = 0b0;
23070 let Inst{31-18} = 0b10101111000000;
23071 let isPredicated = 1;
23072 let addrMode = Absolute;
23073 let accessSize = ByteAccess;
23074 let isExtended = 1;
23075 let mayStore = 1;
23076 let BaseOpcode = "S2_storerbabs";
23077 let CextOpcode = "S2_storerb";
23078 let isNVStorable = 1;
23079 let DecoderNamespace = "MustExtend";
23080 let isExtendable = 1;
23081 let opExtendable = 1;
23082 let isExtentSigned = 0;
23083 let opExtentBits = 6;
23084 let opExtentAlign = 0;
23086 def S4_pstorerbt_rr : HInst<
23087 (outs),
23088 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23089 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23090 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23091 let Inst{31-21} = 0b00110100000;
23092 let isPredicated = 1;
23093 let addrMode = BaseRegOffset;
23094 let accessSize = ByteAccess;
23095 let mayStore = 1;
23096 let BaseOpcode = "S4_storerb_rr";
23097 let CextOpcode = "S2_storerb";
23098 let InputType = "reg";
23099 let isNVStorable = 1;
23101 def S4_pstorerbtnew_abs : HInst<
23102 (outs),
23103 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23104 "if ($Pv4.new) memb(#$Ii) = $Rt32",
23105 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23106 let Inst{2-2} = 0b0;
23107 let Inst{7-7} = 0b1;
23108 let Inst{13-13} = 0b1;
23109 let Inst{31-18} = 0b10101111000000;
23110 let isPredicated = 1;
23111 let addrMode = Absolute;
23112 let accessSize = ByteAccess;
23113 let isPredicatedNew = 1;
23114 let isExtended = 1;
23115 let mayStore = 1;
23116 let BaseOpcode = "S2_storerbabs";
23117 let CextOpcode = "S2_storerb";
23118 let isNVStorable = 1;
23119 let DecoderNamespace = "MustExtend";
23120 let isExtendable = 1;
23121 let opExtendable = 1;
23122 let isExtentSigned = 0;
23123 let opExtentBits = 6;
23124 let opExtentAlign = 0;
23126 def S4_pstorerbtnew_io : HInst<
23127 (outs),
23128 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
23129 "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
23130 tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
23131 let Inst{2-2} = 0b0;
23132 let Inst{31-21} = 0b01000010000;
23133 let isPredicated = 1;
23134 let addrMode = BaseImmOffset;
23135 let accessSize = ByteAccess;
23136 let isPredicatedNew = 1;
23137 let mayStore = 1;
23138 let BaseOpcode = "S2_storerb_io";
23139 let CextOpcode = "S2_storerb";
23140 let InputType = "imm";
23141 let isNVStorable = 1;
23142 let isExtendable = 1;
23143 let opExtendable = 2;
23144 let isExtentSigned = 0;
23145 let opExtentBits = 6;
23146 let opExtentAlign = 0;
23148 def S4_pstorerbtnew_rr : HInst<
23149 (outs),
23150 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23151 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23152 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23153 let Inst{31-21} = 0b00110110000;
23154 let isPredicated = 1;
23155 let addrMode = BaseRegOffset;
23156 let accessSize = ByteAccess;
23157 let isPredicatedNew = 1;
23158 let mayStore = 1;
23159 let BaseOpcode = "S4_storerb_rr";
23160 let CextOpcode = "S2_storerb";
23161 let InputType = "reg";
23162 let isNVStorable = 1;
23164 def S4_pstorerbtnew_zomap : HInst<
23165 (outs),
23166 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23167 "if ($Pv4.new) memb($Rs32) = $Rt32",
23168 tc_a2b365d2, TypeMAPPING> {
23169 let isPseudo = 1;
23170 let isCodeGenOnly = 1;
23172 def S4_pstorerdf_abs : HInst<
23173 (outs),
23174 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23175 "if (!$Pv4) memd(#$Ii) = $Rtt32",
23176 tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23177 let Inst{2-2} = 0b1;
23178 let Inst{7-7} = 0b1;
23179 let Inst{13-13} = 0b0;
23180 let Inst{31-18} = 0b10101111110000;
23181 let isPredicated = 1;
23182 let isPredicatedFalse = 1;
23183 let addrMode = Absolute;
23184 let accessSize = DoubleWordAccess;
23185 let isExtended = 1;
23186 let mayStore = 1;
23187 let BaseOpcode = "S2_storerdabs";
23188 let CextOpcode = "S2_storerd";
23189 let DecoderNamespace = "MustExtend";
23190 let isExtendable = 1;
23191 let opExtendable = 1;
23192 let isExtentSigned = 0;
23193 let opExtentBits = 6;
23194 let opExtentAlign = 0;
23196 def S4_pstorerdf_rr : HInst<
23197 (outs),
23198 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23199 "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23200 tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23201 let Inst{31-21} = 0b00110101110;
23202 let isPredicated = 1;
23203 let isPredicatedFalse = 1;
23204 let addrMode = BaseRegOffset;
23205 let accessSize = DoubleWordAccess;
23206 let mayStore = 1;
23207 let BaseOpcode = "S2_storerd_rr";
23208 let CextOpcode = "S2_storerd";
23209 let InputType = "reg";
23211 def S4_pstorerdfnew_abs : HInst<
23212 (outs),
23213 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23214 "if (!$Pv4.new) memd(#$Ii) = $Rtt32",
23215 tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23216 let Inst{2-2} = 0b1;
23217 let Inst{7-7} = 0b1;
23218 let Inst{13-13} = 0b1;
23219 let Inst{31-18} = 0b10101111110000;
23220 let isPredicated = 1;
23221 let isPredicatedFalse = 1;
23222 let addrMode = Absolute;
23223 let accessSize = DoubleWordAccess;
23224 let isPredicatedNew = 1;
23225 let isExtended = 1;
23226 let mayStore = 1;
23227 let BaseOpcode = "S2_storerdabs";
23228 let CextOpcode = "S2_storerd";
23229 let DecoderNamespace = "MustExtend";
23230 let isExtendable = 1;
23231 let opExtendable = 1;
23232 let isExtentSigned = 0;
23233 let opExtentBits = 6;
23234 let opExtentAlign = 0;
23236 def S4_pstorerdfnew_io : HInst<
23237 (outs),
23238 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23239 "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23240 tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23241 let Inst{2-2} = 0b0;
23242 let Inst{31-21} = 0b01000110110;
23243 let isPredicated = 1;
23244 let isPredicatedFalse = 1;
23245 let addrMode = BaseImmOffset;
23246 let accessSize = DoubleWordAccess;
23247 let isPredicatedNew = 1;
23248 let mayStore = 1;
23249 let BaseOpcode = "S2_storerd_io";
23250 let CextOpcode = "S2_storerd";
23251 let InputType = "imm";
23252 let isExtendable = 1;
23253 let opExtendable = 2;
23254 let isExtentSigned = 0;
23255 let opExtentBits = 9;
23256 let opExtentAlign = 3;
23258 def S4_pstorerdfnew_rr : HInst<
23259 (outs),
23260 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23261 "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23262 tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23263 let Inst{31-21} = 0b00110111110;
23264 let isPredicated = 1;
23265 let isPredicatedFalse = 1;
23266 let addrMode = BaseRegOffset;
23267 let accessSize = DoubleWordAccess;
23268 let isPredicatedNew = 1;
23269 let mayStore = 1;
23270 let BaseOpcode = "S2_storerd_rr";
23271 let CextOpcode = "S2_storerd";
23272 let InputType = "reg";
23274 def S4_pstorerdfnew_zomap : HInst<
23275 (outs),
23276 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23277 "if (!$Pv4.new) memd($Rs32) = $Rtt32",
23278 tc_a2b365d2, TypeMAPPING> {
23279 let isPseudo = 1;
23280 let isCodeGenOnly = 1;
23282 def S4_pstorerdt_abs : HInst<
23283 (outs),
23284 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23285 "if ($Pv4) memd(#$Ii) = $Rtt32",
23286 tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23287 let Inst{2-2} = 0b0;
23288 let Inst{7-7} = 0b1;
23289 let Inst{13-13} = 0b0;
23290 let Inst{31-18} = 0b10101111110000;
23291 let isPredicated = 1;
23292 let addrMode = Absolute;
23293 let accessSize = DoubleWordAccess;
23294 let isExtended = 1;
23295 let mayStore = 1;
23296 let BaseOpcode = "S2_storerdabs";
23297 let CextOpcode = "S2_storerd";
23298 let DecoderNamespace = "MustExtend";
23299 let isExtendable = 1;
23300 let opExtendable = 1;
23301 let isExtentSigned = 0;
23302 let opExtentBits = 6;
23303 let opExtentAlign = 0;
23305 def S4_pstorerdt_rr : HInst<
23306 (outs),
23307 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23308 "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23309 tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23310 let Inst{31-21} = 0b00110100110;
23311 let isPredicated = 1;
23312 let addrMode = BaseRegOffset;
23313 let accessSize = DoubleWordAccess;
23314 let mayStore = 1;
23315 let BaseOpcode = "S2_storerd_rr";
23316 let CextOpcode = "S2_storerd";
23317 let InputType = "reg";
23319 def S4_pstorerdtnew_abs : HInst<
23320 (outs),
23321 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23322 "if ($Pv4.new) memd(#$Ii) = $Rtt32",
23323 tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23324 let Inst{2-2} = 0b0;
23325 let Inst{7-7} = 0b1;
23326 let Inst{13-13} = 0b1;
23327 let Inst{31-18} = 0b10101111110000;
23328 let isPredicated = 1;
23329 let addrMode = Absolute;
23330 let accessSize = DoubleWordAccess;
23331 let isPredicatedNew = 1;
23332 let isExtended = 1;
23333 let mayStore = 1;
23334 let BaseOpcode = "S2_storerdabs";
23335 let CextOpcode = "S2_storerd";
23336 let DecoderNamespace = "MustExtend";
23337 let isExtendable = 1;
23338 let opExtendable = 1;
23339 let isExtentSigned = 0;
23340 let opExtentBits = 6;
23341 let opExtentAlign = 0;
23343 def S4_pstorerdtnew_io : HInst<
23344 (outs),
23345 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23346 "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23347 tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23348 let Inst{2-2} = 0b0;
23349 let Inst{31-21} = 0b01000010110;
23350 let isPredicated = 1;
23351 let addrMode = BaseImmOffset;
23352 let accessSize = DoubleWordAccess;
23353 let isPredicatedNew = 1;
23354 let mayStore = 1;
23355 let BaseOpcode = "S2_storerd_io";
23356 let CextOpcode = "S2_storerd";
23357 let InputType = "imm";
23358 let isExtendable = 1;
23359 let opExtendable = 2;
23360 let isExtentSigned = 0;
23361 let opExtentBits = 9;
23362 let opExtentAlign = 3;
23364 def S4_pstorerdtnew_rr : HInst<
23365 (outs),
23366 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23367 "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23368 tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23369 let Inst{31-21} = 0b00110110110;
23370 let isPredicated = 1;
23371 let addrMode = BaseRegOffset;
23372 let accessSize = DoubleWordAccess;
23373 let isPredicatedNew = 1;
23374 let mayStore = 1;
23375 let BaseOpcode = "S2_storerd_rr";
23376 let CextOpcode = "S2_storerd";
23377 let InputType = "reg";
23379 def S4_pstorerdtnew_zomap : HInst<
23380 (outs),
23381 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23382 "if ($Pv4.new) memd($Rs32) = $Rtt32",
23383 tc_a2b365d2, TypeMAPPING> {
23384 let isPseudo = 1;
23385 let isCodeGenOnly = 1;
23387 def S4_pstorerff_abs : HInst<
23388 (outs),
23389 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23390 "if (!$Pv4) memh(#$Ii) = $Rt32.h",
23391 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23392 let Inst{2-2} = 0b1;
23393 let Inst{7-7} = 0b1;
23394 let Inst{13-13} = 0b0;
23395 let Inst{31-18} = 0b10101111011000;
23396 let isPredicated = 1;
23397 let isPredicatedFalse = 1;
23398 let addrMode = Absolute;
23399 let accessSize = HalfWordAccess;
23400 let isExtended = 1;
23401 let mayStore = 1;
23402 let BaseOpcode = "S2_storerfabs";
23403 let CextOpcode = "S2_storerf";
23404 let DecoderNamespace = "MustExtend";
23405 let isExtendable = 1;
23406 let opExtendable = 1;
23407 let isExtentSigned = 0;
23408 let opExtentBits = 6;
23409 let opExtentAlign = 0;
23411 def S4_pstorerff_rr : HInst<
23412 (outs),
23413 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23414 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23415 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23416 let Inst{31-21} = 0b00110101011;
23417 let isPredicated = 1;
23418 let isPredicatedFalse = 1;
23419 let addrMode = BaseRegOffset;
23420 let accessSize = HalfWordAccess;
23421 let mayStore = 1;
23422 let BaseOpcode = "S4_storerf_rr";
23423 let CextOpcode = "S2_storerf";
23424 let InputType = "reg";
23426 def S4_pstorerffnew_abs : HInst<
23427 (outs),
23428 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23429 "if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23430 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23431 let Inst{2-2} = 0b1;
23432 let Inst{7-7} = 0b1;
23433 let Inst{13-13} = 0b1;
23434 let Inst{31-18} = 0b10101111011000;
23435 let isPredicated = 1;
23436 let isPredicatedFalse = 1;
23437 let addrMode = Absolute;
23438 let accessSize = HalfWordAccess;
23439 let isPredicatedNew = 1;
23440 let isExtended = 1;
23441 let mayStore = 1;
23442 let BaseOpcode = "S2_storerfabs";
23443 let CextOpcode = "S2_storerf";
23444 let DecoderNamespace = "MustExtend";
23445 let isExtendable = 1;
23446 let opExtendable = 1;
23447 let isExtentSigned = 0;
23448 let opExtentBits = 6;
23449 let opExtentAlign = 0;
23451 def S4_pstorerffnew_io : HInst<
23452 (outs),
23453 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23454 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23455 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23456 let Inst{2-2} = 0b0;
23457 let Inst{31-21} = 0b01000110011;
23458 let isPredicated = 1;
23459 let isPredicatedFalse = 1;
23460 let addrMode = BaseImmOffset;
23461 let accessSize = HalfWordAccess;
23462 let isPredicatedNew = 1;
23463 let mayStore = 1;
23464 let BaseOpcode = "S2_storerf_io";
23465 let CextOpcode = "S2_storerf";
23466 let InputType = "imm";
23467 let isExtendable = 1;
23468 let opExtendable = 2;
23469 let isExtentSigned = 0;
23470 let opExtentBits = 7;
23471 let opExtentAlign = 1;
23473 def S4_pstorerffnew_rr : HInst<
23474 (outs),
23475 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23476 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23477 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23478 let Inst{31-21} = 0b00110111011;
23479 let isPredicated = 1;
23480 let isPredicatedFalse = 1;
23481 let addrMode = BaseRegOffset;
23482 let accessSize = HalfWordAccess;
23483 let isPredicatedNew = 1;
23484 let mayStore = 1;
23485 let BaseOpcode = "S4_storerf_rr";
23486 let CextOpcode = "S2_storerf";
23487 let InputType = "reg";
23489 def S4_pstorerffnew_zomap : HInst<
23490 (outs),
23491 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23492 "if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23493 tc_a2b365d2, TypeMAPPING> {
23494 let isPseudo = 1;
23495 let isCodeGenOnly = 1;
23497 def S4_pstorerft_abs : HInst<
23498 (outs),
23499 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23500 "if ($Pv4) memh(#$Ii) = $Rt32.h",
23501 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23502 let Inst{2-2} = 0b0;
23503 let Inst{7-7} = 0b1;
23504 let Inst{13-13} = 0b0;
23505 let Inst{31-18} = 0b10101111011000;
23506 let isPredicated = 1;
23507 let addrMode = Absolute;
23508 let accessSize = HalfWordAccess;
23509 let isExtended = 1;
23510 let mayStore = 1;
23511 let BaseOpcode = "S2_storerfabs";
23512 let CextOpcode = "S2_storerf";
23513 let DecoderNamespace = "MustExtend";
23514 let isExtendable = 1;
23515 let opExtendable = 1;
23516 let isExtentSigned = 0;
23517 let opExtentBits = 6;
23518 let opExtentAlign = 0;
23520 def S4_pstorerft_rr : HInst<
23521 (outs),
23522 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23523 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23524 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23525 let Inst{31-21} = 0b00110100011;
23526 let isPredicated = 1;
23527 let addrMode = BaseRegOffset;
23528 let accessSize = HalfWordAccess;
23529 let mayStore = 1;
23530 let BaseOpcode = "S4_storerf_rr";
23531 let CextOpcode = "S2_storerf";
23532 let InputType = "reg";
23534 def S4_pstorerftnew_abs : HInst<
23535 (outs),
23536 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23537 "if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23538 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23539 let Inst{2-2} = 0b0;
23540 let Inst{7-7} = 0b1;
23541 let Inst{13-13} = 0b1;
23542 let Inst{31-18} = 0b10101111011000;
23543 let isPredicated = 1;
23544 let addrMode = Absolute;
23545 let accessSize = HalfWordAccess;
23546 let isPredicatedNew = 1;
23547 let isExtended = 1;
23548 let mayStore = 1;
23549 let BaseOpcode = "S2_storerfabs";
23550 let CextOpcode = "S2_storerf";
23551 let DecoderNamespace = "MustExtend";
23552 let isExtendable = 1;
23553 let opExtendable = 1;
23554 let isExtentSigned = 0;
23555 let opExtentBits = 6;
23556 let opExtentAlign = 0;
23558 def S4_pstorerftnew_io : HInst<
23559 (outs),
23560 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23561 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23562 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23563 let Inst{2-2} = 0b0;
23564 let Inst{31-21} = 0b01000010011;
23565 let isPredicated = 1;
23566 let addrMode = BaseImmOffset;
23567 let accessSize = HalfWordAccess;
23568 let isPredicatedNew = 1;
23569 let mayStore = 1;
23570 let BaseOpcode = "S2_storerf_io";
23571 let CextOpcode = "S2_storerf";
23572 let InputType = "imm";
23573 let isExtendable = 1;
23574 let opExtendable = 2;
23575 let isExtentSigned = 0;
23576 let opExtentBits = 7;
23577 let opExtentAlign = 1;
23579 def S4_pstorerftnew_rr : HInst<
23580 (outs),
23581 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23582 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23583 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23584 let Inst{31-21} = 0b00110110011;
23585 let isPredicated = 1;
23586 let addrMode = BaseRegOffset;
23587 let accessSize = HalfWordAccess;
23588 let isPredicatedNew = 1;
23589 let mayStore = 1;
23590 let BaseOpcode = "S4_storerf_rr";
23591 let CextOpcode = "S2_storerf";
23592 let InputType = "reg";
23594 def S4_pstorerftnew_zomap : HInst<
23595 (outs),
23596 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23597 "if ($Pv4.new) memh($Rs32) = $Rt32.h",
23598 tc_a2b365d2, TypeMAPPING> {
23599 let isPseudo = 1;
23600 let isCodeGenOnly = 1;
23602 def S4_pstorerhf_abs : HInst<
23603 (outs),
23604 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23605 "if (!$Pv4) memh(#$Ii) = $Rt32",
23606 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23607 let Inst{2-2} = 0b1;
23608 let Inst{7-7} = 0b1;
23609 let Inst{13-13} = 0b0;
23610 let Inst{31-18} = 0b10101111010000;
23611 let isPredicated = 1;
23612 let isPredicatedFalse = 1;
23613 let addrMode = Absolute;
23614 let accessSize = HalfWordAccess;
23615 let isExtended = 1;
23616 let mayStore = 1;
23617 let BaseOpcode = "S2_storerhabs";
23618 let CextOpcode = "S2_storerh";
23619 let isNVStorable = 1;
23620 let DecoderNamespace = "MustExtend";
23621 let isExtendable = 1;
23622 let opExtendable = 1;
23623 let isExtentSigned = 0;
23624 let opExtentBits = 6;
23625 let opExtentAlign = 0;
23627 def S4_pstorerhf_rr : HInst<
23628 (outs),
23629 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23630 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23631 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23632 let Inst{31-21} = 0b00110101010;
23633 let isPredicated = 1;
23634 let isPredicatedFalse = 1;
23635 let addrMode = BaseRegOffset;
23636 let accessSize = HalfWordAccess;
23637 let mayStore = 1;
23638 let BaseOpcode = "S2_storerh_rr";
23639 let CextOpcode = "S2_storerh";
23640 let InputType = "reg";
23641 let isNVStorable = 1;
23643 def S4_pstorerhfnew_abs : HInst<
23644 (outs),
23645 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23646 "if (!$Pv4.new) memh(#$Ii) = $Rt32",
23647 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23648 let Inst{2-2} = 0b1;
23649 let Inst{7-7} = 0b1;
23650 let Inst{13-13} = 0b1;
23651 let Inst{31-18} = 0b10101111010000;
23652 let isPredicated = 1;
23653 let isPredicatedFalse = 1;
23654 let addrMode = Absolute;
23655 let accessSize = HalfWordAccess;
23656 let isPredicatedNew = 1;
23657 let isExtended = 1;
23658 let mayStore = 1;
23659 let BaseOpcode = "S2_storerhabs";
23660 let CextOpcode = "S2_storerh";
23661 let isNVStorable = 1;
23662 let DecoderNamespace = "MustExtend";
23663 let isExtendable = 1;
23664 let opExtendable = 1;
23665 let isExtentSigned = 0;
23666 let opExtentBits = 6;
23667 let opExtentAlign = 0;
23669 def S4_pstorerhfnew_io : HInst<
23670 (outs),
23671 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23672 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23673 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23674 let Inst{2-2} = 0b0;
23675 let Inst{31-21} = 0b01000110010;
23676 let isPredicated = 1;
23677 let isPredicatedFalse = 1;
23678 let addrMode = BaseImmOffset;
23679 let accessSize = HalfWordAccess;
23680 let isPredicatedNew = 1;
23681 let mayStore = 1;
23682 let BaseOpcode = "S2_storerh_io";
23683 let CextOpcode = "S2_storerh";
23684 let InputType = "imm";
23685 let isNVStorable = 1;
23686 let isExtendable = 1;
23687 let opExtendable = 2;
23688 let isExtentSigned = 0;
23689 let opExtentBits = 7;
23690 let opExtentAlign = 1;
23692 def S4_pstorerhfnew_rr : HInst<
23693 (outs),
23694 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23695 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23696 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23697 let Inst{31-21} = 0b00110111010;
23698 let isPredicated = 1;
23699 let isPredicatedFalse = 1;
23700 let addrMode = BaseRegOffset;
23701 let accessSize = HalfWordAccess;
23702 let isPredicatedNew = 1;
23703 let mayStore = 1;
23704 let BaseOpcode = "S2_storerh_rr";
23705 let CextOpcode = "S2_storerh";
23706 let InputType = "reg";
23707 let isNVStorable = 1;
23709 def S4_pstorerhfnew_zomap : HInst<
23710 (outs),
23711 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23712 "if (!$Pv4.new) memh($Rs32) = $Rt32",
23713 tc_a2b365d2, TypeMAPPING> {
23714 let isPseudo = 1;
23715 let isCodeGenOnly = 1;
23717 def S4_pstorerhnewf_abs : HInst<
23718 (outs),
23719 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23720 "if (!$Pv4) memh(#$Ii) = $Nt8.new",
23721 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23722 let Inst{2-2} = 0b1;
23723 let Inst{7-7} = 0b1;
23724 let Inst{13-11} = 0b001;
23725 let Inst{31-18} = 0b10101111101000;
23726 let isPredicated = 1;
23727 let isPredicatedFalse = 1;
23728 let addrMode = Absolute;
23729 let accessSize = HalfWordAccess;
23730 let isNVStore = 1;
23731 let isNewValue = 1;
23732 let isExtended = 1;
23733 let isRestrictNoSlot1Store = 1;
23734 let mayStore = 1;
23735 let BaseOpcode = "S2_storerhabs";
23736 let CextOpcode = "S2_storerh";
23737 let DecoderNamespace = "MustExtend";
23738 let isExtendable = 1;
23739 let opExtendable = 1;
23740 let isExtentSigned = 0;
23741 let opExtentBits = 6;
23742 let opExtentAlign = 0;
23743 let opNewValue = 2;
23745 def S4_pstorerhnewf_rr : HInst<
23746 (outs),
23747 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23748 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23749 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23750 let Inst{4-3} = 0b01;
23751 let Inst{31-21} = 0b00110101101;
23752 let isPredicated = 1;
23753 let isPredicatedFalse = 1;
23754 let addrMode = BaseRegOffset;
23755 let accessSize = HalfWordAccess;
23756 let isNVStore = 1;
23757 let isNewValue = 1;
23758 let isRestrictNoSlot1Store = 1;
23759 let mayStore = 1;
23760 let BaseOpcode = "S2_storerh_rr";
23761 let CextOpcode = "S2_storerh";
23762 let InputType = "reg";
23763 let opNewValue = 4;
23765 def S4_pstorerhnewfnew_abs : HInst<
23766 (outs),
23767 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23768 "if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23769 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23770 let Inst{2-2} = 0b1;
23771 let Inst{7-7} = 0b1;
23772 let Inst{13-11} = 0b101;
23773 let Inst{31-18} = 0b10101111101000;
23774 let isPredicated = 1;
23775 let isPredicatedFalse = 1;
23776 let addrMode = Absolute;
23777 let accessSize = HalfWordAccess;
23778 let isNVStore = 1;
23779 let isPredicatedNew = 1;
23780 let isNewValue = 1;
23781 let isExtended = 1;
23782 let isRestrictNoSlot1Store = 1;
23783 let mayStore = 1;
23784 let BaseOpcode = "S2_storerhabs";
23785 let CextOpcode = "S2_storerh";
23786 let DecoderNamespace = "MustExtend";
23787 let isExtendable = 1;
23788 let opExtendable = 1;
23789 let isExtentSigned = 0;
23790 let opExtentBits = 6;
23791 let opExtentAlign = 0;
23792 let opNewValue = 2;
23794 def S4_pstorerhnewfnew_io : HInst<
23795 (outs),
23796 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23797 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23798 tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23799 let Inst{2-2} = 0b0;
23800 let Inst{12-11} = 0b01;
23801 let Inst{31-21} = 0b01000110101;
23802 let isPredicated = 1;
23803 let isPredicatedFalse = 1;
23804 let addrMode = BaseImmOffset;
23805 let accessSize = HalfWordAccess;
23806 let isNVStore = 1;
23807 let isPredicatedNew = 1;
23808 let isNewValue = 1;
23809 let isRestrictNoSlot1Store = 1;
23810 let mayStore = 1;
23811 let BaseOpcode = "S2_storerh_io";
23812 let CextOpcode = "S2_storerh";
23813 let InputType = "imm";
23814 let isExtendable = 1;
23815 let opExtendable = 2;
23816 let isExtentSigned = 0;
23817 let opExtentBits = 7;
23818 let opExtentAlign = 1;
23819 let opNewValue = 3;
23821 def S4_pstorerhnewfnew_rr : HInst<
23822 (outs),
23823 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23824 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23825 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23826 let Inst{4-3} = 0b01;
23827 let Inst{31-21} = 0b00110111101;
23828 let isPredicated = 1;
23829 let isPredicatedFalse = 1;
23830 let addrMode = BaseRegOffset;
23831 let accessSize = HalfWordAccess;
23832 let isNVStore = 1;
23833 let isPredicatedNew = 1;
23834 let isNewValue = 1;
23835 let isRestrictNoSlot1Store = 1;
23836 let mayStore = 1;
23837 let BaseOpcode = "S2_storerh_rr";
23838 let CextOpcode = "S2_storerh";
23839 let InputType = "reg";
23840 let opNewValue = 4;
23842 def S4_pstorerhnewfnew_zomap : HInst<
23843 (outs),
23844 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23845 "if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23846 tc_92240447, TypeMAPPING> {
23847 let isPseudo = 1;
23848 let isCodeGenOnly = 1;
23849 let opNewValue = 2;
23851 def S4_pstorerhnewt_abs : HInst<
23852 (outs),
23853 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23854 "if ($Pv4) memh(#$Ii) = $Nt8.new",
23855 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23856 let Inst{2-2} = 0b0;
23857 let Inst{7-7} = 0b1;
23858 let Inst{13-11} = 0b001;
23859 let Inst{31-18} = 0b10101111101000;
23860 let isPredicated = 1;
23861 let addrMode = Absolute;
23862 let accessSize = HalfWordAccess;
23863 let isNVStore = 1;
23864 let isNewValue = 1;
23865 let isExtended = 1;
23866 let isRestrictNoSlot1Store = 1;
23867 let mayStore = 1;
23868 let BaseOpcode = "S2_storerhabs";
23869 let CextOpcode = "S2_storerh";
23870 let DecoderNamespace = "MustExtend";
23871 let isExtendable = 1;
23872 let opExtendable = 1;
23873 let isExtentSigned = 0;
23874 let opExtentBits = 6;
23875 let opExtentAlign = 0;
23876 let opNewValue = 2;
23878 def S4_pstorerhnewt_rr : HInst<
23879 (outs),
23880 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23881 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23882 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23883 let Inst{4-3} = 0b01;
23884 let Inst{31-21} = 0b00110100101;
23885 let isPredicated = 1;
23886 let addrMode = BaseRegOffset;
23887 let accessSize = HalfWordAccess;
23888 let isNVStore = 1;
23889 let isNewValue = 1;
23890 let isRestrictNoSlot1Store = 1;
23891 let mayStore = 1;
23892 let BaseOpcode = "S2_storerh_rr";
23893 let CextOpcode = "S2_storerh";
23894 let InputType = "reg";
23895 let opNewValue = 4;
23897 def S4_pstorerhnewtnew_abs : HInst<
23898 (outs),
23899 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23900 "if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23901 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23902 let Inst{2-2} = 0b0;
23903 let Inst{7-7} = 0b1;
23904 let Inst{13-11} = 0b101;
23905 let Inst{31-18} = 0b10101111101000;
23906 let isPredicated = 1;
23907 let addrMode = Absolute;
23908 let accessSize = HalfWordAccess;
23909 let isNVStore = 1;
23910 let isPredicatedNew = 1;
23911 let isNewValue = 1;
23912 let isExtended = 1;
23913 let isRestrictNoSlot1Store = 1;
23914 let mayStore = 1;
23915 let BaseOpcode = "S2_storerhabs";
23916 let CextOpcode = "S2_storerh";
23917 let DecoderNamespace = "MustExtend";
23918 let isExtendable = 1;
23919 let opExtendable = 1;
23920 let isExtentSigned = 0;
23921 let opExtentBits = 6;
23922 let opExtentAlign = 0;
23923 let opNewValue = 2;
23925 def S4_pstorerhnewtnew_io : HInst<
23926 (outs),
23927 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23928 "if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23929 tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23930 let Inst{2-2} = 0b0;
23931 let Inst{12-11} = 0b01;
23932 let Inst{31-21} = 0b01000010101;
23933 let isPredicated = 1;
23934 let addrMode = BaseImmOffset;
23935 let accessSize = HalfWordAccess;
23936 let isNVStore = 1;
23937 let isPredicatedNew = 1;
23938 let isNewValue = 1;
23939 let isRestrictNoSlot1Store = 1;
23940 let mayStore = 1;
23941 let BaseOpcode = "S2_storerh_io";
23942 let CextOpcode = "S2_storerh";
23943 let InputType = "imm";
23944 let isExtendable = 1;
23945 let opExtendable = 2;
23946 let isExtentSigned = 0;
23947 let opExtentBits = 7;
23948 let opExtentAlign = 1;
23949 let opNewValue = 3;
23951 def S4_pstorerhnewtnew_rr : HInst<
23952 (outs),
23953 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23954 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23955 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23956 let Inst{4-3} = 0b01;
23957 let Inst{31-21} = 0b00110110101;
23958 let isPredicated = 1;
23959 let addrMode = BaseRegOffset;
23960 let accessSize = HalfWordAccess;
23961 let isNVStore = 1;
23962 let isPredicatedNew = 1;
23963 let isNewValue = 1;
23964 let isRestrictNoSlot1Store = 1;
23965 let mayStore = 1;
23966 let BaseOpcode = "S2_storerh_rr";
23967 let CextOpcode = "S2_storerh";
23968 let InputType = "reg";
23969 let opNewValue = 4;
23971 def S4_pstorerhnewtnew_zomap : HInst<
23972 (outs),
23973 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23974 "if ($Pv4.new) memh($Rs32) = $Nt8.new",
23975 tc_92240447, TypeMAPPING> {
23976 let isPseudo = 1;
23977 let isCodeGenOnly = 1;
23978 let opNewValue = 2;
23980 def S4_pstorerht_abs : HInst<
23981 (outs),
23982 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23983 "if ($Pv4) memh(#$Ii) = $Rt32",
23984 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23985 let Inst{2-2} = 0b0;
23986 let Inst{7-7} = 0b1;
23987 let Inst{13-13} = 0b0;
23988 let Inst{31-18} = 0b10101111010000;
23989 let isPredicated = 1;
23990 let addrMode = Absolute;
23991 let accessSize = HalfWordAccess;
23992 let isExtended = 1;
23993 let mayStore = 1;
23994 let BaseOpcode = "S2_storerhabs";
23995 let CextOpcode = "S2_storerh";
23996 let isNVStorable = 1;
23997 let DecoderNamespace = "MustExtend";
23998 let isExtendable = 1;
23999 let opExtendable = 1;
24000 let isExtentSigned = 0;
24001 let opExtentBits = 6;
24002 let opExtentAlign = 0;
24004 def S4_pstorerht_rr : HInst<
24005 (outs),
24006 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24007 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24008 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24009 let Inst{31-21} = 0b00110100010;
24010 let isPredicated = 1;
24011 let addrMode = BaseRegOffset;
24012 let accessSize = HalfWordAccess;
24013 let mayStore = 1;
24014 let BaseOpcode = "S2_storerh_rr";
24015 let CextOpcode = "S2_storerh";
24016 let InputType = "reg";
24017 let isNVStorable = 1;
24019 def S4_pstorerhtnew_abs : HInst<
24020 (outs),
24021 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24022 "if ($Pv4.new) memh(#$Ii) = $Rt32",
24023 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24024 let Inst{2-2} = 0b0;
24025 let Inst{7-7} = 0b1;
24026 let Inst{13-13} = 0b1;
24027 let Inst{31-18} = 0b10101111010000;
24028 let isPredicated = 1;
24029 let addrMode = Absolute;
24030 let accessSize = HalfWordAccess;
24031 let isPredicatedNew = 1;
24032 let isExtended = 1;
24033 let mayStore = 1;
24034 let BaseOpcode = "S2_storerhabs";
24035 let CextOpcode = "S2_storerh";
24036 let isNVStorable = 1;
24037 let DecoderNamespace = "MustExtend";
24038 let isExtendable = 1;
24039 let opExtendable = 1;
24040 let isExtentSigned = 0;
24041 let opExtentBits = 6;
24042 let opExtentAlign = 0;
24044 def S4_pstorerhtnew_io : HInst<
24045 (outs),
24046 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
24047 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
24048 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
24049 let Inst{2-2} = 0b0;
24050 let Inst{31-21} = 0b01000010010;
24051 let isPredicated = 1;
24052 let addrMode = BaseImmOffset;
24053 let accessSize = HalfWordAccess;
24054 let isPredicatedNew = 1;
24055 let mayStore = 1;
24056 let BaseOpcode = "S2_storerh_io";
24057 let CextOpcode = "S2_storerh";
24058 let InputType = "imm";
24059 let isNVStorable = 1;
24060 let isExtendable = 1;
24061 let opExtendable = 2;
24062 let isExtentSigned = 0;
24063 let opExtentBits = 7;
24064 let opExtentAlign = 1;
24066 def S4_pstorerhtnew_rr : HInst<
24067 (outs),
24068 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24069 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24070 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24071 let Inst{31-21} = 0b00110110010;
24072 let isPredicated = 1;
24073 let addrMode = BaseRegOffset;
24074 let accessSize = HalfWordAccess;
24075 let isPredicatedNew = 1;
24076 let mayStore = 1;
24077 let BaseOpcode = "S2_storerh_rr";
24078 let CextOpcode = "S2_storerh";
24079 let InputType = "reg";
24080 let isNVStorable = 1;
24082 def S4_pstorerhtnew_zomap : HInst<
24083 (outs),
24084 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24085 "if ($Pv4.new) memh($Rs32) = $Rt32",
24086 tc_a2b365d2, TypeMAPPING> {
24087 let isPseudo = 1;
24088 let isCodeGenOnly = 1;
24090 def S4_pstorerif_abs : HInst<
24091 (outs),
24092 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24093 "if (!$Pv4) memw(#$Ii) = $Rt32",
24094 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24095 let Inst{2-2} = 0b1;
24096 let Inst{7-7} = 0b1;
24097 let Inst{13-13} = 0b0;
24098 let Inst{31-18} = 0b10101111100000;
24099 let isPredicated = 1;
24100 let isPredicatedFalse = 1;
24101 let addrMode = Absolute;
24102 let accessSize = WordAccess;
24103 let isExtended = 1;
24104 let mayStore = 1;
24105 let BaseOpcode = "S2_storeriabs";
24106 let CextOpcode = "S2_storeri";
24107 let isNVStorable = 1;
24108 let DecoderNamespace = "MustExtend";
24109 let isExtendable = 1;
24110 let opExtendable = 1;
24111 let isExtentSigned = 0;
24112 let opExtentBits = 6;
24113 let opExtentAlign = 0;
24115 def S4_pstorerif_rr : HInst<
24116 (outs),
24117 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24118 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24119 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24120 let Inst{31-21} = 0b00110101100;
24121 let isPredicated = 1;
24122 let isPredicatedFalse = 1;
24123 let addrMode = BaseRegOffset;
24124 let accessSize = WordAccess;
24125 let mayStore = 1;
24126 let BaseOpcode = "S2_storeri_rr";
24127 let CextOpcode = "S2_storeri";
24128 let InputType = "reg";
24129 let isNVStorable = 1;
24131 def S4_pstorerifnew_abs : HInst<
24132 (outs),
24133 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24134 "if (!$Pv4.new) memw(#$Ii) = $Rt32",
24135 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24136 let Inst{2-2} = 0b1;
24137 let Inst{7-7} = 0b1;
24138 let Inst{13-13} = 0b1;
24139 let Inst{31-18} = 0b10101111100000;
24140 let isPredicated = 1;
24141 let isPredicatedFalse = 1;
24142 let addrMode = Absolute;
24143 let accessSize = WordAccess;
24144 let isPredicatedNew = 1;
24145 let isExtended = 1;
24146 let mayStore = 1;
24147 let BaseOpcode = "S2_storeriabs";
24148 let CextOpcode = "S2_storeri";
24149 let isNVStorable = 1;
24150 let DecoderNamespace = "MustExtend";
24151 let isExtendable = 1;
24152 let opExtendable = 1;
24153 let isExtentSigned = 0;
24154 let opExtentBits = 6;
24155 let opExtentAlign = 0;
24157 def S4_pstorerifnew_io : HInst<
24158 (outs),
24159 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24160 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24161 tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24162 let Inst{2-2} = 0b0;
24163 let Inst{31-21} = 0b01000110100;
24164 let isPredicated = 1;
24165 let isPredicatedFalse = 1;
24166 let addrMode = BaseImmOffset;
24167 let accessSize = WordAccess;
24168 let isPredicatedNew = 1;
24169 let mayStore = 1;
24170 let BaseOpcode = "S2_storeri_io";
24171 let CextOpcode = "S2_storeri";
24172 let InputType = "imm";
24173 let isNVStorable = 1;
24174 let isExtendable = 1;
24175 let opExtendable = 2;
24176 let isExtentSigned = 0;
24177 let opExtentBits = 8;
24178 let opExtentAlign = 2;
24180 def S4_pstorerifnew_rr : HInst<
24181 (outs),
24182 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24183 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24184 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24185 let Inst{31-21} = 0b00110111100;
24186 let isPredicated = 1;
24187 let isPredicatedFalse = 1;
24188 let addrMode = BaseRegOffset;
24189 let accessSize = WordAccess;
24190 let isPredicatedNew = 1;
24191 let mayStore = 1;
24192 let BaseOpcode = "S2_storeri_rr";
24193 let CextOpcode = "S2_storeri";
24194 let InputType = "reg";
24195 let isNVStorable = 1;
24197 def S4_pstorerifnew_zomap : HInst<
24198 (outs),
24199 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24200 "if (!$Pv4.new) memw($Rs32) = $Rt32",
24201 tc_a2b365d2, TypeMAPPING> {
24202 let isPseudo = 1;
24203 let isCodeGenOnly = 1;
24205 def S4_pstorerinewf_abs : HInst<
24206 (outs),
24207 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24208 "if (!$Pv4) memw(#$Ii) = $Nt8.new",
24209 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24210 let Inst{2-2} = 0b1;
24211 let Inst{7-7} = 0b1;
24212 let Inst{13-11} = 0b010;
24213 let Inst{31-18} = 0b10101111101000;
24214 let isPredicated = 1;
24215 let isPredicatedFalse = 1;
24216 let addrMode = Absolute;
24217 let accessSize = WordAccess;
24218 let isNVStore = 1;
24219 let isNewValue = 1;
24220 let isExtended = 1;
24221 let isRestrictNoSlot1Store = 1;
24222 let mayStore = 1;
24223 let BaseOpcode = "S2_storeriabs";
24224 let CextOpcode = "S2_storeri";
24225 let DecoderNamespace = "MustExtend";
24226 let isExtendable = 1;
24227 let opExtendable = 1;
24228 let isExtentSigned = 0;
24229 let opExtentBits = 6;
24230 let opExtentAlign = 0;
24231 let opNewValue = 2;
24233 def S4_pstorerinewf_rr : HInst<
24234 (outs),
24235 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24236 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24237 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24238 let Inst{4-3} = 0b10;
24239 let Inst{31-21} = 0b00110101101;
24240 let isPredicated = 1;
24241 let isPredicatedFalse = 1;
24242 let addrMode = BaseRegOffset;
24243 let accessSize = WordAccess;
24244 let isNVStore = 1;
24245 let isNewValue = 1;
24246 let isRestrictNoSlot1Store = 1;
24247 let mayStore = 1;
24248 let BaseOpcode = "S2_storeri_rr";
24249 let CextOpcode = "S2_storeri";
24250 let InputType = "reg";
24251 let opNewValue = 4;
24253 def S4_pstorerinewfnew_abs : HInst<
24254 (outs),
24255 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24256 "if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
24257 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24258 let Inst{2-2} = 0b1;
24259 let Inst{7-7} = 0b1;
24260 let Inst{13-11} = 0b110;
24261 let Inst{31-18} = 0b10101111101000;
24262 let isPredicated = 1;
24263 let isPredicatedFalse = 1;
24264 let addrMode = Absolute;
24265 let accessSize = WordAccess;
24266 let isNVStore = 1;
24267 let isPredicatedNew = 1;
24268 let isNewValue = 1;
24269 let isExtended = 1;
24270 let isRestrictNoSlot1Store = 1;
24271 let mayStore = 1;
24272 let BaseOpcode = "S2_storeriabs";
24273 let CextOpcode = "S2_storeri";
24274 let DecoderNamespace = "MustExtend";
24275 let isExtendable = 1;
24276 let opExtendable = 1;
24277 let isExtentSigned = 0;
24278 let opExtentBits = 6;
24279 let opExtentAlign = 0;
24280 let opNewValue = 2;
24282 def S4_pstorerinewfnew_io : HInst<
24283 (outs),
24284 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24285 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24286 tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24287 let Inst{2-2} = 0b0;
24288 let Inst{12-11} = 0b10;
24289 let Inst{31-21} = 0b01000110101;
24290 let isPredicated = 1;
24291 let isPredicatedFalse = 1;
24292 let addrMode = BaseImmOffset;
24293 let accessSize = WordAccess;
24294 let isNVStore = 1;
24295 let isPredicatedNew = 1;
24296 let isNewValue = 1;
24297 let isRestrictNoSlot1Store = 1;
24298 let mayStore = 1;
24299 let BaseOpcode = "S2_storeri_io";
24300 let CextOpcode = "S2_storeri";
24301 let InputType = "imm";
24302 let isExtendable = 1;
24303 let opExtendable = 2;
24304 let isExtentSigned = 0;
24305 let opExtentBits = 8;
24306 let opExtentAlign = 2;
24307 let opNewValue = 3;
24309 def S4_pstorerinewfnew_rr : HInst<
24310 (outs),
24311 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24312 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24313 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24314 let Inst{4-3} = 0b10;
24315 let Inst{31-21} = 0b00110111101;
24316 let isPredicated = 1;
24317 let isPredicatedFalse = 1;
24318 let addrMode = BaseRegOffset;
24319 let accessSize = WordAccess;
24320 let isNVStore = 1;
24321 let isPredicatedNew = 1;
24322 let isNewValue = 1;
24323 let isRestrictNoSlot1Store = 1;
24324 let mayStore = 1;
24325 let BaseOpcode = "S2_storeri_rr";
24326 let CextOpcode = "S2_storeri";
24327 let InputType = "reg";
24328 let opNewValue = 4;
24330 def S4_pstorerinewfnew_zomap : HInst<
24331 (outs),
24332 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24333 "if (!$Pv4.new) memw($Rs32) = $Nt8.new",
24334 tc_92240447, TypeMAPPING> {
24335 let isPseudo = 1;
24336 let isCodeGenOnly = 1;
24337 let opNewValue = 2;
24339 def S4_pstorerinewt_abs : HInst<
24340 (outs),
24341 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24342 "if ($Pv4) memw(#$Ii) = $Nt8.new",
24343 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24344 let Inst{2-2} = 0b0;
24345 let Inst{7-7} = 0b1;
24346 let Inst{13-11} = 0b010;
24347 let Inst{31-18} = 0b10101111101000;
24348 let isPredicated = 1;
24349 let addrMode = Absolute;
24350 let accessSize = WordAccess;
24351 let isNVStore = 1;
24352 let isNewValue = 1;
24353 let isExtended = 1;
24354 let isRestrictNoSlot1Store = 1;
24355 let mayStore = 1;
24356 let BaseOpcode = "S2_storeriabs";
24357 let CextOpcode = "S2_storeri";
24358 let DecoderNamespace = "MustExtend";
24359 let isExtendable = 1;
24360 let opExtendable = 1;
24361 let isExtentSigned = 0;
24362 let opExtentBits = 6;
24363 let opExtentAlign = 0;
24364 let opNewValue = 2;
24366 def S4_pstorerinewt_rr : HInst<
24367 (outs),
24368 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24369 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24370 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24371 let Inst{4-3} = 0b10;
24372 let Inst{31-21} = 0b00110100101;
24373 let isPredicated = 1;
24374 let addrMode = BaseRegOffset;
24375 let accessSize = WordAccess;
24376 let isNVStore = 1;
24377 let isNewValue = 1;
24378 let isRestrictNoSlot1Store = 1;
24379 let mayStore = 1;
24380 let BaseOpcode = "S2_storeri_rr";
24381 let CextOpcode = "S2_storeri";
24382 let InputType = "reg";
24383 let opNewValue = 4;
24385 def S4_pstorerinewtnew_abs : HInst<
24386 (outs),
24387 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24388 "if ($Pv4.new) memw(#$Ii) = $Nt8.new",
24389 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24390 let Inst{2-2} = 0b0;
24391 let Inst{7-7} = 0b1;
24392 let Inst{13-11} = 0b110;
24393 let Inst{31-18} = 0b10101111101000;
24394 let isPredicated = 1;
24395 let addrMode = Absolute;
24396 let accessSize = WordAccess;
24397 let isNVStore = 1;
24398 let isPredicatedNew = 1;
24399 let isNewValue = 1;
24400 let isExtended = 1;
24401 let isRestrictNoSlot1Store = 1;
24402 let mayStore = 1;
24403 let BaseOpcode = "S2_storeriabs";
24404 let CextOpcode = "S2_storeri";
24405 let DecoderNamespace = "MustExtend";
24406 let isExtendable = 1;
24407 let opExtendable = 1;
24408 let isExtentSigned = 0;
24409 let opExtentBits = 6;
24410 let opExtentAlign = 0;
24411 let opNewValue = 2;
24413 def S4_pstorerinewtnew_io : HInst<
24414 (outs),
24415 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24416 "if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24417 tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24418 let Inst{2-2} = 0b0;
24419 let Inst{12-11} = 0b10;
24420 let Inst{31-21} = 0b01000010101;
24421 let isPredicated = 1;
24422 let addrMode = BaseImmOffset;
24423 let accessSize = WordAccess;
24424 let isNVStore = 1;
24425 let isPredicatedNew = 1;
24426 let isNewValue = 1;
24427 let isRestrictNoSlot1Store = 1;
24428 let mayStore = 1;
24429 let BaseOpcode = "S2_storeri_io";
24430 let CextOpcode = "S2_storeri";
24431 let InputType = "imm";
24432 let isExtendable = 1;
24433 let opExtendable = 2;
24434 let isExtentSigned = 0;
24435 let opExtentBits = 8;
24436 let opExtentAlign = 2;
24437 let opNewValue = 3;
24439 def S4_pstorerinewtnew_rr : HInst<
24440 (outs),
24441 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24442 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24443 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24444 let Inst{4-3} = 0b10;
24445 let Inst{31-21} = 0b00110110101;
24446 let isPredicated = 1;
24447 let addrMode = BaseRegOffset;
24448 let accessSize = WordAccess;
24449 let isNVStore = 1;
24450 let isPredicatedNew = 1;
24451 let isNewValue = 1;
24452 let isRestrictNoSlot1Store = 1;
24453 let mayStore = 1;
24454 let BaseOpcode = "S2_storeri_rr";
24455 let CextOpcode = "S2_storeri";
24456 let InputType = "reg";
24457 let opNewValue = 4;
24459 def S4_pstorerinewtnew_zomap : HInst<
24460 (outs),
24461 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24462 "if ($Pv4.new) memw($Rs32) = $Nt8.new",
24463 tc_92240447, TypeMAPPING> {
24464 let isPseudo = 1;
24465 let isCodeGenOnly = 1;
24466 let opNewValue = 2;
24468 def S4_pstorerit_abs : HInst<
24469 (outs),
24470 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24471 "if ($Pv4) memw(#$Ii) = $Rt32",
24472 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24473 let Inst{2-2} = 0b0;
24474 let Inst{7-7} = 0b1;
24475 let Inst{13-13} = 0b0;
24476 let Inst{31-18} = 0b10101111100000;
24477 let isPredicated = 1;
24478 let addrMode = Absolute;
24479 let accessSize = WordAccess;
24480 let isExtended = 1;
24481 let mayStore = 1;
24482 let BaseOpcode = "S2_storeriabs";
24483 let CextOpcode = "S2_storeri";
24484 let isNVStorable = 1;
24485 let DecoderNamespace = "MustExtend";
24486 let isExtendable = 1;
24487 let opExtendable = 1;
24488 let isExtentSigned = 0;
24489 let opExtentBits = 6;
24490 let opExtentAlign = 0;
24492 def S4_pstorerit_rr : HInst<
24493 (outs),
24494 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24495 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24496 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24497 let Inst{31-21} = 0b00110100100;
24498 let isPredicated = 1;
24499 let addrMode = BaseRegOffset;
24500 let accessSize = WordAccess;
24501 let mayStore = 1;
24502 let BaseOpcode = "S2_storeri_rr";
24503 let CextOpcode = "S2_storeri";
24504 let InputType = "reg";
24505 let isNVStorable = 1;
24507 def S4_pstoreritnew_abs : HInst<
24508 (outs),
24509 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24510 "if ($Pv4.new) memw(#$Ii) = $Rt32",
24511 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24512 let Inst{2-2} = 0b0;
24513 let Inst{7-7} = 0b1;
24514 let Inst{13-13} = 0b1;
24515 let Inst{31-18} = 0b10101111100000;
24516 let isPredicated = 1;
24517 let addrMode = Absolute;
24518 let accessSize = WordAccess;
24519 let isPredicatedNew = 1;
24520 let isExtended = 1;
24521 let mayStore = 1;
24522 let BaseOpcode = "S2_storeriabs";
24523 let CextOpcode = "S2_storeri";
24524 let isNVStorable = 1;
24525 let DecoderNamespace = "MustExtend";
24526 let isExtendable = 1;
24527 let opExtendable = 1;
24528 let isExtentSigned = 0;
24529 let opExtentBits = 6;
24530 let opExtentAlign = 0;
24532 def S4_pstoreritnew_io : HInst<
24533 (outs),
24534 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24535 "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24536 tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24537 let Inst{2-2} = 0b0;
24538 let Inst{31-21} = 0b01000010100;
24539 let isPredicated = 1;
24540 let addrMode = BaseImmOffset;
24541 let accessSize = WordAccess;
24542 let isPredicatedNew = 1;
24543 let mayStore = 1;
24544 let BaseOpcode = "S2_storeri_io";
24545 let CextOpcode = "S2_storeri";
24546 let InputType = "imm";
24547 let isNVStorable = 1;
24548 let isExtendable = 1;
24549 let opExtendable = 2;
24550 let isExtentSigned = 0;
24551 let opExtentBits = 8;
24552 let opExtentAlign = 2;
24554 def S4_pstoreritnew_rr : HInst<
24555 (outs),
24556 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24557 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24558 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24559 let Inst{31-21} = 0b00110110100;
24560 let isPredicated = 1;
24561 let addrMode = BaseRegOffset;
24562 let accessSize = WordAccess;
24563 let isPredicatedNew = 1;
24564 let mayStore = 1;
24565 let BaseOpcode = "S2_storeri_rr";
24566 let CextOpcode = "S2_storeri";
24567 let InputType = "reg";
24568 let isNVStorable = 1;
24570 def S4_pstoreritnew_zomap : HInst<
24571 (outs),
24572 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24573 "if ($Pv4.new) memw($Rs32) = $Rt32",
24574 tc_a2b365d2, TypeMAPPING> {
24575 let isPseudo = 1;
24576 let isCodeGenOnly = 1;
24578 def S4_stored_locked : HInst<
24579 (outs PredRegs:$Pd4),
24580 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24581 "memd_locked($Rs32,$Pd4) = $Rtt32",
24582 tc_6f42bc60, TypeST>, Enc_d7dc10 {
24583 let Inst{7-2} = 0b000000;
24584 let Inst{13-13} = 0b0;
24585 let Inst{31-21} = 0b10100000111;
24586 let accessSize = DoubleWordAccess;
24587 let isPredicateLate = 1;
24588 let isSoloAX = 1;
24589 let mayStore = 1;
24591 def S4_stored_rl_at_vi : HInst<
24592 (outs),
24593 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24594 "memd_rl($Rs32):at = $Rtt32",
24595 tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24596 let Inst{7-2} = 0b000010;
24597 let Inst{13-13} = 0b0;
24598 let Inst{31-21} = 0b10100000111;
24599 let accessSize = DoubleWordAccess;
24600 let isSolo = 1;
24601 let mayStore = 1;
24603 def S4_stored_rl_st_vi : HInst<
24604 (outs),
24605 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24606 "memd_rl($Rs32):st = $Rtt32",
24607 tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24608 let Inst{7-2} = 0b001010;
24609 let Inst{13-13} = 0b0;
24610 let Inst{31-21} = 0b10100000111;
24611 let accessSize = DoubleWordAccess;
24612 let isSolo = 1;
24613 let mayStore = 1;
24615 def S4_storeirb_io : HInst<
24616 (outs),
24617 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24618 "memb($Rs32+#$Ii) = #$II",
24619 tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel {
24620 let Inst{31-21} = 0b00111100000;
24621 let addrMode = BaseImmOffset;
24622 let accessSize = ByteAccess;
24623 let mayStore = 1;
24624 let BaseOpcode = "S4_storeirb_io";
24625 let CextOpcode = "S2_storerb";
24626 let InputType = "imm";
24627 let isPredicable = 1;
24628 let isExtendable = 1;
24629 let opExtendable = 2;
24630 let isExtentSigned = 1;
24631 let opExtentBits = 8;
24632 let opExtentAlign = 0;
24634 def S4_storeirb_zomap : HInst<
24635 (outs),
24636 (ins IntRegs:$Rs32, s8_0Imm:$II),
24637 "memb($Rs32) = #$II",
24638 tc_7c31e19a, TypeMAPPING> {
24639 let isPseudo = 1;
24640 let isCodeGenOnly = 1;
24642 def S4_storeirbf_io : HInst<
24643 (outs),
24644 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24645 "if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24646 tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24647 let Inst{31-21} = 0b00111000100;
24648 let isPredicated = 1;
24649 let isPredicatedFalse = 1;
24650 let addrMode = BaseImmOffset;
24651 let accessSize = ByteAccess;
24652 let mayStore = 1;
24653 let BaseOpcode = "S4_storeirb_io";
24654 let CextOpcode = "S2_storerb";
24655 let InputType = "imm";
24656 let isExtendable = 1;
24657 let opExtendable = 3;
24658 let isExtentSigned = 1;
24659 let opExtentBits = 6;
24660 let opExtentAlign = 0;
24662 def S4_storeirbf_zomap : HInst<
24663 (outs),
24664 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24665 "if (!$Pv4) memb($Rs32) = #$II",
24666 tc_d03278fd, TypeMAPPING> {
24667 let isPseudo = 1;
24668 let isCodeGenOnly = 1;
24670 def S4_storeirbfnew_io : HInst<
24671 (outs),
24672 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24673 "if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24674 tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24675 let Inst{31-21} = 0b00111001100;
24676 let isPredicated = 1;
24677 let isPredicatedFalse = 1;
24678 let addrMode = BaseImmOffset;
24679 let accessSize = ByteAccess;
24680 let isPredicatedNew = 1;
24681 let mayStore = 1;
24682 let BaseOpcode = "S4_storeirb_io";
24683 let CextOpcode = "S2_storerb";
24684 let InputType = "imm";
24685 let isExtendable = 1;
24686 let opExtendable = 3;
24687 let isExtentSigned = 1;
24688 let opExtentBits = 6;
24689 let opExtentAlign = 0;
24691 def S4_storeirbfnew_zomap : HInst<
24692 (outs),
24693 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24694 "if (!$Pv4.new) memb($Rs32) = #$II",
24695 tc_65cbd974, TypeMAPPING> {
24696 let isPseudo = 1;
24697 let isCodeGenOnly = 1;
24699 def S4_storeirbt_io : HInst<
24700 (outs),
24701 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24702 "if ($Pv4) memb($Rs32+#$Ii) = #$II",
24703 tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24704 let Inst{31-21} = 0b00111000000;
24705 let isPredicated = 1;
24706 let addrMode = BaseImmOffset;
24707 let accessSize = ByteAccess;
24708 let mayStore = 1;
24709 let BaseOpcode = "S4_storeirb_io";
24710 let CextOpcode = "S2_storerb";
24711 let InputType = "imm";
24712 let isExtendable = 1;
24713 let opExtendable = 3;
24714 let isExtentSigned = 1;
24715 let opExtentBits = 6;
24716 let opExtentAlign = 0;
24718 def S4_storeirbt_zomap : HInst<
24719 (outs),
24720 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24721 "if ($Pv4) memb($Rs32) = #$II",
24722 tc_d03278fd, TypeMAPPING> {
24723 let isPseudo = 1;
24724 let isCodeGenOnly = 1;
24726 def S4_storeirbtnew_io : HInst<
24727 (outs),
24728 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24729 "if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24730 tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24731 let Inst{31-21} = 0b00111001000;
24732 let isPredicated = 1;
24733 let addrMode = BaseImmOffset;
24734 let accessSize = ByteAccess;
24735 let isPredicatedNew = 1;
24736 let mayStore = 1;
24737 let BaseOpcode = "S4_storeirb_io";
24738 let CextOpcode = "S2_storerb";
24739 let InputType = "imm";
24740 let isExtendable = 1;
24741 let opExtendable = 3;
24742 let isExtentSigned = 1;
24743 let opExtentBits = 6;
24744 let opExtentAlign = 0;
24746 def S4_storeirbtnew_zomap : HInst<
24747 (outs),
24748 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24749 "if ($Pv4.new) memb($Rs32) = #$II",
24750 tc_65cbd974, TypeMAPPING> {
24751 let isPseudo = 1;
24752 let isCodeGenOnly = 1;
24754 def S4_storeirh_io : HInst<
24755 (outs),
24756 (ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24757 "memh($Rs32+#$Ii) = #$II",
24758 tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel {
24759 let Inst{31-21} = 0b00111100001;
24760 let addrMode = BaseImmOffset;
24761 let accessSize = HalfWordAccess;
24762 let mayStore = 1;
24763 let BaseOpcode = "S4_storeirh_io";
24764 let CextOpcode = "S2_storerh";
24765 let InputType = "imm";
24766 let isPredicable = 1;
24767 let isExtendable = 1;
24768 let opExtendable = 2;
24769 let isExtentSigned = 1;
24770 let opExtentBits = 8;
24771 let opExtentAlign = 0;
24773 def S4_storeirh_zomap : HInst<
24774 (outs),
24775 (ins IntRegs:$Rs32, s8_0Imm:$II),
24776 "memh($Rs32) = #$II",
24777 tc_7c31e19a, TypeMAPPING> {
24778 let isPseudo = 1;
24779 let isCodeGenOnly = 1;
24781 def S4_storeirhf_io : HInst<
24782 (outs),
24783 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24784 "if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24785 tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24786 let Inst{31-21} = 0b00111000101;
24787 let isPredicated = 1;
24788 let isPredicatedFalse = 1;
24789 let addrMode = BaseImmOffset;
24790 let accessSize = HalfWordAccess;
24791 let mayStore = 1;
24792 let BaseOpcode = "S4_storeirh_io";
24793 let CextOpcode = "S2_storerh";
24794 let InputType = "imm";
24795 let isExtendable = 1;
24796 let opExtendable = 3;
24797 let isExtentSigned = 1;
24798 let opExtentBits = 6;
24799 let opExtentAlign = 0;
24801 def S4_storeirhf_zomap : HInst<
24802 (outs),
24803 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24804 "if (!$Pv4) memh($Rs32) = #$II",
24805 tc_d03278fd, TypeMAPPING> {
24806 let isPseudo = 1;
24807 let isCodeGenOnly = 1;
24809 def S4_storeirhfnew_io : HInst<
24810 (outs),
24811 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24812 "if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24813 tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24814 let Inst{31-21} = 0b00111001101;
24815 let isPredicated = 1;
24816 let isPredicatedFalse = 1;
24817 let addrMode = BaseImmOffset;
24818 let accessSize = HalfWordAccess;
24819 let isPredicatedNew = 1;
24820 let mayStore = 1;
24821 let BaseOpcode = "S4_storeirh_io";
24822 let CextOpcode = "S2_storerh";
24823 let InputType = "imm";
24824 let isExtendable = 1;
24825 let opExtendable = 3;
24826 let isExtentSigned = 1;
24827 let opExtentBits = 6;
24828 let opExtentAlign = 0;
24830 def S4_storeirhfnew_zomap : HInst<
24831 (outs),
24832 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24833 "if (!$Pv4.new) memh($Rs32) = #$II",
24834 tc_65cbd974, TypeMAPPING> {
24835 let isPseudo = 1;
24836 let isCodeGenOnly = 1;
24838 def S4_storeirht_io : HInst<
24839 (outs),
24840 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24841 "if ($Pv4) memh($Rs32+#$Ii) = #$II",
24842 tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24843 let Inst{31-21} = 0b00111000001;
24844 let isPredicated = 1;
24845 let addrMode = BaseImmOffset;
24846 let accessSize = HalfWordAccess;
24847 let mayStore = 1;
24848 let BaseOpcode = "S4_storeirh_io";
24849 let CextOpcode = "S2_storerh";
24850 let InputType = "imm";
24851 let isExtendable = 1;
24852 let opExtendable = 3;
24853 let isExtentSigned = 1;
24854 let opExtentBits = 6;
24855 let opExtentAlign = 0;
24857 def S4_storeirht_zomap : HInst<
24858 (outs),
24859 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24860 "if ($Pv4) memh($Rs32) = #$II",
24861 tc_d03278fd, TypeMAPPING> {
24862 let isPseudo = 1;
24863 let isCodeGenOnly = 1;
24865 def S4_storeirhtnew_io : HInst<
24866 (outs),
24867 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24868 "if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24869 tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24870 let Inst{31-21} = 0b00111001001;
24871 let isPredicated = 1;
24872 let addrMode = BaseImmOffset;
24873 let accessSize = HalfWordAccess;
24874 let isPredicatedNew = 1;
24875 let mayStore = 1;
24876 let BaseOpcode = "S4_storeirh_io";
24877 let CextOpcode = "S2_storerh";
24878 let InputType = "imm";
24879 let isExtendable = 1;
24880 let opExtendable = 3;
24881 let isExtentSigned = 1;
24882 let opExtentBits = 6;
24883 let opExtentAlign = 0;
24885 def S4_storeirhtnew_zomap : HInst<
24886 (outs),
24887 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24888 "if ($Pv4.new) memh($Rs32) = #$II",
24889 tc_65cbd974, TypeMAPPING> {
24890 let isPseudo = 1;
24891 let isCodeGenOnly = 1;
24893 def S4_storeiri_io : HInst<
24894 (outs),
24895 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24896 "memw($Rs32+#$Ii) = #$II",
24897 tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel {
24898 let Inst{31-21} = 0b00111100010;
24899 let addrMode = BaseImmOffset;
24900 let accessSize = WordAccess;
24901 let mayStore = 1;
24902 let BaseOpcode = "S4_storeiri_io";
24903 let CextOpcode = "S2_storeri";
24904 let InputType = "imm";
24905 let isPredicable = 1;
24906 let isExtendable = 1;
24907 let opExtendable = 2;
24908 let isExtentSigned = 1;
24909 let opExtentBits = 8;
24910 let opExtentAlign = 0;
24912 def S4_storeiri_zomap : HInst<
24913 (outs),
24914 (ins IntRegs:$Rs32, s8_0Imm:$II),
24915 "memw($Rs32) = #$II",
24916 tc_7c31e19a, TypeMAPPING> {
24917 let isPseudo = 1;
24918 let isCodeGenOnly = 1;
24920 def S4_storeirif_io : HInst<
24921 (outs),
24922 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24923 "if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24924 tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24925 let Inst{31-21} = 0b00111000110;
24926 let isPredicated = 1;
24927 let isPredicatedFalse = 1;
24928 let addrMode = BaseImmOffset;
24929 let accessSize = WordAccess;
24930 let mayStore = 1;
24931 let BaseOpcode = "S4_storeiri_io";
24932 let CextOpcode = "S2_storeri";
24933 let InputType = "imm";
24934 let isExtendable = 1;
24935 let opExtendable = 3;
24936 let isExtentSigned = 1;
24937 let opExtentBits = 6;
24938 let opExtentAlign = 0;
24940 def S4_storeirif_zomap : HInst<
24941 (outs),
24942 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24943 "if (!$Pv4) memw($Rs32) = #$II",
24944 tc_d03278fd, TypeMAPPING> {
24945 let isPseudo = 1;
24946 let isCodeGenOnly = 1;
24948 def S4_storeirifnew_io : HInst<
24949 (outs),
24950 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24951 "if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
24952 tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
24953 let Inst{31-21} = 0b00111001110;
24954 let isPredicated = 1;
24955 let isPredicatedFalse = 1;
24956 let addrMode = BaseImmOffset;
24957 let accessSize = WordAccess;
24958 let isPredicatedNew = 1;
24959 let mayStore = 1;
24960 let BaseOpcode = "S4_storeiri_io";
24961 let CextOpcode = "S2_storeri";
24962 let InputType = "imm";
24963 let isExtendable = 1;
24964 let opExtendable = 3;
24965 let isExtentSigned = 1;
24966 let opExtentBits = 6;
24967 let opExtentAlign = 0;
24969 def S4_storeirifnew_zomap : HInst<
24970 (outs),
24971 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24972 "if (!$Pv4.new) memw($Rs32) = #$II",
24973 tc_65cbd974, TypeMAPPING> {
24974 let isPseudo = 1;
24975 let isCodeGenOnly = 1;
24977 def S4_storeirit_io : HInst<
24978 (outs),
24979 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24980 "if ($Pv4) memw($Rs32+#$Ii) = #$II",
24981 tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24982 let Inst{31-21} = 0b00111000010;
24983 let isPredicated = 1;
24984 let addrMode = BaseImmOffset;
24985 let accessSize = WordAccess;
24986 let mayStore = 1;
24987 let BaseOpcode = "S4_storeiri_io";
24988 let CextOpcode = "S2_storeri";
24989 let InputType = "imm";
24990 let isExtendable = 1;
24991 let opExtendable = 3;
24992 let isExtentSigned = 1;
24993 let opExtentBits = 6;
24994 let opExtentAlign = 0;
24996 def S4_storeirit_zomap : HInst<
24997 (outs),
24998 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24999 "if ($Pv4) memw($Rs32) = #$II",
25000 tc_d03278fd, TypeMAPPING> {
25001 let isPseudo = 1;
25002 let isCodeGenOnly = 1;
25004 def S4_storeiritnew_io : HInst<
25005 (outs),
25006 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25007 "if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
25008 tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
25009 let Inst{31-21} = 0b00111001010;
25010 let isPredicated = 1;
25011 let addrMode = BaseImmOffset;
25012 let accessSize = WordAccess;
25013 let isPredicatedNew = 1;
25014 let mayStore = 1;
25015 let BaseOpcode = "S4_storeiri_io";
25016 let CextOpcode = "S2_storeri";
25017 let InputType = "imm";
25018 let isExtendable = 1;
25019 let opExtendable = 3;
25020 let isExtentSigned = 1;
25021 let opExtentBits = 6;
25022 let opExtentAlign = 0;
25024 def S4_storeiritnew_zomap : HInst<
25025 (outs),
25026 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25027 "if ($Pv4.new) memw($Rs32) = #$II",
25028 tc_65cbd974, TypeMAPPING> {
25029 let isPseudo = 1;
25030 let isCodeGenOnly = 1;
25032 def S4_storerb_ap : HInst<
25033 (outs IntRegs:$Re32),
25034 (ins u32_0Imm:$II, IntRegs:$Rt32),
25035 "memb($Re32=#$II) = $Rt32",
25036 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25037 let Inst{7-6} = 0b10;
25038 let Inst{13-13} = 0b0;
25039 let Inst{31-21} = 0b10101011000;
25040 let addrMode = AbsoluteSet;
25041 let accessSize = ByteAccess;
25042 let isExtended = 1;
25043 let mayStore = 1;
25044 let BaseOpcode = "S2_storerb_ap";
25045 let isNVStorable = 1;
25046 let DecoderNamespace = "MustExtend";
25047 let isExtendable = 1;
25048 let opExtendable = 1;
25049 let isExtentSigned = 0;
25050 let opExtentBits = 6;
25051 let opExtentAlign = 0;
25053 def S4_storerb_rr : HInst<
25054 (outs),
25055 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25056 "memb($Rs32+$Ru32<<#$Ii) = $Rt32",
25057 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25058 let Inst{6-5} = 0b00;
25059 let Inst{31-21} = 0b00111011000;
25060 let addrMode = BaseRegOffset;
25061 let accessSize = ByteAccess;
25062 let mayStore = 1;
25063 let BaseOpcode = "S4_storerb_rr";
25064 let CextOpcode = "S2_storerb";
25065 let InputType = "reg";
25066 let isNVStorable = 1;
25067 let isPredicable = 1;
25069 def S4_storerb_ur : HInst<
25070 (outs),
25071 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25072 "memb($Ru32<<#$Ii+#$II) = $Rt32",
25073 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25074 let Inst{7-7} = 0b1;
25075 let Inst{31-21} = 0b10101101000;
25076 let addrMode = BaseLongOffset;
25077 let accessSize = ByteAccess;
25078 let isExtended = 1;
25079 let mayStore = 1;
25080 let BaseOpcode = "S4_storerb_ur";
25081 let CextOpcode = "S2_storerb";
25082 let InputType = "imm";
25083 let isNVStorable = 1;
25084 let DecoderNamespace = "MustExtend";
25085 let isExtendable = 1;
25086 let opExtendable = 2;
25087 let isExtentSigned = 0;
25088 let opExtentBits = 6;
25089 let opExtentAlign = 0;
25091 def S4_storerbnew_ap : HInst<
25092 (outs IntRegs:$Re32),
25093 (ins u32_0Imm:$II, IntRegs:$Nt8),
25094 "memb($Re32=#$II) = $Nt8.new",
25095 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25096 let Inst{7-6} = 0b10;
25097 let Inst{13-11} = 0b000;
25098 let Inst{31-21} = 0b10101011101;
25099 let addrMode = AbsoluteSet;
25100 let accessSize = ByteAccess;
25101 let isNVStore = 1;
25102 let isNewValue = 1;
25103 let isExtended = 1;
25104 let isRestrictNoSlot1Store = 1;
25105 let mayStore = 1;
25106 let BaseOpcode = "S2_storerb_ap";
25107 let DecoderNamespace = "MustExtend";
25108 let isExtendable = 1;
25109 let opExtendable = 1;
25110 let isExtentSigned = 0;
25111 let opExtentBits = 6;
25112 let opExtentAlign = 0;
25113 let opNewValue = 2;
25115 def S4_storerbnew_rr : HInst<
25116 (outs),
25117 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25118 "memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25119 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25120 let Inst{6-3} = 0b0000;
25121 let Inst{31-21} = 0b00111011101;
25122 let addrMode = BaseRegOffset;
25123 let accessSize = ByteAccess;
25124 let isNVStore = 1;
25125 let isNewValue = 1;
25126 let isRestrictNoSlot1Store = 1;
25127 let mayStore = 1;
25128 let BaseOpcode = "S4_storerb_rr";
25129 let CextOpcode = "S2_storerb";
25130 let InputType = "reg";
25131 let isPredicable = 1;
25132 let opNewValue = 3;
25134 def S4_storerbnew_ur : HInst<
25135 (outs),
25136 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25137 "memb($Ru32<<#$Ii+#$II) = $Nt8.new",
25138 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25139 let Inst{7-7} = 0b1;
25140 let Inst{12-11} = 0b00;
25141 let Inst{31-21} = 0b10101101101;
25142 let addrMode = BaseLongOffset;
25143 let accessSize = ByteAccess;
25144 let isNVStore = 1;
25145 let isNewValue = 1;
25146 let isExtended = 1;
25147 let isRestrictNoSlot1Store = 1;
25148 let mayStore = 1;
25149 let BaseOpcode = "S4_storerb_ur";
25150 let CextOpcode = "S2_storerb";
25151 let DecoderNamespace = "MustExtend";
25152 let isExtendable = 1;
25153 let opExtendable = 2;
25154 let isExtentSigned = 0;
25155 let opExtentBits = 6;
25156 let opExtentAlign = 0;
25157 let opNewValue = 3;
25159 def S4_storerd_ap : HInst<
25160 (outs IntRegs:$Re32),
25161 (ins u32_0Imm:$II, DoubleRegs:$Rtt32),
25162 "memd($Re32=#$II) = $Rtt32",
25163 tc_bb07f2c5, TypeST>, Enc_c7a204 {
25164 let Inst{7-6} = 0b10;
25165 let Inst{13-13} = 0b0;
25166 let Inst{31-21} = 0b10101011110;
25167 let addrMode = AbsoluteSet;
25168 let accessSize = DoubleWordAccess;
25169 let isExtended = 1;
25170 let mayStore = 1;
25171 let BaseOpcode = "S4_storerd_ap";
25172 let DecoderNamespace = "MustExtend";
25173 let isExtendable = 1;
25174 let opExtendable = 1;
25175 let isExtentSigned = 0;
25176 let opExtentBits = 6;
25177 let opExtentAlign = 0;
25179 def S4_storerd_rr : HInst<
25180 (outs),
25181 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
25182 "memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
25183 tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
25184 let Inst{6-5} = 0b00;
25185 let Inst{31-21} = 0b00111011110;
25186 let addrMode = BaseRegOffset;
25187 let accessSize = DoubleWordAccess;
25188 let mayStore = 1;
25189 let BaseOpcode = "S2_storerd_rr";
25190 let CextOpcode = "S2_storerd";
25191 let InputType = "reg";
25192 let isPredicable = 1;
25194 def S4_storerd_ur : HInst<
25195 (outs),
25196 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
25197 "memd($Ru32<<#$Ii+#$II) = $Rtt32",
25198 tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
25199 let Inst{7-7} = 0b1;
25200 let Inst{31-21} = 0b10101101110;
25201 let addrMode = BaseLongOffset;
25202 let accessSize = DoubleWordAccess;
25203 let isExtended = 1;
25204 let mayStore = 1;
25205 let BaseOpcode = "S2_storerd_ur";
25206 let CextOpcode = "S2_storerd";
25207 let InputType = "imm";
25208 let DecoderNamespace = "MustExtend";
25209 let isExtendable = 1;
25210 let opExtendable = 2;
25211 let isExtentSigned = 0;
25212 let opExtentBits = 6;
25213 let opExtentAlign = 0;
25215 def S4_storerf_ap : HInst<
25216 (outs IntRegs:$Re32),
25217 (ins u32_0Imm:$II, IntRegs:$Rt32),
25218 "memh($Re32=#$II) = $Rt32.h",
25219 tc_bb07f2c5, TypeST>, Enc_8bcba4 {
25220 let Inst{7-6} = 0b10;
25221 let Inst{13-13} = 0b0;
25222 let Inst{31-21} = 0b10101011011;
25223 let addrMode = AbsoluteSet;
25224 let accessSize = HalfWordAccess;
25225 let isExtended = 1;
25226 let mayStore = 1;
25227 let BaseOpcode = "S4_storerf_ap";
25228 let DecoderNamespace = "MustExtend";
25229 let isExtendable = 1;
25230 let opExtendable = 1;
25231 let isExtentSigned = 0;
25232 let opExtentBits = 6;
25233 let opExtentAlign = 0;
25235 def S4_storerf_rr : HInst<
25236 (outs),
25237 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25238 "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
25239 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25240 let Inst{6-5} = 0b00;
25241 let Inst{31-21} = 0b00111011011;
25242 let addrMode = BaseRegOffset;
25243 let accessSize = HalfWordAccess;
25244 let mayStore = 1;
25245 let BaseOpcode = "S4_storerf_rr";
25246 let CextOpcode = "S2_storerf";
25247 let InputType = "reg";
25248 let isPredicable = 1;
25250 def S4_storerf_ur : HInst<
25251 (outs),
25252 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25253 "memh($Ru32<<#$Ii+#$II) = $Rt32.h",
25254 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25255 let Inst{7-7} = 0b1;
25256 let Inst{31-21} = 0b10101101011;
25257 let addrMode = BaseLongOffset;
25258 let accessSize = HalfWordAccess;
25259 let isExtended = 1;
25260 let mayStore = 1;
25261 let BaseOpcode = "S4_storerf_rr";
25262 let CextOpcode = "S2_storerf";
25263 let InputType = "imm";
25264 let DecoderNamespace = "MustExtend";
25265 let isExtendable = 1;
25266 let opExtendable = 2;
25267 let isExtentSigned = 0;
25268 let opExtentBits = 6;
25269 let opExtentAlign = 0;
25271 def S4_storerh_ap : HInst<
25272 (outs IntRegs:$Re32),
25273 (ins u32_0Imm:$II, IntRegs:$Rt32),
25274 "memh($Re32=#$II) = $Rt32",
25275 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25276 let Inst{7-6} = 0b10;
25277 let Inst{13-13} = 0b0;
25278 let Inst{31-21} = 0b10101011010;
25279 let addrMode = AbsoluteSet;
25280 let accessSize = HalfWordAccess;
25281 let isExtended = 1;
25282 let mayStore = 1;
25283 let BaseOpcode = "S2_storerh_ap";
25284 let isNVStorable = 1;
25285 let DecoderNamespace = "MustExtend";
25286 let isExtendable = 1;
25287 let opExtendable = 1;
25288 let isExtentSigned = 0;
25289 let opExtentBits = 6;
25290 let opExtentAlign = 0;
25292 def S4_storerh_rr : HInst<
25293 (outs),
25294 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25295 "memh($Rs32+$Ru32<<#$Ii) = $Rt32",
25296 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25297 let Inst{6-5} = 0b00;
25298 let Inst{31-21} = 0b00111011010;
25299 let addrMode = BaseRegOffset;
25300 let accessSize = HalfWordAccess;
25301 let mayStore = 1;
25302 let BaseOpcode = "S2_storerh_rr";
25303 let CextOpcode = "S2_storerh";
25304 let InputType = "reg";
25305 let isNVStorable = 1;
25306 let isPredicable = 1;
25308 def S4_storerh_ur : HInst<
25309 (outs),
25310 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25311 "memh($Ru32<<#$Ii+#$II) = $Rt32",
25312 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25313 let Inst{7-7} = 0b1;
25314 let Inst{31-21} = 0b10101101010;
25315 let addrMode = BaseLongOffset;
25316 let accessSize = HalfWordAccess;
25317 let isExtended = 1;
25318 let mayStore = 1;
25319 let BaseOpcode = "S2_storerh_ur";
25320 let CextOpcode = "S2_storerh";
25321 let InputType = "imm";
25322 let isNVStorable = 1;
25323 let DecoderNamespace = "MustExtend";
25324 let isExtendable = 1;
25325 let opExtendable = 2;
25326 let isExtentSigned = 0;
25327 let opExtentBits = 6;
25328 let opExtentAlign = 0;
25330 def S4_storerhnew_ap : HInst<
25331 (outs IntRegs:$Re32),
25332 (ins u32_0Imm:$II, IntRegs:$Nt8),
25333 "memh($Re32=#$II) = $Nt8.new",
25334 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25335 let Inst{7-6} = 0b10;
25336 let Inst{13-11} = 0b001;
25337 let Inst{31-21} = 0b10101011101;
25338 let addrMode = AbsoluteSet;
25339 let accessSize = HalfWordAccess;
25340 let isNVStore = 1;
25341 let isNewValue = 1;
25342 let isExtended = 1;
25343 let isRestrictNoSlot1Store = 1;
25344 let mayStore = 1;
25345 let BaseOpcode = "S2_storerh_ap";
25346 let DecoderNamespace = "MustExtend";
25347 let isExtendable = 1;
25348 let opExtendable = 1;
25349 let isExtentSigned = 0;
25350 let opExtentBits = 6;
25351 let opExtentAlign = 0;
25352 let opNewValue = 2;
25354 def S4_storerhnew_rr : HInst<
25355 (outs),
25356 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25357 "memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25358 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25359 let Inst{6-3} = 0b0001;
25360 let Inst{31-21} = 0b00111011101;
25361 let addrMode = BaseRegOffset;
25362 let accessSize = HalfWordAccess;
25363 let isNVStore = 1;
25364 let isNewValue = 1;
25365 let isRestrictNoSlot1Store = 1;
25366 let mayStore = 1;
25367 let BaseOpcode = "S2_storerh_rr";
25368 let CextOpcode = "S2_storerh";
25369 let InputType = "reg";
25370 let isPredicable = 1;
25371 let opNewValue = 3;
25373 def S4_storerhnew_ur : HInst<
25374 (outs),
25375 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25376 "memh($Ru32<<#$Ii+#$II) = $Nt8.new",
25377 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25378 let Inst{7-7} = 0b1;
25379 let Inst{12-11} = 0b01;
25380 let Inst{31-21} = 0b10101101101;
25381 let addrMode = BaseLongOffset;
25382 let accessSize = HalfWordAccess;
25383 let isNVStore = 1;
25384 let isNewValue = 1;
25385 let isExtended = 1;
25386 let isRestrictNoSlot1Store = 1;
25387 let mayStore = 1;
25388 let BaseOpcode = "S2_storerh_ur";
25389 let CextOpcode = "S2_storerh";
25390 let DecoderNamespace = "MustExtend";
25391 let isExtendable = 1;
25392 let opExtendable = 2;
25393 let isExtentSigned = 0;
25394 let opExtentBits = 6;
25395 let opExtentAlign = 0;
25396 let opNewValue = 3;
25398 def S4_storeri_ap : HInst<
25399 (outs IntRegs:$Re32),
25400 (ins u32_0Imm:$II, IntRegs:$Rt32),
25401 "memw($Re32=#$II) = $Rt32",
25402 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25403 let Inst{7-6} = 0b10;
25404 let Inst{13-13} = 0b0;
25405 let Inst{31-21} = 0b10101011100;
25406 let addrMode = AbsoluteSet;
25407 let accessSize = WordAccess;
25408 let isExtended = 1;
25409 let mayStore = 1;
25410 let BaseOpcode = "S2_storeri_ap";
25411 let isNVStorable = 1;
25412 let DecoderNamespace = "MustExtend";
25413 let isExtendable = 1;
25414 let opExtendable = 1;
25415 let isExtentSigned = 0;
25416 let opExtentBits = 6;
25417 let opExtentAlign = 0;
25419 def S4_storeri_rr : HInst<
25420 (outs),
25421 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25422 "memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25423 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25424 let Inst{6-5} = 0b00;
25425 let Inst{31-21} = 0b00111011100;
25426 let addrMode = BaseRegOffset;
25427 let accessSize = WordAccess;
25428 let mayStore = 1;
25429 let BaseOpcode = "S2_storeri_rr";
25430 let CextOpcode = "S2_storeri";
25431 let InputType = "reg";
25432 let isNVStorable = 1;
25433 let isPredicable = 1;
25435 def S4_storeri_ur : HInst<
25436 (outs),
25437 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25438 "memw($Ru32<<#$Ii+#$II) = $Rt32",
25439 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25440 let Inst{7-7} = 0b1;
25441 let Inst{31-21} = 0b10101101100;
25442 let addrMode = BaseLongOffset;
25443 let accessSize = WordAccess;
25444 let isExtended = 1;
25445 let mayStore = 1;
25446 let BaseOpcode = "S2_storeri_ur";
25447 let CextOpcode = "S2_storeri";
25448 let InputType = "imm";
25449 let isNVStorable = 1;
25450 let DecoderNamespace = "MustExtend";
25451 let isExtendable = 1;
25452 let opExtendable = 2;
25453 let isExtentSigned = 0;
25454 let opExtentBits = 6;
25455 let opExtentAlign = 0;
25457 def S4_storerinew_ap : HInst<
25458 (outs IntRegs:$Re32),
25459 (ins u32_0Imm:$II, IntRegs:$Nt8),
25460 "memw($Re32=#$II) = $Nt8.new",
25461 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25462 let Inst{7-6} = 0b10;
25463 let Inst{13-11} = 0b010;
25464 let Inst{31-21} = 0b10101011101;
25465 let addrMode = AbsoluteSet;
25466 let accessSize = WordAccess;
25467 let isNVStore = 1;
25468 let isNewValue = 1;
25469 let isExtended = 1;
25470 let isRestrictNoSlot1Store = 1;
25471 let mayStore = 1;
25472 let BaseOpcode = "S2_storeri_ap";
25473 let DecoderNamespace = "MustExtend";
25474 let isExtendable = 1;
25475 let opExtendable = 1;
25476 let isExtentSigned = 0;
25477 let opExtentBits = 6;
25478 let opExtentAlign = 0;
25479 let opNewValue = 2;
25481 def S4_storerinew_rr : HInst<
25482 (outs),
25483 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25484 "memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25485 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25486 let Inst{6-3} = 0b0010;
25487 let Inst{31-21} = 0b00111011101;
25488 let addrMode = BaseRegOffset;
25489 let accessSize = WordAccess;
25490 let isNVStore = 1;
25491 let isNewValue = 1;
25492 let isRestrictNoSlot1Store = 1;
25493 let mayStore = 1;
25494 let BaseOpcode = "S2_storeri_rr";
25495 let CextOpcode = "S2_storeri";
25496 let InputType = "reg";
25497 let isPredicable = 1;
25498 let opNewValue = 3;
25500 def S4_storerinew_ur : HInst<
25501 (outs),
25502 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25503 "memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25504 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25505 let Inst{7-7} = 0b1;
25506 let Inst{12-11} = 0b10;
25507 let Inst{31-21} = 0b10101101101;
25508 let addrMode = BaseLongOffset;
25509 let accessSize = WordAccess;
25510 let isNVStore = 1;
25511 let isNewValue = 1;
25512 let isExtended = 1;
25513 let isRestrictNoSlot1Store = 1;
25514 let mayStore = 1;
25515 let BaseOpcode = "S2_storeri_ur";
25516 let CextOpcode = "S2_storeri";
25517 let DecoderNamespace = "MustExtend";
25518 let isExtendable = 1;
25519 let opExtendable = 2;
25520 let isExtentSigned = 0;
25521 let opExtentBits = 6;
25522 let opExtentAlign = 0;
25523 let opNewValue = 3;
25525 def S4_subaddi : HInst<
25526 (outs IntRegs:$Rd32),
25527 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25528 "$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25529 tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
25530 let Inst{31-23} = 0b110110111;
25531 let hasNewValue = 1;
25532 let opNewValue = 0;
25533 let prefersSlot3 = 1;
25534 let isExtendable = 1;
25535 let opExtendable = 2;
25536 let isExtentSigned = 1;
25537 let opExtentBits = 6;
25538 let opExtentAlign = 0;
25540 def S4_subi_asl_ri : HInst<
25541 (outs IntRegs:$Rx32),
25542 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25543 "$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25544 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25545 let Inst{2-0} = 0b110;
25546 let Inst{4-4} = 0b0;
25547 let Inst{31-24} = 0b11011110;
25548 let hasNewValue = 1;
25549 let opNewValue = 0;
25550 let prefersSlot3 = 1;
25551 let isExtendable = 1;
25552 let opExtendable = 1;
25553 let isExtentSigned = 0;
25554 let opExtentBits = 8;
25555 let opExtentAlign = 0;
25556 let Constraints = "$Rx32 = $Rx32in";
25558 def S4_subi_lsr_ri : HInst<
25559 (outs IntRegs:$Rx32),
25560 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25561 "$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25562 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25563 let Inst{2-0} = 0b110;
25564 let Inst{4-4} = 0b1;
25565 let Inst{31-24} = 0b11011110;
25566 let hasNewValue = 1;
25567 let opNewValue = 0;
25568 let prefersSlot3 = 1;
25569 let isExtendable = 1;
25570 let opExtendable = 1;
25571 let isExtentSigned = 0;
25572 let opExtentBits = 8;
25573 let opExtentAlign = 0;
25574 let Constraints = "$Rx32 = $Rx32in";
25576 def S4_vrcrotate : HInst<
25577 (outs DoubleRegs:$Rdd32),
25578 (ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25579 "$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25580 tc_f0cdeccf, TypeS_3op>, Enc_645d54 {
25581 let Inst{7-6} = 0b11;
25582 let Inst{31-21} = 0b11000011110;
25583 let prefersSlot3 = 1;
25585 def S4_vrcrotate_acc : HInst<
25586 (outs DoubleRegs:$Rxx32),
25587 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25588 "$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25589 tc_a38c45dc, TypeS_3op>, Enc_b72622 {
25590 let Inst{7-6} = 0b00;
25591 let Inst{31-21} = 0b11001011101;
25592 let prefersSlot3 = 1;
25593 let Constraints = "$Rxx32 = $Rxx32in";
25595 def S4_vxaddsubh : HInst<
25596 (outs DoubleRegs:$Rdd32),
25597 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25598 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25599 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25600 let Inst{7-5} = 0b100;
25601 let Inst{13-13} = 0b0;
25602 let Inst{31-21} = 0b11000001010;
25603 let prefersSlot3 = 1;
25604 let Defs = [USR_OVF];
25606 def S4_vxaddsubhr : HInst<
25607 (outs DoubleRegs:$Rdd32),
25608 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25609 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25610 tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25611 let Inst{7-5} = 0b000;
25612 let Inst{13-13} = 0b0;
25613 let Inst{31-21} = 0b11000001110;
25614 let prefersSlot3 = 1;
25615 let Defs = [USR_OVF];
25617 def S4_vxaddsubw : HInst<
25618 (outs DoubleRegs:$Rdd32),
25619 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25620 "$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25621 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25622 let Inst{7-5} = 0b000;
25623 let Inst{13-13} = 0b0;
25624 let Inst{31-21} = 0b11000001010;
25625 let prefersSlot3 = 1;
25626 let Defs = [USR_OVF];
25628 def S4_vxsubaddh : HInst<
25629 (outs DoubleRegs:$Rdd32),
25630 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25631 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25632 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25633 let Inst{7-5} = 0b110;
25634 let Inst{13-13} = 0b0;
25635 let Inst{31-21} = 0b11000001010;
25636 let prefersSlot3 = 1;
25637 let Defs = [USR_OVF];
25639 def S4_vxsubaddhr : HInst<
25640 (outs DoubleRegs:$Rdd32),
25641 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25642 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25643 tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25644 let Inst{7-5} = 0b010;
25645 let Inst{13-13} = 0b0;
25646 let Inst{31-21} = 0b11000001110;
25647 let prefersSlot3 = 1;
25648 let Defs = [USR_OVF];
25650 def S4_vxsubaddw : HInst<
25651 (outs DoubleRegs:$Rdd32),
25652 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25653 "$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25654 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25655 let Inst{7-5} = 0b010;
25656 let Inst{13-13} = 0b0;
25657 let Inst{31-21} = 0b11000001010;
25658 let prefersSlot3 = 1;
25659 let Defs = [USR_OVF];
25661 def S5_asrhub_rnd_sat : HInst<
25662 (outs IntRegs:$Rd32),
25663 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25664 "$Rd32 = vasrhub($Rss32,#$Ii):raw",
25665 tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25666 let Inst{7-5} = 0b100;
25667 let Inst{13-12} = 0b00;
25668 let Inst{31-21} = 0b10001000011;
25669 let hasNewValue = 1;
25670 let opNewValue = 0;
25671 let prefersSlot3 = 1;
25672 let Defs = [USR_OVF];
25674 def S5_asrhub_rnd_sat_goodsyntax : HInst<
25675 (outs IntRegs:$Rd32),
25676 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25677 "$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25678 tc_0dfac0a7, TypeS_2op> {
25679 let hasNewValue = 1;
25680 let opNewValue = 0;
25681 let isPseudo = 1;
25683 def S5_asrhub_sat : HInst<
25684 (outs IntRegs:$Rd32),
25685 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25686 "$Rd32 = vasrhub($Rss32,#$Ii):sat",
25687 tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25688 let Inst{7-5} = 0b101;
25689 let Inst{13-12} = 0b00;
25690 let Inst{31-21} = 0b10001000011;
25691 let hasNewValue = 1;
25692 let opNewValue = 0;
25693 let prefersSlot3 = 1;
25694 let Defs = [USR_OVF];
25696 def S5_popcountp : HInst<
25697 (outs IntRegs:$Rd32),
25698 (ins DoubleRegs:$Rss32),
25699 "$Rd32 = popcount($Rss32)",
25700 tc_d3632d88, TypeS_2op>, Enc_90cd8b {
25701 let Inst{13-5} = 0b000000011;
25702 let Inst{31-21} = 0b10001000011;
25703 let hasNewValue = 1;
25704 let opNewValue = 0;
25705 let prefersSlot3 = 1;
25707 def S5_vasrhrnd : HInst<
25708 (outs DoubleRegs:$Rdd32),
25709 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25710 "$Rdd32 = vasrh($Rss32,#$Ii):raw",
25711 tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 {
25712 let Inst{7-5} = 0b000;
25713 let Inst{13-12} = 0b00;
25714 let Inst{31-21} = 0b10000000001;
25715 let prefersSlot3 = 1;
25717 def S5_vasrhrnd_goodsyntax : HInst<
25718 (outs DoubleRegs:$Rdd32),
25719 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25720 "$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25721 tc_0dfac0a7, TypeS_2op> {
25722 let isPseudo = 1;
25724 def S6_allocframe_to_raw : HInst<
25725 (outs),
25726 (ins u11_3Imm:$Ii),
25727 "allocframe(#$Ii)",
25728 tc_934753bb, TypeMAPPING>, Requires<[HasV65]> {
25729 let isPseudo = 1;
25730 let isCodeGenOnly = 1;
25732 def S6_rol_i_p : HInst<
25733 (outs DoubleRegs:$Rdd32),
25734 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25735 "$Rdd32 = rol($Rss32,#$Ii)",
25736 tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25737 let Inst{7-5} = 0b011;
25738 let Inst{31-21} = 0b10000000000;
25740 def S6_rol_i_p_acc : HInst<
25741 (outs DoubleRegs:$Rxx32),
25742 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25743 "$Rxx32 += rol($Rss32,#$Ii)",
25744 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25745 let Inst{7-5} = 0b111;
25746 let Inst{31-21} = 0b10000010000;
25747 let prefersSlot3 = 1;
25748 let Constraints = "$Rxx32 = $Rxx32in";
25750 def S6_rol_i_p_and : HInst<
25751 (outs DoubleRegs:$Rxx32),
25752 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25753 "$Rxx32 &= rol($Rss32,#$Ii)",
25754 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25755 let Inst{7-5} = 0b011;
25756 let Inst{31-21} = 0b10000010010;
25757 let prefersSlot3 = 1;
25758 let Constraints = "$Rxx32 = $Rxx32in";
25760 def S6_rol_i_p_nac : HInst<
25761 (outs DoubleRegs:$Rxx32),
25762 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25763 "$Rxx32 -= rol($Rss32,#$Ii)",
25764 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25765 let Inst{7-5} = 0b011;
25766 let Inst{31-21} = 0b10000010000;
25767 let prefersSlot3 = 1;
25768 let Constraints = "$Rxx32 = $Rxx32in";
25770 def S6_rol_i_p_or : HInst<
25771 (outs DoubleRegs:$Rxx32),
25772 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25773 "$Rxx32 |= rol($Rss32,#$Ii)",
25774 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25775 let Inst{7-5} = 0b111;
25776 let Inst{31-21} = 0b10000010010;
25777 let prefersSlot3 = 1;
25778 let Constraints = "$Rxx32 = $Rxx32in";
25780 def S6_rol_i_p_xacc : HInst<
25781 (outs DoubleRegs:$Rxx32),
25782 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25783 "$Rxx32 ^= rol($Rss32,#$Ii)",
25784 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25785 let Inst{7-5} = 0b011;
25786 let Inst{31-21} = 0b10000010100;
25787 let prefersSlot3 = 1;
25788 let Constraints = "$Rxx32 = $Rxx32in";
25790 def S6_rol_i_r : HInst<
25791 (outs IntRegs:$Rd32),
25792 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
25793 "$Rd32 = rol($Rs32,#$Ii)",
25794 tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25795 let Inst{7-5} = 0b011;
25796 let Inst{13-13} = 0b0;
25797 let Inst{31-21} = 0b10001100000;
25798 let hasNewValue = 1;
25799 let opNewValue = 0;
25801 def S6_rol_i_r_acc : HInst<
25802 (outs IntRegs:$Rx32),
25803 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25804 "$Rx32 += rol($Rs32,#$Ii)",
25805 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25806 let Inst{7-5} = 0b111;
25807 let Inst{13-13} = 0b0;
25808 let Inst{31-21} = 0b10001110000;
25809 let hasNewValue = 1;
25810 let opNewValue = 0;
25811 let prefersSlot3 = 1;
25812 let Constraints = "$Rx32 = $Rx32in";
25814 def S6_rol_i_r_and : HInst<
25815 (outs IntRegs:$Rx32),
25816 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25817 "$Rx32 &= rol($Rs32,#$Ii)",
25818 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25819 let Inst{7-5} = 0b011;
25820 let Inst{13-13} = 0b0;
25821 let Inst{31-21} = 0b10001110010;
25822 let hasNewValue = 1;
25823 let opNewValue = 0;
25824 let prefersSlot3 = 1;
25825 let Constraints = "$Rx32 = $Rx32in";
25827 def S6_rol_i_r_nac : HInst<
25828 (outs IntRegs:$Rx32),
25829 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25830 "$Rx32 -= rol($Rs32,#$Ii)",
25831 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25832 let Inst{7-5} = 0b011;
25833 let Inst{13-13} = 0b0;
25834 let Inst{31-21} = 0b10001110000;
25835 let hasNewValue = 1;
25836 let opNewValue = 0;
25837 let prefersSlot3 = 1;
25838 let Constraints = "$Rx32 = $Rx32in";
25840 def S6_rol_i_r_or : HInst<
25841 (outs IntRegs:$Rx32),
25842 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25843 "$Rx32 |= rol($Rs32,#$Ii)",
25844 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25845 let Inst{7-5} = 0b111;
25846 let Inst{13-13} = 0b0;
25847 let Inst{31-21} = 0b10001110010;
25848 let hasNewValue = 1;
25849 let opNewValue = 0;
25850 let prefersSlot3 = 1;
25851 let Constraints = "$Rx32 = $Rx32in";
25853 def S6_rol_i_r_xacc : HInst<
25854 (outs IntRegs:$Rx32),
25855 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25856 "$Rx32 ^= rol($Rs32,#$Ii)",
25857 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25858 let Inst{7-5} = 0b011;
25859 let Inst{13-13} = 0b0;
25860 let Inst{31-21} = 0b10001110100;
25861 let hasNewValue = 1;
25862 let opNewValue = 0;
25863 let prefersSlot3 = 1;
25864 let Constraints = "$Rx32 = $Rx32in";
25866 def S6_vsplatrbp : HInst<
25867 (outs DoubleRegs:$Rdd32),
25868 (ins IntRegs:$Rs32),
25869 "$Rdd32 = vsplatb($Rs32)",
25870 tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25871 let Inst{13-5} = 0b000000100;
25872 let Inst{31-21} = 0b10000100010;
25874 def S6_vtrunehb_ppp : HInst<
25875 (outs DoubleRegs:$Rdd32),
25876 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25877 "$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25878 tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25879 let Inst{7-5} = 0b011;
25880 let Inst{13-13} = 0b0;
25881 let Inst{31-21} = 0b11000001100;
25883 def S6_vtrunohb_ppp : HInst<
25884 (outs DoubleRegs:$Rdd32),
25885 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25886 "$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25887 tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25888 let Inst{7-5} = 0b101;
25889 let Inst{13-13} = 0b0;
25890 let Inst{31-21} = 0b11000001100;
25892 def SA1_addi : HInst<
25893 (outs GeneralSubRegs:$Rx16),
25894 (ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii),
25895 "$Rx16 = add($Rx16in,#$Ii)",
25896 tc_5b347363, TypeSUBINSN>, Enc_93af4c {
25897 let Inst{12-11} = 0b00;
25898 let hasNewValue = 1;
25899 let opNewValue = 0;
25900 let AsmVariantName = "NonParsable";
25901 let DecoderNamespace = "SUBINSN_A";
25902 let isExtendable = 1;
25903 let opExtendable = 2;
25904 let isExtentSigned = 1;
25905 let opExtentBits = 7;
25906 let opExtentAlign = 0;
25907 let Constraints = "$Rx16 = $Rx16in";
25909 def SA1_addrx : HInst<
25910 (outs GeneralSubRegs:$Rx16),
25911 (ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16),
25912 "$Rx16 = add($Rx16in,$Rs16)",
25913 tc_5b347363, TypeSUBINSN>, Enc_0527db {
25914 let Inst{12-8} = 0b11000;
25915 let hasNewValue = 1;
25916 let opNewValue = 0;
25917 let AsmVariantName = "NonParsable";
25918 let DecoderNamespace = "SUBINSN_A";
25919 let Constraints = "$Rx16 = $Rx16in";
25921 def SA1_addsp : HInst<
25922 (outs GeneralSubRegs:$Rd16),
25923 (ins u6_2Imm:$Ii),
25924 "$Rd16 = add(r29,#$Ii)",
25925 tc_3d14a17b, TypeSUBINSN>, Enc_2df31d {
25926 let Inst{12-10} = 0b011;
25927 let hasNewValue = 1;
25928 let opNewValue = 0;
25929 let AsmVariantName = "NonParsable";
25930 let Uses = [R29];
25931 let DecoderNamespace = "SUBINSN_A";
25933 def SA1_and1 : HInst<
25934 (outs GeneralSubRegs:$Rd16),
25935 (ins GeneralSubRegs:$Rs16),
25936 "$Rd16 = and($Rs16,#1)",
25937 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
25938 let Inst{12-8} = 0b10010;
25939 let hasNewValue = 1;
25940 let opNewValue = 0;
25941 let AsmVariantName = "NonParsable";
25942 let DecoderNamespace = "SUBINSN_A";
25944 def SA1_clrf : HInst<
25945 (outs GeneralSubRegs:$Rd16),
25946 (ins),
25947 "if (!p0) $Rd16 = #0",
25948 tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25949 let Inst{12-4} = 0b110100111;
25950 let isPredicated = 1;
25951 let isPredicatedFalse = 1;
25952 let hasNewValue = 1;
25953 let opNewValue = 0;
25954 let AsmVariantName = "NonParsable";
25955 let Uses = [P0];
25956 let DecoderNamespace = "SUBINSN_A";
25958 def SA1_clrfnew : HInst<
25959 (outs GeneralSubRegs:$Rd16),
25960 (ins),
25961 "if (!p0.new) $Rd16 = #0",
25962 tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
25963 let Inst{12-4} = 0b110100101;
25964 let isPredicated = 1;
25965 let isPredicatedFalse = 1;
25966 let hasNewValue = 1;
25967 let opNewValue = 0;
25968 let AsmVariantName = "NonParsable";
25969 let isPredicatedNew = 1;
25970 let Uses = [P0];
25971 let DecoderNamespace = "SUBINSN_A";
25973 def SA1_clrt : HInst<
25974 (outs GeneralSubRegs:$Rd16),
25975 (ins),
25976 "if (p0) $Rd16 = #0",
25977 tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25978 let Inst{12-4} = 0b110100110;
25979 let isPredicated = 1;
25980 let hasNewValue = 1;
25981 let opNewValue = 0;
25982 let AsmVariantName = "NonParsable";
25983 let Uses = [P0];
25984 let DecoderNamespace = "SUBINSN_A";
25986 def SA1_clrtnew : HInst<
25987 (outs GeneralSubRegs:$Rd16),
25988 (ins),
25989 "if (p0.new) $Rd16 = #0",
25990 tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
25991 let Inst{12-4} = 0b110100100;
25992 let isPredicated = 1;
25993 let hasNewValue = 1;
25994 let opNewValue = 0;
25995 let AsmVariantName = "NonParsable";
25996 let isPredicatedNew = 1;
25997 let Uses = [P0];
25998 let DecoderNamespace = "SUBINSN_A";
26000 def SA1_cmpeqi : HInst<
26001 (outs),
26002 (ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
26003 "p0 = cmp.eq($Rs16,#$Ii)",
26004 tc_59a7822c, TypeSUBINSN>, Enc_63eaeb {
26005 let Inst{3-2} = 0b00;
26006 let Inst{12-8} = 0b11001;
26007 let AsmVariantName = "NonParsable";
26008 let Defs = [P0];
26009 let DecoderNamespace = "SUBINSN_A";
26011 def SA1_combine0i : HInst<
26012 (outs GeneralDoubleLow8Regs:$Rdd8),
26013 (ins u2_0Imm:$Ii),
26014 "$Rdd8 = combine(#0,#$Ii)",
26015 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26016 let Inst{4-3} = 0b00;
26017 let Inst{12-7} = 0b111000;
26018 let hasNewValue = 1;
26019 let opNewValue = 0;
26020 let AsmVariantName = "NonParsable";
26021 let DecoderNamespace = "SUBINSN_A";
26023 def SA1_combine1i : HInst<
26024 (outs GeneralDoubleLow8Regs:$Rdd8),
26025 (ins u2_0Imm:$Ii),
26026 "$Rdd8 = combine(#1,#$Ii)",
26027 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26028 let Inst{4-3} = 0b01;
26029 let Inst{12-7} = 0b111000;
26030 let hasNewValue = 1;
26031 let opNewValue = 0;
26032 let AsmVariantName = "NonParsable";
26033 let DecoderNamespace = "SUBINSN_A";
26035 def SA1_combine2i : HInst<
26036 (outs GeneralDoubleLow8Regs:$Rdd8),
26037 (ins u2_0Imm:$Ii),
26038 "$Rdd8 = combine(#2,#$Ii)",
26039 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26040 let Inst{4-3} = 0b10;
26041 let Inst{12-7} = 0b111000;
26042 let hasNewValue = 1;
26043 let opNewValue = 0;
26044 let AsmVariantName = "NonParsable";
26045 let DecoderNamespace = "SUBINSN_A";
26047 def SA1_combine3i : HInst<
26048 (outs GeneralDoubleLow8Regs:$Rdd8),
26049 (ins u2_0Imm:$Ii),
26050 "$Rdd8 = combine(#3,#$Ii)",
26051 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26052 let Inst{4-3} = 0b11;
26053 let Inst{12-7} = 0b111000;
26054 let hasNewValue = 1;
26055 let opNewValue = 0;
26056 let AsmVariantName = "NonParsable";
26057 let DecoderNamespace = "SUBINSN_A";
26059 def SA1_combinerz : HInst<
26060 (outs GeneralDoubleLow8Regs:$Rdd8),
26061 (ins GeneralSubRegs:$Rs16),
26062 "$Rdd8 = combine($Rs16,#0)",
26063 tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26064 let Inst{3-3} = 0b1;
26065 let Inst{12-8} = 0b11101;
26066 let hasNewValue = 1;
26067 let opNewValue = 0;
26068 let AsmVariantName = "NonParsable";
26069 let DecoderNamespace = "SUBINSN_A";
26071 def SA1_combinezr : HInst<
26072 (outs GeneralDoubleLow8Regs:$Rdd8),
26073 (ins GeneralSubRegs:$Rs16),
26074 "$Rdd8 = combine(#0,$Rs16)",
26075 tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26076 let Inst{3-3} = 0b0;
26077 let Inst{12-8} = 0b11101;
26078 let hasNewValue = 1;
26079 let opNewValue = 0;
26080 let AsmVariantName = "NonParsable";
26081 let DecoderNamespace = "SUBINSN_A";
26083 def SA1_dec : HInst<
26084 (outs GeneralSubRegs:$Rd16),
26085 (ins GeneralSubRegs:$Rs16, n1Const:$n1),
26086 "$Rd16 = add($Rs16,#$n1)",
26087 tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 {
26088 let Inst{12-8} = 0b10011;
26089 let hasNewValue = 1;
26090 let opNewValue = 0;
26091 let AsmVariantName = "NonParsable";
26092 let DecoderNamespace = "SUBINSN_A";
26094 def SA1_inc : HInst<
26095 (outs GeneralSubRegs:$Rd16),
26096 (ins GeneralSubRegs:$Rs16),
26097 "$Rd16 = add($Rs16,#1)",
26098 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26099 let Inst{12-8} = 0b10001;
26100 let hasNewValue = 1;
26101 let opNewValue = 0;
26102 let AsmVariantName = "NonParsable";
26103 let DecoderNamespace = "SUBINSN_A";
26105 def SA1_seti : HInst<
26106 (outs GeneralSubRegs:$Rd16),
26107 (ins u32_0Imm:$Ii),
26108 "$Rd16 = #$Ii",
26109 tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 {
26110 let Inst{12-10} = 0b010;
26111 let hasNewValue = 1;
26112 let opNewValue = 0;
26113 let AsmVariantName = "NonParsable";
26114 let DecoderNamespace = "SUBINSN_A";
26115 let isExtendable = 1;
26116 let opExtendable = 1;
26117 let isExtentSigned = 0;
26118 let opExtentBits = 6;
26119 let opExtentAlign = 0;
26121 def SA1_setin1 : HInst<
26122 (outs GeneralSubRegs:$Rd16),
26123 (ins n1Const:$n1),
26124 "$Rd16 = #$n1",
26125 tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 {
26126 let Inst{12-4} = 0b110100000;
26127 let hasNewValue = 1;
26128 let opNewValue = 0;
26129 let AsmVariantName = "NonParsable";
26130 let DecoderNamespace = "SUBINSN_A";
26132 def SA1_sxtb : HInst<
26133 (outs GeneralSubRegs:$Rd16),
26134 (ins GeneralSubRegs:$Rs16),
26135 "$Rd16 = sxtb($Rs16)",
26136 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26137 let Inst{12-8} = 0b10101;
26138 let hasNewValue = 1;
26139 let opNewValue = 0;
26140 let AsmVariantName = "NonParsable";
26141 let DecoderNamespace = "SUBINSN_A";
26143 def SA1_sxth : HInst<
26144 (outs GeneralSubRegs:$Rd16),
26145 (ins GeneralSubRegs:$Rs16),
26146 "$Rd16 = sxth($Rs16)",
26147 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26148 let Inst{12-8} = 0b10100;
26149 let hasNewValue = 1;
26150 let opNewValue = 0;
26151 let AsmVariantName = "NonParsable";
26152 let DecoderNamespace = "SUBINSN_A";
26154 def SA1_tfr : HInst<
26155 (outs GeneralSubRegs:$Rd16),
26156 (ins GeneralSubRegs:$Rs16),
26157 "$Rd16 = $Rs16",
26158 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26159 let Inst{12-8} = 0b10000;
26160 let hasNewValue = 1;
26161 let opNewValue = 0;
26162 let AsmVariantName = "NonParsable";
26163 let DecoderNamespace = "SUBINSN_A";
26165 def SA1_zxtb : HInst<
26166 (outs GeneralSubRegs:$Rd16),
26167 (ins GeneralSubRegs:$Rs16),
26168 "$Rd16 = and($Rs16,#255)",
26169 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26170 let Inst{12-8} = 0b10111;
26171 let hasNewValue = 1;
26172 let opNewValue = 0;
26173 let AsmVariantName = "NonParsable";
26174 let DecoderNamespace = "SUBINSN_A";
26176 def SA1_zxth : HInst<
26177 (outs GeneralSubRegs:$Rd16),
26178 (ins GeneralSubRegs:$Rs16),
26179 "$Rd16 = zxth($Rs16)",
26180 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26181 let Inst{12-8} = 0b10110;
26182 let hasNewValue = 1;
26183 let opNewValue = 0;
26184 let AsmVariantName = "NonParsable";
26185 let DecoderNamespace = "SUBINSN_A";
26187 def SL1_loadri_io : HInst<
26188 (outs GeneralSubRegs:$Rd16),
26189 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26190 "$Rd16 = memw($Rs16+#$Ii)",
26191 tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 {
26192 let Inst{12-12} = 0b0;
26193 let hasNewValue = 1;
26194 let opNewValue = 0;
26195 let addrMode = BaseImmOffset;
26196 let accessSize = WordAccess;
26197 let AsmVariantName = "NonParsable";
26198 let mayLoad = 1;
26199 let DecoderNamespace = "SUBINSN_L1";
26201 def SL1_loadrub_io : HInst<
26202 (outs GeneralSubRegs:$Rd16),
26203 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26204 "$Rd16 = memub($Rs16+#$Ii)",
26205 tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 {
26206 let Inst{12-12} = 0b1;
26207 let hasNewValue = 1;
26208 let opNewValue = 0;
26209 let addrMode = BaseImmOffset;
26210 let accessSize = ByteAccess;
26211 let AsmVariantName = "NonParsable";
26212 let mayLoad = 1;
26213 let DecoderNamespace = "SUBINSN_L1";
26215 def SL2_deallocframe : HInst<
26216 (outs),
26217 (ins),
26218 "deallocframe",
26219 tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 {
26220 let Inst{12-0} = 0b1111100000000;
26221 let accessSize = DoubleWordAccess;
26222 let AsmVariantName = "NonParsable";
26223 let mayLoad = 1;
26224 let Uses = [FRAMEKEY, R30];
26225 let Defs = [R29, R30, R31];
26226 let DecoderNamespace = "SUBINSN_L2";
26228 def SL2_jumpr31 : HInst<
26229 (outs),
26230 (ins),
26231 "jumpr r31",
26232 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26233 let Inst{12-0} = 0b1111111000000;
26234 let isTerminator = 1;
26235 let isIndirectBranch = 1;
26236 let AsmVariantName = "NonParsable";
26237 let cofMax1 = 1;
26238 let isReturn = 1;
26239 let Uses = [R31];
26240 let Defs = [PC];
26241 let DecoderNamespace = "SUBINSN_L2";
26243 def SL2_jumpr31_f : HInst<
26244 (outs),
26245 (ins),
26246 "if (!p0) jumpr r31",
26247 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26248 let Inst{12-0} = 0b1111111000101;
26249 let isPredicated = 1;
26250 let isPredicatedFalse = 1;
26251 let isTerminator = 1;
26252 let isIndirectBranch = 1;
26253 let AsmVariantName = "NonParsable";
26254 let cofMax1 = 1;
26255 let isReturn = 1;
26256 let Uses = [P0, R31];
26257 let Defs = [PC];
26258 let isTaken = Inst{4};
26259 let DecoderNamespace = "SUBINSN_L2";
26261 def SL2_jumpr31_fnew : HInst<
26262 (outs),
26263 (ins),
26264 "if (!p0.new) jumpr:nt r31",
26265 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26266 let Inst{12-0} = 0b1111111000111;
26267 let isPredicated = 1;
26268 let isPredicatedFalse = 1;
26269 let isTerminator = 1;
26270 let isIndirectBranch = 1;
26271 let AsmVariantName = "NonParsable";
26272 let isPredicatedNew = 1;
26273 let cofMax1 = 1;
26274 let isReturn = 1;
26275 let Uses = [P0, R31];
26276 let Defs = [PC];
26277 let isTaken = Inst{4};
26278 let DecoderNamespace = "SUBINSN_L2";
26280 def SL2_jumpr31_t : HInst<
26281 (outs),
26282 (ins),
26283 "if (p0) jumpr r31",
26284 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26285 let Inst{12-0} = 0b1111111000100;
26286 let isPredicated = 1;
26287 let isTerminator = 1;
26288 let isIndirectBranch = 1;
26289 let AsmVariantName = "NonParsable";
26290 let cofMax1 = 1;
26291 let isReturn = 1;
26292 let Uses = [P0, R31];
26293 let Defs = [PC];
26294 let isTaken = Inst{4};
26295 let DecoderNamespace = "SUBINSN_L2";
26297 def SL2_jumpr31_tnew : HInst<
26298 (outs),
26299 (ins),
26300 "if (p0.new) jumpr:nt r31",
26301 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26302 let Inst{12-0} = 0b1111111000110;
26303 let isPredicated = 1;
26304 let isTerminator = 1;
26305 let isIndirectBranch = 1;
26306 let AsmVariantName = "NonParsable";
26307 let isPredicatedNew = 1;
26308 let cofMax1 = 1;
26309 let isReturn = 1;
26310 let Uses = [P0, R31];
26311 let Defs = [PC];
26312 let isTaken = Inst{4};
26313 let DecoderNamespace = "SUBINSN_L2";
26315 def SL2_loadrb_io : HInst<
26316 (outs GeneralSubRegs:$Rd16),
26317 (ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
26318 "$Rd16 = memb($Rs16+#$Ii)",
26319 tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c {
26320 let Inst{12-11} = 0b10;
26321 let hasNewValue = 1;
26322 let opNewValue = 0;
26323 let addrMode = BaseImmOffset;
26324 let accessSize = ByteAccess;
26325 let AsmVariantName = "NonParsable";
26326 let mayLoad = 1;
26327 let DecoderNamespace = "SUBINSN_L2";
26329 def SL2_loadrd_sp : HInst<
26330 (outs GeneralDoubleLow8Regs:$Rdd8),
26331 (ins u5_3Imm:$Ii),
26332 "$Rdd8 = memd(r29+#$Ii)",
26333 tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b {
26334 let Inst{12-8} = 0b11110;
26335 let hasNewValue = 1;
26336 let opNewValue = 0;
26337 let addrMode = BaseImmOffset;
26338 let accessSize = DoubleWordAccess;
26339 let AsmVariantName = "NonParsable";
26340 let mayLoad = 1;
26341 let Uses = [R29];
26342 let DecoderNamespace = "SUBINSN_L2";
26344 def SL2_loadrh_io : HInst<
26345 (outs GeneralSubRegs:$Rd16),
26346 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26347 "$Rd16 = memh($Rs16+#$Ii)",
26348 tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26349 let Inst{12-11} = 0b00;
26350 let hasNewValue = 1;
26351 let opNewValue = 0;
26352 let addrMode = BaseImmOffset;
26353 let accessSize = HalfWordAccess;
26354 let AsmVariantName = "NonParsable";
26355 let mayLoad = 1;
26356 let DecoderNamespace = "SUBINSN_L2";
26358 def SL2_loadri_sp : HInst<
26359 (outs GeneralSubRegs:$Rd16),
26360 (ins u5_2Imm:$Ii),
26361 "$Rd16 = memw(r29+#$Ii)",
26362 tc_8a6d0d94, TypeSUBINSN>, Enc_51635c {
26363 let Inst{12-9} = 0b1110;
26364 let hasNewValue = 1;
26365 let opNewValue = 0;
26366 let addrMode = BaseImmOffset;
26367 let accessSize = WordAccess;
26368 let AsmVariantName = "NonParsable";
26369 let mayLoad = 1;
26370 let Uses = [R29];
26371 let DecoderNamespace = "SUBINSN_L2";
26373 def SL2_loadruh_io : HInst<
26374 (outs GeneralSubRegs:$Rd16),
26375 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26376 "$Rd16 = memuh($Rs16+#$Ii)",
26377 tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26378 let Inst{12-11} = 0b01;
26379 let hasNewValue = 1;
26380 let opNewValue = 0;
26381 let addrMode = BaseImmOffset;
26382 let accessSize = HalfWordAccess;
26383 let AsmVariantName = "NonParsable";
26384 let mayLoad = 1;
26385 let DecoderNamespace = "SUBINSN_L2";
26387 def SL2_return : HInst<
26388 (outs),
26389 (ins),
26390 "dealloc_return",
26391 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26392 let Inst{12-0} = 0b1111101000000;
26393 let isTerminator = 1;
26394 let isIndirectBranch = 1;
26395 let accessSize = DoubleWordAccess;
26396 let AsmVariantName = "NonParsable";
26397 let mayLoad = 1;
26398 let cofMax1 = 1;
26399 let isRestrictNoSlot1Store = 1;
26400 let isReturn = 1;
26401 let Uses = [FRAMEKEY, R30];
26402 let Defs = [PC, R29, R30, R31];
26403 let DecoderNamespace = "SUBINSN_L2";
26405 def SL2_return_f : HInst<
26406 (outs),
26407 (ins),
26408 "if (!p0) dealloc_return",
26409 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26410 let Inst{12-0} = 0b1111101000101;
26411 let isPredicated = 1;
26412 let isPredicatedFalse = 1;
26413 let isTerminator = 1;
26414 let isIndirectBranch = 1;
26415 let accessSize = DoubleWordAccess;
26416 let AsmVariantName = "NonParsable";
26417 let mayLoad = 1;
26418 let cofMax1 = 1;
26419 let isRestrictNoSlot1Store = 1;
26420 let isReturn = 1;
26421 let Uses = [FRAMEKEY, P0, R30];
26422 let Defs = [PC, R29, R30, R31];
26423 let isTaken = Inst{4};
26424 let DecoderNamespace = "SUBINSN_L2";
26426 def SL2_return_fnew : HInst<
26427 (outs),
26428 (ins),
26429 "if (!p0.new) dealloc_return:nt",
26430 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26431 let Inst{12-0} = 0b1111101000111;
26432 let isPredicated = 1;
26433 let isPredicatedFalse = 1;
26434 let isTerminator = 1;
26435 let isIndirectBranch = 1;
26436 let accessSize = DoubleWordAccess;
26437 let AsmVariantName = "NonParsable";
26438 let isPredicatedNew = 1;
26439 let mayLoad = 1;
26440 let cofMax1 = 1;
26441 let isRestrictNoSlot1Store = 1;
26442 let isReturn = 1;
26443 let Uses = [FRAMEKEY, P0, R30];
26444 let Defs = [PC, R29, R30, R31];
26445 let isTaken = Inst{4};
26446 let DecoderNamespace = "SUBINSN_L2";
26448 def SL2_return_t : HInst<
26449 (outs),
26450 (ins),
26451 "if (p0) dealloc_return",
26452 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26453 let Inst{12-0} = 0b1111101000100;
26454 let isPredicated = 1;
26455 let isTerminator = 1;
26456 let isIndirectBranch = 1;
26457 let accessSize = DoubleWordAccess;
26458 let AsmVariantName = "NonParsable";
26459 let mayLoad = 1;
26460 let cofMax1 = 1;
26461 let isRestrictNoSlot1Store = 1;
26462 let isReturn = 1;
26463 let Uses = [FRAMEKEY, P0, R30];
26464 let Defs = [PC, R29, R30, R31];
26465 let isTaken = Inst{4};
26466 let DecoderNamespace = "SUBINSN_L2";
26468 def SL2_return_tnew : HInst<
26469 (outs),
26470 (ins),
26471 "if (p0.new) dealloc_return:nt",
26472 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26473 let Inst{12-0} = 0b1111101000110;
26474 let isPredicated = 1;
26475 let isTerminator = 1;
26476 let isIndirectBranch = 1;
26477 let accessSize = DoubleWordAccess;
26478 let AsmVariantName = "NonParsable";
26479 let isPredicatedNew = 1;
26480 let mayLoad = 1;
26481 let cofMax1 = 1;
26482 let isRestrictNoSlot1Store = 1;
26483 let isReturn = 1;
26484 let Uses = [FRAMEKEY, P0, R30];
26485 let Defs = [PC, R29, R30, R31];
26486 let isTaken = Inst{4};
26487 let DecoderNamespace = "SUBINSN_L2";
26489 def SS1_storeb_io : HInst<
26490 (outs),
26491 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26492 "memb($Rs16+#$Ii) = $Rt16",
26493 tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc {
26494 let Inst{12-12} = 0b1;
26495 let addrMode = BaseImmOffset;
26496 let accessSize = ByteAccess;
26497 let AsmVariantName = "NonParsable";
26498 let mayStore = 1;
26499 let DecoderNamespace = "SUBINSN_S1";
26501 def SS1_storew_io : HInst<
26502 (outs),
26503 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26504 "memw($Rs16+#$Ii) = $Rt16",
26505 tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c {
26506 let Inst{12-12} = 0b0;
26507 let addrMode = BaseImmOffset;
26508 let accessSize = WordAccess;
26509 let AsmVariantName = "NonParsable";
26510 let mayStore = 1;
26511 let DecoderNamespace = "SUBINSN_S1";
26513 def SS2_allocframe : HInst<
26514 (outs),
26515 (ins u5_3Imm:$Ii),
26516 "allocframe(#$Ii)",
26517 tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca {
26518 let Inst{3-0} = 0b0000;
26519 let Inst{12-9} = 0b1110;
26520 let addrMode = BaseImmOffset;
26521 let accessSize = DoubleWordAccess;
26522 let AsmVariantName = "NonParsable";
26523 let mayStore = 1;
26524 let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31];
26525 let Defs = [R29, R30];
26526 let DecoderNamespace = "SUBINSN_S2";
26528 def SS2_storebi0 : HInst<
26529 (outs),
26530 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26531 "memb($Rs16+#$Ii) = #0",
26532 tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26533 let Inst{12-8} = 0b10010;
26534 let addrMode = BaseImmOffset;
26535 let accessSize = ByteAccess;
26536 let AsmVariantName = "NonParsable";
26537 let mayStore = 1;
26538 let DecoderNamespace = "SUBINSN_S2";
26540 def SS2_storebi1 : HInst<
26541 (outs),
26542 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26543 "memb($Rs16+#$Ii) = #1",
26544 tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26545 let Inst{12-8} = 0b10011;
26546 let addrMode = BaseImmOffset;
26547 let accessSize = ByteAccess;
26548 let AsmVariantName = "NonParsable";
26549 let mayStore = 1;
26550 let DecoderNamespace = "SUBINSN_S2";
26552 def SS2_stored_sp : HInst<
26553 (outs),
26554 (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26555 "memd(r29+#$Ii) = $Rtt8",
26556 tc_0655b949, TypeSUBINSN>, Enc_b8309d {
26557 let Inst{12-9} = 0b0101;
26558 let addrMode = BaseImmOffset;
26559 let accessSize = DoubleWordAccess;
26560 let AsmVariantName = "NonParsable";
26561 let mayStore = 1;
26562 let Uses = [R29];
26563 let DecoderNamespace = "SUBINSN_S2";
26565 def SS2_storeh_io : HInst<
26566 (outs),
26567 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26568 "memh($Rs16+#$Ii) = $Rt16",
26569 tc_ae5babd7, TypeSUBINSN>, Enc_625deb {
26570 let Inst{12-11} = 0b00;
26571 let addrMode = BaseImmOffset;
26572 let accessSize = HalfWordAccess;
26573 let AsmVariantName = "NonParsable";
26574 let mayStore = 1;
26575 let DecoderNamespace = "SUBINSN_S2";
26577 def SS2_storew_sp : HInst<
26578 (outs),
26579 (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26580 "memw(r29+#$Ii) = $Rt16",
26581 tc_0655b949, TypeSUBINSN>, Enc_87c142 {
26582 let Inst{12-9} = 0b0100;
26583 let addrMode = BaseImmOffset;
26584 let accessSize = WordAccess;
26585 let AsmVariantName = "NonParsable";
26586 let mayStore = 1;
26587 let Uses = [R29];
26588 let DecoderNamespace = "SUBINSN_S2";
26590 def SS2_storewi0 : HInst<
26591 (outs),
26592 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26593 "memw($Rs16+#$Ii) = #0",
26594 tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26595 let Inst{12-8} = 0b10000;
26596 let addrMode = BaseImmOffset;
26597 let accessSize = WordAccess;
26598 let AsmVariantName = "NonParsable";
26599 let mayStore = 1;
26600 let DecoderNamespace = "SUBINSN_S2";
26602 def SS2_storewi1 : HInst<
26603 (outs),
26604 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26605 "memw($Rs16+#$Ii) = #1",
26606 tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26607 let Inst{12-8} = 0b10001;
26608 let addrMode = BaseImmOffset;
26609 let accessSize = WordAccess;
26610 let AsmVariantName = "NonParsable";
26611 let mayStore = 1;
26612 let DecoderNamespace = "SUBINSN_S2";
26614 def V6_MAP_equb : HInst<
26615 (outs HvxQR:$Qd4),
26616 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26617 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26618 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26619 let hasNewValue = 1;
26620 let opNewValue = 0;
26621 let isCVI = 1;
26622 let isPseudo = 1;
26623 let isCodeGenOnly = 1;
26624 let DecoderNamespace = "EXT_mmvec";
26626 def V6_MAP_equb_and : HInst<
26627 (outs HvxQR:$Qx4),
26628 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26629 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26630 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26631 let isCVI = 1;
26632 let isPseudo = 1;
26633 let isCodeGenOnly = 1;
26634 let DecoderNamespace = "EXT_mmvec";
26635 let Constraints = "$Qx4 = $Qx4in";
26637 def V6_MAP_equb_ior : HInst<
26638 (outs HvxQR:$Qx4),
26639 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26640 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26641 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26642 let isAccumulator = 1;
26643 let isCVI = 1;
26644 let isPseudo = 1;
26645 let isCodeGenOnly = 1;
26646 let DecoderNamespace = "EXT_mmvec";
26647 let Constraints = "$Qx4 = $Qx4in";
26649 def V6_MAP_equb_xor : HInst<
26650 (outs HvxQR:$Qx4),
26651 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26652 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26653 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26654 let isCVI = 1;
26655 let isPseudo = 1;
26656 let isCodeGenOnly = 1;
26657 let DecoderNamespace = "EXT_mmvec";
26658 let Constraints = "$Qx4 = $Qx4in";
26660 def V6_MAP_equh : HInst<
26661 (outs HvxQR:$Qd4),
26662 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26663 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26664 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26665 let hasNewValue = 1;
26666 let opNewValue = 0;
26667 let isCVI = 1;
26668 let isPseudo = 1;
26669 let isCodeGenOnly = 1;
26670 let DecoderNamespace = "EXT_mmvec";
26672 def V6_MAP_equh_and : HInst<
26673 (outs HvxQR:$Qx4),
26674 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26675 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26676 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26677 let isCVI = 1;
26678 let isPseudo = 1;
26679 let isCodeGenOnly = 1;
26680 let DecoderNamespace = "EXT_mmvec";
26681 let Constraints = "$Qx4 = $Qx4in";
26683 def V6_MAP_equh_ior : HInst<
26684 (outs HvxQR:$Qx4),
26685 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26686 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26687 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26688 let isAccumulator = 1;
26689 let isCVI = 1;
26690 let isPseudo = 1;
26691 let isCodeGenOnly = 1;
26692 let DecoderNamespace = "EXT_mmvec";
26693 let Constraints = "$Qx4 = $Qx4in";
26695 def V6_MAP_equh_xor : HInst<
26696 (outs HvxQR:$Qx4),
26697 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26698 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26699 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26700 let isCVI = 1;
26701 let isPseudo = 1;
26702 let isCodeGenOnly = 1;
26703 let DecoderNamespace = "EXT_mmvec";
26704 let Constraints = "$Qx4 = $Qx4in";
26706 def V6_MAP_equw : HInst<
26707 (outs HvxQR:$Qd4),
26708 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26709 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26710 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26711 let hasNewValue = 1;
26712 let opNewValue = 0;
26713 let isCVI = 1;
26714 let isPseudo = 1;
26715 let isCodeGenOnly = 1;
26716 let DecoderNamespace = "EXT_mmvec";
26718 def V6_MAP_equw_and : HInst<
26719 (outs HvxQR:$Qx4),
26720 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26721 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26722 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26723 let isCVI = 1;
26724 let isPseudo = 1;
26725 let isCodeGenOnly = 1;
26726 let DecoderNamespace = "EXT_mmvec";
26727 let Constraints = "$Qx4 = $Qx4in";
26729 def V6_MAP_equw_ior : HInst<
26730 (outs HvxQR:$Qx4),
26731 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26732 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26733 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26734 let isAccumulator = 1;
26735 let isCVI = 1;
26736 let isPseudo = 1;
26737 let isCodeGenOnly = 1;
26738 let DecoderNamespace = "EXT_mmvec";
26739 let Constraints = "$Qx4 = $Qx4in";
26741 def V6_MAP_equw_xor : HInst<
26742 (outs HvxQR:$Qx4),
26743 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26744 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26745 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26746 let isCVI = 1;
26747 let isPseudo = 1;
26748 let isCodeGenOnly = 1;
26749 let DecoderNamespace = "EXT_mmvec";
26750 let Constraints = "$Qx4 = $Qx4in";
26752 def V6_extractw : HInst<
26753 (outs IntRegs:$Rd32),
26754 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26755 "$Rd32 = vextract($Vu32,$Rs32)",
26756 tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26757 let Inst{7-5} = 0b001;
26758 let Inst{13-13} = 0b0;
26759 let Inst{31-21} = 0b10010010000;
26760 let hasNewValue = 1;
26761 let opNewValue = 0;
26762 let isCVI = 1;
26763 let isSolo = 1;
26764 let mayLoad = 1;
26765 let DecoderNamespace = "EXT_mmvec";
26767 def V6_extractw_alt : HInst<
26768 (outs IntRegs:$Rd32),
26769 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26770 "$Rd32.w = vextract($Vu32,$Rs32)",
26771 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26772 let hasNewValue = 1;
26773 let opNewValue = 0;
26774 let isCVI = 1;
26775 let isPseudo = 1;
26776 let isCodeGenOnly = 1;
26777 let DecoderNamespace = "EXT_mmvec";
26779 def V6_hi : HInst<
26780 (outs HvxVR:$Vd32),
26781 (ins HvxWR:$Vss32),
26782 "$Vd32 = hi($Vss32)",
26783 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26784 let hasNewValue = 1;
26785 let opNewValue = 0;
26786 let isCVI = 1;
26787 let isPseudo = 1;
26788 let DecoderNamespace = "EXT_mmvec";
26790 def V6_ld0 : HInst<
26791 (outs HvxVR:$Vd32),
26792 (ins IntRegs:$Rt32),
26793 "$Vd32 = vmem($Rt32)",
26794 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26795 let hasNewValue = 1;
26796 let opNewValue = 0;
26797 let isCVI = 1;
26798 let isPseudo = 1;
26799 let isCodeGenOnly = 1;
26800 let DecoderNamespace = "EXT_mmvec";
26802 def V6_ldcnp0 : HInst<
26803 (outs HvxVR:$Vd32),
26804 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26805 "if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26806 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26807 let hasNewValue = 1;
26808 let opNewValue = 0;
26809 let isCVI = 1;
26810 let isPseudo = 1;
26811 let isCodeGenOnly = 1;
26812 let DecoderNamespace = "EXT_mmvec";
26814 def V6_ldcnpnt0 : HInst<
26815 (outs HvxVR:$Vd32),
26816 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26817 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26818 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26819 let hasNewValue = 1;
26820 let opNewValue = 0;
26821 let isCVI = 1;
26822 let isPseudo = 1;
26823 let isCodeGenOnly = 1;
26824 let DecoderNamespace = "EXT_mmvec";
26826 def V6_ldcp0 : HInst<
26827 (outs HvxVR:$Vd32),
26828 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26829 "if ($Pv4) $Vd32.cur = vmem($Rt32)",
26830 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26831 let hasNewValue = 1;
26832 let opNewValue = 0;
26833 let isCVI = 1;
26834 let isPseudo = 1;
26835 let isCodeGenOnly = 1;
26836 let DecoderNamespace = "EXT_mmvec";
26838 def V6_ldcpnt0 : HInst<
26839 (outs HvxVR:$Vd32),
26840 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26841 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26842 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26843 let hasNewValue = 1;
26844 let opNewValue = 0;
26845 let isCVI = 1;
26846 let isPseudo = 1;
26847 let isCodeGenOnly = 1;
26848 let DecoderNamespace = "EXT_mmvec";
26850 def V6_ldnp0 : HInst<
26851 (outs HvxVR:$Vd32),
26852 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26853 "if (!$Pv4) $Vd32 = vmem($Rt32)",
26854 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26855 let hasNewValue = 1;
26856 let opNewValue = 0;
26857 let isCVI = 1;
26858 let isPseudo = 1;
26859 let isCodeGenOnly = 1;
26860 let DecoderNamespace = "EXT_mmvec";
26862 def V6_ldnpnt0 : HInst<
26863 (outs HvxVR:$Vd32),
26864 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26865 "if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26866 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26867 let hasNewValue = 1;
26868 let opNewValue = 0;
26869 let isCVI = 1;
26870 let isPseudo = 1;
26871 let isCodeGenOnly = 1;
26872 let DecoderNamespace = "EXT_mmvec";
26874 def V6_ldnt0 : HInst<
26875 (outs HvxVR:$Vd32),
26876 (ins IntRegs:$Rt32),
26877 "$Vd32 = vmem($Rt32):nt",
26878 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26879 let hasNewValue = 1;
26880 let opNewValue = 0;
26881 let isCVI = 1;
26882 let isPseudo = 1;
26883 let isCodeGenOnly = 1;
26884 let DecoderNamespace = "EXT_mmvec";
26886 def V6_ldntnt0 : HInst<
26887 (outs HvxVR:$Vd32),
26888 (ins IntRegs:$Rt32),
26889 "$Vd32 = vmem($Rt32):nt",
26890 PSEUDO, TypeMAPPING>, Requires<[HasV62]> {
26891 let hasNewValue = 1;
26892 let opNewValue = 0;
26893 let isPseudo = 1;
26894 let isCodeGenOnly = 1;
26895 let DecoderNamespace = "EXT_mmvec";
26897 def V6_ldp0 : HInst<
26898 (outs HvxVR:$Vd32),
26899 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26900 "if ($Pv4) $Vd32 = vmem($Rt32)",
26901 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26902 let hasNewValue = 1;
26903 let opNewValue = 0;
26904 let isCVI = 1;
26905 let isPseudo = 1;
26906 let isCodeGenOnly = 1;
26907 let DecoderNamespace = "EXT_mmvec";
26909 def V6_ldpnt0 : HInst<
26910 (outs HvxVR:$Vd32),
26911 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26912 "if ($Pv4) $Vd32 = vmem($Rt32):nt",
26913 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26914 let hasNewValue = 1;
26915 let opNewValue = 0;
26916 let isCVI = 1;
26917 let isPseudo = 1;
26918 let isCodeGenOnly = 1;
26919 let DecoderNamespace = "EXT_mmvec";
26921 def V6_ldtnp0 : HInst<
26922 (outs HvxVR:$Vd32),
26923 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26924 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26925 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26926 let hasNewValue = 1;
26927 let opNewValue = 0;
26928 let isCVI = 1;
26929 let isPseudo = 1;
26930 let isCodeGenOnly = 1;
26931 let DecoderNamespace = "EXT_mmvec";
26933 def V6_ldtnpnt0 : HInst<
26934 (outs HvxVR:$Vd32),
26935 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26936 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26937 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26938 let hasNewValue = 1;
26939 let opNewValue = 0;
26940 let isCVI = 1;
26941 let isPseudo = 1;
26942 let isCodeGenOnly = 1;
26943 let DecoderNamespace = "EXT_mmvec";
26945 def V6_ldtp0 : HInst<
26946 (outs HvxVR:$Vd32),
26947 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26948 "if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26949 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26950 let hasNewValue = 1;
26951 let opNewValue = 0;
26952 let isCVI = 1;
26953 let isPseudo = 1;
26954 let isCodeGenOnly = 1;
26955 let DecoderNamespace = "EXT_mmvec";
26957 def V6_ldtpnt0 : HInst<
26958 (outs HvxVR:$Vd32),
26959 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26960 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26961 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26962 let hasNewValue = 1;
26963 let opNewValue = 0;
26964 let isCVI = 1;
26965 let isPseudo = 1;
26966 let isCodeGenOnly = 1;
26967 let DecoderNamespace = "EXT_mmvec";
26969 def V6_ldu0 : HInst<
26970 (outs HvxVR:$Vd32),
26971 (ins IntRegs:$Rt32),
26972 "$Vd32 = vmemu($Rt32)",
26973 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26974 let hasNewValue = 1;
26975 let opNewValue = 0;
26976 let isCVI = 1;
26977 let isPseudo = 1;
26978 let isCodeGenOnly = 1;
26979 let DecoderNamespace = "EXT_mmvec";
26981 def V6_lo : HInst<
26982 (outs HvxVR:$Vd32),
26983 (ins HvxWR:$Vss32),
26984 "$Vd32 = lo($Vss32)",
26985 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26986 let hasNewValue = 1;
26987 let opNewValue = 0;
26988 let isCVI = 1;
26989 let isPseudo = 1;
26990 let DecoderNamespace = "EXT_mmvec";
26992 def V6_lvsplatb : HInst<
26993 (outs HvxVR:$Vd32),
26994 (ins IntRegs:$Rt32),
26995 "$Vd32.b = vsplat($Rt32)",
26996 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26997 let Inst{13-5} = 0b000000010;
26998 let Inst{31-21} = 0b00011001110;
26999 let hasNewValue = 1;
27000 let opNewValue = 0;
27001 let isCVI = 1;
27002 let DecoderNamespace = "EXT_mmvec";
27004 def V6_lvsplath : HInst<
27005 (outs HvxVR:$Vd32),
27006 (ins IntRegs:$Rt32),
27007 "$Vd32.h = vsplat($Rt32)",
27008 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
27009 let Inst{13-5} = 0b000000001;
27010 let Inst{31-21} = 0b00011001110;
27011 let hasNewValue = 1;
27012 let opNewValue = 0;
27013 let isCVI = 1;
27014 let DecoderNamespace = "EXT_mmvec";
27016 def V6_lvsplatw : HInst<
27017 (outs HvxVR:$Vd32),
27018 (ins IntRegs:$Rt32),
27019 "$Vd32 = vsplat($Rt32)",
27020 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
27021 let Inst{13-5} = 0b000000001;
27022 let Inst{31-21} = 0b00011001101;
27023 let hasNewValue = 1;
27024 let opNewValue = 0;
27025 let isCVI = 1;
27026 let DecoderNamespace = "EXT_mmvec";
27028 def V6_pred_and : HInst<
27029 (outs HvxQR:$Qd4),
27030 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27031 "$Qd4 = and($Qs4,$Qt4)",
27032 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27033 let Inst{7-2} = 0b000000;
27034 let Inst{13-10} = 0b0000;
27035 let Inst{21-16} = 0b000011;
27036 let Inst{31-24} = 0b00011110;
27037 let hasNewValue = 1;
27038 let opNewValue = 0;
27039 let isCVI = 1;
27040 let DecoderNamespace = "EXT_mmvec";
27042 def V6_pred_and_n : HInst<
27043 (outs HvxQR:$Qd4),
27044 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27045 "$Qd4 = and($Qs4,!$Qt4)",
27046 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27047 let Inst{7-2} = 0b000101;
27048 let Inst{13-10} = 0b0000;
27049 let Inst{21-16} = 0b000011;
27050 let Inst{31-24} = 0b00011110;
27051 let hasNewValue = 1;
27052 let opNewValue = 0;
27053 let isCVI = 1;
27054 let DecoderNamespace = "EXT_mmvec";
27056 def V6_pred_not : HInst<
27057 (outs HvxQR:$Qd4),
27058 (ins HvxQR:$Qs4),
27059 "$Qd4 = not($Qs4)",
27060 tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
27061 let Inst{7-2} = 0b000010;
27062 let Inst{13-10} = 0b0000;
27063 let Inst{31-16} = 0b0001111000000011;
27064 let hasNewValue = 1;
27065 let opNewValue = 0;
27066 let isCVI = 1;
27067 let DecoderNamespace = "EXT_mmvec";
27069 def V6_pred_or : HInst<
27070 (outs HvxQR:$Qd4),
27071 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27072 "$Qd4 = or($Qs4,$Qt4)",
27073 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27074 let Inst{7-2} = 0b000001;
27075 let Inst{13-10} = 0b0000;
27076 let Inst{21-16} = 0b000011;
27077 let Inst{31-24} = 0b00011110;
27078 let hasNewValue = 1;
27079 let opNewValue = 0;
27080 let isCVI = 1;
27081 let DecoderNamespace = "EXT_mmvec";
27083 def V6_pred_or_n : HInst<
27084 (outs HvxQR:$Qd4),
27085 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27086 "$Qd4 = or($Qs4,!$Qt4)",
27087 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27088 let Inst{7-2} = 0b000100;
27089 let Inst{13-10} = 0b0000;
27090 let Inst{21-16} = 0b000011;
27091 let Inst{31-24} = 0b00011110;
27092 let hasNewValue = 1;
27093 let opNewValue = 0;
27094 let isCVI = 1;
27095 let DecoderNamespace = "EXT_mmvec";
27097 def V6_pred_scalar2 : HInst<
27098 (outs HvxQR:$Qd4),
27099 (ins IntRegs:$Rt32),
27100 "$Qd4 = vsetq($Rt32)",
27101 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
27102 let Inst{13-2} = 0b000000010001;
27103 let Inst{31-21} = 0b00011001101;
27104 let hasNewValue = 1;
27105 let opNewValue = 0;
27106 let isCVI = 1;
27107 let DecoderNamespace = "EXT_mmvec";
27109 def V6_pred_scalar2v2 : HInst<
27110 (outs HvxQR:$Qd4),
27111 (ins IntRegs:$Rt32),
27112 "$Qd4 = vsetq2($Rt32)",
27113 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
27114 let Inst{13-2} = 0b000000010011;
27115 let Inst{31-21} = 0b00011001101;
27116 let hasNewValue = 1;
27117 let opNewValue = 0;
27118 let isCVI = 1;
27119 let DecoderNamespace = "EXT_mmvec";
27121 def V6_pred_xor : HInst<
27122 (outs HvxQR:$Qd4),
27123 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27124 "$Qd4 = xor($Qs4,$Qt4)",
27125 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27126 let Inst{7-2} = 0b000011;
27127 let Inst{13-10} = 0b0000;
27128 let Inst{21-16} = 0b000011;
27129 let Inst{31-24} = 0b00011110;
27130 let hasNewValue = 1;
27131 let opNewValue = 0;
27132 let isCVI = 1;
27133 let DecoderNamespace = "EXT_mmvec";
27135 def V6_shuffeqh : HInst<
27136 (outs HvxQR:$Qd4),
27137 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27138 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
27139 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27140 let Inst{7-2} = 0b000110;
27141 let Inst{13-10} = 0b0000;
27142 let Inst{21-16} = 0b000011;
27143 let Inst{31-24} = 0b00011110;
27144 let hasNewValue = 1;
27145 let opNewValue = 0;
27146 let isCVI = 1;
27147 let DecoderNamespace = "EXT_mmvec";
27149 def V6_shuffeqw : HInst<
27150 (outs HvxQR:$Qd4),
27151 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27152 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
27153 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27154 let Inst{7-2} = 0b000111;
27155 let Inst{13-10} = 0b0000;
27156 let Inst{21-16} = 0b000011;
27157 let Inst{31-24} = 0b00011110;
27158 let hasNewValue = 1;
27159 let opNewValue = 0;
27160 let isCVI = 1;
27161 let DecoderNamespace = "EXT_mmvec";
27163 def V6_st0 : HInst<
27164 (outs),
27165 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27166 "vmem($Rt32) = $Vs32",
27167 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27168 let isCVI = 1;
27169 let isPseudo = 1;
27170 let isCodeGenOnly = 1;
27171 let DecoderNamespace = "EXT_mmvec";
27173 def V6_stn0 : HInst<
27174 (outs),
27175 (ins IntRegs:$Rt32, HvxVR:$Os8),
27176 "vmem($Rt32) = $Os8.new",
27177 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27178 let isCVI = 1;
27179 let isPseudo = 1;
27180 let isCodeGenOnly = 1;
27181 let DecoderNamespace = "EXT_mmvec";
27182 let opNewValue = 1;
27184 def V6_stnnt0 : HInst<
27185 (outs),
27186 (ins IntRegs:$Rt32, HvxVR:$Os8),
27187 "vmem($Rt32):nt = $Os8.new",
27188 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27189 let isCVI = 1;
27190 let isPseudo = 1;
27191 let isCodeGenOnly = 1;
27192 let DecoderNamespace = "EXT_mmvec";
27193 let opNewValue = 1;
27195 def V6_stnp0 : HInst<
27196 (outs),
27197 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27198 "if (!$Pv4) vmem($Rt32) = $Vs32",
27199 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27200 let isCVI = 1;
27201 let isPseudo = 1;
27202 let isCodeGenOnly = 1;
27203 let DecoderNamespace = "EXT_mmvec";
27205 def V6_stnpnt0 : HInst<
27206 (outs),
27207 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27208 "if (!$Pv4) vmem($Rt32):nt = $Vs32",
27209 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27210 let isCVI = 1;
27211 let isPseudo = 1;
27212 let isCodeGenOnly = 1;
27213 let DecoderNamespace = "EXT_mmvec";
27215 def V6_stnq0 : HInst<
27216 (outs),
27217 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27218 "if (!$Qv4) vmem($Rt32) = $Vs32",
27219 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27220 let isCVI = 1;
27221 let isPseudo = 1;
27222 let isCodeGenOnly = 1;
27223 let DecoderNamespace = "EXT_mmvec";
27225 def V6_stnqnt0 : HInst<
27226 (outs),
27227 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27228 "if (!$Qv4) vmem($Rt32):nt = $Vs32",
27229 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27230 let isCVI = 1;
27231 let isPseudo = 1;
27232 let isCodeGenOnly = 1;
27233 let DecoderNamespace = "EXT_mmvec";
27235 def V6_stnt0 : HInst<
27236 (outs),
27237 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27238 "vmem($Rt32):nt = $Vs32",
27239 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27240 let isCVI = 1;
27241 let isPseudo = 1;
27242 let isCodeGenOnly = 1;
27243 let DecoderNamespace = "EXT_mmvec";
27245 def V6_stp0 : HInst<
27246 (outs),
27247 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27248 "if ($Pv4) vmem($Rt32) = $Vs32",
27249 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27250 let isCVI = 1;
27251 let isPseudo = 1;
27252 let isCodeGenOnly = 1;
27253 let DecoderNamespace = "EXT_mmvec";
27255 def V6_stpnt0 : HInst<
27256 (outs),
27257 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27258 "if ($Pv4) vmem($Rt32):nt = $Vs32",
27259 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27260 let isCVI = 1;
27261 let isPseudo = 1;
27262 let isCodeGenOnly = 1;
27263 let DecoderNamespace = "EXT_mmvec";
27265 def V6_stq0 : HInst<
27266 (outs),
27267 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27268 "if ($Qv4) vmem($Rt32) = $Vs32",
27269 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27270 let isCVI = 1;
27271 let isPseudo = 1;
27272 let isCodeGenOnly = 1;
27273 let DecoderNamespace = "EXT_mmvec";
27275 def V6_stqnt0 : HInst<
27276 (outs),
27277 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27278 "if ($Qv4) vmem($Rt32):nt = $Vs32",
27279 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27280 let isCVI = 1;
27281 let isPseudo = 1;
27282 let isCodeGenOnly = 1;
27283 let DecoderNamespace = "EXT_mmvec";
27285 def V6_stu0 : HInst<
27286 (outs),
27287 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27288 "vmemu($Rt32) = $Vs32",
27289 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27290 let isCVI = 1;
27291 let isPseudo = 1;
27292 let isCodeGenOnly = 1;
27293 let DecoderNamespace = "EXT_mmvec";
27295 def V6_stunp0 : HInst<
27296 (outs),
27297 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27298 "if (!$Pv4) vmemu($Rt32) = $Vs32",
27299 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27300 let isCVI = 1;
27301 let isPseudo = 1;
27302 let isCodeGenOnly = 1;
27303 let DecoderNamespace = "EXT_mmvec";
27305 def V6_stup0 : HInst<
27306 (outs),
27307 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27308 "if ($Pv4) vmemu($Rt32) = $Vs32",
27309 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27310 let isCVI = 1;
27311 let isPseudo = 1;
27312 let isCodeGenOnly = 1;
27313 let DecoderNamespace = "EXT_mmvec";
27315 def V6_v6mpyhubs10 : HInst<
27316 (outs HvxWR:$Vdd32),
27317 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27318 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27319 tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27320 let Inst{7-7} = 0b1;
27321 let Inst{13-13} = 0b1;
27322 let Inst{31-21} = 0b00011111010;
27323 let hasNewValue = 1;
27324 let opNewValue = 0;
27325 let isCVI = 1;
27326 let DecoderNamespace = "EXT_mmvec";
27328 def V6_v6mpyhubs10_alt : HInst<
27329 (outs HvxWR:$Vdd32),
27330 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27331 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h",
27332 PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27333 let hasNewValue = 1;
27334 let opNewValue = 0;
27335 let isCVI = 1;
27336 let isPseudo = 1;
27337 let isCodeGenOnly = 1;
27338 let DecoderNamespace = "EXT_mmvec";
27340 def V6_v6mpyhubs10_vxx : HInst<
27341 (outs HvxWR:$Vxx32),
27342 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27343 "$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27344 tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27345 let Inst{7-7} = 0b1;
27346 let Inst{13-13} = 0b1;
27347 let Inst{31-21} = 0b00011111001;
27348 let hasNewValue = 1;
27349 let opNewValue = 0;
27350 let isAccumulator = 1;
27351 let isCVI = 1;
27352 let DecoderNamespace = "EXT_mmvec";
27353 let Constraints = "$Vxx32 = $Vxx32in";
27355 def V6_v6mpyvubs10 : HInst<
27356 (outs HvxWR:$Vdd32),
27357 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27358 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27359 tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27360 let Inst{7-7} = 0b0;
27361 let Inst{13-13} = 0b1;
27362 let Inst{31-21} = 0b00011111010;
27363 let hasNewValue = 1;
27364 let opNewValue = 0;
27365 let isCVI = 1;
27366 let DecoderNamespace = "EXT_mmvec";
27368 def V6_v6mpyvubs10_alt : HInst<
27369 (outs HvxWR:$Vdd32),
27370 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27371 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v",
27372 PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27373 let hasNewValue = 1;
27374 let opNewValue = 0;
27375 let isCVI = 1;
27376 let isPseudo = 1;
27377 let isCodeGenOnly = 1;
27378 let DecoderNamespace = "EXT_mmvec";
27380 def V6_v6mpyvubs10_vxx : HInst<
27381 (outs HvxWR:$Vxx32),
27382 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27383 "$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27384 tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27385 let Inst{7-7} = 0b0;
27386 let Inst{13-13} = 0b1;
27387 let Inst{31-21} = 0b00011111001;
27388 let hasNewValue = 1;
27389 let opNewValue = 0;
27390 let isAccumulator = 1;
27391 let isCVI = 1;
27392 let DecoderNamespace = "EXT_mmvec";
27393 let Constraints = "$Vxx32 = $Vxx32in";
27395 def V6_vL32Ub_ai : HInst<
27396 (outs HvxVR:$Vd32),
27397 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27398 "$Vd32 = vmemu($Rt32+#$Ii)",
27399 tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> {
27400 let Inst{7-5} = 0b111;
27401 let Inst{12-11} = 0b00;
27402 let Inst{31-21} = 0b00101000000;
27403 let hasNewValue = 1;
27404 let opNewValue = 0;
27405 let addrMode = BaseImmOffset;
27406 let accessSize = HVXVectorAccess;
27407 let isCVLoad = 1;
27408 let isCVI = 1;
27409 let mayLoad = 1;
27410 let isRestrictNoSlot1Store = 1;
27411 let DecoderNamespace = "EXT_mmvec";
27413 def V6_vL32Ub_pi : HInst<
27414 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27415 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27416 "$Vd32 = vmemu($Rx32++#$Ii)",
27417 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> {
27418 let Inst{7-5} = 0b111;
27419 let Inst{13-11} = 0b000;
27420 let Inst{31-21} = 0b00101001000;
27421 let hasNewValue = 1;
27422 let opNewValue = 0;
27423 let addrMode = PostInc;
27424 let accessSize = HVXVectorAccess;
27425 let isCVLoad = 1;
27426 let isCVI = 1;
27427 let mayLoad = 1;
27428 let isRestrictNoSlot1Store = 1;
27429 let BaseOpcode = "V6_vL32b_pi";
27430 let DecoderNamespace = "EXT_mmvec";
27431 let Constraints = "$Rx32 = $Rx32in";
27433 def V6_vL32Ub_ppu : HInst<
27434 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27435 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27436 "$Vd32 = vmemu($Rx32++$Mu2)",
27437 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
27438 let Inst{12-5} = 0b00000111;
27439 let Inst{31-21} = 0b00101011000;
27440 let hasNewValue = 1;
27441 let opNewValue = 0;
27442 let addrMode = PostInc;
27443 let accessSize = HVXVectorAccess;
27444 let isCVLoad = 1;
27445 let isCVI = 1;
27446 let mayLoad = 1;
27447 let isRestrictNoSlot1Store = 1;
27448 let DecoderNamespace = "EXT_mmvec";
27449 let Constraints = "$Rx32 = $Rx32in";
27451 def V6_vL32b_ai : HInst<
27452 (outs HvxVR:$Vd32),
27453 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27454 "$Vd32 = vmem($Rt32+#$Ii)",
27455 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27456 let Inst{7-5} = 0b000;
27457 let Inst{12-11} = 0b00;
27458 let Inst{31-21} = 0b00101000000;
27459 let hasNewValue = 1;
27460 let opNewValue = 0;
27461 let addrMode = BaseImmOffset;
27462 let accessSize = HVXVectorAccess;
27463 let isCVLoad = 1;
27464 let isCVI = 1;
27465 let mayLoad = 1;
27466 let isRestrictNoSlot1Store = 1;
27467 let BaseOpcode = "V6_vL32b_ai";
27468 let isCVLoadable = 1;
27469 let isPredicable = 1;
27470 let DecoderNamespace = "EXT_mmvec";
27472 def V6_vL32b_cur_ai : HInst<
27473 (outs HvxVR:$Vd32),
27474 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27475 "$Vd32.cur = vmem($Rt32+#$Ii)",
27476 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27477 let Inst{7-5} = 0b001;
27478 let Inst{12-11} = 0b00;
27479 let Inst{31-21} = 0b00101000000;
27480 let hasNewValue = 1;
27481 let opNewValue = 0;
27482 let addrMode = BaseImmOffset;
27483 let accessSize = HVXVectorAccess;
27484 let isCVLoad = 1;
27485 let isCVI = 1;
27486 let CVINew = 1;
27487 let mayLoad = 1;
27488 let isRestrictNoSlot1Store = 1;
27489 let BaseOpcode = "V6_vL32b_cur_ai";
27490 let isPredicable = 1;
27491 let DecoderNamespace = "EXT_mmvec";
27493 def V6_vL32b_cur_npred_ai : HInst<
27494 (outs HvxVR:$Vd32),
27495 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27496 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27497 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27498 let Inst{7-5} = 0b101;
27499 let Inst{31-21} = 0b00101000100;
27500 let isPredicated = 1;
27501 let isPredicatedFalse = 1;
27502 let hasNewValue = 1;
27503 let opNewValue = 0;
27504 let addrMode = BaseImmOffset;
27505 let accessSize = HVXVectorAccess;
27506 let isCVLoad = 1;
27507 let isCVI = 1;
27508 let CVINew = 1;
27509 let mayLoad = 1;
27510 let isRestrictNoSlot1Store = 1;
27511 let BaseOpcode = "V6_vL32b_cur_ai";
27512 let DecoderNamespace = "EXT_mmvec";
27514 def V6_vL32b_cur_npred_pi : HInst<
27515 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27516 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27517 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27518 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27519 let Inst{7-5} = 0b101;
27520 let Inst{13-13} = 0b0;
27521 let Inst{31-21} = 0b00101001100;
27522 let isPredicated = 1;
27523 let isPredicatedFalse = 1;
27524 let hasNewValue = 1;
27525 let opNewValue = 0;
27526 let addrMode = PostInc;
27527 let accessSize = HVXVectorAccess;
27528 let isCVLoad = 1;
27529 let isCVI = 1;
27530 let CVINew = 1;
27531 let mayLoad = 1;
27532 let isRestrictNoSlot1Store = 1;
27533 let BaseOpcode = "V6_vL32b_cur_pi";
27534 let DecoderNamespace = "EXT_mmvec";
27535 let Constraints = "$Rx32 = $Rx32in";
27537 def V6_vL32b_cur_npred_ppu : HInst<
27538 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27539 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27540 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27541 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27542 let Inst{10-5} = 0b000101;
27543 let Inst{31-21} = 0b00101011100;
27544 let isPredicated = 1;
27545 let isPredicatedFalse = 1;
27546 let hasNewValue = 1;
27547 let opNewValue = 0;
27548 let addrMode = PostInc;
27549 let accessSize = HVXVectorAccess;
27550 let isCVLoad = 1;
27551 let isCVI = 1;
27552 let CVINew = 1;
27553 let mayLoad = 1;
27554 let isRestrictNoSlot1Store = 1;
27555 let BaseOpcode = "V6_vL32b_cur_ppu";
27556 let DecoderNamespace = "EXT_mmvec";
27557 let Constraints = "$Rx32 = $Rx32in";
27559 def V6_vL32b_cur_pi : HInst<
27560 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27561 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27562 "$Vd32.cur = vmem($Rx32++#$Ii)",
27563 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27564 let Inst{7-5} = 0b001;
27565 let Inst{13-11} = 0b000;
27566 let Inst{31-21} = 0b00101001000;
27567 let hasNewValue = 1;
27568 let opNewValue = 0;
27569 let addrMode = PostInc;
27570 let accessSize = HVXVectorAccess;
27571 let isCVLoad = 1;
27572 let isCVI = 1;
27573 let CVINew = 1;
27574 let mayLoad = 1;
27575 let isRestrictNoSlot1Store = 1;
27576 let BaseOpcode = "V6_vL32b_cur_pi";
27577 let isPredicable = 1;
27578 let DecoderNamespace = "EXT_mmvec";
27579 let Constraints = "$Rx32 = $Rx32in";
27581 def V6_vL32b_cur_ppu : HInst<
27582 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27583 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27584 "$Vd32.cur = vmem($Rx32++$Mu2)",
27585 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27586 let Inst{12-5} = 0b00000001;
27587 let Inst{31-21} = 0b00101011000;
27588 let hasNewValue = 1;
27589 let opNewValue = 0;
27590 let addrMode = PostInc;
27591 let accessSize = HVXVectorAccess;
27592 let isCVLoad = 1;
27593 let isCVI = 1;
27594 let CVINew = 1;
27595 let mayLoad = 1;
27596 let isRestrictNoSlot1Store = 1;
27597 let BaseOpcode = "V6_vL32b_cur_ppu";
27598 let isPredicable = 1;
27599 let DecoderNamespace = "EXT_mmvec";
27600 let Constraints = "$Rx32 = $Rx32in";
27602 def V6_vL32b_cur_pred_ai : HInst<
27603 (outs HvxVR:$Vd32),
27604 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27605 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27606 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27607 let Inst{7-5} = 0b100;
27608 let Inst{31-21} = 0b00101000100;
27609 let isPredicated = 1;
27610 let hasNewValue = 1;
27611 let opNewValue = 0;
27612 let addrMode = BaseImmOffset;
27613 let accessSize = HVXVectorAccess;
27614 let isCVLoad = 1;
27615 let isCVI = 1;
27616 let CVINew = 1;
27617 let mayLoad = 1;
27618 let isRestrictNoSlot1Store = 1;
27619 let BaseOpcode = "V6_vL32b_cur_ai";
27620 let DecoderNamespace = "EXT_mmvec";
27622 def V6_vL32b_cur_pred_pi : HInst<
27623 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27624 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27625 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27626 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27627 let Inst{7-5} = 0b100;
27628 let Inst{13-13} = 0b0;
27629 let Inst{31-21} = 0b00101001100;
27630 let isPredicated = 1;
27631 let hasNewValue = 1;
27632 let opNewValue = 0;
27633 let addrMode = PostInc;
27634 let accessSize = HVXVectorAccess;
27635 let isCVLoad = 1;
27636 let isCVI = 1;
27637 let CVINew = 1;
27638 let mayLoad = 1;
27639 let isRestrictNoSlot1Store = 1;
27640 let BaseOpcode = "V6_vL32b_cur_pi";
27641 let DecoderNamespace = "EXT_mmvec";
27642 let Constraints = "$Rx32 = $Rx32in";
27644 def V6_vL32b_cur_pred_ppu : HInst<
27645 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27646 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27647 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27648 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27649 let Inst{10-5} = 0b000100;
27650 let Inst{31-21} = 0b00101011100;
27651 let isPredicated = 1;
27652 let hasNewValue = 1;
27653 let opNewValue = 0;
27654 let addrMode = PostInc;
27655 let accessSize = HVXVectorAccess;
27656 let isCVLoad = 1;
27657 let isCVI = 1;
27658 let CVINew = 1;
27659 let mayLoad = 1;
27660 let isRestrictNoSlot1Store = 1;
27661 let BaseOpcode = "V6_vL32b_cur_ppu";
27662 let DecoderNamespace = "EXT_mmvec";
27663 let Constraints = "$Rx32 = $Rx32in";
27665 def V6_vL32b_npred_ai : HInst<
27666 (outs HvxVR:$Vd32),
27667 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27668 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27669 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27670 let Inst{7-5} = 0b011;
27671 let Inst{31-21} = 0b00101000100;
27672 let isPredicated = 1;
27673 let isPredicatedFalse = 1;
27674 let hasNewValue = 1;
27675 let opNewValue = 0;
27676 let addrMode = BaseImmOffset;
27677 let accessSize = HVXVectorAccess;
27678 let isCVLoad = 1;
27679 let isCVI = 1;
27680 let mayLoad = 1;
27681 let isRestrictNoSlot1Store = 1;
27682 let BaseOpcode = "V6_vL32b_ai";
27683 let DecoderNamespace = "EXT_mmvec";
27685 def V6_vL32b_npred_pi : HInst<
27686 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27687 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27688 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27689 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27690 let Inst{7-5} = 0b011;
27691 let Inst{13-13} = 0b0;
27692 let Inst{31-21} = 0b00101001100;
27693 let isPredicated = 1;
27694 let isPredicatedFalse = 1;
27695 let hasNewValue = 1;
27696 let opNewValue = 0;
27697 let addrMode = PostInc;
27698 let accessSize = HVXVectorAccess;
27699 let isCVLoad = 1;
27700 let isCVI = 1;
27701 let mayLoad = 1;
27702 let isRestrictNoSlot1Store = 1;
27703 let BaseOpcode = "V6_vL32b_pi";
27704 let DecoderNamespace = "EXT_mmvec";
27705 let Constraints = "$Rx32 = $Rx32in";
27707 def V6_vL32b_npred_ppu : HInst<
27708 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27709 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27710 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27711 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27712 let Inst{10-5} = 0b000011;
27713 let Inst{31-21} = 0b00101011100;
27714 let isPredicated = 1;
27715 let isPredicatedFalse = 1;
27716 let hasNewValue = 1;
27717 let opNewValue = 0;
27718 let addrMode = PostInc;
27719 let accessSize = HVXVectorAccess;
27720 let isCVLoad = 1;
27721 let isCVI = 1;
27722 let mayLoad = 1;
27723 let isRestrictNoSlot1Store = 1;
27724 let BaseOpcode = "V6_vL32b_ppu";
27725 let DecoderNamespace = "EXT_mmvec";
27726 let Constraints = "$Rx32 = $Rx32in";
27728 def V6_vL32b_nt_ai : HInst<
27729 (outs HvxVR:$Vd32),
27730 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27731 "$Vd32 = vmem($Rt32+#$Ii):nt",
27732 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27733 let Inst{7-5} = 0b000;
27734 let Inst{12-11} = 0b00;
27735 let Inst{31-21} = 0b00101000010;
27736 let hasNewValue = 1;
27737 let opNewValue = 0;
27738 let addrMode = BaseImmOffset;
27739 let accessSize = HVXVectorAccess;
27740 let isCVLoad = 1;
27741 let isCVI = 1;
27742 let mayLoad = 1;
27743 let isNonTemporal = 1;
27744 let isRestrictNoSlot1Store = 1;
27745 let BaseOpcode = "V6_vL32b_nt_ai";
27746 let isCVLoadable = 1;
27747 let isPredicable = 1;
27748 let DecoderNamespace = "EXT_mmvec";
27750 def V6_vL32b_nt_cur_ai : HInst<
27751 (outs HvxVR:$Vd32),
27752 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27753 "$Vd32.cur = vmem($Rt32+#$Ii):nt",
27754 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27755 let Inst{7-5} = 0b001;
27756 let Inst{12-11} = 0b00;
27757 let Inst{31-21} = 0b00101000010;
27758 let hasNewValue = 1;
27759 let opNewValue = 0;
27760 let addrMode = BaseImmOffset;
27761 let accessSize = HVXVectorAccess;
27762 let isCVLoad = 1;
27763 let isCVI = 1;
27764 let CVINew = 1;
27765 let mayLoad = 1;
27766 let isNonTemporal = 1;
27767 let isRestrictNoSlot1Store = 1;
27768 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27769 let isPredicable = 1;
27770 let DecoderNamespace = "EXT_mmvec";
27772 def V6_vL32b_nt_cur_npred_ai : HInst<
27773 (outs HvxVR:$Vd32),
27774 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27775 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27776 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27777 let Inst{7-5} = 0b101;
27778 let Inst{31-21} = 0b00101000110;
27779 let isPredicated = 1;
27780 let isPredicatedFalse = 1;
27781 let hasNewValue = 1;
27782 let opNewValue = 0;
27783 let addrMode = BaseImmOffset;
27784 let accessSize = HVXVectorAccess;
27785 let isCVLoad = 1;
27786 let isCVI = 1;
27787 let CVINew = 1;
27788 let mayLoad = 1;
27789 let isNonTemporal = 1;
27790 let isRestrictNoSlot1Store = 1;
27791 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27792 let DecoderNamespace = "EXT_mmvec";
27794 def V6_vL32b_nt_cur_npred_pi : HInst<
27795 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27796 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27797 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27798 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27799 let Inst{7-5} = 0b101;
27800 let Inst{13-13} = 0b0;
27801 let Inst{31-21} = 0b00101001110;
27802 let isPredicated = 1;
27803 let isPredicatedFalse = 1;
27804 let hasNewValue = 1;
27805 let opNewValue = 0;
27806 let addrMode = PostInc;
27807 let accessSize = HVXVectorAccess;
27808 let isCVLoad = 1;
27809 let isCVI = 1;
27810 let CVINew = 1;
27811 let mayLoad = 1;
27812 let isNonTemporal = 1;
27813 let isRestrictNoSlot1Store = 1;
27814 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27815 let DecoderNamespace = "EXT_mmvec";
27816 let Constraints = "$Rx32 = $Rx32in";
27818 def V6_vL32b_nt_cur_npred_ppu : HInst<
27819 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27820 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27821 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27822 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27823 let Inst{10-5} = 0b000101;
27824 let Inst{31-21} = 0b00101011110;
27825 let isPredicated = 1;
27826 let isPredicatedFalse = 1;
27827 let hasNewValue = 1;
27828 let opNewValue = 0;
27829 let addrMode = PostInc;
27830 let accessSize = HVXVectorAccess;
27831 let isCVLoad = 1;
27832 let isCVI = 1;
27833 let CVINew = 1;
27834 let mayLoad = 1;
27835 let isNonTemporal = 1;
27836 let isRestrictNoSlot1Store = 1;
27837 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27838 let DecoderNamespace = "EXT_mmvec";
27839 let Constraints = "$Rx32 = $Rx32in";
27841 def V6_vL32b_nt_cur_pi : HInst<
27842 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27843 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27844 "$Vd32.cur = vmem($Rx32++#$Ii):nt",
27845 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27846 let Inst{7-5} = 0b001;
27847 let Inst{13-11} = 0b000;
27848 let Inst{31-21} = 0b00101001010;
27849 let hasNewValue = 1;
27850 let opNewValue = 0;
27851 let addrMode = PostInc;
27852 let accessSize = HVXVectorAccess;
27853 let isCVLoad = 1;
27854 let isCVI = 1;
27855 let CVINew = 1;
27856 let mayLoad = 1;
27857 let isNonTemporal = 1;
27858 let isRestrictNoSlot1Store = 1;
27859 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27860 let isPredicable = 1;
27861 let DecoderNamespace = "EXT_mmvec";
27862 let Constraints = "$Rx32 = $Rx32in";
27864 def V6_vL32b_nt_cur_ppu : HInst<
27865 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27866 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27867 "$Vd32.cur = vmem($Rx32++$Mu2):nt",
27868 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27869 let Inst{12-5} = 0b00000001;
27870 let Inst{31-21} = 0b00101011010;
27871 let hasNewValue = 1;
27872 let opNewValue = 0;
27873 let addrMode = PostInc;
27874 let accessSize = HVXVectorAccess;
27875 let isCVLoad = 1;
27876 let isCVI = 1;
27877 let CVINew = 1;
27878 let mayLoad = 1;
27879 let isNonTemporal = 1;
27880 let isRestrictNoSlot1Store = 1;
27881 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27882 let isPredicable = 1;
27883 let DecoderNamespace = "EXT_mmvec";
27884 let Constraints = "$Rx32 = $Rx32in";
27886 def V6_vL32b_nt_cur_pred_ai : HInst<
27887 (outs HvxVR:$Vd32),
27888 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27889 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27890 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27891 let Inst{7-5} = 0b100;
27892 let Inst{31-21} = 0b00101000110;
27893 let isPredicated = 1;
27894 let hasNewValue = 1;
27895 let opNewValue = 0;
27896 let addrMode = BaseImmOffset;
27897 let accessSize = HVXVectorAccess;
27898 let isCVLoad = 1;
27899 let isCVI = 1;
27900 let CVINew = 1;
27901 let mayLoad = 1;
27902 let isNonTemporal = 1;
27903 let isRestrictNoSlot1Store = 1;
27904 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27905 let DecoderNamespace = "EXT_mmvec";
27907 def V6_vL32b_nt_cur_pred_pi : HInst<
27908 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27909 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27910 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27911 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27912 let Inst{7-5} = 0b100;
27913 let Inst{13-13} = 0b0;
27914 let Inst{31-21} = 0b00101001110;
27915 let isPredicated = 1;
27916 let hasNewValue = 1;
27917 let opNewValue = 0;
27918 let addrMode = PostInc;
27919 let accessSize = HVXVectorAccess;
27920 let isCVLoad = 1;
27921 let isCVI = 1;
27922 let CVINew = 1;
27923 let mayLoad = 1;
27924 let isNonTemporal = 1;
27925 let isRestrictNoSlot1Store = 1;
27926 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27927 let DecoderNamespace = "EXT_mmvec";
27928 let Constraints = "$Rx32 = $Rx32in";
27930 def V6_vL32b_nt_cur_pred_ppu : HInst<
27931 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27932 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27933 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27934 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27935 let Inst{10-5} = 0b000100;
27936 let Inst{31-21} = 0b00101011110;
27937 let isPredicated = 1;
27938 let hasNewValue = 1;
27939 let opNewValue = 0;
27940 let addrMode = PostInc;
27941 let accessSize = HVXVectorAccess;
27942 let isCVLoad = 1;
27943 let isCVI = 1;
27944 let CVINew = 1;
27945 let mayLoad = 1;
27946 let isNonTemporal = 1;
27947 let isRestrictNoSlot1Store = 1;
27948 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27949 let DecoderNamespace = "EXT_mmvec";
27950 let Constraints = "$Rx32 = $Rx32in";
27952 def V6_vL32b_nt_npred_ai : HInst<
27953 (outs HvxVR:$Vd32),
27954 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27955 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27956 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27957 let Inst{7-5} = 0b011;
27958 let Inst{31-21} = 0b00101000110;
27959 let isPredicated = 1;
27960 let isPredicatedFalse = 1;
27961 let hasNewValue = 1;
27962 let opNewValue = 0;
27963 let addrMode = BaseImmOffset;
27964 let accessSize = HVXVectorAccess;
27965 let isCVLoad = 1;
27966 let isCVI = 1;
27967 let mayLoad = 1;
27968 let isNonTemporal = 1;
27969 let isRestrictNoSlot1Store = 1;
27970 let BaseOpcode = "V6_vL32b_nt_ai";
27971 let DecoderNamespace = "EXT_mmvec";
27973 def V6_vL32b_nt_npred_pi : HInst<
27974 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27975 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27976 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27977 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27978 let Inst{7-5} = 0b011;
27979 let Inst{13-13} = 0b0;
27980 let Inst{31-21} = 0b00101001110;
27981 let isPredicated = 1;
27982 let isPredicatedFalse = 1;
27983 let hasNewValue = 1;
27984 let opNewValue = 0;
27985 let addrMode = PostInc;
27986 let accessSize = HVXVectorAccess;
27987 let isCVLoad = 1;
27988 let isCVI = 1;
27989 let mayLoad = 1;
27990 let isNonTemporal = 1;
27991 let isRestrictNoSlot1Store = 1;
27992 let BaseOpcode = "V6_vL32b_nt_pi";
27993 let DecoderNamespace = "EXT_mmvec";
27994 let Constraints = "$Rx32 = $Rx32in";
27996 def V6_vL32b_nt_npred_ppu : HInst<
27997 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27998 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27999 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28000 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28001 let Inst{10-5} = 0b000011;
28002 let Inst{31-21} = 0b00101011110;
28003 let isPredicated = 1;
28004 let isPredicatedFalse = 1;
28005 let hasNewValue = 1;
28006 let opNewValue = 0;
28007 let addrMode = PostInc;
28008 let accessSize = HVXVectorAccess;
28009 let isCVLoad = 1;
28010 let isCVI = 1;
28011 let mayLoad = 1;
28012 let isNonTemporal = 1;
28013 let isRestrictNoSlot1Store = 1;
28014 let BaseOpcode = "V6_vL32b_nt_ppu";
28015 let DecoderNamespace = "EXT_mmvec";
28016 let Constraints = "$Rx32 = $Rx32in";
28018 def V6_vL32b_nt_pi : HInst<
28019 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28020 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28021 "$Vd32 = vmem($Rx32++#$Ii):nt",
28022 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
28023 let Inst{7-5} = 0b000;
28024 let Inst{13-11} = 0b000;
28025 let Inst{31-21} = 0b00101001010;
28026 let hasNewValue = 1;
28027 let opNewValue = 0;
28028 let addrMode = PostInc;
28029 let accessSize = HVXVectorAccess;
28030 let isCVLoad = 1;
28031 let isCVI = 1;
28032 let mayLoad = 1;
28033 let isNonTemporal = 1;
28034 let isRestrictNoSlot1Store = 1;
28035 let BaseOpcode = "V6_vL32b_nt_pi";
28036 let isCVLoadable = 1;
28037 let isPredicable = 1;
28038 let DecoderNamespace = "EXT_mmvec";
28039 let Constraints = "$Rx32 = $Rx32in";
28041 def V6_vL32b_nt_ppu : HInst<
28042 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28043 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28044 "$Vd32 = vmem($Rx32++$Mu2):nt",
28045 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28046 let Inst{12-5} = 0b00000000;
28047 let Inst{31-21} = 0b00101011010;
28048 let hasNewValue = 1;
28049 let opNewValue = 0;
28050 let addrMode = PostInc;
28051 let accessSize = HVXVectorAccess;
28052 let isCVLoad = 1;
28053 let isCVI = 1;
28054 let mayLoad = 1;
28055 let isNonTemporal = 1;
28056 let isRestrictNoSlot1Store = 1;
28057 let BaseOpcode = "V6_vL32b_nt_ppu";
28058 let isCVLoadable = 1;
28059 let isPredicable = 1;
28060 let DecoderNamespace = "EXT_mmvec";
28061 let Constraints = "$Rx32 = $Rx32in";
28063 def V6_vL32b_nt_pred_ai : HInst<
28064 (outs HvxVR:$Vd32),
28065 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28066 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28067 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28068 let Inst{7-5} = 0b010;
28069 let Inst{31-21} = 0b00101000110;
28070 let isPredicated = 1;
28071 let hasNewValue = 1;
28072 let opNewValue = 0;
28073 let addrMode = BaseImmOffset;
28074 let accessSize = HVXVectorAccess;
28075 let isCVLoad = 1;
28076 let isCVI = 1;
28077 let mayLoad = 1;
28078 let isNonTemporal = 1;
28079 let isRestrictNoSlot1Store = 1;
28080 let BaseOpcode = "V6_vL32b_nt_ai";
28081 let DecoderNamespace = "EXT_mmvec";
28083 def V6_vL32b_nt_pred_pi : HInst<
28084 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28085 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28086 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28087 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28088 let Inst{7-5} = 0b010;
28089 let Inst{13-13} = 0b0;
28090 let Inst{31-21} = 0b00101001110;
28091 let isPredicated = 1;
28092 let hasNewValue = 1;
28093 let opNewValue = 0;
28094 let addrMode = PostInc;
28095 let accessSize = HVXVectorAccess;
28096 let isCVLoad = 1;
28097 let isCVI = 1;
28098 let mayLoad = 1;
28099 let isNonTemporal = 1;
28100 let isRestrictNoSlot1Store = 1;
28101 let BaseOpcode = "V6_vL32b_nt_pi";
28102 let DecoderNamespace = "EXT_mmvec";
28103 let Constraints = "$Rx32 = $Rx32in";
28105 def V6_vL32b_nt_pred_ppu : HInst<
28106 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28107 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28108 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28109 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28110 let Inst{10-5} = 0b000010;
28111 let Inst{31-21} = 0b00101011110;
28112 let isPredicated = 1;
28113 let hasNewValue = 1;
28114 let opNewValue = 0;
28115 let addrMode = PostInc;
28116 let accessSize = HVXVectorAccess;
28117 let isCVLoad = 1;
28118 let isCVI = 1;
28119 let mayLoad = 1;
28120 let isNonTemporal = 1;
28121 let isRestrictNoSlot1Store = 1;
28122 let BaseOpcode = "V6_vL32b_nt_ppu";
28123 let DecoderNamespace = "EXT_mmvec";
28124 let Constraints = "$Rx32 = $Rx32in";
28126 def V6_vL32b_nt_tmp_ai : HInst<
28127 (outs HvxVR:$Vd32),
28128 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28129 "$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28130 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
28131 let Inst{7-5} = 0b010;
28132 let Inst{12-11} = 0b00;
28133 let Inst{31-21} = 0b00101000010;
28134 let hasNewValue = 1;
28135 let opNewValue = 0;
28136 let addrMode = BaseImmOffset;
28137 let accessSize = HVXVectorAccess;
28138 let isCVLoad = 1;
28139 let isCVI = 1;
28140 let hasTmpDst = 1;
28141 let mayLoad = 1;
28142 let isNonTemporal = 1;
28143 let isRestrictNoSlot1Store = 1;
28144 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28145 let isPredicable = 1;
28146 let DecoderNamespace = "EXT_mmvec";
28148 def V6_vL32b_nt_tmp_npred_ai : HInst<
28149 (outs HvxVR:$Vd32),
28150 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28151 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28152 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28153 let Inst{7-5} = 0b111;
28154 let Inst{31-21} = 0b00101000110;
28155 let isPredicated = 1;
28156 let isPredicatedFalse = 1;
28157 let hasNewValue = 1;
28158 let opNewValue = 0;
28159 let addrMode = BaseImmOffset;
28160 let accessSize = HVXVectorAccess;
28161 let isCVLoad = 1;
28162 let isCVI = 1;
28163 let hasTmpDst = 1;
28164 let mayLoad = 1;
28165 let isNonTemporal = 1;
28166 let isRestrictNoSlot1Store = 1;
28167 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28168 let DecoderNamespace = "EXT_mmvec";
28170 def V6_vL32b_nt_tmp_npred_pi : HInst<
28171 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28172 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28173 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28174 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28175 let Inst{7-5} = 0b111;
28176 let Inst{13-13} = 0b0;
28177 let Inst{31-21} = 0b00101001110;
28178 let isPredicated = 1;
28179 let isPredicatedFalse = 1;
28180 let hasNewValue = 1;
28181 let opNewValue = 0;
28182 let addrMode = PostInc;
28183 let accessSize = HVXVectorAccess;
28184 let isCVLoad = 1;
28185 let isCVI = 1;
28186 let hasTmpDst = 1;
28187 let mayLoad = 1;
28188 let isNonTemporal = 1;
28189 let isRestrictNoSlot1Store = 1;
28190 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28191 let DecoderNamespace = "EXT_mmvec";
28192 let Constraints = "$Rx32 = $Rx32in";
28194 def V6_vL32b_nt_tmp_npred_ppu : HInst<
28195 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28196 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28197 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28198 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28199 let Inst{10-5} = 0b000111;
28200 let Inst{31-21} = 0b00101011110;
28201 let isPredicated = 1;
28202 let isPredicatedFalse = 1;
28203 let hasNewValue = 1;
28204 let opNewValue = 0;
28205 let addrMode = PostInc;
28206 let accessSize = HVXVectorAccess;
28207 let isCVLoad = 1;
28208 let isCVI = 1;
28209 let hasTmpDst = 1;
28210 let mayLoad = 1;
28211 let isNonTemporal = 1;
28212 let isRestrictNoSlot1Store = 1;
28213 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28214 let DecoderNamespace = "EXT_mmvec";
28215 let Constraints = "$Rx32 = $Rx32in";
28217 def V6_vL32b_nt_tmp_pi : HInst<
28218 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28219 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28220 "$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28221 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
28222 let Inst{7-5} = 0b010;
28223 let Inst{13-11} = 0b000;
28224 let Inst{31-21} = 0b00101001010;
28225 let hasNewValue = 1;
28226 let opNewValue = 0;
28227 let addrMode = PostInc;
28228 let accessSize = HVXVectorAccess;
28229 let isCVLoad = 1;
28230 let isCVI = 1;
28231 let hasTmpDst = 1;
28232 let mayLoad = 1;
28233 let isNonTemporal = 1;
28234 let isRestrictNoSlot1Store = 1;
28235 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28236 let isPredicable = 1;
28237 let DecoderNamespace = "EXT_mmvec";
28238 let Constraints = "$Rx32 = $Rx32in";
28240 def V6_vL32b_nt_tmp_ppu : HInst<
28241 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28242 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28243 "$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28244 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28245 let Inst{12-5} = 0b00000010;
28246 let Inst{31-21} = 0b00101011010;
28247 let hasNewValue = 1;
28248 let opNewValue = 0;
28249 let addrMode = PostInc;
28250 let accessSize = HVXVectorAccess;
28251 let isCVLoad = 1;
28252 let isCVI = 1;
28253 let hasTmpDst = 1;
28254 let mayLoad = 1;
28255 let isNonTemporal = 1;
28256 let isRestrictNoSlot1Store = 1;
28257 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28258 let isPredicable = 1;
28259 let DecoderNamespace = "EXT_mmvec";
28260 let Constraints = "$Rx32 = $Rx32in";
28262 def V6_vL32b_nt_tmp_pred_ai : HInst<
28263 (outs HvxVR:$Vd32),
28264 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28265 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28266 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28267 let Inst{7-5} = 0b110;
28268 let Inst{31-21} = 0b00101000110;
28269 let isPredicated = 1;
28270 let hasNewValue = 1;
28271 let opNewValue = 0;
28272 let addrMode = BaseImmOffset;
28273 let accessSize = HVXVectorAccess;
28274 let isCVLoad = 1;
28275 let isCVI = 1;
28276 let hasTmpDst = 1;
28277 let mayLoad = 1;
28278 let isNonTemporal = 1;
28279 let isRestrictNoSlot1Store = 1;
28280 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28281 let DecoderNamespace = "EXT_mmvec";
28283 def V6_vL32b_nt_tmp_pred_pi : HInst<
28284 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28285 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28286 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28287 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28288 let Inst{7-5} = 0b110;
28289 let Inst{13-13} = 0b0;
28290 let Inst{31-21} = 0b00101001110;
28291 let isPredicated = 1;
28292 let hasNewValue = 1;
28293 let opNewValue = 0;
28294 let addrMode = PostInc;
28295 let accessSize = HVXVectorAccess;
28296 let isCVLoad = 1;
28297 let isCVI = 1;
28298 let hasTmpDst = 1;
28299 let mayLoad = 1;
28300 let isNonTemporal = 1;
28301 let isRestrictNoSlot1Store = 1;
28302 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28303 let DecoderNamespace = "EXT_mmvec";
28304 let Constraints = "$Rx32 = $Rx32in";
28306 def V6_vL32b_nt_tmp_pred_ppu : HInst<
28307 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28308 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28309 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28310 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28311 let Inst{10-5} = 0b000110;
28312 let Inst{31-21} = 0b00101011110;
28313 let isPredicated = 1;
28314 let hasNewValue = 1;
28315 let opNewValue = 0;
28316 let addrMode = PostInc;
28317 let accessSize = HVXVectorAccess;
28318 let isCVLoad = 1;
28319 let isCVI = 1;
28320 let hasTmpDst = 1;
28321 let mayLoad = 1;
28322 let isNonTemporal = 1;
28323 let isRestrictNoSlot1Store = 1;
28324 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28325 let DecoderNamespace = "EXT_mmvec";
28326 let Constraints = "$Rx32 = $Rx32in";
28328 def V6_vL32b_pi : HInst<
28329 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28330 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28331 "$Vd32 = vmem($Rx32++#$Ii)",
28332 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
28333 let Inst{7-5} = 0b000;
28334 let Inst{13-11} = 0b000;
28335 let Inst{31-21} = 0b00101001000;
28336 let hasNewValue = 1;
28337 let opNewValue = 0;
28338 let addrMode = PostInc;
28339 let accessSize = HVXVectorAccess;
28340 let isCVLoad = 1;
28341 let isCVI = 1;
28342 let mayLoad = 1;
28343 let isRestrictNoSlot1Store = 1;
28344 let BaseOpcode = "V6_vL32b_pi";
28345 let isCVLoadable = 1;
28346 let isPredicable = 1;
28347 let DecoderNamespace = "EXT_mmvec";
28348 let Constraints = "$Rx32 = $Rx32in";
28350 def V6_vL32b_ppu : HInst<
28351 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28352 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28353 "$Vd32 = vmem($Rx32++$Mu2)",
28354 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28355 let Inst{12-5} = 0b00000000;
28356 let Inst{31-21} = 0b00101011000;
28357 let hasNewValue = 1;
28358 let opNewValue = 0;
28359 let addrMode = PostInc;
28360 let accessSize = HVXVectorAccess;
28361 let isCVLoad = 1;
28362 let isCVI = 1;
28363 let mayLoad = 1;
28364 let isRestrictNoSlot1Store = 1;
28365 let BaseOpcode = "V6_vL32b_ppu";
28366 let isCVLoadable = 1;
28367 let isPredicable = 1;
28368 let DecoderNamespace = "EXT_mmvec";
28369 let Constraints = "$Rx32 = $Rx32in";
28371 def V6_vL32b_pred_ai : HInst<
28372 (outs HvxVR:$Vd32),
28373 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28374 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28375 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28376 let Inst{7-5} = 0b010;
28377 let Inst{31-21} = 0b00101000100;
28378 let isPredicated = 1;
28379 let hasNewValue = 1;
28380 let opNewValue = 0;
28381 let addrMode = BaseImmOffset;
28382 let accessSize = HVXVectorAccess;
28383 let isCVLoad = 1;
28384 let isCVI = 1;
28385 let mayLoad = 1;
28386 let isRestrictNoSlot1Store = 1;
28387 let BaseOpcode = "V6_vL32b_ai";
28388 let DecoderNamespace = "EXT_mmvec";
28390 def V6_vL32b_pred_pi : HInst<
28391 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28392 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28393 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28394 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28395 let Inst{7-5} = 0b010;
28396 let Inst{13-13} = 0b0;
28397 let Inst{31-21} = 0b00101001100;
28398 let isPredicated = 1;
28399 let hasNewValue = 1;
28400 let opNewValue = 0;
28401 let addrMode = PostInc;
28402 let accessSize = HVXVectorAccess;
28403 let isCVLoad = 1;
28404 let isCVI = 1;
28405 let mayLoad = 1;
28406 let isRestrictNoSlot1Store = 1;
28407 let BaseOpcode = "V6_vL32b_pi";
28408 let DecoderNamespace = "EXT_mmvec";
28409 let Constraints = "$Rx32 = $Rx32in";
28411 def V6_vL32b_pred_ppu : HInst<
28412 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28413 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28414 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28415 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28416 let Inst{10-5} = 0b000010;
28417 let Inst{31-21} = 0b00101011100;
28418 let isPredicated = 1;
28419 let hasNewValue = 1;
28420 let opNewValue = 0;
28421 let addrMode = PostInc;
28422 let accessSize = HVXVectorAccess;
28423 let isCVLoad = 1;
28424 let isCVI = 1;
28425 let mayLoad = 1;
28426 let isRestrictNoSlot1Store = 1;
28427 let BaseOpcode = "V6_vL32b_ppu";
28428 let DecoderNamespace = "EXT_mmvec";
28429 let Constraints = "$Rx32 = $Rx32in";
28431 def V6_vL32b_tmp_ai : HInst<
28432 (outs HvxVR:$Vd32),
28433 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28434 "$Vd32.tmp = vmem($Rt32+#$Ii)",
28435 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
28436 let Inst{7-5} = 0b010;
28437 let Inst{12-11} = 0b00;
28438 let Inst{31-21} = 0b00101000000;
28439 let hasNewValue = 1;
28440 let opNewValue = 0;
28441 let addrMode = BaseImmOffset;
28442 let accessSize = HVXVectorAccess;
28443 let isCVLoad = 1;
28444 let isCVI = 1;
28445 let hasTmpDst = 1;
28446 let mayLoad = 1;
28447 let isRestrictNoSlot1Store = 1;
28448 let BaseOpcode = "V6_vL32b_tmp_ai";
28449 let isPredicable = 1;
28450 let DecoderNamespace = "EXT_mmvec";
28452 def V6_vL32b_tmp_npred_ai : HInst<
28453 (outs HvxVR:$Vd32),
28454 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28455 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28456 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28457 let Inst{7-5} = 0b111;
28458 let Inst{31-21} = 0b00101000100;
28459 let isPredicated = 1;
28460 let isPredicatedFalse = 1;
28461 let hasNewValue = 1;
28462 let opNewValue = 0;
28463 let addrMode = BaseImmOffset;
28464 let accessSize = HVXVectorAccess;
28465 let isCVLoad = 1;
28466 let isCVI = 1;
28467 let hasTmpDst = 1;
28468 let mayLoad = 1;
28469 let isRestrictNoSlot1Store = 1;
28470 let BaseOpcode = "V6_vL32b_tmp_ai";
28471 let DecoderNamespace = "EXT_mmvec";
28473 def V6_vL32b_tmp_npred_pi : HInst<
28474 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28475 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28476 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28477 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28478 let Inst{7-5} = 0b111;
28479 let Inst{13-13} = 0b0;
28480 let Inst{31-21} = 0b00101001100;
28481 let isPredicated = 1;
28482 let isPredicatedFalse = 1;
28483 let hasNewValue = 1;
28484 let opNewValue = 0;
28485 let addrMode = PostInc;
28486 let accessSize = HVXVectorAccess;
28487 let isCVLoad = 1;
28488 let isCVI = 1;
28489 let hasTmpDst = 1;
28490 let mayLoad = 1;
28491 let isRestrictNoSlot1Store = 1;
28492 let BaseOpcode = "V6_vL32b_tmp_pi";
28493 let DecoderNamespace = "EXT_mmvec";
28494 let Constraints = "$Rx32 = $Rx32in";
28496 def V6_vL32b_tmp_npred_ppu : HInst<
28497 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28498 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28499 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28500 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28501 let Inst{10-5} = 0b000111;
28502 let Inst{31-21} = 0b00101011100;
28503 let isPredicated = 1;
28504 let isPredicatedFalse = 1;
28505 let hasNewValue = 1;
28506 let opNewValue = 0;
28507 let addrMode = PostInc;
28508 let accessSize = HVXVectorAccess;
28509 let isCVLoad = 1;
28510 let isCVI = 1;
28511 let hasTmpDst = 1;
28512 let mayLoad = 1;
28513 let isRestrictNoSlot1Store = 1;
28514 let BaseOpcode = "V6_vL32b_tmp_ppu";
28515 let DecoderNamespace = "EXT_mmvec";
28516 let Constraints = "$Rx32 = $Rx32in";
28518 def V6_vL32b_tmp_pi : HInst<
28519 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28520 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28521 "$Vd32.tmp = vmem($Rx32++#$Ii)",
28522 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
28523 let Inst{7-5} = 0b010;
28524 let Inst{13-11} = 0b000;
28525 let Inst{31-21} = 0b00101001000;
28526 let hasNewValue = 1;
28527 let opNewValue = 0;
28528 let addrMode = PostInc;
28529 let accessSize = HVXVectorAccess;
28530 let isCVLoad = 1;
28531 let isCVI = 1;
28532 let hasTmpDst = 1;
28533 let mayLoad = 1;
28534 let isRestrictNoSlot1Store = 1;
28535 let BaseOpcode = "V6_vL32b_tmp_pi";
28536 let isPredicable = 1;
28537 let DecoderNamespace = "EXT_mmvec";
28538 let Constraints = "$Rx32 = $Rx32in";
28540 def V6_vL32b_tmp_ppu : HInst<
28541 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28542 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28543 "$Vd32.tmp = vmem($Rx32++$Mu2)",
28544 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28545 let Inst{12-5} = 0b00000010;
28546 let Inst{31-21} = 0b00101011000;
28547 let hasNewValue = 1;
28548 let opNewValue = 0;
28549 let addrMode = PostInc;
28550 let accessSize = HVXVectorAccess;
28551 let isCVLoad = 1;
28552 let isCVI = 1;
28553 let hasTmpDst = 1;
28554 let mayLoad = 1;
28555 let isRestrictNoSlot1Store = 1;
28556 let BaseOpcode = "V6_vL32b_tmp_ppu";
28557 let isPredicable = 1;
28558 let DecoderNamespace = "EXT_mmvec";
28559 let Constraints = "$Rx32 = $Rx32in";
28561 def V6_vL32b_tmp_pred_ai : HInst<
28562 (outs HvxVR:$Vd32),
28563 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28564 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28565 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28566 let Inst{7-5} = 0b110;
28567 let Inst{31-21} = 0b00101000100;
28568 let isPredicated = 1;
28569 let hasNewValue = 1;
28570 let opNewValue = 0;
28571 let addrMode = BaseImmOffset;
28572 let accessSize = HVXVectorAccess;
28573 let isCVLoad = 1;
28574 let isCVI = 1;
28575 let hasTmpDst = 1;
28576 let mayLoad = 1;
28577 let isRestrictNoSlot1Store = 1;
28578 let BaseOpcode = "V6_vL32b_tmp_ai";
28579 let DecoderNamespace = "EXT_mmvec";
28581 def V6_vL32b_tmp_pred_pi : HInst<
28582 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28583 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28584 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28585 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28586 let Inst{7-5} = 0b110;
28587 let Inst{13-13} = 0b0;
28588 let Inst{31-21} = 0b00101001100;
28589 let isPredicated = 1;
28590 let hasNewValue = 1;
28591 let opNewValue = 0;
28592 let addrMode = PostInc;
28593 let accessSize = HVXVectorAccess;
28594 let isCVLoad = 1;
28595 let isCVI = 1;
28596 let hasTmpDst = 1;
28597 let mayLoad = 1;
28598 let isRestrictNoSlot1Store = 1;
28599 let BaseOpcode = "V6_vL32b_tmp_pi";
28600 let DecoderNamespace = "EXT_mmvec";
28601 let Constraints = "$Rx32 = $Rx32in";
28603 def V6_vL32b_tmp_pred_ppu : HInst<
28604 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28605 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28606 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28607 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28608 let Inst{10-5} = 0b000110;
28609 let Inst{31-21} = 0b00101011100;
28610 let isPredicated = 1;
28611 let hasNewValue = 1;
28612 let opNewValue = 0;
28613 let addrMode = PostInc;
28614 let accessSize = HVXVectorAccess;
28615 let isCVLoad = 1;
28616 let isCVI = 1;
28617 let hasTmpDst = 1;
28618 let mayLoad = 1;
28619 let isRestrictNoSlot1Store = 1;
28620 let BaseOpcode = "V6_vL32b_tmp_ppu";
28621 let DecoderNamespace = "EXT_mmvec";
28622 let Constraints = "$Rx32 = $Rx32in";
28624 def V6_vS32Ub_ai : HInst<
28625 (outs),
28626 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28627 "vmemu($Rt32+#$Ii) = $Vs32",
28628 tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28629 let Inst{7-5} = 0b111;
28630 let Inst{12-11} = 0b00;
28631 let Inst{31-21} = 0b00101000001;
28632 let addrMode = BaseImmOffset;
28633 let accessSize = HVXVectorAccess;
28634 let isCVI = 1;
28635 let mayStore = 1;
28636 let BaseOpcode = "V6_vS32Ub_ai";
28637 let isPredicable = 1;
28638 let DecoderNamespace = "EXT_mmvec";
28640 def V6_vS32Ub_npred_ai : HInst<
28641 (outs),
28642 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28643 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28644 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28645 let Inst{7-5} = 0b111;
28646 let Inst{31-21} = 0b00101000101;
28647 let isPredicated = 1;
28648 let isPredicatedFalse = 1;
28649 let addrMode = BaseImmOffset;
28650 let accessSize = HVXVectorAccess;
28651 let isCVI = 1;
28652 let mayStore = 1;
28653 let BaseOpcode = "V6_vS32Ub_ai";
28654 let DecoderNamespace = "EXT_mmvec";
28656 def V6_vS32Ub_npred_pi : HInst<
28657 (outs IntRegs:$Rx32),
28658 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28659 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28660 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28661 let Inst{7-5} = 0b111;
28662 let Inst{13-13} = 0b0;
28663 let Inst{31-21} = 0b00101001101;
28664 let isPredicated = 1;
28665 let isPredicatedFalse = 1;
28666 let addrMode = PostInc;
28667 let accessSize = HVXVectorAccess;
28668 let isCVI = 1;
28669 let mayStore = 1;
28670 let BaseOpcode = "V6_vS32Ub_pi";
28671 let DecoderNamespace = "EXT_mmvec";
28672 let Constraints = "$Rx32 = $Rx32in";
28674 def V6_vS32Ub_npred_ppu : HInst<
28675 (outs IntRegs:$Rx32),
28676 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28677 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28678 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28679 let Inst{10-5} = 0b000111;
28680 let Inst{31-21} = 0b00101011101;
28681 let isPredicated = 1;
28682 let isPredicatedFalse = 1;
28683 let addrMode = PostInc;
28684 let accessSize = HVXVectorAccess;
28685 let isCVI = 1;
28686 let mayStore = 1;
28687 let BaseOpcode = "V6_vS32Ub_ppu";
28688 let DecoderNamespace = "EXT_mmvec";
28689 let Constraints = "$Rx32 = $Rx32in";
28691 def V6_vS32Ub_pi : HInst<
28692 (outs IntRegs:$Rx32),
28693 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28694 "vmemu($Rx32++#$Ii) = $Vs32",
28695 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28696 let Inst{7-5} = 0b111;
28697 let Inst{13-11} = 0b000;
28698 let Inst{31-21} = 0b00101001001;
28699 let addrMode = PostInc;
28700 let accessSize = HVXVectorAccess;
28701 let isCVI = 1;
28702 let mayStore = 1;
28703 let BaseOpcode = "V6_vS32Ub_pi";
28704 let isPredicable = 1;
28705 let DecoderNamespace = "EXT_mmvec";
28706 let Constraints = "$Rx32 = $Rx32in";
28708 def V6_vS32Ub_ppu : HInst<
28709 (outs IntRegs:$Rx32),
28710 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28711 "vmemu($Rx32++$Mu2) = $Vs32",
28712 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28713 let Inst{12-5} = 0b00000111;
28714 let Inst{31-21} = 0b00101011001;
28715 let addrMode = PostInc;
28716 let accessSize = HVXVectorAccess;
28717 let isCVI = 1;
28718 let mayStore = 1;
28719 let BaseOpcode = "V6_vS32Ub_ppu";
28720 let isPredicable = 1;
28721 let DecoderNamespace = "EXT_mmvec";
28722 let Constraints = "$Rx32 = $Rx32in";
28724 def V6_vS32Ub_pred_ai : HInst<
28725 (outs),
28726 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28727 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28728 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28729 let Inst{7-5} = 0b110;
28730 let Inst{31-21} = 0b00101000101;
28731 let isPredicated = 1;
28732 let addrMode = BaseImmOffset;
28733 let accessSize = HVXVectorAccess;
28734 let isCVI = 1;
28735 let mayStore = 1;
28736 let BaseOpcode = "V6_vS32Ub_ai";
28737 let DecoderNamespace = "EXT_mmvec";
28739 def V6_vS32Ub_pred_pi : HInst<
28740 (outs IntRegs:$Rx32),
28741 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28742 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28743 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28744 let Inst{7-5} = 0b110;
28745 let Inst{13-13} = 0b0;
28746 let Inst{31-21} = 0b00101001101;
28747 let isPredicated = 1;
28748 let addrMode = PostInc;
28749 let accessSize = HVXVectorAccess;
28750 let isCVI = 1;
28751 let mayStore = 1;
28752 let BaseOpcode = "V6_vS32Ub_pi";
28753 let DecoderNamespace = "EXT_mmvec";
28754 let Constraints = "$Rx32 = $Rx32in";
28756 def V6_vS32Ub_pred_ppu : HInst<
28757 (outs IntRegs:$Rx32),
28758 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28759 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28760 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28761 let Inst{10-5} = 0b000110;
28762 let Inst{31-21} = 0b00101011101;
28763 let isPredicated = 1;
28764 let addrMode = PostInc;
28765 let accessSize = HVXVectorAccess;
28766 let isCVI = 1;
28767 let mayStore = 1;
28768 let BaseOpcode = "V6_vS32Ub_ppu";
28769 let DecoderNamespace = "EXT_mmvec";
28770 let Constraints = "$Rx32 = $Rx32in";
28772 def V6_vS32b_ai : HInst<
28773 (outs),
28774 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28775 "vmem($Rt32+#$Ii) = $Vs32",
28776 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28777 let Inst{7-5} = 0b000;
28778 let Inst{12-11} = 0b00;
28779 let Inst{31-21} = 0b00101000001;
28780 let addrMode = BaseImmOffset;
28781 let accessSize = HVXVectorAccess;
28782 let isCVI = 1;
28783 let mayStore = 1;
28784 let BaseOpcode = "V6_vS32b_ai";
28785 let isNVStorable = 1;
28786 let isPredicable = 1;
28787 let DecoderNamespace = "EXT_mmvec";
28789 def V6_vS32b_new_ai : HInst<
28790 (outs),
28791 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28792 "vmem($Rt32+#$Ii) = $Os8.new",
28793 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
28794 let Inst{7-3} = 0b00100;
28795 let Inst{12-11} = 0b00;
28796 let Inst{31-21} = 0b00101000001;
28797 let addrMode = BaseImmOffset;
28798 let accessSize = HVXVectorAccess;
28799 let isNVStore = 1;
28800 let isCVI = 1;
28801 let CVINew = 1;
28802 let isNewValue = 1;
28803 let mayStore = 1;
28804 let BaseOpcode = "V6_vS32b_ai";
28805 let isPredicable = 1;
28806 let DecoderNamespace = "EXT_mmvec";
28807 let opNewValue = 2;
28809 def V6_vS32b_new_npred_ai : HInst<
28810 (outs),
28811 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28812 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28813 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28814 let Inst{7-3} = 0b01101;
28815 let Inst{31-21} = 0b00101000101;
28816 let isPredicated = 1;
28817 let isPredicatedFalse = 1;
28818 let addrMode = BaseImmOffset;
28819 let accessSize = HVXVectorAccess;
28820 let isNVStore = 1;
28821 let isCVI = 1;
28822 let CVINew = 1;
28823 let isNewValue = 1;
28824 let mayStore = 1;
28825 let BaseOpcode = "V6_vS32b_ai";
28826 let DecoderNamespace = "EXT_mmvec";
28827 let opNewValue = 3;
28829 def V6_vS32b_new_npred_pi : HInst<
28830 (outs IntRegs:$Rx32),
28831 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28832 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28833 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28834 let Inst{7-3} = 0b01101;
28835 let Inst{13-13} = 0b0;
28836 let Inst{31-21} = 0b00101001101;
28837 let isPredicated = 1;
28838 let isPredicatedFalse = 1;
28839 let addrMode = PostInc;
28840 let accessSize = HVXVectorAccess;
28841 let isNVStore = 1;
28842 let isCVI = 1;
28843 let CVINew = 1;
28844 let isNewValue = 1;
28845 let mayStore = 1;
28846 let BaseOpcode = "V6_vS32b_pi";
28847 let DecoderNamespace = "EXT_mmvec";
28848 let opNewValue = 4;
28849 let Constraints = "$Rx32 = $Rx32in";
28851 def V6_vS32b_new_npred_ppu : HInst<
28852 (outs IntRegs:$Rx32),
28853 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28854 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28855 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28856 let Inst{10-3} = 0b00001101;
28857 let Inst{31-21} = 0b00101011101;
28858 let isPredicated = 1;
28859 let isPredicatedFalse = 1;
28860 let addrMode = PostInc;
28861 let accessSize = HVXVectorAccess;
28862 let isNVStore = 1;
28863 let isCVI = 1;
28864 let CVINew = 1;
28865 let isNewValue = 1;
28866 let mayStore = 1;
28867 let BaseOpcode = "V6_vS32b_ppu";
28868 let DecoderNamespace = "EXT_mmvec";
28869 let opNewValue = 4;
28870 let Constraints = "$Rx32 = $Rx32in";
28872 def V6_vS32b_new_pi : HInst<
28873 (outs IntRegs:$Rx32),
28874 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28875 "vmem($Rx32++#$Ii) = $Os8.new",
28876 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
28877 let Inst{7-3} = 0b00100;
28878 let Inst{13-11} = 0b000;
28879 let Inst{31-21} = 0b00101001001;
28880 let addrMode = PostInc;
28881 let accessSize = HVXVectorAccess;
28882 let isNVStore = 1;
28883 let isCVI = 1;
28884 let CVINew = 1;
28885 let isNewValue = 1;
28886 let mayStore = 1;
28887 let BaseOpcode = "V6_vS32b_pi";
28888 let isPredicable = 1;
28889 let DecoderNamespace = "EXT_mmvec";
28890 let opNewValue = 3;
28891 let Constraints = "$Rx32 = $Rx32in";
28893 def V6_vS32b_new_ppu : HInst<
28894 (outs IntRegs:$Rx32),
28895 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28896 "vmem($Rx32++$Mu2) = $Os8.new",
28897 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28898 let Inst{12-3} = 0b0000000100;
28899 let Inst{31-21} = 0b00101011001;
28900 let addrMode = PostInc;
28901 let accessSize = HVXVectorAccess;
28902 let isNVStore = 1;
28903 let isCVI = 1;
28904 let CVINew = 1;
28905 let isNewValue = 1;
28906 let mayStore = 1;
28907 let BaseOpcode = "V6_vS32b_ppu";
28908 let isPredicable = 1;
28909 let DecoderNamespace = "EXT_mmvec";
28910 let opNewValue = 3;
28911 let Constraints = "$Rx32 = $Rx32in";
28913 def V6_vS32b_new_pred_ai : HInst<
28914 (outs),
28915 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28916 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28917 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28918 let Inst{7-3} = 0b01000;
28919 let Inst{31-21} = 0b00101000101;
28920 let isPredicated = 1;
28921 let addrMode = BaseImmOffset;
28922 let accessSize = HVXVectorAccess;
28923 let isNVStore = 1;
28924 let isCVI = 1;
28925 let CVINew = 1;
28926 let isNewValue = 1;
28927 let mayStore = 1;
28928 let BaseOpcode = "V6_vS32b_ai";
28929 let DecoderNamespace = "EXT_mmvec";
28930 let opNewValue = 3;
28932 def V6_vS32b_new_pred_pi : HInst<
28933 (outs IntRegs:$Rx32),
28934 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28935 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28936 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28937 let Inst{7-3} = 0b01000;
28938 let Inst{13-13} = 0b0;
28939 let Inst{31-21} = 0b00101001101;
28940 let isPredicated = 1;
28941 let addrMode = PostInc;
28942 let accessSize = HVXVectorAccess;
28943 let isNVStore = 1;
28944 let isCVI = 1;
28945 let CVINew = 1;
28946 let isNewValue = 1;
28947 let mayStore = 1;
28948 let BaseOpcode = "V6_vS32b_pi";
28949 let DecoderNamespace = "EXT_mmvec";
28950 let opNewValue = 4;
28951 let Constraints = "$Rx32 = $Rx32in";
28953 def V6_vS32b_new_pred_ppu : HInst<
28954 (outs IntRegs:$Rx32),
28955 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28956 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28957 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28958 let Inst{10-3} = 0b00001000;
28959 let Inst{31-21} = 0b00101011101;
28960 let isPredicated = 1;
28961 let addrMode = PostInc;
28962 let accessSize = HVXVectorAccess;
28963 let isNVStore = 1;
28964 let isCVI = 1;
28965 let CVINew = 1;
28966 let isNewValue = 1;
28967 let mayStore = 1;
28968 let BaseOpcode = "V6_vS32b_ppu";
28969 let DecoderNamespace = "EXT_mmvec";
28970 let opNewValue = 4;
28971 let Constraints = "$Rx32 = $Rx32in";
28973 def V6_vS32b_npred_ai : HInst<
28974 (outs),
28975 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28976 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
28977 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28978 let Inst{7-5} = 0b001;
28979 let Inst{31-21} = 0b00101000101;
28980 let isPredicated = 1;
28981 let isPredicatedFalse = 1;
28982 let addrMode = BaseImmOffset;
28983 let accessSize = HVXVectorAccess;
28984 let isCVI = 1;
28985 let mayStore = 1;
28986 let BaseOpcode = "V6_vS32b_ai";
28987 let isNVStorable = 1;
28988 let DecoderNamespace = "EXT_mmvec";
28990 def V6_vS32b_npred_pi : HInst<
28991 (outs IntRegs:$Rx32),
28992 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28993 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
28994 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28995 let Inst{7-5} = 0b001;
28996 let Inst{13-13} = 0b0;
28997 let Inst{31-21} = 0b00101001101;
28998 let isPredicated = 1;
28999 let isPredicatedFalse = 1;
29000 let addrMode = PostInc;
29001 let accessSize = HVXVectorAccess;
29002 let isCVI = 1;
29003 let mayStore = 1;
29004 let BaseOpcode = "V6_vS32b_pi";
29005 let isNVStorable = 1;
29006 let DecoderNamespace = "EXT_mmvec";
29007 let Constraints = "$Rx32 = $Rx32in";
29009 def V6_vS32b_npred_ppu : HInst<
29010 (outs IntRegs:$Rx32),
29011 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29012 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29013 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29014 let Inst{10-5} = 0b000001;
29015 let Inst{31-21} = 0b00101011101;
29016 let isPredicated = 1;
29017 let isPredicatedFalse = 1;
29018 let addrMode = PostInc;
29019 let accessSize = HVXVectorAccess;
29020 let isCVI = 1;
29021 let mayStore = 1;
29022 let BaseOpcode = "V6_vS32b_ppu";
29023 let isNVStorable = 1;
29024 let DecoderNamespace = "EXT_mmvec";
29025 let Constraints = "$Rx32 = $Rx32in";
29027 def V6_vS32b_nqpred_ai : HInst<
29028 (outs),
29029 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29030 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29031 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29032 let Inst{7-5} = 0b001;
29033 let Inst{31-21} = 0b00101000100;
29034 let addrMode = BaseImmOffset;
29035 let accessSize = HVXVectorAccess;
29036 let isCVI = 1;
29037 let mayStore = 1;
29038 let DecoderNamespace = "EXT_mmvec";
29040 def V6_vS32b_nqpred_pi : HInst<
29041 (outs IntRegs:$Rx32),
29042 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29043 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29044 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29045 let Inst{7-5} = 0b001;
29046 let Inst{13-13} = 0b0;
29047 let Inst{31-21} = 0b00101001100;
29048 let addrMode = PostInc;
29049 let accessSize = HVXVectorAccess;
29050 let isCVI = 1;
29051 let mayStore = 1;
29052 let DecoderNamespace = "EXT_mmvec";
29053 let Constraints = "$Rx32 = $Rx32in";
29055 def V6_vS32b_nqpred_ppu : HInst<
29056 (outs IntRegs:$Rx32),
29057 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29058 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29059 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29060 let Inst{10-5} = 0b000001;
29061 let Inst{31-21} = 0b00101011100;
29062 let addrMode = PostInc;
29063 let accessSize = HVXVectorAccess;
29064 let isCVI = 1;
29065 let mayStore = 1;
29066 let DecoderNamespace = "EXT_mmvec";
29067 let Constraints = "$Rx32 = $Rx32in";
29069 def V6_vS32b_nt_ai : HInst<
29070 (outs),
29071 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29072 "vmem($Rt32+#$Ii):nt = $Vs32",
29073 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
29074 let Inst{7-5} = 0b000;
29075 let Inst{12-11} = 0b00;
29076 let Inst{31-21} = 0b00101000011;
29077 let addrMode = BaseImmOffset;
29078 let accessSize = HVXVectorAccess;
29079 let isCVI = 1;
29080 let isNonTemporal = 1;
29081 let mayStore = 1;
29082 let BaseOpcode = "V6_vS32b_ai";
29083 let isNVStorable = 1;
29084 let isPredicable = 1;
29085 let DecoderNamespace = "EXT_mmvec";
29087 def V6_vS32b_nt_new_ai : HInst<
29088 (outs),
29089 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29090 "vmem($Rt32+#$Ii):nt = $Os8.new",
29091 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
29092 let Inst{7-3} = 0b00100;
29093 let Inst{12-11} = 0b00;
29094 let Inst{31-21} = 0b00101000011;
29095 let addrMode = BaseImmOffset;
29096 let accessSize = HVXVectorAccess;
29097 let isNVStore = 1;
29098 let isCVI = 1;
29099 let CVINew = 1;
29100 let isNewValue = 1;
29101 let isNonTemporal = 1;
29102 let mayStore = 1;
29103 let BaseOpcode = "V6_vS32b_ai";
29104 let isPredicable = 1;
29105 let DecoderNamespace = "EXT_mmvec";
29106 let opNewValue = 2;
29108 def V6_vS32b_nt_new_npred_ai : HInst<
29109 (outs),
29110 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29111 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29112 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29113 let Inst{7-3} = 0b01111;
29114 let Inst{31-21} = 0b00101000111;
29115 let isPredicated = 1;
29116 let isPredicatedFalse = 1;
29117 let addrMode = BaseImmOffset;
29118 let accessSize = HVXVectorAccess;
29119 let isNVStore = 1;
29120 let isCVI = 1;
29121 let CVINew = 1;
29122 let isNewValue = 1;
29123 let isNonTemporal = 1;
29124 let mayStore = 1;
29125 let BaseOpcode = "V6_vS32b_ai";
29126 let DecoderNamespace = "EXT_mmvec";
29127 let opNewValue = 3;
29129 def V6_vS32b_nt_new_npred_pi : HInst<
29130 (outs IntRegs:$Rx32),
29131 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29132 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29133 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29134 let Inst{7-3} = 0b01111;
29135 let Inst{13-13} = 0b0;
29136 let Inst{31-21} = 0b00101001111;
29137 let isPredicated = 1;
29138 let isPredicatedFalse = 1;
29139 let addrMode = PostInc;
29140 let accessSize = HVXVectorAccess;
29141 let isNVStore = 1;
29142 let isCVI = 1;
29143 let CVINew = 1;
29144 let isNewValue = 1;
29145 let isNonTemporal = 1;
29146 let mayStore = 1;
29147 let BaseOpcode = "V6_vS32b_pi";
29148 let DecoderNamespace = "EXT_mmvec";
29149 let opNewValue = 4;
29150 let Constraints = "$Rx32 = $Rx32in";
29152 def V6_vS32b_nt_new_npred_ppu : HInst<
29153 (outs IntRegs:$Rx32),
29154 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29155 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29156 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29157 let Inst{10-3} = 0b00001111;
29158 let Inst{31-21} = 0b00101011111;
29159 let isPredicated = 1;
29160 let isPredicatedFalse = 1;
29161 let addrMode = PostInc;
29162 let accessSize = HVXVectorAccess;
29163 let isNVStore = 1;
29164 let isCVI = 1;
29165 let CVINew = 1;
29166 let isNewValue = 1;
29167 let isNonTemporal = 1;
29168 let mayStore = 1;
29169 let BaseOpcode = "V6_vS32b_ppu";
29170 let DecoderNamespace = "EXT_mmvec";
29171 let opNewValue = 4;
29172 let Constraints = "$Rx32 = $Rx32in";
29174 def V6_vS32b_nt_new_pi : HInst<
29175 (outs IntRegs:$Rx32),
29176 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29177 "vmem($Rx32++#$Ii):nt = $Os8.new",
29178 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
29179 let Inst{7-3} = 0b00100;
29180 let Inst{13-11} = 0b000;
29181 let Inst{31-21} = 0b00101001011;
29182 let addrMode = PostInc;
29183 let accessSize = HVXVectorAccess;
29184 let isNVStore = 1;
29185 let isCVI = 1;
29186 let CVINew = 1;
29187 let isNewValue = 1;
29188 let isNonTemporal = 1;
29189 let mayStore = 1;
29190 let BaseOpcode = "V6_vS32b_pi";
29191 let isPredicable = 1;
29192 let DecoderNamespace = "EXT_mmvec";
29193 let opNewValue = 3;
29194 let Constraints = "$Rx32 = $Rx32in";
29196 def V6_vS32b_nt_new_ppu : HInst<
29197 (outs IntRegs:$Rx32),
29198 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29199 "vmem($Rx32++$Mu2):nt = $Os8.new",
29200 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29201 let Inst{12-3} = 0b0000000100;
29202 let Inst{31-21} = 0b00101011011;
29203 let addrMode = PostInc;
29204 let accessSize = HVXVectorAccess;
29205 let isNVStore = 1;
29206 let isCVI = 1;
29207 let CVINew = 1;
29208 let isNewValue = 1;
29209 let isNonTemporal = 1;
29210 let mayStore = 1;
29211 let BaseOpcode = "V6_vS32b_ppu";
29212 let isPredicable = 1;
29213 let DecoderNamespace = "EXT_mmvec";
29214 let opNewValue = 3;
29215 let Constraints = "$Rx32 = $Rx32in";
29217 def V6_vS32b_nt_new_pred_ai : HInst<
29218 (outs),
29219 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29220 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29221 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29222 let Inst{7-3} = 0b01010;
29223 let Inst{31-21} = 0b00101000111;
29224 let isPredicated = 1;
29225 let addrMode = BaseImmOffset;
29226 let accessSize = HVXVectorAccess;
29227 let isNVStore = 1;
29228 let isCVI = 1;
29229 let CVINew = 1;
29230 let isNewValue = 1;
29231 let isNonTemporal = 1;
29232 let mayStore = 1;
29233 let BaseOpcode = "V6_vS32b_ai";
29234 let DecoderNamespace = "EXT_mmvec";
29235 let opNewValue = 3;
29237 def V6_vS32b_nt_new_pred_pi : HInst<
29238 (outs IntRegs:$Rx32),
29239 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29240 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29241 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29242 let Inst{7-3} = 0b01010;
29243 let Inst{13-13} = 0b0;
29244 let Inst{31-21} = 0b00101001111;
29245 let isPredicated = 1;
29246 let addrMode = PostInc;
29247 let accessSize = HVXVectorAccess;
29248 let isNVStore = 1;
29249 let isCVI = 1;
29250 let CVINew = 1;
29251 let isNewValue = 1;
29252 let isNonTemporal = 1;
29253 let mayStore = 1;
29254 let BaseOpcode = "V6_vS32b_pi";
29255 let DecoderNamespace = "EXT_mmvec";
29256 let opNewValue = 4;
29257 let Constraints = "$Rx32 = $Rx32in";
29259 def V6_vS32b_nt_new_pred_ppu : HInst<
29260 (outs IntRegs:$Rx32),
29261 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29262 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29263 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29264 let Inst{10-3} = 0b00001010;
29265 let Inst{31-21} = 0b00101011111;
29266 let isPredicated = 1;
29267 let addrMode = PostInc;
29268 let accessSize = HVXVectorAccess;
29269 let isNVStore = 1;
29270 let isCVI = 1;
29271 let CVINew = 1;
29272 let isNewValue = 1;
29273 let isNonTemporal = 1;
29274 let mayStore = 1;
29275 let BaseOpcode = "V6_vS32b_ppu";
29276 let DecoderNamespace = "EXT_mmvec";
29277 let opNewValue = 4;
29278 let Constraints = "$Rx32 = $Rx32in";
29280 def V6_vS32b_nt_npred_ai : HInst<
29281 (outs),
29282 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29283 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29284 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29285 let Inst{7-5} = 0b001;
29286 let Inst{31-21} = 0b00101000111;
29287 let isPredicated = 1;
29288 let isPredicatedFalse = 1;
29289 let addrMode = BaseImmOffset;
29290 let accessSize = HVXVectorAccess;
29291 let isCVI = 1;
29292 let isNonTemporal = 1;
29293 let mayStore = 1;
29294 let BaseOpcode = "V6_vS32b_ai";
29295 let isNVStorable = 1;
29296 let DecoderNamespace = "EXT_mmvec";
29298 def V6_vS32b_nt_npred_pi : HInst<
29299 (outs IntRegs:$Rx32),
29300 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29301 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29302 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29303 let Inst{7-5} = 0b001;
29304 let Inst{13-13} = 0b0;
29305 let Inst{31-21} = 0b00101001111;
29306 let isPredicated = 1;
29307 let isPredicatedFalse = 1;
29308 let addrMode = PostInc;
29309 let accessSize = HVXVectorAccess;
29310 let isCVI = 1;
29311 let isNonTemporal = 1;
29312 let mayStore = 1;
29313 let BaseOpcode = "V6_vS32b_pi";
29314 let isNVStorable = 1;
29315 let DecoderNamespace = "EXT_mmvec";
29316 let Constraints = "$Rx32 = $Rx32in";
29318 def V6_vS32b_nt_npred_ppu : HInst<
29319 (outs IntRegs:$Rx32),
29320 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29321 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29322 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29323 let Inst{10-5} = 0b000001;
29324 let Inst{31-21} = 0b00101011111;
29325 let isPredicated = 1;
29326 let isPredicatedFalse = 1;
29327 let addrMode = PostInc;
29328 let accessSize = HVXVectorAccess;
29329 let isCVI = 1;
29330 let isNonTemporal = 1;
29331 let mayStore = 1;
29332 let BaseOpcode = "V6_vS32b_ppu";
29333 let isNVStorable = 1;
29334 let DecoderNamespace = "EXT_mmvec";
29335 let Constraints = "$Rx32 = $Rx32in";
29337 def V6_vS32b_nt_nqpred_ai : HInst<
29338 (outs),
29339 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29340 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29341 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29342 let Inst{7-5} = 0b001;
29343 let Inst{31-21} = 0b00101000110;
29344 let addrMode = BaseImmOffset;
29345 let accessSize = HVXVectorAccess;
29346 let isCVI = 1;
29347 let isNonTemporal = 1;
29348 let mayStore = 1;
29349 let DecoderNamespace = "EXT_mmvec";
29351 def V6_vS32b_nt_nqpred_pi : HInst<
29352 (outs IntRegs:$Rx32),
29353 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29354 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29355 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29356 let Inst{7-5} = 0b001;
29357 let Inst{13-13} = 0b0;
29358 let Inst{31-21} = 0b00101001110;
29359 let addrMode = PostInc;
29360 let accessSize = HVXVectorAccess;
29361 let isCVI = 1;
29362 let isNonTemporal = 1;
29363 let mayStore = 1;
29364 let DecoderNamespace = "EXT_mmvec";
29365 let Constraints = "$Rx32 = $Rx32in";
29367 def V6_vS32b_nt_nqpred_ppu : HInst<
29368 (outs IntRegs:$Rx32),
29369 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29370 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29371 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29372 let Inst{10-5} = 0b000001;
29373 let Inst{31-21} = 0b00101011110;
29374 let addrMode = PostInc;
29375 let accessSize = HVXVectorAccess;
29376 let isCVI = 1;
29377 let isNonTemporal = 1;
29378 let mayStore = 1;
29379 let DecoderNamespace = "EXT_mmvec";
29380 let Constraints = "$Rx32 = $Rx32in";
29382 def V6_vS32b_nt_pi : HInst<
29383 (outs IntRegs:$Rx32),
29384 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29385 "vmem($Rx32++#$Ii):nt = $Vs32",
29386 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
29387 let Inst{7-5} = 0b000;
29388 let Inst{13-11} = 0b000;
29389 let Inst{31-21} = 0b00101001011;
29390 let addrMode = PostInc;
29391 let accessSize = HVXVectorAccess;
29392 let isCVI = 1;
29393 let isNonTemporal = 1;
29394 let mayStore = 1;
29395 let BaseOpcode = "V6_vS32b_pi";
29396 let isNVStorable = 1;
29397 let isPredicable = 1;
29398 let DecoderNamespace = "EXT_mmvec";
29399 let Constraints = "$Rx32 = $Rx32in";
29401 def V6_vS32b_nt_ppu : HInst<
29402 (outs IntRegs:$Rx32),
29403 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29404 "vmem($Rx32++$Mu2):nt = $Vs32",
29405 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29406 let Inst{12-5} = 0b00000000;
29407 let Inst{31-21} = 0b00101011011;
29408 let addrMode = PostInc;
29409 let accessSize = HVXVectorAccess;
29410 let isCVI = 1;
29411 let isNonTemporal = 1;
29412 let mayStore = 1;
29413 let BaseOpcode = "V6_vS32b_ppu";
29414 let isNVStorable = 1;
29415 let isPredicable = 1;
29416 let DecoderNamespace = "EXT_mmvec";
29417 let Constraints = "$Rx32 = $Rx32in";
29419 def V6_vS32b_nt_pred_ai : HInst<
29420 (outs),
29421 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29422 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29423 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29424 let Inst{7-5} = 0b000;
29425 let Inst{31-21} = 0b00101000111;
29426 let isPredicated = 1;
29427 let addrMode = BaseImmOffset;
29428 let accessSize = HVXVectorAccess;
29429 let isCVI = 1;
29430 let isNonTemporal = 1;
29431 let mayStore = 1;
29432 let BaseOpcode = "V6_vS32b_ai";
29433 let isNVStorable = 1;
29434 let DecoderNamespace = "EXT_mmvec";
29436 def V6_vS32b_nt_pred_pi : HInst<
29437 (outs IntRegs:$Rx32),
29438 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29439 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29440 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29441 let Inst{7-5} = 0b000;
29442 let Inst{13-13} = 0b0;
29443 let Inst{31-21} = 0b00101001111;
29444 let isPredicated = 1;
29445 let addrMode = PostInc;
29446 let accessSize = HVXVectorAccess;
29447 let isCVI = 1;
29448 let isNonTemporal = 1;
29449 let mayStore = 1;
29450 let BaseOpcode = "V6_vS32b_pi";
29451 let isNVStorable = 1;
29452 let DecoderNamespace = "EXT_mmvec";
29453 let Constraints = "$Rx32 = $Rx32in";
29455 def V6_vS32b_nt_pred_ppu : HInst<
29456 (outs IntRegs:$Rx32),
29457 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29458 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29459 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29460 let Inst{10-5} = 0b000000;
29461 let Inst{31-21} = 0b00101011111;
29462 let isPredicated = 1;
29463 let addrMode = PostInc;
29464 let accessSize = HVXVectorAccess;
29465 let isCVI = 1;
29466 let isNonTemporal = 1;
29467 let mayStore = 1;
29468 let BaseOpcode = "V6_vS32b_ppu";
29469 let isNVStorable = 1;
29470 let DecoderNamespace = "EXT_mmvec";
29471 let Constraints = "$Rx32 = $Rx32in";
29473 def V6_vS32b_nt_qpred_ai : HInst<
29474 (outs),
29475 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29476 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29477 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29478 let Inst{7-5} = 0b000;
29479 let Inst{31-21} = 0b00101000110;
29480 let addrMode = BaseImmOffset;
29481 let accessSize = HVXVectorAccess;
29482 let isCVI = 1;
29483 let isNonTemporal = 1;
29484 let mayStore = 1;
29485 let DecoderNamespace = "EXT_mmvec";
29487 def V6_vS32b_nt_qpred_pi : HInst<
29488 (outs IntRegs:$Rx32),
29489 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29490 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29491 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29492 let Inst{7-5} = 0b000;
29493 let Inst{13-13} = 0b0;
29494 let Inst{31-21} = 0b00101001110;
29495 let addrMode = PostInc;
29496 let accessSize = HVXVectorAccess;
29497 let isCVI = 1;
29498 let isNonTemporal = 1;
29499 let mayStore = 1;
29500 let DecoderNamespace = "EXT_mmvec";
29501 let Constraints = "$Rx32 = $Rx32in";
29503 def V6_vS32b_nt_qpred_ppu : HInst<
29504 (outs IntRegs:$Rx32),
29505 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29506 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29507 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29508 let Inst{10-5} = 0b000000;
29509 let Inst{31-21} = 0b00101011110;
29510 let addrMode = PostInc;
29511 let accessSize = HVXVectorAccess;
29512 let isCVI = 1;
29513 let isNonTemporal = 1;
29514 let mayStore = 1;
29515 let DecoderNamespace = "EXT_mmvec";
29516 let Constraints = "$Rx32 = $Rx32in";
29518 def V6_vS32b_pi : HInst<
29519 (outs IntRegs:$Rx32),
29520 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29521 "vmem($Rx32++#$Ii) = $Vs32",
29522 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
29523 let Inst{7-5} = 0b000;
29524 let Inst{13-11} = 0b000;
29525 let Inst{31-21} = 0b00101001001;
29526 let addrMode = PostInc;
29527 let accessSize = HVXVectorAccess;
29528 let isCVI = 1;
29529 let mayStore = 1;
29530 let BaseOpcode = "V6_vS32b_pi";
29531 let isNVStorable = 1;
29532 let isPredicable = 1;
29533 let DecoderNamespace = "EXT_mmvec";
29534 let Constraints = "$Rx32 = $Rx32in";
29536 def V6_vS32b_ppu : HInst<
29537 (outs IntRegs:$Rx32),
29538 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29539 "vmem($Rx32++$Mu2) = $Vs32",
29540 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29541 let Inst{12-5} = 0b00000000;
29542 let Inst{31-21} = 0b00101011001;
29543 let addrMode = PostInc;
29544 let accessSize = HVXVectorAccess;
29545 let isCVI = 1;
29546 let mayStore = 1;
29547 let BaseOpcode = "V6_vS32b_ppu";
29548 let isNVStorable = 1;
29549 let isPredicable = 1;
29550 let DecoderNamespace = "EXT_mmvec";
29551 let Constraints = "$Rx32 = $Rx32in";
29553 def V6_vS32b_pred_ai : HInst<
29554 (outs),
29555 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29556 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
29557 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29558 let Inst{7-5} = 0b000;
29559 let Inst{31-21} = 0b00101000101;
29560 let isPredicated = 1;
29561 let addrMode = BaseImmOffset;
29562 let accessSize = HVXVectorAccess;
29563 let isCVI = 1;
29564 let mayStore = 1;
29565 let BaseOpcode = "V6_vS32b_ai";
29566 let isNVStorable = 1;
29567 let DecoderNamespace = "EXT_mmvec";
29569 def V6_vS32b_pred_pi : HInst<
29570 (outs IntRegs:$Rx32),
29571 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29572 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
29573 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29574 let Inst{7-5} = 0b000;
29575 let Inst{13-13} = 0b0;
29576 let Inst{31-21} = 0b00101001101;
29577 let isPredicated = 1;
29578 let addrMode = PostInc;
29579 let accessSize = HVXVectorAccess;
29580 let isCVI = 1;
29581 let mayStore = 1;
29582 let BaseOpcode = "V6_vS32b_pi";
29583 let isNVStorable = 1;
29584 let DecoderNamespace = "EXT_mmvec";
29585 let Constraints = "$Rx32 = $Rx32in";
29587 def V6_vS32b_pred_ppu : HInst<
29588 (outs IntRegs:$Rx32),
29589 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29590 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
29591 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29592 let Inst{10-5} = 0b000000;
29593 let Inst{31-21} = 0b00101011101;
29594 let isPredicated = 1;
29595 let addrMode = PostInc;
29596 let accessSize = HVXVectorAccess;
29597 let isCVI = 1;
29598 let mayStore = 1;
29599 let BaseOpcode = "V6_vS32b_ppu";
29600 let isNVStorable = 1;
29601 let DecoderNamespace = "EXT_mmvec";
29602 let Constraints = "$Rx32 = $Rx32in";
29604 def V6_vS32b_qpred_ai : HInst<
29605 (outs),
29606 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29607 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
29608 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29609 let Inst{7-5} = 0b000;
29610 let Inst{31-21} = 0b00101000100;
29611 let addrMode = BaseImmOffset;
29612 let accessSize = HVXVectorAccess;
29613 let isCVI = 1;
29614 let mayStore = 1;
29615 let DecoderNamespace = "EXT_mmvec";
29617 def V6_vS32b_qpred_pi : HInst<
29618 (outs IntRegs:$Rx32),
29619 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29620 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
29621 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29622 let Inst{7-5} = 0b000;
29623 let Inst{13-13} = 0b0;
29624 let Inst{31-21} = 0b00101001100;
29625 let addrMode = PostInc;
29626 let accessSize = HVXVectorAccess;
29627 let isCVI = 1;
29628 let mayStore = 1;
29629 let DecoderNamespace = "EXT_mmvec";
29630 let Constraints = "$Rx32 = $Rx32in";
29632 def V6_vS32b_qpred_ppu : HInst<
29633 (outs IntRegs:$Rx32),
29634 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29635 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
29636 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29637 let Inst{10-5} = 0b000000;
29638 let Inst{31-21} = 0b00101011100;
29639 let addrMode = PostInc;
29640 let accessSize = HVXVectorAccess;
29641 let isCVI = 1;
29642 let mayStore = 1;
29643 let DecoderNamespace = "EXT_mmvec";
29644 let Constraints = "$Rx32 = $Rx32in";
29646 def V6_vS32b_srls_ai : HInst<
29647 (outs),
29648 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
29649 "vmem($Rt32+#$Ii):scatter_release",
29650 tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
29651 let Inst{7-0} = 0b00101000;
29652 let Inst{12-11} = 0b00;
29653 let Inst{31-21} = 0b00101000001;
29654 let addrMode = BaseImmOffset;
29655 let accessSize = HVXVectorAccess;
29656 let isCVI = 1;
29657 let CVINew = 1;
29658 let mayStore = 1;
29659 let DecoderNamespace = "EXT_mmvec";
29661 def V6_vS32b_srls_pi : HInst<
29662 (outs IntRegs:$Rx32),
29663 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
29664 "vmem($Rx32++#$Ii):scatter_release",
29665 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
29666 let Inst{7-0} = 0b00101000;
29667 let Inst{13-11} = 0b000;
29668 let Inst{31-21} = 0b00101001001;
29669 let addrMode = PostInc;
29670 let accessSize = HVXVectorAccess;
29671 let isCVI = 1;
29672 let CVINew = 1;
29673 let mayStore = 1;
29674 let DecoderNamespace = "EXT_mmvec";
29675 let Constraints = "$Rx32 = $Rx32in";
29677 def V6_vS32b_srls_ppu : HInst<
29678 (outs IntRegs:$Rx32),
29679 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
29680 "vmem($Rx32++$Mu2):scatter_release",
29681 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
29682 let Inst{12-0} = 0b0000000101000;
29683 let Inst{31-21} = 0b00101011001;
29684 let addrMode = PostInc;
29685 let accessSize = HVXVectorAccess;
29686 let isCVI = 1;
29687 let CVINew = 1;
29688 let mayStore = 1;
29689 let DecoderNamespace = "EXT_mmvec";
29690 let Constraints = "$Rx32 = $Rx32in";
29692 def V6_vabsb : HInst<
29693 (outs HvxVR:$Vd32),
29694 (ins HvxVR:$Vu32),
29695 "$Vd32.b = vabs($Vu32.b)",
29696 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29697 let Inst{7-5} = 0b100;
29698 let Inst{13-13} = 0b0;
29699 let Inst{31-16} = 0b0001111000000001;
29700 let hasNewValue = 1;
29701 let opNewValue = 0;
29702 let isCVI = 1;
29703 let DecoderNamespace = "EXT_mmvec";
29705 def V6_vabsb_alt : HInst<
29706 (outs HvxVR:$Vd32),
29707 (ins HvxVR:$Vu32),
29708 "$Vd32 = vabsb($Vu32)",
29709 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29710 let hasNewValue = 1;
29711 let opNewValue = 0;
29712 let isCVI = 1;
29713 let isPseudo = 1;
29714 let isCodeGenOnly = 1;
29715 let DecoderNamespace = "EXT_mmvec";
29717 def V6_vabsb_sat : HInst<
29718 (outs HvxVR:$Vd32),
29719 (ins HvxVR:$Vu32),
29720 "$Vd32.b = vabs($Vu32.b):sat",
29721 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29722 let Inst{7-5} = 0b101;
29723 let Inst{13-13} = 0b0;
29724 let Inst{31-16} = 0b0001111000000001;
29725 let hasNewValue = 1;
29726 let opNewValue = 0;
29727 let isCVI = 1;
29728 let DecoderNamespace = "EXT_mmvec";
29730 def V6_vabsb_sat_alt : HInst<
29731 (outs HvxVR:$Vd32),
29732 (ins HvxVR:$Vu32),
29733 "$Vd32 = vabsb($Vu32):sat",
29734 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29735 let hasNewValue = 1;
29736 let opNewValue = 0;
29737 let isCVI = 1;
29738 let isPseudo = 1;
29739 let isCodeGenOnly = 1;
29740 let DecoderNamespace = "EXT_mmvec";
29742 def V6_vabsdiffh : HInst<
29743 (outs HvxVR:$Vd32),
29744 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29745 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29746 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29747 let Inst{7-5} = 0b001;
29748 let Inst{13-13} = 0b0;
29749 let Inst{31-21} = 0b00011100110;
29750 let hasNewValue = 1;
29751 let opNewValue = 0;
29752 let isCVI = 1;
29753 let DecoderNamespace = "EXT_mmvec";
29755 def V6_vabsdiffh_alt : HInst<
29756 (outs HvxVR:$Vd32),
29757 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29758 "$Vd32 = vabsdiffh($Vu32,$Vv32)",
29759 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29760 let hasNewValue = 1;
29761 let opNewValue = 0;
29762 let isCVI = 1;
29763 let isPseudo = 1;
29764 let isCodeGenOnly = 1;
29765 let DecoderNamespace = "EXT_mmvec";
29767 def V6_vabsdiffub : HInst<
29768 (outs HvxVR:$Vd32),
29769 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29770 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29771 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29772 let Inst{7-5} = 0b000;
29773 let Inst{13-13} = 0b0;
29774 let Inst{31-21} = 0b00011100110;
29775 let hasNewValue = 1;
29776 let opNewValue = 0;
29777 let isCVI = 1;
29778 let DecoderNamespace = "EXT_mmvec";
29780 def V6_vabsdiffub_alt : HInst<
29781 (outs HvxVR:$Vd32),
29782 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29783 "$Vd32 = vabsdiffub($Vu32,$Vv32)",
29784 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29785 let hasNewValue = 1;
29786 let opNewValue = 0;
29787 let isCVI = 1;
29788 let isPseudo = 1;
29789 let isCodeGenOnly = 1;
29790 let DecoderNamespace = "EXT_mmvec";
29792 def V6_vabsdiffuh : HInst<
29793 (outs HvxVR:$Vd32),
29794 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29795 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
29796 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29797 let Inst{7-5} = 0b010;
29798 let Inst{13-13} = 0b0;
29799 let Inst{31-21} = 0b00011100110;
29800 let hasNewValue = 1;
29801 let opNewValue = 0;
29802 let isCVI = 1;
29803 let DecoderNamespace = "EXT_mmvec";
29805 def V6_vabsdiffuh_alt : HInst<
29806 (outs HvxVR:$Vd32),
29807 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29808 "$Vd32 = vabsdiffuh($Vu32,$Vv32)",
29809 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29810 let hasNewValue = 1;
29811 let opNewValue = 0;
29812 let isCVI = 1;
29813 let isPseudo = 1;
29814 let isCodeGenOnly = 1;
29815 let DecoderNamespace = "EXT_mmvec";
29817 def V6_vabsdiffw : HInst<
29818 (outs HvxVR:$Vd32),
29819 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29820 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
29821 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29822 let Inst{7-5} = 0b011;
29823 let Inst{13-13} = 0b0;
29824 let Inst{31-21} = 0b00011100110;
29825 let hasNewValue = 1;
29826 let opNewValue = 0;
29827 let isCVI = 1;
29828 let DecoderNamespace = "EXT_mmvec";
29830 def V6_vabsdiffw_alt : HInst<
29831 (outs HvxVR:$Vd32),
29832 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29833 "$Vd32 = vabsdiffw($Vu32,$Vv32)",
29834 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29835 let hasNewValue = 1;
29836 let opNewValue = 0;
29837 let isCVI = 1;
29838 let isPseudo = 1;
29839 let isCodeGenOnly = 1;
29840 let DecoderNamespace = "EXT_mmvec";
29842 def V6_vabsh : HInst<
29843 (outs HvxVR:$Vd32),
29844 (ins HvxVR:$Vu32),
29845 "$Vd32.h = vabs($Vu32.h)",
29846 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29847 let Inst{7-5} = 0b000;
29848 let Inst{13-13} = 0b0;
29849 let Inst{31-16} = 0b0001111000000000;
29850 let hasNewValue = 1;
29851 let opNewValue = 0;
29852 let isCVI = 1;
29853 let DecoderNamespace = "EXT_mmvec";
29855 def V6_vabsh_alt : HInst<
29856 (outs HvxVR:$Vd32),
29857 (ins HvxVR:$Vu32),
29858 "$Vd32 = vabsh($Vu32)",
29859 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29860 let hasNewValue = 1;
29861 let opNewValue = 0;
29862 let isCVI = 1;
29863 let isPseudo = 1;
29864 let isCodeGenOnly = 1;
29865 let DecoderNamespace = "EXT_mmvec";
29867 def V6_vabsh_sat : HInst<
29868 (outs HvxVR:$Vd32),
29869 (ins HvxVR:$Vu32),
29870 "$Vd32.h = vabs($Vu32.h):sat",
29871 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29872 let Inst{7-5} = 0b001;
29873 let Inst{13-13} = 0b0;
29874 let Inst{31-16} = 0b0001111000000000;
29875 let hasNewValue = 1;
29876 let opNewValue = 0;
29877 let isCVI = 1;
29878 let DecoderNamespace = "EXT_mmvec";
29880 def V6_vabsh_sat_alt : HInst<
29881 (outs HvxVR:$Vd32),
29882 (ins HvxVR:$Vu32),
29883 "$Vd32 = vabsh($Vu32):sat",
29884 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29885 let hasNewValue = 1;
29886 let opNewValue = 0;
29887 let isCVI = 1;
29888 let isPseudo = 1;
29889 let isCodeGenOnly = 1;
29890 let DecoderNamespace = "EXT_mmvec";
29892 def V6_vabsub_alt : HInst<
29893 (outs HvxVR:$Vd32),
29894 (ins HvxVR:$Vu32),
29895 "$Vd32.ub = vabs($Vu32.b)",
29896 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29897 let hasNewValue = 1;
29898 let opNewValue = 0;
29899 let isCVI = 1;
29900 let isPseudo = 1;
29901 let isCodeGenOnly = 1;
29902 let DecoderNamespace = "EXT_mmvec";
29904 def V6_vabsuh_alt : HInst<
29905 (outs HvxVR:$Vd32),
29906 (ins HvxVR:$Vu32),
29907 "$Vd32.uh = vabs($Vu32.h)",
29908 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29909 let hasNewValue = 1;
29910 let opNewValue = 0;
29911 let isCVI = 1;
29912 let isPseudo = 1;
29913 let isCodeGenOnly = 1;
29914 let DecoderNamespace = "EXT_mmvec";
29916 def V6_vabsuw_alt : HInst<
29917 (outs HvxVR:$Vd32),
29918 (ins HvxVR:$Vu32),
29919 "$Vd32.uw = vabs($Vu32.w)",
29920 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29921 let hasNewValue = 1;
29922 let opNewValue = 0;
29923 let isCVI = 1;
29924 let isPseudo = 1;
29925 let isCodeGenOnly = 1;
29926 let DecoderNamespace = "EXT_mmvec";
29928 def V6_vabsw : HInst<
29929 (outs HvxVR:$Vd32),
29930 (ins HvxVR:$Vu32),
29931 "$Vd32.w = vabs($Vu32.w)",
29932 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29933 let Inst{7-5} = 0b010;
29934 let Inst{13-13} = 0b0;
29935 let Inst{31-16} = 0b0001111000000000;
29936 let hasNewValue = 1;
29937 let opNewValue = 0;
29938 let isCVI = 1;
29939 let DecoderNamespace = "EXT_mmvec";
29941 def V6_vabsw_alt : HInst<
29942 (outs HvxVR:$Vd32),
29943 (ins HvxVR:$Vu32),
29944 "$Vd32 = vabsw($Vu32)",
29945 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29946 let hasNewValue = 1;
29947 let opNewValue = 0;
29948 let isCVI = 1;
29949 let isPseudo = 1;
29950 let isCodeGenOnly = 1;
29951 let DecoderNamespace = "EXT_mmvec";
29953 def V6_vabsw_sat : HInst<
29954 (outs HvxVR:$Vd32),
29955 (ins HvxVR:$Vu32),
29956 "$Vd32.w = vabs($Vu32.w):sat",
29957 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29958 let Inst{7-5} = 0b011;
29959 let Inst{13-13} = 0b0;
29960 let Inst{31-16} = 0b0001111000000000;
29961 let hasNewValue = 1;
29962 let opNewValue = 0;
29963 let isCVI = 1;
29964 let DecoderNamespace = "EXT_mmvec";
29966 def V6_vabsw_sat_alt : HInst<
29967 (outs HvxVR:$Vd32),
29968 (ins HvxVR:$Vu32),
29969 "$Vd32 = vabsw($Vu32):sat",
29970 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29971 let hasNewValue = 1;
29972 let opNewValue = 0;
29973 let isCVI = 1;
29974 let isPseudo = 1;
29975 let isCodeGenOnly = 1;
29976 let DecoderNamespace = "EXT_mmvec";
29978 def V6_vaddb : HInst<
29979 (outs HvxVR:$Vd32),
29980 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29981 "$Vd32.b = vadd($Vu32.b,$Vv32.b)",
29982 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29983 let Inst{7-5} = 0b110;
29984 let Inst{13-13} = 0b0;
29985 let Inst{31-21} = 0b00011111101;
29986 let hasNewValue = 1;
29987 let opNewValue = 0;
29988 let isCVI = 1;
29989 let DecoderNamespace = "EXT_mmvec";
29991 def V6_vaddb_alt : HInst<
29992 (outs HvxVR:$Vd32),
29993 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29994 "$Vd32 = vaddb($Vu32,$Vv32)",
29995 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29996 let hasNewValue = 1;
29997 let opNewValue = 0;
29998 let isCVI = 1;
29999 let isPseudo = 1;
30000 let isCodeGenOnly = 1;
30001 let DecoderNamespace = "EXT_mmvec";
30003 def V6_vaddb_dv : HInst<
30004 (outs HvxWR:$Vdd32),
30005 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30006 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
30007 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30008 let Inst{7-5} = 0b100;
30009 let Inst{13-13} = 0b0;
30010 let Inst{31-21} = 0b00011100011;
30011 let hasNewValue = 1;
30012 let opNewValue = 0;
30013 let isCVI = 1;
30014 let DecoderNamespace = "EXT_mmvec";
30016 def V6_vaddb_dv_alt : HInst<
30017 (outs HvxWR:$Vdd32),
30018 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30019 "$Vdd32 = vaddb($Vuu32,$Vvv32)",
30020 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30021 let hasNewValue = 1;
30022 let opNewValue = 0;
30023 let isCVI = 1;
30024 let isPseudo = 1;
30025 let isCodeGenOnly = 1;
30026 let DecoderNamespace = "EXT_mmvec";
30028 def V6_vaddbnq : HInst<
30029 (outs HvxVR:$Vx32),
30030 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30031 "if (!$Qv4) $Vx32.b += $Vu32.b",
30032 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30033 let Inst{7-5} = 0b011;
30034 let Inst{13-13} = 0b1;
30035 let Inst{21-16} = 0b000001;
30036 let Inst{31-24} = 0b00011110;
30037 let hasNewValue = 1;
30038 let opNewValue = 0;
30039 let isAccumulator = 1;
30040 let isCVI = 1;
30041 let DecoderNamespace = "EXT_mmvec";
30042 let Constraints = "$Vx32 = $Vx32in";
30044 def V6_vaddbnq_alt : HInst<
30045 (outs HvxVR:$Vx32),
30046 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30047 "if (!$Qv4.b) $Vx32.b += $Vu32.b",
30048 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30049 let hasNewValue = 1;
30050 let opNewValue = 0;
30051 let isAccumulator = 1;
30052 let isCVI = 1;
30053 let isPseudo = 1;
30054 let isCodeGenOnly = 1;
30055 let DecoderNamespace = "EXT_mmvec";
30056 let Constraints = "$Vx32 = $Vx32in";
30058 def V6_vaddbq : HInst<
30059 (outs HvxVR:$Vx32),
30060 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30061 "if ($Qv4) $Vx32.b += $Vu32.b",
30062 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30063 let Inst{7-5} = 0b000;
30064 let Inst{13-13} = 0b1;
30065 let Inst{21-16} = 0b000001;
30066 let Inst{31-24} = 0b00011110;
30067 let hasNewValue = 1;
30068 let opNewValue = 0;
30069 let isAccumulator = 1;
30070 let isCVI = 1;
30071 let DecoderNamespace = "EXT_mmvec";
30072 let Constraints = "$Vx32 = $Vx32in";
30074 def V6_vaddbq_alt : HInst<
30075 (outs HvxVR:$Vx32),
30076 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30077 "if ($Qv4.b) $Vx32.b += $Vu32.b",
30078 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30079 let hasNewValue = 1;
30080 let opNewValue = 0;
30081 let isAccumulator = 1;
30082 let isCVI = 1;
30083 let isPseudo = 1;
30084 let isCodeGenOnly = 1;
30085 let DecoderNamespace = "EXT_mmvec";
30086 let Constraints = "$Vx32 = $Vx32in";
30088 def V6_vaddbsat : HInst<
30089 (outs HvxVR:$Vd32),
30090 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30091 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
30092 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30093 let Inst{7-5} = 0b000;
30094 let Inst{13-13} = 0b0;
30095 let Inst{31-21} = 0b00011111000;
30096 let hasNewValue = 1;
30097 let opNewValue = 0;
30098 let isCVI = 1;
30099 let DecoderNamespace = "EXT_mmvec";
30101 def V6_vaddbsat_alt : HInst<
30102 (outs HvxVR:$Vd32),
30103 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30104 "$Vd32 = vaddb($Vu32,$Vv32):sat",
30105 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30106 let hasNewValue = 1;
30107 let opNewValue = 0;
30108 let isCVI = 1;
30109 let isPseudo = 1;
30110 let isCodeGenOnly = 1;
30111 let DecoderNamespace = "EXT_mmvec";
30113 def V6_vaddbsat_dv : HInst<
30114 (outs HvxWR:$Vdd32),
30115 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30116 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
30117 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30118 let Inst{7-5} = 0b000;
30119 let Inst{13-13} = 0b0;
30120 let Inst{31-21} = 0b00011110101;
30121 let hasNewValue = 1;
30122 let opNewValue = 0;
30123 let isCVI = 1;
30124 let DecoderNamespace = "EXT_mmvec";
30126 def V6_vaddbsat_dv_alt : HInst<
30127 (outs HvxWR:$Vdd32),
30128 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30129 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
30130 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30131 let hasNewValue = 1;
30132 let opNewValue = 0;
30133 let isCVI = 1;
30134 let isPseudo = 1;
30135 let isCodeGenOnly = 1;
30136 let DecoderNamespace = "EXT_mmvec";
30138 def V6_vaddcarry : HInst<
30139 (outs HvxVR:$Vd32, HvxQR:$Qx4),
30140 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
30141 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
30142 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
30143 let Inst{7-7} = 0b0;
30144 let Inst{13-13} = 0b1;
30145 let Inst{31-21} = 0b00011100101;
30146 let hasNewValue = 1;
30147 let opNewValue = 0;
30148 let isCVI = 1;
30149 let DecoderNamespace = "EXT_mmvec";
30150 let Constraints = "$Qx4 = $Qx4in";
30152 def V6_vaddcarryo : HInst<
30153 (outs HvxVR:$Vd32, HvxQR:$Qe4),
30154 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30155 "$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
30156 tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
30157 let Inst{7-7} = 0b0;
30158 let Inst{13-13} = 0b1;
30159 let Inst{31-21} = 0b00011101101;
30160 let hasNewValue = 1;
30161 let opNewValue = 0;
30162 let hasNewValue2 = 1;
30163 let opNewValue2 = 1;
30164 let isCVI = 1;
30165 let DecoderNamespace = "EXT_mmvec";
30167 def V6_vaddcarrysat : HInst<
30168 (outs HvxVR:$Vd32),
30169 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
30170 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
30171 tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
30172 let Inst{7-7} = 0b0;
30173 let Inst{13-13} = 0b1;
30174 let Inst{31-21} = 0b00011101100;
30175 let hasNewValue = 1;
30176 let opNewValue = 0;
30177 let isCVI = 1;
30178 let DecoderNamespace = "EXT_mmvec";
30180 def V6_vaddclbh : HInst<
30181 (outs HvxVR:$Vd32),
30182 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30183 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
30184 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30185 let Inst{7-5} = 0b000;
30186 let Inst{13-13} = 0b1;
30187 let Inst{31-21} = 0b00011111000;
30188 let hasNewValue = 1;
30189 let opNewValue = 0;
30190 let isCVI = 1;
30191 let DecoderNamespace = "EXT_mmvec";
30193 def V6_vaddclbw : HInst<
30194 (outs HvxVR:$Vd32),
30195 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30196 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
30197 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30198 let Inst{7-5} = 0b001;
30199 let Inst{13-13} = 0b1;
30200 let Inst{31-21} = 0b00011111000;
30201 let hasNewValue = 1;
30202 let opNewValue = 0;
30203 let isCVI = 1;
30204 let DecoderNamespace = "EXT_mmvec";
30206 def V6_vaddh : HInst<
30207 (outs HvxVR:$Vd32),
30208 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30209 "$Vd32.h = vadd($Vu32.h,$Vv32.h)",
30210 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30211 let Inst{7-5} = 0b111;
30212 let Inst{13-13} = 0b0;
30213 let Inst{31-21} = 0b00011111101;
30214 let hasNewValue = 1;
30215 let opNewValue = 0;
30216 let isCVI = 1;
30217 let DecoderNamespace = "EXT_mmvec";
30219 def V6_vaddh_alt : HInst<
30220 (outs HvxVR:$Vd32),
30221 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30222 "$Vd32 = vaddh($Vu32,$Vv32)",
30223 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30224 let hasNewValue = 1;
30225 let opNewValue = 0;
30226 let isCVI = 1;
30227 let isPseudo = 1;
30228 let isCodeGenOnly = 1;
30229 let DecoderNamespace = "EXT_mmvec";
30231 def V6_vaddh_dv : HInst<
30232 (outs HvxWR:$Vdd32),
30233 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30234 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
30235 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30236 let Inst{7-5} = 0b101;
30237 let Inst{13-13} = 0b0;
30238 let Inst{31-21} = 0b00011100011;
30239 let hasNewValue = 1;
30240 let opNewValue = 0;
30241 let isCVI = 1;
30242 let DecoderNamespace = "EXT_mmvec";
30244 def V6_vaddh_dv_alt : HInst<
30245 (outs HvxWR:$Vdd32),
30246 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30247 "$Vdd32 = vaddh($Vuu32,$Vvv32)",
30248 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30249 let hasNewValue = 1;
30250 let opNewValue = 0;
30251 let isCVI = 1;
30252 let isPseudo = 1;
30253 let isCodeGenOnly = 1;
30254 let DecoderNamespace = "EXT_mmvec";
30256 def V6_vaddhnq : HInst<
30257 (outs HvxVR:$Vx32),
30258 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30259 "if (!$Qv4) $Vx32.h += $Vu32.h",
30260 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30261 let Inst{7-5} = 0b100;
30262 let Inst{13-13} = 0b1;
30263 let Inst{21-16} = 0b000001;
30264 let Inst{31-24} = 0b00011110;
30265 let hasNewValue = 1;
30266 let opNewValue = 0;
30267 let isAccumulator = 1;
30268 let isCVI = 1;
30269 let DecoderNamespace = "EXT_mmvec";
30270 let Constraints = "$Vx32 = $Vx32in";
30272 def V6_vaddhnq_alt : HInst<
30273 (outs HvxVR:$Vx32),
30274 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30275 "if (!$Qv4.h) $Vx32.h += $Vu32.h",
30276 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30277 let hasNewValue = 1;
30278 let opNewValue = 0;
30279 let isAccumulator = 1;
30280 let isCVI = 1;
30281 let isPseudo = 1;
30282 let isCodeGenOnly = 1;
30283 let DecoderNamespace = "EXT_mmvec";
30284 let Constraints = "$Vx32 = $Vx32in";
30286 def V6_vaddhq : HInst<
30287 (outs HvxVR:$Vx32),
30288 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30289 "if ($Qv4) $Vx32.h += $Vu32.h",
30290 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30291 let Inst{7-5} = 0b001;
30292 let Inst{13-13} = 0b1;
30293 let Inst{21-16} = 0b000001;
30294 let Inst{31-24} = 0b00011110;
30295 let hasNewValue = 1;
30296 let opNewValue = 0;
30297 let isAccumulator = 1;
30298 let isCVI = 1;
30299 let DecoderNamespace = "EXT_mmvec";
30300 let Constraints = "$Vx32 = $Vx32in";
30302 def V6_vaddhq_alt : HInst<
30303 (outs HvxVR:$Vx32),
30304 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30305 "if ($Qv4.h) $Vx32.h += $Vu32.h",
30306 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30307 let hasNewValue = 1;
30308 let opNewValue = 0;
30309 let isAccumulator = 1;
30310 let isCVI = 1;
30311 let isPseudo = 1;
30312 let isCodeGenOnly = 1;
30313 let DecoderNamespace = "EXT_mmvec";
30314 let Constraints = "$Vx32 = $Vx32in";
30316 def V6_vaddhsat : HInst<
30317 (outs HvxVR:$Vd32),
30318 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30319 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
30320 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30321 let Inst{7-5} = 0b011;
30322 let Inst{13-13} = 0b0;
30323 let Inst{31-21} = 0b00011100010;
30324 let hasNewValue = 1;
30325 let opNewValue = 0;
30326 let isCVI = 1;
30327 let DecoderNamespace = "EXT_mmvec";
30329 def V6_vaddhsat_alt : HInst<
30330 (outs HvxVR:$Vd32),
30331 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30332 "$Vd32 = vaddh($Vu32,$Vv32):sat",
30333 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30334 let hasNewValue = 1;
30335 let opNewValue = 0;
30336 let isCVI = 1;
30337 let isPseudo = 1;
30338 let isCodeGenOnly = 1;
30339 let DecoderNamespace = "EXT_mmvec";
30341 def V6_vaddhsat_dv : HInst<
30342 (outs HvxWR:$Vdd32),
30343 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30344 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
30345 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30346 let Inst{7-5} = 0b001;
30347 let Inst{13-13} = 0b0;
30348 let Inst{31-21} = 0b00011100100;
30349 let hasNewValue = 1;
30350 let opNewValue = 0;
30351 let isCVI = 1;
30352 let DecoderNamespace = "EXT_mmvec";
30354 def V6_vaddhsat_dv_alt : HInst<
30355 (outs HvxWR:$Vdd32),
30356 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30357 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
30358 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30359 let hasNewValue = 1;
30360 let opNewValue = 0;
30361 let isCVI = 1;
30362 let isPseudo = 1;
30363 let isCodeGenOnly = 1;
30364 let DecoderNamespace = "EXT_mmvec";
30366 def V6_vaddhw : HInst<
30367 (outs HvxWR:$Vdd32),
30368 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30369 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
30370 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30371 let Inst{7-5} = 0b100;
30372 let Inst{13-13} = 0b0;
30373 let Inst{31-21} = 0b00011100101;
30374 let hasNewValue = 1;
30375 let opNewValue = 0;
30376 let isCVI = 1;
30377 let DecoderNamespace = "EXT_mmvec";
30379 def V6_vaddhw_acc : HInst<
30380 (outs HvxWR:$Vxx32),
30381 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30382 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
30383 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30384 let Inst{7-5} = 0b010;
30385 let Inst{13-13} = 0b1;
30386 let Inst{31-21} = 0b00011100001;
30387 let hasNewValue = 1;
30388 let opNewValue = 0;
30389 let isAccumulator = 1;
30390 let isCVI = 1;
30391 let DecoderNamespace = "EXT_mmvec";
30392 let Constraints = "$Vxx32 = $Vxx32in";
30394 def V6_vaddhw_acc_alt : HInst<
30395 (outs HvxWR:$Vxx32),
30396 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30397 "$Vxx32 += vaddh($Vu32,$Vv32)",
30398 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30399 let hasNewValue = 1;
30400 let opNewValue = 0;
30401 let isAccumulator = 1;
30402 let isCVI = 1;
30403 let isPseudo = 1;
30404 let isCodeGenOnly = 1;
30405 let DecoderNamespace = "EXT_mmvec";
30406 let Constraints = "$Vxx32 = $Vxx32in";
30408 def V6_vaddhw_alt : HInst<
30409 (outs HvxWR:$Vdd32),
30410 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30411 "$Vdd32 = vaddh($Vu32,$Vv32)",
30412 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30413 let hasNewValue = 1;
30414 let opNewValue = 0;
30415 let isCVI = 1;
30416 let isPseudo = 1;
30417 let isCodeGenOnly = 1;
30418 let DecoderNamespace = "EXT_mmvec";
30420 def V6_vaddubh : HInst<
30421 (outs HvxWR:$Vdd32),
30422 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30423 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
30424 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30425 let Inst{7-5} = 0b010;
30426 let Inst{13-13} = 0b0;
30427 let Inst{31-21} = 0b00011100101;
30428 let hasNewValue = 1;
30429 let opNewValue = 0;
30430 let isCVI = 1;
30431 let DecoderNamespace = "EXT_mmvec";
30433 def V6_vaddubh_acc : HInst<
30434 (outs HvxWR:$Vxx32),
30435 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30436 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
30437 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30438 let Inst{7-5} = 0b101;
30439 let Inst{13-13} = 0b1;
30440 let Inst{31-21} = 0b00011100010;
30441 let hasNewValue = 1;
30442 let opNewValue = 0;
30443 let isAccumulator = 1;
30444 let isCVI = 1;
30445 let DecoderNamespace = "EXT_mmvec";
30446 let Constraints = "$Vxx32 = $Vxx32in";
30448 def V6_vaddubh_acc_alt : HInst<
30449 (outs HvxWR:$Vxx32),
30450 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30451 "$Vxx32 += vaddub($Vu32,$Vv32)",
30452 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30453 let hasNewValue = 1;
30454 let opNewValue = 0;
30455 let isAccumulator = 1;
30456 let isCVI = 1;
30457 let isPseudo = 1;
30458 let isCodeGenOnly = 1;
30459 let DecoderNamespace = "EXT_mmvec";
30460 let Constraints = "$Vxx32 = $Vxx32in";
30462 def V6_vaddubh_alt : HInst<
30463 (outs HvxWR:$Vdd32),
30464 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30465 "$Vdd32 = vaddub($Vu32,$Vv32)",
30466 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30467 let hasNewValue = 1;
30468 let opNewValue = 0;
30469 let isCVI = 1;
30470 let isPseudo = 1;
30471 let isCodeGenOnly = 1;
30472 let DecoderNamespace = "EXT_mmvec";
30474 def V6_vaddubsat : HInst<
30475 (outs HvxVR:$Vd32),
30476 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30477 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
30478 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30479 let Inst{7-5} = 0b001;
30480 let Inst{13-13} = 0b0;
30481 let Inst{31-21} = 0b00011100010;
30482 let hasNewValue = 1;
30483 let opNewValue = 0;
30484 let isCVI = 1;
30485 let DecoderNamespace = "EXT_mmvec";
30487 def V6_vaddubsat_alt : HInst<
30488 (outs HvxVR:$Vd32),
30489 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30490 "$Vd32 = vaddub($Vu32,$Vv32):sat",
30491 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30492 let hasNewValue = 1;
30493 let opNewValue = 0;
30494 let isCVI = 1;
30495 let isPseudo = 1;
30496 let isCodeGenOnly = 1;
30497 let DecoderNamespace = "EXT_mmvec";
30499 def V6_vaddubsat_dv : HInst<
30500 (outs HvxWR:$Vdd32),
30501 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30502 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
30503 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30504 let Inst{7-5} = 0b111;
30505 let Inst{13-13} = 0b0;
30506 let Inst{31-21} = 0b00011100011;
30507 let hasNewValue = 1;
30508 let opNewValue = 0;
30509 let isCVI = 1;
30510 let DecoderNamespace = "EXT_mmvec";
30512 def V6_vaddubsat_dv_alt : HInst<
30513 (outs HvxWR:$Vdd32),
30514 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30515 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
30516 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30517 let hasNewValue = 1;
30518 let opNewValue = 0;
30519 let isCVI = 1;
30520 let isPseudo = 1;
30521 let isCodeGenOnly = 1;
30522 let DecoderNamespace = "EXT_mmvec";
30524 def V6_vaddububb_sat : HInst<
30525 (outs HvxVR:$Vd32),
30526 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30527 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
30528 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30529 let Inst{7-5} = 0b100;
30530 let Inst{13-13} = 0b0;
30531 let Inst{31-21} = 0b00011110101;
30532 let hasNewValue = 1;
30533 let opNewValue = 0;
30534 let isCVI = 1;
30535 let DecoderNamespace = "EXT_mmvec";
30537 def V6_vadduhsat : HInst<
30538 (outs HvxVR:$Vd32),
30539 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30540 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
30541 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30542 let Inst{7-5} = 0b010;
30543 let Inst{13-13} = 0b0;
30544 let Inst{31-21} = 0b00011100010;
30545 let hasNewValue = 1;
30546 let opNewValue = 0;
30547 let isCVI = 1;
30548 let DecoderNamespace = "EXT_mmvec";
30550 def V6_vadduhsat_alt : HInst<
30551 (outs HvxVR:$Vd32),
30552 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30553 "$Vd32 = vadduh($Vu32,$Vv32):sat",
30554 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30555 let hasNewValue = 1;
30556 let opNewValue = 0;
30557 let isCVI = 1;
30558 let isPseudo = 1;
30559 let isCodeGenOnly = 1;
30560 let DecoderNamespace = "EXT_mmvec";
30562 def V6_vadduhsat_dv : HInst<
30563 (outs HvxWR:$Vdd32),
30564 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30565 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
30566 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30567 let Inst{7-5} = 0b000;
30568 let Inst{13-13} = 0b0;
30569 let Inst{31-21} = 0b00011100100;
30570 let hasNewValue = 1;
30571 let opNewValue = 0;
30572 let isCVI = 1;
30573 let DecoderNamespace = "EXT_mmvec";
30575 def V6_vadduhsat_dv_alt : HInst<
30576 (outs HvxWR:$Vdd32),
30577 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30578 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
30579 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30580 let hasNewValue = 1;
30581 let opNewValue = 0;
30582 let isCVI = 1;
30583 let isPseudo = 1;
30584 let isCodeGenOnly = 1;
30585 let DecoderNamespace = "EXT_mmvec";
30587 def V6_vadduhw : HInst<
30588 (outs HvxWR:$Vdd32),
30589 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30590 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
30591 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30592 let Inst{7-5} = 0b011;
30593 let Inst{13-13} = 0b0;
30594 let Inst{31-21} = 0b00011100101;
30595 let hasNewValue = 1;
30596 let opNewValue = 0;
30597 let isCVI = 1;
30598 let DecoderNamespace = "EXT_mmvec";
30600 def V6_vadduhw_acc : HInst<
30601 (outs HvxWR:$Vxx32),
30602 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30603 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
30604 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30605 let Inst{7-5} = 0b100;
30606 let Inst{13-13} = 0b1;
30607 let Inst{31-21} = 0b00011100010;
30608 let hasNewValue = 1;
30609 let opNewValue = 0;
30610 let isAccumulator = 1;
30611 let isCVI = 1;
30612 let DecoderNamespace = "EXT_mmvec";
30613 let Constraints = "$Vxx32 = $Vxx32in";
30615 def V6_vadduhw_acc_alt : HInst<
30616 (outs HvxWR:$Vxx32),
30617 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30618 "$Vxx32 += vadduh($Vu32,$Vv32)",
30619 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30620 let hasNewValue = 1;
30621 let opNewValue = 0;
30622 let isAccumulator = 1;
30623 let isCVI = 1;
30624 let isPseudo = 1;
30625 let isCodeGenOnly = 1;
30626 let DecoderNamespace = "EXT_mmvec";
30627 let Constraints = "$Vxx32 = $Vxx32in";
30629 def V6_vadduhw_alt : HInst<
30630 (outs HvxWR:$Vdd32),
30631 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30632 "$Vdd32 = vadduh($Vu32,$Vv32)",
30633 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30634 let hasNewValue = 1;
30635 let opNewValue = 0;
30636 let isCVI = 1;
30637 let isPseudo = 1;
30638 let isCodeGenOnly = 1;
30639 let DecoderNamespace = "EXT_mmvec";
30641 def V6_vadduwsat : HInst<
30642 (outs HvxVR:$Vd32),
30643 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30644 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
30645 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30646 let Inst{7-5} = 0b001;
30647 let Inst{13-13} = 0b0;
30648 let Inst{31-21} = 0b00011111011;
30649 let hasNewValue = 1;
30650 let opNewValue = 0;
30651 let isCVI = 1;
30652 let DecoderNamespace = "EXT_mmvec";
30654 def V6_vadduwsat_alt : HInst<
30655 (outs HvxVR:$Vd32),
30656 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30657 "$Vd32 = vadduw($Vu32,$Vv32):sat",
30658 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30659 let hasNewValue = 1;
30660 let opNewValue = 0;
30661 let isCVI = 1;
30662 let isPseudo = 1;
30663 let isCodeGenOnly = 1;
30664 let DecoderNamespace = "EXT_mmvec";
30666 def V6_vadduwsat_dv : HInst<
30667 (outs HvxWR:$Vdd32),
30668 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30669 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
30670 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30671 let Inst{7-5} = 0b010;
30672 let Inst{13-13} = 0b0;
30673 let Inst{31-21} = 0b00011110101;
30674 let hasNewValue = 1;
30675 let opNewValue = 0;
30676 let isCVI = 1;
30677 let DecoderNamespace = "EXT_mmvec";
30679 def V6_vadduwsat_dv_alt : HInst<
30680 (outs HvxWR:$Vdd32),
30681 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30682 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
30683 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30684 let hasNewValue = 1;
30685 let opNewValue = 0;
30686 let isCVI = 1;
30687 let isPseudo = 1;
30688 let isCodeGenOnly = 1;
30689 let DecoderNamespace = "EXT_mmvec";
30691 def V6_vaddw : HInst<
30692 (outs HvxVR:$Vd32),
30693 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30694 "$Vd32.w = vadd($Vu32.w,$Vv32.w)",
30695 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30696 let Inst{7-5} = 0b000;
30697 let Inst{13-13} = 0b0;
30698 let Inst{31-21} = 0b00011100010;
30699 let hasNewValue = 1;
30700 let opNewValue = 0;
30701 let isCVI = 1;
30702 let DecoderNamespace = "EXT_mmvec";
30704 def V6_vaddw_alt : HInst<
30705 (outs HvxVR:$Vd32),
30706 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30707 "$Vd32 = vaddw($Vu32,$Vv32)",
30708 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30709 let hasNewValue = 1;
30710 let opNewValue = 0;
30711 let isCVI = 1;
30712 let isPseudo = 1;
30713 let isCodeGenOnly = 1;
30714 let DecoderNamespace = "EXT_mmvec";
30716 def V6_vaddw_dv : HInst<
30717 (outs HvxWR:$Vdd32),
30718 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30719 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
30720 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30721 let Inst{7-5} = 0b110;
30722 let Inst{13-13} = 0b0;
30723 let Inst{31-21} = 0b00011100011;
30724 let hasNewValue = 1;
30725 let opNewValue = 0;
30726 let isCVI = 1;
30727 let DecoderNamespace = "EXT_mmvec";
30729 def V6_vaddw_dv_alt : HInst<
30730 (outs HvxWR:$Vdd32),
30731 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30732 "$Vdd32 = vaddw($Vuu32,$Vvv32)",
30733 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30734 let hasNewValue = 1;
30735 let opNewValue = 0;
30736 let isCVI = 1;
30737 let isPseudo = 1;
30738 let isCodeGenOnly = 1;
30739 let DecoderNamespace = "EXT_mmvec";
30741 def V6_vaddwnq : HInst<
30742 (outs HvxVR:$Vx32),
30743 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30744 "if (!$Qv4) $Vx32.w += $Vu32.w",
30745 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30746 let Inst{7-5} = 0b101;
30747 let Inst{13-13} = 0b1;
30748 let Inst{21-16} = 0b000001;
30749 let Inst{31-24} = 0b00011110;
30750 let hasNewValue = 1;
30751 let opNewValue = 0;
30752 let isAccumulator = 1;
30753 let isCVI = 1;
30754 let DecoderNamespace = "EXT_mmvec";
30755 let Constraints = "$Vx32 = $Vx32in";
30757 def V6_vaddwnq_alt : HInst<
30758 (outs HvxVR:$Vx32),
30759 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30760 "if (!$Qv4.w) $Vx32.w += $Vu32.w",
30761 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30762 let hasNewValue = 1;
30763 let opNewValue = 0;
30764 let isAccumulator = 1;
30765 let isCVI = 1;
30766 let isPseudo = 1;
30767 let isCodeGenOnly = 1;
30768 let DecoderNamespace = "EXT_mmvec";
30769 let Constraints = "$Vx32 = $Vx32in";
30771 def V6_vaddwq : HInst<
30772 (outs HvxVR:$Vx32),
30773 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30774 "if ($Qv4) $Vx32.w += $Vu32.w",
30775 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30776 let Inst{7-5} = 0b010;
30777 let Inst{13-13} = 0b1;
30778 let Inst{21-16} = 0b000001;
30779 let Inst{31-24} = 0b00011110;
30780 let hasNewValue = 1;
30781 let opNewValue = 0;
30782 let isAccumulator = 1;
30783 let isCVI = 1;
30784 let DecoderNamespace = "EXT_mmvec";
30785 let Constraints = "$Vx32 = $Vx32in";
30787 def V6_vaddwq_alt : HInst<
30788 (outs HvxVR:$Vx32),
30789 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30790 "if ($Qv4.w) $Vx32.w += $Vu32.w",
30791 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30792 let hasNewValue = 1;
30793 let opNewValue = 0;
30794 let isAccumulator = 1;
30795 let isCVI = 1;
30796 let isPseudo = 1;
30797 let isCodeGenOnly = 1;
30798 let DecoderNamespace = "EXT_mmvec";
30799 let Constraints = "$Vx32 = $Vx32in";
30801 def V6_vaddwsat : HInst<
30802 (outs HvxVR:$Vd32),
30803 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30804 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
30805 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30806 let Inst{7-5} = 0b100;
30807 let Inst{13-13} = 0b0;
30808 let Inst{31-21} = 0b00011100010;
30809 let hasNewValue = 1;
30810 let opNewValue = 0;
30811 let isCVI = 1;
30812 let DecoderNamespace = "EXT_mmvec";
30814 def V6_vaddwsat_alt : HInst<
30815 (outs HvxVR:$Vd32),
30816 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30817 "$Vd32 = vaddw($Vu32,$Vv32):sat",
30818 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30819 let hasNewValue = 1;
30820 let opNewValue = 0;
30821 let isCVI = 1;
30822 let isPseudo = 1;
30823 let isCodeGenOnly = 1;
30824 let DecoderNamespace = "EXT_mmvec";
30826 def V6_vaddwsat_dv : HInst<
30827 (outs HvxWR:$Vdd32),
30828 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30829 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
30830 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30831 let Inst{7-5} = 0b010;
30832 let Inst{13-13} = 0b0;
30833 let Inst{31-21} = 0b00011100100;
30834 let hasNewValue = 1;
30835 let opNewValue = 0;
30836 let isCVI = 1;
30837 let DecoderNamespace = "EXT_mmvec";
30839 def V6_vaddwsat_dv_alt : HInst<
30840 (outs HvxWR:$Vdd32),
30841 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30842 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
30843 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30844 let hasNewValue = 1;
30845 let opNewValue = 0;
30846 let isCVI = 1;
30847 let isPseudo = 1;
30848 let isCodeGenOnly = 1;
30849 let DecoderNamespace = "EXT_mmvec";
30851 def V6_valignb : HInst<
30852 (outs HvxVR:$Vd32),
30853 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30854 "$Vd32 = valign($Vu32,$Vv32,$Rt8)",
30855 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
30856 let Inst{7-5} = 0b000;
30857 let Inst{13-13} = 0b0;
30858 let Inst{31-24} = 0b00011011;
30859 let hasNewValue = 1;
30860 let opNewValue = 0;
30861 let isCVI = 1;
30862 let DecoderNamespace = "EXT_mmvec";
30864 def V6_valignbi : HInst<
30865 (outs HvxVR:$Vd32),
30866 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
30867 "$Vd32 = valign($Vu32,$Vv32,#$Ii)",
30868 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
30869 let Inst{13-13} = 0b1;
30870 let Inst{31-21} = 0b00011110001;
30871 let hasNewValue = 1;
30872 let opNewValue = 0;
30873 let isCVI = 1;
30874 let DecoderNamespace = "EXT_mmvec";
30876 def V6_vand : HInst<
30877 (outs HvxVR:$Vd32),
30878 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30879 "$Vd32 = vand($Vu32,$Vv32)",
30880 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30881 let Inst{7-5} = 0b101;
30882 let Inst{13-13} = 0b0;
30883 let Inst{31-21} = 0b00011100001;
30884 let hasNewValue = 1;
30885 let opNewValue = 0;
30886 let isCVI = 1;
30887 let DecoderNamespace = "EXT_mmvec";
30889 def V6_vandnqrt : HInst<
30890 (outs HvxVR:$Vd32),
30891 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30892 "$Vd32 = vand(!$Qu4,$Rt32)",
30893 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> {
30894 let Inst{7-5} = 0b101;
30895 let Inst{13-10} = 0b0001;
30896 let Inst{31-21} = 0b00011001101;
30897 let hasNewValue = 1;
30898 let opNewValue = 0;
30899 let isCVI = 1;
30900 let DecoderNamespace = "EXT_mmvec";
30902 def V6_vandnqrt_acc : HInst<
30903 (outs HvxVR:$Vx32),
30904 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30905 "$Vx32 |= vand(!$Qu4,$Rt32)",
30906 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> {
30907 let Inst{7-5} = 0b011;
30908 let Inst{13-10} = 0b1001;
30909 let Inst{31-21} = 0b00011001011;
30910 let hasNewValue = 1;
30911 let opNewValue = 0;
30912 let isAccumulator = 1;
30913 let isCVI = 1;
30914 let DecoderNamespace = "EXT_mmvec";
30915 let Constraints = "$Vx32 = $Vx32in";
30917 def V6_vandnqrt_acc_alt : HInst<
30918 (outs HvxVR:$Vx32),
30919 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30920 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
30921 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30922 let hasNewValue = 1;
30923 let opNewValue = 0;
30924 let isAccumulator = 1;
30925 let isCVI = 1;
30926 let isPseudo = 1;
30927 let isCodeGenOnly = 1;
30928 let DecoderNamespace = "EXT_mmvec";
30929 let Constraints = "$Vx32 = $Vx32in";
30931 def V6_vandnqrt_alt : HInst<
30932 (outs HvxVR:$Vd32),
30933 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30934 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
30935 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30936 let hasNewValue = 1;
30937 let opNewValue = 0;
30938 let isCVI = 1;
30939 let isPseudo = 1;
30940 let isCodeGenOnly = 1;
30941 let DecoderNamespace = "EXT_mmvec";
30943 def V6_vandqrt : HInst<
30944 (outs HvxVR:$Vd32),
30945 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30946 "$Vd32 = vand($Qu4,$Rt32)",
30947 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
30948 let Inst{7-5} = 0b101;
30949 let Inst{13-10} = 0b0000;
30950 let Inst{31-21} = 0b00011001101;
30951 let hasNewValue = 1;
30952 let opNewValue = 0;
30953 let isCVI = 1;
30954 let DecoderNamespace = "EXT_mmvec";
30956 def V6_vandqrt_acc : HInst<
30957 (outs HvxVR:$Vx32),
30958 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30959 "$Vx32 |= vand($Qu4,$Rt32)",
30960 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
30961 let Inst{7-5} = 0b011;
30962 let Inst{13-10} = 0b1000;
30963 let Inst{31-21} = 0b00011001011;
30964 let hasNewValue = 1;
30965 let opNewValue = 0;
30966 let isAccumulator = 1;
30967 let isCVI = 1;
30968 let DecoderNamespace = "EXT_mmvec";
30969 let Constraints = "$Vx32 = $Vx32in";
30971 def V6_vandqrt_acc_alt : HInst<
30972 (outs HvxVR:$Vx32),
30973 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30974 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
30975 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30976 let hasNewValue = 1;
30977 let opNewValue = 0;
30978 let isAccumulator = 1;
30979 let isCVI = 1;
30980 let isPseudo = 1;
30981 let isCodeGenOnly = 1;
30982 let DecoderNamespace = "EXT_mmvec";
30983 let Constraints = "$Vx32 = $Vx32in";
30985 def V6_vandqrt_alt : HInst<
30986 (outs HvxVR:$Vd32),
30987 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30988 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
30989 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30990 let hasNewValue = 1;
30991 let opNewValue = 0;
30992 let isCVI = 1;
30993 let isPseudo = 1;
30994 let isCodeGenOnly = 1;
30995 let DecoderNamespace = "EXT_mmvec";
30997 def V6_vandvnqv : HInst<
30998 (outs HvxVR:$Vd32),
30999 (ins HvxQR:$Qv4, HvxVR:$Vu32),
31000 "$Vd32 = vand(!$Qv4,$Vu32)",
31001 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31002 let Inst{7-5} = 0b001;
31003 let Inst{13-13} = 0b1;
31004 let Inst{21-16} = 0b000011;
31005 let Inst{31-24} = 0b00011110;
31006 let hasNewValue = 1;
31007 let opNewValue = 0;
31008 let isCVI = 1;
31009 let DecoderNamespace = "EXT_mmvec";
31011 def V6_vandvqv : HInst<
31012 (outs HvxVR:$Vd32),
31013 (ins HvxQR:$Qv4, HvxVR:$Vu32),
31014 "$Vd32 = vand($Qv4,$Vu32)",
31015 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31016 let Inst{7-5} = 0b000;
31017 let Inst{13-13} = 0b1;
31018 let Inst{21-16} = 0b000011;
31019 let Inst{31-24} = 0b00011110;
31020 let hasNewValue = 1;
31021 let opNewValue = 0;
31022 let isCVI = 1;
31023 let DecoderNamespace = "EXT_mmvec";
31025 def V6_vandvrt : HInst<
31026 (outs HvxQR:$Qd4),
31027 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31028 "$Qd4 = vand($Vu32,$Rt32)",
31029 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
31030 let Inst{7-2} = 0b010010;
31031 let Inst{13-13} = 0b0;
31032 let Inst{31-21} = 0b00011001101;
31033 let hasNewValue = 1;
31034 let opNewValue = 0;
31035 let isCVI = 1;
31036 let DecoderNamespace = "EXT_mmvec";
31038 def V6_vandvrt_acc : HInst<
31039 (outs HvxQR:$Qx4),
31040 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31041 "$Qx4 |= vand($Vu32,$Rt32)",
31042 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
31043 let Inst{7-2} = 0b100000;
31044 let Inst{13-13} = 0b1;
31045 let Inst{31-21} = 0b00011001011;
31046 let isAccumulator = 1;
31047 let isCVI = 1;
31048 let DecoderNamespace = "EXT_mmvec";
31049 let Constraints = "$Qx4 = $Qx4in";
31051 def V6_vandvrt_acc_alt : HInst<
31052 (outs HvxQR:$Qx4),
31053 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31054 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
31055 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31056 let isAccumulator = 1;
31057 let isCVI = 1;
31058 let isPseudo = 1;
31059 let isCodeGenOnly = 1;
31060 let DecoderNamespace = "EXT_mmvec";
31061 let Constraints = "$Qx4 = $Qx4in";
31063 def V6_vandvrt_alt : HInst<
31064 (outs HvxQR:$Qd4),
31065 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31066 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
31067 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31068 let hasNewValue = 1;
31069 let opNewValue = 0;
31070 let isCVI = 1;
31071 let isPseudo = 1;
31072 let isCodeGenOnly = 1;
31073 let DecoderNamespace = "EXT_mmvec";
31075 def V6_vaslh : HInst<
31076 (outs HvxVR:$Vd32),
31077 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31078 "$Vd32.h = vasl($Vu32.h,$Rt32)",
31079 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31080 let Inst{7-5} = 0b000;
31081 let Inst{13-13} = 0b0;
31082 let Inst{31-21} = 0b00011001100;
31083 let hasNewValue = 1;
31084 let opNewValue = 0;
31085 let isCVI = 1;
31086 let DecoderNamespace = "EXT_mmvec";
31088 def V6_vaslh_acc : HInst<
31089 (outs HvxVR:$Vx32),
31090 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31091 "$Vx32.h += vasl($Vu32.h,$Rt32)",
31092 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31093 let Inst{7-5} = 0b101;
31094 let Inst{13-13} = 0b1;
31095 let Inst{31-21} = 0b00011001101;
31096 let hasNewValue = 1;
31097 let opNewValue = 0;
31098 let isAccumulator = 1;
31099 let isCVI = 1;
31100 let DecoderNamespace = "EXT_mmvec";
31101 let Constraints = "$Vx32 = $Vx32in";
31103 def V6_vaslh_acc_alt : HInst<
31104 (outs HvxVR:$Vx32),
31105 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31106 "$Vx32 += vaslh($Vu32,$Rt32)",
31107 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31108 let hasNewValue = 1;
31109 let opNewValue = 0;
31110 let isAccumulator = 1;
31111 let isCVI = 1;
31112 let isPseudo = 1;
31113 let isCodeGenOnly = 1;
31114 let DecoderNamespace = "EXT_mmvec";
31115 let Constraints = "$Vx32 = $Vx32in";
31117 def V6_vaslh_alt : HInst<
31118 (outs HvxVR:$Vd32),
31119 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31120 "$Vd32 = vaslh($Vu32,$Rt32)",
31121 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31122 let hasNewValue = 1;
31123 let opNewValue = 0;
31124 let isCVI = 1;
31125 let isPseudo = 1;
31126 let isCodeGenOnly = 1;
31127 let DecoderNamespace = "EXT_mmvec";
31129 def V6_vaslhv : HInst<
31130 (outs HvxVR:$Vd32),
31131 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31132 "$Vd32.h = vasl($Vu32.h,$Vv32.h)",
31133 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31134 let Inst{7-5} = 0b101;
31135 let Inst{13-13} = 0b0;
31136 let Inst{31-21} = 0b00011111101;
31137 let hasNewValue = 1;
31138 let opNewValue = 0;
31139 let isCVI = 1;
31140 let DecoderNamespace = "EXT_mmvec";
31142 def V6_vaslhv_alt : HInst<
31143 (outs HvxVR:$Vd32),
31144 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31145 "$Vd32 = vaslh($Vu32,$Vv32)",
31146 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31147 let hasNewValue = 1;
31148 let opNewValue = 0;
31149 let isCVI = 1;
31150 let isPseudo = 1;
31151 let isCodeGenOnly = 1;
31152 let DecoderNamespace = "EXT_mmvec";
31154 def V6_vaslw : HInst<
31155 (outs HvxVR:$Vd32),
31156 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31157 "$Vd32.w = vasl($Vu32.w,$Rt32)",
31158 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31159 let Inst{7-5} = 0b111;
31160 let Inst{13-13} = 0b0;
31161 let Inst{31-21} = 0b00011001011;
31162 let hasNewValue = 1;
31163 let opNewValue = 0;
31164 let isCVI = 1;
31165 let DecoderNamespace = "EXT_mmvec";
31167 def V6_vaslw_acc : HInst<
31168 (outs HvxVR:$Vx32),
31169 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31170 "$Vx32.w += vasl($Vu32.w,$Rt32)",
31171 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31172 let Inst{7-5} = 0b010;
31173 let Inst{13-13} = 0b1;
31174 let Inst{31-21} = 0b00011001011;
31175 let hasNewValue = 1;
31176 let opNewValue = 0;
31177 let isAccumulator = 1;
31178 let isCVI = 1;
31179 let DecoderNamespace = "EXT_mmvec";
31180 let Constraints = "$Vx32 = $Vx32in";
31182 def V6_vaslw_acc_alt : HInst<
31183 (outs HvxVR:$Vx32),
31184 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31185 "$Vx32 += vaslw($Vu32,$Rt32)",
31186 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31187 let hasNewValue = 1;
31188 let opNewValue = 0;
31189 let isAccumulator = 1;
31190 let isCVI = 1;
31191 let isPseudo = 1;
31192 let isCodeGenOnly = 1;
31193 let DecoderNamespace = "EXT_mmvec";
31194 let Constraints = "$Vx32 = $Vx32in";
31196 def V6_vaslw_alt : HInst<
31197 (outs HvxVR:$Vd32),
31198 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31199 "$Vd32 = vaslw($Vu32,$Rt32)",
31200 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31201 let hasNewValue = 1;
31202 let opNewValue = 0;
31203 let isCVI = 1;
31204 let isPseudo = 1;
31205 let isCodeGenOnly = 1;
31206 let DecoderNamespace = "EXT_mmvec";
31208 def V6_vaslwv : HInst<
31209 (outs HvxVR:$Vd32),
31210 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31211 "$Vd32.w = vasl($Vu32.w,$Vv32.w)",
31212 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31213 let Inst{7-5} = 0b100;
31214 let Inst{13-13} = 0b0;
31215 let Inst{31-21} = 0b00011111101;
31216 let hasNewValue = 1;
31217 let opNewValue = 0;
31218 let isCVI = 1;
31219 let DecoderNamespace = "EXT_mmvec";
31221 def V6_vaslwv_alt : HInst<
31222 (outs HvxVR:$Vd32),
31223 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31224 "$Vd32 = vaslw($Vu32,$Vv32)",
31225 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31226 let hasNewValue = 1;
31227 let opNewValue = 0;
31228 let isCVI = 1;
31229 let isPseudo = 1;
31230 let isCodeGenOnly = 1;
31231 let DecoderNamespace = "EXT_mmvec";
31233 def V6_vasr_into : HInst<
31234 (outs HvxWR:$Vxx32),
31235 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31236 "$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
31237 tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
31238 let Inst{7-5} = 0b111;
31239 let Inst{13-13} = 0b1;
31240 let Inst{31-21} = 0b00011010101;
31241 let hasNewValue = 1;
31242 let opNewValue = 0;
31243 let isCVI = 1;
31244 let DecoderNamespace = "EXT_mmvec";
31245 let Constraints = "$Vxx32 = $Vxx32in";
31247 def V6_vasr_into_alt : HInst<
31248 (outs HvxWR:$Vxx32),
31249 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31250 "$Vxx32 = vasrinto($Vu32,$Vv32)",
31251 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
31252 let hasNewValue = 1;
31253 let opNewValue = 0;
31254 let isCVI = 1;
31255 let isPseudo = 1;
31256 let isCodeGenOnly = 1;
31257 let DecoderNamespace = "EXT_mmvec";
31258 let Constraints = "$Vxx32 = $Vxx32in";
31260 def V6_vasrh : HInst<
31261 (outs HvxVR:$Vd32),
31262 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31263 "$Vd32.h = vasr($Vu32.h,$Rt32)",
31264 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31265 let Inst{7-5} = 0b110;
31266 let Inst{13-13} = 0b0;
31267 let Inst{31-21} = 0b00011001011;
31268 let hasNewValue = 1;
31269 let opNewValue = 0;
31270 let isCVI = 1;
31271 let DecoderNamespace = "EXT_mmvec";
31273 def V6_vasrh_acc : HInst<
31274 (outs HvxVR:$Vx32),
31275 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31276 "$Vx32.h += vasr($Vu32.h,$Rt32)",
31277 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31278 let Inst{7-5} = 0b111;
31279 let Inst{13-13} = 0b1;
31280 let Inst{31-21} = 0b00011001100;
31281 let hasNewValue = 1;
31282 let opNewValue = 0;
31283 let isAccumulator = 1;
31284 let isCVI = 1;
31285 let DecoderNamespace = "EXT_mmvec";
31286 let Constraints = "$Vx32 = $Vx32in";
31288 def V6_vasrh_acc_alt : HInst<
31289 (outs HvxVR:$Vx32),
31290 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31291 "$Vx32 += vasrh($Vu32,$Rt32)",
31292 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31293 let hasNewValue = 1;
31294 let opNewValue = 0;
31295 let isAccumulator = 1;
31296 let isCVI = 1;
31297 let isPseudo = 1;
31298 let isCodeGenOnly = 1;
31299 let DecoderNamespace = "EXT_mmvec";
31300 let Constraints = "$Vx32 = $Vx32in";
31302 def V6_vasrh_alt : HInst<
31303 (outs HvxVR:$Vd32),
31304 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31305 "$Vd32 = vasrh($Vu32,$Rt32)",
31306 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31307 let hasNewValue = 1;
31308 let opNewValue = 0;
31309 let isCVI = 1;
31310 let isPseudo = 1;
31311 let isCodeGenOnly = 1;
31312 let DecoderNamespace = "EXT_mmvec";
31314 def V6_vasrhbrndsat : HInst<
31315 (outs HvxVR:$Vd32),
31316 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31317 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31318 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31319 let Inst{7-5} = 0b000;
31320 let Inst{13-13} = 0b1;
31321 let Inst{31-24} = 0b00011011;
31322 let hasNewValue = 1;
31323 let opNewValue = 0;
31324 let isCVI = 1;
31325 let DecoderNamespace = "EXT_mmvec";
31327 def V6_vasrhbsat : HInst<
31328 (outs HvxVR:$Vd32),
31329 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31330 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31331 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31332 let Inst{7-5} = 0b000;
31333 let Inst{13-13} = 0b0;
31334 let Inst{31-24} = 0b00011000;
31335 let hasNewValue = 1;
31336 let opNewValue = 0;
31337 let isCVI = 1;
31338 let DecoderNamespace = "EXT_mmvec";
31340 def V6_vasrhubrndsat : HInst<
31341 (outs HvxVR:$Vd32),
31342 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31343 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31344 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31345 let Inst{7-5} = 0b111;
31346 let Inst{13-13} = 0b0;
31347 let Inst{31-24} = 0b00011011;
31348 let hasNewValue = 1;
31349 let opNewValue = 0;
31350 let isCVI = 1;
31351 let DecoderNamespace = "EXT_mmvec";
31353 def V6_vasrhubsat : HInst<
31354 (outs HvxVR:$Vd32),
31355 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31356 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31357 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31358 let Inst{7-5} = 0b110;
31359 let Inst{13-13} = 0b0;
31360 let Inst{31-24} = 0b00011011;
31361 let hasNewValue = 1;
31362 let opNewValue = 0;
31363 let isCVI = 1;
31364 let DecoderNamespace = "EXT_mmvec";
31366 def V6_vasrhv : HInst<
31367 (outs HvxVR:$Vd32),
31368 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31369 "$Vd32.h = vasr($Vu32.h,$Vv32.h)",
31370 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31371 let Inst{7-5} = 0b011;
31372 let Inst{13-13} = 0b0;
31373 let Inst{31-21} = 0b00011111101;
31374 let hasNewValue = 1;
31375 let opNewValue = 0;
31376 let isCVI = 1;
31377 let DecoderNamespace = "EXT_mmvec";
31379 def V6_vasrhv_alt : HInst<
31380 (outs HvxVR:$Vd32),
31381 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31382 "$Vd32 = vasrh($Vu32,$Vv32)",
31383 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31384 let hasNewValue = 1;
31385 let opNewValue = 0;
31386 let isCVI = 1;
31387 let isPseudo = 1;
31388 let isCodeGenOnly = 1;
31389 let DecoderNamespace = "EXT_mmvec";
31391 def V6_vasruhubrndsat : HInst<
31392 (outs HvxVR:$Vd32),
31393 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31394 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
31395 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31396 let Inst{7-5} = 0b111;
31397 let Inst{13-13} = 0b0;
31398 let Inst{31-24} = 0b00011000;
31399 let hasNewValue = 1;
31400 let opNewValue = 0;
31401 let isCVI = 1;
31402 let DecoderNamespace = "EXT_mmvec";
31404 def V6_vasruhubsat : HInst<
31405 (outs HvxVR:$Vd32),
31406 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31407 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
31408 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31409 let Inst{7-5} = 0b101;
31410 let Inst{13-13} = 0b1;
31411 let Inst{31-24} = 0b00011000;
31412 let hasNewValue = 1;
31413 let opNewValue = 0;
31414 let isCVI = 1;
31415 let DecoderNamespace = "EXT_mmvec";
31417 def V6_vasruwuhrndsat : HInst<
31418 (outs HvxVR:$Vd32),
31419 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31420 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
31421 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31422 let Inst{7-5} = 0b001;
31423 let Inst{13-13} = 0b0;
31424 let Inst{31-24} = 0b00011000;
31425 let hasNewValue = 1;
31426 let opNewValue = 0;
31427 let isCVI = 1;
31428 let DecoderNamespace = "EXT_mmvec";
31430 def V6_vasruwuhsat : HInst<
31431 (outs HvxVR:$Vd32),
31432 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31433 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
31434 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31435 let Inst{7-5} = 0b100;
31436 let Inst{13-13} = 0b1;
31437 let Inst{31-24} = 0b00011000;
31438 let hasNewValue = 1;
31439 let opNewValue = 0;
31440 let isCVI = 1;
31441 let DecoderNamespace = "EXT_mmvec";
31443 def V6_vasrw : HInst<
31444 (outs HvxVR:$Vd32),
31445 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31446 "$Vd32.w = vasr($Vu32.w,$Rt32)",
31447 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31448 let Inst{7-5} = 0b101;
31449 let Inst{13-13} = 0b0;
31450 let Inst{31-21} = 0b00011001011;
31451 let hasNewValue = 1;
31452 let opNewValue = 0;
31453 let isCVI = 1;
31454 let DecoderNamespace = "EXT_mmvec";
31456 def V6_vasrw_acc : HInst<
31457 (outs HvxVR:$Vx32),
31458 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31459 "$Vx32.w += vasr($Vu32.w,$Rt32)",
31460 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31461 let Inst{7-5} = 0b101;
31462 let Inst{13-13} = 0b1;
31463 let Inst{31-21} = 0b00011001011;
31464 let hasNewValue = 1;
31465 let opNewValue = 0;
31466 let isAccumulator = 1;
31467 let isCVI = 1;
31468 let DecoderNamespace = "EXT_mmvec";
31469 let Constraints = "$Vx32 = $Vx32in";
31471 def V6_vasrw_acc_alt : HInst<
31472 (outs HvxVR:$Vx32),
31473 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31474 "$Vx32 += vasrw($Vu32,$Rt32)",
31475 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31476 let hasNewValue = 1;
31477 let opNewValue = 0;
31478 let isAccumulator = 1;
31479 let isCVI = 1;
31480 let isPseudo = 1;
31481 let isCodeGenOnly = 1;
31482 let DecoderNamespace = "EXT_mmvec";
31483 let Constraints = "$Vx32 = $Vx32in";
31485 def V6_vasrw_alt : HInst<
31486 (outs HvxVR:$Vd32),
31487 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31488 "$Vd32 = vasrw($Vu32,$Rt32)",
31489 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31490 let hasNewValue = 1;
31491 let opNewValue = 0;
31492 let isCVI = 1;
31493 let isPseudo = 1;
31494 let isCodeGenOnly = 1;
31495 let DecoderNamespace = "EXT_mmvec";
31497 def V6_vasrwh : HInst<
31498 (outs HvxVR:$Vd32),
31499 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31500 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
31501 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31502 let Inst{7-5} = 0b010;
31503 let Inst{13-13} = 0b0;
31504 let Inst{31-24} = 0b00011011;
31505 let hasNewValue = 1;
31506 let opNewValue = 0;
31507 let isCVI = 1;
31508 let DecoderNamespace = "EXT_mmvec";
31510 def V6_vasrwhrndsat : HInst<
31511 (outs HvxVR:$Vd32),
31512 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31513 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31514 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31515 let Inst{7-5} = 0b100;
31516 let Inst{13-13} = 0b0;
31517 let Inst{31-24} = 0b00011011;
31518 let hasNewValue = 1;
31519 let opNewValue = 0;
31520 let isCVI = 1;
31521 let DecoderNamespace = "EXT_mmvec";
31523 def V6_vasrwhsat : HInst<
31524 (outs HvxVR:$Vd32),
31525 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31526 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31527 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31528 let Inst{7-5} = 0b011;
31529 let Inst{13-13} = 0b0;
31530 let Inst{31-24} = 0b00011011;
31531 let hasNewValue = 1;
31532 let opNewValue = 0;
31533 let isCVI = 1;
31534 let DecoderNamespace = "EXT_mmvec";
31536 def V6_vasrwuhrndsat : HInst<
31537 (outs HvxVR:$Vd32),
31538 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31539 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31540 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31541 let Inst{7-5} = 0b010;
31542 let Inst{13-13} = 0b0;
31543 let Inst{31-24} = 0b00011000;
31544 let hasNewValue = 1;
31545 let opNewValue = 0;
31546 let isCVI = 1;
31547 let DecoderNamespace = "EXT_mmvec";
31549 def V6_vasrwuhsat : HInst<
31550 (outs HvxVR:$Vd32),
31551 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31552 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31553 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31554 let Inst{7-5} = 0b101;
31555 let Inst{13-13} = 0b0;
31556 let Inst{31-24} = 0b00011011;
31557 let hasNewValue = 1;
31558 let opNewValue = 0;
31559 let isCVI = 1;
31560 let DecoderNamespace = "EXT_mmvec";
31562 def V6_vasrwv : HInst<
31563 (outs HvxVR:$Vd32),
31564 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31565 "$Vd32.w = vasr($Vu32.w,$Vv32.w)",
31566 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31567 let Inst{7-5} = 0b000;
31568 let Inst{13-13} = 0b0;
31569 let Inst{31-21} = 0b00011111101;
31570 let hasNewValue = 1;
31571 let opNewValue = 0;
31572 let isCVI = 1;
31573 let DecoderNamespace = "EXT_mmvec";
31575 def V6_vasrwv_alt : HInst<
31576 (outs HvxVR:$Vd32),
31577 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31578 "$Vd32 = vasrw($Vu32,$Vv32)",
31579 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31580 let hasNewValue = 1;
31581 let opNewValue = 0;
31582 let isCVI = 1;
31583 let isPseudo = 1;
31584 let isCodeGenOnly = 1;
31585 let DecoderNamespace = "EXT_mmvec";
31587 def V6_vassign : HInst<
31588 (outs HvxVR:$Vd32),
31589 (ins HvxVR:$Vu32),
31590 "$Vd32 = $Vu32",
31591 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
31592 let Inst{7-5} = 0b111;
31593 let Inst{13-13} = 0b1;
31594 let Inst{31-16} = 0b0001111000000011;
31595 let hasNewValue = 1;
31596 let opNewValue = 0;
31597 let isCVI = 1;
31598 let DecoderNamespace = "EXT_mmvec";
31600 def V6_vassignp : HInst<
31601 (outs HvxWR:$Vdd32),
31602 (ins HvxWR:$Vuu32),
31603 "$Vdd32 = $Vuu32",
31604 CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
31605 let hasNewValue = 1;
31606 let opNewValue = 0;
31607 let isCVI = 1;
31608 let isPseudo = 1;
31609 let DecoderNamespace = "EXT_mmvec";
31611 def V6_vavgb : HInst<
31612 (outs HvxVR:$Vd32),
31613 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31614 "$Vd32.b = vavg($Vu32.b,$Vv32.b)",
31615 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31616 let Inst{7-5} = 0b100;
31617 let Inst{13-13} = 0b1;
31618 let Inst{31-21} = 0b00011111000;
31619 let hasNewValue = 1;
31620 let opNewValue = 0;
31621 let isCVI = 1;
31622 let DecoderNamespace = "EXT_mmvec";
31624 def V6_vavgb_alt : HInst<
31625 (outs HvxVR:$Vd32),
31626 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31627 "$Vd32 = vavgb($Vu32,$Vv32)",
31628 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31629 let hasNewValue = 1;
31630 let opNewValue = 0;
31631 let isCVI = 1;
31632 let isPseudo = 1;
31633 let isCodeGenOnly = 1;
31634 let DecoderNamespace = "EXT_mmvec";
31636 def V6_vavgbrnd : HInst<
31637 (outs HvxVR:$Vd32),
31638 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31639 "$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
31640 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31641 let Inst{7-5} = 0b101;
31642 let Inst{13-13} = 0b1;
31643 let Inst{31-21} = 0b00011111000;
31644 let hasNewValue = 1;
31645 let opNewValue = 0;
31646 let isCVI = 1;
31647 let DecoderNamespace = "EXT_mmvec";
31649 def V6_vavgbrnd_alt : HInst<
31650 (outs HvxVR:$Vd32),
31651 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31652 "$Vd32 = vavgb($Vu32,$Vv32):rnd",
31653 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31654 let hasNewValue = 1;
31655 let opNewValue = 0;
31656 let isCVI = 1;
31657 let isPseudo = 1;
31658 let isCodeGenOnly = 1;
31659 let DecoderNamespace = "EXT_mmvec";
31661 def V6_vavgh : HInst<
31662 (outs HvxVR:$Vd32),
31663 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31664 "$Vd32.h = vavg($Vu32.h,$Vv32.h)",
31665 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31666 let Inst{7-5} = 0b110;
31667 let Inst{13-13} = 0b0;
31668 let Inst{31-21} = 0b00011100110;
31669 let hasNewValue = 1;
31670 let opNewValue = 0;
31671 let isCVI = 1;
31672 let DecoderNamespace = "EXT_mmvec";
31674 def V6_vavgh_alt : HInst<
31675 (outs HvxVR:$Vd32),
31676 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31677 "$Vd32 = vavgh($Vu32,$Vv32)",
31678 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31679 let hasNewValue = 1;
31680 let opNewValue = 0;
31681 let isCVI = 1;
31682 let isPseudo = 1;
31683 let isCodeGenOnly = 1;
31684 let DecoderNamespace = "EXT_mmvec";
31686 def V6_vavghrnd : HInst<
31687 (outs HvxVR:$Vd32),
31688 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31689 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
31690 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31691 let Inst{7-5} = 0b101;
31692 let Inst{13-13} = 0b0;
31693 let Inst{31-21} = 0b00011100111;
31694 let hasNewValue = 1;
31695 let opNewValue = 0;
31696 let isCVI = 1;
31697 let DecoderNamespace = "EXT_mmvec";
31699 def V6_vavghrnd_alt : HInst<
31700 (outs HvxVR:$Vd32),
31701 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31702 "$Vd32 = vavgh($Vu32,$Vv32):rnd",
31703 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31704 let hasNewValue = 1;
31705 let opNewValue = 0;
31706 let isCVI = 1;
31707 let isPseudo = 1;
31708 let isCodeGenOnly = 1;
31709 let DecoderNamespace = "EXT_mmvec";
31711 def V6_vavgub : HInst<
31712 (outs HvxVR:$Vd32),
31713 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31714 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
31715 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31716 let Inst{7-5} = 0b100;
31717 let Inst{13-13} = 0b0;
31718 let Inst{31-21} = 0b00011100110;
31719 let hasNewValue = 1;
31720 let opNewValue = 0;
31721 let isCVI = 1;
31722 let DecoderNamespace = "EXT_mmvec";
31724 def V6_vavgub_alt : HInst<
31725 (outs HvxVR:$Vd32),
31726 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31727 "$Vd32 = vavgub($Vu32,$Vv32)",
31728 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31729 let hasNewValue = 1;
31730 let opNewValue = 0;
31731 let isCVI = 1;
31732 let isPseudo = 1;
31733 let isCodeGenOnly = 1;
31734 let DecoderNamespace = "EXT_mmvec";
31736 def V6_vavgubrnd : HInst<
31737 (outs HvxVR:$Vd32),
31738 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31739 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
31740 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31741 let Inst{7-5} = 0b011;
31742 let Inst{13-13} = 0b0;
31743 let Inst{31-21} = 0b00011100111;
31744 let hasNewValue = 1;
31745 let opNewValue = 0;
31746 let isCVI = 1;
31747 let DecoderNamespace = "EXT_mmvec";
31749 def V6_vavgubrnd_alt : HInst<
31750 (outs HvxVR:$Vd32),
31751 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31752 "$Vd32 = vavgub($Vu32,$Vv32):rnd",
31753 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31754 let hasNewValue = 1;
31755 let opNewValue = 0;
31756 let isCVI = 1;
31757 let isPseudo = 1;
31758 let isCodeGenOnly = 1;
31759 let DecoderNamespace = "EXT_mmvec";
31761 def V6_vavguh : HInst<
31762 (outs HvxVR:$Vd32),
31763 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31764 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
31765 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31766 let Inst{7-5} = 0b101;
31767 let Inst{13-13} = 0b0;
31768 let Inst{31-21} = 0b00011100110;
31769 let hasNewValue = 1;
31770 let opNewValue = 0;
31771 let isCVI = 1;
31772 let DecoderNamespace = "EXT_mmvec";
31774 def V6_vavguh_alt : HInst<
31775 (outs HvxVR:$Vd32),
31776 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31777 "$Vd32 = vavguh($Vu32,$Vv32)",
31778 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31779 let hasNewValue = 1;
31780 let opNewValue = 0;
31781 let isCVI = 1;
31782 let isPseudo = 1;
31783 let isCodeGenOnly = 1;
31784 let DecoderNamespace = "EXT_mmvec";
31786 def V6_vavguhrnd : HInst<
31787 (outs HvxVR:$Vd32),
31788 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31789 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
31790 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31791 let Inst{7-5} = 0b100;
31792 let Inst{13-13} = 0b0;
31793 let Inst{31-21} = 0b00011100111;
31794 let hasNewValue = 1;
31795 let opNewValue = 0;
31796 let isCVI = 1;
31797 let DecoderNamespace = "EXT_mmvec";
31799 def V6_vavguhrnd_alt : HInst<
31800 (outs HvxVR:$Vd32),
31801 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31802 "$Vd32 = vavguh($Vu32,$Vv32):rnd",
31803 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31804 let hasNewValue = 1;
31805 let opNewValue = 0;
31806 let isCVI = 1;
31807 let isPseudo = 1;
31808 let isCodeGenOnly = 1;
31809 let DecoderNamespace = "EXT_mmvec";
31811 def V6_vavguw : HInst<
31812 (outs HvxVR:$Vd32),
31813 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31814 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
31815 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31816 let Inst{7-5} = 0b010;
31817 let Inst{13-13} = 0b1;
31818 let Inst{31-21} = 0b00011111000;
31819 let hasNewValue = 1;
31820 let opNewValue = 0;
31821 let isCVI = 1;
31822 let DecoderNamespace = "EXT_mmvec";
31824 def V6_vavguw_alt : HInst<
31825 (outs HvxVR:$Vd32),
31826 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31827 "$Vd32 = vavguw($Vu32,$Vv32)",
31828 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31829 let hasNewValue = 1;
31830 let opNewValue = 0;
31831 let isCVI = 1;
31832 let isPseudo = 1;
31833 let isCodeGenOnly = 1;
31834 let DecoderNamespace = "EXT_mmvec";
31836 def V6_vavguwrnd : HInst<
31837 (outs HvxVR:$Vd32),
31838 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31839 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
31840 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31841 let Inst{7-5} = 0b011;
31842 let Inst{13-13} = 0b1;
31843 let Inst{31-21} = 0b00011111000;
31844 let hasNewValue = 1;
31845 let opNewValue = 0;
31846 let isCVI = 1;
31847 let DecoderNamespace = "EXT_mmvec";
31849 def V6_vavguwrnd_alt : HInst<
31850 (outs HvxVR:$Vd32),
31851 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31852 "$Vd32 = vavguw($Vu32,$Vv32):rnd",
31853 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31854 let hasNewValue = 1;
31855 let opNewValue = 0;
31856 let isCVI = 1;
31857 let isPseudo = 1;
31858 let isCodeGenOnly = 1;
31859 let DecoderNamespace = "EXT_mmvec";
31861 def V6_vavgw : HInst<
31862 (outs HvxVR:$Vd32),
31863 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31864 "$Vd32.w = vavg($Vu32.w,$Vv32.w)",
31865 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31866 let Inst{7-5} = 0b111;
31867 let Inst{13-13} = 0b0;
31868 let Inst{31-21} = 0b00011100110;
31869 let hasNewValue = 1;
31870 let opNewValue = 0;
31871 let isCVI = 1;
31872 let DecoderNamespace = "EXT_mmvec";
31874 def V6_vavgw_alt : HInst<
31875 (outs HvxVR:$Vd32),
31876 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31877 "$Vd32 = vavgw($Vu32,$Vv32)",
31878 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31879 let hasNewValue = 1;
31880 let opNewValue = 0;
31881 let isCVI = 1;
31882 let isPseudo = 1;
31883 let isCodeGenOnly = 1;
31884 let DecoderNamespace = "EXT_mmvec";
31886 def V6_vavgwrnd : HInst<
31887 (outs HvxVR:$Vd32),
31888 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31889 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
31890 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31891 let Inst{7-5} = 0b110;
31892 let Inst{13-13} = 0b0;
31893 let Inst{31-21} = 0b00011100111;
31894 let hasNewValue = 1;
31895 let opNewValue = 0;
31896 let isCVI = 1;
31897 let DecoderNamespace = "EXT_mmvec";
31899 def V6_vavgwrnd_alt : HInst<
31900 (outs HvxVR:$Vd32),
31901 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31902 "$Vd32 = vavgw($Vu32,$Vv32):rnd",
31903 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31904 let hasNewValue = 1;
31905 let opNewValue = 0;
31906 let isCVI = 1;
31907 let isPseudo = 1;
31908 let isCodeGenOnly = 1;
31909 let DecoderNamespace = "EXT_mmvec";
31911 def V6_vccombine : HInst<
31912 (outs HvxWR:$Vdd32),
31913 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
31914 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
31915 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
31916 let Inst{7-7} = 0b0;
31917 let Inst{13-13} = 0b0;
31918 let Inst{31-21} = 0b00011010011;
31919 let isPredicated = 1;
31920 let hasNewValue = 1;
31921 let opNewValue = 0;
31922 let isCVI = 1;
31923 let DecoderNamespace = "EXT_mmvec";
31925 def V6_vcl0h : HInst<
31926 (outs HvxVR:$Vd32),
31927 (ins HvxVR:$Vu32),
31928 "$Vd32.uh = vcl0($Vu32.uh)",
31929 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31930 let Inst{7-5} = 0b111;
31931 let Inst{13-13} = 0b0;
31932 let Inst{31-16} = 0b0001111000000010;
31933 let hasNewValue = 1;
31934 let opNewValue = 0;
31935 let isCVI = 1;
31936 let DecoderNamespace = "EXT_mmvec";
31938 def V6_vcl0h_alt : HInst<
31939 (outs HvxVR:$Vd32),
31940 (ins HvxVR:$Vu32),
31941 "$Vd32 = vcl0h($Vu32)",
31942 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31943 let hasNewValue = 1;
31944 let opNewValue = 0;
31945 let isCVI = 1;
31946 let isPseudo = 1;
31947 let isCodeGenOnly = 1;
31948 let DecoderNamespace = "EXT_mmvec";
31950 def V6_vcl0w : HInst<
31951 (outs HvxVR:$Vd32),
31952 (ins HvxVR:$Vu32),
31953 "$Vd32.uw = vcl0($Vu32.uw)",
31954 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31955 let Inst{7-5} = 0b101;
31956 let Inst{13-13} = 0b0;
31957 let Inst{31-16} = 0b0001111000000010;
31958 let hasNewValue = 1;
31959 let opNewValue = 0;
31960 let isCVI = 1;
31961 let DecoderNamespace = "EXT_mmvec";
31963 def V6_vcl0w_alt : HInst<
31964 (outs HvxVR:$Vd32),
31965 (ins HvxVR:$Vu32),
31966 "$Vd32 = vcl0w($Vu32)",
31967 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31968 let hasNewValue = 1;
31969 let opNewValue = 0;
31970 let isCVI = 1;
31971 let isPseudo = 1;
31972 let isCodeGenOnly = 1;
31973 let DecoderNamespace = "EXT_mmvec";
31975 def V6_vcmov : HInst<
31976 (outs HvxVR:$Vd32),
31977 (ins PredRegs:$Ps4, HvxVR:$Vu32),
31978 "if ($Ps4) $Vd32 = $Vu32",
31979 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
31980 let Inst{7-7} = 0b0;
31981 let Inst{13-13} = 0b0;
31982 let Inst{31-16} = 0b0001101000000000;
31983 let isPredicated = 1;
31984 let hasNewValue = 1;
31985 let opNewValue = 0;
31986 let isCVI = 1;
31987 let DecoderNamespace = "EXT_mmvec";
31989 def V6_vcombine : HInst<
31990 (outs HvxWR:$Vdd32),
31991 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31992 "$Vdd32 = vcombine($Vu32,$Vv32)",
31993 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
31994 let Inst{7-5} = 0b111;
31995 let Inst{13-13} = 0b0;
31996 let Inst{31-21} = 0b00011111010;
31997 let hasNewValue = 1;
31998 let opNewValue = 0;
31999 let isCVI = 1;
32000 let isRegSequence = 1;
32001 let DecoderNamespace = "EXT_mmvec";
32003 def V6_vd0 : HInst<
32004 (outs HvxVR:$Vd32),
32005 (ins),
32006 "$Vd32 = #0",
32007 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
32008 let hasNewValue = 1;
32009 let opNewValue = 0;
32010 let isCVI = 1;
32011 let isPseudo = 1;
32012 let isCodeGenOnly = 1;
32013 let DecoderNamespace = "EXT_mmvec";
32015 def V6_vdd0 : HInst<
32016 (outs HvxWR:$Vdd32),
32017 (ins),
32018 "$Vdd32 = #0",
32019 tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
32020 let hasNewValue = 1;
32021 let opNewValue = 0;
32022 let isCVI = 1;
32023 let isPseudo = 1;
32024 let isCodeGenOnly = 1;
32025 let DecoderNamespace = "EXT_mmvec";
32027 def V6_vdeal : HInst<
32028 (outs HvxVR:$Vy32, HvxVR:$Vx32),
32029 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
32030 "vdeal($Vy32,$Vx32,$Rt32)",
32031 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
32032 let Inst{7-5} = 0b010;
32033 let Inst{13-13} = 0b1;
32034 let Inst{31-21} = 0b00011001111;
32035 let hasNewValue = 1;
32036 let opNewValue = 0;
32037 let hasNewValue2 = 1;
32038 let opNewValue2 = 1;
32039 let isCVI = 1;
32040 let DecoderNamespace = "EXT_mmvec";
32041 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
32043 def V6_vdealb : HInst<
32044 (outs HvxVR:$Vd32),
32045 (ins HvxVR:$Vu32),
32046 "$Vd32.b = vdeal($Vu32.b)",
32047 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32048 let Inst{7-5} = 0b111;
32049 let Inst{13-13} = 0b0;
32050 let Inst{31-16} = 0b0001111000000000;
32051 let hasNewValue = 1;
32052 let opNewValue = 0;
32053 let isCVI = 1;
32054 let DecoderNamespace = "EXT_mmvec";
32056 def V6_vdealb4w : HInst<
32057 (outs HvxVR:$Vd32),
32058 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32059 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
32060 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32061 let Inst{7-5} = 0b111;
32062 let Inst{13-13} = 0b0;
32063 let Inst{31-21} = 0b00011111001;
32064 let hasNewValue = 1;
32065 let opNewValue = 0;
32066 let isCVI = 1;
32067 let DecoderNamespace = "EXT_mmvec";
32069 def V6_vdealb4w_alt : HInst<
32070 (outs HvxVR:$Vd32),
32071 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32072 "$Vd32 = vdealb4w($Vu32,$Vv32)",
32073 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32074 let hasNewValue = 1;
32075 let opNewValue = 0;
32076 let isCVI = 1;
32077 let isPseudo = 1;
32078 let isCodeGenOnly = 1;
32079 let DecoderNamespace = "EXT_mmvec";
32081 def V6_vdealb_alt : HInst<
32082 (outs HvxVR:$Vd32),
32083 (ins HvxVR:$Vu32),
32084 "$Vd32 = vdealb($Vu32)",
32085 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32086 let hasNewValue = 1;
32087 let opNewValue = 0;
32088 let isCVI = 1;
32089 let isPseudo = 1;
32090 let isCodeGenOnly = 1;
32091 let DecoderNamespace = "EXT_mmvec";
32093 def V6_vdealh : HInst<
32094 (outs HvxVR:$Vd32),
32095 (ins HvxVR:$Vu32),
32096 "$Vd32.h = vdeal($Vu32.h)",
32097 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32098 let Inst{7-5} = 0b110;
32099 let Inst{13-13} = 0b0;
32100 let Inst{31-16} = 0b0001111000000000;
32101 let hasNewValue = 1;
32102 let opNewValue = 0;
32103 let isCVI = 1;
32104 let DecoderNamespace = "EXT_mmvec";
32106 def V6_vdealh_alt : HInst<
32107 (outs HvxVR:$Vd32),
32108 (ins HvxVR:$Vu32),
32109 "$Vd32 = vdealh($Vu32)",
32110 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32111 let hasNewValue = 1;
32112 let opNewValue = 0;
32113 let isCVI = 1;
32114 let isPseudo = 1;
32115 let isCodeGenOnly = 1;
32116 let DecoderNamespace = "EXT_mmvec";
32118 def V6_vdealvdd : HInst<
32119 (outs HvxWR:$Vdd32),
32120 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32121 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
32122 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32123 let Inst{7-5} = 0b100;
32124 let Inst{13-13} = 0b1;
32125 let Inst{31-24} = 0b00011011;
32126 let hasNewValue = 1;
32127 let opNewValue = 0;
32128 let isCVI = 1;
32129 let DecoderNamespace = "EXT_mmvec";
32131 def V6_vdelta : HInst<
32132 (outs HvxVR:$Vd32),
32133 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32134 "$Vd32 = vdelta($Vu32,$Vv32)",
32135 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32136 let Inst{7-5} = 0b001;
32137 let Inst{13-13} = 0b0;
32138 let Inst{31-21} = 0b00011111001;
32139 let hasNewValue = 1;
32140 let opNewValue = 0;
32141 let isCVI = 1;
32142 let DecoderNamespace = "EXT_mmvec";
32144 def V6_vdmpybus : HInst<
32145 (outs HvxVR:$Vd32),
32146 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32147 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
32148 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32149 let Inst{7-5} = 0b110;
32150 let Inst{13-13} = 0b0;
32151 let Inst{31-21} = 0b00011001000;
32152 let hasNewValue = 1;
32153 let opNewValue = 0;
32154 let isCVI = 1;
32155 let DecoderNamespace = "EXT_mmvec";
32157 def V6_vdmpybus_acc : HInst<
32158 (outs HvxVR:$Vx32),
32159 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32160 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
32161 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32162 let Inst{7-5} = 0b110;
32163 let Inst{13-13} = 0b1;
32164 let Inst{31-21} = 0b00011001000;
32165 let hasNewValue = 1;
32166 let opNewValue = 0;
32167 let isAccumulator = 1;
32168 let isCVI = 1;
32169 let DecoderNamespace = "EXT_mmvec";
32170 let Constraints = "$Vx32 = $Vx32in";
32172 def V6_vdmpybus_acc_alt : HInst<
32173 (outs HvxVR:$Vx32),
32174 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32175 "$Vx32 += vdmpybus($Vu32,$Rt32)",
32176 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32177 let hasNewValue = 1;
32178 let opNewValue = 0;
32179 let isAccumulator = 1;
32180 let isCVI = 1;
32181 let isPseudo = 1;
32182 let isCodeGenOnly = 1;
32183 let DecoderNamespace = "EXT_mmvec";
32184 let Constraints = "$Vx32 = $Vx32in";
32186 def V6_vdmpybus_alt : HInst<
32187 (outs HvxVR:$Vd32),
32188 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32189 "$Vd32 = vdmpybus($Vu32,$Rt32)",
32190 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32191 let hasNewValue = 1;
32192 let opNewValue = 0;
32193 let isCVI = 1;
32194 let isPseudo = 1;
32195 let isCodeGenOnly = 1;
32196 let DecoderNamespace = "EXT_mmvec";
32198 def V6_vdmpybus_dv : HInst<
32199 (outs HvxWR:$Vdd32),
32200 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32201 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
32202 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32203 let Inst{7-5} = 0b111;
32204 let Inst{13-13} = 0b0;
32205 let Inst{31-21} = 0b00011001000;
32206 let hasNewValue = 1;
32207 let opNewValue = 0;
32208 let isCVI = 1;
32209 let DecoderNamespace = "EXT_mmvec";
32211 def V6_vdmpybus_dv_acc : HInst<
32212 (outs HvxWR:$Vxx32),
32213 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32214 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
32215 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32216 let Inst{7-5} = 0b111;
32217 let Inst{13-13} = 0b1;
32218 let Inst{31-21} = 0b00011001000;
32219 let hasNewValue = 1;
32220 let opNewValue = 0;
32221 let isAccumulator = 1;
32222 let isCVI = 1;
32223 let DecoderNamespace = "EXT_mmvec";
32224 let Constraints = "$Vxx32 = $Vxx32in";
32226 def V6_vdmpybus_dv_acc_alt : HInst<
32227 (outs HvxWR:$Vxx32),
32228 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32229 "$Vxx32 += vdmpybus($Vuu32,$Rt32)",
32230 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32231 let hasNewValue = 1;
32232 let opNewValue = 0;
32233 let isAccumulator = 1;
32234 let isCVI = 1;
32235 let isPseudo = 1;
32236 let isCodeGenOnly = 1;
32237 let DecoderNamespace = "EXT_mmvec";
32238 let Constraints = "$Vxx32 = $Vxx32in";
32240 def V6_vdmpybus_dv_alt : HInst<
32241 (outs HvxWR:$Vdd32),
32242 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32243 "$Vdd32 = vdmpybus($Vuu32,$Rt32)",
32244 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32245 let hasNewValue = 1;
32246 let opNewValue = 0;
32247 let isCVI = 1;
32248 let isPseudo = 1;
32249 let isCodeGenOnly = 1;
32250 let DecoderNamespace = "EXT_mmvec";
32252 def V6_vdmpyhb : HInst<
32253 (outs HvxVR:$Vd32),
32254 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32255 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
32256 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32257 let Inst{7-5} = 0b010;
32258 let Inst{13-13} = 0b0;
32259 let Inst{31-21} = 0b00011001000;
32260 let hasNewValue = 1;
32261 let opNewValue = 0;
32262 let isCVI = 1;
32263 let DecoderNamespace = "EXT_mmvec";
32265 def V6_vdmpyhb_acc : HInst<
32266 (outs HvxVR:$Vx32),
32267 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32268 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
32269 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32270 let Inst{7-5} = 0b011;
32271 let Inst{13-13} = 0b1;
32272 let Inst{31-21} = 0b00011001000;
32273 let hasNewValue = 1;
32274 let opNewValue = 0;
32275 let isAccumulator = 1;
32276 let isCVI = 1;
32277 let DecoderNamespace = "EXT_mmvec";
32278 let Constraints = "$Vx32 = $Vx32in";
32280 def V6_vdmpyhb_acc_alt : HInst<
32281 (outs HvxVR:$Vx32),
32282 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32283 "$Vx32 += vdmpyhb($Vu32,$Rt32)",
32284 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32285 let hasNewValue = 1;
32286 let opNewValue = 0;
32287 let isAccumulator = 1;
32288 let isCVI = 1;
32289 let isPseudo = 1;
32290 let isCodeGenOnly = 1;
32291 let DecoderNamespace = "EXT_mmvec";
32292 let Constraints = "$Vx32 = $Vx32in";
32294 def V6_vdmpyhb_alt : HInst<
32295 (outs HvxVR:$Vd32),
32296 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32297 "$Vd32 = vdmpyhb($Vu32,$Rt32)",
32298 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32299 let hasNewValue = 1;
32300 let opNewValue = 0;
32301 let isCVI = 1;
32302 let isPseudo = 1;
32303 let isCodeGenOnly = 1;
32304 let DecoderNamespace = "EXT_mmvec";
32306 def V6_vdmpyhb_dv : HInst<
32307 (outs HvxWR:$Vdd32),
32308 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32309 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
32310 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32311 let Inst{7-5} = 0b100;
32312 let Inst{13-13} = 0b0;
32313 let Inst{31-21} = 0b00011001001;
32314 let hasNewValue = 1;
32315 let opNewValue = 0;
32316 let isCVI = 1;
32317 let DecoderNamespace = "EXT_mmvec";
32319 def V6_vdmpyhb_dv_acc : HInst<
32320 (outs HvxWR:$Vxx32),
32321 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32322 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
32323 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32324 let Inst{7-5} = 0b100;
32325 let Inst{13-13} = 0b1;
32326 let Inst{31-21} = 0b00011001001;
32327 let hasNewValue = 1;
32328 let opNewValue = 0;
32329 let isAccumulator = 1;
32330 let isCVI = 1;
32331 let DecoderNamespace = "EXT_mmvec";
32332 let Constraints = "$Vxx32 = $Vxx32in";
32334 def V6_vdmpyhb_dv_acc_alt : HInst<
32335 (outs HvxWR:$Vxx32),
32336 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32337 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
32338 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32339 let hasNewValue = 1;
32340 let opNewValue = 0;
32341 let isAccumulator = 1;
32342 let isCVI = 1;
32343 let isPseudo = 1;
32344 let isCodeGenOnly = 1;
32345 let DecoderNamespace = "EXT_mmvec";
32346 let Constraints = "$Vxx32 = $Vxx32in";
32348 def V6_vdmpyhb_dv_alt : HInst<
32349 (outs HvxWR:$Vdd32),
32350 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32351 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
32352 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32353 let hasNewValue = 1;
32354 let opNewValue = 0;
32355 let isCVI = 1;
32356 let isPseudo = 1;
32357 let isCodeGenOnly = 1;
32358 let DecoderNamespace = "EXT_mmvec";
32360 def V6_vdmpyhisat : HInst<
32361 (outs HvxVR:$Vd32),
32362 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32363 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
32364 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
32365 let Inst{7-5} = 0b011;
32366 let Inst{13-13} = 0b0;
32367 let Inst{31-21} = 0b00011001001;
32368 let hasNewValue = 1;
32369 let opNewValue = 0;
32370 let isCVI = 1;
32371 let DecoderNamespace = "EXT_mmvec";
32373 def V6_vdmpyhisat_acc : HInst<
32374 (outs HvxVR:$Vx32),
32375 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32376 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
32377 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
32378 let Inst{7-5} = 0b010;
32379 let Inst{13-13} = 0b1;
32380 let Inst{31-21} = 0b00011001001;
32381 let hasNewValue = 1;
32382 let opNewValue = 0;
32383 let isAccumulator = 1;
32384 let isCVI = 1;
32385 let DecoderNamespace = "EXT_mmvec";
32386 let Constraints = "$Vx32 = $Vx32in";
32388 def V6_vdmpyhisat_acc_alt : HInst<
32389 (outs HvxVR:$Vx32),
32390 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32391 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
32392 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32393 let hasNewValue = 1;
32394 let opNewValue = 0;
32395 let isAccumulator = 1;
32396 let isCVI = 1;
32397 let isPseudo = 1;
32398 let isCodeGenOnly = 1;
32399 let DecoderNamespace = "EXT_mmvec";
32400 let Constraints = "$Vx32 = $Vx32in";
32402 def V6_vdmpyhisat_alt : HInst<
32403 (outs HvxVR:$Vd32),
32404 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32405 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
32406 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32407 let hasNewValue = 1;
32408 let opNewValue = 0;
32409 let isCVI = 1;
32410 let isPseudo = 1;
32411 let isCodeGenOnly = 1;
32412 let DecoderNamespace = "EXT_mmvec";
32414 def V6_vdmpyhsat : HInst<
32415 (outs HvxVR:$Vd32),
32416 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32417 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
32418 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
32419 let Inst{7-5} = 0b010;
32420 let Inst{13-13} = 0b0;
32421 let Inst{31-21} = 0b00011001001;
32422 let hasNewValue = 1;
32423 let opNewValue = 0;
32424 let isCVI = 1;
32425 let DecoderNamespace = "EXT_mmvec";
32427 def V6_vdmpyhsat_acc : HInst<
32428 (outs HvxVR:$Vx32),
32429 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32430 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
32431 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
32432 let Inst{7-5} = 0b011;
32433 let Inst{13-13} = 0b1;
32434 let Inst{31-21} = 0b00011001001;
32435 let hasNewValue = 1;
32436 let opNewValue = 0;
32437 let isAccumulator = 1;
32438 let isCVI = 1;
32439 let DecoderNamespace = "EXT_mmvec";
32440 let Constraints = "$Vx32 = $Vx32in";
32442 def V6_vdmpyhsat_acc_alt : HInst<
32443 (outs HvxVR:$Vx32),
32444 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32445 "$Vx32 += vdmpyh($Vu32,$Rt32):sat",
32446 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32447 let hasNewValue = 1;
32448 let opNewValue = 0;
32449 let isAccumulator = 1;
32450 let isCVI = 1;
32451 let isPseudo = 1;
32452 let isCodeGenOnly = 1;
32453 let DecoderNamespace = "EXT_mmvec";
32454 let Constraints = "$Vx32 = $Vx32in";
32456 def V6_vdmpyhsat_alt : HInst<
32457 (outs HvxVR:$Vd32),
32458 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32459 "$Vd32 = vdmpyh($Vu32,$Rt32):sat",
32460 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32461 let hasNewValue = 1;
32462 let opNewValue = 0;
32463 let isCVI = 1;
32464 let isPseudo = 1;
32465 let isCodeGenOnly = 1;
32466 let DecoderNamespace = "EXT_mmvec";
32468 def V6_vdmpyhsuisat : HInst<
32469 (outs HvxVR:$Vd32),
32470 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32471 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
32472 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
32473 let Inst{7-5} = 0b001;
32474 let Inst{13-13} = 0b0;
32475 let Inst{31-21} = 0b00011001001;
32476 let hasNewValue = 1;
32477 let opNewValue = 0;
32478 let isCVI = 1;
32479 let DecoderNamespace = "EXT_mmvec";
32481 def V6_vdmpyhsuisat_acc : HInst<
32482 (outs HvxVR:$Vx32),
32483 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32484 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
32485 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
32486 let Inst{7-5} = 0b001;
32487 let Inst{13-13} = 0b1;
32488 let Inst{31-21} = 0b00011001001;
32489 let hasNewValue = 1;
32490 let opNewValue = 0;
32491 let isAccumulator = 1;
32492 let isCVI = 1;
32493 let DecoderNamespace = "EXT_mmvec";
32494 let Constraints = "$Vx32 = $Vx32in";
32496 def V6_vdmpyhsuisat_acc_alt : HInst<
32497 (outs HvxVR:$Vx32),
32498 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32499 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
32500 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32501 let hasNewValue = 1;
32502 let opNewValue = 0;
32503 let isAccumulator = 1;
32504 let isCVI = 1;
32505 let isPseudo = 1;
32506 let isCodeGenOnly = 1;
32507 let DecoderNamespace = "EXT_mmvec";
32508 let Constraints = "$Vx32 = $Vx32in";
32510 def V6_vdmpyhsuisat_alt : HInst<
32511 (outs HvxVR:$Vd32),
32512 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32513 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
32514 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32515 let hasNewValue = 1;
32516 let opNewValue = 0;
32517 let isCVI = 1;
32518 let isPseudo = 1;
32519 let isCodeGenOnly = 1;
32520 let DecoderNamespace = "EXT_mmvec";
32522 def V6_vdmpyhsusat : HInst<
32523 (outs HvxVR:$Vd32),
32524 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32525 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
32526 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
32527 let Inst{7-5} = 0b000;
32528 let Inst{13-13} = 0b0;
32529 let Inst{31-21} = 0b00011001001;
32530 let hasNewValue = 1;
32531 let opNewValue = 0;
32532 let isCVI = 1;
32533 let DecoderNamespace = "EXT_mmvec";
32535 def V6_vdmpyhsusat_acc : HInst<
32536 (outs HvxVR:$Vx32),
32537 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32538 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
32539 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
32540 let Inst{7-5} = 0b000;
32541 let Inst{13-13} = 0b1;
32542 let Inst{31-21} = 0b00011001001;
32543 let hasNewValue = 1;
32544 let opNewValue = 0;
32545 let isAccumulator = 1;
32546 let isCVI = 1;
32547 let DecoderNamespace = "EXT_mmvec";
32548 let Constraints = "$Vx32 = $Vx32in";
32550 def V6_vdmpyhsusat_acc_alt : HInst<
32551 (outs HvxVR:$Vx32),
32552 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32553 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
32554 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32555 let hasNewValue = 1;
32556 let opNewValue = 0;
32557 let isAccumulator = 1;
32558 let isCVI = 1;
32559 let isPseudo = 1;
32560 let isCodeGenOnly = 1;
32561 let DecoderNamespace = "EXT_mmvec";
32562 let Constraints = "$Vx32 = $Vx32in";
32564 def V6_vdmpyhsusat_alt : HInst<
32565 (outs HvxVR:$Vd32),
32566 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32567 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
32568 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32569 let hasNewValue = 1;
32570 let opNewValue = 0;
32571 let isCVI = 1;
32572 let isPseudo = 1;
32573 let isCodeGenOnly = 1;
32574 let DecoderNamespace = "EXT_mmvec";
32576 def V6_vdmpyhvsat : HInst<
32577 (outs HvxVR:$Vd32),
32578 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32579 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
32580 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
32581 let Inst{7-5} = 0b011;
32582 let Inst{13-13} = 0b0;
32583 let Inst{31-21} = 0b00011100000;
32584 let hasNewValue = 1;
32585 let opNewValue = 0;
32586 let isCVI = 1;
32587 let DecoderNamespace = "EXT_mmvec";
32589 def V6_vdmpyhvsat_acc : HInst<
32590 (outs HvxVR:$Vx32),
32591 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
32592 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
32593 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
32594 let Inst{7-5} = 0b011;
32595 let Inst{13-13} = 0b1;
32596 let Inst{31-21} = 0b00011100000;
32597 let hasNewValue = 1;
32598 let opNewValue = 0;
32599 let isAccumulator = 1;
32600 let isCVI = 1;
32601 let DecoderNamespace = "EXT_mmvec";
32602 let Constraints = "$Vx32 = $Vx32in";
32604 def V6_vdmpyhvsat_acc_alt : HInst<
32605 (outs HvxVR:$Vx32),
32606 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
32607 "$Vx32 += vdmpyh($Vu32,$Vv32):sat",
32608 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32609 let hasNewValue = 1;
32610 let opNewValue = 0;
32611 let isAccumulator = 1;
32612 let isCVI = 1;
32613 let isPseudo = 1;
32614 let isCodeGenOnly = 1;
32615 let DecoderNamespace = "EXT_mmvec";
32616 let Constraints = "$Vx32 = $Vx32in";
32618 def V6_vdmpyhvsat_alt : HInst<
32619 (outs HvxVR:$Vd32),
32620 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32621 "$Vd32 = vdmpyh($Vu32,$Vv32):sat",
32622 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32623 let hasNewValue = 1;
32624 let opNewValue = 0;
32625 let isCVI = 1;
32626 let isPseudo = 1;
32627 let isCodeGenOnly = 1;
32628 let DecoderNamespace = "EXT_mmvec";
32630 def V6_vdsaduh : HInst<
32631 (outs HvxWR:$Vdd32),
32632 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32633 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
32634 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32635 let Inst{7-5} = 0b101;
32636 let Inst{13-13} = 0b0;
32637 let Inst{31-21} = 0b00011001000;
32638 let hasNewValue = 1;
32639 let opNewValue = 0;
32640 let isCVI = 1;
32641 let DecoderNamespace = "EXT_mmvec";
32643 def V6_vdsaduh_acc : HInst<
32644 (outs HvxWR:$Vxx32),
32645 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32646 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
32647 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32648 let Inst{7-5} = 0b000;
32649 let Inst{13-13} = 0b1;
32650 let Inst{31-21} = 0b00011001011;
32651 let hasNewValue = 1;
32652 let opNewValue = 0;
32653 let isAccumulator = 1;
32654 let isCVI = 1;
32655 let DecoderNamespace = "EXT_mmvec";
32656 let Constraints = "$Vxx32 = $Vxx32in";
32658 def V6_vdsaduh_acc_alt : HInst<
32659 (outs HvxWR:$Vxx32),
32660 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32661 "$Vxx32 += vdsaduh($Vuu32,$Rt32)",
32662 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32663 let hasNewValue = 1;
32664 let opNewValue = 0;
32665 let isAccumulator = 1;
32666 let isCVI = 1;
32667 let isPseudo = 1;
32668 let isCodeGenOnly = 1;
32669 let DecoderNamespace = "EXT_mmvec";
32670 let Constraints = "$Vxx32 = $Vxx32in";
32672 def V6_vdsaduh_alt : HInst<
32673 (outs HvxWR:$Vdd32),
32674 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32675 "$Vdd32 = vdsaduh($Vuu32,$Rt32)",
32676 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32677 let hasNewValue = 1;
32678 let opNewValue = 0;
32679 let isCVI = 1;
32680 let isPseudo = 1;
32681 let isCodeGenOnly = 1;
32682 let DecoderNamespace = "EXT_mmvec";
32684 def V6_veqb : HInst<
32685 (outs HvxQR:$Qd4),
32686 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32687 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
32688 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32689 let Inst{7-2} = 0b000000;
32690 let Inst{13-13} = 0b0;
32691 let Inst{31-21} = 0b00011111100;
32692 let hasNewValue = 1;
32693 let opNewValue = 0;
32694 let isCVI = 1;
32695 let DecoderNamespace = "EXT_mmvec";
32697 def V6_veqb_and : HInst<
32698 (outs HvxQR:$Qx4),
32699 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32700 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
32701 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32702 let Inst{7-2} = 0b000000;
32703 let Inst{13-13} = 0b1;
32704 let Inst{31-21} = 0b00011100100;
32705 let isCVI = 1;
32706 let DecoderNamespace = "EXT_mmvec";
32707 let Constraints = "$Qx4 = $Qx4in";
32709 def V6_veqb_or : HInst<
32710 (outs HvxQR:$Qx4),
32711 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32712 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
32713 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32714 let Inst{7-2} = 0b010000;
32715 let Inst{13-13} = 0b1;
32716 let Inst{31-21} = 0b00011100100;
32717 let isAccumulator = 1;
32718 let isCVI = 1;
32719 let DecoderNamespace = "EXT_mmvec";
32720 let Constraints = "$Qx4 = $Qx4in";
32722 def V6_veqb_xor : HInst<
32723 (outs HvxQR:$Qx4),
32724 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32725 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
32726 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32727 let Inst{7-2} = 0b100000;
32728 let Inst{13-13} = 0b1;
32729 let Inst{31-21} = 0b00011100100;
32730 let isCVI = 1;
32731 let DecoderNamespace = "EXT_mmvec";
32732 let Constraints = "$Qx4 = $Qx4in";
32734 def V6_veqh : HInst<
32735 (outs HvxQR:$Qd4),
32736 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32737 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
32738 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32739 let Inst{7-2} = 0b000001;
32740 let Inst{13-13} = 0b0;
32741 let Inst{31-21} = 0b00011111100;
32742 let hasNewValue = 1;
32743 let opNewValue = 0;
32744 let isCVI = 1;
32745 let DecoderNamespace = "EXT_mmvec";
32747 def V6_veqh_and : HInst<
32748 (outs HvxQR:$Qx4),
32749 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32750 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
32751 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32752 let Inst{7-2} = 0b000001;
32753 let Inst{13-13} = 0b1;
32754 let Inst{31-21} = 0b00011100100;
32755 let isCVI = 1;
32756 let DecoderNamespace = "EXT_mmvec";
32757 let Constraints = "$Qx4 = $Qx4in";
32759 def V6_veqh_or : HInst<
32760 (outs HvxQR:$Qx4),
32761 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32762 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
32763 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32764 let Inst{7-2} = 0b010001;
32765 let Inst{13-13} = 0b1;
32766 let Inst{31-21} = 0b00011100100;
32767 let isAccumulator = 1;
32768 let isCVI = 1;
32769 let DecoderNamespace = "EXT_mmvec";
32770 let Constraints = "$Qx4 = $Qx4in";
32772 def V6_veqh_xor : HInst<
32773 (outs HvxQR:$Qx4),
32774 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32775 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
32776 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32777 let Inst{7-2} = 0b100001;
32778 let Inst{13-13} = 0b1;
32779 let Inst{31-21} = 0b00011100100;
32780 let isCVI = 1;
32781 let DecoderNamespace = "EXT_mmvec";
32782 let Constraints = "$Qx4 = $Qx4in";
32784 def V6_veqw : HInst<
32785 (outs HvxQR:$Qd4),
32786 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32787 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
32788 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32789 let Inst{7-2} = 0b000010;
32790 let Inst{13-13} = 0b0;
32791 let Inst{31-21} = 0b00011111100;
32792 let hasNewValue = 1;
32793 let opNewValue = 0;
32794 let isCVI = 1;
32795 let DecoderNamespace = "EXT_mmvec";
32797 def V6_veqw_and : HInst<
32798 (outs HvxQR:$Qx4),
32799 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32800 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
32801 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32802 let Inst{7-2} = 0b000010;
32803 let Inst{13-13} = 0b1;
32804 let Inst{31-21} = 0b00011100100;
32805 let isCVI = 1;
32806 let DecoderNamespace = "EXT_mmvec";
32807 let Constraints = "$Qx4 = $Qx4in";
32809 def V6_veqw_or : HInst<
32810 (outs HvxQR:$Qx4),
32811 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32812 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
32813 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32814 let Inst{7-2} = 0b010010;
32815 let Inst{13-13} = 0b1;
32816 let Inst{31-21} = 0b00011100100;
32817 let isAccumulator = 1;
32818 let isCVI = 1;
32819 let DecoderNamespace = "EXT_mmvec";
32820 let Constraints = "$Qx4 = $Qx4in";
32822 def V6_veqw_xor : HInst<
32823 (outs HvxQR:$Qx4),
32824 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32825 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
32826 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32827 let Inst{7-2} = 0b100010;
32828 let Inst{13-13} = 0b1;
32829 let Inst{31-21} = 0b00011100100;
32830 let isCVI = 1;
32831 let DecoderNamespace = "EXT_mmvec";
32832 let Constraints = "$Qx4 = $Qx4in";
32834 def V6_vgathermh : HInst<
32835 (outs),
32836 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32837 "vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
32838 tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
32839 let Inst{12-5} = 0b00001000;
32840 let Inst{31-21} = 0b00101111000;
32841 let hasNewValue = 1;
32842 let opNewValue = 0;
32843 let accessSize = HalfWordAccess;
32844 let isCVLoad = 1;
32845 let isCVI = 1;
32846 let hasTmpDst = 1;
32847 let mayLoad = 1;
32848 let Defs = [VTMP];
32849 let DecoderNamespace = "EXT_mmvec";
32851 def V6_vgathermhq : HInst<
32852 (outs),
32853 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32854 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
32855 tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
32856 let Inst{12-7} = 0b001010;
32857 let Inst{31-21} = 0b00101111000;
32858 let hasNewValue = 1;
32859 let opNewValue = 0;
32860 let accessSize = HalfWordAccess;
32861 let isCVLoad = 1;
32862 let isCVI = 1;
32863 let hasTmpDst = 1;
32864 let mayLoad = 1;
32865 let Defs = [VTMP];
32866 let DecoderNamespace = "EXT_mmvec";
32868 def V6_vgathermhw : HInst<
32869 (outs),
32870 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32871 "vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32872 tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> {
32873 let Inst{12-5} = 0b00010000;
32874 let Inst{31-21} = 0b00101111000;
32875 let hasNewValue = 1;
32876 let opNewValue = 0;
32877 let accessSize = HalfWordAccess;
32878 let isCVLoad = 1;
32879 let isCVI = 1;
32880 let hasTmpDst = 1;
32881 let mayLoad = 1;
32882 let Defs = [VTMP];
32883 let DecoderNamespace = "EXT_mmvec";
32885 def V6_vgathermhwq : HInst<
32886 (outs),
32887 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32888 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32889 tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> {
32890 let Inst{12-7} = 0b001100;
32891 let Inst{31-21} = 0b00101111000;
32892 let hasNewValue = 1;
32893 let opNewValue = 0;
32894 let accessSize = HalfWordAccess;
32895 let isCVLoad = 1;
32896 let isCVI = 1;
32897 let hasTmpDst = 1;
32898 let mayLoad = 1;
32899 let Defs = [VTMP];
32900 let DecoderNamespace = "EXT_mmvec";
32902 def V6_vgathermw : HInst<
32903 (outs),
32904 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32905 "vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32906 tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
32907 let Inst{12-5} = 0b00000000;
32908 let Inst{31-21} = 0b00101111000;
32909 let hasNewValue = 1;
32910 let opNewValue = 0;
32911 let accessSize = WordAccess;
32912 let isCVLoad = 1;
32913 let isCVI = 1;
32914 let hasTmpDst = 1;
32915 let mayLoad = 1;
32916 let Defs = [VTMP];
32917 let DecoderNamespace = "EXT_mmvec";
32919 def V6_vgathermwq : HInst<
32920 (outs),
32921 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32922 "if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32923 tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
32924 let Inst{12-7} = 0b001000;
32925 let Inst{31-21} = 0b00101111000;
32926 let hasNewValue = 1;
32927 let opNewValue = 0;
32928 let accessSize = WordAccess;
32929 let isCVLoad = 1;
32930 let isCVI = 1;
32931 let hasTmpDst = 1;
32932 let mayLoad = 1;
32933 let Defs = [VTMP];
32934 let DecoderNamespace = "EXT_mmvec";
32936 def V6_vgtb : HInst<
32937 (outs HvxQR:$Qd4),
32938 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32939 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
32940 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32941 let Inst{7-2} = 0b000100;
32942 let Inst{13-13} = 0b0;
32943 let Inst{31-21} = 0b00011111100;
32944 let hasNewValue = 1;
32945 let opNewValue = 0;
32946 let isCVI = 1;
32947 let DecoderNamespace = "EXT_mmvec";
32949 def V6_vgtb_and : HInst<
32950 (outs HvxQR:$Qx4),
32951 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32952 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
32953 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32954 let Inst{7-2} = 0b000100;
32955 let Inst{13-13} = 0b1;
32956 let Inst{31-21} = 0b00011100100;
32957 let isCVI = 1;
32958 let DecoderNamespace = "EXT_mmvec";
32959 let Constraints = "$Qx4 = $Qx4in";
32961 def V6_vgtb_or : HInst<
32962 (outs HvxQR:$Qx4),
32963 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32964 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
32965 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32966 let Inst{7-2} = 0b010100;
32967 let Inst{13-13} = 0b1;
32968 let Inst{31-21} = 0b00011100100;
32969 let isAccumulator = 1;
32970 let isCVI = 1;
32971 let DecoderNamespace = "EXT_mmvec";
32972 let Constraints = "$Qx4 = $Qx4in";
32974 def V6_vgtb_xor : HInst<
32975 (outs HvxQR:$Qx4),
32976 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32977 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
32978 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32979 let Inst{7-2} = 0b100100;
32980 let Inst{13-13} = 0b1;
32981 let Inst{31-21} = 0b00011100100;
32982 let isCVI = 1;
32983 let DecoderNamespace = "EXT_mmvec";
32984 let Constraints = "$Qx4 = $Qx4in";
32986 def V6_vgth : HInst<
32987 (outs HvxQR:$Qd4),
32988 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32989 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
32990 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32991 let Inst{7-2} = 0b000101;
32992 let Inst{13-13} = 0b0;
32993 let Inst{31-21} = 0b00011111100;
32994 let hasNewValue = 1;
32995 let opNewValue = 0;
32996 let isCVI = 1;
32997 let DecoderNamespace = "EXT_mmvec";
32999 def V6_vgth_and : HInst<
33000 (outs HvxQR:$Qx4),
33001 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33002 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
33003 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33004 let Inst{7-2} = 0b000101;
33005 let Inst{13-13} = 0b1;
33006 let Inst{31-21} = 0b00011100100;
33007 let isCVI = 1;
33008 let DecoderNamespace = "EXT_mmvec";
33009 let Constraints = "$Qx4 = $Qx4in";
33011 def V6_vgth_or : HInst<
33012 (outs HvxQR:$Qx4),
33013 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33014 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
33015 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33016 let Inst{7-2} = 0b010101;
33017 let Inst{13-13} = 0b1;
33018 let Inst{31-21} = 0b00011100100;
33019 let isAccumulator = 1;
33020 let isCVI = 1;
33021 let DecoderNamespace = "EXT_mmvec";
33022 let Constraints = "$Qx4 = $Qx4in";
33024 def V6_vgth_xor : HInst<
33025 (outs HvxQR:$Qx4),
33026 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33027 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
33028 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33029 let Inst{7-2} = 0b100101;
33030 let Inst{13-13} = 0b1;
33031 let Inst{31-21} = 0b00011100100;
33032 let isCVI = 1;
33033 let DecoderNamespace = "EXT_mmvec";
33034 let Constraints = "$Qx4 = $Qx4in";
33036 def V6_vgtub : HInst<
33037 (outs HvxQR:$Qd4),
33038 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33039 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
33040 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33041 let Inst{7-2} = 0b001000;
33042 let Inst{13-13} = 0b0;
33043 let Inst{31-21} = 0b00011111100;
33044 let hasNewValue = 1;
33045 let opNewValue = 0;
33046 let isCVI = 1;
33047 let DecoderNamespace = "EXT_mmvec";
33049 def V6_vgtub_and : HInst<
33050 (outs HvxQR:$Qx4),
33051 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33052 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
33053 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33054 let Inst{7-2} = 0b001000;
33055 let Inst{13-13} = 0b1;
33056 let Inst{31-21} = 0b00011100100;
33057 let isCVI = 1;
33058 let DecoderNamespace = "EXT_mmvec";
33059 let Constraints = "$Qx4 = $Qx4in";
33061 def V6_vgtub_or : HInst<
33062 (outs HvxQR:$Qx4),
33063 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33064 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
33065 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33066 let Inst{7-2} = 0b011000;
33067 let Inst{13-13} = 0b1;
33068 let Inst{31-21} = 0b00011100100;
33069 let isAccumulator = 1;
33070 let isCVI = 1;
33071 let DecoderNamespace = "EXT_mmvec";
33072 let Constraints = "$Qx4 = $Qx4in";
33074 def V6_vgtub_xor : HInst<
33075 (outs HvxQR:$Qx4),
33076 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33077 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
33078 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33079 let Inst{7-2} = 0b101000;
33080 let Inst{13-13} = 0b1;
33081 let Inst{31-21} = 0b00011100100;
33082 let isCVI = 1;
33083 let DecoderNamespace = "EXT_mmvec";
33084 let Constraints = "$Qx4 = $Qx4in";
33086 def V6_vgtuh : HInst<
33087 (outs HvxQR:$Qd4),
33088 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33089 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
33090 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33091 let Inst{7-2} = 0b001001;
33092 let Inst{13-13} = 0b0;
33093 let Inst{31-21} = 0b00011111100;
33094 let hasNewValue = 1;
33095 let opNewValue = 0;
33096 let isCVI = 1;
33097 let DecoderNamespace = "EXT_mmvec";
33099 def V6_vgtuh_and : HInst<
33100 (outs HvxQR:$Qx4),
33101 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33102 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
33103 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33104 let Inst{7-2} = 0b001001;
33105 let Inst{13-13} = 0b1;
33106 let Inst{31-21} = 0b00011100100;
33107 let isCVI = 1;
33108 let DecoderNamespace = "EXT_mmvec";
33109 let Constraints = "$Qx4 = $Qx4in";
33111 def V6_vgtuh_or : HInst<
33112 (outs HvxQR:$Qx4),
33113 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33114 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
33115 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33116 let Inst{7-2} = 0b011001;
33117 let Inst{13-13} = 0b1;
33118 let Inst{31-21} = 0b00011100100;
33119 let isAccumulator = 1;
33120 let isCVI = 1;
33121 let DecoderNamespace = "EXT_mmvec";
33122 let Constraints = "$Qx4 = $Qx4in";
33124 def V6_vgtuh_xor : HInst<
33125 (outs HvxQR:$Qx4),
33126 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33127 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
33128 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33129 let Inst{7-2} = 0b101001;
33130 let Inst{13-13} = 0b1;
33131 let Inst{31-21} = 0b00011100100;
33132 let isCVI = 1;
33133 let DecoderNamespace = "EXT_mmvec";
33134 let Constraints = "$Qx4 = $Qx4in";
33136 def V6_vgtuw : HInst<
33137 (outs HvxQR:$Qd4),
33138 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33139 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
33140 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33141 let Inst{7-2} = 0b001010;
33142 let Inst{13-13} = 0b0;
33143 let Inst{31-21} = 0b00011111100;
33144 let hasNewValue = 1;
33145 let opNewValue = 0;
33146 let isCVI = 1;
33147 let DecoderNamespace = "EXT_mmvec";
33149 def V6_vgtuw_and : HInst<
33150 (outs HvxQR:$Qx4),
33151 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33152 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
33153 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33154 let Inst{7-2} = 0b001010;
33155 let Inst{13-13} = 0b1;
33156 let Inst{31-21} = 0b00011100100;
33157 let isCVI = 1;
33158 let DecoderNamespace = "EXT_mmvec";
33159 let Constraints = "$Qx4 = $Qx4in";
33161 def V6_vgtuw_or : HInst<
33162 (outs HvxQR:$Qx4),
33163 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33164 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
33165 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33166 let Inst{7-2} = 0b011010;
33167 let Inst{13-13} = 0b1;
33168 let Inst{31-21} = 0b00011100100;
33169 let isAccumulator = 1;
33170 let isCVI = 1;
33171 let DecoderNamespace = "EXT_mmvec";
33172 let Constraints = "$Qx4 = $Qx4in";
33174 def V6_vgtuw_xor : HInst<
33175 (outs HvxQR:$Qx4),
33176 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33177 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
33178 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33179 let Inst{7-2} = 0b101010;
33180 let Inst{13-13} = 0b1;
33181 let Inst{31-21} = 0b00011100100;
33182 let isCVI = 1;
33183 let DecoderNamespace = "EXT_mmvec";
33184 let Constraints = "$Qx4 = $Qx4in";
33186 def V6_vgtw : HInst<
33187 (outs HvxQR:$Qd4),
33188 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33189 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
33190 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33191 let Inst{7-2} = 0b000110;
33192 let Inst{13-13} = 0b0;
33193 let Inst{31-21} = 0b00011111100;
33194 let hasNewValue = 1;
33195 let opNewValue = 0;
33196 let isCVI = 1;
33197 let DecoderNamespace = "EXT_mmvec";
33199 def V6_vgtw_and : HInst<
33200 (outs HvxQR:$Qx4),
33201 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33202 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
33203 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33204 let Inst{7-2} = 0b000110;
33205 let Inst{13-13} = 0b1;
33206 let Inst{31-21} = 0b00011100100;
33207 let isCVI = 1;
33208 let DecoderNamespace = "EXT_mmvec";
33209 let Constraints = "$Qx4 = $Qx4in";
33211 def V6_vgtw_or : HInst<
33212 (outs HvxQR:$Qx4),
33213 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33214 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
33215 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33216 let Inst{7-2} = 0b010110;
33217 let Inst{13-13} = 0b1;
33218 let Inst{31-21} = 0b00011100100;
33219 let isAccumulator = 1;
33220 let isCVI = 1;
33221 let DecoderNamespace = "EXT_mmvec";
33222 let Constraints = "$Qx4 = $Qx4in";
33224 def V6_vgtw_xor : HInst<
33225 (outs HvxQR:$Qx4),
33226 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33227 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
33228 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33229 let Inst{7-2} = 0b100110;
33230 let Inst{13-13} = 0b1;
33231 let Inst{31-21} = 0b00011100100;
33232 let isCVI = 1;
33233 let DecoderNamespace = "EXT_mmvec";
33234 let Constraints = "$Qx4 = $Qx4in";
33236 def V6_vhist : HInst<
33237 (outs),
33238 (ins),
33239 "vhist",
33240 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
33241 let Inst{13-0} = 0b10000010000000;
33242 let Inst{31-16} = 0b0001111000000000;
33243 let isCVI = 1;
33244 let DecoderNamespace = "EXT_mmvec";
33246 def V6_vhistq : HInst<
33247 (outs),
33248 (ins HvxQR:$Qv4),
33249 "vhist($Qv4)",
33250 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
33251 let Inst{13-0} = 0b10000010000000;
33252 let Inst{21-16} = 0b000010;
33253 let Inst{31-24} = 0b00011110;
33254 let isCVI = 1;
33255 let DecoderNamespace = "EXT_mmvec";
33257 def V6_vinsertwr : HInst<
33258 (outs HvxVR:$Vx32),
33259 (ins HvxVR:$Vx32in, IntRegs:$Rt32),
33260 "$Vx32.w = vinsert($Rt32)",
33261 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
33262 let Inst{13-5} = 0b100000001;
33263 let Inst{31-21} = 0b00011001101;
33264 let hasNewValue = 1;
33265 let opNewValue = 0;
33266 let isCVI = 1;
33267 let DecoderNamespace = "EXT_mmvec";
33268 let Constraints = "$Vx32 = $Vx32in";
33270 def V6_vlalignb : HInst<
33271 (outs HvxVR:$Vd32),
33272 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33273 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
33274 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
33275 let Inst{7-5} = 0b001;
33276 let Inst{13-13} = 0b0;
33277 let Inst{31-24} = 0b00011011;
33278 let hasNewValue = 1;
33279 let opNewValue = 0;
33280 let isCVI = 1;
33281 let DecoderNamespace = "EXT_mmvec";
33283 def V6_vlalignbi : HInst<
33284 (outs HvxVR:$Vd32),
33285 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33286 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
33287 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
33288 let Inst{13-13} = 0b1;
33289 let Inst{31-21} = 0b00011110011;
33290 let hasNewValue = 1;
33291 let opNewValue = 0;
33292 let isCVI = 1;
33293 let DecoderNamespace = "EXT_mmvec";
33295 def V6_vlsrb : HInst<
33296 (outs HvxVR:$Vd32),
33297 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33298 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
33299 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
33300 let Inst{7-5} = 0b011;
33301 let Inst{13-13} = 0b0;
33302 let Inst{31-21} = 0b00011001100;
33303 let hasNewValue = 1;
33304 let opNewValue = 0;
33305 let isCVI = 1;
33306 let DecoderNamespace = "EXT_mmvec";
33308 def V6_vlsrh : HInst<
33309 (outs HvxVR:$Vd32),
33310 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33311 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
33312 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
33313 let Inst{7-5} = 0b010;
33314 let Inst{13-13} = 0b0;
33315 let Inst{31-21} = 0b00011001100;
33316 let hasNewValue = 1;
33317 let opNewValue = 0;
33318 let isCVI = 1;
33319 let DecoderNamespace = "EXT_mmvec";
33321 def V6_vlsrh_alt : HInst<
33322 (outs HvxVR:$Vd32),
33323 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33324 "$Vd32 = vlsrh($Vu32,$Rt32)",
33325 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33326 let hasNewValue = 1;
33327 let opNewValue = 0;
33328 let isCVI = 1;
33329 let isPseudo = 1;
33330 let isCodeGenOnly = 1;
33331 let DecoderNamespace = "EXT_mmvec";
33333 def V6_vlsrhv : HInst<
33334 (outs HvxVR:$Vd32),
33335 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33336 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
33337 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
33338 let Inst{7-5} = 0b010;
33339 let Inst{13-13} = 0b0;
33340 let Inst{31-21} = 0b00011111101;
33341 let hasNewValue = 1;
33342 let opNewValue = 0;
33343 let isCVI = 1;
33344 let DecoderNamespace = "EXT_mmvec";
33346 def V6_vlsrhv_alt : HInst<
33347 (outs HvxVR:$Vd32),
33348 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33349 "$Vd32 = vlsrh($Vu32,$Vv32)",
33350 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33351 let hasNewValue = 1;
33352 let opNewValue = 0;
33353 let isCVI = 1;
33354 let isPseudo = 1;
33355 let isCodeGenOnly = 1;
33356 let DecoderNamespace = "EXT_mmvec";
33358 def V6_vlsrw : HInst<
33359 (outs HvxVR:$Vd32),
33360 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33361 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
33362 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
33363 let Inst{7-5} = 0b001;
33364 let Inst{13-13} = 0b0;
33365 let Inst{31-21} = 0b00011001100;
33366 let hasNewValue = 1;
33367 let opNewValue = 0;
33368 let isCVI = 1;
33369 let DecoderNamespace = "EXT_mmvec";
33371 def V6_vlsrw_alt : HInst<
33372 (outs HvxVR:$Vd32),
33373 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33374 "$Vd32 = vlsrw($Vu32,$Rt32)",
33375 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33376 let hasNewValue = 1;
33377 let opNewValue = 0;
33378 let isCVI = 1;
33379 let isPseudo = 1;
33380 let isCodeGenOnly = 1;
33381 let DecoderNamespace = "EXT_mmvec";
33383 def V6_vlsrwv : HInst<
33384 (outs HvxVR:$Vd32),
33385 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33386 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
33387 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
33388 let Inst{7-5} = 0b001;
33389 let Inst{13-13} = 0b0;
33390 let Inst{31-21} = 0b00011111101;
33391 let hasNewValue = 1;
33392 let opNewValue = 0;
33393 let isCVI = 1;
33394 let DecoderNamespace = "EXT_mmvec";
33396 def V6_vlsrwv_alt : HInst<
33397 (outs HvxVR:$Vd32),
33398 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33399 "$Vd32 = vlsrw($Vu32,$Vv32)",
33400 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33401 let hasNewValue = 1;
33402 let opNewValue = 0;
33403 let isCVI = 1;
33404 let isPseudo = 1;
33405 let isCodeGenOnly = 1;
33406 let DecoderNamespace = "EXT_mmvec";
33408 def V6_vlut4 : HInst<
33409 (outs HvxVR:$Vd32),
33410 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
33411 "$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
33412 tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
33413 let Inst{7-5} = 0b100;
33414 let Inst{13-13} = 0b0;
33415 let Inst{31-21} = 0b00011001011;
33416 let hasNewValue = 1;
33417 let opNewValue = 0;
33418 let isCVI = 1;
33419 let DecoderNamespace = "EXT_mmvec";
33421 def V6_vlutvvb : HInst<
33422 (outs HvxVR:$Vd32),
33423 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33424 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
33425 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
33426 let Inst{7-5} = 0b001;
33427 let Inst{13-13} = 0b1;
33428 let Inst{31-24} = 0b00011011;
33429 let hasNewValue = 1;
33430 let opNewValue = 0;
33431 let isCVI = 1;
33432 let DecoderNamespace = "EXT_mmvec";
33434 def V6_vlutvvb_nm : HInst<
33435 (outs HvxVR:$Vd32),
33436 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33437 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
33438 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
33439 let Inst{7-5} = 0b011;
33440 let Inst{13-13} = 0b0;
33441 let Inst{31-24} = 0b00011000;
33442 let hasNewValue = 1;
33443 let opNewValue = 0;
33444 let isCVI = 1;
33445 let DecoderNamespace = "EXT_mmvec";
33447 def V6_vlutvvb_oracc : HInst<
33448 (outs HvxVR:$Vx32),
33449 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33450 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
33451 tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
33452 let Inst{7-5} = 0b101;
33453 let Inst{13-13} = 0b1;
33454 let Inst{31-24} = 0b00011011;
33455 let hasNewValue = 1;
33456 let opNewValue = 0;
33457 let isAccumulator = 1;
33458 let isCVI = 1;
33459 let DecoderNamespace = "EXT_mmvec";
33460 let Constraints = "$Vx32 = $Vx32in";
33462 def V6_vlutvvb_oracci : HInst<
33463 (outs HvxVR:$Vx32),
33464 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33465 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
33466 tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
33467 let Inst{13-13} = 0b1;
33468 let Inst{31-21} = 0b00011100110;
33469 let hasNewValue = 1;
33470 let opNewValue = 0;
33471 let isAccumulator = 1;
33472 let isCVI = 1;
33473 let DecoderNamespace = "EXT_mmvec";
33474 let Constraints = "$Vx32 = $Vx32in";
33476 def V6_vlutvvbi : HInst<
33477 (outs HvxVR:$Vd32),
33478 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33479 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
33480 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
33481 let Inst{13-13} = 0b0;
33482 let Inst{31-21} = 0b00011110001;
33483 let hasNewValue = 1;
33484 let opNewValue = 0;
33485 let isCVI = 1;
33486 let DecoderNamespace = "EXT_mmvec";
33488 def V6_vlutvwh : HInst<
33489 (outs HvxWR:$Vdd32),
33490 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33491 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
33492 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
33493 let Inst{7-5} = 0b110;
33494 let Inst{13-13} = 0b1;
33495 let Inst{31-24} = 0b00011011;
33496 let hasNewValue = 1;
33497 let opNewValue = 0;
33498 let isCVI = 1;
33499 let DecoderNamespace = "EXT_mmvec";
33501 def V6_vlutvwh_nm : HInst<
33502 (outs HvxWR:$Vdd32),
33503 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33504 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
33505 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
33506 let Inst{7-5} = 0b100;
33507 let Inst{13-13} = 0b0;
33508 let Inst{31-24} = 0b00011000;
33509 let hasNewValue = 1;
33510 let opNewValue = 0;
33511 let isCVI = 1;
33512 let DecoderNamespace = "EXT_mmvec";
33514 def V6_vlutvwh_oracc : HInst<
33515 (outs HvxWR:$Vxx32),
33516 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
33517 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
33518 tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
33519 let Inst{7-5} = 0b111;
33520 let Inst{13-13} = 0b1;
33521 let Inst{31-24} = 0b00011011;
33522 let hasNewValue = 1;
33523 let opNewValue = 0;
33524 let isAccumulator = 1;
33525 let isCVI = 1;
33526 let DecoderNamespace = "EXT_mmvec";
33527 let Constraints = "$Vxx32 = $Vxx32in";
33529 def V6_vlutvwh_oracci : HInst<
33530 (outs HvxWR:$Vxx32),
33531 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33532 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
33533 tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
33534 let Inst{13-13} = 0b1;
33535 let Inst{31-21} = 0b00011100111;
33536 let hasNewValue = 1;
33537 let opNewValue = 0;
33538 let isAccumulator = 1;
33539 let isCVI = 1;
33540 let DecoderNamespace = "EXT_mmvec";
33541 let Constraints = "$Vxx32 = $Vxx32in";
33543 def V6_vlutvwhi : HInst<
33544 (outs HvxWR:$Vdd32),
33545 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
33546 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
33547 tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
33548 let Inst{13-13} = 0b0;
33549 let Inst{31-21} = 0b00011110011;
33550 let hasNewValue = 1;
33551 let opNewValue = 0;
33552 let isCVI = 1;
33553 let DecoderNamespace = "EXT_mmvec";
33555 def V6_vmaxb : HInst<
33556 (outs HvxVR:$Vd32),
33557 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33558 "$Vd32.b = vmax($Vu32.b,$Vv32.b)",
33559 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
33560 let Inst{7-5} = 0b101;
33561 let Inst{13-13} = 0b0;
33562 let Inst{31-21} = 0b00011111001;
33563 let hasNewValue = 1;
33564 let opNewValue = 0;
33565 let isCVI = 1;
33566 let DecoderNamespace = "EXT_mmvec";
33568 def V6_vmaxb_alt : HInst<
33569 (outs HvxVR:$Vd32),
33570 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33571 "$Vd32 = vmaxb($Vu32,$Vv32)",
33572 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33573 let hasNewValue = 1;
33574 let opNewValue = 0;
33575 let isCVI = 1;
33576 let isPseudo = 1;
33577 let isCodeGenOnly = 1;
33578 let DecoderNamespace = "EXT_mmvec";
33580 def V6_vmaxh : HInst<
33581 (outs HvxVR:$Vd32),
33582 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33583 "$Vd32.h = vmax($Vu32.h,$Vv32.h)",
33584 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33585 let Inst{7-5} = 0b111;
33586 let Inst{13-13} = 0b0;
33587 let Inst{31-21} = 0b00011111000;
33588 let hasNewValue = 1;
33589 let opNewValue = 0;
33590 let isCVI = 1;
33591 let DecoderNamespace = "EXT_mmvec";
33593 def V6_vmaxh_alt : HInst<
33594 (outs HvxVR:$Vd32),
33595 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33596 "$Vd32 = vmaxh($Vu32,$Vv32)",
33597 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33598 let hasNewValue = 1;
33599 let opNewValue = 0;
33600 let isCVI = 1;
33601 let isPseudo = 1;
33602 let isCodeGenOnly = 1;
33603 let DecoderNamespace = "EXT_mmvec";
33605 def V6_vmaxub : HInst<
33606 (outs HvxVR:$Vd32),
33607 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33608 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
33609 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33610 let Inst{7-5} = 0b101;
33611 let Inst{13-13} = 0b0;
33612 let Inst{31-21} = 0b00011111000;
33613 let hasNewValue = 1;
33614 let opNewValue = 0;
33615 let isCVI = 1;
33616 let DecoderNamespace = "EXT_mmvec";
33618 def V6_vmaxub_alt : HInst<
33619 (outs HvxVR:$Vd32),
33620 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33621 "$Vd32 = vmaxub($Vu32,$Vv32)",
33622 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33623 let hasNewValue = 1;
33624 let opNewValue = 0;
33625 let isCVI = 1;
33626 let isPseudo = 1;
33627 let isCodeGenOnly = 1;
33628 let DecoderNamespace = "EXT_mmvec";
33630 def V6_vmaxuh : HInst<
33631 (outs HvxVR:$Vd32),
33632 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33633 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
33634 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33635 let Inst{7-5} = 0b110;
33636 let Inst{13-13} = 0b0;
33637 let Inst{31-21} = 0b00011111000;
33638 let hasNewValue = 1;
33639 let opNewValue = 0;
33640 let isCVI = 1;
33641 let DecoderNamespace = "EXT_mmvec";
33643 def V6_vmaxuh_alt : HInst<
33644 (outs HvxVR:$Vd32),
33645 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33646 "$Vd32 = vmaxuh($Vu32,$Vv32)",
33647 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33648 let hasNewValue = 1;
33649 let opNewValue = 0;
33650 let isCVI = 1;
33651 let isPseudo = 1;
33652 let isCodeGenOnly = 1;
33653 let DecoderNamespace = "EXT_mmvec";
33655 def V6_vmaxw : HInst<
33656 (outs HvxVR:$Vd32),
33657 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33658 "$Vd32.w = vmax($Vu32.w,$Vv32.w)",
33659 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33660 let Inst{7-5} = 0b000;
33661 let Inst{13-13} = 0b0;
33662 let Inst{31-21} = 0b00011111001;
33663 let hasNewValue = 1;
33664 let opNewValue = 0;
33665 let isCVI = 1;
33666 let DecoderNamespace = "EXT_mmvec";
33668 def V6_vmaxw_alt : HInst<
33669 (outs HvxVR:$Vd32),
33670 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33671 "$Vd32 = vmaxw($Vu32,$Vv32)",
33672 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33673 let hasNewValue = 1;
33674 let opNewValue = 0;
33675 let isCVI = 1;
33676 let isPseudo = 1;
33677 let isCodeGenOnly = 1;
33678 let DecoderNamespace = "EXT_mmvec";
33680 def V6_vminb : HInst<
33681 (outs HvxVR:$Vd32),
33682 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33683 "$Vd32.b = vmin($Vu32.b,$Vv32.b)",
33684 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
33685 let Inst{7-5} = 0b100;
33686 let Inst{13-13} = 0b0;
33687 let Inst{31-21} = 0b00011111001;
33688 let hasNewValue = 1;
33689 let opNewValue = 0;
33690 let isCVI = 1;
33691 let DecoderNamespace = "EXT_mmvec";
33693 def V6_vminb_alt : HInst<
33694 (outs HvxVR:$Vd32),
33695 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33696 "$Vd32 = vminb($Vu32,$Vv32)",
33697 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33698 let hasNewValue = 1;
33699 let opNewValue = 0;
33700 let isCVI = 1;
33701 let isPseudo = 1;
33702 let isCodeGenOnly = 1;
33703 let DecoderNamespace = "EXT_mmvec";
33705 def V6_vminh : HInst<
33706 (outs HvxVR:$Vd32),
33707 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33708 "$Vd32.h = vmin($Vu32.h,$Vv32.h)",
33709 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33710 let Inst{7-5} = 0b011;
33711 let Inst{13-13} = 0b0;
33712 let Inst{31-21} = 0b00011111000;
33713 let hasNewValue = 1;
33714 let opNewValue = 0;
33715 let isCVI = 1;
33716 let DecoderNamespace = "EXT_mmvec";
33718 def V6_vminh_alt : HInst<
33719 (outs HvxVR:$Vd32),
33720 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33721 "$Vd32 = vminh($Vu32,$Vv32)",
33722 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33723 let hasNewValue = 1;
33724 let opNewValue = 0;
33725 let isCVI = 1;
33726 let isPseudo = 1;
33727 let isCodeGenOnly = 1;
33728 let DecoderNamespace = "EXT_mmvec";
33730 def V6_vminub : HInst<
33731 (outs HvxVR:$Vd32),
33732 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33733 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
33734 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33735 let Inst{7-5} = 0b001;
33736 let Inst{13-13} = 0b0;
33737 let Inst{31-21} = 0b00011111000;
33738 let hasNewValue = 1;
33739 let opNewValue = 0;
33740 let isCVI = 1;
33741 let DecoderNamespace = "EXT_mmvec";
33743 def V6_vminub_alt : HInst<
33744 (outs HvxVR:$Vd32),
33745 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33746 "$Vd32 = vminub($Vu32,$Vv32)",
33747 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33748 let hasNewValue = 1;
33749 let opNewValue = 0;
33750 let isCVI = 1;
33751 let isPseudo = 1;
33752 let isCodeGenOnly = 1;
33753 let DecoderNamespace = "EXT_mmvec";
33755 def V6_vminuh : HInst<
33756 (outs HvxVR:$Vd32),
33757 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33758 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
33759 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33760 let Inst{7-5} = 0b010;
33761 let Inst{13-13} = 0b0;
33762 let Inst{31-21} = 0b00011111000;
33763 let hasNewValue = 1;
33764 let opNewValue = 0;
33765 let isCVI = 1;
33766 let DecoderNamespace = "EXT_mmvec";
33768 def V6_vminuh_alt : HInst<
33769 (outs HvxVR:$Vd32),
33770 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33771 "$Vd32 = vminuh($Vu32,$Vv32)",
33772 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33773 let hasNewValue = 1;
33774 let opNewValue = 0;
33775 let isCVI = 1;
33776 let isPseudo = 1;
33777 let isCodeGenOnly = 1;
33778 let DecoderNamespace = "EXT_mmvec";
33780 def V6_vminw : HInst<
33781 (outs HvxVR:$Vd32),
33782 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33783 "$Vd32.w = vmin($Vu32.w,$Vv32.w)",
33784 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
33785 let Inst{7-5} = 0b100;
33786 let Inst{13-13} = 0b0;
33787 let Inst{31-21} = 0b00011111000;
33788 let hasNewValue = 1;
33789 let opNewValue = 0;
33790 let isCVI = 1;
33791 let DecoderNamespace = "EXT_mmvec";
33793 def V6_vminw_alt : HInst<
33794 (outs HvxVR:$Vd32),
33795 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33796 "$Vd32 = vminw($Vu32,$Vv32)",
33797 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33798 let hasNewValue = 1;
33799 let opNewValue = 0;
33800 let isCVI = 1;
33801 let isPseudo = 1;
33802 let isCodeGenOnly = 1;
33803 let DecoderNamespace = "EXT_mmvec";
33805 def V6_vmpabus : HInst<
33806 (outs HvxWR:$Vdd32),
33807 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33808 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
33809 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33810 let Inst{7-5} = 0b110;
33811 let Inst{13-13} = 0b0;
33812 let Inst{31-21} = 0b00011001001;
33813 let hasNewValue = 1;
33814 let opNewValue = 0;
33815 let isCVI = 1;
33816 let DecoderNamespace = "EXT_mmvec";
33818 def V6_vmpabus_acc : HInst<
33819 (outs HvxWR:$Vxx32),
33820 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33821 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
33822 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33823 let Inst{7-5} = 0b110;
33824 let Inst{13-13} = 0b1;
33825 let Inst{31-21} = 0b00011001001;
33826 let hasNewValue = 1;
33827 let opNewValue = 0;
33828 let isAccumulator = 1;
33829 let isCVI = 1;
33830 let DecoderNamespace = "EXT_mmvec";
33831 let Constraints = "$Vxx32 = $Vxx32in";
33833 def V6_vmpabus_acc_alt : HInst<
33834 (outs HvxWR:$Vxx32),
33835 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33836 "$Vxx32 += vmpabus($Vuu32,$Rt32)",
33837 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33838 let hasNewValue = 1;
33839 let opNewValue = 0;
33840 let isAccumulator = 1;
33841 let isCVI = 1;
33842 let isPseudo = 1;
33843 let isCodeGenOnly = 1;
33844 let DecoderNamespace = "EXT_mmvec";
33845 let Constraints = "$Vxx32 = $Vxx32in";
33847 def V6_vmpabus_alt : HInst<
33848 (outs HvxWR:$Vdd32),
33849 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33850 "$Vdd32 = vmpabus($Vuu32,$Rt32)",
33851 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33852 let hasNewValue = 1;
33853 let opNewValue = 0;
33854 let isCVI = 1;
33855 let isPseudo = 1;
33856 let isCodeGenOnly = 1;
33857 let DecoderNamespace = "EXT_mmvec";
33859 def V6_vmpabusv : HInst<
33860 (outs HvxWR:$Vdd32),
33861 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33862 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
33863 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
33864 let Inst{7-5} = 0b011;
33865 let Inst{13-13} = 0b0;
33866 let Inst{31-21} = 0b00011100001;
33867 let hasNewValue = 1;
33868 let opNewValue = 0;
33869 let isCVI = 1;
33870 let DecoderNamespace = "EXT_mmvec";
33872 def V6_vmpabusv_alt : HInst<
33873 (outs HvxWR:$Vdd32),
33874 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33875 "$Vdd32 = vmpabus($Vuu32,$Vvv32)",
33876 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33877 let hasNewValue = 1;
33878 let opNewValue = 0;
33879 let isCVI = 1;
33880 let isPseudo = 1;
33881 let isCodeGenOnly = 1;
33882 let DecoderNamespace = "EXT_mmvec";
33884 def V6_vmpabuu : HInst<
33885 (outs HvxWR:$Vdd32),
33886 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33887 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
33888 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
33889 let Inst{7-5} = 0b011;
33890 let Inst{13-13} = 0b0;
33891 let Inst{31-21} = 0b00011001011;
33892 let hasNewValue = 1;
33893 let opNewValue = 0;
33894 let isCVI = 1;
33895 let DecoderNamespace = "EXT_mmvec";
33897 def V6_vmpabuu_acc : HInst<
33898 (outs HvxWR:$Vxx32),
33899 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33900 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
33901 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
33902 let Inst{7-5} = 0b100;
33903 let Inst{13-13} = 0b1;
33904 let Inst{31-21} = 0b00011001101;
33905 let hasNewValue = 1;
33906 let opNewValue = 0;
33907 let isAccumulator = 1;
33908 let isCVI = 1;
33909 let DecoderNamespace = "EXT_mmvec";
33910 let Constraints = "$Vxx32 = $Vxx32in";
33912 def V6_vmpabuu_acc_alt : HInst<
33913 (outs HvxWR:$Vxx32),
33914 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33915 "$Vxx32 += vmpabuu($Vuu32,$Rt32)",
33916 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
33917 let hasNewValue = 1;
33918 let opNewValue = 0;
33919 let isAccumulator = 1;
33920 let isCVI = 1;
33921 let isPseudo = 1;
33922 let isCodeGenOnly = 1;
33923 let DecoderNamespace = "EXT_mmvec";
33924 let Constraints = "$Vxx32 = $Vxx32in";
33926 def V6_vmpabuu_alt : HInst<
33927 (outs HvxWR:$Vdd32),
33928 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33929 "$Vdd32 = vmpabuu($Vuu32,$Rt32)",
33930 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
33931 let hasNewValue = 1;
33932 let opNewValue = 0;
33933 let isCVI = 1;
33934 let isPseudo = 1;
33935 let isCodeGenOnly = 1;
33936 let DecoderNamespace = "EXT_mmvec";
33938 def V6_vmpabuuv : HInst<
33939 (outs HvxWR:$Vdd32),
33940 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33941 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
33942 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
33943 let Inst{7-5} = 0b111;
33944 let Inst{13-13} = 0b0;
33945 let Inst{31-21} = 0b00011100111;
33946 let hasNewValue = 1;
33947 let opNewValue = 0;
33948 let isCVI = 1;
33949 let DecoderNamespace = "EXT_mmvec";
33951 def V6_vmpabuuv_alt : HInst<
33952 (outs HvxWR:$Vdd32),
33953 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33954 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
33955 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33956 let hasNewValue = 1;
33957 let opNewValue = 0;
33958 let isCVI = 1;
33959 let isPseudo = 1;
33960 let isCodeGenOnly = 1;
33961 let DecoderNamespace = "EXT_mmvec";
33963 def V6_vmpahb : HInst<
33964 (outs HvxWR:$Vdd32),
33965 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33966 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
33967 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33968 let Inst{7-5} = 0b111;
33969 let Inst{13-13} = 0b0;
33970 let Inst{31-21} = 0b00011001001;
33971 let hasNewValue = 1;
33972 let opNewValue = 0;
33973 let isCVI = 1;
33974 let DecoderNamespace = "EXT_mmvec";
33976 def V6_vmpahb_acc : HInst<
33977 (outs HvxWR:$Vxx32),
33978 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33979 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
33980 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33981 let Inst{7-5} = 0b111;
33982 let Inst{13-13} = 0b1;
33983 let Inst{31-21} = 0b00011001001;
33984 let hasNewValue = 1;
33985 let opNewValue = 0;
33986 let isAccumulator = 1;
33987 let isCVI = 1;
33988 let DecoderNamespace = "EXT_mmvec";
33989 let Constraints = "$Vxx32 = $Vxx32in";
33991 def V6_vmpahb_acc_alt : HInst<
33992 (outs HvxWR:$Vxx32),
33993 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33994 "$Vxx32 += vmpahb($Vuu32,$Rt32)",
33995 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33996 let hasNewValue = 1;
33997 let opNewValue = 0;
33998 let isAccumulator = 1;
33999 let isCVI = 1;
34000 let isPseudo = 1;
34001 let isCodeGenOnly = 1;
34002 let DecoderNamespace = "EXT_mmvec";
34003 let Constraints = "$Vxx32 = $Vxx32in";
34005 def V6_vmpahb_alt : HInst<
34006 (outs HvxWR:$Vdd32),
34007 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
34008 "$Vdd32 = vmpahb($Vuu32,$Rt32)",
34009 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34010 let hasNewValue = 1;
34011 let opNewValue = 0;
34012 let isCVI = 1;
34013 let isPseudo = 1;
34014 let isCodeGenOnly = 1;
34015 let DecoderNamespace = "EXT_mmvec";
34017 def V6_vmpahhsat : HInst<
34018 (outs HvxVR:$Vx32),
34019 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34020 "$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
34021 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34022 let Inst{7-5} = 0b100;
34023 let Inst{13-13} = 0b1;
34024 let Inst{31-21} = 0b00011001100;
34025 let hasNewValue = 1;
34026 let opNewValue = 0;
34027 let isCVI = 1;
34028 let DecoderNamespace = "EXT_mmvec";
34029 let Constraints = "$Vx32 = $Vx32in";
34031 def V6_vmpauhb : HInst<
34032 (outs HvxWR:$Vdd32),
34033 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
34034 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
34035 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
34036 let Inst{7-5} = 0b101;
34037 let Inst{13-13} = 0b0;
34038 let Inst{31-21} = 0b00011001100;
34039 let hasNewValue = 1;
34040 let opNewValue = 0;
34041 let isCVI = 1;
34042 let DecoderNamespace = "EXT_mmvec";
34044 def V6_vmpauhb_acc : HInst<
34045 (outs HvxWR:$Vxx32),
34046 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34047 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
34048 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
34049 let Inst{7-5} = 0b010;
34050 let Inst{13-13} = 0b1;
34051 let Inst{31-21} = 0b00011001100;
34052 let hasNewValue = 1;
34053 let opNewValue = 0;
34054 let isAccumulator = 1;
34055 let isCVI = 1;
34056 let DecoderNamespace = "EXT_mmvec";
34057 let Constraints = "$Vxx32 = $Vxx32in";
34059 def V6_vmpauhb_acc_alt : HInst<
34060 (outs HvxWR:$Vxx32),
34061 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
34062 "$Vxx32 += vmpauhb($Vuu32,$Rt32)",
34063 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34064 let hasNewValue = 1;
34065 let opNewValue = 0;
34066 let isAccumulator = 1;
34067 let isCVI = 1;
34068 let isPseudo = 1;
34069 let isCodeGenOnly = 1;
34070 let DecoderNamespace = "EXT_mmvec";
34071 let Constraints = "$Vxx32 = $Vxx32in";
34073 def V6_vmpauhb_alt : HInst<
34074 (outs HvxWR:$Vdd32),
34075 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
34076 "$Vdd32 = vmpauhb($Vuu32,$Rt32)",
34077 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34078 let hasNewValue = 1;
34079 let opNewValue = 0;
34080 let isCVI = 1;
34081 let isPseudo = 1;
34082 let isCodeGenOnly = 1;
34083 let DecoderNamespace = "EXT_mmvec";
34085 def V6_vmpauhuhsat : HInst<
34086 (outs HvxVR:$Vx32),
34087 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34088 "$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
34089 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34090 let Inst{7-5} = 0b101;
34091 let Inst{13-13} = 0b1;
34092 let Inst{31-21} = 0b00011001100;
34093 let hasNewValue = 1;
34094 let opNewValue = 0;
34095 let isCVI = 1;
34096 let DecoderNamespace = "EXT_mmvec";
34097 let Constraints = "$Vx32 = $Vx32in";
34099 def V6_vmpsuhuhsat : HInst<
34100 (outs HvxVR:$Vx32),
34101 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34102 "$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
34103 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
34104 let Inst{7-5} = 0b110;
34105 let Inst{13-13} = 0b1;
34106 let Inst{31-21} = 0b00011001100;
34107 let hasNewValue = 1;
34108 let opNewValue = 0;
34109 let isCVI = 1;
34110 let DecoderNamespace = "EXT_mmvec";
34111 let Constraints = "$Vx32 = $Vx32in";
34113 def V6_vmpybus : HInst<
34114 (outs HvxWR:$Vdd32),
34115 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34116 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
34117 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34118 let Inst{7-5} = 0b101;
34119 let Inst{13-13} = 0b0;
34120 let Inst{31-21} = 0b00011001001;
34121 let hasNewValue = 1;
34122 let opNewValue = 0;
34123 let isCVI = 1;
34124 let DecoderNamespace = "EXT_mmvec";
34126 def V6_vmpybus_acc : HInst<
34127 (outs HvxWR:$Vxx32),
34128 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34129 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
34130 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34131 let Inst{7-5} = 0b101;
34132 let Inst{13-13} = 0b1;
34133 let Inst{31-21} = 0b00011001001;
34134 let hasNewValue = 1;
34135 let opNewValue = 0;
34136 let isAccumulator = 1;
34137 let isCVI = 1;
34138 let DecoderNamespace = "EXT_mmvec";
34139 let Constraints = "$Vxx32 = $Vxx32in";
34141 def V6_vmpybus_acc_alt : HInst<
34142 (outs HvxWR:$Vxx32),
34143 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34144 "$Vxx32 += vmpybus($Vu32,$Rt32)",
34145 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34146 let hasNewValue = 1;
34147 let opNewValue = 0;
34148 let isAccumulator = 1;
34149 let isCVI = 1;
34150 let isPseudo = 1;
34151 let isCodeGenOnly = 1;
34152 let DecoderNamespace = "EXT_mmvec";
34153 let Constraints = "$Vxx32 = $Vxx32in";
34155 def V6_vmpybus_alt : HInst<
34156 (outs HvxWR:$Vdd32),
34157 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34158 "$Vdd32 = vmpybus($Vu32,$Rt32)",
34159 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34160 let hasNewValue = 1;
34161 let opNewValue = 0;
34162 let isCVI = 1;
34163 let isPseudo = 1;
34164 let isCodeGenOnly = 1;
34165 let DecoderNamespace = "EXT_mmvec";
34167 def V6_vmpybusv : HInst<
34168 (outs HvxWR:$Vdd32),
34169 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34170 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
34171 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34172 let Inst{7-5} = 0b110;
34173 let Inst{13-13} = 0b0;
34174 let Inst{31-21} = 0b00011100000;
34175 let hasNewValue = 1;
34176 let opNewValue = 0;
34177 let isCVI = 1;
34178 let DecoderNamespace = "EXT_mmvec";
34180 def V6_vmpybusv_acc : HInst<
34181 (outs HvxWR:$Vxx32),
34182 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34183 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
34184 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34185 let Inst{7-5} = 0b110;
34186 let Inst{13-13} = 0b1;
34187 let Inst{31-21} = 0b00011100000;
34188 let hasNewValue = 1;
34189 let opNewValue = 0;
34190 let isAccumulator = 1;
34191 let isCVI = 1;
34192 let DecoderNamespace = "EXT_mmvec";
34193 let Constraints = "$Vxx32 = $Vxx32in";
34195 def V6_vmpybusv_acc_alt : HInst<
34196 (outs HvxWR:$Vxx32),
34197 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34198 "$Vxx32 += vmpybus($Vu32,$Vv32)",
34199 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34200 let hasNewValue = 1;
34201 let opNewValue = 0;
34202 let isAccumulator = 1;
34203 let isCVI = 1;
34204 let isPseudo = 1;
34205 let isCodeGenOnly = 1;
34206 let DecoderNamespace = "EXT_mmvec";
34207 let Constraints = "$Vxx32 = $Vxx32in";
34209 def V6_vmpybusv_alt : HInst<
34210 (outs HvxWR:$Vdd32),
34211 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34212 "$Vdd32 = vmpybus($Vu32,$Vv32)",
34213 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34214 let hasNewValue = 1;
34215 let opNewValue = 0;
34216 let isCVI = 1;
34217 let isPseudo = 1;
34218 let isCodeGenOnly = 1;
34219 let DecoderNamespace = "EXT_mmvec";
34221 def V6_vmpybv : HInst<
34222 (outs HvxWR:$Vdd32),
34223 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34224 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
34225 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34226 let Inst{7-5} = 0b100;
34227 let Inst{13-13} = 0b0;
34228 let Inst{31-21} = 0b00011100000;
34229 let hasNewValue = 1;
34230 let opNewValue = 0;
34231 let isCVI = 1;
34232 let DecoderNamespace = "EXT_mmvec";
34234 def V6_vmpybv_acc : HInst<
34235 (outs HvxWR:$Vxx32),
34236 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34237 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
34238 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34239 let Inst{7-5} = 0b100;
34240 let Inst{13-13} = 0b1;
34241 let Inst{31-21} = 0b00011100000;
34242 let hasNewValue = 1;
34243 let opNewValue = 0;
34244 let isAccumulator = 1;
34245 let isCVI = 1;
34246 let DecoderNamespace = "EXT_mmvec";
34247 let Constraints = "$Vxx32 = $Vxx32in";
34249 def V6_vmpybv_acc_alt : HInst<
34250 (outs HvxWR:$Vxx32),
34251 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34252 "$Vxx32 += vmpyb($Vu32,$Vv32)",
34253 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34254 let hasNewValue = 1;
34255 let opNewValue = 0;
34256 let isAccumulator = 1;
34257 let isCVI = 1;
34258 let isPseudo = 1;
34259 let isCodeGenOnly = 1;
34260 let DecoderNamespace = "EXT_mmvec";
34261 let Constraints = "$Vxx32 = $Vxx32in";
34263 def V6_vmpybv_alt : HInst<
34264 (outs HvxWR:$Vdd32),
34265 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34266 "$Vdd32 = vmpyb($Vu32,$Vv32)",
34267 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34268 let hasNewValue = 1;
34269 let opNewValue = 0;
34270 let isCVI = 1;
34271 let isPseudo = 1;
34272 let isCodeGenOnly = 1;
34273 let DecoderNamespace = "EXT_mmvec";
34275 def V6_vmpyewuh : HInst<
34276 (outs HvxVR:$Vd32),
34277 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34278 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
34279 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34280 let Inst{7-5} = 0b101;
34281 let Inst{13-13} = 0b0;
34282 let Inst{31-21} = 0b00011111111;
34283 let hasNewValue = 1;
34284 let opNewValue = 0;
34285 let isCVI = 1;
34286 let DecoderNamespace = "EXT_mmvec";
34288 def V6_vmpyewuh_64 : HInst<
34289 (outs HvxWR:$Vdd32),
34290 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34291 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
34292 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
34293 let Inst{7-5} = 0b110;
34294 let Inst{13-13} = 0b0;
34295 let Inst{31-21} = 0b00011110101;
34296 let hasNewValue = 1;
34297 let opNewValue = 0;
34298 let isCVI = 1;
34299 let DecoderNamespace = "EXT_mmvec";
34301 def V6_vmpyewuh_alt : HInst<
34302 (outs HvxVR:$Vd32),
34303 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34304 "$Vd32 = vmpyewuh($Vu32,$Vv32)",
34305 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34306 let hasNewValue = 1;
34307 let opNewValue = 0;
34308 let isCVI = 1;
34309 let isPseudo = 1;
34310 let isCodeGenOnly = 1;
34311 let DecoderNamespace = "EXT_mmvec";
34313 def V6_vmpyh : HInst<
34314 (outs HvxWR:$Vdd32),
34315 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34316 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
34317 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34318 let Inst{7-5} = 0b000;
34319 let Inst{13-13} = 0b0;
34320 let Inst{31-21} = 0b00011001010;
34321 let hasNewValue = 1;
34322 let opNewValue = 0;
34323 let isCVI = 1;
34324 let DecoderNamespace = "EXT_mmvec";
34326 def V6_vmpyh_acc : HInst<
34327 (outs HvxWR:$Vxx32),
34328 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34329 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
34330 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
34331 let Inst{7-5} = 0b110;
34332 let Inst{13-13} = 0b1;
34333 let Inst{31-21} = 0b00011001101;
34334 let hasNewValue = 1;
34335 let opNewValue = 0;
34336 let isAccumulator = 1;
34337 let isCVI = 1;
34338 let DecoderNamespace = "EXT_mmvec";
34339 let Constraints = "$Vxx32 = $Vxx32in";
34341 def V6_vmpyh_acc_alt : HInst<
34342 (outs HvxWR:$Vxx32),
34343 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34344 "$Vxx32 += vmpyh($Vu32,$Rt32)",
34345 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34346 let hasNewValue = 1;
34347 let opNewValue = 0;
34348 let isAccumulator = 1;
34349 let isCVI = 1;
34350 let isPseudo = 1;
34351 let isCodeGenOnly = 1;
34352 let DecoderNamespace = "EXT_mmvec";
34353 let Constraints = "$Vxx32 = $Vxx32in";
34355 def V6_vmpyh_alt : HInst<
34356 (outs HvxWR:$Vdd32),
34357 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34358 "$Vdd32 = vmpyh($Vu32,$Rt32)",
34359 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34360 let hasNewValue = 1;
34361 let opNewValue = 0;
34362 let isCVI = 1;
34363 let isPseudo = 1;
34364 let isCodeGenOnly = 1;
34365 let DecoderNamespace = "EXT_mmvec";
34367 def V6_vmpyhsat_acc : HInst<
34368 (outs HvxWR:$Vxx32),
34369 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34370 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
34371 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34372 let Inst{7-5} = 0b000;
34373 let Inst{13-13} = 0b1;
34374 let Inst{31-21} = 0b00011001010;
34375 let hasNewValue = 1;
34376 let opNewValue = 0;
34377 let isAccumulator = 1;
34378 let isCVI = 1;
34379 let DecoderNamespace = "EXT_mmvec";
34380 let Constraints = "$Vxx32 = $Vxx32in";
34382 def V6_vmpyhsat_acc_alt : HInst<
34383 (outs HvxWR:$Vxx32),
34384 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34385 "$Vxx32 += vmpyh($Vu32,$Rt32):sat",
34386 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34387 let hasNewValue = 1;
34388 let opNewValue = 0;
34389 let isAccumulator = 1;
34390 let isCVI = 1;
34391 let isPseudo = 1;
34392 let isCodeGenOnly = 1;
34393 let DecoderNamespace = "EXT_mmvec";
34394 let Constraints = "$Vxx32 = $Vxx32in";
34396 def V6_vmpyhsrs : HInst<
34397 (outs HvxVR:$Vd32),
34398 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34399 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
34400 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
34401 let Inst{7-5} = 0b010;
34402 let Inst{13-13} = 0b0;
34403 let Inst{31-21} = 0b00011001010;
34404 let hasNewValue = 1;
34405 let opNewValue = 0;
34406 let isCVI = 1;
34407 let DecoderNamespace = "EXT_mmvec";
34409 def V6_vmpyhsrs_alt : HInst<
34410 (outs HvxVR:$Vd32),
34411 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34412 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
34413 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34414 let hasNewValue = 1;
34415 let opNewValue = 0;
34416 let isCVI = 1;
34417 let isPseudo = 1;
34418 let isCodeGenOnly = 1;
34419 let DecoderNamespace = "EXT_mmvec";
34421 def V6_vmpyhss : HInst<
34422 (outs HvxVR:$Vd32),
34423 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34424 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
34425 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
34426 let Inst{7-5} = 0b001;
34427 let Inst{13-13} = 0b0;
34428 let Inst{31-21} = 0b00011001010;
34429 let hasNewValue = 1;
34430 let opNewValue = 0;
34431 let isCVI = 1;
34432 let DecoderNamespace = "EXT_mmvec";
34434 def V6_vmpyhss_alt : HInst<
34435 (outs HvxVR:$Vd32),
34436 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34437 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
34438 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34439 let hasNewValue = 1;
34440 let opNewValue = 0;
34441 let isCVI = 1;
34442 let isPseudo = 1;
34443 let isCodeGenOnly = 1;
34444 let DecoderNamespace = "EXT_mmvec";
34446 def V6_vmpyhus : HInst<
34447 (outs HvxWR:$Vdd32),
34448 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34449 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
34450 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34451 let Inst{7-5} = 0b010;
34452 let Inst{13-13} = 0b0;
34453 let Inst{31-21} = 0b00011100001;
34454 let hasNewValue = 1;
34455 let opNewValue = 0;
34456 let isCVI = 1;
34457 let DecoderNamespace = "EXT_mmvec";
34459 def V6_vmpyhus_acc : HInst<
34460 (outs HvxWR:$Vxx32),
34461 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34462 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
34463 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34464 let Inst{7-5} = 0b001;
34465 let Inst{13-13} = 0b1;
34466 let Inst{31-21} = 0b00011100001;
34467 let hasNewValue = 1;
34468 let opNewValue = 0;
34469 let isAccumulator = 1;
34470 let isCVI = 1;
34471 let DecoderNamespace = "EXT_mmvec";
34472 let Constraints = "$Vxx32 = $Vxx32in";
34474 def V6_vmpyhus_acc_alt : HInst<
34475 (outs HvxWR:$Vxx32),
34476 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34477 "$Vxx32 += vmpyhus($Vu32,$Vv32)",
34478 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34479 let hasNewValue = 1;
34480 let opNewValue = 0;
34481 let isAccumulator = 1;
34482 let isCVI = 1;
34483 let isPseudo = 1;
34484 let isCodeGenOnly = 1;
34485 let DecoderNamespace = "EXT_mmvec";
34486 let Constraints = "$Vxx32 = $Vxx32in";
34488 def V6_vmpyhus_alt : HInst<
34489 (outs HvxWR:$Vdd32),
34490 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34491 "$Vdd32 = vmpyhus($Vu32,$Vv32)",
34492 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34493 let hasNewValue = 1;
34494 let opNewValue = 0;
34495 let isCVI = 1;
34496 let isPseudo = 1;
34497 let isCodeGenOnly = 1;
34498 let DecoderNamespace = "EXT_mmvec";
34500 def V6_vmpyhv : HInst<
34501 (outs HvxWR:$Vdd32),
34502 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34503 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
34504 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34505 let Inst{7-5} = 0b111;
34506 let Inst{13-13} = 0b0;
34507 let Inst{31-21} = 0b00011100000;
34508 let hasNewValue = 1;
34509 let opNewValue = 0;
34510 let isCVI = 1;
34511 let DecoderNamespace = "EXT_mmvec";
34513 def V6_vmpyhv_acc : HInst<
34514 (outs HvxWR:$Vxx32),
34515 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34516 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
34517 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34518 let Inst{7-5} = 0b111;
34519 let Inst{13-13} = 0b1;
34520 let Inst{31-21} = 0b00011100000;
34521 let hasNewValue = 1;
34522 let opNewValue = 0;
34523 let isAccumulator = 1;
34524 let isCVI = 1;
34525 let DecoderNamespace = "EXT_mmvec";
34526 let Constraints = "$Vxx32 = $Vxx32in";
34528 def V6_vmpyhv_acc_alt : HInst<
34529 (outs HvxWR:$Vxx32),
34530 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34531 "$Vxx32 += vmpyh($Vu32,$Vv32)",
34532 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34533 let hasNewValue = 1;
34534 let opNewValue = 0;
34535 let isAccumulator = 1;
34536 let isCVI = 1;
34537 let isPseudo = 1;
34538 let isCodeGenOnly = 1;
34539 let DecoderNamespace = "EXT_mmvec";
34540 let Constraints = "$Vxx32 = $Vxx32in";
34542 def V6_vmpyhv_alt : HInst<
34543 (outs HvxWR:$Vdd32),
34544 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34545 "$Vdd32 = vmpyh($Vu32,$Vv32)",
34546 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34547 let hasNewValue = 1;
34548 let opNewValue = 0;
34549 let isCVI = 1;
34550 let isPseudo = 1;
34551 let isCodeGenOnly = 1;
34552 let DecoderNamespace = "EXT_mmvec";
34554 def V6_vmpyhvsrs : HInst<
34555 (outs HvxVR:$Vd32),
34556 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34557 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
34558 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34559 let Inst{7-5} = 0b001;
34560 let Inst{13-13} = 0b0;
34561 let Inst{31-21} = 0b00011100001;
34562 let hasNewValue = 1;
34563 let opNewValue = 0;
34564 let isCVI = 1;
34565 let DecoderNamespace = "EXT_mmvec";
34567 def V6_vmpyhvsrs_alt : HInst<
34568 (outs HvxVR:$Vd32),
34569 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34570 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
34571 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34572 let hasNewValue = 1;
34573 let opNewValue = 0;
34574 let isCVI = 1;
34575 let isPseudo = 1;
34576 let isCodeGenOnly = 1;
34577 let DecoderNamespace = "EXT_mmvec";
34579 def V6_vmpyieoh : HInst<
34580 (outs HvxVR:$Vd32),
34581 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34582 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
34583 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
34584 let Inst{7-5} = 0b000;
34585 let Inst{13-13} = 0b0;
34586 let Inst{31-21} = 0b00011111011;
34587 let hasNewValue = 1;
34588 let opNewValue = 0;
34589 let isCVI = 1;
34590 let DecoderNamespace = "EXT_mmvec";
34592 def V6_vmpyiewh_acc : HInst<
34593 (outs HvxVR:$Vx32),
34594 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34595 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
34596 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34597 let Inst{7-5} = 0b000;
34598 let Inst{13-13} = 0b1;
34599 let Inst{31-21} = 0b00011100010;
34600 let hasNewValue = 1;
34601 let opNewValue = 0;
34602 let isAccumulator = 1;
34603 let isCVI = 1;
34604 let DecoderNamespace = "EXT_mmvec";
34605 let Constraints = "$Vx32 = $Vx32in";
34607 def V6_vmpyiewh_acc_alt : HInst<
34608 (outs HvxVR:$Vx32),
34609 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34610 "$Vx32 += vmpyiewh($Vu32,$Vv32)",
34611 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34612 let hasNewValue = 1;
34613 let opNewValue = 0;
34614 let isAccumulator = 1;
34615 let isCVI = 1;
34616 let isPseudo = 1;
34617 let isCodeGenOnly = 1;
34618 let DecoderNamespace = "EXT_mmvec";
34619 let Constraints = "$Vx32 = $Vx32in";
34621 def V6_vmpyiewuh : HInst<
34622 (outs HvxVR:$Vd32),
34623 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34624 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
34625 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34626 let Inst{7-5} = 0b000;
34627 let Inst{13-13} = 0b0;
34628 let Inst{31-21} = 0b00011111110;
34629 let hasNewValue = 1;
34630 let opNewValue = 0;
34631 let isCVI = 1;
34632 let DecoderNamespace = "EXT_mmvec";
34634 def V6_vmpyiewuh_acc : HInst<
34635 (outs HvxVR:$Vx32),
34636 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34637 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
34638 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34639 let Inst{7-5} = 0b101;
34640 let Inst{13-13} = 0b1;
34641 let Inst{31-21} = 0b00011100001;
34642 let hasNewValue = 1;
34643 let opNewValue = 0;
34644 let isAccumulator = 1;
34645 let isCVI = 1;
34646 let DecoderNamespace = "EXT_mmvec";
34647 let Constraints = "$Vx32 = $Vx32in";
34649 def V6_vmpyiewuh_acc_alt : HInst<
34650 (outs HvxVR:$Vx32),
34651 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34652 "$Vx32 += vmpyiewuh($Vu32,$Vv32)",
34653 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34654 let hasNewValue = 1;
34655 let opNewValue = 0;
34656 let isAccumulator = 1;
34657 let isCVI = 1;
34658 let isPseudo = 1;
34659 let isCodeGenOnly = 1;
34660 let DecoderNamespace = "EXT_mmvec";
34661 let Constraints = "$Vx32 = $Vx32in";
34663 def V6_vmpyiewuh_alt : HInst<
34664 (outs HvxVR:$Vd32),
34665 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34666 "$Vd32 = vmpyiewuh($Vu32,$Vv32)",
34667 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34668 let hasNewValue = 1;
34669 let opNewValue = 0;
34670 let isCVI = 1;
34671 let isPseudo = 1;
34672 let isCodeGenOnly = 1;
34673 let DecoderNamespace = "EXT_mmvec";
34675 def V6_vmpyih : HInst<
34676 (outs HvxVR:$Vd32),
34677 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34678 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
34679 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34680 let Inst{7-5} = 0b100;
34681 let Inst{13-13} = 0b0;
34682 let Inst{31-21} = 0b00011100001;
34683 let hasNewValue = 1;
34684 let opNewValue = 0;
34685 let isCVI = 1;
34686 let DecoderNamespace = "EXT_mmvec";
34688 def V6_vmpyih_acc : HInst<
34689 (outs HvxVR:$Vx32),
34690 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34691 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
34692 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34693 let Inst{7-5} = 0b100;
34694 let Inst{13-13} = 0b1;
34695 let Inst{31-21} = 0b00011100001;
34696 let hasNewValue = 1;
34697 let opNewValue = 0;
34698 let isAccumulator = 1;
34699 let isCVI = 1;
34700 let DecoderNamespace = "EXT_mmvec";
34701 let Constraints = "$Vx32 = $Vx32in";
34703 def V6_vmpyih_acc_alt : HInst<
34704 (outs HvxVR:$Vx32),
34705 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34706 "$Vx32 += vmpyih($Vu32,$Vv32)",
34707 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34708 let hasNewValue = 1;
34709 let opNewValue = 0;
34710 let isAccumulator = 1;
34711 let isCVI = 1;
34712 let isPseudo = 1;
34713 let isCodeGenOnly = 1;
34714 let DecoderNamespace = "EXT_mmvec";
34715 let Constraints = "$Vx32 = $Vx32in";
34717 def V6_vmpyih_alt : HInst<
34718 (outs HvxVR:$Vd32),
34719 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34720 "$Vd32 = vmpyih($Vu32,$Vv32)",
34721 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34722 let hasNewValue = 1;
34723 let opNewValue = 0;
34724 let isCVI = 1;
34725 let isPseudo = 1;
34726 let isCodeGenOnly = 1;
34727 let DecoderNamespace = "EXT_mmvec";
34729 def V6_vmpyihb : HInst<
34730 (outs HvxVR:$Vd32),
34731 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34732 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
34733 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34734 let Inst{7-5} = 0b000;
34735 let Inst{13-13} = 0b0;
34736 let Inst{31-21} = 0b00011001011;
34737 let hasNewValue = 1;
34738 let opNewValue = 0;
34739 let isCVI = 1;
34740 let DecoderNamespace = "EXT_mmvec";
34742 def V6_vmpyihb_acc : HInst<
34743 (outs HvxVR:$Vx32),
34744 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34745 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
34746 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
34747 let Inst{7-5} = 0b001;
34748 let Inst{13-13} = 0b1;
34749 let Inst{31-21} = 0b00011001011;
34750 let hasNewValue = 1;
34751 let opNewValue = 0;
34752 let isAccumulator = 1;
34753 let isCVI = 1;
34754 let DecoderNamespace = "EXT_mmvec";
34755 let Constraints = "$Vx32 = $Vx32in";
34757 def V6_vmpyihb_acc_alt : HInst<
34758 (outs HvxVR:$Vx32),
34759 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34760 "$Vx32 += vmpyihb($Vu32,$Rt32)",
34761 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34762 let hasNewValue = 1;
34763 let opNewValue = 0;
34764 let isAccumulator = 1;
34765 let isCVI = 1;
34766 let isPseudo = 1;
34767 let isCodeGenOnly = 1;
34768 let DecoderNamespace = "EXT_mmvec";
34769 let Constraints = "$Vx32 = $Vx32in";
34771 def V6_vmpyihb_alt : HInst<
34772 (outs HvxVR:$Vd32),
34773 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34774 "$Vd32 = vmpyihb($Vu32,$Rt32)",
34775 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34776 let hasNewValue = 1;
34777 let opNewValue = 0;
34778 let isCVI = 1;
34779 let isPseudo = 1;
34780 let isCodeGenOnly = 1;
34781 let DecoderNamespace = "EXT_mmvec";
34783 def V6_vmpyiowh : HInst<
34784 (outs HvxVR:$Vd32),
34785 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34786 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
34787 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34788 let Inst{7-5} = 0b001;
34789 let Inst{13-13} = 0b0;
34790 let Inst{31-21} = 0b00011111110;
34791 let hasNewValue = 1;
34792 let opNewValue = 0;
34793 let isCVI = 1;
34794 let DecoderNamespace = "EXT_mmvec";
34796 def V6_vmpyiowh_alt : HInst<
34797 (outs HvxVR:$Vd32),
34798 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34799 "$Vd32 = vmpyiowh($Vu32,$Vv32)",
34800 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34801 let hasNewValue = 1;
34802 let opNewValue = 0;
34803 let isCVI = 1;
34804 let isPseudo = 1;
34805 let isCodeGenOnly = 1;
34806 let DecoderNamespace = "EXT_mmvec";
34808 def V6_vmpyiwb : HInst<
34809 (outs HvxVR:$Vd32),
34810 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34811 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
34812 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34813 let Inst{7-5} = 0b000;
34814 let Inst{13-13} = 0b0;
34815 let Inst{31-21} = 0b00011001101;
34816 let hasNewValue = 1;
34817 let opNewValue = 0;
34818 let isCVI = 1;
34819 let DecoderNamespace = "EXT_mmvec";
34821 def V6_vmpyiwb_acc : HInst<
34822 (outs HvxVR:$Vx32),
34823 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34824 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
34825 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
34826 let Inst{7-5} = 0b010;
34827 let Inst{13-13} = 0b1;
34828 let Inst{31-21} = 0b00011001010;
34829 let hasNewValue = 1;
34830 let opNewValue = 0;
34831 let isAccumulator = 1;
34832 let isCVI = 1;
34833 let DecoderNamespace = "EXT_mmvec";
34834 let Constraints = "$Vx32 = $Vx32in";
34836 def V6_vmpyiwb_acc_alt : HInst<
34837 (outs HvxVR:$Vx32),
34838 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34839 "$Vx32 += vmpyiwb($Vu32,$Rt32)",
34840 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34841 let hasNewValue = 1;
34842 let opNewValue = 0;
34843 let isAccumulator = 1;
34844 let isCVI = 1;
34845 let isPseudo = 1;
34846 let isCodeGenOnly = 1;
34847 let DecoderNamespace = "EXT_mmvec";
34848 let Constraints = "$Vx32 = $Vx32in";
34850 def V6_vmpyiwb_alt : HInst<
34851 (outs HvxVR:$Vd32),
34852 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34853 "$Vd32 = vmpyiwb($Vu32,$Rt32)",
34854 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34855 let hasNewValue = 1;
34856 let opNewValue = 0;
34857 let isCVI = 1;
34858 let isPseudo = 1;
34859 let isCodeGenOnly = 1;
34860 let DecoderNamespace = "EXT_mmvec";
34862 def V6_vmpyiwh : HInst<
34863 (outs HvxVR:$Vd32),
34864 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34865 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
34866 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
34867 let Inst{7-5} = 0b111;
34868 let Inst{13-13} = 0b0;
34869 let Inst{31-21} = 0b00011001100;
34870 let hasNewValue = 1;
34871 let opNewValue = 0;
34872 let isCVI = 1;
34873 let DecoderNamespace = "EXT_mmvec";
34875 def V6_vmpyiwh_acc : HInst<
34876 (outs HvxVR:$Vx32),
34877 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34878 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
34879 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
34880 let Inst{7-5} = 0b011;
34881 let Inst{13-13} = 0b1;
34882 let Inst{31-21} = 0b00011001010;
34883 let hasNewValue = 1;
34884 let opNewValue = 0;
34885 let isAccumulator = 1;
34886 let isCVI = 1;
34887 let DecoderNamespace = "EXT_mmvec";
34888 let Constraints = "$Vx32 = $Vx32in";
34890 def V6_vmpyiwh_acc_alt : HInst<
34891 (outs HvxVR:$Vx32),
34892 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34893 "$Vx32 += vmpyiwh($Vu32,$Rt32)",
34894 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34895 let hasNewValue = 1;
34896 let opNewValue = 0;
34897 let isAccumulator = 1;
34898 let isCVI = 1;
34899 let isPseudo = 1;
34900 let isCodeGenOnly = 1;
34901 let DecoderNamespace = "EXT_mmvec";
34902 let Constraints = "$Vx32 = $Vx32in";
34904 def V6_vmpyiwh_alt : HInst<
34905 (outs HvxVR:$Vd32),
34906 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34907 "$Vd32 = vmpyiwh($Vu32,$Rt32)",
34908 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34909 let hasNewValue = 1;
34910 let opNewValue = 0;
34911 let isCVI = 1;
34912 let isPseudo = 1;
34913 let isCodeGenOnly = 1;
34914 let DecoderNamespace = "EXT_mmvec";
34916 def V6_vmpyiwub : HInst<
34917 (outs HvxVR:$Vd32),
34918 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34919 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
34920 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
34921 let Inst{7-5} = 0b110;
34922 let Inst{13-13} = 0b0;
34923 let Inst{31-21} = 0b00011001100;
34924 let hasNewValue = 1;
34925 let opNewValue = 0;
34926 let isCVI = 1;
34927 let DecoderNamespace = "EXT_mmvec";
34929 def V6_vmpyiwub_acc : HInst<
34930 (outs HvxVR:$Vx32),
34931 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34932 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
34933 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
34934 let Inst{7-5} = 0b001;
34935 let Inst{13-13} = 0b1;
34936 let Inst{31-21} = 0b00011001100;
34937 let hasNewValue = 1;
34938 let opNewValue = 0;
34939 let isAccumulator = 1;
34940 let isCVI = 1;
34941 let DecoderNamespace = "EXT_mmvec";
34942 let Constraints = "$Vx32 = $Vx32in";
34944 def V6_vmpyiwub_acc_alt : HInst<
34945 (outs HvxVR:$Vx32),
34946 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34947 "$Vx32 += vmpyiwub($Vu32,$Rt32)",
34948 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34949 let hasNewValue = 1;
34950 let opNewValue = 0;
34951 let isAccumulator = 1;
34952 let isCVI = 1;
34953 let isPseudo = 1;
34954 let isCodeGenOnly = 1;
34955 let DecoderNamespace = "EXT_mmvec";
34956 let Constraints = "$Vx32 = $Vx32in";
34958 def V6_vmpyiwub_alt : HInst<
34959 (outs HvxVR:$Vd32),
34960 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34961 "$Vd32 = vmpyiwub($Vu32,$Rt32)",
34962 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34963 let hasNewValue = 1;
34964 let opNewValue = 0;
34965 let isCVI = 1;
34966 let isPseudo = 1;
34967 let isCodeGenOnly = 1;
34968 let DecoderNamespace = "EXT_mmvec";
34970 def V6_vmpyowh : HInst<
34971 (outs HvxVR:$Vd32),
34972 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34973 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
34974 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
34975 let Inst{7-5} = 0b111;
34976 let Inst{13-13} = 0b0;
34977 let Inst{31-21} = 0b00011111111;
34978 let hasNewValue = 1;
34979 let opNewValue = 0;
34980 let isCVI = 1;
34981 let DecoderNamespace = "EXT_mmvec";
34983 def V6_vmpyowh_64_acc : HInst<
34984 (outs HvxWR:$Vxx32),
34985 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34986 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
34987 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
34988 let Inst{7-5} = 0b011;
34989 let Inst{13-13} = 0b1;
34990 let Inst{31-21} = 0b00011100001;
34991 let hasNewValue = 1;
34992 let opNewValue = 0;
34993 let isAccumulator = 1;
34994 let isCVI = 1;
34995 let DecoderNamespace = "EXT_mmvec";
34996 let Constraints = "$Vxx32 = $Vxx32in";
34998 def V6_vmpyowh_alt : HInst<
34999 (outs HvxVR:$Vd32),
35000 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35001 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
35002 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35003 let hasNewValue = 1;
35004 let opNewValue = 0;
35005 let isCVI = 1;
35006 let isPseudo = 1;
35007 let isCodeGenOnly = 1;
35008 let DecoderNamespace = "EXT_mmvec";
35010 def V6_vmpyowh_rnd : HInst<
35011 (outs HvxVR:$Vd32),
35012 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35013 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
35014 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35015 let Inst{7-5} = 0b000;
35016 let Inst{13-13} = 0b0;
35017 let Inst{31-21} = 0b00011111010;
35018 let hasNewValue = 1;
35019 let opNewValue = 0;
35020 let isCVI = 1;
35021 let DecoderNamespace = "EXT_mmvec";
35023 def V6_vmpyowh_rnd_alt : HInst<
35024 (outs HvxVR:$Vd32),
35025 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35026 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
35027 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35028 let hasNewValue = 1;
35029 let opNewValue = 0;
35030 let isCVI = 1;
35031 let isPseudo = 1;
35032 let isCodeGenOnly = 1;
35033 let DecoderNamespace = "EXT_mmvec";
35035 def V6_vmpyowh_rnd_sacc : HInst<
35036 (outs HvxVR:$Vx32),
35037 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35038 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
35039 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35040 let Inst{7-5} = 0b111;
35041 let Inst{13-13} = 0b1;
35042 let Inst{31-21} = 0b00011100001;
35043 let hasNewValue = 1;
35044 let opNewValue = 0;
35045 let isAccumulator = 1;
35046 let isCVI = 1;
35047 let DecoderNamespace = "EXT_mmvec";
35048 let Constraints = "$Vx32 = $Vx32in";
35050 def V6_vmpyowh_rnd_sacc_alt : HInst<
35051 (outs HvxVR:$Vx32),
35052 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35053 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
35054 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35055 let hasNewValue = 1;
35056 let opNewValue = 0;
35057 let isAccumulator = 1;
35058 let isCVI = 1;
35059 let isPseudo = 1;
35060 let DecoderNamespace = "EXT_mmvec";
35061 let Constraints = "$Vx32 = $Vx32in";
35063 def V6_vmpyowh_sacc : HInst<
35064 (outs HvxVR:$Vx32),
35065 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35066 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
35067 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35068 let Inst{7-5} = 0b110;
35069 let Inst{13-13} = 0b1;
35070 let Inst{31-21} = 0b00011100001;
35071 let hasNewValue = 1;
35072 let opNewValue = 0;
35073 let isAccumulator = 1;
35074 let isCVI = 1;
35075 let DecoderNamespace = "EXT_mmvec";
35076 let Constraints = "$Vx32 = $Vx32in";
35078 def V6_vmpyowh_sacc_alt : HInst<
35079 (outs HvxVR:$Vx32),
35080 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35081 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
35082 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35083 let hasNewValue = 1;
35084 let opNewValue = 0;
35085 let isAccumulator = 1;
35086 let isCVI = 1;
35087 let isPseudo = 1;
35088 let DecoderNamespace = "EXT_mmvec";
35089 let Constraints = "$Vx32 = $Vx32in";
35091 def V6_vmpyub : HInst<
35092 (outs HvxWR:$Vdd32),
35093 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35094 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
35095 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35096 let Inst{7-5} = 0b000;
35097 let Inst{13-13} = 0b0;
35098 let Inst{31-21} = 0b00011001110;
35099 let hasNewValue = 1;
35100 let opNewValue = 0;
35101 let isCVI = 1;
35102 let DecoderNamespace = "EXT_mmvec";
35104 def V6_vmpyub_acc : HInst<
35105 (outs HvxWR:$Vxx32),
35106 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35107 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
35108 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35109 let Inst{7-5} = 0b000;
35110 let Inst{13-13} = 0b1;
35111 let Inst{31-21} = 0b00011001100;
35112 let hasNewValue = 1;
35113 let opNewValue = 0;
35114 let isAccumulator = 1;
35115 let isCVI = 1;
35116 let DecoderNamespace = "EXT_mmvec";
35117 let Constraints = "$Vxx32 = $Vxx32in";
35119 def V6_vmpyub_acc_alt : HInst<
35120 (outs HvxWR:$Vxx32),
35121 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35122 "$Vxx32 += vmpyub($Vu32,$Rt32)",
35123 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35124 let hasNewValue = 1;
35125 let opNewValue = 0;
35126 let isAccumulator = 1;
35127 let isCVI = 1;
35128 let isPseudo = 1;
35129 let isCodeGenOnly = 1;
35130 let DecoderNamespace = "EXT_mmvec";
35131 let Constraints = "$Vxx32 = $Vxx32in";
35133 def V6_vmpyub_alt : HInst<
35134 (outs HvxWR:$Vdd32),
35135 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35136 "$Vdd32 = vmpyub($Vu32,$Rt32)",
35137 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35138 let hasNewValue = 1;
35139 let opNewValue = 0;
35140 let isCVI = 1;
35141 let isPseudo = 1;
35142 let isCodeGenOnly = 1;
35143 let DecoderNamespace = "EXT_mmvec";
35145 def V6_vmpyubv : HInst<
35146 (outs HvxWR:$Vdd32),
35147 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35148 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
35149 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35150 let Inst{7-5} = 0b101;
35151 let Inst{13-13} = 0b0;
35152 let Inst{31-21} = 0b00011100000;
35153 let hasNewValue = 1;
35154 let opNewValue = 0;
35155 let isCVI = 1;
35156 let DecoderNamespace = "EXT_mmvec";
35158 def V6_vmpyubv_acc : HInst<
35159 (outs HvxWR:$Vxx32),
35160 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35161 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
35162 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35163 let Inst{7-5} = 0b101;
35164 let Inst{13-13} = 0b1;
35165 let Inst{31-21} = 0b00011100000;
35166 let hasNewValue = 1;
35167 let opNewValue = 0;
35168 let isAccumulator = 1;
35169 let isCVI = 1;
35170 let DecoderNamespace = "EXT_mmvec";
35171 let Constraints = "$Vxx32 = $Vxx32in";
35173 def V6_vmpyubv_acc_alt : HInst<
35174 (outs HvxWR:$Vxx32),
35175 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35176 "$Vxx32 += vmpyub($Vu32,$Vv32)",
35177 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35178 let hasNewValue = 1;
35179 let opNewValue = 0;
35180 let isAccumulator = 1;
35181 let isCVI = 1;
35182 let isPseudo = 1;
35183 let isCodeGenOnly = 1;
35184 let DecoderNamespace = "EXT_mmvec";
35185 let Constraints = "$Vxx32 = $Vxx32in";
35187 def V6_vmpyubv_alt : HInst<
35188 (outs HvxWR:$Vdd32),
35189 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35190 "$Vdd32 = vmpyub($Vu32,$Vv32)",
35191 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35192 let hasNewValue = 1;
35193 let opNewValue = 0;
35194 let isCVI = 1;
35195 let isPseudo = 1;
35196 let isCodeGenOnly = 1;
35197 let DecoderNamespace = "EXT_mmvec";
35199 def V6_vmpyuh : HInst<
35200 (outs HvxWR:$Vdd32),
35201 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35202 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
35203 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35204 let Inst{7-5} = 0b011;
35205 let Inst{13-13} = 0b0;
35206 let Inst{31-21} = 0b00011001010;
35207 let hasNewValue = 1;
35208 let opNewValue = 0;
35209 let isCVI = 1;
35210 let DecoderNamespace = "EXT_mmvec";
35212 def V6_vmpyuh_acc : HInst<
35213 (outs HvxWR:$Vxx32),
35214 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35215 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
35216 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35217 let Inst{7-5} = 0b001;
35218 let Inst{13-13} = 0b1;
35219 let Inst{31-21} = 0b00011001010;
35220 let hasNewValue = 1;
35221 let opNewValue = 0;
35222 let isAccumulator = 1;
35223 let isCVI = 1;
35224 let DecoderNamespace = "EXT_mmvec";
35225 let Constraints = "$Vxx32 = $Vxx32in";
35227 def V6_vmpyuh_acc_alt : HInst<
35228 (outs HvxWR:$Vxx32),
35229 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35230 "$Vxx32 += vmpyuh($Vu32,$Rt32)",
35231 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35232 let hasNewValue = 1;
35233 let opNewValue = 0;
35234 let isAccumulator = 1;
35235 let isCVI = 1;
35236 let isPseudo = 1;
35237 let isCodeGenOnly = 1;
35238 let DecoderNamespace = "EXT_mmvec";
35239 let Constraints = "$Vxx32 = $Vxx32in";
35241 def V6_vmpyuh_alt : HInst<
35242 (outs HvxWR:$Vdd32),
35243 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35244 "$Vdd32 = vmpyuh($Vu32,$Rt32)",
35245 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35246 let hasNewValue = 1;
35247 let opNewValue = 0;
35248 let isCVI = 1;
35249 let isPseudo = 1;
35250 let isCodeGenOnly = 1;
35251 let DecoderNamespace = "EXT_mmvec";
35253 def V6_vmpyuhe : HInst<
35254 (outs HvxVR:$Vd32),
35255 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35256 "$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
35257 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
35258 let Inst{7-5} = 0b010;
35259 let Inst{13-13} = 0b0;
35260 let Inst{31-21} = 0b00011001011;
35261 let hasNewValue = 1;
35262 let opNewValue = 0;
35263 let isCVI = 1;
35264 let DecoderNamespace = "EXT_mmvec";
35266 def V6_vmpyuhe_acc : HInst<
35267 (outs HvxVR:$Vx32),
35268 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35269 "$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
35270 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
35271 let Inst{7-5} = 0b011;
35272 let Inst{13-13} = 0b1;
35273 let Inst{31-21} = 0b00011001100;
35274 let hasNewValue = 1;
35275 let opNewValue = 0;
35276 let isAccumulator = 1;
35277 let isCVI = 1;
35278 let DecoderNamespace = "EXT_mmvec";
35279 let Constraints = "$Vx32 = $Vx32in";
35281 def V6_vmpyuhv : HInst<
35282 (outs HvxWR:$Vdd32),
35283 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35284 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
35285 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35286 let Inst{7-5} = 0b000;
35287 let Inst{13-13} = 0b0;
35288 let Inst{31-21} = 0b00011100001;
35289 let hasNewValue = 1;
35290 let opNewValue = 0;
35291 let isCVI = 1;
35292 let DecoderNamespace = "EXT_mmvec";
35294 def V6_vmpyuhv_acc : HInst<
35295 (outs HvxWR:$Vxx32),
35296 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35297 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
35298 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35299 let Inst{7-5} = 0b000;
35300 let Inst{13-13} = 0b1;
35301 let Inst{31-21} = 0b00011100001;
35302 let hasNewValue = 1;
35303 let opNewValue = 0;
35304 let isAccumulator = 1;
35305 let isCVI = 1;
35306 let DecoderNamespace = "EXT_mmvec";
35307 let Constraints = "$Vxx32 = $Vxx32in";
35309 def V6_vmpyuhv_acc_alt : HInst<
35310 (outs HvxWR:$Vxx32),
35311 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35312 "$Vxx32 += vmpyuh($Vu32,$Vv32)",
35313 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35314 let hasNewValue = 1;
35315 let opNewValue = 0;
35316 let isAccumulator = 1;
35317 let isCVI = 1;
35318 let isPseudo = 1;
35319 let isCodeGenOnly = 1;
35320 let DecoderNamespace = "EXT_mmvec";
35321 let Constraints = "$Vxx32 = $Vxx32in";
35323 def V6_vmpyuhv_alt : HInst<
35324 (outs HvxWR:$Vdd32),
35325 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35326 "$Vdd32 = vmpyuh($Vu32,$Vv32)",
35327 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35328 let hasNewValue = 1;
35329 let opNewValue = 0;
35330 let isCVI = 1;
35331 let isPseudo = 1;
35332 let isCodeGenOnly = 1;
35333 let DecoderNamespace = "EXT_mmvec";
35335 def V6_vmux : HInst<
35336 (outs HvxVR:$Vd32),
35337 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
35338 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
35339 tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
35340 let Inst{7-7} = 0b0;
35341 let Inst{13-13} = 0b1;
35342 let Inst{31-21} = 0b00011110111;
35343 let hasNewValue = 1;
35344 let opNewValue = 0;
35345 let isCVI = 1;
35346 let DecoderNamespace = "EXT_mmvec";
35348 def V6_vnavgb : HInst<
35349 (outs HvxVR:$Vd32),
35350 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35351 "$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
35352 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
35353 let Inst{7-5} = 0b110;
35354 let Inst{13-13} = 0b1;
35355 let Inst{31-21} = 0b00011111000;
35356 let hasNewValue = 1;
35357 let opNewValue = 0;
35358 let isCVI = 1;
35359 let DecoderNamespace = "EXT_mmvec";
35361 def V6_vnavgb_alt : HInst<
35362 (outs HvxVR:$Vd32),
35363 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35364 "$Vd32 = vnavgb($Vu32,$Vv32)",
35365 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35366 let hasNewValue = 1;
35367 let opNewValue = 0;
35368 let isCVI = 1;
35369 let isPseudo = 1;
35370 let isCodeGenOnly = 1;
35371 let DecoderNamespace = "EXT_mmvec";
35373 def V6_vnavgh : HInst<
35374 (outs HvxVR:$Vd32),
35375 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35376 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
35377 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35378 let Inst{7-5} = 0b001;
35379 let Inst{13-13} = 0b0;
35380 let Inst{31-21} = 0b00011100111;
35381 let hasNewValue = 1;
35382 let opNewValue = 0;
35383 let isCVI = 1;
35384 let DecoderNamespace = "EXT_mmvec";
35386 def V6_vnavgh_alt : HInst<
35387 (outs HvxVR:$Vd32),
35388 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35389 "$Vd32 = vnavgh($Vu32,$Vv32)",
35390 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35391 let hasNewValue = 1;
35392 let opNewValue = 0;
35393 let isCVI = 1;
35394 let isPseudo = 1;
35395 let isCodeGenOnly = 1;
35396 let DecoderNamespace = "EXT_mmvec";
35398 def V6_vnavgub : HInst<
35399 (outs HvxVR:$Vd32),
35400 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35401 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
35402 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35403 let Inst{7-5} = 0b000;
35404 let Inst{13-13} = 0b0;
35405 let Inst{31-21} = 0b00011100111;
35406 let hasNewValue = 1;
35407 let opNewValue = 0;
35408 let isCVI = 1;
35409 let DecoderNamespace = "EXT_mmvec";
35411 def V6_vnavgub_alt : HInst<
35412 (outs HvxVR:$Vd32),
35413 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35414 "$Vd32 = vnavgub($Vu32,$Vv32)",
35415 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35416 let hasNewValue = 1;
35417 let opNewValue = 0;
35418 let isCVI = 1;
35419 let isPseudo = 1;
35420 let isCodeGenOnly = 1;
35421 let DecoderNamespace = "EXT_mmvec";
35423 def V6_vnavgw : HInst<
35424 (outs HvxVR:$Vd32),
35425 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35426 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
35427 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35428 let Inst{7-5} = 0b010;
35429 let Inst{13-13} = 0b0;
35430 let Inst{31-21} = 0b00011100111;
35431 let hasNewValue = 1;
35432 let opNewValue = 0;
35433 let isCVI = 1;
35434 let DecoderNamespace = "EXT_mmvec";
35436 def V6_vnavgw_alt : HInst<
35437 (outs HvxVR:$Vd32),
35438 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35439 "$Vd32 = vnavgw($Vu32,$Vv32)",
35440 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35441 let hasNewValue = 1;
35442 let opNewValue = 0;
35443 let isCVI = 1;
35444 let isPseudo = 1;
35445 let isCodeGenOnly = 1;
35446 let DecoderNamespace = "EXT_mmvec";
35448 def V6_vnccombine : HInst<
35449 (outs HvxWR:$Vdd32),
35450 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
35451 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
35452 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
35453 let Inst{7-7} = 0b0;
35454 let Inst{13-13} = 0b0;
35455 let Inst{31-21} = 0b00011010010;
35456 let isPredicated = 1;
35457 let isPredicatedFalse = 1;
35458 let hasNewValue = 1;
35459 let opNewValue = 0;
35460 let isCVI = 1;
35461 let DecoderNamespace = "EXT_mmvec";
35463 def V6_vncmov : HInst<
35464 (outs HvxVR:$Vd32),
35465 (ins PredRegs:$Ps4, HvxVR:$Vu32),
35466 "if (!$Ps4) $Vd32 = $Vu32",
35467 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
35468 let Inst{7-7} = 0b0;
35469 let Inst{13-13} = 0b0;
35470 let Inst{31-16} = 0b0001101000100000;
35471 let isPredicated = 1;
35472 let isPredicatedFalse = 1;
35473 let hasNewValue = 1;
35474 let opNewValue = 0;
35475 let isCVI = 1;
35476 let DecoderNamespace = "EXT_mmvec";
35478 def V6_vnormamth : HInst<
35479 (outs HvxVR:$Vd32),
35480 (ins HvxVR:$Vu32),
35481 "$Vd32.h = vnormamt($Vu32.h)",
35482 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
35483 let Inst{7-5} = 0b101;
35484 let Inst{13-13} = 0b0;
35485 let Inst{31-16} = 0b0001111000000011;
35486 let hasNewValue = 1;
35487 let opNewValue = 0;
35488 let isCVI = 1;
35489 let DecoderNamespace = "EXT_mmvec";
35491 def V6_vnormamth_alt : HInst<
35492 (outs HvxVR:$Vd32),
35493 (ins HvxVR:$Vu32),
35494 "$Vd32 = vnormamth($Vu32)",
35495 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35496 let hasNewValue = 1;
35497 let opNewValue = 0;
35498 let isCVI = 1;
35499 let isPseudo = 1;
35500 let isCodeGenOnly = 1;
35501 let DecoderNamespace = "EXT_mmvec";
35503 def V6_vnormamtw : HInst<
35504 (outs HvxVR:$Vd32),
35505 (ins HvxVR:$Vu32),
35506 "$Vd32.w = vnormamt($Vu32.w)",
35507 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
35508 let Inst{7-5} = 0b100;
35509 let Inst{13-13} = 0b0;
35510 let Inst{31-16} = 0b0001111000000011;
35511 let hasNewValue = 1;
35512 let opNewValue = 0;
35513 let isCVI = 1;
35514 let DecoderNamespace = "EXT_mmvec";
35516 def V6_vnormamtw_alt : HInst<
35517 (outs HvxVR:$Vd32),
35518 (ins HvxVR:$Vu32),
35519 "$Vd32 = vnormamtw($Vu32)",
35520 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35521 let hasNewValue = 1;
35522 let opNewValue = 0;
35523 let isCVI = 1;
35524 let isPseudo = 1;
35525 let isCodeGenOnly = 1;
35526 let DecoderNamespace = "EXT_mmvec";
35528 def V6_vnot : HInst<
35529 (outs HvxVR:$Vd32),
35530 (ins HvxVR:$Vu32),
35531 "$Vd32 = vnot($Vu32)",
35532 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
35533 let Inst{7-5} = 0b100;
35534 let Inst{13-13} = 0b0;
35535 let Inst{31-16} = 0b0001111000000000;
35536 let hasNewValue = 1;
35537 let opNewValue = 0;
35538 let isCVI = 1;
35539 let DecoderNamespace = "EXT_mmvec";
35541 def V6_vor : HInst<
35542 (outs HvxVR:$Vd32),
35543 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35544 "$Vd32 = vor($Vu32,$Vv32)",
35545 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35546 let Inst{7-5} = 0b110;
35547 let Inst{13-13} = 0b0;
35548 let Inst{31-21} = 0b00011100001;
35549 let hasNewValue = 1;
35550 let opNewValue = 0;
35551 let isCVI = 1;
35552 let DecoderNamespace = "EXT_mmvec";
35554 def V6_vpackeb : HInst<
35555 (outs HvxVR:$Vd32),
35556 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35557 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
35558 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35559 let Inst{7-5} = 0b010;
35560 let Inst{13-13} = 0b0;
35561 let Inst{31-21} = 0b00011111110;
35562 let hasNewValue = 1;
35563 let opNewValue = 0;
35564 let isCVI = 1;
35565 let DecoderNamespace = "EXT_mmvec";
35567 def V6_vpackeb_alt : HInst<
35568 (outs HvxVR:$Vd32),
35569 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35570 "$Vd32 = vpackeb($Vu32,$Vv32)",
35571 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35572 let hasNewValue = 1;
35573 let opNewValue = 0;
35574 let isCVI = 1;
35575 let isPseudo = 1;
35576 let isCodeGenOnly = 1;
35577 let DecoderNamespace = "EXT_mmvec";
35579 def V6_vpackeh : HInst<
35580 (outs HvxVR:$Vd32),
35581 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35582 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
35583 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35584 let Inst{7-5} = 0b011;
35585 let Inst{13-13} = 0b0;
35586 let Inst{31-21} = 0b00011111110;
35587 let hasNewValue = 1;
35588 let opNewValue = 0;
35589 let isCVI = 1;
35590 let DecoderNamespace = "EXT_mmvec";
35592 def V6_vpackeh_alt : HInst<
35593 (outs HvxVR:$Vd32),
35594 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35595 "$Vd32 = vpackeh($Vu32,$Vv32)",
35596 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35597 let hasNewValue = 1;
35598 let opNewValue = 0;
35599 let isCVI = 1;
35600 let isPseudo = 1;
35601 let isCodeGenOnly = 1;
35602 let DecoderNamespace = "EXT_mmvec";
35604 def V6_vpackhb_sat : HInst<
35605 (outs HvxVR:$Vd32),
35606 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35607 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
35608 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35609 let Inst{7-5} = 0b110;
35610 let Inst{13-13} = 0b0;
35611 let Inst{31-21} = 0b00011111110;
35612 let hasNewValue = 1;
35613 let opNewValue = 0;
35614 let isCVI = 1;
35615 let DecoderNamespace = "EXT_mmvec";
35617 def V6_vpackhb_sat_alt : HInst<
35618 (outs HvxVR:$Vd32),
35619 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35620 "$Vd32 = vpackhb($Vu32,$Vv32):sat",
35621 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35622 let hasNewValue = 1;
35623 let opNewValue = 0;
35624 let isCVI = 1;
35625 let isPseudo = 1;
35626 let isCodeGenOnly = 1;
35627 let DecoderNamespace = "EXT_mmvec";
35629 def V6_vpackhub_sat : HInst<
35630 (outs HvxVR:$Vd32),
35631 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35632 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
35633 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35634 let Inst{7-5} = 0b101;
35635 let Inst{13-13} = 0b0;
35636 let Inst{31-21} = 0b00011111110;
35637 let hasNewValue = 1;
35638 let opNewValue = 0;
35639 let isCVI = 1;
35640 let DecoderNamespace = "EXT_mmvec";
35642 def V6_vpackhub_sat_alt : HInst<
35643 (outs HvxVR:$Vd32),
35644 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35645 "$Vd32 = vpackhub($Vu32,$Vv32):sat",
35646 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35647 let hasNewValue = 1;
35648 let opNewValue = 0;
35649 let isCVI = 1;
35650 let isPseudo = 1;
35651 let isCodeGenOnly = 1;
35652 let DecoderNamespace = "EXT_mmvec";
35654 def V6_vpackob : HInst<
35655 (outs HvxVR:$Vd32),
35656 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35657 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
35658 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35659 let Inst{7-5} = 0b001;
35660 let Inst{13-13} = 0b0;
35661 let Inst{31-21} = 0b00011111111;
35662 let hasNewValue = 1;
35663 let opNewValue = 0;
35664 let isCVI = 1;
35665 let DecoderNamespace = "EXT_mmvec";
35667 def V6_vpackob_alt : HInst<
35668 (outs HvxVR:$Vd32),
35669 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35670 "$Vd32 = vpackob($Vu32,$Vv32)",
35671 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35672 let hasNewValue = 1;
35673 let opNewValue = 0;
35674 let isCVI = 1;
35675 let isPseudo = 1;
35676 let isCodeGenOnly = 1;
35677 let DecoderNamespace = "EXT_mmvec";
35679 def V6_vpackoh : HInst<
35680 (outs HvxVR:$Vd32),
35681 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35682 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
35683 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35684 let Inst{7-5} = 0b010;
35685 let Inst{13-13} = 0b0;
35686 let Inst{31-21} = 0b00011111111;
35687 let hasNewValue = 1;
35688 let opNewValue = 0;
35689 let isCVI = 1;
35690 let DecoderNamespace = "EXT_mmvec";
35692 def V6_vpackoh_alt : HInst<
35693 (outs HvxVR:$Vd32),
35694 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35695 "$Vd32 = vpackoh($Vu32,$Vv32)",
35696 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35697 let hasNewValue = 1;
35698 let opNewValue = 0;
35699 let isCVI = 1;
35700 let isPseudo = 1;
35701 let isCodeGenOnly = 1;
35702 let DecoderNamespace = "EXT_mmvec";
35704 def V6_vpackwh_sat : HInst<
35705 (outs HvxVR:$Vd32),
35706 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35707 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
35708 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35709 let Inst{7-5} = 0b000;
35710 let Inst{13-13} = 0b0;
35711 let Inst{31-21} = 0b00011111111;
35712 let hasNewValue = 1;
35713 let opNewValue = 0;
35714 let isCVI = 1;
35715 let DecoderNamespace = "EXT_mmvec";
35717 def V6_vpackwh_sat_alt : HInst<
35718 (outs HvxVR:$Vd32),
35719 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35720 "$Vd32 = vpackwh($Vu32,$Vv32):sat",
35721 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35722 let hasNewValue = 1;
35723 let opNewValue = 0;
35724 let isCVI = 1;
35725 let isPseudo = 1;
35726 let isCodeGenOnly = 1;
35727 let DecoderNamespace = "EXT_mmvec";
35729 def V6_vpackwuh_sat : HInst<
35730 (outs HvxVR:$Vd32),
35731 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35732 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
35733 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35734 let Inst{7-5} = 0b111;
35735 let Inst{13-13} = 0b0;
35736 let Inst{31-21} = 0b00011111110;
35737 let hasNewValue = 1;
35738 let opNewValue = 0;
35739 let isCVI = 1;
35740 let DecoderNamespace = "EXT_mmvec";
35742 def V6_vpackwuh_sat_alt : HInst<
35743 (outs HvxVR:$Vd32),
35744 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35745 "$Vd32 = vpackwuh($Vu32,$Vv32):sat",
35746 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35747 let hasNewValue = 1;
35748 let opNewValue = 0;
35749 let isCVI = 1;
35750 let isPseudo = 1;
35751 let isCodeGenOnly = 1;
35752 let DecoderNamespace = "EXT_mmvec";
35754 def V6_vpopcounth : HInst<
35755 (outs HvxVR:$Vd32),
35756 (ins HvxVR:$Vu32),
35757 "$Vd32.h = vpopcount($Vu32.h)",
35758 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
35759 let Inst{7-5} = 0b110;
35760 let Inst{13-13} = 0b0;
35761 let Inst{31-16} = 0b0001111000000010;
35762 let hasNewValue = 1;
35763 let opNewValue = 0;
35764 let isCVI = 1;
35765 let DecoderNamespace = "EXT_mmvec";
35767 def V6_vpopcounth_alt : HInst<
35768 (outs HvxVR:$Vd32),
35769 (ins HvxVR:$Vu32),
35770 "$Vd32 = vpopcounth($Vu32)",
35771 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35772 let hasNewValue = 1;
35773 let opNewValue = 0;
35774 let isCVI = 1;
35775 let isPseudo = 1;
35776 let isCodeGenOnly = 1;
35777 let DecoderNamespace = "EXT_mmvec";
35779 def V6_vprefixqb : HInst<
35780 (outs HvxVR:$Vd32),
35781 (ins HvxQR:$Qv4),
35782 "$Vd32.b = prefixsum($Qv4)",
35783 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
35784 let Inst{13-5} = 0b100000010;
35785 let Inst{21-16} = 0b000011;
35786 let Inst{31-24} = 0b00011110;
35787 let hasNewValue = 1;
35788 let opNewValue = 0;
35789 let isCVI = 1;
35790 let DecoderNamespace = "EXT_mmvec";
35792 def V6_vprefixqh : HInst<
35793 (outs HvxVR:$Vd32),
35794 (ins HvxQR:$Qv4),
35795 "$Vd32.h = prefixsum($Qv4)",
35796 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
35797 let Inst{13-5} = 0b100001010;
35798 let Inst{21-16} = 0b000011;
35799 let Inst{31-24} = 0b00011110;
35800 let hasNewValue = 1;
35801 let opNewValue = 0;
35802 let isCVI = 1;
35803 let DecoderNamespace = "EXT_mmvec";
35805 def V6_vprefixqw : HInst<
35806 (outs HvxVR:$Vd32),
35807 (ins HvxQR:$Qv4),
35808 "$Vd32.w = prefixsum($Qv4)",
35809 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
35810 let Inst{13-5} = 0b100010010;
35811 let Inst{21-16} = 0b000011;
35812 let Inst{31-24} = 0b00011110;
35813 let hasNewValue = 1;
35814 let opNewValue = 0;
35815 let isCVI = 1;
35816 let DecoderNamespace = "EXT_mmvec";
35818 def V6_vrdelta : HInst<
35819 (outs HvxVR:$Vd32),
35820 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35821 "$Vd32 = vrdelta($Vu32,$Vv32)",
35822 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
35823 let Inst{7-5} = 0b011;
35824 let Inst{13-13} = 0b0;
35825 let Inst{31-21} = 0b00011111001;
35826 let hasNewValue = 1;
35827 let opNewValue = 0;
35828 let isCVI = 1;
35829 let DecoderNamespace = "EXT_mmvec";
35831 def V6_vrmpybub_rtt : HInst<
35832 (outs HvxWR:$Vdd32),
35833 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35834 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
35835 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
35836 let Inst{7-5} = 0b101;
35837 let Inst{13-13} = 0b0;
35838 let Inst{31-21} = 0b00011001110;
35839 let hasNewValue = 1;
35840 let opNewValue = 0;
35841 let isCVI = 1;
35842 let DecoderNamespace = "EXT_mmvec";
35844 def V6_vrmpybub_rtt_acc : HInst<
35845 (outs HvxWR:$Vxx32),
35846 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35847 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
35848 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
35849 let Inst{7-5} = 0b000;
35850 let Inst{13-13} = 0b1;
35851 let Inst{31-21} = 0b00011001101;
35852 let hasNewValue = 1;
35853 let opNewValue = 0;
35854 let isAccumulator = 1;
35855 let isCVI = 1;
35856 let DecoderNamespace = "EXT_mmvec";
35857 let Constraints = "$Vxx32 = $Vxx32in";
35859 def V6_vrmpybub_rtt_acc_alt : HInst<
35860 (outs HvxWR:$Vxx32),
35861 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35862 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
35863 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35864 let hasNewValue = 1;
35865 let opNewValue = 0;
35866 let isAccumulator = 1;
35867 let isCVI = 1;
35868 let isPseudo = 1;
35869 let isCodeGenOnly = 1;
35870 let DecoderNamespace = "EXT_mmvec";
35871 let Constraints = "$Vxx32 = $Vxx32in";
35873 def V6_vrmpybub_rtt_alt : HInst<
35874 (outs HvxWR:$Vdd32),
35875 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35876 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
35877 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35878 let hasNewValue = 1;
35879 let opNewValue = 0;
35880 let isCVI = 1;
35881 let isPseudo = 1;
35882 let isCodeGenOnly = 1;
35883 let DecoderNamespace = "EXT_mmvec";
35885 def V6_vrmpybus : HInst<
35886 (outs HvxVR:$Vd32),
35887 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35888 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
35889 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35890 let Inst{7-5} = 0b100;
35891 let Inst{13-13} = 0b0;
35892 let Inst{31-21} = 0b00011001000;
35893 let hasNewValue = 1;
35894 let opNewValue = 0;
35895 let isCVI = 1;
35896 let DecoderNamespace = "EXT_mmvec";
35898 def V6_vrmpybus_acc : HInst<
35899 (outs HvxVR:$Vx32),
35900 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35901 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
35902 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
35903 let Inst{7-5} = 0b101;
35904 let Inst{13-13} = 0b1;
35905 let Inst{31-21} = 0b00011001000;
35906 let hasNewValue = 1;
35907 let opNewValue = 0;
35908 let isAccumulator = 1;
35909 let isCVI = 1;
35910 let DecoderNamespace = "EXT_mmvec";
35911 let Constraints = "$Vx32 = $Vx32in";
35913 def V6_vrmpybus_acc_alt : HInst<
35914 (outs HvxVR:$Vx32),
35915 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35916 "$Vx32 += vrmpybus($Vu32,$Rt32)",
35917 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35918 let hasNewValue = 1;
35919 let opNewValue = 0;
35920 let isAccumulator = 1;
35921 let isCVI = 1;
35922 let isPseudo = 1;
35923 let isCodeGenOnly = 1;
35924 let DecoderNamespace = "EXT_mmvec";
35925 let Constraints = "$Vx32 = $Vx32in";
35927 def V6_vrmpybus_alt : HInst<
35928 (outs HvxVR:$Vd32),
35929 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35930 "$Vd32 = vrmpybus($Vu32,$Rt32)",
35931 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35932 let hasNewValue = 1;
35933 let opNewValue = 0;
35934 let isCVI = 1;
35935 let isPseudo = 1;
35936 let isCodeGenOnly = 1;
35937 let DecoderNamespace = "EXT_mmvec";
35939 def V6_vrmpybusi : HInst<
35940 (outs HvxWR:$Vdd32),
35941 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35942 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
35943 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
35944 let Inst{7-6} = 0b10;
35945 let Inst{13-13} = 0b0;
35946 let Inst{31-21} = 0b00011001010;
35947 let hasNewValue = 1;
35948 let opNewValue = 0;
35949 let isCVI = 1;
35950 let DecoderNamespace = "EXT_mmvec";
35952 def V6_vrmpybusi_acc : HInst<
35953 (outs HvxWR:$Vxx32),
35954 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35955 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
35956 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
35957 let Inst{7-6} = 0b10;
35958 let Inst{13-13} = 0b1;
35959 let Inst{31-21} = 0b00011001010;
35960 let hasNewValue = 1;
35961 let opNewValue = 0;
35962 let isAccumulator = 1;
35963 let isCVI = 1;
35964 let DecoderNamespace = "EXT_mmvec";
35965 let Constraints = "$Vxx32 = $Vxx32in";
35967 def V6_vrmpybusi_acc_alt : HInst<
35968 (outs HvxWR:$Vxx32),
35969 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35970 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
35971 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35972 let hasNewValue = 1;
35973 let opNewValue = 0;
35974 let isAccumulator = 1;
35975 let isCVI = 1;
35976 let isPseudo = 1;
35977 let isCodeGenOnly = 1;
35978 let DecoderNamespace = "EXT_mmvec";
35979 let Constraints = "$Vxx32 = $Vxx32in";
35981 def V6_vrmpybusi_alt : HInst<
35982 (outs HvxWR:$Vdd32),
35983 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35984 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
35985 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35986 let hasNewValue = 1;
35987 let opNewValue = 0;
35988 let isCVI = 1;
35989 let isPseudo = 1;
35990 let isCodeGenOnly = 1;
35991 let DecoderNamespace = "EXT_mmvec";
35993 def V6_vrmpybusv : HInst<
35994 (outs HvxVR:$Vd32),
35995 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35996 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
35997 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35998 let Inst{7-5} = 0b010;
35999 let Inst{13-13} = 0b0;
36000 let Inst{31-21} = 0b00011100000;
36001 let hasNewValue = 1;
36002 let opNewValue = 0;
36003 let isCVI = 1;
36004 let DecoderNamespace = "EXT_mmvec";
36006 def V6_vrmpybusv_acc : HInst<
36007 (outs HvxVR:$Vx32),
36008 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36009 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
36010 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36011 let Inst{7-5} = 0b010;
36012 let Inst{13-13} = 0b1;
36013 let Inst{31-21} = 0b00011100000;
36014 let hasNewValue = 1;
36015 let opNewValue = 0;
36016 let isAccumulator = 1;
36017 let isCVI = 1;
36018 let DecoderNamespace = "EXT_mmvec";
36019 let Constraints = "$Vx32 = $Vx32in";
36021 def V6_vrmpybusv_acc_alt : HInst<
36022 (outs HvxVR:$Vx32),
36023 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36024 "$Vx32 += vrmpybus($Vu32,$Vv32)",
36025 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36026 let hasNewValue = 1;
36027 let opNewValue = 0;
36028 let isAccumulator = 1;
36029 let isCVI = 1;
36030 let isPseudo = 1;
36031 let isCodeGenOnly = 1;
36032 let DecoderNamespace = "EXT_mmvec";
36033 let Constraints = "$Vx32 = $Vx32in";
36035 def V6_vrmpybusv_alt : HInst<
36036 (outs HvxVR:$Vd32),
36037 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36038 "$Vd32 = vrmpybus($Vu32,$Vv32)",
36039 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36040 let hasNewValue = 1;
36041 let opNewValue = 0;
36042 let isCVI = 1;
36043 let isPseudo = 1;
36044 let isCodeGenOnly = 1;
36045 let DecoderNamespace = "EXT_mmvec";
36047 def V6_vrmpybv : HInst<
36048 (outs HvxVR:$Vd32),
36049 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36050 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
36051 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
36052 let Inst{7-5} = 0b001;
36053 let Inst{13-13} = 0b0;
36054 let Inst{31-21} = 0b00011100000;
36055 let hasNewValue = 1;
36056 let opNewValue = 0;
36057 let isCVI = 1;
36058 let DecoderNamespace = "EXT_mmvec";
36060 def V6_vrmpybv_acc : HInst<
36061 (outs HvxVR:$Vx32),
36062 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36063 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
36064 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36065 let Inst{7-5} = 0b001;
36066 let Inst{13-13} = 0b1;
36067 let Inst{31-21} = 0b00011100000;
36068 let hasNewValue = 1;
36069 let opNewValue = 0;
36070 let isAccumulator = 1;
36071 let isCVI = 1;
36072 let DecoderNamespace = "EXT_mmvec";
36073 let Constraints = "$Vx32 = $Vx32in";
36075 def V6_vrmpybv_acc_alt : HInst<
36076 (outs HvxVR:$Vx32),
36077 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36078 "$Vx32 += vrmpyb($Vu32,$Vv32)",
36079 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36080 let hasNewValue = 1;
36081 let opNewValue = 0;
36082 let isAccumulator = 1;
36083 let isCVI = 1;
36084 let isPseudo = 1;
36085 let isCodeGenOnly = 1;
36086 let DecoderNamespace = "EXT_mmvec";
36087 let Constraints = "$Vx32 = $Vx32in";
36089 def V6_vrmpybv_alt : HInst<
36090 (outs HvxVR:$Vd32),
36091 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36092 "$Vd32 = vrmpyb($Vu32,$Vv32)",
36093 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36094 let hasNewValue = 1;
36095 let opNewValue = 0;
36096 let isCVI = 1;
36097 let isPseudo = 1;
36098 let isCodeGenOnly = 1;
36099 let DecoderNamespace = "EXT_mmvec";
36101 def V6_vrmpyub : HInst<
36102 (outs HvxVR:$Vd32),
36103 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36104 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
36105 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36106 let Inst{7-5} = 0b011;
36107 let Inst{13-13} = 0b0;
36108 let Inst{31-21} = 0b00011001000;
36109 let hasNewValue = 1;
36110 let opNewValue = 0;
36111 let isCVI = 1;
36112 let DecoderNamespace = "EXT_mmvec";
36114 def V6_vrmpyub_acc : HInst<
36115 (outs HvxVR:$Vx32),
36116 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36117 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
36118 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36119 let Inst{7-5} = 0b100;
36120 let Inst{13-13} = 0b1;
36121 let Inst{31-21} = 0b00011001000;
36122 let hasNewValue = 1;
36123 let opNewValue = 0;
36124 let isAccumulator = 1;
36125 let isCVI = 1;
36126 let DecoderNamespace = "EXT_mmvec";
36127 let Constraints = "$Vx32 = $Vx32in";
36129 def V6_vrmpyub_acc_alt : HInst<
36130 (outs HvxVR:$Vx32),
36131 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36132 "$Vx32 += vrmpyub($Vu32,$Rt32)",
36133 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36134 let hasNewValue = 1;
36135 let opNewValue = 0;
36136 let isAccumulator = 1;
36137 let isCVI = 1;
36138 let isPseudo = 1;
36139 let isCodeGenOnly = 1;
36140 let DecoderNamespace = "EXT_mmvec";
36141 let Constraints = "$Vx32 = $Vx32in";
36143 def V6_vrmpyub_alt : HInst<
36144 (outs HvxVR:$Vd32),
36145 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36146 "$Vd32 = vrmpyub($Vu32,$Rt32)",
36147 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36148 let hasNewValue = 1;
36149 let opNewValue = 0;
36150 let isCVI = 1;
36151 let isPseudo = 1;
36152 let isCodeGenOnly = 1;
36153 let DecoderNamespace = "EXT_mmvec";
36155 def V6_vrmpyub_rtt : HInst<
36156 (outs HvxWR:$Vdd32),
36157 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
36158 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
36159 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
36160 let Inst{7-5} = 0b100;
36161 let Inst{13-13} = 0b0;
36162 let Inst{31-21} = 0b00011001110;
36163 let hasNewValue = 1;
36164 let opNewValue = 0;
36165 let isCVI = 1;
36166 let DecoderNamespace = "EXT_mmvec";
36168 def V6_vrmpyub_rtt_acc : HInst<
36169 (outs HvxWR:$Vxx32),
36170 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
36171 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
36172 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
36173 let Inst{7-5} = 0b111;
36174 let Inst{13-13} = 0b1;
36175 let Inst{31-21} = 0b00011001101;
36176 let hasNewValue = 1;
36177 let opNewValue = 0;
36178 let isAccumulator = 1;
36179 let isCVI = 1;
36180 let DecoderNamespace = "EXT_mmvec";
36181 let Constraints = "$Vxx32 = $Vxx32in";
36183 def V6_vrmpyub_rtt_acc_alt : HInst<
36184 (outs HvxWR:$Vxx32),
36185 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
36186 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
36187 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36188 let hasNewValue = 1;
36189 let opNewValue = 0;
36190 let isAccumulator = 1;
36191 let isCVI = 1;
36192 let isPseudo = 1;
36193 let isCodeGenOnly = 1;
36194 let DecoderNamespace = "EXT_mmvec";
36195 let Constraints = "$Vxx32 = $Vxx32in";
36197 def V6_vrmpyub_rtt_alt : HInst<
36198 (outs HvxWR:$Vdd32),
36199 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
36200 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
36201 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36202 let hasNewValue = 1;
36203 let opNewValue = 0;
36204 let isCVI = 1;
36205 let isPseudo = 1;
36206 let isCodeGenOnly = 1;
36207 let DecoderNamespace = "EXT_mmvec";
36209 def V6_vrmpyubi : HInst<
36210 (outs HvxWR:$Vdd32),
36211 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36212 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
36213 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
36214 let Inst{7-6} = 0b11;
36215 let Inst{13-13} = 0b0;
36216 let Inst{31-21} = 0b00011001101;
36217 let hasNewValue = 1;
36218 let opNewValue = 0;
36219 let isCVI = 1;
36220 let DecoderNamespace = "EXT_mmvec";
36222 def V6_vrmpyubi_acc : HInst<
36223 (outs HvxWR:$Vxx32),
36224 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36225 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
36226 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
36227 let Inst{7-6} = 0b11;
36228 let Inst{13-13} = 0b1;
36229 let Inst{31-21} = 0b00011001011;
36230 let hasNewValue = 1;
36231 let opNewValue = 0;
36232 let isAccumulator = 1;
36233 let isCVI = 1;
36234 let DecoderNamespace = "EXT_mmvec";
36235 let Constraints = "$Vxx32 = $Vxx32in";
36237 def V6_vrmpyubi_acc_alt : HInst<
36238 (outs HvxWR:$Vxx32),
36239 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36240 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
36241 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36242 let hasNewValue = 1;
36243 let opNewValue = 0;
36244 let isAccumulator = 1;
36245 let isCVI = 1;
36246 let isPseudo = 1;
36247 let isCodeGenOnly = 1;
36248 let DecoderNamespace = "EXT_mmvec";
36249 let Constraints = "$Vxx32 = $Vxx32in";
36251 def V6_vrmpyubi_alt : HInst<
36252 (outs HvxWR:$Vdd32),
36253 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36254 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
36255 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36256 let hasNewValue = 1;
36257 let opNewValue = 0;
36258 let isCVI = 1;
36259 let isPseudo = 1;
36260 let isCodeGenOnly = 1;
36261 let DecoderNamespace = "EXT_mmvec";
36263 def V6_vrmpyubv : HInst<
36264 (outs HvxVR:$Vd32),
36265 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36266 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
36267 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
36268 let Inst{7-5} = 0b000;
36269 let Inst{13-13} = 0b0;
36270 let Inst{31-21} = 0b00011100000;
36271 let hasNewValue = 1;
36272 let opNewValue = 0;
36273 let isCVI = 1;
36274 let DecoderNamespace = "EXT_mmvec";
36276 def V6_vrmpyubv_acc : HInst<
36277 (outs HvxVR:$Vx32),
36278 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36279 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
36280 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36281 let Inst{7-5} = 0b000;
36282 let Inst{13-13} = 0b1;
36283 let Inst{31-21} = 0b00011100000;
36284 let hasNewValue = 1;
36285 let opNewValue = 0;
36286 let isAccumulator = 1;
36287 let isCVI = 1;
36288 let DecoderNamespace = "EXT_mmvec";
36289 let Constraints = "$Vx32 = $Vx32in";
36291 def V6_vrmpyubv_acc_alt : HInst<
36292 (outs HvxVR:$Vx32),
36293 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36294 "$Vx32 += vrmpyub($Vu32,$Vv32)",
36295 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36296 let hasNewValue = 1;
36297 let opNewValue = 0;
36298 let isAccumulator = 1;
36299 let isCVI = 1;
36300 let isPseudo = 1;
36301 let isCodeGenOnly = 1;
36302 let DecoderNamespace = "EXT_mmvec";
36303 let Constraints = "$Vx32 = $Vx32in";
36305 def V6_vrmpyubv_alt : HInst<
36306 (outs HvxVR:$Vd32),
36307 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36308 "$Vd32 = vrmpyub($Vu32,$Vv32)",
36309 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36310 let hasNewValue = 1;
36311 let opNewValue = 0;
36312 let isCVI = 1;
36313 let isPseudo = 1;
36314 let isCodeGenOnly = 1;
36315 let DecoderNamespace = "EXT_mmvec";
36317 def V6_vrmpyzbb_rt : HInst<
36318 (outs HvxVQR:$Vdddd32),
36319 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
36320 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
36321 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
36322 let Inst{7-5} = 0b000;
36323 let Inst{13-13} = 0b0;
36324 let Inst{31-19} = 0b0001100111101;
36325 let hasNewValue = 1;
36326 let opNewValue = 0;
36327 let isCVI = 1;
36328 let DecoderNamespace = "EXT_mmvec";
36330 def V6_vrmpyzbb_rt_acc : HInst<
36331 (outs HvxVQR:$Vyyyy32),
36332 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
36333 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
36334 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
36335 let Inst{7-5} = 0b010;
36336 let Inst{13-13} = 0b1;
36337 let Inst{31-19} = 0b0001100111000;
36338 let hasNewValue = 1;
36339 let opNewValue = 0;
36340 let isAccumulator = 1;
36341 let isCVI = 1;
36342 let DecoderNamespace = "EXT_mmvec";
36343 let Constraints = "$Vyyyy32 = $Vyyyy32in";
36345 def V6_vrmpyzbb_rx : HInst<
36346 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
36347 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36348 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
36349 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
36350 let Inst{7-5} = 0b000;
36351 let Inst{13-13} = 0b0;
36352 let Inst{31-19} = 0b0001100111100;
36353 let hasNewValue = 1;
36354 let opNewValue = 0;
36355 let isCVI = 1;
36356 let DecoderNamespace = "EXT_mmvec";
36357 let Constraints = "$Rx8 = $Rx8in";
36359 def V6_vrmpyzbb_rx_acc : HInst<
36360 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
36361 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36362 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
36363 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
36364 let Inst{7-5} = 0b010;
36365 let Inst{13-13} = 0b1;
36366 let Inst{31-19} = 0b0001100111001;
36367 let hasNewValue = 1;
36368 let opNewValue = 0;
36369 let isAccumulator = 1;
36370 let isCVI = 1;
36371 let DecoderNamespace = "EXT_mmvec";
36372 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
36374 def V6_vrmpyzbub_rt : HInst<
36375 (outs HvxVQR:$Vdddd32),
36376 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
36377 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
36378 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
36379 let Inst{7-5} = 0b010;
36380 let Inst{13-13} = 0b0;
36381 let Inst{31-19} = 0b0001100111111;
36382 let hasNewValue = 1;
36383 let opNewValue = 0;
36384 let isCVI = 1;
36385 let DecoderNamespace = "EXT_mmvec";
36387 def V6_vrmpyzbub_rt_acc : HInst<
36388 (outs HvxVQR:$Vyyyy32),
36389 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
36390 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
36391 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
36392 let Inst{7-5} = 0b001;
36393 let Inst{13-13} = 0b1;
36394 let Inst{31-19} = 0b0001100111010;
36395 let hasNewValue = 1;
36396 let opNewValue = 0;
36397 let isAccumulator = 1;
36398 let isCVI = 1;
36399 let DecoderNamespace = "EXT_mmvec";
36400 let Constraints = "$Vyyyy32 = $Vyyyy32in";
36402 def V6_vrmpyzbub_rx : HInst<
36403 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
36404 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36405 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
36406 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
36407 let Inst{7-5} = 0b010;
36408 let Inst{13-13} = 0b0;
36409 let Inst{31-19} = 0b0001100111110;
36410 let hasNewValue = 1;
36411 let opNewValue = 0;
36412 let isCVI = 1;
36413 let DecoderNamespace = "EXT_mmvec";
36414 let Constraints = "$Rx8 = $Rx8in";
36416 def V6_vrmpyzbub_rx_acc : HInst<
36417 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
36418 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36419 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
36420 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
36421 let Inst{7-5} = 0b001;
36422 let Inst{13-13} = 0b1;
36423 let Inst{31-19} = 0b0001100111011;
36424 let hasNewValue = 1;
36425 let opNewValue = 0;
36426 let isAccumulator = 1;
36427 let isCVI = 1;
36428 let DecoderNamespace = "EXT_mmvec";
36429 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
36431 def V6_vrmpyzcb_rt : HInst<
36432 (outs HvxVQR:$Vdddd32),
36433 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
36434 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
36435 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
36436 let Inst{7-5} = 0b001;
36437 let Inst{13-13} = 0b0;
36438 let Inst{31-19} = 0b0001100111101;
36439 let hasNewValue = 1;
36440 let opNewValue = 0;
36441 let isCVI = 1;
36442 let DecoderNamespace = "EXT_mmvec";
36444 def V6_vrmpyzcb_rt_acc : HInst<
36445 (outs HvxVQR:$Vyyyy32),
36446 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
36447 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
36448 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
36449 let Inst{7-5} = 0b011;
36450 let Inst{13-13} = 0b1;
36451 let Inst{31-19} = 0b0001100111000;
36452 let hasNewValue = 1;
36453 let opNewValue = 0;
36454 let isAccumulator = 1;
36455 let isCVI = 1;
36456 let DecoderNamespace = "EXT_mmvec";
36457 let Constraints = "$Vyyyy32 = $Vyyyy32in";
36459 def V6_vrmpyzcb_rx : HInst<
36460 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
36461 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36462 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
36463 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
36464 let Inst{7-5} = 0b001;
36465 let Inst{13-13} = 0b0;
36466 let Inst{31-19} = 0b0001100111100;
36467 let hasNewValue = 1;
36468 let opNewValue = 0;
36469 let isCVI = 1;
36470 let DecoderNamespace = "EXT_mmvec";
36471 let Constraints = "$Rx8 = $Rx8in";
36473 def V6_vrmpyzcb_rx_acc : HInst<
36474 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
36475 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36476 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
36477 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
36478 let Inst{7-5} = 0b011;
36479 let Inst{13-13} = 0b1;
36480 let Inst{31-19} = 0b0001100111001;
36481 let hasNewValue = 1;
36482 let opNewValue = 0;
36483 let isAccumulator = 1;
36484 let isCVI = 1;
36485 let DecoderNamespace = "EXT_mmvec";
36486 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
36488 def V6_vrmpyzcbs_rt : HInst<
36489 (outs HvxVQR:$Vdddd32),
36490 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
36491 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
36492 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
36493 let Inst{7-5} = 0b010;
36494 let Inst{13-13} = 0b0;
36495 let Inst{31-19} = 0b0001100111101;
36496 let hasNewValue = 1;
36497 let opNewValue = 0;
36498 let isCVI = 1;
36499 let DecoderNamespace = "EXT_mmvec";
36501 def V6_vrmpyzcbs_rt_acc : HInst<
36502 (outs HvxVQR:$Vyyyy32),
36503 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
36504 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
36505 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
36506 let Inst{7-5} = 0b001;
36507 let Inst{13-13} = 0b1;
36508 let Inst{31-19} = 0b0001100111000;
36509 let hasNewValue = 1;
36510 let opNewValue = 0;
36511 let isAccumulator = 1;
36512 let isCVI = 1;
36513 let DecoderNamespace = "EXT_mmvec";
36514 let Constraints = "$Vyyyy32 = $Vyyyy32in";
36516 def V6_vrmpyzcbs_rx : HInst<
36517 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
36518 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36519 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
36520 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
36521 let Inst{7-5} = 0b010;
36522 let Inst{13-13} = 0b0;
36523 let Inst{31-19} = 0b0001100111100;
36524 let hasNewValue = 1;
36525 let opNewValue = 0;
36526 let isCVI = 1;
36527 let DecoderNamespace = "EXT_mmvec";
36528 let Constraints = "$Rx8 = $Rx8in";
36530 def V6_vrmpyzcbs_rx_acc : HInst<
36531 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
36532 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36533 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
36534 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
36535 let Inst{7-5} = 0b001;
36536 let Inst{13-13} = 0b1;
36537 let Inst{31-19} = 0b0001100111001;
36538 let hasNewValue = 1;
36539 let opNewValue = 0;
36540 let isAccumulator = 1;
36541 let isCVI = 1;
36542 let DecoderNamespace = "EXT_mmvec";
36543 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
36545 def V6_vrmpyznb_rt : HInst<
36546 (outs HvxVQR:$Vdddd32),
36547 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
36548 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
36549 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
36550 let Inst{7-5} = 0b000;
36551 let Inst{13-13} = 0b0;
36552 let Inst{31-19} = 0b0001100111111;
36553 let hasNewValue = 1;
36554 let opNewValue = 0;
36555 let isCVI = 1;
36556 let DecoderNamespace = "EXT_mmvec";
36558 def V6_vrmpyznb_rt_acc : HInst<
36559 (outs HvxVQR:$Vyyyy32),
36560 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
36561 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
36562 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
36563 let Inst{7-5} = 0b010;
36564 let Inst{13-13} = 0b1;
36565 let Inst{31-19} = 0b0001100111010;
36566 let hasNewValue = 1;
36567 let opNewValue = 0;
36568 let isAccumulator = 1;
36569 let isCVI = 1;
36570 let DecoderNamespace = "EXT_mmvec";
36571 let Constraints = "$Vyyyy32 = $Vyyyy32in";
36573 def V6_vrmpyznb_rx : HInst<
36574 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
36575 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36576 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
36577 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
36578 let Inst{7-5} = 0b000;
36579 let Inst{13-13} = 0b0;
36580 let Inst{31-19} = 0b0001100111110;
36581 let hasNewValue = 1;
36582 let opNewValue = 0;
36583 let isCVI = 1;
36584 let DecoderNamespace = "EXT_mmvec";
36585 let Constraints = "$Rx8 = $Rx8in";
36587 def V6_vrmpyznb_rx_acc : HInst<
36588 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
36589 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
36590 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
36591 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
36592 let Inst{7-5} = 0b010;
36593 let Inst{13-13} = 0b1;
36594 let Inst{31-19} = 0b0001100111011;
36595 let hasNewValue = 1;
36596 let opNewValue = 0;
36597 let isAccumulator = 1;
36598 let isCVI = 1;
36599 let DecoderNamespace = "EXT_mmvec";
36600 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
36602 def V6_vror : HInst<
36603 (outs HvxVR:$Vd32),
36604 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36605 "$Vd32 = vror($Vu32,$Rt32)",
36606 tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
36607 let Inst{7-5} = 0b001;
36608 let Inst{13-13} = 0b0;
36609 let Inst{31-21} = 0b00011001011;
36610 let hasNewValue = 1;
36611 let opNewValue = 0;
36612 let isCVI = 1;
36613 let DecoderNamespace = "EXT_mmvec";
36615 def V6_vrotr : HInst<
36616 (outs HvxVR:$Vd32),
36617 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36618 "$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
36619 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
36620 let Inst{7-5} = 0b111;
36621 let Inst{13-13} = 0b1;
36622 let Inst{31-21} = 0b00011010100;
36623 let hasNewValue = 1;
36624 let opNewValue = 0;
36625 let isCVI = 1;
36626 let DecoderNamespace = "EXT_mmvec";
36628 def V6_vrotr_alt : HInst<
36629 (outs HvxVR:$Vd32),
36630 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36631 "$Vd32 = vrotr($Vu32,$Vv32)",
36632 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
36633 let hasNewValue = 1;
36634 let opNewValue = 0;
36635 let isCVI = 1;
36636 let isPseudo = 1;
36637 let isCodeGenOnly = 1;
36638 let DecoderNamespace = "EXT_mmvec";
36640 def V6_vroundhb : HInst<
36641 (outs HvxVR:$Vd32),
36642 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36643 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
36644 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
36645 let Inst{7-5} = 0b110;
36646 let Inst{13-13} = 0b0;
36647 let Inst{31-21} = 0b00011111011;
36648 let hasNewValue = 1;
36649 let opNewValue = 0;
36650 let isCVI = 1;
36651 let DecoderNamespace = "EXT_mmvec";
36653 def V6_vroundhb_alt : HInst<
36654 (outs HvxVR:$Vd32),
36655 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36656 "$Vd32 = vroundhb($Vu32,$Vv32):sat",
36657 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36658 let hasNewValue = 1;
36659 let opNewValue = 0;
36660 let isCVI = 1;
36661 let isPseudo = 1;
36662 let isCodeGenOnly = 1;
36663 let DecoderNamespace = "EXT_mmvec";
36665 def V6_vroundhub : HInst<
36666 (outs HvxVR:$Vd32),
36667 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36668 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
36669 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
36670 let Inst{7-5} = 0b111;
36671 let Inst{13-13} = 0b0;
36672 let Inst{31-21} = 0b00011111011;
36673 let hasNewValue = 1;
36674 let opNewValue = 0;
36675 let isCVI = 1;
36676 let DecoderNamespace = "EXT_mmvec";
36678 def V6_vroundhub_alt : HInst<
36679 (outs HvxVR:$Vd32),
36680 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36681 "$Vd32 = vroundhub($Vu32,$Vv32):sat",
36682 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36683 let hasNewValue = 1;
36684 let opNewValue = 0;
36685 let isCVI = 1;
36686 let isPseudo = 1;
36687 let isCodeGenOnly = 1;
36688 let DecoderNamespace = "EXT_mmvec";
36690 def V6_vrounduhub : HInst<
36691 (outs HvxVR:$Vd32),
36692 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36693 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
36694 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
36695 let Inst{7-5} = 0b011;
36696 let Inst{13-13} = 0b0;
36697 let Inst{31-21} = 0b00011111111;
36698 let hasNewValue = 1;
36699 let opNewValue = 0;
36700 let isCVI = 1;
36701 let DecoderNamespace = "EXT_mmvec";
36703 def V6_vrounduhub_alt : HInst<
36704 (outs HvxVR:$Vd32),
36705 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36706 "$Vd32 = vrounduhub($Vu32,$Vv32):sat",
36707 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36708 let hasNewValue = 1;
36709 let opNewValue = 0;
36710 let isCVI = 1;
36711 let isPseudo = 1;
36712 let isCodeGenOnly = 1;
36713 let DecoderNamespace = "EXT_mmvec";
36715 def V6_vrounduwuh : HInst<
36716 (outs HvxVR:$Vd32),
36717 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36718 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
36719 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
36720 let Inst{7-5} = 0b100;
36721 let Inst{13-13} = 0b0;
36722 let Inst{31-21} = 0b00011111111;
36723 let hasNewValue = 1;
36724 let opNewValue = 0;
36725 let isCVI = 1;
36726 let DecoderNamespace = "EXT_mmvec";
36728 def V6_vrounduwuh_alt : HInst<
36729 (outs HvxVR:$Vd32),
36730 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36731 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
36732 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36733 let hasNewValue = 1;
36734 let opNewValue = 0;
36735 let isCVI = 1;
36736 let isPseudo = 1;
36737 let isCodeGenOnly = 1;
36738 let DecoderNamespace = "EXT_mmvec";
36740 def V6_vroundwh : HInst<
36741 (outs HvxVR:$Vd32),
36742 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36743 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
36744 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
36745 let Inst{7-5} = 0b100;
36746 let Inst{13-13} = 0b0;
36747 let Inst{31-21} = 0b00011111011;
36748 let hasNewValue = 1;
36749 let opNewValue = 0;
36750 let isCVI = 1;
36751 let DecoderNamespace = "EXT_mmvec";
36753 def V6_vroundwh_alt : HInst<
36754 (outs HvxVR:$Vd32),
36755 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36756 "$Vd32 = vroundwh($Vu32,$Vv32):sat",
36757 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36758 let hasNewValue = 1;
36759 let opNewValue = 0;
36760 let isCVI = 1;
36761 let isPseudo = 1;
36762 let isCodeGenOnly = 1;
36763 let DecoderNamespace = "EXT_mmvec";
36765 def V6_vroundwuh : HInst<
36766 (outs HvxVR:$Vd32),
36767 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36768 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
36769 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
36770 let Inst{7-5} = 0b101;
36771 let Inst{13-13} = 0b0;
36772 let Inst{31-21} = 0b00011111011;
36773 let hasNewValue = 1;
36774 let opNewValue = 0;
36775 let isCVI = 1;
36776 let DecoderNamespace = "EXT_mmvec";
36778 def V6_vroundwuh_alt : HInst<
36779 (outs HvxVR:$Vd32),
36780 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36781 "$Vd32 = vroundwuh($Vu32,$Vv32):sat",
36782 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36783 let hasNewValue = 1;
36784 let opNewValue = 0;
36785 let isCVI = 1;
36786 let isPseudo = 1;
36787 let isCodeGenOnly = 1;
36788 let DecoderNamespace = "EXT_mmvec";
36790 def V6_vrsadubi : HInst<
36791 (outs HvxWR:$Vdd32),
36792 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36793 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
36794 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
36795 let Inst{7-6} = 0b11;
36796 let Inst{13-13} = 0b0;
36797 let Inst{31-21} = 0b00011001010;
36798 let hasNewValue = 1;
36799 let opNewValue = 0;
36800 let isCVI = 1;
36801 let DecoderNamespace = "EXT_mmvec";
36803 def V6_vrsadubi_acc : HInst<
36804 (outs HvxWR:$Vxx32),
36805 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36806 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
36807 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
36808 let Inst{7-6} = 0b11;
36809 let Inst{13-13} = 0b1;
36810 let Inst{31-21} = 0b00011001010;
36811 let hasNewValue = 1;
36812 let opNewValue = 0;
36813 let isAccumulator = 1;
36814 let isCVI = 1;
36815 let DecoderNamespace = "EXT_mmvec";
36816 let Constraints = "$Vxx32 = $Vxx32in";
36818 def V6_vrsadubi_acc_alt : HInst<
36819 (outs HvxWR:$Vxx32),
36820 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36821 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
36822 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36823 let hasNewValue = 1;
36824 let opNewValue = 0;
36825 let isAccumulator = 1;
36826 let isCVI = 1;
36827 let isPseudo = 1;
36828 let isCodeGenOnly = 1;
36829 let DecoderNamespace = "EXT_mmvec";
36830 let Constraints = "$Vxx32 = $Vxx32in";
36832 def V6_vrsadubi_alt : HInst<
36833 (outs HvxWR:$Vdd32),
36834 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
36835 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
36836 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36837 let hasNewValue = 1;
36838 let opNewValue = 0;
36839 let isCVI = 1;
36840 let isPseudo = 1;
36841 let isCodeGenOnly = 1;
36842 let DecoderNamespace = "EXT_mmvec";
36844 def V6_vsatdw : HInst<
36845 (outs HvxVR:$Vd32),
36846 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36847 "$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
36848 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
36849 let Inst{7-5} = 0b111;
36850 let Inst{13-13} = 0b1;
36851 let Inst{31-21} = 0b00011101100;
36852 let hasNewValue = 1;
36853 let opNewValue = 0;
36854 let isCVI = 1;
36855 let DecoderNamespace = "EXT_mmvec";
36857 def V6_vsathub : HInst<
36858 (outs HvxVR:$Vd32),
36859 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36860 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
36861 tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36862 let Inst{7-5} = 0b010;
36863 let Inst{13-13} = 0b0;
36864 let Inst{31-21} = 0b00011111011;
36865 let hasNewValue = 1;
36866 let opNewValue = 0;
36867 let isCVI = 1;
36868 let DecoderNamespace = "EXT_mmvec";
36870 def V6_vsathub_alt : HInst<
36871 (outs HvxVR:$Vd32),
36872 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36873 "$Vd32 = vsathub($Vu32,$Vv32)",
36874 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36875 let hasNewValue = 1;
36876 let opNewValue = 0;
36877 let isCVI = 1;
36878 let isPseudo = 1;
36879 let isCodeGenOnly = 1;
36880 let DecoderNamespace = "EXT_mmvec";
36882 def V6_vsatuwuh : HInst<
36883 (outs HvxVR:$Vd32),
36884 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36885 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
36886 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36887 let Inst{7-5} = 0b110;
36888 let Inst{13-13} = 0b0;
36889 let Inst{31-21} = 0b00011111001;
36890 let hasNewValue = 1;
36891 let opNewValue = 0;
36892 let isCVI = 1;
36893 let DecoderNamespace = "EXT_mmvec";
36895 def V6_vsatuwuh_alt : HInst<
36896 (outs HvxVR:$Vd32),
36897 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36898 "$Vd32 = vsatuwuh($Vu32,$Vv32)",
36899 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36900 let hasNewValue = 1;
36901 let opNewValue = 0;
36902 let isCVI = 1;
36903 let isPseudo = 1;
36904 let isCodeGenOnly = 1;
36905 let DecoderNamespace = "EXT_mmvec";
36907 def V6_vsatwh : HInst<
36908 (outs HvxVR:$Vd32),
36909 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36910 "$Vd32.h = vsat($Vu32.w,$Vv32.w)",
36911 tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36912 let Inst{7-5} = 0b011;
36913 let Inst{13-13} = 0b0;
36914 let Inst{31-21} = 0b00011111011;
36915 let hasNewValue = 1;
36916 let opNewValue = 0;
36917 let isCVI = 1;
36918 let DecoderNamespace = "EXT_mmvec";
36920 def V6_vsatwh_alt : HInst<
36921 (outs HvxVR:$Vd32),
36922 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36923 "$Vd32 = vsatwh($Vu32,$Vv32)",
36924 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36925 let hasNewValue = 1;
36926 let opNewValue = 0;
36927 let isCVI = 1;
36928 let isPseudo = 1;
36929 let isCodeGenOnly = 1;
36930 let DecoderNamespace = "EXT_mmvec";
36932 def V6_vsb : HInst<
36933 (outs HvxWR:$Vdd32),
36934 (ins HvxVR:$Vu32),
36935 "$Vdd32.h = vsxt($Vu32.b)",
36936 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
36937 let Inst{7-5} = 0b011;
36938 let Inst{13-13} = 0b0;
36939 let Inst{31-16} = 0b0001111000000010;
36940 let hasNewValue = 1;
36941 let opNewValue = 0;
36942 let isCVI = 1;
36943 let DecoderNamespace = "EXT_mmvec";
36945 def V6_vsb_alt : HInst<
36946 (outs HvxWR:$Vdd32),
36947 (ins HvxVR:$Vu32),
36948 "$Vdd32 = vsxtb($Vu32)",
36949 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36950 let hasNewValue = 1;
36951 let opNewValue = 0;
36952 let isCVI = 1;
36953 let isPseudo = 1;
36954 let isCodeGenOnly = 1;
36955 let DecoderNamespace = "EXT_mmvec";
36957 def V6_vscattermh : HInst<
36958 (outs),
36959 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
36960 "vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
36961 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
36962 let Inst{7-5} = 0b001;
36963 let Inst{31-21} = 0b00101111001;
36964 let accessSize = HalfWordAccess;
36965 let isCVI = 1;
36966 let mayStore = 1;
36967 let DecoderNamespace = "EXT_mmvec";
36969 def V6_vscattermh_add : HInst<
36970 (outs),
36971 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
36972 "vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
36973 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
36974 let Inst{7-5} = 0b101;
36975 let Inst{31-21} = 0b00101111001;
36976 let accessSize = HalfWordAccess;
36977 let isAccumulator = 1;
36978 let isCVI = 1;
36979 let mayStore = 1;
36980 let DecoderNamespace = "EXT_mmvec";
36982 def V6_vscattermh_add_alt : HInst<
36983 (outs),
36984 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
36985 "vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
36986 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36987 let isAccumulator = 1;
36988 let isCVI = 1;
36989 let isPseudo = 1;
36990 let isCodeGenOnly = 1;
36991 let DecoderNamespace = "EXT_mmvec";
36993 def V6_vscattermh_alt : HInst<
36994 (outs),
36995 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
36996 "vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
36997 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36998 let isCVI = 1;
36999 let isPseudo = 1;
37000 let isCodeGenOnly = 1;
37001 let DecoderNamespace = "EXT_mmvec";
37003 def V6_vscattermhq : HInst<
37004 (outs),
37005 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37006 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
37007 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
37008 let Inst{7-7} = 0b1;
37009 let Inst{31-21} = 0b00101111100;
37010 let accessSize = HalfWordAccess;
37011 let isCVI = 1;
37012 let mayStore = 1;
37013 let DecoderNamespace = "EXT_mmvec";
37015 def V6_vscattermhq_alt : HInst<
37016 (outs),
37017 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37018 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
37019 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37020 let isCVI = 1;
37021 let isPseudo = 1;
37022 let isCodeGenOnly = 1;
37023 let DecoderNamespace = "EXT_mmvec";
37025 def V6_vscattermhw : HInst<
37026 (outs),
37027 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37028 "vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
37029 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
37030 let Inst{7-5} = 0b010;
37031 let Inst{31-21} = 0b00101111001;
37032 let accessSize = HalfWordAccess;
37033 let isCVI = 1;
37034 let mayStore = 1;
37035 let DecoderNamespace = "EXT_mmvec";
37037 def V6_vscattermhw_add : HInst<
37038 (outs),
37039 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37040 "vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
37041 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
37042 let Inst{7-5} = 0b110;
37043 let Inst{31-21} = 0b00101111001;
37044 let accessSize = HalfWordAccess;
37045 let isAccumulator = 1;
37046 let isCVI = 1;
37047 let mayStore = 1;
37048 let DecoderNamespace = "EXT_mmvec";
37050 def V6_vscattermhwq : HInst<
37051 (outs),
37052 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37053 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
37054 tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
37055 let Inst{7-7} = 0b0;
37056 let Inst{31-21} = 0b00101111101;
37057 let accessSize = HalfWordAccess;
37058 let isCVI = 1;
37059 let mayStore = 1;
37060 let DecoderNamespace = "EXT_mmvec";
37062 def V6_vscattermw : HInst<
37063 (outs),
37064 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37065 "vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
37066 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37067 let Inst{7-5} = 0b000;
37068 let Inst{31-21} = 0b00101111001;
37069 let accessSize = WordAccess;
37070 let isCVI = 1;
37071 let mayStore = 1;
37072 let DecoderNamespace = "EXT_mmvec";
37074 def V6_vscattermw_add : HInst<
37075 (outs),
37076 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37077 "vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
37078 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
37079 let Inst{7-5} = 0b100;
37080 let Inst{31-21} = 0b00101111001;
37081 let accessSize = WordAccess;
37082 let isAccumulator = 1;
37083 let isCVI = 1;
37084 let mayStore = 1;
37085 let DecoderNamespace = "EXT_mmvec";
37087 def V6_vscattermw_add_alt : HInst<
37088 (outs),
37089 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37090 "vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
37091 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37092 let isAccumulator = 1;
37093 let isCVI = 1;
37094 let isPseudo = 1;
37095 let isCodeGenOnly = 1;
37096 let DecoderNamespace = "EXT_mmvec";
37098 def V6_vscattermw_alt : HInst<
37099 (outs),
37100 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37101 "vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
37102 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37103 let isCVI = 1;
37104 let isPseudo = 1;
37105 let isCodeGenOnly = 1;
37106 let DecoderNamespace = "EXT_mmvec";
37108 def V6_vscattermwh_add_alt : HInst<
37109 (outs),
37110 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37111 "vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
37112 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37113 let isAccumulator = 1;
37114 let isCVI = 1;
37115 let isPseudo = 1;
37116 let isCodeGenOnly = 1;
37117 let DecoderNamespace = "EXT_mmvec";
37119 def V6_vscattermwh_alt : HInst<
37120 (outs),
37121 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37122 "vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
37123 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37124 let isCVI = 1;
37125 let isPseudo = 1;
37126 let isCodeGenOnly = 1;
37127 let DecoderNamespace = "EXT_mmvec";
37129 def V6_vscattermwhq_alt : HInst<
37130 (outs),
37131 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
37132 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
37133 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37134 let isCVI = 1;
37135 let isPseudo = 1;
37136 let isCodeGenOnly = 1;
37137 let DecoderNamespace = "EXT_mmvec";
37139 def V6_vscattermwq : HInst<
37140 (outs),
37141 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37142 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
37143 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
37144 let Inst{7-7} = 0b0;
37145 let Inst{31-21} = 0b00101111100;
37146 let accessSize = WordAccess;
37147 let isCVI = 1;
37148 let mayStore = 1;
37149 let DecoderNamespace = "EXT_mmvec";
37151 def V6_vscattermwq_alt : HInst<
37152 (outs),
37153 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
37154 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
37155 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37156 let isCVI = 1;
37157 let isPseudo = 1;
37158 let isCodeGenOnly = 1;
37159 let DecoderNamespace = "EXT_mmvec";
37161 def V6_vsh : HInst<
37162 (outs HvxWR:$Vdd32),
37163 (ins HvxVR:$Vu32),
37164 "$Vdd32.w = vsxt($Vu32.h)",
37165 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37166 let Inst{7-5} = 0b100;
37167 let Inst{13-13} = 0b0;
37168 let Inst{31-16} = 0b0001111000000010;
37169 let hasNewValue = 1;
37170 let opNewValue = 0;
37171 let isCVI = 1;
37172 let DecoderNamespace = "EXT_mmvec";
37174 def V6_vsh_alt : HInst<
37175 (outs HvxWR:$Vdd32),
37176 (ins HvxVR:$Vu32),
37177 "$Vdd32 = vsxth($Vu32)",
37178 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37179 let hasNewValue = 1;
37180 let opNewValue = 0;
37181 let isCVI = 1;
37182 let isPseudo = 1;
37183 let isCodeGenOnly = 1;
37184 let DecoderNamespace = "EXT_mmvec";
37186 def V6_vshufeh : HInst<
37187 (outs HvxVR:$Vd32),
37188 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37189 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
37190 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37191 let Inst{7-5} = 0b011;
37192 let Inst{13-13} = 0b0;
37193 let Inst{31-21} = 0b00011111010;
37194 let hasNewValue = 1;
37195 let opNewValue = 0;
37196 let isCVI = 1;
37197 let DecoderNamespace = "EXT_mmvec";
37199 def V6_vshufeh_alt : HInst<
37200 (outs HvxVR:$Vd32),
37201 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37202 "$Vd32 = vshuffeh($Vu32,$Vv32)",
37203 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37204 let hasNewValue = 1;
37205 let opNewValue = 0;
37206 let isCVI = 1;
37207 let isPseudo = 1;
37208 let isCodeGenOnly = 1;
37209 let DecoderNamespace = "EXT_mmvec";
37211 def V6_vshuff : HInst<
37212 (outs HvxVR:$Vy32, HvxVR:$Vx32),
37213 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
37214 "vshuff($Vy32,$Vx32,$Rt32)",
37215 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
37216 let Inst{7-5} = 0b001;
37217 let Inst{13-13} = 0b1;
37218 let Inst{31-21} = 0b00011001111;
37219 let hasNewValue = 1;
37220 let opNewValue = 0;
37221 let hasNewValue2 = 1;
37222 let opNewValue2 = 1;
37223 let isCVI = 1;
37224 let DecoderNamespace = "EXT_mmvec";
37225 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
37227 def V6_vshuffb : HInst<
37228 (outs HvxVR:$Vd32),
37229 (ins HvxVR:$Vu32),
37230 "$Vd32.b = vshuff($Vu32.b)",
37231 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
37232 let Inst{7-5} = 0b000;
37233 let Inst{13-13} = 0b0;
37234 let Inst{31-16} = 0b0001111000000010;
37235 let hasNewValue = 1;
37236 let opNewValue = 0;
37237 let isCVI = 1;
37238 let DecoderNamespace = "EXT_mmvec";
37240 def V6_vshuffb_alt : HInst<
37241 (outs HvxVR:$Vd32),
37242 (ins HvxVR:$Vu32),
37243 "$Vd32 = vshuffb($Vu32)",
37244 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37245 let hasNewValue = 1;
37246 let opNewValue = 0;
37247 let isCVI = 1;
37248 let isPseudo = 1;
37249 let isCodeGenOnly = 1;
37250 let DecoderNamespace = "EXT_mmvec";
37252 def V6_vshuffeb : HInst<
37253 (outs HvxVR:$Vd32),
37254 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37255 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
37256 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37257 let Inst{7-5} = 0b001;
37258 let Inst{13-13} = 0b0;
37259 let Inst{31-21} = 0b00011111010;
37260 let hasNewValue = 1;
37261 let opNewValue = 0;
37262 let isCVI = 1;
37263 let DecoderNamespace = "EXT_mmvec";
37265 def V6_vshuffeb_alt : HInst<
37266 (outs HvxVR:$Vd32),
37267 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37268 "$Vd32 = vshuffeb($Vu32,$Vv32)",
37269 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37270 let hasNewValue = 1;
37271 let opNewValue = 0;
37272 let isCVI = 1;
37273 let isPseudo = 1;
37274 let isCodeGenOnly = 1;
37275 let DecoderNamespace = "EXT_mmvec";
37277 def V6_vshuffh : HInst<
37278 (outs HvxVR:$Vd32),
37279 (ins HvxVR:$Vu32),
37280 "$Vd32.h = vshuff($Vu32.h)",
37281 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
37282 let Inst{7-5} = 0b111;
37283 let Inst{13-13} = 0b0;
37284 let Inst{31-16} = 0b0001111000000001;
37285 let hasNewValue = 1;
37286 let opNewValue = 0;
37287 let isCVI = 1;
37288 let DecoderNamespace = "EXT_mmvec";
37290 def V6_vshuffh_alt : HInst<
37291 (outs HvxVR:$Vd32),
37292 (ins HvxVR:$Vu32),
37293 "$Vd32 = vshuffh($Vu32)",
37294 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37295 let hasNewValue = 1;
37296 let opNewValue = 0;
37297 let isCVI = 1;
37298 let isPseudo = 1;
37299 let isCodeGenOnly = 1;
37300 let DecoderNamespace = "EXT_mmvec";
37302 def V6_vshuffob : HInst<
37303 (outs HvxVR:$Vd32),
37304 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37305 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
37306 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37307 let Inst{7-5} = 0b010;
37308 let Inst{13-13} = 0b0;
37309 let Inst{31-21} = 0b00011111010;
37310 let hasNewValue = 1;
37311 let opNewValue = 0;
37312 let isCVI = 1;
37313 let DecoderNamespace = "EXT_mmvec";
37315 def V6_vshuffob_alt : HInst<
37316 (outs HvxVR:$Vd32),
37317 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37318 "$Vd32 = vshuffob($Vu32,$Vv32)",
37319 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37320 let hasNewValue = 1;
37321 let opNewValue = 0;
37322 let isCVI = 1;
37323 let isPseudo = 1;
37324 let isCodeGenOnly = 1;
37325 let DecoderNamespace = "EXT_mmvec";
37327 def V6_vshuffvdd : HInst<
37328 (outs HvxWR:$Vdd32),
37329 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
37330 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
37331 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
37332 let Inst{7-5} = 0b011;
37333 let Inst{13-13} = 0b1;
37334 let Inst{31-24} = 0b00011011;
37335 let hasNewValue = 1;
37336 let opNewValue = 0;
37337 let isCVI = 1;
37338 let DecoderNamespace = "EXT_mmvec";
37340 def V6_vshufoeb : HInst<
37341 (outs HvxWR:$Vdd32),
37342 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37343 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
37344 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
37345 let Inst{7-5} = 0b110;
37346 let Inst{13-13} = 0b0;
37347 let Inst{31-21} = 0b00011111010;
37348 let hasNewValue = 1;
37349 let opNewValue = 0;
37350 let isCVI = 1;
37351 let DecoderNamespace = "EXT_mmvec";
37353 def V6_vshufoeb_alt : HInst<
37354 (outs HvxWR:$Vdd32),
37355 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37356 "$Vdd32 = vshuffoeb($Vu32,$Vv32)",
37357 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37358 let hasNewValue = 1;
37359 let opNewValue = 0;
37360 let isCVI = 1;
37361 let isPseudo = 1;
37362 let isCodeGenOnly = 1;
37363 let DecoderNamespace = "EXT_mmvec";
37365 def V6_vshufoeh : HInst<
37366 (outs HvxWR:$Vdd32),
37367 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37368 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
37369 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
37370 let Inst{7-5} = 0b101;
37371 let Inst{13-13} = 0b0;
37372 let Inst{31-21} = 0b00011111010;
37373 let hasNewValue = 1;
37374 let opNewValue = 0;
37375 let isCVI = 1;
37376 let DecoderNamespace = "EXT_mmvec";
37378 def V6_vshufoeh_alt : HInst<
37379 (outs HvxWR:$Vdd32),
37380 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37381 "$Vdd32 = vshuffoeh($Vu32,$Vv32)",
37382 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37383 let hasNewValue = 1;
37384 let opNewValue = 0;
37385 let isCVI = 1;
37386 let isPseudo = 1;
37387 let isCodeGenOnly = 1;
37388 let DecoderNamespace = "EXT_mmvec";
37390 def V6_vshufoh : HInst<
37391 (outs HvxVR:$Vd32),
37392 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37393 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
37394 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37395 let Inst{7-5} = 0b100;
37396 let Inst{13-13} = 0b0;
37397 let Inst{31-21} = 0b00011111010;
37398 let hasNewValue = 1;
37399 let opNewValue = 0;
37400 let isCVI = 1;
37401 let DecoderNamespace = "EXT_mmvec";
37403 def V6_vshufoh_alt : HInst<
37404 (outs HvxVR:$Vd32),
37405 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37406 "$Vd32 = vshuffoh($Vu32,$Vv32)",
37407 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37408 let hasNewValue = 1;
37409 let opNewValue = 0;
37410 let isCVI = 1;
37411 let isPseudo = 1;
37412 let isCodeGenOnly = 1;
37413 let DecoderNamespace = "EXT_mmvec";
37415 def V6_vsubb : HInst<
37416 (outs HvxVR:$Vd32),
37417 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37418 "$Vd32.b = vsub($Vu32.b,$Vv32.b)",
37419 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37420 let Inst{7-5} = 0b101;
37421 let Inst{13-13} = 0b0;
37422 let Inst{31-21} = 0b00011100010;
37423 let hasNewValue = 1;
37424 let opNewValue = 0;
37425 let isCVI = 1;
37426 let DecoderNamespace = "EXT_mmvec";
37428 def V6_vsubb_alt : HInst<
37429 (outs HvxVR:$Vd32),
37430 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37431 "$Vd32 = vsubb($Vu32,$Vv32)",
37432 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37433 let hasNewValue = 1;
37434 let opNewValue = 0;
37435 let isCVI = 1;
37436 let isPseudo = 1;
37437 let isCodeGenOnly = 1;
37438 let DecoderNamespace = "EXT_mmvec";
37440 def V6_vsubb_dv : HInst<
37441 (outs HvxWR:$Vdd32),
37442 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37443 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
37444 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
37445 let Inst{7-5} = 0b011;
37446 let Inst{13-13} = 0b0;
37447 let Inst{31-21} = 0b00011100100;
37448 let hasNewValue = 1;
37449 let opNewValue = 0;
37450 let isCVI = 1;
37451 let DecoderNamespace = "EXT_mmvec";
37453 def V6_vsubb_dv_alt : HInst<
37454 (outs HvxWR:$Vdd32),
37455 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37456 "$Vdd32 = vsubb($Vuu32,$Vvv32)",
37457 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37458 let hasNewValue = 1;
37459 let opNewValue = 0;
37460 let isCVI = 1;
37461 let isPseudo = 1;
37462 let isCodeGenOnly = 1;
37463 let DecoderNamespace = "EXT_mmvec";
37465 def V6_vsubbnq : HInst<
37466 (outs HvxVR:$Vx32),
37467 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37468 "if (!$Qv4) $Vx32.b -= $Vu32.b",
37469 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
37470 let Inst{7-5} = 0b001;
37471 let Inst{13-13} = 0b1;
37472 let Inst{21-16} = 0b000010;
37473 let Inst{31-24} = 0b00011110;
37474 let hasNewValue = 1;
37475 let opNewValue = 0;
37476 let isCVI = 1;
37477 let DecoderNamespace = "EXT_mmvec";
37478 let Constraints = "$Vx32 = $Vx32in";
37480 def V6_vsubbnq_alt : HInst<
37481 (outs HvxVR:$Vx32),
37482 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37483 "if (!$Qv4.b) $Vx32.b -= $Vu32.b",
37484 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37485 let hasNewValue = 1;
37486 let opNewValue = 0;
37487 let isCVI = 1;
37488 let isPseudo = 1;
37489 let isCodeGenOnly = 1;
37490 let DecoderNamespace = "EXT_mmvec";
37491 let Constraints = "$Vx32 = $Vx32in";
37493 def V6_vsubbq : HInst<
37494 (outs HvxVR:$Vx32),
37495 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37496 "if ($Qv4) $Vx32.b -= $Vu32.b",
37497 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
37498 let Inst{7-5} = 0b110;
37499 let Inst{13-13} = 0b1;
37500 let Inst{21-16} = 0b000001;
37501 let Inst{31-24} = 0b00011110;
37502 let hasNewValue = 1;
37503 let opNewValue = 0;
37504 let isCVI = 1;
37505 let DecoderNamespace = "EXT_mmvec";
37506 let Constraints = "$Vx32 = $Vx32in";
37508 def V6_vsubbq_alt : HInst<
37509 (outs HvxVR:$Vx32),
37510 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37511 "if ($Qv4.b) $Vx32.b -= $Vu32.b",
37512 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37513 let hasNewValue = 1;
37514 let opNewValue = 0;
37515 let isCVI = 1;
37516 let isPseudo = 1;
37517 let isCodeGenOnly = 1;
37518 let DecoderNamespace = "EXT_mmvec";
37519 let Constraints = "$Vx32 = $Vx32in";
37521 def V6_vsubbsat : HInst<
37522 (outs HvxVR:$Vd32),
37523 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37524 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
37525 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
37526 let Inst{7-5} = 0b010;
37527 let Inst{13-13} = 0b0;
37528 let Inst{31-21} = 0b00011111001;
37529 let hasNewValue = 1;
37530 let opNewValue = 0;
37531 let isCVI = 1;
37532 let DecoderNamespace = "EXT_mmvec";
37534 def V6_vsubbsat_alt : HInst<
37535 (outs HvxVR:$Vd32),
37536 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37537 "$Vd32 = vsubb($Vu32,$Vv32):sat",
37538 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37539 let hasNewValue = 1;
37540 let opNewValue = 0;
37541 let isCVI = 1;
37542 let isPseudo = 1;
37543 let isCodeGenOnly = 1;
37544 let DecoderNamespace = "EXT_mmvec";
37546 def V6_vsubbsat_dv : HInst<
37547 (outs HvxWR:$Vdd32),
37548 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37549 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
37550 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
37551 let Inst{7-5} = 0b001;
37552 let Inst{13-13} = 0b0;
37553 let Inst{31-21} = 0b00011110101;
37554 let hasNewValue = 1;
37555 let opNewValue = 0;
37556 let isCVI = 1;
37557 let DecoderNamespace = "EXT_mmvec";
37559 def V6_vsubbsat_dv_alt : HInst<
37560 (outs HvxWR:$Vdd32),
37561 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37562 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
37563 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37564 let hasNewValue = 1;
37565 let opNewValue = 0;
37566 let isCVI = 1;
37567 let isPseudo = 1;
37568 let isCodeGenOnly = 1;
37569 let DecoderNamespace = "EXT_mmvec";
37571 def V6_vsubcarry : HInst<
37572 (outs HvxVR:$Vd32, HvxQR:$Qx4),
37573 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
37574 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
37575 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
37576 let Inst{7-7} = 0b1;
37577 let Inst{13-13} = 0b1;
37578 let Inst{31-21} = 0b00011100101;
37579 let hasNewValue = 1;
37580 let opNewValue = 0;
37581 let isCVI = 1;
37582 let DecoderNamespace = "EXT_mmvec";
37583 let Constraints = "$Qx4 = $Qx4in";
37585 def V6_vsubcarryo : HInst<
37586 (outs HvxVR:$Vd32, HvxQR:$Qe4),
37587 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37588 "$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
37589 tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
37590 let Inst{7-7} = 0b1;
37591 let Inst{13-13} = 0b1;
37592 let Inst{31-21} = 0b00011101101;
37593 let hasNewValue = 1;
37594 let opNewValue = 0;
37595 let hasNewValue2 = 1;
37596 let opNewValue2 = 1;
37597 let isCVI = 1;
37598 let DecoderNamespace = "EXT_mmvec";
37600 def V6_vsubh : HInst<
37601 (outs HvxVR:$Vd32),
37602 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37603 "$Vd32.h = vsub($Vu32.h,$Vv32.h)",
37604 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37605 let Inst{7-5} = 0b110;
37606 let Inst{13-13} = 0b0;
37607 let Inst{31-21} = 0b00011100010;
37608 let hasNewValue = 1;
37609 let opNewValue = 0;
37610 let isCVI = 1;
37611 let DecoderNamespace = "EXT_mmvec";
37613 def V6_vsubh_alt : HInst<
37614 (outs HvxVR:$Vd32),
37615 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37616 "$Vd32 = vsubh($Vu32,$Vv32)",
37617 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37618 let hasNewValue = 1;
37619 let opNewValue = 0;
37620 let isCVI = 1;
37621 let isPseudo = 1;
37622 let isCodeGenOnly = 1;
37623 let DecoderNamespace = "EXT_mmvec";
37625 def V6_vsubh_dv : HInst<
37626 (outs HvxWR:$Vdd32),
37627 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37628 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
37629 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
37630 let Inst{7-5} = 0b100;
37631 let Inst{13-13} = 0b0;
37632 let Inst{31-21} = 0b00011100100;
37633 let hasNewValue = 1;
37634 let opNewValue = 0;
37635 let isCVI = 1;
37636 let DecoderNamespace = "EXT_mmvec";
37638 def V6_vsubh_dv_alt : HInst<
37639 (outs HvxWR:$Vdd32),
37640 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37641 "$Vdd32 = vsubh($Vuu32,$Vvv32)",
37642 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37643 let hasNewValue = 1;
37644 let opNewValue = 0;
37645 let isCVI = 1;
37646 let isPseudo = 1;
37647 let isCodeGenOnly = 1;
37648 let DecoderNamespace = "EXT_mmvec";
37650 def V6_vsubhnq : HInst<
37651 (outs HvxVR:$Vx32),
37652 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37653 "if (!$Qv4) $Vx32.h -= $Vu32.h",
37654 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
37655 let Inst{7-5} = 0b010;
37656 let Inst{13-13} = 0b1;
37657 let Inst{21-16} = 0b000010;
37658 let Inst{31-24} = 0b00011110;
37659 let hasNewValue = 1;
37660 let opNewValue = 0;
37661 let isCVI = 1;
37662 let DecoderNamespace = "EXT_mmvec";
37663 let Constraints = "$Vx32 = $Vx32in";
37665 def V6_vsubhnq_alt : HInst<
37666 (outs HvxVR:$Vx32),
37667 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37668 "if (!$Qv4.h) $Vx32.h -= $Vu32.h",
37669 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37670 let hasNewValue = 1;
37671 let opNewValue = 0;
37672 let isCVI = 1;
37673 let isPseudo = 1;
37674 let isCodeGenOnly = 1;
37675 let DecoderNamespace = "EXT_mmvec";
37676 let Constraints = "$Vx32 = $Vx32in";
37678 def V6_vsubhq : HInst<
37679 (outs HvxVR:$Vx32),
37680 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37681 "if ($Qv4) $Vx32.h -= $Vu32.h",
37682 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
37683 let Inst{7-5} = 0b111;
37684 let Inst{13-13} = 0b1;
37685 let Inst{21-16} = 0b000001;
37686 let Inst{31-24} = 0b00011110;
37687 let hasNewValue = 1;
37688 let opNewValue = 0;
37689 let isCVI = 1;
37690 let DecoderNamespace = "EXT_mmvec";
37691 let Constraints = "$Vx32 = $Vx32in";
37693 def V6_vsubhq_alt : HInst<
37694 (outs HvxVR:$Vx32),
37695 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
37696 "if ($Qv4.h) $Vx32.h -= $Vu32.h",
37697 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37698 let hasNewValue = 1;
37699 let opNewValue = 0;
37700 let isCVI = 1;
37701 let isPseudo = 1;
37702 let isCodeGenOnly = 1;
37703 let DecoderNamespace = "EXT_mmvec";
37704 let Constraints = "$Vx32 = $Vx32in";
37706 def V6_vsubhsat : HInst<
37707 (outs HvxVR:$Vd32),
37708 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37709 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
37710 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37711 let Inst{7-5} = 0b010;
37712 let Inst{13-13} = 0b0;
37713 let Inst{31-21} = 0b00011100011;
37714 let hasNewValue = 1;
37715 let opNewValue = 0;
37716 let isCVI = 1;
37717 let DecoderNamespace = "EXT_mmvec";
37719 def V6_vsubhsat_alt : HInst<
37720 (outs HvxVR:$Vd32),
37721 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37722 "$Vd32 = vsubh($Vu32,$Vv32):sat",
37723 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37724 let hasNewValue = 1;
37725 let opNewValue = 0;
37726 let isCVI = 1;
37727 let isPseudo = 1;
37728 let isCodeGenOnly = 1;
37729 let DecoderNamespace = "EXT_mmvec";
37731 def V6_vsubhsat_dv : HInst<
37732 (outs HvxWR:$Vdd32),
37733 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37734 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
37735 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
37736 let Inst{7-5} = 0b000;
37737 let Inst{13-13} = 0b0;
37738 let Inst{31-21} = 0b00011100101;
37739 let hasNewValue = 1;
37740 let opNewValue = 0;
37741 let isCVI = 1;
37742 let DecoderNamespace = "EXT_mmvec";
37744 def V6_vsubhsat_dv_alt : HInst<
37745 (outs HvxWR:$Vdd32),
37746 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37747 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
37748 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37749 let hasNewValue = 1;
37750 let opNewValue = 0;
37751 let isCVI = 1;
37752 let isPseudo = 1;
37753 let isCodeGenOnly = 1;
37754 let DecoderNamespace = "EXT_mmvec";
37756 def V6_vsubhw : HInst<
37757 (outs HvxWR:$Vdd32),
37758 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37759 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
37760 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
37761 let Inst{7-5} = 0b111;
37762 let Inst{13-13} = 0b0;
37763 let Inst{31-21} = 0b00011100101;
37764 let hasNewValue = 1;
37765 let opNewValue = 0;
37766 let isCVI = 1;
37767 let DecoderNamespace = "EXT_mmvec";
37769 def V6_vsubhw_alt : HInst<
37770 (outs HvxWR:$Vdd32),
37771 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37772 "$Vdd32 = vsubh($Vu32,$Vv32)",
37773 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37774 let hasNewValue = 1;
37775 let opNewValue = 0;
37776 let isCVI = 1;
37777 let isPseudo = 1;
37778 let isCodeGenOnly = 1;
37779 let DecoderNamespace = "EXT_mmvec";
37781 def V6_vsububh : HInst<
37782 (outs HvxWR:$Vdd32),
37783 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37784 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
37785 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
37786 let Inst{7-5} = 0b101;
37787 let Inst{13-13} = 0b0;
37788 let Inst{31-21} = 0b00011100101;
37789 let hasNewValue = 1;
37790 let opNewValue = 0;
37791 let isCVI = 1;
37792 let DecoderNamespace = "EXT_mmvec";
37794 def V6_vsububh_alt : HInst<
37795 (outs HvxWR:$Vdd32),
37796 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37797 "$Vdd32 = vsubub($Vu32,$Vv32)",
37798 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37799 let hasNewValue = 1;
37800 let opNewValue = 0;
37801 let isCVI = 1;
37802 let isPseudo = 1;
37803 let isCodeGenOnly = 1;
37804 let DecoderNamespace = "EXT_mmvec";
37806 def V6_vsububsat : HInst<
37807 (outs HvxVR:$Vd32),
37808 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37809 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
37810 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37811 let Inst{7-5} = 0b000;
37812 let Inst{13-13} = 0b0;
37813 let Inst{31-21} = 0b00011100011;
37814 let hasNewValue = 1;
37815 let opNewValue = 0;
37816 let isCVI = 1;
37817 let DecoderNamespace = "EXT_mmvec";
37819 def V6_vsububsat_alt : HInst<
37820 (outs HvxVR:$Vd32),
37821 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37822 "$Vd32 = vsubub($Vu32,$Vv32):sat",
37823 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37824 let hasNewValue = 1;
37825 let opNewValue = 0;
37826 let isCVI = 1;
37827 let isPseudo = 1;
37828 let isCodeGenOnly = 1;
37829 let DecoderNamespace = "EXT_mmvec";
37831 def V6_vsububsat_dv : HInst<
37832 (outs HvxWR:$Vdd32),
37833 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37834 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
37835 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
37836 let Inst{7-5} = 0b110;
37837 let Inst{13-13} = 0b0;
37838 let Inst{31-21} = 0b00011100100;
37839 let hasNewValue = 1;
37840 let opNewValue = 0;
37841 let isCVI = 1;
37842 let DecoderNamespace = "EXT_mmvec";
37844 def V6_vsububsat_dv_alt : HInst<
37845 (outs HvxWR:$Vdd32),
37846 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37847 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
37848 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37849 let hasNewValue = 1;
37850 let opNewValue = 0;
37851 let isCVI = 1;
37852 let isPseudo = 1;
37853 let isCodeGenOnly = 1;
37854 let DecoderNamespace = "EXT_mmvec";
37856 def V6_vsubububb_sat : HInst<
37857 (outs HvxVR:$Vd32),
37858 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37859 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
37860 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
37861 let Inst{7-5} = 0b101;
37862 let Inst{13-13} = 0b0;
37863 let Inst{31-21} = 0b00011110101;
37864 let hasNewValue = 1;
37865 let opNewValue = 0;
37866 let isCVI = 1;
37867 let DecoderNamespace = "EXT_mmvec";
37869 def V6_vsubuhsat : HInst<
37870 (outs HvxVR:$Vd32),
37871 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37872 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
37873 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37874 let Inst{7-5} = 0b001;
37875 let Inst{13-13} = 0b0;
37876 let Inst{31-21} = 0b00011100011;
37877 let hasNewValue = 1;
37878 let opNewValue = 0;
37879 let isCVI = 1;
37880 let DecoderNamespace = "EXT_mmvec";
37882 def V6_vsubuhsat_alt : HInst<
37883 (outs HvxVR:$Vd32),
37884 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37885 "$Vd32 = vsubuh($Vu32,$Vv32):sat",
37886 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37887 let hasNewValue = 1;
37888 let opNewValue = 0;
37889 let isCVI = 1;
37890 let isPseudo = 1;
37891 let isCodeGenOnly = 1;
37892 let DecoderNamespace = "EXT_mmvec";
37894 def V6_vsubuhsat_dv : HInst<
37895 (outs HvxWR:$Vdd32),
37896 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37897 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
37898 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
37899 let Inst{7-5} = 0b111;
37900 let Inst{13-13} = 0b0;
37901 let Inst{31-21} = 0b00011100100;
37902 let hasNewValue = 1;
37903 let opNewValue = 0;
37904 let isCVI = 1;
37905 let DecoderNamespace = "EXT_mmvec";
37907 def V6_vsubuhsat_dv_alt : HInst<
37908 (outs HvxWR:$Vdd32),
37909 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37910 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
37911 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37912 let hasNewValue = 1;
37913 let opNewValue = 0;
37914 let isCVI = 1;
37915 let isPseudo = 1;
37916 let isCodeGenOnly = 1;
37917 let DecoderNamespace = "EXT_mmvec";
37919 def V6_vsubuhw : HInst<
37920 (outs HvxWR:$Vdd32),
37921 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37922 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
37923 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
37924 let Inst{7-5} = 0b110;
37925 let Inst{13-13} = 0b0;
37926 let Inst{31-21} = 0b00011100101;
37927 let hasNewValue = 1;
37928 let opNewValue = 0;
37929 let isCVI = 1;
37930 let DecoderNamespace = "EXT_mmvec";
37932 def V6_vsubuhw_alt : HInst<
37933 (outs HvxWR:$Vdd32),
37934 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37935 "$Vdd32 = vsubuh($Vu32,$Vv32)",
37936 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37937 let hasNewValue = 1;
37938 let opNewValue = 0;
37939 let isCVI = 1;
37940 let isPseudo = 1;
37941 let isCodeGenOnly = 1;
37942 let DecoderNamespace = "EXT_mmvec";
37944 def V6_vsubuwsat : HInst<
37945 (outs HvxVR:$Vd32),
37946 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37947 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
37948 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
37949 let Inst{7-5} = 0b100;
37950 let Inst{13-13} = 0b0;
37951 let Inst{31-21} = 0b00011111110;
37952 let hasNewValue = 1;
37953 let opNewValue = 0;
37954 let isCVI = 1;
37955 let DecoderNamespace = "EXT_mmvec";
37957 def V6_vsubuwsat_alt : HInst<
37958 (outs HvxVR:$Vd32),
37959 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37960 "$Vd32 = vsubuw($Vu32,$Vv32):sat",
37961 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37962 let hasNewValue = 1;
37963 let opNewValue = 0;
37964 let isCVI = 1;
37965 let isPseudo = 1;
37966 let isCodeGenOnly = 1;
37967 let DecoderNamespace = "EXT_mmvec";
37969 def V6_vsubuwsat_dv : HInst<
37970 (outs HvxWR:$Vdd32),
37971 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37972 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
37973 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
37974 let Inst{7-5} = 0b011;
37975 let Inst{13-13} = 0b0;
37976 let Inst{31-21} = 0b00011110101;
37977 let hasNewValue = 1;
37978 let opNewValue = 0;
37979 let isCVI = 1;
37980 let DecoderNamespace = "EXT_mmvec";
37982 def V6_vsubuwsat_dv_alt : HInst<
37983 (outs HvxWR:$Vdd32),
37984 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
37985 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
37986 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
37987 let hasNewValue = 1;
37988 let opNewValue = 0;
37989 let isCVI = 1;
37990 let isPseudo = 1;
37991 let isCodeGenOnly = 1;
37992 let DecoderNamespace = "EXT_mmvec";
37994 def V6_vsubw : HInst<
37995 (outs HvxVR:$Vd32),
37996 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37997 "$Vd32.w = vsub($Vu32.w,$Vv32.w)",
37998 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37999 let Inst{7-5} = 0b111;
38000 let Inst{13-13} = 0b0;
38001 let Inst{31-21} = 0b00011100010;
38002 let hasNewValue = 1;
38003 let opNewValue = 0;
38004 let isCVI = 1;
38005 let DecoderNamespace = "EXT_mmvec";
38007 def V6_vsubw_alt : HInst<
38008 (outs HvxVR:$Vd32),
38009 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38010 "$Vd32 = vsubw($Vu32,$Vv32)",
38011 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38012 let hasNewValue = 1;
38013 let opNewValue = 0;
38014 let isCVI = 1;
38015 let isPseudo = 1;
38016 let isCodeGenOnly = 1;
38017 let DecoderNamespace = "EXT_mmvec";
38019 def V6_vsubw_dv : HInst<
38020 (outs HvxWR:$Vdd32),
38021 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38022 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
38023 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38024 let Inst{7-5} = 0b101;
38025 let Inst{13-13} = 0b0;
38026 let Inst{31-21} = 0b00011100100;
38027 let hasNewValue = 1;
38028 let opNewValue = 0;
38029 let isCVI = 1;
38030 let DecoderNamespace = "EXT_mmvec";
38032 def V6_vsubw_dv_alt : HInst<
38033 (outs HvxWR:$Vdd32),
38034 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38035 "$Vdd32 = vsubw($Vuu32,$Vvv32)",
38036 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38037 let hasNewValue = 1;
38038 let opNewValue = 0;
38039 let isCVI = 1;
38040 let isPseudo = 1;
38041 let isCodeGenOnly = 1;
38042 let DecoderNamespace = "EXT_mmvec";
38044 def V6_vsubwnq : HInst<
38045 (outs HvxVR:$Vx32),
38046 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38047 "if (!$Qv4) $Vx32.w -= $Vu32.w",
38048 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38049 let Inst{7-5} = 0b011;
38050 let Inst{13-13} = 0b1;
38051 let Inst{21-16} = 0b000010;
38052 let Inst{31-24} = 0b00011110;
38053 let hasNewValue = 1;
38054 let opNewValue = 0;
38055 let isCVI = 1;
38056 let DecoderNamespace = "EXT_mmvec";
38057 let Constraints = "$Vx32 = $Vx32in";
38059 def V6_vsubwnq_alt : HInst<
38060 (outs HvxVR:$Vx32),
38061 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38062 "if (!$Qv4.w) $Vx32.w -= $Vu32.w",
38063 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38064 let hasNewValue = 1;
38065 let opNewValue = 0;
38066 let isCVI = 1;
38067 let isPseudo = 1;
38068 let isCodeGenOnly = 1;
38069 let DecoderNamespace = "EXT_mmvec";
38070 let Constraints = "$Vx32 = $Vx32in";
38072 def V6_vsubwq : HInst<
38073 (outs HvxVR:$Vx32),
38074 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38075 "if ($Qv4) $Vx32.w -= $Vu32.w",
38076 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
38077 let Inst{7-5} = 0b000;
38078 let Inst{13-13} = 0b1;
38079 let Inst{21-16} = 0b000010;
38080 let Inst{31-24} = 0b00011110;
38081 let hasNewValue = 1;
38082 let opNewValue = 0;
38083 let isCVI = 1;
38084 let DecoderNamespace = "EXT_mmvec";
38085 let Constraints = "$Vx32 = $Vx32in";
38087 def V6_vsubwq_alt : HInst<
38088 (outs HvxVR:$Vx32),
38089 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
38090 "if ($Qv4.w) $Vx32.w -= $Vu32.w",
38091 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38092 let hasNewValue = 1;
38093 let opNewValue = 0;
38094 let isCVI = 1;
38095 let isPseudo = 1;
38096 let isCodeGenOnly = 1;
38097 let DecoderNamespace = "EXT_mmvec";
38098 let Constraints = "$Vx32 = $Vx32in";
38100 def V6_vsubwsat : HInst<
38101 (outs HvxVR:$Vd32),
38102 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38103 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
38104 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38105 let Inst{7-5} = 0b011;
38106 let Inst{13-13} = 0b0;
38107 let Inst{31-21} = 0b00011100011;
38108 let hasNewValue = 1;
38109 let opNewValue = 0;
38110 let isCVI = 1;
38111 let DecoderNamespace = "EXT_mmvec";
38113 def V6_vsubwsat_alt : HInst<
38114 (outs HvxVR:$Vd32),
38115 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38116 "$Vd32 = vsubw($Vu32,$Vv32):sat",
38117 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38118 let hasNewValue = 1;
38119 let opNewValue = 0;
38120 let isCVI = 1;
38121 let isPseudo = 1;
38122 let isCodeGenOnly = 1;
38123 let DecoderNamespace = "EXT_mmvec";
38125 def V6_vsubwsat_dv : HInst<
38126 (outs HvxWR:$Vdd32),
38127 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38128 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
38129 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
38130 let Inst{7-5} = 0b001;
38131 let Inst{13-13} = 0b0;
38132 let Inst{31-21} = 0b00011100101;
38133 let hasNewValue = 1;
38134 let opNewValue = 0;
38135 let isCVI = 1;
38136 let DecoderNamespace = "EXT_mmvec";
38138 def V6_vsubwsat_dv_alt : HInst<
38139 (outs HvxWR:$Vdd32),
38140 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
38141 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
38142 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38143 let hasNewValue = 1;
38144 let opNewValue = 0;
38145 let isCVI = 1;
38146 let isPseudo = 1;
38147 let isCodeGenOnly = 1;
38148 let DecoderNamespace = "EXT_mmvec";
38150 def V6_vswap : HInst<
38151 (outs HvxWR:$Vdd32),
38152 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
38153 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
38154 tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
38155 let Inst{7-7} = 0b0;
38156 let Inst{13-13} = 0b1;
38157 let Inst{31-21} = 0b00011110101;
38158 let hasNewValue = 1;
38159 let opNewValue = 0;
38160 let isCVI = 1;
38161 let DecoderNamespace = "EXT_mmvec";
38163 def V6_vtmpyb : HInst<
38164 (outs HvxWR:$Vdd32),
38165 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38166 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
38167 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
38168 let Inst{7-5} = 0b000;
38169 let Inst{13-13} = 0b0;
38170 let Inst{31-21} = 0b00011001000;
38171 let hasNewValue = 1;
38172 let opNewValue = 0;
38173 let isCVI = 1;
38174 let DecoderNamespace = "EXT_mmvec";
38176 def V6_vtmpyb_acc : HInst<
38177 (outs HvxWR:$Vxx32),
38178 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38179 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
38180 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
38181 let Inst{7-5} = 0b000;
38182 let Inst{13-13} = 0b1;
38183 let Inst{31-21} = 0b00011001000;
38184 let hasNewValue = 1;
38185 let opNewValue = 0;
38186 let isAccumulator = 1;
38187 let isCVI = 1;
38188 let DecoderNamespace = "EXT_mmvec";
38189 let Constraints = "$Vxx32 = $Vxx32in";
38191 def V6_vtmpyb_acc_alt : HInst<
38192 (outs HvxWR:$Vxx32),
38193 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38194 "$Vxx32 += vtmpyb($Vuu32,$Rt32)",
38195 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38196 let hasNewValue = 1;
38197 let opNewValue = 0;
38198 let isAccumulator = 1;
38199 let isCVI = 1;
38200 let isPseudo = 1;
38201 let isCodeGenOnly = 1;
38202 let DecoderNamespace = "EXT_mmvec";
38203 let Constraints = "$Vxx32 = $Vxx32in";
38205 def V6_vtmpyb_alt : HInst<
38206 (outs HvxWR:$Vdd32),
38207 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38208 "$Vdd32 = vtmpyb($Vuu32,$Rt32)",
38209 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38210 let hasNewValue = 1;
38211 let opNewValue = 0;
38212 let isCVI = 1;
38213 let isPseudo = 1;
38214 let isCodeGenOnly = 1;
38215 let DecoderNamespace = "EXT_mmvec";
38217 def V6_vtmpybus : HInst<
38218 (outs HvxWR:$Vdd32),
38219 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38220 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
38221 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
38222 let Inst{7-5} = 0b001;
38223 let Inst{13-13} = 0b0;
38224 let Inst{31-21} = 0b00011001000;
38225 let hasNewValue = 1;
38226 let opNewValue = 0;
38227 let isCVI = 1;
38228 let DecoderNamespace = "EXT_mmvec";
38230 def V6_vtmpybus_acc : HInst<
38231 (outs HvxWR:$Vxx32),
38232 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38233 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
38234 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
38235 let Inst{7-5} = 0b001;
38236 let Inst{13-13} = 0b1;
38237 let Inst{31-21} = 0b00011001000;
38238 let hasNewValue = 1;
38239 let opNewValue = 0;
38240 let isAccumulator = 1;
38241 let isCVI = 1;
38242 let DecoderNamespace = "EXT_mmvec";
38243 let Constraints = "$Vxx32 = $Vxx32in";
38245 def V6_vtmpybus_acc_alt : HInst<
38246 (outs HvxWR:$Vxx32),
38247 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38248 "$Vxx32 += vtmpybus($Vuu32,$Rt32)",
38249 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38250 let hasNewValue = 1;
38251 let opNewValue = 0;
38252 let isAccumulator = 1;
38253 let isCVI = 1;
38254 let isPseudo = 1;
38255 let isCodeGenOnly = 1;
38256 let DecoderNamespace = "EXT_mmvec";
38257 let Constraints = "$Vxx32 = $Vxx32in";
38259 def V6_vtmpybus_alt : HInst<
38260 (outs HvxWR:$Vdd32),
38261 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38262 "$Vdd32 = vtmpybus($Vuu32,$Rt32)",
38263 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38264 let hasNewValue = 1;
38265 let opNewValue = 0;
38266 let isCVI = 1;
38267 let isPseudo = 1;
38268 let isCodeGenOnly = 1;
38269 let DecoderNamespace = "EXT_mmvec";
38271 def V6_vtmpyhb : HInst<
38272 (outs HvxWR:$Vdd32),
38273 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38274 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
38275 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
38276 let Inst{7-5} = 0b100;
38277 let Inst{13-13} = 0b0;
38278 let Inst{31-21} = 0b00011001101;
38279 let hasNewValue = 1;
38280 let opNewValue = 0;
38281 let isCVI = 1;
38282 let DecoderNamespace = "EXT_mmvec";
38284 def V6_vtmpyhb_acc : HInst<
38285 (outs HvxWR:$Vxx32),
38286 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38287 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
38288 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
38289 let Inst{7-5} = 0b010;
38290 let Inst{13-13} = 0b1;
38291 let Inst{31-21} = 0b00011001000;
38292 let hasNewValue = 1;
38293 let opNewValue = 0;
38294 let isAccumulator = 1;
38295 let isCVI = 1;
38296 let DecoderNamespace = "EXT_mmvec";
38297 let Constraints = "$Vxx32 = $Vxx32in";
38299 def V6_vtmpyhb_acc_alt : HInst<
38300 (outs HvxWR:$Vxx32),
38301 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
38302 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
38303 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38304 let hasNewValue = 1;
38305 let opNewValue = 0;
38306 let isAccumulator = 1;
38307 let isCVI = 1;
38308 let isPseudo = 1;
38309 let isCodeGenOnly = 1;
38310 let DecoderNamespace = "EXT_mmvec";
38311 let Constraints = "$Vxx32 = $Vxx32in";
38313 def V6_vtmpyhb_alt : HInst<
38314 (outs HvxWR:$Vdd32),
38315 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
38316 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
38317 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38318 let hasNewValue = 1;
38319 let opNewValue = 0;
38320 let isCVI = 1;
38321 let isPseudo = 1;
38322 let isCodeGenOnly = 1;
38323 let DecoderNamespace = "EXT_mmvec";
38325 def V6_vtran2x2_map : HInst<
38326 (outs HvxVR:$Vy32, HvxVR:$Vx32),
38327 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
38328 "vtrans2x2($Vy32,$Vx32,$Rt32)",
38329 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38330 let hasNewValue = 1;
38331 let opNewValue = 0;
38332 let hasNewValue2 = 1;
38333 let opNewValue2 = 1;
38334 let isCVI = 1;
38335 let isPseudo = 1;
38336 let isCodeGenOnly = 1;
38337 let DecoderNamespace = "EXT_mmvec";
38338 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
38340 def V6_vunpackb : HInst<
38341 (outs HvxWR:$Vdd32),
38342 (ins HvxVR:$Vu32),
38343 "$Vdd32.h = vunpack($Vu32.b)",
38344 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
38345 let Inst{7-5} = 0b010;
38346 let Inst{13-13} = 0b0;
38347 let Inst{31-16} = 0b0001111000000001;
38348 let hasNewValue = 1;
38349 let opNewValue = 0;
38350 let isCVI = 1;
38351 let DecoderNamespace = "EXT_mmvec";
38353 def V6_vunpackb_alt : HInst<
38354 (outs HvxWR:$Vdd32),
38355 (ins HvxVR:$Vu32),
38356 "$Vdd32 = vunpackb($Vu32)",
38357 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38358 let hasNewValue = 1;
38359 let opNewValue = 0;
38360 let isCVI = 1;
38361 let isPseudo = 1;
38362 let isCodeGenOnly = 1;
38363 let DecoderNamespace = "EXT_mmvec";
38365 def V6_vunpackh : HInst<
38366 (outs HvxWR:$Vdd32),
38367 (ins HvxVR:$Vu32),
38368 "$Vdd32.w = vunpack($Vu32.h)",
38369 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
38370 let Inst{7-5} = 0b011;
38371 let Inst{13-13} = 0b0;
38372 let Inst{31-16} = 0b0001111000000001;
38373 let hasNewValue = 1;
38374 let opNewValue = 0;
38375 let isCVI = 1;
38376 let DecoderNamespace = "EXT_mmvec";
38378 def V6_vunpackh_alt : HInst<
38379 (outs HvxWR:$Vdd32),
38380 (ins HvxVR:$Vu32),
38381 "$Vdd32 = vunpackh($Vu32)",
38382 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38383 let hasNewValue = 1;
38384 let opNewValue = 0;
38385 let isCVI = 1;
38386 let isPseudo = 1;
38387 let isCodeGenOnly = 1;
38388 let DecoderNamespace = "EXT_mmvec";
38390 def V6_vunpackob : HInst<
38391 (outs HvxWR:$Vxx32),
38392 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
38393 "$Vxx32.h |= vunpacko($Vu32.b)",
38394 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
38395 let Inst{7-5} = 0b000;
38396 let Inst{13-13} = 0b1;
38397 let Inst{31-16} = 0b0001111000000000;
38398 let hasNewValue = 1;
38399 let opNewValue = 0;
38400 let isAccumulator = 1;
38401 let isCVI = 1;
38402 let DecoderNamespace = "EXT_mmvec";
38403 let Constraints = "$Vxx32 = $Vxx32in";
38405 def V6_vunpackob_alt : HInst<
38406 (outs HvxWR:$Vxx32),
38407 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
38408 "$Vxx32 |= vunpackob($Vu32)",
38409 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38410 let hasNewValue = 1;
38411 let opNewValue = 0;
38412 let isAccumulator = 1;
38413 let isCVI = 1;
38414 let isPseudo = 1;
38415 let DecoderNamespace = "EXT_mmvec";
38416 let Constraints = "$Vxx32 = $Vxx32in";
38418 def V6_vunpackoh : HInst<
38419 (outs HvxWR:$Vxx32),
38420 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
38421 "$Vxx32.w |= vunpacko($Vu32.h)",
38422 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
38423 let Inst{7-5} = 0b001;
38424 let Inst{13-13} = 0b1;
38425 let Inst{31-16} = 0b0001111000000000;
38426 let hasNewValue = 1;
38427 let opNewValue = 0;
38428 let isAccumulator = 1;
38429 let isCVI = 1;
38430 let DecoderNamespace = "EXT_mmvec";
38431 let Constraints = "$Vxx32 = $Vxx32in";
38433 def V6_vunpackoh_alt : HInst<
38434 (outs HvxWR:$Vxx32),
38435 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
38436 "$Vxx32 |= vunpackoh($Vu32)",
38437 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38438 let hasNewValue = 1;
38439 let opNewValue = 0;
38440 let isAccumulator = 1;
38441 let isCVI = 1;
38442 let isPseudo = 1;
38443 let isCodeGenOnly = 1;
38444 let DecoderNamespace = "EXT_mmvec";
38445 let Constraints = "$Vxx32 = $Vxx32in";
38447 def V6_vunpackub : HInst<
38448 (outs HvxWR:$Vdd32),
38449 (ins HvxVR:$Vu32),
38450 "$Vdd32.uh = vunpack($Vu32.ub)",
38451 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
38452 let Inst{7-5} = 0b000;
38453 let Inst{13-13} = 0b0;
38454 let Inst{31-16} = 0b0001111000000001;
38455 let hasNewValue = 1;
38456 let opNewValue = 0;
38457 let isCVI = 1;
38458 let DecoderNamespace = "EXT_mmvec";
38460 def V6_vunpackub_alt : HInst<
38461 (outs HvxWR:$Vdd32),
38462 (ins HvxVR:$Vu32),
38463 "$Vdd32 = vunpackub($Vu32)",
38464 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38465 let hasNewValue = 1;
38466 let opNewValue = 0;
38467 let isCVI = 1;
38468 let isPseudo = 1;
38469 let isCodeGenOnly = 1;
38470 let DecoderNamespace = "EXT_mmvec";
38472 def V6_vunpackuh : HInst<
38473 (outs HvxWR:$Vdd32),
38474 (ins HvxVR:$Vu32),
38475 "$Vdd32.uw = vunpack($Vu32.uh)",
38476 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
38477 let Inst{7-5} = 0b001;
38478 let Inst{13-13} = 0b0;
38479 let Inst{31-16} = 0b0001111000000001;
38480 let hasNewValue = 1;
38481 let opNewValue = 0;
38482 let isCVI = 1;
38483 let DecoderNamespace = "EXT_mmvec";
38485 def V6_vunpackuh_alt : HInst<
38486 (outs HvxWR:$Vdd32),
38487 (ins HvxVR:$Vu32),
38488 "$Vdd32 = vunpackuh($Vu32)",
38489 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38490 let hasNewValue = 1;
38491 let opNewValue = 0;
38492 let isCVI = 1;
38493 let isPseudo = 1;
38494 let isCodeGenOnly = 1;
38495 let DecoderNamespace = "EXT_mmvec";
38497 def V6_vwhist128 : HInst<
38498 (outs),
38499 (ins),
38500 "vwhist128",
38501 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
38502 let Inst{13-0} = 0b10010010000000;
38503 let Inst{31-16} = 0b0001111000000000;
38504 let isCVI = 1;
38505 let DecoderNamespace = "EXT_mmvec";
38507 def V6_vwhist128m : HInst<
38508 (outs),
38509 (ins u1_0Imm:$Ii),
38510 "vwhist128(#$Ii)",
38511 tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
38512 let Inst{7-0} = 0b10000000;
38513 let Inst{13-9} = 0b10011;
38514 let Inst{31-16} = 0b0001111000000000;
38515 let isCVI = 1;
38516 let DecoderNamespace = "EXT_mmvec";
38518 def V6_vwhist128q : HInst<
38519 (outs),
38520 (ins HvxQR:$Qv4),
38521 "vwhist128($Qv4)",
38522 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
38523 let Inst{13-0} = 0b10010010000000;
38524 let Inst{21-16} = 0b000010;
38525 let Inst{31-24} = 0b00011110;
38526 let isCVI = 1;
38527 let DecoderNamespace = "EXT_mmvec";
38529 def V6_vwhist128qm : HInst<
38530 (outs),
38531 (ins HvxQR:$Qv4, u1_0Imm:$Ii),
38532 "vwhist128($Qv4,#$Ii)",
38533 tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
38534 let Inst{7-0} = 0b10000000;
38535 let Inst{13-9} = 0b10011;
38536 let Inst{21-16} = 0b000010;
38537 let Inst{31-24} = 0b00011110;
38538 let isCVI = 1;
38539 let DecoderNamespace = "EXT_mmvec";
38541 def V6_vwhist256 : HInst<
38542 (outs),
38543 (ins),
38544 "vwhist256",
38545 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
38546 let Inst{13-0} = 0b10001010000000;
38547 let Inst{31-16} = 0b0001111000000000;
38548 let isCVI = 1;
38549 let DecoderNamespace = "EXT_mmvec";
38551 def V6_vwhist256_sat : HInst<
38552 (outs),
38553 (ins),
38554 "vwhist256:sat",
38555 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
38556 let Inst{13-0} = 0b10001110000000;
38557 let Inst{31-16} = 0b0001111000000000;
38558 let isCVI = 1;
38559 let DecoderNamespace = "EXT_mmvec";
38561 def V6_vwhist256q : HInst<
38562 (outs),
38563 (ins HvxQR:$Qv4),
38564 "vwhist256($Qv4)",
38565 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
38566 let Inst{13-0} = 0b10001010000000;
38567 let Inst{21-16} = 0b000010;
38568 let Inst{31-24} = 0b00011110;
38569 let isCVI = 1;
38570 let DecoderNamespace = "EXT_mmvec";
38572 def V6_vwhist256q_sat : HInst<
38573 (outs),
38574 (ins HvxQR:$Qv4),
38575 "vwhist256($Qv4):sat",
38576 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
38577 let Inst{13-0} = 0b10001110000000;
38578 let Inst{21-16} = 0b000010;
38579 let Inst{31-24} = 0b00011110;
38580 let isCVI = 1;
38581 let DecoderNamespace = "EXT_mmvec";
38583 def V6_vxor : HInst<
38584 (outs HvxVR:$Vd32),
38585 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38586 "$Vd32 = vxor($Vu32,$Vv32)",
38587 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38588 let Inst{7-5} = 0b111;
38589 let Inst{13-13} = 0b0;
38590 let Inst{31-21} = 0b00011100001;
38591 let hasNewValue = 1;
38592 let opNewValue = 0;
38593 let isCVI = 1;
38594 let DecoderNamespace = "EXT_mmvec";
38596 def V6_vzb : HInst<
38597 (outs HvxWR:$Vdd32),
38598 (ins HvxVR:$Vu32),
38599 "$Vdd32.uh = vzxt($Vu32.ub)",
38600 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38601 let Inst{7-5} = 0b001;
38602 let Inst{13-13} = 0b0;
38603 let Inst{31-16} = 0b0001111000000010;
38604 let hasNewValue = 1;
38605 let opNewValue = 0;
38606 let isCVI = 1;
38607 let DecoderNamespace = "EXT_mmvec";
38609 def V6_vzb_alt : HInst<
38610 (outs HvxWR:$Vdd32),
38611 (ins HvxVR:$Vu32),
38612 "$Vdd32 = vzxtb($Vu32)",
38613 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38614 let hasNewValue = 1;
38615 let opNewValue = 0;
38616 let isCVI = 1;
38617 let isPseudo = 1;
38618 let isCodeGenOnly = 1;
38619 let DecoderNamespace = "EXT_mmvec";
38621 def V6_vzh : HInst<
38622 (outs HvxWR:$Vdd32),
38623 (ins HvxVR:$Vu32),
38624 "$Vdd32.uw = vzxt($Vu32.uh)",
38625 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38626 let Inst{7-5} = 0b010;
38627 let Inst{13-13} = 0b0;
38628 let Inst{31-16} = 0b0001111000000010;
38629 let hasNewValue = 1;
38630 let opNewValue = 0;
38631 let isCVI = 1;
38632 let DecoderNamespace = "EXT_mmvec";
38634 def V6_vzh_alt : HInst<
38635 (outs HvxWR:$Vdd32),
38636 (ins HvxVR:$Vu32),
38637 "$Vdd32 = vzxth($Vu32)",
38638 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38639 let hasNewValue = 1;
38640 let opNewValue = 0;
38641 let isCVI = 1;
38642 let isPseudo = 1;
38643 let isCodeGenOnly = 1;
38644 let DecoderNamespace = "EXT_mmvec";
38646 def V6_zLd_ai : HInst<
38647 (outs),
38648 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
38649 "z = vmem($Rt32+#$Ii)",
38650 tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> {
38651 let Inst{7-0} = 0b00000000;
38652 let Inst{12-11} = 0b00;
38653 let Inst{31-21} = 0b00101100000;
38654 let addrMode = BaseImmOffset;
38655 let isCVI = 1;
38656 let mayLoad = 1;
38657 let isRestrictNoSlot1Store = 1;
38658 let DecoderNamespace = "EXT_mmvec";
38660 def V6_zLd_pi : HInst<
38661 (outs IntRegs:$Rx32),
38662 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
38663 "z = vmem($Rx32++#$Ii)",
38664 tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> {
38665 let Inst{7-0} = 0b00000000;
38666 let Inst{13-11} = 0b000;
38667 let Inst{31-21} = 0b00101101000;
38668 let addrMode = PostInc;
38669 let isCVI = 1;
38670 let mayLoad = 1;
38671 let isRestrictNoSlot1Store = 1;
38672 let DecoderNamespace = "EXT_mmvec";
38673 let Constraints = "$Rx32 = $Rx32in";
38675 def V6_zLd_ppu : HInst<
38676 (outs IntRegs:$Rx32),
38677 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
38678 "z = vmem($Rx32++$Mu2)",
38679 tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
38680 let Inst{12-0} = 0b0000000000001;
38681 let Inst{31-21} = 0b00101101000;
38682 let addrMode = PostInc;
38683 let isCVI = 1;
38684 let mayLoad = 1;
38685 let isRestrictNoSlot1Store = 1;
38686 let DecoderNamespace = "EXT_mmvec";
38687 let Constraints = "$Rx32 = $Rx32in";
38689 def V6_zLd_pred_ai : HInst<
38690 (outs),
38691 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
38692 "if ($Pv4) z = vmem($Rt32+#$Ii)",
38693 tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
38694 let Inst{7-0} = 0b00000000;
38695 let Inst{31-21} = 0b00101100100;
38696 let isPredicated = 1;
38697 let addrMode = BaseImmOffset;
38698 let isCVI = 1;
38699 let mayLoad = 1;
38700 let isRestrictNoSlot1Store = 1;
38701 let DecoderNamespace = "EXT_mmvec";
38703 def V6_zLd_pred_pi : HInst<
38704 (outs IntRegs:$Rx32),
38705 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
38706 "if ($Pv4) z = vmem($Rx32++#$Ii)",
38707 tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
38708 let Inst{7-0} = 0b00000000;
38709 let Inst{13-13} = 0b0;
38710 let Inst{31-21} = 0b00101101100;
38711 let isPredicated = 1;
38712 let addrMode = PostInc;
38713 let isCVI = 1;
38714 let mayLoad = 1;
38715 let isRestrictNoSlot1Store = 1;
38716 let DecoderNamespace = "EXT_mmvec";
38717 let Constraints = "$Rx32 = $Rx32in";
38719 def V6_zLd_pred_ppu : HInst<
38720 (outs IntRegs:$Rx32),
38721 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
38722 "if ($Pv4) z = vmem($Rx32++$Mu2)",
38723 tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
38724 let Inst{10-0} = 0b00000000001;
38725 let Inst{31-21} = 0b00101101100;
38726 let isPredicated = 1;
38727 let addrMode = PostInc;
38728 let isCVI = 1;
38729 let mayLoad = 1;
38730 let isRestrictNoSlot1Store = 1;
38731 let DecoderNamespace = "EXT_mmvec";
38732 let Constraints = "$Rx32 = $Rx32in";
38734 def V6_zextract : HInst<
38735 (outs HvxVR:$Vd32),
38736 (ins IntRegs:$Rt32),
38737 "$Vd32 = zextract($Rt32)",
38738 tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
38739 let Inst{13-5} = 0b000001001;
38740 let Inst{31-21} = 0b00011001101;
38741 let hasNewValue = 1;
38742 let opNewValue = 0;
38743 let isCVI = 1;
38744 let DecoderNamespace = "EXT_mmvec";
38746 def V6_zld0 : HInst<
38747 (outs),
38748 (ins IntRegs:$Rt32),
38749 "z = vmem($Rt32)",
38750 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
38751 let isCVI = 1;
38752 let isPseudo = 1;
38753 let isCodeGenOnly = 1;
38754 let DecoderNamespace = "EXT_mmvec";
38756 def V6_zldp0 : HInst<
38757 (outs),
38758 (ins PredRegs:$Pv4, IntRegs:$Rt32),
38759 "if ($Pv4) z = vmem($Rt32)",
38760 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
38761 let isCVI = 1;
38762 let isPseudo = 1;
38763 let isCodeGenOnly = 1;
38764 let DecoderNamespace = "EXT_mmvec";
38766 def Y2_barrier : HInst<
38767 (outs),
38768 (ins),
38769 "barrier",
38770 tc_77f94a5e, TypeST>, Enc_e3b0c4 {
38771 let Inst{13-0} = 0b00000000000000;
38772 let Inst{31-16} = 0b1010100000000000;
38773 let isSoloAX = 1;
38774 let hasSideEffects = 1;
38776 def Y2_break : HInst<
38777 (outs),
38778 (ins),
38779 "brkpt",
38780 tc_55255f2b, TypeCR>, Enc_e3b0c4 {
38781 let Inst{13-0} = 0b00000000000000;
38782 let Inst{31-16} = 0b0110110000100000;
38783 let isSolo = 1;
38785 def Y2_dccleana : HInst<
38786 (outs),
38787 (ins IntRegs:$Rs32),
38788 "dccleana($Rs32)",
38789 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
38790 let Inst{13-0} = 0b00000000000000;
38791 let Inst{31-21} = 0b10100000000;
38792 let isRestrictSlot1AOK = 1;
38793 let hasSideEffects = 1;
38795 def Y2_dccleaninva : HInst<
38796 (outs),
38797 (ins IntRegs:$Rs32),
38798 "dccleaninva($Rs32)",
38799 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
38800 let Inst{13-0} = 0b00000000000000;
38801 let Inst{31-21} = 0b10100000010;
38802 let isRestrictSlot1AOK = 1;
38803 let hasSideEffects = 1;
38805 def Y2_dcfetch : HInst<
38806 (outs),
38807 (ins IntRegs:$Rs32),
38808 "dcfetch($Rs32)",
38809 tc_d45ba9cd, TypeMAPPING> {
38810 let hasSideEffects = 1;
38811 let isPseudo = 1;
38812 let isCodeGenOnly = 1;
38814 def Y2_dcfetchbo : HInst<
38815 (outs),
38816 (ins IntRegs:$Rs32, u11_3Imm:$Ii),
38817 "dcfetch($Rs32+#$Ii)",
38818 tc_2237d952, TypeLD>, Enc_2d829e {
38819 let Inst{13-11} = 0b000;
38820 let Inst{31-21} = 0b10010100000;
38821 let addrMode = BaseImmOffset;
38822 let isRestrictNoSlot1Store = 1;
38823 let hasSideEffects = 1;
38825 def Y2_dcinva : HInst<
38826 (outs),
38827 (ins IntRegs:$Rs32),
38828 "dcinva($Rs32)",
38829 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
38830 let Inst{13-0} = 0b00000000000000;
38831 let Inst{31-21} = 0b10100000001;
38832 let isRestrictSlot1AOK = 1;
38833 let hasSideEffects = 1;
38835 def Y2_dczeroa : HInst<
38836 (outs),
38837 (ins IntRegs:$Rs32),
38838 "dczeroa($Rs32)",
38839 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
38840 let Inst{13-0} = 0b00000000000000;
38841 let Inst{31-21} = 0b10100000110;
38842 let isRestrictSlot1AOK = 1;
38843 let mayStore = 1;
38844 let hasSideEffects = 1;
38846 def Y2_icinva : HInst<
38847 (outs),
38848 (ins IntRegs:$Rs32),
38849 "icinva($Rs32)",
38850 tc_0ba0d5da, TypeJ>, Enc_ecbcc8 {
38851 let Inst{13-0} = 0b00000000000000;
38852 let Inst{31-21} = 0b01010110110;
38853 let isSolo = 1;
38855 def Y2_isync : HInst<
38856 (outs),
38857 (ins),
38858 "isync",
38859 tc_9b34f5e0, TypeJ>, Enc_e3b0c4 {
38860 let Inst{13-0} = 0b00000000000010;
38861 let Inst{31-16} = 0b0101011111000000;
38862 let isSolo = 1;
38864 def Y2_syncht : HInst<
38865 (outs),
38866 (ins),
38867 "syncht",
38868 tc_77f94a5e, TypeST>, Enc_e3b0c4 {
38869 let Inst{13-0} = 0b00000000000000;
38870 let Inst{31-16} = 0b1010100001000000;
38871 let isSolo = 1;
38873 def Y2_wait : HInst<
38874 (outs),
38875 (ins IntRegs:$Rs32),
38876 "wait($Rs32)",
38877 tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
38878 let Inst{13-0} = 0b00000000000000;
38879 let Inst{31-21} = 0b01100100010;
38880 let isSolo = 1;
38882 def Y4_l2fetch : HInst<
38883 (outs),
38884 (ins IntRegs:$Rs32, IntRegs:$Rt32),
38885 "l2fetch($Rs32,$Rt32)",
38886 tc_a3070909, TypeST>, Enc_ca3887 {
38887 let Inst{7-0} = 0b00000000;
38888 let Inst{13-13} = 0b0;
38889 let Inst{31-21} = 0b10100110000;
38890 let isSoloAX = 1;
38891 let hasSideEffects = 1;
38892 let mayStore = 1;
38894 def Y4_trace : HInst<
38895 (outs),
38896 (ins IntRegs:$Rs32),
38897 "trace($Rs32)",
38898 tc_d7718fbe, TypeCR>, Enc_ecbcc8 {
38899 let Inst{13-0} = 0b00000000000000;
38900 let Inst{31-21} = 0b01100010010;
38901 let isSoloAX = 1;
38903 def Y5_l2fetch : HInst<
38904 (outs),
38905 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
38906 "l2fetch($Rs32,$Rtt32)",
38907 tc_a3070909, TypeST>, Enc_e6abcf {
38908 let Inst{7-0} = 0b00000000;
38909 let Inst{13-13} = 0b0;
38910 let Inst{31-21} = 0b10100110100;
38911 let isSoloAX = 1;
38912 let hasSideEffects = 1;
38913 let mayStore = 1;
38915 def Y6_diag : HInst<
38916 (outs),
38917 (ins IntRegs:$Rs32),
38918 "diag($Rs32)",
38919 tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> {
38920 let Inst{13-0} = 0b00000000100000;
38921 let Inst{31-21} = 0b01100010010;
38923 def Y6_diag0 : HInst<
38924 (outs),
38925 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
38926 "diag0($Rss32,$Rtt32)",
38927 tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
38928 let Inst{7-0} = 0b01000000;
38929 let Inst{13-13} = 0b0;
38930 let Inst{31-21} = 0b01100010010;
38932 def Y6_diag1 : HInst<
38933 (outs),
38934 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
38935 "diag1($Rss32,$Rtt32)",
38936 tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
38937 let Inst{7-0} = 0b01100000;
38938 let Inst{13-13} = 0b0;
38939 let Inst{31-21} = 0b01100010010;
38941 def Y6_dmlink : HInst<
38942 (outs),
38943 (ins IntRegs:$Rs32, IntRegs:$Rt32),
38944 "dmlink($Rs32,$Rt32)",
38945 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
38946 let Inst{7-0} = 0b01000000;
38947 let Inst{13-13} = 0b0;
38948 let Inst{31-21} = 0b10100110000;
38949 let hasSideEffects = 1;
38950 let isSolo = 1;
38951 let mayStore = 1;
38953 def Y6_dmpause : HInst<
38954 (outs IntRegs:$Rd32),
38955 (ins),
38956 "$Rd32 = dmpause",
38957 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
38958 let Inst{13-5} = 0b000000011;
38959 let Inst{31-16} = 0b1010100000000000;
38960 let hasNewValue = 1;
38961 let opNewValue = 0;
38962 let hasSideEffects = 1;
38963 let isSolo = 1;
38965 def Y6_dmpoll : HInst<
38966 (outs IntRegs:$Rd32),
38967 (ins),
38968 "$Rd32 = dmpoll",
38969 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
38970 let Inst{13-5} = 0b000000010;
38971 let Inst{31-16} = 0b1010100000000000;
38972 let hasNewValue = 1;
38973 let opNewValue = 0;
38974 let hasSideEffects = 1;
38975 let isSolo = 1;
38977 def Y6_dmresume : HInst<
38978 (outs),
38979 (ins IntRegs:$Rs32),
38980 "dmresume($Rs32)",
38981 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
38982 let Inst{13-0} = 0b00000010000000;
38983 let Inst{31-21} = 0b10100110000;
38984 let hasSideEffects = 1;
38985 let isSolo = 1;
38987 def Y6_dmstart : HInst<
38988 (outs),
38989 (ins IntRegs:$Rs32),
38990 "dmstart($Rs32)",
38991 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
38992 let Inst{13-0} = 0b00000000100000;
38993 let Inst{31-21} = 0b10100110000;
38994 let hasSideEffects = 1;
38995 let isSolo = 1;
38997 def Y6_dmwait : HInst<
38998 (outs IntRegs:$Rd32),
38999 (ins),
39000 "$Rd32 = dmwait",
39001 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
39002 let Inst{13-5} = 0b000000001;
39003 let Inst{31-16} = 0b1010100000000000;
39004 let hasNewValue = 1;
39005 let opNewValue = 0;
39006 let hasSideEffects = 1;
39007 let isSolo = 1;
39009 def dep_A2_addsat : HInst<
39010 (outs IntRegs:$Rd32),
39011 (ins IntRegs:$Rs32, IntRegs:$Rt32),
39012 "$Rd32 = add($Rs32,$Rt32):sat:deprecated",
39013 tc_8a825db2, TypeALU64>, Enc_5ab2be {
39014 let Inst{7-5} = 0b000;
39015 let Inst{13-13} = 0b0;
39016 let Inst{31-21} = 0b11010101100;
39017 let hasNewValue = 1;
39018 let opNewValue = 0;
39019 let prefersSlot3 = 1;
39020 let Defs = [USR_OVF];
39022 def dep_A2_subsat : HInst<
39023 (outs IntRegs:$Rd32),
39024 (ins IntRegs:$Rt32, IntRegs:$Rs32),
39025 "$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
39026 tc_8a825db2, TypeALU64>, Enc_bd6011 {
39027 let Inst{7-5} = 0b100;
39028 let Inst{13-13} = 0b0;
39029 let Inst{31-21} = 0b11010101100;
39030 let hasNewValue = 1;
39031 let opNewValue = 0;
39032 let prefersSlot3 = 1;
39033 let Defs = [USR_OVF];
39035 def dep_S2_packhl : HInst<
39036 (outs DoubleRegs:$Rdd32),
39037 (ins IntRegs:$Rs32, IntRegs:$Rt32),
39038 "$Rdd32 = packhl($Rs32,$Rt32):deprecated",
39039 tc_5da50c4b, TypeALU64>, Enc_be32a5 {
39040 let Inst{7-5} = 0b000;
39041 let Inst{13-13} = 0b0;
39042 let Inst{31-21} = 0b11010100000;
39044 def dup_A2_add : HInst<
39045 (outs IntRegs:$Rd32),
39046 (ins IntRegs:$Rs32, IntRegs:$Rt32),
39047 "$Rd32 = add($Rs32,$Rt32)",
39048 tc_388f9897, TypeALU32_3op>, Requires<[HasV68]> {
39049 let hasNewValue = 1;
39050 let opNewValue = 0;
39051 let AsmVariantName = "NonParsable";
39052 let isPseudo = 1;
39054 def dup_A2_addi : HInst<
39055 (outs IntRegs:$Rd32),
39056 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39057 "$Rd32 = add($Rs32,#$Ii)",
39058 tc_388f9897, TypeALU32_ADDI>, Requires<[HasV68]> {
39059 let hasNewValue = 1;
39060 let opNewValue = 0;
39061 let AsmVariantName = "NonParsable";
39062 let isPseudo = 1;
39063 let isExtendable = 1;
39064 let opExtendable = 2;
39065 let isExtentSigned = 1;
39066 let opExtentBits = 16;
39067 let opExtentAlign = 0;
39069 def dup_A2_andir : HInst<
39070 (outs IntRegs:$Rd32),
39071 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39072 "$Rd32 = and($Rs32,#$Ii)",
39073 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39074 let hasNewValue = 1;
39075 let opNewValue = 0;
39076 let AsmVariantName = "NonParsable";
39077 let isPseudo = 1;
39078 let isExtendable = 1;
39079 let opExtendable = 2;
39080 let isExtentSigned = 1;
39081 let opExtentBits = 10;
39082 let opExtentAlign = 0;
39084 def dup_A2_combineii : HInst<
39085 (outs DoubleRegs:$Rdd32),
39086 (ins s32_0Imm:$Ii, s8_0Imm:$II),
39087 "$Rdd32 = combine(#$Ii,#$II)",
39088 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39089 let AsmVariantName = "NonParsable";
39090 let isPseudo = 1;
39091 let isExtendable = 1;
39092 let opExtendable = 1;
39093 let isExtentSigned = 1;
39094 let opExtentBits = 8;
39095 let opExtentAlign = 0;
39097 def dup_A2_sxtb : HInst<
39098 (outs IntRegs:$Rd32),
39099 (ins IntRegs:$Rs32),
39100 "$Rd32 = sxtb($Rs32)",
39101 tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> {
39102 let hasNewValue = 1;
39103 let opNewValue = 0;
39104 let AsmVariantName = "NonParsable";
39105 let isPseudo = 1;
39107 def dup_A2_sxth : HInst<
39108 (outs IntRegs:$Rd32),
39109 (ins IntRegs:$Rs32),
39110 "$Rd32 = sxth($Rs32)",
39111 tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> {
39112 let hasNewValue = 1;
39113 let opNewValue = 0;
39114 let AsmVariantName = "NonParsable";
39115 let isPseudo = 1;
39117 def dup_A2_tfr : HInst<
39118 (outs IntRegs:$Rd32),
39119 (ins IntRegs:$Rs32),
39120 "$Rd32 = $Rs32",
39121 tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> {
39122 let hasNewValue = 1;
39123 let opNewValue = 0;
39124 let AsmVariantName = "NonParsable";
39125 let isPseudo = 1;
39127 def dup_A2_tfrsi : HInst<
39128 (outs IntRegs:$Rd32),
39129 (ins s32_0Imm:$Ii),
39130 "$Rd32 = #$Ii",
39131 tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> {
39132 let hasNewValue = 1;
39133 let opNewValue = 0;
39134 let AsmVariantName = "NonParsable";
39135 let isPseudo = 1;
39136 let isExtendable = 1;
39137 let opExtendable = 1;
39138 let isExtentSigned = 1;
39139 let opExtentBits = 16;
39140 let opExtentAlign = 0;
39142 def dup_A2_zxtb : HInst<
39143 (outs IntRegs:$Rd32),
39144 (ins IntRegs:$Rs32),
39145 "$Rd32 = zxtb($Rs32)",
39146 PSEUDO, TypeMAPPING>, Requires<[HasV68]> {
39147 let hasNewValue = 1;
39148 let opNewValue = 0;
39149 let AsmVariantName = "NonParsable";
39150 let isPseudo = 1;
39152 def dup_A2_zxth : HInst<
39153 (outs IntRegs:$Rd32),
39154 (ins IntRegs:$Rs32),
39155 "$Rd32 = zxth($Rs32)",
39156 tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> {
39157 let hasNewValue = 1;
39158 let opNewValue = 0;
39159 let AsmVariantName = "NonParsable";
39160 let isPseudo = 1;
39162 def dup_A4_combineii : HInst<
39163 (outs DoubleRegs:$Rdd32),
39164 (ins s8_0Imm:$Ii, u32_0Imm:$II),
39165 "$Rdd32 = combine(#$Ii,#$II)",
39166 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39167 let AsmVariantName = "NonParsable";
39168 let isPseudo = 1;
39169 let isExtendable = 1;
39170 let opExtendable = 2;
39171 let isExtentSigned = 0;
39172 let opExtentBits = 6;
39173 let opExtentAlign = 0;
39175 def dup_A4_combineir : HInst<
39176 (outs DoubleRegs:$Rdd32),
39177 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
39178 "$Rdd32 = combine(#$Ii,$Rs32)",
39179 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39180 let AsmVariantName = "NonParsable";
39181 let isPseudo = 1;
39182 let isExtendable = 1;
39183 let opExtendable = 1;
39184 let isExtentSigned = 1;
39185 let opExtentBits = 8;
39186 let opExtentAlign = 0;
39188 def dup_A4_combineri : HInst<
39189 (outs DoubleRegs:$Rdd32),
39190 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39191 "$Rdd32 = combine($Rs32,#$Ii)",
39192 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39193 let AsmVariantName = "NonParsable";
39194 let isPseudo = 1;
39195 let isExtendable = 1;
39196 let opExtendable = 2;
39197 let isExtentSigned = 1;
39198 let opExtentBits = 8;
39199 let opExtentAlign = 0;
39201 def dup_C2_cmoveif : HInst<
39202 (outs IntRegs:$Rd32),
39203 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
39204 "if (!$Pu4) $Rd32 = #$Ii",
39205 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39206 let isPredicated = 1;
39207 let isPredicatedFalse = 1;
39208 let hasNewValue = 1;
39209 let opNewValue = 0;
39210 let AsmVariantName = "NonParsable";
39211 let isPseudo = 1;
39212 let isExtendable = 1;
39213 let opExtendable = 2;
39214 let isExtentSigned = 1;
39215 let opExtentBits = 12;
39216 let opExtentAlign = 0;
39218 def dup_C2_cmoveit : HInst<
39219 (outs IntRegs:$Rd32),
39220 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
39221 "if ($Pu4) $Rd32 = #$Ii",
39222 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39223 let isPredicated = 1;
39224 let hasNewValue = 1;
39225 let opNewValue = 0;
39226 let AsmVariantName = "NonParsable";
39227 let isPseudo = 1;
39228 let isExtendable = 1;
39229 let opExtendable = 2;
39230 let isExtentSigned = 1;
39231 let opExtentBits = 12;
39232 let opExtentAlign = 0;
39234 def dup_C2_cmovenewif : HInst<
39235 (outs IntRegs:$Rd32),
39236 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
39237 "if (!$Pu4.new) $Rd32 = #$Ii",
39238 tc_4ac61d92, TypeALU32_2op>, Requires<[HasV68]> {
39239 let isPredicated = 1;
39240 let isPredicatedFalse = 1;
39241 let hasNewValue = 1;
39242 let opNewValue = 0;
39243 let AsmVariantName = "NonParsable";
39244 let isPredicatedNew = 1;
39245 let isPseudo = 1;
39246 let isExtendable = 1;
39247 let opExtendable = 2;
39248 let isExtentSigned = 1;
39249 let opExtentBits = 12;
39250 let opExtentAlign = 0;
39252 def dup_C2_cmovenewit : HInst<
39253 (outs IntRegs:$Rd32),
39254 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
39255 "if ($Pu4.new) $Rd32 = #$Ii",
39256 tc_4ac61d92, TypeALU32_2op>, Requires<[HasV68]> {
39257 let isPredicated = 1;
39258 let hasNewValue = 1;
39259 let opNewValue = 0;
39260 let AsmVariantName = "NonParsable";
39261 let isPredicatedNew = 1;
39262 let isPseudo = 1;
39263 let isExtendable = 1;
39264 let opExtendable = 2;
39265 let isExtentSigned = 1;
39266 let opExtentBits = 12;
39267 let opExtentAlign = 0;
39269 def dup_C2_cmpeqi : HInst<
39270 (outs PredRegs:$Pd4),
39271 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39272 "$Pd4 = cmp.eq($Rs32,#$Ii)",
39273 tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> {
39274 let AsmVariantName = "NonParsable";
39275 let isPseudo = 1;
39276 let isExtendable = 1;
39277 let opExtendable = 2;
39278 let isExtentSigned = 1;
39279 let opExtentBits = 10;
39280 let opExtentAlign = 0;
39282 def dup_L2_deallocframe : HInst<
39283 (outs DoubleRegs:$Rdd32),
39284 (ins IntRegs:$Rs32),
39285 "$Rdd32 = deallocframe($Rs32):raw",
39286 tc_aee6250c, TypeLD>, Requires<[HasV68]> {
39287 let accessSize = DoubleWordAccess;
39288 let AsmVariantName = "NonParsable";
39289 let mayLoad = 1;
39290 let Uses = [FRAMEKEY];
39291 let Defs = [R29];
39292 let isPseudo = 1;
39294 def dup_L2_loadrb_io : HInst<
39295 (outs IntRegs:$Rd32),
39296 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39297 "$Rd32 = memb($Rs32+#$Ii)",
39298 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39299 let hasNewValue = 1;
39300 let opNewValue = 0;
39301 let addrMode = BaseImmOffset;
39302 let accessSize = ByteAccess;
39303 let AsmVariantName = "NonParsable";
39304 let mayLoad = 1;
39305 let isPseudo = 1;
39306 let isExtendable = 1;
39307 let opExtendable = 2;
39308 let isExtentSigned = 1;
39309 let opExtentBits = 11;
39310 let opExtentAlign = 0;
39312 def dup_L2_loadrd_io : HInst<
39313 (outs DoubleRegs:$Rdd32),
39314 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
39315 "$Rdd32 = memd($Rs32+#$Ii)",
39316 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39317 let addrMode = BaseImmOffset;
39318 let accessSize = DoubleWordAccess;
39319 let AsmVariantName = "NonParsable";
39320 let mayLoad = 1;
39321 let isPseudo = 1;
39322 let isExtendable = 1;
39323 let opExtendable = 2;
39324 let isExtentSigned = 1;
39325 let opExtentBits = 14;
39326 let opExtentAlign = 3;
39328 def dup_L2_loadrh_io : HInst<
39329 (outs IntRegs:$Rd32),
39330 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
39331 "$Rd32 = memh($Rs32+#$Ii)",
39332 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39333 let hasNewValue = 1;
39334 let opNewValue = 0;
39335 let addrMode = BaseImmOffset;
39336 let accessSize = HalfWordAccess;
39337 let AsmVariantName = "NonParsable";
39338 let mayLoad = 1;
39339 let isPseudo = 1;
39340 let isExtendable = 1;
39341 let opExtendable = 2;
39342 let isExtentSigned = 1;
39343 let opExtentBits = 12;
39344 let opExtentAlign = 1;
39346 def dup_L2_loadri_io : HInst<
39347 (outs IntRegs:$Rd32),
39348 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
39349 "$Rd32 = memw($Rs32+#$Ii)",
39350 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39351 let hasNewValue = 1;
39352 let opNewValue = 0;
39353 let addrMode = BaseImmOffset;
39354 let accessSize = WordAccess;
39355 let AsmVariantName = "NonParsable";
39356 let mayLoad = 1;
39357 let isPseudo = 1;
39358 let isExtendable = 1;
39359 let opExtendable = 2;
39360 let isExtentSigned = 1;
39361 let opExtentBits = 13;
39362 let opExtentAlign = 2;
39364 def dup_L2_loadrub_io : HInst<
39365 (outs IntRegs:$Rd32),
39366 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
39367 "$Rd32 = memub($Rs32+#$Ii)",
39368 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39369 let hasNewValue = 1;
39370 let opNewValue = 0;
39371 let addrMode = BaseImmOffset;
39372 let accessSize = ByteAccess;
39373 let AsmVariantName = "NonParsable";
39374 let mayLoad = 1;
39375 let isPseudo = 1;
39376 let isExtendable = 1;
39377 let opExtendable = 2;
39378 let isExtentSigned = 1;
39379 let opExtentBits = 11;
39380 let opExtentAlign = 0;
39382 def dup_L2_loadruh_io : HInst<
39383 (outs IntRegs:$Rd32),
39384 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
39385 "$Rd32 = memuh($Rs32+#$Ii)",
39386 tc_eed07714, TypeLD>, Requires<[HasV68]> {
39387 let hasNewValue = 1;
39388 let opNewValue = 0;
39389 let addrMode = BaseImmOffset;
39390 let accessSize = HalfWordAccess;
39391 let AsmVariantName = "NonParsable";
39392 let mayLoad = 1;
39393 let isPseudo = 1;
39394 let isExtendable = 1;
39395 let opExtendable = 2;
39396 let isExtentSigned = 1;
39397 let opExtentBits = 12;
39398 let opExtentAlign = 1;
39400 def dup_S2_allocframe : HInst<
39401 (outs IntRegs:$Rx32),
39402 (ins IntRegs:$Rx32in, u11_3Imm:$Ii),
39403 "allocframe($Rx32,#$Ii):raw",
39404 tc_74a42bda, TypeST>, Requires<[HasV68]> {
39405 let hasNewValue = 1;
39406 let opNewValue = 0;
39407 let addrMode = BaseImmOffset;
39408 let accessSize = DoubleWordAccess;
39409 let AsmVariantName = "NonParsable";
39410 let mayStore = 1;
39411 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
39412 let Defs = [R30];
39413 let isPseudo = 1;
39414 let Constraints = "$Rx32 = $Rx32in";
39416 def dup_S2_storerb_io : HInst<
39417 (outs),
39418 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
39419 "memb($Rs32+#$Ii) = $Rt32",
39420 tc_a9edeffa, TypeST>, Requires<[HasV68]> {
39421 let addrMode = BaseImmOffset;
39422 let accessSize = ByteAccess;
39423 let AsmVariantName = "NonParsable";
39424 let mayStore = 1;
39425 let isPseudo = 1;
39426 let isExtendable = 1;
39427 let opExtendable = 1;
39428 let isExtentSigned = 1;
39429 let opExtentBits = 11;
39430 let opExtentAlign = 0;
39432 def dup_S2_storerd_io : HInst<
39433 (outs),
39434 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
39435 "memd($Rs32+#$Ii) = $Rtt32",
39436 tc_a9edeffa, TypeST>, Requires<[HasV68]> {
39437 let addrMode = BaseImmOffset;
39438 let accessSize = DoubleWordAccess;
39439 let AsmVariantName = "NonParsable";
39440 let mayStore = 1;
39441 let isPseudo = 1;
39442 let isExtendable = 1;
39443 let opExtendable = 1;
39444 let isExtentSigned = 1;
39445 let opExtentBits = 14;
39446 let opExtentAlign = 3;
39448 def dup_S2_storerh_io : HInst<
39449 (outs),
39450 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
39451 "memh($Rs32+#$Ii) = $Rt32",
39452 tc_a9edeffa, TypeST>, Requires<[HasV68]> {
39453 let addrMode = BaseImmOffset;
39454 let accessSize = HalfWordAccess;
39455 let AsmVariantName = "NonParsable";
39456 let mayStore = 1;
39457 let isPseudo = 1;
39458 let isExtendable = 1;
39459 let opExtendable = 1;
39460 let isExtentSigned = 1;
39461 let opExtentBits = 12;
39462 let opExtentAlign = 1;
39464 def dup_S2_storeri_io : HInst<
39465 (outs),
39466 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
39467 "memw($Rs32+#$Ii) = $Rt32",
39468 tc_a9edeffa, TypeST>, Requires<[HasV68]> {
39469 let addrMode = BaseImmOffset;
39470 let accessSize = WordAccess;
39471 let AsmVariantName = "NonParsable";
39472 let mayStore = 1;
39473 let isPseudo = 1;
39474 let isExtendable = 1;
39475 let opExtendable = 1;
39476 let isExtentSigned = 1;
39477 let opExtentBits = 13;
39478 let opExtentAlign = 2;
39480 def dup_S4_storeirb_io : HInst<
39481 (outs),
39482 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
39483 "memb($Rs32+#$Ii) = #$II",
39484 tc_838c4d7a, TypeV4LDST>, Requires<[HasV68]> {
39485 let addrMode = BaseImmOffset;
39486 let accessSize = ByteAccess;
39487 let AsmVariantName = "NonParsable";
39488 let mayStore = 1;
39489 let isPseudo = 1;
39490 let isExtendable = 1;
39491 let opExtendable = 2;
39492 let isExtentSigned = 1;
39493 let opExtentBits = 8;
39494 let opExtentAlign = 0;
39496 def dup_S4_storeiri_io : HInst<
39497 (outs),
39498 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
39499 "memw($Rs32+#$Ii) = #$II",
39500 tc_838c4d7a, TypeV4LDST>, Requires<[HasV68]> {
39501 let addrMode = BaseImmOffset;
39502 let accessSize = WordAccess;
39503 let AsmVariantName = "NonParsable";
39504 let mayStore = 1;
39505 let isPseudo = 1;
39506 let isExtendable = 1;
39507 let opExtendable = 2;
39508 let isExtentSigned = 1;
39509 let opExtentBits = 8;
39510 let opExtentAlign = 0;