AMDGPU: Mark test as XFAIL in expensive_checks builds
[llvm-project.git] / llvm / lib / Target / Hexagon / HexagonDepInstrInfo.td
blob7935c4b86af53579791455111d98a8f09d7c80f2
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_callrh : HInst<
4963 (outs),
4964 (ins IntRegs:$Rs32),
4965 "callrh $Rs32",
4966 tc_95f43c5e, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> {
4967 let Inst{13-0} = 0b00000000000000;
4968 let Inst{31-21} = 0b01010000110;
4969 let isCall = 1;
4970 let prefersSlot3 = 1;
4971 let cofMax1 = 1;
4972 let Defs = [PC, R31];
4974 def J2_callrt : HInst<
4975 (outs),
4976 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4977 "if ($Pu4) callr $Rs32",
4978 tc_dc51281d, TypeJ>, Enc_88d4d9 {
4979 let Inst{7-0} = 0b00000000;
4980 let Inst{13-10} = 0b0000;
4981 let Inst{31-21} = 0b01010001000;
4982 let isPredicated = 1;
4983 let isCall = 1;
4984 let prefersSlot3 = 1;
4985 let cofMax1 = 1;
4986 let Uses = [R29];
4987 let Defs = [PC, R31];
4988 let hasSideEffects = 1;
4989 let isTaken = Inst{12};
4991 def J2_callt : HInst<
4992 (outs),
4993 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4994 "if ($Pu4) call $Ii",
4995 tc_69bfb303, TypeJ>, Enc_daea09, PredRel {
4996 let Inst{0-0} = 0b0;
4997 let Inst{12-10} = 0b000;
4998 let Inst{21-21} = 0b0;
4999 let Inst{31-24} = 0b01011101;
5000 let isPredicated = 1;
5001 let isCall = 1;
5002 let prefersSlot3 = 1;
5003 let cofRelax1 = 1;
5004 let cofRelax2 = 1;
5005 let cofMax1 = 1;
5006 let Uses = [R29];
5007 let Defs = [PC, R31];
5008 let BaseOpcode = "J2_call";
5009 let hasSideEffects = 1;
5010 let isTaken = Inst{12};
5011 let isExtendable = 1;
5012 let opExtendable = 1;
5013 let isExtentSigned = 1;
5014 let opExtentBits = 17;
5015 let opExtentAlign = 2;
5017 def J2_endloop0 : HInst<
5018 (outs),
5019 (ins),
5020 "endloop0",
5021 tc_23708a21, TypeJ> {
5022 let Uses = [LC0, SA0];
5023 let Defs = [LC0, P3, PC, USR];
5024 let isBranch = 1;
5025 let isTerminator = 1;
5026 let isPseudo = 1;
5028 def J2_endloop01 : HInst<
5029 (outs),
5030 (ins),
5031 "endloop01",
5032 tc_23708a21, TypeJ> {
5033 let Uses = [LC0, LC1, SA0, SA1];
5034 let Defs = [LC0, LC1, P3, PC, USR];
5035 let isPseudo = 1;
5037 def J2_endloop1 : HInst<
5038 (outs),
5039 (ins),
5040 "endloop1",
5041 tc_23708a21, TypeJ> {
5042 let Uses = [LC1, SA1];
5043 let Defs = [LC1, PC];
5044 let isBranch = 1;
5045 let isTerminator = 1;
5046 let isPseudo = 1;
5048 def J2_jump : HInst<
5049 (outs),
5050 (ins b30_2Imm:$Ii),
5051 "jump $Ii",
5052 tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel {
5053 let Inst{0-0} = 0b0;
5054 let Inst{31-25} = 0b0101100;
5055 let isTerminator = 1;
5056 let isBranch = 1;
5057 let cofRelax2 = 1;
5058 let cofMax1 = 1;
5059 let Defs = [PC];
5060 let BaseOpcode = "J2_jump";
5061 let InputType = "imm";
5062 let isBarrier = 1;
5063 let isPredicable = 1;
5064 let isExtendable = 1;
5065 let opExtendable = 0;
5066 let isExtentSigned = 1;
5067 let opExtentBits = 24;
5068 let opExtentAlign = 2;
5070 def J2_jumpf : HInst<
5071 (outs),
5072 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5073 "if (!$Pu4) jump:nt $Ii",
5074 tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5075 let Inst{0-0} = 0b0;
5076 let Inst{12-10} = 0b000;
5077 let Inst{21-21} = 0b1;
5078 let Inst{31-24} = 0b01011100;
5079 let isPredicated = 1;
5080 let isPredicatedFalse = 1;
5081 let isTerminator = 1;
5082 let isBranch = 1;
5083 let cofRelax1 = 1;
5084 let cofRelax2 = 1;
5085 let cofMax1 = 1;
5086 let Defs = [PC];
5087 let BaseOpcode = "J2_jump";
5088 let InputType = "imm";
5089 let isTaken = Inst{12};
5090 let isExtendable = 1;
5091 let opExtendable = 1;
5092 let isExtentSigned = 1;
5093 let opExtentBits = 17;
5094 let opExtentAlign = 2;
5096 def J2_jumpf_nopred_map : HInst<
5097 (outs),
5098 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5099 "if (!$Pu4) jump $Ii",
5100 tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5101 let isPseudo = 1;
5102 let isCodeGenOnly = 1;
5104 def J2_jumpfnew : HInst<
5105 (outs),
5106 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5107 "if (!$Pu4.new) jump:nt $Ii",
5108 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5109 let Inst{0-0} = 0b0;
5110 let Inst{12-10} = 0b010;
5111 let Inst{21-21} = 0b1;
5112 let Inst{31-24} = 0b01011100;
5113 let isPredicated = 1;
5114 let isPredicatedFalse = 1;
5115 let isTerminator = 1;
5116 let isBranch = 1;
5117 let isPredicatedNew = 1;
5118 let cofRelax1 = 1;
5119 let cofRelax2 = 1;
5120 let cofMax1 = 1;
5121 let Defs = [PC];
5122 let BaseOpcode = "J2_jump";
5123 let InputType = "imm";
5124 let isTaken = Inst{12};
5125 let isExtendable = 1;
5126 let opExtendable = 1;
5127 let isExtentSigned = 1;
5128 let opExtentBits = 17;
5129 let opExtentAlign = 2;
5131 def J2_jumpfnewpt : HInst<
5132 (outs),
5133 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5134 "if (!$Pu4.new) jump:t $Ii",
5135 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5136 let Inst{0-0} = 0b0;
5137 let Inst{12-10} = 0b110;
5138 let Inst{21-21} = 0b1;
5139 let Inst{31-24} = 0b01011100;
5140 let isPredicated = 1;
5141 let isPredicatedFalse = 1;
5142 let isTerminator = 1;
5143 let isBranch = 1;
5144 let isPredicatedNew = 1;
5145 let cofRelax1 = 1;
5146 let cofRelax2 = 1;
5147 let cofMax1 = 1;
5148 let Defs = [PC];
5149 let BaseOpcode = "J2_jump";
5150 let InputType = "imm";
5151 let isTaken = Inst{12};
5152 let isExtendable = 1;
5153 let opExtendable = 1;
5154 let isExtentSigned = 1;
5155 let opExtentBits = 17;
5156 let opExtentAlign = 2;
5158 def J2_jumpfpt : HInst<
5159 (outs),
5160 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5161 "if (!$Pu4) jump:t $Ii",
5162 tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5163 let Inst{0-0} = 0b0;
5164 let Inst{12-10} = 0b100;
5165 let Inst{21-21} = 0b1;
5166 let Inst{31-24} = 0b01011100;
5167 let isPredicated = 1;
5168 let isPredicatedFalse = 1;
5169 let isTerminator = 1;
5170 let isBranch = 1;
5171 let cofRelax1 = 1;
5172 let cofRelax2 = 1;
5173 let cofMax1 = 1;
5174 let Defs = [PC];
5175 let BaseOpcode = "J2_jump";
5176 let InputType = "imm";
5177 let isTaken = Inst{12};
5178 let isExtendable = 1;
5179 let opExtendable = 1;
5180 let isExtentSigned = 1;
5181 let opExtentBits = 17;
5182 let opExtentAlign = 2;
5184 def J2_jumpr : HInst<
5185 (outs),
5186 (ins IntRegs:$Rs32),
5187 "jumpr $Rs32",
5188 tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel {
5189 let Inst{13-0} = 0b00000000000000;
5190 let Inst{31-21} = 0b01010010100;
5191 let isTerminator = 1;
5192 let isIndirectBranch = 1;
5193 let isBranch = 1;
5194 let cofMax1 = 1;
5195 let Defs = [PC];
5196 let BaseOpcode = "J2_jumpr";
5197 let InputType = "reg";
5198 let isBarrier = 1;
5199 let isPredicable = 1;
5201 def J2_jumprf : HInst<
5202 (outs),
5203 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5204 "if (!$Pu4) jumpr:nt $Rs32",
5205 tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5206 let Inst{7-0} = 0b00000000;
5207 let Inst{13-10} = 0b0000;
5208 let Inst{31-21} = 0b01010011011;
5209 let isPredicated = 1;
5210 let isPredicatedFalse = 1;
5211 let isTerminator = 1;
5212 let isIndirectBranch = 1;
5213 let isBranch = 1;
5214 let cofMax1 = 1;
5215 let Defs = [PC];
5216 let BaseOpcode = "J2_jumpr";
5217 let InputType = "reg";
5218 let isTaken = Inst{12};
5220 def J2_jumprf_nopred_map : HInst<
5221 (outs),
5222 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5223 "if (!$Pu4) jumpr $Rs32",
5224 tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5225 let isPseudo = 1;
5226 let isCodeGenOnly = 1;
5228 def J2_jumprfnew : HInst<
5229 (outs),
5230 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5231 "if (!$Pu4.new) jumpr:nt $Rs32",
5232 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5233 let Inst{7-0} = 0b00000000;
5234 let Inst{13-10} = 0b0010;
5235 let Inst{31-21} = 0b01010011011;
5236 let isPredicated = 1;
5237 let isPredicatedFalse = 1;
5238 let isTerminator = 1;
5239 let isIndirectBranch = 1;
5240 let isBranch = 1;
5241 let isPredicatedNew = 1;
5242 let cofMax1 = 1;
5243 let Defs = [PC];
5244 let BaseOpcode = "J2_jumpr";
5245 let InputType = "reg";
5246 let isTaken = Inst{12};
5248 def J2_jumprfnewpt : HInst<
5249 (outs),
5250 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5251 "if (!$Pu4.new) jumpr:t $Rs32",
5252 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5253 let Inst{7-0} = 0b00000000;
5254 let Inst{13-10} = 0b0110;
5255 let Inst{31-21} = 0b01010011011;
5256 let isPredicated = 1;
5257 let isPredicatedFalse = 1;
5258 let isTerminator = 1;
5259 let isIndirectBranch = 1;
5260 let isBranch = 1;
5261 let isPredicatedNew = 1;
5262 let cofMax1 = 1;
5263 let Defs = [PC];
5264 let BaseOpcode = "J2_jumpr";
5265 let InputType = "reg";
5266 let isTaken = Inst{12};
5268 def J2_jumprfpt : HInst<
5269 (outs),
5270 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5271 "if (!$Pu4) jumpr:t $Rs32",
5272 tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5273 let Inst{7-0} = 0b00000000;
5274 let Inst{13-10} = 0b0100;
5275 let Inst{31-21} = 0b01010011011;
5276 let isPredicated = 1;
5277 let isPredicatedFalse = 1;
5278 let isTerminator = 1;
5279 let isIndirectBranch = 1;
5280 let isBranch = 1;
5281 let cofMax1 = 1;
5282 let Defs = [PC];
5283 let BaseOpcode = "J2_jumpr";
5284 let InputType = "reg";
5285 let isTaken = Inst{12};
5287 def J2_jumprgtez : HInst<
5288 (outs),
5289 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5290 "if ($Rs32>=#0) jump:nt $Ii",
5291 tc_57a55b54, TypeCR>, Enc_0fa531 {
5292 let Inst{0-0} = 0b0;
5293 let Inst{12-12} = 0b0;
5294 let Inst{31-22} = 0b0110000101;
5295 let isPredicated = 1;
5296 let isTerminator = 1;
5297 let isBranch = 1;
5298 let isPredicatedNew = 1;
5299 let cofRelax1 = 1;
5300 let cofRelax2 = 1;
5301 let cofMax1 = 1;
5302 let Defs = [PC];
5303 let isTaken = Inst{12};
5305 def J2_jumprgtezpt : HInst<
5306 (outs),
5307 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5308 "if ($Rs32>=#0) jump:t $Ii",
5309 tc_57a55b54, TypeCR>, Enc_0fa531 {
5310 let Inst{0-0} = 0b0;
5311 let Inst{12-12} = 0b1;
5312 let Inst{31-22} = 0b0110000101;
5313 let isPredicated = 1;
5314 let isTerminator = 1;
5315 let isBranch = 1;
5316 let isPredicatedNew = 1;
5317 let cofRelax1 = 1;
5318 let cofRelax2 = 1;
5319 let cofMax1 = 1;
5320 let Defs = [PC];
5321 let isTaken = Inst{12};
5323 def J2_jumprh : HInst<
5324 (outs),
5325 (ins IntRegs:$Rs32),
5326 "jumprh $Rs32",
5327 tc_f97707c1, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> {
5328 let Inst{13-0} = 0b00000000000000;
5329 let Inst{31-21} = 0b01010010110;
5330 let isTerminator = 1;
5331 let isIndirectBranch = 1;
5332 let isBranch = 1;
5333 let cofMax1 = 1;
5334 let Defs = [PC];
5336 def J2_jumprltez : HInst<
5337 (outs),
5338 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5339 "if ($Rs32<=#0) jump:nt $Ii",
5340 tc_57a55b54, TypeCR>, Enc_0fa531 {
5341 let Inst{0-0} = 0b0;
5342 let Inst{12-12} = 0b0;
5343 let Inst{31-22} = 0b0110000111;
5344 let isPredicated = 1;
5345 let isTerminator = 1;
5346 let isBranch = 1;
5347 let isPredicatedNew = 1;
5348 let cofRelax1 = 1;
5349 let cofRelax2 = 1;
5350 let cofMax1 = 1;
5351 let Defs = [PC];
5352 let isTaken = Inst{12};
5354 def J2_jumprltezpt : HInst<
5355 (outs),
5356 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5357 "if ($Rs32<=#0) jump:t $Ii",
5358 tc_57a55b54, TypeCR>, Enc_0fa531 {
5359 let Inst{0-0} = 0b0;
5360 let Inst{12-12} = 0b1;
5361 let Inst{31-22} = 0b0110000111;
5362 let isPredicated = 1;
5363 let isTerminator = 1;
5364 let isBranch = 1;
5365 let isPredicatedNew = 1;
5366 let cofRelax1 = 1;
5367 let cofRelax2 = 1;
5368 let cofMax1 = 1;
5369 let Defs = [PC];
5370 let isTaken = Inst{12};
5372 def J2_jumprnz : HInst<
5373 (outs),
5374 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5375 "if ($Rs32==#0) jump:nt $Ii",
5376 tc_57a55b54, TypeCR>, Enc_0fa531 {
5377 let Inst{0-0} = 0b0;
5378 let Inst{12-12} = 0b0;
5379 let Inst{31-22} = 0b0110000110;
5380 let isPredicated = 1;
5381 let isTerminator = 1;
5382 let isBranch = 1;
5383 let isPredicatedNew = 1;
5384 let cofRelax1 = 1;
5385 let cofRelax2 = 1;
5386 let cofMax1 = 1;
5387 let Defs = [PC];
5388 let isTaken = Inst{12};
5390 def J2_jumprnzpt : HInst<
5391 (outs),
5392 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5393 "if ($Rs32==#0) jump:t $Ii",
5394 tc_57a55b54, TypeCR>, Enc_0fa531 {
5395 let Inst{0-0} = 0b0;
5396 let Inst{12-12} = 0b1;
5397 let Inst{31-22} = 0b0110000110;
5398 let isPredicated = 1;
5399 let isTerminator = 1;
5400 let isBranch = 1;
5401 let isPredicatedNew = 1;
5402 let cofRelax1 = 1;
5403 let cofRelax2 = 1;
5404 let cofMax1 = 1;
5405 let Defs = [PC];
5406 let isTaken = Inst{12};
5408 def J2_jumprt : HInst<
5409 (outs),
5410 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5411 "if ($Pu4) jumpr:nt $Rs32",
5412 tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel {
5413 let Inst{7-0} = 0b00000000;
5414 let Inst{13-10} = 0b0000;
5415 let Inst{31-21} = 0b01010011010;
5416 let isPredicated = 1;
5417 let isTerminator = 1;
5418 let isIndirectBranch = 1;
5419 let isBranch = 1;
5420 let cofMax1 = 1;
5421 let Defs = [PC];
5422 let BaseOpcode = "J2_jumpr";
5423 let InputType = "reg";
5424 let isTaken = Inst{12};
5426 def J2_jumprt_nopred_map : HInst<
5427 (outs),
5428 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5429 "if ($Pu4) jumpr $Rs32",
5430 tc_2f573607, TypeMAPPING>, Requires<[HasV60]> {
5431 let isPseudo = 1;
5432 let isCodeGenOnly = 1;
5434 def J2_jumprtnew : HInst<
5435 (outs),
5436 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5437 "if ($Pu4.new) jumpr:nt $Rs32",
5438 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5439 let Inst{7-0} = 0b00000000;
5440 let Inst{13-10} = 0b0010;
5441 let Inst{31-21} = 0b01010011010;
5442 let isPredicated = 1;
5443 let isTerminator = 1;
5444 let isIndirectBranch = 1;
5445 let isBranch = 1;
5446 let isPredicatedNew = 1;
5447 let cofMax1 = 1;
5448 let Defs = [PC];
5449 let BaseOpcode = "J2_jumpr";
5450 let InputType = "reg";
5451 let isTaken = Inst{12};
5453 def J2_jumprtnewpt : HInst<
5454 (outs),
5455 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5456 "if ($Pu4.new) jumpr:t $Rs32",
5457 tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel {
5458 let Inst{7-0} = 0b00000000;
5459 let Inst{13-10} = 0b0110;
5460 let Inst{31-21} = 0b01010011010;
5461 let isPredicated = 1;
5462 let isTerminator = 1;
5463 let isIndirectBranch = 1;
5464 let isBranch = 1;
5465 let isPredicatedNew = 1;
5466 let cofMax1 = 1;
5467 let Defs = [PC];
5468 let BaseOpcode = "J2_jumpr";
5469 let InputType = "reg";
5470 let isTaken = Inst{12};
5472 def J2_jumprtpt : HInst<
5473 (outs),
5474 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5475 "if ($Pu4) jumpr:t $Rs32",
5476 tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5477 let Inst{7-0} = 0b00000000;
5478 let Inst{13-10} = 0b0100;
5479 let Inst{31-21} = 0b01010011010;
5480 let isPredicated = 1;
5481 let isTerminator = 1;
5482 let isIndirectBranch = 1;
5483 let isBranch = 1;
5484 let cofMax1 = 1;
5485 let Defs = [PC];
5486 let BaseOpcode = "J2_jumpr";
5487 let InputType = "reg";
5488 let isTaken = Inst{12};
5490 def J2_jumprz : HInst<
5491 (outs),
5492 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5493 "if ($Rs32!=#0) jump:nt $Ii",
5494 tc_57a55b54, TypeCR>, Enc_0fa531 {
5495 let Inst{0-0} = 0b0;
5496 let Inst{12-12} = 0b0;
5497 let Inst{31-22} = 0b0110000100;
5498 let isPredicated = 1;
5499 let isTerminator = 1;
5500 let isBranch = 1;
5501 let isPredicatedNew = 1;
5502 let cofRelax1 = 1;
5503 let cofRelax2 = 1;
5504 let cofMax1 = 1;
5505 let Defs = [PC];
5506 let isTaken = Inst{12};
5508 def J2_jumprzpt : HInst<
5509 (outs),
5510 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5511 "if ($Rs32!=#0) jump:t $Ii",
5512 tc_57a55b54, TypeCR>, Enc_0fa531 {
5513 let Inst{0-0} = 0b0;
5514 let Inst{12-12} = 0b1;
5515 let Inst{31-22} = 0b0110000100;
5516 let isPredicated = 1;
5517 let isTerminator = 1;
5518 let isBranch = 1;
5519 let isPredicatedNew = 1;
5520 let cofRelax1 = 1;
5521 let cofRelax2 = 1;
5522 let cofMax1 = 1;
5523 let Defs = [PC];
5524 let isTaken = Inst{12};
5526 def J2_jumpt : HInst<
5527 (outs),
5528 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5529 "if ($Pu4) jump:nt $Ii",
5530 tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel {
5531 let Inst{0-0} = 0b0;
5532 let Inst{12-10} = 0b000;
5533 let Inst{21-21} = 0b0;
5534 let Inst{31-24} = 0b01011100;
5535 let isPredicated = 1;
5536 let isTerminator = 1;
5537 let isBranch = 1;
5538 let cofRelax1 = 1;
5539 let cofRelax2 = 1;
5540 let cofMax1 = 1;
5541 let Defs = [PC];
5542 let BaseOpcode = "J2_jump";
5543 let InputType = "imm";
5544 let isTaken = Inst{12};
5545 let isExtendable = 1;
5546 let opExtendable = 1;
5547 let isExtentSigned = 1;
5548 let opExtentBits = 17;
5549 let opExtentAlign = 2;
5551 def J2_jumpt_nopred_map : HInst<
5552 (outs),
5553 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5554 "if ($Pu4) jump $Ii",
5555 tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> {
5556 let isPseudo = 1;
5557 let isCodeGenOnly = 1;
5559 def J2_jumptnew : HInst<
5560 (outs),
5561 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5562 "if ($Pu4.new) jump:nt $Ii",
5563 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5564 let Inst{0-0} = 0b0;
5565 let Inst{12-10} = 0b010;
5566 let Inst{21-21} = 0b0;
5567 let Inst{31-24} = 0b01011100;
5568 let isPredicated = 1;
5569 let isTerminator = 1;
5570 let isBranch = 1;
5571 let isPredicatedNew = 1;
5572 let cofRelax1 = 1;
5573 let cofRelax2 = 1;
5574 let cofMax1 = 1;
5575 let Defs = [PC];
5576 let BaseOpcode = "J2_jump";
5577 let InputType = "imm";
5578 let isTaken = Inst{12};
5579 let isExtendable = 1;
5580 let opExtendable = 1;
5581 let isExtentSigned = 1;
5582 let opExtentBits = 17;
5583 let opExtentAlign = 2;
5585 def J2_jumptnewpt : HInst<
5586 (outs),
5587 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5588 "if ($Pu4.new) jump:t $Ii",
5589 tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel {
5590 let Inst{0-0} = 0b0;
5591 let Inst{12-10} = 0b110;
5592 let Inst{21-21} = 0b0;
5593 let Inst{31-24} = 0b01011100;
5594 let isPredicated = 1;
5595 let isTerminator = 1;
5596 let isBranch = 1;
5597 let isPredicatedNew = 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_jumptpt : HInst<
5612 (outs),
5613 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5614 "if ($Pu4) jump:t $Ii",
5615 tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5616 let Inst{0-0} = 0b0;
5617 let Inst{12-10} = 0b100;
5618 let Inst{21-21} = 0b0;
5619 let Inst{31-24} = 0b01011100;
5620 let isPredicated = 1;
5621 let isTerminator = 1;
5622 let isBranch = 1;
5623 let cofRelax1 = 1;
5624 let cofRelax2 = 1;
5625 let cofMax1 = 1;
5626 let Defs = [PC];
5627 let BaseOpcode = "J2_jump";
5628 let InputType = "imm";
5629 let isTaken = Inst{12};
5630 let isExtendable = 1;
5631 let opExtendable = 1;
5632 let isExtentSigned = 1;
5633 let opExtentBits = 17;
5634 let opExtentAlign = 2;
5636 def J2_loop0i : HInst<
5637 (outs),
5638 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5639 "loop0($Ii,#$II)",
5640 tc_1248597c, TypeCR>, Enc_4dc228 {
5641 let Inst{2-2} = 0b0;
5642 let Inst{13-13} = 0b0;
5643 let Inst{31-21} = 0b01101001000;
5644 let cofRelax1 = 1;
5645 let cofRelax2 = 1;
5646 let Defs = [LC0, SA0, USR];
5647 let isExtendable = 1;
5648 let opExtendable = 0;
5649 let isExtentSigned = 1;
5650 let opExtentBits = 9;
5651 let opExtentAlign = 2;
5653 def J2_loop0r : HInst<
5654 (outs),
5655 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5656 "loop0($Ii,$Rs32)",
5657 tc_9406230a, TypeCR>, Enc_864a5a {
5658 let Inst{2-0} = 0b000;
5659 let Inst{7-5} = 0b000;
5660 let Inst{13-13} = 0b0;
5661 let Inst{31-21} = 0b01100000000;
5662 let cofRelax1 = 1;
5663 let cofRelax2 = 1;
5664 let Defs = [LC0, SA0, USR];
5665 let isExtendable = 1;
5666 let opExtendable = 0;
5667 let isExtentSigned = 1;
5668 let opExtentBits = 9;
5669 let opExtentAlign = 2;
5671 def J2_loop1i : HInst<
5672 (outs),
5673 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5674 "loop1($Ii,#$II)",
5675 tc_1248597c, TypeCR>, Enc_4dc228 {
5676 let Inst{2-2} = 0b0;
5677 let Inst{13-13} = 0b0;
5678 let Inst{31-21} = 0b01101001001;
5679 let cofRelax1 = 1;
5680 let cofRelax2 = 1;
5681 let Defs = [LC1, SA1];
5682 let isExtendable = 1;
5683 let opExtendable = 0;
5684 let isExtentSigned = 1;
5685 let opExtentBits = 9;
5686 let opExtentAlign = 2;
5688 def J2_loop1r : HInst<
5689 (outs),
5690 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5691 "loop1($Ii,$Rs32)",
5692 tc_9406230a, TypeCR>, Enc_864a5a {
5693 let Inst{2-0} = 0b000;
5694 let Inst{7-5} = 0b000;
5695 let Inst{13-13} = 0b0;
5696 let Inst{31-21} = 0b01100000001;
5697 let cofRelax1 = 1;
5698 let cofRelax2 = 1;
5699 let Defs = [LC1, SA1];
5700 let isExtendable = 1;
5701 let opExtendable = 0;
5702 let isExtentSigned = 1;
5703 let opExtentBits = 9;
5704 let opExtentAlign = 2;
5706 def J2_pause : HInst<
5707 (outs),
5708 (ins u10_0Imm:$Ii),
5709 "pause(#$Ii)",
5710 tc_d57d649c, TypeJ>, Enc_bea5da {
5711 let Inst{1-0} = 0b00;
5712 let Inst{7-5} = 0b000;
5713 let Inst{13-13} = 0b0;
5714 let Inst{31-18} = 0b01010100010000;
5715 let isSolo = 1;
5717 def J2_ploop1si : HInst<
5718 (outs),
5719 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5720 "p3 = sp1loop0($Ii,#$II)",
5721 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5722 let Inst{2-2} = 0b0;
5723 let Inst{13-13} = 0b0;
5724 let Inst{31-21} = 0b01101001101;
5725 let isPredicateLate = 1;
5726 let cofRelax1 = 1;
5727 let cofRelax2 = 1;
5728 let Defs = [LC0, P3, SA0, USR];
5729 let isExtendable = 1;
5730 let opExtendable = 0;
5731 let isExtentSigned = 1;
5732 let opExtentBits = 9;
5733 let opExtentAlign = 2;
5735 def J2_ploop1sr : HInst<
5736 (outs),
5737 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5738 "p3 = sp1loop0($Ii,$Rs32)",
5739 tc_6d861a95, TypeCR>, Enc_864a5a {
5740 let Inst{2-0} = 0b000;
5741 let Inst{7-5} = 0b000;
5742 let Inst{13-13} = 0b0;
5743 let Inst{31-21} = 0b01100000101;
5744 let isPredicateLate = 1;
5745 let cofRelax1 = 1;
5746 let cofRelax2 = 1;
5747 let Defs = [LC0, P3, SA0, USR];
5748 let isExtendable = 1;
5749 let opExtendable = 0;
5750 let isExtentSigned = 1;
5751 let opExtentBits = 9;
5752 let opExtentAlign = 2;
5754 def J2_ploop2si : HInst<
5755 (outs),
5756 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5757 "p3 = sp2loop0($Ii,#$II)",
5758 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5759 let Inst{2-2} = 0b0;
5760 let Inst{13-13} = 0b0;
5761 let Inst{31-21} = 0b01101001110;
5762 let isPredicateLate = 1;
5763 let cofRelax1 = 1;
5764 let cofRelax2 = 1;
5765 let Defs = [LC0, P3, SA0, USR];
5766 let isExtendable = 1;
5767 let opExtendable = 0;
5768 let isExtentSigned = 1;
5769 let opExtentBits = 9;
5770 let opExtentAlign = 2;
5772 def J2_ploop2sr : HInst<
5773 (outs),
5774 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5775 "p3 = sp2loop0($Ii,$Rs32)",
5776 tc_6d861a95, TypeCR>, Enc_864a5a {
5777 let Inst{2-0} = 0b000;
5778 let Inst{7-5} = 0b000;
5779 let Inst{13-13} = 0b0;
5780 let Inst{31-21} = 0b01100000110;
5781 let isPredicateLate = 1;
5782 let cofRelax1 = 1;
5783 let cofRelax2 = 1;
5784 let Defs = [LC0, P3, SA0, USR];
5785 let isExtendable = 1;
5786 let opExtendable = 0;
5787 let isExtentSigned = 1;
5788 let opExtentBits = 9;
5789 let opExtentAlign = 2;
5791 def J2_ploop3si : HInst<
5792 (outs),
5793 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5794 "p3 = sp3loop0($Ii,#$II)",
5795 tc_4abdbdc6, TypeCR>, Enc_4dc228 {
5796 let Inst{2-2} = 0b0;
5797 let Inst{13-13} = 0b0;
5798 let Inst{31-21} = 0b01101001111;
5799 let isPredicateLate = 1;
5800 let cofRelax1 = 1;
5801 let cofRelax2 = 1;
5802 let Defs = [LC0, P3, SA0, USR];
5803 let isExtendable = 1;
5804 let opExtendable = 0;
5805 let isExtentSigned = 1;
5806 let opExtentBits = 9;
5807 let opExtentAlign = 2;
5809 def J2_ploop3sr : HInst<
5810 (outs),
5811 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5812 "p3 = sp3loop0($Ii,$Rs32)",
5813 tc_6d861a95, TypeCR>, Enc_864a5a {
5814 let Inst{2-0} = 0b000;
5815 let Inst{7-5} = 0b000;
5816 let Inst{13-13} = 0b0;
5817 let Inst{31-21} = 0b01100000111;
5818 let isPredicateLate = 1;
5819 let cofRelax1 = 1;
5820 let cofRelax2 = 1;
5821 let Defs = [LC0, P3, SA0, USR];
5822 let isExtendable = 1;
5823 let opExtendable = 0;
5824 let isExtentSigned = 1;
5825 let opExtentBits = 9;
5826 let opExtentAlign = 2;
5828 def J2_rte : HInst<
5829 (outs),
5830 (ins),
5831 "rte",
5832 tc_b9bec29e, TypeJ>, Enc_e3b0c4 {
5833 let Inst{13-0} = 0b00000000000000;
5834 let Inst{31-16} = 0b0101011111100000;
5835 let Uses = [ELR];
5836 let Defs = [PC];
5838 def J2_trap0 : HInst<
5839 (outs),
5840 (ins u8_0Imm:$Ii),
5841 "trap0(#$Ii)",
5842 tc_45f9d1be, TypeJ>, Enc_a51a9a {
5843 let Inst{1-0} = 0b00;
5844 let Inst{7-5} = 0b000;
5845 let Inst{13-13} = 0b0;
5846 let Inst{31-16} = 0b0101010000000000;
5847 let isSolo = 1;
5848 let hasSideEffects = 1;
5850 def J2_trap1 : HInst<
5851 (outs IntRegs:$Rx32),
5852 (ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5853 "trap1($Rx32,#$Ii)",
5854 tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> {
5855 let Inst{1-0} = 0b00;
5856 let Inst{7-5} = 0b000;
5857 let Inst{13-13} = 0b0;
5858 let Inst{31-21} = 0b01010100100;
5859 let hasNewValue = 1;
5860 let opNewValue = 0;
5861 let isSolo = 1;
5862 let Uses = [CCR, GOSP];
5863 let Defs = [CCR, GOSP, PC];
5864 let hasSideEffects = 1;
5865 let Constraints = "$Rx32 = $Rx32in";
5867 def J2_trap1_noregmap : HInst<
5868 (outs),
5869 (ins u8_0Imm:$Ii),
5870 "trap1(#$Ii)",
5871 tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> {
5872 let hasSideEffects = 1;
5873 let isPseudo = 1;
5874 let isCodeGenOnly = 1;
5876 def J2_unpause : HInst<
5877 (outs),
5878 (ins),
5879 "unpause",
5880 tc_33e7e673, TypeJ>, Enc_e3b0c4, Requires<[HasV73]> {
5881 let Inst{13-0} = 0b01000000000000;
5882 let Inst{31-16} = 0b0101011111100000;
5883 let isSolo = 1;
5885 def J4_cmpeq_f_jumpnv_nt : HInst<
5886 (outs),
5887 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5888 "if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5889 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5890 let Inst{0-0} = 0b0;
5891 let Inst{13-13} = 0b0;
5892 let Inst{19-19} = 0b0;
5893 let Inst{31-22} = 0b0010000001;
5894 let isPredicated = 1;
5895 let isPredicatedFalse = 1;
5896 let isTerminator = 1;
5897 let isBranch = 1;
5898 let isNewValue = 1;
5899 let cofMax1 = 1;
5900 let isRestrictNoSlot1Store = 1;
5901 let Defs = [PC];
5902 let BaseOpcode = "J4_cmpeqr";
5903 let isTaken = Inst{13};
5904 let isExtendable = 1;
5905 let opExtendable = 2;
5906 let isExtentSigned = 1;
5907 let opExtentBits = 11;
5908 let opExtentAlign = 2;
5909 let opNewValue = 0;
5911 def J4_cmpeq_f_jumpnv_t : HInst<
5912 (outs),
5913 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5914 "if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5915 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
5916 let Inst{0-0} = 0b0;
5917 let Inst{13-13} = 0b1;
5918 let Inst{19-19} = 0b0;
5919 let Inst{31-22} = 0b0010000001;
5920 let isPredicated = 1;
5921 let isPredicatedFalse = 1;
5922 let isTerminator = 1;
5923 let isBranch = 1;
5924 let isNewValue = 1;
5925 let cofMax1 = 1;
5926 let isRestrictNoSlot1Store = 1;
5927 let Defs = [PC];
5928 let BaseOpcode = "J4_cmpeqr";
5929 let isTaken = Inst{13};
5930 let isExtendable = 1;
5931 let opExtendable = 2;
5932 let isExtentSigned = 1;
5933 let opExtentBits = 11;
5934 let opExtentAlign = 2;
5935 let opNewValue = 0;
5937 def J4_cmpeq_fp0_jump_nt : HInst<
5938 (outs),
5939 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5940 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5941 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5942 let Inst{0-0} = 0b0;
5943 let Inst{13-12} = 0b00;
5944 let Inst{31-22} = 0b0001010001;
5945 let isPredicated = 1;
5946 let isPredicatedFalse = 1;
5947 let isTerminator = 1;
5948 let isBranch = 1;
5949 let isPredicatedNew = 1;
5950 let cofRelax1 = 1;
5951 let cofRelax2 = 1;
5952 let cofMax1 = 1;
5953 let Uses = [P0];
5954 let Defs = [P0, PC];
5955 let BaseOpcode = "J4_cmpeqp0";
5956 let isTaken = Inst{13};
5957 let isExtendable = 1;
5958 let opExtendable = 2;
5959 let isExtentSigned = 1;
5960 let opExtentBits = 11;
5961 let opExtentAlign = 2;
5963 def J4_cmpeq_fp0_jump_t : HInst<
5964 (outs),
5965 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5966 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5967 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5968 let Inst{0-0} = 0b0;
5969 let Inst{13-12} = 0b10;
5970 let Inst{31-22} = 0b0001010001;
5971 let isPredicated = 1;
5972 let isPredicatedFalse = 1;
5973 let isTerminator = 1;
5974 let isBranch = 1;
5975 let isPredicatedNew = 1;
5976 let cofRelax1 = 1;
5977 let cofRelax2 = 1;
5978 let cofMax1 = 1;
5979 let Uses = [P0];
5980 let Defs = [P0, PC];
5981 let BaseOpcode = "J4_cmpeqp0";
5982 let isTaken = Inst{13};
5983 let isExtendable = 1;
5984 let opExtendable = 2;
5985 let isExtentSigned = 1;
5986 let opExtentBits = 11;
5987 let opExtentAlign = 2;
5989 def J4_cmpeq_fp1_jump_nt : HInst<
5990 (outs),
5991 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5992 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5993 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
5994 let Inst{0-0} = 0b0;
5995 let Inst{13-12} = 0b01;
5996 let Inst{31-22} = 0b0001010001;
5997 let isPredicated = 1;
5998 let isPredicatedFalse = 1;
5999 let isTerminator = 1;
6000 let isBranch = 1;
6001 let isPredicatedNew = 1;
6002 let cofRelax1 = 1;
6003 let cofRelax2 = 1;
6004 let cofMax1 = 1;
6005 let Uses = [P1];
6006 let Defs = [P1, PC];
6007 let BaseOpcode = "J4_cmpeqp1";
6008 let isTaken = Inst{13};
6009 let isExtendable = 1;
6010 let opExtendable = 2;
6011 let isExtentSigned = 1;
6012 let opExtentBits = 11;
6013 let opExtentAlign = 2;
6015 def J4_cmpeq_fp1_jump_t : HInst<
6016 (outs),
6017 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6018 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6019 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6020 let Inst{0-0} = 0b0;
6021 let Inst{13-12} = 0b11;
6022 let Inst{31-22} = 0b0001010001;
6023 let isPredicated = 1;
6024 let isPredicatedFalse = 1;
6025 let isTerminator = 1;
6026 let isBranch = 1;
6027 let isPredicatedNew = 1;
6028 let cofRelax1 = 1;
6029 let cofRelax2 = 1;
6030 let cofMax1 = 1;
6031 let Uses = [P1];
6032 let Defs = [P1, PC];
6033 let BaseOpcode = "J4_cmpeqp1";
6034 let isTaken = Inst{13};
6035 let isExtendable = 1;
6036 let opExtendable = 2;
6037 let isExtentSigned = 1;
6038 let opExtentBits = 11;
6039 let opExtentAlign = 2;
6041 def J4_cmpeq_t_jumpnv_nt : HInst<
6042 (outs),
6043 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6044 "if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
6045 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6046 let Inst{0-0} = 0b0;
6047 let Inst{13-13} = 0b0;
6048 let Inst{19-19} = 0b0;
6049 let Inst{31-22} = 0b0010000000;
6050 let isPredicated = 1;
6051 let isTerminator = 1;
6052 let isBranch = 1;
6053 let isNewValue = 1;
6054 let cofMax1 = 1;
6055 let isRestrictNoSlot1Store = 1;
6056 let Defs = [PC];
6057 let BaseOpcode = "J4_cmpeqr";
6058 let isTaken = Inst{13};
6059 let isExtendable = 1;
6060 let opExtendable = 2;
6061 let isExtentSigned = 1;
6062 let opExtentBits = 11;
6063 let opExtentAlign = 2;
6064 let opNewValue = 0;
6066 def J4_cmpeq_t_jumpnv_t : HInst<
6067 (outs),
6068 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6069 "if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
6070 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6071 let Inst{0-0} = 0b0;
6072 let Inst{13-13} = 0b1;
6073 let Inst{19-19} = 0b0;
6074 let Inst{31-22} = 0b0010000000;
6075 let isPredicated = 1;
6076 let isTerminator = 1;
6077 let isBranch = 1;
6078 let isNewValue = 1;
6079 let cofMax1 = 1;
6080 let isRestrictNoSlot1Store = 1;
6081 let Defs = [PC];
6082 let BaseOpcode = "J4_cmpeqr";
6083 let isTaken = Inst{13};
6084 let isExtendable = 1;
6085 let opExtendable = 2;
6086 let isExtentSigned = 1;
6087 let opExtentBits = 11;
6088 let opExtentAlign = 2;
6089 let opNewValue = 0;
6091 def J4_cmpeq_tp0_jump_nt : HInst<
6092 (outs),
6093 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6094 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6095 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6096 let Inst{0-0} = 0b0;
6097 let Inst{13-12} = 0b00;
6098 let Inst{31-22} = 0b0001010000;
6099 let isPredicated = 1;
6100 let isTerminator = 1;
6101 let isBranch = 1;
6102 let isPredicatedNew = 1;
6103 let cofRelax1 = 1;
6104 let cofRelax2 = 1;
6105 let cofMax1 = 1;
6106 let Uses = [P0];
6107 let Defs = [P0, PC];
6108 let BaseOpcode = "J4_cmpeqp0";
6109 let isTaken = Inst{13};
6110 let isExtendable = 1;
6111 let opExtendable = 2;
6112 let isExtentSigned = 1;
6113 let opExtentBits = 11;
6114 let opExtentAlign = 2;
6116 def J4_cmpeq_tp0_jump_t : HInst<
6117 (outs),
6118 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6119 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6120 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6121 let Inst{0-0} = 0b0;
6122 let Inst{13-12} = 0b10;
6123 let Inst{31-22} = 0b0001010000;
6124 let isPredicated = 1;
6125 let isTerminator = 1;
6126 let isBranch = 1;
6127 let isPredicatedNew = 1;
6128 let cofRelax1 = 1;
6129 let cofRelax2 = 1;
6130 let cofMax1 = 1;
6131 let Uses = [P0];
6132 let Defs = [P0, PC];
6133 let BaseOpcode = "J4_cmpeqp0";
6134 let isTaken = Inst{13};
6135 let isExtendable = 1;
6136 let opExtendable = 2;
6137 let isExtentSigned = 1;
6138 let opExtentBits = 11;
6139 let opExtentAlign = 2;
6141 def J4_cmpeq_tp1_jump_nt : HInst<
6142 (outs),
6143 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6144 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6145 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6146 let Inst{0-0} = 0b0;
6147 let Inst{13-12} = 0b01;
6148 let Inst{31-22} = 0b0001010000;
6149 let isPredicated = 1;
6150 let isTerminator = 1;
6151 let isBranch = 1;
6152 let isPredicatedNew = 1;
6153 let cofRelax1 = 1;
6154 let cofRelax2 = 1;
6155 let cofMax1 = 1;
6156 let Uses = [P1];
6157 let Defs = [P1, PC];
6158 let BaseOpcode = "J4_cmpeqp1";
6159 let isTaken = Inst{13};
6160 let isExtendable = 1;
6161 let opExtendable = 2;
6162 let isExtentSigned = 1;
6163 let opExtentBits = 11;
6164 let opExtentAlign = 2;
6166 def J4_cmpeq_tp1_jump_t : HInst<
6167 (outs),
6168 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6169 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6170 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6171 let Inst{0-0} = 0b0;
6172 let Inst{13-12} = 0b11;
6173 let Inst{31-22} = 0b0001010000;
6174 let isPredicated = 1;
6175 let isTerminator = 1;
6176 let isBranch = 1;
6177 let isPredicatedNew = 1;
6178 let cofRelax1 = 1;
6179 let cofRelax2 = 1;
6180 let cofMax1 = 1;
6181 let Uses = [P1];
6182 let Defs = [P1, PC];
6183 let BaseOpcode = "J4_cmpeqp1";
6184 let isTaken = Inst{13};
6185 let isExtendable = 1;
6186 let opExtendable = 2;
6187 let isExtentSigned = 1;
6188 let opExtentBits = 11;
6189 let opExtentAlign = 2;
6191 def J4_cmpeqi_f_jumpnv_nt : HInst<
6192 (outs),
6193 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6194 "if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6195 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6196 let Inst{0-0} = 0b0;
6197 let Inst{13-13} = 0b0;
6198 let Inst{19-19} = 0b0;
6199 let Inst{31-22} = 0b0010010001;
6200 let isPredicated = 1;
6201 let isPredicatedFalse = 1;
6202 let isTerminator = 1;
6203 let isBranch = 1;
6204 let isNewValue = 1;
6205 let cofMax1 = 1;
6206 let isRestrictNoSlot1Store = 1;
6207 let Defs = [PC];
6208 let BaseOpcode = "J4_cmpeqi";
6209 let isTaken = Inst{13};
6210 let isExtendable = 1;
6211 let opExtendable = 2;
6212 let isExtentSigned = 1;
6213 let opExtentBits = 11;
6214 let opExtentAlign = 2;
6215 let opNewValue = 0;
6217 def J4_cmpeqi_f_jumpnv_t : HInst<
6218 (outs),
6219 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6220 "if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6221 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6222 let Inst{0-0} = 0b0;
6223 let Inst{13-13} = 0b1;
6224 let Inst{19-19} = 0b0;
6225 let Inst{31-22} = 0b0010010001;
6226 let isPredicated = 1;
6227 let isPredicatedFalse = 1;
6228 let isTerminator = 1;
6229 let isBranch = 1;
6230 let isNewValue = 1;
6231 let cofMax1 = 1;
6232 let isRestrictNoSlot1Store = 1;
6233 let Defs = [PC];
6234 let BaseOpcode = "J4_cmpeqi";
6235 let isTaken = Inst{13};
6236 let isExtendable = 1;
6237 let opExtendable = 2;
6238 let isExtentSigned = 1;
6239 let opExtentBits = 11;
6240 let opExtentAlign = 2;
6241 let opNewValue = 0;
6243 def J4_cmpeqi_fp0_jump_nt : HInst<
6244 (outs),
6245 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6246 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6247 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6248 let Inst{0-0} = 0b0;
6249 let Inst{13-13} = 0b0;
6250 let Inst{31-22} = 0b0001000001;
6251 let isPredicated = 1;
6252 let isPredicatedFalse = 1;
6253 let isTerminator = 1;
6254 let isBranch = 1;
6255 let isPredicatedNew = 1;
6256 let cofRelax1 = 1;
6257 let cofRelax2 = 1;
6258 let cofMax1 = 1;
6259 let Uses = [P0];
6260 let Defs = [P0, PC];
6261 let BaseOpcode = "J4_cmpeqip0";
6262 let isTaken = Inst{13};
6263 let isExtendable = 1;
6264 let opExtendable = 2;
6265 let isExtentSigned = 1;
6266 let opExtentBits = 11;
6267 let opExtentAlign = 2;
6269 def J4_cmpeqi_fp0_jump_t : HInst<
6270 (outs),
6271 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6272 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
6273 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6274 let Inst{0-0} = 0b0;
6275 let Inst{13-13} = 0b1;
6276 let Inst{31-22} = 0b0001000001;
6277 let isPredicated = 1;
6278 let isPredicatedFalse = 1;
6279 let isTerminator = 1;
6280 let isBranch = 1;
6281 let isPredicatedNew = 1;
6282 let cofRelax1 = 1;
6283 let cofRelax2 = 1;
6284 let cofMax1 = 1;
6285 let Uses = [P0];
6286 let Defs = [P0, PC];
6287 let BaseOpcode = "J4_cmpeqip0";
6288 let isTaken = Inst{13};
6289 let isExtendable = 1;
6290 let opExtendable = 2;
6291 let isExtentSigned = 1;
6292 let opExtentBits = 11;
6293 let opExtentAlign = 2;
6295 def J4_cmpeqi_fp1_jump_nt : HInst<
6296 (outs),
6297 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6298 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6299 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6300 let Inst{0-0} = 0b0;
6301 let Inst{13-13} = 0b0;
6302 let Inst{31-22} = 0b0001001001;
6303 let isPredicated = 1;
6304 let isPredicatedFalse = 1;
6305 let isTerminator = 1;
6306 let isBranch = 1;
6307 let isPredicatedNew = 1;
6308 let cofRelax1 = 1;
6309 let cofRelax2 = 1;
6310 let cofMax1 = 1;
6311 let Uses = [P1];
6312 let Defs = [P1, PC];
6313 let BaseOpcode = "J4_cmpeqip1";
6314 let isTaken = Inst{13};
6315 let isExtendable = 1;
6316 let opExtendable = 2;
6317 let isExtentSigned = 1;
6318 let opExtentBits = 11;
6319 let opExtentAlign = 2;
6321 def J4_cmpeqi_fp1_jump_t : HInst<
6322 (outs),
6323 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6324 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
6325 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6326 let Inst{0-0} = 0b0;
6327 let Inst{13-13} = 0b1;
6328 let Inst{31-22} = 0b0001001001;
6329 let isPredicated = 1;
6330 let isPredicatedFalse = 1;
6331 let isTerminator = 1;
6332 let isBranch = 1;
6333 let isPredicatedNew = 1;
6334 let cofRelax1 = 1;
6335 let cofRelax2 = 1;
6336 let cofMax1 = 1;
6337 let Uses = [P1];
6338 let Defs = [P1, PC];
6339 let BaseOpcode = "J4_cmpeqip1";
6340 let isTaken = Inst{13};
6341 let isExtendable = 1;
6342 let opExtendable = 2;
6343 let isExtentSigned = 1;
6344 let opExtentBits = 11;
6345 let opExtentAlign = 2;
6347 def J4_cmpeqi_t_jumpnv_nt : HInst<
6348 (outs),
6349 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6350 "if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6351 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6352 let Inst{0-0} = 0b0;
6353 let Inst{13-13} = 0b0;
6354 let Inst{19-19} = 0b0;
6355 let Inst{31-22} = 0b0010010000;
6356 let isPredicated = 1;
6357 let isTerminator = 1;
6358 let isBranch = 1;
6359 let isNewValue = 1;
6360 let cofMax1 = 1;
6361 let isRestrictNoSlot1Store = 1;
6362 let Defs = [PC];
6363 let BaseOpcode = "J4_cmpeqi";
6364 let isTaken = Inst{13};
6365 let isExtendable = 1;
6366 let opExtendable = 2;
6367 let isExtentSigned = 1;
6368 let opExtentBits = 11;
6369 let opExtentAlign = 2;
6370 let opNewValue = 0;
6372 def J4_cmpeqi_t_jumpnv_t : HInst<
6373 (outs),
6374 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6375 "if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6376 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
6377 let Inst{0-0} = 0b0;
6378 let Inst{13-13} = 0b1;
6379 let Inst{19-19} = 0b0;
6380 let Inst{31-22} = 0b0010010000;
6381 let isPredicated = 1;
6382 let isTerminator = 1;
6383 let isBranch = 1;
6384 let isNewValue = 1;
6385 let cofMax1 = 1;
6386 let isRestrictNoSlot1Store = 1;
6387 let Defs = [PC];
6388 let BaseOpcode = "J4_cmpeqi";
6389 let isTaken = Inst{13};
6390 let isExtendable = 1;
6391 let opExtendable = 2;
6392 let isExtentSigned = 1;
6393 let opExtentBits = 11;
6394 let opExtentAlign = 2;
6395 let opNewValue = 0;
6397 def J4_cmpeqi_tp0_jump_nt : HInst<
6398 (outs),
6399 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6400 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6401 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6402 let Inst{0-0} = 0b0;
6403 let Inst{13-13} = 0b0;
6404 let Inst{31-22} = 0b0001000000;
6405 let isPredicated = 1;
6406 let isTerminator = 1;
6407 let isBranch = 1;
6408 let isPredicatedNew = 1;
6409 let cofRelax1 = 1;
6410 let cofRelax2 = 1;
6411 let cofMax1 = 1;
6412 let Uses = [P0];
6413 let Defs = [P0, PC];
6414 let BaseOpcode = "J4_cmpeqip0";
6415 let isTaken = Inst{13};
6416 let isExtendable = 1;
6417 let opExtendable = 2;
6418 let isExtentSigned = 1;
6419 let opExtentBits = 11;
6420 let opExtentAlign = 2;
6422 def J4_cmpeqi_tp0_jump_t : HInst<
6423 (outs),
6424 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6425 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6426 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6427 let Inst{0-0} = 0b0;
6428 let Inst{13-13} = 0b1;
6429 let Inst{31-22} = 0b0001000000;
6430 let isPredicated = 1;
6431 let isTerminator = 1;
6432 let isBranch = 1;
6433 let isPredicatedNew = 1;
6434 let cofRelax1 = 1;
6435 let cofRelax2 = 1;
6436 let cofMax1 = 1;
6437 let Uses = [P0];
6438 let Defs = [P0, PC];
6439 let BaseOpcode = "J4_cmpeqip0";
6440 let isTaken = Inst{13};
6441 let isExtendable = 1;
6442 let opExtendable = 2;
6443 let isExtentSigned = 1;
6444 let opExtentBits = 11;
6445 let opExtentAlign = 2;
6447 def J4_cmpeqi_tp1_jump_nt : HInst<
6448 (outs),
6449 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6450 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6451 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6452 let Inst{0-0} = 0b0;
6453 let Inst{13-13} = 0b0;
6454 let Inst{31-22} = 0b0001001000;
6455 let isPredicated = 1;
6456 let isTerminator = 1;
6457 let isBranch = 1;
6458 let isPredicatedNew = 1;
6459 let cofRelax1 = 1;
6460 let cofRelax2 = 1;
6461 let cofMax1 = 1;
6462 let Uses = [P1];
6463 let Defs = [P1, PC];
6464 let BaseOpcode = "J4_cmpeqip1";
6465 let isTaken = Inst{13};
6466 let isExtendable = 1;
6467 let opExtendable = 2;
6468 let isExtentSigned = 1;
6469 let opExtentBits = 11;
6470 let opExtentAlign = 2;
6472 def J4_cmpeqi_tp1_jump_t : HInst<
6473 (outs),
6474 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6475 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6476 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
6477 let Inst{0-0} = 0b0;
6478 let Inst{13-13} = 0b1;
6479 let Inst{31-22} = 0b0001001000;
6480 let isPredicated = 1;
6481 let isTerminator = 1;
6482 let isBranch = 1;
6483 let isPredicatedNew = 1;
6484 let cofRelax1 = 1;
6485 let cofRelax2 = 1;
6486 let cofMax1 = 1;
6487 let Uses = [P1];
6488 let Defs = [P1, PC];
6489 let BaseOpcode = "J4_cmpeqip1";
6490 let isTaken = Inst{13};
6491 let isExtendable = 1;
6492 let opExtendable = 2;
6493 let isExtentSigned = 1;
6494 let opExtentBits = 11;
6495 let opExtentAlign = 2;
6497 def J4_cmpeqn1_f_jumpnv_nt : HInst<
6498 (outs),
6499 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6500 "if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6501 tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel {
6502 let Inst{0-0} = 0b0;
6503 let Inst{13-8} = 0b000000;
6504 let Inst{19-19} = 0b0;
6505 let Inst{31-22} = 0b0010011001;
6506 let isPredicated = 1;
6507 let isPredicatedFalse = 1;
6508 let isTerminator = 1;
6509 let isBranch = 1;
6510 let isNewValue = 1;
6511 let cofMax1 = 1;
6512 let isRestrictNoSlot1Store = 1;
6513 let Defs = [PC];
6514 let BaseOpcode = "J4_cmpeqn1r";
6515 let isTaken = Inst{13};
6516 let isExtendable = 1;
6517 let opExtendable = 2;
6518 let isExtentSigned = 1;
6519 let opExtentBits = 11;
6520 let opExtentAlign = 2;
6521 let opNewValue = 0;
6523 def J4_cmpeqn1_f_jumpnv_t : HInst<
6524 (outs),
6525 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6526 "if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6527 tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel {
6528 let Inst{0-0} = 0b0;
6529 let Inst{13-8} = 0b100000;
6530 let Inst{19-19} = 0b0;
6531 let Inst{31-22} = 0b0010011001;
6532 let isPredicated = 1;
6533 let isPredicatedFalse = 1;
6534 let isTerminator = 1;
6535 let isBranch = 1;
6536 let isNewValue = 1;
6537 let cofMax1 = 1;
6538 let isRestrictNoSlot1Store = 1;
6539 let Defs = [PC];
6540 let BaseOpcode = "J4_cmpeqn1r";
6541 let isTaken = Inst{13};
6542 let isExtendable = 1;
6543 let opExtendable = 2;
6544 let isExtentSigned = 1;
6545 let opExtentBits = 11;
6546 let opExtentAlign = 2;
6547 let opNewValue = 0;
6549 def J4_cmpeqn1_fp0_jump_nt : HInst<
6550 (outs),
6551 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6552 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6553 tc_24f426ab, TypeCJ>, Enc_1de724, PredRel {
6554 let Inst{0-0} = 0b0;
6555 let Inst{13-8} = 0b000000;
6556 let Inst{31-22} = 0b0001000111;
6557 let isPredicated = 1;
6558 let isPredicatedFalse = 1;
6559 let isTerminator = 1;
6560 let isBranch = 1;
6561 let isPredicatedNew = 1;
6562 let cofRelax1 = 1;
6563 let cofRelax2 = 1;
6564 let cofMax1 = 1;
6565 let Uses = [P0];
6566 let Defs = [P0, PC];
6567 let BaseOpcode = "J4_cmpeqn1p0";
6568 let isTaken = Inst{13};
6569 let isExtendable = 1;
6570 let opExtendable = 2;
6571 let isExtentSigned = 1;
6572 let opExtentBits = 11;
6573 let opExtentAlign = 2;
6575 def J4_cmpeqn1_fp0_jump_t : HInst<
6576 (outs),
6577 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6578 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6579 tc_24f426ab, TypeCJ>, Enc_14640c, PredRel {
6580 let Inst{0-0} = 0b0;
6581 let Inst{13-8} = 0b100000;
6582 let Inst{31-22} = 0b0001000111;
6583 let isPredicated = 1;
6584 let isPredicatedFalse = 1;
6585 let isTerminator = 1;
6586 let isBranch = 1;
6587 let isPredicatedNew = 1;
6588 let cofRelax1 = 1;
6589 let cofRelax2 = 1;
6590 let cofMax1 = 1;
6591 let Uses = [P0];
6592 let Defs = [P0, PC];
6593 let BaseOpcode = "J4_cmpeqn1p0";
6594 let isTaken = Inst{13};
6595 let isExtendable = 1;
6596 let opExtendable = 2;
6597 let isExtentSigned = 1;
6598 let opExtentBits = 11;
6599 let opExtentAlign = 2;
6601 def J4_cmpeqn1_fp1_jump_nt : HInst<
6602 (outs),
6603 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6604 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6605 tc_24f426ab, TypeCJ>, Enc_668704, PredRel {
6606 let Inst{0-0} = 0b0;
6607 let Inst{13-8} = 0b000000;
6608 let Inst{31-22} = 0b0001001111;
6609 let isPredicated = 1;
6610 let isPredicatedFalse = 1;
6611 let isTerminator = 1;
6612 let isBranch = 1;
6613 let isPredicatedNew = 1;
6614 let cofRelax1 = 1;
6615 let cofRelax2 = 1;
6616 let cofMax1 = 1;
6617 let Uses = [P1];
6618 let Defs = [P1, PC];
6619 let BaseOpcode = "J4_cmpeqn1p1";
6620 let isTaken = Inst{13};
6621 let isExtendable = 1;
6622 let opExtendable = 2;
6623 let isExtentSigned = 1;
6624 let opExtentBits = 11;
6625 let opExtentAlign = 2;
6627 def J4_cmpeqn1_fp1_jump_t : HInst<
6628 (outs),
6629 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6630 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6631 tc_24f426ab, TypeCJ>, Enc_800e04, PredRel {
6632 let Inst{0-0} = 0b0;
6633 let Inst{13-8} = 0b100000;
6634 let Inst{31-22} = 0b0001001111;
6635 let isPredicated = 1;
6636 let isPredicatedFalse = 1;
6637 let isTerminator = 1;
6638 let isBranch = 1;
6639 let isPredicatedNew = 1;
6640 let cofRelax1 = 1;
6641 let cofRelax2 = 1;
6642 let cofMax1 = 1;
6643 let Uses = [P1];
6644 let Defs = [P1, PC];
6645 let BaseOpcode = "J4_cmpeqn1p1";
6646 let isTaken = Inst{13};
6647 let isExtendable = 1;
6648 let opExtendable = 2;
6649 let isExtentSigned = 1;
6650 let opExtentBits = 11;
6651 let opExtentAlign = 2;
6653 def J4_cmpeqn1_t_jumpnv_nt : HInst<
6654 (outs),
6655 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6656 "if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6657 tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel {
6658 let Inst{0-0} = 0b0;
6659 let Inst{13-8} = 0b000000;
6660 let Inst{19-19} = 0b0;
6661 let Inst{31-22} = 0b0010011000;
6662 let isPredicated = 1;
6663 let isTerminator = 1;
6664 let isBranch = 1;
6665 let isNewValue = 1;
6666 let cofMax1 = 1;
6667 let isRestrictNoSlot1Store = 1;
6668 let Defs = [PC];
6669 let BaseOpcode = "J4_cmpeqn1r";
6670 let isTaken = Inst{13};
6671 let isExtendable = 1;
6672 let opExtendable = 2;
6673 let isExtentSigned = 1;
6674 let opExtentBits = 11;
6675 let opExtentAlign = 2;
6676 let opNewValue = 0;
6678 def J4_cmpeqn1_t_jumpnv_t : HInst<
6679 (outs),
6680 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6681 "if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6682 tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel {
6683 let Inst{0-0} = 0b0;
6684 let Inst{13-8} = 0b100000;
6685 let Inst{19-19} = 0b0;
6686 let Inst{31-22} = 0b0010011000;
6687 let isPredicated = 1;
6688 let isTerminator = 1;
6689 let isBranch = 1;
6690 let isNewValue = 1;
6691 let cofMax1 = 1;
6692 let isRestrictNoSlot1Store = 1;
6693 let Defs = [PC];
6694 let BaseOpcode = "J4_cmpeqn1r";
6695 let isTaken = Inst{13};
6696 let isExtendable = 1;
6697 let opExtendable = 2;
6698 let isExtentSigned = 1;
6699 let opExtentBits = 11;
6700 let opExtentAlign = 2;
6701 let opNewValue = 0;
6703 def J4_cmpeqn1_tp0_jump_nt : HInst<
6704 (outs),
6705 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6706 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6707 tc_24f426ab, TypeCJ>, Enc_405228, PredRel {
6708 let Inst{0-0} = 0b0;
6709 let Inst{13-8} = 0b000000;
6710 let Inst{31-22} = 0b0001000110;
6711 let isPredicated = 1;
6712 let isTerminator = 1;
6713 let isBranch = 1;
6714 let isPredicatedNew = 1;
6715 let cofRelax1 = 1;
6716 let cofRelax2 = 1;
6717 let cofMax1 = 1;
6718 let Uses = [P0];
6719 let Defs = [P0, PC];
6720 let BaseOpcode = "J4_cmpeqn1p0";
6721 let isTaken = Inst{13};
6722 let isExtendable = 1;
6723 let opExtendable = 2;
6724 let isExtentSigned = 1;
6725 let opExtentBits = 11;
6726 let opExtentAlign = 2;
6728 def J4_cmpeqn1_tp0_jump_t : HInst<
6729 (outs),
6730 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6731 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6732 tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel {
6733 let Inst{0-0} = 0b0;
6734 let Inst{13-8} = 0b100000;
6735 let Inst{31-22} = 0b0001000110;
6736 let isPredicated = 1;
6737 let isTerminator = 1;
6738 let isBranch = 1;
6739 let isPredicatedNew = 1;
6740 let cofRelax1 = 1;
6741 let cofRelax2 = 1;
6742 let cofMax1 = 1;
6743 let Uses = [P0];
6744 let Defs = [P0, PC];
6745 let BaseOpcode = "J4_cmpeqn1p0";
6746 let isTaken = Inst{13};
6747 let isExtendable = 1;
6748 let opExtendable = 2;
6749 let isExtentSigned = 1;
6750 let opExtentBits = 11;
6751 let opExtentAlign = 2;
6753 def J4_cmpeqn1_tp1_jump_nt : HInst<
6754 (outs),
6755 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6756 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6757 tc_24f426ab, TypeCJ>, Enc_736575, PredRel {
6758 let Inst{0-0} = 0b0;
6759 let Inst{13-8} = 0b000000;
6760 let Inst{31-22} = 0b0001001110;
6761 let isPredicated = 1;
6762 let isTerminator = 1;
6763 let isBranch = 1;
6764 let isPredicatedNew = 1;
6765 let cofRelax1 = 1;
6766 let cofRelax2 = 1;
6767 let cofMax1 = 1;
6768 let Uses = [P1];
6769 let Defs = [P1, PC];
6770 let BaseOpcode = "J4_cmpeqn1p1";
6771 let isTaken = Inst{13};
6772 let isExtendable = 1;
6773 let opExtendable = 2;
6774 let isExtentSigned = 1;
6775 let opExtentBits = 11;
6776 let opExtentAlign = 2;
6778 def J4_cmpeqn1_tp1_jump_t : HInst<
6779 (outs),
6780 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6781 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6782 tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel {
6783 let Inst{0-0} = 0b0;
6784 let Inst{13-8} = 0b100000;
6785 let Inst{31-22} = 0b0001001110;
6786 let isPredicated = 1;
6787 let isTerminator = 1;
6788 let isBranch = 1;
6789 let isPredicatedNew = 1;
6790 let cofRelax1 = 1;
6791 let cofRelax2 = 1;
6792 let cofMax1 = 1;
6793 let Uses = [P1];
6794 let Defs = [P1, PC];
6795 let BaseOpcode = "J4_cmpeqn1p1";
6796 let isTaken = Inst{13};
6797 let isExtendable = 1;
6798 let opExtendable = 2;
6799 let isExtentSigned = 1;
6800 let opExtentBits = 11;
6801 let opExtentAlign = 2;
6803 def J4_cmpgt_f_jumpnv_nt : HInst<
6804 (outs),
6805 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6806 "if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6807 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6808 let Inst{0-0} = 0b0;
6809 let Inst{13-13} = 0b0;
6810 let Inst{19-19} = 0b0;
6811 let Inst{31-22} = 0b0010000011;
6812 let isPredicated = 1;
6813 let isPredicatedFalse = 1;
6814 let isTerminator = 1;
6815 let isBranch = 1;
6816 let isNewValue = 1;
6817 let cofMax1 = 1;
6818 let isRestrictNoSlot1Store = 1;
6819 let Defs = [PC];
6820 let BaseOpcode = "J4_cmpgtr";
6821 let isTaken = Inst{13};
6822 let isExtendable = 1;
6823 let opExtendable = 2;
6824 let isExtentSigned = 1;
6825 let opExtentBits = 11;
6826 let opExtentAlign = 2;
6827 let opNewValue = 0;
6829 def J4_cmpgt_f_jumpnv_t : HInst<
6830 (outs),
6831 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6832 "if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6833 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6834 let Inst{0-0} = 0b0;
6835 let Inst{13-13} = 0b1;
6836 let Inst{19-19} = 0b0;
6837 let Inst{31-22} = 0b0010000011;
6838 let isPredicated = 1;
6839 let isPredicatedFalse = 1;
6840 let isTerminator = 1;
6841 let isBranch = 1;
6842 let isNewValue = 1;
6843 let cofMax1 = 1;
6844 let isRestrictNoSlot1Store = 1;
6845 let Defs = [PC];
6846 let BaseOpcode = "J4_cmpgtr";
6847 let isTaken = Inst{13};
6848 let isExtendable = 1;
6849 let opExtendable = 2;
6850 let isExtentSigned = 1;
6851 let opExtentBits = 11;
6852 let opExtentAlign = 2;
6853 let opNewValue = 0;
6855 def J4_cmpgt_fp0_jump_nt : HInst<
6856 (outs),
6857 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6858 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6859 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6860 let Inst{0-0} = 0b0;
6861 let Inst{13-12} = 0b00;
6862 let Inst{31-22} = 0b0001010011;
6863 let isPredicated = 1;
6864 let isPredicatedFalse = 1;
6865 let isTerminator = 1;
6866 let isBranch = 1;
6867 let isPredicatedNew = 1;
6868 let cofRelax1 = 1;
6869 let cofRelax2 = 1;
6870 let cofMax1 = 1;
6871 let Uses = [P0];
6872 let Defs = [P0, PC];
6873 let BaseOpcode = "J4_cmpgtp0";
6874 let isTaken = Inst{13};
6875 let isExtendable = 1;
6876 let opExtendable = 2;
6877 let isExtentSigned = 1;
6878 let opExtentBits = 11;
6879 let opExtentAlign = 2;
6881 def J4_cmpgt_fp0_jump_t : HInst<
6882 (outs),
6883 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6884 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6885 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6886 let Inst{0-0} = 0b0;
6887 let Inst{13-12} = 0b10;
6888 let Inst{31-22} = 0b0001010011;
6889 let isPredicated = 1;
6890 let isPredicatedFalse = 1;
6891 let isTerminator = 1;
6892 let isBranch = 1;
6893 let isPredicatedNew = 1;
6894 let cofRelax1 = 1;
6895 let cofRelax2 = 1;
6896 let cofMax1 = 1;
6897 let Uses = [P0];
6898 let Defs = [P0, PC];
6899 let BaseOpcode = "J4_cmpgtp0";
6900 let isTaken = Inst{13};
6901 let isExtendable = 1;
6902 let opExtendable = 2;
6903 let isExtentSigned = 1;
6904 let opExtentBits = 11;
6905 let opExtentAlign = 2;
6907 def J4_cmpgt_fp1_jump_nt : HInst<
6908 (outs),
6909 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6910 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6911 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6912 let Inst{0-0} = 0b0;
6913 let Inst{13-12} = 0b01;
6914 let Inst{31-22} = 0b0001010011;
6915 let isPredicated = 1;
6916 let isPredicatedFalse = 1;
6917 let isTerminator = 1;
6918 let isBranch = 1;
6919 let isPredicatedNew = 1;
6920 let cofRelax1 = 1;
6921 let cofRelax2 = 1;
6922 let cofMax1 = 1;
6923 let Uses = [P1];
6924 let Defs = [P1, PC];
6925 let BaseOpcode = "J4_cmpgtp1";
6926 let isTaken = Inst{13};
6927 let isExtendable = 1;
6928 let opExtendable = 2;
6929 let isExtentSigned = 1;
6930 let opExtentBits = 11;
6931 let opExtentAlign = 2;
6933 def J4_cmpgt_fp1_jump_t : HInst<
6934 (outs),
6935 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6936 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6937 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
6938 let Inst{0-0} = 0b0;
6939 let Inst{13-12} = 0b11;
6940 let Inst{31-22} = 0b0001010011;
6941 let isPredicated = 1;
6942 let isPredicatedFalse = 1;
6943 let isTerminator = 1;
6944 let isBranch = 1;
6945 let isPredicatedNew = 1;
6946 let cofRelax1 = 1;
6947 let cofRelax2 = 1;
6948 let cofMax1 = 1;
6949 let Uses = [P1];
6950 let Defs = [P1, PC];
6951 let BaseOpcode = "J4_cmpgtp1";
6952 let isTaken = Inst{13};
6953 let isExtendable = 1;
6954 let opExtendable = 2;
6955 let isExtentSigned = 1;
6956 let opExtentBits = 11;
6957 let opExtentAlign = 2;
6959 def J4_cmpgt_t_jumpnv_nt : HInst<
6960 (outs),
6961 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6962 "if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6963 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6964 let Inst{0-0} = 0b0;
6965 let Inst{13-13} = 0b0;
6966 let Inst{19-19} = 0b0;
6967 let Inst{31-22} = 0b0010000010;
6968 let isPredicated = 1;
6969 let isTerminator = 1;
6970 let isBranch = 1;
6971 let isNewValue = 1;
6972 let cofMax1 = 1;
6973 let isRestrictNoSlot1Store = 1;
6974 let Defs = [PC];
6975 let BaseOpcode = "J4_cmpgtr";
6976 let isTaken = Inst{13};
6977 let isExtendable = 1;
6978 let opExtendable = 2;
6979 let isExtentSigned = 1;
6980 let opExtentBits = 11;
6981 let opExtentAlign = 2;
6982 let opNewValue = 0;
6984 def J4_cmpgt_t_jumpnv_t : HInst<
6985 (outs),
6986 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6987 "if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6988 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
6989 let Inst{0-0} = 0b0;
6990 let Inst{13-13} = 0b1;
6991 let Inst{19-19} = 0b0;
6992 let Inst{31-22} = 0b0010000010;
6993 let isPredicated = 1;
6994 let isTerminator = 1;
6995 let isBranch = 1;
6996 let isNewValue = 1;
6997 let cofMax1 = 1;
6998 let isRestrictNoSlot1Store = 1;
6999 let Defs = [PC];
7000 let BaseOpcode = "J4_cmpgtr";
7001 let isTaken = Inst{13};
7002 let isExtendable = 1;
7003 let opExtendable = 2;
7004 let isExtentSigned = 1;
7005 let opExtentBits = 11;
7006 let opExtentAlign = 2;
7007 let opNewValue = 0;
7009 def J4_cmpgt_tp0_jump_nt : HInst<
7010 (outs),
7011 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7012 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7013 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7014 let Inst{0-0} = 0b0;
7015 let Inst{13-12} = 0b00;
7016 let Inst{31-22} = 0b0001010010;
7017 let isPredicated = 1;
7018 let isTerminator = 1;
7019 let isBranch = 1;
7020 let isPredicatedNew = 1;
7021 let cofRelax1 = 1;
7022 let cofRelax2 = 1;
7023 let cofMax1 = 1;
7024 let Uses = [P0];
7025 let Defs = [P0, PC];
7026 let BaseOpcode = "J4_cmpgtp0";
7027 let isTaken = Inst{13};
7028 let isExtendable = 1;
7029 let opExtendable = 2;
7030 let isExtentSigned = 1;
7031 let opExtentBits = 11;
7032 let opExtentAlign = 2;
7034 def J4_cmpgt_tp0_jump_t : HInst<
7035 (outs),
7036 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7037 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7038 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7039 let Inst{0-0} = 0b0;
7040 let Inst{13-12} = 0b10;
7041 let Inst{31-22} = 0b0001010010;
7042 let isPredicated = 1;
7043 let isTerminator = 1;
7044 let isBranch = 1;
7045 let isPredicatedNew = 1;
7046 let cofRelax1 = 1;
7047 let cofRelax2 = 1;
7048 let cofMax1 = 1;
7049 let Uses = [P0];
7050 let Defs = [P0, PC];
7051 let BaseOpcode = "J4_cmpgtp0";
7052 let isTaken = Inst{13};
7053 let isExtendable = 1;
7054 let opExtendable = 2;
7055 let isExtentSigned = 1;
7056 let opExtentBits = 11;
7057 let opExtentAlign = 2;
7059 def J4_cmpgt_tp1_jump_nt : HInst<
7060 (outs),
7061 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7062 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7063 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7064 let Inst{0-0} = 0b0;
7065 let Inst{13-12} = 0b01;
7066 let Inst{31-22} = 0b0001010010;
7067 let isPredicated = 1;
7068 let isTerminator = 1;
7069 let isBranch = 1;
7070 let isPredicatedNew = 1;
7071 let cofRelax1 = 1;
7072 let cofRelax2 = 1;
7073 let cofMax1 = 1;
7074 let Uses = [P1];
7075 let Defs = [P1, PC];
7076 let BaseOpcode = "J4_cmpgtp1";
7077 let isTaken = Inst{13};
7078 let isExtendable = 1;
7079 let opExtendable = 2;
7080 let isExtentSigned = 1;
7081 let opExtentBits = 11;
7082 let opExtentAlign = 2;
7084 def J4_cmpgt_tp1_jump_t : HInst<
7085 (outs),
7086 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7087 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7088 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7089 let Inst{0-0} = 0b0;
7090 let Inst{13-12} = 0b11;
7091 let Inst{31-22} = 0b0001010010;
7092 let isPredicated = 1;
7093 let isTerminator = 1;
7094 let isBranch = 1;
7095 let isPredicatedNew = 1;
7096 let cofRelax1 = 1;
7097 let cofRelax2 = 1;
7098 let cofMax1 = 1;
7099 let Uses = [P1];
7100 let Defs = [P1, PC];
7101 let BaseOpcode = "J4_cmpgtp1";
7102 let isTaken = Inst{13};
7103 let isExtendable = 1;
7104 let opExtendable = 2;
7105 let isExtentSigned = 1;
7106 let opExtentBits = 11;
7107 let opExtentAlign = 2;
7109 def J4_cmpgti_f_jumpnv_nt : HInst<
7110 (outs),
7111 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7112 "if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7113 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7114 let Inst{0-0} = 0b0;
7115 let Inst{13-13} = 0b0;
7116 let Inst{19-19} = 0b0;
7117 let Inst{31-22} = 0b0010010011;
7118 let isPredicated = 1;
7119 let isPredicatedFalse = 1;
7120 let isTerminator = 1;
7121 let isBranch = 1;
7122 let isNewValue = 1;
7123 let cofMax1 = 1;
7124 let isRestrictNoSlot1Store = 1;
7125 let Defs = [PC];
7126 let BaseOpcode = "J4_cmpgtir";
7127 let isTaken = Inst{13};
7128 let isExtendable = 1;
7129 let opExtendable = 2;
7130 let isExtentSigned = 1;
7131 let opExtentBits = 11;
7132 let opExtentAlign = 2;
7133 let opNewValue = 0;
7135 def J4_cmpgti_f_jumpnv_t : HInst<
7136 (outs),
7137 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7138 "if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7139 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7140 let Inst{0-0} = 0b0;
7141 let Inst{13-13} = 0b1;
7142 let Inst{19-19} = 0b0;
7143 let Inst{31-22} = 0b0010010011;
7144 let isPredicated = 1;
7145 let isPredicatedFalse = 1;
7146 let isTerminator = 1;
7147 let isBranch = 1;
7148 let isNewValue = 1;
7149 let cofMax1 = 1;
7150 let isRestrictNoSlot1Store = 1;
7151 let Defs = [PC];
7152 let BaseOpcode = "J4_cmpgtir";
7153 let isTaken = Inst{13};
7154 let isExtendable = 1;
7155 let opExtendable = 2;
7156 let isExtentSigned = 1;
7157 let opExtentBits = 11;
7158 let opExtentAlign = 2;
7159 let opNewValue = 0;
7161 def J4_cmpgti_fp0_jump_nt : HInst<
7162 (outs),
7163 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7164 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7165 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7166 let Inst{0-0} = 0b0;
7167 let Inst{13-13} = 0b0;
7168 let Inst{31-22} = 0b0001000011;
7169 let isPredicated = 1;
7170 let isPredicatedFalse = 1;
7171 let isTerminator = 1;
7172 let isBranch = 1;
7173 let isPredicatedNew = 1;
7174 let cofRelax1 = 1;
7175 let cofRelax2 = 1;
7176 let cofMax1 = 1;
7177 let Uses = [P0];
7178 let Defs = [P0, PC];
7179 let BaseOpcode = "J4_cmpgtip0";
7180 let isTaken = Inst{13};
7181 let isExtendable = 1;
7182 let opExtendable = 2;
7183 let isExtentSigned = 1;
7184 let opExtentBits = 11;
7185 let opExtentAlign = 2;
7187 def J4_cmpgti_fp0_jump_t : HInst<
7188 (outs),
7189 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7190 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
7191 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7192 let Inst{0-0} = 0b0;
7193 let Inst{13-13} = 0b1;
7194 let Inst{31-22} = 0b0001000011;
7195 let isPredicated = 1;
7196 let isPredicatedFalse = 1;
7197 let isTerminator = 1;
7198 let isBranch = 1;
7199 let isPredicatedNew = 1;
7200 let cofRelax1 = 1;
7201 let cofRelax2 = 1;
7202 let cofMax1 = 1;
7203 let Uses = [P0];
7204 let Defs = [P0, PC];
7205 let BaseOpcode = "J4_cmpgtip0";
7206 let isTaken = Inst{13};
7207 let isExtendable = 1;
7208 let opExtendable = 2;
7209 let isExtentSigned = 1;
7210 let opExtentBits = 11;
7211 let opExtentAlign = 2;
7213 def J4_cmpgti_fp1_jump_nt : HInst<
7214 (outs),
7215 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7216 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7217 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7218 let Inst{0-0} = 0b0;
7219 let Inst{13-13} = 0b0;
7220 let Inst{31-22} = 0b0001001011;
7221 let isPredicated = 1;
7222 let isPredicatedFalse = 1;
7223 let isTerminator = 1;
7224 let isBranch = 1;
7225 let isPredicatedNew = 1;
7226 let cofRelax1 = 1;
7227 let cofRelax2 = 1;
7228 let cofMax1 = 1;
7229 let Uses = [P1];
7230 let Defs = [P1, PC];
7231 let BaseOpcode = "J4_cmpgtip1";
7232 let isTaken = Inst{13};
7233 let isExtendable = 1;
7234 let opExtendable = 2;
7235 let isExtentSigned = 1;
7236 let opExtentBits = 11;
7237 let opExtentAlign = 2;
7239 def J4_cmpgti_fp1_jump_t : HInst<
7240 (outs),
7241 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7242 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
7243 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7244 let Inst{0-0} = 0b0;
7245 let Inst{13-13} = 0b1;
7246 let Inst{31-22} = 0b0001001011;
7247 let isPredicated = 1;
7248 let isPredicatedFalse = 1;
7249 let isTerminator = 1;
7250 let isBranch = 1;
7251 let isPredicatedNew = 1;
7252 let cofRelax1 = 1;
7253 let cofRelax2 = 1;
7254 let cofMax1 = 1;
7255 let Uses = [P1];
7256 let Defs = [P1, PC];
7257 let BaseOpcode = "J4_cmpgtip1";
7258 let isTaken = Inst{13};
7259 let isExtendable = 1;
7260 let opExtendable = 2;
7261 let isExtentSigned = 1;
7262 let opExtentBits = 11;
7263 let opExtentAlign = 2;
7265 def J4_cmpgti_t_jumpnv_nt : HInst<
7266 (outs),
7267 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7268 "if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7269 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7270 let Inst{0-0} = 0b0;
7271 let Inst{13-13} = 0b0;
7272 let Inst{19-19} = 0b0;
7273 let Inst{31-22} = 0b0010010010;
7274 let isPredicated = 1;
7275 let isTerminator = 1;
7276 let isBranch = 1;
7277 let isNewValue = 1;
7278 let cofMax1 = 1;
7279 let isRestrictNoSlot1Store = 1;
7280 let Defs = [PC];
7281 let BaseOpcode = "J4_cmpgtir";
7282 let isTaken = Inst{13};
7283 let isExtendable = 1;
7284 let opExtendable = 2;
7285 let isExtentSigned = 1;
7286 let opExtentBits = 11;
7287 let opExtentAlign = 2;
7288 let opNewValue = 0;
7290 def J4_cmpgti_t_jumpnv_t : HInst<
7291 (outs),
7292 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7293 "if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7294 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
7295 let Inst{0-0} = 0b0;
7296 let Inst{13-13} = 0b1;
7297 let Inst{19-19} = 0b0;
7298 let Inst{31-22} = 0b0010010010;
7299 let isPredicated = 1;
7300 let isTerminator = 1;
7301 let isBranch = 1;
7302 let isNewValue = 1;
7303 let cofMax1 = 1;
7304 let isRestrictNoSlot1Store = 1;
7305 let Defs = [PC];
7306 let BaseOpcode = "J4_cmpgtir";
7307 let isTaken = Inst{13};
7308 let isExtendable = 1;
7309 let opExtendable = 2;
7310 let isExtentSigned = 1;
7311 let opExtentBits = 11;
7312 let opExtentAlign = 2;
7313 let opNewValue = 0;
7315 def J4_cmpgti_tp0_jump_nt : HInst<
7316 (outs),
7317 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7318 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
7319 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7320 let Inst{0-0} = 0b0;
7321 let Inst{13-13} = 0b0;
7322 let Inst{31-22} = 0b0001000010;
7323 let isPredicated = 1;
7324 let isTerminator = 1;
7325 let isBranch = 1;
7326 let isPredicatedNew = 1;
7327 let cofRelax1 = 1;
7328 let cofRelax2 = 1;
7329 let cofMax1 = 1;
7330 let Uses = [P0];
7331 let Defs = [P0, PC];
7332 let BaseOpcode = "J4_cmpgtip0";
7333 let isTaken = Inst{13};
7334 let isExtendable = 1;
7335 let opExtendable = 2;
7336 let isExtentSigned = 1;
7337 let opExtentBits = 11;
7338 let opExtentAlign = 2;
7340 def J4_cmpgti_tp0_jump_t : HInst<
7341 (outs),
7342 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7343 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
7344 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7345 let Inst{0-0} = 0b0;
7346 let Inst{13-13} = 0b1;
7347 let Inst{31-22} = 0b0001000010;
7348 let isPredicated = 1;
7349 let isTerminator = 1;
7350 let isBranch = 1;
7351 let isPredicatedNew = 1;
7352 let cofRelax1 = 1;
7353 let cofRelax2 = 1;
7354 let cofMax1 = 1;
7355 let Uses = [P0];
7356 let Defs = [P0, PC];
7357 let BaseOpcode = "J4_cmpgtip0";
7358 let isTaken = Inst{13};
7359 let isExtendable = 1;
7360 let opExtendable = 2;
7361 let isExtentSigned = 1;
7362 let opExtentBits = 11;
7363 let opExtentAlign = 2;
7365 def J4_cmpgti_tp1_jump_nt : HInst<
7366 (outs),
7367 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7368 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
7369 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7370 let Inst{0-0} = 0b0;
7371 let Inst{13-13} = 0b0;
7372 let Inst{31-22} = 0b0001001010;
7373 let isPredicated = 1;
7374 let isTerminator = 1;
7375 let isBranch = 1;
7376 let isPredicatedNew = 1;
7377 let cofRelax1 = 1;
7378 let cofRelax2 = 1;
7379 let cofMax1 = 1;
7380 let Uses = [P1];
7381 let Defs = [P1, PC];
7382 let BaseOpcode = "J4_cmpgtip1";
7383 let isTaken = Inst{13};
7384 let isExtendable = 1;
7385 let opExtendable = 2;
7386 let isExtentSigned = 1;
7387 let opExtentBits = 11;
7388 let opExtentAlign = 2;
7390 def J4_cmpgti_tp1_jump_t : HInst<
7391 (outs),
7392 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7393 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
7394 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
7395 let Inst{0-0} = 0b0;
7396 let Inst{13-13} = 0b1;
7397 let Inst{31-22} = 0b0001001010;
7398 let isPredicated = 1;
7399 let isTerminator = 1;
7400 let isBranch = 1;
7401 let isPredicatedNew = 1;
7402 let cofRelax1 = 1;
7403 let cofRelax2 = 1;
7404 let cofMax1 = 1;
7405 let Uses = [P1];
7406 let Defs = [P1, PC];
7407 let BaseOpcode = "J4_cmpgtip1";
7408 let isTaken = Inst{13};
7409 let isExtendable = 1;
7410 let opExtendable = 2;
7411 let isExtentSigned = 1;
7412 let opExtentBits = 11;
7413 let opExtentAlign = 2;
7415 def J4_cmpgtn1_f_jumpnv_nt : HInst<
7416 (outs),
7417 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7418 "if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7419 tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel {
7420 let Inst{0-0} = 0b0;
7421 let Inst{13-8} = 0b000000;
7422 let Inst{19-19} = 0b0;
7423 let Inst{31-22} = 0b0010011011;
7424 let isPredicated = 1;
7425 let isPredicatedFalse = 1;
7426 let isTerminator = 1;
7427 let isBranch = 1;
7428 let isNewValue = 1;
7429 let cofMax1 = 1;
7430 let isRestrictNoSlot1Store = 1;
7431 let Defs = [PC];
7432 let BaseOpcode = "J4_cmpgtn1r";
7433 let isTaken = Inst{13};
7434 let isExtendable = 1;
7435 let opExtendable = 2;
7436 let isExtentSigned = 1;
7437 let opExtentBits = 11;
7438 let opExtentAlign = 2;
7439 let opNewValue = 0;
7441 def J4_cmpgtn1_f_jumpnv_t : HInst<
7442 (outs),
7443 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7444 "if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7445 tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel {
7446 let Inst{0-0} = 0b0;
7447 let Inst{13-8} = 0b100000;
7448 let Inst{19-19} = 0b0;
7449 let Inst{31-22} = 0b0010011011;
7450 let isPredicated = 1;
7451 let isPredicatedFalse = 1;
7452 let isTerminator = 1;
7453 let isBranch = 1;
7454 let isNewValue = 1;
7455 let cofMax1 = 1;
7456 let isRestrictNoSlot1Store = 1;
7457 let Defs = [PC];
7458 let BaseOpcode = "J4_cmpgtn1r";
7459 let isTaken = Inst{13};
7460 let isExtendable = 1;
7461 let opExtendable = 2;
7462 let isExtentSigned = 1;
7463 let opExtentBits = 11;
7464 let opExtentAlign = 2;
7465 let opNewValue = 0;
7467 def J4_cmpgtn1_fp0_jump_nt : HInst<
7468 (outs),
7469 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7470 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7471 tc_24f426ab, TypeCJ>, Enc_a42857, PredRel {
7472 let Inst{0-0} = 0b0;
7473 let Inst{13-8} = 0b000001;
7474 let Inst{31-22} = 0b0001000111;
7475 let isPredicated = 1;
7476 let isPredicatedFalse = 1;
7477 let isTerminator = 1;
7478 let isBranch = 1;
7479 let isPredicatedNew = 1;
7480 let cofRelax1 = 1;
7481 let cofRelax2 = 1;
7482 let cofMax1 = 1;
7483 let Uses = [P0];
7484 let Defs = [P0, PC];
7485 let BaseOpcode = "J4_cmpgtn1p0";
7486 let isTaken = Inst{13};
7487 let isExtendable = 1;
7488 let opExtendable = 2;
7489 let isExtentSigned = 1;
7490 let opExtentBits = 11;
7491 let opExtentAlign = 2;
7493 def J4_cmpgtn1_fp0_jump_t : HInst<
7494 (outs),
7495 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7496 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7497 tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel {
7498 let Inst{0-0} = 0b0;
7499 let Inst{13-8} = 0b100001;
7500 let Inst{31-22} = 0b0001000111;
7501 let isPredicated = 1;
7502 let isPredicatedFalse = 1;
7503 let isTerminator = 1;
7504 let isBranch = 1;
7505 let isPredicatedNew = 1;
7506 let cofRelax1 = 1;
7507 let cofRelax2 = 1;
7508 let cofMax1 = 1;
7509 let Uses = [P0];
7510 let Defs = [P0, PC];
7511 let BaseOpcode = "J4_cmpgtn1p0";
7512 let isTaken = Inst{13};
7513 let isExtendable = 1;
7514 let opExtendable = 2;
7515 let isExtentSigned = 1;
7516 let opExtentBits = 11;
7517 let opExtentAlign = 2;
7519 def J4_cmpgtn1_fp1_jump_nt : HInst<
7520 (outs),
7521 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7522 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7523 tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel {
7524 let Inst{0-0} = 0b0;
7525 let Inst{13-8} = 0b000001;
7526 let Inst{31-22} = 0b0001001111;
7527 let isPredicated = 1;
7528 let isPredicatedFalse = 1;
7529 let isTerminator = 1;
7530 let isBranch = 1;
7531 let isPredicatedNew = 1;
7532 let cofRelax1 = 1;
7533 let cofRelax2 = 1;
7534 let cofMax1 = 1;
7535 let Uses = [P1];
7536 let Defs = [P1, PC];
7537 let BaseOpcode = "J4_cmpgtn1p1";
7538 let isTaken = Inst{13};
7539 let isExtendable = 1;
7540 let opExtendable = 2;
7541 let isExtentSigned = 1;
7542 let opExtentBits = 11;
7543 let opExtentAlign = 2;
7545 def J4_cmpgtn1_fp1_jump_t : HInst<
7546 (outs),
7547 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7548 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7549 tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel {
7550 let Inst{0-0} = 0b0;
7551 let Inst{13-8} = 0b100001;
7552 let Inst{31-22} = 0b0001001111;
7553 let isPredicated = 1;
7554 let isPredicatedFalse = 1;
7555 let isTerminator = 1;
7556 let isBranch = 1;
7557 let isPredicatedNew = 1;
7558 let cofRelax1 = 1;
7559 let cofRelax2 = 1;
7560 let cofMax1 = 1;
7561 let Uses = [P1];
7562 let Defs = [P1, PC];
7563 let BaseOpcode = "J4_cmpgtn1p1";
7564 let isTaken = Inst{13};
7565 let isExtendable = 1;
7566 let opExtendable = 2;
7567 let isExtentSigned = 1;
7568 let opExtentBits = 11;
7569 let opExtentAlign = 2;
7571 def J4_cmpgtn1_t_jumpnv_nt : HInst<
7572 (outs),
7573 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7574 "if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7575 tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel {
7576 let Inst{0-0} = 0b0;
7577 let Inst{13-8} = 0b000000;
7578 let Inst{19-19} = 0b0;
7579 let Inst{31-22} = 0b0010011010;
7580 let isPredicated = 1;
7581 let isTerminator = 1;
7582 let isBranch = 1;
7583 let isNewValue = 1;
7584 let cofMax1 = 1;
7585 let isRestrictNoSlot1Store = 1;
7586 let Defs = [PC];
7587 let BaseOpcode = "J4_cmpgtn1r";
7588 let isTaken = Inst{13};
7589 let isExtendable = 1;
7590 let opExtendable = 2;
7591 let isExtentSigned = 1;
7592 let opExtentBits = 11;
7593 let opExtentAlign = 2;
7594 let opNewValue = 0;
7596 def J4_cmpgtn1_t_jumpnv_t : HInst<
7597 (outs),
7598 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7599 "if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7600 tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel {
7601 let Inst{0-0} = 0b0;
7602 let Inst{13-8} = 0b100000;
7603 let Inst{19-19} = 0b0;
7604 let Inst{31-22} = 0b0010011010;
7605 let isPredicated = 1;
7606 let isTerminator = 1;
7607 let isBranch = 1;
7608 let isNewValue = 1;
7609 let cofMax1 = 1;
7610 let isRestrictNoSlot1Store = 1;
7611 let Defs = [PC];
7612 let BaseOpcode = "J4_cmpgtn1r";
7613 let isTaken = Inst{13};
7614 let isExtendable = 1;
7615 let opExtendable = 2;
7616 let isExtentSigned = 1;
7617 let opExtentBits = 11;
7618 let opExtentAlign = 2;
7619 let opNewValue = 0;
7621 def J4_cmpgtn1_tp0_jump_nt : HInst<
7622 (outs),
7623 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7624 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7625 tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel {
7626 let Inst{0-0} = 0b0;
7627 let Inst{13-8} = 0b000001;
7628 let Inst{31-22} = 0b0001000110;
7629 let isPredicated = 1;
7630 let isTerminator = 1;
7631 let isBranch = 1;
7632 let isPredicatedNew = 1;
7633 let cofRelax1 = 1;
7634 let cofRelax2 = 1;
7635 let cofMax1 = 1;
7636 let Uses = [P0];
7637 let Defs = [P0, PC];
7638 let BaseOpcode = "J4_cmpgtn1p0";
7639 let isTaken = Inst{13};
7640 let isExtendable = 1;
7641 let opExtendable = 2;
7642 let isExtentSigned = 1;
7643 let opExtentBits = 11;
7644 let opExtentAlign = 2;
7646 def J4_cmpgtn1_tp0_jump_t : HInst<
7647 (outs),
7648 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7649 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7650 tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel {
7651 let Inst{0-0} = 0b0;
7652 let Inst{13-8} = 0b100001;
7653 let Inst{31-22} = 0b0001000110;
7654 let isPredicated = 1;
7655 let isTerminator = 1;
7656 let isBranch = 1;
7657 let isPredicatedNew = 1;
7658 let cofRelax1 = 1;
7659 let cofRelax2 = 1;
7660 let cofMax1 = 1;
7661 let Uses = [P0];
7662 let Defs = [P0, PC];
7663 let BaseOpcode = "J4_cmpgtn1p0";
7664 let isTaken = Inst{13};
7665 let isExtendable = 1;
7666 let opExtendable = 2;
7667 let isExtentSigned = 1;
7668 let opExtentBits = 11;
7669 let opExtentAlign = 2;
7671 def J4_cmpgtn1_tp1_jump_nt : HInst<
7672 (outs),
7673 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7674 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7675 tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel {
7676 let Inst{0-0} = 0b0;
7677 let Inst{13-8} = 0b000001;
7678 let Inst{31-22} = 0b0001001110;
7679 let isPredicated = 1;
7680 let isTerminator = 1;
7681 let isBranch = 1;
7682 let isPredicatedNew = 1;
7683 let cofRelax1 = 1;
7684 let cofRelax2 = 1;
7685 let cofMax1 = 1;
7686 let Uses = [P1];
7687 let Defs = [P1, PC];
7688 let BaseOpcode = "J4_cmpgtn1p1";
7689 let isTaken = Inst{13};
7690 let isExtendable = 1;
7691 let opExtendable = 2;
7692 let isExtentSigned = 1;
7693 let opExtentBits = 11;
7694 let opExtentAlign = 2;
7696 def J4_cmpgtn1_tp1_jump_t : HInst<
7697 (outs),
7698 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7699 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7700 tc_24f426ab, TypeCJ>, Enc_178717, PredRel {
7701 let Inst{0-0} = 0b0;
7702 let Inst{13-8} = 0b100001;
7703 let Inst{31-22} = 0b0001001110;
7704 let isPredicated = 1;
7705 let isTerminator = 1;
7706 let isBranch = 1;
7707 let isPredicatedNew = 1;
7708 let cofRelax1 = 1;
7709 let cofRelax2 = 1;
7710 let cofMax1 = 1;
7711 let Uses = [P1];
7712 let Defs = [P1, PC];
7713 let BaseOpcode = "J4_cmpgtn1p1";
7714 let isTaken = Inst{13};
7715 let isExtendable = 1;
7716 let opExtendable = 2;
7717 let isExtentSigned = 1;
7718 let opExtentBits = 11;
7719 let opExtentAlign = 2;
7721 def J4_cmpgtu_f_jumpnv_nt : HInst<
7722 (outs),
7723 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7724 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7725 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7726 let Inst{0-0} = 0b0;
7727 let Inst{13-13} = 0b0;
7728 let Inst{19-19} = 0b0;
7729 let Inst{31-22} = 0b0010000101;
7730 let isPredicated = 1;
7731 let isPredicatedFalse = 1;
7732 let isTerminator = 1;
7733 let isBranch = 1;
7734 let isNewValue = 1;
7735 let cofMax1 = 1;
7736 let isRestrictNoSlot1Store = 1;
7737 let Defs = [PC];
7738 let BaseOpcode = "J4_cmpgtur";
7739 let isTaken = Inst{13};
7740 let isExtendable = 1;
7741 let opExtendable = 2;
7742 let isExtentSigned = 1;
7743 let opExtentBits = 11;
7744 let opExtentAlign = 2;
7745 let opNewValue = 0;
7747 def J4_cmpgtu_f_jumpnv_t : HInst<
7748 (outs),
7749 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7750 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7751 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7752 let Inst{0-0} = 0b0;
7753 let Inst{13-13} = 0b1;
7754 let Inst{19-19} = 0b0;
7755 let Inst{31-22} = 0b0010000101;
7756 let isPredicated = 1;
7757 let isPredicatedFalse = 1;
7758 let isTerminator = 1;
7759 let isBranch = 1;
7760 let isNewValue = 1;
7761 let cofMax1 = 1;
7762 let isRestrictNoSlot1Store = 1;
7763 let Defs = [PC];
7764 let BaseOpcode = "J4_cmpgtur";
7765 let isTaken = Inst{13};
7766 let isExtendable = 1;
7767 let opExtendable = 2;
7768 let isExtentSigned = 1;
7769 let opExtentBits = 11;
7770 let opExtentAlign = 2;
7771 let opNewValue = 0;
7773 def J4_cmpgtu_fp0_jump_nt : HInst<
7774 (outs),
7775 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7776 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7777 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7778 let Inst{0-0} = 0b0;
7779 let Inst{13-12} = 0b00;
7780 let Inst{31-22} = 0b0001010101;
7781 let isPredicated = 1;
7782 let isPredicatedFalse = 1;
7783 let isTerminator = 1;
7784 let isBranch = 1;
7785 let isPredicatedNew = 1;
7786 let cofRelax1 = 1;
7787 let cofRelax2 = 1;
7788 let cofMax1 = 1;
7789 let Uses = [P0];
7790 let Defs = [P0, PC];
7791 let BaseOpcode = "J4_cmpgtup0";
7792 let isTaken = Inst{13};
7793 let isExtendable = 1;
7794 let opExtendable = 2;
7795 let isExtentSigned = 1;
7796 let opExtentBits = 11;
7797 let opExtentAlign = 2;
7799 def J4_cmpgtu_fp0_jump_t : HInst<
7800 (outs),
7801 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7802 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7803 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7804 let Inst{0-0} = 0b0;
7805 let Inst{13-12} = 0b10;
7806 let Inst{31-22} = 0b0001010101;
7807 let isPredicated = 1;
7808 let isPredicatedFalse = 1;
7809 let isTerminator = 1;
7810 let isBranch = 1;
7811 let isPredicatedNew = 1;
7812 let cofRelax1 = 1;
7813 let cofRelax2 = 1;
7814 let cofMax1 = 1;
7815 let Uses = [P0];
7816 let Defs = [P0, PC];
7817 let BaseOpcode = "J4_cmpgtup0";
7818 let isTaken = Inst{13};
7819 let isExtendable = 1;
7820 let opExtendable = 2;
7821 let isExtentSigned = 1;
7822 let opExtentBits = 11;
7823 let opExtentAlign = 2;
7825 def J4_cmpgtu_fp1_jump_nt : HInst<
7826 (outs),
7827 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7828 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7829 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7830 let Inst{0-0} = 0b0;
7831 let Inst{13-12} = 0b01;
7832 let Inst{31-22} = 0b0001010101;
7833 let isPredicated = 1;
7834 let isPredicatedFalse = 1;
7835 let isTerminator = 1;
7836 let isBranch = 1;
7837 let isPredicatedNew = 1;
7838 let cofRelax1 = 1;
7839 let cofRelax2 = 1;
7840 let cofMax1 = 1;
7841 let Uses = [P1];
7842 let Defs = [P1, PC];
7843 let BaseOpcode = "J4_cmpgtup1";
7844 let isTaken = Inst{13};
7845 let isExtendable = 1;
7846 let opExtendable = 2;
7847 let isExtentSigned = 1;
7848 let opExtentBits = 11;
7849 let opExtentAlign = 2;
7851 def J4_cmpgtu_fp1_jump_t : HInst<
7852 (outs),
7853 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7854 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7855 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7856 let Inst{0-0} = 0b0;
7857 let Inst{13-12} = 0b11;
7858 let Inst{31-22} = 0b0001010101;
7859 let isPredicated = 1;
7860 let isPredicatedFalse = 1;
7861 let isTerminator = 1;
7862 let isBranch = 1;
7863 let isPredicatedNew = 1;
7864 let cofRelax1 = 1;
7865 let cofRelax2 = 1;
7866 let cofMax1 = 1;
7867 let Uses = [P1];
7868 let Defs = [P1, PC];
7869 let BaseOpcode = "J4_cmpgtup1";
7870 let isTaken = Inst{13};
7871 let isExtendable = 1;
7872 let opExtendable = 2;
7873 let isExtentSigned = 1;
7874 let opExtentBits = 11;
7875 let opExtentAlign = 2;
7877 def J4_cmpgtu_t_jumpnv_nt : HInst<
7878 (outs),
7879 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7880 "if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7881 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7882 let Inst{0-0} = 0b0;
7883 let Inst{13-13} = 0b0;
7884 let Inst{19-19} = 0b0;
7885 let Inst{31-22} = 0b0010000100;
7886 let isPredicated = 1;
7887 let isTerminator = 1;
7888 let isBranch = 1;
7889 let isNewValue = 1;
7890 let cofMax1 = 1;
7891 let isRestrictNoSlot1Store = 1;
7892 let Defs = [PC];
7893 let BaseOpcode = "J4_cmpgtur";
7894 let isTaken = Inst{13};
7895 let isExtendable = 1;
7896 let opExtendable = 2;
7897 let isExtentSigned = 1;
7898 let opExtentBits = 11;
7899 let opExtentAlign = 2;
7900 let opNewValue = 0;
7902 def J4_cmpgtu_t_jumpnv_t : HInst<
7903 (outs),
7904 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7905 "if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7906 tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel {
7907 let Inst{0-0} = 0b0;
7908 let Inst{13-13} = 0b1;
7909 let Inst{19-19} = 0b0;
7910 let Inst{31-22} = 0b0010000100;
7911 let isPredicated = 1;
7912 let isTerminator = 1;
7913 let isBranch = 1;
7914 let isNewValue = 1;
7915 let cofMax1 = 1;
7916 let isRestrictNoSlot1Store = 1;
7917 let Defs = [PC];
7918 let BaseOpcode = "J4_cmpgtur";
7919 let isTaken = Inst{13};
7920 let isExtendable = 1;
7921 let opExtendable = 2;
7922 let isExtentSigned = 1;
7923 let opExtentBits = 11;
7924 let opExtentAlign = 2;
7925 let opNewValue = 0;
7927 def J4_cmpgtu_tp0_jump_nt : HInst<
7928 (outs),
7929 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7930 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7931 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7932 let Inst{0-0} = 0b0;
7933 let Inst{13-12} = 0b00;
7934 let Inst{31-22} = 0b0001010100;
7935 let isPredicated = 1;
7936 let isTerminator = 1;
7937 let isBranch = 1;
7938 let isPredicatedNew = 1;
7939 let cofRelax1 = 1;
7940 let cofRelax2 = 1;
7941 let cofMax1 = 1;
7942 let Uses = [P0];
7943 let Defs = [P0, PC];
7944 let BaseOpcode = "J4_cmpgtup0";
7945 let isTaken = Inst{13};
7946 let isExtendable = 1;
7947 let opExtendable = 2;
7948 let isExtentSigned = 1;
7949 let opExtentBits = 11;
7950 let opExtentAlign = 2;
7952 def J4_cmpgtu_tp0_jump_t : HInst<
7953 (outs),
7954 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7955 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7956 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7957 let Inst{0-0} = 0b0;
7958 let Inst{13-12} = 0b10;
7959 let Inst{31-22} = 0b0001010100;
7960 let isPredicated = 1;
7961 let isTerminator = 1;
7962 let isBranch = 1;
7963 let isPredicatedNew = 1;
7964 let cofRelax1 = 1;
7965 let cofRelax2 = 1;
7966 let cofMax1 = 1;
7967 let Uses = [P0];
7968 let Defs = [P0, PC];
7969 let BaseOpcode = "J4_cmpgtup0";
7970 let isTaken = Inst{13};
7971 let isExtendable = 1;
7972 let opExtendable = 2;
7973 let isExtentSigned = 1;
7974 let opExtentBits = 11;
7975 let opExtentAlign = 2;
7977 def J4_cmpgtu_tp1_jump_nt : HInst<
7978 (outs),
7979 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7980 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7981 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
7982 let Inst{0-0} = 0b0;
7983 let Inst{13-12} = 0b01;
7984 let Inst{31-22} = 0b0001010100;
7985 let isPredicated = 1;
7986 let isTerminator = 1;
7987 let isBranch = 1;
7988 let isPredicatedNew = 1;
7989 let cofRelax1 = 1;
7990 let cofRelax2 = 1;
7991 let cofMax1 = 1;
7992 let Uses = [P1];
7993 let Defs = [P1, PC];
7994 let BaseOpcode = "J4_cmpgtup1";
7995 let isTaken = Inst{13};
7996 let isExtendable = 1;
7997 let opExtendable = 2;
7998 let isExtentSigned = 1;
7999 let opExtentBits = 11;
8000 let opExtentAlign = 2;
8002 def J4_cmpgtu_tp1_jump_t : HInst<
8003 (outs),
8004 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
8005 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
8006 tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel {
8007 let Inst{0-0} = 0b0;
8008 let Inst{13-12} = 0b11;
8009 let Inst{31-22} = 0b0001010100;
8010 let isPredicated = 1;
8011 let isTerminator = 1;
8012 let isBranch = 1;
8013 let isPredicatedNew = 1;
8014 let cofRelax1 = 1;
8015 let cofRelax2 = 1;
8016 let cofMax1 = 1;
8017 let Uses = [P1];
8018 let Defs = [P1, PC];
8019 let BaseOpcode = "J4_cmpgtup1";
8020 let isTaken = Inst{13};
8021 let isExtendable = 1;
8022 let opExtendable = 2;
8023 let isExtentSigned = 1;
8024 let opExtentBits = 11;
8025 let opExtentAlign = 2;
8027 def J4_cmpgtui_f_jumpnv_nt : HInst<
8028 (outs),
8029 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8030 "if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8031 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8032 let Inst{0-0} = 0b0;
8033 let Inst{13-13} = 0b0;
8034 let Inst{19-19} = 0b0;
8035 let Inst{31-22} = 0b0010010101;
8036 let isPredicated = 1;
8037 let isPredicatedFalse = 1;
8038 let isTerminator = 1;
8039 let isBranch = 1;
8040 let isNewValue = 1;
8041 let cofMax1 = 1;
8042 let isRestrictNoSlot1Store = 1;
8043 let Defs = [PC];
8044 let BaseOpcode = "J4_cmpgtuir";
8045 let isTaken = Inst{13};
8046 let isExtendable = 1;
8047 let opExtendable = 2;
8048 let isExtentSigned = 1;
8049 let opExtentBits = 11;
8050 let opExtentAlign = 2;
8051 let opNewValue = 0;
8053 def J4_cmpgtui_f_jumpnv_t : HInst<
8054 (outs),
8055 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8056 "if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8057 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8058 let Inst{0-0} = 0b0;
8059 let Inst{13-13} = 0b1;
8060 let Inst{19-19} = 0b0;
8061 let Inst{31-22} = 0b0010010101;
8062 let isPredicated = 1;
8063 let isPredicatedFalse = 1;
8064 let isTerminator = 1;
8065 let isBranch = 1;
8066 let isNewValue = 1;
8067 let cofMax1 = 1;
8068 let isRestrictNoSlot1Store = 1;
8069 let Defs = [PC];
8070 let BaseOpcode = "J4_cmpgtuir";
8071 let isTaken = Inst{13};
8072 let isExtendable = 1;
8073 let opExtendable = 2;
8074 let isExtentSigned = 1;
8075 let opExtentBits = 11;
8076 let opExtentAlign = 2;
8077 let opNewValue = 0;
8079 def J4_cmpgtui_fp0_jump_nt : HInst<
8080 (outs),
8081 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8082 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
8083 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8084 let Inst{0-0} = 0b0;
8085 let Inst{13-13} = 0b0;
8086 let Inst{31-22} = 0b0001000101;
8087 let isPredicated = 1;
8088 let isPredicatedFalse = 1;
8089 let isTerminator = 1;
8090 let isBranch = 1;
8091 let isPredicatedNew = 1;
8092 let cofRelax1 = 1;
8093 let cofRelax2 = 1;
8094 let cofMax1 = 1;
8095 let Uses = [P0];
8096 let Defs = [P0, PC];
8097 let BaseOpcode = "J4_cmpgtuip0";
8098 let isTaken = Inst{13};
8099 let isExtendable = 1;
8100 let opExtendable = 2;
8101 let isExtentSigned = 1;
8102 let opExtentBits = 11;
8103 let opExtentAlign = 2;
8105 def J4_cmpgtui_fp0_jump_t : HInst<
8106 (outs),
8107 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8108 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
8109 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8110 let Inst{0-0} = 0b0;
8111 let Inst{13-13} = 0b1;
8112 let Inst{31-22} = 0b0001000101;
8113 let isPredicated = 1;
8114 let isPredicatedFalse = 1;
8115 let isTerminator = 1;
8116 let isBranch = 1;
8117 let isPredicatedNew = 1;
8118 let cofRelax1 = 1;
8119 let cofRelax2 = 1;
8120 let cofMax1 = 1;
8121 let Uses = [P0];
8122 let Defs = [P0, PC];
8123 let BaseOpcode = "J4_cmpgtuip0";
8124 let isTaken = Inst{13};
8125 let isExtendable = 1;
8126 let opExtendable = 2;
8127 let isExtentSigned = 1;
8128 let opExtentBits = 11;
8129 let opExtentAlign = 2;
8131 def J4_cmpgtui_fp1_jump_nt : HInst<
8132 (outs),
8133 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8134 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
8135 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8136 let Inst{0-0} = 0b0;
8137 let Inst{13-13} = 0b0;
8138 let Inst{31-22} = 0b0001001101;
8139 let isPredicated = 1;
8140 let isPredicatedFalse = 1;
8141 let isTerminator = 1;
8142 let isBranch = 1;
8143 let isPredicatedNew = 1;
8144 let cofRelax1 = 1;
8145 let cofRelax2 = 1;
8146 let cofMax1 = 1;
8147 let Uses = [P1];
8148 let Defs = [P1, PC];
8149 let BaseOpcode = "J4_cmpgtuip1";
8150 let isTaken = Inst{13};
8151 let isExtendable = 1;
8152 let opExtendable = 2;
8153 let isExtentSigned = 1;
8154 let opExtentBits = 11;
8155 let opExtentAlign = 2;
8157 def J4_cmpgtui_fp1_jump_t : HInst<
8158 (outs),
8159 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8160 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
8161 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8162 let Inst{0-0} = 0b0;
8163 let Inst{13-13} = 0b1;
8164 let Inst{31-22} = 0b0001001101;
8165 let isPredicated = 1;
8166 let isPredicatedFalse = 1;
8167 let isTerminator = 1;
8168 let isBranch = 1;
8169 let isPredicatedNew = 1;
8170 let cofRelax1 = 1;
8171 let cofRelax2 = 1;
8172 let cofMax1 = 1;
8173 let Uses = [P1];
8174 let Defs = [P1, PC];
8175 let BaseOpcode = "J4_cmpgtuip1";
8176 let isTaken = Inst{13};
8177 let isExtendable = 1;
8178 let opExtendable = 2;
8179 let isExtentSigned = 1;
8180 let opExtentBits = 11;
8181 let opExtentAlign = 2;
8183 def J4_cmpgtui_t_jumpnv_nt : HInst<
8184 (outs),
8185 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8186 "if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8187 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8188 let Inst{0-0} = 0b0;
8189 let Inst{13-13} = 0b0;
8190 let Inst{19-19} = 0b0;
8191 let Inst{31-22} = 0b0010010100;
8192 let isPredicated = 1;
8193 let isTerminator = 1;
8194 let isBranch = 1;
8195 let isNewValue = 1;
8196 let cofMax1 = 1;
8197 let isRestrictNoSlot1Store = 1;
8198 let Defs = [PC];
8199 let BaseOpcode = "J4_cmpgtuir";
8200 let isTaken = Inst{13};
8201 let isExtendable = 1;
8202 let opExtendable = 2;
8203 let isExtentSigned = 1;
8204 let opExtentBits = 11;
8205 let opExtentAlign = 2;
8206 let opNewValue = 0;
8208 def J4_cmpgtui_t_jumpnv_t : HInst<
8209 (outs),
8210 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8211 "if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8212 tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel {
8213 let Inst{0-0} = 0b0;
8214 let Inst{13-13} = 0b1;
8215 let Inst{19-19} = 0b0;
8216 let Inst{31-22} = 0b0010010100;
8217 let isPredicated = 1;
8218 let isTerminator = 1;
8219 let isBranch = 1;
8220 let isNewValue = 1;
8221 let cofMax1 = 1;
8222 let isRestrictNoSlot1Store = 1;
8223 let Defs = [PC];
8224 let BaseOpcode = "J4_cmpgtuir";
8225 let isTaken = Inst{13};
8226 let isExtendable = 1;
8227 let opExtendable = 2;
8228 let isExtentSigned = 1;
8229 let opExtentBits = 11;
8230 let opExtentAlign = 2;
8231 let opNewValue = 0;
8233 def J4_cmpgtui_tp0_jump_nt : HInst<
8234 (outs),
8235 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8236 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
8237 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8238 let Inst{0-0} = 0b0;
8239 let Inst{13-13} = 0b0;
8240 let Inst{31-22} = 0b0001000100;
8241 let isPredicated = 1;
8242 let isTerminator = 1;
8243 let isBranch = 1;
8244 let isPredicatedNew = 1;
8245 let cofRelax1 = 1;
8246 let cofRelax2 = 1;
8247 let cofMax1 = 1;
8248 let Uses = [P0];
8249 let Defs = [P0, PC];
8250 let BaseOpcode = "J4_cmpgtuip0";
8251 let isTaken = Inst{13};
8252 let isExtendable = 1;
8253 let opExtendable = 2;
8254 let isExtentSigned = 1;
8255 let opExtentBits = 11;
8256 let opExtentAlign = 2;
8258 def J4_cmpgtui_tp0_jump_t : HInst<
8259 (outs),
8260 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8261 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
8262 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8263 let Inst{0-0} = 0b0;
8264 let Inst{13-13} = 0b1;
8265 let Inst{31-22} = 0b0001000100;
8266 let isPredicated = 1;
8267 let isTerminator = 1;
8268 let isBranch = 1;
8269 let isPredicatedNew = 1;
8270 let cofRelax1 = 1;
8271 let cofRelax2 = 1;
8272 let cofMax1 = 1;
8273 let Uses = [P0];
8274 let Defs = [P0, PC];
8275 let BaseOpcode = "J4_cmpgtuip0";
8276 let isTaken = Inst{13};
8277 let isExtendable = 1;
8278 let opExtendable = 2;
8279 let isExtentSigned = 1;
8280 let opExtentBits = 11;
8281 let opExtentAlign = 2;
8283 def J4_cmpgtui_tp1_jump_nt : HInst<
8284 (outs),
8285 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8286 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
8287 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8288 let Inst{0-0} = 0b0;
8289 let Inst{13-13} = 0b0;
8290 let Inst{31-22} = 0b0001001100;
8291 let isPredicated = 1;
8292 let isTerminator = 1;
8293 let isBranch = 1;
8294 let isPredicatedNew = 1;
8295 let cofRelax1 = 1;
8296 let cofRelax2 = 1;
8297 let cofMax1 = 1;
8298 let Uses = [P1];
8299 let Defs = [P1, PC];
8300 let BaseOpcode = "J4_cmpgtuip1";
8301 let isTaken = Inst{13};
8302 let isExtendable = 1;
8303 let opExtendable = 2;
8304 let isExtentSigned = 1;
8305 let opExtentBits = 11;
8306 let opExtentAlign = 2;
8308 def J4_cmpgtui_tp1_jump_t : HInst<
8309 (outs),
8310 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8311 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
8312 tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel {
8313 let Inst{0-0} = 0b0;
8314 let Inst{13-13} = 0b1;
8315 let Inst{31-22} = 0b0001001100;
8316 let isPredicated = 1;
8317 let isTerminator = 1;
8318 let isBranch = 1;
8319 let isPredicatedNew = 1;
8320 let cofRelax1 = 1;
8321 let cofRelax2 = 1;
8322 let cofMax1 = 1;
8323 let Uses = [P1];
8324 let Defs = [P1, PC];
8325 let BaseOpcode = "J4_cmpgtuip1";
8326 let isTaken = Inst{13};
8327 let isExtendable = 1;
8328 let opExtendable = 2;
8329 let isExtentSigned = 1;
8330 let opExtentBits = 11;
8331 let opExtentAlign = 2;
8333 def J4_cmplt_f_jumpnv_nt : HInst<
8334 (outs),
8335 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8336 "if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8337 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8338 let Inst{0-0} = 0b0;
8339 let Inst{13-13} = 0b0;
8340 let Inst{19-19} = 0b0;
8341 let Inst{31-22} = 0b0010000111;
8342 let isPredicated = 1;
8343 let isPredicatedFalse = 1;
8344 let isTerminator = 1;
8345 let isBranch = 1;
8346 let isNewValue = 1;
8347 let cofMax1 = 1;
8348 let isRestrictNoSlot1Store = 1;
8349 let Defs = [PC];
8350 let BaseOpcode = "J4_cmpltr";
8351 let isTaken = Inst{13};
8352 let isExtendable = 1;
8353 let opExtendable = 2;
8354 let isExtentSigned = 1;
8355 let opExtentBits = 11;
8356 let opExtentAlign = 2;
8357 let opNewValue = 1;
8359 def J4_cmplt_f_jumpnv_t : HInst<
8360 (outs),
8361 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8362 "if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8363 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8364 let Inst{0-0} = 0b0;
8365 let Inst{13-13} = 0b1;
8366 let Inst{19-19} = 0b0;
8367 let Inst{31-22} = 0b0010000111;
8368 let isPredicated = 1;
8369 let isPredicatedFalse = 1;
8370 let isTerminator = 1;
8371 let isBranch = 1;
8372 let isNewValue = 1;
8373 let cofMax1 = 1;
8374 let isRestrictNoSlot1Store = 1;
8375 let Defs = [PC];
8376 let BaseOpcode = "J4_cmpltr";
8377 let isTaken = Inst{13};
8378 let isExtendable = 1;
8379 let opExtendable = 2;
8380 let isExtentSigned = 1;
8381 let opExtentBits = 11;
8382 let opExtentAlign = 2;
8383 let opNewValue = 1;
8385 def J4_cmplt_t_jumpnv_nt : HInst<
8386 (outs),
8387 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8388 "if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8389 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8390 let Inst{0-0} = 0b0;
8391 let Inst{13-13} = 0b0;
8392 let Inst{19-19} = 0b0;
8393 let Inst{31-22} = 0b0010000110;
8394 let isPredicated = 1;
8395 let isTerminator = 1;
8396 let isBranch = 1;
8397 let isNewValue = 1;
8398 let cofMax1 = 1;
8399 let isRestrictNoSlot1Store = 1;
8400 let Defs = [PC];
8401 let BaseOpcode = "J4_cmpltr";
8402 let isTaken = Inst{13};
8403 let isExtendable = 1;
8404 let opExtendable = 2;
8405 let isExtentSigned = 1;
8406 let opExtentBits = 11;
8407 let opExtentAlign = 2;
8408 let opNewValue = 1;
8410 def J4_cmplt_t_jumpnv_t : HInst<
8411 (outs),
8412 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8413 "if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8414 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8415 let Inst{0-0} = 0b0;
8416 let Inst{13-13} = 0b1;
8417 let Inst{19-19} = 0b0;
8418 let Inst{31-22} = 0b0010000110;
8419 let isPredicated = 1;
8420 let isTerminator = 1;
8421 let isBranch = 1;
8422 let isNewValue = 1;
8423 let cofMax1 = 1;
8424 let isRestrictNoSlot1Store = 1;
8425 let Defs = [PC];
8426 let BaseOpcode = "J4_cmpltr";
8427 let isTaken = Inst{13};
8428 let isExtendable = 1;
8429 let opExtendable = 2;
8430 let isExtentSigned = 1;
8431 let opExtentBits = 11;
8432 let opExtentAlign = 2;
8433 let opNewValue = 1;
8435 def J4_cmpltu_f_jumpnv_nt : HInst<
8436 (outs),
8437 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8438 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8439 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8440 let Inst{0-0} = 0b0;
8441 let Inst{13-13} = 0b0;
8442 let Inst{19-19} = 0b0;
8443 let Inst{31-22} = 0b0010001001;
8444 let isPredicated = 1;
8445 let isPredicatedFalse = 1;
8446 let isTerminator = 1;
8447 let isBranch = 1;
8448 let isNewValue = 1;
8449 let cofMax1 = 1;
8450 let isRestrictNoSlot1Store = 1;
8451 let Defs = [PC];
8452 let BaseOpcode = "J4_cmpltur";
8453 let isTaken = Inst{13};
8454 let isExtendable = 1;
8455 let opExtendable = 2;
8456 let isExtentSigned = 1;
8457 let opExtentBits = 11;
8458 let opExtentAlign = 2;
8459 let opNewValue = 1;
8461 def J4_cmpltu_f_jumpnv_t : HInst<
8462 (outs),
8463 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8464 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8465 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8466 let Inst{0-0} = 0b0;
8467 let Inst{13-13} = 0b1;
8468 let Inst{19-19} = 0b0;
8469 let Inst{31-22} = 0b0010001001;
8470 let isPredicated = 1;
8471 let isPredicatedFalse = 1;
8472 let isTerminator = 1;
8473 let isBranch = 1;
8474 let isNewValue = 1;
8475 let cofMax1 = 1;
8476 let isRestrictNoSlot1Store = 1;
8477 let Defs = [PC];
8478 let BaseOpcode = "J4_cmpltur";
8479 let isTaken = Inst{13};
8480 let isExtendable = 1;
8481 let opExtendable = 2;
8482 let isExtentSigned = 1;
8483 let opExtentBits = 11;
8484 let opExtentAlign = 2;
8485 let opNewValue = 1;
8487 def J4_cmpltu_t_jumpnv_nt : HInst<
8488 (outs),
8489 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8490 "if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8491 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8492 let Inst{0-0} = 0b0;
8493 let Inst{13-13} = 0b0;
8494 let Inst{19-19} = 0b0;
8495 let Inst{31-22} = 0b0010001000;
8496 let isPredicated = 1;
8497 let isTerminator = 1;
8498 let isBranch = 1;
8499 let isNewValue = 1;
8500 let cofMax1 = 1;
8501 let isRestrictNoSlot1Store = 1;
8502 let Defs = [PC];
8503 let BaseOpcode = "J4_cmpltur";
8504 let isTaken = Inst{13};
8505 let isExtendable = 1;
8506 let opExtendable = 2;
8507 let isExtentSigned = 1;
8508 let opExtentBits = 11;
8509 let opExtentAlign = 2;
8510 let opNewValue = 1;
8512 def J4_cmpltu_t_jumpnv_t : HInst<
8513 (outs),
8514 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8515 "if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8516 tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel {
8517 let Inst{0-0} = 0b0;
8518 let Inst{13-13} = 0b1;
8519 let Inst{19-19} = 0b0;
8520 let Inst{31-22} = 0b0010001000;
8521 let isPredicated = 1;
8522 let isTerminator = 1;
8523 let isBranch = 1;
8524 let isNewValue = 1;
8525 let cofMax1 = 1;
8526 let isRestrictNoSlot1Store = 1;
8527 let Defs = [PC];
8528 let BaseOpcode = "J4_cmpltur";
8529 let isTaken = Inst{13};
8530 let isExtendable = 1;
8531 let opExtendable = 2;
8532 let isExtentSigned = 1;
8533 let opExtentBits = 11;
8534 let opExtentAlign = 2;
8535 let opNewValue = 1;
8537 def J4_hintjumpr : HInst<
8538 (outs),
8539 (ins IntRegs:$Rs32),
8540 "hintjr($Rs32)",
8541 tc_e60def48, TypeJ>, Enc_ecbcc8 {
8542 let Inst{13-0} = 0b00000000000000;
8543 let Inst{31-21} = 0b01010010101;
8544 let isTerminator = 1;
8545 let isIndirectBranch = 1;
8546 let isBranch = 1;
8547 let cofRelax1 = 1;
8548 let cofRelax2 = 1;
8549 let cofMax1 = 1;
8551 def J4_jumpseti : HInst<
8552 (outs GeneralSubRegs:$Rd16),
8553 (ins u6_0Imm:$II, b30_2Imm:$Ii),
8554 "$Rd16 = #$II ; jump $Ii",
8555 tc_5502c366, TypeCJ>, Enc_9e4c3f {
8556 let Inst{0-0} = 0b0;
8557 let Inst{31-22} = 0b0001011000;
8558 let hasNewValue = 1;
8559 let opNewValue = 0;
8560 let isTerminator = 1;
8561 let isBranch = 1;
8562 let cofRelax2 = 1;
8563 let cofMax1 = 1;
8564 let Defs = [PC];
8565 let isExtendable = 1;
8566 let opExtendable = 2;
8567 let isExtentSigned = 1;
8568 let opExtentBits = 11;
8569 let opExtentAlign = 2;
8571 def J4_jumpsetr : HInst<
8572 (outs GeneralSubRegs:$Rd16),
8573 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8574 "$Rd16 = $Rs16 ; jump $Ii",
8575 tc_5502c366, TypeCJ>, Enc_66bce1 {
8576 let Inst{0-0} = 0b0;
8577 let Inst{13-12} = 0b00;
8578 let Inst{31-22} = 0b0001011100;
8579 let hasNewValue = 1;
8580 let opNewValue = 0;
8581 let isTerminator = 1;
8582 let isBranch = 1;
8583 let cofRelax2 = 1;
8584 let cofMax1 = 1;
8585 let Defs = [PC];
8586 let isExtendable = 1;
8587 let opExtendable = 2;
8588 let isExtentSigned = 1;
8589 let opExtentBits = 11;
8590 let opExtentAlign = 2;
8592 def J4_tstbit0_f_jumpnv_nt : HInst<
8593 (outs),
8594 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8595 "if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8596 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8597 let Inst{0-0} = 0b0;
8598 let Inst{13-8} = 0b000000;
8599 let Inst{19-19} = 0b0;
8600 let Inst{31-22} = 0b0010010111;
8601 let isPredicated = 1;
8602 let isPredicatedFalse = 1;
8603 let isTerminator = 1;
8604 let isBranch = 1;
8605 let isNewValue = 1;
8606 let cofMax1 = 1;
8607 let isRestrictNoSlot1Store = 1;
8608 let Defs = [PC];
8609 let isTaken = Inst{13};
8610 let isExtendable = 1;
8611 let opExtendable = 1;
8612 let isExtentSigned = 1;
8613 let opExtentBits = 11;
8614 let opExtentAlign = 2;
8615 let opNewValue = 0;
8617 def J4_tstbit0_f_jumpnv_t : HInst<
8618 (outs),
8619 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8620 "if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8621 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8622 let Inst{0-0} = 0b0;
8623 let Inst{13-8} = 0b100000;
8624 let Inst{19-19} = 0b0;
8625 let Inst{31-22} = 0b0010010111;
8626 let isPredicated = 1;
8627 let isPredicatedFalse = 1;
8628 let isTerminator = 1;
8629 let isBranch = 1;
8630 let isNewValue = 1;
8631 let cofMax1 = 1;
8632 let isRestrictNoSlot1Store = 1;
8633 let Defs = [PC];
8634 let isTaken = Inst{13};
8635 let isExtendable = 1;
8636 let opExtendable = 1;
8637 let isExtentSigned = 1;
8638 let opExtentBits = 11;
8639 let opExtentAlign = 2;
8640 let opNewValue = 0;
8642 def J4_tstbit0_fp0_jump_nt : HInst<
8643 (outs),
8644 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8645 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8646 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8647 let Inst{0-0} = 0b0;
8648 let Inst{13-8} = 0b000011;
8649 let Inst{31-22} = 0b0001000111;
8650 let isPredicated = 1;
8651 let isPredicatedFalse = 1;
8652 let isTerminator = 1;
8653 let isBranch = 1;
8654 let isPredicatedNew = 1;
8655 let cofRelax1 = 1;
8656 let cofRelax2 = 1;
8657 let cofMax1 = 1;
8658 let Uses = [P0];
8659 let Defs = [P0, PC];
8660 let isTaken = Inst{13};
8661 let isExtendable = 1;
8662 let opExtendable = 1;
8663 let isExtentSigned = 1;
8664 let opExtentBits = 11;
8665 let opExtentAlign = 2;
8667 def J4_tstbit0_fp0_jump_t : HInst<
8668 (outs),
8669 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8670 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8671 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8672 let Inst{0-0} = 0b0;
8673 let Inst{13-8} = 0b100011;
8674 let Inst{31-22} = 0b0001000111;
8675 let isPredicated = 1;
8676 let isPredicatedFalse = 1;
8677 let isTerminator = 1;
8678 let isBranch = 1;
8679 let isPredicatedNew = 1;
8680 let cofRelax1 = 1;
8681 let cofRelax2 = 1;
8682 let cofMax1 = 1;
8683 let Uses = [P0];
8684 let Defs = [P0, PC];
8685 let isTaken = Inst{13};
8686 let isExtendable = 1;
8687 let opExtendable = 1;
8688 let isExtentSigned = 1;
8689 let opExtentBits = 11;
8690 let opExtentAlign = 2;
8692 def J4_tstbit0_fp1_jump_nt : HInst<
8693 (outs),
8694 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8695 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8696 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8697 let Inst{0-0} = 0b0;
8698 let Inst{13-8} = 0b000011;
8699 let Inst{31-22} = 0b0001001111;
8700 let isPredicated = 1;
8701 let isPredicatedFalse = 1;
8702 let isTerminator = 1;
8703 let isBranch = 1;
8704 let isPredicatedNew = 1;
8705 let cofRelax1 = 1;
8706 let cofRelax2 = 1;
8707 let cofMax1 = 1;
8708 let Uses = [P1];
8709 let Defs = [P1, PC];
8710 let isTaken = Inst{13};
8711 let isExtendable = 1;
8712 let opExtendable = 1;
8713 let isExtentSigned = 1;
8714 let opExtentBits = 11;
8715 let opExtentAlign = 2;
8717 def J4_tstbit0_fp1_jump_t : HInst<
8718 (outs),
8719 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8720 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8721 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8722 let Inst{0-0} = 0b0;
8723 let Inst{13-8} = 0b100011;
8724 let Inst{31-22} = 0b0001001111;
8725 let isPredicated = 1;
8726 let isPredicatedFalse = 1;
8727 let isTerminator = 1;
8728 let isBranch = 1;
8729 let isPredicatedNew = 1;
8730 let cofRelax1 = 1;
8731 let cofRelax2 = 1;
8732 let cofMax1 = 1;
8733 let Uses = [P1];
8734 let Defs = [P1, PC];
8735 let isTaken = Inst{13};
8736 let isExtendable = 1;
8737 let opExtendable = 1;
8738 let isExtentSigned = 1;
8739 let opExtentBits = 11;
8740 let opExtentAlign = 2;
8742 def J4_tstbit0_t_jumpnv_nt : HInst<
8743 (outs),
8744 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8745 "if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8746 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8747 let Inst{0-0} = 0b0;
8748 let Inst{13-8} = 0b000000;
8749 let Inst{19-19} = 0b0;
8750 let Inst{31-22} = 0b0010010110;
8751 let isPredicated = 1;
8752 let isTerminator = 1;
8753 let isBranch = 1;
8754 let isNewValue = 1;
8755 let cofMax1 = 1;
8756 let isRestrictNoSlot1Store = 1;
8757 let Defs = [PC];
8758 let isTaken = Inst{13};
8759 let isExtendable = 1;
8760 let opExtendable = 1;
8761 let isExtentSigned = 1;
8762 let opExtentBits = 11;
8763 let opExtentAlign = 2;
8764 let opNewValue = 0;
8766 def J4_tstbit0_t_jumpnv_t : HInst<
8767 (outs),
8768 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8769 "if (tstbit($Ns8.new,#0)) jump:t $Ii",
8770 tc_7b9187d3, TypeNCJ>, Enc_69d63b {
8771 let Inst{0-0} = 0b0;
8772 let Inst{13-8} = 0b100000;
8773 let Inst{19-19} = 0b0;
8774 let Inst{31-22} = 0b0010010110;
8775 let isPredicated = 1;
8776 let isTerminator = 1;
8777 let isBranch = 1;
8778 let isNewValue = 1;
8779 let cofMax1 = 1;
8780 let isRestrictNoSlot1Store = 1;
8781 let Defs = [PC];
8782 let isTaken = Inst{13};
8783 let isExtendable = 1;
8784 let opExtendable = 1;
8785 let isExtentSigned = 1;
8786 let opExtentBits = 11;
8787 let opExtentAlign = 2;
8788 let opNewValue = 0;
8790 def J4_tstbit0_tp0_jump_nt : HInst<
8791 (outs),
8792 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8793 "p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8794 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8795 let Inst{0-0} = 0b0;
8796 let Inst{13-8} = 0b000011;
8797 let Inst{31-22} = 0b0001000110;
8798 let isPredicated = 1;
8799 let isTerminator = 1;
8800 let isBranch = 1;
8801 let isPredicatedNew = 1;
8802 let cofRelax1 = 1;
8803 let cofRelax2 = 1;
8804 let cofMax1 = 1;
8805 let Uses = [P0];
8806 let Defs = [P0, PC];
8807 let isTaken = Inst{13};
8808 let isExtendable = 1;
8809 let opExtendable = 1;
8810 let isExtentSigned = 1;
8811 let opExtentBits = 11;
8812 let opExtentAlign = 2;
8814 def J4_tstbit0_tp0_jump_t : HInst<
8815 (outs),
8816 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8817 "p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8818 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8819 let Inst{0-0} = 0b0;
8820 let Inst{13-8} = 0b100011;
8821 let Inst{31-22} = 0b0001000110;
8822 let isPredicated = 1;
8823 let isTerminator = 1;
8824 let isBranch = 1;
8825 let isPredicatedNew = 1;
8826 let cofRelax1 = 1;
8827 let cofRelax2 = 1;
8828 let cofMax1 = 1;
8829 let Uses = [P0];
8830 let Defs = [P0, PC];
8831 let isTaken = Inst{13};
8832 let isExtendable = 1;
8833 let opExtendable = 1;
8834 let isExtentSigned = 1;
8835 let opExtentBits = 11;
8836 let opExtentAlign = 2;
8838 def J4_tstbit0_tp1_jump_nt : HInst<
8839 (outs),
8840 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8841 "p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8842 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8843 let Inst{0-0} = 0b0;
8844 let Inst{13-8} = 0b000011;
8845 let Inst{31-22} = 0b0001001110;
8846 let isPredicated = 1;
8847 let isTerminator = 1;
8848 let isBranch = 1;
8849 let isPredicatedNew = 1;
8850 let cofRelax1 = 1;
8851 let cofRelax2 = 1;
8852 let cofMax1 = 1;
8853 let Uses = [P1];
8854 let Defs = [P1, PC];
8855 let isTaken = Inst{13};
8856 let isExtendable = 1;
8857 let opExtendable = 1;
8858 let isExtentSigned = 1;
8859 let opExtentBits = 11;
8860 let opExtentAlign = 2;
8862 def J4_tstbit0_tp1_jump_t : HInst<
8863 (outs),
8864 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8865 "p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8866 tc_f999c66e, TypeCJ>, Enc_ad1c74 {
8867 let Inst{0-0} = 0b0;
8868 let Inst{13-8} = 0b100011;
8869 let Inst{31-22} = 0b0001001110;
8870 let isPredicated = 1;
8871 let isTerminator = 1;
8872 let isBranch = 1;
8873 let isPredicatedNew = 1;
8874 let cofRelax1 = 1;
8875 let cofRelax2 = 1;
8876 let cofMax1 = 1;
8877 let Uses = [P1];
8878 let Defs = [P1, PC];
8879 let isTaken = Inst{13};
8880 let isExtendable = 1;
8881 let opExtendable = 1;
8882 let isExtentSigned = 1;
8883 let opExtentBits = 11;
8884 let opExtentAlign = 2;
8886 def L2_deallocframe : HInst<
8887 (outs DoubleRegs:$Rdd32),
8888 (ins IntRegs:$Rs32),
8889 "$Rdd32 = deallocframe($Rs32):raw",
8890 tc_e9170fb7, TypeLD>, Enc_3a3d62 {
8891 let Inst{13-5} = 0b000000000;
8892 let Inst{31-21} = 0b10010000000;
8893 let accessSize = DoubleWordAccess;
8894 let mayLoad = 1;
8895 let Uses = [FRAMEKEY];
8896 let Defs = [R29];
8898 def L2_loadalignb_io : HInst<
8899 (outs DoubleRegs:$Ryy32),
8900 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8901 "$Ryy32 = memb_fifo($Rs32+#$Ii)",
8902 tc_fedb7e19, TypeLD>, Enc_a27588 {
8903 let Inst{24-21} = 0b0100;
8904 let Inst{31-27} = 0b10010;
8905 let addrMode = BaseImmOffset;
8906 let accessSize = ByteAccess;
8907 let mayLoad = 1;
8908 let isExtendable = 1;
8909 let opExtendable = 3;
8910 let isExtentSigned = 1;
8911 let opExtentBits = 11;
8912 let opExtentAlign = 0;
8913 let Constraints = "$Ryy32 = $Ryy32in";
8915 def L2_loadalignb_pbr : HInst<
8916 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8917 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8918 "$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8919 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8920 let Inst{12-5} = 0b00000000;
8921 let Inst{31-21} = 0b10011110100;
8922 let addrMode = PostInc;
8923 let accessSize = ByteAccess;
8924 let mayLoad = 1;
8925 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8927 def L2_loadalignb_pci : HInst<
8928 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8929 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8930 "$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8931 tc_76bb5435, TypeLD>, Enc_74aef2 {
8932 let Inst{12-9} = 0b0000;
8933 let Inst{31-21} = 0b10011000100;
8934 let addrMode = PostInc;
8935 let accessSize = ByteAccess;
8936 let mayLoad = 1;
8937 let Uses = [CS];
8938 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8940 def L2_loadalignb_pcr : HInst<
8941 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8942 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8943 "$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8944 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8945 let Inst{12-5} = 0b00010000;
8946 let Inst{31-21} = 0b10011000100;
8947 let addrMode = PostInc;
8948 let accessSize = ByteAccess;
8949 let mayLoad = 1;
8950 let Uses = [CS];
8951 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8953 def L2_loadalignb_pi : HInst<
8954 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8955 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8956 "$Ryy32 = memb_fifo($Rx32++#$Ii)",
8957 tc_1c7522a8, TypeLD>, Enc_6b197f {
8958 let Inst{13-9} = 0b00000;
8959 let Inst{31-21} = 0b10011010100;
8960 let addrMode = PostInc;
8961 let accessSize = ByteAccess;
8962 let mayLoad = 1;
8963 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8965 def L2_loadalignb_pr : HInst<
8966 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8967 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8968 "$Ryy32 = memb_fifo($Rx32++$Mu2)",
8969 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
8970 let Inst{12-5} = 0b00000000;
8971 let Inst{31-21} = 0b10011100100;
8972 let addrMode = PostInc;
8973 let accessSize = ByteAccess;
8974 let mayLoad = 1;
8975 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8977 def L2_loadalignb_zomap : HInst<
8978 (outs DoubleRegs:$Ryy32),
8979 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8980 "$Ryy32 = memb_fifo($Rs32)",
8981 tc_fedb7e19, TypeMAPPING> {
8982 let isPseudo = 1;
8983 let isCodeGenOnly = 1;
8984 let Constraints = "$Ryy32 = $Ryy32in";
8986 def L2_loadalignh_io : HInst<
8987 (outs DoubleRegs:$Ryy32),
8988 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8989 "$Ryy32 = memh_fifo($Rs32+#$Ii)",
8990 tc_fedb7e19, TypeLD>, Enc_5cd7e9 {
8991 let Inst{24-21} = 0b0010;
8992 let Inst{31-27} = 0b10010;
8993 let addrMode = BaseImmOffset;
8994 let accessSize = HalfWordAccess;
8995 let mayLoad = 1;
8996 let isExtendable = 1;
8997 let opExtendable = 3;
8998 let isExtentSigned = 1;
8999 let opExtentBits = 12;
9000 let opExtentAlign = 1;
9001 let Constraints = "$Ryy32 = $Ryy32in";
9003 def L2_loadalignh_pbr : HInst<
9004 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9005 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9006 "$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
9007 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9008 let Inst{12-5} = 0b00000000;
9009 let Inst{31-21} = 0b10011110010;
9010 let addrMode = PostInc;
9011 let accessSize = HalfWordAccess;
9012 let mayLoad = 1;
9013 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9015 def L2_loadalignh_pci : HInst<
9016 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9017 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9018 "$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
9019 tc_76bb5435, TypeLD>, Enc_9e2e1c {
9020 let Inst{12-9} = 0b0000;
9021 let Inst{31-21} = 0b10011000010;
9022 let addrMode = PostInc;
9023 let accessSize = HalfWordAccess;
9024 let mayLoad = 1;
9025 let Uses = [CS];
9026 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9028 def L2_loadalignh_pcr : HInst<
9029 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9030 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9031 "$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
9032 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9033 let Inst{12-5} = 0b00010000;
9034 let Inst{31-21} = 0b10011000010;
9035 let addrMode = PostInc;
9036 let accessSize = HalfWordAccess;
9037 let mayLoad = 1;
9038 let Uses = [CS];
9039 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9041 def L2_loadalignh_pi : HInst<
9042 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9043 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
9044 "$Ryy32 = memh_fifo($Rx32++#$Ii)",
9045 tc_1c7522a8, TypeLD>, Enc_bd1cbc {
9046 let Inst{13-9} = 0b00000;
9047 let Inst{31-21} = 0b10011010010;
9048 let addrMode = PostInc;
9049 let accessSize = HalfWordAccess;
9050 let mayLoad = 1;
9051 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9053 def L2_loadalignh_pr : HInst<
9054 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
9055 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
9056 "$Ryy32 = memh_fifo($Rx32++$Mu2)",
9057 tc_1c7522a8, TypeLD>, Enc_1f5d8f {
9058 let Inst{12-5} = 0b00000000;
9059 let Inst{31-21} = 0b10011100010;
9060 let addrMode = PostInc;
9061 let accessSize = HalfWordAccess;
9062 let mayLoad = 1;
9063 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
9065 def L2_loadalignh_zomap : HInst<
9066 (outs DoubleRegs:$Ryy32),
9067 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
9068 "$Ryy32 = memh_fifo($Rs32)",
9069 tc_fedb7e19, TypeMAPPING> {
9070 let isPseudo = 1;
9071 let isCodeGenOnly = 1;
9072 let Constraints = "$Ryy32 = $Ryy32in";
9074 def L2_loadbsw2_io : HInst<
9075 (outs IntRegs:$Rd32),
9076 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9077 "$Rd32 = membh($Rs32+#$Ii)",
9078 tc_4222e6bf, TypeLD>, Enc_de0214 {
9079 let Inst{24-21} = 0b0001;
9080 let Inst{31-27} = 0b10010;
9081 let hasNewValue = 1;
9082 let opNewValue = 0;
9083 let addrMode = BaseImmOffset;
9084 let accessSize = HalfWordAccess;
9085 let mayLoad = 1;
9086 let isExtendable = 1;
9087 let opExtendable = 2;
9088 let isExtentSigned = 1;
9089 let opExtentBits = 12;
9090 let opExtentAlign = 1;
9092 def L2_loadbsw2_pbr : HInst<
9093 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9094 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9095 "$Rd32 = membh($Rx32++$Mu2:brev)",
9096 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9097 let Inst{12-5} = 0b00000000;
9098 let Inst{31-21} = 0b10011110001;
9099 let hasNewValue = 1;
9100 let opNewValue = 0;
9101 let addrMode = PostInc;
9102 let accessSize = HalfWordAccess;
9103 let mayLoad = 1;
9104 let Constraints = "$Rx32 = $Rx32in";
9106 def L2_loadbsw2_pci : HInst<
9107 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9108 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9109 "$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
9110 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9111 let Inst{12-9} = 0b0000;
9112 let Inst{31-21} = 0b10011000001;
9113 let hasNewValue = 1;
9114 let opNewValue = 0;
9115 let addrMode = PostInc;
9116 let accessSize = HalfWordAccess;
9117 let mayLoad = 1;
9118 let Uses = [CS];
9119 let Constraints = "$Rx32 = $Rx32in";
9121 def L2_loadbsw2_pcr : HInst<
9122 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9123 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9124 "$Rd32 = membh($Rx32++I:circ($Mu2))",
9125 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9126 let Inst{12-5} = 0b00010000;
9127 let Inst{31-21} = 0b10011000001;
9128 let hasNewValue = 1;
9129 let opNewValue = 0;
9130 let addrMode = PostInc;
9131 let accessSize = HalfWordAccess;
9132 let mayLoad = 1;
9133 let Uses = [CS];
9134 let Constraints = "$Rx32 = $Rx32in";
9136 def L2_loadbsw2_pi : HInst<
9137 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9138 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9139 "$Rd32 = membh($Rx32++#$Ii)",
9140 tc_075c8dd8, TypeLD>, Enc_152467 {
9141 let Inst{13-9} = 0b00000;
9142 let Inst{31-21} = 0b10011010001;
9143 let hasNewValue = 1;
9144 let opNewValue = 0;
9145 let addrMode = PostInc;
9146 let accessSize = HalfWordAccess;
9147 let mayLoad = 1;
9148 let Constraints = "$Rx32 = $Rx32in";
9150 def L2_loadbsw2_pr : HInst<
9151 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9152 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9153 "$Rd32 = membh($Rx32++$Mu2)",
9154 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9155 let Inst{12-5} = 0b00000000;
9156 let Inst{31-21} = 0b10011100001;
9157 let hasNewValue = 1;
9158 let opNewValue = 0;
9159 let addrMode = PostInc;
9160 let accessSize = HalfWordAccess;
9161 let mayLoad = 1;
9162 let Constraints = "$Rx32 = $Rx32in";
9164 def L2_loadbsw2_zomap : HInst<
9165 (outs IntRegs:$Rd32),
9166 (ins IntRegs:$Rs32),
9167 "$Rd32 = membh($Rs32)",
9168 tc_4222e6bf, TypeMAPPING> {
9169 let hasNewValue = 1;
9170 let opNewValue = 0;
9171 let isPseudo = 1;
9172 let isCodeGenOnly = 1;
9174 def L2_loadbsw4_io : HInst<
9175 (outs DoubleRegs:$Rdd32),
9176 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9177 "$Rdd32 = membh($Rs32+#$Ii)",
9178 tc_4222e6bf, TypeLD>, Enc_2d7491 {
9179 let Inst{24-21} = 0b0111;
9180 let Inst{31-27} = 0b10010;
9181 let addrMode = BaseImmOffset;
9182 let accessSize = WordAccess;
9183 let mayLoad = 1;
9184 let isExtendable = 1;
9185 let opExtendable = 2;
9186 let isExtentSigned = 1;
9187 let opExtentBits = 13;
9188 let opExtentAlign = 2;
9190 def L2_loadbsw4_pbr : HInst<
9191 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9192 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9193 "$Rdd32 = membh($Rx32++$Mu2:brev)",
9194 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9195 let Inst{12-5} = 0b00000000;
9196 let Inst{31-21} = 0b10011110111;
9197 let addrMode = PostInc;
9198 let accessSize = WordAccess;
9199 let mayLoad = 1;
9200 let Constraints = "$Rx32 = $Rx32in";
9202 def L2_loadbsw4_pci : HInst<
9203 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9204 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9205 "$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9206 tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9207 let Inst{12-9} = 0b0000;
9208 let Inst{31-21} = 0b10011000111;
9209 let addrMode = PostInc;
9210 let accessSize = WordAccess;
9211 let mayLoad = 1;
9212 let Uses = [CS];
9213 let Constraints = "$Rx32 = $Rx32in";
9215 def L2_loadbsw4_pcr : HInst<
9216 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9217 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9218 "$Rdd32 = membh($Rx32++I:circ($Mu2))",
9219 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9220 let Inst{12-5} = 0b00010000;
9221 let Inst{31-21} = 0b10011000111;
9222 let addrMode = PostInc;
9223 let accessSize = WordAccess;
9224 let mayLoad = 1;
9225 let Uses = [CS];
9226 let Constraints = "$Rx32 = $Rx32in";
9228 def L2_loadbsw4_pi : HInst<
9229 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9230 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9231 "$Rdd32 = membh($Rx32++#$Ii)",
9232 tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9233 let Inst{13-9} = 0b00000;
9234 let Inst{31-21} = 0b10011010111;
9235 let addrMode = PostInc;
9236 let accessSize = WordAccess;
9237 let mayLoad = 1;
9238 let Constraints = "$Rx32 = $Rx32in";
9240 def L2_loadbsw4_pr : HInst<
9241 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9242 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9243 "$Rdd32 = membh($Rx32++$Mu2)",
9244 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9245 let Inst{12-5} = 0b00000000;
9246 let Inst{31-21} = 0b10011100111;
9247 let addrMode = PostInc;
9248 let accessSize = WordAccess;
9249 let mayLoad = 1;
9250 let Constraints = "$Rx32 = $Rx32in";
9252 def L2_loadbsw4_zomap : HInst<
9253 (outs DoubleRegs:$Rdd32),
9254 (ins IntRegs:$Rs32),
9255 "$Rdd32 = membh($Rs32)",
9256 tc_4222e6bf, TypeMAPPING> {
9257 let isPseudo = 1;
9258 let isCodeGenOnly = 1;
9260 def L2_loadbzw2_io : HInst<
9261 (outs IntRegs:$Rd32),
9262 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9263 "$Rd32 = memubh($Rs32+#$Ii)",
9264 tc_4222e6bf, TypeLD>, Enc_de0214 {
9265 let Inst{24-21} = 0b0011;
9266 let Inst{31-27} = 0b10010;
9267 let hasNewValue = 1;
9268 let opNewValue = 0;
9269 let addrMode = BaseImmOffset;
9270 let accessSize = HalfWordAccess;
9271 let mayLoad = 1;
9272 let isExtendable = 1;
9273 let opExtendable = 2;
9274 let isExtentSigned = 1;
9275 let opExtentBits = 12;
9276 let opExtentAlign = 1;
9278 def L2_loadbzw2_pbr : HInst<
9279 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9280 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9281 "$Rd32 = memubh($Rx32++$Mu2:brev)",
9282 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9283 let Inst{12-5} = 0b00000000;
9284 let Inst{31-21} = 0b10011110011;
9285 let hasNewValue = 1;
9286 let opNewValue = 0;
9287 let addrMode = PostInc;
9288 let accessSize = HalfWordAccess;
9289 let mayLoad = 1;
9290 let Constraints = "$Rx32 = $Rx32in";
9292 def L2_loadbzw2_pci : HInst<
9293 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9294 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9295 "$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9296 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9297 let Inst{12-9} = 0b0000;
9298 let Inst{31-21} = 0b10011000011;
9299 let hasNewValue = 1;
9300 let opNewValue = 0;
9301 let addrMode = PostInc;
9302 let accessSize = HalfWordAccess;
9303 let mayLoad = 1;
9304 let Uses = [CS];
9305 let Constraints = "$Rx32 = $Rx32in";
9307 def L2_loadbzw2_pcr : HInst<
9308 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9309 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9310 "$Rd32 = memubh($Rx32++I:circ($Mu2))",
9311 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9312 let Inst{12-5} = 0b00010000;
9313 let Inst{31-21} = 0b10011000011;
9314 let hasNewValue = 1;
9315 let opNewValue = 0;
9316 let addrMode = PostInc;
9317 let accessSize = HalfWordAccess;
9318 let mayLoad = 1;
9319 let Uses = [CS];
9320 let Constraints = "$Rx32 = $Rx32in";
9322 def L2_loadbzw2_pi : HInst<
9323 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9324 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9325 "$Rd32 = memubh($Rx32++#$Ii)",
9326 tc_075c8dd8, TypeLD>, Enc_152467 {
9327 let Inst{13-9} = 0b00000;
9328 let Inst{31-21} = 0b10011010011;
9329 let hasNewValue = 1;
9330 let opNewValue = 0;
9331 let addrMode = PostInc;
9332 let accessSize = HalfWordAccess;
9333 let mayLoad = 1;
9334 let Constraints = "$Rx32 = $Rx32in";
9336 def L2_loadbzw2_pr : HInst<
9337 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9338 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9339 "$Rd32 = memubh($Rx32++$Mu2)",
9340 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9341 let Inst{12-5} = 0b00000000;
9342 let Inst{31-21} = 0b10011100011;
9343 let hasNewValue = 1;
9344 let opNewValue = 0;
9345 let addrMode = PostInc;
9346 let accessSize = HalfWordAccess;
9347 let mayLoad = 1;
9348 let Constraints = "$Rx32 = $Rx32in";
9350 def L2_loadbzw2_zomap : HInst<
9351 (outs IntRegs:$Rd32),
9352 (ins IntRegs:$Rs32),
9353 "$Rd32 = memubh($Rs32)",
9354 tc_4222e6bf, TypeMAPPING> {
9355 let hasNewValue = 1;
9356 let opNewValue = 0;
9357 let isPseudo = 1;
9358 let isCodeGenOnly = 1;
9360 def L2_loadbzw4_io : HInst<
9361 (outs DoubleRegs:$Rdd32),
9362 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9363 "$Rdd32 = memubh($Rs32+#$Ii)",
9364 tc_4222e6bf, TypeLD>, Enc_2d7491 {
9365 let Inst{24-21} = 0b0101;
9366 let Inst{31-27} = 0b10010;
9367 let addrMode = BaseImmOffset;
9368 let accessSize = WordAccess;
9369 let mayLoad = 1;
9370 let isExtendable = 1;
9371 let opExtendable = 2;
9372 let isExtentSigned = 1;
9373 let opExtentBits = 13;
9374 let opExtentAlign = 2;
9376 def L2_loadbzw4_pbr : HInst<
9377 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9378 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9379 "$Rdd32 = memubh($Rx32++$Mu2:brev)",
9380 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9381 let Inst{12-5} = 0b00000000;
9382 let Inst{31-21} = 0b10011110101;
9383 let addrMode = PostInc;
9384 let accessSize = WordAccess;
9385 let mayLoad = 1;
9386 let Constraints = "$Rx32 = $Rx32in";
9388 def L2_loadbzw4_pci : HInst<
9389 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9390 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9391 "$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9392 tc_5ceb2f9e, TypeLD>, Enc_70b24b {
9393 let Inst{12-9} = 0b0000;
9394 let Inst{31-21} = 0b10011000101;
9395 let addrMode = PostInc;
9396 let accessSize = WordAccess;
9397 let mayLoad = 1;
9398 let Uses = [CS];
9399 let Constraints = "$Rx32 = $Rx32in";
9401 def L2_loadbzw4_pcr : HInst<
9402 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9403 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9404 "$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9405 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9406 let Inst{12-5} = 0b00010000;
9407 let Inst{31-21} = 0b10011000101;
9408 let addrMode = PostInc;
9409 let accessSize = WordAccess;
9410 let mayLoad = 1;
9411 let Uses = [CS];
9412 let Constraints = "$Rx32 = $Rx32in";
9414 def L2_loadbzw4_pi : HInst<
9415 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9416 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9417 "$Rdd32 = memubh($Rx32++#$Ii)",
9418 tc_075c8dd8, TypeLD>, Enc_71f1b4 {
9419 let Inst{13-9} = 0b00000;
9420 let Inst{31-21} = 0b10011010101;
9421 let addrMode = PostInc;
9422 let accessSize = WordAccess;
9423 let mayLoad = 1;
9424 let Constraints = "$Rx32 = $Rx32in";
9426 def L2_loadbzw4_pr : HInst<
9427 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9428 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9429 "$Rdd32 = memubh($Rx32++$Mu2)",
9430 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9431 let Inst{12-5} = 0b00000000;
9432 let Inst{31-21} = 0b10011100101;
9433 let addrMode = PostInc;
9434 let accessSize = WordAccess;
9435 let mayLoad = 1;
9436 let Constraints = "$Rx32 = $Rx32in";
9438 def L2_loadbzw4_zomap : HInst<
9439 (outs DoubleRegs:$Rdd32),
9440 (ins IntRegs:$Rs32),
9441 "$Rdd32 = memubh($Rs32)",
9442 tc_4222e6bf, TypeMAPPING> {
9443 let isPseudo = 1;
9444 let isCodeGenOnly = 1;
9446 def L2_loadrb_io : HInst<
9447 (outs IntRegs:$Rd32),
9448 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9449 "$Rd32 = memb($Rs32+#$Ii)",
9450 tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9451 let Inst{24-21} = 0b1000;
9452 let Inst{31-27} = 0b10010;
9453 let hasNewValue = 1;
9454 let opNewValue = 0;
9455 let addrMode = BaseImmOffset;
9456 let accessSize = ByteAccess;
9457 let mayLoad = 1;
9458 let BaseOpcode = "L2_loadrb_io";
9459 let CextOpcode = "L2_loadrb";
9460 let isPredicable = 1;
9461 let isExtendable = 1;
9462 let opExtendable = 2;
9463 let isExtentSigned = 1;
9464 let opExtentBits = 11;
9465 let opExtentAlign = 0;
9467 def L2_loadrb_pbr : HInst<
9468 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9469 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9470 "$Rd32 = memb($Rx32++$Mu2:brev)",
9471 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9472 let Inst{12-5} = 0b00000000;
9473 let Inst{31-21} = 0b10011111000;
9474 let hasNewValue = 1;
9475 let opNewValue = 0;
9476 let addrMode = PostInc;
9477 let accessSize = ByteAccess;
9478 let mayLoad = 1;
9479 let Constraints = "$Rx32 = $Rx32in";
9481 def L2_loadrb_pci : HInst<
9482 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9483 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9484 "$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9485 tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9486 let Inst{12-9} = 0b0000;
9487 let Inst{31-21} = 0b10011001000;
9488 let hasNewValue = 1;
9489 let opNewValue = 0;
9490 let addrMode = PostInc;
9491 let accessSize = ByteAccess;
9492 let mayLoad = 1;
9493 let Uses = [CS];
9494 let Constraints = "$Rx32 = $Rx32in";
9496 def L2_loadrb_pcr : HInst<
9497 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9498 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9499 "$Rd32 = memb($Rx32++I:circ($Mu2))",
9500 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9501 let Inst{12-5} = 0b00010000;
9502 let Inst{31-21} = 0b10011001000;
9503 let hasNewValue = 1;
9504 let opNewValue = 0;
9505 let addrMode = PostInc;
9506 let accessSize = ByteAccess;
9507 let mayLoad = 1;
9508 let Uses = [CS];
9509 let Constraints = "$Rx32 = $Rx32in";
9511 def L2_loadrb_pi : HInst<
9512 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9513 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9514 "$Rd32 = memb($Rx32++#$Ii)",
9515 tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9516 let Inst{13-9} = 0b00000;
9517 let Inst{31-21} = 0b10011011000;
9518 let hasNewValue = 1;
9519 let opNewValue = 0;
9520 let addrMode = PostInc;
9521 let accessSize = ByteAccess;
9522 let mayLoad = 1;
9523 let BaseOpcode = "L2_loadrb_pi";
9524 let CextOpcode = "L2_loadrb";
9525 let isPredicable = 1;
9526 let Constraints = "$Rx32 = $Rx32in";
9528 def L2_loadrb_pr : HInst<
9529 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9530 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9531 "$Rd32 = memb($Rx32++$Mu2)",
9532 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9533 let Inst{12-5} = 0b00000000;
9534 let Inst{31-21} = 0b10011101000;
9535 let hasNewValue = 1;
9536 let opNewValue = 0;
9537 let addrMode = PostInc;
9538 let accessSize = ByteAccess;
9539 let mayLoad = 1;
9540 let Constraints = "$Rx32 = $Rx32in";
9542 def L2_loadrb_zomap : HInst<
9543 (outs IntRegs:$Rd32),
9544 (ins IntRegs:$Rs32),
9545 "$Rd32 = memb($Rs32)",
9546 tc_4222e6bf, TypeMAPPING> {
9547 let hasNewValue = 1;
9548 let opNewValue = 0;
9549 let isPseudo = 1;
9550 let isCodeGenOnly = 1;
9552 def L2_loadrbgp : HInst<
9553 (outs IntRegs:$Rd32),
9554 (ins u32_0Imm:$Ii),
9555 "$Rd32 = memb(gp+#$Ii)",
9556 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9557 let Inst{24-21} = 0b1000;
9558 let Inst{31-27} = 0b01001;
9559 let hasNewValue = 1;
9560 let opNewValue = 0;
9561 let accessSize = ByteAccess;
9562 let mayLoad = 1;
9563 let Uses = [GP];
9564 let BaseOpcode = "L4_loadrb_abs";
9565 let isPredicable = 1;
9566 let opExtendable = 1;
9567 let isExtentSigned = 0;
9568 let opExtentBits = 16;
9569 let opExtentAlign = 0;
9571 def L2_loadrd_io : HInst<
9572 (outs DoubleRegs:$Rdd32),
9573 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
9574 "$Rdd32 = memd($Rs32+#$Ii)",
9575 tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9576 let Inst{24-21} = 0b1110;
9577 let Inst{31-27} = 0b10010;
9578 let addrMode = BaseImmOffset;
9579 let accessSize = DoubleWordAccess;
9580 let mayLoad = 1;
9581 let BaseOpcode = "L2_loadrd_io";
9582 let CextOpcode = "L2_loadrd";
9583 let isPredicable = 1;
9584 let isExtendable = 1;
9585 let opExtendable = 2;
9586 let isExtentSigned = 1;
9587 let opExtentBits = 14;
9588 let opExtentAlign = 3;
9590 def L2_loadrd_pbr : HInst<
9591 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9592 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9593 "$Rdd32 = memd($Rx32++$Mu2:brev)",
9594 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9595 let Inst{12-5} = 0b00000000;
9596 let Inst{31-21} = 0b10011111110;
9597 let addrMode = PostInc;
9598 let accessSize = DoubleWordAccess;
9599 let mayLoad = 1;
9600 let Constraints = "$Rx32 = $Rx32in";
9602 def L2_loadrd_pci : HInst<
9603 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9604 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9605 "$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9606 tc_5ceb2f9e, TypeLD>, Enc_b05839 {
9607 let Inst{12-9} = 0b0000;
9608 let Inst{31-21} = 0b10011001110;
9609 let addrMode = PostInc;
9610 let accessSize = DoubleWordAccess;
9611 let mayLoad = 1;
9612 let Uses = [CS];
9613 let Constraints = "$Rx32 = $Rx32in";
9615 def L2_loadrd_pcr : HInst<
9616 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9617 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9618 "$Rdd32 = memd($Rx32++I:circ($Mu2))",
9619 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9620 let Inst{12-5} = 0b00010000;
9621 let Inst{31-21} = 0b10011001110;
9622 let addrMode = PostInc;
9623 let accessSize = DoubleWordAccess;
9624 let mayLoad = 1;
9625 let Uses = [CS];
9626 let Constraints = "$Rx32 = $Rx32in";
9628 def L2_loadrd_pi : HInst<
9629 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9630 (ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9631 "$Rdd32 = memd($Rx32++#$Ii)",
9632 tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9633 let Inst{13-9} = 0b00000;
9634 let Inst{31-21} = 0b10011011110;
9635 let addrMode = PostInc;
9636 let accessSize = DoubleWordAccess;
9637 let mayLoad = 1;
9638 let BaseOpcode = "L2_loadrd_pi";
9639 let CextOpcode = "L2_loadrd";
9640 let isPredicable = 1;
9641 let Constraints = "$Rx32 = $Rx32in";
9643 def L2_loadrd_pr : HInst<
9644 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9645 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9646 "$Rdd32 = memd($Rx32++$Mu2)",
9647 tc_075c8dd8, TypeLD>, Enc_7eee72 {
9648 let Inst{12-5} = 0b00000000;
9649 let Inst{31-21} = 0b10011101110;
9650 let addrMode = PostInc;
9651 let accessSize = DoubleWordAccess;
9652 let mayLoad = 1;
9653 let Constraints = "$Rx32 = $Rx32in";
9655 def L2_loadrd_zomap : HInst<
9656 (outs DoubleRegs:$Rdd32),
9657 (ins IntRegs:$Rs32),
9658 "$Rdd32 = memd($Rs32)",
9659 tc_4222e6bf, TypeMAPPING> {
9660 let isPseudo = 1;
9661 let isCodeGenOnly = 1;
9663 def L2_loadrdgp : HInst<
9664 (outs DoubleRegs:$Rdd32),
9665 (ins u29_3Imm:$Ii),
9666 "$Rdd32 = memd(gp+#$Ii)",
9667 tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
9668 let Inst{24-21} = 0b1110;
9669 let Inst{31-27} = 0b01001;
9670 let accessSize = DoubleWordAccess;
9671 let mayLoad = 1;
9672 let Uses = [GP];
9673 let BaseOpcode = "L4_loadrd_abs";
9674 let isPredicable = 1;
9675 let opExtendable = 1;
9676 let isExtentSigned = 0;
9677 let opExtentBits = 19;
9678 let opExtentAlign = 3;
9680 def L2_loadrh_io : HInst<
9681 (outs IntRegs:$Rd32),
9682 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9683 "$Rd32 = memh($Rs32+#$Ii)",
9684 tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9685 let Inst{24-21} = 0b1010;
9686 let Inst{31-27} = 0b10010;
9687 let hasNewValue = 1;
9688 let opNewValue = 0;
9689 let addrMode = BaseImmOffset;
9690 let accessSize = HalfWordAccess;
9691 let mayLoad = 1;
9692 let BaseOpcode = "L2_loadrh_io";
9693 let CextOpcode = "L2_loadrh";
9694 let isPredicable = 1;
9695 let isExtendable = 1;
9696 let opExtendable = 2;
9697 let isExtentSigned = 1;
9698 let opExtentBits = 12;
9699 let opExtentAlign = 1;
9701 def L2_loadrh_pbr : HInst<
9702 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9703 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9704 "$Rd32 = memh($Rx32++$Mu2:brev)",
9705 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9706 let Inst{12-5} = 0b00000000;
9707 let Inst{31-21} = 0b10011111010;
9708 let hasNewValue = 1;
9709 let opNewValue = 0;
9710 let addrMode = PostInc;
9711 let accessSize = HalfWordAccess;
9712 let mayLoad = 1;
9713 let Constraints = "$Rx32 = $Rx32in";
9715 def L2_loadrh_pci : HInst<
9716 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9717 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9718 "$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9719 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
9720 let Inst{12-9} = 0b0000;
9721 let Inst{31-21} = 0b10011001010;
9722 let hasNewValue = 1;
9723 let opNewValue = 0;
9724 let addrMode = PostInc;
9725 let accessSize = HalfWordAccess;
9726 let mayLoad = 1;
9727 let Uses = [CS];
9728 let Constraints = "$Rx32 = $Rx32in";
9730 def L2_loadrh_pcr : HInst<
9731 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9732 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9733 "$Rd32 = memh($Rx32++I:circ($Mu2))",
9734 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9735 let Inst{12-5} = 0b00010000;
9736 let Inst{31-21} = 0b10011001010;
9737 let hasNewValue = 1;
9738 let opNewValue = 0;
9739 let addrMode = PostInc;
9740 let accessSize = HalfWordAccess;
9741 let mayLoad = 1;
9742 let Uses = [CS];
9743 let Constraints = "$Rx32 = $Rx32in";
9745 def L2_loadrh_pi : HInst<
9746 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9747 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9748 "$Rd32 = memh($Rx32++#$Ii)",
9749 tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9750 let Inst{13-9} = 0b00000;
9751 let Inst{31-21} = 0b10011011010;
9752 let hasNewValue = 1;
9753 let opNewValue = 0;
9754 let addrMode = PostInc;
9755 let accessSize = HalfWordAccess;
9756 let mayLoad = 1;
9757 let BaseOpcode = "L2_loadrh_pi";
9758 let CextOpcode = "L2_loadrh";
9759 let isPredicable = 1;
9760 let Constraints = "$Rx32 = $Rx32in";
9762 def L2_loadrh_pr : HInst<
9763 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9764 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9765 "$Rd32 = memh($Rx32++$Mu2)",
9766 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9767 let Inst{12-5} = 0b00000000;
9768 let Inst{31-21} = 0b10011101010;
9769 let hasNewValue = 1;
9770 let opNewValue = 0;
9771 let addrMode = PostInc;
9772 let accessSize = HalfWordAccess;
9773 let mayLoad = 1;
9774 let Constraints = "$Rx32 = $Rx32in";
9776 def L2_loadrh_zomap : HInst<
9777 (outs IntRegs:$Rd32),
9778 (ins IntRegs:$Rs32),
9779 "$Rd32 = memh($Rs32)",
9780 tc_4222e6bf, TypeMAPPING> {
9781 let hasNewValue = 1;
9782 let opNewValue = 0;
9783 let isPseudo = 1;
9784 let isCodeGenOnly = 1;
9786 def L2_loadrhgp : HInst<
9787 (outs IntRegs:$Rd32),
9788 (ins u31_1Imm:$Ii),
9789 "$Rd32 = memh(gp+#$Ii)",
9790 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9791 let Inst{24-21} = 0b1010;
9792 let Inst{31-27} = 0b01001;
9793 let hasNewValue = 1;
9794 let opNewValue = 0;
9795 let accessSize = HalfWordAccess;
9796 let mayLoad = 1;
9797 let Uses = [GP];
9798 let BaseOpcode = "L4_loadrh_abs";
9799 let isPredicable = 1;
9800 let opExtendable = 1;
9801 let isExtentSigned = 0;
9802 let opExtentBits = 17;
9803 let opExtentAlign = 1;
9805 def L2_loadri_io : HInst<
9806 (outs IntRegs:$Rd32),
9807 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9808 "$Rd32 = memw($Rs32+#$Ii)",
9809 tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9810 let Inst{24-21} = 0b1100;
9811 let Inst{31-27} = 0b10010;
9812 let hasNewValue = 1;
9813 let opNewValue = 0;
9814 let addrMode = BaseImmOffset;
9815 let accessSize = WordAccess;
9816 let mayLoad = 1;
9817 let BaseOpcode = "L2_loadri_io";
9818 let CextOpcode = "L2_loadri";
9819 let isPredicable = 1;
9820 let isExtendable = 1;
9821 let opExtendable = 2;
9822 let isExtentSigned = 1;
9823 let opExtentBits = 13;
9824 let opExtentAlign = 2;
9826 def L2_loadri_pbr : HInst<
9827 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9828 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9829 "$Rd32 = memw($Rx32++$Mu2:brev)",
9830 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9831 let Inst{12-5} = 0b00000000;
9832 let Inst{31-21} = 0b10011111100;
9833 let hasNewValue = 1;
9834 let opNewValue = 0;
9835 let addrMode = PostInc;
9836 let accessSize = WordAccess;
9837 let mayLoad = 1;
9838 let Constraints = "$Rx32 = $Rx32in";
9840 def L2_loadri_pci : HInst<
9841 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9842 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9843 "$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9844 tc_5ceb2f9e, TypeLD>, Enc_27fd0e {
9845 let Inst{12-9} = 0b0000;
9846 let Inst{31-21} = 0b10011001100;
9847 let hasNewValue = 1;
9848 let opNewValue = 0;
9849 let addrMode = PostInc;
9850 let accessSize = WordAccess;
9851 let mayLoad = 1;
9852 let Uses = [CS];
9853 let Constraints = "$Rx32 = $Rx32in";
9855 def L2_loadri_pcr : HInst<
9856 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9857 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9858 "$Rd32 = memw($Rx32++I:circ($Mu2))",
9859 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9860 let Inst{12-5} = 0b00010000;
9861 let Inst{31-21} = 0b10011001100;
9862 let hasNewValue = 1;
9863 let opNewValue = 0;
9864 let addrMode = PostInc;
9865 let accessSize = WordAccess;
9866 let mayLoad = 1;
9867 let Uses = [CS];
9868 let Constraints = "$Rx32 = $Rx32in";
9870 def L2_loadri_pi : HInst<
9871 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9872 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9873 "$Rd32 = memw($Rx32++#$Ii)",
9874 tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9875 let Inst{13-9} = 0b00000;
9876 let Inst{31-21} = 0b10011011100;
9877 let hasNewValue = 1;
9878 let opNewValue = 0;
9879 let addrMode = PostInc;
9880 let accessSize = WordAccess;
9881 let mayLoad = 1;
9882 let BaseOpcode = "L2_loadri_pi";
9883 let CextOpcode = "L2_loadri";
9884 let isPredicable = 1;
9885 let Constraints = "$Rx32 = $Rx32in";
9887 def L2_loadri_pr : HInst<
9888 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9889 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9890 "$Rd32 = memw($Rx32++$Mu2)",
9891 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9892 let Inst{12-5} = 0b00000000;
9893 let Inst{31-21} = 0b10011101100;
9894 let hasNewValue = 1;
9895 let opNewValue = 0;
9896 let addrMode = PostInc;
9897 let accessSize = WordAccess;
9898 let mayLoad = 1;
9899 let Constraints = "$Rx32 = $Rx32in";
9901 def L2_loadri_zomap : HInst<
9902 (outs IntRegs:$Rd32),
9903 (ins IntRegs:$Rs32),
9904 "$Rd32 = memw($Rs32)",
9905 tc_4222e6bf, TypeMAPPING> {
9906 let hasNewValue = 1;
9907 let opNewValue = 0;
9908 let isPseudo = 1;
9909 let isCodeGenOnly = 1;
9911 def L2_loadrigp : HInst<
9912 (outs IntRegs:$Rd32),
9913 (ins u30_2Imm:$Ii),
9914 "$Rd32 = memw(gp+#$Ii)",
9915 tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9916 let Inst{24-21} = 0b1100;
9917 let Inst{31-27} = 0b01001;
9918 let hasNewValue = 1;
9919 let opNewValue = 0;
9920 let accessSize = WordAccess;
9921 let mayLoad = 1;
9922 let Uses = [GP];
9923 let BaseOpcode = "L4_loadri_abs";
9924 let isPredicable = 1;
9925 let opExtendable = 1;
9926 let isExtentSigned = 0;
9927 let opExtentBits = 18;
9928 let opExtentAlign = 2;
9930 def L2_loadrub_io : HInst<
9931 (outs IntRegs:$Rd32),
9932 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9933 "$Rd32 = memub($Rs32+#$Ii)",
9934 tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9935 let Inst{24-21} = 0b1001;
9936 let Inst{31-27} = 0b10010;
9937 let hasNewValue = 1;
9938 let opNewValue = 0;
9939 let addrMode = BaseImmOffset;
9940 let accessSize = ByteAccess;
9941 let mayLoad = 1;
9942 let BaseOpcode = "L2_loadrub_io";
9943 let CextOpcode = "L2_loadrub";
9944 let isPredicable = 1;
9945 let isExtendable = 1;
9946 let opExtendable = 2;
9947 let isExtentSigned = 1;
9948 let opExtentBits = 11;
9949 let opExtentAlign = 0;
9951 def L2_loadrub_pbr : HInst<
9952 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9953 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9954 "$Rd32 = memub($Rx32++$Mu2:brev)",
9955 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9956 let Inst{12-5} = 0b00000000;
9957 let Inst{31-21} = 0b10011111001;
9958 let hasNewValue = 1;
9959 let opNewValue = 0;
9960 let addrMode = PostInc;
9961 let accessSize = ByteAccess;
9962 let mayLoad = 1;
9963 let Constraints = "$Rx32 = $Rx32in";
9965 def L2_loadrub_pci : HInst<
9966 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9967 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9968 "$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9969 tc_5ceb2f9e, TypeLD>, Enc_e0a47a {
9970 let Inst{12-9} = 0b0000;
9971 let Inst{31-21} = 0b10011001001;
9972 let hasNewValue = 1;
9973 let opNewValue = 0;
9974 let addrMode = PostInc;
9975 let accessSize = ByteAccess;
9976 let mayLoad = 1;
9977 let Uses = [CS];
9978 let Constraints = "$Rx32 = $Rx32in";
9980 def L2_loadrub_pcr : HInst<
9981 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9982 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9983 "$Rd32 = memub($Rx32++I:circ($Mu2))",
9984 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
9985 let Inst{12-5} = 0b00010000;
9986 let Inst{31-21} = 0b10011001001;
9987 let hasNewValue = 1;
9988 let opNewValue = 0;
9989 let addrMode = PostInc;
9990 let accessSize = ByteAccess;
9991 let mayLoad = 1;
9992 let Uses = [CS];
9993 let Constraints = "$Rx32 = $Rx32in";
9995 def L2_loadrub_pi : HInst<
9996 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9997 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9998 "$Rd32 = memub($Rx32++#$Ii)",
9999 tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
10000 let Inst{13-9} = 0b00000;
10001 let Inst{31-21} = 0b10011011001;
10002 let hasNewValue = 1;
10003 let opNewValue = 0;
10004 let addrMode = PostInc;
10005 let accessSize = ByteAccess;
10006 let mayLoad = 1;
10007 let BaseOpcode = "L2_loadrub_pi";
10008 let CextOpcode = "L2_loadrub";
10009 let isPredicable = 1;
10010 let Constraints = "$Rx32 = $Rx32in";
10012 def L2_loadrub_pr : HInst<
10013 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10014 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10015 "$Rd32 = memub($Rx32++$Mu2)",
10016 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10017 let Inst{12-5} = 0b00000000;
10018 let Inst{31-21} = 0b10011101001;
10019 let hasNewValue = 1;
10020 let opNewValue = 0;
10021 let addrMode = PostInc;
10022 let accessSize = ByteAccess;
10023 let mayLoad = 1;
10024 let Constraints = "$Rx32 = $Rx32in";
10026 def L2_loadrub_zomap : HInst<
10027 (outs IntRegs:$Rd32),
10028 (ins IntRegs:$Rs32),
10029 "$Rd32 = memub($Rs32)",
10030 tc_4222e6bf, TypeMAPPING> {
10031 let hasNewValue = 1;
10032 let opNewValue = 0;
10033 let isPseudo = 1;
10034 let isCodeGenOnly = 1;
10036 def L2_loadrubgp : HInst<
10037 (outs IntRegs:$Rd32),
10038 (ins u32_0Imm:$Ii),
10039 "$Rd32 = memub(gp+#$Ii)",
10040 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
10041 let Inst{24-21} = 0b1001;
10042 let Inst{31-27} = 0b01001;
10043 let hasNewValue = 1;
10044 let opNewValue = 0;
10045 let accessSize = ByteAccess;
10046 let mayLoad = 1;
10047 let Uses = [GP];
10048 let BaseOpcode = "L4_loadrub_abs";
10049 let isPredicable = 1;
10050 let opExtendable = 1;
10051 let isExtentSigned = 0;
10052 let opExtentBits = 16;
10053 let opExtentAlign = 0;
10055 def L2_loadruh_io : HInst<
10056 (outs IntRegs:$Rd32),
10057 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
10058 "$Rd32 = memuh($Rs32+#$Ii)",
10059 tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
10060 let Inst{24-21} = 0b1011;
10061 let Inst{31-27} = 0b10010;
10062 let hasNewValue = 1;
10063 let opNewValue = 0;
10064 let addrMode = BaseImmOffset;
10065 let accessSize = HalfWordAccess;
10066 let mayLoad = 1;
10067 let BaseOpcode = "L2_loadruh_io";
10068 let CextOpcode = "L2_loadruh";
10069 let isPredicable = 1;
10070 let isExtendable = 1;
10071 let opExtendable = 2;
10072 let isExtentSigned = 1;
10073 let opExtentBits = 12;
10074 let opExtentAlign = 1;
10076 def L2_loadruh_pbr : HInst<
10077 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10078 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10079 "$Rd32 = memuh($Rx32++$Mu2:brev)",
10080 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10081 let Inst{12-5} = 0b00000000;
10082 let Inst{31-21} = 0b10011111011;
10083 let hasNewValue = 1;
10084 let opNewValue = 0;
10085 let addrMode = PostInc;
10086 let accessSize = HalfWordAccess;
10087 let mayLoad = 1;
10088 let Constraints = "$Rx32 = $Rx32in";
10090 def L2_loadruh_pci : HInst<
10091 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10092 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
10093 "$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
10094 tc_5ceb2f9e, TypeLD>, Enc_e83554 {
10095 let Inst{12-9} = 0b0000;
10096 let Inst{31-21} = 0b10011001011;
10097 let hasNewValue = 1;
10098 let opNewValue = 0;
10099 let addrMode = PostInc;
10100 let accessSize = HalfWordAccess;
10101 let mayLoad = 1;
10102 let Uses = [CS];
10103 let Constraints = "$Rx32 = $Rx32in";
10105 def L2_loadruh_pcr : HInst<
10106 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10107 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10108 "$Rd32 = memuh($Rx32++I:circ($Mu2))",
10109 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10110 let Inst{12-5} = 0b00010000;
10111 let Inst{31-21} = 0b10011001011;
10112 let hasNewValue = 1;
10113 let opNewValue = 0;
10114 let addrMode = PostInc;
10115 let accessSize = HalfWordAccess;
10116 let mayLoad = 1;
10117 let Uses = [CS];
10118 let Constraints = "$Rx32 = $Rx32in";
10120 def L2_loadruh_pi : HInst<
10121 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10122 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
10123 "$Rd32 = memuh($Rx32++#$Ii)",
10124 tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
10125 let Inst{13-9} = 0b00000;
10126 let Inst{31-21} = 0b10011011011;
10127 let hasNewValue = 1;
10128 let opNewValue = 0;
10129 let addrMode = PostInc;
10130 let accessSize = HalfWordAccess;
10131 let mayLoad = 1;
10132 let BaseOpcode = "L2_loadruh_pi";
10133 let CextOpcode = "L2_loadruh";
10134 let isPredicable = 1;
10135 let Constraints = "$Rx32 = $Rx32in";
10137 def L2_loadruh_pr : HInst<
10138 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10139 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
10140 "$Rd32 = memuh($Rx32++$Mu2)",
10141 tc_075c8dd8, TypeLD>, Enc_74d4e5 {
10142 let Inst{12-5} = 0b00000000;
10143 let Inst{31-21} = 0b10011101011;
10144 let hasNewValue = 1;
10145 let opNewValue = 0;
10146 let addrMode = PostInc;
10147 let accessSize = HalfWordAccess;
10148 let mayLoad = 1;
10149 let Constraints = "$Rx32 = $Rx32in";
10151 def L2_loadruh_zomap : HInst<
10152 (outs IntRegs:$Rd32),
10153 (ins IntRegs:$Rs32),
10154 "$Rd32 = memuh($Rs32)",
10155 tc_4222e6bf, TypeMAPPING> {
10156 let hasNewValue = 1;
10157 let opNewValue = 0;
10158 let isPseudo = 1;
10159 let isCodeGenOnly = 1;
10161 def L2_loadruhgp : HInst<
10162 (outs IntRegs:$Rd32),
10163 (ins u31_1Imm:$Ii),
10164 "$Rd32 = memuh(gp+#$Ii)",
10165 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10166 let Inst{24-21} = 0b1011;
10167 let Inst{31-27} = 0b01001;
10168 let hasNewValue = 1;
10169 let opNewValue = 0;
10170 let accessSize = HalfWordAccess;
10171 let mayLoad = 1;
10172 let Uses = [GP];
10173 let BaseOpcode = "L4_loadruh_abs";
10174 let isPredicable = 1;
10175 let opExtendable = 1;
10176 let isExtentSigned = 0;
10177 let opExtentBits = 17;
10178 let opExtentAlign = 1;
10180 def L2_loadw_aq : HInst<
10181 (outs IntRegs:$Rd32),
10182 (ins IntRegs:$Rs32),
10183 "$Rd32 = memw_aq($Rs32)",
10184 tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> {
10185 let Inst{13-5} = 0b001000000;
10186 let Inst{31-21} = 0b10010010000;
10187 let hasNewValue = 1;
10188 let opNewValue = 0;
10189 let accessSize = WordAccess;
10190 let mayLoad = 1;
10192 def L2_loadw_locked : HInst<
10193 (outs IntRegs:$Rd32),
10194 (ins IntRegs:$Rs32),
10195 "$Rd32 = memw_locked($Rs32)",
10196 tc_64b00d8a, TypeLD>, Enc_5e2823 {
10197 let Inst{13-5} = 0b000000000;
10198 let Inst{31-21} = 0b10010010000;
10199 let hasNewValue = 1;
10200 let opNewValue = 0;
10201 let accessSize = WordAccess;
10202 let mayLoad = 1;
10203 let isSoloAX = 1;
10205 def L2_ploadrbf_io : HInst<
10206 (outs IntRegs:$Rd32),
10207 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10208 "if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10209 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10210 let Inst{13-13} = 0b0;
10211 let Inst{31-21} = 0b01000101000;
10212 let isPredicated = 1;
10213 let isPredicatedFalse = 1;
10214 let hasNewValue = 1;
10215 let opNewValue = 0;
10216 let addrMode = BaseImmOffset;
10217 let accessSize = ByteAccess;
10218 let mayLoad = 1;
10219 let BaseOpcode = "L2_loadrb_io";
10220 let CextOpcode = "L2_loadrb";
10221 let isExtendable = 1;
10222 let opExtendable = 3;
10223 let isExtentSigned = 0;
10224 let opExtentBits = 6;
10225 let opExtentAlign = 0;
10227 def L2_ploadrbf_pi : HInst<
10228 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10229 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10230 "if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10231 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10232 let Inst{13-11} = 0b101;
10233 let Inst{31-21} = 0b10011011000;
10234 let isPredicated = 1;
10235 let isPredicatedFalse = 1;
10236 let hasNewValue = 1;
10237 let opNewValue = 0;
10238 let addrMode = PostInc;
10239 let accessSize = ByteAccess;
10240 let mayLoad = 1;
10241 let BaseOpcode = "L2_loadrb_pi";
10242 let Constraints = "$Rx32 = $Rx32in";
10244 def L2_ploadrbf_zomap : HInst<
10245 (outs IntRegs:$Rd32),
10246 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10247 "if (!$Pt4) $Rd32 = memb($Rs32)",
10248 tc_fedb7e19, TypeMAPPING> {
10249 let hasNewValue = 1;
10250 let opNewValue = 0;
10251 let isPseudo = 1;
10252 let isCodeGenOnly = 1;
10254 def L2_ploadrbfnew_io : HInst<
10255 (outs IntRegs:$Rd32),
10256 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10257 "if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10258 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10259 let Inst{13-13} = 0b0;
10260 let Inst{31-21} = 0b01000111000;
10261 let isPredicated = 1;
10262 let isPredicatedFalse = 1;
10263 let hasNewValue = 1;
10264 let opNewValue = 0;
10265 let addrMode = BaseImmOffset;
10266 let accessSize = ByteAccess;
10267 let isPredicatedNew = 1;
10268 let mayLoad = 1;
10269 let BaseOpcode = "L2_loadrb_io";
10270 let CextOpcode = "L2_loadrb";
10271 let isExtendable = 1;
10272 let opExtendable = 3;
10273 let isExtentSigned = 0;
10274 let opExtentBits = 6;
10275 let opExtentAlign = 0;
10277 def L2_ploadrbfnew_pi : HInst<
10278 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10279 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10280 "if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10281 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10282 let Inst{13-11} = 0b111;
10283 let Inst{31-21} = 0b10011011000;
10284 let isPredicated = 1;
10285 let isPredicatedFalse = 1;
10286 let hasNewValue = 1;
10287 let opNewValue = 0;
10288 let addrMode = PostInc;
10289 let accessSize = ByteAccess;
10290 let isPredicatedNew = 1;
10291 let mayLoad = 1;
10292 let BaseOpcode = "L2_loadrb_pi";
10293 let Constraints = "$Rx32 = $Rx32in";
10295 def L2_ploadrbfnew_zomap : HInst<
10296 (outs IntRegs:$Rd32),
10297 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10298 "if (!$Pt4.new) $Rd32 = memb($Rs32)",
10299 tc_075c8dd8, TypeMAPPING> {
10300 let hasNewValue = 1;
10301 let opNewValue = 0;
10302 let isPseudo = 1;
10303 let isCodeGenOnly = 1;
10305 def L2_ploadrbt_io : HInst<
10306 (outs IntRegs:$Rd32),
10307 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10308 "if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10309 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10310 let Inst{13-13} = 0b0;
10311 let Inst{31-21} = 0b01000001000;
10312 let isPredicated = 1;
10313 let hasNewValue = 1;
10314 let opNewValue = 0;
10315 let addrMode = BaseImmOffset;
10316 let accessSize = ByteAccess;
10317 let mayLoad = 1;
10318 let BaseOpcode = "L2_loadrb_io";
10319 let CextOpcode = "L2_loadrb";
10320 let isExtendable = 1;
10321 let opExtendable = 3;
10322 let isExtentSigned = 0;
10323 let opExtentBits = 6;
10324 let opExtentAlign = 0;
10326 def L2_ploadrbt_pi : HInst<
10327 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10328 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10329 "if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10330 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10331 let Inst{13-11} = 0b100;
10332 let Inst{31-21} = 0b10011011000;
10333 let isPredicated = 1;
10334 let hasNewValue = 1;
10335 let opNewValue = 0;
10336 let addrMode = PostInc;
10337 let accessSize = ByteAccess;
10338 let mayLoad = 1;
10339 let BaseOpcode = "L2_loadrb_pi";
10340 let Constraints = "$Rx32 = $Rx32in";
10342 def L2_ploadrbt_zomap : HInst<
10343 (outs IntRegs:$Rd32),
10344 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10345 "if ($Pt4) $Rd32 = memb($Rs32)",
10346 tc_fedb7e19, TypeMAPPING> {
10347 let hasNewValue = 1;
10348 let opNewValue = 0;
10349 let isPseudo = 1;
10350 let isCodeGenOnly = 1;
10352 def L2_ploadrbtnew_io : HInst<
10353 (outs IntRegs:$Rd32),
10354 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10355 "if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10356 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10357 let Inst{13-13} = 0b0;
10358 let Inst{31-21} = 0b01000011000;
10359 let isPredicated = 1;
10360 let hasNewValue = 1;
10361 let opNewValue = 0;
10362 let addrMode = BaseImmOffset;
10363 let accessSize = ByteAccess;
10364 let isPredicatedNew = 1;
10365 let mayLoad = 1;
10366 let BaseOpcode = "L2_loadrb_io";
10367 let CextOpcode = "L2_loadrb";
10368 let isExtendable = 1;
10369 let opExtendable = 3;
10370 let isExtentSigned = 0;
10371 let opExtentBits = 6;
10372 let opExtentAlign = 0;
10374 def L2_ploadrbtnew_pi : HInst<
10375 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10376 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10377 "if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10378 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
10379 let Inst{13-11} = 0b110;
10380 let Inst{31-21} = 0b10011011000;
10381 let isPredicated = 1;
10382 let hasNewValue = 1;
10383 let opNewValue = 0;
10384 let addrMode = PostInc;
10385 let accessSize = ByteAccess;
10386 let isPredicatedNew = 1;
10387 let mayLoad = 1;
10388 let BaseOpcode = "L2_loadrb_pi";
10389 let Constraints = "$Rx32 = $Rx32in";
10391 def L2_ploadrbtnew_zomap : HInst<
10392 (outs IntRegs:$Rd32),
10393 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10394 "if ($Pt4.new) $Rd32 = memb($Rs32)",
10395 tc_075c8dd8, TypeMAPPING> {
10396 let hasNewValue = 1;
10397 let opNewValue = 0;
10398 let isPseudo = 1;
10399 let isCodeGenOnly = 1;
10401 def L2_ploadrdf_io : HInst<
10402 (outs DoubleRegs:$Rdd32),
10403 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10404 "if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10405 tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10406 let Inst{13-13} = 0b0;
10407 let Inst{31-21} = 0b01000101110;
10408 let isPredicated = 1;
10409 let isPredicatedFalse = 1;
10410 let addrMode = BaseImmOffset;
10411 let accessSize = DoubleWordAccess;
10412 let mayLoad = 1;
10413 let BaseOpcode = "L2_loadrd_io";
10414 let CextOpcode = "L2_loadrd";
10415 let isExtendable = 1;
10416 let opExtendable = 3;
10417 let isExtentSigned = 0;
10418 let opExtentBits = 9;
10419 let opExtentAlign = 3;
10421 def L2_ploadrdf_pi : HInst<
10422 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10423 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10424 "if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10425 tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10426 let Inst{13-11} = 0b101;
10427 let Inst{31-21} = 0b10011011110;
10428 let isPredicated = 1;
10429 let isPredicatedFalse = 1;
10430 let addrMode = PostInc;
10431 let accessSize = DoubleWordAccess;
10432 let mayLoad = 1;
10433 let BaseOpcode = "L2_loadrd_pi";
10434 let Constraints = "$Rx32 = $Rx32in";
10436 def L2_ploadrdf_zomap : HInst<
10437 (outs DoubleRegs:$Rdd32),
10438 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10439 "if (!$Pt4) $Rdd32 = memd($Rs32)",
10440 tc_fedb7e19, TypeMAPPING> {
10441 let isPseudo = 1;
10442 let isCodeGenOnly = 1;
10444 def L2_ploadrdfnew_io : HInst<
10445 (outs DoubleRegs:$Rdd32),
10446 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10447 "if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10448 tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10449 let Inst{13-13} = 0b0;
10450 let Inst{31-21} = 0b01000111110;
10451 let isPredicated = 1;
10452 let isPredicatedFalse = 1;
10453 let addrMode = BaseImmOffset;
10454 let accessSize = DoubleWordAccess;
10455 let isPredicatedNew = 1;
10456 let mayLoad = 1;
10457 let BaseOpcode = "L2_loadrd_io";
10458 let CextOpcode = "L2_loadrd";
10459 let isExtendable = 1;
10460 let opExtendable = 3;
10461 let isExtentSigned = 0;
10462 let opExtentBits = 9;
10463 let opExtentAlign = 3;
10465 def L2_ploadrdfnew_pi : HInst<
10466 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10467 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10468 "if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10469 tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10470 let Inst{13-11} = 0b111;
10471 let Inst{31-21} = 0b10011011110;
10472 let isPredicated = 1;
10473 let isPredicatedFalse = 1;
10474 let addrMode = PostInc;
10475 let accessSize = DoubleWordAccess;
10476 let isPredicatedNew = 1;
10477 let mayLoad = 1;
10478 let BaseOpcode = "L2_loadrd_pi";
10479 let Constraints = "$Rx32 = $Rx32in";
10481 def L2_ploadrdfnew_zomap : HInst<
10482 (outs DoubleRegs:$Rdd32),
10483 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10484 "if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10485 tc_075c8dd8, TypeMAPPING> {
10486 let isPseudo = 1;
10487 let isCodeGenOnly = 1;
10489 def L2_ploadrdt_io : HInst<
10490 (outs DoubleRegs:$Rdd32),
10491 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10492 "if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10493 tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10494 let Inst{13-13} = 0b0;
10495 let Inst{31-21} = 0b01000001110;
10496 let isPredicated = 1;
10497 let addrMode = BaseImmOffset;
10498 let accessSize = DoubleWordAccess;
10499 let mayLoad = 1;
10500 let BaseOpcode = "L2_loadrd_io";
10501 let CextOpcode = "L2_loadrd";
10502 let isExtendable = 1;
10503 let opExtendable = 3;
10504 let isExtentSigned = 0;
10505 let opExtentBits = 9;
10506 let opExtentAlign = 3;
10508 def L2_ploadrdt_pi : HInst<
10509 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10510 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10511 "if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10512 tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel {
10513 let Inst{13-11} = 0b100;
10514 let Inst{31-21} = 0b10011011110;
10515 let isPredicated = 1;
10516 let addrMode = PostInc;
10517 let accessSize = DoubleWordAccess;
10518 let mayLoad = 1;
10519 let BaseOpcode = "L2_loadrd_pi";
10520 let Constraints = "$Rx32 = $Rx32in";
10522 def L2_ploadrdt_zomap : HInst<
10523 (outs DoubleRegs:$Rdd32),
10524 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10525 "if ($Pt4) $Rdd32 = memd($Rs32)",
10526 tc_fedb7e19, TypeMAPPING> {
10527 let isPseudo = 1;
10528 let isCodeGenOnly = 1;
10530 def L2_ploadrdtnew_io : HInst<
10531 (outs DoubleRegs:$Rdd32),
10532 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10533 "if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10534 tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10535 let Inst{13-13} = 0b0;
10536 let Inst{31-21} = 0b01000011110;
10537 let isPredicated = 1;
10538 let addrMode = BaseImmOffset;
10539 let accessSize = DoubleWordAccess;
10540 let isPredicatedNew = 1;
10541 let mayLoad = 1;
10542 let BaseOpcode = "L2_loadrd_io";
10543 let CextOpcode = "L2_loadrd";
10544 let isExtendable = 1;
10545 let opExtendable = 3;
10546 let isExtentSigned = 0;
10547 let opExtentBits = 9;
10548 let opExtentAlign = 3;
10550 def L2_ploadrdtnew_pi : HInst<
10551 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10552 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10553 "if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10554 tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel {
10555 let Inst{13-11} = 0b110;
10556 let Inst{31-21} = 0b10011011110;
10557 let isPredicated = 1;
10558 let addrMode = PostInc;
10559 let accessSize = DoubleWordAccess;
10560 let isPredicatedNew = 1;
10561 let mayLoad = 1;
10562 let BaseOpcode = "L2_loadrd_pi";
10563 let Constraints = "$Rx32 = $Rx32in";
10565 def L2_ploadrdtnew_zomap : HInst<
10566 (outs DoubleRegs:$Rdd32),
10567 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10568 "if ($Pt4.new) $Rdd32 = memd($Rs32)",
10569 tc_075c8dd8, TypeMAPPING> {
10570 let isPseudo = 1;
10571 let isCodeGenOnly = 1;
10573 def L2_ploadrhf_io : HInst<
10574 (outs IntRegs:$Rd32),
10575 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10576 "if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10577 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10578 let Inst{13-13} = 0b0;
10579 let Inst{31-21} = 0b01000101010;
10580 let isPredicated = 1;
10581 let isPredicatedFalse = 1;
10582 let hasNewValue = 1;
10583 let opNewValue = 0;
10584 let addrMode = BaseImmOffset;
10585 let accessSize = HalfWordAccess;
10586 let mayLoad = 1;
10587 let BaseOpcode = "L2_loadrh_io";
10588 let CextOpcode = "L2_loadrh";
10589 let isExtendable = 1;
10590 let opExtendable = 3;
10591 let isExtentSigned = 0;
10592 let opExtentBits = 7;
10593 let opExtentAlign = 1;
10595 def L2_ploadrhf_pi : HInst<
10596 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10597 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10598 "if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10599 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10600 let Inst{13-11} = 0b101;
10601 let Inst{31-21} = 0b10011011010;
10602 let isPredicated = 1;
10603 let isPredicatedFalse = 1;
10604 let hasNewValue = 1;
10605 let opNewValue = 0;
10606 let addrMode = PostInc;
10607 let accessSize = HalfWordAccess;
10608 let mayLoad = 1;
10609 let BaseOpcode = "L2_loadrh_pi";
10610 let Constraints = "$Rx32 = $Rx32in";
10612 def L2_ploadrhf_zomap : HInst<
10613 (outs IntRegs:$Rd32),
10614 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10615 "if (!$Pt4) $Rd32 = memh($Rs32)",
10616 tc_fedb7e19, TypeMAPPING> {
10617 let hasNewValue = 1;
10618 let opNewValue = 0;
10619 let isPseudo = 1;
10620 let isCodeGenOnly = 1;
10622 def L2_ploadrhfnew_io : HInst<
10623 (outs IntRegs:$Rd32),
10624 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10625 "if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10626 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10627 let Inst{13-13} = 0b0;
10628 let Inst{31-21} = 0b01000111010;
10629 let isPredicated = 1;
10630 let isPredicatedFalse = 1;
10631 let hasNewValue = 1;
10632 let opNewValue = 0;
10633 let addrMode = BaseImmOffset;
10634 let accessSize = HalfWordAccess;
10635 let isPredicatedNew = 1;
10636 let mayLoad = 1;
10637 let BaseOpcode = "L2_loadrh_io";
10638 let CextOpcode = "L2_loadrh";
10639 let isExtendable = 1;
10640 let opExtendable = 3;
10641 let isExtentSigned = 0;
10642 let opExtentBits = 7;
10643 let opExtentAlign = 1;
10645 def L2_ploadrhfnew_pi : HInst<
10646 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10647 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10648 "if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10649 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10650 let Inst{13-11} = 0b111;
10651 let Inst{31-21} = 0b10011011010;
10652 let isPredicated = 1;
10653 let isPredicatedFalse = 1;
10654 let hasNewValue = 1;
10655 let opNewValue = 0;
10656 let addrMode = PostInc;
10657 let accessSize = HalfWordAccess;
10658 let isPredicatedNew = 1;
10659 let mayLoad = 1;
10660 let BaseOpcode = "L2_loadrh_pi";
10661 let Constraints = "$Rx32 = $Rx32in";
10663 def L2_ploadrhfnew_zomap : HInst<
10664 (outs IntRegs:$Rd32),
10665 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10666 "if (!$Pt4.new) $Rd32 = memh($Rs32)",
10667 tc_075c8dd8, TypeMAPPING> {
10668 let hasNewValue = 1;
10669 let opNewValue = 0;
10670 let isPseudo = 1;
10671 let isCodeGenOnly = 1;
10673 def L2_ploadrht_io : HInst<
10674 (outs IntRegs:$Rd32),
10675 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10676 "if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10677 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10678 let Inst{13-13} = 0b0;
10679 let Inst{31-21} = 0b01000001010;
10680 let isPredicated = 1;
10681 let hasNewValue = 1;
10682 let opNewValue = 0;
10683 let addrMode = BaseImmOffset;
10684 let accessSize = HalfWordAccess;
10685 let mayLoad = 1;
10686 let BaseOpcode = "L2_loadrh_io";
10687 let CextOpcode = "L2_loadrh";
10688 let isExtendable = 1;
10689 let opExtendable = 3;
10690 let isExtentSigned = 0;
10691 let opExtentBits = 7;
10692 let opExtentAlign = 1;
10694 def L2_ploadrht_pi : HInst<
10695 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10696 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10697 "if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10698 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
10699 let Inst{13-11} = 0b100;
10700 let Inst{31-21} = 0b10011011010;
10701 let isPredicated = 1;
10702 let hasNewValue = 1;
10703 let opNewValue = 0;
10704 let addrMode = PostInc;
10705 let accessSize = HalfWordAccess;
10706 let mayLoad = 1;
10707 let BaseOpcode = "L2_loadrh_pi";
10708 let Constraints = "$Rx32 = $Rx32in";
10710 def L2_ploadrht_zomap : HInst<
10711 (outs IntRegs:$Rd32),
10712 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10713 "if ($Pt4) $Rd32 = memh($Rs32)",
10714 tc_fedb7e19, TypeMAPPING> {
10715 let hasNewValue = 1;
10716 let opNewValue = 0;
10717 let isPseudo = 1;
10718 let isCodeGenOnly = 1;
10720 def L2_ploadrhtnew_io : HInst<
10721 (outs IntRegs:$Rd32),
10722 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10723 "if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10724 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10725 let Inst{13-13} = 0b0;
10726 let Inst{31-21} = 0b01000011010;
10727 let isPredicated = 1;
10728 let hasNewValue = 1;
10729 let opNewValue = 0;
10730 let addrMode = BaseImmOffset;
10731 let accessSize = HalfWordAccess;
10732 let isPredicatedNew = 1;
10733 let mayLoad = 1;
10734 let BaseOpcode = "L2_loadrh_io";
10735 let CextOpcode = "L2_loadrh";
10736 let isExtendable = 1;
10737 let opExtendable = 3;
10738 let isExtentSigned = 0;
10739 let opExtentBits = 7;
10740 let opExtentAlign = 1;
10742 def L2_ploadrhtnew_pi : HInst<
10743 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10744 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10745 "if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10746 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
10747 let Inst{13-11} = 0b110;
10748 let Inst{31-21} = 0b10011011010;
10749 let isPredicated = 1;
10750 let hasNewValue = 1;
10751 let opNewValue = 0;
10752 let addrMode = PostInc;
10753 let accessSize = HalfWordAccess;
10754 let isPredicatedNew = 1;
10755 let mayLoad = 1;
10756 let BaseOpcode = "L2_loadrh_pi";
10757 let Constraints = "$Rx32 = $Rx32in";
10759 def L2_ploadrhtnew_zomap : HInst<
10760 (outs IntRegs:$Rd32),
10761 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10762 "if ($Pt4.new) $Rd32 = memh($Rs32)",
10763 tc_075c8dd8, TypeMAPPING> {
10764 let hasNewValue = 1;
10765 let opNewValue = 0;
10766 let isPseudo = 1;
10767 let isCodeGenOnly = 1;
10769 def L2_ploadrif_io : HInst<
10770 (outs IntRegs:$Rd32),
10771 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10772 "if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10773 tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10774 let Inst{13-13} = 0b0;
10775 let Inst{31-21} = 0b01000101100;
10776 let isPredicated = 1;
10777 let isPredicatedFalse = 1;
10778 let hasNewValue = 1;
10779 let opNewValue = 0;
10780 let addrMode = BaseImmOffset;
10781 let accessSize = WordAccess;
10782 let mayLoad = 1;
10783 let BaseOpcode = "L2_loadri_io";
10784 let CextOpcode = "L2_loadri";
10785 let isExtendable = 1;
10786 let opExtendable = 3;
10787 let isExtentSigned = 0;
10788 let opExtentBits = 8;
10789 let opExtentAlign = 2;
10791 def L2_ploadrif_pi : HInst<
10792 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10793 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10794 "if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10795 tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10796 let Inst{13-11} = 0b101;
10797 let Inst{31-21} = 0b10011011100;
10798 let isPredicated = 1;
10799 let isPredicatedFalse = 1;
10800 let hasNewValue = 1;
10801 let opNewValue = 0;
10802 let addrMode = PostInc;
10803 let accessSize = WordAccess;
10804 let mayLoad = 1;
10805 let BaseOpcode = "L2_loadri_pi";
10806 let Constraints = "$Rx32 = $Rx32in";
10808 def L2_ploadrif_zomap : HInst<
10809 (outs IntRegs:$Rd32),
10810 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10811 "if (!$Pt4) $Rd32 = memw($Rs32)",
10812 tc_fedb7e19, TypeMAPPING> {
10813 let hasNewValue = 1;
10814 let opNewValue = 0;
10815 let isPseudo = 1;
10816 let isCodeGenOnly = 1;
10818 def L2_ploadrifnew_io : HInst<
10819 (outs IntRegs:$Rd32),
10820 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10821 "if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10822 tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10823 let Inst{13-13} = 0b0;
10824 let Inst{31-21} = 0b01000111100;
10825 let isPredicated = 1;
10826 let isPredicatedFalse = 1;
10827 let hasNewValue = 1;
10828 let opNewValue = 0;
10829 let addrMode = BaseImmOffset;
10830 let accessSize = WordAccess;
10831 let isPredicatedNew = 1;
10832 let mayLoad = 1;
10833 let BaseOpcode = "L2_loadri_io";
10834 let CextOpcode = "L2_loadri";
10835 let isExtendable = 1;
10836 let opExtendable = 3;
10837 let isExtentSigned = 0;
10838 let opExtentBits = 8;
10839 let opExtentAlign = 2;
10841 def L2_ploadrifnew_pi : HInst<
10842 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10843 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10844 "if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10845 tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10846 let Inst{13-11} = 0b111;
10847 let Inst{31-21} = 0b10011011100;
10848 let isPredicated = 1;
10849 let isPredicatedFalse = 1;
10850 let hasNewValue = 1;
10851 let opNewValue = 0;
10852 let addrMode = PostInc;
10853 let accessSize = WordAccess;
10854 let isPredicatedNew = 1;
10855 let mayLoad = 1;
10856 let BaseOpcode = "L2_loadri_pi";
10857 let Constraints = "$Rx32 = $Rx32in";
10859 def L2_ploadrifnew_zomap : HInst<
10860 (outs IntRegs:$Rd32),
10861 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10862 "if (!$Pt4.new) $Rd32 = memw($Rs32)",
10863 tc_075c8dd8, TypeMAPPING> {
10864 let hasNewValue = 1;
10865 let opNewValue = 0;
10866 let isPseudo = 1;
10867 let isCodeGenOnly = 1;
10869 def L2_ploadrit_io : HInst<
10870 (outs IntRegs:$Rd32),
10871 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10872 "if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10873 tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10874 let Inst{13-13} = 0b0;
10875 let Inst{31-21} = 0b01000001100;
10876 let isPredicated = 1;
10877 let hasNewValue = 1;
10878 let opNewValue = 0;
10879 let addrMode = BaseImmOffset;
10880 let accessSize = WordAccess;
10881 let mayLoad = 1;
10882 let BaseOpcode = "L2_loadri_io";
10883 let CextOpcode = "L2_loadri";
10884 let isExtendable = 1;
10885 let opExtendable = 3;
10886 let isExtentSigned = 0;
10887 let opExtentBits = 8;
10888 let opExtentAlign = 2;
10890 def L2_ploadrit_pi : HInst<
10891 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10892 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10893 "if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10894 tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel {
10895 let Inst{13-11} = 0b100;
10896 let Inst{31-21} = 0b10011011100;
10897 let isPredicated = 1;
10898 let hasNewValue = 1;
10899 let opNewValue = 0;
10900 let addrMode = PostInc;
10901 let accessSize = WordAccess;
10902 let mayLoad = 1;
10903 let BaseOpcode = "L2_loadri_pi";
10904 let Constraints = "$Rx32 = $Rx32in";
10906 def L2_ploadrit_zomap : HInst<
10907 (outs IntRegs:$Rd32),
10908 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10909 "if ($Pt4) $Rd32 = memw($Rs32)",
10910 tc_fedb7e19, TypeMAPPING> {
10911 let hasNewValue = 1;
10912 let opNewValue = 0;
10913 let isPseudo = 1;
10914 let isCodeGenOnly = 1;
10916 def L2_ploadritnew_io : HInst<
10917 (outs IntRegs:$Rd32),
10918 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10919 "if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10920 tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10921 let Inst{13-13} = 0b0;
10922 let Inst{31-21} = 0b01000011100;
10923 let isPredicated = 1;
10924 let hasNewValue = 1;
10925 let opNewValue = 0;
10926 let addrMode = BaseImmOffset;
10927 let accessSize = WordAccess;
10928 let isPredicatedNew = 1;
10929 let mayLoad = 1;
10930 let BaseOpcode = "L2_loadri_io";
10931 let CextOpcode = "L2_loadri";
10932 let isExtendable = 1;
10933 let opExtendable = 3;
10934 let isExtentSigned = 0;
10935 let opExtentBits = 8;
10936 let opExtentAlign = 2;
10938 def L2_ploadritnew_pi : HInst<
10939 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10940 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10941 "if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10942 tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel {
10943 let Inst{13-11} = 0b110;
10944 let Inst{31-21} = 0b10011011100;
10945 let isPredicated = 1;
10946 let hasNewValue = 1;
10947 let opNewValue = 0;
10948 let addrMode = PostInc;
10949 let accessSize = WordAccess;
10950 let isPredicatedNew = 1;
10951 let mayLoad = 1;
10952 let BaseOpcode = "L2_loadri_pi";
10953 let Constraints = "$Rx32 = $Rx32in";
10955 def L2_ploadritnew_zomap : HInst<
10956 (outs IntRegs:$Rd32),
10957 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10958 "if ($Pt4.new) $Rd32 = memw($Rs32)",
10959 tc_075c8dd8, TypeMAPPING> {
10960 let hasNewValue = 1;
10961 let opNewValue = 0;
10962 let isPseudo = 1;
10963 let isCodeGenOnly = 1;
10965 def L2_ploadrubf_io : HInst<
10966 (outs IntRegs:$Rd32),
10967 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10968 "if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10969 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10970 let Inst{13-13} = 0b0;
10971 let Inst{31-21} = 0b01000101001;
10972 let isPredicated = 1;
10973 let isPredicatedFalse = 1;
10974 let hasNewValue = 1;
10975 let opNewValue = 0;
10976 let addrMode = BaseImmOffset;
10977 let accessSize = ByteAccess;
10978 let mayLoad = 1;
10979 let BaseOpcode = "L2_loadrub_io";
10980 let CextOpcode = "L2_loadrub";
10981 let isExtendable = 1;
10982 let opExtendable = 3;
10983 let isExtentSigned = 0;
10984 let opExtentBits = 6;
10985 let opExtentAlign = 0;
10987 def L2_ploadrubf_pi : HInst<
10988 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10989 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10990 "if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10991 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
10992 let Inst{13-11} = 0b101;
10993 let Inst{31-21} = 0b10011011001;
10994 let isPredicated = 1;
10995 let isPredicatedFalse = 1;
10996 let hasNewValue = 1;
10997 let opNewValue = 0;
10998 let addrMode = PostInc;
10999 let accessSize = ByteAccess;
11000 let mayLoad = 1;
11001 let BaseOpcode = "L2_loadrub_pi";
11002 let Constraints = "$Rx32 = $Rx32in";
11004 def L2_ploadrubf_zomap : HInst<
11005 (outs IntRegs:$Rd32),
11006 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11007 "if (!$Pt4) $Rd32 = memub($Rs32)",
11008 tc_fedb7e19, TypeMAPPING> {
11009 let hasNewValue = 1;
11010 let opNewValue = 0;
11011 let isPseudo = 1;
11012 let isCodeGenOnly = 1;
11014 def L2_ploadrubfnew_io : HInst<
11015 (outs IntRegs:$Rd32),
11016 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11017 "if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11018 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11019 let Inst{13-13} = 0b0;
11020 let Inst{31-21} = 0b01000111001;
11021 let isPredicated = 1;
11022 let isPredicatedFalse = 1;
11023 let hasNewValue = 1;
11024 let opNewValue = 0;
11025 let addrMode = BaseImmOffset;
11026 let accessSize = ByteAccess;
11027 let isPredicatedNew = 1;
11028 let mayLoad = 1;
11029 let BaseOpcode = "L2_loadrub_io";
11030 let CextOpcode = "L2_loadrub";
11031 let isExtendable = 1;
11032 let opExtendable = 3;
11033 let isExtentSigned = 0;
11034 let opExtentBits = 6;
11035 let opExtentAlign = 0;
11037 def L2_ploadrubfnew_pi : HInst<
11038 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11039 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11040 "if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11041 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11042 let Inst{13-11} = 0b111;
11043 let Inst{31-21} = 0b10011011001;
11044 let isPredicated = 1;
11045 let isPredicatedFalse = 1;
11046 let hasNewValue = 1;
11047 let opNewValue = 0;
11048 let addrMode = PostInc;
11049 let accessSize = ByteAccess;
11050 let isPredicatedNew = 1;
11051 let mayLoad = 1;
11052 let BaseOpcode = "L2_loadrub_pi";
11053 let Constraints = "$Rx32 = $Rx32in";
11055 def L2_ploadrubfnew_zomap : HInst<
11056 (outs IntRegs:$Rd32),
11057 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11058 "if (!$Pt4.new) $Rd32 = memub($Rs32)",
11059 tc_075c8dd8, TypeMAPPING> {
11060 let hasNewValue = 1;
11061 let opNewValue = 0;
11062 let isPseudo = 1;
11063 let isCodeGenOnly = 1;
11065 def L2_ploadrubt_io : HInst<
11066 (outs IntRegs:$Rd32),
11067 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11068 "if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
11069 tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11070 let Inst{13-13} = 0b0;
11071 let Inst{31-21} = 0b01000001001;
11072 let isPredicated = 1;
11073 let hasNewValue = 1;
11074 let opNewValue = 0;
11075 let addrMode = BaseImmOffset;
11076 let accessSize = ByteAccess;
11077 let mayLoad = 1;
11078 let BaseOpcode = "L2_loadrub_io";
11079 let CextOpcode = "L2_loadrub";
11080 let isExtendable = 1;
11081 let opExtendable = 3;
11082 let isExtentSigned = 0;
11083 let opExtentBits = 6;
11084 let opExtentAlign = 0;
11086 def L2_ploadrubt_pi : HInst<
11087 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11088 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11089 "if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
11090 tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel {
11091 let Inst{13-11} = 0b100;
11092 let Inst{31-21} = 0b10011011001;
11093 let isPredicated = 1;
11094 let hasNewValue = 1;
11095 let opNewValue = 0;
11096 let addrMode = PostInc;
11097 let accessSize = ByteAccess;
11098 let mayLoad = 1;
11099 let BaseOpcode = "L2_loadrub_pi";
11100 let Constraints = "$Rx32 = $Rx32in";
11102 def L2_ploadrubt_zomap : HInst<
11103 (outs IntRegs:$Rd32),
11104 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11105 "if ($Pt4) $Rd32 = memub($Rs32)",
11106 tc_fedb7e19, TypeMAPPING> {
11107 let hasNewValue = 1;
11108 let opNewValue = 0;
11109 let isPseudo = 1;
11110 let isCodeGenOnly = 1;
11112 def L2_ploadrubtnew_io : HInst<
11113 (outs IntRegs:$Rd32),
11114 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
11115 "if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
11116 tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel {
11117 let Inst{13-13} = 0b0;
11118 let Inst{31-21} = 0b01000011001;
11119 let isPredicated = 1;
11120 let hasNewValue = 1;
11121 let opNewValue = 0;
11122 let addrMode = BaseImmOffset;
11123 let accessSize = ByteAccess;
11124 let isPredicatedNew = 1;
11125 let mayLoad = 1;
11126 let BaseOpcode = "L2_loadrub_io";
11127 let CextOpcode = "L2_loadrub";
11128 let isExtendable = 1;
11129 let opExtendable = 3;
11130 let isExtentSigned = 0;
11131 let opExtentBits = 6;
11132 let opExtentAlign = 0;
11134 def L2_ploadrubtnew_pi : HInst<
11135 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11136 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
11137 "if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
11138 tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel {
11139 let Inst{13-11} = 0b110;
11140 let Inst{31-21} = 0b10011011001;
11141 let isPredicated = 1;
11142 let hasNewValue = 1;
11143 let opNewValue = 0;
11144 let addrMode = PostInc;
11145 let accessSize = ByteAccess;
11146 let isPredicatedNew = 1;
11147 let mayLoad = 1;
11148 let BaseOpcode = "L2_loadrub_pi";
11149 let Constraints = "$Rx32 = $Rx32in";
11151 def L2_ploadrubtnew_zomap : HInst<
11152 (outs IntRegs:$Rd32),
11153 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11154 "if ($Pt4.new) $Rd32 = memub($Rs32)",
11155 tc_075c8dd8, TypeMAPPING> {
11156 let hasNewValue = 1;
11157 let opNewValue = 0;
11158 let isPseudo = 1;
11159 let isCodeGenOnly = 1;
11161 def L2_ploadruhf_io : HInst<
11162 (outs IntRegs:$Rd32),
11163 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11164 "if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11165 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11166 let Inst{13-13} = 0b0;
11167 let Inst{31-21} = 0b01000101011;
11168 let isPredicated = 1;
11169 let isPredicatedFalse = 1;
11170 let hasNewValue = 1;
11171 let opNewValue = 0;
11172 let addrMode = BaseImmOffset;
11173 let accessSize = HalfWordAccess;
11174 let mayLoad = 1;
11175 let BaseOpcode = "L2_loadruh_io";
11176 let CextOpcode = "L2_loadruh";
11177 let isExtendable = 1;
11178 let opExtendable = 3;
11179 let isExtentSigned = 0;
11180 let opExtentBits = 7;
11181 let opExtentAlign = 1;
11183 def L2_ploadruhf_pi : HInst<
11184 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11185 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11186 "if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11187 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11188 let Inst{13-11} = 0b101;
11189 let Inst{31-21} = 0b10011011011;
11190 let isPredicated = 1;
11191 let isPredicatedFalse = 1;
11192 let hasNewValue = 1;
11193 let opNewValue = 0;
11194 let addrMode = PostInc;
11195 let accessSize = HalfWordAccess;
11196 let mayLoad = 1;
11197 let BaseOpcode = "L2_loadruh_pi";
11198 let Constraints = "$Rx32 = $Rx32in";
11200 def L2_ploadruhf_zomap : HInst<
11201 (outs IntRegs:$Rd32),
11202 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11203 "if (!$Pt4) $Rd32 = memuh($Rs32)",
11204 tc_fedb7e19, TypeMAPPING> {
11205 let hasNewValue = 1;
11206 let opNewValue = 0;
11207 let isPseudo = 1;
11208 let isCodeGenOnly = 1;
11210 def L2_ploadruhfnew_io : HInst<
11211 (outs IntRegs:$Rd32),
11212 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11213 "if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11214 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11215 let Inst{13-13} = 0b0;
11216 let Inst{31-21} = 0b01000111011;
11217 let isPredicated = 1;
11218 let isPredicatedFalse = 1;
11219 let hasNewValue = 1;
11220 let opNewValue = 0;
11221 let addrMode = BaseImmOffset;
11222 let accessSize = HalfWordAccess;
11223 let isPredicatedNew = 1;
11224 let mayLoad = 1;
11225 let BaseOpcode = "L2_loadruh_io";
11226 let CextOpcode = "L2_loadruh";
11227 let isExtendable = 1;
11228 let opExtendable = 3;
11229 let isExtentSigned = 0;
11230 let opExtentBits = 7;
11231 let opExtentAlign = 1;
11233 def L2_ploadruhfnew_pi : HInst<
11234 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11235 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11236 "if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11237 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11238 let Inst{13-11} = 0b111;
11239 let Inst{31-21} = 0b10011011011;
11240 let isPredicated = 1;
11241 let isPredicatedFalse = 1;
11242 let hasNewValue = 1;
11243 let opNewValue = 0;
11244 let addrMode = PostInc;
11245 let accessSize = HalfWordAccess;
11246 let isPredicatedNew = 1;
11247 let mayLoad = 1;
11248 let BaseOpcode = "L2_loadruh_pi";
11249 let Constraints = "$Rx32 = $Rx32in";
11251 def L2_ploadruhfnew_zomap : HInst<
11252 (outs IntRegs:$Rd32),
11253 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11254 "if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11255 tc_075c8dd8, TypeMAPPING> {
11256 let hasNewValue = 1;
11257 let opNewValue = 0;
11258 let isPseudo = 1;
11259 let isCodeGenOnly = 1;
11261 def L2_ploadruht_io : HInst<
11262 (outs IntRegs:$Rd32),
11263 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11264 "if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11265 tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11266 let Inst{13-13} = 0b0;
11267 let Inst{31-21} = 0b01000001011;
11268 let isPredicated = 1;
11269 let hasNewValue = 1;
11270 let opNewValue = 0;
11271 let addrMode = BaseImmOffset;
11272 let accessSize = HalfWordAccess;
11273 let mayLoad = 1;
11274 let BaseOpcode = "L2_loadruh_io";
11275 let CextOpcode = "L2_loadruh";
11276 let isExtendable = 1;
11277 let opExtendable = 3;
11278 let isExtentSigned = 0;
11279 let opExtentBits = 7;
11280 let opExtentAlign = 1;
11282 def L2_ploadruht_pi : HInst<
11283 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11284 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11285 "if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11286 tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel {
11287 let Inst{13-11} = 0b100;
11288 let Inst{31-21} = 0b10011011011;
11289 let isPredicated = 1;
11290 let hasNewValue = 1;
11291 let opNewValue = 0;
11292 let addrMode = PostInc;
11293 let accessSize = HalfWordAccess;
11294 let mayLoad = 1;
11295 let BaseOpcode = "L2_loadruh_pi";
11296 let Constraints = "$Rx32 = $Rx32in";
11298 def L2_ploadruht_zomap : HInst<
11299 (outs IntRegs:$Rd32),
11300 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11301 "if ($Pt4) $Rd32 = memuh($Rs32)",
11302 tc_fedb7e19, TypeMAPPING> {
11303 let hasNewValue = 1;
11304 let opNewValue = 0;
11305 let isPseudo = 1;
11306 let isCodeGenOnly = 1;
11308 def L2_ploadruhtnew_io : HInst<
11309 (outs IntRegs:$Rd32),
11310 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11311 "if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11312 tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11313 let Inst{13-13} = 0b0;
11314 let Inst{31-21} = 0b01000011011;
11315 let isPredicated = 1;
11316 let hasNewValue = 1;
11317 let opNewValue = 0;
11318 let addrMode = BaseImmOffset;
11319 let accessSize = HalfWordAccess;
11320 let isPredicatedNew = 1;
11321 let mayLoad = 1;
11322 let BaseOpcode = "L2_loadruh_io";
11323 let CextOpcode = "L2_loadruh";
11324 let isExtendable = 1;
11325 let opExtendable = 3;
11326 let isExtentSigned = 0;
11327 let opExtentBits = 7;
11328 let opExtentAlign = 1;
11330 def L2_ploadruhtnew_pi : HInst<
11331 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11332 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11333 "if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11334 tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel {
11335 let Inst{13-11} = 0b110;
11336 let Inst{31-21} = 0b10011011011;
11337 let isPredicated = 1;
11338 let hasNewValue = 1;
11339 let opNewValue = 0;
11340 let addrMode = PostInc;
11341 let accessSize = HalfWordAccess;
11342 let isPredicatedNew = 1;
11343 let mayLoad = 1;
11344 let BaseOpcode = "L2_loadruh_pi";
11345 let Constraints = "$Rx32 = $Rx32in";
11347 def L2_ploadruhtnew_zomap : HInst<
11348 (outs IntRegs:$Rd32),
11349 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11350 "if ($Pt4.new) $Rd32 = memuh($Rs32)",
11351 tc_075c8dd8, TypeMAPPING> {
11352 let hasNewValue = 1;
11353 let opNewValue = 0;
11354 let isPseudo = 1;
11355 let isCodeGenOnly = 1;
11357 def L4_add_memopb_io : HInst<
11358 (outs),
11359 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11360 "memb($Rs32+#$Ii) += $Rt32",
11361 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11362 let Inst{6-5} = 0b00;
11363 let Inst{13-13} = 0b0;
11364 let Inst{31-21} = 0b00111110000;
11365 let addrMode = BaseImmOffset;
11366 let accessSize = ByteAccess;
11367 let mayLoad = 1;
11368 let isRestrictNoSlot1Store = 1;
11369 let mayStore = 1;
11370 let isExtendable = 1;
11371 let opExtendable = 1;
11372 let isExtentSigned = 0;
11373 let opExtentBits = 6;
11374 let opExtentAlign = 0;
11376 def L4_add_memopb_zomap : HInst<
11377 (outs),
11378 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11379 "memb($Rs32) += $Rt32",
11380 tc_9bcfb2ee, TypeMAPPING> {
11381 let isPseudo = 1;
11382 let isCodeGenOnly = 1;
11384 def L4_add_memoph_io : HInst<
11385 (outs),
11386 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11387 "memh($Rs32+#$Ii) += $Rt32",
11388 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11389 let Inst{6-5} = 0b00;
11390 let Inst{13-13} = 0b0;
11391 let Inst{31-21} = 0b00111110001;
11392 let addrMode = BaseImmOffset;
11393 let accessSize = HalfWordAccess;
11394 let mayLoad = 1;
11395 let isRestrictNoSlot1Store = 1;
11396 let mayStore = 1;
11397 let isExtendable = 1;
11398 let opExtendable = 1;
11399 let isExtentSigned = 0;
11400 let opExtentBits = 7;
11401 let opExtentAlign = 1;
11403 def L4_add_memoph_zomap : HInst<
11404 (outs),
11405 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11406 "memh($Rs32) += $Rt32",
11407 tc_9bcfb2ee, TypeMAPPING> {
11408 let isPseudo = 1;
11409 let isCodeGenOnly = 1;
11411 def L4_add_memopw_io : HInst<
11412 (outs),
11413 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11414 "memw($Rs32+#$Ii) += $Rt32",
11415 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11416 let Inst{6-5} = 0b00;
11417 let Inst{13-13} = 0b0;
11418 let Inst{31-21} = 0b00111110010;
11419 let addrMode = BaseImmOffset;
11420 let accessSize = WordAccess;
11421 let mayLoad = 1;
11422 let isRestrictNoSlot1Store = 1;
11423 let mayStore = 1;
11424 let isExtendable = 1;
11425 let opExtendable = 1;
11426 let isExtentSigned = 0;
11427 let opExtentBits = 8;
11428 let opExtentAlign = 2;
11430 def L4_add_memopw_zomap : HInst<
11431 (outs),
11432 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11433 "memw($Rs32) += $Rt32",
11434 tc_9bcfb2ee, TypeMAPPING> {
11435 let isPseudo = 1;
11436 let isCodeGenOnly = 1;
11438 def L4_and_memopb_io : HInst<
11439 (outs),
11440 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11441 "memb($Rs32+#$Ii) &= $Rt32",
11442 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
11443 let Inst{6-5} = 0b10;
11444 let Inst{13-13} = 0b0;
11445 let Inst{31-21} = 0b00111110000;
11446 let addrMode = BaseImmOffset;
11447 let accessSize = ByteAccess;
11448 let mayLoad = 1;
11449 let isRestrictNoSlot1Store = 1;
11450 let mayStore = 1;
11451 let isExtendable = 1;
11452 let opExtendable = 1;
11453 let isExtentSigned = 0;
11454 let opExtentBits = 6;
11455 let opExtentAlign = 0;
11457 def L4_and_memopb_zomap : HInst<
11458 (outs),
11459 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11460 "memb($Rs32) &= $Rt32",
11461 tc_9bcfb2ee, TypeMAPPING> {
11462 let isPseudo = 1;
11463 let isCodeGenOnly = 1;
11465 def L4_and_memoph_io : HInst<
11466 (outs),
11467 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11468 "memh($Rs32+#$Ii) &= $Rt32",
11469 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
11470 let Inst{6-5} = 0b10;
11471 let Inst{13-13} = 0b0;
11472 let Inst{31-21} = 0b00111110001;
11473 let addrMode = BaseImmOffset;
11474 let accessSize = HalfWordAccess;
11475 let mayLoad = 1;
11476 let isRestrictNoSlot1Store = 1;
11477 let mayStore = 1;
11478 let isExtendable = 1;
11479 let opExtendable = 1;
11480 let isExtentSigned = 0;
11481 let opExtentBits = 7;
11482 let opExtentAlign = 1;
11484 def L4_and_memoph_zomap : HInst<
11485 (outs),
11486 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11487 "memh($Rs32) &= $Rt32",
11488 tc_9bcfb2ee, TypeMAPPING> {
11489 let isPseudo = 1;
11490 let isCodeGenOnly = 1;
11492 def L4_and_memopw_io : HInst<
11493 (outs),
11494 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11495 "memw($Rs32+#$Ii) &= $Rt32",
11496 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
11497 let Inst{6-5} = 0b10;
11498 let Inst{13-13} = 0b0;
11499 let Inst{31-21} = 0b00111110010;
11500 let addrMode = BaseImmOffset;
11501 let accessSize = WordAccess;
11502 let mayLoad = 1;
11503 let isRestrictNoSlot1Store = 1;
11504 let mayStore = 1;
11505 let isExtendable = 1;
11506 let opExtendable = 1;
11507 let isExtentSigned = 0;
11508 let opExtentBits = 8;
11509 let opExtentAlign = 2;
11511 def L4_and_memopw_zomap : HInst<
11512 (outs),
11513 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11514 "memw($Rs32) &= $Rt32",
11515 tc_9bcfb2ee, TypeMAPPING> {
11516 let isPseudo = 1;
11517 let isCodeGenOnly = 1;
11519 def L4_iadd_memopb_io : HInst<
11520 (outs),
11521 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11522 "memb($Rs32+#$Ii) += #$II",
11523 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11524 let Inst{6-5} = 0b00;
11525 let Inst{13-13} = 0b0;
11526 let Inst{31-21} = 0b00111111000;
11527 let addrMode = BaseImmOffset;
11528 let accessSize = ByteAccess;
11529 let mayLoad = 1;
11530 let isRestrictNoSlot1Store = 1;
11531 let mayStore = 1;
11532 let isExtendable = 1;
11533 let opExtendable = 1;
11534 let isExtentSigned = 0;
11535 let opExtentBits = 6;
11536 let opExtentAlign = 0;
11538 def L4_iadd_memopb_zomap : HInst<
11539 (outs),
11540 (ins IntRegs:$Rs32, u5_0Imm:$II),
11541 "memb($Rs32) += #$II",
11542 tc_158aa3f7, TypeMAPPING> {
11543 let isPseudo = 1;
11544 let isCodeGenOnly = 1;
11546 def L4_iadd_memoph_io : HInst<
11547 (outs),
11548 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11549 "memh($Rs32+#$Ii) += #$II",
11550 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11551 let Inst{6-5} = 0b00;
11552 let Inst{13-13} = 0b0;
11553 let Inst{31-21} = 0b00111111001;
11554 let addrMode = BaseImmOffset;
11555 let accessSize = HalfWordAccess;
11556 let mayLoad = 1;
11557 let isRestrictNoSlot1Store = 1;
11558 let mayStore = 1;
11559 let isExtendable = 1;
11560 let opExtendable = 1;
11561 let isExtentSigned = 0;
11562 let opExtentBits = 7;
11563 let opExtentAlign = 1;
11565 def L4_iadd_memoph_zomap : HInst<
11566 (outs),
11567 (ins IntRegs:$Rs32, u5_0Imm:$II),
11568 "memh($Rs32) += #$II",
11569 tc_158aa3f7, TypeMAPPING> {
11570 let isPseudo = 1;
11571 let isCodeGenOnly = 1;
11573 def L4_iadd_memopw_io : HInst<
11574 (outs),
11575 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11576 "memw($Rs32+#$Ii) += #$II",
11577 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11578 let Inst{6-5} = 0b00;
11579 let Inst{13-13} = 0b0;
11580 let Inst{31-21} = 0b00111111010;
11581 let addrMode = BaseImmOffset;
11582 let accessSize = WordAccess;
11583 let mayLoad = 1;
11584 let isRestrictNoSlot1Store = 1;
11585 let mayStore = 1;
11586 let isExtendable = 1;
11587 let opExtendable = 1;
11588 let isExtentSigned = 0;
11589 let opExtentBits = 8;
11590 let opExtentAlign = 2;
11592 def L4_iadd_memopw_zomap : HInst<
11593 (outs),
11594 (ins IntRegs:$Rs32, u5_0Imm:$II),
11595 "memw($Rs32) += #$II",
11596 tc_158aa3f7, TypeMAPPING> {
11597 let isPseudo = 1;
11598 let isCodeGenOnly = 1;
11600 def L4_iand_memopb_io : HInst<
11601 (outs),
11602 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11603 "memb($Rs32+#$Ii) = clrbit(#$II)",
11604 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11605 let Inst{6-5} = 0b10;
11606 let Inst{13-13} = 0b0;
11607 let Inst{31-21} = 0b00111111000;
11608 let addrMode = BaseImmOffset;
11609 let accessSize = ByteAccess;
11610 let mayLoad = 1;
11611 let isRestrictNoSlot1Store = 1;
11612 let mayStore = 1;
11613 let isExtendable = 1;
11614 let opExtendable = 1;
11615 let isExtentSigned = 0;
11616 let opExtentBits = 6;
11617 let opExtentAlign = 0;
11619 def L4_iand_memopb_zomap : HInst<
11620 (outs),
11621 (ins IntRegs:$Rs32, u5_0Imm:$II),
11622 "memb($Rs32) = clrbit(#$II)",
11623 tc_158aa3f7, TypeMAPPING> {
11624 let isPseudo = 1;
11625 let isCodeGenOnly = 1;
11627 def L4_iand_memoph_io : HInst<
11628 (outs),
11629 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11630 "memh($Rs32+#$Ii) = clrbit(#$II)",
11631 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11632 let Inst{6-5} = 0b10;
11633 let Inst{13-13} = 0b0;
11634 let Inst{31-21} = 0b00111111001;
11635 let addrMode = BaseImmOffset;
11636 let accessSize = HalfWordAccess;
11637 let mayLoad = 1;
11638 let isRestrictNoSlot1Store = 1;
11639 let mayStore = 1;
11640 let isExtendable = 1;
11641 let opExtendable = 1;
11642 let isExtentSigned = 0;
11643 let opExtentBits = 7;
11644 let opExtentAlign = 1;
11646 def L4_iand_memoph_zomap : HInst<
11647 (outs),
11648 (ins IntRegs:$Rs32, u5_0Imm:$II),
11649 "memh($Rs32) = clrbit(#$II)",
11650 tc_158aa3f7, TypeMAPPING> {
11651 let isPseudo = 1;
11652 let isCodeGenOnly = 1;
11654 def L4_iand_memopw_io : HInst<
11655 (outs),
11656 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11657 "memw($Rs32+#$Ii) = clrbit(#$II)",
11658 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11659 let Inst{6-5} = 0b10;
11660 let Inst{13-13} = 0b0;
11661 let Inst{31-21} = 0b00111111010;
11662 let addrMode = BaseImmOffset;
11663 let accessSize = WordAccess;
11664 let mayLoad = 1;
11665 let isRestrictNoSlot1Store = 1;
11666 let mayStore = 1;
11667 let isExtendable = 1;
11668 let opExtendable = 1;
11669 let isExtentSigned = 0;
11670 let opExtentBits = 8;
11671 let opExtentAlign = 2;
11673 def L4_iand_memopw_zomap : HInst<
11674 (outs),
11675 (ins IntRegs:$Rs32, u5_0Imm:$II),
11676 "memw($Rs32) = clrbit(#$II)",
11677 tc_158aa3f7, TypeMAPPING> {
11678 let isPseudo = 1;
11679 let isCodeGenOnly = 1;
11681 def L4_ior_memopb_io : HInst<
11682 (outs),
11683 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11684 "memb($Rs32+#$Ii) = setbit(#$II)",
11685 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11686 let Inst{6-5} = 0b11;
11687 let Inst{13-13} = 0b0;
11688 let Inst{31-21} = 0b00111111000;
11689 let addrMode = BaseImmOffset;
11690 let accessSize = ByteAccess;
11691 let mayLoad = 1;
11692 let isRestrictNoSlot1Store = 1;
11693 let mayStore = 1;
11694 let isExtendable = 1;
11695 let opExtendable = 1;
11696 let isExtentSigned = 0;
11697 let opExtentBits = 6;
11698 let opExtentAlign = 0;
11700 def L4_ior_memopb_zomap : HInst<
11701 (outs),
11702 (ins IntRegs:$Rs32, u5_0Imm:$II),
11703 "memb($Rs32) = setbit(#$II)",
11704 tc_158aa3f7, TypeMAPPING> {
11705 let isPseudo = 1;
11706 let isCodeGenOnly = 1;
11708 def L4_ior_memoph_io : HInst<
11709 (outs),
11710 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11711 "memh($Rs32+#$Ii) = setbit(#$II)",
11712 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11713 let Inst{6-5} = 0b11;
11714 let Inst{13-13} = 0b0;
11715 let Inst{31-21} = 0b00111111001;
11716 let addrMode = BaseImmOffset;
11717 let accessSize = HalfWordAccess;
11718 let mayLoad = 1;
11719 let isRestrictNoSlot1Store = 1;
11720 let mayStore = 1;
11721 let isExtendable = 1;
11722 let opExtendable = 1;
11723 let isExtentSigned = 0;
11724 let opExtentBits = 7;
11725 let opExtentAlign = 1;
11727 def L4_ior_memoph_zomap : HInst<
11728 (outs),
11729 (ins IntRegs:$Rs32, u5_0Imm:$II),
11730 "memh($Rs32) = setbit(#$II)",
11731 tc_158aa3f7, TypeMAPPING> {
11732 let isPseudo = 1;
11733 let isCodeGenOnly = 1;
11735 def L4_ior_memopw_io : HInst<
11736 (outs),
11737 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11738 "memw($Rs32+#$Ii) = setbit(#$II)",
11739 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11740 let Inst{6-5} = 0b11;
11741 let Inst{13-13} = 0b0;
11742 let Inst{31-21} = 0b00111111010;
11743 let addrMode = BaseImmOffset;
11744 let accessSize = WordAccess;
11745 let mayLoad = 1;
11746 let isRestrictNoSlot1Store = 1;
11747 let mayStore = 1;
11748 let isExtendable = 1;
11749 let opExtendable = 1;
11750 let isExtentSigned = 0;
11751 let opExtentBits = 8;
11752 let opExtentAlign = 2;
11754 def L4_ior_memopw_zomap : HInst<
11755 (outs),
11756 (ins IntRegs:$Rs32, u5_0Imm:$II),
11757 "memw($Rs32) = setbit(#$II)",
11758 tc_158aa3f7, TypeMAPPING> {
11759 let isPseudo = 1;
11760 let isCodeGenOnly = 1;
11762 def L4_isub_memopb_io : HInst<
11763 (outs),
11764 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11765 "memb($Rs32+#$Ii) -= #$II",
11766 tc_158aa3f7, TypeV4LDST>, Enc_46c951 {
11767 let Inst{6-5} = 0b01;
11768 let Inst{13-13} = 0b0;
11769 let Inst{31-21} = 0b00111111000;
11770 let addrMode = BaseImmOffset;
11771 let accessSize = ByteAccess;
11772 let mayLoad = 1;
11773 let isRestrictNoSlot1Store = 1;
11774 let mayStore = 1;
11775 let isExtendable = 1;
11776 let opExtendable = 1;
11777 let isExtentSigned = 0;
11778 let opExtentBits = 6;
11779 let opExtentAlign = 0;
11781 def L4_isub_memopb_zomap : HInst<
11782 (outs),
11783 (ins IntRegs:$Rs32, u5_0Imm:$II),
11784 "memb($Rs32) -= #$II",
11785 tc_158aa3f7, TypeMAPPING> {
11786 let isPseudo = 1;
11787 let isCodeGenOnly = 1;
11789 def L4_isub_memoph_io : HInst<
11790 (outs),
11791 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11792 "memh($Rs32+#$Ii) -= #$II",
11793 tc_158aa3f7, TypeV4LDST>, Enc_e66a97 {
11794 let Inst{6-5} = 0b01;
11795 let Inst{13-13} = 0b0;
11796 let Inst{31-21} = 0b00111111001;
11797 let addrMode = BaseImmOffset;
11798 let accessSize = HalfWordAccess;
11799 let mayLoad = 1;
11800 let isRestrictNoSlot1Store = 1;
11801 let mayStore = 1;
11802 let isExtendable = 1;
11803 let opExtendable = 1;
11804 let isExtentSigned = 0;
11805 let opExtentBits = 7;
11806 let opExtentAlign = 1;
11808 def L4_isub_memoph_zomap : HInst<
11809 (outs),
11810 (ins IntRegs:$Rs32, u5_0Imm:$II),
11811 "memh($Rs32) -= #$II",
11812 tc_158aa3f7, TypeMAPPING> {
11813 let isPseudo = 1;
11814 let isCodeGenOnly = 1;
11816 def L4_isub_memopw_io : HInst<
11817 (outs),
11818 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11819 "memw($Rs32+#$Ii) -= #$II",
11820 tc_158aa3f7, TypeV4LDST>, Enc_84b2cd {
11821 let Inst{6-5} = 0b01;
11822 let Inst{13-13} = 0b0;
11823 let Inst{31-21} = 0b00111111010;
11824 let addrMode = BaseImmOffset;
11825 let accessSize = WordAccess;
11826 let mayLoad = 1;
11827 let isRestrictNoSlot1Store = 1;
11828 let mayStore = 1;
11829 let isExtendable = 1;
11830 let opExtendable = 1;
11831 let isExtentSigned = 0;
11832 let opExtentBits = 8;
11833 let opExtentAlign = 2;
11835 def L4_isub_memopw_zomap : HInst<
11836 (outs),
11837 (ins IntRegs:$Rs32, u5_0Imm:$II),
11838 "memw($Rs32) -= #$II",
11839 tc_158aa3f7, TypeMAPPING> {
11840 let isPseudo = 1;
11841 let isCodeGenOnly = 1;
11843 def L4_loadalignb_ap : HInst<
11844 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11845 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11846 "$Ryy32 = memb_fifo($Re32=#$II)",
11847 tc_ac65613f, TypeLD>, Enc_f394d3 {
11848 let Inst{7-7} = 0b0;
11849 let Inst{13-12} = 0b01;
11850 let Inst{31-21} = 0b10011010100;
11851 let addrMode = AbsoluteSet;
11852 let accessSize = ByteAccess;
11853 let mayLoad = 1;
11854 let isExtended = 1;
11855 let DecoderNamespace = "MustExtend";
11856 let isExtendable = 1;
11857 let opExtendable = 3;
11858 let isExtentSigned = 0;
11859 let opExtentBits = 6;
11860 let opExtentAlign = 0;
11861 let Constraints = "$Ryy32 = $Ryy32in";
11863 def L4_loadalignb_ur : HInst<
11864 (outs DoubleRegs:$Ryy32),
11865 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11866 "$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11867 tc_a32e03e7, TypeLD>, Enc_04c959 {
11868 let Inst{12-12} = 0b1;
11869 let Inst{31-21} = 0b10011100100;
11870 let addrMode = BaseLongOffset;
11871 let accessSize = ByteAccess;
11872 let mayLoad = 1;
11873 let isExtended = 1;
11874 let InputType = "imm";
11875 let DecoderNamespace = "MustExtend";
11876 let isExtendable = 1;
11877 let opExtendable = 4;
11878 let isExtentSigned = 0;
11879 let opExtentBits = 6;
11880 let opExtentAlign = 0;
11881 let Constraints = "$Ryy32 = $Ryy32in";
11883 def L4_loadalignh_ap : HInst<
11884 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11885 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11886 "$Ryy32 = memh_fifo($Re32=#$II)",
11887 tc_ac65613f, TypeLD>, Enc_f394d3 {
11888 let Inst{7-7} = 0b0;
11889 let Inst{13-12} = 0b01;
11890 let Inst{31-21} = 0b10011010010;
11891 let addrMode = AbsoluteSet;
11892 let accessSize = HalfWordAccess;
11893 let mayLoad = 1;
11894 let isExtended = 1;
11895 let DecoderNamespace = "MustExtend";
11896 let isExtendable = 1;
11897 let opExtendable = 3;
11898 let isExtentSigned = 0;
11899 let opExtentBits = 6;
11900 let opExtentAlign = 0;
11901 let Constraints = "$Ryy32 = $Ryy32in";
11903 def L4_loadalignh_ur : HInst<
11904 (outs DoubleRegs:$Ryy32),
11905 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11906 "$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11907 tc_a32e03e7, TypeLD>, Enc_04c959 {
11908 let Inst{12-12} = 0b1;
11909 let Inst{31-21} = 0b10011100010;
11910 let addrMode = BaseLongOffset;
11911 let accessSize = HalfWordAccess;
11912 let mayLoad = 1;
11913 let isExtended = 1;
11914 let InputType = "imm";
11915 let DecoderNamespace = "MustExtend";
11916 let isExtendable = 1;
11917 let opExtendable = 4;
11918 let isExtentSigned = 0;
11919 let opExtentBits = 6;
11920 let opExtentAlign = 0;
11921 let Constraints = "$Ryy32 = $Ryy32in";
11923 def L4_loadbsw2_ap : HInst<
11924 (outs IntRegs:$Rd32, IntRegs:$Re32),
11925 (ins u32_0Imm:$II),
11926 "$Rd32 = membh($Re32=#$II)",
11927 tc_822c3c68, TypeLD>, Enc_323f2d {
11928 let Inst{7-7} = 0b0;
11929 let Inst{13-12} = 0b01;
11930 let Inst{31-21} = 0b10011010001;
11931 let hasNewValue = 1;
11932 let opNewValue = 0;
11933 let addrMode = AbsoluteSet;
11934 let accessSize = HalfWordAccess;
11935 let mayLoad = 1;
11936 let isExtended = 1;
11937 let DecoderNamespace = "MustExtend";
11938 let isExtendable = 1;
11939 let opExtendable = 2;
11940 let isExtentSigned = 0;
11941 let opExtentBits = 6;
11942 let opExtentAlign = 0;
11944 def L4_loadbsw2_ur : HInst<
11945 (outs IntRegs:$Rd32),
11946 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11947 "$Rd32 = membh($Rt32<<#$Ii+#$II)",
11948 tc_abfd9a6d, TypeLD>, Enc_4f677b {
11949 let Inst{12-12} = 0b1;
11950 let Inst{31-21} = 0b10011100001;
11951 let hasNewValue = 1;
11952 let opNewValue = 0;
11953 let addrMode = BaseLongOffset;
11954 let accessSize = HalfWordAccess;
11955 let mayLoad = 1;
11956 let isExtended = 1;
11957 let InputType = "imm";
11958 let DecoderNamespace = "MustExtend";
11959 let isExtendable = 1;
11960 let opExtendable = 3;
11961 let isExtentSigned = 0;
11962 let opExtentBits = 6;
11963 let opExtentAlign = 0;
11965 def L4_loadbsw4_ap : HInst<
11966 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11967 (ins u32_0Imm:$II),
11968 "$Rdd32 = membh($Re32=#$II)",
11969 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
11970 let Inst{7-7} = 0b0;
11971 let Inst{13-12} = 0b01;
11972 let Inst{31-21} = 0b10011010111;
11973 let addrMode = AbsoluteSet;
11974 let accessSize = WordAccess;
11975 let mayLoad = 1;
11976 let isExtended = 1;
11977 let DecoderNamespace = "MustExtend";
11978 let isExtendable = 1;
11979 let opExtendable = 2;
11980 let isExtentSigned = 0;
11981 let opExtentBits = 6;
11982 let opExtentAlign = 0;
11984 def L4_loadbsw4_ur : HInst<
11985 (outs DoubleRegs:$Rdd32),
11986 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11987 "$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11988 tc_abfd9a6d, TypeLD>, Enc_6185fe {
11989 let Inst{12-12} = 0b1;
11990 let Inst{31-21} = 0b10011100111;
11991 let addrMode = BaseLongOffset;
11992 let accessSize = WordAccess;
11993 let mayLoad = 1;
11994 let isExtended = 1;
11995 let InputType = "imm";
11996 let DecoderNamespace = "MustExtend";
11997 let isExtendable = 1;
11998 let opExtendable = 3;
11999 let isExtentSigned = 0;
12000 let opExtentBits = 6;
12001 let opExtentAlign = 0;
12003 def L4_loadbzw2_ap : HInst<
12004 (outs IntRegs:$Rd32, IntRegs:$Re32),
12005 (ins u32_0Imm:$II),
12006 "$Rd32 = memubh($Re32=#$II)",
12007 tc_822c3c68, TypeLD>, Enc_323f2d {
12008 let Inst{7-7} = 0b0;
12009 let Inst{13-12} = 0b01;
12010 let Inst{31-21} = 0b10011010011;
12011 let hasNewValue = 1;
12012 let opNewValue = 0;
12013 let addrMode = AbsoluteSet;
12014 let accessSize = HalfWordAccess;
12015 let mayLoad = 1;
12016 let isExtended = 1;
12017 let DecoderNamespace = "MustExtend";
12018 let isExtendable = 1;
12019 let opExtendable = 2;
12020 let isExtentSigned = 0;
12021 let opExtentBits = 6;
12022 let opExtentAlign = 0;
12024 def L4_loadbzw2_ur : HInst<
12025 (outs IntRegs:$Rd32),
12026 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12027 "$Rd32 = memubh($Rt32<<#$Ii+#$II)",
12028 tc_abfd9a6d, TypeLD>, Enc_4f677b {
12029 let Inst{12-12} = 0b1;
12030 let Inst{31-21} = 0b10011100011;
12031 let hasNewValue = 1;
12032 let opNewValue = 0;
12033 let addrMode = BaseLongOffset;
12034 let accessSize = HalfWordAccess;
12035 let mayLoad = 1;
12036 let isExtended = 1;
12037 let InputType = "imm";
12038 let DecoderNamespace = "MustExtend";
12039 let isExtendable = 1;
12040 let opExtendable = 3;
12041 let isExtentSigned = 0;
12042 let opExtentBits = 6;
12043 let opExtentAlign = 0;
12045 def L4_loadbzw4_ap : HInst<
12046 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12047 (ins u32_0Imm:$II),
12048 "$Rdd32 = memubh($Re32=#$II)",
12049 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12050 let Inst{7-7} = 0b0;
12051 let Inst{13-12} = 0b01;
12052 let Inst{31-21} = 0b10011010101;
12053 let addrMode = AbsoluteSet;
12054 let accessSize = WordAccess;
12055 let mayLoad = 1;
12056 let isExtended = 1;
12057 let DecoderNamespace = "MustExtend";
12058 let isExtendable = 1;
12059 let opExtendable = 2;
12060 let isExtentSigned = 0;
12061 let opExtentBits = 6;
12062 let opExtentAlign = 0;
12064 def L4_loadbzw4_ur : HInst<
12065 (outs DoubleRegs:$Rdd32),
12066 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12067 "$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
12068 tc_abfd9a6d, TypeLD>, Enc_6185fe {
12069 let Inst{12-12} = 0b1;
12070 let Inst{31-21} = 0b10011100101;
12071 let addrMode = BaseLongOffset;
12072 let accessSize = WordAccess;
12073 let mayLoad = 1;
12074 let isExtended = 1;
12075 let InputType = "imm";
12076 let DecoderNamespace = "MustExtend";
12077 let isExtendable = 1;
12078 let opExtendable = 3;
12079 let isExtentSigned = 0;
12080 let opExtentBits = 6;
12081 let opExtentAlign = 0;
12083 def L4_loadd_aq : HInst<
12084 (outs DoubleRegs:$Rdd32),
12085 (ins IntRegs:$Rs32),
12086 "$Rdd32 = memd_aq($Rs32)",
12087 tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> {
12088 let Inst{13-5} = 0b011000000;
12089 let Inst{31-21} = 0b10010010000;
12090 let accessSize = DoubleWordAccess;
12091 let mayLoad = 1;
12093 def L4_loadd_locked : HInst<
12094 (outs DoubleRegs:$Rdd32),
12095 (ins IntRegs:$Rs32),
12096 "$Rdd32 = memd_locked($Rs32)",
12097 tc_64b00d8a, TypeLD>, Enc_3a3d62 {
12098 let Inst{13-5} = 0b010000000;
12099 let Inst{31-21} = 0b10010010000;
12100 let accessSize = DoubleWordAccess;
12101 let mayLoad = 1;
12102 let isSoloAX = 1;
12104 def L4_loadrb_ap : HInst<
12105 (outs IntRegs:$Rd32, IntRegs:$Re32),
12106 (ins u32_0Imm:$II),
12107 "$Rd32 = memb($Re32=#$II)",
12108 tc_822c3c68, TypeLD>, Enc_323f2d {
12109 let Inst{7-7} = 0b0;
12110 let Inst{13-12} = 0b01;
12111 let Inst{31-21} = 0b10011011000;
12112 let hasNewValue = 1;
12113 let opNewValue = 0;
12114 let addrMode = AbsoluteSet;
12115 let accessSize = ByteAccess;
12116 let mayLoad = 1;
12117 let isExtended = 1;
12118 let DecoderNamespace = "MustExtend";
12119 let isExtendable = 1;
12120 let opExtendable = 2;
12121 let isExtentSigned = 0;
12122 let opExtentBits = 6;
12123 let opExtentAlign = 0;
12125 def L4_loadrb_rr : HInst<
12126 (outs IntRegs:$Rd32),
12127 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12128 "$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12129 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12130 let Inst{6-5} = 0b00;
12131 let Inst{31-21} = 0b00111010000;
12132 let hasNewValue = 1;
12133 let opNewValue = 0;
12134 let addrMode = BaseRegOffset;
12135 let accessSize = ByteAccess;
12136 let mayLoad = 1;
12137 let BaseOpcode = "L4_loadrb_rr";
12138 let CextOpcode = "L2_loadrb";
12139 let InputType = "reg";
12140 let isPredicable = 1;
12142 def L4_loadrb_ur : HInst<
12143 (outs IntRegs:$Rd32),
12144 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12145 "$Rd32 = memb($Rt32<<#$Ii+#$II)",
12146 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12147 let Inst{12-12} = 0b1;
12148 let Inst{31-21} = 0b10011101000;
12149 let hasNewValue = 1;
12150 let opNewValue = 0;
12151 let addrMode = BaseLongOffset;
12152 let accessSize = ByteAccess;
12153 let mayLoad = 1;
12154 let isExtended = 1;
12155 let CextOpcode = "L2_loadrb";
12156 let InputType = "imm";
12157 let DecoderNamespace = "MustExtend";
12158 let isExtendable = 1;
12159 let opExtendable = 3;
12160 let isExtentSigned = 0;
12161 let opExtentBits = 6;
12162 let opExtentAlign = 0;
12164 def L4_loadrd_ap : HInst<
12165 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
12166 (ins u32_0Imm:$II),
12167 "$Rdd32 = memd($Re32=#$II)",
12168 tc_822c3c68, TypeLD>, Enc_7fa7f6 {
12169 let Inst{7-7} = 0b0;
12170 let Inst{13-12} = 0b01;
12171 let Inst{31-21} = 0b10011011110;
12172 let addrMode = AbsoluteSet;
12173 let accessSize = DoubleWordAccess;
12174 let mayLoad = 1;
12175 let isExtended = 1;
12176 let DecoderNamespace = "MustExtend";
12177 let isExtendable = 1;
12178 let opExtendable = 2;
12179 let isExtentSigned = 0;
12180 let opExtentBits = 6;
12181 let opExtentAlign = 0;
12183 def L4_loadrd_rr : HInst<
12184 (outs DoubleRegs:$Rdd32),
12185 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12186 "$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12187 tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12188 let Inst{6-5} = 0b00;
12189 let Inst{31-21} = 0b00111010110;
12190 let addrMode = BaseRegOffset;
12191 let accessSize = DoubleWordAccess;
12192 let mayLoad = 1;
12193 let BaseOpcode = "L4_loadrd_rr";
12194 let CextOpcode = "L2_loadrd";
12195 let InputType = "reg";
12196 let isPredicable = 1;
12198 def L4_loadrd_ur : HInst<
12199 (outs DoubleRegs:$Rdd32),
12200 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12201 "$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12202 tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12203 let Inst{12-12} = 0b1;
12204 let Inst{31-21} = 0b10011101110;
12205 let addrMode = BaseLongOffset;
12206 let accessSize = DoubleWordAccess;
12207 let mayLoad = 1;
12208 let isExtended = 1;
12209 let CextOpcode = "L2_loadrd";
12210 let InputType = "imm";
12211 let DecoderNamespace = "MustExtend";
12212 let isExtendable = 1;
12213 let opExtendable = 3;
12214 let isExtentSigned = 0;
12215 let opExtentBits = 6;
12216 let opExtentAlign = 0;
12218 def L4_loadrh_ap : HInst<
12219 (outs IntRegs:$Rd32, IntRegs:$Re32),
12220 (ins u32_0Imm:$II),
12221 "$Rd32 = memh($Re32=#$II)",
12222 tc_822c3c68, TypeLD>, Enc_323f2d {
12223 let Inst{7-7} = 0b0;
12224 let Inst{13-12} = 0b01;
12225 let Inst{31-21} = 0b10011011010;
12226 let hasNewValue = 1;
12227 let opNewValue = 0;
12228 let addrMode = AbsoluteSet;
12229 let accessSize = HalfWordAccess;
12230 let mayLoad = 1;
12231 let isExtended = 1;
12232 let DecoderNamespace = "MustExtend";
12233 let isExtendable = 1;
12234 let opExtendable = 2;
12235 let isExtentSigned = 0;
12236 let opExtentBits = 6;
12237 let opExtentAlign = 0;
12239 def L4_loadrh_rr : HInst<
12240 (outs IntRegs:$Rd32),
12241 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12242 "$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12243 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12244 let Inst{6-5} = 0b00;
12245 let Inst{31-21} = 0b00111010010;
12246 let hasNewValue = 1;
12247 let opNewValue = 0;
12248 let addrMode = BaseRegOffset;
12249 let accessSize = HalfWordAccess;
12250 let mayLoad = 1;
12251 let BaseOpcode = "L4_loadrh_rr";
12252 let CextOpcode = "L2_loadrh";
12253 let InputType = "reg";
12254 let isPredicable = 1;
12256 def L4_loadrh_ur : HInst<
12257 (outs IntRegs:$Rd32),
12258 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12259 "$Rd32 = memh($Rt32<<#$Ii+#$II)",
12260 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12261 let Inst{12-12} = 0b1;
12262 let Inst{31-21} = 0b10011101010;
12263 let hasNewValue = 1;
12264 let opNewValue = 0;
12265 let addrMode = BaseLongOffset;
12266 let accessSize = HalfWordAccess;
12267 let mayLoad = 1;
12268 let isExtended = 1;
12269 let CextOpcode = "L2_loadrh";
12270 let InputType = "imm";
12271 let DecoderNamespace = "MustExtend";
12272 let isExtendable = 1;
12273 let opExtendable = 3;
12274 let isExtentSigned = 0;
12275 let opExtentBits = 6;
12276 let opExtentAlign = 0;
12278 def L4_loadri_ap : HInst<
12279 (outs IntRegs:$Rd32, IntRegs:$Re32),
12280 (ins u32_0Imm:$II),
12281 "$Rd32 = memw($Re32=#$II)",
12282 tc_822c3c68, TypeLD>, Enc_323f2d {
12283 let Inst{7-7} = 0b0;
12284 let Inst{13-12} = 0b01;
12285 let Inst{31-21} = 0b10011011100;
12286 let hasNewValue = 1;
12287 let opNewValue = 0;
12288 let addrMode = AbsoluteSet;
12289 let accessSize = WordAccess;
12290 let mayLoad = 1;
12291 let isExtended = 1;
12292 let DecoderNamespace = "MustExtend";
12293 let isExtendable = 1;
12294 let opExtendable = 2;
12295 let isExtentSigned = 0;
12296 let opExtentBits = 6;
12297 let opExtentAlign = 0;
12299 def L4_loadri_rr : HInst<
12300 (outs IntRegs:$Rd32),
12301 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12302 "$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12303 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12304 let Inst{6-5} = 0b00;
12305 let Inst{31-21} = 0b00111010100;
12306 let hasNewValue = 1;
12307 let opNewValue = 0;
12308 let addrMode = BaseRegOffset;
12309 let accessSize = WordAccess;
12310 let mayLoad = 1;
12311 let BaseOpcode = "L4_loadri_rr";
12312 let CextOpcode = "L2_loadri";
12313 let InputType = "reg";
12314 let isPredicable = 1;
12316 def L4_loadri_ur : HInst<
12317 (outs IntRegs:$Rd32),
12318 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12319 "$Rd32 = memw($Rt32<<#$Ii+#$II)",
12320 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12321 let Inst{12-12} = 0b1;
12322 let Inst{31-21} = 0b10011101100;
12323 let hasNewValue = 1;
12324 let opNewValue = 0;
12325 let addrMode = BaseLongOffset;
12326 let accessSize = WordAccess;
12327 let mayLoad = 1;
12328 let isExtended = 1;
12329 let CextOpcode = "L2_loadri";
12330 let InputType = "imm";
12331 let DecoderNamespace = "MustExtend";
12332 let isExtendable = 1;
12333 let opExtendable = 3;
12334 let isExtentSigned = 0;
12335 let opExtentBits = 6;
12336 let opExtentAlign = 0;
12338 def L4_loadrub_ap : HInst<
12339 (outs IntRegs:$Rd32, IntRegs:$Re32),
12340 (ins u32_0Imm:$II),
12341 "$Rd32 = memub($Re32=#$II)",
12342 tc_822c3c68, TypeLD>, Enc_323f2d {
12343 let Inst{7-7} = 0b0;
12344 let Inst{13-12} = 0b01;
12345 let Inst{31-21} = 0b10011011001;
12346 let hasNewValue = 1;
12347 let opNewValue = 0;
12348 let addrMode = AbsoluteSet;
12349 let accessSize = ByteAccess;
12350 let mayLoad = 1;
12351 let isExtended = 1;
12352 let DecoderNamespace = "MustExtend";
12353 let isExtendable = 1;
12354 let opExtendable = 2;
12355 let isExtentSigned = 0;
12356 let opExtentBits = 6;
12357 let opExtentAlign = 0;
12359 def L4_loadrub_rr : HInst<
12360 (outs IntRegs:$Rd32),
12361 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12362 "$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12363 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12364 let Inst{6-5} = 0b00;
12365 let Inst{31-21} = 0b00111010001;
12366 let hasNewValue = 1;
12367 let opNewValue = 0;
12368 let addrMode = BaseRegOffset;
12369 let accessSize = ByteAccess;
12370 let mayLoad = 1;
12371 let BaseOpcode = "L4_loadrub_rr";
12372 let CextOpcode = "L2_loadrub";
12373 let InputType = "reg";
12374 let isPredicable = 1;
12376 def L4_loadrub_ur : HInst<
12377 (outs IntRegs:$Rd32),
12378 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12379 "$Rd32 = memub($Rt32<<#$Ii+#$II)",
12380 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12381 let Inst{12-12} = 0b1;
12382 let Inst{31-21} = 0b10011101001;
12383 let hasNewValue = 1;
12384 let opNewValue = 0;
12385 let addrMode = BaseLongOffset;
12386 let accessSize = ByteAccess;
12387 let mayLoad = 1;
12388 let isExtended = 1;
12389 let CextOpcode = "L2_loadrub";
12390 let InputType = "imm";
12391 let DecoderNamespace = "MustExtend";
12392 let isExtendable = 1;
12393 let opExtendable = 3;
12394 let isExtentSigned = 0;
12395 let opExtentBits = 6;
12396 let opExtentAlign = 0;
12398 def L4_loadruh_ap : HInst<
12399 (outs IntRegs:$Rd32, IntRegs:$Re32),
12400 (ins u32_0Imm:$II),
12401 "$Rd32 = memuh($Re32=#$II)",
12402 tc_822c3c68, TypeLD>, Enc_323f2d {
12403 let Inst{7-7} = 0b0;
12404 let Inst{13-12} = 0b01;
12405 let Inst{31-21} = 0b10011011011;
12406 let hasNewValue = 1;
12407 let opNewValue = 0;
12408 let addrMode = AbsoluteSet;
12409 let accessSize = HalfWordAccess;
12410 let mayLoad = 1;
12411 let isExtended = 1;
12412 let DecoderNamespace = "MustExtend";
12413 let isExtendable = 1;
12414 let opExtendable = 2;
12415 let isExtentSigned = 0;
12416 let opExtentBits = 6;
12417 let opExtentAlign = 0;
12419 def L4_loadruh_rr : HInst<
12420 (outs IntRegs:$Rd32),
12421 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12422 "$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12423 tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12424 let Inst{6-5} = 0b00;
12425 let Inst{31-21} = 0b00111010011;
12426 let hasNewValue = 1;
12427 let opNewValue = 0;
12428 let addrMode = BaseRegOffset;
12429 let accessSize = HalfWordAccess;
12430 let mayLoad = 1;
12431 let BaseOpcode = "L4_loadruh_rr";
12432 let CextOpcode = "L2_loadruh";
12433 let InputType = "reg";
12434 let isPredicable = 1;
12436 def L4_loadruh_ur : HInst<
12437 (outs IntRegs:$Rd32),
12438 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12439 "$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12440 tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12441 let Inst{12-12} = 0b1;
12442 let Inst{31-21} = 0b10011101011;
12443 let hasNewValue = 1;
12444 let opNewValue = 0;
12445 let addrMode = BaseLongOffset;
12446 let accessSize = HalfWordAccess;
12447 let mayLoad = 1;
12448 let isExtended = 1;
12449 let CextOpcode = "L2_loadruh";
12450 let InputType = "imm";
12451 let DecoderNamespace = "MustExtend";
12452 let isExtendable = 1;
12453 let opExtendable = 3;
12454 let isExtentSigned = 0;
12455 let opExtentBits = 6;
12456 let opExtentAlign = 0;
12458 def L4_loadw_phys : HInst<
12459 (outs IntRegs:$Rd32),
12460 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12461 "$Rd32 = memw_phys($Rs32,$Rt32)",
12462 tc_ed3f8d2a, TypeLD>, Enc_5ab2be {
12463 let Inst{7-5} = 0b000;
12464 let Inst{13-13} = 0b1;
12465 let Inst{31-21} = 0b10010010000;
12466 let hasNewValue = 1;
12467 let opNewValue = 0;
12468 let accessSize = WordAccess;
12469 let mayLoad = 1;
12470 let isSolo = 1;
12472 def L4_or_memopb_io : HInst<
12473 (outs),
12474 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12475 "memb($Rs32+#$Ii) |= $Rt32",
12476 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
12477 let Inst{6-5} = 0b11;
12478 let Inst{13-13} = 0b0;
12479 let Inst{31-21} = 0b00111110000;
12480 let addrMode = BaseImmOffset;
12481 let accessSize = ByteAccess;
12482 let mayLoad = 1;
12483 let isRestrictNoSlot1Store = 1;
12484 let mayStore = 1;
12485 let isExtendable = 1;
12486 let opExtendable = 1;
12487 let isExtentSigned = 0;
12488 let opExtentBits = 6;
12489 let opExtentAlign = 0;
12491 def L4_or_memopb_zomap : HInst<
12492 (outs),
12493 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12494 "memb($Rs32) |= $Rt32",
12495 tc_9bcfb2ee, TypeMAPPING> {
12496 let isPseudo = 1;
12497 let isCodeGenOnly = 1;
12499 def L4_or_memoph_io : HInst<
12500 (outs),
12501 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12502 "memh($Rs32+#$Ii) |= $Rt32",
12503 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
12504 let Inst{6-5} = 0b11;
12505 let Inst{13-13} = 0b0;
12506 let Inst{31-21} = 0b00111110001;
12507 let addrMode = BaseImmOffset;
12508 let accessSize = HalfWordAccess;
12509 let mayLoad = 1;
12510 let isRestrictNoSlot1Store = 1;
12511 let mayStore = 1;
12512 let isExtendable = 1;
12513 let opExtendable = 1;
12514 let isExtentSigned = 0;
12515 let opExtentBits = 7;
12516 let opExtentAlign = 1;
12518 def L4_or_memoph_zomap : HInst<
12519 (outs),
12520 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12521 "memh($Rs32) |= $Rt32",
12522 tc_9bcfb2ee, TypeMAPPING> {
12523 let isPseudo = 1;
12524 let isCodeGenOnly = 1;
12526 def L4_or_memopw_io : HInst<
12527 (outs),
12528 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12529 "memw($Rs32+#$Ii) |= $Rt32",
12530 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
12531 let Inst{6-5} = 0b11;
12532 let Inst{13-13} = 0b0;
12533 let Inst{31-21} = 0b00111110010;
12534 let addrMode = BaseImmOffset;
12535 let accessSize = WordAccess;
12536 let mayLoad = 1;
12537 let isRestrictNoSlot1Store = 1;
12538 let mayStore = 1;
12539 let isExtendable = 1;
12540 let opExtendable = 1;
12541 let isExtentSigned = 0;
12542 let opExtentBits = 8;
12543 let opExtentAlign = 2;
12545 def L4_or_memopw_zomap : HInst<
12546 (outs),
12547 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12548 "memw($Rs32) |= $Rt32",
12549 tc_9bcfb2ee, TypeMAPPING> {
12550 let isPseudo = 1;
12551 let isCodeGenOnly = 1;
12553 def L4_ploadrbf_abs : HInst<
12554 (outs IntRegs:$Rd32),
12555 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12556 "if (!$Pt4) $Rd32 = memb(#$Ii)",
12557 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12558 let Inst{7-5} = 0b100;
12559 let Inst{13-11} = 0b101;
12560 let Inst{31-21} = 0b10011111000;
12561 let isPredicated = 1;
12562 let isPredicatedFalse = 1;
12563 let hasNewValue = 1;
12564 let opNewValue = 0;
12565 let addrMode = Absolute;
12566 let accessSize = ByteAccess;
12567 let mayLoad = 1;
12568 let isExtended = 1;
12569 let BaseOpcode = "L4_loadrb_abs";
12570 let CextOpcode = "L2_loadrb";
12571 let DecoderNamespace = "MustExtend";
12572 let isExtendable = 1;
12573 let opExtendable = 2;
12574 let isExtentSigned = 0;
12575 let opExtentBits = 6;
12576 let opExtentAlign = 0;
12578 def L4_ploadrbf_rr : HInst<
12579 (outs IntRegs:$Rd32),
12580 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12581 "if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12582 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12583 let Inst{31-21} = 0b00110001000;
12584 let isPredicated = 1;
12585 let isPredicatedFalse = 1;
12586 let hasNewValue = 1;
12587 let opNewValue = 0;
12588 let addrMode = BaseRegOffset;
12589 let accessSize = ByteAccess;
12590 let mayLoad = 1;
12591 let BaseOpcode = "L4_loadrb_rr";
12592 let CextOpcode = "L2_loadrb";
12593 let InputType = "reg";
12595 def L4_ploadrbfnew_abs : HInst<
12596 (outs IntRegs:$Rd32),
12597 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12598 "if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12599 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12600 let Inst{7-5} = 0b100;
12601 let Inst{13-11} = 0b111;
12602 let Inst{31-21} = 0b10011111000;
12603 let isPredicated = 1;
12604 let isPredicatedFalse = 1;
12605 let hasNewValue = 1;
12606 let opNewValue = 0;
12607 let addrMode = Absolute;
12608 let accessSize = ByteAccess;
12609 let isPredicatedNew = 1;
12610 let mayLoad = 1;
12611 let isExtended = 1;
12612 let BaseOpcode = "L4_loadrb_abs";
12613 let CextOpcode = "L2_loadrb";
12614 let DecoderNamespace = "MustExtend";
12615 let isExtendable = 1;
12616 let opExtendable = 2;
12617 let isExtentSigned = 0;
12618 let opExtentBits = 6;
12619 let opExtentAlign = 0;
12621 def L4_ploadrbfnew_rr : HInst<
12622 (outs IntRegs:$Rd32),
12623 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12624 "if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12625 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12626 let Inst{31-21} = 0b00110011000;
12627 let isPredicated = 1;
12628 let isPredicatedFalse = 1;
12629 let hasNewValue = 1;
12630 let opNewValue = 0;
12631 let addrMode = BaseRegOffset;
12632 let accessSize = ByteAccess;
12633 let isPredicatedNew = 1;
12634 let mayLoad = 1;
12635 let BaseOpcode = "L4_loadrb_rr";
12636 let CextOpcode = "L2_loadrb";
12637 let InputType = "reg";
12639 def L4_ploadrbt_abs : HInst<
12640 (outs IntRegs:$Rd32),
12641 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12642 "if ($Pt4) $Rd32 = memb(#$Ii)",
12643 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12644 let Inst{7-5} = 0b100;
12645 let Inst{13-11} = 0b100;
12646 let Inst{31-21} = 0b10011111000;
12647 let isPredicated = 1;
12648 let hasNewValue = 1;
12649 let opNewValue = 0;
12650 let addrMode = Absolute;
12651 let accessSize = ByteAccess;
12652 let mayLoad = 1;
12653 let isExtended = 1;
12654 let BaseOpcode = "L4_loadrb_abs";
12655 let CextOpcode = "L2_loadrb";
12656 let DecoderNamespace = "MustExtend";
12657 let isExtendable = 1;
12658 let opExtendable = 2;
12659 let isExtentSigned = 0;
12660 let opExtentBits = 6;
12661 let opExtentAlign = 0;
12663 def L4_ploadrbt_rr : HInst<
12664 (outs IntRegs:$Rd32),
12665 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12666 "if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12667 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12668 let Inst{31-21} = 0b00110000000;
12669 let isPredicated = 1;
12670 let hasNewValue = 1;
12671 let opNewValue = 0;
12672 let addrMode = BaseRegOffset;
12673 let accessSize = ByteAccess;
12674 let mayLoad = 1;
12675 let BaseOpcode = "L4_loadrb_rr";
12676 let CextOpcode = "L2_loadrb";
12677 let InputType = "reg";
12679 def L4_ploadrbtnew_abs : HInst<
12680 (outs IntRegs:$Rd32),
12681 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12682 "if ($Pt4.new) $Rd32 = memb(#$Ii)",
12683 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12684 let Inst{7-5} = 0b100;
12685 let Inst{13-11} = 0b110;
12686 let Inst{31-21} = 0b10011111000;
12687 let isPredicated = 1;
12688 let hasNewValue = 1;
12689 let opNewValue = 0;
12690 let addrMode = Absolute;
12691 let accessSize = ByteAccess;
12692 let isPredicatedNew = 1;
12693 let mayLoad = 1;
12694 let isExtended = 1;
12695 let BaseOpcode = "L4_loadrb_abs";
12696 let CextOpcode = "L2_loadrb";
12697 let DecoderNamespace = "MustExtend";
12698 let isExtendable = 1;
12699 let opExtendable = 2;
12700 let isExtentSigned = 0;
12701 let opExtentBits = 6;
12702 let opExtentAlign = 0;
12704 def L4_ploadrbtnew_rr : HInst<
12705 (outs IntRegs:$Rd32),
12706 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12707 "if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12708 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12709 let Inst{31-21} = 0b00110010000;
12710 let isPredicated = 1;
12711 let hasNewValue = 1;
12712 let opNewValue = 0;
12713 let addrMode = BaseRegOffset;
12714 let accessSize = ByteAccess;
12715 let isPredicatedNew = 1;
12716 let mayLoad = 1;
12717 let BaseOpcode = "L4_loadrb_rr";
12718 let CextOpcode = "L2_loadrb";
12719 let InputType = "reg";
12721 def L4_ploadrdf_abs : HInst<
12722 (outs DoubleRegs:$Rdd32),
12723 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12724 "if (!$Pt4) $Rdd32 = memd(#$Ii)",
12725 tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12726 let Inst{7-5} = 0b100;
12727 let Inst{13-11} = 0b101;
12728 let Inst{31-21} = 0b10011111110;
12729 let isPredicated = 1;
12730 let isPredicatedFalse = 1;
12731 let addrMode = Absolute;
12732 let accessSize = DoubleWordAccess;
12733 let mayLoad = 1;
12734 let isExtended = 1;
12735 let BaseOpcode = "L4_loadrd_abs";
12736 let CextOpcode = "L2_loadrd";
12737 let DecoderNamespace = "MustExtend";
12738 let isExtendable = 1;
12739 let opExtendable = 2;
12740 let isExtentSigned = 0;
12741 let opExtentBits = 6;
12742 let opExtentAlign = 0;
12744 def L4_ploadrdf_rr : HInst<
12745 (outs DoubleRegs:$Rdd32),
12746 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12747 "if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12748 tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12749 let Inst{31-21} = 0b00110001110;
12750 let isPredicated = 1;
12751 let isPredicatedFalse = 1;
12752 let addrMode = BaseRegOffset;
12753 let accessSize = DoubleWordAccess;
12754 let mayLoad = 1;
12755 let BaseOpcode = "L4_loadrd_rr";
12756 let CextOpcode = "L2_loadrd";
12757 let InputType = "reg";
12759 def L4_ploadrdfnew_abs : HInst<
12760 (outs DoubleRegs:$Rdd32),
12761 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12762 "if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12763 tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12764 let Inst{7-5} = 0b100;
12765 let Inst{13-11} = 0b111;
12766 let Inst{31-21} = 0b10011111110;
12767 let isPredicated = 1;
12768 let isPredicatedFalse = 1;
12769 let addrMode = Absolute;
12770 let accessSize = DoubleWordAccess;
12771 let isPredicatedNew = 1;
12772 let mayLoad = 1;
12773 let isExtended = 1;
12774 let BaseOpcode = "L4_loadrd_abs";
12775 let CextOpcode = "L2_loadrd";
12776 let DecoderNamespace = "MustExtend";
12777 let isExtendable = 1;
12778 let opExtendable = 2;
12779 let isExtentSigned = 0;
12780 let opExtentBits = 6;
12781 let opExtentAlign = 0;
12783 def L4_ploadrdfnew_rr : HInst<
12784 (outs DoubleRegs:$Rdd32),
12785 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12786 "if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12787 tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12788 let Inst{31-21} = 0b00110011110;
12789 let isPredicated = 1;
12790 let isPredicatedFalse = 1;
12791 let addrMode = BaseRegOffset;
12792 let accessSize = DoubleWordAccess;
12793 let isPredicatedNew = 1;
12794 let mayLoad = 1;
12795 let BaseOpcode = "L4_loadrd_rr";
12796 let CextOpcode = "L2_loadrd";
12797 let InputType = "reg";
12799 def L4_ploadrdt_abs : HInst<
12800 (outs DoubleRegs:$Rdd32),
12801 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12802 "if ($Pt4) $Rdd32 = memd(#$Ii)",
12803 tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel {
12804 let Inst{7-5} = 0b100;
12805 let Inst{13-11} = 0b100;
12806 let Inst{31-21} = 0b10011111110;
12807 let isPredicated = 1;
12808 let addrMode = Absolute;
12809 let accessSize = DoubleWordAccess;
12810 let mayLoad = 1;
12811 let isExtended = 1;
12812 let BaseOpcode = "L4_loadrd_abs";
12813 let CextOpcode = "L2_loadrd";
12814 let DecoderNamespace = "MustExtend";
12815 let isExtendable = 1;
12816 let opExtendable = 2;
12817 let isExtentSigned = 0;
12818 let opExtentBits = 6;
12819 let opExtentAlign = 0;
12821 def L4_ploadrdt_rr : HInst<
12822 (outs DoubleRegs:$Rdd32),
12823 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12824 "if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12825 tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel {
12826 let Inst{31-21} = 0b00110000110;
12827 let isPredicated = 1;
12828 let addrMode = BaseRegOffset;
12829 let accessSize = DoubleWordAccess;
12830 let mayLoad = 1;
12831 let BaseOpcode = "L4_loadrd_rr";
12832 let CextOpcode = "L2_loadrd";
12833 let InputType = "reg";
12835 def L4_ploadrdtnew_abs : HInst<
12836 (outs DoubleRegs:$Rdd32),
12837 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12838 "if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12839 tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel {
12840 let Inst{7-5} = 0b100;
12841 let Inst{13-11} = 0b110;
12842 let Inst{31-21} = 0b10011111110;
12843 let isPredicated = 1;
12844 let addrMode = Absolute;
12845 let accessSize = DoubleWordAccess;
12846 let isPredicatedNew = 1;
12847 let mayLoad = 1;
12848 let isExtended = 1;
12849 let BaseOpcode = "L4_loadrd_abs";
12850 let CextOpcode = "L2_loadrd";
12851 let DecoderNamespace = "MustExtend";
12852 let isExtendable = 1;
12853 let opExtendable = 2;
12854 let isExtentSigned = 0;
12855 let opExtentBits = 6;
12856 let opExtentAlign = 0;
12858 def L4_ploadrdtnew_rr : HInst<
12859 (outs DoubleRegs:$Rdd32),
12860 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12861 "if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12862 tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel {
12863 let Inst{31-21} = 0b00110010110;
12864 let isPredicated = 1;
12865 let addrMode = BaseRegOffset;
12866 let accessSize = DoubleWordAccess;
12867 let isPredicatedNew = 1;
12868 let mayLoad = 1;
12869 let BaseOpcode = "L4_loadrd_rr";
12870 let CextOpcode = "L2_loadrd";
12871 let InputType = "reg";
12873 def L4_ploadrhf_abs : HInst<
12874 (outs IntRegs:$Rd32),
12875 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12876 "if (!$Pt4) $Rd32 = memh(#$Ii)",
12877 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12878 let Inst{7-5} = 0b100;
12879 let Inst{13-11} = 0b101;
12880 let Inst{31-21} = 0b10011111010;
12881 let isPredicated = 1;
12882 let isPredicatedFalse = 1;
12883 let hasNewValue = 1;
12884 let opNewValue = 0;
12885 let addrMode = Absolute;
12886 let accessSize = HalfWordAccess;
12887 let mayLoad = 1;
12888 let isExtended = 1;
12889 let BaseOpcode = "L4_loadrh_abs";
12890 let CextOpcode = "L2_loadrh";
12891 let DecoderNamespace = "MustExtend";
12892 let isExtendable = 1;
12893 let opExtendable = 2;
12894 let isExtentSigned = 0;
12895 let opExtentBits = 6;
12896 let opExtentAlign = 0;
12898 def L4_ploadrhf_rr : HInst<
12899 (outs IntRegs:$Rd32),
12900 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12901 "if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12902 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12903 let Inst{31-21} = 0b00110001010;
12904 let isPredicated = 1;
12905 let isPredicatedFalse = 1;
12906 let hasNewValue = 1;
12907 let opNewValue = 0;
12908 let addrMode = BaseRegOffset;
12909 let accessSize = HalfWordAccess;
12910 let mayLoad = 1;
12911 let BaseOpcode = "L4_loadrh_rr";
12912 let CextOpcode = "L2_loadrh";
12913 let InputType = "reg";
12915 def L4_ploadrhfnew_abs : HInst<
12916 (outs IntRegs:$Rd32),
12917 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12918 "if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12919 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
12920 let Inst{7-5} = 0b100;
12921 let Inst{13-11} = 0b111;
12922 let Inst{31-21} = 0b10011111010;
12923 let isPredicated = 1;
12924 let isPredicatedFalse = 1;
12925 let hasNewValue = 1;
12926 let opNewValue = 0;
12927 let addrMode = Absolute;
12928 let accessSize = HalfWordAccess;
12929 let isPredicatedNew = 1;
12930 let mayLoad = 1;
12931 let isExtended = 1;
12932 let BaseOpcode = "L4_loadrh_abs";
12933 let CextOpcode = "L2_loadrh";
12934 let DecoderNamespace = "MustExtend";
12935 let isExtendable = 1;
12936 let opExtendable = 2;
12937 let isExtentSigned = 0;
12938 let opExtentBits = 6;
12939 let opExtentAlign = 0;
12941 def L4_ploadrhfnew_rr : HInst<
12942 (outs IntRegs:$Rd32),
12943 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12944 "if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12945 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
12946 let Inst{31-21} = 0b00110011010;
12947 let isPredicated = 1;
12948 let isPredicatedFalse = 1;
12949 let hasNewValue = 1;
12950 let opNewValue = 0;
12951 let addrMode = BaseRegOffset;
12952 let accessSize = HalfWordAccess;
12953 let isPredicatedNew = 1;
12954 let mayLoad = 1;
12955 let BaseOpcode = "L4_loadrh_rr";
12956 let CextOpcode = "L2_loadrh";
12957 let InputType = "reg";
12959 def L4_ploadrht_abs : HInst<
12960 (outs IntRegs:$Rd32),
12961 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12962 "if ($Pt4) $Rd32 = memh(#$Ii)",
12963 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
12964 let Inst{7-5} = 0b100;
12965 let Inst{13-11} = 0b100;
12966 let Inst{31-21} = 0b10011111010;
12967 let isPredicated = 1;
12968 let hasNewValue = 1;
12969 let opNewValue = 0;
12970 let addrMode = Absolute;
12971 let accessSize = HalfWordAccess;
12972 let mayLoad = 1;
12973 let isExtended = 1;
12974 let BaseOpcode = "L4_loadrh_abs";
12975 let CextOpcode = "L2_loadrh";
12976 let DecoderNamespace = "MustExtend";
12977 let isExtendable = 1;
12978 let opExtendable = 2;
12979 let isExtentSigned = 0;
12980 let opExtentBits = 6;
12981 let opExtentAlign = 0;
12983 def L4_ploadrht_rr : HInst<
12984 (outs IntRegs:$Rd32),
12985 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12986 "if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12987 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
12988 let Inst{31-21} = 0b00110000010;
12989 let isPredicated = 1;
12990 let hasNewValue = 1;
12991 let opNewValue = 0;
12992 let addrMode = BaseRegOffset;
12993 let accessSize = HalfWordAccess;
12994 let mayLoad = 1;
12995 let BaseOpcode = "L4_loadrh_rr";
12996 let CextOpcode = "L2_loadrh";
12997 let InputType = "reg";
12999 def L4_ploadrhtnew_abs : HInst<
13000 (outs IntRegs:$Rd32),
13001 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13002 "if ($Pt4.new) $Rd32 = memh(#$Ii)",
13003 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13004 let Inst{7-5} = 0b100;
13005 let Inst{13-11} = 0b110;
13006 let Inst{31-21} = 0b10011111010;
13007 let isPredicated = 1;
13008 let hasNewValue = 1;
13009 let opNewValue = 0;
13010 let addrMode = Absolute;
13011 let accessSize = HalfWordAccess;
13012 let isPredicatedNew = 1;
13013 let mayLoad = 1;
13014 let isExtended = 1;
13015 let BaseOpcode = "L4_loadrh_abs";
13016 let CextOpcode = "L2_loadrh";
13017 let DecoderNamespace = "MustExtend";
13018 let isExtendable = 1;
13019 let opExtendable = 2;
13020 let isExtentSigned = 0;
13021 let opExtentBits = 6;
13022 let opExtentAlign = 0;
13024 def L4_ploadrhtnew_rr : HInst<
13025 (outs IntRegs:$Rd32),
13026 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13027 "if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
13028 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13029 let Inst{31-21} = 0b00110010010;
13030 let isPredicated = 1;
13031 let hasNewValue = 1;
13032 let opNewValue = 0;
13033 let addrMode = BaseRegOffset;
13034 let accessSize = HalfWordAccess;
13035 let isPredicatedNew = 1;
13036 let mayLoad = 1;
13037 let BaseOpcode = "L4_loadrh_rr";
13038 let CextOpcode = "L2_loadrh";
13039 let InputType = "reg";
13041 def L4_ploadrif_abs : HInst<
13042 (outs IntRegs:$Rd32),
13043 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13044 "if (!$Pt4) $Rd32 = memw(#$Ii)",
13045 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13046 let Inst{7-5} = 0b100;
13047 let Inst{13-11} = 0b101;
13048 let Inst{31-21} = 0b10011111100;
13049 let isPredicated = 1;
13050 let isPredicatedFalse = 1;
13051 let hasNewValue = 1;
13052 let opNewValue = 0;
13053 let addrMode = Absolute;
13054 let accessSize = WordAccess;
13055 let mayLoad = 1;
13056 let isExtended = 1;
13057 let BaseOpcode = "L4_loadri_abs";
13058 let CextOpcode = "L2_loadri";
13059 let DecoderNamespace = "MustExtend";
13060 let isExtendable = 1;
13061 let opExtendable = 2;
13062 let isExtentSigned = 0;
13063 let opExtentBits = 6;
13064 let opExtentAlign = 0;
13066 def L4_ploadrif_rr : HInst<
13067 (outs IntRegs:$Rd32),
13068 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13069 "if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13070 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13071 let Inst{31-21} = 0b00110001100;
13072 let isPredicated = 1;
13073 let isPredicatedFalse = 1;
13074 let hasNewValue = 1;
13075 let opNewValue = 0;
13076 let addrMode = BaseRegOffset;
13077 let accessSize = WordAccess;
13078 let mayLoad = 1;
13079 let BaseOpcode = "L4_loadri_rr";
13080 let CextOpcode = "L2_loadri";
13081 let InputType = "reg";
13083 def L4_ploadrifnew_abs : HInst<
13084 (outs IntRegs:$Rd32),
13085 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13086 "if (!$Pt4.new) $Rd32 = memw(#$Ii)",
13087 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13088 let Inst{7-5} = 0b100;
13089 let Inst{13-11} = 0b111;
13090 let Inst{31-21} = 0b10011111100;
13091 let isPredicated = 1;
13092 let isPredicatedFalse = 1;
13093 let hasNewValue = 1;
13094 let opNewValue = 0;
13095 let addrMode = Absolute;
13096 let accessSize = WordAccess;
13097 let isPredicatedNew = 1;
13098 let mayLoad = 1;
13099 let isExtended = 1;
13100 let BaseOpcode = "L4_loadri_abs";
13101 let CextOpcode = "L2_loadri";
13102 let DecoderNamespace = "MustExtend";
13103 let isExtendable = 1;
13104 let opExtendable = 2;
13105 let isExtentSigned = 0;
13106 let opExtentBits = 6;
13107 let opExtentAlign = 0;
13109 def L4_ploadrifnew_rr : HInst<
13110 (outs IntRegs:$Rd32),
13111 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13112 "if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13113 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13114 let Inst{31-21} = 0b00110011100;
13115 let isPredicated = 1;
13116 let isPredicatedFalse = 1;
13117 let hasNewValue = 1;
13118 let opNewValue = 0;
13119 let addrMode = BaseRegOffset;
13120 let accessSize = WordAccess;
13121 let isPredicatedNew = 1;
13122 let mayLoad = 1;
13123 let BaseOpcode = "L4_loadri_rr";
13124 let CextOpcode = "L2_loadri";
13125 let InputType = "reg";
13127 def L4_ploadrit_abs : HInst<
13128 (outs IntRegs:$Rd32),
13129 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13130 "if ($Pt4) $Rd32 = memw(#$Ii)",
13131 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13132 let Inst{7-5} = 0b100;
13133 let Inst{13-11} = 0b100;
13134 let Inst{31-21} = 0b10011111100;
13135 let isPredicated = 1;
13136 let hasNewValue = 1;
13137 let opNewValue = 0;
13138 let addrMode = Absolute;
13139 let accessSize = WordAccess;
13140 let mayLoad = 1;
13141 let isExtended = 1;
13142 let BaseOpcode = "L4_loadri_abs";
13143 let CextOpcode = "L2_loadri";
13144 let DecoderNamespace = "MustExtend";
13145 let isExtendable = 1;
13146 let opExtendable = 2;
13147 let isExtentSigned = 0;
13148 let opExtentBits = 6;
13149 let opExtentAlign = 0;
13151 def L4_ploadrit_rr : HInst<
13152 (outs IntRegs:$Rd32),
13153 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13154 "if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13155 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13156 let Inst{31-21} = 0b00110000100;
13157 let isPredicated = 1;
13158 let hasNewValue = 1;
13159 let opNewValue = 0;
13160 let addrMode = BaseRegOffset;
13161 let accessSize = WordAccess;
13162 let mayLoad = 1;
13163 let BaseOpcode = "L4_loadri_rr";
13164 let CextOpcode = "L2_loadri";
13165 let InputType = "reg";
13167 def L4_ploadritnew_abs : HInst<
13168 (outs IntRegs:$Rd32),
13169 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13170 "if ($Pt4.new) $Rd32 = memw(#$Ii)",
13171 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13172 let Inst{7-5} = 0b100;
13173 let Inst{13-11} = 0b110;
13174 let Inst{31-21} = 0b10011111100;
13175 let isPredicated = 1;
13176 let hasNewValue = 1;
13177 let opNewValue = 0;
13178 let addrMode = Absolute;
13179 let accessSize = WordAccess;
13180 let isPredicatedNew = 1;
13181 let mayLoad = 1;
13182 let isExtended = 1;
13183 let BaseOpcode = "L4_loadri_abs";
13184 let CextOpcode = "L2_loadri";
13185 let DecoderNamespace = "MustExtend";
13186 let isExtendable = 1;
13187 let opExtendable = 2;
13188 let isExtentSigned = 0;
13189 let opExtentBits = 6;
13190 let opExtentAlign = 0;
13192 def L4_ploadritnew_rr : HInst<
13193 (outs IntRegs:$Rd32),
13194 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13195 "if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13196 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13197 let Inst{31-21} = 0b00110010100;
13198 let isPredicated = 1;
13199 let hasNewValue = 1;
13200 let opNewValue = 0;
13201 let addrMode = BaseRegOffset;
13202 let accessSize = WordAccess;
13203 let isPredicatedNew = 1;
13204 let mayLoad = 1;
13205 let BaseOpcode = "L4_loadri_rr";
13206 let CextOpcode = "L2_loadri";
13207 let InputType = "reg";
13209 def L4_ploadrubf_abs : HInst<
13210 (outs IntRegs:$Rd32),
13211 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13212 "if (!$Pt4) $Rd32 = memub(#$Ii)",
13213 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13214 let Inst{7-5} = 0b100;
13215 let Inst{13-11} = 0b101;
13216 let Inst{31-21} = 0b10011111001;
13217 let isPredicated = 1;
13218 let isPredicatedFalse = 1;
13219 let hasNewValue = 1;
13220 let opNewValue = 0;
13221 let addrMode = Absolute;
13222 let accessSize = ByteAccess;
13223 let mayLoad = 1;
13224 let isExtended = 1;
13225 let BaseOpcode = "L4_loadrub_abs";
13226 let CextOpcode = "L2_loadrub";
13227 let DecoderNamespace = "MustExtend";
13228 let isExtendable = 1;
13229 let opExtendable = 2;
13230 let isExtentSigned = 0;
13231 let opExtentBits = 6;
13232 let opExtentAlign = 0;
13234 def L4_ploadrubf_rr : HInst<
13235 (outs IntRegs:$Rd32),
13236 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13237 "if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13238 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13239 let Inst{31-21} = 0b00110001001;
13240 let isPredicated = 1;
13241 let isPredicatedFalse = 1;
13242 let hasNewValue = 1;
13243 let opNewValue = 0;
13244 let addrMode = BaseRegOffset;
13245 let accessSize = ByteAccess;
13246 let mayLoad = 1;
13247 let BaseOpcode = "L4_loadrub_rr";
13248 let CextOpcode = "L2_loadrub";
13249 let InputType = "reg";
13251 def L4_ploadrubfnew_abs : HInst<
13252 (outs IntRegs:$Rd32),
13253 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13254 "if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13255 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13256 let Inst{7-5} = 0b100;
13257 let Inst{13-11} = 0b111;
13258 let Inst{31-21} = 0b10011111001;
13259 let isPredicated = 1;
13260 let isPredicatedFalse = 1;
13261 let hasNewValue = 1;
13262 let opNewValue = 0;
13263 let addrMode = Absolute;
13264 let accessSize = ByteAccess;
13265 let isPredicatedNew = 1;
13266 let mayLoad = 1;
13267 let isExtended = 1;
13268 let BaseOpcode = "L4_loadrub_abs";
13269 let CextOpcode = "L2_loadrub";
13270 let DecoderNamespace = "MustExtend";
13271 let isExtendable = 1;
13272 let opExtendable = 2;
13273 let isExtentSigned = 0;
13274 let opExtentBits = 6;
13275 let opExtentAlign = 0;
13277 def L4_ploadrubfnew_rr : HInst<
13278 (outs IntRegs:$Rd32),
13279 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13280 "if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13281 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13282 let Inst{31-21} = 0b00110011001;
13283 let isPredicated = 1;
13284 let isPredicatedFalse = 1;
13285 let hasNewValue = 1;
13286 let opNewValue = 0;
13287 let addrMode = BaseRegOffset;
13288 let accessSize = ByteAccess;
13289 let isPredicatedNew = 1;
13290 let mayLoad = 1;
13291 let BaseOpcode = "L4_loadrub_rr";
13292 let CextOpcode = "L2_loadrub";
13293 let InputType = "reg";
13295 def L4_ploadrubt_abs : HInst<
13296 (outs IntRegs:$Rd32),
13297 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13298 "if ($Pt4) $Rd32 = memub(#$Ii)",
13299 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13300 let Inst{7-5} = 0b100;
13301 let Inst{13-11} = 0b100;
13302 let Inst{31-21} = 0b10011111001;
13303 let isPredicated = 1;
13304 let hasNewValue = 1;
13305 let opNewValue = 0;
13306 let addrMode = Absolute;
13307 let accessSize = ByteAccess;
13308 let mayLoad = 1;
13309 let isExtended = 1;
13310 let BaseOpcode = "L4_loadrub_abs";
13311 let CextOpcode = "L2_loadrub";
13312 let DecoderNamespace = "MustExtend";
13313 let isExtendable = 1;
13314 let opExtendable = 2;
13315 let isExtentSigned = 0;
13316 let opExtentBits = 6;
13317 let opExtentAlign = 0;
13319 def L4_ploadrubt_rr : HInst<
13320 (outs IntRegs:$Rd32),
13321 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13322 "if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13323 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13324 let Inst{31-21} = 0b00110000001;
13325 let isPredicated = 1;
13326 let hasNewValue = 1;
13327 let opNewValue = 0;
13328 let addrMode = BaseRegOffset;
13329 let accessSize = ByteAccess;
13330 let mayLoad = 1;
13331 let BaseOpcode = "L4_loadrub_rr";
13332 let CextOpcode = "L2_loadrub";
13333 let InputType = "reg";
13335 def L4_ploadrubtnew_abs : HInst<
13336 (outs IntRegs:$Rd32),
13337 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13338 "if ($Pt4.new) $Rd32 = memub(#$Ii)",
13339 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13340 let Inst{7-5} = 0b100;
13341 let Inst{13-11} = 0b110;
13342 let Inst{31-21} = 0b10011111001;
13343 let isPredicated = 1;
13344 let hasNewValue = 1;
13345 let opNewValue = 0;
13346 let addrMode = Absolute;
13347 let accessSize = ByteAccess;
13348 let isPredicatedNew = 1;
13349 let mayLoad = 1;
13350 let isExtended = 1;
13351 let BaseOpcode = "L4_loadrub_abs";
13352 let CextOpcode = "L2_loadrub";
13353 let DecoderNamespace = "MustExtend";
13354 let isExtendable = 1;
13355 let opExtendable = 2;
13356 let isExtentSigned = 0;
13357 let opExtentBits = 6;
13358 let opExtentAlign = 0;
13360 def L4_ploadrubtnew_rr : HInst<
13361 (outs IntRegs:$Rd32),
13362 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13363 "if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13364 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13365 let Inst{31-21} = 0b00110010001;
13366 let isPredicated = 1;
13367 let hasNewValue = 1;
13368 let opNewValue = 0;
13369 let addrMode = BaseRegOffset;
13370 let accessSize = ByteAccess;
13371 let isPredicatedNew = 1;
13372 let mayLoad = 1;
13373 let BaseOpcode = "L4_loadrub_rr";
13374 let CextOpcode = "L2_loadrub";
13375 let InputType = "reg";
13377 def L4_ploadruhf_abs : HInst<
13378 (outs IntRegs:$Rd32),
13379 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13380 "if (!$Pt4) $Rd32 = memuh(#$Ii)",
13381 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13382 let Inst{7-5} = 0b100;
13383 let Inst{13-11} = 0b101;
13384 let Inst{31-21} = 0b10011111011;
13385 let isPredicated = 1;
13386 let isPredicatedFalse = 1;
13387 let hasNewValue = 1;
13388 let opNewValue = 0;
13389 let addrMode = Absolute;
13390 let accessSize = HalfWordAccess;
13391 let mayLoad = 1;
13392 let isExtended = 1;
13393 let BaseOpcode = "L4_loadruh_abs";
13394 let CextOpcode = "L2_loadruh";
13395 let DecoderNamespace = "MustExtend";
13396 let isExtendable = 1;
13397 let opExtendable = 2;
13398 let isExtentSigned = 0;
13399 let opExtentBits = 6;
13400 let opExtentAlign = 0;
13402 def L4_ploadruhf_rr : HInst<
13403 (outs IntRegs:$Rd32),
13404 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13405 "if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13406 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13407 let Inst{31-21} = 0b00110001011;
13408 let isPredicated = 1;
13409 let isPredicatedFalse = 1;
13410 let hasNewValue = 1;
13411 let opNewValue = 0;
13412 let addrMode = BaseRegOffset;
13413 let accessSize = HalfWordAccess;
13414 let mayLoad = 1;
13415 let BaseOpcode = "L4_loadruh_rr";
13416 let CextOpcode = "L2_loadruh";
13417 let InputType = "reg";
13419 def L4_ploadruhfnew_abs : HInst<
13420 (outs IntRegs:$Rd32),
13421 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13422 "if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13423 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13424 let Inst{7-5} = 0b100;
13425 let Inst{13-11} = 0b111;
13426 let Inst{31-21} = 0b10011111011;
13427 let isPredicated = 1;
13428 let isPredicatedFalse = 1;
13429 let hasNewValue = 1;
13430 let opNewValue = 0;
13431 let addrMode = Absolute;
13432 let accessSize = HalfWordAccess;
13433 let isPredicatedNew = 1;
13434 let mayLoad = 1;
13435 let isExtended = 1;
13436 let BaseOpcode = "L4_loadruh_abs";
13437 let CextOpcode = "L2_loadruh";
13438 let DecoderNamespace = "MustExtend";
13439 let isExtendable = 1;
13440 let opExtendable = 2;
13441 let isExtentSigned = 0;
13442 let opExtentBits = 6;
13443 let opExtentAlign = 0;
13445 def L4_ploadruhfnew_rr : HInst<
13446 (outs IntRegs:$Rd32),
13447 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13448 "if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13449 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13450 let Inst{31-21} = 0b00110011011;
13451 let isPredicated = 1;
13452 let isPredicatedFalse = 1;
13453 let hasNewValue = 1;
13454 let opNewValue = 0;
13455 let addrMode = BaseRegOffset;
13456 let accessSize = HalfWordAccess;
13457 let isPredicatedNew = 1;
13458 let mayLoad = 1;
13459 let BaseOpcode = "L4_loadruh_rr";
13460 let CextOpcode = "L2_loadruh";
13461 let InputType = "reg";
13463 def L4_ploadruht_abs : HInst<
13464 (outs IntRegs:$Rd32),
13465 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13466 "if ($Pt4) $Rd32 = memuh(#$Ii)",
13467 tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel {
13468 let Inst{7-5} = 0b100;
13469 let Inst{13-11} = 0b100;
13470 let Inst{31-21} = 0b10011111011;
13471 let isPredicated = 1;
13472 let hasNewValue = 1;
13473 let opNewValue = 0;
13474 let addrMode = Absolute;
13475 let accessSize = HalfWordAccess;
13476 let mayLoad = 1;
13477 let isExtended = 1;
13478 let BaseOpcode = "L4_loadruh_abs";
13479 let CextOpcode = "L2_loadruh";
13480 let DecoderNamespace = "MustExtend";
13481 let isExtendable = 1;
13482 let opExtendable = 2;
13483 let isExtentSigned = 0;
13484 let opExtentBits = 6;
13485 let opExtentAlign = 0;
13487 def L4_ploadruht_rr : HInst<
13488 (outs IntRegs:$Rd32),
13489 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13490 "if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13491 tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel {
13492 let Inst{31-21} = 0b00110000011;
13493 let isPredicated = 1;
13494 let hasNewValue = 1;
13495 let opNewValue = 0;
13496 let addrMode = BaseRegOffset;
13497 let accessSize = HalfWordAccess;
13498 let mayLoad = 1;
13499 let BaseOpcode = "L4_loadruh_rr";
13500 let CextOpcode = "L2_loadruh";
13501 let InputType = "reg";
13503 def L4_ploadruhtnew_abs : HInst<
13504 (outs IntRegs:$Rd32),
13505 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13506 "if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13507 tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel {
13508 let Inst{7-5} = 0b100;
13509 let Inst{13-11} = 0b110;
13510 let Inst{31-21} = 0b10011111011;
13511 let isPredicated = 1;
13512 let hasNewValue = 1;
13513 let opNewValue = 0;
13514 let addrMode = Absolute;
13515 let accessSize = HalfWordAccess;
13516 let isPredicatedNew = 1;
13517 let mayLoad = 1;
13518 let isExtended = 1;
13519 let BaseOpcode = "L4_loadruh_abs";
13520 let CextOpcode = "L2_loadruh";
13521 let DecoderNamespace = "MustExtend";
13522 let isExtendable = 1;
13523 let opExtendable = 2;
13524 let isExtentSigned = 0;
13525 let opExtentBits = 6;
13526 let opExtentAlign = 0;
13528 def L4_ploadruhtnew_rr : HInst<
13529 (outs IntRegs:$Rd32),
13530 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13531 "if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13532 tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel {
13533 let Inst{31-21} = 0b00110010011;
13534 let isPredicated = 1;
13535 let hasNewValue = 1;
13536 let opNewValue = 0;
13537 let addrMode = BaseRegOffset;
13538 let accessSize = HalfWordAccess;
13539 let isPredicatedNew = 1;
13540 let mayLoad = 1;
13541 let BaseOpcode = "L4_loadruh_rr";
13542 let CextOpcode = "L2_loadruh";
13543 let InputType = "reg";
13545 def L4_return : HInst<
13546 (outs DoubleRegs:$Rdd32),
13547 (ins IntRegs:$Rs32),
13548 "$Rdd32 = dealloc_return($Rs32):raw",
13549 tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel {
13550 let Inst{13-5} = 0b000000000;
13551 let Inst{31-21} = 0b10010110000;
13552 let isTerminator = 1;
13553 let isIndirectBranch = 1;
13554 let accessSize = DoubleWordAccess;
13555 let mayLoad = 1;
13556 let cofMax1 = 1;
13557 let isRestrictNoSlot1Store = 1;
13558 let isReturn = 1;
13559 let Uses = [FRAMEKEY];
13560 let Defs = [PC, R29];
13561 let BaseOpcode = "L4_return";
13562 let isBarrier = 1;
13563 let isPredicable = 1;
13564 let isTaken = 1;
13566 def L4_return_f : HInst<
13567 (outs DoubleRegs:$Rdd32),
13568 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13569 "if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13570 tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13571 let Inst{7-5} = 0b000;
13572 let Inst{13-10} = 0b1100;
13573 let Inst{31-21} = 0b10010110000;
13574 let isPredicated = 1;
13575 let isPredicatedFalse = 1;
13576 let isTerminator = 1;
13577 let isIndirectBranch = 1;
13578 let accessSize = DoubleWordAccess;
13579 let mayLoad = 1;
13580 let cofMax1 = 1;
13581 let isRestrictNoSlot1Store = 1;
13582 let isReturn = 1;
13583 let Uses = [FRAMEKEY];
13584 let Defs = [PC, R29];
13585 let BaseOpcode = "L4_return";
13586 let isTaken = Inst{12};
13588 def L4_return_fnew_pnt : HInst<
13589 (outs DoubleRegs:$Rdd32),
13590 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13591 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13592 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13593 let Inst{7-5} = 0b000;
13594 let Inst{13-10} = 0b1010;
13595 let Inst{31-21} = 0b10010110000;
13596 let isPredicated = 1;
13597 let isPredicatedFalse = 1;
13598 let isTerminator = 1;
13599 let isIndirectBranch = 1;
13600 let accessSize = DoubleWordAccess;
13601 let isPredicatedNew = 1;
13602 let mayLoad = 1;
13603 let cofMax1 = 1;
13604 let isRestrictNoSlot1Store = 1;
13605 let isReturn = 1;
13606 let Uses = [FRAMEKEY];
13607 let Defs = [PC, R29];
13608 let BaseOpcode = "L4_return";
13609 let isTaken = Inst{12};
13611 def L4_return_fnew_pt : HInst<
13612 (outs DoubleRegs:$Rdd32),
13613 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13614 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13615 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13616 let Inst{7-5} = 0b000;
13617 let Inst{13-10} = 0b1110;
13618 let Inst{31-21} = 0b10010110000;
13619 let isPredicated = 1;
13620 let isPredicatedFalse = 1;
13621 let isTerminator = 1;
13622 let isIndirectBranch = 1;
13623 let accessSize = DoubleWordAccess;
13624 let isPredicatedNew = 1;
13625 let mayLoad = 1;
13626 let cofMax1 = 1;
13627 let isRestrictNoSlot1Store = 1;
13628 let isReturn = 1;
13629 let Uses = [FRAMEKEY];
13630 let Defs = [PC, R29];
13631 let BaseOpcode = "L4_return";
13632 let isTaken = Inst{12};
13634 def L4_return_map_to_raw_f : HInst<
13635 (outs),
13636 (ins PredRegs:$Pv4),
13637 "if (!$Pv4) dealloc_return",
13638 tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> {
13639 let isPseudo = 1;
13640 let isCodeGenOnly = 1;
13642 def L4_return_map_to_raw_fnew_pnt : HInst<
13643 (outs),
13644 (ins PredRegs:$Pv4),
13645 "if (!$Pv4.new) dealloc_return:nt",
13646 tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13647 let isPseudo = 1;
13648 let isCodeGenOnly = 1;
13650 def L4_return_map_to_raw_fnew_pt : HInst<
13651 (outs),
13652 (ins PredRegs:$Pv4),
13653 "if (!$Pv4.new) dealloc_return:t",
13654 tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> {
13655 let isPseudo = 1;
13656 let isCodeGenOnly = 1;
13658 def L4_return_map_to_raw_t : HInst<
13659 (outs),
13660 (ins PredRegs:$Pv4),
13661 "if ($Pv4) dealloc_return",
13662 tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> {
13663 let isPseudo = 1;
13664 let isCodeGenOnly = 1;
13666 def L4_return_map_to_raw_tnew_pnt : HInst<
13667 (outs),
13668 (ins PredRegs:$Pv4),
13669 "if ($Pv4.new) dealloc_return:nt",
13670 tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13671 let isPseudo = 1;
13672 let isCodeGenOnly = 1;
13674 def L4_return_map_to_raw_tnew_pt : HInst<
13675 (outs),
13676 (ins PredRegs:$Pv4),
13677 "if ($Pv4.new) dealloc_return:t",
13678 tc_1981450d, TypeMAPPING>, Requires<[HasV65]> {
13679 let isPseudo = 1;
13680 let isCodeGenOnly = 1;
13682 def L4_return_t : HInst<
13683 (outs DoubleRegs:$Rdd32),
13684 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13685 "if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13686 tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel {
13687 let Inst{7-5} = 0b000;
13688 let Inst{13-10} = 0b0100;
13689 let Inst{31-21} = 0b10010110000;
13690 let isPredicated = 1;
13691 let isTerminator = 1;
13692 let isIndirectBranch = 1;
13693 let accessSize = DoubleWordAccess;
13694 let mayLoad = 1;
13695 let cofMax1 = 1;
13696 let isRestrictNoSlot1Store = 1;
13697 let isReturn = 1;
13698 let Uses = [FRAMEKEY];
13699 let Defs = [PC, R29];
13700 let BaseOpcode = "L4_return";
13701 let isTaken = Inst{12};
13703 def L4_return_tnew_pnt : HInst<
13704 (outs DoubleRegs:$Rdd32),
13705 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13706 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13707 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13708 let Inst{7-5} = 0b000;
13709 let Inst{13-10} = 0b0010;
13710 let Inst{31-21} = 0b10010110000;
13711 let isPredicated = 1;
13712 let isTerminator = 1;
13713 let isIndirectBranch = 1;
13714 let accessSize = DoubleWordAccess;
13715 let isPredicatedNew = 1;
13716 let mayLoad = 1;
13717 let cofMax1 = 1;
13718 let isRestrictNoSlot1Store = 1;
13719 let isReturn = 1;
13720 let Uses = [FRAMEKEY];
13721 let Defs = [PC, R29];
13722 let BaseOpcode = "L4_return";
13723 let isTaken = Inst{12};
13725 def L4_return_tnew_pt : HInst<
13726 (outs DoubleRegs:$Rdd32),
13727 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13728 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13729 tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel {
13730 let Inst{7-5} = 0b000;
13731 let Inst{13-10} = 0b0110;
13732 let Inst{31-21} = 0b10010110000;
13733 let isPredicated = 1;
13734 let isTerminator = 1;
13735 let isIndirectBranch = 1;
13736 let accessSize = DoubleWordAccess;
13737 let isPredicatedNew = 1;
13738 let mayLoad = 1;
13739 let cofMax1 = 1;
13740 let isRestrictNoSlot1Store = 1;
13741 let isReturn = 1;
13742 let Uses = [FRAMEKEY];
13743 let Defs = [PC, R29];
13744 let BaseOpcode = "L4_return";
13745 let isTaken = Inst{12};
13747 def L4_sub_memopb_io : HInst<
13748 (outs),
13749 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13750 "memb($Rs32+#$Ii) -= $Rt32",
13751 tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 {
13752 let Inst{6-5} = 0b01;
13753 let Inst{13-13} = 0b0;
13754 let Inst{31-21} = 0b00111110000;
13755 let addrMode = BaseImmOffset;
13756 let accessSize = ByteAccess;
13757 let mayLoad = 1;
13758 let isRestrictNoSlot1Store = 1;
13759 let mayStore = 1;
13760 let isExtendable = 1;
13761 let opExtendable = 1;
13762 let isExtentSigned = 0;
13763 let opExtentBits = 6;
13764 let opExtentAlign = 0;
13766 def L4_sub_memopb_zomap : HInst<
13767 (outs),
13768 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13769 "memb($Rs32) -= $Rt32",
13770 tc_9bcfb2ee, TypeMAPPING> {
13771 let isPseudo = 1;
13772 let isCodeGenOnly = 1;
13774 def L4_sub_memoph_io : HInst<
13775 (outs),
13776 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13777 "memh($Rs32+#$Ii) -= $Rt32",
13778 tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c {
13779 let Inst{6-5} = 0b01;
13780 let Inst{13-13} = 0b0;
13781 let Inst{31-21} = 0b00111110001;
13782 let addrMode = BaseImmOffset;
13783 let accessSize = HalfWordAccess;
13784 let mayLoad = 1;
13785 let isRestrictNoSlot1Store = 1;
13786 let mayStore = 1;
13787 let isExtendable = 1;
13788 let opExtendable = 1;
13789 let isExtentSigned = 0;
13790 let opExtentBits = 7;
13791 let opExtentAlign = 1;
13793 def L4_sub_memoph_zomap : HInst<
13794 (outs),
13795 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13796 "memh($Rs32) -= $Rt32",
13797 tc_9bcfb2ee, TypeMAPPING> {
13798 let isPseudo = 1;
13799 let isCodeGenOnly = 1;
13801 def L4_sub_memopw_io : HInst<
13802 (outs),
13803 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13804 "memw($Rs32+#$Ii) -= $Rt32",
13805 tc_9bcfb2ee, TypeV4LDST>, Enc_226535 {
13806 let Inst{6-5} = 0b01;
13807 let Inst{13-13} = 0b0;
13808 let Inst{31-21} = 0b00111110010;
13809 let addrMode = BaseImmOffset;
13810 let accessSize = WordAccess;
13811 let mayLoad = 1;
13812 let isRestrictNoSlot1Store = 1;
13813 let mayStore = 1;
13814 let isExtendable = 1;
13815 let opExtendable = 1;
13816 let isExtentSigned = 0;
13817 let opExtentBits = 8;
13818 let opExtentAlign = 2;
13820 def L4_sub_memopw_zomap : HInst<
13821 (outs),
13822 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13823 "memw($Rs32) -= $Rt32",
13824 tc_9bcfb2ee, TypeMAPPING> {
13825 let isPseudo = 1;
13826 let isCodeGenOnly = 1;
13828 def L6_deallocframe_map_to_raw : HInst<
13829 (outs),
13830 (ins),
13831 "deallocframe",
13832 tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> {
13833 let isPseudo = 1;
13834 let isCodeGenOnly = 1;
13836 def L6_memcpy : HInst<
13837 (outs),
13838 (ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13839 "memcpy($Rs32,$Rt32,$Mu2)",
13840 tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13841 let Inst{7-0} = 0b01000000;
13842 let Inst{31-21} = 0b10010010000;
13843 let mayLoad = 1;
13844 let isSolo = 1;
13845 let mayStore = 1;
13847 def L6_return_map_to_raw : HInst<
13848 (outs),
13849 (ins),
13850 "dealloc_return",
13851 tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> {
13852 let isPseudo = 1;
13853 let isCodeGenOnly = 1;
13855 def M2_acci : HInst<
13856 (outs IntRegs:$Rx32),
13857 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13858 "$Rx32 += add($Rs32,$Rt32)",
13859 tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel {
13860 let Inst{7-5} = 0b001;
13861 let Inst{13-13} = 0b0;
13862 let Inst{31-21} = 0b11101111000;
13863 let hasNewValue = 1;
13864 let opNewValue = 0;
13865 let prefersSlot3 = 1;
13866 let CextOpcode = "M2_acci";
13867 let InputType = "reg";
13868 let Constraints = "$Rx32 = $Rx32in";
13870 def M2_accii : HInst<
13871 (outs IntRegs:$Rx32),
13872 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13873 "$Rx32 += add($Rs32,#$Ii)",
13874 tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel {
13875 let Inst{13-13} = 0b0;
13876 let Inst{31-21} = 0b11100010000;
13877 let hasNewValue = 1;
13878 let opNewValue = 0;
13879 let prefersSlot3 = 1;
13880 let CextOpcode = "M2_acci";
13881 let InputType = "imm";
13882 let isExtendable = 1;
13883 let opExtendable = 3;
13884 let isExtentSigned = 1;
13885 let opExtentBits = 8;
13886 let opExtentAlign = 0;
13887 let Constraints = "$Rx32 = $Rx32in";
13889 def M2_cmaci_s0 : HInst<
13890 (outs DoubleRegs:$Rxx32),
13891 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13892 "$Rxx32 += cmpyi($Rs32,$Rt32)",
13893 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13894 let Inst{7-5} = 0b001;
13895 let Inst{13-13} = 0b0;
13896 let Inst{31-21} = 0b11100111000;
13897 let prefersSlot3 = 1;
13898 let Constraints = "$Rxx32 = $Rxx32in";
13900 def M2_cmacr_s0 : HInst<
13901 (outs DoubleRegs:$Rxx32),
13902 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13903 "$Rxx32 += cmpyr($Rs32,$Rt32)",
13904 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13905 let Inst{7-5} = 0b010;
13906 let Inst{13-13} = 0b0;
13907 let Inst{31-21} = 0b11100111000;
13908 let prefersSlot3 = 1;
13909 let Constraints = "$Rxx32 = $Rxx32in";
13911 def M2_cmacs_s0 : HInst<
13912 (outs DoubleRegs:$Rxx32),
13913 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13914 "$Rxx32 += cmpy($Rs32,$Rt32):sat",
13915 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13916 let Inst{7-5} = 0b110;
13917 let Inst{13-13} = 0b0;
13918 let Inst{31-21} = 0b11100111000;
13919 let prefersSlot3 = 1;
13920 let Defs = [USR_OVF];
13921 let Constraints = "$Rxx32 = $Rxx32in";
13923 def M2_cmacs_s1 : HInst<
13924 (outs DoubleRegs:$Rxx32),
13925 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13926 "$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13927 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13928 let Inst{7-5} = 0b110;
13929 let Inst{13-13} = 0b0;
13930 let Inst{31-21} = 0b11100111100;
13931 let prefersSlot3 = 1;
13932 let Defs = [USR_OVF];
13933 let Constraints = "$Rxx32 = $Rxx32in";
13935 def M2_cmacsc_s0 : HInst<
13936 (outs DoubleRegs:$Rxx32),
13937 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13938 "$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13939 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13940 let Inst{7-5} = 0b110;
13941 let Inst{13-13} = 0b0;
13942 let Inst{31-21} = 0b11100111010;
13943 let prefersSlot3 = 1;
13944 let Defs = [USR_OVF];
13945 let Constraints = "$Rxx32 = $Rxx32in";
13947 def M2_cmacsc_s1 : HInst<
13948 (outs DoubleRegs:$Rxx32),
13949 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13950 "$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13951 tc_7f8ae742, TypeM>, Enc_61f0b0 {
13952 let Inst{7-5} = 0b110;
13953 let Inst{13-13} = 0b0;
13954 let Inst{31-21} = 0b11100111110;
13955 let prefersSlot3 = 1;
13956 let Defs = [USR_OVF];
13957 let Constraints = "$Rxx32 = $Rxx32in";
13959 def M2_cmpyi_s0 : HInst<
13960 (outs DoubleRegs:$Rdd32),
13961 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13962 "$Rdd32 = cmpyi($Rs32,$Rt32)",
13963 tc_c21d7447, TypeM>, Enc_be32a5 {
13964 let Inst{7-5} = 0b001;
13965 let Inst{13-13} = 0b0;
13966 let Inst{31-21} = 0b11100101000;
13967 let prefersSlot3 = 1;
13969 def M2_cmpyr_s0 : HInst<
13970 (outs DoubleRegs:$Rdd32),
13971 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13972 "$Rdd32 = cmpyr($Rs32,$Rt32)",
13973 tc_c21d7447, TypeM>, Enc_be32a5 {
13974 let Inst{7-5} = 0b010;
13975 let Inst{13-13} = 0b0;
13976 let Inst{31-21} = 0b11100101000;
13977 let prefersSlot3 = 1;
13979 def M2_cmpyrs_s0 : HInst<
13980 (outs IntRegs:$Rd32),
13981 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13982 "$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13983 tc_c21d7447, TypeM>, Enc_5ab2be {
13984 let Inst{7-5} = 0b110;
13985 let Inst{13-13} = 0b0;
13986 let Inst{31-21} = 0b11101101001;
13987 let hasNewValue = 1;
13988 let opNewValue = 0;
13989 let prefersSlot3 = 1;
13990 let Defs = [USR_OVF];
13992 def M2_cmpyrs_s1 : HInst<
13993 (outs IntRegs:$Rd32),
13994 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13995 "$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13996 tc_c21d7447, TypeM>, Enc_5ab2be {
13997 let Inst{7-5} = 0b110;
13998 let Inst{13-13} = 0b0;
13999 let Inst{31-21} = 0b11101101101;
14000 let hasNewValue = 1;
14001 let opNewValue = 0;
14002 let prefersSlot3 = 1;
14003 let Defs = [USR_OVF];
14005 def M2_cmpyrsc_s0 : HInst<
14006 (outs IntRegs:$Rd32),
14007 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14008 "$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
14009 tc_c21d7447, TypeM>, Enc_5ab2be {
14010 let Inst{7-5} = 0b110;
14011 let Inst{13-13} = 0b0;
14012 let Inst{31-21} = 0b11101101011;
14013 let hasNewValue = 1;
14014 let opNewValue = 0;
14015 let prefersSlot3 = 1;
14016 let Defs = [USR_OVF];
14018 def M2_cmpyrsc_s1 : HInst<
14019 (outs IntRegs:$Rd32),
14020 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14021 "$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
14022 tc_c21d7447, TypeM>, Enc_5ab2be {
14023 let Inst{7-5} = 0b110;
14024 let Inst{13-13} = 0b0;
14025 let Inst{31-21} = 0b11101101111;
14026 let hasNewValue = 1;
14027 let opNewValue = 0;
14028 let prefersSlot3 = 1;
14029 let Defs = [USR_OVF];
14031 def M2_cmpys_s0 : HInst<
14032 (outs DoubleRegs:$Rdd32),
14033 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14034 "$Rdd32 = cmpy($Rs32,$Rt32):sat",
14035 tc_c21d7447, TypeM>, Enc_be32a5 {
14036 let Inst{7-5} = 0b110;
14037 let Inst{13-13} = 0b0;
14038 let Inst{31-21} = 0b11100101000;
14039 let prefersSlot3 = 1;
14040 let Defs = [USR_OVF];
14042 def M2_cmpys_s1 : HInst<
14043 (outs DoubleRegs:$Rdd32),
14044 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14045 "$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
14046 tc_c21d7447, TypeM>, Enc_be32a5 {
14047 let Inst{7-5} = 0b110;
14048 let Inst{13-13} = 0b0;
14049 let Inst{31-21} = 0b11100101100;
14050 let prefersSlot3 = 1;
14051 let Defs = [USR_OVF];
14053 def M2_cmpysc_s0 : HInst<
14054 (outs DoubleRegs:$Rdd32),
14055 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14056 "$Rdd32 = cmpy($Rs32,$Rt32*):sat",
14057 tc_c21d7447, TypeM>, Enc_be32a5 {
14058 let Inst{7-5} = 0b110;
14059 let Inst{13-13} = 0b0;
14060 let Inst{31-21} = 0b11100101010;
14061 let prefersSlot3 = 1;
14062 let Defs = [USR_OVF];
14064 def M2_cmpysc_s1 : HInst<
14065 (outs DoubleRegs:$Rdd32),
14066 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14067 "$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
14068 tc_c21d7447, TypeM>, Enc_be32a5 {
14069 let Inst{7-5} = 0b110;
14070 let Inst{13-13} = 0b0;
14071 let Inst{31-21} = 0b11100101110;
14072 let prefersSlot3 = 1;
14073 let Defs = [USR_OVF];
14075 def M2_cnacs_s0 : HInst<
14076 (outs DoubleRegs:$Rxx32),
14077 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14078 "$Rxx32 -= cmpy($Rs32,$Rt32):sat",
14079 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14080 let Inst{7-5} = 0b111;
14081 let Inst{13-13} = 0b0;
14082 let Inst{31-21} = 0b11100111000;
14083 let prefersSlot3 = 1;
14084 let Defs = [USR_OVF];
14085 let Constraints = "$Rxx32 = $Rxx32in";
14087 def M2_cnacs_s1 : HInst<
14088 (outs DoubleRegs:$Rxx32),
14089 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14090 "$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
14091 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14092 let Inst{7-5} = 0b111;
14093 let Inst{13-13} = 0b0;
14094 let Inst{31-21} = 0b11100111100;
14095 let prefersSlot3 = 1;
14096 let Defs = [USR_OVF];
14097 let Constraints = "$Rxx32 = $Rxx32in";
14099 def M2_cnacsc_s0 : HInst<
14100 (outs DoubleRegs:$Rxx32),
14101 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14102 "$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
14103 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14104 let Inst{7-5} = 0b111;
14105 let Inst{13-13} = 0b0;
14106 let Inst{31-21} = 0b11100111010;
14107 let prefersSlot3 = 1;
14108 let Defs = [USR_OVF];
14109 let Constraints = "$Rxx32 = $Rxx32in";
14111 def M2_cnacsc_s1 : HInst<
14112 (outs DoubleRegs:$Rxx32),
14113 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14114 "$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
14115 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14116 let Inst{7-5} = 0b111;
14117 let Inst{13-13} = 0b0;
14118 let Inst{31-21} = 0b11100111110;
14119 let prefersSlot3 = 1;
14120 let Defs = [USR_OVF];
14121 let Constraints = "$Rxx32 = $Rxx32in";
14123 def M2_dpmpyss_acc_s0 : HInst<
14124 (outs DoubleRegs:$Rxx32),
14125 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14126 "$Rxx32 += mpy($Rs32,$Rt32)",
14127 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14128 let Inst{7-5} = 0b000;
14129 let Inst{13-13} = 0b0;
14130 let Inst{31-21} = 0b11100111000;
14131 let prefersSlot3 = 1;
14132 let Constraints = "$Rxx32 = $Rxx32in";
14134 def M2_dpmpyss_nac_s0 : HInst<
14135 (outs DoubleRegs:$Rxx32),
14136 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14137 "$Rxx32 -= mpy($Rs32,$Rt32)",
14138 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14139 let Inst{7-5} = 0b000;
14140 let Inst{13-13} = 0b0;
14141 let Inst{31-21} = 0b11100111001;
14142 let prefersSlot3 = 1;
14143 let Constraints = "$Rxx32 = $Rxx32in";
14145 def M2_dpmpyss_rnd_s0 : HInst<
14146 (outs IntRegs:$Rd32),
14147 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14148 "$Rd32 = mpy($Rs32,$Rt32):rnd",
14149 tc_c21d7447, TypeM>, Enc_5ab2be {
14150 let Inst{7-5} = 0b001;
14151 let Inst{13-13} = 0b0;
14152 let Inst{31-21} = 0b11101101001;
14153 let hasNewValue = 1;
14154 let opNewValue = 0;
14155 let prefersSlot3 = 1;
14157 def M2_dpmpyss_s0 : HInst<
14158 (outs DoubleRegs:$Rdd32),
14159 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14160 "$Rdd32 = mpy($Rs32,$Rt32)",
14161 tc_c21d7447, TypeM>, Enc_be32a5 {
14162 let Inst{7-5} = 0b000;
14163 let Inst{13-13} = 0b0;
14164 let Inst{31-21} = 0b11100101000;
14165 let prefersSlot3 = 1;
14167 def M2_dpmpyuu_acc_s0 : HInst<
14168 (outs DoubleRegs:$Rxx32),
14169 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14170 "$Rxx32 += mpyu($Rs32,$Rt32)",
14171 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14172 let Inst{7-5} = 0b000;
14173 let Inst{13-13} = 0b0;
14174 let Inst{31-21} = 0b11100111010;
14175 let prefersSlot3 = 1;
14176 let Constraints = "$Rxx32 = $Rxx32in";
14178 def M2_dpmpyuu_nac_s0 : HInst<
14179 (outs DoubleRegs:$Rxx32),
14180 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14181 "$Rxx32 -= mpyu($Rs32,$Rt32)",
14182 tc_7f8ae742, TypeM>, Enc_61f0b0 {
14183 let Inst{7-5} = 0b000;
14184 let Inst{13-13} = 0b0;
14185 let Inst{31-21} = 0b11100111011;
14186 let prefersSlot3 = 1;
14187 let Constraints = "$Rxx32 = $Rxx32in";
14189 def M2_dpmpyuu_s0 : HInst<
14190 (outs DoubleRegs:$Rdd32),
14191 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14192 "$Rdd32 = mpyu($Rs32,$Rt32)",
14193 tc_c21d7447, TypeM>, Enc_be32a5 {
14194 let Inst{7-5} = 0b000;
14195 let Inst{13-13} = 0b0;
14196 let Inst{31-21} = 0b11100101010;
14197 let prefersSlot3 = 1;
14199 def M2_hmmpyh_rs1 : HInst<
14200 (outs IntRegs:$Rd32),
14201 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14202 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14203 tc_c21d7447, TypeM>, Enc_5ab2be {
14204 let Inst{7-5} = 0b100;
14205 let Inst{13-13} = 0b0;
14206 let Inst{31-21} = 0b11101101101;
14207 let hasNewValue = 1;
14208 let opNewValue = 0;
14209 let prefersSlot3 = 1;
14210 let Defs = [USR_OVF];
14212 def M2_hmmpyh_s1 : HInst<
14213 (outs IntRegs:$Rd32),
14214 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14215 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14216 tc_c21d7447, TypeM>, Enc_5ab2be {
14217 let Inst{7-5} = 0b000;
14218 let Inst{13-13} = 0b0;
14219 let Inst{31-21} = 0b11101101101;
14220 let hasNewValue = 1;
14221 let opNewValue = 0;
14222 let prefersSlot3 = 1;
14223 let Defs = [USR_OVF];
14225 def M2_hmmpyl_rs1 : HInst<
14226 (outs IntRegs:$Rd32),
14227 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14228 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14229 tc_c21d7447, TypeM>, Enc_5ab2be {
14230 let Inst{7-5} = 0b100;
14231 let Inst{13-13} = 0b0;
14232 let Inst{31-21} = 0b11101101111;
14233 let hasNewValue = 1;
14234 let opNewValue = 0;
14235 let prefersSlot3 = 1;
14236 let Defs = [USR_OVF];
14238 def M2_hmmpyl_s1 : HInst<
14239 (outs IntRegs:$Rd32),
14240 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14241 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14242 tc_c21d7447, TypeM>, Enc_5ab2be {
14243 let Inst{7-5} = 0b001;
14244 let Inst{13-13} = 0b0;
14245 let Inst{31-21} = 0b11101101101;
14246 let hasNewValue = 1;
14247 let opNewValue = 0;
14248 let prefersSlot3 = 1;
14249 let Defs = [USR_OVF];
14251 def M2_maci : HInst<
14252 (outs IntRegs:$Rx32),
14253 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14254 "$Rx32 += mpyi($Rs32,$Rt32)",
14255 tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel {
14256 let Inst{7-5} = 0b000;
14257 let Inst{13-13} = 0b0;
14258 let Inst{31-21} = 0b11101111000;
14259 let hasNewValue = 1;
14260 let opNewValue = 0;
14261 let prefersSlot3 = 1;
14262 let CextOpcode = "M2_maci";
14263 let InputType = "reg";
14264 let Constraints = "$Rx32 = $Rx32in";
14266 def M2_macsin : HInst<
14267 (outs IntRegs:$Rx32),
14268 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14269 "$Rx32 -= mpyi($Rs32,#$Ii)",
14270 tc_a154b476, TypeM>, Enc_c90aca {
14271 let Inst{13-13} = 0b0;
14272 let Inst{31-21} = 0b11100001100;
14273 let hasNewValue = 1;
14274 let opNewValue = 0;
14275 let prefersSlot3 = 1;
14276 let InputType = "imm";
14277 let isExtendable = 1;
14278 let opExtendable = 3;
14279 let isExtentSigned = 0;
14280 let opExtentBits = 8;
14281 let opExtentAlign = 0;
14282 let Constraints = "$Rx32 = $Rx32in";
14284 def M2_macsip : HInst<
14285 (outs IntRegs:$Rx32),
14286 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14287 "$Rx32 += mpyi($Rs32,#$Ii)",
14288 tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel {
14289 let Inst{13-13} = 0b0;
14290 let Inst{31-21} = 0b11100001000;
14291 let hasNewValue = 1;
14292 let opNewValue = 0;
14293 let prefersSlot3 = 1;
14294 let CextOpcode = "M2_maci";
14295 let InputType = "imm";
14296 let isExtendable = 1;
14297 let opExtendable = 3;
14298 let isExtentSigned = 0;
14299 let opExtentBits = 8;
14300 let opExtentAlign = 0;
14301 let Constraints = "$Rx32 = $Rx32in";
14303 def M2_mmachs_rs0 : HInst<
14304 (outs DoubleRegs:$Rxx32),
14305 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14306 "$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14307 tc_7f8ae742, TypeM>, Enc_88c16c {
14308 let Inst{7-5} = 0b111;
14309 let Inst{13-13} = 0b0;
14310 let Inst{31-21} = 0b11101010001;
14311 let prefersSlot3 = 1;
14312 let Defs = [USR_OVF];
14313 let Constraints = "$Rxx32 = $Rxx32in";
14315 def M2_mmachs_rs1 : HInst<
14316 (outs DoubleRegs:$Rxx32),
14317 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14318 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14319 tc_7f8ae742, TypeM>, Enc_88c16c {
14320 let Inst{7-5} = 0b111;
14321 let Inst{13-13} = 0b0;
14322 let Inst{31-21} = 0b11101010101;
14323 let prefersSlot3 = 1;
14324 let Defs = [USR_OVF];
14325 let Constraints = "$Rxx32 = $Rxx32in";
14327 def M2_mmachs_s0 : HInst<
14328 (outs DoubleRegs:$Rxx32),
14329 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14330 "$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14331 tc_7f8ae742, TypeM>, Enc_88c16c {
14332 let Inst{7-5} = 0b111;
14333 let Inst{13-13} = 0b0;
14334 let Inst{31-21} = 0b11101010000;
14335 let prefersSlot3 = 1;
14336 let Defs = [USR_OVF];
14337 let Constraints = "$Rxx32 = $Rxx32in";
14339 def M2_mmachs_s1 : HInst<
14340 (outs DoubleRegs:$Rxx32),
14341 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14342 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14343 tc_7f8ae742, TypeM>, Enc_88c16c {
14344 let Inst{7-5} = 0b111;
14345 let Inst{13-13} = 0b0;
14346 let Inst{31-21} = 0b11101010100;
14347 let prefersSlot3 = 1;
14348 let Defs = [USR_OVF];
14349 let Constraints = "$Rxx32 = $Rxx32in";
14351 def M2_mmacls_rs0 : HInst<
14352 (outs DoubleRegs:$Rxx32),
14353 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14354 "$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14355 tc_7f8ae742, TypeM>, Enc_88c16c {
14356 let Inst{7-5} = 0b101;
14357 let Inst{13-13} = 0b0;
14358 let Inst{31-21} = 0b11101010001;
14359 let prefersSlot3 = 1;
14360 let Defs = [USR_OVF];
14361 let Constraints = "$Rxx32 = $Rxx32in";
14363 def M2_mmacls_rs1 : HInst<
14364 (outs DoubleRegs:$Rxx32),
14365 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14366 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14367 tc_7f8ae742, TypeM>, Enc_88c16c {
14368 let Inst{7-5} = 0b101;
14369 let Inst{13-13} = 0b0;
14370 let Inst{31-21} = 0b11101010101;
14371 let prefersSlot3 = 1;
14372 let Defs = [USR_OVF];
14373 let Constraints = "$Rxx32 = $Rxx32in";
14375 def M2_mmacls_s0 : HInst<
14376 (outs DoubleRegs:$Rxx32),
14377 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14378 "$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14379 tc_7f8ae742, TypeM>, Enc_88c16c {
14380 let Inst{7-5} = 0b101;
14381 let Inst{13-13} = 0b0;
14382 let Inst{31-21} = 0b11101010000;
14383 let prefersSlot3 = 1;
14384 let Defs = [USR_OVF];
14385 let Constraints = "$Rxx32 = $Rxx32in";
14387 def M2_mmacls_s1 : HInst<
14388 (outs DoubleRegs:$Rxx32),
14389 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14390 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14391 tc_7f8ae742, TypeM>, Enc_88c16c {
14392 let Inst{7-5} = 0b101;
14393 let Inst{13-13} = 0b0;
14394 let Inst{31-21} = 0b11101010100;
14395 let prefersSlot3 = 1;
14396 let Defs = [USR_OVF];
14397 let Constraints = "$Rxx32 = $Rxx32in";
14399 def M2_mmacuhs_rs0 : HInst<
14400 (outs DoubleRegs:$Rxx32),
14401 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14402 "$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14403 tc_7f8ae742, TypeM>, Enc_88c16c {
14404 let Inst{7-5} = 0b111;
14405 let Inst{13-13} = 0b0;
14406 let Inst{31-21} = 0b11101010011;
14407 let prefersSlot3 = 1;
14408 let Defs = [USR_OVF];
14409 let Constraints = "$Rxx32 = $Rxx32in";
14411 def M2_mmacuhs_rs1 : HInst<
14412 (outs DoubleRegs:$Rxx32),
14413 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14414 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14415 tc_7f8ae742, TypeM>, Enc_88c16c {
14416 let Inst{7-5} = 0b111;
14417 let Inst{13-13} = 0b0;
14418 let Inst{31-21} = 0b11101010111;
14419 let prefersSlot3 = 1;
14420 let Defs = [USR_OVF];
14421 let Constraints = "$Rxx32 = $Rxx32in";
14423 def M2_mmacuhs_s0 : HInst<
14424 (outs DoubleRegs:$Rxx32),
14425 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14426 "$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14427 tc_7f8ae742, TypeM>, Enc_88c16c {
14428 let Inst{7-5} = 0b111;
14429 let Inst{13-13} = 0b0;
14430 let Inst{31-21} = 0b11101010010;
14431 let prefersSlot3 = 1;
14432 let Defs = [USR_OVF];
14433 let Constraints = "$Rxx32 = $Rxx32in";
14435 def M2_mmacuhs_s1 : HInst<
14436 (outs DoubleRegs:$Rxx32),
14437 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14438 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14439 tc_7f8ae742, TypeM>, Enc_88c16c {
14440 let Inst{7-5} = 0b111;
14441 let Inst{13-13} = 0b0;
14442 let Inst{31-21} = 0b11101010110;
14443 let prefersSlot3 = 1;
14444 let Defs = [USR_OVF];
14445 let Constraints = "$Rxx32 = $Rxx32in";
14447 def M2_mmaculs_rs0 : HInst<
14448 (outs DoubleRegs:$Rxx32),
14449 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14450 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14451 tc_7f8ae742, TypeM>, Enc_88c16c {
14452 let Inst{7-5} = 0b101;
14453 let Inst{13-13} = 0b0;
14454 let Inst{31-21} = 0b11101010011;
14455 let prefersSlot3 = 1;
14456 let Defs = [USR_OVF];
14457 let Constraints = "$Rxx32 = $Rxx32in";
14459 def M2_mmaculs_rs1 : HInst<
14460 (outs DoubleRegs:$Rxx32),
14461 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14462 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14463 tc_7f8ae742, TypeM>, Enc_88c16c {
14464 let Inst{7-5} = 0b101;
14465 let Inst{13-13} = 0b0;
14466 let Inst{31-21} = 0b11101010111;
14467 let prefersSlot3 = 1;
14468 let Defs = [USR_OVF];
14469 let Constraints = "$Rxx32 = $Rxx32in";
14471 def M2_mmaculs_s0 : HInst<
14472 (outs DoubleRegs:$Rxx32),
14473 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14474 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14475 tc_7f8ae742, TypeM>, Enc_88c16c {
14476 let Inst{7-5} = 0b101;
14477 let Inst{13-13} = 0b0;
14478 let Inst{31-21} = 0b11101010010;
14479 let prefersSlot3 = 1;
14480 let Defs = [USR_OVF];
14481 let Constraints = "$Rxx32 = $Rxx32in";
14483 def M2_mmaculs_s1 : HInst<
14484 (outs DoubleRegs:$Rxx32),
14485 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14486 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14487 tc_7f8ae742, TypeM>, Enc_88c16c {
14488 let Inst{7-5} = 0b101;
14489 let Inst{13-13} = 0b0;
14490 let Inst{31-21} = 0b11101010110;
14491 let prefersSlot3 = 1;
14492 let Defs = [USR_OVF];
14493 let Constraints = "$Rxx32 = $Rxx32in";
14495 def M2_mmpyh_rs0 : HInst<
14496 (outs DoubleRegs:$Rdd32),
14497 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14498 "$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14499 tc_c21d7447, TypeM>, Enc_a56825 {
14500 let Inst{7-5} = 0b111;
14501 let Inst{13-13} = 0b0;
14502 let Inst{31-21} = 0b11101000001;
14503 let prefersSlot3 = 1;
14504 let Defs = [USR_OVF];
14506 def M2_mmpyh_rs1 : HInst<
14507 (outs DoubleRegs:$Rdd32),
14508 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14509 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14510 tc_c21d7447, TypeM>, Enc_a56825 {
14511 let Inst{7-5} = 0b111;
14512 let Inst{13-13} = 0b0;
14513 let Inst{31-21} = 0b11101000101;
14514 let prefersSlot3 = 1;
14515 let Defs = [USR_OVF];
14517 def M2_mmpyh_s0 : HInst<
14518 (outs DoubleRegs:$Rdd32),
14519 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14520 "$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14521 tc_c21d7447, TypeM>, Enc_a56825 {
14522 let Inst{7-5} = 0b111;
14523 let Inst{13-13} = 0b0;
14524 let Inst{31-21} = 0b11101000000;
14525 let prefersSlot3 = 1;
14526 let Defs = [USR_OVF];
14528 def M2_mmpyh_s1 : HInst<
14529 (outs DoubleRegs:$Rdd32),
14530 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14531 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14532 tc_c21d7447, TypeM>, Enc_a56825 {
14533 let Inst{7-5} = 0b111;
14534 let Inst{13-13} = 0b0;
14535 let Inst{31-21} = 0b11101000100;
14536 let prefersSlot3 = 1;
14537 let Defs = [USR_OVF];
14539 def M2_mmpyl_rs0 : HInst<
14540 (outs DoubleRegs:$Rdd32),
14541 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14542 "$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14543 tc_c21d7447, TypeM>, Enc_a56825 {
14544 let Inst{7-5} = 0b101;
14545 let Inst{13-13} = 0b0;
14546 let Inst{31-21} = 0b11101000001;
14547 let prefersSlot3 = 1;
14548 let Defs = [USR_OVF];
14550 def M2_mmpyl_rs1 : HInst<
14551 (outs DoubleRegs:$Rdd32),
14552 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14553 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14554 tc_c21d7447, TypeM>, Enc_a56825 {
14555 let Inst{7-5} = 0b101;
14556 let Inst{13-13} = 0b0;
14557 let Inst{31-21} = 0b11101000101;
14558 let prefersSlot3 = 1;
14559 let Defs = [USR_OVF];
14561 def M2_mmpyl_s0 : HInst<
14562 (outs DoubleRegs:$Rdd32),
14563 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14564 "$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14565 tc_c21d7447, TypeM>, Enc_a56825 {
14566 let Inst{7-5} = 0b101;
14567 let Inst{13-13} = 0b0;
14568 let Inst{31-21} = 0b11101000000;
14569 let prefersSlot3 = 1;
14570 let Defs = [USR_OVF];
14572 def M2_mmpyl_s1 : HInst<
14573 (outs DoubleRegs:$Rdd32),
14574 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14575 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14576 tc_c21d7447, TypeM>, Enc_a56825 {
14577 let Inst{7-5} = 0b101;
14578 let Inst{13-13} = 0b0;
14579 let Inst{31-21} = 0b11101000100;
14580 let prefersSlot3 = 1;
14581 let Defs = [USR_OVF];
14583 def M2_mmpyuh_rs0 : HInst<
14584 (outs DoubleRegs:$Rdd32),
14585 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14586 "$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14587 tc_c21d7447, TypeM>, Enc_a56825 {
14588 let Inst{7-5} = 0b111;
14589 let Inst{13-13} = 0b0;
14590 let Inst{31-21} = 0b11101000011;
14591 let prefersSlot3 = 1;
14592 let Defs = [USR_OVF];
14594 def M2_mmpyuh_rs1 : HInst<
14595 (outs DoubleRegs:$Rdd32),
14596 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14597 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14598 tc_c21d7447, TypeM>, Enc_a56825 {
14599 let Inst{7-5} = 0b111;
14600 let Inst{13-13} = 0b0;
14601 let Inst{31-21} = 0b11101000111;
14602 let prefersSlot3 = 1;
14603 let Defs = [USR_OVF];
14605 def M2_mmpyuh_s0 : HInst<
14606 (outs DoubleRegs:$Rdd32),
14607 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14608 "$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14609 tc_c21d7447, TypeM>, Enc_a56825 {
14610 let Inst{7-5} = 0b111;
14611 let Inst{13-13} = 0b0;
14612 let Inst{31-21} = 0b11101000010;
14613 let prefersSlot3 = 1;
14614 let Defs = [USR_OVF];
14616 def M2_mmpyuh_s1 : HInst<
14617 (outs DoubleRegs:$Rdd32),
14618 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14619 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14620 tc_c21d7447, TypeM>, Enc_a56825 {
14621 let Inst{7-5} = 0b111;
14622 let Inst{13-13} = 0b0;
14623 let Inst{31-21} = 0b11101000110;
14624 let prefersSlot3 = 1;
14625 let Defs = [USR_OVF];
14627 def M2_mmpyul_rs0 : HInst<
14628 (outs DoubleRegs:$Rdd32),
14629 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14630 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14631 tc_c21d7447, TypeM>, Enc_a56825 {
14632 let Inst{7-5} = 0b101;
14633 let Inst{13-13} = 0b0;
14634 let Inst{31-21} = 0b11101000011;
14635 let prefersSlot3 = 1;
14636 let Defs = [USR_OVF];
14638 def M2_mmpyul_rs1 : HInst<
14639 (outs DoubleRegs:$Rdd32),
14640 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14641 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14642 tc_c21d7447, TypeM>, Enc_a56825 {
14643 let Inst{7-5} = 0b101;
14644 let Inst{13-13} = 0b0;
14645 let Inst{31-21} = 0b11101000111;
14646 let prefersSlot3 = 1;
14647 let Defs = [USR_OVF];
14649 def M2_mmpyul_s0 : HInst<
14650 (outs DoubleRegs:$Rdd32),
14651 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14652 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14653 tc_c21d7447, TypeM>, Enc_a56825 {
14654 let Inst{7-5} = 0b101;
14655 let Inst{13-13} = 0b0;
14656 let Inst{31-21} = 0b11101000010;
14657 let prefersSlot3 = 1;
14658 let Defs = [USR_OVF];
14660 def M2_mmpyul_s1 : HInst<
14661 (outs DoubleRegs:$Rdd32),
14662 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14663 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14664 tc_c21d7447, TypeM>, Enc_a56825 {
14665 let Inst{7-5} = 0b101;
14666 let Inst{13-13} = 0b0;
14667 let Inst{31-21} = 0b11101000110;
14668 let prefersSlot3 = 1;
14669 let Defs = [USR_OVF];
14671 def M2_mnaci : HInst<
14672 (outs IntRegs:$Rx32),
14673 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14674 "$Rx32 -= mpyi($Rs32,$Rt32)",
14675 tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14676 let Inst{7-5} = 0b000;
14677 let Inst{13-13} = 0b0;
14678 let Inst{31-21} = 0b11101111100;
14679 let hasNewValue = 1;
14680 let opNewValue = 0;
14681 let prefersSlot3 = 1;
14682 let Constraints = "$Rx32 = $Rx32in";
14684 def M2_mpy_acc_hh_s0 : HInst<
14685 (outs IntRegs:$Rx32),
14686 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14687 "$Rx32 += mpy($Rs32.h,$Rt32.h)",
14688 tc_7f8ae742, TypeM>, Enc_2ae154 {
14689 let Inst{7-5} = 0b011;
14690 let Inst{13-13} = 0b0;
14691 let Inst{31-21} = 0b11101110000;
14692 let hasNewValue = 1;
14693 let opNewValue = 0;
14694 let prefersSlot3 = 1;
14695 let Constraints = "$Rx32 = $Rx32in";
14697 def M2_mpy_acc_hh_s1 : HInst<
14698 (outs IntRegs:$Rx32),
14699 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14700 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14701 tc_7f8ae742, TypeM>, Enc_2ae154 {
14702 let Inst{7-5} = 0b011;
14703 let Inst{13-13} = 0b0;
14704 let Inst{31-21} = 0b11101110100;
14705 let hasNewValue = 1;
14706 let opNewValue = 0;
14707 let prefersSlot3 = 1;
14708 let Constraints = "$Rx32 = $Rx32in";
14710 def M2_mpy_acc_hl_s0 : HInst<
14711 (outs IntRegs:$Rx32),
14712 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14713 "$Rx32 += mpy($Rs32.h,$Rt32.l)",
14714 tc_7f8ae742, TypeM>, Enc_2ae154 {
14715 let Inst{7-5} = 0b010;
14716 let Inst{13-13} = 0b0;
14717 let Inst{31-21} = 0b11101110000;
14718 let hasNewValue = 1;
14719 let opNewValue = 0;
14720 let prefersSlot3 = 1;
14721 let Constraints = "$Rx32 = $Rx32in";
14723 def M2_mpy_acc_hl_s1 : HInst<
14724 (outs IntRegs:$Rx32),
14725 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14726 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14727 tc_7f8ae742, TypeM>, Enc_2ae154 {
14728 let Inst{7-5} = 0b010;
14729 let Inst{13-13} = 0b0;
14730 let Inst{31-21} = 0b11101110100;
14731 let hasNewValue = 1;
14732 let opNewValue = 0;
14733 let prefersSlot3 = 1;
14734 let Constraints = "$Rx32 = $Rx32in";
14736 def M2_mpy_acc_lh_s0 : HInst<
14737 (outs IntRegs:$Rx32),
14738 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14739 "$Rx32 += mpy($Rs32.l,$Rt32.h)",
14740 tc_7f8ae742, TypeM>, Enc_2ae154 {
14741 let Inst{7-5} = 0b001;
14742 let Inst{13-13} = 0b0;
14743 let Inst{31-21} = 0b11101110000;
14744 let hasNewValue = 1;
14745 let opNewValue = 0;
14746 let prefersSlot3 = 1;
14747 let Constraints = "$Rx32 = $Rx32in";
14749 def M2_mpy_acc_lh_s1 : HInst<
14750 (outs IntRegs:$Rx32),
14751 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14752 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14753 tc_7f8ae742, TypeM>, Enc_2ae154 {
14754 let Inst{7-5} = 0b001;
14755 let Inst{13-13} = 0b0;
14756 let Inst{31-21} = 0b11101110100;
14757 let hasNewValue = 1;
14758 let opNewValue = 0;
14759 let prefersSlot3 = 1;
14760 let Constraints = "$Rx32 = $Rx32in";
14762 def M2_mpy_acc_ll_s0 : HInst<
14763 (outs IntRegs:$Rx32),
14764 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14765 "$Rx32 += mpy($Rs32.l,$Rt32.l)",
14766 tc_7f8ae742, TypeM>, Enc_2ae154 {
14767 let Inst{7-5} = 0b000;
14768 let Inst{13-13} = 0b0;
14769 let Inst{31-21} = 0b11101110000;
14770 let hasNewValue = 1;
14771 let opNewValue = 0;
14772 let prefersSlot3 = 1;
14773 let Constraints = "$Rx32 = $Rx32in";
14775 def M2_mpy_acc_ll_s1 : HInst<
14776 (outs IntRegs:$Rx32),
14777 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14778 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14779 tc_7f8ae742, TypeM>, Enc_2ae154 {
14780 let Inst{7-5} = 0b000;
14781 let Inst{13-13} = 0b0;
14782 let Inst{31-21} = 0b11101110100;
14783 let hasNewValue = 1;
14784 let opNewValue = 0;
14785 let prefersSlot3 = 1;
14786 let Constraints = "$Rx32 = $Rx32in";
14788 def M2_mpy_acc_sat_hh_s0 : HInst<
14789 (outs IntRegs:$Rx32),
14790 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14791 "$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14792 tc_7f8ae742, TypeM>, Enc_2ae154 {
14793 let Inst{7-5} = 0b111;
14794 let Inst{13-13} = 0b0;
14795 let Inst{31-21} = 0b11101110000;
14796 let hasNewValue = 1;
14797 let opNewValue = 0;
14798 let prefersSlot3 = 1;
14799 let Defs = [USR_OVF];
14800 let Constraints = "$Rx32 = $Rx32in";
14802 def M2_mpy_acc_sat_hh_s1 : HInst<
14803 (outs IntRegs:$Rx32),
14804 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14805 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14806 tc_7f8ae742, TypeM>, Enc_2ae154 {
14807 let Inst{7-5} = 0b111;
14808 let Inst{13-13} = 0b0;
14809 let Inst{31-21} = 0b11101110100;
14810 let hasNewValue = 1;
14811 let opNewValue = 0;
14812 let prefersSlot3 = 1;
14813 let Defs = [USR_OVF];
14814 let Constraints = "$Rx32 = $Rx32in";
14816 def M2_mpy_acc_sat_hl_s0 : HInst<
14817 (outs IntRegs:$Rx32),
14818 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14819 "$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14820 tc_7f8ae742, TypeM>, Enc_2ae154 {
14821 let Inst{7-5} = 0b110;
14822 let Inst{13-13} = 0b0;
14823 let Inst{31-21} = 0b11101110000;
14824 let hasNewValue = 1;
14825 let opNewValue = 0;
14826 let prefersSlot3 = 1;
14827 let Defs = [USR_OVF];
14828 let Constraints = "$Rx32 = $Rx32in";
14830 def M2_mpy_acc_sat_hl_s1 : HInst<
14831 (outs IntRegs:$Rx32),
14832 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14833 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14834 tc_7f8ae742, TypeM>, Enc_2ae154 {
14835 let Inst{7-5} = 0b110;
14836 let Inst{13-13} = 0b0;
14837 let Inst{31-21} = 0b11101110100;
14838 let hasNewValue = 1;
14839 let opNewValue = 0;
14840 let prefersSlot3 = 1;
14841 let Defs = [USR_OVF];
14842 let Constraints = "$Rx32 = $Rx32in";
14844 def M2_mpy_acc_sat_lh_s0 : HInst<
14845 (outs IntRegs:$Rx32),
14846 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14847 "$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14848 tc_7f8ae742, TypeM>, Enc_2ae154 {
14849 let Inst{7-5} = 0b101;
14850 let Inst{13-13} = 0b0;
14851 let Inst{31-21} = 0b11101110000;
14852 let hasNewValue = 1;
14853 let opNewValue = 0;
14854 let prefersSlot3 = 1;
14855 let Defs = [USR_OVF];
14856 let Constraints = "$Rx32 = $Rx32in";
14858 def M2_mpy_acc_sat_lh_s1 : HInst<
14859 (outs IntRegs:$Rx32),
14860 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14861 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14862 tc_7f8ae742, TypeM>, Enc_2ae154 {
14863 let Inst{7-5} = 0b101;
14864 let Inst{13-13} = 0b0;
14865 let Inst{31-21} = 0b11101110100;
14866 let hasNewValue = 1;
14867 let opNewValue = 0;
14868 let prefersSlot3 = 1;
14869 let Defs = [USR_OVF];
14870 let Constraints = "$Rx32 = $Rx32in";
14872 def M2_mpy_acc_sat_ll_s0 : HInst<
14873 (outs IntRegs:$Rx32),
14874 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14875 "$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14876 tc_7f8ae742, TypeM>, Enc_2ae154 {
14877 let Inst{7-5} = 0b100;
14878 let Inst{13-13} = 0b0;
14879 let Inst{31-21} = 0b11101110000;
14880 let hasNewValue = 1;
14881 let opNewValue = 0;
14882 let prefersSlot3 = 1;
14883 let Defs = [USR_OVF];
14884 let Constraints = "$Rx32 = $Rx32in";
14886 def M2_mpy_acc_sat_ll_s1 : HInst<
14887 (outs IntRegs:$Rx32),
14888 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14889 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14890 tc_7f8ae742, TypeM>, Enc_2ae154 {
14891 let Inst{7-5} = 0b100;
14892 let Inst{13-13} = 0b0;
14893 let Inst{31-21} = 0b11101110100;
14894 let hasNewValue = 1;
14895 let opNewValue = 0;
14896 let prefersSlot3 = 1;
14897 let Defs = [USR_OVF];
14898 let Constraints = "$Rx32 = $Rx32in";
14900 def M2_mpy_hh_s0 : HInst<
14901 (outs IntRegs:$Rd32),
14902 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14903 "$Rd32 = mpy($Rs32.h,$Rt32.h)",
14904 tc_c21d7447, TypeM>, Enc_5ab2be {
14905 let Inst{7-5} = 0b011;
14906 let Inst{13-13} = 0b0;
14907 let Inst{31-21} = 0b11101100000;
14908 let hasNewValue = 1;
14909 let opNewValue = 0;
14910 let prefersSlot3 = 1;
14912 def M2_mpy_hh_s1 : HInst<
14913 (outs IntRegs:$Rd32),
14914 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14915 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14916 tc_c21d7447, TypeM>, Enc_5ab2be {
14917 let Inst{7-5} = 0b011;
14918 let Inst{13-13} = 0b0;
14919 let Inst{31-21} = 0b11101100100;
14920 let hasNewValue = 1;
14921 let opNewValue = 0;
14922 let prefersSlot3 = 1;
14924 def M2_mpy_hl_s0 : HInst<
14925 (outs IntRegs:$Rd32),
14926 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14927 "$Rd32 = mpy($Rs32.h,$Rt32.l)",
14928 tc_c21d7447, TypeM>, Enc_5ab2be {
14929 let Inst{7-5} = 0b010;
14930 let Inst{13-13} = 0b0;
14931 let Inst{31-21} = 0b11101100000;
14932 let hasNewValue = 1;
14933 let opNewValue = 0;
14934 let prefersSlot3 = 1;
14936 def M2_mpy_hl_s1 : HInst<
14937 (outs IntRegs:$Rd32),
14938 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14939 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14940 tc_c21d7447, TypeM>, Enc_5ab2be {
14941 let Inst{7-5} = 0b010;
14942 let Inst{13-13} = 0b0;
14943 let Inst{31-21} = 0b11101100100;
14944 let hasNewValue = 1;
14945 let opNewValue = 0;
14946 let prefersSlot3 = 1;
14948 def M2_mpy_lh_s0 : HInst<
14949 (outs IntRegs:$Rd32),
14950 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14951 "$Rd32 = mpy($Rs32.l,$Rt32.h)",
14952 tc_c21d7447, TypeM>, Enc_5ab2be {
14953 let Inst{7-5} = 0b001;
14954 let Inst{13-13} = 0b0;
14955 let Inst{31-21} = 0b11101100000;
14956 let hasNewValue = 1;
14957 let opNewValue = 0;
14958 let prefersSlot3 = 1;
14960 def M2_mpy_lh_s1 : HInst<
14961 (outs IntRegs:$Rd32),
14962 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14963 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14964 tc_c21d7447, TypeM>, Enc_5ab2be {
14965 let Inst{7-5} = 0b001;
14966 let Inst{13-13} = 0b0;
14967 let Inst{31-21} = 0b11101100100;
14968 let hasNewValue = 1;
14969 let opNewValue = 0;
14970 let prefersSlot3 = 1;
14972 def M2_mpy_ll_s0 : HInst<
14973 (outs IntRegs:$Rd32),
14974 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14975 "$Rd32 = mpy($Rs32.l,$Rt32.l)",
14976 tc_c21d7447, TypeM>, Enc_5ab2be {
14977 let Inst{7-5} = 0b000;
14978 let Inst{13-13} = 0b0;
14979 let Inst{31-21} = 0b11101100000;
14980 let hasNewValue = 1;
14981 let opNewValue = 0;
14982 let prefersSlot3 = 1;
14984 def M2_mpy_ll_s1 : HInst<
14985 (outs IntRegs:$Rd32),
14986 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14987 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14988 tc_c21d7447, TypeM>, Enc_5ab2be {
14989 let Inst{7-5} = 0b000;
14990 let Inst{13-13} = 0b0;
14991 let Inst{31-21} = 0b11101100100;
14992 let hasNewValue = 1;
14993 let opNewValue = 0;
14994 let prefersSlot3 = 1;
14996 def M2_mpy_nac_hh_s0 : HInst<
14997 (outs IntRegs:$Rx32),
14998 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14999 "$Rx32 -= mpy($Rs32.h,$Rt32.h)",
15000 tc_7f8ae742, TypeM>, Enc_2ae154 {
15001 let Inst{7-5} = 0b011;
15002 let Inst{13-13} = 0b0;
15003 let Inst{31-21} = 0b11101110001;
15004 let hasNewValue = 1;
15005 let opNewValue = 0;
15006 let prefersSlot3 = 1;
15007 let Constraints = "$Rx32 = $Rx32in";
15009 def M2_mpy_nac_hh_s1 : HInst<
15010 (outs IntRegs:$Rx32),
15011 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15012 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15013 tc_7f8ae742, TypeM>, Enc_2ae154 {
15014 let Inst{7-5} = 0b011;
15015 let Inst{13-13} = 0b0;
15016 let Inst{31-21} = 0b11101110101;
15017 let hasNewValue = 1;
15018 let opNewValue = 0;
15019 let prefersSlot3 = 1;
15020 let Constraints = "$Rx32 = $Rx32in";
15022 def M2_mpy_nac_hl_s0 : HInst<
15023 (outs IntRegs:$Rx32),
15024 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15025 "$Rx32 -= mpy($Rs32.h,$Rt32.l)",
15026 tc_7f8ae742, TypeM>, Enc_2ae154 {
15027 let Inst{7-5} = 0b010;
15028 let Inst{13-13} = 0b0;
15029 let Inst{31-21} = 0b11101110001;
15030 let hasNewValue = 1;
15031 let opNewValue = 0;
15032 let prefersSlot3 = 1;
15033 let Constraints = "$Rx32 = $Rx32in";
15035 def M2_mpy_nac_hl_s1 : HInst<
15036 (outs IntRegs:$Rx32),
15037 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15038 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15039 tc_7f8ae742, TypeM>, Enc_2ae154 {
15040 let Inst{7-5} = 0b010;
15041 let Inst{13-13} = 0b0;
15042 let Inst{31-21} = 0b11101110101;
15043 let hasNewValue = 1;
15044 let opNewValue = 0;
15045 let prefersSlot3 = 1;
15046 let Constraints = "$Rx32 = $Rx32in";
15048 def M2_mpy_nac_lh_s0 : HInst<
15049 (outs IntRegs:$Rx32),
15050 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15051 "$Rx32 -= mpy($Rs32.l,$Rt32.h)",
15052 tc_7f8ae742, TypeM>, Enc_2ae154 {
15053 let Inst{7-5} = 0b001;
15054 let Inst{13-13} = 0b0;
15055 let Inst{31-21} = 0b11101110001;
15056 let hasNewValue = 1;
15057 let opNewValue = 0;
15058 let prefersSlot3 = 1;
15059 let Constraints = "$Rx32 = $Rx32in";
15061 def M2_mpy_nac_lh_s1 : HInst<
15062 (outs IntRegs:$Rx32),
15063 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15064 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15065 tc_7f8ae742, TypeM>, Enc_2ae154 {
15066 let Inst{7-5} = 0b001;
15067 let Inst{13-13} = 0b0;
15068 let Inst{31-21} = 0b11101110101;
15069 let hasNewValue = 1;
15070 let opNewValue = 0;
15071 let prefersSlot3 = 1;
15072 let Constraints = "$Rx32 = $Rx32in";
15074 def M2_mpy_nac_ll_s0 : HInst<
15075 (outs IntRegs:$Rx32),
15076 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15077 "$Rx32 -= mpy($Rs32.l,$Rt32.l)",
15078 tc_7f8ae742, TypeM>, Enc_2ae154 {
15079 let Inst{7-5} = 0b000;
15080 let Inst{13-13} = 0b0;
15081 let Inst{31-21} = 0b11101110001;
15082 let hasNewValue = 1;
15083 let opNewValue = 0;
15084 let prefersSlot3 = 1;
15085 let Constraints = "$Rx32 = $Rx32in";
15087 def M2_mpy_nac_ll_s1 : HInst<
15088 (outs IntRegs:$Rx32),
15089 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15090 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15091 tc_7f8ae742, TypeM>, Enc_2ae154 {
15092 let Inst{7-5} = 0b000;
15093 let Inst{13-13} = 0b0;
15094 let Inst{31-21} = 0b11101110101;
15095 let hasNewValue = 1;
15096 let opNewValue = 0;
15097 let prefersSlot3 = 1;
15098 let Constraints = "$Rx32 = $Rx32in";
15100 def M2_mpy_nac_sat_hh_s0 : HInst<
15101 (outs IntRegs:$Rx32),
15102 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15103 "$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
15104 tc_7f8ae742, TypeM>, Enc_2ae154 {
15105 let Inst{7-5} = 0b111;
15106 let Inst{13-13} = 0b0;
15107 let Inst{31-21} = 0b11101110001;
15108 let hasNewValue = 1;
15109 let opNewValue = 0;
15110 let prefersSlot3 = 1;
15111 let Defs = [USR_OVF];
15112 let Constraints = "$Rx32 = $Rx32in";
15114 def M2_mpy_nac_sat_hh_s1 : HInst<
15115 (outs IntRegs:$Rx32),
15116 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15117 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
15118 tc_7f8ae742, TypeM>, Enc_2ae154 {
15119 let Inst{7-5} = 0b111;
15120 let Inst{13-13} = 0b0;
15121 let Inst{31-21} = 0b11101110101;
15122 let hasNewValue = 1;
15123 let opNewValue = 0;
15124 let prefersSlot3 = 1;
15125 let Defs = [USR_OVF];
15126 let Constraints = "$Rx32 = $Rx32in";
15128 def M2_mpy_nac_sat_hl_s0 : HInst<
15129 (outs IntRegs:$Rx32),
15130 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15131 "$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
15132 tc_7f8ae742, TypeM>, Enc_2ae154 {
15133 let Inst{7-5} = 0b110;
15134 let Inst{13-13} = 0b0;
15135 let Inst{31-21} = 0b11101110001;
15136 let hasNewValue = 1;
15137 let opNewValue = 0;
15138 let prefersSlot3 = 1;
15139 let Defs = [USR_OVF];
15140 let Constraints = "$Rx32 = $Rx32in";
15142 def M2_mpy_nac_sat_hl_s1 : HInst<
15143 (outs IntRegs:$Rx32),
15144 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15145 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
15146 tc_7f8ae742, TypeM>, Enc_2ae154 {
15147 let Inst{7-5} = 0b110;
15148 let Inst{13-13} = 0b0;
15149 let Inst{31-21} = 0b11101110101;
15150 let hasNewValue = 1;
15151 let opNewValue = 0;
15152 let prefersSlot3 = 1;
15153 let Defs = [USR_OVF];
15154 let Constraints = "$Rx32 = $Rx32in";
15156 def M2_mpy_nac_sat_lh_s0 : HInst<
15157 (outs IntRegs:$Rx32),
15158 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15159 "$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
15160 tc_7f8ae742, TypeM>, Enc_2ae154 {
15161 let Inst{7-5} = 0b101;
15162 let Inst{13-13} = 0b0;
15163 let Inst{31-21} = 0b11101110001;
15164 let hasNewValue = 1;
15165 let opNewValue = 0;
15166 let prefersSlot3 = 1;
15167 let Defs = [USR_OVF];
15168 let Constraints = "$Rx32 = $Rx32in";
15170 def M2_mpy_nac_sat_lh_s1 : HInst<
15171 (outs IntRegs:$Rx32),
15172 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15173 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
15174 tc_7f8ae742, TypeM>, Enc_2ae154 {
15175 let Inst{7-5} = 0b101;
15176 let Inst{13-13} = 0b0;
15177 let Inst{31-21} = 0b11101110101;
15178 let hasNewValue = 1;
15179 let opNewValue = 0;
15180 let prefersSlot3 = 1;
15181 let Defs = [USR_OVF];
15182 let Constraints = "$Rx32 = $Rx32in";
15184 def M2_mpy_nac_sat_ll_s0 : HInst<
15185 (outs IntRegs:$Rx32),
15186 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15187 "$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
15188 tc_7f8ae742, TypeM>, Enc_2ae154 {
15189 let Inst{7-5} = 0b100;
15190 let Inst{13-13} = 0b0;
15191 let Inst{31-21} = 0b11101110001;
15192 let hasNewValue = 1;
15193 let opNewValue = 0;
15194 let prefersSlot3 = 1;
15195 let Defs = [USR_OVF];
15196 let Constraints = "$Rx32 = $Rx32in";
15198 def M2_mpy_nac_sat_ll_s1 : HInst<
15199 (outs IntRegs:$Rx32),
15200 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15201 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15202 tc_7f8ae742, TypeM>, Enc_2ae154 {
15203 let Inst{7-5} = 0b100;
15204 let Inst{13-13} = 0b0;
15205 let Inst{31-21} = 0b11101110101;
15206 let hasNewValue = 1;
15207 let opNewValue = 0;
15208 let prefersSlot3 = 1;
15209 let Defs = [USR_OVF];
15210 let Constraints = "$Rx32 = $Rx32in";
15212 def M2_mpy_rnd_hh_s0 : HInst<
15213 (outs IntRegs:$Rd32),
15214 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15215 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15216 tc_c21d7447, TypeM>, Enc_5ab2be {
15217 let Inst{7-5} = 0b011;
15218 let Inst{13-13} = 0b0;
15219 let Inst{31-21} = 0b11101100001;
15220 let hasNewValue = 1;
15221 let opNewValue = 0;
15222 let prefersSlot3 = 1;
15224 def M2_mpy_rnd_hh_s1 : HInst<
15225 (outs IntRegs:$Rd32),
15226 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15227 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15228 tc_c21d7447, TypeM>, Enc_5ab2be {
15229 let Inst{7-5} = 0b011;
15230 let Inst{13-13} = 0b0;
15231 let Inst{31-21} = 0b11101100101;
15232 let hasNewValue = 1;
15233 let opNewValue = 0;
15234 let prefersSlot3 = 1;
15236 def M2_mpy_rnd_hl_s0 : HInst<
15237 (outs IntRegs:$Rd32),
15238 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15239 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15240 tc_c21d7447, TypeM>, Enc_5ab2be {
15241 let Inst{7-5} = 0b010;
15242 let Inst{13-13} = 0b0;
15243 let Inst{31-21} = 0b11101100001;
15244 let hasNewValue = 1;
15245 let opNewValue = 0;
15246 let prefersSlot3 = 1;
15248 def M2_mpy_rnd_hl_s1 : HInst<
15249 (outs IntRegs:$Rd32),
15250 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15251 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15252 tc_c21d7447, TypeM>, Enc_5ab2be {
15253 let Inst{7-5} = 0b010;
15254 let Inst{13-13} = 0b0;
15255 let Inst{31-21} = 0b11101100101;
15256 let hasNewValue = 1;
15257 let opNewValue = 0;
15258 let prefersSlot3 = 1;
15260 def M2_mpy_rnd_lh_s0 : HInst<
15261 (outs IntRegs:$Rd32),
15262 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15263 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15264 tc_c21d7447, TypeM>, Enc_5ab2be {
15265 let Inst{7-5} = 0b001;
15266 let Inst{13-13} = 0b0;
15267 let Inst{31-21} = 0b11101100001;
15268 let hasNewValue = 1;
15269 let opNewValue = 0;
15270 let prefersSlot3 = 1;
15272 def M2_mpy_rnd_lh_s1 : HInst<
15273 (outs IntRegs:$Rd32),
15274 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15275 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15276 tc_c21d7447, TypeM>, Enc_5ab2be {
15277 let Inst{7-5} = 0b001;
15278 let Inst{13-13} = 0b0;
15279 let Inst{31-21} = 0b11101100101;
15280 let hasNewValue = 1;
15281 let opNewValue = 0;
15282 let prefersSlot3 = 1;
15284 def M2_mpy_rnd_ll_s0 : HInst<
15285 (outs IntRegs:$Rd32),
15286 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15287 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15288 tc_c21d7447, TypeM>, Enc_5ab2be {
15289 let Inst{7-5} = 0b000;
15290 let Inst{13-13} = 0b0;
15291 let Inst{31-21} = 0b11101100001;
15292 let hasNewValue = 1;
15293 let opNewValue = 0;
15294 let prefersSlot3 = 1;
15296 def M2_mpy_rnd_ll_s1 : HInst<
15297 (outs IntRegs:$Rd32),
15298 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15299 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15300 tc_c21d7447, TypeM>, Enc_5ab2be {
15301 let Inst{7-5} = 0b000;
15302 let Inst{13-13} = 0b0;
15303 let Inst{31-21} = 0b11101100101;
15304 let hasNewValue = 1;
15305 let opNewValue = 0;
15306 let prefersSlot3 = 1;
15308 def M2_mpy_sat_hh_s0 : HInst<
15309 (outs IntRegs:$Rd32),
15310 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15311 "$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15312 tc_c21d7447, TypeM>, Enc_5ab2be {
15313 let Inst{7-5} = 0b111;
15314 let Inst{13-13} = 0b0;
15315 let Inst{31-21} = 0b11101100000;
15316 let hasNewValue = 1;
15317 let opNewValue = 0;
15318 let prefersSlot3 = 1;
15319 let Defs = [USR_OVF];
15321 def M2_mpy_sat_hh_s1 : HInst<
15322 (outs IntRegs:$Rd32),
15323 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15324 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15325 tc_c21d7447, TypeM>, Enc_5ab2be {
15326 let Inst{7-5} = 0b111;
15327 let Inst{13-13} = 0b0;
15328 let Inst{31-21} = 0b11101100100;
15329 let hasNewValue = 1;
15330 let opNewValue = 0;
15331 let prefersSlot3 = 1;
15332 let Defs = [USR_OVF];
15334 def M2_mpy_sat_hl_s0 : HInst<
15335 (outs IntRegs:$Rd32),
15336 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15337 "$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15338 tc_c21d7447, TypeM>, Enc_5ab2be {
15339 let Inst{7-5} = 0b110;
15340 let Inst{13-13} = 0b0;
15341 let Inst{31-21} = 0b11101100000;
15342 let hasNewValue = 1;
15343 let opNewValue = 0;
15344 let prefersSlot3 = 1;
15345 let Defs = [USR_OVF];
15347 def M2_mpy_sat_hl_s1 : HInst<
15348 (outs IntRegs:$Rd32),
15349 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15350 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15351 tc_c21d7447, TypeM>, Enc_5ab2be {
15352 let Inst{7-5} = 0b110;
15353 let Inst{13-13} = 0b0;
15354 let Inst{31-21} = 0b11101100100;
15355 let hasNewValue = 1;
15356 let opNewValue = 0;
15357 let prefersSlot3 = 1;
15358 let Defs = [USR_OVF];
15360 def M2_mpy_sat_lh_s0 : HInst<
15361 (outs IntRegs:$Rd32),
15362 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15363 "$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15364 tc_c21d7447, TypeM>, Enc_5ab2be {
15365 let Inst{7-5} = 0b101;
15366 let Inst{13-13} = 0b0;
15367 let Inst{31-21} = 0b11101100000;
15368 let hasNewValue = 1;
15369 let opNewValue = 0;
15370 let prefersSlot3 = 1;
15371 let Defs = [USR_OVF];
15373 def M2_mpy_sat_lh_s1 : HInst<
15374 (outs IntRegs:$Rd32),
15375 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15376 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15377 tc_c21d7447, TypeM>, Enc_5ab2be {
15378 let Inst{7-5} = 0b101;
15379 let Inst{13-13} = 0b0;
15380 let Inst{31-21} = 0b11101100100;
15381 let hasNewValue = 1;
15382 let opNewValue = 0;
15383 let prefersSlot3 = 1;
15384 let Defs = [USR_OVF];
15386 def M2_mpy_sat_ll_s0 : HInst<
15387 (outs IntRegs:$Rd32),
15388 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15389 "$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15390 tc_c21d7447, TypeM>, Enc_5ab2be {
15391 let Inst{7-5} = 0b100;
15392 let Inst{13-13} = 0b0;
15393 let Inst{31-21} = 0b11101100000;
15394 let hasNewValue = 1;
15395 let opNewValue = 0;
15396 let prefersSlot3 = 1;
15397 let Defs = [USR_OVF];
15399 def M2_mpy_sat_ll_s1 : HInst<
15400 (outs IntRegs:$Rd32),
15401 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15402 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15403 tc_c21d7447, TypeM>, Enc_5ab2be {
15404 let Inst{7-5} = 0b100;
15405 let Inst{13-13} = 0b0;
15406 let Inst{31-21} = 0b11101100100;
15407 let hasNewValue = 1;
15408 let opNewValue = 0;
15409 let prefersSlot3 = 1;
15410 let Defs = [USR_OVF];
15412 def M2_mpy_sat_rnd_hh_s0 : HInst<
15413 (outs IntRegs:$Rd32),
15414 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15415 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15416 tc_c21d7447, TypeM>, Enc_5ab2be {
15417 let Inst{7-5} = 0b111;
15418 let Inst{13-13} = 0b0;
15419 let Inst{31-21} = 0b11101100001;
15420 let hasNewValue = 1;
15421 let opNewValue = 0;
15422 let prefersSlot3 = 1;
15423 let Defs = [USR_OVF];
15425 def M2_mpy_sat_rnd_hh_s1 : HInst<
15426 (outs IntRegs:$Rd32),
15427 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15428 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15429 tc_c21d7447, TypeM>, Enc_5ab2be {
15430 let Inst{7-5} = 0b111;
15431 let Inst{13-13} = 0b0;
15432 let Inst{31-21} = 0b11101100101;
15433 let hasNewValue = 1;
15434 let opNewValue = 0;
15435 let prefersSlot3 = 1;
15436 let Defs = [USR_OVF];
15438 def M2_mpy_sat_rnd_hl_s0 : HInst<
15439 (outs IntRegs:$Rd32),
15440 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15441 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15442 tc_c21d7447, TypeM>, Enc_5ab2be {
15443 let Inst{7-5} = 0b110;
15444 let Inst{13-13} = 0b0;
15445 let Inst{31-21} = 0b11101100001;
15446 let hasNewValue = 1;
15447 let opNewValue = 0;
15448 let prefersSlot3 = 1;
15449 let Defs = [USR_OVF];
15451 def M2_mpy_sat_rnd_hl_s1 : HInst<
15452 (outs IntRegs:$Rd32),
15453 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15454 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15455 tc_c21d7447, TypeM>, Enc_5ab2be {
15456 let Inst{7-5} = 0b110;
15457 let Inst{13-13} = 0b0;
15458 let Inst{31-21} = 0b11101100101;
15459 let hasNewValue = 1;
15460 let opNewValue = 0;
15461 let prefersSlot3 = 1;
15462 let Defs = [USR_OVF];
15464 def M2_mpy_sat_rnd_lh_s0 : HInst<
15465 (outs IntRegs:$Rd32),
15466 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15467 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15468 tc_c21d7447, TypeM>, Enc_5ab2be {
15469 let Inst{7-5} = 0b101;
15470 let Inst{13-13} = 0b0;
15471 let Inst{31-21} = 0b11101100001;
15472 let hasNewValue = 1;
15473 let opNewValue = 0;
15474 let prefersSlot3 = 1;
15475 let Defs = [USR_OVF];
15477 def M2_mpy_sat_rnd_lh_s1 : HInst<
15478 (outs IntRegs:$Rd32),
15479 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15480 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15481 tc_c21d7447, TypeM>, Enc_5ab2be {
15482 let Inst{7-5} = 0b101;
15483 let Inst{13-13} = 0b0;
15484 let Inst{31-21} = 0b11101100101;
15485 let hasNewValue = 1;
15486 let opNewValue = 0;
15487 let prefersSlot3 = 1;
15488 let Defs = [USR_OVF];
15490 def M2_mpy_sat_rnd_ll_s0 : HInst<
15491 (outs IntRegs:$Rd32),
15492 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15493 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15494 tc_c21d7447, TypeM>, Enc_5ab2be {
15495 let Inst{7-5} = 0b100;
15496 let Inst{13-13} = 0b0;
15497 let Inst{31-21} = 0b11101100001;
15498 let hasNewValue = 1;
15499 let opNewValue = 0;
15500 let prefersSlot3 = 1;
15501 let Defs = [USR_OVF];
15503 def M2_mpy_sat_rnd_ll_s1 : HInst<
15504 (outs IntRegs:$Rd32),
15505 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15506 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15507 tc_c21d7447, TypeM>, Enc_5ab2be {
15508 let Inst{7-5} = 0b100;
15509 let Inst{13-13} = 0b0;
15510 let Inst{31-21} = 0b11101100101;
15511 let hasNewValue = 1;
15512 let opNewValue = 0;
15513 let prefersSlot3 = 1;
15514 let Defs = [USR_OVF];
15516 def M2_mpy_up : HInst<
15517 (outs IntRegs:$Rd32),
15518 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15519 "$Rd32 = mpy($Rs32,$Rt32)",
15520 tc_c21d7447, TypeM>, Enc_5ab2be {
15521 let Inst{7-5} = 0b001;
15522 let Inst{13-13} = 0b0;
15523 let Inst{31-21} = 0b11101101000;
15524 let hasNewValue = 1;
15525 let opNewValue = 0;
15526 let prefersSlot3 = 1;
15528 def M2_mpy_up_s1 : HInst<
15529 (outs IntRegs:$Rd32),
15530 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15531 "$Rd32 = mpy($Rs32,$Rt32):<<1",
15532 tc_c21d7447, TypeM>, Enc_5ab2be {
15533 let Inst{7-5} = 0b010;
15534 let Inst{13-13} = 0b0;
15535 let Inst{31-21} = 0b11101101101;
15536 let hasNewValue = 1;
15537 let opNewValue = 0;
15538 let prefersSlot3 = 1;
15540 def M2_mpy_up_s1_sat : HInst<
15541 (outs IntRegs:$Rd32),
15542 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15543 "$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15544 tc_c21d7447, TypeM>, Enc_5ab2be {
15545 let Inst{7-5} = 0b000;
15546 let Inst{13-13} = 0b0;
15547 let Inst{31-21} = 0b11101101111;
15548 let hasNewValue = 1;
15549 let opNewValue = 0;
15550 let prefersSlot3 = 1;
15551 let Defs = [USR_OVF];
15553 def M2_mpyd_acc_hh_s0 : HInst<
15554 (outs DoubleRegs:$Rxx32),
15555 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15556 "$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15557 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15558 let Inst{7-5} = 0b011;
15559 let Inst{13-13} = 0b0;
15560 let Inst{31-21} = 0b11100110000;
15561 let prefersSlot3 = 1;
15562 let Constraints = "$Rxx32 = $Rxx32in";
15564 def M2_mpyd_acc_hh_s1 : HInst<
15565 (outs DoubleRegs:$Rxx32),
15566 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15567 "$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15568 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15569 let Inst{7-5} = 0b011;
15570 let Inst{13-13} = 0b0;
15571 let Inst{31-21} = 0b11100110100;
15572 let prefersSlot3 = 1;
15573 let Constraints = "$Rxx32 = $Rxx32in";
15575 def M2_mpyd_acc_hl_s0 : HInst<
15576 (outs DoubleRegs:$Rxx32),
15577 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15578 "$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15579 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15580 let Inst{7-5} = 0b010;
15581 let Inst{13-13} = 0b0;
15582 let Inst{31-21} = 0b11100110000;
15583 let prefersSlot3 = 1;
15584 let Constraints = "$Rxx32 = $Rxx32in";
15586 def M2_mpyd_acc_hl_s1 : HInst<
15587 (outs DoubleRegs:$Rxx32),
15588 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15589 "$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15590 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15591 let Inst{7-5} = 0b010;
15592 let Inst{13-13} = 0b0;
15593 let Inst{31-21} = 0b11100110100;
15594 let prefersSlot3 = 1;
15595 let Constraints = "$Rxx32 = $Rxx32in";
15597 def M2_mpyd_acc_lh_s0 : HInst<
15598 (outs DoubleRegs:$Rxx32),
15599 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15600 "$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15601 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15602 let Inst{7-5} = 0b001;
15603 let Inst{13-13} = 0b0;
15604 let Inst{31-21} = 0b11100110000;
15605 let prefersSlot3 = 1;
15606 let Constraints = "$Rxx32 = $Rxx32in";
15608 def M2_mpyd_acc_lh_s1 : HInst<
15609 (outs DoubleRegs:$Rxx32),
15610 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15611 "$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15612 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15613 let Inst{7-5} = 0b001;
15614 let Inst{13-13} = 0b0;
15615 let Inst{31-21} = 0b11100110100;
15616 let prefersSlot3 = 1;
15617 let Constraints = "$Rxx32 = $Rxx32in";
15619 def M2_mpyd_acc_ll_s0 : HInst<
15620 (outs DoubleRegs:$Rxx32),
15621 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15622 "$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15623 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15624 let Inst{7-5} = 0b000;
15625 let Inst{13-13} = 0b0;
15626 let Inst{31-21} = 0b11100110000;
15627 let prefersSlot3 = 1;
15628 let Constraints = "$Rxx32 = $Rxx32in";
15630 def M2_mpyd_acc_ll_s1 : HInst<
15631 (outs DoubleRegs:$Rxx32),
15632 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15633 "$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15634 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15635 let Inst{7-5} = 0b000;
15636 let Inst{13-13} = 0b0;
15637 let Inst{31-21} = 0b11100110100;
15638 let prefersSlot3 = 1;
15639 let Constraints = "$Rxx32 = $Rxx32in";
15641 def M2_mpyd_hh_s0 : HInst<
15642 (outs DoubleRegs:$Rdd32),
15643 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15644 "$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15645 tc_c21d7447, TypeM>, Enc_be32a5 {
15646 let Inst{7-5} = 0b011;
15647 let Inst{13-13} = 0b0;
15648 let Inst{31-21} = 0b11100100000;
15649 let prefersSlot3 = 1;
15651 def M2_mpyd_hh_s1 : HInst<
15652 (outs DoubleRegs:$Rdd32),
15653 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15654 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15655 tc_c21d7447, TypeM>, Enc_be32a5 {
15656 let Inst{7-5} = 0b011;
15657 let Inst{13-13} = 0b0;
15658 let Inst{31-21} = 0b11100100100;
15659 let prefersSlot3 = 1;
15661 def M2_mpyd_hl_s0 : HInst<
15662 (outs DoubleRegs:$Rdd32),
15663 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15664 "$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15665 tc_c21d7447, TypeM>, Enc_be32a5 {
15666 let Inst{7-5} = 0b010;
15667 let Inst{13-13} = 0b0;
15668 let Inst{31-21} = 0b11100100000;
15669 let prefersSlot3 = 1;
15671 def M2_mpyd_hl_s1 : HInst<
15672 (outs DoubleRegs:$Rdd32),
15673 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15674 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15675 tc_c21d7447, TypeM>, Enc_be32a5 {
15676 let Inst{7-5} = 0b010;
15677 let Inst{13-13} = 0b0;
15678 let Inst{31-21} = 0b11100100100;
15679 let prefersSlot3 = 1;
15681 def M2_mpyd_lh_s0 : HInst<
15682 (outs DoubleRegs:$Rdd32),
15683 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15684 "$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15685 tc_c21d7447, TypeM>, Enc_be32a5 {
15686 let Inst{7-5} = 0b001;
15687 let Inst{13-13} = 0b0;
15688 let Inst{31-21} = 0b11100100000;
15689 let prefersSlot3 = 1;
15691 def M2_mpyd_lh_s1 : HInst<
15692 (outs DoubleRegs:$Rdd32),
15693 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15694 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15695 tc_c21d7447, TypeM>, Enc_be32a5 {
15696 let Inst{7-5} = 0b001;
15697 let Inst{13-13} = 0b0;
15698 let Inst{31-21} = 0b11100100100;
15699 let prefersSlot3 = 1;
15701 def M2_mpyd_ll_s0 : HInst<
15702 (outs DoubleRegs:$Rdd32),
15703 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15704 "$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15705 tc_c21d7447, TypeM>, Enc_be32a5 {
15706 let Inst{7-5} = 0b000;
15707 let Inst{13-13} = 0b0;
15708 let Inst{31-21} = 0b11100100000;
15709 let prefersSlot3 = 1;
15711 def M2_mpyd_ll_s1 : HInst<
15712 (outs DoubleRegs:$Rdd32),
15713 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15714 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15715 tc_c21d7447, TypeM>, Enc_be32a5 {
15716 let Inst{7-5} = 0b000;
15717 let Inst{13-13} = 0b0;
15718 let Inst{31-21} = 0b11100100100;
15719 let prefersSlot3 = 1;
15721 def M2_mpyd_nac_hh_s0 : HInst<
15722 (outs DoubleRegs:$Rxx32),
15723 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15724 "$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15725 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15726 let Inst{7-5} = 0b011;
15727 let Inst{13-13} = 0b0;
15728 let Inst{31-21} = 0b11100110001;
15729 let prefersSlot3 = 1;
15730 let Constraints = "$Rxx32 = $Rxx32in";
15732 def M2_mpyd_nac_hh_s1 : HInst<
15733 (outs DoubleRegs:$Rxx32),
15734 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15735 "$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15736 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15737 let Inst{7-5} = 0b011;
15738 let Inst{13-13} = 0b0;
15739 let Inst{31-21} = 0b11100110101;
15740 let prefersSlot3 = 1;
15741 let Constraints = "$Rxx32 = $Rxx32in";
15743 def M2_mpyd_nac_hl_s0 : HInst<
15744 (outs DoubleRegs:$Rxx32),
15745 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15746 "$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15747 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15748 let Inst{7-5} = 0b010;
15749 let Inst{13-13} = 0b0;
15750 let Inst{31-21} = 0b11100110001;
15751 let prefersSlot3 = 1;
15752 let Constraints = "$Rxx32 = $Rxx32in";
15754 def M2_mpyd_nac_hl_s1 : HInst<
15755 (outs DoubleRegs:$Rxx32),
15756 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15757 "$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15758 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15759 let Inst{7-5} = 0b010;
15760 let Inst{13-13} = 0b0;
15761 let Inst{31-21} = 0b11100110101;
15762 let prefersSlot3 = 1;
15763 let Constraints = "$Rxx32 = $Rxx32in";
15765 def M2_mpyd_nac_lh_s0 : HInst<
15766 (outs DoubleRegs:$Rxx32),
15767 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15768 "$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15769 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15770 let Inst{7-5} = 0b001;
15771 let Inst{13-13} = 0b0;
15772 let Inst{31-21} = 0b11100110001;
15773 let prefersSlot3 = 1;
15774 let Constraints = "$Rxx32 = $Rxx32in";
15776 def M2_mpyd_nac_lh_s1 : HInst<
15777 (outs DoubleRegs:$Rxx32),
15778 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15779 "$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15780 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15781 let Inst{7-5} = 0b001;
15782 let Inst{13-13} = 0b0;
15783 let Inst{31-21} = 0b11100110101;
15784 let prefersSlot3 = 1;
15785 let Constraints = "$Rxx32 = $Rxx32in";
15787 def M2_mpyd_nac_ll_s0 : HInst<
15788 (outs DoubleRegs:$Rxx32),
15789 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15790 "$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15791 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15792 let Inst{7-5} = 0b000;
15793 let Inst{13-13} = 0b0;
15794 let Inst{31-21} = 0b11100110001;
15795 let prefersSlot3 = 1;
15796 let Constraints = "$Rxx32 = $Rxx32in";
15798 def M2_mpyd_nac_ll_s1 : HInst<
15799 (outs DoubleRegs:$Rxx32),
15800 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15801 "$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15802 tc_7f8ae742, TypeM>, Enc_61f0b0 {
15803 let Inst{7-5} = 0b000;
15804 let Inst{13-13} = 0b0;
15805 let Inst{31-21} = 0b11100110101;
15806 let prefersSlot3 = 1;
15807 let Constraints = "$Rxx32 = $Rxx32in";
15809 def M2_mpyd_rnd_hh_s0 : HInst<
15810 (outs DoubleRegs:$Rdd32),
15811 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15812 "$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15813 tc_c21d7447, TypeM>, Enc_be32a5 {
15814 let Inst{7-5} = 0b011;
15815 let Inst{13-13} = 0b0;
15816 let Inst{31-21} = 0b11100100001;
15817 let prefersSlot3 = 1;
15819 def M2_mpyd_rnd_hh_s1 : HInst<
15820 (outs DoubleRegs:$Rdd32),
15821 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15822 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15823 tc_c21d7447, TypeM>, Enc_be32a5 {
15824 let Inst{7-5} = 0b011;
15825 let Inst{13-13} = 0b0;
15826 let Inst{31-21} = 0b11100100101;
15827 let prefersSlot3 = 1;
15829 def M2_mpyd_rnd_hl_s0 : HInst<
15830 (outs DoubleRegs:$Rdd32),
15831 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15832 "$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15833 tc_c21d7447, TypeM>, Enc_be32a5 {
15834 let Inst{7-5} = 0b010;
15835 let Inst{13-13} = 0b0;
15836 let Inst{31-21} = 0b11100100001;
15837 let prefersSlot3 = 1;
15839 def M2_mpyd_rnd_hl_s1 : HInst<
15840 (outs DoubleRegs:$Rdd32),
15841 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15842 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15843 tc_c21d7447, TypeM>, Enc_be32a5 {
15844 let Inst{7-5} = 0b010;
15845 let Inst{13-13} = 0b0;
15846 let Inst{31-21} = 0b11100100101;
15847 let prefersSlot3 = 1;
15849 def M2_mpyd_rnd_lh_s0 : HInst<
15850 (outs DoubleRegs:$Rdd32),
15851 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15852 "$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15853 tc_c21d7447, TypeM>, Enc_be32a5 {
15854 let Inst{7-5} = 0b001;
15855 let Inst{13-13} = 0b0;
15856 let Inst{31-21} = 0b11100100001;
15857 let prefersSlot3 = 1;
15859 def M2_mpyd_rnd_lh_s1 : HInst<
15860 (outs DoubleRegs:$Rdd32),
15861 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15862 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15863 tc_c21d7447, TypeM>, Enc_be32a5 {
15864 let Inst{7-5} = 0b001;
15865 let Inst{13-13} = 0b0;
15866 let Inst{31-21} = 0b11100100101;
15867 let prefersSlot3 = 1;
15869 def M2_mpyd_rnd_ll_s0 : HInst<
15870 (outs DoubleRegs:$Rdd32),
15871 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15872 "$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15873 tc_c21d7447, TypeM>, Enc_be32a5 {
15874 let Inst{7-5} = 0b000;
15875 let Inst{13-13} = 0b0;
15876 let Inst{31-21} = 0b11100100001;
15877 let prefersSlot3 = 1;
15879 def M2_mpyd_rnd_ll_s1 : HInst<
15880 (outs DoubleRegs:$Rdd32),
15881 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15882 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15883 tc_c21d7447, TypeM>, Enc_be32a5 {
15884 let Inst{7-5} = 0b000;
15885 let Inst{13-13} = 0b0;
15886 let Inst{31-21} = 0b11100100101;
15887 let prefersSlot3 = 1;
15889 def M2_mpyi : HInst<
15890 (outs IntRegs:$Rd32),
15891 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15892 "$Rd32 = mpyi($Rs32,$Rt32)",
15893 tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel {
15894 let Inst{7-5} = 0b000;
15895 let Inst{13-13} = 0b0;
15896 let Inst{31-21} = 0b11101101000;
15897 let hasNewValue = 1;
15898 let opNewValue = 0;
15899 let prefersSlot3 = 1;
15900 let CextOpcode = "M2_mpyi";
15901 let InputType = "reg";
15903 def M2_mpysin : HInst<
15904 (outs IntRegs:$Rd32),
15905 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
15906 "$Rd32 = -mpyi($Rs32,#$Ii)",
15907 tc_38382228, TypeM>, Enc_b8c967 {
15908 let Inst{13-13} = 0b0;
15909 let Inst{31-21} = 0b11100000100;
15910 let hasNewValue = 1;
15911 let opNewValue = 0;
15912 let prefersSlot3 = 1;
15914 def M2_mpysip : HInst<
15915 (outs IntRegs:$Rd32),
15916 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
15917 "$Rd32 = +mpyi($Rs32,#$Ii)",
15918 tc_38382228, TypeM>, Enc_b8c967 {
15919 let Inst{13-13} = 0b0;
15920 let Inst{31-21} = 0b11100000000;
15921 let hasNewValue = 1;
15922 let opNewValue = 0;
15923 let prefersSlot3 = 1;
15924 let isExtendable = 1;
15925 let opExtendable = 2;
15926 let isExtentSigned = 0;
15927 let opExtentBits = 8;
15928 let opExtentAlign = 0;
15930 def M2_mpysmi : HInst<
15931 (outs IntRegs:$Rd32),
15932 (ins IntRegs:$Rs32, m32_0Imm:$Ii),
15933 "$Rd32 = mpyi($Rs32,#$Ii)",
15934 tc_38382228, TypeM>, ImmRegRel {
15935 let hasNewValue = 1;
15936 let opNewValue = 0;
15937 let CextOpcode = "M2_mpyi";
15938 let InputType = "imm";
15939 let isPseudo = 1;
15940 let isExtendable = 1;
15941 let opExtendable = 2;
15942 let isExtentSigned = 1;
15943 let opExtentBits = 9;
15944 let opExtentAlign = 0;
15946 def M2_mpysu_up : HInst<
15947 (outs IntRegs:$Rd32),
15948 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15949 "$Rd32 = mpysu($Rs32,$Rt32)",
15950 tc_c21d7447, TypeM>, Enc_5ab2be {
15951 let Inst{7-5} = 0b001;
15952 let Inst{13-13} = 0b0;
15953 let Inst{31-21} = 0b11101101011;
15954 let hasNewValue = 1;
15955 let opNewValue = 0;
15956 let prefersSlot3 = 1;
15958 def M2_mpyu_acc_hh_s0 : HInst<
15959 (outs IntRegs:$Rx32),
15960 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15961 "$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15962 tc_7f8ae742, TypeM>, Enc_2ae154 {
15963 let Inst{7-5} = 0b011;
15964 let Inst{13-13} = 0b0;
15965 let Inst{31-21} = 0b11101110010;
15966 let hasNewValue = 1;
15967 let opNewValue = 0;
15968 let prefersSlot3 = 1;
15969 let Constraints = "$Rx32 = $Rx32in";
15971 def M2_mpyu_acc_hh_s1 : HInst<
15972 (outs IntRegs:$Rx32),
15973 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15974 "$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15975 tc_7f8ae742, TypeM>, Enc_2ae154 {
15976 let Inst{7-5} = 0b011;
15977 let Inst{13-13} = 0b0;
15978 let Inst{31-21} = 0b11101110110;
15979 let hasNewValue = 1;
15980 let opNewValue = 0;
15981 let prefersSlot3 = 1;
15982 let Constraints = "$Rx32 = $Rx32in";
15984 def M2_mpyu_acc_hl_s0 : HInst<
15985 (outs IntRegs:$Rx32),
15986 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15987 "$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15988 tc_7f8ae742, TypeM>, Enc_2ae154 {
15989 let Inst{7-5} = 0b010;
15990 let Inst{13-13} = 0b0;
15991 let Inst{31-21} = 0b11101110010;
15992 let hasNewValue = 1;
15993 let opNewValue = 0;
15994 let prefersSlot3 = 1;
15995 let Constraints = "$Rx32 = $Rx32in";
15997 def M2_mpyu_acc_hl_s1 : HInst<
15998 (outs IntRegs:$Rx32),
15999 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16000 "$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16001 tc_7f8ae742, TypeM>, Enc_2ae154 {
16002 let Inst{7-5} = 0b010;
16003 let Inst{13-13} = 0b0;
16004 let Inst{31-21} = 0b11101110110;
16005 let hasNewValue = 1;
16006 let opNewValue = 0;
16007 let prefersSlot3 = 1;
16008 let Constraints = "$Rx32 = $Rx32in";
16010 def M2_mpyu_acc_lh_s0 : HInst<
16011 (outs IntRegs:$Rx32),
16012 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16013 "$Rx32 += mpyu($Rs32.l,$Rt32.h)",
16014 tc_7f8ae742, TypeM>, Enc_2ae154 {
16015 let Inst{7-5} = 0b001;
16016 let Inst{13-13} = 0b0;
16017 let Inst{31-21} = 0b11101110010;
16018 let hasNewValue = 1;
16019 let opNewValue = 0;
16020 let prefersSlot3 = 1;
16021 let Constraints = "$Rx32 = $Rx32in";
16023 def M2_mpyu_acc_lh_s1 : HInst<
16024 (outs IntRegs:$Rx32),
16025 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16026 "$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16027 tc_7f8ae742, TypeM>, Enc_2ae154 {
16028 let Inst{7-5} = 0b001;
16029 let Inst{13-13} = 0b0;
16030 let Inst{31-21} = 0b11101110110;
16031 let hasNewValue = 1;
16032 let opNewValue = 0;
16033 let prefersSlot3 = 1;
16034 let Constraints = "$Rx32 = $Rx32in";
16036 def M2_mpyu_acc_ll_s0 : HInst<
16037 (outs IntRegs:$Rx32),
16038 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16039 "$Rx32 += mpyu($Rs32.l,$Rt32.l)",
16040 tc_7f8ae742, TypeM>, Enc_2ae154 {
16041 let Inst{7-5} = 0b000;
16042 let Inst{13-13} = 0b0;
16043 let Inst{31-21} = 0b11101110010;
16044 let hasNewValue = 1;
16045 let opNewValue = 0;
16046 let prefersSlot3 = 1;
16047 let Constraints = "$Rx32 = $Rx32in";
16049 def M2_mpyu_acc_ll_s1 : HInst<
16050 (outs IntRegs:$Rx32),
16051 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16052 "$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16053 tc_7f8ae742, TypeM>, Enc_2ae154 {
16054 let Inst{7-5} = 0b000;
16055 let Inst{13-13} = 0b0;
16056 let Inst{31-21} = 0b11101110110;
16057 let hasNewValue = 1;
16058 let opNewValue = 0;
16059 let prefersSlot3 = 1;
16060 let Constraints = "$Rx32 = $Rx32in";
16062 def M2_mpyu_hh_s0 : HInst<
16063 (outs IntRegs:$Rd32),
16064 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16065 "$Rd32 = mpyu($Rs32.h,$Rt32.h)",
16066 tc_c21d7447, TypeM>, Enc_5ab2be {
16067 let Inst{7-5} = 0b011;
16068 let Inst{13-13} = 0b0;
16069 let Inst{31-21} = 0b11101100010;
16070 let hasNewValue = 1;
16071 let opNewValue = 0;
16072 let prefersSlot3 = 1;
16074 def M2_mpyu_hh_s1 : HInst<
16075 (outs IntRegs:$Rd32),
16076 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16077 "$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16078 tc_c21d7447, TypeM>, Enc_5ab2be {
16079 let Inst{7-5} = 0b011;
16080 let Inst{13-13} = 0b0;
16081 let Inst{31-21} = 0b11101100110;
16082 let hasNewValue = 1;
16083 let opNewValue = 0;
16084 let prefersSlot3 = 1;
16086 def M2_mpyu_hl_s0 : HInst<
16087 (outs IntRegs:$Rd32),
16088 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16089 "$Rd32 = mpyu($Rs32.h,$Rt32.l)",
16090 tc_c21d7447, TypeM>, Enc_5ab2be {
16091 let Inst{7-5} = 0b010;
16092 let Inst{13-13} = 0b0;
16093 let Inst{31-21} = 0b11101100010;
16094 let hasNewValue = 1;
16095 let opNewValue = 0;
16096 let prefersSlot3 = 1;
16098 def M2_mpyu_hl_s1 : HInst<
16099 (outs IntRegs:$Rd32),
16100 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16101 "$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16102 tc_c21d7447, TypeM>, Enc_5ab2be {
16103 let Inst{7-5} = 0b010;
16104 let Inst{13-13} = 0b0;
16105 let Inst{31-21} = 0b11101100110;
16106 let hasNewValue = 1;
16107 let opNewValue = 0;
16108 let prefersSlot3 = 1;
16110 def M2_mpyu_lh_s0 : HInst<
16111 (outs IntRegs:$Rd32),
16112 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16113 "$Rd32 = mpyu($Rs32.l,$Rt32.h)",
16114 tc_c21d7447, TypeM>, Enc_5ab2be {
16115 let Inst{7-5} = 0b001;
16116 let Inst{13-13} = 0b0;
16117 let Inst{31-21} = 0b11101100010;
16118 let hasNewValue = 1;
16119 let opNewValue = 0;
16120 let prefersSlot3 = 1;
16122 def M2_mpyu_lh_s1 : HInst<
16123 (outs IntRegs:$Rd32),
16124 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16125 "$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16126 tc_c21d7447, TypeM>, Enc_5ab2be {
16127 let Inst{7-5} = 0b001;
16128 let Inst{13-13} = 0b0;
16129 let Inst{31-21} = 0b11101100110;
16130 let hasNewValue = 1;
16131 let opNewValue = 0;
16132 let prefersSlot3 = 1;
16134 def M2_mpyu_ll_s0 : HInst<
16135 (outs IntRegs:$Rd32),
16136 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16137 "$Rd32 = mpyu($Rs32.l,$Rt32.l)",
16138 tc_c21d7447, TypeM>, Enc_5ab2be {
16139 let Inst{7-5} = 0b000;
16140 let Inst{13-13} = 0b0;
16141 let Inst{31-21} = 0b11101100010;
16142 let hasNewValue = 1;
16143 let opNewValue = 0;
16144 let prefersSlot3 = 1;
16146 def M2_mpyu_ll_s1 : HInst<
16147 (outs IntRegs:$Rd32),
16148 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16149 "$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16150 tc_c21d7447, TypeM>, Enc_5ab2be {
16151 let Inst{7-5} = 0b000;
16152 let Inst{13-13} = 0b0;
16153 let Inst{31-21} = 0b11101100110;
16154 let hasNewValue = 1;
16155 let opNewValue = 0;
16156 let prefersSlot3 = 1;
16158 def M2_mpyu_nac_hh_s0 : HInst<
16159 (outs IntRegs:$Rx32),
16160 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16161 "$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
16162 tc_7f8ae742, TypeM>, Enc_2ae154 {
16163 let Inst{7-5} = 0b011;
16164 let Inst{13-13} = 0b0;
16165 let Inst{31-21} = 0b11101110011;
16166 let hasNewValue = 1;
16167 let opNewValue = 0;
16168 let prefersSlot3 = 1;
16169 let Constraints = "$Rx32 = $Rx32in";
16171 def M2_mpyu_nac_hh_s1 : HInst<
16172 (outs IntRegs:$Rx32),
16173 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16174 "$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16175 tc_7f8ae742, TypeM>, Enc_2ae154 {
16176 let Inst{7-5} = 0b011;
16177 let Inst{13-13} = 0b0;
16178 let Inst{31-21} = 0b11101110111;
16179 let hasNewValue = 1;
16180 let opNewValue = 0;
16181 let prefersSlot3 = 1;
16182 let Constraints = "$Rx32 = $Rx32in";
16184 def M2_mpyu_nac_hl_s0 : HInst<
16185 (outs IntRegs:$Rx32),
16186 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16187 "$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
16188 tc_7f8ae742, TypeM>, Enc_2ae154 {
16189 let Inst{7-5} = 0b010;
16190 let Inst{13-13} = 0b0;
16191 let Inst{31-21} = 0b11101110011;
16192 let hasNewValue = 1;
16193 let opNewValue = 0;
16194 let prefersSlot3 = 1;
16195 let Constraints = "$Rx32 = $Rx32in";
16197 def M2_mpyu_nac_hl_s1 : HInst<
16198 (outs IntRegs:$Rx32),
16199 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16200 "$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16201 tc_7f8ae742, TypeM>, Enc_2ae154 {
16202 let Inst{7-5} = 0b010;
16203 let Inst{13-13} = 0b0;
16204 let Inst{31-21} = 0b11101110111;
16205 let hasNewValue = 1;
16206 let opNewValue = 0;
16207 let prefersSlot3 = 1;
16208 let Constraints = "$Rx32 = $Rx32in";
16210 def M2_mpyu_nac_lh_s0 : HInst<
16211 (outs IntRegs:$Rx32),
16212 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16213 "$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16214 tc_7f8ae742, TypeM>, Enc_2ae154 {
16215 let Inst{7-5} = 0b001;
16216 let Inst{13-13} = 0b0;
16217 let Inst{31-21} = 0b11101110011;
16218 let hasNewValue = 1;
16219 let opNewValue = 0;
16220 let prefersSlot3 = 1;
16221 let Constraints = "$Rx32 = $Rx32in";
16223 def M2_mpyu_nac_lh_s1 : HInst<
16224 (outs IntRegs:$Rx32),
16225 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16226 "$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16227 tc_7f8ae742, TypeM>, Enc_2ae154 {
16228 let Inst{7-5} = 0b001;
16229 let Inst{13-13} = 0b0;
16230 let Inst{31-21} = 0b11101110111;
16231 let hasNewValue = 1;
16232 let opNewValue = 0;
16233 let prefersSlot3 = 1;
16234 let Constraints = "$Rx32 = $Rx32in";
16236 def M2_mpyu_nac_ll_s0 : HInst<
16237 (outs IntRegs:$Rx32),
16238 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16239 "$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16240 tc_7f8ae742, TypeM>, Enc_2ae154 {
16241 let Inst{7-5} = 0b000;
16242 let Inst{13-13} = 0b0;
16243 let Inst{31-21} = 0b11101110011;
16244 let hasNewValue = 1;
16245 let opNewValue = 0;
16246 let prefersSlot3 = 1;
16247 let Constraints = "$Rx32 = $Rx32in";
16249 def M2_mpyu_nac_ll_s1 : HInst<
16250 (outs IntRegs:$Rx32),
16251 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16252 "$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16253 tc_7f8ae742, TypeM>, Enc_2ae154 {
16254 let Inst{7-5} = 0b000;
16255 let Inst{13-13} = 0b0;
16256 let Inst{31-21} = 0b11101110111;
16257 let hasNewValue = 1;
16258 let opNewValue = 0;
16259 let prefersSlot3 = 1;
16260 let Constraints = "$Rx32 = $Rx32in";
16262 def M2_mpyu_up : HInst<
16263 (outs IntRegs:$Rd32),
16264 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16265 "$Rd32 = mpyu($Rs32,$Rt32)",
16266 tc_c21d7447, TypeM>, Enc_5ab2be {
16267 let Inst{7-5} = 0b001;
16268 let Inst{13-13} = 0b0;
16269 let Inst{31-21} = 0b11101101010;
16270 let hasNewValue = 1;
16271 let opNewValue = 0;
16272 let prefersSlot3 = 1;
16274 def M2_mpyud_acc_hh_s0 : HInst<
16275 (outs DoubleRegs:$Rxx32),
16276 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16277 "$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16278 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16279 let Inst{7-5} = 0b011;
16280 let Inst{13-13} = 0b0;
16281 let Inst{31-21} = 0b11100110010;
16282 let prefersSlot3 = 1;
16283 let Constraints = "$Rxx32 = $Rxx32in";
16285 def M2_mpyud_acc_hh_s1 : HInst<
16286 (outs DoubleRegs:$Rxx32),
16287 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16288 "$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16289 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16290 let Inst{7-5} = 0b011;
16291 let Inst{13-13} = 0b0;
16292 let Inst{31-21} = 0b11100110110;
16293 let prefersSlot3 = 1;
16294 let Constraints = "$Rxx32 = $Rxx32in";
16296 def M2_mpyud_acc_hl_s0 : HInst<
16297 (outs DoubleRegs:$Rxx32),
16298 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16299 "$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16300 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16301 let Inst{7-5} = 0b010;
16302 let Inst{13-13} = 0b0;
16303 let Inst{31-21} = 0b11100110010;
16304 let prefersSlot3 = 1;
16305 let Constraints = "$Rxx32 = $Rxx32in";
16307 def M2_mpyud_acc_hl_s1 : HInst<
16308 (outs DoubleRegs:$Rxx32),
16309 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16310 "$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16311 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16312 let Inst{7-5} = 0b010;
16313 let Inst{13-13} = 0b0;
16314 let Inst{31-21} = 0b11100110110;
16315 let prefersSlot3 = 1;
16316 let Constraints = "$Rxx32 = $Rxx32in";
16318 def M2_mpyud_acc_lh_s0 : HInst<
16319 (outs DoubleRegs:$Rxx32),
16320 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16321 "$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16322 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16323 let Inst{7-5} = 0b001;
16324 let Inst{13-13} = 0b0;
16325 let Inst{31-21} = 0b11100110010;
16326 let prefersSlot3 = 1;
16327 let Constraints = "$Rxx32 = $Rxx32in";
16329 def M2_mpyud_acc_lh_s1 : HInst<
16330 (outs DoubleRegs:$Rxx32),
16331 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16332 "$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16333 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16334 let Inst{7-5} = 0b001;
16335 let Inst{13-13} = 0b0;
16336 let Inst{31-21} = 0b11100110110;
16337 let prefersSlot3 = 1;
16338 let Constraints = "$Rxx32 = $Rxx32in";
16340 def M2_mpyud_acc_ll_s0 : HInst<
16341 (outs DoubleRegs:$Rxx32),
16342 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16343 "$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16344 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16345 let Inst{7-5} = 0b000;
16346 let Inst{13-13} = 0b0;
16347 let Inst{31-21} = 0b11100110010;
16348 let prefersSlot3 = 1;
16349 let Constraints = "$Rxx32 = $Rxx32in";
16351 def M2_mpyud_acc_ll_s1 : HInst<
16352 (outs DoubleRegs:$Rxx32),
16353 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16354 "$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16355 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16356 let Inst{7-5} = 0b000;
16357 let Inst{13-13} = 0b0;
16358 let Inst{31-21} = 0b11100110110;
16359 let prefersSlot3 = 1;
16360 let Constraints = "$Rxx32 = $Rxx32in";
16362 def M2_mpyud_hh_s0 : HInst<
16363 (outs DoubleRegs:$Rdd32),
16364 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16365 "$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16366 tc_c21d7447, TypeM>, Enc_be32a5 {
16367 let Inst{7-5} = 0b011;
16368 let Inst{13-13} = 0b0;
16369 let Inst{31-21} = 0b11100100010;
16370 let prefersSlot3 = 1;
16372 def M2_mpyud_hh_s1 : HInst<
16373 (outs DoubleRegs:$Rdd32),
16374 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16375 "$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16376 tc_c21d7447, TypeM>, Enc_be32a5 {
16377 let Inst{7-5} = 0b011;
16378 let Inst{13-13} = 0b0;
16379 let Inst{31-21} = 0b11100100110;
16380 let prefersSlot3 = 1;
16382 def M2_mpyud_hl_s0 : HInst<
16383 (outs DoubleRegs:$Rdd32),
16384 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16385 "$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16386 tc_c21d7447, TypeM>, Enc_be32a5 {
16387 let Inst{7-5} = 0b010;
16388 let Inst{13-13} = 0b0;
16389 let Inst{31-21} = 0b11100100010;
16390 let prefersSlot3 = 1;
16392 def M2_mpyud_hl_s1 : HInst<
16393 (outs DoubleRegs:$Rdd32),
16394 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16395 "$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16396 tc_c21d7447, TypeM>, Enc_be32a5 {
16397 let Inst{7-5} = 0b010;
16398 let Inst{13-13} = 0b0;
16399 let Inst{31-21} = 0b11100100110;
16400 let prefersSlot3 = 1;
16402 def M2_mpyud_lh_s0 : HInst<
16403 (outs DoubleRegs:$Rdd32),
16404 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16405 "$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16406 tc_c21d7447, TypeM>, Enc_be32a5 {
16407 let Inst{7-5} = 0b001;
16408 let Inst{13-13} = 0b0;
16409 let Inst{31-21} = 0b11100100010;
16410 let prefersSlot3 = 1;
16412 def M2_mpyud_lh_s1 : HInst<
16413 (outs DoubleRegs:$Rdd32),
16414 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16415 "$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16416 tc_c21d7447, TypeM>, Enc_be32a5 {
16417 let Inst{7-5} = 0b001;
16418 let Inst{13-13} = 0b0;
16419 let Inst{31-21} = 0b11100100110;
16420 let prefersSlot3 = 1;
16422 def M2_mpyud_ll_s0 : HInst<
16423 (outs DoubleRegs:$Rdd32),
16424 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16425 "$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16426 tc_c21d7447, TypeM>, Enc_be32a5 {
16427 let Inst{7-5} = 0b000;
16428 let Inst{13-13} = 0b0;
16429 let Inst{31-21} = 0b11100100010;
16430 let prefersSlot3 = 1;
16432 def M2_mpyud_ll_s1 : HInst<
16433 (outs DoubleRegs:$Rdd32),
16434 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16435 "$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16436 tc_c21d7447, TypeM>, Enc_be32a5 {
16437 let Inst{7-5} = 0b000;
16438 let Inst{13-13} = 0b0;
16439 let Inst{31-21} = 0b11100100110;
16440 let prefersSlot3 = 1;
16442 def M2_mpyud_nac_hh_s0 : HInst<
16443 (outs DoubleRegs:$Rxx32),
16444 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16445 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16446 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16447 let Inst{7-5} = 0b011;
16448 let Inst{13-13} = 0b0;
16449 let Inst{31-21} = 0b11100110011;
16450 let prefersSlot3 = 1;
16451 let Constraints = "$Rxx32 = $Rxx32in";
16453 def M2_mpyud_nac_hh_s1 : HInst<
16454 (outs DoubleRegs:$Rxx32),
16455 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16456 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16457 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16458 let Inst{7-5} = 0b011;
16459 let Inst{13-13} = 0b0;
16460 let Inst{31-21} = 0b11100110111;
16461 let prefersSlot3 = 1;
16462 let Constraints = "$Rxx32 = $Rxx32in";
16464 def M2_mpyud_nac_hl_s0 : HInst<
16465 (outs DoubleRegs:$Rxx32),
16466 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16467 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16468 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16469 let Inst{7-5} = 0b010;
16470 let Inst{13-13} = 0b0;
16471 let Inst{31-21} = 0b11100110011;
16472 let prefersSlot3 = 1;
16473 let Constraints = "$Rxx32 = $Rxx32in";
16475 def M2_mpyud_nac_hl_s1 : HInst<
16476 (outs DoubleRegs:$Rxx32),
16477 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16478 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16479 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16480 let Inst{7-5} = 0b010;
16481 let Inst{13-13} = 0b0;
16482 let Inst{31-21} = 0b11100110111;
16483 let prefersSlot3 = 1;
16484 let Constraints = "$Rxx32 = $Rxx32in";
16486 def M2_mpyud_nac_lh_s0 : HInst<
16487 (outs DoubleRegs:$Rxx32),
16488 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16489 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16490 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16491 let Inst{7-5} = 0b001;
16492 let Inst{13-13} = 0b0;
16493 let Inst{31-21} = 0b11100110011;
16494 let prefersSlot3 = 1;
16495 let Constraints = "$Rxx32 = $Rxx32in";
16497 def M2_mpyud_nac_lh_s1 : HInst<
16498 (outs DoubleRegs:$Rxx32),
16499 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16500 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16501 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16502 let Inst{7-5} = 0b001;
16503 let Inst{13-13} = 0b0;
16504 let Inst{31-21} = 0b11100110111;
16505 let prefersSlot3 = 1;
16506 let Constraints = "$Rxx32 = $Rxx32in";
16508 def M2_mpyud_nac_ll_s0 : HInst<
16509 (outs DoubleRegs:$Rxx32),
16510 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16511 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16512 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16513 let Inst{7-5} = 0b000;
16514 let Inst{13-13} = 0b0;
16515 let Inst{31-21} = 0b11100110011;
16516 let prefersSlot3 = 1;
16517 let Constraints = "$Rxx32 = $Rxx32in";
16519 def M2_mpyud_nac_ll_s1 : HInst<
16520 (outs DoubleRegs:$Rxx32),
16521 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16522 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16523 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16524 let Inst{7-5} = 0b000;
16525 let Inst{13-13} = 0b0;
16526 let Inst{31-21} = 0b11100110111;
16527 let prefersSlot3 = 1;
16528 let Constraints = "$Rxx32 = $Rxx32in";
16530 def M2_mpyui : HInst<
16531 (outs IntRegs:$Rd32),
16532 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16533 "$Rd32 = mpyui($Rs32,$Rt32)",
16534 tc_c21d7447, TypeM> {
16535 let hasNewValue = 1;
16536 let opNewValue = 0;
16537 let isPseudo = 1;
16538 let isCodeGenOnly = 1;
16540 def M2_nacci : HInst<
16541 (outs IntRegs:$Rx32),
16542 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16543 "$Rx32 -= add($Rs32,$Rt32)",
16544 tc_2c13e7f5, TypeM>, Enc_2ae154 {
16545 let Inst{7-5} = 0b001;
16546 let Inst{13-13} = 0b0;
16547 let Inst{31-21} = 0b11101111100;
16548 let hasNewValue = 1;
16549 let opNewValue = 0;
16550 let prefersSlot3 = 1;
16551 let InputType = "reg";
16552 let Constraints = "$Rx32 = $Rx32in";
16554 def M2_naccii : HInst<
16555 (outs IntRegs:$Rx32),
16556 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16557 "$Rx32 -= add($Rs32,#$Ii)",
16558 tc_2c13e7f5, TypeM>, Enc_c90aca {
16559 let Inst{13-13} = 0b0;
16560 let Inst{31-21} = 0b11100010100;
16561 let hasNewValue = 1;
16562 let opNewValue = 0;
16563 let prefersSlot3 = 1;
16564 let InputType = "imm";
16565 let isExtendable = 1;
16566 let opExtendable = 3;
16567 let isExtentSigned = 1;
16568 let opExtentBits = 8;
16569 let opExtentAlign = 0;
16570 let Constraints = "$Rx32 = $Rx32in";
16572 def M2_subacc : HInst<
16573 (outs IntRegs:$Rx32),
16574 (ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16575 "$Rx32 += sub($Rt32,$Rs32)",
16576 tc_2c13e7f5, TypeM>, Enc_a568d4 {
16577 let Inst{7-5} = 0b011;
16578 let Inst{13-13} = 0b0;
16579 let Inst{31-21} = 0b11101111000;
16580 let hasNewValue = 1;
16581 let opNewValue = 0;
16582 let prefersSlot3 = 1;
16583 let InputType = "reg";
16584 let Constraints = "$Rx32 = $Rx32in";
16586 def M2_vabsdiffh : HInst<
16587 (outs DoubleRegs:$Rdd32),
16588 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16589 "$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16590 tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16591 let Inst{7-5} = 0b000;
16592 let Inst{13-13} = 0b0;
16593 let Inst{31-21} = 0b11101000011;
16594 let prefersSlot3 = 1;
16596 def M2_vabsdiffw : HInst<
16597 (outs DoubleRegs:$Rdd32),
16598 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16599 "$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16600 tc_0dfac0a7, TypeM>, Enc_ea23e4 {
16601 let Inst{7-5} = 0b000;
16602 let Inst{13-13} = 0b0;
16603 let Inst{31-21} = 0b11101000001;
16604 let prefersSlot3 = 1;
16606 def M2_vcmac_s0_sat_i : HInst<
16607 (outs DoubleRegs:$Rxx32),
16608 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16609 "$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16610 tc_7f8ae742, TypeM>, Enc_88c16c {
16611 let Inst{7-5} = 0b100;
16612 let Inst{13-13} = 0b0;
16613 let Inst{31-21} = 0b11101010010;
16614 let prefersSlot3 = 1;
16615 let Defs = [USR_OVF];
16616 let Constraints = "$Rxx32 = $Rxx32in";
16618 def M2_vcmac_s0_sat_r : HInst<
16619 (outs DoubleRegs:$Rxx32),
16620 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16621 "$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16622 tc_7f8ae742, TypeM>, Enc_88c16c {
16623 let Inst{7-5} = 0b100;
16624 let Inst{13-13} = 0b0;
16625 let Inst{31-21} = 0b11101010001;
16626 let prefersSlot3 = 1;
16627 let Defs = [USR_OVF];
16628 let Constraints = "$Rxx32 = $Rxx32in";
16630 def M2_vcmpy_s0_sat_i : HInst<
16631 (outs DoubleRegs:$Rdd32),
16632 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16633 "$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16634 tc_c21d7447, TypeM>, Enc_a56825 {
16635 let Inst{7-5} = 0b110;
16636 let Inst{13-13} = 0b0;
16637 let Inst{31-21} = 0b11101000010;
16638 let prefersSlot3 = 1;
16639 let Defs = [USR_OVF];
16641 def M2_vcmpy_s0_sat_r : HInst<
16642 (outs DoubleRegs:$Rdd32),
16643 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16644 "$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16645 tc_c21d7447, TypeM>, Enc_a56825 {
16646 let Inst{7-5} = 0b110;
16647 let Inst{13-13} = 0b0;
16648 let Inst{31-21} = 0b11101000001;
16649 let prefersSlot3 = 1;
16650 let Defs = [USR_OVF];
16652 def M2_vcmpy_s1_sat_i : HInst<
16653 (outs DoubleRegs:$Rdd32),
16654 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16655 "$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16656 tc_c21d7447, TypeM>, Enc_a56825 {
16657 let Inst{7-5} = 0b110;
16658 let Inst{13-13} = 0b0;
16659 let Inst{31-21} = 0b11101000110;
16660 let prefersSlot3 = 1;
16661 let Defs = [USR_OVF];
16663 def M2_vcmpy_s1_sat_r : HInst<
16664 (outs DoubleRegs:$Rdd32),
16665 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16666 "$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16667 tc_c21d7447, TypeM>, Enc_a56825 {
16668 let Inst{7-5} = 0b110;
16669 let Inst{13-13} = 0b0;
16670 let Inst{31-21} = 0b11101000101;
16671 let prefersSlot3 = 1;
16672 let Defs = [USR_OVF];
16674 def M2_vdmacs_s0 : HInst<
16675 (outs DoubleRegs:$Rxx32),
16676 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16677 "$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16678 tc_7f8ae742, TypeM>, Enc_88c16c {
16679 let Inst{7-5} = 0b100;
16680 let Inst{13-13} = 0b0;
16681 let Inst{31-21} = 0b11101010000;
16682 let prefersSlot3 = 1;
16683 let Defs = [USR_OVF];
16684 let Constraints = "$Rxx32 = $Rxx32in";
16686 def M2_vdmacs_s1 : HInst<
16687 (outs DoubleRegs:$Rxx32),
16688 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16689 "$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16690 tc_7f8ae742, TypeM>, Enc_88c16c {
16691 let Inst{7-5} = 0b100;
16692 let Inst{13-13} = 0b0;
16693 let Inst{31-21} = 0b11101010100;
16694 let prefersSlot3 = 1;
16695 let Defs = [USR_OVF];
16696 let Constraints = "$Rxx32 = $Rxx32in";
16698 def M2_vdmpyrs_s0 : HInst<
16699 (outs IntRegs:$Rd32),
16700 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16701 "$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16702 tc_c21d7447, TypeM>, Enc_d2216a {
16703 let Inst{7-5} = 0b000;
16704 let Inst{13-13} = 0b0;
16705 let Inst{31-21} = 0b11101001000;
16706 let hasNewValue = 1;
16707 let opNewValue = 0;
16708 let prefersSlot3 = 1;
16709 let Defs = [USR_OVF];
16711 def M2_vdmpyrs_s1 : HInst<
16712 (outs IntRegs:$Rd32),
16713 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16714 "$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16715 tc_c21d7447, TypeM>, Enc_d2216a {
16716 let Inst{7-5} = 0b000;
16717 let Inst{13-13} = 0b0;
16718 let Inst{31-21} = 0b11101001100;
16719 let hasNewValue = 1;
16720 let opNewValue = 0;
16721 let prefersSlot3 = 1;
16722 let Defs = [USR_OVF];
16724 def M2_vdmpys_s0 : HInst<
16725 (outs DoubleRegs:$Rdd32),
16726 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16727 "$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16728 tc_c21d7447, TypeM>, Enc_a56825 {
16729 let Inst{7-5} = 0b100;
16730 let Inst{13-13} = 0b0;
16731 let Inst{31-21} = 0b11101000000;
16732 let prefersSlot3 = 1;
16733 let Defs = [USR_OVF];
16735 def M2_vdmpys_s1 : HInst<
16736 (outs DoubleRegs:$Rdd32),
16737 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16738 "$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16739 tc_c21d7447, TypeM>, Enc_a56825 {
16740 let Inst{7-5} = 0b100;
16741 let Inst{13-13} = 0b0;
16742 let Inst{31-21} = 0b11101000100;
16743 let prefersSlot3 = 1;
16744 let Defs = [USR_OVF];
16746 def M2_vmac2 : HInst<
16747 (outs DoubleRegs:$Rxx32),
16748 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16749 "$Rxx32 += vmpyh($Rs32,$Rt32)",
16750 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16751 let Inst{7-5} = 0b001;
16752 let Inst{13-13} = 0b0;
16753 let Inst{31-21} = 0b11100111001;
16754 let prefersSlot3 = 1;
16755 let Constraints = "$Rxx32 = $Rxx32in";
16757 def M2_vmac2es : HInst<
16758 (outs DoubleRegs:$Rxx32),
16759 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16760 "$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16761 tc_7f8ae742, TypeM>, Enc_88c16c {
16762 let Inst{7-5} = 0b010;
16763 let Inst{13-13} = 0b0;
16764 let Inst{31-21} = 0b11101010001;
16765 let prefersSlot3 = 1;
16766 let Constraints = "$Rxx32 = $Rxx32in";
16768 def M2_vmac2es_s0 : HInst<
16769 (outs DoubleRegs:$Rxx32),
16770 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16771 "$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16772 tc_7f8ae742, TypeM>, Enc_88c16c {
16773 let Inst{7-5} = 0b110;
16774 let Inst{13-13} = 0b0;
16775 let Inst{31-21} = 0b11101010000;
16776 let prefersSlot3 = 1;
16777 let Defs = [USR_OVF];
16778 let Constraints = "$Rxx32 = $Rxx32in";
16780 def M2_vmac2es_s1 : HInst<
16781 (outs DoubleRegs:$Rxx32),
16782 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16783 "$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16784 tc_7f8ae742, TypeM>, Enc_88c16c {
16785 let Inst{7-5} = 0b110;
16786 let Inst{13-13} = 0b0;
16787 let Inst{31-21} = 0b11101010100;
16788 let prefersSlot3 = 1;
16789 let Defs = [USR_OVF];
16790 let Constraints = "$Rxx32 = $Rxx32in";
16792 def M2_vmac2s_s0 : HInst<
16793 (outs DoubleRegs:$Rxx32),
16794 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16795 "$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16796 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16797 let Inst{7-5} = 0b101;
16798 let Inst{13-13} = 0b0;
16799 let Inst{31-21} = 0b11100111000;
16800 let prefersSlot3 = 1;
16801 let Defs = [USR_OVF];
16802 let Constraints = "$Rxx32 = $Rxx32in";
16804 def M2_vmac2s_s1 : HInst<
16805 (outs DoubleRegs:$Rxx32),
16806 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16807 "$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16808 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16809 let Inst{7-5} = 0b101;
16810 let Inst{13-13} = 0b0;
16811 let Inst{31-21} = 0b11100111100;
16812 let prefersSlot3 = 1;
16813 let Defs = [USR_OVF];
16814 let Constraints = "$Rxx32 = $Rxx32in";
16816 def M2_vmac2su_s0 : HInst<
16817 (outs DoubleRegs:$Rxx32),
16818 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16819 "$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16820 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16821 let Inst{7-5} = 0b101;
16822 let Inst{13-13} = 0b0;
16823 let Inst{31-21} = 0b11100111011;
16824 let prefersSlot3 = 1;
16825 let Defs = [USR_OVF];
16826 let Constraints = "$Rxx32 = $Rxx32in";
16828 def M2_vmac2su_s1 : HInst<
16829 (outs DoubleRegs:$Rxx32),
16830 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16831 "$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16832 tc_7f8ae742, TypeM>, Enc_61f0b0 {
16833 let Inst{7-5} = 0b101;
16834 let Inst{13-13} = 0b0;
16835 let Inst{31-21} = 0b11100111111;
16836 let prefersSlot3 = 1;
16837 let Defs = [USR_OVF];
16838 let Constraints = "$Rxx32 = $Rxx32in";
16840 def M2_vmpy2es_s0 : HInst<
16841 (outs DoubleRegs:$Rdd32),
16842 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16843 "$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16844 tc_c21d7447, TypeM>, Enc_a56825 {
16845 let Inst{7-5} = 0b110;
16846 let Inst{13-13} = 0b0;
16847 let Inst{31-21} = 0b11101000000;
16848 let prefersSlot3 = 1;
16849 let Defs = [USR_OVF];
16851 def M2_vmpy2es_s1 : HInst<
16852 (outs DoubleRegs:$Rdd32),
16853 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16854 "$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16855 tc_c21d7447, TypeM>, Enc_a56825 {
16856 let Inst{7-5} = 0b110;
16857 let Inst{13-13} = 0b0;
16858 let Inst{31-21} = 0b11101000100;
16859 let prefersSlot3 = 1;
16860 let Defs = [USR_OVF];
16862 def M2_vmpy2s_s0 : HInst<
16863 (outs DoubleRegs:$Rdd32),
16864 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16865 "$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16866 tc_c21d7447, TypeM>, Enc_be32a5 {
16867 let Inst{7-5} = 0b101;
16868 let Inst{13-13} = 0b0;
16869 let Inst{31-21} = 0b11100101000;
16870 let prefersSlot3 = 1;
16871 let Defs = [USR_OVF];
16873 def M2_vmpy2s_s0pack : HInst<
16874 (outs IntRegs:$Rd32),
16875 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16876 "$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16877 tc_c21d7447, TypeM>, Enc_5ab2be {
16878 let Inst{7-5} = 0b111;
16879 let Inst{13-13} = 0b0;
16880 let Inst{31-21} = 0b11101101001;
16881 let hasNewValue = 1;
16882 let opNewValue = 0;
16883 let prefersSlot3 = 1;
16884 let Defs = [USR_OVF];
16886 def M2_vmpy2s_s1 : HInst<
16887 (outs DoubleRegs:$Rdd32),
16888 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16889 "$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16890 tc_c21d7447, TypeM>, Enc_be32a5 {
16891 let Inst{7-5} = 0b101;
16892 let Inst{13-13} = 0b0;
16893 let Inst{31-21} = 0b11100101100;
16894 let prefersSlot3 = 1;
16895 let Defs = [USR_OVF];
16897 def M2_vmpy2s_s1pack : HInst<
16898 (outs IntRegs:$Rd32),
16899 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16900 "$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16901 tc_c21d7447, TypeM>, Enc_5ab2be {
16902 let Inst{7-5} = 0b111;
16903 let Inst{13-13} = 0b0;
16904 let Inst{31-21} = 0b11101101101;
16905 let hasNewValue = 1;
16906 let opNewValue = 0;
16907 let prefersSlot3 = 1;
16908 let Defs = [USR_OVF];
16910 def M2_vmpy2su_s0 : HInst<
16911 (outs DoubleRegs:$Rdd32),
16912 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16913 "$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16914 tc_c21d7447, TypeM>, Enc_be32a5 {
16915 let Inst{7-5} = 0b111;
16916 let Inst{13-13} = 0b0;
16917 let Inst{31-21} = 0b11100101000;
16918 let prefersSlot3 = 1;
16919 let Defs = [USR_OVF];
16921 def M2_vmpy2su_s1 : HInst<
16922 (outs DoubleRegs:$Rdd32),
16923 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16924 "$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16925 tc_c21d7447, TypeM>, Enc_be32a5 {
16926 let Inst{7-5} = 0b111;
16927 let Inst{13-13} = 0b0;
16928 let Inst{31-21} = 0b11100101100;
16929 let prefersSlot3 = 1;
16930 let Defs = [USR_OVF];
16932 def M2_vraddh : HInst<
16933 (outs IntRegs:$Rd32),
16934 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16935 "$Rd32 = vraddh($Rss32,$Rtt32)",
16936 tc_c21d7447, TypeM>, Enc_d2216a {
16937 let Inst{7-5} = 0b111;
16938 let Inst{13-13} = 0b0;
16939 let Inst{31-21} = 0b11101001001;
16940 let hasNewValue = 1;
16941 let opNewValue = 0;
16942 let prefersSlot3 = 1;
16944 def M2_vradduh : HInst<
16945 (outs IntRegs:$Rd32),
16946 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16947 "$Rd32 = vradduh($Rss32,$Rtt32)",
16948 tc_c21d7447, TypeM>, Enc_d2216a {
16949 let Inst{7-5} = 0b001;
16950 let Inst{13-13} = 0b0;
16951 let Inst{31-21} = 0b11101001000;
16952 let hasNewValue = 1;
16953 let opNewValue = 0;
16954 let prefersSlot3 = 1;
16956 def M2_vrcmaci_s0 : HInst<
16957 (outs DoubleRegs:$Rxx32),
16958 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16959 "$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16960 tc_7f8ae742, TypeM>, Enc_88c16c {
16961 let Inst{7-5} = 0b000;
16962 let Inst{13-13} = 0b0;
16963 let Inst{31-21} = 0b11101010000;
16964 let prefersSlot3 = 1;
16965 let Constraints = "$Rxx32 = $Rxx32in";
16967 def M2_vrcmaci_s0c : HInst<
16968 (outs DoubleRegs:$Rxx32),
16969 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16970 "$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16971 tc_7f8ae742, TypeM>, Enc_88c16c {
16972 let Inst{7-5} = 0b000;
16973 let Inst{13-13} = 0b0;
16974 let Inst{31-21} = 0b11101010010;
16975 let prefersSlot3 = 1;
16976 let Constraints = "$Rxx32 = $Rxx32in";
16978 def M2_vrcmacr_s0 : HInst<
16979 (outs DoubleRegs:$Rxx32),
16980 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16981 "$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16982 tc_7f8ae742, TypeM>, Enc_88c16c {
16983 let Inst{7-5} = 0b001;
16984 let Inst{13-13} = 0b0;
16985 let Inst{31-21} = 0b11101010000;
16986 let prefersSlot3 = 1;
16987 let Constraints = "$Rxx32 = $Rxx32in";
16989 def M2_vrcmacr_s0c : HInst<
16990 (outs DoubleRegs:$Rxx32),
16991 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16992 "$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16993 tc_7f8ae742, TypeM>, Enc_88c16c {
16994 let Inst{7-5} = 0b001;
16995 let Inst{13-13} = 0b0;
16996 let Inst{31-21} = 0b11101010011;
16997 let prefersSlot3 = 1;
16998 let Constraints = "$Rxx32 = $Rxx32in";
17000 def M2_vrcmpyi_s0 : HInst<
17001 (outs DoubleRegs:$Rdd32),
17002 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17003 "$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
17004 tc_c21d7447, TypeM>, Enc_a56825 {
17005 let Inst{7-5} = 0b000;
17006 let Inst{13-13} = 0b0;
17007 let Inst{31-21} = 0b11101000000;
17008 let prefersSlot3 = 1;
17010 def M2_vrcmpyi_s0c : HInst<
17011 (outs DoubleRegs:$Rdd32),
17012 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17013 "$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
17014 tc_c21d7447, TypeM>, Enc_a56825 {
17015 let Inst{7-5} = 0b000;
17016 let Inst{13-13} = 0b0;
17017 let Inst{31-21} = 0b11101000010;
17018 let prefersSlot3 = 1;
17020 def M2_vrcmpyr_s0 : HInst<
17021 (outs DoubleRegs:$Rdd32),
17022 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17023 "$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
17024 tc_c21d7447, TypeM>, Enc_a56825 {
17025 let Inst{7-5} = 0b001;
17026 let Inst{13-13} = 0b0;
17027 let Inst{31-21} = 0b11101000000;
17028 let prefersSlot3 = 1;
17030 def M2_vrcmpyr_s0c : HInst<
17031 (outs DoubleRegs:$Rdd32),
17032 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17033 "$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
17034 tc_c21d7447, TypeM>, Enc_a56825 {
17035 let Inst{7-5} = 0b001;
17036 let Inst{13-13} = 0b0;
17037 let Inst{31-21} = 0b11101000011;
17038 let prefersSlot3 = 1;
17040 def M2_vrcmpys_acc_s1 : HInst<
17041 (outs DoubleRegs:$Rxx32),
17042 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17043 "$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
17044 tc_7f8ae742, TypeM> {
17045 let isPseudo = 1;
17046 let Constraints = "$Rxx32 = $Rxx32in";
17048 def M2_vrcmpys_acc_s1_h : HInst<
17049 (outs DoubleRegs:$Rxx32),
17050 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17051 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17052 tc_7f8ae742, TypeM>, Enc_88c16c {
17053 let Inst{7-5} = 0b100;
17054 let Inst{13-13} = 0b0;
17055 let Inst{31-21} = 0b11101010101;
17056 let prefersSlot3 = 1;
17057 let Defs = [USR_OVF];
17058 let Constraints = "$Rxx32 = $Rxx32in";
17060 def M2_vrcmpys_acc_s1_l : HInst<
17061 (outs DoubleRegs:$Rxx32),
17062 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17063 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17064 tc_7f8ae742, TypeM>, Enc_88c16c {
17065 let Inst{7-5} = 0b100;
17066 let Inst{13-13} = 0b0;
17067 let Inst{31-21} = 0b11101010111;
17068 let prefersSlot3 = 1;
17069 let Defs = [USR_OVF];
17070 let Constraints = "$Rxx32 = $Rxx32in";
17072 def M2_vrcmpys_s1 : HInst<
17073 (outs DoubleRegs:$Rdd32),
17074 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17075 "$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
17076 tc_c21d7447, TypeM> {
17077 let isPseudo = 1;
17079 def M2_vrcmpys_s1_h : HInst<
17080 (outs DoubleRegs:$Rdd32),
17081 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17082 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
17083 tc_c21d7447, TypeM>, Enc_a56825 {
17084 let Inst{7-5} = 0b100;
17085 let Inst{13-13} = 0b0;
17086 let Inst{31-21} = 0b11101000101;
17087 let prefersSlot3 = 1;
17088 let Defs = [USR_OVF];
17090 def M2_vrcmpys_s1_l : HInst<
17091 (outs DoubleRegs:$Rdd32),
17092 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17093 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
17094 tc_c21d7447, TypeM>, Enc_a56825 {
17095 let Inst{7-5} = 0b100;
17096 let Inst{13-13} = 0b0;
17097 let Inst{31-21} = 0b11101000111;
17098 let prefersSlot3 = 1;
17099 let Defs = [USR_OVF];
17101 def M2_vrcmpys_s1rp : HInst<
17102 (outs IntRegs:$Rd32),
17103 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17104 "$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
17105 tc_c21d7447, TypeM> {
17106 let hasNewValue = 1;
17107 let opNewValue = 0;
17108 let isPseudo = 1;
17110 def M2_vrcmpys_s1rp_h : HInst<
17111 (outs IntRegs:$Rd32),
17112 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17113 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
17114 tc_c21d7447, TypeM>, Enc_d2216a {
17115 let Inst{7-5} = 0b110;
17116 let Inst{13-13} = 0b0;
17117 let Inst{31-21} = 0b11101001101;
17118 let hasNewValue = 1;
17119 let opNewValue = 0;
17120 let prefersSlot3 = 1;
17121 let Defs = [USR_OVF];
17123 def M2_vrcmpys_s1rp_l : HInst<
17124 (outs IntRegs:$Rd32),
17125 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17126 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
17127 tc_c21d7447, TypeM>, Enc_d2216a {
17128 let Inst{7-5} = 0b111;
17129 let Inst{13-13} = 0b0;
17130 let Inst{31-21} = 0b11101001101;
17131 let hasNewValue = 1;
17132 let opNewValue = 0;
17133 let prefersSlot3 = 1;
17134 let Defs = [USR_OVF];
17136 def M2_vrmac_s0 : HInst<
17137 (outs DoubleRegs:$Rxx32),
17138 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17139 "$Rxx32 += vrmpyh($Rss32,$Rtt32)",
17140 tc_7f8ae742, TypeM>, Enc_88c16c {
17141 let Inst{7-5} = 0b010;
17142 let Inst{13-13} = 0b0;
17143 let Inst{31-21} = 0b11101010000;
17144 let prefersSlot3 = 1;
17145 let Constraints = "$Rxx32 = $Rxx32in";
17147 def M2_vrmpy_s0 : HInst<
17148 (outs DoubleRegs:$Rdd32),
17149 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17150 "$Rdd32 = vrmpyh($Rss32,$Rtt32)",
17151 tc_c21d7447, TypeM>, Enc_a56825 {
17152 let Inst{7-5} = 0b010;
17153 let Inst{13-13} = 0b0;
17154 let Inst{31-21} = 0b11101000000;
17155 let prefersSlot3 = 1;
17157 def M2_xor_xacc : HInst<
17158 (outs IntRegs:$Rx32),
17159 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17160 "$Rx32 ^= xor($Rs32,$Rt32)",
17161 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17162 let Inst{7-5} = 0b011;
17163 let Inst{13-13} = 0b0;
17164 let Inst{31-21} = 0b11101111100;
17165 let hasNewValue = 1;
17166 let opNewValue = 0;
17167 let prefersSlot3 = 1;
17168 let InputType = "reg";
17169 let Constraints = "$Rx32 = $Rx32in";
17171 def M4_and_and : HInst<
17172 (outs IntRegs:$Rx32),
17173 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17174 "$Rx32 &= and($Rs32,$Rt32)",
17175 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17176 let Inst{7-5} = 0b000;
17177 let Inst{13-13} = 0b0;
17178 let Inst{31-21} = 0b11101111010;
17179 let hasNewValue = 1;
17180 let opNewValue = 0;
17181 let prefersSlot3 = 1;
17182 let InputType = "reg";
17183 let Constraints = "$Rx32 = $Rx32in";
17185 def M4_and_andn : HInst<
17186 (outs IntRegs:$Rx32),
17187 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17188 "$Rx32 &= and($Rs32,~$Rt32)",
17189 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17190 let Inst{7-5} = 0b001;
17191 let Inst{13-13} = 0b0;
17192 let Inst{31-21} = 0b11101111001;
17193 let hasNewValue = 1;
17194 let opNewValue = 0;
17195 let prefersSlot3 = 1;
17196 let InputType = "reg";
17197 let Constraints = "$Rx32 = $Rx32in";
17199 def M4_and_or : HInst<
17200 (outs IntRegs:$Rx32),
17201 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17202 "$Rx32 &= or($Rs32,$Rt32)",
17203 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17204 let Inst{7-5} = 0b001;
17205 let Inst{13-13} = 0b0;
17206 let Inst{31-21} = 0b11101111010;
17207 let hasNewValue = 1;
17208 let opNewValue = 0;
17209 let prefersSlot3 = 1;
17210 let InputType = "reg";
17211 let Constraints = "$Rx32 = $Rx32in";
17213 def M4_and_xor : HInst<
17214 (outs IntRegs:$Rx32),
17215 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17216 "$Rx32 &= xor($Rs32,$Rt32)",
17217 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17218 let Inst{7-5} = 0b010;
17219 let Inst{13-13} = 0b0;
17220 let Inst{31-21} = 0b11101111010;
17221 let hasNewValue = 1;
17222 let opNewValue = 0;
17223 let prefersSlot3 = 1;
17224 let InputType = "reg";
17225 let Constraints = "$Rx32 = $Rx32in";
17227 def M4_cmpyi_wh : HInst<
17228 (outs IntRegs:$Rd32),
17229 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17230 "$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17231 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17232 let Inst{7-5} = 0b100;
17233 let Inst{13-13} = 0b0;
17234 let Inst{31-21} = 0b11000101000;
17235 let hasNewValue = 1;
17236 let opNewValue = 0;
17237 let prefersSlot3 = 1;
17238 let Defs = [USR_OVF];
17240 def M4_cmpyi_whc : HInst<
17241 (outs IntRegs:$Rd32),
17242 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17243 "$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17244 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17245 let Inst{7-5} = 0b101;
17246 let Inst{13-13} = 0b0;
17247 let Inst{31-21} = 0b11000101000;
17248 let hasNewValue = 1;
17249 let opNewValue = 0;
17250 let prefersSlot3 = 1;
17251 let Defs = [USR_OVF];
17253 def M4_cmpyr_wh : HInst<
17254 (outs IntRegs:$Rd32),
17255 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17256 "$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17257 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17258 let Inst{7-5} = 0b110;
17259 let Inst{13-13} = 0b0;
17260 let Inst{31-21} = 0b11000101000;
17261 let hasNewValue = 1;
17262 let opNewValue = 0;
17263 let prefersSlot3 = 1;
17264 let Defs = [USR_OVF];
17266 def M4_cmpyr_whc : HInst<
17267 (outs IntRegs:$Rd32),
17268 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17269 "$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17270 tc_c21d7447, TypeS_3op>, Enc_3d5b28 {
17271 let Inst{7-5} = 0b111;
17272 let Inst{13-13} = 0b0;
17273 let Inst{31-21} = 0b11000101000;
17274 let hasNewValue = 1;
17275 let opNewValue = 0;
17276 let prefersSlot3 = 1;
17277 let Defs = [USR_OVF];
17279 def M4_mac_up_s1_sat : HInst<
17280 (outs IntRegs:$Rx32),
17281 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17282 "$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17283 tc_7f8ae742, TypeM>, Enc_2ae154 {
17284 let Inst{7-5} = 0b000;
17285 let Inst{13-13} = 0b0;
17286 let Inst{31-21} = 0b11101111011;
17287 let hasNewValue = 1;
17288 let opNewValue = 0;
17289 let prefersSlot3 = 1;
17290 let Defs = [USR_OVF];
17291 let InputType = "reg";
17292 let Constraints = "$Rx32 = $Rx32in";
17294 def M4_mpyri_addi : HInst<
17295 (outs IntRegs:$Rd32),
17296 (ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17297 "$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17298 tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel {
17299 let Inst{31-24} = 0b11011000;
17300 let hasNewValue = 1;
17301 let opNewValue = 0;
17302 let prefersSlot3 = 1;
17303 let CextOpcode = "M4_mpyri_addr";
17304 let isExtendable = 1;
17305 let opExtendable = 1;
17306 let isExtentSigned = 0;
17307 let opExtentBits = 6;
17308 let opExtentAlign = 0;
17310 def M4_mpyri_addr : HInst<
17311 (outs IntRegs:$Rd32),
17312 (ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17313 "$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17314 tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel {
17315 let Inst{31-23} = 0b110111111;
17316 let hasNewValue = 1;
17317 let opNewValue = 0;
17318 let prefersSlot3 = 1;
17319 let CextOpcode = "M4_mpyri_addr";
17320 let InputType = "imm";
17321 let isExtendable = 1;
17322 let opExtendable = 3;
17323 let isExtentSigned = 0;
17324 let opExtentBits = 6;
17325 let opExtentAlign = 0;
17327 def M4_mpyri_addr_u2 : HInst<
17328 (outs IntRegs:$Rd32),
17329 (ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17330 "$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17331 tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> {
17332 let Inst{31-23} = 0b110111110;
17333 let hasNewValue = 1;
17334 let opNewValue = 0;
17335 let prefersSlot3 = 1;
17337 def M4_mpyrr_addi : HInst<
17338 (outs IntRegs:$Rd32),
17339 (ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17340 "$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17341 tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel {
17342 let Inst{31-23} = 0b110101110;
17343 let hasNewValue = 1;
17344 let opNewValue = 0;
17345 let prefersSlot3 = 1;
17346 let CextOpcode = "M4_mpyrr_addr";
17347 let InputType = "imm";
17348 let isExtendable = 1;
17349 let opExtendable = 1;
17350 let isExtentSigned = 0;
17351 let opExtentBits = 6;
17352 let opExtentAlign = 0;
17354 def M4_mpyrr_addr : HInst<
17355 (outs IntRegs:$Ry32),
17356 (ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17357 "$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17358 tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel {
17359 let Inst{7-5} = 0b000;
17360 let Inst{13-13} = 0b0;
17361 let Inst{31-21} = 0b11100011000;
17362 let hasNewValue = 1;
17363 let opNewValue = 0;
17364 let prefersSlot3 = 1;
17365 let CextOpcode = "M4_mpyrr_addr";
17366 let InputType = "reg";
17367 let Constraints = "$Ry32 = $Ry32in";
17369 def M4_nac_up_s1_sat : HInst<
17370 (outs IntRegs:$Rx32),
17371 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17372 "$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17373 tc_7f8ae742, TypeM>, Enc_2ae154 {
17374 let Inst{7-5} = 0b001;
17375 let Inst{13-13} = 0b0;
17376 let Inst{31-21} = 0b11101111011;
17377 let hasNewValue = 1;
17378 let opNewValue = 0;
17379 let prefersSlot3 = 1;
17380 let Defs = [USR_OVF];
17381 let InputType = "reg";
17382 let Constraints = "$Rx32 = $Rx32in";
17384 def M4_or_and : HInst<
17385 (outs IntRegs:$Rx32),
17386 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17387 "$Rx32 |= and($Rs32,$Rt32)",
17388 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17389 let Inst{7-5} = 0b011;
17390 let Inst{13-13} = 0b0;
17391 let Inst{31-21} = 0b11101111010;
17392 let hasNewValue = 1;
17393 let opNewValue = 0;
17394 let prefersSlot3 = 1;
17395 let InputType = "reg";
17396 let Constraints = "$Rx32 = $Rx32in";
17398 def M4_or_andn : HInst<
17399 (outs IntRegs:$Rx32),
17400 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17401 "$Rx32 |= and($Rs32,~$Rt32)",
17402 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17403 let Inst{7-5} = 0b000;
17404 let Inst{13-13} = 0b0;
17405 let Inst{31-21} = 0b11101111001;
17406 let hasNewValue = 1;
17407 let opNewValue = 0;
17408 let prefersSlot3 = 1;
17409 let InputType = "reg";
17410 let Constraints = "$Rx32 = $Rx32in";
17412 def M4_or_or : HInst<
17413 (outs IntRegs:$Rx32),
17414 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17415 "$Rx32 |= or($Rs32,$Rt32)",
17416 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17417 let Inst{7-5} = 0b000;
17418 let Inst{13-13} = 0b0;
17419 let Inst{31-21} = 0b11101111110;
17420 let hasNewValue = 1;
17421 let opNewValue = 0;
17422 let prefersSlot3 = 1;
17423 let InputType = "reg";
17424 let Constraints = "$Rx32 = $Rx32in";
17426 def M4_or_xor : HInst<
17427 (outs IntRegs:$Rx32),
17428 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17429 "$Rx32 |= xor($Rs32,$Rt32)",
17430 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17431 let Inst{7-5} = 0b001;
17432 let Inst{13-13} = 0b0;
17433 let Inst{31-21} = 0b11101111110;
17434 let hasNewValue = 1;
17435 let opNewValue = 0;
17436 let prefersSlot3 = 1;
17437 let InputType = "reg";
17438 let Constraints = "$Rx32 = $Rx32in";
17440 def M4_pmpyw : HInst<
17441 (outs DoubleRegs:$Rdd32),
17442 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17443 "$Rdd32 = pmpyw($Rs32,$Rt32)",
17444 tc_c21d7447, TypeM>, Enc_be32a5 {
17445 let Inst{7-5} = 0b111;
17446 let Inst{13-13} = 0b0;
17447 let Inst{31-21} = 0b11100101010;
17448 let prefersSlot3 = 1;
17450 def M4_pmpyw_acc : HInst<
17451 (outs DoubleRegs:$Rxx32),
17452 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17453 "$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17454 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17455 let Inst{7-5} = 0b111;
17456 let Inst{13-13} = 0b0;
17457 let Inst{31-21} = 0b11100111001;
17458 let prefersSlot3 = 1;
17459 let Constraints = "$Rxx32 = $Rxx32in";
17461 def M4_vpmpyh : HInst<
17462 (outs DoubleRegs:$Rdd32),
17463 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17464 "$Rdd32 = vpmpyh($Rs32,$Rt32)",
17465 tc_c21d7447, TypeM>, Enc_be32a5 {
17466 let Inst{7-5} = 0b111;
17467 let Inst{13-13} = 0b0;
17468 let Inst{31-21} = 0b11100101110;
17469 let prefersSlot3 = 1;
17471 def M4_vpmpyh_acc : HInst<
17472 (outs DoubleRegs:$Rxx32),
17473 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17474 "$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17475 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17476 let Inst{7-5} = 0b111;
17477 let Inst{13-13} = 0b0;
17478 let Inst{31-21} = 0b11100111101;
17479 let prefersSlot3 = 1;
17480 let Constraints = "$Rxx32 = $Rxx32in";
17482 def M4_vrmpyeh_acc_s0 : HInst<
17483 (outs DoubleRegs:$Rxx32),
17484 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17485 "$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17486 tc_7f8ae742, TypeM>, Enc_88c16c {
17487 let Inst{7-5} = 0b110;
17488 let Inst{13-13} = 0b0;
17489 let Inst{31-21} = 0b11101010001;
17490 let prefersSlot3 = 1;
17491 let Constraints = "$Rxx32 = $Rxx32in";
17493 def M4_vrmpyeh_acc_s1 : HInst<
17494 (outs DoubleRegs:$Rxx32),
17495 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17496 "$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17497 tc_7f8ae742, TypeM>, Enc_88c16c {
17498 let Inst{7-5} = 0b110;
17499 let Inst{13-13} = 0b0;
17500 let Inst{31-21} = 0b11101010101;
17501 let prefersSlot3 = 1;
17502 let Constraints = "$Rxx32 = $Rxx32in";
17504 def M4_vrmpyeh_s0 : HInst<
17505 (outs DoubleRegs:$Rdd32),
17506 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17507 "$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17508 tc_c21d7447, TypeM>, Enc_a56825 {
17509 let Inst{7-5} = 0b100;
17510 let Inst{13-13} = 0b0;
17511 let Inst{31-21} = 0b11101000010;
17512 let prefersSlot3 = 1;
17514 def M4_vrmpyeh_s1 : HInst<
17515 (outs DoubleRegs:$Rdd32),
17516 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17517 "$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17518 tc_c21d7447, TypeM>, Enc_a56825 {
17519 let Inst{7-5} = 0b100;
17520 let Inst{13-13} = 0b0;
17521 let Inst{31-21} = 0b11101000110;
17522 let prefersSlot3 = 1;
17524 def M4_vrmpyoh_acc_s0 : HInst<
17525 (outs DoubleRegs:$Rxx32),
17526 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17527 "$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17528 tc_7f8ae742, TypeM>, Enc_88c16c {
17529 let Inst{7-5} = 0b110;
17530 let Inst{13-13} = 0b0;
17531 let Inst{31-21} = 0b11101010011;
17532 let prefersSlot3 = 1;
17533 let Constraints = "$Rxx32 = $Rxx32in";
17535 def M4_vrmpyoh_acc_s1 : HInst<
17536 (outs DoubleRegs:$Rxx32),
17537 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17538 "$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17539 tc_7f8ae742, TypeM>, Enc_88c16c {
17540 let Inst{7-5} = 0b110;
17541 let Inst{13-13} = 0b0;
17542 let Inst{31-21} = 0b11101010111;
17543 let prefersSlot3 = 1;
17544 let Constraints = "$Rxx32 = $Rxx32in";
17546 def M4_vrmpyoh_s0 : HInst<
17547 (outs DoubleRegs:$Rdd32),
17548 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17549 "$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17550 tc_c21d7447, TypeM>, Enc_a56825 {
17551 let Inst{7-5} = 0b010;
17552 let Inst{13-13} = 0b0;
17553 let Inst{31-21} = 0b11101000001;
17554 let prefersSlot3 = 1;
17556 def M4_vrmpyoh_s1 : HInst<
17557 (outs DoubleRegs:$Rdd32),
17558 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17559 "$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17560 tc_c21d7447, TypeM>, Enc_a56825 {
17561 let Inst{7-5} = 0b010;
17562 let Inst{13-13} = 0b0;
17563 let Inst{31-21} = 0b11101000101;
17564 let prefersSlot3 = 1;
17566 def M4_xor_and : HInst<
17567 (outs IntRegs:$Rx32),
17568 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17569 "$Rx32 ^= and($Rs32,$Rt32)",
17570 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17571 let Inst{7-5} = 0b010;
17572 let Inst{13-13} = 0b0;
17573 let Inst{31-21} = 0b11101111110;
17574 let hasNewValue = 1;
17575 let opNewValue = 0;
17576 let prefersSlot3 = 1;
17577 let InputType = "reg";
17578 let Constraints = "$Rx32 = $Rx32in";
17580 def M4_xor_andn : HInst<
17581 (outs IntRegs:$Rx32),
17582 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17583 "$Rx32 ^= and($Rs32,~$Rt32)",
17584 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17585 let Inst{7-5} = 0b010;
17586 let Inst{13-13} = 0b0;
17587 let Inst{31-21} = 0b11101111001;
17588 let hasNewValue = 1;
17589 let opNewValue = 0;
17590 let prefersSlot3 = 1;
17591 let InputType = "reg";
17592 let Constraints = "$Rx32 = $Rx32in";
17594 def M4_xor_or : HInst<
17595 (outs IntRegs:$Rx32),
17596 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17597 "$Rx32 ^= or($Rs32,$Rt32)",
17598 tc_a4e22bbd, TypeM>, Enc_2ae154 {
17599 let Inst{7-5} = 0b011;
17600 let Inst{13-13} = 0b0;
17601 let Inst{31-21} = 0b11101111110;
17602 let hasNewValue = 1;
17603 let opNewValue = 0;
17604 let prefersSlot3 = 1;
17605 let InputType = "reg";
17606 let Constraints = "$Rx32 = $Rx32in";
17608 def M4_xor_xacc : HInst<
17609 (outs DoubleRegs:$Rxx32),
17610 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17611 "$Rxx32 ^= xor($Rss32,$Rtt32)",
17612 tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
17613 let Inst{7-5} = 0b000;
17614 let Inst{13-13} = 0b0;
17615 let Inst{31-21} = 0b11001010100;
17616 let prefersSlot3 = 1;
17617 let Constraints = "$Rxx32 = $Rxx32in";
17619 def M5_vdmacbsu : HInst<
17620 (outs DoubleRegs:$Rxx32),
17621 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17622 "$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17623 tc_7f8ae742, TypeM>, Enc_88c16c {
17624 let Inst{7-5} = 0b001;
17625 let Inst{13-13} = 0b0;
17626 let Inst{31-21} = 0b11101010001;
17627 let prefersSlot3 = 1;
17628 let Defs = [USR_OVF];
17629 let Constraints = "$Rxx32 = $Rxx32in";
17631 def M5_vdmpybsu : HInst<
17632 (outs DoubleRegs:$Rdd32),
17633 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17634 "$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17635 tc_c21d7447, TypeM>, Enc_a56825 {
17636 let Inst{7-5} = 0b001;
17637 let Inst{13-13} = 0b0;
17638 let Inst{31-21} = 0b11101000101;
17639 let prefersSlot3 = 1;
17640 let Defs = [USR_OVF];
17642 def M5_vmacbsu : HInst<
17643 (outs DoubleRegs:$Rxx32),
17644 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17645 "$Rxx32 += vmpybsu($Rs32,$Rt32)",
17646 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17647 let Inst{7-5} = 0b001;
17648 let Inst{13-13} = 0b0;
17649 let Inst{31-21} = 0b11100111110;
17650 let prefersSlot3 = 1;
17651 let Constraints = "$Rxx32 = $Rxx32in";
17653 def M5_vmacbuu : HInst<
17654 (outs DoubleRegs:$Rxx32),
17655 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17656 "$Rxx32 += vmpybu($Rs32,$Rt32)",
17657 tc_7f8ae742, TypeM>, Enc_61f0b0 {
17658 let Inst{7-5} = 0b001;
17659 let Inst{13-13} = 0b0;
17660 let Inst{31-21} = 0b11100111100;
17661 let prefersSlot3 = 1;
17662 let Constraints = "$Rxx32 = $Rxx32in";
17664 def M5_vmpybsu : HInst<
17665 (outs DoubleRegs:$Rdd32),
17666 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17667 "$Rdd32 = vmpybsu($Rs32,$Rt32)",
17668 tc_c21d7447, TypeM>, Enc_be32a5 {
17669 let Inst{7-5} = 0b001;
17670 let Inst{13-13} = 0b0;
17671 let Inst{31-21} = 0b11100101010;
17672 let prefersSlot3 = 1;
17674 def M5_vmpybuu : HInst<
17675 (outs DoubleRegs:$Rdd32),
17676 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17677 "$Rdd32 = vmpybu($Rs32,$Rt32)",
17678 tc_c21d7447, TypeM>, Enc_be32a5 {
17679 let Inst{7-5} = 0b001;
17680 let Inst{13-13} = 0b0;
17681 let Inst{31-21} = 0b11100101100;
17682 let prefersSlot3 = 1;
17684 def M5_vrmacbsu : HInst<
17685 (outs DoubleRegs:$Rxx32),
17686 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17687 "$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17688 tc_7f8ae742, TypeM>, Enc_88c16c {
17689 let Inst{7-5} = 0b001;
17690 let Inst{13-13} = 0b0;
17691 let Inst{31-21} = 0b11101010110;
17692 let prefersSlot3 = 1;
17693 let Constraints = "$Rxx32 = $Rxx32in";
17695 def M5_vrmacbuu : HInst<
17696 (outs DoubleRegs:$Rxx32),
17697 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17698 "$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17699 tc_7f8ae742, TypeM>, Enc_88c16c {
17700 let Inst{7-5} = 0b001;
17701 let Inst{13-13} = 0b0;
17702 let Inst{31-21} = 0b11101010100;
17703 let prefersSlot3 = 1;
17704 let Constraints = "$Rxx32 = $Rxx32in";
17706 def M5_vrmpybsu : HInst<
17707 (outs DoubleRegs:$Rdd32),
17708 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17709 "$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17710 tc_c21d7447, TypeM>, Enc_a56825 {
17711 let Inst{7-5} = 0b001;
17712 let Inst{13-13} = 0b0;
17713 let Inst{31-21} = 0b11101000110;
17714 let prefersSlot3 = 1;
17716 def M5_vrmpybuu : HInst<
17717 (outs DoubleRegs:$Rdd32),
17718 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17719 "$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17720 tc_c21d7447, TypeM>, Enc_a56825 {
17721 let Inst{7-5} = 0b001;
17722 let Inst{13-13} = 0b0;
17723 let Inst{31-21} = 0b11101000100;
17724 let prefersSlot3 = 1;
17726 def M6_vabsdiffb : HInst<
17727 (outs DoubleRegs:$Rdd32),
17728 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17729 "$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17730 tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17731 let Inst{7-5} = 0b000;
17732 let Inst{13-13} = 0b0;
17733 let Inst{31-21} = 0b11101000111;
17734 let prefersSlot3 = 1;
17736 def M6_vabsdiffub : HInst<
17737 (outs DoubleRegs:$Rdd32),
17738 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17739 "$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17740 tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17741 let Inst{7-5} = 0b000;
17742 let Inst{13-13} = 0b0;
17743 let Inst{31-21} = 0b11101000101;
17744 let prefersSlot3 = 1;
17746 def M7_dcmpyiw : HInst<
17747 (outs DoubleRegs:$Rdd32),
17748 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17749 "$Rdd32 = cmpyiw($Rss32,$Rtt32)",
17750 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17751 let Inst{7-5} = 0b010;
17752 let Inst{13-13} = 0b0;
17753 let Inst{31-21} = 0b11101000011;
17754 let prefersSlot3 = 1;
17756 def M7_dcmpyiw_acc : HInst<
17757 (outs DoubleRegs:$Rxx32),
17758 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17759 "$Rxx32 += cmpyiw($Rss32,$Rtt32)",
17760 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17761 let Inst{7-5} = 0b010;
17762 let Inst{13-13} = 0b0;
17763 let Inst{31-21} = 0b11101010011;
17764 let prefersSlot3 = 1;
17765 let Constraints = "$Rxx32 = $Rxx32in";
17767 def M7_dcmpyiwc : HInst<
17768 (outs DoubleRegs:$Rdd32),
17769 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17770 "$Rdd32 = cmpyiw($Rss32,$Rtt32*)",
17771 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17772 let Inst{7-5} = 0b010;
17773 let Inst{13-13} = 0b0;
17774 let Inst{31-21} = 0b11101000111;
17775 let prefersSlot3 = 1;
17777 def M7_dcmpyiwc_acc : HInst<
17778 (outs DoubleRegs:$Rxx32),
17779 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17780 "$Rxx32 += cmpyiw($Rss32,$Rtt32*)",
17781 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17782 let Inst{7-5} = 0b110;
17783 let Inst{13-13} = 0b0;
17784 let Inst{31-21} = 0b11101010010;
17785 let prefersSlot3 = 1;
17786 let Constraints = "$Rxx32 = $Rxx32in";
17788 def M7_dcmpyrw : HInst<
17789 (outs DoubleRegs:$Rdd32),
17790 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17791 "$Rdd32 = cmpyrw($Rss32,$Rtt32)",
17792 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17793 let Inst{7-5} = 0b010;
17794 let Inst{13-13} = 0b0;
17795 let Inst{31-21} = 0b11101000100;
17796 let prefersSlot3 = 1;
17798 def M7_dcmpyrw_acc : HInst<
17799 (outs DoubleRegs:$Rxx32),
17800 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17801 "$Rxx32 += cmpyrw($Rss32,$Rtt32)",
17802 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17803 let Inst{7-5} = 0b010;
17804 let Inst{13-13} = 0b0;
17805 let Inst{31-21} = 0b11101010100;
17806 let prefersSlot3 = 1;
17807 let Constraints = "$Rxx32 = $Rxx32in";
17809 def M7_dcmpyrwc : HInst<
17810 (outs DoubleRegs:$Rdd32),
17811 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17812 "$Rdd32 = cmpyrw($Rss32,$Rtt32*)",
17813 tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> {
17814 let Inst{7-5} = 0b010;
17815 let Inst{13-13} = 0b0;
17816 let Inst{31-21} = 0b11101000110;
17817 let prefersSlot3 = 1;
17819 def M7_dcmpyrwc_acc : HInst<
17820 (outs DoubleRegs:$Rxx32),
17821 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17822 "$Rxx32 += cmpyrw($Rss32,$Rtt32*)",
17823 tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> {
17824 let Inst{7-5} = 0b010;
17825 let Inst{13-13} = 0b0;
17826 let Inst{31-21} = 0b11101010110;
17827 let prefersSlot3 = 1;
17828 let Constraints = "$Rxx32 = $Rxx32in";
17830 def M7_vdmpy : HInst<
17831 (outs DoubleRegs:$Rdd32),
17832 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17833 "$Rdd32 = vdmpyw($Rss32,$Rtt32)",
17834 tc_5a4b5e58, TypeM>, Requires<[HasV67]> {
17835 let isPseudo = 1;
17836 let isCodeGenOnly = 1;
17838 def M7_vdmpy_acc : HInst<
17839 (outs DoubleRegs:$Rxx32),
17840 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17841 "$Rxx32 += vdmpyw($Rss32,$Rtt32)",
17842 tc_197dce51, TypeM>, Requires<[HasV67]> {
17843 let isPseudo = 1;
17844 let isCodeGenOnly = 1;
17845 let Constraints = "$Rxx32 = $Rxx32in";
17847 def M7_wcmpyiw : HInst<
17848 (outs IntRegs:$Rd32),
17849 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17850 "$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat",
17851 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17852 let Inst{7-5} = 0b000;
17853 let Inst{13-13} = 0b0;
17854 let Inst{31-21} = 0b11101001001;
17855 let hasNewValue = 1;
17856 let opNewValue = 0;
17857 let prefersSlot3 = 1;
17858 let Defs = [USR_OVF];
17860 def M7_wcmpyiw_rnd : HInst<
17861 (outs IntRegs:$Rd32),
17862 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17863 "$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat",
17864 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17865 let Inst{7-5} = 0b000;
17866 let Inst{13-13} = 0b0;
17867 let Inst{31-21} = 0b11101001101;
17868 let hasNewValue = 1;
17869 let opNewValue = 0;
17870 let prefersSlot3 = 1;
17871 let Defs = [USR_OVF];
17873 def M7_wcmpyiwc : HInst<
17874 (outs IntRegs:$Rd32),
17875 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17876 "$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat",
17877 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17878 let Inst{7-5} = 0b100;
17879 let Inst{13-13} = 0b0;
17880 let Inst{31-21} = 0b11101001000;
17881 let hasNewValue = 1;
17882 let opNewValue = 0;
17883 let prefersSlot3 = 1;
17884 let Defs = [USR_OVF];
17886 def M7_wcmpyiwc_rnd : HInst<
17887 (outs IntRegs:$Rd32),
17888 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17889 "$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat",
17890 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17891 let Inst{7-5} = 0b100;
17892 let Inst{13-13} = 0b0;
17893 let Inst{31-21} = 0b11101001100;
17894 let hasNewValue = 1;
17895 let opNewValue = 0;
17896 let prefersSlot3 = 1;
17897 let Defs = [USR_OVF];
17899 def M7_wcmpyrw : HInst<
17900 (outs IntRegs:$Rd32),
17901 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17902 "$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat",
17903 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17904 let Inst{7-5} = 0b000;
17905 let Inst{13-13} = 0b0;
17906 let Inst{31-21} = 0b11101001010;
17907 let hasNewValue = 1;
17908 let opNewValue = 0;
17909 let prefersSlot3 = 1;
17910 let Defs = [USR_OVF];
17912 def M7_wcmpyrw_rnd : HInst<
17913 (outs IntRegs:$Rd32),
17914 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17915 "$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat",
17916 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17917 let Inst{7-5} = 0b000;
17918 let Inst{13-13} = 0b0;
17919 let Inst{31-21} = 0b11101001110;
17920 let hasNewValue = 1;
17921 let opNewValue = 0;
17922 let prefersSlot3 = 1;
17923 let Defs = [USR_OVF];
17925 def M7_wcmpyrwc : HInst<
17926 (outs IntRegs:$Rd32),
17927 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17928 "$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat",
17929 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17930 let Inst{7-5} = 0b000;
17931 let Inst{13-13} = 0b0;
17932 let Inst{31-21} = 0b11101001011;
17933 let hasNewValue = 1;
17934 let opNewValue = 0;
17935 let prefersSlot3 = 1;
17936 let Defs = [USR_OVF];
17938 def M7_wcmpyrwc_rnd : HInst<
17939 (outs IntRegs:$Rd32),
17940 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17941 "$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat",
17942 tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> {
17943 let Inst{7-5} = 0b000;
17944 let Inst{13-13} = 0b0;
17945 let Inst{31-21} = 0b11101001111;
17946 let hasNewValue = 1;
17947 let opNewValue = 0;
17948 let prefersSlot3 = 1;
17949 let Defs = [USR_OVF];
17951 def PS_loadrbabs : HInst<
17952 (outs IntRegs:$Rd32),
17953 (ins u32_0Imm:$Ii),
17954 "$Rd32 = memb(#$Ii)",
17955 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17956 let Inst{24-21} = 0b1000;
17957 let Inst{31-27} = 0b01001;
17958 let hasNewValue = 1;
17959 let opNewValue = 0;
17960 let addrMode = Absolute;
17961 let accessSize = ByteAccess;
17962 let mayLoad = 1;
17963 let isExtended = 1;
17964 let BaseOpcode = "L4_loadrb_abs";
17965 let CextOpcode = "L2_loadrb";
17966 let isPredicable = 1;
17967 let DecoderNamespace = "MustExtend";
17968 let isExtended = 1;
17969 let opExtendable = 1;
17970 let isExtentSigned = 0;
17971 let opExtentBits = 16;
17972 let opExtentAlign = 0;
17974 def PS_loadrdabs : HInst<
17975 (outs DoubleRegs:$Rdd32),
17976 (ins u29_3Imm:$Ii),
17977 "$Rdd32 = memd(#$Ii)",
17978 tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel {
17979 let Inst{24-21} = 0b1110;
17980 let Inst{31-27} = 0b01001;
17981 let addrMode = Absolute;
17982 let accessSize = DoubleWordAccess;
17983 let mayLoad = 1;
17984 let isExtended = 1;
17985 let BaseOpcode = "L4_loadrd_abs";
17986 let CextOpcode = "L2_loadrd";
17987 let isPredicable = 1;
17988 let DecoderNamespace = "MustExtend";
17989 let isExtended = 1;
17990 let opExtendable = 1;
17991 let isExtentSigned = 0;
17992 let opExtentBits = 19;
17993 let opExtentAlign = 3;
17995 def PS_loadrhabs : HInst<
17996 (outs IntRegs:$Rd32),
17997 (ins u31_1Imm:$Ii),
17998 "$Rd32 = memh(#$Ii)",
17999 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
18000 let Inst{24-21} = 0b1010;
18001 let Inst{31-27} = 0b01001;
18002 let hasNewValue = 1;
18003 let opNewValue = 0;
18004 let addrMode = Absolute;
18005 let accessSize = HalfWordAccess;
18006 let mayLoad = 1;
18007 let isExtended = 1;
18008 let BaseOpcode = "L4_loadrh_abs";
18009 let CextOpcode = "L2_loadrh";
18010 let isPredicable = 1;
18011 let DecoderNamespace = "MustExtend";
18012 let isExtended = 1;
18013 let opExtendable = 1;
18014 let isExtentSigned = 0;
18015 let opExtentBits = 17;
18016 let opExtentAlign = 1;
18018 def PS_loadriabs : HInst<
18019 (outs IntRegs:$Rd32),
18020 (ins u30_2Imm:$Ii),
18021 "$Rd32 = memw(#$Ii)",
18022 tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
18023 let Inst{24-21} = 0b1100;
18024 let Inst{31-27} = 0b01001;
18025 let hasNewValue = 1;
18026 let opNewValue = 0;
18027 let addrMode = Absolute;
18028 let accessSize = WordAccess;
18029 let mayLoad = 1;
18030 let isExtended = 1;
18031 let BaseOpcode = "L4_loadri_abs";
18032 let CextOpcode = "L2_loadri";
18033 let isPredicable = 1;
18034 let DecoderNamespace = "MustExtend";
18035 let isExtended = 1;
18036 let opExtendable = 1;
18037 let isExtentSigned = 0;
18038 let opExtentBits = 18;
18039 let opExtentAlign = 2;
18041 def PS_loadrubabs : HInst<
18042 (outs IntRegs:$Rd32),
18043 (ins u32_0Imm:$Ii),
18044 "$Rd32 = memub(#$Ii)",
18045 tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel {
18046 let Inst{24-21} = 0b1001;
18047 let Inst{31-27} = 0b01001;
18048 let hasNewValue = 1;
18049 let opNewValue = 0;
18050 let addrMode = Absolute;
18051 let accessSize = ByteAccess;
18052 let mayLoad = 1;
18053 let isExtended = 1;
18054 let BaseOpcode = "L4_loadrub_abs";
18055 let CextOpcode = "L2_loadrub";
18056 let isPredicable = 1;
18057 let DecoderNamespace = "MustExtend";
18058 let isExtended = 1;
18059 let opExtendable = 1;
18060 let isExtentSigned = 0;
18061 let opExtentBits = 16;
18062 let opExtentAlign = 0;
18064 def PS_loadruhabs : HInst<
18065 (outs IntRegs:$Rd32),
18066 (ins u31_1Imm:$Ii),
18067 "$Rd32 = memuh(#$Ii)",
18068 tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel {
18069 let Inst{24-21} = 0b1011;
18070 let Inst{31-27} = 0b01001;
18071 let hasNewValue = 1;
18072 let opNewValue = 0;
18073 let addrMode = Absolute;
18074 let accessSize = HalfWordAccess;
18075 let mayLoad = 1;
18076 let isExtended = 1;
18077 let BaseOpcode = "L4_loadruh_abs";
18078 let CextOpcode = "L2_loadruh";
18079 let isPredicable = 1;
18080 let DecoderNamespace = "MustExtend";
18081 let isExtended = 1;
18082 let opExtendable = 1;
18083 let isExtentSigned = 0;
18084 let opExtentBits = 17;
18085 let opExtentAlign = 1;
18087 def PS_storerbabs : HInst<
18088 (outs),
18089 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
18090 "memb(#$Ii) = $Rt32",
18091 tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
18092 let Inst{24-21} = 0b0000;
18093 let Inst{31-27} = 0b01001;
18094 let addrMode = Absolute;
18095 let accessSize = ByteAccess;
18096 let isExtended = 1;
18097 let mayStore = 1;
18098 let BaseOpcode = "S2_storerbabs";
18099 let CextOpcode = "S2_storerb";
18100 let isNVStorable = 1;
18101 let isPredicable = 1;
18102 let DecoderNamespace = "MustExtend";
18103 let isExtended = 1;
18104 let opExtendable = 0;
18105 let isExtentSigned = 0;
18106 let opExtentBits = 16;
18107 let opExtentAlign = 0;
18109 def PS_storerbnewabs : HInst<
18110 (outs),
18111 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
18112 "memb(#$Ii) = $Nt8.new",
18113 tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
18114 let Inst{12-11} = 0b00;
18115 let Inst{24-21} = 0b0101;
18116 let Inst{31-27} = 0b01001;
18117 let addrMode = Absolute;
18118 let accessSize = ByteAccess;
18119 let isNVStore = 1;
18120 let isNewValue = 1;
18121 let isExtended = 1;
18122 let isRestrictNoSlot1Store = 1;
18123 let mayStore = 1;
18124 let BaseOpcode = "S2_storerbabs";
18125 let CextOpcode = "S2_storerb";
18126 let isPredicable = 1;
18127 let DecoderNamespace = "MustExtend";
18128 let isExtended = 1;
18129 let opExtendable = 0;
18130 let isExtentSigned = 0;
18131 let opExtentBits = 16;
18132 let opExtentAlign = 0;
18133 let opNewValue = 1;
18135 def PS_storerdabs : HInst<
18136 (outs),
18137 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
18138 "memd(#$Ii) = $Rtt32",
18139 tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
18140 let Inst{24-21} = 0b0110;
18141 let Inst{31-27} = 0b01001;
18142 let addrMode = Absolute;
18143 let accessSize = DoubleWordAccess;
18144 let isExtended = 1;
18145 let mayStore = 1;
18146 let BaseOpcode = "S2_storerdabs";
18147 let CextOpcode = "S2_storerd";
18148 let isPredicable = 1;
18149 let DecoderNamespace = "MustExtend";
18150 let isExtended = 1;
18151 let opExtendable = 0;
18152 let isExtentSigned = 0;
18153 let opExtentBits = 19;
18154 let opExtentAlign = 3;
18156 def PS_storerfabs : HInst<
18157 (outs),
18158 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
18159 "memh(#$Ii) = $Rt32.h",
18160 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18161 let Inst{24-21} = 0b0011;
18162 let Inst{31-27} = 0b01001;
18163 let addrMode = Absolute;
18164 let accessSize = HalfWordAccess;
18165 let isExtended = 1;
18166 let mayStore = 1;
18167 let BaseOpcode = "S2_storerfabs";
18168 let CextOpcode = "S2_storerf";
18169 let isPredicable = 1;
18170 let DecoderNamespace = "MustExtend";
18171 let isExtended = 1;
18172 let opExtendable = 0;
18173 let isExtentSigned = 0;
18174 let opExtentBits = 17;
18175 let opExtentAlign = 1;
18177 def PS_storerhabs : HInst<
18178 (outs),
18179 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
18180 "memh(#$Ii) = $Rt32",
18181 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
18182 let Inst{24-21} = 0b0010;
18183 let Inst{31-27} = 0b01001;
18184 let addrMode = Absolute;
18185 let accessSize = HalfWordAccess;
18186 let isExtended = 1;
18187 let mayStore = 1;
18188 let BaseOpcode = "S2_storerhabs";
18189 let CextOpcode = "S2_storerh";
18190 let isNVStorable = 1;
18191 let isPredicable = 1;
18192 let DecoderNamespace = "MustExtend";
18193 let isExtended = 1;
18194 let opExtendable = 0;
18195 let isExtentSigned = 0;
18196 let opExtentBits = 17;
18197 let opExtentAlign = 1;
18199 def PS_storerhnewabs : HInst<
18200 (outs),
18201 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
18202 "memh(#$Ii) = $Nt8.new",
18203 tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
18204 let Inst{12-11} = 0b01;
18205 let Inst{24-21} = 0b0101;
18206 let Inst{31-27} = 0b01001;
18207 let addrMode = Absolute;
18208 let accessSize = HalfWordAccess;
18209 let isNVStore = 1;
18210 let isNewValue = 1;
18211 let isExtended = 1;
18212 let isRestrictNoSlot1Store = 1;
18213 let mayStore = 1;
18214 let BaseOpcode = "S2_storerhabs";
18215 let CextOpcode = "S2_storerh";
18216 let isPredicable = 1;
18217 let DecoderNamespace = "MustExtend";
18218 let isExtended = 1;
18219 let opExtendable = 0;
18220 let isExtentSigned = 0;
18221 let opExtentBits = 17;
18222 let opExtentAlign = 1;
18223 let opNewValue = 1;
18225 def PS_storeriabs : HInst<
18226 (outs),
18227 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
18228 "memw(#$Ii) = $Rt32",
18229 tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
18230 let Inst{24-21} = 0b0100;
18231 let Inst{31-27} = 0b01001;
18232 let addrMode = Absolute;
18233 let accessSize = WordAccess;
18234 let isExtended = 1;
18235 let mayStore = 1;
18236 let BaseOpcode = "S2_storeriabs";
18237 let CextOpcode = "S2_storeri";
18238 let isNVStorable = 1;
18239 let isPredicable = 1;
18240 let DecoderNamespace = "MustExtend";
18241 let isExtended = 1;
18242 let opExtendable = 0;
18243 let isExtentSigned = 0;
18244 let opExtentBits = 18;
18245 let opExtentAlign = 2;
18247 def PS_storerinewabs : HInst<
18248 (outs),
18249 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
18250 "memw(#$Ii) = $Nt8.new",
18251 tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
18252 let Inst{12-11} = 0b10;
18253 let Inst{24-21} = 0b0101;
18254 let Inst{31-27} = 0b01001;
18255 let addrMode = Absolute;
18256 let accessSize = WordAccess;
18257 let isNVStore = 1;
18258 let isNewValue = 1;
18259 let isExtended = 1;
18260 let isRestrictNoSlot1Store = 1;
18261 let mayStore = 1;
18262 let BaseOpcode = "S2_storeriabs";
18263 let CextOpcode = "S2_storeri";
18264 let isPredicable = 1;
18265 let DecoderNamespace = "MustExtend";
18266 let isExtended = 1;
18267 let opExtendable = 0;
18268 let isExtentSigned = 0;
18269 let opExtentBits = 18;
18270 let opExtentAlign = 2;
18271 let opNewValue = 1;
18273 def R6_release_at_vi : HInst<
18274 (outs),
18275 (ins IntRegs:$Rs32),
18276 "release($Rs32):at",
18277 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18278 let Inst{7-2} = 0b000011;
18279 let Inst{13-13} = 0b0;
18280 let Inst{31-21} = 0b10100000111;
18281 let isSolo = 1;
18282 let mayStore = 1;
18284 def R6_release_st_vi : HInst<
18285 (outs),
18286 (ins IntRegs:$Rs32),
18287 "release($Rs32):st",
18288 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
18289 let Inst{7-2} = 0b001011;
18290 let Inst{13-13} = 0b0;
18291 let Inst{31-21} = 0b10100000111;
18292 let isSolo = 1;
18293 let mayStore = 1;
18295 def S2_addasl_rrri : HInst<
18296 (outs IntRegs:$Rd32),
18297 (ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
18298 "$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
18299 tc_2c13e7f5, TypeS_3op>, Enc_47ef61 {
18300 let Inst{13-13} = 0b0;
18301 let Inst{31-21} = 0b11000100000;
18302 let hasNewValue = 1;
18303 let opNewValue = 0;
18304 let prefersSlot3 = 1;
18306 def S2_allocframe : HInst<
18307 (outs IntRegs:$Rx32),
18308 (ins IntRegs:$Rx32in, u11_3Imm:$Ii),
18309 "allocframe($Rx32,#$Ii):raw",
18310 tc_934753bb, TypeST>, Enc_22c845 {
18311 let Inst{13-11} = 0b000;
18312 let Inst{31-21} = 0b10100000100;
18313 let hasNewValue = 1;
18314 let opNewValue = 0;
18315 let addrMode = BaseImmOffset;
18316 let accessSize = DoubleWordAccess;
18317 let mayStore = 1;
18318 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
18319 let Defs = [R30];
18320 let Constraints = "$Rx32 = $Rx32in";
18322 def S2_asl_i_p : HInst<
18323 (outs DoubleRegs:$Rdd32),
18324 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18325 "$Rdd32 = asl($Rss32,#$Ii)",
18326 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18327 let Inst{7-5} = 0b010;
18328 let Inst{31-21} = 0b10000000000;
18330 def S2_asl_i_p_acc : HInst<
18331 (outs DoubleRegs:$Rxx32),
18332 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18333 "$Rxx32 += asl($Rss32,#$Ii)",
18334 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18335 let Inst{7-5} = 0b110;
18336 let Inst{31-21} = 0b10000010000;
18337 let prefersSlot3 = 1;
18338 let Constraints = "$Rxx32 = $Rxx32in";
18340 def S2_asl_i_p_and : HInst<
18341 (outs DoubleRegs:$Rxx32),
18342 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18343 "$Rxx32 &= asl($Rss32,#$Ii)",
18344 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18345 let Inst{7-5} = 0b010;
18346 let Inst{31-21} = 0b10000010010;
18347 let prefersSlot3 = 1;
18348 let Constraints = "$Rxx32 = $Rxx32in";
18350 def S2_asl_i_p_nac : HInst<
18351 (outs DoubleRegs:$Rxx32),
18352 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18353 "$Rxx32 -= asl($Rss32,#$Ii)",
18354 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18355 let Inst{7-5} = 0b010;
18356 let Inst{31-21} = 0b10000010000;
18357 let prefersSlot3 = 1;
18358 let Constraints = "$Rxx32 = $Rxx32in";
18360 def S2_asl_i_p_or : HInst<
18361 (outs DoubleRegs:$Rxx32),
18362 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18363 "$Rxx32 |= asl($Rss32,#$Ii)",
18364 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18365 let Inst{7-5} = 0b110;
18366 let Inst{31-21} = 0b10000010010;
18367 let prefersSlot3 = 1;
18368 let Constraints = "$Rxx32 = $Rxx32in";
18370 def S2_asl_i_p_xacc : HInst<
18371 (outs DoubleRegs:$Rxx32),
18372 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18373 "$Rxx32 ^= asl($Rss32,#$Ii)",
18374 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18375 let Inst{7-5} = 0b010;
18376 let Inst{31-21} = 0b10000010100;
18377 let prefersSlot3 = 1;
18378 let Constraints = "$Rxx32 = $Rxx32in";
18380 def S2_asl_i_r : HInst<
18381 (outs IntRegs:$Rd32),
18382 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18383 "$Rd32 = asl($Rs32,#$Ii)",
18384 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18385 let Inst{7-5} = 0b010;
18386 let Inst{13-13} = 0b0;
18387 let Inst{31-21} = 0b10001100000;
18388 let hasNewValue = 1;
18389 let opNewValue = 0;
18391 def S2_asl_i_r_acc : HInst<
18392 (outs IntRegs:$Rx32),
18393 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18394 "$Rx32 += asl($Rs32,#$Ii)",
18395 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18396 let Inst{7-5} = 0b110;
18397 let Inst{13-13} = 0b0;
18398 let Inst{31-21} = 0b10001110000;
18399 let hasNewValue = 1;
18400 let opNewValue = 0;
18401 let prefersSlot3 = 1;
18402 let Constraints = "$Rx32 = $Rx32in";
18404 def S2_asl_i_r_and : HInst<
18405 (outs IntRegs:$Rx32),
18406 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18407 "$Rx32 &= asl($Rs32,#$Ii)",
18408 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18409 let Inst{7-5} = 0b010;
18410 let Inst{13-13} = 0b0;
18411 let Inst{31-21} = 0b10001110010;
18412 let hasNewValue = 1;
18413 let opNewValue = 0;
18414 let prefersSlot3 = 1;
18415 let Constraints = "$Rx32 = $Rx32in";
18417 def S2_asl_i_r_nac : HInst<
18418 (outs IntRegs:$Rx32),
18419 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18420 "$Rx32 -= asl($Rs32,#$Ii)",
18421 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18422 let Inst{7-5} = 0b010;
18423 let Inst{13-13} = 0b0;
18424 let Inst{31-21} = 0b10001110000;
18425 let hasNewValue = 1;
18426 let opNewValue = 0;
18427 let prefersSlot3 = 1;
18428 let Constraints = "$Rx32 = $Rx32in";
18430 def S2_asl_i_r_or : HInst<
18431 (outs IntRegs:$Rx32),
18432 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18433 "$Rx32 |= asl($Rs32,#$Ii)",
18434 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18435 let Inst{7-5} = 0b110;
18436 let Inst{13-13} = 0b0;
18437 let Inst{31-21} = 0b10001110010;
18438 let hasNewValue = 1;
18439 let opNewValue = 0;
18440 let prefersSlot3 = 1;
18441 let Constraints = "$Rx32 = $Rx32in";
18443 def S2_asl_i_r_sat : HInst<
18444 (outs IntRegs:$Rd32),
18445 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18446 "$Rd32 = asl($Rs32,#$Ii):sat",
18447 tc_8a825db2, TypeS_2op>, Enc_a05677 {
18448 let Inst{7-5} = 0b010;
18449 let Inst{13-13} = 0b0;
18450 let Inst{31-21} = 0b10001100010;
18451 let hasNewValue = 1;
18452 let opNewValue = 0;
18453 let prefersSlot3 = 1;
18454 let Defs = [USR_OVF];
18456 def S2_asl_i_r_xacc : HInst<
18457 (outs IntRegs:$Rx32),
18458 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18459 "$Rx32 ^= asl($Rs32,#$Ii)",
18460 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18461 let Inst{7-5} = 0b010;
18462 let Inst{13-13} = 0b0;
18463 let Inst{31-21} = 0b10001110100;
18464 let hasNewValue = 1;
18465 let opNewValue = 0;
18466 let prefersSlot3 = 1;
18467 let Constraints = "$Rx32 = $Rx32in";
18469 def S2_asl_i_vh : HInst<
18470 (outs DoubleRegs:$Rdd32),
18471 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18472 "$Rdd32 = vaslh($Rss32,#$Ii)",
18473 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18474 let Inst{7-5} = 0b010;
18475 let Inst{13-12} = 0b00;
18476 let Inst{31-21} = 0b10000000100;
18478 def S2_asl_i_vw : HInst<
18479 (outs DoubleRegs:$Rdd32),
18480 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18481 "$Rdd32 = vaslw($Rss32,#$Ii)",
18482 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18483 let Inst{7-5} = 0b010;
18484 let Inst{13-13} = 0b0;
18485 let Inst{31-21} = 0b10000000010;
18487 def S2_asl_r_p : HInst<
18488 (outs DoubleRegs:$Rdd32),
18489 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18490 "$Rdd32 = asl($Rss32,$Rt32)",
18491 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18492 let Inst{7-5} = 0b100;
18493 let Inst{13-13} = 0b0;
18494 let Inst{31-21} = 0b11000011100;
18496 def S2_asl_r_p_acc : HInst<
18497 (outs DoubleRegs:$Rxx32),
18498 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18499 "$Rxx32 += asl($Rss32,$Rt32)",
18500 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18501 let Inst{7-5} = 0b100;
18502 let Inst{13-13} = 0b0;
18503 let Inst{31-21} = 0b11001011110;
18504 let prefersSlot3 = 1;
18505 let Constraints = "$Rxx32 = $Rxx32in";
18507 def S2_asl_r_p_and : HInst<
18508 (outs DoubleRegs:$Rxx32),
18509 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18510 "$Rxx32 &= asl($Rss32,$Rt32)",
18511 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18512 let Inst{7-5} = 0b100;
18513 let Inst{13-13} = 0b0;
18514 let Inst{31-21} = 0b11001011010;
18515 let prefersSlot3 = 1;
18516 let Constraints = "$Rxx32 = $Rxx32in";
18518 def S2_asl_r_p_nac : HInst<
18519 (outs DoubleRegs:$Rxx32),
18520 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18521 "$Rxx32 -= asl($Rss32,$Rt32)",
18522 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18523 let Inst{7-5} = 0b100;
18524 let Inst{13-13} = 0b0;
18525 let Inst{31-21} = 0b11001011100;
18526 let prefersSlot3 = 1;
18527 let Constraints = "$Rxx32 = $Rxx32in";
18529 def S2_asl_r_p_or : HInst<
18530 (outs DoubleRegs:$Rxx32),
18531 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18532 "$Rxx32 |= asl($Rss32,$Rt32)",
18533 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18534 let Inst{7-5} = 0b100;
18535 let Inst{13-13} = 0b0;
18536 let Inst{31-21} = 0b11001011000;
18537 let prefersSlot3 = 1;
18538 let Constraints = "$Rxx32 = $Rxx32in";
18540 def S2_asl_r_p_xor : HInst<
18541 (outs DoubleRegs:$Rxx32),
18542 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18543 "$Rxx32 ^= asl($Rss32,$Rt32)",
18544 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18545 let Inst{7-5} = 0b100;
18546 let Inst{13-13} = 0b0;
18547 let Inst{31-21} = 0b11001011011;
18548 let prefersSlot3 = 1;
18549 let Constraints = "$Rxx32 = $Rxx32in";
18551 def S2_asl_r_r : HInst<
18552 (outs IntRegs:$Rd32),
18553 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18554 "$Rd32 = asl($Rs32,$Rt32)",
18555 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18556 let Inst{7-5} = 0b100;
18557 let Inst{13-13} = 0b0;
18558 let Inst{31-21} = 0b11000110010;
18559 let hasNewValue = 1;
18560 let opNewValue = 0;
18562 def S2_asl_r_r_acc : HInst<
18563 (outs IntRegs:$Rx32),
18564 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18565 "$Rx32 += asl($Rs32,$Rt32)",
18566 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18567 let Inst{7-5} = 0b100;
18568 let Inst{13-13} = 0b0;
18569 let Inst{31-21} = 0b11001100110;
18570 let hasNewValue = 1;
18571 let opNewValue = 0;
18572 let prefersSlot3 = 1;
18573 let Constraints = "$Rx32 = $Rx32in";
18575 def S2_asl_r_r_and : HInst<
18576 (outs IntRegs:$Rx32),
18577 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18578 "$Rx32 &= asl($Rs32,$Rt32)",
18579 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18580 let Inst{7-5} = 0b100;
18581 let Inst{13-13} = 0b0;
18582 let Inst{31-21} = 0b11001100010;
18583 let hasNewValue = 1;
18584 let opNewValue = 0;
18585 let prefersSlot3 = 1;
18586 let Constraints = "$Rx32 = $Rx32in";
18588 def S2_asl_r_r_nac : HInst<
18589 (outs IntRegs:$Rx32),
18590 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18591 "$Rx32 -= asl($Rs32,$Rt32)",
18592 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18593 let Inst{7-5} = 0b100;
18594 let Inst{13-13} = 0b0;
18595 let Inst{31-21} = 0b11001100100;
18596 let hasNewValue = 1;
18597 let opNewValue = 0;
18598 let prefersSlot3 = 1;
18599 let Constraints = "$Rx32 = $Rx32in";
18601 def S2_asl_r_r_or : HInst<
18602 (outs IntRegs:$Rx32),
18603 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18604 "$Rx32 |= asl($Rs32,$Rt32)",
18605 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18606 let Inst{7-5} = 0b100;
18607 let Inst{13-13} = 0b0;
18608 let Inst{31-21} = 0b11001100000;
18609 let hasNewValue = 1;
18610 let opNewValue = 0;
18611 let prefersSlot3 = 1;
18612 let Constraints = "$Rx32 = $Rx32in";
18614 def S2_asl_r_r_sat : HInst<
18615 (outs IntRegs:$Rd32),
18616 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18617 "$Rd32 = asl($Rs32,$Rt32):sat",
18618 tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18619 let Inst{7-5} = 0b100;
18620 let Inst{13-13} = 0b0;
18621 let Inst{31-21} = 0b11000110000;
18622 let hasNewValue = 1;
18623 let opNewValue = 0;
18624 let prefersSlot3 = 1;
18625 let Defs = [USR_OVF];
18627 def S2_asl_r_vh : HInst<
18628 (outs DoubleRegs:$Rdd32),
18629 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18630 "$Rdd32 = vaslh($Rss32,$Rt32)",
18631 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18632 let Inst{7-5} = 0b100;
18633 let Inst{13-13} = 0b0;
18634 let Inst{31-21} = 0b11000011010;
18636 def S2_asl_r_vw : HInst<
18637 (outs DoubleRegs:$Rdd32),
18638 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18639 "$Rdd32 = vaslw($Rss32,$Rt32)",
18640 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18641 let Inst{7-5} = 0b100;
18642 let Inst{13-13} = 0b0;
18643 let Inst{31-21} = 0b11000011000;
18645 def S2_asr_i_p : HInst<
18646 (outs DoubleRegs:$Rdd32),
18647 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18648 "$Rdd32 = asr($Rss32,#$Ii)",
18649 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
18650 let Inst{7-5} = 0b000;
18651 let Inst{31-21} = 0b10000000000;
18653 def S2_asr_i_p_acc : HInst<
18654 (outs DoubleRegs:$Rxx32),
18655 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18656 "$Rxx32 += asr($Rss32,#$Ii)",
18657 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18658 let Inst{7-5} = 0b100;
18659 let Inst{31-21} = 0b10000010000;
18660 let prefersSlot3 = 1;
18661 let Constraints = "$Rxx32 = $Rxx32in";
18663 def S2_asr_i_p_and : HInst<
18664 (outs DoubleRegs:$Rxx32),
18665 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18666 "$Rxx32 &= asr($Rss32,#$Ii)",
18667 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18668 let Inst{7-5} = 0b000;
18669 let Inst{31-21} = 0b10000010010;
18670 let prefersSlot3 = 1;
18671 let Constraints = "$Rxx32 = $Rxx32in";
18673 def S2_asr_i_p_nac : HInst<
18674 (outs DoubleRegs:$Rxx32),
18675 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18676 "$Rxx32 -= asr($Rss32,#$Ii)",
18677 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
18678 let Inst{7-5} = 0b000;
18679 let Inst{31-21} = 0b10000010000;
18680 let prefersSlot3 = 1;
18681 let Constraints = "$Rxx32 = $Rxx32in";
18683 def S2_asr_i_p_or : HInst<
18684 (outs DoubleRegs:$Rxx32),
18685 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18686 "$Rxx32 |= asr($Rss32,#$Ii)",
18687 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
18688 let Inst{7-5} = 0b100;
18689 let Inst{31-21} = 0b10000010010;
18690 let prefersSlot3 = 1;
18691 let Constraints = "$Rxx32 = $Rxx32in";
18693 def S2_asr_i_p_rnd : HInst<
18694 (outs DoubleRegs:$Rdd32),
18695 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18696 "$Rdd32 = asr($Rss32,#$Ii):rnd",
18697 tc_0dfac0a7, TypeS_2op>, Enc_5eac98 {
18698 let Inst{7-5} = 0b111;
18699 let Inst{31-21} = 0b10000000110;
18700 let prefersSlot3 = 1;
18702 def S2_asr_i_p_rnd_goodsyntax : HInst<
18703 (outs DoubleRegs:$Rdd32),
18704 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18705 "$Rdd32 = asrrnd($Rss32,#$Ii)",
18706 tc_0dfac0a7, TypeS_2op> {
18707 let isPseudo = 1;
18709 def S2_asr_i_r : HInst<
18710 (outs IntRegs:$Rd32),
18711 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18712 "$Rd32 = asr($Rs32,#$Ii)",
18713 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
18714 let Inst{7-5} = 0b000;
18715 let Inst{13-13} = 0b0;
18716 let Inst{31-21} = 0b10001100000;
18717 let hasNewValue = 1;
18718 let opNewValue = 0;
18720 def S2_asr_i_r_acc : HInst<
18721 (outs IntRegs:$Rx32),
18722 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18723 "$Rx32 += asr($Rs32,#$Ii)",
18724 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18725 let Inst{7-5} = 0b100;
18726 let Inst{13-13} = 0b0;
18727 let Inst{31-21} = 0b10001110000;
18728 let hasNewValue = 1;
18729 let opNewValue = 0;
18730 let prefersSlot3 = 1;
18731 let Constraints = "$Rx32 = $Rx32in";
18733 def S2_asr_i_r_and : HInst<
18734 (outs IntRegs:$Rx32),
18735 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18736 "$Rx32 &= asr($Rs32,#$Ii)",
18737 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18738 let Inst{7-5} = 0b000;
18739 let Inst{13-13} = 0b0;
18740 let Inst{31-21} = 0b10001110010;
18741 let hasNewValue = 1;
18742 let opNewValue = 0;
18743 let prefersSlot3 = 1;
18744 let Constraints = "$Rx32 = $Rx32in";
18746 def S2_asr_i_r_nac : HInst<
18747 (outs IntRegs:$Rx32),
18748 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18749 "$Rx32 -= asr($Rs32,#$Ii)",
18750 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
18751 let Inst{7-5} = 0b000;
18752 let Inst{13-13} = 0b0;
18753 let Inst{31-21} = 0b10001110000;
18754 let hasNewValue = 1;
18755 let opNewValue = 0;
18756 let prefersSlot3 = 1;
18757 let Constraints = "$Rx32 = $Rx32in";
18759 def S2_asr_i_r_or : HInst<
18760 (outs IntRegs:$Rx32),
18761 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18762 "$Rx32 |= asr($Rs32,#$Ii)",
18763 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
18764 let Inst{7-5} = 0b100;
18765 let Inst{13-13} = 0b0;
18766 let Inst{31-21} = 0b10001110010;
18767 let hasNewValue = 1;
18768 let opNewValue = 0;
18769 let prefersSlot3 = 1;
18770 let Constraints = "$Rx32 = $Rx32in";
18772 def S2_asr_i_r_rnd : HInst<
18773 (outs IntRegs:$Rd32),
18774 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18775 "$Rd32 = asr($Rs32,#$Ii):rnd",
18776 tc_0dfac0a7, TypeS_2op>, Enc_a05677 {
18777 let Inst{7-5} = 0b000;
18778 let Inst{13-13} = 0b0;
18779 let Inst{31-21} = 0b10001100010;
18780 let hasNewValue = 1;
18781 let opNewValue = 0;
18782 let prefersSlot3 = 1;
18784 def S2_asr_i_r_rnd_goodsyntax : HInst<
18785 (outs IntRegs:$Rd32),
18786 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18787 "$Rd32 = asrrnd($Rs32,#$Ii)",
18788 tc_0dfac0a7, TypeS_2op> {
18789 let hasNewValue = 1;
18790 let opNewValue = 0;
18791 let isPseudo = 1;
18793 def S2_asr_i_svw_trun : HInst<
18794 (outs IntRegs:$Rd32),
18795 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18796 "$Rd32 = vasrw($Rss32,#$Ii)",
18797 tc_f34c1c21, TypeS_2op>, Enc_8dec2e {
18798 let Inst{7-5} = 0b010;
18799 let Inst{13-13} = 0b0;
18800 let Inst{31-21} = 0b10001000110;
18801 let hasNewValue = 1;
18802 let opNewValue = 0;
18803 let prefersSlot3 = 1;
18805 def S2_asr_i_vh : HInst<
18806 (outs DoubleRegs:$Rdd32),
18807 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18808 "$Rdd32 = vasrh($Rss32,#$Ii)",
18809 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
18810 let Inst{7-5} = 0b000;
18811 let Inst{13-12} = 0b00;
18812 let Inst{31-21} = 0b10000000100;
18814 def S2_asr_i_vw : HInst<
18815 (outs DoubleRegs:$Rdd32),
18816 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18817 "$Rdd32 = vasrw($Rss32,#$Ii)",
18818 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
18819 let Inst{7-5} = 0b000;
18820 let Inst{13-13} = 0b0;
18821 let Inst{31-21} = 0b10000000010;
18823 def S2_asr_r_p : HInst<
18824 (outs DoubleRegs:$Rdd32),
18825 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18826 "$Rdd32 = asr($Rss32,$Rt32)",
18827 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18828 let Inst{7-5} = 0b000;
18829 let Inst{13-13} = 0b0;
18830 let Inst{31-21} = 0b11000011100;
18832 def S2_asr_r_p_acc : HInst<
18833 (outs DoubleRegs:$Rxx32),
18834 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18835 "$Rxx32 += asr($Rss32,$Rt32)",
18836 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18837 let Inst{7-5} = 0b000;
18838 let Inst{13-13} = 0b0;
18839 let Inst{31-21} = 0b11001011110;
18840 let prefersSlot3 = 1;
18841 let Constraints = "$Rxx32 = $Rxx32in";
18843 def S2_asr_r_p_and : HInst<
18844 (outs DoubleRegs:$Rxx32),
18845 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18846 "$Rxx32 &= asr($Rss32,$Rt32)",
18847 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18848 let Inst{7-5} = 0b000;
18849 let Inst{13-13} = 0b0;
18850 let Inst{31-21} = 0b11001011010;
18851 let prefersSlot3 = 1;
18852 let Constraints = "$Rxx32 = $Rxx32in";
18854 def S2_asr_r_p_nac : HInst<
18855 (outs DoubleRegs:$Rxx32),
18856 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18857 "$Rxx32 -= asr($Rss32,$Rt32)",
18858 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
18859 let Inst{7-5} = 0b000;
18860 let Inst{13-13} = 0b0;
18861 let Inst{31-21} = 0b11001011100;
18862 let prefersSlot3 = 1;
18863 let Constraints = "$Rxx32 = $Rxx32in";
18865 def S2_asr_r_p_or : HInst<
18866 (outs DoubleRegs:$Rxx32),
18867 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18868 "$Rxx32 |= asr($Rss32,$Rt32)",
18869 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18870 let Inst{7-5} = 0b000;
18871 let Inst{13-13} = 0b0;
18872 let Inst{31-21} = 0b11001011000;
18873 let prefersSlot3 = 1;
18874 let Constraints = "$Rxx32 = $Rxx32in";
18876 def S2_asr_r_p_xor : HInst<
18877 (outs DoubleRegs:$Rxx32),
18878 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18879 "$Rxx32 ^= asr($Rss32,$Rt32)",
18880 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
18881 let Inst{7-5} = 0b000;
18882 let Inst{13-13} = 0b0;
18883 let Inst{31-21} = 0b11001011011;
18884 let prefersSlot3 = 1;
18885 let Constraints = "$Rxx32 = $Rxx32in";
18887 def S2_asr_r_r : HInst<
18888 (outs IntRegs:$Rd32),
18889 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18890 "$Rd32 = asr($Rs32,$Rt32)",
18891 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
18892 let Inst{7-5} = 0b000;
18893 let Inst{13-13} = 0b0;
18894 let Inst{31-21} = 0b11000110010;
18895 let hasNewValue = 1;
18896 let opNewValue = 0;
18898 def S2_asr_r_r_acc : HInst<
18899 (outs IntRegs:$Rx32),
18900 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18901 "$Rx32 += asr($Rs32,$Rt32)",
18902 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18903 let Inst{7-5} = 0b000;
18904 let Inst{13-13} = 0b0;
18905 let Inst{31-21} = 0b11001100110;
18906 let hasNewValue = 1;
18907 let opNewValue = 0;
18908 let prefersSlot3 = 1;
18909 let Constraints = "$Rx32 = $Rx32in";
18911 def S2_asr_r_r_and : HInst<
18912 (outs IntRegs:$Rx32),
18913 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18914 "$Rx32 &= asr($Rs32,$Rt32)",
18915 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18916 let Inst{7-5} = 0b000;
18917 let Inst{13-13} = 0b0;
18918 let Inst{31-21} = 0b11001100010;
18919 let hasNewValue = 1;
18920 let opNewValue = 0;
18921 let prefersSlot3 = 1;
18922 let Constraints = "$Rx32 = $Rx32in";
18924 def S2_asr_r_r_nac : HInst<
18925 (outs IntRegs:$Rx32),
18926 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18927 "$Rx32 -= asr($Rs32,$Rt32)",
18928 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
18929 let Inst{7-5} = 0b000;
18930 let Inst{13-13} = 0b0;
18931 let Inst{31-21} = 0b11001100100;
18932 let hasNewValue = 1;
18933 let opNewValue = 0;
18934 let prefersSlot3 = 1;
18935 let Constraints = "$Rx32 = $Rx32in";
18937 def S2_asr_r_r_or : HInst<
18938 (outs IntRegs:$Rx32),
18939 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18940 "$Rx32 |= asr($Rs32,$Rt32)",
18941 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
18942 let Inst{7-5} = 0b000;
18943 let Inst{13-13} = 0b0;
18944 let Inst{31-21} = 0b11001100000;
18945 let hasNewValue = 1;
18946 let opNewValue = 0;
18947 let prefersSlot3 = 1;
18948 let Constraints = "$Rx32 = $Rx32in";
18950 def S2_asr_r_r_sat : HInst<
18951 (outs IntRegs:$Rd32),
18952 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18953 "$Rd32 = asr($Rs32,$Rt32):sat",
18954 tc_8a825db2, TypeS_3op>, Enc_5ab2be {
18955 let Inst{7-5} = 0b000;
18956 let Inst{13-13} = 0b0;
18957 let Inst{31-21} = 0b11000110000;
18958 let hasNewValue = 1;
18959 let opNewValue = 0;
18960 let prefersSlot3 = 1;
18961 let Defs = [USR_OVF];
18963 def S2_asr_r_svw_trun : HInst<
18964 (outs IntRegs:$Rd32),
18965 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18966 "$Rd32 = vasrw($Rss32,$Rt32)",
18967 tc_f34c1c21, TypeS_3op>, Enc_3d5b28 {
18968 let Inst{7-5} = 0b010;
18969 let Inst{13-13} = 0b0;
18970 let Inst{31-21} = 0b11000101000;
18971 let hasNewValue = 1;
18972 let opNewValue = 0;
18973 let prefersSlot3 = 1;
18975 def S2_asr_r_vh : HInst<
18976 (outs DoubleRegs:$Rdd32),
18977 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18978 "$Rdd32 = vasrh($Rss32,$Rt32)",
18979 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18980 let Inst{7-5} = 0b000;
18981 let Inst{13-13} = 0b0;
18982 let Inst{31-21} = 0b11000011010;
18984 def S2_asr_r_vw : HInst<
18985 (outs DoubleRegs:$Rdd32),
18986 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18987 "$Rdd32 = vasrw($Rss32,$Rt32)",
18988 tc_5da50c4b, TypeS_3op>, Enc_927852 {
18989 let Inst{7-5} = 0b000;
18990 let Inst{13-13} = 0b0;
18991 let Inst{31-21} = 0b11000011000;
18993 def S2_brev : HInst<
18994 (outs IntRegs:$Rd32),
18995 (ins IntRegs:$Rs32),
18996 "$Rd32 = brev($Rs32)",
18997 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
18998 let Inst{13-5} = 0b000000110;
18999 let Inst{31-21} = 0b10001100010;
19000 let hasNewValue = 1;
19001 let opNewValue = 0;
19002 let prefersSlot3 = 1;
19004 def S2_brevp : HInst<
19005 (outs DoubleRegs:$Rdd32),
19006 (ins DoubleRegs:$Rss32),
19007 "$Rdd32 = brev($Rss32)",
19008 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19009 let Inst{13-5} = 0b000000110;
19010 let Inst{31-21} = 0b10000000110;
19011 let prefersSlot3 = 1;
19013 def S2_cabacdecbin : HInst<
19014 (outs DoubleRegs:$Rdd32),
19015 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19016 "$Rdd32 = decbin($Rss32,$Rtt32)",
19017 tc_db596beb, TypeS_3op>, Enc_a56825, Requires<[UseCabac]> {
19018 let Inst{7-5} = 0b110;
19019 let Inst{13-13} = 0b0;
19020 let Inst{31-21} = 0b11000001110;
19021 let isPredicateLate = 1;
19022 let prefersSlot3 = 1;
19023 let Defs = [P0];
19025 def S2_cl0 : HInst<
19026 (outs IntRegs:$Rd32),
19027 (ins IntRegs:$Rs32),
19028 "$Rd32 = cl0($Rs32)",
19029 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19030 let Inst{13-5} = 0b000000101;
19031 let Inst{31-21} = 0b10001100000;
19032 let hasNewValue = 1;
19033 let opNewValue = 0;
19034 let prefersSlot3 = 1;
19036 def S2_cl0p : HInst<
19037 (outs IntRegs:$Rd32),
19038 (ins DoubleRegs:$Rss32),
19039 "$Rd32 = cl0($Rss32)",
19040 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19041 let Inst{13-5} = 0b000000010;
19042 let Inst{31-21} = 0b10001000010;
19043 let hasNewValue = 1;
19044 let opNewValue = 0;
19045 let prefersSlot3 = 1;
19047 def S2_cl1 : HInst<
19048 (outs IntRegs:$Rd32),
19049 (ins IntRegs:$Rs32),
19050 "$Rd32 = cl1($Rs32)",
19051 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19052 let Inst{13-5} = 0b000000110;
19053 let Inst{31-21} = 0b10001100000;
19054 let hasNewValue = 1;
19055 let opNewValue = 0;
19056 let prefersSlot3 = 1;
19058 def S2_cl1p : HInst<
19059 (outs IntRegs:$Rd32),
19060 (ins DoubleRegs:$Rss32),
19061 "$Rd32 = cl1($Rss32)",
19062 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19063 let Inst{13-5} = 0b000000100;
19064 let Inst{31-21} = 0b10001000010;
19065 let hasNewValue = 1;
19066 let opNewValue = 0;
19067 let prefersSlot3 = 1;
19069 def S2_clb : HInst<
19070 (outs IntRegs:$Rd32),
19071 (ins IntRegs:$Rs32),
19072 "$Rd32 = clb($Rs32)",
19073 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19074 let Inst{13-5} = 0b000000100;
19075 let Inst{31-21} = 0b10001100000;
19076 let hasNewValue = 1;
19077 let opNewValue = 0;
19078 let prefersSlot3 = 1;
19080 def S2_clbnorm : HInst<
19081 (outs IntRegs:$Rd32),
19082 (ins IntRegs:$Rs32),
19083 "$Rd32 = normamt($Rs32)",
19084 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19085 let Inst{13-5} = 0b000000111;
19086 let Inst{31-21} = 0b10001100000;
19087 let hasNewValue = 1;
19088 let opNewValue = 0;
19089 let prefersSlot3 = 1;
19091 def S2_clbp : HInst<
19092 (outs IntRegs:$Rd32),
19093 (ins DoubleRegs:$Rss32),
19094 "$Rd32 = clb($Rss32)",
19095 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19096 let Inst{13-5} = 0b000000000;
19097 let Inst{31-21} = 0b10001000010;
19098 let hasNewValue = 1;
19099 let opNewValue = 0;
19100 let prefersSlot3 = 1;
19102 def S2_clrbit_i : HInst<
19103 (outs IntRegs:$Rd32),
19104 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19105 "$Rd32 = clrbit($Rs32,#$Ii)",
19106 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19107 let Inst{7-5} = 0b001;
19108 let Inst{13-13} = 0b0;
19109 let Inst{31-21} = 0b10001100110;
19110 let hasNewValue = 1;
19111 let opNewValue = 0;
19113 def S2_clrbit_r : HInst<
19114 (outs IntRegs:$Rd32),
19115 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19116 "$Rd32 = clrbit($Rs32,$Rt32)",
19117 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19118 let Inst{7-5} = 0b010;
19119 let Inst{13-13} = 0b0;
19120 let Inst{31-21} = 0b11000110100;
19121 let hasNewValue = 1;
19122 let opNewValue = 0;
19124 def S2_ct0 : HInst<
19125 (outs IntRegs:$Rd32),
19126 (ins IntRegs:$Rs32),
19127 "$Rd32 = ct0($Rs32)",
19128 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19129 let Inst{13-5} = 0b000000100;
19130 let Inst{31-21} = 0b10001100010;
19131 let hasNewValue = 1;
19132 let opNewValue = 0;
19133 let prefersSlot3 = 1;
19135 def S2_ct0p : HInst<
19136 (outs IntRegs:$Rd32),
19137 (ins DoubleRegs:$Rss32),
19138 "$Rd32 = ct0($Rss32)",
19139 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19140 let Inst{13-5} = 0b000000010;
19141 let Inst{31-21} = 0b10001000111;
19142 let hasNewValue = 1;
19143 let opNewValue = 0;
19144 let prefersSlot3 = 1;
19146 def S2_ct1 : HInst<
19147 (outs IntRegs:$Rd32),
19148 (ins IntRegs:$Rs32),
19149 "$Rd32 = ct1($Rs32)",
19150 tc_a7bdb22c, TypeS_2op>, Enc_5e2823 {
19151 let Inst{13-5} = 0b000000101;
19152 let Inst{31-21} = 0b10001100010;
19153 let hasNewValue = 1;
19154 let opNewValue = 0;
19155 let prefersSlot3 = 1;
19157 def S2_ct1p : HInst<
19158 (outs IntRegs:$Rd32),
19159 (ins DoubleRegs:$Rss32),
19160 "$Rd32 = ct1($Rss32)",
19161 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
19162 let Inst{13-5} = 0b000000100;
19163 let Inst{31-21} = 0b10001000111;
19164 let hasNewValue = 1;
19165 let opNewValue = 0;
19166 let prefersSlot3 = 1;
19168 def S2_deinterleave : HInst<
19169 (outs DoubleRegs:$Rdd32),
19170 (ins DoubleRegs:$Rss32),
19171 "$Rdd32 = deinterleave($Rss32)",
19172 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19173 let Inst{13-5} = 0b000000100;
19174 let Inst{31-21} = 0b10000000110;
19175 let prefersSlot3 = 1;
19177 def S2_extractu : HInst<
19178 (outs IntRegs:$Rd32),
19179 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19180 "$Rd32 = extractu($Rs32,#$Ii,#$II)",
19181 tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
19182 let Inst{13-13} = 0b0;
19183 let Inst{31-23} = 0b100011010;
19184 let hasNewValue = 1;
19185 let opNewValue = 0;
19186 let prefersSlot3 = 1;
19188 def S2_extractu_rp : HInst<
19189 (outs IntRegs:$Rd32),
19190 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
19191 "$Rd32 = extractu($Rs32,$Rtt32)",
19192 tc_a08b630b, TypeS_3op>, Enc_e07374 {
19193 let Inst{7-5} = 0b000;
19194 let Inst{13-13} = 0b0;
19195 let Inst{31-21} = 0b11001001000;
19196 let hasNewValue = 1;
19197 let opNewValue = 0;
19198 let prefersSlot3 = 1;
19200 def S2_extractup : HInst<
19201 (outs DoubleRegs:$Rdd32),
19202 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19203 "$Rdd32 = extractu($Rss32,#$Ii,#$II)",
19204 tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
19205 let Inst{31-24} = 0b10000001;
19206 let prefersSlot3 = 1;
19208 def S2_extractup_rp : HInst<
19209 (outs DoubleRegs:$Rdd32),
19210 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19211 "$Rdd32 = extractu($Rss32,$Rtt32)",
19212 tc_a08b630b, TypeS_3op>, Enc_a56825 {
19213 let Inst{7-5} = 0b000;
19214 let Inst{13-13} = 0b0;
19215 let Inst{31-21} = 0b11000001000;
19216 let prefersSlot3 = 1;
19218 def S2_insert : HInst<
19219 (outs IntRegs:$Rx32),
19220 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
19221 "$Rx32 = insert($Rs32,#$Ii,#$II)",
19222 tc_bb831a7c, TypeS_2op>, Enc_a1e29d {
19223 let Inst{13-13} = 0b0;
19224 let Inst{31-23} = 0b100011110;
19225 let hasNewValue = 1;
19226 let opNewValue = 0;
19227 let prefersSlot3 = 1;
19228 let Constraints = "$Rx32 = $Rx32in";
19230 def S2_insert_rp : HInst<
19231 (outs IntRegs:$Rx32),
19232 (ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19233 "$Rx32 = insert($Rs32,$Rtt32)",
19234 tc_a4e22bbd, TypeS_3op>, Enc_179b35 {
19235 let Inst{7-5} = 0b000;
19236 let Inst{13-13} = 0b0;
19237 let Inst{31-21} = 0b11001000000;
19238 let hasNewValue = 1;
19239 let opNewValue = 0;
19240 let prefersSlot3 = 1;
19241 let Constraints = "$Rx32 = $Rx32in";
19243 def S2_insertp : HInst<
19244 (outs DoubleRegs:$Rxx32),
19245 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
19246 "$Rxx32 = insert($Rss32,#$Ii,#$II)",
19247 tc_bb831a7c, TypeS_2op>, Enc_143a3c {
19248 let Inst{31-24} = 0b10000011;
19249 let prefersSlot3 = 1;
19250 let Constraints = "$Rxx32 = $Rxx32in";
19252 def S2_insertp_rp : HInst<
19253 (outs DoubleRegs:$Rxx32),
19254 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19255 "$Rxx32 = insert($Rss32,$Rtt32)",
19256 tc_a4e22bbd, TypeS_3op>, Enc_88c16c {
19257 let Inst{7-5} = 0b000;
19258 let Inst{13-13} = 0b0;
19259 let Inst{31-21} = 0b11001010000;
19260 let prefersSlot3 = 1;
19261 let Constraints = "$Rxx32 = $Rxx32in";
19263 def S2_interleave : HInst<
19264 (outs DoubleRegs:$Rdd32),
19265 (ins DoubleRegs:$Rss32),
19266 "$Rdd32 = interleave($Rss32)",
19267 tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb {
19268 let Inst{13-5} = 0b000000101;
19269 let Inst{31-21} = 0b10000000110;
19270 let prefersSlot3 = 1;
19272 def S2_lfsp : HInst<
19273 (outs DoubleRegs:$Rdd32),
19274 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19275 "$Rdd32 = lfs($Rss32,$Rtt32)",
19276 tc_a08b630b, TypeS_3op>, Enc_a56825 {
19277 let Inst{7-5} = 0b110;
19278 let Inst{13-13} = 0b0;
19279 let Inst{31-21} = 0b11000001100;
19280 let prefersSlot3 = 1;
19282 def S2_lsl_r_p : HInst<
19283 (outs DoubleRegs:$Rdd32),
19284 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19285 "$Rdd32 = lsl($Rss32,$Rt32)",
19286 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19287 let Inst{7-5} = 0b110;
19288 let Inst{13-13} = 0b0;
19289 let Inst{31-21} = 0b11000011100;
19291 def S2_lsl_r_p_acc : HInst<
19292 (outs DoubleRegs:$Rxx32),
19293 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19294 "$Rxx32 += lsl($Rss32,$Rt32)",
19295 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19296 let Inst{7-5} = 0b110;
19297 let Inst{13-13} = 0b0;
19298 let Inst{31-21} = 0b11001011110;
19299 let prefersSlot3 = 1;
19300 let Constraints = "$Rxx32 = $Rxx32in";
19302 def S2_lsl_r_p_and : HInst<
19303 (outs DoubleRegs:$Rxx32),
19304 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19305 "$Rxx32 &= lsl($Rss32,$Rt32)",
19306 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19307 let Inst{7-5} = 0b110;
19308 let Inst{13-13} = 0b0;
19309 let Inst{31-21} = 0b11001011010;
19310 let prefersSlot3 = 1;
19311 let Constraints = "$Rxx32 = $Rxx32in";
19313 def S2_lsl_r_p_nac : HInst<
19314 (outs DoubleRegs:$Rxx32),
19315 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19316 "$Rxx32 -= lsl($Rss32,$Rt32)",
19317 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19318 let Inst{7-5} = 0b110;
19319 let Inst{13-13} = 0b0;
19320 let Inst{31-21} = 0b11001011100;
19321 let prefersSlot3 = 1;
19322 let Constraints = "$Rxx32 = $Rxx32in";
19324 def S2_lsl_r_p_or : HInst<
19325 (outs DoubleRegs:$Rxx32),
19326 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19327 "$Rxx32 |= lsl($Rss32,$Rt32)",
19328 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19329 let Inst{7-5} = 0b110;
19330 let Inst{13-13} = 0b0;
19331 let Inst{31-21} = 0b11001011000;
19332 let prefersSlot3 = 1;
19333 let Constraints = "$Rxx32 = $Rxx32in";
19335 def S2_lsl_r_p_xor : HInst<
19336 (outs DoubleRegs:$Rxx32),
19337 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19338 "$Rxx32 ^= lsl($Rss32,$Rt32)",
19339 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19340 let Inst{7-5} = 0b110;
19341 let Inst{13-13} = 0b0;
19342 let Inst{31-21} = 0b11001011011;
19343 let prefersSlot3 = 1;
19344 let Constraints = "$Rxx32 = $Rxx32in";
19346 def S2_lsl_r_r : HInst<
19347 (outs IntRegs:$Rd32),
19348 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19349 "$Rd32 = lsl($Rs32,$Rt32)",
19350 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19351 let Inst{7-5} = 0b110;
19352 let Inst{13-13} = 0b0;
19353 let Inst{31-21} = 0b11000110010;
19354 let hasNewValue = 1;
19355 let opNewValue = 0;
19357 def S2_lsl_r_r_acc : HInst<
19358 (outs IntRegs:$Rx32),
19359 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19360 "$Rx32 += lsl($Rs32,$Rt32)",
19361 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19362 let Inst{7-5} = 0b110;
19363 let Inst{13-13} = 0b0;
19364 let Inst{31-21} = 0b11001100110;
19365 let hasNewValue = 1;
19366 let opNewValue = 0;
19367 let prefersSlot3 = 1;
19368 let Constraints = "$Rx32 = $Rx32in";
19370 def S2_lsl_r_r_and : HInst<
19371 (outs IntRegs:$Rx32),
19372 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19373 "$Rx32 &= lsl($Rs32,$Rt32)",
19374 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19375 let Inst{7-5} = 0b110;
19376 let Inst{13-13} = 0b0;
19377 let Inst{31-21} = 0b11001100010;
19378 let hasNewValue = 1;
19379 let opNewValue = 0;
19380 let prefersSlot3 = 1;
19381 let Constraints = "$Rx32 = $Rx32in";
19383 def S2_lsl_r_r_nac : HInst<
19384 (outs IntRegs:$Rx32),
19385 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19386 "$Rx32 -= lsl($Rs32,$Rt32)",
19387 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19388 let Inst{7-5} = 0b110;
19389 let Inst{13-13} = 0b0;
19390 let Inst{31-21} = 0b11001100100;
19391 let hasNewValue = 1;
19392 let opNewValue = 0;
19393 let prefersSlot3 = 1;
19394 let Constraints = "$Rx32 = $Rx32in";
19396 def S2_lsl_r_r_or : HInst<
19397 (outs IntRegs:$Rx32),
19398 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19399 "$Rx32 |= lsl($Rs32,$Rt32)",
19400 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19401 let Inst{7-5} = 0b110;
19402 let Inst{13-13} = 0b0;
19403 let Inst{31-21} = 0b11001100000;
19404 let hasNewValue = 1;
19405 let opNewValue = 0;
19406 let prefersSlot3 = 1;
19407 let Constraints = "$Rx32 = $Rx32in";
19409 def S2_lsl_r_vh : HInst<
19410 (outs DoubleRegs:$Rdd32),
19411 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19412 "$Rdd32 = vlslh($Rss32,$Rt32)",
19413 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19414 let Inst{7-5} = 0b110;
19415 let Inst{13-13} = 0b0;
19416 let Inst{31-21} = 0b11000011010;
19418 def S2_lsl_r_vw : HInst<
19419 (outs DoubleRegs:$Rdd32),
19420 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19421 "$Rdd32 = vlslw($Rss32,$Rt32)",
19422 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19423 let Inst{7-5} = 0b110;
19424 let Inst{13-13} = 0b0;
19425 let Inst{31-21} = 0b11000011000;
19427 def S2_lsr_i_p : HInst<
19428 (outs DoubleRegs:$Rdd32),
19429 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19430 "$Rdd32 = lsr($Rss32,#$Ii)",
19431 tc_5da50c4b, TypeS_2op>, Enc_5eac98 {
19432 let Inst{7-5} = 0b001;
19433 let Inst{31-21} = 0b10000000000;
19435 def S2_lsr_i_p_acc : HInst<
19436 (outs DoubleRegs:$Rxx32),
19437 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19438 "$Rxx32 += lsr($Rss32,#$Ii)",
19439 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19440 let Inst{7-5} = 0b101;
19441 let Inst{31-21} = 0b10000010000;
19442 let prefersSlot3 = 1;
19443 let Constraints = "$Rxx32 = $Rxx32in";
19445 def S2_lsr_i_p_and : HInst<
19446 (outs DoubleRegs:$Rxx32),
19447 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19448 "$Rxx32 &= lsr($Rss32,#$Ii)",
19449 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19450 let Inst{7-5} = 0b001;
19451 let Inst{31-21} = 0b10000010010;
19452 let prefersSlot3 = 1;
19453 let Constraints = "$Rxx32 = $Rxx32in";
19455 def S2_lsr_i_p_nac : HInst<
19456 (outs DoubleRegs:$Rxx32),
19457 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19458 "$Rxx32 -= lsr($Rss32,#$Ii)",
19459 tc_2c13e7f5, TypeS_2op>, Enc_70fb07 {
19460 let Inst{7-5} = 0b001;
19461 let Inst{31-21} = 0b10000010000;
19462 let prefersSlot3 = 1;
19463 let Constraints = "$Rxx32 = $Rxx32in";
19465 def S2_lsr_i_p_or : HInst<
19466 (outs DoubleRegs:$Rxx32),
19467 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19468 "$Rxx32 |= lsr($Rss32,#$Ii)",
19469 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19470 let Inst{7-5} = 0b101;
19471 let Inst{31-21} = 0b10000010010;
19472 let prefersSlot3 = 1;
19473 let Constraints = "$Rxx32 = $Rxx32in";
19475 def S2_lsr_i_p_xacc : HInst<
19476 (outs DoubleRegs:$Rxx32),
19477 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19478 "$Rxx32 ^= lsr($Rss32,#$Ii)",
19479 tc_a4e22bbd, TypeS_2op>, Enc_70fb07 {
19480 let Inst{7-5} = 0b001;
19481 let Inst{31-21} = 0b10000010100;
19482 let prefersSlot3 = 1;
19483 let Constraints = "$Rxx32 = $Rxx32in";
19485 def S2_lsr_i_r : HInst<
19486 (outs IntRegs:$Rd32),
19487 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19488 "$Rd32 = lsr($Rs32,#$Ii)",
19489 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
19490 let Inst{7-5} = 0b001;
19491 let Inst{13-13} = 0b0;
19492 let Inst{31-21} = 0b10001100000;
19493 let hasNewValue = 1;
19494 let opNewValue = 0;
19496 def S2_lsr_i_r_acc : HInst<
19497 (outs IntRegs:$Rx32),
19498 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19499 "$Rx32 += lsr($Rs32,#$Ii)",
19500 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19501 let Inst{7-5} = 0b101;
19502 let Inst{13-13} = 0b0;
19503 let Inst{31-21} = 0b10001110000;
19504 let hasNewValue = 1;
19505 let opNewValue = 0;
19506 let prefersSlot3 = 1;
19507 let Constraints = "$Rx32 = $Rx32in";
19509 def S2_lsr_i_r_and : HInst<
19510 (outs IntRegs:$Rx32),
19511 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19512 "$Rx32 &= lsr($Rs32,#$Ii)",
19513 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19514 let Inst{7-5} = 0b001;
19515 let Inst{13-13} = 0b0;
19516 let Inst{31-21} = 0b10001110010;
19517 let hasNewValue = 1;
19518 let opNewValue = 0;
19519 let prefersSlot3 = 1;
19520 let Constraints = "$Rx32 = $Rx32in";
19522 def S2_lsr_i_r_nac : HInst<
19523 (outs IntRegs:$Rx32),
19524 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19525 "$Rx32 -= lsr($Rs32,#$Ii)",
19526 tc_2c13e7f5, TypeS_2op>, Enc_28a2dc {
19527 let Inst{7-5} = 0b001;
19528 let Inst{13-13} = 0b0;
19529 let Inst{31-21} = 0b10001110000;
19530 let hasNewValue = 1;
19531 let opNewValue = 0;
19532 let prefersSlot3 = 1;
19533 let Constraints = "$Rx32 = $Rx32in";
19535 def S2_lsr_i_r_or : HInst<
19536 (outs IntRegs:$Rx32),
19537 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19538 "$Rx32 |= lsr($Rs32,#$Ii)",
19539 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19540 let Inst{7-5} = 0b101;
19541 let Inst{13-13} = 0b0;
19542 let Inst{31-21} = 0b10001110010;
19543 let hasNewValue = 1;
19544 let opNewValue = 0;
19545 let prefersSlot3 = 1;
19546 let Constraints = "$Rx32 = $Rx32in";
19548 def S2_lsr_i_r_xacc : HInst<
19549 (outs IntRegs:$Rx32),
19550 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19551 "$Rx32 ^= lsr($Rs32,#$Ii)",
19552 tc_a4e22bbd, TypeS_2op>, Enc_28a2dc {
19553 let Inst{7-5} = 0b001;
19554 let Inst{13-13} = 0b0;
19555 let Inst{31-21} = 0b10001110100;
19556 let hasNewValue = 1;
19557 let opNewValue = 0;
19558 let prefersSlot3 = 1;
19559 let Constraints = "$Rx32 = $Rx32in";
19561 def S2_lsr_i_vh : HInst<
19562 (outs DoubleRegs:$Rdd32),
19563 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19564 "$Rdd32 = vlsrh($Rss32,#$Ii)",
19565 tc_5da50c4b, TypeS_2op>, Enc_12b6e9 {
19566 let Inst{7-5} = 0b001;
19567 let Inst{13-12} = 0b00;
19568 let Inst{31-21} = 0b10000000100;
19570 def S2_lsr_i_vw : HInst<
19571 (outs DoubleRegs:$Rdd32),
19572 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19573 "$Rdd32 = vlsrw($Rss32,#$Ii)",
19574 tc_5da50c4b, TypeS_2op>, Enc_7e5a82 {
19575 let Inst{7-5} = 0b001;
19576 let Inst{13-13} = 0b0;
19577 let Inst{31-21} = 0b10000000010;
19579 def S2_lsr_r_p : HInst<
19580 (outs DoubleRegs:$Rdd32),
19581 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19582 "$Rdd32 = lsr($Rss32,$Rt32)",
19583 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19584 let Inst{7-5} = 0b010;
19585 let Inst{13-13} = 0b0;
19586 let Inst{31-21} = 0b11000011100;
19588 def S2_lsr_r_p_acc : HInst<
19589 (outs DoubleRegs:$Rxx32),
19590 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19591 "$Rxx32 += lsr($Rss32,$Rt32)",
19592 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19593 let Inst{7-5} = 0b010;
19594 let Inst{13-13} = 0b0;
19595 let Inst{31-21} = 0b11001011110;
19596 let prefersSlot3 = 1;
19597 let Constraints = "$Rxx32 = $Rxx32in";
19599 def S2_lsr_r_p_and : HInst<
19600 (outs DoubleRegs:$Rxx32),
19601 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19602 "$Rxx32 &= lsr($Rss32,$Rt32)",
19603 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19604 let Inst{7-5} = 0b010;
19605 let Inst{13-13} = 0b0;
19606 let Inst{31-21} = 0b11001011010;
19607 let prefersSlot3 = 1;
19608 let Constraints = "$Rxx32 = $Rxx32in";
19610 def S2_lsr_r_p_nac : HInst<
19611 (outs DoubleRegs:$Rxx32),
19612 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19613 "$Rxx32 -= lsr($Rss32,$Rt32)",
19614 tc_2c13e7f5, TypeS_3op>, Enc_1aa186 {
19615 let Inst{7-5} = 0b010;
19616 let Inst{13-13} = 0b0;
19617 let Inst{31-21} = 0b11001011100;
19618 let prefersSlot3 = 1;
19619 let Constraints = "$Rxx32 = $Rxx32in";
19621 def S2_lsr_r_p_or : HInst<
19622 (outs DoubleRegs:$Rxx32),
19623 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19624 "$Rxx32 |= lsr($Rss32,$Rt32)",
19625 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19626 let Inst{7-5} = 0b010;
19627 let Inst{13-13} = 0b0;
19628 let Inst{31-21} = 0b11001011000;
19629 let prefersSlot3 = 1;
19630 let Constraints = "$Rxx32 = $Rxx32in";
19632 def S2_lsr_r_p_xor : HInst<
19633 (outs DoubleRegs:$Rxx32),
19634 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19635 "$Rxx32 ^= lsr($Rss32,$Rt32)",
19636 tc_a4e22bbd, TypeS_3op>, Enc_1aa186 {
19637 let Inst{7-5} = 0b010;
19638 let Inst{13-13} = 0b0;
19639 let Inst{31-21} = 0b11001011011;
19640 let prefersSlot3 = 1;
19641 let Constraints = "$Rxx32 = $Rxx32in";
19643 def S2_lsr_r_r : HInst<
19644 (outs IntRegs:$Rd32),
19645 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19646 "$Rd32 = lsr($Rs32,$Rt32)",
19647 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
19648 let Inst{7-5} = 0b010;
19649 let Inst{13-13} = 0b0;
19650 let Inst{31-21} = 0b11000110010;
19651 let hasNewValue = 1;
19652 let opNewValue = 0;
19654 def S2_lsr_r_r_acc : HInst<
19655 (outs IntRegs:$Rx32),
19656 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19657 "$Rx32 += lsr($Rs32,$Rt32)",
19658 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19659 let Inst{7-5} = 0b010;
19660 let Inst{13-13} = 0b0;
19661 let Inst{31-21} = 0b11001100110;
19662 let hasNewValue = 1;
19663 let opNewValue = 0;
19664 let prefersSlot3 = 1;
19665 let Constraints = "$Rx32 = $Rx32in";
19667 def S2_lsr_r_r_and : HInst<
19668 (outs IntRegs:$Rx32),
19669 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19670 "$Rx32 &= lsr($Rs32,$Rt32)",
19671 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19672 let Inst{7-5} = 0b010;
19673 let Inst{13-13} = 0b0;
19674 let Inst{31-21} = 0b11001100010;
19675 let hasNewValue = 1;
19676 let opNewValue = 0;
19677 let prefersSlot3 = 1;
19678 let Constraints = "$Rx32 = $Rx32in";
19680 def S2_lsr_r_r_nac : HInst<
19681 (outs IntRegs:$Rx32),
19682 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19683 "$Rx32 -= lsr($Rs32,$Rt32)",
19684 tc_2c13e7f5, TypeS_3op>, Enc_2ae154 {
19685 let Inst{7-5} = 0b010;
19686 let Inst{13-13} = 0b0;
19687 let Inst{31-21} = 0b11001100100;
19688 let hasNewValue = 1;
19689 let opNewValue = 0;
19690 let prefersSlot3 = 1;
19691 let Constraints = "$Rx32 = $Rx32in";
19693 def S2_lsr_r_r_or : HInst<
19694 (outs IntRegs:$Rx32),
19695 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19696 "$Rx32 |= lsr($Rs32,$Rt32)",
19697 tc_a4e22bbd, TypeS_3op>, Enc_2ae154 {
19698 let Inst{7-5} = 0b010;
19699 let Inst{13-13} = 0b0;
19700 let Inst{31-21} = 0b11001100000;
19701 let hasNewValue = 1;
19702 let opNewValue = 0;
19703 let prefersSlot3 = 1;
19704 let Constraints = "$Rx32 = $Rx32in";
19706 def S2_lsr_r_vh : HInst<
19707 (outs DoubleRegs:$Rdd32),
19708 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19709 "$Rdd32 = vlsrh($Rss32,$Rt32)",
19710 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19711 let Inst{7-5} = 0b010;
19712 let Inst{13-13} = 0b0;
19713 let Inst{31-21} = 0b11000011010;
19715 def S2_lsr_r_vw : HInst<
19716 (outs DoubleRegs:$Rdd32),
19717 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19718 "$Rdd32 = vlsrw($Rss32,$Rt32)",
19719 tc_5da50c4b, TypeS_3op>, Enc_927852 {
19720 let Inst{7-5} = 0b010;
19721 let Inst{13-13} = 0b0;
19722 let Inst{31-21} = 0b11000011000;
19724 def S2_mask : HInst<
19725 (outs IntRegs:$Rd32),
19726 (ins u5_0Imm:$Ii, u5_0Imm:$II),
19727 "$Rd32 = mask(#$Ii,#$II)",
19728 tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19729 let Inst{13-13} = 0b1;
19730 let Inst{20-16} = 0b00000;
19731 let Inst{31-23} = 0b100011010;
19732 let hasNewValue = 1;
19733 let opNewValue = 0;
19734 let prefersSlot3 = 1;
19736 def S2_packhl : HInst<
19737 (outs DoubleRegs:$Rdd32),
19738 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19739 "$Rdd32 = packhl($Rs32,$Rt32)",
19740 tc_713b66bf, TypeALU32_3op>, Enc_be32a5 {
19741 let Inst{7-5} = 0b000;
19742 let Inst{13-13} = 0b0;
19743 let Inst{31-21} = 0b11110101100;
19744 let InputType = "reg";
19746 def S2_parityp : HInst<
19747 (outs IntRegs:$Rd32),
19748 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19749 "$Rd32 = parity($Rss32,$Rtt32)",
19750 tc_a08b630b, TypeALU64>, Enc_d2216a {
19751 let Inst{7-5} = 0b000;
19752 let Inst{13-13} = 0b0;
19753 let Inst{31-21} = 0b11010000000;
19754 let hasNewValue = 1;
19755 let opNewValue = 0;
19756 let prefersSlot3 = 1;
19758 def S2_pstorerbf_io : HInst<
19759 (outs),
19760 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19761 "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19762 tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19763 let Inst{2-2} = 0b0;
19764 let Inst{31-21} = 0b01000100000;
19765 let isPredicated = 1;
19766 let isPredicatedFalse = 1;
19767 let addrMode = BaseImmOffset;
19768 let accessSize = ByteAccess;
19769 let mayStore = 1;
19770 let BaseOpcode = "S2_storerb_io";
19771 let CextOpcode = "S2_storerb";
19772 let InputType = "imm";
19773 let isNVStorable = 1;
19774 let isExtendable = 1;
19775 let opExtendable = 2;
19776 let isExtentSigned = 0;
19777 let opExtentBits = 6;
19778 let opExtentAlign = 0;
19780 def S2_pstorerbf_pi : HInst<
19781 (outs IntRegs:$Rx32),
19782 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19783 "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19784 tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
19785 let Inst{2-2} = 0b1;
19786 let Inst{7-7} = 0b0;
19787 let Inst{13-13} = 0b1;
19788 let Inst{31-21} = 0b10101011000;
19789 let isPredicated = 1;
19790 let isPredicatedFalse = 1;
19791 let addrMode = PostInc;
19792 let accessSize = ByteAccess;
19793 let mayStore = 1;
19794 let BaseOpcode = "S2_storerb_pi";
19795 let isNVStorable = 1;
19796 let Constraints = "$Rx32 = $Rx32in";
19798 def S2_pstorerbf_zomap : HInst<
19799 (outs),
19800 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19801 "if (!$Pv4) memb($Rs32) = $Rt32",
19802 tc_8035e91f, TypeMAPPING> {
19803 let isPseudo = 1;
19804 let isCodeGenOnly = 1;
19806 def S2_pstorerbfnew_pi : HInst<
19807 (outs IntRegs:$Rx32),
19808 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19809 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19810 tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
19811 let Inst{2-2} = 0b1;
19812 let Inst{7-7} = 0b1;
19813 let Inst{13-13} = 0b1;
19814 let Inst{31-21} = 0b10101011000;
19815 let isPredicated = 1;
19816 let isPredicatedFalse = 1;
19817 let addrMode = PostInc;
19818 let accessSize = ByteAccess;
19819 let isPredicatedNew = 1;
19820 let mayStore = 1;
19821 let BaseOpcode = "S2_storerb_pi";
19822 let isNVStorable = 1;
19823 let Constraints = "$Rx32 = $Rx32in";
19825 def S2_pstorerbnewf_io : HInst<
19826 (outs),
19827 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19828 "if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19829 tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19830 let Inst{2-2} = 0b0;
19831 let Inst{12-11} = 0b00;
19832 let Inst{31-21} = 0b01000100101;
19833 let isPredicated = 1;
19834 let isPredicatedFalse = 1;
19835 let addrMode = BaseImmOffset;
19836 let accessSize = ByteAccess;
19837 let isNVStore = 1;
19838 let isNewValue = 1;
19839 let isRestrictNoSlot1Store = 1;
19840 let mayStore = 1;
19841 let BaseOpcode = "S2_storerb_io";
19842 let CextOpcode = "S2_storerb";
19843 let InputType = "imm";
19844 let isExtendable = 1;
19845 let opExtendable = 2;
19846 let isExtentSigned = 0;
19847 let opExtentBits = 6;
19848 let opExtentAlign = 0;
19849 let opNewValue = 3;
19851 def S2_pstorerbnewf_pi : HInst<
19852 (outs IntRegs:$Rx32),
19853 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19854 "if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19855 tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19856 let Inst{2-2} = 0b1;
19857 let Inst{7-7} = 0b0;
19858 let Inst{13-11} = 0b100;
19859 let Inst{31-21} = 0b10101011101;
19860 let isPredicated = 1;
19861 let isPredicatedFalse = 1;
19862 let addrMode = PostInc;
19863 let accessSize = ByteAccess;
19864 let isNVStore = 1;
19865 let isNewValue = 1;
19866 let isRestrictNoSlot1Store = 1;
19867 let mayStore = 1;
19868 let BaseOpcode = "S2_storerb_pi";
19869 let CextOpcode = "S2_storerb";
19870 let opNewValue = 4;
19871 let Constraints = "$Rx32 = $Rx32in";
19873 def S2_pstorerbnewf_zomap : HInst<
19874 (outs),
19875 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19876 "if (!$Pv4) memb($Rs32) = $Nt8.new",
19877 tc_011e0e9d, TypeMAPPING> {
19878 let isPseudo = 1;
19879 let isCodeGenOnly = 1;
19880 let opNewValue = 2;
19882 def S2_pstorerbnewfnew_pi : HInst<
19883 (outs IntRegs:$Rx32),
19884 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19885 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19886 tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19887 let Inst{2-2} = 0b1;
19888 let Inst{7-7} = 0b1;
19889 let Inst{13-11} = 0b100;
19890 let Inst{31-21} = 0b10101011101;
19891 let isPredicated = 1;
19892 let isPredicatedFalse = 1;
19893 let addrMode = PostInc;
19894 let accessSize = ByteAccess;
19895 let isNVStore = 1;
19896 let isPredicatedNew = 1;
19897 let isNewValue = 1;
19898 let isRestrictNoSlot1Store = 1;
19899 let mayStore = 1;
19900 let BaseOpcode = "S2_storerb_pi";
19901 let CextOpcode = "S2_storerb";
19902 let opNewValue = 4;
19903 let Constraints = "$Rx32 = $Rx32in";
19905 def S2_pstorerbnewt_io : HInst<
19906 (outs),
19907 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19908 "if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19909 tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel {
19910 let Inst{2-2} = 0b0;
19911 let Inst{12-11} = 0b00;
19912 let Inst{31-21} = 0b01000000101;
19913 let isPredicated = 1;
19914 let addrMode = BaseImmOffset;
19915 let accessSize = ByteAccess;
19916 let isNVStore = 1;
19917 let isNewValue = 1;
19918 let isRestrictNoSlot1Store = 1;
19919 let mayStore = 1;
19920 let BaseOpcode = "S2_storerb_io";
19921 let CextOpcode = "S2_storerb";
19922 let InputType = "imm";
19923 let isExtendable = 1;
19924 let opExtendable = 2;
19925 let isExtentSigned = 0;
19926 let opExtentBits = 6;
19927 let opExtentAlign = 0;
19928 let opNewValue = 3;
19930 def S2_pstorerbnewt_pi : HInst<
19931 (outs IntRegs:$Rx32),
19932 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19933 "if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19934 tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel {
19935 let Inst{2-2} = 0b0;
19936 let Inst{7-7} = 0b0;
19937 let Inst{13-11} = 0b100;
19938 let Inst{31-21} = 0b10101011101;
19939 let isPredicated = 1;
19940 let addrMode = PostInc;
19941 let accessSize = ByteAccess;
19942 let isNVStore = 1;
19943 let isNewValue = 1;
19944 let isRestrictNoSlot1Store = 1;
19945 let mayStore = 1;
19946 let BaseOpcode = "S2_storerb_pi";
19947 let CextOpcode = "S2_storerb";
19948 let opNewValue = 4;
19949 let Constraints = "$Rx32 = $Rx32in";
19951 def S2_pstorerbnewt_zomap : HInst<
19952 (outs),
19953 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19954 "if ($Pv4) memb($Rs32) = $Nt8.new",
19955 tc_011e0e9d, TypeMAPPING> {
19956 let isPseudo = 1;
19957 let isCodeGenOnly = 1;
19958 let opNewValue = 2;
19960 def S2_pstorerbnewtnew_pi : HInst<
19961 (outs IntRegs:$Rx32),
19962 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19963 "if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19964 tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel {
19965 let Inst{2-2} = 0b0;
19966 let Inst{7-7} = 0b1;
19967 let Inst{13-11} = 0b100;
19968 let Inst{31-21} = 0b10101011101;
19969 let isPredicated = 1;
19970 let addrMode = PostInc;
19971 let accessSize = ByteAccess;
19972 let isNVStore = 1;
19973 let isPredicatedNew = 1;
19974 let isNewValue = 1;
19975 let isRestrictNoSlot1Store = 1;
19976 let mayStore = 1;
19977 let BaseOpcode = "S2_storerb_pi";
19978 let CextOpcode = "S2_storerb";
19979 let opNewValue = 4;
19980 let Constraints = "$Rx32 = $Rx32in";
19982 def S2_pstorerbt_io : HInst<
19983 (outs),
19984 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19985 "if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19986 tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19987 let Inst{2-2} = 0b0;
19988 let Inst{31-21} = 0b01000000000;
19989 let isPredicated = 1;
19990 let addrMode = BaseImmOffset;
19991 let accessSize = ByteAccess;
19992 let mayStore = 1;
19993 let BaseOpcode = "S2_storerb_io";
19994 let CextOpcode = "S2_storerb";
19995 let InputType = "imm";
19996 let isNVStorable = 1;
19997 let isExtendable = 1;
19998 let opExtendable = 2;
19999 let isExtentSigned = 0;
20000 let opExtentBits = 6;
20001 let opExtentAlign = 0;
20003 def S2_pstorerbt_pi : HInst<
20004 (outs IntRegs:$Rx32),
20005 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20006 "if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
20007 tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel {
20008 let Inst{2-2} = 0b0;
20009 let Inst{7-7} = 0b0;
20010 let Inst{13-13} = 0b1;
20011 let Inst{31-21} = 0b10101011000;
20012 let isPredicated = 1;
20013 let addrMode = PostInc;
20014 let accessSize = ByteAccess;
20015 let mayStore = 1;
20016 let BaseOpcode = "S2_storerb_pi";
20017 let isNVStorable = 1;
20018 let Constraints = "$Rx32 = $Rx32in";
20020 def S2_pstorerbt_zomap : HInst<
20021 (outs),
20022 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20023 "if ($Pv4) memb($Rs32) = $Rt32",
20024 tc_8035e91f, TypeMAPPING> {
20025 let isPseudo = 1;
20026 let isCodeGenOnly = 1;
20028 def S2_pstorerbtnew_pi : HInst<
20029 (outs IntRegs:$Rx32),
20030 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20031 "if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
20032 tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel {
20033 let Inst{2-2} = 0b0;
20034 let Inst{7-7} = 0b1;
20035 let Inst{13-13} = 0b1;
20036 let Inst{31-21} = 0b10101011000;
20037 let isPredicated = 1;
20038 let addrMode = PostInc;
20039 let accessSize = ByteAccess;
20040 let isPredicatedNew = 1;
20041 let mayStore = 1;
20042 let BaseOpcode = "S2_storerb_pi";
20043 let isNVStorable = 1;
20044 let Constraints = "$Rx32 = $Rx32in";
20046 def S2_pstorerdf_io : HInst<
20047 (outs),
20048 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20049 "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
20050 tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20051 let Inst{2-2} = 0b0;
20052 let Inst{31-21} = 0b01000100110;
20053 let isPredicated = 1;
20054 let isPredicatedFalse = 1;
20055 let addrMode = BaseImmOffset;
20056 let accessSize = DoubleWordAccess;
20057 let mayStore = 1;
20058 let BaseOpcode = "S2_storerd_io";
20059 let CextOpcode = "S2_storerd";
20060 let InputType = "imm";
20061 let isExtendable = 1;
20062 let opExtendable = 2;
20063 let isExtentSigned = 0;
20064 let opExtentBits = 9;
20065 let opExtentAlign = 3;
20067 def S2_pstorerdf_pi : HInst<
20068 (outs IntRegs:$Rx32),
20069 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20070 "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
20071 tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20072 let Inst{2-2} = 0b1;
20073 let Inst{7-7} = 0b0;
20074 let Inst{13-13} = 0b1;
20075 let Inst{31-21} = 0b10101011110;
20076 let isPredicated = 1;
20077 let isPredicatedFalse = 1;
20078 let addrMode = PostInc;
20079 let accessSize = DoubleWordAccess;
20080 let mayStore = 1;
20081 let BaseOpcode = "S2_storerd_pi";
20082 let CextOpcode = "S2_storerd";
20083 let Constraints = "$Rx32 = $Rx32in";
20085 def S2_pstorerdf_zomap : HInst<
20086 (outs),
20087 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20088 "if (!$Pv4) memd($Rs32) = $Rtt32",
20089 tc_8035e91f, TypeMAPPING> {
20090 let isPseudo = 1;
20091 let isCodeGenOnly = 1;
20093 def S2_pstorerdfnew_pi : HInst<
20094 (outs IntRegs:$Rx32),
20095 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20096 "if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20097 tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20098 let Inst{2-2} = 0b1;
20099 let Inst{7-7} = 0b1;
20100 let Inst{13-13} = 0b1;
20101 let Inst{31-21} = 0b10101011110;
20102 let isPredicated = 1;
20103 let isPredicatedFalse = 1;
20104 let addrMode = PostInc;
20105 let accessSize = DoubleWordAccess;
20106 let isPredicatedNew = 1;
20107 let mayStore = 1;
20108 let BaseOpcode = "S2_storerd_pi";
20109 let CextOpcode = "S2_storerd";
20110 let Constraints = "$Rx32 = $Rx32in";
20112 def S2_pstorerdt_io : HInst<
20113 (outs),
20114 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20115 "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
20116 tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel {
20117 let Inst{2-2} = 0b0;
20118 let Inst{31-21} = 0b01000000110;
20119 let isPredicated = 1;
20120 let addrMode = BaseImmOffset;
20121 let accessSize = DoubleWordAccess;
20122 let mayStore = 1;
20123 let BaseOpcode = "S2_storerd_io";
20124 let CextOpcode = "S2_storerd";
20125 let InputType = "imm";
20126 let isExtendable = 1;
20127 let opExtendable = 2;
20128 let isExtentSigned = 0;
20129 let opExtentBits = 9;
20130 let opExtentAlign = 3;
20132 def S2_pstorerdt_pi : HInst<
20133 (outs IntRegs:$Rx32),
20134 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20135 "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
20136 tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel {
20137 let Inst{2-2} = 0b0;
20138 let Inst{7-7} = 0b0;
20139 let Inst{13-13} = 0b1;
20140 let Inst{31-21} = 0b10101011110;
20141 let isPredicated = 1;
20142 let addrMode = PostInc;
20143 let accessSize = DoubleWordAccess;
20144 let mayStore = 1;
20145 let BaseOpcode = "S2_storerd_pi";
20146 let CextOpcode = "S2_storerd";
20147 let Constraints = "$Rx32 = $Rx32in";
20149 def S2_pstorerdt_zomap : HInst<
20150 (outs),
20151 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
20152 "if ($Pv4) memd($Rs32) = $Rtt32",
20153 tc_8035e91f, TypeMAPPING> {
20154 let isPseudo = 1;
20155 let isCodeGenOnly = 1;
20157 def S2_pstorerdtnew_pi : HInst<
20158 (outs IntRegs:$Rx32),
20159 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20160 "if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
20161 tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel {
20162 let Inst{2-2} = 0b0;
20163 let Inst{7-7} = 0b1;
20164 let Inst{13-13} = 0b1;
20165 let Inst{31-21} = 0b10101011110;
20166 let isPredicated = 1;
20167 let addrMode = PostInc;
20168 let accessSize = DoubleWordAccess;
20169 let isPredicatedNew = 1;
20170 let mayStore = 1;
20171 let BaseOpcode = "S2_storerd_pi";
20172 let CextOpcode = "S2_storerd";
20173 let Constraints = "$Rx32 = $Rx32in";
20175 def S2_pstorerff_io : HInst<
20176 (outs),
20177 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20178 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20179 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20180 let Inst{2-2} = 0b0;
20181 let Inst{31-21} = 0b01000100011;
20182 let isPredicated = 1;
20183 let isPredicatedFalse = 1;
20184 let addrMode = BaseImmOffset;
20185 let accessSize = HalfWordAccess;
20186 let mayStore = 1;
20187 let BaseOpcode = "S2_storerf_io";
20188 let CextOpcode = "S2_storerf";
20189 let InputType = "imm";
20190 let isExtendable = 1;
20191 let opExtendable = 2;
20192 let isExtentSigned = 0;
20193 let opExtentBits = 7;
20194 let opExtentAlign = 1;
20196 def S2_pstorerff_pi : HInst<
20197 (outs IntRegs:$Rx32),
20198 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20199 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20200 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20201 let Inst{2-2} = 0b1;
20202 let Inst{7-7} = 0b0;
20203 let Inst{13-13} = 0b1;
20204 let Inst{31-21} = 0b10101011011;
20205 let isPredicated = 1;
20206 let isPredicatedFalse = 1;
20207 let addrMode = PostInc;
20208 let accessSize = HalfWordAccess;
20209 let mayStore = 1;
20210 let BaseOpcode = "S2_storerf_pi";
20211 let CextOpcode = "S2_storerf";
20212 let Constraints = "$Rx32 = $Rx32in";
20214 def S2_pstorerff_zomap : HInst<
20215 (outs),
20216 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20217 "if (!$Pv4) memh($Rs32) = $Rt32.h",
20218 tc_8035e91f, TypeMAPPING> {
20219 let isPseudo = 1;
20220 let isCodeGenOnly = 1;
20222 def S2_pstorerffnew_pi : HInst<
20223 (outs IntRegs:$Rx32),
20224 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20225 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20226 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20227 let Inst{2-2} = 0b1;
20228 let Inst{7-7} = 0b1;
20229 let Inst{13-13} = 0b1;
20230 let Inst{31-21} = 0b10101011011;
20231 let isPredicated = 1;
20232 let isPredicatedFalse = 1;
20233 let addrMode = PostInc;
20234 let accessSize = HalfWordAccess;
20235 let isPredicatedNew = 1;
20236 let mayStore = 1;
20237 let BaseOpcode = "S2_storerf_pi";
20238 let CextOpcode = "S2_storerf";
20239 let Constraints = "$Rx32 = $Rx32in";
20241 def S2_pstorerft_io : HInst<
20242 (outs),
20243 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20244 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
20245 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20246 let Inst{2-2} = 0b0;
20247 let Inst{31-21} = 0b01000000011;
20248 let isPredicated = 1;
20249 let addrMode = BaseImmOffset;
20250 let accessSize = HalfWordAccess;
20251 let mayStore = 1;
20252 let BaseOpcode = "S2_storerf_io";
20253 let CextOpcode = "S2_storerf";
20254 let InputType = "imm";
20255 let isExtendable = 1;
20256 let opExtendable = 2;
20257 let isExtentSigned = 0;
20258 let opExtentBits = 7;
20259 let opExtentAlign = 1;
20261 def S2_pstorerft_pi : HInst<
20262 (outs IntRegs:$Rx32),
20263 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20264 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
20265 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20266 let Inst{2-2} = 0b0;
20267 let Inst{7-7} = 0b0;
20268 let Inst{13-13} = 0b1;
20269 let Inst{31-21} = 0b10101011011;
20270 let isPredicated = 1;
20271 let addrMode = PostInc;
20272 let accessSize = HalfWordAccess;
20273 let mayStore = 1;
20274 let BaseOpcode = "S2_storerf_pi";
20275 let CextOpcode = "S2_storerf";
20276 let Constraints = "$Rx32 = $Rx32in";
20278 def S2_pstorerft_zomap : HInst<
20279 (outs),
20280 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20281 "if ($Pv4) memh($Rs32) = $Rt32.h",
20282 tc_8035e91f, TypeMAPPING> {
20283 let isPseudo = 1;
20284 let isCodeGenOnly = 1;
20286 def S2_pstorerftnew_pi : HInst<
20287 (outs IntRegs:$Rx32),
20288 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20289 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
20290 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20291 let Inst{2-2} = 0b0;
20292 let Inst{7-7} = 0b1;
20293 let Inst{13-13} = 0b1;
20294 let Inst{31-21} = 0b10101011011;
20295 let isPredicated = 1;
20296 let addrMode = PostInc;
20297 let accessSize = HalfWordAccess;
20298 let isPredicatedNew = 1;
20299 let mayStore = 1;
20300 let BaseOpcode = "S2_storerf_pi";
20301 let CextOpcode = "S2_storerf";
20302 let Constraints = "$Rx32 = $Rx32in";
20304 def S2_pstorerhf_io : HInst<
20305 (outs),
20306 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20307 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
20308 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20309 let Inst{2-2} = 0b0;
20310 let Inst{31-21} = 0b01000100010;
20311 let isPredicated = 1;
20312 let isPredicatedFalse = 1;
20313 let addrMode = BaseImmOffset;
20314 let accessSize = HalfWordAccess;
20315 let mayStore = 1;
20316 let BaseOpcode = "S2_storerh_io";
20317 let CextOpcode = "S2_storerh";
20318 let InputType = "imm";
20319 let isNVStorable = 1;
20320 let isExtendable = 1;
20321 let opExtendable = 2;
20322 let isExtentSigned = 0;
20323 let opExtentBits = 7;
20324 let opExtentAlign = 1;
20326 def S2_pstorerhf_pi : HInst<
20327 (outs IntRegs:$Rx32),
20328 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20329 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
20330 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20331 let Inst{2-2} = 0b1;
20332 let Inst{7-7} = 0b0;
20333 let Inst{13-13} = 0b1;
20334 let Inst{31-21} = 0b10101011010;
20335 let isPredicated = 1;
20336 let isPredicatedFalse = 1;
20337 let addrMode = PostInc;
20338 let accessSize = HalfWordAccess;
20339 let mayStore = 1;
20340 let BaseOpcode = "S2_storerh_pi";
20341 let isNVStorable = 1;
20342 let Constraints = "$Rx32 = $Rx32in";
20344 def S2_pstorerhf_zomap : HInst<
20345 (outs),
20346 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20347 "if (!$Pv4) memh($Rs32) = $Rt32",
20348 tc_8035e91f, TypeMAPPING> {
20349 let isPseudo = 1;
20350 let isCodeGenOnly = 1;
20352 def S2_pstorerhfnew_pi : HInst<
20353 (outs IntRegs:$Rx32),
20354 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20355 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20356 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20357 let Inst{2-2} = 0b1;
20358 let Inst{7-7} = 0b1;
20359 let Inst{13-13} = 0b1;
20360 let Inst{31-21} = 0b10101011010;
20361 let isPredicated = 1;
20362 let isPredicatedFalse = 1;
20363 let addrMode = PostInc;
20364 let accessSize = HalfWordAccess;
20365 let isPredicatedNew = 1;
20366 let mayStore = 1;
20367 let BaseOpcode = "S2_storerh_pi";
20368 let isNVStorable = 1;
20369 let Constraints = "$Rx32 = $Rx32in";
20371 def S2_pstorerhnewf_io : HInst<
20372 (outs),
20373 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20374 "if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20375 tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20376 let Inst{2-2} = 0b0;
20377 let Inst{12-11} = 0b01;
20378 let Inst{31-21} = 0b01000100101;
20379 let isPredicated = 1;
20380 let isPredicatedFalse = 1;
20381 let addrMode = BaseImmOffset;
20382 let accessSize = HalfWordAccess;
20383 let isNVStore = 1;
20384 let isNewValue = 1;
20385 let isRestrictNoSlot1Store = 1;
20386 let mayStore = 1;
20387 let BaseOpcode = "S2_storerh_io";
20388 let CextOpcode = "S2_storerh";
20389 let InputType = "imm";
20390 let isExtendable = 1;
20391 let opExtendable = 2;
20392 let isExtentSigned = 0;
20393 let opExtentBits = 7;
20394 let opExtentAlign = 1;
20395 let opNewValue = 3;
20397 def S2_pstorerhnewf_pi : HInst<
20398 (outs IntRegs:$Rx32),
20399 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20400 "if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20401 tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20402 let Inst{2-2} = 0b1;
20403 let Inst{7-7} = 0b0;
20404 let Inst{13-11} = 0b101;
20405 let Inst{31-21} = 0b10101011101;
20406 let isPredicated = 1;
20407 let isPredicatedFalse = 1;
20408 let addrMode = PostInc;
20409 let accessSize = HalfWordAccess;
20410 let isNVStore = 1;
20411 let isNewValue = 1;
20412 let isRestrictNoSlot1Store = 1;
20413 let mayStore = 1;
20414 let BaseOpcode = "S2_storerh_pi";
20415 let CextOpcode = "S2_storerh";
20416 let opNewValue = 4;
20417 let Constraints = "$Rx32 = $Rx32in";
20419 def S2_pstorerhnewf_zomap : HInst<
20420 (outs),
20421 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20422 "if (!$Pv4) memh($Rs32) = $Nt8.new",
20423 tc_011e0e9d, TypeMAPPING> {
20424 let isPseudo = 1;
20425 let isCodeGenOnly = 1;
20426 let opNewValue = 2;
20428 def S2_pstorerhnewfnew_pi : HInst<
20429 (outs IntRegs:$Rx32),
20430 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20431 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20432 tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20433 let Inst{2-2} = 0b1;
20434 let Inst{7-7} = 0b1;
20435 let Inst{13-11} = 0b101;
20436 let Inst{31-21} = 0b10101011101;
20437 let isPredicated = 1;
20438 let isPredicatedFalse = 1;
20439 let addrMode = PostInc;
20440 let accessSize = HalfWordAccess;
20441 let isNVStore = 1;
20442 let isPredicatedNew = 1;
20443 let isNewValue = 1;
20444 let isRestrictNoSlot1Store = 1;
20445 let mayStore = 1;
20446 let BaseOpcode = "S2_storerh_pi";
20447 let CextOpcode = "S2_storerh";
20448 let opNewValue = 4;
20449 let Constraints = "$Rx32 = $Rx32in";
20451 def S2_pstorerhnewt_io : HInst<
20452 (outs),
20453 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20454 "if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20455 tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel {
20456 let Inst{2-2} = 0b0;
20457 let Inst{12-11} = 0b01;
20458 let Inst{31-21} = 0b01000000101;
20459 let isPredicated = 1;
20460 let addrMode = BaseImmOffset;
20461 let accessSize = HalfWordAccess;
20462 let isNVStore = 1;
20463 let isNewValue = 1;
20464 let isRestrictNoSlot1Store = 1;
20465 let mayStore = 1;
20466 let BaseOpcode = "S2_storerh_io";
20467 let CextOpcode = "S2_storerh";
20468 let InputType = "imm";
20469 let isExtendable = 1;
20470 let opExtendable = 2;
20471 let isExtentSigned = 0;
20472 let opExtentBits = 7;
20473 let opExtentAlign = 1;
20474 let opNewValue = 3;
20476 def S2_pstorerhnewt_pi : HInst<
20477 (outs IntRegs:$Rx32),
20478 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20479 "if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20480 tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel {
20481 let Inst{2-2} = 0b0;
20482 let Inst{7-7} = 0b0;
20483 let Inst{13-11} = 0b101;
20484 let Inst{31-21} = 0b10101011101;
20485 let isPredicated = 1;
20486 let addrMode = PostInc;
20487 let accessSize = HalfWordAccess;
20488 let isNVStore = 1;
20489 let isNewValue = 1;
20490 let isRestrictNoSlot1Store = 1;
20491 let mayStore = 1;
20492 let BaseOpcode = "S2_storerh_pi";
20493 let CextOpcode = "S2_storerh";
20494 let opNewValue = 4;
20495 let Constraints = "$Rx32 = $Rx32in";
20497 def S2_pstorerhnewt_zomap : HInst<
20498 (outs),
20499 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20500 "if ($Pv4) memh($Rs32) = $Nt8.new",
20501 tc_011e0e9d, TypeMAPPING> {
20502 let isPseudo = 1;
20503 let isCodeGenOnly = 1;
20504 let opNewValue = 2;
20506 def S2_pstorerhnewtnew_pi : HInst<
20507 (outs IntRegs:$Rx32),
20508 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20509 "if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20510 tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel {
20511 let Inst{2-2} = 0b0;
20512 let Inst{7-7} = 0b1;
20513 let Inst{13-11} = 0b101;
20514 let Inst{31-21} = 0b10101011101;
20515 let isPredicated = 1;
20516 let addrMode = PostInc;
20517 let accessSize = HalfWordAccess;
20518 let isNVStore = 1;
20519 let isPredicatedNew = 1;
20520 let isNewValue = 1;
20521 let isRestrictNoSlot1Store = 1;
20522 let mayStore = 1;
20523 let BaseOpcode = "S2_storerh_pi";
20524 let CextOpcode = "S2_storerh";
20525 let opNewValue = 4;
20526 let Constraints = "$Rx32 = $Rx32in";
20528 def S2_pstorerht_io : HInst<
20529 (outs),
20530 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20531 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20532 tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20533 let Inst{2-2} = 0b0;
20534 let Inst{31-21} = 0b01000000010;
20535 let isPredicated = 1;
20536 let addrMode = BaseImmOffset;
20537 let accessSize = HalfWordAccess;
20538 let mayStore = 1;
20539 let BaseOpcode = "S2_storerh_io";
20540 let CextOpcode = "S2_storerh";
20541 let InputType = "imm";
20542 let isNVStorable = 1;
20543 let isExtendable = 1;
20544 let opExtendable = 2;
20545 let isExtentSigned = 0;
20546 let opExtentBits = 7;
20547 let opExtentAlign = 1;
20549 def S2_pstorerht_pi : HInst<
20550 (outs IntRegs:$Rx32),
20551 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20552 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20553 tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel {
20554 let Inst{2-2} = 0b0;
20555 let Inst{7-7} = 0b0;
20556 let Inst{13-13} = 0b1;
20557 let Inst{31-21} = 0b10101011010;
20558 let isPredicated = 1;
20559 let addrMode = PostInc;
20560 let accessSize = HalfWordAccess;
20561 let mayStore = 1;
20562 let BaseOpcode = "S2_storerh_pi";
20563 let isNVStorable = 1;
20564 let Constraints = "$Rx32 = $Rx32in";
20566 def S2_pstorerht_zomap : HInst<
20567 (outs),
20568 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20569 "if ($Pv4) memh($Rs32) = $Rt32",
20570 tc_8035e91f, TypeMAPPING> {
20571 let isPseudo = 1;
20572 let isCodeGenOnly = 1;
20574 def S2_pstorerhtnew_pi : HInst<
20575 (outs IntRegs:$Rx32),
20576 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20577 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20578 tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel {
20579 let Inst{2-2} = 0b0;
20580 let Inst{7-7} = 0b1;
20581 let Inst{13-13} = 0b1;
20582 let Inst{31-21} = 0b10101011010;
20583 let isPredicated = 1;
20584 let addrMode = PostInc;
20585 let accessSize = HalfWordAccess;
20586 let isPredicatedNew = 1;
20587 let mayStore = 1;
20588 let BaseOpcode = "S2_storerh_pi";
20589 let isNVStorable = 1;
20590 let Constraints = "$Rx32 = $Rx32in";
20592 def S2_pstorerif_io : HInst<
20593 (outs),
20594 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20595 "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20596 tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20597 let Inst{2-2} = 0b0;
20598 let Inst{31-21} = 0b01000100100;
20599 let isPredicated = 1;
20600 let isPredicatedFalse = 1;
20601 let addrMode = BaseImmOffset;
20602 let accessSize = WordAccess;
20603 let mayStore = 1;
20604 let BaseOpcode = "S2_storeri_io";
20605 let CextOpcode = "S2_storeri";
20606 let InputType = "imm";
20607 let isNVStorable = 1;
20608 let isExtendable = 1;
20609 let opExtendable = 2;
20610 let isExtentSigned = 0;
20611 let opExtentBits = 8;
20612 let opExtentAlign = 2;
20614 def S2_pstorerif_pi : HInst<
20615 (outs IntRegs:$Rx32),
20616 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20617 "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20618 tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20619 let Inst{2-2} = 0b1;
20620 let Inst{7-7} = 0b0;
20621 let Inst{13-13} = 0b1;
20622 let Inst{31-21} = 0b10101011100;
20623 let isPredicated = 1;
20624 let isPredicatedFalse = 1;
20625 let addrMode = PostInc;
20626 let accessSize = WordAccess;
20627 let mayStore = 1;
20628 let BaseOpcode = "S2_storeri_pi";
20629 let isNVStorable = 1;
20630 let Constraints = "$Rx32 = $Rx32in";
20632 def S2_pstorerif_zomap : HInst<
20633 (outs),
20634 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20635 "if (!$Pv4) memw($Rs32) = $Rt32",
20636 tc_8035e91f, TypeMAPPING> {
20637 let isPseudo = 1;
20638 let isCodeGenOnly = 1;
20640 def S2_pstorerifnew_pi : HInst<
20641 (outs IntRegs:$Rx32),
20642 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20643 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20644 tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20645 let Inst{2-2} = 0b1;
20646 let Inst{7-7} = 0b1;
20647 let Inst{13-13} = 0b1;
20648 let Inst{31-21} = 0b10101011100;
20649 let isPredicated = 1;
20650 let isPredicatedFalse = 1;
20651 let addrMode = PostInc;
20652 let accessSize = WordAccess;
20653 let isPredicatedNew = 1;
20654 let mayStore = 1;
20655 let BaseOpcode = "S2_storeri_pi";
20656 let CextOpcode = "S2_storeri";
20657 let isNVStorable = 1;
20658 let Constraints = "$Rx32 = $Rx32in";
20660 def S2_pstorerinewf_io : HInst<
20661 (outs),
20662 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20663 "if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20664 tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20665 let Inst{2-2} = 0b0;
20666 let Inst{12-11} = 0b10;
20667 let Inst{31-21} = 0b01000100101;
20668 let isPredicated = 1;
20669 let isPredicatedFalse = 1;
20670 let addrMode = BaseImmOffset;
20671 let accessSize = WordAccess;
20672 let isNVStore = 1;
20673 let isNewValue = 1;
20674 let isRestrictNoSlot1Store = 1;
20675 let mayStore = 1;
20676 let BaseOpcode = "S2_storeri_io";
20677 let CextOpcode = "S2_storeri";
20678 let InputType = "imm";
20679 let isExtendable = 1;
20680 let opExtendable = 2;
20681 let isExtentSigned = 0;
20682 let opExtentBits = 8;
20683 let opExtentAlign = 2;
20684 let opNewValue = 3;
20686 def S2_pstorerinewf_pi : HInst<
20687 (outs IntRegs:$Rx32),
20688 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20689 "if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20690 tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20691 let Inst{2-2} = 0b1;
20692 let Inst{7-7} = 0b0;
20693 let Inst{13-11} = 0b110;
20694 let Inst{31-21} = 0b10101011101;
20695 let isPredicated = 1;
20696 let isPredicatedFalse = 1;
20697 let addrMode = PostInc;
20698 let accessSize = WordAccess;
20699 let isNVStore = 1;
20700 let isNewValue = 1;
20701 let isRestrictNoSlot1Store = 1;
20702 let mayStore = 1;
20703 let BaseOpcode = "S2_storeri_pi";
20704 let CextOpcode = "S2_storeri";
20705 let opNewValue = 4;
20706 let Constraints = "$Rx32 = $Rx32in";
20708 def S2_pstorerinewf_zomap : HInst<
20709 (outs),
20710 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20711 "if (!$Pv4) memw($Rs32) = $Nt8.new",
20712 tc_011e0e9d, TypeMAPPING> {
20713 let isPseudo = 1;
20714 let isCodeGenOnly = 1;
20715 let opNewValue = 2;
20717 def S2_pstorerinewfnew_pi : HInst<
20718 (outs IntRegs:$Rx32),
20719 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20720 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20721 tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20722 let Inst{2-2} = 0b1;
20723 let Inst{7-7} = 0b1;
20724 let Inst{13-11} = 0b110;
20725 let Inst{31-21} = 0b10101011101;
20726 let isPredicated = 1;
20727 let isPredicatedFalse = 1;
20728 let addrMode = PostInc;
20729 let accessSize = WordAccess;
20730 let isNVStore = 1;
20731 let isPredicatedNew = 1;
20732 let isNewValue = 1;
20733 let isRestrictNoSlot1Store = 1;
20734 let mayStore = 1;
20735 let BaseOpcode = "S2_storeri_pi";
20736 let CextOpcode = "S2_storeri";
20737 let opNewValue = 4;
20738 let Constraints = "$Rx32 = $Rx32in";
20740 def S2_pstorerinewt_io : HInst<
20741 (outs),
20742 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20743 "if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20744 tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20745 let Inst{2-2} = 0b0;
20746 let Inst{12-11} = 0b10;
20747 let Inst{31-21} = 0b01000000101;
20748 let isPredicated = 1;
20749 let addrMode = BaseImmOffset;
20750 let accessSize = WordAccess;
20751 let isNVStore = 1;
20752 let isNewValue = 1;
20753 let isRestrictNoSlot1Store = 1;
20754 let mayStore = 1;
20755 let BaseOpcode = "S2_storeri_io";
20756 let CextOpcode = "S2_storeri";
20757 let InputType = "imm";
20758 let isExtendable = 1;
20759 let opExtendable = 2;
20760 let isExtentSigned = 0;
20761 let opExtentBits = 8;
20762 let opExtentAlign = 2;
20763 let opNewValue = 3;
20765 def S2_pstorerinewt_pi : HInst<
20766 (outs IntRegs:$Rx32),
20767 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20768 "if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20769 tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel {
20770 let Inst{2-2} = 0b0;
20771 let Inst{7-7} = 0b0;
20772 let Inst{13-11} = 0b110;
20773 let Inst{31-21} = 0b10101011101;
20774 let isPredicated = 1;
20775 let addrMode = PostInc;
20776 let accessSize = WordAccess;
20777 let isNVStore = 1;
20778 let isNewValue = 1;
20779 let isRestrictNoSlot1Store = 1;
20780 let mayStore = 1;
20781 let BaseOpcode = "S2_storeri_pi";
20782 let CextOpcode = "S2_storeri";
20783 let opNewValue = 4;
20784 let Constraints = "$Rx32 = $Rx32in";
20786 def S2_pstorerinewt_zomap : HInst<
20787 (outs),
20788 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20789 "if ($Pv4) memw($Rs32) = $Nt8.new",
20790 tc_011e0e9d, TypeMAPPING> {
20791 let isPseudo = 1;
20792 let isCodeGenOnly = 1;
20793 let opNewValue = 2;
20795 def S2_pstorerinewtnew_pi : HInst<
20796 (outs IntRegs:$Rx32),
20797 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20798 "if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20799 tc_f529831b, TypeST>, Enc_65f095, AddrModeRel {
20800 let Inst{2-2} = 0b0;
20801 let Inst{7-7} = 0b1;
20802 let Inst{13-11} = 0b110;
20803 let Inst{31-21} = 0b10101011101;
20804 let isPredicated = 1;
20805 let addrMode = PostInc;
20806 let accessSize = WordAccess;
20807 let isNVStore = 1;
20808 let isPredicatedNew = 1;
20809 let isNewValue = 1;
20810 let isRestrictNoSlot1Store = 1;
20811 let mayStore = 1;
20812 let BaseOpcode = "S2_storeri_pi";
20813 let CextOpcode = "S2_storeri";
20814 let opNewValue = 4;
20815 let Constraints = "$Rx32 = $Rx32in";
20817 def S2_pstorerit_io : HInst<
20818 (outs),
20819 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20820 "if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20821 tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel {
20822 let Inst{2-2} = 0b0;
20823 let Inst{31-21} = 0b01000000100;
20824 let isPredicated = 1;
20825 let addrMode = BaseImmOffset;
20826 let accessSize = WordAccess;
20827 let mayStore = 1;
20828 let BaseOpcode = "S2_storeri_io";
20829 let CextOpcode = "S2_storeri";
20830 let InputType = "imm";
20831 let isNVStorable = 1;
20832 let isExtendable = 1;
20833 let opExtendable = 2;
20834 let isExtentSigned = 0;
20835 let opExtentBits = 8;
20836 let opExtentAlign = 2;
20838 def S2_pstorerit_pi : HInst<
20839 (outs IntRegs:$Rx32),
20840 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20841 "if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20842 tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel {
20843 let Inst{2-2} = 0b0;
20844 let Inst{7-7} = 0b0;
20845 let Inst{13-13} = 0b1;
20846 let Inst{31-21} = 0b10101011100;
20847 let isPredicated = 1;
20848 let addrMode = PostInc;
20849 let accessSize = WordAccess;
20850 let mayStore = 1;
20851 let BaseOpcode = "S2_storeri_pi";
20852 let isNVStorable = 1;
20853 let Constraints = "$Rx32 = $Rx32in";
20855 def S2_pstorerit_zomap : HInst<
20856 (outs),
20857 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20858 "if ($Pv4) memw($Rs32) = $Rt32",
20859 tc_8035e91f, TypeMAPPING> {
20860 let isPseudo = 1;
20861 let isCodeGenOnly = 1;
20863 def S2_pstoreritnew_pi : HInst<
20864 (outs IntRegs:$Rx32),
20865 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20866 "if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20867 tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel {
20868 let Inst{2-2} = 0b0;
20869 let Inst{7-7} = 0b1;
20870 let Inst{13-13} = 0b1;
20871 let Inst{31-21} = 0b10101011100;
20872 let isPredicated = 1;
20873 let addrMode = PostInc;
20874 let accessSize = WordAccess;
20875 let isPredicatedNew = 1;
20876 let mayStore = 1;
20877 let BaseOpcode = "S2_storeri_pi";
20878 let isNVStorable = 1;
20879 let Constraints = "$Rx32 = $Rx32in";
20881 def S2_setbit_i : HInst<
20882 (outs IntRegs:$Rd32),
20883 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
20884 "$Rd32 = setbit($Rs32,#$Ii)",
20885 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
20886 let Inst{7-5} = 0b000;
20887 let Inst{13-13} = 0b0;
20888 let Inst{31-21} = 0b10001100110;
20889 let hasNewValue = 1;
20890 let opNewValue = 0;
20892 def S2_setbit_r : HInst<
20893 (outs IntRegs:$Rd32),
20894 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20895 "$Rd32 = setbit($Rs32,$Rt32)",
20896 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
20897 let Inst{7-5} = 0b000;
20898 let Inst{13-13} = 0b0;
20899 let Inst{31-21} = 0b11000110100;
20900 let hasNewValue = 1;
20901 let opNewValue = 0;
20903 def S2_shuffeb : HInst<
20904 (outs DoubleRegs:$Rdd32),
20905 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20906 "$Rdd32 = shuffeb($Rss32,$Rtt32)",
20907 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20908 let Inst{7-5} = 0b010;
20909 let Inst{13-13} = 0b0;
20910 let Inst{31-21} = 0b11000001000;
20912 def S2_shuffeh : HInst<
20913 (outs DoubleRegs:$Rdd32),
20914 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20915 "$Rdd32 = shuffeh($Rss32,$Rtt32)",
20916 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
20917 let Inst{7-5} = 0b110;
20918 let Inst{13-13} = 0b0;
20919 let Inst{31-21} = 0b11000001000;
20921 def S2_shuffob : HInst<
20922 (outs DoubleRegs:$Rdd32),
20923 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20924 "$Rdd32 = shuffob($Rtt32,$Rss32)",
20925 tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20926 let Inst{7-5} = 0b100;
20927 let Inst{13-13} = 0b0;
20928 let Inst{31-21} = 0b11000001000;
20930 def S2_shuffoh : HInst<
20931 (outs DoubleRegs:$Rdd32),
20932 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20933 "$Rdd32 = shuffoh($Rtt32,$Rss32)",
20934 tc_5da50c4b, TypeS_3op>, Enc_ea23e4 {
20935 let Inst{7-5} = 0b000;
20936 let Inst{13-13} = 0b0;
20937 let Inst{31-21} = 0b11000001100;
20939 def S2_storerb_io : HInst<
20940 (outs),
20941 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20942 "memb($Rs32+#$Ii) = $Rt32",
20943 tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20944 let Inst{24-21} = 0b1000;
20945 let Inst{31-27} = 0b10100;
20946 let addrMode = BaseImmOffset;
20947 let accessSize = ByteAccess;
20948 let mayStore = 1;
20949 let BaseOpcode = "S2_storerb_io";
20950 let CextOpcode = "S2_storerb";
20951 let InputType = "imm";
20952 let isNVStorable = 1;
20953 let isPredicable = 1;
20954 let isExtendable = 1;
20955 let opExtendable = 1;
20956 let isExtentSigned = 1;
20957 let opExtentBits = 11;
20958 let opExtentAlign = 0;
20960 def S2_storerb_pbr : HInst<
20961 (outs IntRegs:$Rx32),
20962 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20963 "memb($Rx32++$Mu2:brev) = $Rt32",
20964 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20965 let Inst{7-0} = 0b00000000;
20966 let Inst{31-21} = 0b10101111000;
20967 let addrMode = PostInc;
20968 let accessSize = ByteAccess;
20969 let mayStore = 1;
20970 let BaseOpcode = "S2_storerb_pbr";
20971 let isNVStorable = 1;
20972 let Constraints = "$Rx32 = $Rx32in";
20974 def S2_storerb_pci : HInst<
20975 (outs IntRegs:$Rx32),
20976 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20977 "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20978 tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel {
20979 let Inst{2-0} = 0b000;
20980 let Inst{7-7} = 0b0;
20981 let Inst{31-21} = 0b10101001000;
20982 let addrMode = PostInc;
20983 let accessSize = ByteAccess;
20984 let mayStore = 1;
20985 let Uses = [CS];
20986 let BaseOpcode = "S2_storerb_pci";
20987 let isNVStorable = 1;
20988 let Constraints = "$Rx32 = $Rx32in";
20990 def S2_storerb_pcr : HInst<
20991 (outs IntRegs:$Rx32),
20992 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20993 "memb($Rx32++I:circ($Mu2)) = $Rt32",
20994 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
20995 let Inst{7-0} = 0b00000010;
20996 let Inst{31-21} = 0b10101001000;
20997 let addrMode = PostInc;
20998 let accessSize = ByteAccess;
20999 let mayStore = 1;
21000 let Uses = [CS];
21001 let BaseOpcode = "S2_storerb_pcr";
21002 let isNVStorable = 1;
21003 let Constraints = "$Rx32 = $Rx32in";
21005 def S2_storerb_pi : HInst<
21006 (outs IntRegs:$Rx32),
21007 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
21008 "memb($Rx32++#$Ii) = $Rt32",
21009 tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
21010 let Inst{2-0} = 0b000;
21011 let Inst{7-7} = 0b0;
21012 let Inst{13-13} = 0b0;
21013 let Inst{31-21} = 0b10101011000;
21014 let addrMode = PostInc;
21015 let accessSize = ByteAccess;
21016 let mayStore = 1;
21017 let BaseOpcode = "S2_storerb_pi";
21018 let CextOpcode = "S2_storerb";
21019 let isNVStorable = 1;
21020 let isPredicable = 1;
21021 let Constraints = "$Rx32 = $Rx32in";
21023 def S2_storerb_pr : HInst<
21024 (outs IntRegs:$Rx32),
21025 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21026 "memb($Rx32++$Mu2) = $Rt32",
21027 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21028 let Inst{7-0} = 0b00000000;
21029 let Inst{31-21} = 0b10101101000;
21030 let addrMode = PostInc;
21031 let accessSize = ByteAccess;
21032 let mayStore = 1;
21033 let BaseOpcode = "S2_storerb_pr";
21034 let isNVStorable = 1;
21035 let Constraints = "$Rx32 = $Rx32in";
21037 def S2_storerb_zomap : HInst<
21038 (outs),
21039 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21040 "memb($Rs32) = $Rt32",
21041 tc_ae5babd7, TypeMAPPING> {
21042 let isPseudo = 1;
21043 let isCodeGenOnly = 1;
21045 def S2_storerbgp : HInst<
21046 (outs),
21047 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
21048 "memb(gp+#$Ii) = $Rt32",
21049 tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
21050 let Inst{24-21} = 0b0000;
21051 let Inst{31-27} = 0b01001;
21052 let accessSize = ByteAccess;
21053 let mayStore = 1;
21054 let Uses = [GP];
21055 let BaseOpcode = "S2_storerbabs";
21056 let isNVStorable = 1;
21057 let isPredicable = 1;
21058 let opExtendable = 0;
21059 let isExtentSigned = 0;
21060 let opExtentBits = 16;
21061 let opExtentAlign = 0;
21063 def S2_storerbnew_io : HInst<
21064 (outs),
21065 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
21066 "memb($Rs32+#$Ii) = $Nt8.new",
21067 tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel {
21068 let Inst{12-11} = 0b00;
21069 let Inst{24-21} = 0b1101;
21070 let Inst{31-27} = 0b10100;
21071 let addrMode = BaseImmOffset;
21072 let accessSize = ByteAccess;
21073 let isNVStore = 1;
21074 let isNewValue = 1;
21075 let isRestrictNoSlot1Store = 1;
21076 let mayStore = 1;
21077 let BaseOpcode = "S2_storerb_io";
21078 let CextOpcode = "S2_storerb";
21079 let InputType = "imm";
21080 let isPredicable = 1;
21081 let isExtendable = 1;
21082 let opExtendable = 1;
21083 let isExtentSigned = 1;
21084 let opExtentBits = 11;
21085 let opExtentAlign = 0;
21086 let opNewValue = 2;
21088 def S2_storerbnew_pbr : HInst<
21089 (outs IntRegs:$Rx32),
21090 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21091 "memb($Rx32++$Mu2:brev) = $Nt8.new",
21092 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21093 let Inst{7-0} = 0b00000000;
21094 let Inst{12-11} = 0b00;
21095 let Inst{31-21} = 0b10101111101;
21096 let addrMode = PostInc;
21097 let accessSize = ByteAccess;
21098 let isNVStore = 1;
21099 let isNewValue = 1;
21100 let isRestrictNoSlot1Store = 1;
21101 let mayStore = 1;
21102 let BaseOpcode = "S2_storerb_pbr";
21103 let opNewValue = 3;
21104 let Constraints = "$Rx32 = $Rx32in";
21106 def S2_storerbnew_pci : HInst<
21107 (outs IntRegs:$Rx32),
21108 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21109 "memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21110 tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel {
21111 let Inst{2-0} = 0b000;
21112 let Inst{7-7} = 0b0;
21113 let Inst{12-11} = 0b00;
21114 let Inst{31-21} = 0b10101001101;
21115 let addrMode = PostInc;
21116 let accessSize = ByteAccess;
21117 let isNVStore = 1;
21118 let isNewValue = 1;
21119 let isRestrictNoSlot1Store = 1;
21120 let mayStore = 1;
21121 let Uses = [CS];
21122 let BaseOpcode = "S2_storerb_pci";
21123 let opNewValue = 4;
21124 let Constraints = "$Rx32 = $Rx32in";
21126 def S2_storerbnew_pcr : HInst<
21127 (outs IntRegs:$Rx32),
21128 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21129 "memb($Rx32++I:circ($Mu2)) = $Nt8.new",
21130 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21131 let Inst{7-0} = 0b00000010;
21132 let Inst{12-11} = 0b00;
21133 let Inst{31-21} = 0b10101001101;
21134 let addrMode = PostInc;
21135 let accessSize = ByteAccess;
21136 let isNVStore = 1;
21137 let isNewValue = 1;
21138 let isRestrictNoSlot1Store = 1;
21139 let mayStore = 1;
21140 let Uses = [CS];
21141 let BaseOpcode = "S2_storerb_pcr";
21142 let opNewValue = 3;
21143 let Constraints = "$Rx32 = $Rx32in";
21145 def S2_storerbnew_pi : HInst<
21146 (outs IntRegs:$Rx32),
21147 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
21148 "memb($Rx32++#$Ii) = $Nt8.new",
21149 tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel {
21150 let Inst{2-0} = 0b000;
21151 let Inst{7-7} = 0b0;
21152 let Inst{13-11} = 0b000;
21153 let Inst{31-21} = 0b10101011101;
21154 let addrMode = PostInc;
21155 let accessSize = ByteAccess;
21156 let isNVStore = 1;
21157 let isNewValue = 1;
21158 let isRestrictNoSlot1Store = 1;
21159 let mayStore = 1;
21160 let BaseOpcode = "S2_storerb_pi";
21161 let isNVStorable = 1;
21162 let isPredicable = 1;
21163 let opNewValue = 3;
21164 let Constraints = "$Rx32 = $Rx32in";
21166 def S2_storerbnew_pr : HInst<
21167 (outs IntRegs:$Rx32),
21168 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21169 "memb($Rx32++$Mu2) = $Nt8.new",
21170 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21171 let Inst{7-0} = 0b00000000;
21172 let Inst{12-11} = 0b00;
21173 let Inst{31-21} = 0b10101101101;
21174 let addrMode = PostInc;
21175 let accessSize = ByteAccess;
21176 let isNVStore = 1;
21177 let isNewValue = 1;
21178 let isRestrictNoSlot1Store = 1;
21179 let mayStore = 1;
21180 let BaseOpcode = "S2_storerb_pr";
21181 let opNewValue = 3;
21182 let Constraints = "$Rx32 = $Rx32in";
21184 def S2_storerbnew_zomap : HInst<
21185 (outs),
21186 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21187 "memb($Rs32) = $Nt8.new",
21188 tc_5deb5e47, TypeMAPPING> {
21189 let isPseudo = 1;
21190 let isCodeGenOnly = 1;
21191 let opNewValue = 1;
21193 def S2_storerbnewgp : HInst<
21194 (outs),
21195 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
21196 "memb(gp+#$Ii) = $Nt8.new",
21197 tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel {
21198 let Inst{12-11} = 0b00;
21199 let Inst{24-21} = 0b0101;
21200 let Inst{31-27} = 0b01001;
21201 let accessSize = ByteAccess;
21202 let isNVStore = 1;
21203 let isNewValue = 1;
21204 let isRestrictNoSlot1Store = 1;
21205 let mayStore = 1;
21206 let Uses = [GP];
21207 let BaseOpcode = "S2_storerbabs";
21208 let isPredicable = 1;
21209 let opExtendable = 0;
21210 let isExtentSigned = 0;
21211 let opExtentBits = 16;
21212 let opExtentAlign = 0;
21213 let opNewValue = 1;
21215 def S2_storerd_io : HInst<
21216 (outs),
21217 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
21218 "memd($Rs32+#$Ii) = $Rtt32",
21219 tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
21220 let Inst{24-21} = 0b1110;
21221 let Inst{31-27} = 0b10100;
21222 let addrMode = BaseImmOffset;
21223 let accessSize = DoubleWordAccess;
21224 let mayStore = 1;
21225 let BaseOpcode = "S2_storerd_io";
21226 let CextOpcode = "S2_storerd";
21227 let InputType = "imm";
21228 let isPredicable = 1;
21229 let isExtendable = 1;
21230 let opExtendable = 1;
21231 let isExtentSigned = 1;
21232 let opExtentBits = 14;
21233 let opExtentAlign = 3;
21235 def S2_storerd_pbr : HInst<
21236 (outs IntRegs:$Rx32),
21237 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21238 "memd($Rx32++$Mu2:brev) = $Rtt32",
21239 tc_a2b365d2, TypeST>, Enc_928ca1 {
21240 let Inst{7-0} = 0b00000000;
21241 let Inst{31-21} = 0b10101111110;
21242 let addrMode = PostInc;
21243 let accessSize = DoubleWordAccess;
21244 let mayStore = 1;
21245 let Constraints = "$Rx32 = $Rx32in";
21247 def S2_storerd_pci : HInst<
21248 (outs IntRegs:$Rx32),
21249 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21250 "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
21251 tc_b4dc7630, TypeST>, Enc_395cc4 {
21252 let Inst{2-0} = 0b000;
21253 let Inst{7-7} = 0b0;
21254 let Inst{31-21} = 0b10101001110;
21255 let addrMode = PostInc;
21256 let accessSize = DoubleWordAccess;
21257 let mayStore = 1;
21258 let Uses = [CS];
21259 let Constraints = "$Rx32 = $Rx32in";
21261 def S2_storerd_pcr : HInst<
21262 (outs IntRegs:$Rx32),
21263 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21264 "memd($Rx32++I:circ($Mu2)) = $Rtt32",
21265 tc_a2b365d2, TypeST>, Enc_928ca1 {
21266 let Inst{7-0} = 0b00000010;
21267 let Inst{31-21} = 0b10101001110;
21268 let addrMode = PostInc;
21269 let accessSize = DoubleWordAccess;
21270 let mayStore = 1;
21271 let Uses = [CS];
21272 let Constraints = "$Rx32 = $Rx32in";
21274 def S2_storerd_pi : HInst<
21275 (outs IntRegs:$Rx32),
21276 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
21277 "memd($Rx32++#$Ii) = $Rtt32",
21278 tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
21279 let Inst{2-0} = 0b000;
21280 let Inst{7-7} = 0b0;
21281 let Inst{13-13} = 0b0;
21282 let Inst{31-21} = 0b10101011110;
21283 let addrMode = PostInc;
21284 let accessSize = DoubleWordAccess;
21285 let mayStore = 1;
21286 let BaseOpcode = "S2_storerd_pi";
21287 let CextOpcode = "S2_storerd";
21288 let isPredicable = 1;
21289 let Constraints = "$Rx32 = $Rx32in";
21291 def S2_storerd_pr : HInst<
21292 (outs IntRegs:$Rx32),
21293 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
21294 "memd($Rx32++$Mu2) = $Rtt32",
21295 tc_a2b365d2, TypeST>, Enc_928ca1 {
21296 let Inst{7-0} = 0b00000000;
21297 let Inst{31-21} = 0b10101101110;
21298 let addrMode = PostInc;
21299 let accessSize = DoubleWordAccess;
21300 let mayStore = 1;
21301 let Constraints = "$Rx32 = $Rx32in";
21303 def S2_storerd_zomap : HInst<
21304 (outs),
21305 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
21306 "memd($Rs32) = $Rtt32",
21307 tc_ae5babd7, TypeMAPPING> {
21308 let isPseudo = 1;
21309 let isCodeGenOnly = 1;
21311 def S2_storerdgp : HInst<
21312 (outs),
21313 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
21314 "memd(gp+#$Ii) = $Rtt32",
21315 tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel {
21316 let Inst{24-21} = 0b0110;
21317 let Inst{31-27} = 0b01001;
21318 let accessSize = DoubleWordAccess;
21319 let mayStore = 1;
21320 let Uses = [GP];
21321 let BaseOpcode = "S2_storerdabs";
21322 let isPredicable = 1;
21323 let opExtendable = 0;
21324 let isExtentSigned = 0;
21325 let opExtentBits = 19;
21326 let opExtentAlign = 3;
21328 def S2_storerf_io : HInst<
21329 (outs),
21330 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21331 "memh($Rs32+#$Ii) = $Rt32.h",
21332 tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21333 let Inst{24-21} = 0b1011;
21334 let Inst{31-27} = 0b10100;
21335 let addrMode = BaseImmOffset;
21336 let accessSize = HalfWordAccess;
21337 let mayStore = 1;
21338 let BaseOpcode = "S2_storerf_io";
21339 let CextOpcode = "S2_storerf";
21340 let InputType = "imm";
21341 let isPredicable = 1;
21342 let isExtendable = 1;
21343 let opExtendable = 1;
21344 let isExtentSigned = 1;
21345 let opExtentBits = 12;
21346 let opExtentAlign = 1;
21348 def S2_storerf_pbr : HInst<
21349 (outs IntRegs:$Rx32),
21350 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21351 "memh($Rx32++$Mu2:brev) = $Rt32.h",
21352 tc_a2b365d2, TypeST>, Enc_d5c73f {
21353 let Inst{7-0} = 0b00000000;
21354 let Inst{31-21} = 0b10101111011;
21355 let addrMode = PostInc;
21356 let accessSize = HalfWordAccess;
21357 let mayStore = 1;
21358 let Constraints = "$Rx32 = $Rx32in";
21360 def S2_storerf_pci : HInst<
21361 (outs IntRegs:$Rx32),
21362 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21363 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
21364 tc_b4dc7630, TypeST>, Enc_935d9b {
21365 let Inst{2-0} = 0b000;
21366 let Inst{7-7} = 0b0;
21367 let Inst{31-21} = 0b10101001011;
21368 let addrMode = PostInc;
21369 let accessSize = HalfWordAccess;
21370 let mayStore = 1;
21371 let Uses = [CS];
21372 let Constraints = "$Rx32 = $Rx32in";
21374 def S2_storerf_pcr : HInst<
21375 (outs IntRegs:$Rx32),
21376 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21377 "memh($Rx32++I:circ($Mu2)) = $Rt32.h",
21378 tc_a2b365d2, TypeST>, Enc_d5c73f {
21379 let Inst{7-0} = 0b00000010;
21380 let Inst{31-21} = 0b10101001011;
21381 let addrMode = PostInc;
21382 let accessSize = HalfWordAccess;
21383 let mayStore = 1;
21384 let Uses = [CS];
21385 let Constraints = "$Rx32 = $Rx32in";
21387 def S2_storerf_pi : HInst<
21388 (outs IntRegs:$Rx32),
21389 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21390 "memh($Rx32++#$Ii) = $Rt32.h",
21391 tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21392 let Inst{2-0} = 0b000;
21393 let Inst{7-7} = 0b0;
21394 let Inst{13-13} = 0b0;
21395 let Inst{31-21} = 0b10101011011;
21396 let addrMode = PostInc;
21397 let accessSize = HalfWordAccess;
21398 let mayStore = 1;
21399 let BaseOpcode = "S2_storerf_pi";
21400 let CextOpcode = "S2_storerf";
21401 let isPredicable = 1;
21402 let Constraints = "$Rx32 = $Rx32in";
21404 def S2_storerf_pr : HInst<
21405 (outs IntRegs:$Rx32),
21406 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21407 "memh($Rx32++$Mu2) = $Rt32.h",
21408 tc_a2b365d2, TypeST>, Enc_d5c73f {
21409 let Inst{7-0} = 0b00000000;
21410 let Inst{31-21} = 0b10101101011;
21411 let addrMode = PostInc;
21412 let accessSize = HalfWordAccess;
21413 let mayStore = 1;
21414 let Constraints = "$Rx32 = $Rx32in";
21416 def S2_storerf_zomap : HInst<
21417 (outs),
21418 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21419 "memh($Rs32) = $Rt32.h",
21420 tc_ae5babd7, TypeMAPPING> {
21421 let isPseudo = 1;
21422 let isCodeGenOnly = 1;
21424 def S2_storerfgp : HInst<
21425 (outs),
21426 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21427 "memh(gp+#$Ii) = $Rt32.h",
21428 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21429 let Inst{24-21} = 0b0011;
21430 let Inst{31-27} = 0b01001;
21431 let accessSize = HalfWordAccess;
21432 let mayStore = 1;
21433 let Uses = [GP];
21434 let BaseOpcode = "S2_storerfabs";
21435 let isPredicable = 1;
21436 let opExtendable = 0;
21437 let isExtentSigned = 0;
21438 let opExtentBits = 17;
21439 let opExtentAlign = 1;
21441 def S2_storerh_io : HInst<
21442 (outs),
21443 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21444 "memh($Rs32+#$Ii) = $Rt32",
21445 tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21446 let Inst{24-21} = 0b1010;
21447 let Inst{31-27} = 0b10100;
21448 let addrMode = BaseImmOffset;
21449 let accessSize = HalfWordAccess;
21450 let mayStore = 1;
21451 let BaseOpcode = "S2_storerh_io";
21452 let CextOpcode = "S2_storerh";
21453 let InputType = "imm";
21454 let isNVStorable = 1;
21455 let isPredicable = 1;
21456 let isExtendable = 1;
21457 let opExtendable = 1;
21458 let isExtentSigned = 1;
21459 let opExtentBits = 12;
21460 let opExtentAlign = 1;
21462 def S2_storerh_pbr : HInst<
21463 (outs IntRegs:$Rx32),
21464 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21465 "memh($Rx32++$Mu2:brev) = $Rt32",
21466 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21467 let Inst{7-0} = 0b00000000;
21468 let Inst{31-21} = 0b10101111010;
21469 let addrMode = PostInc;
21470 let accessSize = HalfWordAccess;
21471 let mayStore = 1;
21472 let BaseOpcode = "S2_storerh_pbr";
21473 let isNVStorable = 1;
21474 let Constraints = "$Rx32 = $Rx32in";
21476 def S2_storerh_pci : HInst<
21477 (outs IntRegs:$Rx32),
21478 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21479 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21480 tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel {
21481 let Inst{2-0} = 0b000;
21482 let Inst{7-7} = 0b0;
21483 let Inst{31-21} = 0b10101001010;
21484 let addrMode = PostInc;
21485 let accessSize = HalfWordAccess;
21486 let mayStore = 1;
21487 let Uses = [CS];
21488 let BaseOpcode = "S2_storerh_pci";
21489 let isNVStorable = 1;
21490 let Constraints = "$Rx32 = $Rx32in";
21492 def S2_storerh_pcr : HInst<
21493 (outs IntRegs:$Rx32),
21494 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21495 "memh($Rx32++I:circ($Mu2)) = $Rt32",
21496 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21497 let Inst{7-0} = 0b00000010;
21498 let Inst{31-21} = 0b10101001010;
21499 let addrMode = PostInc;
21500 let accessSize = HalfWordAccess;
21501 let mayStore = 1;
21502 let Uses = [CS];
21503 let BaseOpcode = "S2_storerh_pcr";
21504 let isNVStorable = 1;
21505 let Constraints = "$Rx32 = $Rx32in";
21507 def S2_storerh_pi : HInst<
21508 (outs IntRegs:$Rx32),
21509 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21510 "memh($Rx32++#$Ii) = $Rt32",
21511 tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21512 let Inst{2-0} = 0b000;
21513 let Inst{7-7} = 0b0;
21514 let Inst{13-13} = 0b0;
21515 let Inst{31-21} = 0b10101011010;
21516 let addrMode = PostInc;
21517 let accessSize = HalfWordAccess;
21518 let mayStore = 1;
21519 let BaseOpcode = "S2_storerh_pi";
21520 let CextOpcode = "S2_storerh";
21521 let isNVStorable = 1;
21522 let isPredicable = 1;
21523 let Constraints = "$Rx32 = $Rx32in";
21525 def S2_storerh_pr : HInst<
21526 (outs IntRegs:$Rx32),
21527 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21528 "memh($Rx32++$Mu2) = $Rt32",
21529 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21530 let Inst{7-0} = 0b00000000;
21531 let Inst{31-21} = 0b10101101010;
21532 let addrMode = PostInc;
21533 let accessSize = HalfWordAccess;
21534 let mayStore = 1;
21535 let BaseOpcode = "S2_storerh_pr";
21536 let isNVStorable = 1;
21537 let Constraints = "$Rx32 = $Rx32in";
21539 def S2_storerh_zomap : HInst<
21540 (outs),
21541 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21542 "memh($Rs32) = $Rt32",
21543 tc_ae5babd7, TypeMAPPING> {
21544 let isPseudo = 1;
21545 let isCodeGenOnly = 1;
21547 def S2_storerhgp : HInst<
21548 (outs),
21549 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21550 "memh(gp+#$Ii) = $Rt32",
21551 tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21552 let Inst{24-21} = 0b0010;
21553 let Inst{31-27} = 0b01001;
21554 let accessSize = HalfWordAccess;
21555 let mayStore = 1;
21556 let Uses = [GP];
21557 let BaseOpcode = "S2_storerhabs";
21558 let isNVStorable = 1;
21559 let isPredicable = 1;
21560 let opExtendable = 0;
21561 let isExtentSigned = 0;
21562 let opExtentBits = 17;
21563 let opExtentAlign = 1;
21565 def S2_storerhnew_io : HInst<
21566 (outs),
21567 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21568 "memh($Rs32+#$Ii) = $Nt8.new",
21569 tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel {
21570 let Inst{12-11} = 0b01;
21571 let Inst{24-21} = 0b1101;
21572 let Inst{31-27} = 0b10100;
21573 let addrMode = BaseImmOffset;
21574 let accessSize = HalfWordAccess;
21575 let isNVStore = 1;
21576 let isNewValue = 1;
21577 let isRestrictNoSlot1Store = 1;
21578 let mayStore = 1;
21579 let BaseOpcode = "S2_storerh_io";
21580 let CextOpcode = "S2_storerh";
21581 let InputType = "imm";
21582 let isPredicable = 1;
21583 let isExtendable = 1;
21584 let opExtendable = 1;
21585 let isExtentSigned = 1;
21586 let opExtentBits = 12;
21587 let opExtentAlign = 1;
21588 let opNewValue = 2;
21590 def S2_storerhnew_pbr : HInst<
21591 (outs IntRegs:$Rx32),
21592 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21593 "memh($Rx32++$Mu2:brev) = $Nt8.new",
21594 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21595 let Inst{7-0} = 0b00000000;
21596 let Inst{12-11} = 0b01;
21597 let Inst{31-21} = 0b10101111101;
21598 let addrMode = PostInc;
21599 let accessSize = HalfWordAccess;
21600 let isNVStore = 1;
21601 let isNewValue = 1;
21602 let isRestrictNoSlot1Store = 1;
21603 let mayStore = 1;
21604 let BaseOpcode = "S2_storerh_pbr";
21605 let opNewValue = 3;
21606 let Constraints = "$Rx32 = $Rx32in";
21608 def S2_storerhnew_pci : HInst<
21609 (outs IntRegs:$Rx32),
21610 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21611 "memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21612 tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel {
21613 let Inst{2-0} = 0b000;
21614 let Inst{7-7} = 0b0;
21615 let Inst{12-11} = 0b01;
21616 let Inst{31-21} = 0b10101001101;
21617 let addrMode = PostInc;
21618 let accessSize = HalfWordAccess;
21619 let isNVStore = 1;
21620 let isNewValue = 1;
21621 let isRestrictNoSlot1Store = 1;
21622 let mayStore = 1;
21623 let Uses = [CS];
21624 let BaseOpcode = "S2_storerh_pci";
21625 let opNewValue = 4;
21626 let Constraints = "$Rx32 = $Rx32in";
21628 def S2_storerhnew_pcr : HInst<
21629 (outs IntRegs:$Rx32),
21630 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21631 "memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21632 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21633 let Inst{7-0} = 0b00000010;
21634 let Inst{12-11} = 0b01;
21635 let Inst{31-21} = 0b10101001101;
21636 let addrMode = PostInc;
21637 let accessSize = HalfWordAccess;
21638 let isNVStore = 1;
21639 let isNewValue = 1;
21640 let isRestrictNoSlot1Store = 1;
21641 let mayStore = 1;
21642 let Uses = [CS];
21643 let BaseOpcode = "S2_storerh_pcr";
21644 let opNewValue = 3;
21645 let Constraints = "$Rx32 = $Rx32in";
21647 def S2_storerhnew_pi : HInst<
21648 (outs IntRegs:$Rx32),
21649 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21650 "memh($Rx32++#$Ii) = $Nt8.new",
21651 tc_92240447, TypeST>, Enc_e26546, AddrModeRel {
21652 let Inst{2-0} = 0b000;
21653 let Inst{7-7} = 0b0;
21654 let Inst{13-11} = 0b001;
21655 let Inst{31-21} = 0b10101011101;
21656 let addrMode = PostInc;
21657 let accessSize = HalfWordAccess;
21658 let isNVStore = 1;
21659 let isNewValue = 1;
21660 let isRestrictNoSlot1Store = 1;
21661 let mayStore = 1;
21662 let BaseOpcode = "S2_storerh_pi";
21663 let isNVStorable = 1;
21664 let isPredicable = 1;
21665 let opNewValue = 3;
21666 let Constraints = "$Rx32 = $Rx32in";
21668 def S2_storerhnew_pr : HInst<
21669 (outs IntRegs:$Rx32),
21670 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21671 "memh($Rx32++$Mu2) = $Nt8.new",
21672 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21673 let Inst{7-0} = 0b00000000;
21674 let Inst{12-11} = 0b01;
21675 let Inst{31-21} = 0b10101101101;
21676 let addrMode = PostInc;
21677 let accessSize = HalfWordAccess;
21678 let isNVStore = 1;
21679 let isNewValue = 1;
21680 let isRestrictNoSlot1Store = 1;
21681 let mayStore = 1;
21682 let BaseOpcode = "S2_storerh_pr";
21683 let opNewValue = 3;
21684 let Constraints = "$Rx32 = $Rx32in";
21686 def S2_storerhnew_zomap : HInst<
21687 (outs),
21688 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21689 "memh($Rs32) = $Nt8.new",
21690 tc_5deb5e47, TypeMAPPING> {
21691 let isPseudo = 1;
21692 let isCodeGenOnly = 1;
21693 let opNewValue = 1;
21695 def S2_storerhnewgp : HInst<
21696 (outs),
21697 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
21698 "memh(gp+#$Ii) = $Nt8.new",
21699 tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21700 let Inst{12-11} = 0b01;
21701 let Inst{24-21} = 0b0101;
21702 let Inst{31-27} = 0b01001;
21703 let accessSize = HalfWordAccess;
21704 let isNVStore = 1;
21705 let isNewValue = 1;
21706 let isRestrictNoSlot1Store = 1;
21707 let mayStore = 1;
21708 let Uses = [GP];
21709 let BaseOpcode = "S2_storerhabs";
21710 let isPredicable = 1;
21711 let opExtendable = 0;
21712 let isExtentSigned = 0;
21713 let opExtentBits = 17;
21714 let opExtentAlign = 1;
21715 let opNewValue = 1;
21717 def S2_storeri_io : HInst<
21718 (outs),
21719 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21720 "memw($Rs32+#$Ii) = $Rt32",
21721 tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21722 let Inst{24-21} = 0b1100;
21723 let Inst{31-27} = 0b10100;
21724 let addrMode = BaseImmOffset;
21725 let accessSize = WordAccess;
21726 let mayStore = 1;
21727 let BaseOpcode = "S2_storeri_io";
21728 let CextOpcode = "S2_storeri";
21729 let InputType = "imm";
21730 let isNVStorable = 1;
21731 let isPredicable = 1;
21732 let isExtendable = 1;
21733 let opExtendable = 1;
21734 let isExtentSigned = 1;
21735 let opExtentBits = 13;
21736 let opExtentAlign = 2;
21738 def S2_storeri_pbr : HInst<
21739 (outs IntRegs:$Rx32),
21740 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21741 "memw($Rx32++$Mu2:brev) = $Rt32",
21742 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21743 let Inst{7-0} = 0b00000000;
21744 let Inst{31-21} = 0b10101111100;
21745 let addrMode = PostInc;
21746 let accessSize = WordAccess;
21747 let mayStore = 1;
21748 let BaseOpcode = "S2_storeri_pbr";
21749 let isNVStorable = 1;
21750 let Constraints = "$Rx32 = $Rx32in";
21752 def S2_storeri_pci : HInst<
21753 (outs IntRegs:$Rx32),
21754 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21755 "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21756 tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel {
21757 let Inst{2-0} = 0b000;
21758 let Inst{7-7} = 0b0;
21759 let Inst{31-21} = 0b10101001100;
21760 let addrMode = PostInc;
21761 let accessSize = WordAccess;
21762 let mayStore = 1;
21763 let Uses = [CS];
21764 let BaseOpcode = "S2_storeri_pci";
21765 let isNVStorable = 1;
21766 let Constraints = "$Rx32 = $Rx32in";
21768 def S2_storeri_pcr : HInst<
21769 (outs IntRegs:$Rx32),
21770 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21771 "memw($Rx32++I:circ($Mu2)) = $Rt32",
21772 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21773 let Inst{7-0} = 0b00000010;
21774 let Inst{31-21} = 0b10101001100;
21775 let addrMode = PostInc;
21776 let accessSize = WordAccess;
21777 let mayStore = 1;
21778 let Uses = [CS];
21779 let BaseOpcode = "S2_storeri_pcr";
21780 let isNVStorable = 1;
21781 let Constraints = "$Rx32 = $Rx32in";
21783 def S2_storeri_pi : HInst<
21784 (outs IntRegs:$Rx32),
21785 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21786 "memw($Rx32++#$Ii) = $Rt32",
21787 tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21788 let Inst{2-0} = 0b000;
21789 let Inst{7-7} = 0b0;
21790 let Inst{13-13} = 0b0;
21791 let Inst{31-21} = 0b10101011100;
21792 let addrMode = PostInc;
21793 let accessSize = WordAccess;
21794 let mayStore = 1;
21795 let BaseOpcode = "S2_storeri_pi";
21796 let CextOpcode = "S2_storeri";
21797 let isNVStorable = 1;
21798 let isPredicable = 1;
21799 let Constraints = "$Rx32 = $Rx32in";
21801 def S2_storeri_pr : HInst<
21802 (outs IntRegs:$Rx32),
21803 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21804 "memw($Rx32++$Mu2) = $Rt32",
21805 tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel {
21806 let Inst{7-0} = 0b00000000;
21807 let Inst{31-21} = 0b10101101100;
21808 let addrMode = PostInc;
21809 let accessSize = WordAccess;
21810 let mayStore = 1;
21811 let BaseOpcode = "S2_storeri_pr";
21812 let isNVStorable = 1;
21813 let Constraints = "$Rx32 = $Rx32in";
21815 def S2_storeri_zomap : HInst<
21816 (outs),
21817 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21818 "memw($Rs32) = $Rt32",
21819 tc_ae5babd7, TypeMAPPING> {
21820 let isPseudo = 1;
21821 let isCodeGenOnly = 1;
21823 def S2_storerigp : HInst<
21824 (outs),
21825 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
21826 "memw(gp+#$Ii) = $Rt32",
21827 tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel {
21828 let Inst{24-21} = 0b0100;
21829 let Inst{31-27} = 0b01001;
21830 let accessSize = WordAccess;
21831 let mayStore = 1;
21832 let Uses = [GP];
21833 let BaseOpcode = "S2_storeriabs";
21834 let isNVStorable = 1;
21835 let isPredicable = 1;
21836 let opExtendable = 0;
21837 let isExtentSigned = 0;
21838 let opExtentBits = 18;
21839 let opExtentAlign = 2;
21841 def S2_storerinew_io : HInst<
21842 (outs),
21843 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21844 "memw($Rs32+#$Ii) = $Nt8.new",
21845 tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel {
21846 let Inst{12-11} = 0b10;
21847 let Inst{24-21} = 0b1101;
21848 let Inst{31-27} = 0b10100;
21849 let addrMode = BaseImmOffset;
21850 let accessSize = WordAccess;
21851 let isNVStore = 1;
21852 let isNewValue = 1;
21853 let isRestrictNoSlot1Store = 1;
21854 let mayStore = 1;
21855 let BaseOpcode = "S2_storeri_io";
21856 let CextOpcode = "S2_storeri";
21857 let InputType = "imm";
21858 let isPredicable = 1;
21859 let isExtendable = 1;
21860 let opExtendable = 1;
21861 let isExtentSigned = 1;
21862 let opExtentBits = 13;
21863 let opExtentAlign = 2;
21864 let opNewValue = 2;
21866 def S2_storerinew_pbr : HInst<
21867 (outs IntRegs:$Rx32),
21868 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21869 "memw($Rx32++$Mu2:brev) = $Nt8.new",
21870 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21871 let Inst{7-0} = 0b00000000;
21872 let Inst{12-11} = 0b10;
21873 let Inst{31-21} = 0b10101111101;
21874 let addrMode = PostInc;
21875 let accessSize = WordAccess;
21876 let isNVStore = 1;
21877 let isNewValue = 1;
21878 let isRestrictNoSlot1Store = 1;
21879 let mayStore = 1;
21880 let BaseOpcode = "S2_storeri_pbr";
21881 let opNewValue = 3;
21882 let Constraints = "$Rx32 = $Rx32in";
21884 def S2_storerinew_pci : HInst<
21885 (outs IntRegs:$Rx32),
21886 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21887 "memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21888 tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel {
21889 let Inst{2-0} = 0b000;
21890 let Inst{7-7} = 0b0;
21891 let Inst{12-11} = 0b10;
21892 let Inst{31-21} = 0b10101001101;
21893 let addrMode = PostInc;
21894 let accessSize = WordAccess;
21895 let isNVStore = 1;
21896 let isNewValue = 1;
21897 let isRestrictNoSlot1Store = 1;
21898 let mayStore = 1;
21899 let Uses = [CS];
21900 let BaseOpcode = "S2_storeri_pci";
21901 let opNewValue = 4;
21902 let Constraints = "$Rx32 = $Rx32in";
21904 def S2_storerinew_pcr : HInst<
21905 (outs IntRegs:$Rx32),
21906 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21907 "memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21908 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21909 let Inst{7-0} = 0b00000010;
21910 let Inst{12-11} = 0b10;
21911 let Inst{31-21} = 0b10101001101;
21912 let addrMode = PostInc;
21913 let accessSize = WordAccess;
21914 let isNVStore = 1;
21915 let isNewValue = 1;
21916 let isRestrictNoSlot1Store = 1;
21917 let mayStore = 1;
21918 let Uses = [CS];
21919 let BaseOpcode = "S2_storeri_pcr";
21920 let opNewValue = 3;
21921 let Constraints = "$Rx32 = $Rx32in";
21923 def S2_storerinew_pi : HInst<
21924 (outs IntRegs:$Rx32),
21925 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21926 "memw($Rx32++#$Ii) = $Nt8.new",
21927 tc_92240447, TypeST>, Enc_223005, AddrModeRel {
21928 let Inst{2-0} = 0b000;
21929 let Inst{7-7} = 0b0;
21930 let Inst{13-11} = 0b010;
21931 let Inst{31-21} = 0b10101011101;
21932 let addrMode = PostInc;
21933 let accessSize = WordAccess;
21934 let isNVStore = 1;
21935 let isNewValue = 1;
21936 let isRestrictNoSlot1Store = 1;
21937 let mayStore = 1;
21938 let BaseOpcode = "S2_storeri_pi";
21939 let isPredicable = 1;
21940 let opNewValue = 3;
21941 let Constraints = "$Rx32 = $Rx32in";
21943 def S2_storerinew_pr : HInst<
21944 (outs IntRegs:$Rx32),
21945 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21946 "memw($Rx32++$Mu2) = $Nt8.new",
21947 tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel {
21948 let Inst{7-0} = 0b00000000;
21949 let Inst{12-11} = 0b10;
21950 let Inst{31-21} = 0b10101101101;
21951 let addrMode = PostInc;
21952 let accessSize = WordAccess;
21953 let isNVStore = 1;
21954 let isNewValue = 1;
21955 let isRestrictNoSlot1Store = 1;
21956 let mayStore = 1;
21957 let BaseOpcode = "S2_storeri_pr";
21958 let opNewValue = 3;
21959 let Constraints = "$Rx32 = $Rx32in";
21961 def S2_storerinew_zomap : HInst<
21962 (outs),
21963 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21964 "memw($Rs32) = $Nt8.new",
21965 tc_5deb5e47, TypeMAPPING> {
21966 let isPseudo = 1;
21967 let isCodeGenOnly = 1;
21968 let opNewValue = 1;
21970 def S2_storerinewgp : HInst<
21971 (outs),
21972 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
21973 "memw(gp+#$Ii) = $Nt8.new",
21974 tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21975 let Inst{12-11} = 0b10;
21976 let Inst{24-21} = 0b0101;
21977 let Inst{31-27} = 0b01001;
21978 let accessSize = WordAccess;
21979 let isNVStore = 1;
21980 let isNewValue = 1;
21981 let isRestrictNoSlot1Store = 1;
21982 let mayStore = 1;
21983 let Uses = [GP];
21984 let BaseOpcode = "S2_storeriabs";
21985 let isPredicable = 1;
21986 let opExtendable = 0;
21987 let isExtentSigned = 0;
21988 let opExtentBits = 18;
21989 let opExtentAlign = 2;
21990 let opNewValue = 1;
21992 def S2_storew_locked : HInst<
21993 (outs PredRegs:$Pd4),
21994 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21995 "memw_locked($Rs32,$Pd4) = $Rt32",
21996 tc_6f42bc60, TypeST>, Enc_c2b48e {
21997 let Inst{7-2} = 0b000000;
21998 let Inst{13-13} = 0b0;
21999 let Inst{31-21} = 0b10100000101;
22000 let accessSize = WordAccess;
22001 let isPredicateLate = 1;
22002 let isSoloAX = 1;
22003 let mayStore = 1;
22005 def S2_storew_rl_at_vi : HInst<
22006 (outs),
22007 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22008 "memw_rl($Rs32):at = $Rt32",
22009 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
22010 let Inst{7-2} = 0b000010;
22011 let Inst{13-13} = 0b0;
22012 let Inst{31-21} = 0b10100000101;
22013 let accessSize = WordAccess;
22014 let isSolo = 1;
22015 let mayStore = 1;
22017 def S2_storew_rl_st_vi : HInst<
22018 (outs),
22019 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22020 "memw_rl($Rs32):st = $Rt32",
22021 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
22022 let Inst{7-2} = 0b001010;
22023 let Inst{13-13} = 0b0;
22024 let Inst{31-21} = 0b10100000101;
22025 let accessSize = WordAccess;
22026 let isSolo = 1;
22027 let mayStore = 1;
22029 def S2_svsathb : HInst<
22030 (outs IntRegs:$Rd32),
22031 (ins IntRegs:$Rs32),
22032 "$Rd32 = vsathb($Rs32)",
22033 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22034 let Inst{13-5} = 0b000000000;
22035 let Inst{31-21} = 0b10001100100;
22036 let hasNewValue = 1;
22037 let opNewValue = 0;
22038 let Defs = [USR_OVF];
22040 def S2_svsathub : HInst<
22041 (outs IntRegs:$Rd32),
22042 (ins IntRegs:$Rs32),
22043 "$Rd32 = vsathub($Rs32)",
22044 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22045 let Inst{13-5} = 0b000000010;
22046 let Inst{31-21} = 0b10001100100;
22047 let hasNewValue = 1;
22048 let opNewValue = 0;
22049 let Defs = [USR_OVF];
22051 def S2_tableidxb : HInst<
22052 (outs IntRegs:$Rx32),
22053 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22054 "$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
22055 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22056 let Inst{31-22} = 0b1000011100;
22057 let hasNewValue = 1;
22058 let opNewValue = 0;
22059 let prefersSlot3 = 1;
22060 let Constraints = "$Rx32 = $Rx32in";
22062 def S2_tableidxb_goodsyntax : HInst<
22063 (outs IntRegs:$Rx32),
22064 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22065 "$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
22066 tc_bb831a7c, TypeS_2op> {
22067 let hasNewValue = 1;
22068 let opNewValue = 0;
22069 let isPseudo = 1;
22070 let isCodeGenOnly = 1;
22071 let Constraints = "$Rx32 = $Rx32in";
22073 def S2_tableidxd : HInst<
22074 (outs IntRegs:$Rx32),
22075 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22076 "$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
22077 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22078 let Inst{31-22} = 0b1000011111;
22079 let hasNewValue = 1;
22080 let opNewValue = 0;
22081 let prefersSlot3 = 1;
22082 let Constraints = "$Rx32 = $Rx32in";
22084 def S2_tableidxd_goodsyntax : HInst<
22085 (outs IntRegs:$Rx32),
22086 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22087 "$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
22088 tc_bb831a7c, TypeS_2op> {
22089 let hasNewValue = 1;
22090 let opNewValue = 0;
22091 let isPseudo = 1;
22092 let Constraints = "$Rx32 = $Rx32in";
22094 def S2_tableidxh : HInst<
22095 (outs IntRegs:$Rx32),
22096 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22097 "$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
22098 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22099 let Inst{31-22} = 0b1000011101;
22100 let hasNewValue = 1;
22101 let opNewValue = 0;
22102 let prefersSlot3 = 1;
22103 let Constraints = "$Rx32 = $Rx32in";
22105 def S2_tableidxh_goodsyntax : HInst<
22106 (outs IntRegs:$Rx32),
22107 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22108 "$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
22109 tc_bb831a7c, TypeS_2op> {
22110 let hasNewValue = 1;
22111 let opNewValue = 0;
22112 let isPseudo = 1;
22113 let Constraints = "$Rx32 = $Rx32in";
22115 def S2_tableidxw : HInst<
22116 (outs IntRegs:$Rx32),
22117 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
22118 "$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
22119 tc_bb831a7c, TypeS_2op>, Enc_cd82bc {
22120 let Inst{31-22} = 0b1000011110;
22121 let hasNewValue = 1;
22122 let opNewValue = 0;
22123 let prefersSlot3 = 1;
22124 let Constraints = "$Rx32 = $Rx32in";
22126 def S2_tableidxw_goodsyntax : HInst<
22127 (outs IntRegs:$Rx32),
22128 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
22129 "$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
22130 tc_bb831a7c, TypeS_2op> {
22131 let hasNewValue = 1;
22132 let opNewValue = 0;
22133 let isPseudo = 1;
22134 let Constraints = "$Rx32 = $Rx32in";
22136 def S2_togglebit_i : HInst<
22137 (outs IntRegs:$Rd32),
22138 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22139 "$Rd32 = togglebit($Rs32,#$Ii)",
22140 tc_5da50c4b, TypeS_2op>, Enc_a05677 {
22141 let Inst{7-5} = 0b010;
22142 let Inst{13-13} = 0b0;
22143 let Inst{31-21} = 0b10001100110;
22144 let hasNewValue = 1;
22145 let opNewValue = 0;
22147 def S2_togglebit_r : HInst<
22148 (outs IntRegs:$Rd32),
22149 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22150 "$Rd32 = togglebit($Rs32,$Rt32)",
22151 tc_5da50c4b, TypeS_3op>, Enc_5ab2be {
22152 let Inst{7-5} = 0b100;
22153 let Inst{13-13} = 0b0;
22154 let Inst{31-21} = 0b11000110100;
22155 let hasNewValue = 1;
22156 let opNewValue = 0;
22158 def S2_tstbit_i : HInst<
22159 (outs PredRegs:$Pd4),
22160 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22161 "$Pd4 = tstbit($Rs32,#$Ii)",
22162 tc_a1297125, TypeS_2op>, Enc_83ee64 {
22163 let Inst{7-2} = 0b000000;
22164 let Inst{13-13} = 0b0;
22165 let Inst{31-21} = 0b10000101000;
22167 def S2_tstbit_r : HInst<
22168 (outs PredRegs:$Pd4),
22169 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22170 "$Pd4 = tstbit($Rs32,$Rt32)",
22171 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22172 let Inst{7-2} = 0b000000;
22173 let Inst{13-13} = 0b0;
22174 let Inst{31-21} = 0b11000111000;
22176 def S2_valignib : HInst<
22177 (outs DoubleRegs:$Rdd32),
22178 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
22179 "$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
22180 tc_6fc5dbea, TypeS_3op>, Enc_729ff7 {
22181 let Inst{13-13} = 0b0;
22182 let Inst{31-21} = 0b11000000000;
22184 def S2_valignrb : HInst<
22185 (outs DoubleRegs:$Rdd32),
22186 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
22187 "$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
22188 tc_6fc5dbea, TypeS_3op>, Enc_8c6530 {
22189 let Inst{7-7} = 0b0;
22190 let Inst{13-13} = 0b0;
22191 let Inst{31-21} = 0b11000010000;
22193 def S2_vcnegh : HInst<
22194 (outs DoubleRegs:$Rdd32),
22195 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22196 "$Rdd32 = vcnegh($Rss32,$Rt32)",
22197 tc_8a825db2, TypeS_3op>, Enc_927852 {
22198 let Inst{7-5} = 0b010;
22199 let Inst{13-13} = 0b0;
22200 let Inst{31-21} = 0b11000011110;
22201 let prefersSlot3 = 1;
22202 let Defs = [USR_OVF];
22204 def S2_vcrotate : HInst<
22205 (outs DoubleRegs:$Rdd32),
22206 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
22207 "$Rdd32 = vcrotate($Rss32,$Rt32)",
22208 tc_0dfac0a7, TypeS_3op>, Enc_927852 {
22209 let Inst{7-5} = 0b000;
22210 let Inst{13-13} = 0b0;
22211 let Inst{31-21} = 0b11000011110;
22212 let prefersSlot3 = 1;
22213 let Defs = [USR_OVF];
22215 def S2_vrcnegh : HInst<
22216 (outs DoubleRegs:$Rxx32),
22217 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
22218 "$Rxx32 += vrcnegh($Rss32,$Rt32)",
22219 tc_7f8ae742, TypeS_3op>, Enc_1aa186 {
22220 let Inst{7-5} = 0b111;
22221 let Inst{13-13} = 0b1;
22222 let Inst{31-21} = 0b11001011001;
22223 let prefersSlot3 = 1;
22224 let Constraints = "$Rxx32 = $Rxx32in";
22226 def S2_vrndpackwh : HInst<
22227 (outs IntRegs:$Rd32),
22228 (ins DoubleRegs:$Rss32),
22229 "$Rd32 = vrndwh($Rss32)",
22230 tc_e3d699e3, TypeS_2op>, Enc_90cd8b {
22231 let Inst{13-5} = 0b000000100;
22232 let Inst{31-21} = 0b10001000100;
22233 let hasNewValue = 1;
22234 let opNewValue = 0;
22235 let prefersSlot3 = 1;
22237 def S2_vrndpackwhs : HInst<
22238 (outs IntRegs:$Rd32),
22239 (ins DoubleRegs:$Rss32),
22240 "$Rd32 = vrndwh($Rss32):sat",
22241 tc_d61dfdc3, TypeS_2op>, Enc_90cd8b {
22242 let Inst{13-5} = 0b000000110;
22243 let Inst{31-21} = 0b10001000100;
22244 let hasNewValue = 1;
22245 let opNewValue = 0;
22246 let prefersSlot3 = 1;
22247 let Defs = [USR_OVF];
22249 def S2_vsathb : HInst<
22250 (outs IntRegs:$Rd32),
22251 (ins DoubleRegs:$Rss32),
22252 "$Rd32 = vsathb($Rss32)",
22253 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22254 let Inst{13-5} = 0b000000110;
22255 let Inst{31-21} = 0b10001000000;
22256 let hasNewValue = 1;
22257 let opNewValue = 0;
22258 let Defs = [USR_OVF];
22260 def S2_vsathb_nopack : HInst<
22261 (outs DoubleRegs:$Rdd32),
22262 (ins DoubleRegs:$Rss32),
22263 "$Rdd32 = vsathb($Rss32)",
22264 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22265 let Inst{13-5} = 0b000000111;
22266 let Inst{31-21} = 0b10000000000;
22267 let Defs = [USR_OVF];
22269 def S2_vsathub : HInst<
22270 (outs IntRegs:$Rd32),
22271 (ins DoubleRegs:$Rss32),
22272 "$Rd32 = vsathub($Rss32)",
22273 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22274 let Inst{13-5} = 0b000000000;
22275 let Inst{31-21} = 0b10001000000;
22276 let hasNewValue = 1;
22277 let opNewValue = 0;
22278 let Defs = [USR_OVF];
22280 def S2_vsathub_nopack : HInst<
22281 (outs DoubleRegs:$Rdd32),
22282 (ins DoubleRegs:$Rss32),
22283 "$Rdd32 = vsathub($Rss32)",
22284 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22285 let Inst{13-5} = 0b000000100;
22286 let Inst{31-21} = 0b10000000000;
22287 let Defs = [USR_OVF];
22289 def S2_vsatwh : HInst<
22290 (outs IntRegs:$Rd32),
22291 (ins DoubleRegs:$Rss32),
22292 "$Rd32 = vsatwh($Rss32)",
22293 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22294 let Inst{13-5} = 0b000000010;
22295 let Inst{31-21} = 0b10001000000;
22296 let hasNewValue = 1;
22297 let opNewValue = 0;
22298 let Defs = [USR_OVF];
22300 def S2_vsatwh_nopack : HInst<
22301 (outs DoubleRegs:$Rdd32),
22302 (ins DoubleRegs:$Rss32),
22303 "$Rdd32 = vsatwh($Rss32)",
22304 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22305 let Inst{13-5} = 0b000000110;
22306 let Inst{31-21} = 0b10000000000;
22307 let Defs = [USR_OVF];
22309 def S2_vsatwuh : HInst<
22310 (outs IntRegs:$Rd32),
22311 (ins DoubleRegs:$Rss32),
22312 "$Rd32 = vsatwuh($Rss32)",
22313 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22314 let Inst{13-5} = 0b000000100;
22315 let Inst{31-21} = 0b10001000000;
22316 let hasNewValue = 1;
22317 let opNewValue = 0;
22318 let Defs = [USR_OVF];
22320 def S2_vsatwuh_nopack : HInst<
22321 (outs DoubleRegs:$Rdd32),
22322 (ins DoubleRegs:$Rss32),
22323 "$Rdd32 = vsatwuh($Rss32)",
22324 tc_9f6cd987, TypeS_2op>, Enc_b9c5fb {
22325 let Inst{13-5} = 0b000000101;
22326 let Inst{31-21} = 0b10000000000;
22327 let Defs = [USR_OVF];
22329 def S2_vsplatrb : HInst<
22330 (outs IntRegs:$Rd32),
22331 (ins IntRegs:$Rs32),
22332 "$Rd32 = vsplatb($Rs32)",
22333 tc_9f6cd987, TypeS_2op>, Enc_5e2823 {
22334 let Inst{13-5} = 0b000000111;
22335 let Inst{31-21} = 0b10001100010;
22336 let hasNewValue = 1;
22337 let opNewValue = 0;
22338 let isAsCheapAsAMove = 1;
22339 let isReMaterializable = 1;
22341 def S2_vsplatrh : HInst<
22342 (outs DoubleRegs:$Rdd32),
22343 (ins IntRegs:$Rs32),
22344 "$Rdd32 = vsplath($Rs32)",
22345 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22346 let Inst{13-5} = 0b000000010;
22347 let Inst{31-21} = 0b10000100010;
22348 let isAsCheapAsAMove = 1;
22349 let isReMaterializable = 1;
22351 def S2_vspliceib : HInst<
22352 (outs DoubleRegs:$Rdd32),
22353 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
22354 "$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
22355 tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 {
22356 let Inst{13-13} = 0b0;
22357 let Inst{31-21} = 0b11000000100;
22359 def S2_vsplicerb : HInst<
22360 (outs DoubleRegs:$Rdd32),
22361 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
22362 "$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
22363 tc_6fc5dbea, TypeS_3op>, Enc_dbd70c {
22364 let Inst{7-7} = 0b0;
22365 let Inst{13-13} = 0b0;
22366 let Inst{31-21} = 0b11000010100;
22368 def S2_vsxtbh : HInst<
22369 (outs DoubleRegs:$Rdd32),
22370 (ins IntRegs:$Rs32),
22371 "$Rdd32 = vsxtbh($Rs32)",
22372 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22373 let Inst{13-5} = 0b000000000;
22374 let Inst{31-21} = 0b10000100000;
22375 let isAsCheapAsAMove = 1;
22376 let isReMaterializable = 1;
22378 def S2_vsxthw : HInst<
22379 (outs DoubleRegs:$Rdd32),
22380 (ins IntRegs:$Rs32),
22381 "$Rdd32 = vsxthw($Rs32)",
22382 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22383 let Inst{13-5} = 0b000000100;
22384 let Inst{31-21} = 0b10000100000;
22385 let isAsCheapAsAMove = 1;
22386 let isReMaterializable = 1;
22388 def S2_vtrunehb : HInst<
22389 (outs IntRegs:$Rd32),
22390 (ins DoubleRegs:$Rss32),
22391 "$Rd32 = vtrunehb($Rss32)",
22392 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22393 let Inst{13-5} = 0b000000010;
22394 let Inst{31-21} = 0b10001000100;
22395 let hasNewValue = 1;
22396 let opNewValue = 0;
22398 def S2_vtrunewh : HInst<
22399 (outs DoubleRegs:$Rdd32),
22400 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22401 "$Rdd32 = vtrunewh($Rss32,$Rtt32)",
22402 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22403 let Inst{7-5} = 0b010;
22404 let Inst{13-13} = 0b0;
22405 let Inst{31-21} = 0b11000001100;
22407 def S2_vtrunohb : HInst<
22408 (outs IntRegs:$Rd32),
22409 (ins DoubleRegs:$Rss32),
22410 "$Rd32 = vtrunohb($Rss32)",
22411 tc_9f6cd987, TypeS_2op>, Enc_90cd8b {
22412 let Inst{13-5} = 0b000000000;
22413 let Inst{31-21} = 0b10001000100;
22414 let hasNewValue = 1;
22415 let opNewValue = 0;
22417 def S2_vtrunowh : HInst<
22418 (outs DoubleRegs:$Rdd32),
22419 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22420 "$Rdd32 = vtrunowh($Rss32,$Rtt32)",
22421 tc_5da50c4b, TypeS_3op>, Enc_a56825 {
22422 let Inst{7-5} = 0b100;
22423 let Inst{13-13} = 0b0;
22424 let Inst{31-21} = 0b11000001100;
22426 def S2_vzxtbh : HInst<
22427 (outs DoubleRegs:$Rdd32),
22428 (ins IntRegs:$Rs32),
22429 "$Rdd32 = vzxtbh($Rs32)",
22430 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22431 let Inst{13-5} = 0b000000010;
22432 let Inst{31-21} = 0b10000100000;
22433 let isAsCheapAsAMove = 1;
22434 let isReMaterializable = 1;
22436 def S2_vzxthw : HInst<
22437 (outs DoubleRegs:$Rdd32),
22438 (ins IntRegs:$Rs32),
22439 "$Rdd32 = vzxthw($Rs32)",
22440 tc_9f6cd987, TypeS_2op>, Enc_3a3d62 {
22441 let Inst{13-5} = 0b000000110;
22442 let Inst{31-21} = 0b10000100000;
22443 let isAsCheapAsAMove = 1;
22444 let isReMaterializable = 1;
22446 def S4_addaddi : HInst<
22447 (outs IntRegs:$Rd32),
22448 (ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22449 "$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22450 tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
22451 let Inst{31-23} = 0b110110110;
22452 let hasNewValue = 1;
22453 let opNewValue = 0;
22454 let prefersSlot3 = 1;
22455 let isExtendable = 1;
22456 let opExtendable = 3;
22457 let isExtentSigned = 1;
22458 let opExtentBits = 6;
22459 let opExtentAlign = 0;
22461 def S4_addi_asl_ri : HInst<
22462 (outs IntRegs:$Rx32),
22463 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22464 "$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22465 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22466 let Inst{2-0} = 0b100;
22467 let Inst{4-4} = 0b0;
22468 let Inst{31-24} = 0b11011110;
22469 let hasNewValue = 1;
22470 let opNewValue = 0;
22471 let prefersSlot3 = 1;
22472 let isExtendable = 1;
22473 let opExtendable = 1;
22474 let isExtentSigned = 0;
22475 let opExtentBits = 8;
22476 let opExtentAlign = 0;
22477 let Constraints = "$Rx32 = $Rx32in";
22479 def S4_addi_lsr_ri : HInst<
22480 (outs IntRegs:$Rx32),
22481 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22482 "$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22483 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22484 let Inst{2-0} = 0b100;
22485 let Inst{4-4} = 0b1;
22486 let Inst{31-24} = 0b11011110;
22487 let hasNewValue = 1;
22488 let opNewValue = 0;
22489 let prefersSlot3 = 1;
22490 let isExtendable = 1;
22491 let opExtendable = 1;
22492 let isExtentSigned = 0;
22493 let opExtentBits = 8;
22494 let opExtentAlign = 0;
22495 let Constraints = "$Rx32 = $Rx32in";
22497 def S4_andi_asl_ri : HInst<
22498 (outs IntRegs:$Rx32),
22499 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22500 "$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22501 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22502 let Inst{2-0} = 0b000;
22503 let Inst{4-4} = 0b0;
22504 let Inst{31-24} = 0b11011110;
22505 let hasNewValue = 1;
22506 let opNewValue = 0;
22507 let prefersSlot3 = 1;
22508 let isExtendable = 1;
22509 let opExtendable = 1;
22510 let isExtentSigned = 0;
22511 let opExtentBits = 8;
22512 let opExtentAlign = 0;
22513 let Constraints = "$Rx32 = $Rx32in";
22515 def S4_andi_lsr_ri : HInst<
22516 (outs IntRegs:$Rx32),
22517 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22518 "$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22519 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22520 let Inst{2-0} = 0b000;
22521 let Inst{4-4} = 0b1;
22522 let Inst{31-24} = 0b11011110;
22523 let hasNewValue = 1;
22524 let opNewValue = 0;
22525 let prefersSlot3 = 1;
22526 let isExtendable = 1;
22527 let opExtendable = 1;
22528 let isExtentSigned = 0;
22529 let opExtentBits = 8;
22530 let opExtentAlign = 0;
22531 let Constraints = "$Rx32 = $Rx32in";
22533 def S4_clbaddi : HInst<
22534 (outs IntRegs:$Rd32),
22535 (ins IntRegs:$Rs32, s6_0Imm:$Ii),
22536 "$Rd32 = add(clb($Rs32),#$Ii)",
22537 tc_a08b630b, TypeS_2op>, Enc_9fae8a {
22538 let Inst{7-5} = 0b000;
22539 let Inst{31-21} = 0b10001100001;
22540 let hasNewValue = 1;
22541 let opNewValue = 0;
22542 let prefersSlot3 = 1;
22544 def S4_clbpaddi : HInst<
22545 (outs IntRegs:$Rd32),
22546 (ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22547 "$Rd32 = add(clb($Rss32),#$Ii)",
22548 tc_a08b630b, TypeS_2op>, Enc_a1640c {
22549 let Inst{7-5} = 0b010;
22550 let Inst{31-21} = 0b10001000011;
22551 let hasNewValue = 1;
22552 let opNewValue = 0;
22553 let prefersSlot3 = 1;
22555 def S4_clbpnorm : HInst<
22556 (outs IntRegs:$Rd32),
22557 (ins DoubleRegs:$Rss32),
22558 "$Rd32 = normamt($Rss32)",
22559 tc_a7bdb22c, TypeS_2op>, Enc_90cd8b {
22560 let Inst{13-5} = 0b000000000;
22561 let Inst{31-21} = 0b10001000011;
22562 let hasNewValue = 1;
22563 let opNewValue = 0;
22564 let prefersSlot3 = 1;
22566 def S4_extract : HInst<
22567 (outs IntRegs:$Rd32),
22568 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22569 "$Rd32 = extract($Rs32,#$Ii,#$II)",
22570 tc_2c13e7f5, TypeS_2op>, Enc_b388cf {
22571 let Inst{13-13} = 0b0;
22572 let Inst{31-23} = 0b100011011;
22573 let hasNewValue = 1;
22574 let opNewValue = 0;
22575 let prefersSlot3 = 1;
22577 def S4_extract_rp : HInst<
22578 (outs IntRegs:$Rd32),
22579 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22580 "$Rd32 = extract($Rs32,$Rtt32)",
22581 tc_a08b630b, TypeS_3op>, Enc_e07374 {
22582 let Inst{7-5} = 0b010;
22583 let Inst{13-13} = 0b0;
22584 let Inst{31-21} = 0b11001001000;
22585 let hasNewValue = 1;
22586 let opNewValue = 0;
22587 let prefersSlot3 = 1;
22589 def S4_extractp : HInst<
22590 (outs DoubleRegs:$Rdd32),
22591 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22592 "$Rdd32 = extract($Rss32,#$Ii,#$II)",
22593 tc_2c13e7f5, TypeS_2op>, Enc_b84c4c {
22594 let Inst{31-24} = 0b10001010;
22595 let prefersSlot3 = 1;
22597 def S4_extractp_rp : HInst<
22598 (outs DoubleRegs:$Rdd32),
22599 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22600 "$Rdd32 = extract($Rss32,$Rtt32)",
22601 tc_a08b630b, TypeS_3op>, Enc_a56825 {
22602 let Inst{7-5} = 0b100;
22603 let Inst{13-13} = 0b0;
22604 let Inst{31-21} = 0b11000001110;
22605 let prefersSlot3 = 1;
22607 def S4_lsli : HInst<
22608 (outs IntRegs:$Rd32),
22609 (ins s6_0Imm:$Ii, IntRegs:$Rt32),
22610 "$Rd32 = lsl(#$Ii,$Rt32)",
22611 tc_5da50c4b, TypeS_3op>, Enc_fef969 {
22612 let Inst{7-6} = 0b11;
22613 let Inst{13-13} = 0b0;
22614 let Inst{31-21} = 0b11000110100;
22615 let hasNewValue = 1;
22616 let opNewValue = 0;
22618 def S4_ntstbit_i : HInst<
22619 (outs PredRegs:$Pd4),
22620 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22621 "$Pd4 = !tstbit($Rs32,#$Ii)",
22622 tc_a1297125, TypeS_2op>, Enc_83ee64 {
22623 let Inst{7-2} = 0b000000;
22624 let Inst{13-13} = 0b0;
22625 let Inst{31-21} = 0b10000101001;
22627 def S4_ntstbit_r : HInst<
22628 (outs PredRegs:$Pd4),
22629 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22630 "$Pd4 = !tstbit($Rs32,$Rt32)",
22631 tc_4a55d03c, TypeS_3op>, Enc_c2b48e {
22632 let Inst{7-2} = 0b000000;
22633 let Inst{13-13} = 0b0;
22634 let Inst{31-21} = 0b11000111001;
22636 def S4_or_andi : HInst<
22637 (outs IntRegs:$Rx32),
22638 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22639 "$Rx32 |= and($Rs32,#$Ii)",
22640 tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22641 let Inst{31-22} = 0b1101101000;
22642 let hasNewValue = 1;
22643 let opNewValue = 0;
22644 let prefersSlot3 = 1;
22645 let InputType = "imm";
22646 let isExtendable = 1;
22647 let opExtendable = 3;
22648 let isExtentSigned = 1;
22649 let opExtentBits = 10;
22650 let opExtentAlign = 0;
22651 let Constraints = "$Rx32 = $Rx32in";
22653 def S4_or_andix : HInst<
22654 (outs IntRegs:$Rx32),
22655 (ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22656 "$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22657 tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> {
22658 let Inst{31-22} = 0b1101101001;
22659 let hasNewValue = 1;
22660 let opNewValue = 0;
22661 let prefersSlot3 = 1;
22662 let isExtendable = 1;
22663 let opExtendable = 3;
22664 let isExtentSigned = 1;
22665 let opExtentBits = 10;
22666 let opExtentAlign = 0;
22667 let Constraints = "$Rx32 = $Rx32in";
22669 def S4_or_ori : HInst<
22670 (outs IntRegs:$Rx32),
22671 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22672 "$Rx32 |= or($Rs32,#$Ii)",
22673 tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 {
22674 let Inst{31-22} = 0b1101101010;
22675 let hasNewValue = 1;
22676 let opNewValue = 0;
22677 let prefersSlot3 = 1;
22678 let InputType = "imm";
22679 let isExtendable = 1;
22680 let opExtendable = 3;
22681 let isExtentSigned = 1;
22682 let opExtentBits = 10;
22683 let opExtentAlign = 0;
22684 let Constraints = "$Rx32 = $Rx32in";
22686 def S4_ori_asl_ri : HInst<
22687 (outs IntRegs:$Rx32),
22688 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22689 "$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22690 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22691 let Inst{2-0} = 0b010;
22692 let Inst{4-4} = 0b0;
22693 let Inst{31-24} = 0b11011110;
22694 let hasNewValue = 1;
22695 let opNewValue = 0;
22696 let prefersSlot3 = 1;
22697 let isExtendable = 1;
22698 let opExtendable = 1;
22699 let isExtentSigned = 0;
22700 let opExtentBits = 8;
22701 let opExtentAlign = 0;
22702 let Constraints = "$Rx32 = $Rx32in";
22704 def S4_ori_lsr_ri : HInst<
22705 (outs IntRegs:$Rx32),
22706 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22707 "$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22708 tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
22709 let Inst{2-0} = 0b010;
22710 let Inst{4-4} = 0b1;
22711 let Inst{31-24} = 0b11011110;
22712 let hasNewValue = 1;
22713 let opNewValue = 0;
22714 let prefersSlot3 = 1;
22715 let isExtendable = 1;
22716 let opExtendable = 1;
22717 let isExtentSigned = 0;
22718 let opExtentBits = 8;
22719 let opExtentAlign = 0;
22720 let Constraints = "$Rx32 = $Rx32in";
22722 def S4_parity : HInst<
22723 (outs IntRegs:$Rd32),
22724 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22725 "$Rd32 = parity($Rs32,$Rt32)",
22726 tc_a08b630b, TypeALU64>, Enc_5ab2be {
22727 let Inst{7-5} = 0b000;
22728 let Inst{13-13} = 0b0;
22729 let Inst{31-21} = 0b11010101111;
22730 let hasNewValue = 1;
22731 let opNewValue = 0;
22732 let prefersSlot3 = 1;
22734 def S4_pstorerbf_abs : HInst<
22735 (outs),
22736 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22737 "if (!$Pv4) memb(#$Ii) = $Rt32",
22738 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
22739 let Inst{2-2} = 0b1;
22740 let Inst{7-7} = 0b1;
22741 let Inst{13-13} = 0b0;
22742 let Inst{31-18} = 0b10101111000000;
22743 let isPredicated = 1;
22744 let isPredicatedFalse = 1;
22745 let addrMode = Absolute;
22746 let accessSize = ByteAccess;
22747 let isExtended = 1;
22748 let mayStore = 1;
22749 let BaseOpcode = "S2_storerbabs";
22750 let CextOpcode = "S2_storerb";
22751 let isNVStorable = 1;
22752 let DecoderNamespace = "MustExtend";
22753 let isExtendable = 1;
22754 let opExtendable = 1;
22755 let isExtentSigned = 0;
22756 let opExtentBits = 6;
22757 let opExtentAlign = 0;
22759 def S4_pstorerbf_rr : HInst<
22760 (outs),
22761 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22762 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22763 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
22764 let Inst{31-21} = 0b00110101000;
22765 let isPredicated = 1;
22766 let isPredicatedFalse = 1;
22767 let addrMode = BaseRegOffset;
22768 let accessSize = ByteAccess;
22769 let mayStore = 1;
22770 let BaseOpcode = "S4_storerb_rr";
22771 let CextOpcode = "S2_storerb";
22772 let InputType = "reg";
22773 let isNVStorable = 1;
22775 def S4_pstorerbfnew_abs : HInst<
22776 (outs),
22777 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22778 "if (!$Pv4.new) memb(#$Ii) = $Rt32",
22779 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
22780 let Inst{2-2} = 0b1;
22781 let Inst{7-7} = 0b1;
22782 let Inst{13-13} = 0b1;
22783 let Inst{31-18} = 0b10101111000000;
22784 let isPredicated = 1;
22785 let isPredicatedFalse = 1;
22786 let addrMode = Absolute;
22787 let accessSize = ByteAccess;
22788 let isPredicatedNew = 1;
22789 let isExtended = 1;
22790 let mayStore = 1;
22791 let BaseOpcode = "S2_storerbabs";
22792 let CextOpcode = "S2_storerb";
22793 let isNVStorable = 1;
22794 let DecoderNamespace = "MustExtend";
22795 let isExtendable = 1;
22796 let opExtendable = 1;
22797 let isExtentSigned = 0;
22798 let opExtentBits = 6;
22799 let opExtentAlign = 0;
22801 def S4_pstorerbfnew_io : HInst<
22802 (outs),
22803 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22804 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22805 tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22806 let Inst{2-2} = 0b0;
22807 let Inst{31-21} = 0b01000110000;
22808 let isPredicated = 1;
22809 let isPredicatedFalse = 1;
22810 let addrMode = BaseImmOffset;
22811 let accessSize = ByteAccess;
22812 let isPredicatedNew = 1;
22813 let mayStore = 1;
22814 let BaseOpcode = "S2_storerb_io";
22815 let CextOpcode = "S2_storerb";
22816 let InputType = "imm";
22817 let isNVStorable = 1;
22818 let isExtendable = 1;
22819 let opExtendable = 2;
22820 let isExtentSigned = 0;
22821 let opExtentBits = 6;
22822 let opExtentAlign = 0;
22824 def S4_pstorerbfnew_rr : HInst<
22825 (outs),
22826 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22827 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22828 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
22829 let Inst{31-21} = 0b00110111000;
22830 let isPredicated = 1;
22831 let isPredicatedFalse = 1;
22832 let addrMode = BaseRegOffset;
22833 let accessSize = ByteAccess;
22834 let isPredicatedNew = 1;
22835 let mayStore = 1;
22836 let BaseOpcode = "S4_storerb_rr";
22837 let CextOpcode = "S2_storerb";
22838 let InputType = "reg";
22839 let isNVStorable = 1;
22841 def S4_pstorerbfnew_zomap : HInst<
22842 (outs),
22843 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22844 "if (!$Pv4.new) memb($Rs32) = $Rt32",
22845 tc_a2b365d2, TypeMAPPING> {
22846 let isPseudo = 1;
22847 let isCodeGenOnly = 1;
22849 def S4_pstorerbnewf_abs : HInst<
22850 (outs),
22851 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22852 "if (!$Pv4) memb(#$Ii) = $Nt8.new",
22853 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22854 let Inst{2-2} = 0b1;
22855 let Inst{7-7} = 0b1;
22856 let Inst{13-11} = 0b000;
22857 let Inst{31-18} = 0b10101111101000;
22858 let isPredicated = 1;
22859 let isPredicatedFalse = 1;
22860 let addrMode = Absolute;
22861 let accessSize = ByteAccess;
22862 let isNVStore = 1;
22863 let isNewValue = 1;
22864 let isExtended = 1;
22865 let isRestrictNoSlot1Store = 1;
22866 let mayStore = 1;
22867 let BaseOpcode = "S2_storerbabs";
22868 let CextOpcode = "S2_storerb";
22869 let DecoderNamespace = "MustExtend";
22870 let isExtendable = 1;
22871 let opExtendable = 1;
22872 let isExtentSigned = 0;
22873 let opExtentBits = 6;
22874 let opExtentAlign = 0;
22875 let opNewValue = 2;
22877 def S4_pstorerbnewf_rr : HInst<
22878 (outs),
22879 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22880 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22881 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
22882 let Inst{4-3} = 0b00;
22883 let Inst{31-21} = 0b00110101101;
22884 let isPredicated = 1;
22885 let isPredicatedFalse = 1;
22886 let addrMode = BaseRegOffset;
22887 let accessSize = ByteAccess;
22888 let isNVStore = 1;
22889 let isNewValue = 1;
22890 let isRestrictNoSlot1Store = 1;
22891 let mayStore = 1;
22892 let BaseOpcode = "S4_storerb_rr";
22893 let CextOpcode = "S2_storerb";
22894 let InputType = "reg";
22895 let opNewValue = 4;
22897 def S4_pstorerbnewfnew_abs : HInst<
22898 (outs),
22899 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22900 "if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22901 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
22902 let Inst{2-2} = 0b1;
22903 let Inst{7-7} = 0b1;
22904 let Inst{13-11} = 0b100;
22905 let Inst{31-18} = 0b10101111101000;
22906 let isPredicated = 1;
22907 let isPredicatedFalse = 1;
22908 let addrMode = Absolute;
22909 let accessSize = ByteAccess;
22910 let isNVStore = 1;
22911 let isPredicatedNew = 1;
22912 let isNewValue = 1;
22913 let isExtended = 1;
22914 let isRestrictNoSlot1Store = 1;
22915 let mayStore = 1;
22916 let BaseOpcode = "S2_storerbabs";
22917 let CextOpcode = "S2_storerb";
22918 let DecoderNamespace = "MustExtend";
22919 let isExtendable = 1;
22920 let opExtendable = 1;
22921 let isExtentSigned = 0;
22922 let opExtentBits = 6;
22923 let opExtentAlign = 0;
22924 let opNewValue = 2;
22926 def S4_pstorerbnewfnew_io : HInst<
22927 (outs),
22928 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22929 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22930 tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
22931 let Inst{2-2} = 0b0;
22932 let Inst{12-11} = 0b00;
22933 let Inst{31-21} = 0b01000110101;
22934 let isPredicated = 1;
22935 let isPredicatedFalse = 1;
22936 let addrMode = BaseImmOffset;
22937 let accessSize = ByteAccess;
22938 let isNVStore = 1;
22939 let isPredicatedNew = 1;
22940 let isNewValue = 1;
22941 let isRestrictNoSlot1Store = 1;
22942 let mayStore = 1;
22943 let BaseOpcode = "S2_storerb_io";
22944 let CextOpcode = "S2_storerb";
22945 let InputType = "imm";
22946 let isExtendable = 1;
22947 let opExtendable = 2;
22948 let isExtentSigned = 0;
22949 let opExtentBits = 6;
22950 let opExtentAlign = 0;
22951 let opNewValue = 3;
22953 def S4_pstorerbnewfnew_rr : HInst<
22954 (outs),
22955 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22956 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22957 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
22958 let Inst{4-3} = 0b00;
22959 let Inst{31-21} = 0b00110111101;
22960 let isPredicated = 1;
22961 let isPredicatedFalse = 1;
22962 let addrMode = BaseRegOffset;
22963 let accessSize = ByteAccess;
22964 let isNVStore = 1;
22965 let isPredicatedNew = 1;
22966 let isNewValue = 1;
22967 let isRestrictNoSlot1Store = 1;
22968 let mayStore = 1;
22969 let BaseOpcode = "S4_storerb_rr";
22970 let CextOpcode = "S2_storerb";
22971 let InputType = "reg";
22972 let opNewValue = 4;
22974 def S4_pstorerbnewfnew_zomap : HInst<
22975 (outs),
22976 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22977 "if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22978 tc_92240447, TypeMAPPING> {
22979 let isPseudo = 1;
22980 let isCodeGenOnly = 1;
22981 let opNewValue = 2;
22983 def S4_pstorerbnewt_abs : HInst<
22984 (outs),
22985 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22986 "if ($Pv4) memb(#$Ii) = $Nt8.new",
22987 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
22988 let Inst{2-2} = 0b0;
22989 let Inst{7-7} = 0b1;
22990 let Inst{13-11} = 0b000;
22991 let Inst{31-18} = 0b10101111101000;
22992 let isPredicated = 1;
22993 let addrMode = Absolute;
22994 let accessSize = ByteAccess;
22995 let isNVStore = 1;
22996 let isNewValue = 1;
22997 let isExtended = 1;
22998 let isRestrictNoSlot1Store = 1;
22999 let mayStore = 1;
23000 let BaseOpcode = "S2_storerbabs";
23001 let CextOpcode = "S2_storerb";
23002 let DecoderNamespace = "MustExtend";
23003 let isExtendable = 1;
23004 let opExtendable = 1;
23005 let isExtentSigned = 0;
23006 let opExtentBits = 6;
23007 let opExtentAlign = 0;
23008 let opNewValue = 2;
23010 def S4_pstorerbnewt_rr : HInst<
23011 (outs),
23012 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23013 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23014 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23015 let Inst{4-3} = 0b00;
23016 let Inst{31-21} = 0b00110100101;
23017 let isPredicated = 1;
23018 let addrMode = BaseRegOffset;
23019 let accessSize = ByteAccess;
23020 let isNVStore = 1;
23021 let isNewValue = 1;
23022 let isRestrictNoSlot1Store = 1;
23023 let mayStore = 1;
23024 let BaseOpcode = "S4_storerb_rr";
23025 let CextOpcode = "S2_storerb";
23026 let InputType = "reg";
23027 let opNewValue = 4;
23029 def S4_pstorerbnewtnew_abs : HInst<
23030 (outs),
23031 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23032 "if ($Pv4.new) memb(#$Ii) = $Nt8.new",
23033 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23034 let Inst{2-2} = 0b0;
23035 let Inst{7-7} = 0b1;
23036 let Inst{13-11} = 0b100;
23037 let Inst{31-18} = 0b10101111101000;
23038 let isPredicated = 1;
23039 let addrMode = Absolute;
23040 let accessSize = ByteAccess;
23041 let isNVStore = 1;
23042 let isPredicatedNew = 1;
23043 let isNewValue = 1;
23044 let isExtended = 1;
23045 let isRestrictNoSlot1Store = 1;
23046 let mayStore = 1;
23047 let BaseOpcode = "S2_storerbabs";
23048 let CextOpcode = "S2_storerb";
23049 let DecoderNamespace = "MustExtend";
23050 let isExtendable = 1;
23051 let opExtendable = 1;
23052 let isExtentSigned = 0;
23053 let opExtentBits = 6;
23054 let opExtentAlign = 0;
23055 let opNewValue = 2;
23057 def S4_pstorerbnewtnew_io : HInst<
23058 (outs),
23059 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
23060 "if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
23061 tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel {
23062 let Inst{2-2} = 0b0;
23063 let Inst{12-11} = 0b00;
23064 let Inst{31-21} = 0b01000010101;
23065 let isPredicated = 1;
23066 let addrMode = BaseImmOffset;
23067 let accessSize = ByteAccess;
23068 let isNVStore = 1;
23069 let isPredicatedNew = 1;
23070 let isNewValue = 1;
23071 let isRestrictNoSlot1Store = 1;
23072 let mayStore = 1;
23073 let BaseOpcode = "S2_storerb_io";
23074 let CextOpcode = "S2_storerb";
23075 let InputType = "imm";
23076 let isExtendable = 1;
23077 let opExtendable = 2;
23078 let isExtentSigned = 0;
23079 let opExtentBits = 6;
23080 let opExtentAlign = 0;
23081 let opNewValue = 3;
23083 def S4_pstorerbnewtnew_rr : HInst<
23084 (outs),
23085 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23086 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23087 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23088 let Inst{4-3} = 0b00;
23089 let Inst{31-21} = 0b00110110101;
23090 let isPredicated = 1;
23091 let addrMode = BaseRegOffset;
23092 let accessSize = ByteAccess;
23093 let isNVStore = 1;
23094 let isPredicatedNew = 1;
23095 let isNewValue = 1;
23096 let isRestrictNoSlot1Store = 1;
23097 let mayStore = 1;
23098 let BaseOpcode = "S4_storerb_rr";
23099 let CextOpcode = "S2_storerb";
23100 let InputType = "reg";
23101 let opNewValue = 4;
23103 def S4_pstorerbnewtnew_zomap : HInst<
23104 (outs),
23105 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23106 "if ($Pv4.new) memb($Rs32) = $Nt8.new",
23107 tc_92240447, TypeMAPPING> {
23108 let isPseudo = 1;
23109 let isCodeGenOnly = 1;
23110 let opNewValue = 2;
23112 def S4_pstorerbt_abs : HInst<
23113 (outs),
23114 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23115 "if ($Pv4) memb(#$Ii) = $Rt32",
23116 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23117 let Inst{2-2} = 0b0;
23118 let Inst{7-7} = 0b1;
23119 let Inst{13-13} = 0b0;
23120 let Inst{31-18} = 0b10101111000000;
23121 let isPredicated = 1;
23122 let addrMode = Absolute;
23123 let accessSize = ByteAccess;
23124 let isExtended = 1;
23125 let mayStore = 1;
23126 let BaseOpcode = "S2_storerbabs";
23127 let CextOpcode = "S2_storerb";
23128 let isNVStorable = 1;
23129 let DecoderNamespace = "MustExtend";
23130 let isExtendable = 1;
23131 let opExtendable = 1;
23132 let isExtentSigned = 0;
23133 let opExtentBits = 6;
23134 let opExtentAlign = 0;
23136 def S4_pstorerbt_rr : HInst<
23137 (outs),
23138 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23139 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23140 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23141 let Inst{31-21} = 0b00110100000;
23142 let isPredicated = 1;
23143 let addrMode = BaseRegOffset;
23144 let accessSize = ByteAccess;
23145 let mayStore = 1;
23146 let BaseOpcode = "S4_storerb_rr";
23147 let CextOpcode = "S2_storerb";
23148 let InputType = "reg";
23149 let isNVStorable = 1;
23151 def S4_pstorerbtnew_abs : HInst<
23152 (outs),
23153 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23154 "if ($Pv4.new) memb(#$Ii) = $Rt32",
23155 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23156 let Inst{2-2} = 0b0;
23157 let Inst{7-7} = 0b1;
23158 let Inst{13-13} = 0b1;
23159 let Inst{31-18} = 0b10101111000000;
23160 let isPredicated = 1;
23161 let addrMode = Absolute;
23162 let accessSize = ByteAccess;
23163 let isPredicatedNew = 1;
23164 let isExtended = 1;
23165 let mayStore = 1;
23166 let BaseOpcode = "S2_storerbabs";
23167 let CextOpcode = "S2_storerb";
23168 let isNVStorable = 1;
23169 let DecoderNamespace = "MustExtend";
23170 let isExtendable = 1;
23171 let opExtendable = 1;
23172 let isExtentSigned = 0;
23173 let opExtentBits = 6;
23174 let opExtentAlign = 0;
23176 def S4_pstorerbtnew_io : HInst<
23177 (outs),
23178 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
23179 "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
23180 tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel {
23181 let Inst{2-2} = 0b0;
23182 let Inst{31-21} = 0b01000010000;
23183 let isPredicated = 1;
23184 let addrMode = BaseImmOffset;
23185 let accessSize = ByteAccess;
23186 let isPredicatedNew = 1;
23187 let mayStore = 1;
23188 let BaseOpcode = "S2_storerb_io";
23189 let CextOpcode = "S2_storerb";
23190 let InputType = "imm";
23191 let isNVStorable = 1;
23192 let isExtendable = 1;
23193 let opExtendable = 2;
23194 let isExtentSigned = 0;
23195 let opExtentBits = 6;
23196 let opExtentAlign = 0;
23198 def S4_pstorerbtnew_rr : HInst<
23199 (outs),
23200 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23201 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23202 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23203 let Inst{31-21} = 0b00110110000;
23204 let isPredicated = 1;
23205 let addrMode = BaseRegOffset;
23206 let accessSize = ByteAccess;
23207 let isPredicatedNew = 1;
23208 let mayStore = 1;
23209 let BaseOpcode = "S4_storerb_rr";
23210 let CextOpcode = "S2_storerb";
23211 let InputType = "reg";
23212 let isNVStorable = 1;
23214 def S4_pstorerbtnew_zomap : HInst<
23215 (outs),
23216 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23217 "if ($Pv4.new) memb($Rs32) = $Rt32",
23218 tc_a2b365d2, TypeMAPPING> {
23219 let isPseudo = 1;
23220 let isCodeGenOnly = 1;
23222 def S4_pstorerdf_abs : HInst<
23223 (outs),
23224 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23225 "if (!$Pv4) memd(#$Ii) = $Rtt32",
23226 tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23227 let Inst{2-2} = 0b1;
23228 let Inst{7-7} = 0b1;
23229 let Inst{13-13} = 0b0;
23230 let Inst{31-18} = 0b10101111110000;
23231 let isPredicated = 1;
23232 let isPredicatedFalse = 1;
23233 let addrMode = Absolute;
23234 let accessSize = DoubleWordAccess;
23235 let isExtended = 1;
23236 let mayStore = 1;
23237 let BaseOpcode = "S2_storerdabs";
23238 let CextOpcode = "S2_storerd";
23239 let DecoderNamespace = "MustExtend";
23240 let isExtendable = 1;
23241 let opExtendable = 1;
23242 let isExtentSigned = 0;
23243 let opExtentBits = 6;
23244 let opExtentAlign = 0;
23246 def S4_pstorerdf_rr : HInst<
23247 (outs),
23248 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23249 "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23250 tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23251 let Inst{31-21} = 0b00110101110;
23252 let isPredicated = 1;
23253 let isPredicatedFalse = 1;
23254 let addrMode = BaseRegOffset;
23255 let accessSize = DoubleWordAccess;
23256 let mayStore = 1;
23257 let BaseOpcode = "S2_storerd_rr";
23258 let CextOpcode = "S2_storerd";
23259 let InputType = "reg";
23261 def S4_pstorerdfnew_abs : HInst<
23262 (outs),
23263 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23264 "if (!$Pv4.new) memd(#$Ii) = $Rtt32",
23265 tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23266 let Inst{2-2} = 0b1;
23267 let Inst{7-7} = 0b1;
23268 let Inst{13-13} = 0b1;
23269 let Inst{31-18} = 0b10101111110000;
23270 let isPredicated = 1;
23271 let isPredicatedFalse = 1;
23272 let addrMode = Absolute;
23273 let accessSize = DoubleWordAccess;
23274 let isPredicatedNew = 1;
23275 let isExtended = 1;
23276 let mayStore = 1;
23277 let BaseOpcode = "S2_storerdabs";
23278 let CextOpcode = "S2_storerd";
23279 let DecoderNamespace = "MustExtend";
23280 let isExtendable = 1;
23281 let opExtendable = 1;
23282 let isExtentSigned = 0;
23283 let opExtentBits = 6;
23284 let opExtentAlign = 0;
23286 def S4_pstorerdfnew_io : HInst<
23287 (outs),
23288 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23289 "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23290 tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23291 let Inst{2-2} = 0b0;
23292 let Inst{31-21} = 0b01000110110;
23293 let isPredicated = 1;
23294 let isPredicatedFalse = 1;
23295 let addrMode = BaseImmOffset;
23296 let accessSize = DoubleWordAccess;
23297 let isPredicatedNew = 1;
23298 let mayStore = 1;
23299 let BaseOpcode = "S2_storerd_io";
23300 let CextOpcode = "S2_storerd";
23301 let InputType = "imm";
23302 let isExtendable = 1;
23303 let opExtendable = 2;
23304 let isExtentSigned = 0;
23305 let opExtentBits = 9;
23306 let opExtentAlign = 3;
23308 def S4_pstorerdfnew_rr : HInst<
23309 (outs),
23310 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23311 "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23312 tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23313 let Inst{31-21} = 0b00110111110;
23314 let isPredicated = 1;
23315 let isPredicatedFalse = 1;
23316 let addrMode = BaseRegOffset;
23317 let accessSize = DoubleWordAccess;
23318 let isPredicatedNew = 1;
23319 let mayStore = 1;
23320 let BaseOpcode = "S2_storerd_rr";
23321 let CextOpcode = "S2_storerd";
23322 let InputType = "reg";
23324 def S4_pstorerdfnew_zomap : HInst<
23325 (outs),
23326 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23327 "if (!$Pv4.new) memd($Rs32) = $Rtt32",
23328 tc_a2b365d2, TypeMAPPING> {
23329 let isPseudo = 1;
23330 let isCodeGenOnly = 1;
23332 def S4_pstorerdt_abs : HInst<
23333 (outs),
23334 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23335 "if ($Pv4) memd(#$Ii) = $Rtt32",
23336 tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel {
23337 let Inst{2-2} = 0b0;
23338 let Inst{7-7} = 0b1;
23339 let Inst{13-13} = 0b0;
23340 let Inst{31-18} = 0b10101111110000;
23341 let isPredicated = 1;
23342 let addrMode = Absolute;
23343 let accessSize = DoubleWordAccess;
23344 let isExtended = 1;
23345 let mayStore = 1;
23346 let BaseOpcode = "S2_storerdabs";
23347 let CextOpcode = "S2_storerd";
23348 let DecoderNamespace = "MustExtend";
23349 let isExtendable = 1;
23350 let opExtendable = 1;
23351 let isExtentSigned = 0;
23352 let opExtentBits = 6;
23353 let opExtentAlign = 0;
23355 def S4_pstorerdt_rr : HInst<
23356 (outs),
23357 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23358 "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23359 tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel {
23360 let Inst{31-21} = 0b00110100110;
23361 let isPredicated = 1;
23362 let addrMode = BaseRegOffset;
23363 let accessSize = DoubleWordAccess;
23364 let mayStore = 1;
23365 let BaseOpcode = "S2_storerd_rr";
23366 let CextOpcode = "S2_storerd";
23367 let InputType = "reg";
23369 def S4_pstorerdtnew_abs : HInst<
23370 (outs),
23371 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
23372 "if ($Pv4.new) memd(#$Ii) = $Rtt32",
23373 tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel {
23374 let Inst{2-2} = 0b0;
23375 let Inst{7-7} = 0b1;
23376 let Inst{13-13} = 0b1;
23377 let Inst{31-18} = 0b10101111110000;
23378 let isPredicated = 1;
23379 let addrMode = Absolute;
23380 let accessSize = DoubleWordAccess;
23381 let isPredicatedNew = 1;
23382 let isExtended = 1;
23383 let mayStore = 1;
23384 let BaseOpcode = "S2_storerdabs";
23385 let CextOpcode = "S2_storerd";
23386 let DecoderNamespace = "MustExtend";
23387 let isExtendable = 1;
23388 let opExtendable = 1;
23389 let isExtentSigned = 0;
23390 let opExtentBits = 6;
23391 let opExtentAlign = 0;
23393 def S4_pstorerdtnew_io : HInst<
23394 (outs),
23395 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
23396 "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
23397 tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel {
23398 let Inst{2-2} = 0b0;
23399 let Inst{31-21} = 0b01000010110;
23400 let isPredicated = 1;
23401 let addrMode = BaseImmOffset;
23402 let accessSize = DoubleWordAccess;
23403 let isPredicatedNew = 1;
23404 let mayStore = 1;
23405 let BaseOpcode = "S2_storerd_io";
23406 let CextOpcode = "S2_storerd";
23407 let InputType = "imm";
23408 let isExtendable = 1;
23409 let opExtendable = 2;
23410 let isExtentSigned = 0;
23411 let opExtentBits = 9;
23412 let opExtentAlign = 3;
23414 def S4_pstorerdtnew_rr : HInst<
23415 (outs),
23416 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
23417 "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
23418 tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel {
23419 let Inst{31-21} = 0b00110110110;
23420 let isPredicated = 1;
23421 let addrMode = BaseRegOffset;
23422 let accessSize = DoubleWordAccess;
23423 let isPredicatedNew = 1;
23424 let mayStore = 1;
23425 let BaseOpcode = "S2_storerd_rr";
23426 let CextOpcode = "S2_storerd";
23427 let InputType = "reg";
23429 def S4_pstorerdtnew_zomap : HInst<
23430 (outs),
23431 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
23432 "if ($Pv4.new) memd($Rs32) = $Rtt32",
23433 tc_a2b365d2, TypeMAPPING> {
23434 let isPseudo = 1;
23435 let isCodeGenOnly = 1;
23437 def S4_pstorerff_abs : HInst<
23438 (outs),
23439 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23440 "if (!$Pv4) memh(#$Ii) = $Rt32.h",
23441 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23442 let Inst{2-2} = 0b1;
23443 let Inst{7-7} = 0b1;
23444 let Inst{13-13} = 0b0;
23445 let Inst{31-18} = 0b10101111011000;
23446 let isPredicated = 1;
23447 let isPredicatedFalse = 1;
23448 let addrMode = Absolute;
23449 let accessSize = HalfWordAccess;
23450 let isExtended = 1;
23451 let mayStore = 1;
23452 let BaseOpcode = "S2_storerfabs";
23453 let CextOpcode = "S2_storerf";
23454 let DecoderNamespace = "MustExtend";
23455 let isExtendable = 1;
23456 let opExtendable = 1;
23457 let isExtentSigned = 0;
23458 let opExtentBits = 6;
23459 let opExtentAlign = 0;
23461 def S4_pstorerff_rr : HInst<
23462 (outs),
23463 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23464 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23465 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23466 let Inst{31-21} = 0b00110101011;
23467 let isPredicated = 1;
23468 let isPredicatedFalse = 1;
23469 let addrMode = BaseRegOffset;
23470 let accessSize = HalfWordAccess;
23471 let mayStore = 1;
23472 let BaseOpcode = "S4_storerf_rr";
23473 let CextOpcode = "S2_storerf";
23474 let InputType = "reg";
23476 def S4_pstorerffnew_abs : HInst<
23477 (outs),
23478 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23479 "if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23480 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23481 let Inst{2-2} = 0b1;
23482 let Inst{7-7} = 0b1;
23483 let Inst{13-13} = 0b1;
23484 let Inst{31-18} = 0b10101111011000;
23485 let isPredicated = 1;
23486 let isPredicatedFalse = 1;
23487 let addrMode = Absolute;
23488 let accessSize = HalfWordAccess;
23489 let isPredicatedNew = 1;
23490 let isExtended = 1;
23491 let mayStore = 1;
23492 let BaseOpcode = "S2_storerfabs";
23493 let CextOpcode = "S2_storerf";
23494 let DecoderNamespace = "MustExtend";
23495 let isExtendable = 1;
23496 let opExtendable = 1;
23497 let isExtentSigned = 0;
23498 let opExtentBits = 6;
23499 let opExtentAlign = 0;
23501 def S4_pstorerffnew_io : HInst<
23502 (outs),
23503 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23504 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23505 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23506 let Inst{2-2} = 0b0;
23507 let Inst{31-21} = 0b01000110011;
23508 let isPredicated = 1;
23509 let isPredicatedFalse = 1;
23510 let addrMode = BaseImmOffset;
23511 let accessSize = HalfWordAccess;
23512 let isPredicatedNew = 1;
23513 let mayStore = 1;
23514 let BaseOpcode = "S2_storerf_io";
23515 let CextOpcode = "S2_storerf";
23516 let InputType = "imm";
23517 let isExtendable = 1;
23518 let opExtendable = 2;
23519 let isExtentSigned = 0;
23520 let opExtentBits = 7;
23521 let opExtentAlign = 1;
23523 def S4_pstorerffnew_rr : HInst<
23524 (outs),
23525 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23526 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23527 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23528 let Inst{31-21} = 0b00110111011;
23529 let isPredicated = 1;
23530 let isPredicatedFalse = 1;
23531 let addrMode = BaseRegOffset;
23532 let accessSize = HalfWordAccess;
23533 let isPredicatedNew = 1;
23534 let mayStore = 1;
23535 let BaseOpcode = "S4_storerf_rr";
23536 let CextOpcode = "S2_storerf";
23537 let InputType = "reg";
23539 def S4_pstorerffnew_zomap : HInst<
23540 (outs),
23541 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23542 "if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23543 tc_a2b365d2, TypeMAPPING> {
23544 let isPseudo = 1;
23545 let isCodeGenOnly = 1;
23547 def S4_pstorerft_abs : HInst<
23548 (outs),
23549 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23550 "if ($Pv4) memh(#$Ii) = $Rt32.h",
23551 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23552 let Inst{2-2} = 0b0;
23553 let Inst{7-7} = 0b1;
23554 let Inst{13-13} = 0b0;
23555 let Inst{31-18} = 0b10101111011000;
23556 let isPredicated = 1;
23557 let addrMode = Absolute;
23558 let accessSize = HalfWordAccess;
23559 let isExtended = 1;
23560 let mayStore = 1;
23561 let BaseOpcode = "S2_storerfabs";
23562 let CextOpcode = "S2_storerf";
23563 let DecoderNamespace = "MustExtend";
23564 let isExtendable = 1;
23565 let opExtendable = 1;
23566 let isExtentSigned = 0;
23567 let opExtentBits = 6;
23568 let opExtentAlign = 0;
23570 def S4_pstorerft_rr : HInst<
23571 (outs),
23572 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23573 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23574 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23575 let Inst{31-21} = 0b00110100011;
23576 let isPredicated = 1;
23577 let addrMode = BaseRegOffset;
23578 let accessSize = HalfWordAccess;
23579 let mayStore = 1;
23580 let BaseOpcode = "S4_storerf_rr";
23581 let CextOpcode = "S2_storerf";
23582 let InputType = "reg";
23584 def S4_pstorerftnew_abs : HInst<
23585 (outs),
23586 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23587 "if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23588 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23589 let Inst{2-2} = 0b0;
23590 let Inst{7-7} = 0b1;
23591 let Inst{13-13} = 0b1;
23592 let Inst{31-18} = 0b10101111011000;
23593 let isPredicated = 1;
23594 let addrMode = Absolute;
23595 let accessSize = HalfWordAccess;
23596 let isPredicatedNew = 1;
23597 let isExtended = 1;
23598 let mayStore = 1;
23599 let BaseOpcode = "S2_storerfabs";
23600 let CextOpcode = "S2_storerf";
23601 let DecoderNamespace = "MustExtend";
23602 let isExtendable = 1;
23603 let opExtendable = 1;
23604 let isExtentSigned = 0;
23605 let opExtentBits = 6;
23606 let opExtentAlign = 0;
23608 def S4_pstorerftnew_io : HInst<
23609 (outs),
23610 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23611 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23612 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23613 let Inst{2-2} = 0b0;
23614 let Inst{31-21} = 0b01000010011;
23615 let isPredicated = 1;
23616 let addrMode = BaseImmOffset;
23617 let accessSize = HalfWordAccess;
23618 let isPredicatedNew = 1;
23619 let mayStore = 1;
23620 let BaseOpcode = "S2_storerf_io";
23621 let CextOpcode = "S2_storerf";
23622 let InputType = "imm";
23623 let isExtendable = 1;
23624 let opExtendable = 2;
23625 let isExtentSigned = 0;
23626 let opExtentBits = 7;
23627 let opExtentAlign = 1;
23629 def S4_pstorerftnew_rr : HInst<
23630 (outs),
23631 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23632 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23633 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23634 let Inst{31-21} = 0b00110110011;
23635 let isPredicated = 1;
23636 let addrMode = BaseRegOffset;
23637 let accessSize = HalfWordAccess;
23638 let isPredicatedNew = 1;
23639 let mayStore = 1;
23640 let BaseOpcode = "S4_storerf_rr";
23641 let CextOpcode = "S2_storerf";
23642 let InputType = "reg";
23644 def S4_pstorerftnew_zomap : HInst<
23645 (outs),
23646 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23647 "if ($Pv4.new) memh($Rs32) = $Rt32.h",
23648 tc_a2b365d2, TypeMAPPING> {
23649 let isPseudo = 1;
23650 let isCodeGenOnly = 1;
23652 def S4_pstorerhf_abs : HInst<
23653 (outs),
23654 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23655 "if (!$Pv4) memh(#$Ii) = $Rt32",
23656 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
23657 let Inst{2-2} = 0b1;
23658 let Inst{7-7} = 0b1;
23659 let Inst{13-13} = 0b0;
23660 let Inst{31-18} = 0b10101111010000;
23661 let isPredicated = 1;
23662 let isPredicatedFalse = 1;
23663 let addrMode = Absolute;
23664 let accessSize = HalfWordAccess;
23665 let isExtended = 1;
23666 let mayStore = 1;
23667 let BaseOpcode = "S2_storerhabs";
23668 let CextOpcode = "S2_storerh";
23669 let isNVStorable = 1;
23670 let DecoderNamespace = "MustExtend";
23671 let isExtendable = 1;
23672 let opExtendable = 1;
23673 let isExtentSigned = 0;
23674 let opExtentBits = 6;
23675 let opExtentAlign = 0;
23677 def S4_pstorerhf_rr : HInst<
23678 (outs),
23679 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23680 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23681 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
23682 let Inst{31-21} = 0b00110101010;
23683 let isPredicated = 1;
23684 let isPredicatedFalse = 1;
23685 let addrMode = BaseRegOffset;
23686 let accessSize = HalfWordAccess;
23687 let mayStore = 1;
23688 let BaseOpcode = "S2_storerh_rr";
23689 let CextOpcode = "S2_storerh";
23690 let InputType = "reg";
23691 let isNVStorable = 1;
23693 def S4_pstorerhfnew_abs : HInst<
23694 (outs),
23695 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23696 "if (!$Pv4.new) memh(#$Ii) = $Rt32",
23697 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
23698 let Inst{2-2} = 0b1;
23699 let Inst{7-7} = 0b1;
23700 let Inst{13-13} = 0b1;
23701 let Inst{31-18} = 0b10101111010000;
23702 let isPredicated = 1;
23703 let isPredicatedFalse = 1;
23704 let addrMode = Absolute;
23705 let accessSize = HalfWordAccess;
23706 let isPredicatedNew = 1;
23707 let isExtended = 1;
23708 let mayStore = 1;
23709 let BaseOpcode = "S2_storerhabs";
23710 let CextOpcode = "S2_storerh";
23711 let isNVStorable = 1;
23712 let DecoderNamespace = "MustExtend";
23713 let isExtendable = 1;
23714 let opExtendable = 1;
23715 let isExtentSigned = 0;
23716 let opExtentBits = 6;
23717 let opExtentAlign = 0;
23719 def S4_pstorerhfnew_io : HInst<
23720 (outs),
23721 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23722 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23723 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23724 let Inst{2-2} = 0b0;
23725 let Inst{31-21} = 0b01000110010;
23726 let isPredicated = 1;
23727 let isPredicatedFalse = 1;
23728 let addrMode = BaseImmOffset;
23729 let accessSize = HalfWordAccess;
23730 let isPredicatedNew = 1;
23731 let mayStore = 1;
23732 let BaseOpcode = "S2_storerh_io";
23733 let CextOpcode = "S2_storerh";
23734 let InputType = "imm";
23735 let isNVStorable = 1;
23736 let isExtendable = 1;
23737 let opExtendable = 2;
23738 let isExtentSigned = 0;
23739 let opExtentBits = 7;
23740 let opExtentAlign = 1;
23742 def S4_pstorerhfnew_rr : HInst<
23743 (outs),
23744 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23745 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23746 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
23747 let Inst{31-21} = 0b00110111010;
23748 let isPredicated = 1;
23749 let isPredicatedFalse = 1;
23750 let addrMode = BaseRegOffset;
23751 let accessSize = HalfWordAccess;
23752 let isPredicatedNew = 1;
23753 let mayStore = 1;
23754 let BaseOpcode = "S2_storerh_rr";
23755 let CextOpcode = "S2_storerh";
23756 let InputType = "reg";
23757 let isNVStorable = 1;
23759 def S4_pstorerhfnew_zomap : HInst<
23760 (outs),
23761 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23762 "if (!$Pv4.new) memh($Rs32) = $Rt32",
23763 tc_a2b365d2, TypeMAPPING> {
23764 let isPseudo = 1;
23765 let isCodeGenOnly = 1;
23767 def S4_pstorerhnewf_abs : HInst<
23768 (outs),
23769 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23770 "if (!$Pv4) memh(#$Ii) = $Nt8.new",
23771 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23772 let Inst{2-2} = 0b1;
23773 let Inst{7-7} = 0b1;
23774 let Inst{13-11} = 0b001;
23775 let Inst{31-18} = 0b10101111101000;
23776 let isPredicated = 1;
23777 let isPredicatedFalse = 1;
23778 let addrMode = Absolute;
23779 let accessSize = HalfWordAccess;
23780 let isNVStore = 1;
23781 let isNewValue = 1;
23782 let isExtended = 1;
23783 let isRestrictNoSlot1Store = 1;
23784 let mayStore = 1;
23785 let BaseOpcode = "S2_storerhabs";
23786 let CextOpcode = "S2_storerh";
23787 let DecoderNamespace = "MustExtend";
23788 let isExtendable = 1;
23789 let opExtendable = 1;
23790 let isExtentSigned = 0;
23791 let opExtentBits = 6;
23792 let opExtentAlign = 0;
23793 let opNewValue = 2;
23795 def S4_pstorerhnewf_rr : HInst<
23796 (outs),
23797 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23798 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23799 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23800 let Inst{4-3} = 0b01;
23801 let Inst{31-21} = 0b00110101101;
23802 let isPredicated = 1;
23803 let isPredicatedFalse = 1;
23804 let addrMode = BaseRegOffset;
23805 let accessSize = HalfWordAccess;
23806 let isNVStore = 1;
23807 let isNewValue = 1;
23808 let isRestrictNoSlot1Store = 1;
23809 let mayStore = 1;
23810 let BaseOpcode = "S2_storerh_rr";
23811 let CextOpcode = "S2_storerh";
23812 let InputType = "reg";
23813 let opNewValue = 4;
23815 def S4_pstorerhnewfnew_abs : HInst<
23816 (outs),
23817 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23818 "if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23819 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23820 let Inst{2-2} = 0b1;
23821 let Inst{7-7} = 0b1;
23822 let Inst{13-11} = 0b101;
23823 let Inst{31-18} = 0b10101111101000;
23824 let isPredicated = 1;
23825 let isPredicatedFalse = 1;
23826 let addrMode = Absolute;
23827 let accessSize = HalfWordAccess;
23828 let isNVStore = 1;
23829 let isPredicatedNew = 1;
23830 let isNewValue = 1;
23831 let isExtended = 1;
23832 let isRestrictNoSlot1Store = 1;
23833 let mayStore = 1;
23834 let BaseOpcode = "S2_storerhabs";
23835 let CextOpcode = "S2_storerh";
23836 let DecoderNamespace = "MustExtend";
23837 let isExtendable = 1;
23838 let opExtendable = 1;
23839 let isExtentSigned = 0;
23840 let opExtentBits = 6;
23841 let opExtentAlign = 0;
23842 let opNewValue = 2;
23844 def S4_pstorerhnewfnew_io : HInst<
23845 (outs),
23846 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23847 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23848 tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23849 let Inst{2-2} = 0b0;
23850 let Inst{12-11} = 0b01;
23851 let Inst{31-21} = 0b01000110101;
23852 let isPredicated = 1;
23853 let isPredicatedFalse = 1;
23854 let addrMode = BaseImmOffset;
23855 let accessSize = HalfWordAccess;
23856 let isNVStore = 1;
23857 let isPredicatedNew = 1;
23858 let isNewValue = 1;
23859 let isRestrictNoSlot1Store = 1;
23860 let mayStore = 1;
23861 let BaseOpcode = "S2_storerh_io";
23862 let CextOpcode = "S2_storerh";
23863 let InputType = "imm";
23864 let isExtendable = 1;
23865 let opExtendable = 2;
23866 let isExtentSigned = 0;
23867 let opExtentBits = 7;
23868 let opExtentAlign = 1;
23869 let opNewValue = 3;
23871 def S4_pstorerhnewfnew_rr : HInst<
23872 (outs),
23873 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23874 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23875 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
23876 let Inst{4-3} = 0b01;
23877 let Inst{31-21} = 0b00110111101;
23878 let isPredicated = 1;
23879 let isPredicatedFalse = 1;
23880 let addrMode = BaseRegOffset;
23881 let accessSize = HalfWordAccess;
23882 let isNVStore = 1;
23883 let isPredicatedNew = 1;
23884 let isNewValue = 1;
23885 let isRestrictNoSlot1Store = 1;
23886 let mayStore = 1;
23887 let BaseOpcode = "S2_storerh_rr";
23888 let CextOpcode = "S2_storerh";
23889 let InputType = "reg";
23890 let opNewValue = 4;
23892 def S4_pstorerhnewfnew_zomap : HInst<
23893 (outs),
23894 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23895 "if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23896 tc_92240447, TypeMAPPING> {
23897 let isPseudo = 1;
23898 let isCodeGenOnly = 1;
23899 let opNewValue = 2;
23901 def S4_pstorerhnewt_abs : HInst<
23902 (outs),
23903 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23904 "if ($Pv4) memh(#$Ii) = $Nt8.new",
23905 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
23906 let Inst{2-2} = 0b0;
23907 let Inst{7-7} = 0b1;
23908 let Inst{13-11} = 0b001;
23909 let Inst{31-18} = 0b10101111101000;
23910 let isPredicated = 1;
23911 let addrMode = Absolute;
23912 let accessSize = HalfWordAccess;
23913 let isNVStore = 1;
23914 let isNewValue = 1;
23915 let isExtended = 1;
23916 let isRestrictNoSlot1Store = 1;
23917 let mayStore = 1;
23918 let BaseOpcode = "S2_storerhabs";
23919 let CextOpcode = "S2_storerh";
23920 let DecoderNamespace = "MustExtend";
23921 let isExtendable = 1;
23922 let opExtendable = 1;
23923 let isExtentSigned = 0;
23924 let opExtentBits = 6;
23925 let opExtentAlign = 0;
23926 let opNewValue = 2;
23928 def S4_pstorerhnewt_rr : HInst<
23929 (outs),
23930 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23931 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23932 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
23933 let Inst{4-3} = 0b01;
23934 let Inst{31-21} = 0b00110100101;
23935 let isPredicated = 1;
23936 let addrMode = BaseRegOffset;
23937 let accessSize = HalfWordAccess;
23938 let isNVStore = 1;
23939 let isNewValue = 1;
23940 let isRestrictNoSlot1Store = 1;
23941 let mayStore = 1;
23942 let BaseOpcode = "S2_storerh_rr";
23943 let CextOpcode = "S2_storerh";
23944 let InputType = "reg";
23945 let opNewValue = 4;
23947 def S4_pstorerhnewtnew_abs : HInst<
23948 (outs),
23949 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23950 "if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23951 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
23952 let Inst{2-2} = 0b0;
23953 let Inst{7-7} = 0b1;
23954 let Inst{13-11} = 0b101;
23955 let Inst{31-18} = 0b10101111101000;
23956 let isPredicated = 1;
23957 let addrMode = Absolute;
23958 let accessSize = HalfWordAccess;
23959 let isNVStore = 1;
23960 let isPredicatedNew = 1;
23961 let isNewValue = 1;
23962 let isExtended = 1;
23963 let isRestrictNoSlot1Store = 1;
23964 let mayStore = 1;
23965 let BaseOpcode = "S2_storerhabs";
23966 let CextOpcode = "S2_storerh";
23967 let DecoderNamespace = "MustExtend";
23968 let isExtendable = 1;
23969 let opExtendable = 1;
23970 let isExtentSigned = 0;
23971 let opExtentBits = 6;
23972 let opExtentAlign = 0;
23973 let opNewValue = 2;
23975 def S4_pstorerhnewtnew_io : HInst<
23976 (outs),
23977 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23978 "if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23979 tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel {
23980 let Inst{2-2} = 0b0;
23981 let Inst{12-11} = 0b01;
23982 let Inst{31-21} = 0b01000010101;
23983 let isPredicated = 1;
23984 let addrMode = BaseImmOffset;
23985 let accessSize = HalfWordAccess;
23986 let isNVStore = 1;
23987 let isPredicatedNew = 1;
23988 let isNewValue = 1;
23989 let isRestrictNoSlot1Store = 1;
23990 let mayStore = 1;
23991 let BaseOpcode = "S2_storerh_io";
23992 let CextOpcode = "S2_storerh";
23993 let InputType = "imm";
23994 let isExtendable = 1;
23995 let opExtendable = 2;
23996 let isExtentSigned = 0;
23997 let opExtentBits = 7;
23998 let opExtentAlign = 1;
23999 let opNewValue = 3;
24001 def S4_pstorerhnewtnew_rr : HInst<
24002 (outs),
24003 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24004 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24005 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24006 let Inst{4-3} = 0b01;
24007 let Inst{31-21} = 0b00110110101;
24008 let isPredicated = 1;
24009 let addrMode = BaseRegOffset;
24010 let accessSize = HalfWordAccess;
24011 let isNVStore = 1;
24012 let isPredicatedNew = 1;
24013 let isNewValue = 1;
24014 let isRestrictNoSlot1Store = 1;
24015 let mayStore = 1;
24016 let BaseOpcode = "S2_storerh_rr";
24017 let CextOpcode = "S2_storerh";
24018 let InputType = "reg";
24019 let opNewValue = 4;
24021 def S4_pstorerhnewtnew_zomap : HInst<
24022 (outs),
24023 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24024 "if ($Pv4.new) memh($Rs32) = $Nt8.new",
24025 tc_92240447, TypeMAPPING> {
24026 let isPseudo = 1;
24027 let isCodeGenOnly = 1;
24028 let opNewValue = 2;
24030 def S4_pstorerht_abs : HInst<
24031 (outs),
24032 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24033 "if ($Pv4) memh(#$Ii) = $Rt32",
24034 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24035 let Inst{2-2} = 0b0;
24036 let Inst{7-7} = 0b1;
24037 let Inst{13-13} = 0b0;
24038 let Inst{31-18} = 0b10101111010000;
24039 let isPredicated = 1;
24040 let addrMode = Absolute;
24041 let accessSize = HalfWordAccess;
24042 let isExtended = 1;
24043 let mayStore = 1;
24044 let BaseOpcode = "S2_storerhabs";
24045 let CextOpcode = "S2_storerh";
24046 let isNVStorable = 1;
24047 let DecoderNamespace = "MustExtend";
24048 let isExtendable = 1;
24049 let opExtendable = 1;
24050 let isExtentSigned = 0;
24051 let opExtentBits = 6;
24052 let opExtentAlign = 0;
24054 def S4_pstorerht_rr : HInst<
24055 (outs),
24056 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24057 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24058 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24059 let Inst{31-21} = 0b00110100010;
24060 let isPredicated = 1;
24061 let addrMode = BaseRegOffset;
24062 let accessSize = HalfWordAccess;
24063 let mayStore = 1;
24064 let BaseOpcode = "S2_storerh_rr";
24065 let CextOpcode = "S2_storerh";
24066 let InputType = "reg";
24067 let isNVStorable = 1;
24069 def S4_pstorerhtnew_abs : HInst<
24070 (outs),
24071 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24072 "if ($Pv4.new) memh(#$Ii) = $Rt32",
24073 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24074 let Inst{2-2} = 0b0;
24075 let Inst{7-7} = 0b1;
24076 let Inst{13-13} = 0b1;
24077 let Inst{31-18} = 0b10101111010000;
24078 let isPredicated = 1;
24079 let addrMode = Absolute;
24080 let accessSize = HalfWordAccess;
24081 let isPredicatedNew = 1;
24082 let isExtended = 1;
24083 let mayStore = 1;
24084 let BaseOpcode = "S2_storerhabs";
24085 let CextOpcode = "S2_storerh";
24086 let isNVStorable = 1;
24087 let DecoderNamespace = "MustExtend";
24088 let isExtendable = 1;
24089 let opExtendable = 1;
24090 let isExtentSigned = 0;
24091 let opExtentBits = 6;
24092 let opExtentAlign = 0;
24094 def S4_pstorerhtnew_io : HInst<
24095 (outs),
24096 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
24097 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
24098 tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
24099 let Inst{2-2} = 0b0;
24100 let Inst{31-21} = 0b01000010010;
24101 let isPredicated = 1;
24102 let addrMode = BaseImmOffset;
24103 let accessSize = HalfWordAccess;
24104 let isPredicatedNew = 1;
24105 let mayStore = 1;
24106 let BaseOpcode = "S2_storerh_io";
24107 let CextOpcode = "S2_storerh";
24108 let InputType = "imm";
24109 let isNVStorable = 1;
24110 let isExtendable = 1;
24111 let opExtendable = 2;
24112 let isExtentSigned = 0;
24113 let opExtentBits = 7;
24114 let opExtentAlign = 1;
24116 def S4_pstorerhtnew_rr : HInst<
24117 (outs),
24118 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24119 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24120 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24121 let Inst{31-21} = 0b00110110010;
24122 let isPredicated = 1;
24123 let addrMode = BaseRegOffset;
24124 let accessSize = HalfWordAccess;
24125 let isPredicatedNew = 1;
24126 let mayStore = 1;
24127 let BaseOpcode = "S2_storerh_rr";
24128 let CextOpcode = "S2_storerh";
24129 let InputType = "reg";
24130 let isNVStorable = 1;
24132 def S4_pstorerhtnew_zomap : HInst<
24133 (outs),
24134 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24135 "if ($Pv4.new) memh($Rs32) = $Rt32",
24136 tc_a2b365d2, TypeMAPPING> {
24137 let isPseudo = 1;
24138 let isCodeGenOnly = 1;
24140 def S4_pstorerif_abs : HInst<
24141 (outs),
24142 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24143 "if (!$Pv4) memw(#$Ii) = $Rt32",
24144 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24145 let Inst{2-2} = 0b1;
24146 let Inst{7-7} = 0b1;
24147 let Inst{13-13} = 0b0;
24148 let Inst{31-18} = 0b10101111100000;
24149 let isPredicated = 1;
24150 let isPredicatedFalse = 1;
24151 let addrMode = Absolute;
24152 let accessSize = WordAccess;
24153 let isExtended = 1;
24154 let mayStore = 1;
24155 let BaseOpcode = "S2_storeriabs";
24156 let CextOpcode = "S2_storeri";
24157 let isNVStorable = 1;
24158 let DecoderNamespace = "MustExtend";
24159 let isExtendable = 1;
24160 let opExtendable = 1;
24161 let isExtentSigned = 0;
24162 let opExtentBits = 6;
24163 let opExtentAlign = 0;
24165 def S4_pstorerif_rr : HInst<
24166 (outs),
24167 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24168 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24169 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24170 let Inst{31-21} = 0b00110101100;
24171 let isPredicated = 1;
24172 let isPredicatedFalse = 1;
24173 let addrMode = BaseRegOffset;
24174 let accessSize = WordAccess;
24175 let mayStore = 1;
24176 let BaseOpcode = "S2_storeri_rr";
24177 let CextOpcode = "S2_storeri";
24178 let InputType = "reg";
24179 let isNVStorable = 1;
24181 def S4_pstorerifnew_abs : HInst<
24182 (outs),
24183 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24184 "if (!$Pv4.new) memw(#$Ii) = $Rt32",
24185 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24186 let Inst{2-2} = 0b1;
24187 let Inst{7-7} = 0b1;
24188 let Inst{13-13} = 0b1;
24189 let Inst{31-18} = 0b10101111100000;
24190 let isPredicated = 1;
24191 let isPredicatedFalse = 1;
24192 let addrMode = Absolute;
24193 let accessSize = WordAccess;
24194 let isPredicatedNew = 1;
24195 let isExtended = 1;
24196 let mayStore = 1;
24197 let BaseOpcode = "S2_storeriabs";
24198 let CextOpcode = "S2_storeri";
24199 let isNVStorable = 1;
24200 let DecoderNamespace = "MustExtend";
24201 let isExtendable = 1;
24202 let opExtendable = 1;
24203 let isExtentSigned = 0;
24204 let opExtentBits = 6;
24205 let opExtentAlign = 0;
24207 def S4_pstorerifnew_io : HInst<
24208 (outs),
24209 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24210 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24211 tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24212 let Inst{2-2} = 0b0;
24213 let Inst{31-21} = 0b01000110100;
24214 let isPredicated = 1;
24215 let isPredicatedFalse = 1;
24216 let addrMode = BaseImmOffset;
24217 let accessSize = WordAccess;
24218 let isPredicatedNew = 1;
24219 let mayStore = 1;
24220 let BaseOpcode = "S2_storeri_io";
24221 let CextOpcode = "S2_storeri";
24222 let InputType = "imm";
24223 let isNVStorable = 1;
24224 let isExtendable = 1;
24225 let opExtendable = 2;
24226 let isExtentSigned = 0;
24227 let opExtentBits = 8;
24228 let opExtentAlign = 2;
24230 def S4_pstorerifnew_rr : HInst<
24231 (outs),
24232 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24233 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24234 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24235 let Inst{31-21} = 0b00110111100;
24236 let isPredicated = 1;
24237 let isPredicatedFalse = 1;
24238 let addrMode = BaseRegOffset;
24239 let accessSize = WordAccess;
24240 let isPredicatedNew = 1;
24241 let mayStore = 1;
24242 let BaseOpcode = "S2_storeri_rr";
24243 let CextOpcode = "S2_storeri";
24244 let InputType = "reg";
24245 let isNVStorable = 1;
24247 def S4_pstorerifnew_zomap : HInst<
24248 (outs),
24249 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24250 "if (!$Pv4.new) memw($Rs32) = $Rt32",
24251 tc_a2b365d2, TypeMAPPING> {
24252 let isPseudo = 1;
24253 let isCodeGenOnly = 1;
24255 def S4_pstorerinewf_abs : HInst<
24256 (outs),
24257 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24258 "if (!$Pv4) memw(#$Ii) = $Nt8.new",
24259 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24260 let Inst{2-2} = 0b1;
24261 let Inst{7-7} = 0b1;
24262 let Inst{13-11} = 0b010;
24263 let Inst{31-18} = 0b10101111101000;
24264 let isPredicated = 1;
24265 let isPredicatedFalse = 1;
24266 let addrMode = Absolute;
24267 let accessSize = WordAccess;
24268 let isNVStore = 1;
24269 let isNewValue = 1;
24270 let isExtended = 1;
24271 let isRestrictNoSlot1Store = 1;
24272 let mayStore = 1;
24273 let BaseOpcode = "S2_storeriabs";
24274 let CextOpcode = "S2_storeri";
24275 let DecoderNamespace = "MustExtend";
24276 let isExtendable = 1;
24277 let opExtendable = 1;
24278 let isExtentSigned = 0;
24279 let opExtentBits = 6;
24280 let opExtentAlign = 0;
24281 let opNewValue = 2;
24283 def S4_pstorerinewf_rr : HInst<
24284 (outs),
24285 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24286 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24287 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24288 let Inst{4-3} = 0b10;
24289 let Inst{31-21} = 0b00110101101;
24290 let isPredicated = 1;
24291 let isPredicatedFalse = 1;
24292 let addrMode = BaseRegOffset;
24293 let accessSize = WordAccess;
24294 let isNVStore = 1;
24295 let isNewValue = 1;
24296 let isRestrictNoSlot1Store = 1;
24297 let mayStore = 1;
24298 let BaseOpcode = "S2_storeri_rr";
24299 let CextOpcode = "S2_storeri";
24300 let InputType = "reg";
24301 let opNewValue = 4;
24303 def S4_pstorerinewfnew_abs : HInst<
24304 (outs),
24305 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24306 "if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
24307 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24308 let Inst{2-2} = 0b1;
24309 let Inst{7-7} = 0b1;
24310 let Inst{13-11} = 0b110;
24311 let Inst{31-18} = 0b10101111101000;
24312 let isPredicated = 1;
24313 let isPredicatedFalse = 1;
24314 let addrMode = Absolute;
24315 let accessSize = WordAccess;
24316 let isNVStore = 1;
24317 let isPredicatedNew = 1;
24318 let isNewValue = 1;
24319 let isExtended = 1;
24320 let isRestrictNoSlot1Store = 1;
24321 let mayStore = 1;
24322 let BaseOpcode = "S2_storeriabs";
24323 let CextOpcode = "S2_storeri";
24324 let DecoderNamespace = "MustExtend";
24325 let isExtendable = 1;
24326 let opExtendable = 1;
24327 let isExtentSigned = 0;
24328 let opExtentBits = 6;
24329 let opExtentAlign = 0;
24330 let opNewValue = 2;
24332 def S4_pstorerinewfnew_io : HInst<
24333 (outs),
24334 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24335 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24336 tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24337 let Inst{2-2} = 0b0;
24338 let Inst{12-11} = 0b10;
24339 let Inst{31-21} = 0b01000110101;
24340 let isPredicated = 1;
24341 let isPredicatedFalse = 1;
24342 let addrMode = BaseImmOffset;
24343 let accessSize = WordAccess;
24344 let isNVStore = 1;
24345 let isPredicatedNew = 1;
24346 let isNewValue = 1;
24347 let isRestrictNoSlot1Store = 1;
24348 let mayStore = 1;
24349 let BaseOpcode = "S2_storeri_io";
24350 let CextOpcode = "S2_storeri";
24351 let InputType = "imm";
24352 let isExtendable = 1;
24353 let opExtendable = 2;
24354 let isExtentSigned = 0;
24355 let opExtentBits = 8;
24356 let opExtentAlign = 2;
24357 let opNewValue = 3;
24359 def S4_pstorerinewfnew_rr : HInst<
24360 (outs),
24361 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24362 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24363 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24364 let Inst{4-3} = 0b10;
24365 let Inst{31-21} = 0b00110111101;
24366 let isPredicated = 1;
24367 let isPredicatedFalse = 1;
24368 let addrMode = BaseRegOffset;
24369 let accessSize = WordAccess;
24370 let isNVStore = 1;
24371 let isPredicatedNew = 1;
24372 let isNewValue = 1;
24373 let isRestrictNoSlot1Store = 1;
24374 let mayStore = 1;
24375 let BaseOpcode = "S2_storeri_rr";
24376 let CextOpcode = "S2_storeri";
24377 let InputType = "reg";
24378 let opNewValue = 4;
24380 def S4_pstorerinewfnew_zomap : HInst<
24381 (outs),
24382 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24383 "if (!$Pv4.new) memw($Rs32) = $Nt8.new",
24384 tc_92240447, TypeMAPPING> {
24385 let isPseudo = 1;
24386 let isCodeGenOnly = 1;
24387 let opNewValue = 2;
24389 def S4_pstorerinewt_abs : HInst<
24390 (outs),
24391 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24392 "if ($Pv4) memw(#$Ii) = $Nt8.new",
24393 tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel {
24394 let Inst{2-2} = 0b0;
24395 let Inst{7-7} = 0b1;
24396 let Inst{13-11} = 0b010;
24397 let Inst{31-18} = 0b10101111101000;
24398 let isPredicated = 1;
24399 let addrMode = Absolute;
24400 let accessSize = WordAccess;
24401 let isNVStore = 1;
24402 let isNewValue = 1;
24403 let isExtended = 1;
24404 let isRestrictNoSlot1Store = 1;
24405 let mayStore = 1;
24406 let BaseOpcode = "S2_storeriabs";
24407 let CextOpcode = "S2_storeri";
24408 let DecoderNamespace = "MustExtend";
24409 let isExtendable = 1;
24410 let opExtendable = 1;
24411 let isExtentSigned = 0;
24412 let opExtentBits = 6;
24413 let opExtentAlign = 0;
24414 let opNewValue = 2;
24416 def S4_pstorerinewt_rr : HInst<
24417 (outs),
24418 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24419 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24420 tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel {
24421 let Inst{4-3} = 0b10;
24422 let Inst{31-21} = 0b00110100101;
24423 let isPredicated = 1;
24424 let addrMode = BaseRegOffset;
24425 let accessSize = WordAccess;
24426 let isNVStore = 1;
24427 let isNewValue = 1;
24428 let isRestrictNoSlot1Store = 1;
24429 let mayStore = 1;
24430 let BaseOpcode = "S2_storeri_rr";
24431 let CextOpcode = "S2_storeri";
24432 let InputType = "reg";
24433 let opNewValue = 4;
24435 def S4_pstorerinewtnew_abs : HInst<
24436 (outs),
24437 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
24438 "if ($Pv4.new) memw(#$Ii) = $Nt8.new",
24439 tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel {
24440 let Inst{2-2} = 0b0;
24441 let Inst{7-7} = 0b1;
24442 let Inst{13-11} = 0b110;
24443 let Inst{31-18} = 0b10101111101000;
24444 let isPredicated = 1;
24445 let addrMode = Absolute;
24446 let accessSize = WordAccess;
24447 let isNVStore = 1;
24448 let isPredicatedNew = 1;
24449 let isNewValue = 1;
24450 let isExtended = 1;
24451 let isRestrictNoSlot1Store = 1;
24452 let mayStore = 1;
24453 let BaseOpcode = "S2_storeriabs";
24454 let CextOpcode = "S2_storeri";
24455 let DecoderNamespace = "MustExtend";
24456 let isExtendable = 1;
24457 let opExtendable = 1;
24458 let isExtentSigned = 0;
24459 let opExtentBits = 6;
24460 let opExtentAlign = 0;
24461 let opNewValue = 2;
24463 def S4_pstorerinewtnew_io : HInst<
24464 (outs),
24465 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24466 "if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24467 tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24468 let Inst{2-2} = 0b0;
24469 let Inst{12-11} = 0b10;
24470 let Inst{31-21} = 0b01000010101;
24471 let isPredicated = 1;
24472 let addrMode = BaseImmOffset;
24473 let accessSize = WordAccess;
24474 let isNVStore = 1;
24475 let isPredicatedNew = 1;
24476 let isNewValue = 1;
24477 let isRestrictNoSlot1Store = 1;
24478 let mayStore = 1;
24479 let BaseOpcode = "S2_storeri_io";
24480 let CextOpcode = "S2_storeri";
24481 let InputType = "imm";
24482 let isExtendable = 1;
24483 let opExtendable = 2;
24484 let isExtentSigned = 0;
24485 let opExtentBits = 8;
24486 let opExtentAlign = 2;
24487 let opNewValue = 3;
24489 def S4_pstorerinewtnew_rr : HInst<
24490 (outs),
24491 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24492 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24493 tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel {
24494 let Inst{4-3} = 0b10;
24495 let Inst{31-21} = 0b00110110101;
24496 let isPredicated = 1;
24497 let addrMode = BaseRegOffset;
24498 let accessSize = WordAccess;
24499 let isNVStore = 1;
24500 let isPredicatedNew = 1;
24501 let isNewValue = 1;
24502 let isRestrictNoSlot1Store = 1;
24503 let mayStore = 1;
24504 let BaseOpcode = "S2_storeri_rr";
24505 let CextOpcode = "S2_storeri";
24506 let InputType = "reg";
24507 let opNewValue = 4;
24509 def S4_pstorerinewtnew_zomap : HInst<
24510 (outs),
24511 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24512 "if ($Pv4.new) memw($Rs32) = $Nt8.new",
24513 tc_92240447, TypeMAPPING> {
24514 let isPseudo = 1;
24515 let isCodeGenOnly = 1;
24516 let opNewValue = 2;
24518 def S4_pstorerit_abs : HInst<
24519 (outs),
24520 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24521 "if ($Pv4) memw(#$Ii) = $Rt32",
24522 tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel {
24523 let Inst{2-2} = 0b0;
24524 let Inst{7-7} = 0b1;
24525 let Inst{13-13} = 0b0;
24526 let Inst{31-18} = 0b10101111100000;
24527 let isPredicated = 1;
24528 let addrMode = Absolute;
24529 let accessSize = WordAccess;
24530 let isExtended = 1;
24531 let mayStore = 1;
24532 let BaseOpcode = "S2_storeriabs";
24533 let CextOpcode = "S2_storeri";
24534 let isNVStorable = 1;
24535 let DecoderNamespace = "MustExtend";
24536 let isExtendable = 1;
24537 let opExtendable = 1;
24538 let isExtentSigned = 0;
24539 let opExtentBits = 6;
24540 let opExtentAlign = 0;
24542 def S4_pstorerit_rr : HInst<
24543 (outs),
24544 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24545 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24546 tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel {
24547 let Inst{31-21} = 0b00110100100;
24548 let isPredicated = 1;
24549 let addrMode = BaseRegOffset;
24550 let accessSize = WordAccess;
24551 let mayStore = 1;
24552 let BaseOpcode = "S2_storeri_rr";
24553 let CextOpcode = "S2_storeri";
24554 let InputType = "reg";
24555 let isNVStorable = 1;
24557 def S4_pstoreritnew_abs : HInst<
24558 (outs),
24559 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24560 "if ($Pv4.new) memw(#$Ii) = $Rt32",
24561 tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel {
24562 let Inst{2-2} = 0b0;
24563 let Inst{7-7} = 0b1;
24564 let Inst{13-13} = 0b1;
24565 let Inst{31-18} = 0b10101111100000;
24566 let isPredicated = 1;
24567 let addrMode = Absolute;
24568 let accessSize = WordAccess;
24569 let isPredicatedNew = 1;
24570 let isExtended = 1;
24571 let mayStore = 1;
24572 let BaseOpcode = "S2_storeriabs";
24573 let CextOpcode = "S2_storeri";
24574 let isNVStorable = 1;
24575 let DecoderNamespace = "MustExtend";
24576 let isExtendable = 1;
24577 let opExtendable = 1;
24578 let isExtentSigned = 0;
24579 let opExtentBits = 6;
24580 let opExtentAlign = 0;
24582 def S4_pstoreritnew_io : HInst<
24583 (outs),
24584 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24585 "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24586 tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel {
24587 let Inst{2-2} = 0b0;
24588 let Inst{31-21} = 0b01000010100;
24589 let isPredicated = 1;
24590 let addrMode = BaseImmOffset;
24591 let accessSize = WordAccess;
24592 let isPredicatedNew = 1;
24593 let mayStore = 1;
24594 let BaseOpcode = "S2_storeri_io";
24595 let CextOpcode = "S2_storeri";
24596 let InputType = "imm";
24597 let isNVStorable = 1;
24598 let isExtendable = 1;
24599 let opExtendable = 2;
24600 let isExtentSigned = 0;
24601 let opExtentBits = 8;
24602 let opExtentAlign = 2;
24604 def S4_pstoreritnew_rr : HInst<
24605 (outs),
24606 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24607 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24608 tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel {
24609 let Inst{31-21} = 0b00110110100;
24610 let isPredicated = 1;
24611 let addrMode = BaseRegOffset;
24612 let accessSize = WordAccess;
24613 let isPredicatedNew = 1;
24614 let mayStore = 1;
24615 let BaseOpcode = "S2_storeri_rr";
24616 let CextOpcode = "S2_storeri";
24617 let InputType = "reg";
24618 let isNVStorable = 1;
24620 def S4_pstoreritnew_zomap : HInst<
24621 (outs),
24622 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24623 "if ($Pv4.new) memw($Rs32) = $Rt32",
24624 tc_a2b365d2, TypeMAPPING> {
24625 let isPseudo = 1;
24626 let isCodeGenOnly = 1;
24628 def S4_stored_locked : HInst<
24629 (outs PredRegs:$Pd4),
24630 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24631 "memd_locked($Rs32,$Pd4) = $Rtt32",
24632 tc_6f42bc60, TypeST>, Enc_d7dc10 {
24633 let Inst{7-2} = 0b000000;
24634 let Inst{13-13} = 0b0;
24635 let Inst{31-21} = 0b10100000111;
24636 let accessSize = DoubleWordAccess;
24637 let isPredicateLate = 1;
24638 let isSoloAX = 1;
24639 let mayStore = 1;
24641 def S4_stored_rl_at_vi : HInst<
24642 (outs),
24643 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24644 "memd_rl($Rs32):at = $Rtt32",
24645 tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24646 let Inst{7-2} = 0b000010;
24647 let Inst{13-13} = 0b0;
24648 let Inst{31-21} = 0b10100000111;
24649 let accessSize = DoubleWordAccess;
24650 let isSolo = 1;
24651 let mayStore = 1;
24653 def S4_stored_rl_st_vi : HInst<
24654 (outs),
24655 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24656 "memd_rl($Rs32):st = $Rtt32",
24657 tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> {
24658 let Inst{7-2} = 0b001010;
24659 let Inst{13-13} = 0b0;
24660 let Inst{31-21} = 0b10100000111;
24661 let accessSize = DoubleWordAccess;
24662 let isSolo = 1;
24663 let mayStore = 1;
24665 def S4_storeirb_io : HInst<
24666 (outs),
24667 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24668 "memb($Rs32+#$Ii) = #$II",
24669 tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel {
24670 let Inst{31-21} = 0b00111100000;
24671 let addrMode = BaseImmOffset;
24672 let accessSize = ByteAccess;
24673 let mayStore = 1;
24674 let BaseOpcode = "S4_storeirb_io";
24675 let CextOpcode = "S2_storerb";
24676 let InputType = "imm";
24677 let isPredicable = 1;
24678 let isExtendable = 1;
24679 let opExtendable = 2;
24680 let isExtentSigned = 1;
24681 let opExtentBits = 8;
24682 let opExtentAlign = 0;
24684 def S4_storeirb_zomap : HInst<
24685 (outs),
24686 (ins IntRegs:$Rs32, s8_0Imm:$II),
24687 "memb($Rs32) = #$II",
24688 tc_7c31e19a, TypeMAPPING> {
24689 let isPseudo = 1;
24690 let isCodeGenOnly = 1;
24692 def S4_storeirbf_io : HInst<
24693 (outs),
24694 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24695 "if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24696 tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24697 let Inst{31-21} = 0b00111000100;
24698 let isPredicated = 1;
24699 let isPredicatedFalse = 1;
24700 let addrMode = BaseImmOffset;
24701 let accessSize = ByteAccess;
24702 let mayStore = 1;
24703 let BaseOpcode = "S4_storeirb_io";
24704 let CextOpcode = "S2_storerb";
24705 let InputType = "imm";
24706 let isExtendable = 1;
24707 let opExtendable = 3;
24708 let isExtentSigned = 1;
24709 let opExtentBits = 6;
24710 let opExtentAlign = 0;
24712 def S4_storeirbf_zomap : HInst<
24713 (outs),
24714 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24715 "if (!$Pv4) memb($Rs32) = #$II",
24716 tc_d03278fd, TypeMAPPING> {
24717 let isPseudo = 1;
24718 let isCodeGenOnly = 1;
24720 def S4_storeirbfnew_io : HInst<
24721 (outs),
24722 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24723 "if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24724 tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24725 let Inst{31-21} = 0b00111001100;
24726 let isPredicated = 1;
24727 let isPredicatedFalse = 1;
24728 let addrMode = BaseImmOffset;
24729 let accessSize = ByteAccess;
24730 let isPredicatedNew = 1;
24731 let mayStore = 1;
24732 let BaseOpcode = "S4_storeirb_io";
24733 let CextOpcode = "S2_storerb";
24734 let InputType = "imm";
24735 let isExtendable = 1;
24736 let opExtendable = 3;
24737 let isExtentSigned = 1;
24738 let opExtentBits = 6;
24739 let opExtentAlign = 0;
24741 def S4_storeirbfnew_zomap : HInst<
24742 (outs),
24743 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24744 "if (!$Pv4.new) memb($Rs32) = #$II",
24745 tc_65cbd974, TypeMAPPING> {
24746 let isPseudo = 1;
24747 let isCodeGenOnly = 1;
24749 def S4_storeirbt_io : HInst<
24750 (outs),
24751 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24752 "if ($Pv4) memb($Rs32+#$Ii) = #$II",
24753 tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel {
24754 let Inst{31-21} = 0b00111000000;
24755 let isPredicated = 1;
24756 let addrMode = BaseImmOffset;
24757 let accessSize = ByteAccess;
24758 let mayStore = 1;
24759 let BaseOpcode = "S4_storeirb_io";
24760 let CextOpcode = "S2_storerb";
24761 let InputType = "imm";
24762 let isExtendable = 1;
24763 let opExtendable = 3;
24764 let isExtentSigned = 1;
24765 let opExtentBits = 6;
24766 let opExtentAlign = 0;
24768 def S4_storeirbt_zomap : HInst<
24769 (outs),
24770 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24771 "if ($Pv4) memb($Rs32) = #$II",
24772 tc_d03278fd, TypeMAPPING> {
24773 let isPseudo = 1;
24774 let isCodeGenOnly = 1;
24776 def S4_storeirbtnew_io : HInst<
24777 (outs),
24778 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24779 "if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24780 tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel {
24781 let Inst{31-21} = 0b00111001000;
24782 let isPredicated = 1;
24783 let addrMode = BaseImmOffset;
24784 let accessSize = ByteAccess;
24785 let isPredicatedNew = 1;
24786 let mayStore = 1;
24787 let BaseOpcode = "S4_storeirb_io";
24788 let CextOpcode = "S2_storerb";
24789 let InputType = "imm";
24790 let isExtendable = 1;
24791 let opExtendable = 3;
24792 let isExtentSigned = 1;
24793 let opExtentBits = 6;
24794 let opExtentAlign = 0;
24796 def S4_storeirbtnew_zomap : HInst<
24797 (outs),
24798 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24799 "if ($Pv4.new) memb($Rs32) = #$II",
24800 tc_65cbd974, TypeMAPPING> {
24801 let isPseudo = 1;
24802 let isCodeGenOnly = 1;
24804 def S4_storeirh_io : HInst<
24805 (outs),
24806 (ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24807 "memh($Rs32+#$Ii) = #$II",
24808 tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel {
24809 let Inst{31-21} = 0b00111100001;
24810 let addrMode = BaseImmOffset;
24811 let accessSize = HalfWordAccess;
24812 let mayStore = 1;
24813 let BaseOpcode = "S4_storeirh_io";
24814 let CextOpcode = "S2_storerh";
24815 let InputType = "imm";
24816 let isPredicable = 1;
24817 let isExtendable = 1;
24818 let opExtendable = 2;
24819 let isExtentSigned = 1;
24820 let opExtentBits = 8;
24821 let opExtentAlign = 0;
24823 def S4_storeirh_zomap : HInst<
24824 (outs),
24825 (ins IntRegs:$Rs32, s8_0Imm:$II),
24826 "memh($Rs32) = #$II",
24827 tc_7c31e19a, TypeMAPPING> {
24828 let isPseudo = 1;
24829 let isCodeGenOnly = 1;
24831 def S4_storeirhf_io : HInst<
24832 (outs),
24833 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24834 "if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24835 tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24836 let Inst{31-21} = 0b00111000101;
24837 let isPredicated = 1;
24838 let isPredicatedFalse = 1;
24839 let addrMode = BaseImmOffset;
24840 let accessSize = HalfWordAccess;
24841 let mayStore = 1;
24842 let BaseOpcode = "S4_storeirh_io";
24843 let CextOpcode = "S2_storerh";
24844 let InputType = "imm";
24845 let isExtendable = 1;
24846 let opExtendable = 3;
24847 let isExtentSigned = 1;
24848 let opExtentBits = 6;
24849 let opExtentAlign = 0;
24851 def S4_storeirhf_zomap : HInst<
24852 (outs),
24853 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24854 "if (!$Pv4) memh($Rs32) = #$II",
24855 tc_d03278fd, TypeMAPPING> {
24856 let isPseudo = 1;
24857 let isCodeGenOnly = 1;
24859 def S4_storeirhfnew_io : HInst<
24860 (outs),
24861 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24862 "if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24863 tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24864 let Inst{31-21} = 0b00111001101;
24865 let isPredicated = 1;
24866 let isPredicatedFalse = 1;
24867 let addrMode = BaseImmOffset;
24868 let accessSize = HalfWordAccess;
24869 let isPredicatedNew = 1;
24870 let mayStore = 1;
24871 let BaseOpcode = "S4_storeirh_io";
24872 let CextOpcode = "S2_storerh";
24873 let InputType = "imm";
24874 let isExtendable = 1;
24875 let opExtendable = 3;
24876 let isExtentSigned = 1;
24877 let opExtentBits = 6;
24878 let opExtentAlign = 0;
24880 def S4_storeirhfnew_zomap : HInst<
24881 (outs),
24882 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24883 "if (!$Pv4.new) memh($Rs32) = #$II",
24884 tc_65cbd974, TypeMAPPING> {
24885 let isPseudo = 1;
24886 let isCodeGenOnly = 1;
24888 def S4_storeirht_io : HInst<
24889 (outs),
24890 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24891 "if ($Pv4) memh($Rs32+#$Ii) = #$II",
24892 tc_d03278fd, TypeST>, Enc_f20719, PredNewRel {
24893 let Inst{31-21} = 0b00111000001;
24894 let isPredicated = 1;
24895 let addrMode = BaseImmOffset;
24896 let accessSize = HalfWordAccess;
24897 let mayStore = 1;
24898 let BaseOpcode = "S4_storeirh_io";
24899 let CextOpcode = "S2_storerh";
24900 let InputType = "imm";
24901 let isExtendable = 1;
24902 let opExtendable = 3;
24903 let isExtentSigned = 1;
24904 let opExtentBits = 6;
24905 let opExtentAlign = 0;
24907 def S4_storeirht_zomap : HInst<
24908 (outs),
24909 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24910 "if ($Pv4) memh($Rs32) = #$II",
24911 tc_d03278fd, TypeMAPPING> {
24912 let isPseudo = 1;
24913 let isCodeGenOnly = 1;
24915 def S4_storeirhtnew_io : HInst<
24916 (outs),
24917 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24918 "if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24919 tc_65cbd974, TypeST>, Enc_f20719, PredNewRel {
24920 let Inst{31-21} = 0b00111001001;
24921 let isPredicated = 1;
24922 let addrMode = BaseImmOffset;
24923 let accessSize = HalfWordAccess;
24924 let isPredicatedNew = 1;
24925 let mayStore = 1;
24926 let BaseOpcode = "S4_storeirh_io";
24927 let CextOpcode = "S2_storerh";
24928 let InputType = "imm";
24929 let isExtendable = 1;
24930 let opExtendable = 3;
24931 let isExtentSigned = 1;
24932 let opExtentBits = 6;
24933 let opExtentAlign = 0;
24935 def S4_storeirhtnew_zomap : HInst<
24936 (outs),
24937 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24938 "if ($Pv4.new) memh($Rs32) = #$II",
24939 tc_65cbd974, TypeMAPPING> {
24940 let isPseudo = 1;
24941 let isCodeGenOnly = 1;
24943 def S4_storeiri_io : HInst<
24944 (outs),
24945 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24946 "memw($Rs32+#$Ii) = #$II",
24947 tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel {
24948 let Inst{31-21} = 0b00111100010;
24949 let addrMode = BaseImmOffset;
24950 let accessSize = WordAccess;
24951 let mayStore = 1;
24952 let BaseOpcode = "S4_storeiri_io";
24953 let CextOpcode = "S2_storeri";
24954 let InputType = "imm";
24955 let isPredicable = 1;
24956 let isExtendable = 1;
24957 let opExtendable = 2;
24958 let isExtentSigned = 1;
24959 let opExtentBits = 8;
24960 let opExtentAlign = 0;
24962 def S4_storeiri_zomap : HInst<
24963 (outs),
24964 (ins IntRegs:$Rs32, s8_0Imm:$II),
24965 "memw($Rs32) = #$II",
24966 tc_7c31e19a, TypeMAPPING> {
24967 let isPseudo = 1;
24968 let isCodeGenOnly = 1;
24970 def S4_storeirif_io : HInst<
24971 (outs),
24972 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24973 "if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24974 tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
24975 let Inst{31-21} = 0b00111000110;
24976 let isPredicated = 1;
24977 let isPredicatedFalse = 1;
24978 let addrMode = BaseImmOffset;
24979 let accessSize = WordAccess;
24980 let mayStore = 1;
24981 let BaseOpcode = "S4_storeiri_io";
24982 let CextOpcode = "S2_storeri";
24983 let InputType = "imm";
24984 let isExtendable = 1;
24985 let opExtendable = 3;
24986 let isExtentSigned = 1;
24987 let opExtentBits = 6;
24988 let opExtentAlign = 0;
24990 def S4_storeirif_zomap : HInst<
24991 (outs),
24992 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24993 "if (!$Pv4) memw($Rs32) = #$II",
24994 tc_d03278fd, TypeMAPPING> {
24995 let isPseudo = 1;
24996 let isCodeGenOnly = 1;
24998 def S4_storeirifnew_io : HInst<
24999 (outs),
25000 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25001 "if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
25002 tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
25003 let Inst{31-21} = 0b00111001110;
25004 let isPredicated = 1;
25005 let isPredicatedFalse = 1;
25006 let addrMode = BaseImmOffset;
25007 let accessSize = WordAccess;
25008 let isPredicatedNew = 1;
25009 let mayStore = 1;
25010 let BaseOpcode = "S4_storeiri_io";
25011 let CextOpcode = "S2_storeri";
25012 let InputType = "imm";
25013 let isExtendable = 1;
25014 let opExtendable = 3;
25015 let isExtentSigned = 1;
25016 let opExtentBits = 6;
25017 let opExtentAlign = 0;
25019 def S4_storeirifnew_zomap : HInst<
25020 (outs),
25021 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25022 "if (!$Pv4.new) memw($Rs32) = #$II",
25023 tc_65cbd974, TypeMAPPING> {
25024 let isPseudo = 1;
25025 let isCodeGenOnly = 1;
25027 def S4_storeirit_io : HInst<
25028 (outs),
25029 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25030 "if ($Pv4) memw($Rs32+#$Ii) = #$II",
25031 tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel {
25032 let Inst{31-21} = 0b00111000010;
25033 let isPredicated = 1;
25034 let addrMode = BaseImmOffset;
25035 let accessSize = WordAccess;
25036 let mayStore = 1;
25037 let BaseOpcode = "S4_storeiri_io";
25038 let CextOpcode = "S2_storeri";
25039 let InputType = "imm";
25040 let isExtendable = 1;
25041 let opExtendable = 3;
25042 let isExtentSigned = 1;
25043 let opExtentBits = 6;
25044 let opExtentAlign = 0;
25046 def S4_storeirit_zomap : HInst<
25047 (outs),
25048 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25049 "if ($Pv4) memw($Rs32) = #$II",
25050 tc_d03278fd, TypeMAPPING> {
25051 let isPseudo = 1;
25052 let isCodeGenOnly = 1;
25054 def S4_storeiritnew_io : HInst<
25055 (outs),
25056 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
25057 "if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
25058 tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel {
25059 let Inst{31-21} = 0b00111001010;
25060 let isPredicated = 1;
25061 let addrMode = BaseImmOffset;
25062 let accessSize = WordAccess;
25063 let isPredicatedNew = 1;
25064 let mayStore = 1;
25065 let BaseOpcode = "S4_storeiri_io";
25066 let CextOpcode = "S2_storeri";
25067 let InputType = "imm";
25068 let isExtendable = 1;
25069 let opExtendable = 3;
25070 let isExtentSigned = 1;
25071 let opExtentBits = 6;
25072 let opExtentAlign = 0;
25074 def S4_storeiritnew_zomap : HInst<
25075 (outs),
25076 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
25077 "if ($Pv4.new) memw($Rs32) = #$II",
25078 tc_65cbd974, TypeMAPPING> {
25079 let isPseudo = 1;
25080 let isCodeGenOnly = 1;
25082 def S4_storerb_ap : HInst<
25083 (outs IntRegs:$Re32),
25084 (ins u32_0Imm:$II, IntRegs:$Rt32),
25085 "memb($Re32=#$II) = $Rt32",
25086 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25087 let Inst{7-6} = 0b10;
25088 let Inst{13-13} = 0b0;
25089 let Inst{31-21} = 0b10101011000;
25090 let addrMode = AbsoluteSet;
25091 let accessSize = ByteAccess;
25092 let isExtended = 1;
25093 let mayStore = 1;
25094 let BaseOpcode = "S2_storerb_ap";
25095 let isNVStorable = 1;
25096 let DecoderNamespace = "MustExtend";
25097 let isExtendable = 1;
25098 let opExtendable = 1;
25099 let isExtentSigned = 0;
25100 let opExtentBits = 6;
25101 let opExtentAlign = 0;
25103 def S4_storerb_rr : HInst<
25104 (outs),
25105 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25106 "memb($Rs32+$Ru32<<#$Ii) = $Rt32",
25107 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25108 let Inst{6-5} = 0b00;
25109 let Inst{31-21} = 0b00111011000;
25110 let addrMode = BaseRegOffset;
25111 let accessSize = ByteAccess;
25112 let mayStore = 1;
25113 let BaseOpcode = "S4_storerb_rr";
25114 let CextOpcode = "S2_storerb";
25115 let InputType = "reg";
25116 let isNVStorable = 1;
25117 let isPredicable = 1;
25119 def S4_storerb_ur : HInst<
25120 (outs),
25121 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25122 "memb($Ru32<<#$Ii+#$II) = $Rt32",
25123 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25124 let Inst{7-7} = 0b1;
25125 let Inst{31-21} = 0b10101101000;
25126 let addrMode = BaseLongOffset;
25127 let accessSize = ByteAccess;
25128 let isExtended = 1;
25129 let mayStore = 1;
25130 let BaseOpcode = "S4_storerb_ur";
25131 let CextOpcode = "S2_storerb";
25132 let InputType = "imm";
25133 let isNVStorable = 1;
25134 let DecoderNamespace = "MustExtend";
25135 let isExtendable = 1;
25136 let opExtendable = 2;
25137 let isExtentSigned = 0;
25138 let opExtentBits = 6;
25139 let opExtentAlign = 0;
25141 def S4_storerbnew_ap : HInst<
25142 (outs IntRegs:$Re32),
25143 (ins u32_0Imm:$II, IntRegs:$Nt8),
25144 "memb($Re32=#$II) = $Nt8.new",
25145 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25146 let Inst{7-6} = 0b10;
25147 let Inst{13-11} = 0b000;
25148 let Inst{31-21} = 0b10101011101;
25149 let addrMode = AbsoluteSet;
25150 let accessSize = ByteAccess;
25151 let isNVStore = 1;
25152 let isNewValue = 1;
25153 let isExtended = 1;
25154 let isRestrictNoSlot1Store = 1;
25155 let mayStore = 1;
25156 let BaseOpcode = "S2_storerb_ap";
25157 let DecoderNamespace = "MustExtend";
25158 let isExtendable = 1;
25159 let opExtendable = 1;
25160 let isExtentSigned = 0;
25161 let opExtentBits = 6;
25162 let opExtentAlign = 0;
25163 let opNewValue = 2;
25165 def S4_storerbnew_rr : HInst<
25166 (outs),
25167 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25168 "memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25169 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25170 let Inst{6-3} = 0b0000;
25171 let Inst{31-21} = 0b00111011101;
25172 let addrMode = BaseRegOffset;
25173 let accessSize = ByteAccess;
25174 let isNVStore = 1;
25175 let isNewValue = 1;
25176 let isRestrictNoSlot1Store = 1;
25177 let mayStore = 1;
25178 let BaseOpcode = "S4_storerb_rr";
25179 let CextOpcode = "S2_storerb";
25180 let InputType = "reg";
25181 let isPredicable = 1;
25182 let opNewValue = 3;
25184 def S4_storerbnew_ur : HInst<
25185 (outs),
25186 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25187 "memb($Ru32<<#$Ii+#$II) = $Nt8.new",
25188 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25189 let Inst{7-7} = 0b1;
25190 let Inst{12-11} = 0b00;
25191 let Inst{31-21} = 0b10101101101;
25192 let addrMode = BaseLongOffset;
25193 let accessSize = ByteAccess;
25194 let isNVStore = 1;
25195 let isNewValue = 1;
25196 let isExtended = 1;
25197 let isRestrictNoSlot1Store = 1;
25198 let mayStore = 1;
25199 let BaseOpcode = "S4_storerb_ur";
25200 let CextOpcode = "S2_storerb";
25201 let DecoderNamespace = "MustExtend";
25202 let isExtendable = 1;
25203 let opExtendable = 2;
25204 let isExtentSigned = 0;
25205 let opExtentBits = 6;
25206 let opExtentAlign = 0;
25207 let opNewValue = 3;
25209 def S4_storerd_ap : HInst<
25210 (outs IntRegs:$Re32),
25211 (ins u32_0Imm:$II, DoubleRegs:$Rtt32),
25212 "memd($Re32=#$II) = $Rtt32",
25213 tc_bb07f2c5, TypeST>, Enc_c7a204 {
25214 let Inst{7-6} = 0b10;
25215 let Inst{13-13} = 0b0;
25216 let Inst{31-21} = 0b10101011110;
25217 let addrMode = AbsoluteSet;
25218 let accessSize = DoubleWordAccess;
25219 let isExtended = 1;
25220 let mayStore = 1;
25221 let BaseOpcode = "S4_storerd_ap";
25222 let DecoderNamespace = "MustExtend";
25223 let isExtendable = 1;
25224 let opExtendable = 1;
25225 let isExtentSigned = 0;
25226 let opExtentBits = 6;
25227 let opExtentAlign = 0;
25229 def S4_storerd_rr : HInst<
25230 (outs),
25231 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
25232 "memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
25233 tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
25234 let Inst{6-5} = 0b00;
25235 let Inst{31-21} = 0b00111011110;
25236 let addrMode = BaseRegOffset;
25237 let accessSize = DoubleWordAccess;
25238 let mayStore = 1;
25239 let BaseOpcode = "S2_storerd_rr";
25240 let CextOpcode = "S2_storerd";
25241 let InputType = "reg";
25242 let isPredicable = 1;
25244 def S4_storerd_ur : HInst<
25245 (outs),
25246 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
25247 "memd($Ru32<<#$Ii+#$II) = $Rtt32",
25248 tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
25249 let Inst{7-7} = 0b1;
25250 let Inst{31-21} = 0b10101101110;
25251 let addrMode = BaseLongOffset;
25252 let accessSize = DoubleWordAccess;
25253 let isExtended = 1;
25254 let mayStore = 1;
25255 let BaseOpcode = "S2_storerd_ur";
25256 let CextOpcode = "S2_storerd";
25257 let InputType = "imm";
25258 let DecoderNamespace = "MustExtend";
25259 let isExtendable = 1;
25260 let opExtendable = 2;
25261 let isExtentSigned = 0;
25262 let opExtentBits = 6;
25263 let opExtentAlign = 0;
25265 def S4_storerf_ap : HInst<
25266 (outs IntRegs:$Re32),
25267 (ins u32_0Imm:$II, IntRegs:$Rt32),
25268 "memh($Re32=#$II) = $Rt32.h",
25269 tc_bb07f2c5, TypeST>, Enc_8bcba4 {
25270 let Inst{7-6} = 0b10;
25271 let Inst{13-13} = 0b0;
25272 let Inst{31-21} = 0b10101011011;
25273 let addrMode = AbsoluteSet;
25274 let accessSize = HalfWordAccess;
25275 let isExtended = 1;
25276 let mayStore = 1;
25277 let BaseOpcode = "S4_storerf_ap";
25278 let DecoderNamespace = "MustExtend";
25279 let isExtendable = 1;
25280 let opExtendable = 1;
25281 let isExtentSigned = 0;
25282 let opExtentBits = 6;
25283 let opExtentAlign = 0;
25285 def S4_storerf_rr : HInst<
25286 (outs),
25287 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25288 "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
25289 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25290 let Inst{6-5} = 0b00;
25291 let Inst{31-21} = 0b00111011011;
25292 let addrMode = BaseRegOffset;
25293 let accessSize = HalfWordAccess;
25294 let mayStore = 1;
25295 let BaseOpcode = "S4_storerf_rr";
25296 let CextOpcode = "S2_storerf";
25297 let InputType = "reg";
25298 let isPredicable = 1;
25300 def S4_storerf_ur : HInst<
25301 (outs),
25302 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25303 "memh($Ru32<<#$Ii+#$II) = $Rt32.h",
25304 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25305 let Inst{7-7} = 0b1;
25306 let Inst{31-21} = 0b10101101011;
25307 let addrMode = BaseLongOffset;
25308 let accessSize = HalfWordAccess;
25309 let isExtended = 1;
25310 let mayStore = 1;
25311 let BaseOpcode = "S4_storerf_rr";
25312 let CextOpcode = "S2_storerf";
25313 let InputType = "imm";
25314 let DecoderNamespace = "MustExtend";
25315 let isExtendable = 1;
25316 let opExtendable = 2;
25317 let isExtentSigned = 0;
25318 let opExtentBits = 6;
25319 let opExtentAlign = 0;
25321 def S4_storerh_ap : HInst<
25322 (outs IntRegs:$Re32),
25323 (ins u32_0Imm:$II, IntRegs:$Rt32),
25324 "memh($Re32=#$II) = $Rt32",
25325 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25326 let Inst{7-6} = 0b10;
25327 let Inst{13-13} = 0b0;
25328 let Inst{31-21} = 0b10101011010;
25329 let addrMode = AbsoluteSet;
25330 let accessSize = HalfWordAccess;
25331 let isExtended = 1;
25332 let mayStore = 1;
25333 let BaseOpcode = "S2_storerh_ap";
25334 let isNVStorable = 1;
25335 let DecoderNamespace = "MustExtend";
25336 let isExtendable = 1;
25337 let opExtendable = 1;
25338 let isExtentSigned = 0;
25339 let opExtentBits = 6;
25340 let opExtentAlign = 0;
25342 def S4_storerh_rr : HInst<
25343 (outs),
25344 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25345 "memh($Rs32+$Ru32<<#$Ii) = $Rt32",
25346 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25347 let Inst{6-5} = 0b00;
25348 let Inst{31-21} = 0b00111011010;
25349 let addrMode = BaseRegOffset;
25350 let accessSize = HalfWordAccess;
25351 let mayStore = 1;
25352 let BaseOpcode = "S2_storerh_rr";
25353 let CextOpcode = "S2_storerh";
25354 let InputType = "reg";
25355 let isNVStorable = 1;
25356 let isPredicable = 1;
25358 def S4_storerh_ur : HInst<
25359 (outs),
25360 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25361 "memh($Ru32<<#$Ii+#$II) = $Rt32",
25362 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25363 let Inst{7-7} = 0b1;
25364 let Inst{31-21} = 0b10101101010;
25365 let addrMode = BaseLongOffset;
25366 let accessSize = HalfWordAccess;
25367 let isExtended = 1;
25368 let mayStore = 1;
25369 let BaseOpcode = "S2_storerh_ur";
25370 let CextOpcode = "S2_storerh";
25371 let InputType = "imm";
25372 let isNVStorable = 1;
25373 let DecoderNamespace = "MustExtend";
25374 let isExtendable = 1;
25375 let opExtendable = 2;
25376 let isExtentSigned = 0;
25377 let opExtentBits = 6;
25378 let opExtentAlign = 0;
25380 def S4_storerhnew_ap : HInst<
25381 (outs IntRegs:$Re32),
25382 (ins u32_0Imm:$II, IntRegs:$Nt8),
25383 "memh($Re32=#$II) = $Nt8.new",
25384 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25385 let Inst{7-6} = 0b10;
25386 let Inst{13-11} = 0b001;
25387 let Inst{31-21} = 0b10101011101;
25388 let addrMode = AbsoluteSet;
25389 let accessSize = HalfWordAccess;
25390 let isNVStore = 1;
25391 let isNewValue = 1;
25392 let isExtended = 1;
25393 let isRestrictNoSlot1Store = 1;
25394 let mayStore = 1;
25395 let BaseOpcode = "S2_storerh_ap";
25396 let DecoderNamespace = "MustExtend";
25397 let isExtendable = 1;
25398 let opExtendable = 1;
25399 let isExtentSigned = 0;
25400 let opExtentBits = 6;
25401 let opExtentAlign = 0;
25402 let opNewValue = 2;
25404 def S4_storerhnew_rr : HInst<
25405 (outs),
25406 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25407 "memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25408 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25409 let Inst{6-3} = 0b0001;
25410 let Inst{31-21} = 0b00111011101;
25411 let addrMode = BaseRegOffset;
25412 let accessSize = HalfWordAccess;
25413 let isNVStore = 1;
25414 let isNewValue = 1;
25415 let isRestrictNoSlot1Store = 1;
25416 let mayStore = 1;
25417 let BaseOpcode = "S2_storerh_rr";
25418 let CextOpcode = "S2_storerh";
25419 let InputType = "reg";
25420 let isPredicable = 1;
25421 let opNewValue = 3;
25423 def S4_storerhnew_ur : HInst<
25424 (outs),
25425 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25426 "memh($Ru32<<#$Ii+#$II) = $Nt8.new",
25427 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25428 let Inst{7-7} = 0b1;
25429 let Inst{12-11} = 0b01;
25430 let Inst{31-21} = 0b10101101101;
25431 let addrMode = BaseLongOffset;
25432 let accessSize = HalfWordAccess;
25433 let isNVStore = 1;
25434 let isNewValue = 1;
25435 let isExtended = 1;
25436 let isRestrictNoSlot1Store = 1;
25437 let mayStore = 1;
25438 let BaseOpcode = "S2_storerh_ur";
25439 let CextOpcode = "S2_storerh";
25440 let DecoderNamespace = "MustExtend";
25441 let isExtendable = 1;
25442 let opExtendable = 2;
25443 let isExtentSigned = 0;
25444 let opExtentBits = 6;
25445 let opExtentAlign = 0;
25446 let opNewValue = 3;
25448 def S4_storeri_ap : HInst<
25449 (outs IntRegs:$Re32),
25450 (ins u32_0Imm:$II, IntRegs:$Rt32),
25451 "memw($Re32=#$II) = $Rt32",
25452 tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel {
25453 let Inst{7-6} = 0b10;
25454 let Inst{13-13} = 0b0;
25455 let Inst{31-21} = 0b10101011100;
25456 let addrMode = AbsoluteSet;
25457 let accessSize = WordAccess;
25458 let isExtended = 1;
25459 let mayStore = 1;
25460 let BaseOpcode = "S2_storeri_ap";
25461 let isNVStorable = 1;
25462 let DecoderNamespace = "MustExtend";
25463 let isExtendable = 1;
25464 let opExtendable = 1;
25465 let isExtentSigned = 0;
25466 let opExtentBits = 6;
25467 let opExtentAlign = 0;
25469 def S4_storeri_rr : HInst<
25470 (outs),
25471 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25472 "memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25473 tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25474 let Inst{6-5} = 0b00;
25475 let Inst{31-21} = 0b00111011100;
25476 let addrMode = BaseRegOffset;
25477 let accessSize = WordAccess;
25478 let mayStore = 1;
25479 let BaseOpcode = "S2_storeri_rr";
25480 let CextOpcode = "S2_storeri";
25481 let InputType = "reg";
25482 let isNVStorable = 1;
25483 let isPredicable = 1;
25485 def S4_storeri_ur : HInst<
25486 (outs),
25487 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25488 "memw($Ru32<<#$Ii+#$II) = $Rt32",
25489 tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25490 let Inst{7-7} = 0b1;
25491 let Inst{31-21} = 0b10101101100;
25492 let addrMode = BaseLongOffset;
25493 let accessSize = WordAccess;
25494 let isExtended = 1;
25495 let mayStore = 1;
25496 let BaseOpcode = "S2_storeri_ur";
25497 let CextOpcode = "S2_storeri";
25498 let InputType = "imm";
25499 let isNVStorable = 1;
25500 let DecoderNamespace = "MustExtend";
25501 let isExtendable = 1;
25502 let opExtendable = 2;
25503 let isExtentSigned = 0;
25504 let opExtentBits = 6;
25505 let opExtentAlign = 0;
25507 def S4_storerinew_ap : HInst<
25508 (outs IntRegs:$Re32),
25509 (ins u32_0Imm:$II, IntRegs:$Nt8),
25510 "memw($Re32=#$II) = $Nt8.new",
25511 tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel {
25512 let Inst{7-6} = 0b10;
25513 let Inst{13-11} = 0b010;
25514 let Inst{31-21} = 0b10101011101;
25515 let addrMode = AbsoluteSet;
25516 let accessSize = WordAccess;
25517 let isNVStore = 1;
25518 let isNewValue = 1;
25519 let isExtended = 1;
25520 let isRestrictNoSlot1Store = 1;
25521 let mayStore = 1;
25522 let BaseOpcode = "S2_storeri_ap";
25523 let DecoderNamespace = "MustExtend";
25524 let isExtendable = 1;
25525 let opExtendable = 1;
25526 let isExtentSigned = 0;
25527 let opExtentBits = 6;
25528 let opExtentAlign = 0;
25529 let opNewValue = 2;
25531 def S4_storerinew_rr : HInst<
25532 (outs),
25533 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25534 "memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25535 tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel {
25536 let Inst{6-3} = 0b0010;
25537 let Inst{31-21} = 0b00111011101;
25538 let addrMode = BaseRegOffset;
25539 let accessSize = WordAccess;
25540 let isNVStore = 1;
25541 let isNewValue = 1;
25542 let isRestrictNoSlot1Store = 1;
25543 let mayStore = 1;
25544 let BaseOpcode = "S2_storeri_rr";
25545 let CextOpcode = "S2_storeri";
25546 let InputType = "reg";
25547 let isPredicable = 1;
25548 let opNewValue = 3;
25550 def S4_storerinew_ur : HInst<
25551 (outs),
25552 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25553 "memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25554 tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel {
25555 let Inst{7-7} = 0b1;
25556 let Inst{12-11} = 0b10;
25557 let Inst{31-21} = 0b10101101101;
25558 let addrMode = BaseLongOffset;
25559 let accessSize = WordAccess;
25560 let isNVStore = 1;
25561 let isNewValue = 1;
25562 let isExtended = 1;
25563 let isRestrictNoSlot1Store = 1;
25564 let mayStore = 1;
25565 let BaseOpcode = "S2_storeri_ur";
25566 let CextOpcode = "S2_storeri";
25567 let DecoderNamespace = "MustExtend";
25568 let isExtendable = 1;
25569 let opExtendable = 2;
25570 let isExtentSigned = 0;
25571 let opExtentBits = 6;
25572 let opExtentAlign = 0;
25573 let opNewValue = 3;
25575 def S4_subaddi : HInst<
25576 (outs IntRegs:$Rd32),
25577 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25578 "$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25579 tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> {
25580 let Inst{31-23} = 0b110110111;
25581 let hasNewValue = 1;
25582 let opNewValue = 0;
25583 let prefersSlot3 = 1;
25584 let isExtendable = 1;
25585 let opExtendable = 2;
25586 let isExtentSigned = 1;
25587 let opExtentBits = 6;
25588 let opExtentAlign = 0;
25590 def S4_subi_asl_ri : HInst<
25591 (outs IntRegs:$Rx32),
25592 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25593 "$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25594 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25595 let Inst{2-0} = 0b110;
25596 let Inst{4-4} = 0b0;
25597 let Inst{31-24} = 0b11011110;
25598 let hasNewValue = 1;
25599 let opNewValue = 0;
25600 let prefersSlot3 = 1;
25601 let isExtendable = 1;
25602 let opExtendable = 1;
25603 let isExtentSigned = 0;
25604 let opExtentBits = 8;
25605 let opExtentAlign = 0;
25606 let Constraints = "$Rx32 = $Rx32in";
25608 def S4_subi_lsr_ri : HInst<
25609 (outs IntRegs:$Rx32),
25610 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25611 "$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25612 tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> {
25613 let Inst{2-0} = 0b110;
25614 let Inst{4-4} = 0b1;
25615 let Inst{31-24} = 0b11011110;
25616 let hasNewValue = 1;
25617 let opNewValue = 0;
25618 let prefersSlot3 = 1;
25619 let isExtendable = 1;
25620 let opExtendable = 1;
25621 let isExtentSigned = 0;
25622 let opExtentBits = 8;
25623 let opExtentAlign = 0;
25624 let Constraints = "$Rx32 = $Rx32in";
25626 def S4_vrcrotate : HInst<
25627 (outs DoubleRegs:$Rdd32),
25628 (ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25629 "$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25630 tc_f0cdeccf, TypeS_3op>, Enc_645d54 {
25631 let Inst{7-6} = 0b11;
25632 let Inst{31-21} = 0b11000011110;
25633 let prefersSlot3 = 1;
25635 def S4_vrcrotate_acc : HInst<
25636 (outs DoubleRegs:$Rxx32),
25637 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25638 "$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25639 tc_a38c45dc, TypeS_3op>, Enc_b72622 {
25640 let Inst{7-6} = 0b00;
25641 let Inst{31-21} = 0b11001011101;
25642 let prefersSlot3 = 1;
25643 let Constraints = "$Rxx32 = $Rxx32in";
25645 def S4_vxaddsubh : HInst<
25646 (outs DoubleRegs:$Rdd32),
25647 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25648 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25649 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25650 let Inst{7-5} = 0b100;
25651 let Inst{13-13} = 0b0;
25652 let Inst{31-21} = 0b11000001010;
25653 let prefersSlot3 = 1;
25654 let Defs = [USR_OVF];
25656 def S4_vxaddsubhr : HInst<
25657 (outs DoubleRegs:$Rdd32),
25658 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25659 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25660 tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25661 let Inst{7-5} = 0b000;
25662 let Inst{13-13} = 0b0;
25663 let Inst{31-21} = 0b11000001110;
25664 let prefersSlot3 = 1;
25665 let Defs = [USR_OVF];
25667 def S4_vxaddsubw : HInst<
25668 (outs DoubleRegs:$Rdd32),
25669 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25670 "$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25671 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25672 let Inst{7-5} = 0b000;
25673 let Inst{13-13} = 0b0;
25674 let Inst{31-21} = 0b11000001010;
25675 let prefersSlot3 = 1;
25676 let Defs = [USR_OVF];
25678 def S4_vxsubaddh : HInst<
25679 (outs DoubleRegs:$Rdd32),
25680 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25681 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25682 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25683 let Inst{7-5} = 0b110;
25684 let Inst{13-13} = 0b0;
25685 let Inst{31-21} = 0b11000001010;
25686 let prefersSlot3 = 1;
25687 let Defs = [USR_OVF];
25689 def S4_vxsubaddhr : HInst<
25690 (outs DoubleRegs:$Rdd32),
25691 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25692 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25693 tc_0dfac0a7, TypeS_3op>, Enc_a56825 {
25694 let Inst{7-5} = 0b010;
25695 let Inst{13-13} = 0b0;
25696 let Inst{31-21} = 0b11000001110;
25697 let prefersSlot3 = 1;
25698 let Defs = [USR_OVF];
25700 def S4_vxsubaddw : HInst<
25701 (outs DoubleRegs:$Rdd32),
25702 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25703 "$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25704 tc_8a825db2, TypeS_3op>, Enc_a56825 {
25705 let Inst{7-5} = 0b010;
25706 let Inst{13-13} = 0b0;
25707 let Inst{31-21} = 0b11000001010;
25708 let prefersSlot3 = 1;
25709 let Defs = [USR_OVF];
25711 def S5_asrhub_rnd_sat : HInst<
25712 (outs IntRegs:$Rd32),
25713 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25714 "$Rd32 = vasrhub($Rss32,#$Ii):raw",
25715 tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25716 let Inst{7-5} = 0b100;
25717 let Inst{13-12} = 0b00;
25718 let Inst{31-21} = 0b10001000011;
25719 let hasNewValue = 1;
25720 let opNewValue = 0;
25721 let prefersSlot3 = 1;
25722 let Defs = [USR_OVF];
25724 def S5_asrhub_rnd_sat_goodsyntax : HInst<
25725 (outs IntRegs:$Rd32),
25726 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25727 "$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25728 tc_0dfac0a7, TypeS_2op> {
25729 let hasNewValue = 1;
25730 let opNewValue = 0;
25731 let isPseudo = 1;
25733 def S5_asrhub_sat : HInst<
25734 (outs IntRegs:$Rd32),
25735 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25736 "$Rd32 = vasrhub($Rss32,#$Ii):sat",
25737 tc_0dfac0a7, TypeS_2op>, Enc_11a146 {
25738 let Inst{7-5} = 0b101;
25739 let Inst{13-12} = 0b00;
25740 let Inst{31-21} = 0b10001000011;
25741 let hasNewValue = 1;
25742 let opNewValue = 0;
25743 let prefersSlot3 = 1;
25744 let Defs = [USR_OVF];
25746 def S5_popcountp : HInst<
25747 (outs IntRegs:$Rd32),
25748 (ins DoubleRegs:$Rss32),
25749 "$Rd32 = popcount($Rss32)",
25750 tc_d3632d88, TypeS_2op>, Enc_90cd8b {
25751 let Inst{13-5} = 0b000000011;
25752 let Inst{31-21} = 0b10001000011;
25753 let hasNewValue = 1;
25754 let opNewValue = 0;
25755 let prefersSlot3 = 1;
25757 def S5_vasrhrnd : HInst<
25758 (outs DoubleRegs:$Rdd32),
25759 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25760 "$Rdd32 = vasrh($Rss32,#$Ii):raw",
25761 tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 {
25762 let Inst{7-5} = 0b000;
25763 let Inst{13-12} = 0b00;
25764 let Inst{31-21} = 0b10000000001;
25765 let prefersSlot3 = 1;
25767 def S5_vasrhrnd_goodsyntax : HInst<
25768 (outs DoubleRegs:$Rdd32),
25769 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25770 "$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25771 tc_0dfac0a7, TypeS_2op> {
25772 let isPseudo = 1;
25774 def S6_allocframe_to_raw : HInst<
25775 (outs),
25776 (ins u11_3Imm:$Ii),
25777 "allocframe(#$Ii)",
25778 tc_934753bb, TypeMAPPING>, Requires<[HasV65]> {
25779 let isPseudo = 1;
25780 let isCodeGenOnly = 1;
25782 def S6_rol_i_p : HInst<
25783 (outs DoubleRegs:$Rdd32),
25784 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25785 "$Rdd32 = rol($Rss32,#$Ii)",
25786 tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25787 let Inst{7-5} = 0b011;
25788 let Inst{31-21} = 0b10000000000;
25790 def S6_rol_i_p_acc : HInst<
25791 (outs DoubleRegs:$Rxx32),
25792 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25793 "$Rxx32 += rol($Rss32,#$Ii)",
25794 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25795 let Inst{7-5} = 0b111;
25796 let Inst{31-21} = 0b10000010000;
25797 let prefersSlot3 = 1;
25798 let Constraints = "$Rxx32 = $Rxx32in";
25800 def S6_rol_i_p_and : HInst<
25801 (outs DoubleRegs:$Rxx32),
25802 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25803 "$Rxx32 &= rol($Rss32,#$Ii)",
25804 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25805 let Inst{7-5} = 0b011;
25806 let Inst{31-21} = 0b10000010010;
25807 let prefersSlot3 = 1;
25808 let Constraints = "$Rxx32 = $Rxx32in";
25810 def S6_rol_i_p_nac : HInst<
25811 (outs DoubleRegs:$Rxx32),
25812 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25813 "$Rxx32 -= rol($Rss32,#$Ii)",
25814 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25815 let Inst{7-5} = 0b011;
25816 let Inst{31-21} = 0b10000010000;
25817 let prefersSlot3 = 1;
25818 let Constraints = "$Rxx32 = $Rxx32in";
25820 def S6_rol_i_p_or : HInst<
25821 (outs DoubleRegs:$Rxx32),
25822 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25823 "$Rxx32 |= rol($Rss32,#$Ii)",
25824 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25825 let Inst{7-5} = 0b111;
25826 let Inst{31-21} = 0b10000010010;
25827 let prefersSlot3 = 1;
25828 let Constraints = "$Rxx32 = $Rxx32in";
25830 def S6_rol_i_p_xacc : HInst<
25831 (outs DoubleRegs:$Rxx32),
25832 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25833 "$Rxx32 ^= rol($Rss32,#$Ii)",
25834 tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25835 let Inst{7-5} = 0b011;
25836 let Inst{31-21} = 0b10000010100;
25837 let prefersSlot3 = 1;
25838 let Constraints = "$Rxx32 = $Rxx32in";
25840 def S6_rol_i_r : HInst<
25841 (outs IntRegs:$Rd32),
25842 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
25843 "$Rd32 = rol($Rs32,#$Ii)",
25844 tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25845 let Inst{7-5} = 0b011;
25846 let Inst{13-13} = 0b0;
25847 let Inst{31-21} = 0b10001100000;
25848 let hasNewValue = 1;
25849 let opNewValue = 0;
25851 def S6_rol_i_r_acc : HInst<
25852 (outs IntRegs:$Rx32),
25853 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25854 "$Rx32 += rol($Rs32,#$Ii)",
25855 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25856 let Inst{7-5} = 0b111;
25857 let Inst{13-13} = 0b0;
25858 let Inst{31-21} = 0b10001110000;
25859 let hasNewValue = 1;
25860 let opNewValue = 0;
25861 let prefersSlot3 = 1;
25862 let Constraints = "$Rx32 = $Rx32in";
25864 def S6_rol_i_r_and : HInst<
25865 (outs IntRegs:$Rx32),
25866 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25867 "$Rx32 &= rol($Rs32,#$Ii)",
25868 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25869 let Inst{7-5} = 0b011;
25870 let Inst{13-13} = 0b0;
25871 let Inst{31-21} = 0b10001110010;
25872 let hasNewValue = 1;
25873 let opNewValue = 0;
25874 let prefersSlot3 = 1;
25875 let Constraints = "$Rx32 = $Rx32in";
25877 def S6_rol_i_r_nac : HInst<
25878 (outs IntRegs:$Rx32),
25879 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25880 "$Rx32 -= rol($Rs32,#$Ii)",
25881 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25882 let Inst{7-5} = 0b011;
25883 let Inst{13-13} = 0b0;
25884 let Inst{31-21} = 0b10001110000;
25885 let hasNewValue = 1;
25886 let opNewValue = 0;
25887 let prefersSlot3 = 1;
25888 let Constraints = "$Rx32 = $Rx32in";
25890 def S6_rol_i_r_or : HInst<
25891 (outs IntRegs:$Rx32),
25892 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25893 "$Rx32 |= rol($Rs32,#$Ii)",
25894 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25895 let Inst{7-5} = 0b111;
25896 let Inst{13-13} = 0b0;
25897 let Inst{31-21} = 0b10001110010;
25898 let hasNewValue = 1;
25899 let opNewValue = 0;
25900 let prefersSlot3 = 1;
25901 let Constraints = "$Rx32 = $Rx32in";
25903 def S6_rol_i_r_xacc : HInst<
25904 (outs IntRegs:$Rx32),
25905 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25906 "$Rx32 ^= rol($Rs32,#$Ii)",
25907 tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25908 let Inst{7-5} = 0b011;
25909 let Inst{13-13} = 0b0;
25910 let Inst{31-21} = 0b10001110100;
25911 let hasNewValue = 1;
25912 let opNewValue = 0;
25913 let prefersSlot3 = 1;
25914 let Constraints = "$Rx32 = $Rx32in";
25916 def S6_vsplatrbp : HInst<
25917 (outs DoubleRegs:$Rdd32),
25918 (ins IntRegs:$Rs32),
25919 "$Rdd32 = vsplatb($Rs32)",
25920 tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25921 let Inst{13-5} = 0b000000100;
25922 let Inst{31-21} = 0b10000100010;
25924 def S6_vtrunehb_ppp : HInst<
25925 (outs DoubleRegs:$Rdd32),
25926 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25927 "$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25928 tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25929 let Inst{7-5} = 0b011;
25930 let Inst{13-13} = 0b0;
25931 let Inst{31-21} = 0b11000001100;
25933 def S6_vtrunohb_ppp : HInst<
25934 (outs DoubleRegs:$Rdd32),
25935 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25936 "$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25937 tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25938 let Inst{7-5} = 0b101;
25939 let Inst{13-13} = 0b0;
25940 let Inst{31-21} = 0b11000001100;
25942 def SA1_addi : HInst<
25943 (outs GeneralSubRegs:$Rx16),
25944 (ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii),
25945 "$Rx16 = add($Rx16in,#$Ii)",
25946 tc_5b347363, TypeSUBINSN>, Enc_93af4c {
25947 let Inst{12-11} = 0b00;
25948 let hasNewValue = 1;
25949 let opNewValue = 0;
25950 let AsmVariantName = "NonParsable";
25951 let DecoderNamespace = "SUBINSN_A";
25952 let isExtendable = 1;
25953 let opExtendable = 2;
25954 let isExtentSigned = 1;
25955 let opExtentBits = 7;
25956 let opExtentAlign = 0;
25957 let Constraints = "$Rx16 = $Rx16in";
25959 def SA1_addrx : HInst<
25960 (outs GeneralSubRegs:$Rx16),
25961 (ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16),
25962 "$Rx16 = add($Rx16in,$Rs16)",
25963 tc_5b347363, TypeSUBINSN>, Enc_0527db {
25964 let Inst{12-8} = 0b11000;
25965 let hasNewValue = 1;
25966 let opNewValue = 0;
25967 let AsmVariantName = "NonParsable";
25968 let DecoderNamespace = "SUBINSN_A";
25969 let Constraints = "$Rx16 = $Rx16in";
25971 def SA1_addsp : HInst<
25972 (outs GeneralSubRegs:$Rd16),
25973 (ins u6_2Imm:$Ii),
25974 "$Rd16 = add(r29,#$Ii)",
25975 tc_3d14a17b, TypeSUBINSN>, Enc_2df31d {
25976 let Inst{12-10} = 0b011;
25977 let hasNewValue = 1;
25978 let opNewValue = 0;
25979 let AsmVariantName = "NonParsable";
25980 let Uses = [R29];
25981 let DecoderNamespace = "SUBINSN_A";
25983 def SA1_and1 : HInst<
25984 (outs GeneralSubRegs:$Rd16),
25985 (ins GeneralSubRegs:$Rs16),
25986 "$Rd16 = and($Rs16,#1)",
25987 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
25988 let Inst{12-8} = 0b10010;
25989 let hasNewValue = 1;
25990 let opNewValue = 0;
25991 let AsmVariantName = "NonParsable";
25992 let DecoderNamespace = "SUBINSN_A";
25994 def SA1_clrf : HInst<
25995 (outs GeneralSubRegs:$Rd16),
25996 (ins),
25997 "if (!p0) $Rd16 = #0",
25998 tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
25999 let Inst{12-4} = 0b110100111;
26000 let isPredicated = 1;
26001 let isPredicatedFalse = 1;
26002 let hasNewValue = 1;
26003 let opNewValue = 0;
26004 let AsmVariantName = "NonParsable";
26005 let Uses = [P0];
26006 let DecoderNamespace = "SUBINSN_A";
26008 def SA1_clrfnew : HInst<
26009 (outs GeneralSubRegs:$Rd16),
26010 (ins),
26011 "if (!p0.new) $Rd16 = #0",
26012 tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
26013 let Inst{12-4} = 0b110100101;
26014 let isPredicated = 1;
26015 let isPredicatedFalse = 1;
26016 let hasNewValue = 1;
26017 let opNewValue = 0;
26018 let AsmVariantName = "NonParsable";
26019 let isPredicatedNew = 1;
26020 let Uses = [P0];
26021 let DecoderNamespace = "SUBINSN_A";
26023 def SA1_clrt : HInst<
26024 (outs GeneralSubRegs:$Rd16),
26025 (ins),
26026 "if (p0) $Rd16 = #0",
26027 tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 {
26028 let Inst{12-4} = 0b110100110;
26029 let isPredicated = 1;
26030 let hasNewValue = 1;
26031 let opNewValue = 0;
26032 let AsmVariantName = "NonParsable";
26033 let Uses = [P0];
26034 let DecoderNamespace = "SUBINSN_A";
26036 def SA1_clrtnew : HInst<
26037 (outs GeneralSubRegs:$Rd16),
26038 (ins),
26039 "if (p0.new) $Rd16 = #0",
26040 tc_63567288, TypeSUBINSN>, Enc_1f5ba6 {
26041 let Inst{12-4} = 0b110100100;
26042 let isPredicated = 1;
26043 let hasNewValue = 1;
26044 let opNewValue = 0;
26045 let AsmVariantName = "NonParsable";
26046 let isPredicatedNew = 1;
26047 let Uses = [P0];
26048 let DecoderNamespace = "SUBINSN_A";
26050 def SA1_cmpeqi : HInst<
26051 (outs),
26052 (ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
26053 "p0 = cmp.eq($Rs16,#$Ii)",
26054 tc_59a7822c, TypeSUBINSN>, Enc_63eaeb {
26055 let Inst{3-2} = 0b00;
26056 let Inst{12-8} = 0b11001;
26057 let AsmVariantName = "NonParsable";
26058 let Defs = [P0];
26059 let DecoderNamespace = "SUBINSN_A";
26061 def SA1_combine0i : HInst<
26062 (outs GeneralDoubleLow8Regs:$Rdd8),
26063 (ins u2_0Imm:$Ii),
26064 "$Rdd8 = combine(#0,#$Ii)",
26065 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26066 let Inst{4-3} = 0b00;
26067 let Inst{12-7} = 0b111000;
26068 let hasNewValue = 1;
26069 let opNewValue = 0;
26070 let AsmVariantName = "NonParsable";
26071 let DecoderNamespace = "SUBINSN_A";
26073 def SA1_combine1i : HInst<
26074 (outs GeneralDoubleLow8Regs:$Rdd8),
26075 (ins u2_0Imm:$Ii),
26076 "$Rdd8 = combine(#1,#$Ii)",
26077 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26078 let Inst{4-3} = 0b01;
26079 let Inst{12-7} = 0b111000;
26080 let hasNewValue = 1;
26081 let opNewValue = 0;
26082 let AsmVariantName = "NonParsable";
26083 let DecoderNamespace = "SUBINSN_A";
26085 def SA1_combine2i : HInst<
26086 (outs GeneralDoubleLow8Regs:$Rdd8),
26087 (ins u2_0Imm:$Ii),
26088 "$Rdd8 = combine(#2,#$Ii)",
26089 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26090 let Inst{4-3} = 0b10;
26091 let Inst{12-7} = 0b111000;
26092 let hasNewValue = 1;
26093 let opNewValue = 0;
26094 let AsmVariantName = "NonParsable";
26095 let DecoderNamespace = "SUBINSN_A";
26097 def SA1_combine3i : HInst<
26098 (outs GeneralDoubleLow8Regs:$Rdd8),
26099 (ins u2_0Imm:$Ii),
26100 "$Rdd8 = combine(#3,#$Ii)",
26101 tc_3d14a17b, TypeSUBINSN>, Enc_ed48be {
26102 let Inst{4-3} = 0b11;
26103 let Inst{12-7} = 0b111000;
26104 let hasNewValue = 1;
26105 let opNewValue = 0;
26106 let AsmVariantName = "NonParsable";
26107 let DecoderNamespace = "SUBINSN_A";
26109 def SA1_combinerz : HInst<
26110 (outs GeneralDoubleLow8Regs:$Rdd8),
26111 (ins GeneralSubRegs:$Rs16),
26112 "$Rdd8 = combine($Rs16,#0)",
26113 tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26114 let Inst{3-3} = 0b1;
26115 let Inst{12-8} = 0b11101;
26116 let hasNewValue = 1;
26117 let opNewValue = 0;
26118 let AsmVariantName = "NonParsable";
26119 let DecoderNamespace = "SUBINSN_A";
26121 def SA1_combinezr : HInst<
26122 (outs GeneralDoubleLow8Regs:$Rdd8),
26123 (ins GeneralSubRegs:$Rs16),
26124 "$Rdd8 = combine(#0,$Rs16)",
26125 tc_3d14a17b, TypeSUBINSN>, Enc_399e12 {
26126 let Inst{3-3} = 0b0;
26127 let Inst{12-8} = 0b11101;
26128 let hasNewValue = 1;
26129 let opNewValue = 0;
26130 let AsmVariantName = "NonParsable";
26131 let DecoderNamespace = "SUBINSN_A";
26133 def SA1_dec : HInst<
26134 (outs GeneralSubRegs:$Rd16),
26135 (ins GeneralSubRegs:$Rs16, n1Const:$n1),
26136 "$Rd16 = add($Rs16,#$n1)",
26137 tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 {
26138 let Inst{12-8} = 0b10011;
26139 let hasNewValue = 1;
26140 let opNewValue = 0;
26141 let AsmVariantName = "NonParsable";
26142 let DecoderNamespace = "SUBINSN_A";
26144 def SA1_inc : HInst<
26145 (outs GeneralSubRegs:$Rd16),
26146 (ins GeneralSubRegs:$Rs16),
26147 "$Rd16 = add($Rs16,#1)",
26148 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26149 let Inst{12-8} = 0b10001;
26150 let hasNewValue = 1;
26151 let opNewValue = 0;
26152 let AsmVariantName = "NonParsable";
26153 let DecoderNamespace = "SUBINSN_A";
26155 def SA1_seti : HInst<
26156 (outs GeneralSubRegs:$Rd16),
26157 (ins u32_0Imm:$Ii),
26158 "$Rd16 = #$Ii",
26159 tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 {
26160 let Inst{12-10} = 0b010;
26161 let hasNewValue = 1;
26162 let opNewValue = 0;
26163 let AsmVariantName = "NonParsable";
26164 let DecoderNamespace = "SUBINSN_A";
26165 let isExtendable = 1;
26166 let opExtendable = 1;
26167 let isExtentSigned = 0;
26168 let opExtentBits = 6;
26169 let opExtentAlign = 0;
26171 def SA1_setin1 : HInst<
26172 (outs GeneralSubRegs:$Rd16),
26173 (ins n1Const:$n1),
26174 "$Rd16 = #$n1",
26175 tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 {
26176 let Inst{12-4} = 0b110100000;
26177 let hasNewValue = 1;
26178 let opNewValue = 0;
26179 let AsmVariantName = "NonParsable";
26180 let DecoderNamespace = "SUBINSN_A";
26182 def SA1_sxtb : HInst<
26183 (outs GeneralSubRegs:$Rd16),
26184 (ins GeneralSubRegs:$Rs16),
26185 "$Rd16 = sxtb($Rs16)",
26186 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26187 let Inst{12-8} = 0b10101;
26188 let hasNewValue = 1;
26189 let opNewValue = 0;
26190 let AsmVariantName = "NonParsable";
26191 let DecoderNamespace = "SUBINSN_A";
26193 def SA1_sxth : HInst<
26194 (outs GeneralSubRegs:$Rd16),
26195 (ins GeneralSubRegs:$Rs16),
26196 "$Rd16 = sxth($Rs16)",
26197 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26198 let Inst{12-8} = 0b10100;
26199 let hasNewValue = 1;
26200 let opNewValue = 0;
26201 let AsmVariantName = "NonParsable";
26202 let DecoderNamespace = "SUBINSN_A";
26204 def SA1_tfr : HInst<
26205 (outs GeneralSubRegs:$Rd16),
26206 (ins GeneralSubRegs:$Rs16),
26207 "$Rd16 = $Rs16",
26208 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26209 let Inst{12-8} = 0b10000;
26210 let hasNewValue = 1;
26211 let opNewValue = 0;
26212 let AsmVariantName = "NonParsable";
26213 let DecoderNamespace = "SUBINSN_A";
26215 def SA1_zxtb : HInst<
26216 (outs GeneralSubRegs:$Rd16),
26217 (ins GeneralSubRegs:$Rs16),
26218 "$Rd16 = and($Rs16,#255)",
26219 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26220 let Inst{12-8} = 0b10111;
26221 let hasNewValue = 1;
26222 let opNewValue = 0;
26223 let AsmVariantName = "NonParsable";
26224 let DecoderNamespace = "SUBINSN_A";
26226 def SA1_zxth : HInst<
26227 (outs GeneralSubRegs:$Rd16),
26228 (ins GeneralSubRegs:$Rs16),
26229 "$Rd16 = zxth($Rs16)",
26230 tc_3d14a17b, TypeSUBINSN>, Enc_97d666 {
26231 let Inst{12-8} = 0b10110;
26232 let hasNewValue = 1;
26233 let opNewValue = 0;
26234 let AsmVariantName = "NonParsable";
26235 let DecoderNamespace = "SUBINSN_A";
26237 def SL1_loadri_io : HInst<
26238 (outs GeneralSubRegs:$Rd16),
26239 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26240 "$Rd16 = memw($Rs16+#$Ii)",
26241 tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 {
26242 let Inst{12-12} = 0b0;
26243 let hasNewValue = 1;
26244 let opNewValue = 0;
26245 let addrMode = BaseImmOffset;
26246 let accessSize = WordAccess;
26247 let AsmVariantName = "NonParsable";
26248 let mayLoad = 1;
26249 let DecoderNamespace = "SUBINSN_L1";
26251 def SL1_loadrub_io : HInst<
26252 (outs GeneralSubRegs:$Rd16),
26253 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26254 "$Rd16 = memub($Rs16+#$Ii)",
26255 tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 {
26256 let Inst{12-12} = 0b1;
26257 let hasNewValue = 1;
26258 let opNewValue = 0;
26259 let addrMode = BaseImmOffset;
26260 let accessSize = ByteAccess;
26261 let AsmVariantName = "NonParsable";
26262 let mayLoad = 1;
26263 let DecoderNamespace = "SUBINSN_L1";
26265 def SL2_deallocframe : HInst<
26266 (outs),
26267 (ins),
26268 "deallocframe",
26269 tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 {
26270 let Inst{12-0} = 0b1111100000000;
26271 let accessSize = DoubleWordAccess;
26272 let AsmVariantName = "NonParsable";
26273 let mayLoad = 1;
26274 let Uses = [FRAMEKEY, R30];
26275 let Defs = [R29, R30, R31];
26276 let DecoderNamespace = "SUBINSN_L2";
26278 def SL2_jumpr31 : HInst<
26279 (outs),
26280 (ins),
26281 "jumpr r31",
26282 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26283 let Inst{12-0} = 0b1111111000000;
26284 let isTerminator = 1;
26285 let isIndirectBranch = 1;
26286 let AsmVariantName = "NonParsable";
26287 let cofMax1 = 1;
26288 let isReturn = 1;
26289 let Uses = [R31];
26290 let Defs = [PC];
26291 let DecoderNamespace = "SUBINSN_L2";
26293 def SL2_jumpr31_f : HInst<
26294 (outs),
26295 (ins),
26296 "if (!p0) jumpr r31",
26297 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26298 let Inst{12-0} = 0b1111111000101;
26299 let isPredicated = 1;
26300 let isPredicatedFalse = 1;
26301 let isTerminator = 1;
26302 let isIndirectBranch = 1;
26303 let AsmVariantName = "NonParsable";
26304 let cofMax1 = 1;
26305 let isReturn = 1;
26306 let Uses = [P0, R31];
26307 let Defs = [PC];
26308 let isTaken = Inst{4};
26309 let DecoderNamespace = "SUBINSN_L2";
26311 def SL2_jumpr31_fnew : HInst<
26312 (outs),
26313 (ins),
26314 "if (!p0.new) jumpr:nt r31",
26315 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26316 let Inst{12-0} = 0b1111111000111;
26317 let isPredicated = 1;
26318 let isPredicatedFalse = 1;
26319 let isTerminator = 1;
26320 let isIndirectBranch = 1;
26321 let AsmVariantName = "NonParsable";
26322 let isPredicatedNew = 1;
26323 let cofMax1 = 1;
26324 let isReturn = 1;
26325 let Uses = [P0, R31];
26326 let Defs = [PC];
26327 let isTaken = Inst{4};
26328 let DecoderNamespace = "SUBINSN_L2";
26330 def SL2_jumpr31_t : HInst<
26331 (outs),
26332 (ins),
26333 "if (p0) jumpr r31",
26334 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26335 let Inst{12-0} = 0b1111111000100;
26336 let isPredicated = 1;
26337 let isTerminator = 1;
26338 let isIndirectBranch = 1;
26339 let AsmVariantName = "NonParsable";
26340 let cofMax1 = 1;
26341 let isReturn = 1;
26342 let Uses = [P0, R31];
26343 let Defs = [PC];
26344 let isTaken = Inst{4};
26345 let DecoderNamespace = "SUBINSN_L2";
26347 def SL2_jumpr31_tnew : HInst<
26348 (outs),
26349 (ins),
26350 "if (p0.new) jumpr:nt r31",
26351 tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 {
26352 let Inst{12-0} = 0b1111111000110;
26353 let isPredicated = 1;
26354 let isTerminator = 1;
26355 let isIndirectBranch = 1;
26356 let AsmVariantName = "NonParsable";
26357 let isPredicatedNew = 1;
26358 let cofMax1 = 1;
26359 let isReturn = 1;
26360 let Uses = [P0, R31];
26361 let Defs = [PC];
26362 let isTaken = Inst{4};
26363 let DecoderNamespace = "SUBINSN_L2";
26365 def SL2_loadrb_io : HInst<
26366 (outs GeneralSubRegs:$Rd16),
26367 (ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
26368 "$Rd16 = memb($Rs16+#$Ii)",
26369 tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c {
26370 let Inst{12-11} = 0b10;
26371 let hasNewValue = 1;
26372 let opNewValue = 0;
26373 let addrMode = BaseImmOffset;
26374 let accessSize = ByteAccess;
26375 let AsmVariantName = "NonParsable";
26376 let mayLoad = 1;
26377 let DecoderNamespace = "SUBINSN_L2";
26379 def SL2_loadrd_sp : HInst<
26380 (outs GeneralDoubleLow8Regs:$Rdd8),
26381 (ins u5_3Imm:$Ii),
26382 "$Rdd8 = memd(r29+#$Ii)",
26383 tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b {
26384 let Inst{12-8} = 0b11110;
26385 let hasNewValue = 1;
26386 let opNewValue = 0;
26387 let addrMode = BaseImmOffset;
26388 let accessSize = DoubleWordAccess;
26389 let AsmVariantName = "NonParsable";
26390 let mayLoad = 1;
26391 let Uses = [R29];
26392 let DecoderNamespace = "SUBINSN_L2";
26394 def SL2_loadrh_io : HInst<
26395 (outs GeneralSubRegs:$Rd16),
26396 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26397 "$Rd16 = memh($Rs16+#$Ii)",
26398 tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26399 let Inst{12-11} = 0b00;
26400 let hasNewValue = 1;
26401 let opNewValue = 0;
26402 let addrMode = BaseImmOffset;
26403 let accessSize = HalfWordAccess;
26404 let AsmVariantName = "NonParsable";
26405 let mayLoad = 1;
26406 let DecoderNamespace = "SUBINSN_L2";
26408 def SL2_loadri_sp : HInst<
26409 (outs GeneralSubRegs:$Rd16),
26410 (ins u5_2Imm:$Ii),
26411 "$Rd16 = memw(r29+#$Ii)",
26412 tc_8a6d0d94, TypeSUBINSN>, Enc_51635c {
26413 let Inst{12-9} = 0b1110;
26414 let hasNewValue = 1;
26415 let opNewValue = 0;
26416 let addrMode = BaseImmOffset;
26417 let accessSize = WordAccess;
26418 let AsmVariantName = "NonParsable";
26419 let mayLoad = 1;
26420 let Uses = [R29];
26421 let DecoderNamespace = "SUBINSN_L2";
26423 def SL2_loadruh_io : HInst<
26424 (outs GeneralSubRegs:$Rd16),
26425 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
26426 "$Rd16 = memuh($Rs16+#$Ii)",
26427 tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 {
26428 let Inst{12-11} = 0b01;
26429 let hasNewValue = 1;
26430 let opNewValue = 0;
26431 let addrMode = BaseImmOffset;
26432 let accessSize = HalfWordAccess;
26433 let AsmVariantName = "NonParsable";
26434 let mayLoad = 1;
26435 let DecoderNamespace = "SUBINSN_L2";
26437 def SL2_return : HInst<
26438 (outs),
26439 (ins),
26440 "dealloc_return",
26441 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26442 let Inst{12-0} = 0b1111101000000;
26443 let isTerminator = 1;
26444 let isIndirectBranch = 1;
26445 let accessSize = DoubleWordAccess;
26446 let AsmVariantName = "NonParsable";
26447 let mayLoad = 1;
26448 let cofMax1 = 1;
26449 let isRestrictNoSlot1Store = 1;
26450 let isReturn = 1;
26451 let Uses = [FRAMEKEY, R30];
26452 let Defs = [PC, R29, R30, R31];
26453 let DecoderNamespace = "SUBINSN_L2";
26455 def SL2_return_f : HInst<
26456 (outs),
26457 (ins),
26458 "if (!p0) dealloc_return",
26459 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26460 let Inst{12-0} = 0b1111101000101;
26461 let isPredicated = 1;
26462 let isPredicatedFalse = 1;
26463 let isTerminator = 1;
26464 let isIndirectBranch = 1;
26465 let accessSize = DoubleWordAccess;
26466 let AsmVariantName = "NonParsable";
26467 let mayLoad = 1;
26468 let cofMax1 = 1;
26469 let isRestrictNoSlot1Store = 1;
26470 let isReturn = 1;
26471 let Uses = [FRAMEKEY, P0, R30];
26472 let Defs = [PC, R29, R30, R31];
26473 let isTaken = Inst{4};
26474 let DecoderNamespace = "SUBINSN_L2";
26476 def SL2_return_fnew : HInst<
26477 (outs),
26478 (ins),
26479 "if (!p0.new) dealloc_return:nt",
26480 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26481 let Inst{12-0} = 0b1111101000111;
26482 let isPredicated = 1;
26483 let isPredicatedFalse = 1;
26484 let isTerminator = 1;
26485 let isIndirectBranch = 1;
26486 let accessSize = DoubleWordAccess;
26487 let AsmVariantName = "NonParsable";
26488 let isPredicatedNew = 1;
26489 let mayLoad = 1;
26490 let cofMax1 = 1;
26491 let isRestrictNoSlot1Store = 1;
26492 let isReturn = 1;
26493 let Uses = [FRAMEKEY, P0, R30];
26494 let Defs = [PC, R29, R30, R31];
26495 let isTaken = Inst{4};
26496 let DecoderNamespace = "SUBINSN_L2";
26498 def SL2_return_t : HInst<
26499 (outs),
26500 (ins),
26501 "if (p0) dealloc_return",
26502 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26503 let Inst{12-0} = 0b1111101000100;
26504 let isPredicated = 1;
26505 let isTerminator = 1;
26506 let isIndirectBranch = 1;
26507 let accessSize = DoubleWordAccess;
26508 let AsmVariantName = "NonParsable";
26509 let mayLoad = 1;
26510 let cofMax1 = 1;
26511 let isRestrictNoSlot1Store = 1;
26512 let isReturn = 1;
26513 let Uses = [FRAMEKEY, P0, R30];
26514 let Defs = [PC, R29, R30, R31];
26515 let isTaken = Inst{4};
26516 let DecoderNamespace = "SUBINSN_L2";
26518 def SL2_return_tnew : HInst<
26519 (outs),
26520 (ins),
26521 "if (p0.new) dealloc_return:nt",
26522 tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 {
26523 let Inst{12-0} = 0b1111101000110;
26524 let isPredicated = 1;
26525 let isTerminator = 1;
26526 let isIndirectBranch = 1;
26527 let accessSize = DoubleWordAccess;
26528 let AsmVariantName = "NonParsable";
26529 let isPredicatedNew = 1;
26530 let mayLoad = 1;
26531 let cofMax1 = 1;
26532 let isRestrictNoSlot1Store = 1;
26533 let isReturn = 1;
26534 let Uses = [FRAMEKEY, P0, R30];
26535 let Defs = [PC, R29, R30, R31];
26536 let isTaken = Inst{4};
26537 let DecoderNamespace = "SUBINSN_L2";
26539 def SS1_storeb_io : HInst<
26540 (outs),
26541 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26542 "memb($Rs16+#$Ii) = $Rt16",
26543 tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc {
26544 let Inst{12-12} = 0b1;
26545 let addrMode = BaseImmOffset;
26546 let accessSize = ByteAccess;
26547 let AsmVariantName = "NonParsable";
26548 let mayStore = 1;
26549 let DecoderNamespace = "SUBINSN_S1";
26551 def SS1_storew_io : HInst<
26552 (outs),
26553 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26554 "memw($Rs16+#$Ii) = $Rt16",
26555 tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c {
26556 let Inst{12-12} = 0b0;
26557 let addrMode = BaseImmOffset;
26558 let accessSize = WordAccess;
26559 let AsmVariantName = "NonParsable";
26560 let mayStore = 1;
26561 let DecoderNamespace = "SUBINSN_S1";
26563 def SS2_allocframe : HInst<
26564 (outs),
26565 (ins u5_3Imm:$Ii),
26566 "allocframe(#$Ii)",
26567 tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca {
26568 let Inst{3-0} = 0b0000;
26569 let Inst{12-9} = 0b1110;
26570 let addrMode = BaseImmOffset;
26571 let accessSize = DoubleWordAccess;
26572 let AsmVariantName = "NonParsable";
26573 let mayStore = 1;
26574 let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31];
26575 let Defs = [R29, R30];
26576 let DecoderNamespace = "SUBINSN_S2";
26578 def SS2_storebi0 : HInst<
26579 (outs),
26580 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26581 "memb($Rs16+#$Ii) = #0",
26582 tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26583 let Inst{12-8} = 0b10010;
26584 let addrMode = BaseImmOffset;
26585 let accessSize = ByteAccess;
26586 let AsmVariantName = "NonParsable";
26587 let mayStore = 1;
26588 let DecoderNamespace = "SUBINSN_S2";
26590 def SS2_storebi1 : HInst<
26591 (outs),
26592 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26593 "memb($Rs16+#$Ii) = #1",
26594 tc_44d5a428, TypeSUBINSN>, Enc_84d359 {
26595 let Inst{12-8} = 0b10011;
26596 let addrMode = BaseImmOffset;
26597 let accessSize = ByteAccess;
26598 let AsmVariantName = "NonParsable";
26599 let mayStore = 1;
26600 let DecoderNamespace = "SUBINSN_S2";
26602 def SS2_stored_sp : HInst<
26603 (outs),
26604 (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26605 "memd(r29+#$Ii) = $Rtt8",
26606 tc_0655b949, TypeSUBINSN>, Enc_b8309d {
26607 let Inst{12-9} = 0b0101;
26608 let addrMode = BaseImmOffset;
26609 let accessSize = DoubleWordAccess;
26610 let AsmVariantName = "NonParsable";
26611 let mayStore = 1;
26612 let Uses = [R29];
26613 let DecoderNamespace = "SUBINSN_S2";
26615 def SS2_storeh_io : HInst<
26616 (outs),
26617 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26618 "memh($Rs16+#$Ii) = $Rt16",
26619 tc_ae5babd7, TypeSUBINSN>, Enc_625deb {
26620 let Inst{12-11} = 0b00;
26621 let addrMode = BaseImmOffset;
26622 let accessSize = HalfWordAccess;
26623 let AsmVariantName = "NonParsable";
26624 let mayStore = 1;
26625 let DecoderNamespace = "SUBINSN_S2";
26627 def SS2_storew_sp : HInst<
26628 (outs),
26629 (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26630 "memw(r29+#$Ii) = $Rt16",
26631 tc_0655b949, TypeSUBINSN>, Enc_87c142 {
26632 let Inst{12-9} = 0b0100;
26633 let addrMode = BaseImmOffset;
26634 let accessSize = WordAccess;
26635 let AsmVariantName = "NonParsable";
26636 let mayStore = 1;
26637 let Uses = [R29];
26638 let DecoderNamespace = "SUBINSN_S2";
26640 def SS2_storewi0 : HInst<
26641 (outs),
26642 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26643 "memw($Rs16+#$Ii) = #0",
26644 tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26645 let Inst{12-8} = 0b10000;
26646 let addrMode = BaseImmOffset;
26647 let accessSize = WordAccess;
26648 let AsmVariantName = "NonParsable";
26649 let mayStore = 1;
26650 let DecoderNamespace = "SUBINSN_S2";
26652 def SS2_storewi1 : HInst<
26653 (outs),
26654 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26655 "memw($Rs16+#$Ii) = #1",
26656 tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c {
26657 let Inst{12-8} = 0b10001;
26658 let addrMode = BaseImmOffset;
26659 let accessSize = WordAccess;
26660 let AsmVariantName = "NonParsable";
26661 let mayStore = 1;
26662 let DecoderNamespace = "SUBINSN_S2";
26664 def V6_MAP_equb : HInst<
26665 (outs HvxQR:$Qd4),
26666 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26667 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26668 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26669 let hasNewValue = 1;
26670 let opNewValue = 0;
26671 let isCVI = 1;
26672 let isPseudo = 1;
26673 let isCodeGenOnly = 1;
26674 let DecoderNamespace = "EXT_mmvec";
26676 def V6_MAP_equb_and : HInst<
26677 (outs HvxQR:$Qx4),
26678 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26679 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26680 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26681 let isCVI = 1;
26682 let isPseudo = 1;
26683 let isCodeGenOnly = 1;
26684 let DecoderNamespace = "EXT_mmvec";
26685 let Constraints = "$Qx4 = $Qx4in";
26687 def V6_MAP_equb_ior : HInst<
26688 (outs HvxQR:$Qx4),
26689 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26690 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26691 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26692 let isAccumulator = 1;
26693 let isCVI = 1;
26694 let isPseudo = 1;
26695 let isCodeGenOnly = 1;
26696 let DecoderNamespace = "EXT_mmvec";
26697 let Constraints = "$Qx4 = $Qx4in";
26699 def V6_MAP_equb_xor : HInst<
26700 (outs HvxQR:$Qx4),
26701 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26702 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26703 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26704 let isCVI = 1;
26705 let isPseudo = 1;
26706 let isCodeGenOnly = 1;
26707 let DecoderNamespace = "EXT_mmvec";
26708 let Constraints = "$Qx4 = $Qx4in";
26710 def V6_MAP_equh : HInst<
26711 (outs HvxQR:$Qd4),
26712 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26713 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26714 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26715 let hasNewValue = 1;
26716 let opNewValue = 0;
26717 let isCVI = 1;
26718 let isPseudo = 1;
26719 let isCodeGenOnly = 1;
26720 let DecoderNamespace = "EXT_mmvec";
26722 def V6_MAP_equh_and : HInst<
26723 (outs HvxQR:$Qx4),
26724 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26725 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26726 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26727 let isCVI = 1;
26728 let isPseudo = 1;
26729 let isCodeGenOnly = 1;
26730 let DecoderNamespace = "EXT_mmvec";
26731 let Constraints = "$Qx4 = $Qx4in";
26733 def V6_MAP_equh_ior : HInst<
26734 (outs HvxQR:$Qx4),
26735 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26736 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26737 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26738 let isAccumulator = 1;
26739 let isCVI = 1;
26740 let isPseudo = 1;
26741 let isCodeGenOnly = 1;
26742 let DecoderNamespace = "EXT_mmvec";
26743 let Constraints = "$Qx4 = $Qx4in";
26745 def V6_MAP_equh_xor : HInst<
26746 (outs HvxQR:$Qx4),
26747 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26748 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26749 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26750 let isCVI = 1;
26751 let isPseudo = 1;
26752 let isCodeGenOnly = 1;
26753 let DecoderNamespace = "EXT_mmvec";
26754 let Constraints = "$Qx4 = $Qx4in";
26756 def V6_MAP_equw : HInst<
26757 (outs HvxQR:$Qd4),
26758 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26759 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26760 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26761 let hasNewValue = 1;
26762 let opNewValue = 0;
26763 let isCVI = 1;
26764 let isPseudo = 1;
26765 let isCodeGenOnly = 1;
26766 let DecoderNamespace = "EXT_mmvec";
26768 def V6_MAP_equw_and : HInst<
26769 (outs HvxQR:$Qx4),
26770 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26771 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26772 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26773 let isCVI = 1;
26774 let isPseudo = 1;
26775 let isCodeGenOnly = 1;
26776 let DecoderNamespace = "EXT_mmvec";
26777 let Constraints = "$Qx4 = $Qx4in";
26779 def V6_MAP_equw_ior : HInst<
26780 (outs HvxQR:$Qx4),
26781 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26782 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26783 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26784 let isAccumulator = 1;
26785 let isCVI = 1;
26786 let isPseudo = 1;
26787 let isCodeGenOnly = 1;
26788 let DecoderNamespace = "EXT_mmvec";
26789 let Constraints = "$Qx4 = $Qx4in";
26791 def V6_MAP_equw_xor : HInst<
26792 (outs HvxQR:$Qx4),
26793 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26794 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26795 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26796 let isCVI = 1;
26797 let isPseudo = 1;
26798 let isCodeGenOnly = 1;
26799 let DecoderNamespace = "EXT_mmvec";
26800 let Constraints = "$Qx4 = $Qx4in";
26802 def V6_dbl_ld0 : HInst<
26803 (outs HvxWR:$Vdd32),
26804 (ins IntRegs:$Rt32),
26805 "$Vdd32 = vmem($Rt32)",
26806 PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> {
26807 let hasNewValue = 1;
26808 let opNewValue = 0;
26809 let isCVLoad = 1;
26810 let isCVI = 1;
26811 let mayLoad = 1;
26812 let isPseudo = 1;
26813 let isCodeGenOnly = 1;
26814 let DecoderNamespace = "EXT_mmvec";
26816 def V6_dbl_st0 : HInst<
26817 (outs),
26818 (ins IntRegs:$Rt32, HvxWR:$Vss32),
26819 "vmem($Rt32) = $Vss32",
26820 PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> {
26821 let isCVI = 1;
26822 let mayStore = 1;
26823 let isPseudo = 1;
26824 let isCodeGenOnly = 1;
26825 let DecoderNamespace = "EXT_mmvec";
26827 def V6_extractw : HInst<
26828 (outs IntRegs:$Rd32),
26829 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26830 "$Rd32 = vextract($Vu32,$Rs32)",
26831 tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26832 let Inst{7-5} = 0b001;
26833 let Inst{13-13} = 0b0;
26834 let Inst{31-21} = 0b10010010000;
26835 let hasNewValue = 1;
26836 let opNewValue = 0;
26837 let isCVI = 1;
26838 let isHVXALU = 1;
26839 let isHVXALU2SRC = 1;
26840 let isSolo = 1;
26841 let mayLoad = 1;
26842 let DecoderNamespace = "EXT_mmvec";
26844 def V6_extractw_alt : HInst<
26845 (outs IntRegs:$Rd32),
26846 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26847 "$Rd32.w = vextract($Vu32,$Rs32)",
26848 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26849 let hasNewValue = 1;
26850 let opNewValue = 0;
26851 let isCVI = 1;
26852 let isPseudo = 1;
26853 let isCodeGenOnly = 1;
26854 let DecoderNamespace = "EXT_mmvec";
26856 def V6_hi : HInst<
26857 (outs HvxVR:$Vd32),
26858 (ins HvxWR:$Vss32),
26859 "$Vd32 = hi($Vss32)",
26860 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26861 let hasNewValue = 1;
26862 let opNewValue = 0;
26863 let isCVI = 1;
26864 let isPseudo = 1;
26865 let DecoderNamespace = "EXT_mmvec";
26867 def V6_ld0 : HInst<
26868 (outs HvxVR:$Vd32),
26869 (ins IntRegs:$Rt32),
26870 "$Vd32 = vmem($Rt32)",
26871 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26872 let hasNewValue = 1;
26873 let opNewValue = 0;
26874 let isCVI = 1;
26875 let isPseudo = 1;
26876 let isCodeGenOnly = 1;
26877 let DecoderNamespace = "EXT_mmvec";
26879 def V6_ldcnp0 : HInst<
26880 (outs HvxVR:$Vd32),
26881 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26882 "if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26883 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26884 let hasNewValue = 1;
26885 let opNewValue = 0;
26886 let isCVI = 1;
26887 let isPseudo = 1;
26888 let isCodeGenOnly = 1;
26889 let DecoderNamespace = "EXT_mmvec";
26891 def V6_ldcnpnt0 : HInst<
26892 (outs HvxVR:$Vd32),
26893 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26894 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26895 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26896 let hasNewValue = 1;
26897 let opNewValue = 0;
26898 let isCVI = 1;
26899 let isPseudo = 1;
26900 let isCodeGenOnly = 1;
26901 let DecoderNamespace = "EXT_mmvec";
26903 def V6_ldcp0 : HInst<
26904 (outs HvxVR:$Vd32),
26905 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26906 "if ($Pv4) $Vd32.cur = vmem($Rt32)",
26907 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26908 let hasNewValue = 1;
26909 let opNewValue = 0;
26910 let isCVI = 1;
26911 let isPseudo = 1;
26912 let isCodeGenOnly = 1;
26913 let DecoderNamespace = "EXT_mmvec";
26915 def V6_ldcpnt0 : HInst<
26916 (outs HvxVR:$Vd32),
26917 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26918 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26919 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26920 let hasNewValue = 1;
26921 let opNewValue = 0;
26922 let isCVI = 1;
26923 let isPseudo = 1;
26924 let isCodeGenOnly = 1;
26925 let DecoderNamespace = "EXT_mmvec";
26927 def V6_ldnp0 : HInst<
26928 (outs HvxVR:$Vd32),
26929 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26930 "if (!$Pv4) $Vd32 = vmem($Rt32)",
26931 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26932 let hasNewValue = 1;
26933 let opNewValue = 0;
26934 let isCVI = 1;
26935 let isPseudo = 1;
26936 let isCodeGenOnly = 1;
26937 let DecoderNamespace = "EXT_mmvec";
26939 def V6_ldnpnt0 : HInst<
26940 (outs HvxVR:$Vd32),
26941 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26942 "if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26943 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26944 let hasNewValue = 1;
26945 let opNewValue = 0;
26946 let isCVI = 1;
26947 let isPseudo = 1;
26948 let isCodeGenOnly = 1;
26949 let DecoderNamespace = "EXT_mmvec";
26951 def V6_ldnt0 : HInst<
26952 (outs HvxVR:$Vd32),
26953 (ins IntRegs:$Rt32),
26954 "$Vd32 = vmem($Rt32):nt",
26955 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26956 let hasNewValue = 1;
26957 let opNewValue = 0;
26958 let isCVI = 1;
26959 let isPseudo = 1;
26960 let isCodeGenOnly = 1;
26961 let DecoderNamespace = "EXT_mmvec";
26963 def V6_ldp0 : HInst<
26964 (outs HvxVR:$Vd32),
26965 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26966 "if ($Pv4) $Vd32 = vmem($Rt32)",
26967 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26968 let hasNewValue = 1;
26969 let opNewValue = 0;
26970 let isCVI = 1;
26971 let isPseudo = 1;
26972 let isCodeGenOnly = 1;
26973 let DecoderNamespace = "EXT_mmvec";
26975 def V6_ldpnt0 : HInst<
26976 (outs HvxVR:$Vd32),
26977 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26978 "if ($Pv4) $Vd32 = vmem($Rt32):nt",
26979 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26980 let hasNewValue = 1;
26981 let opNewValue = 0;
26982 let isCVI = 1;
26983 let isPseudo = 1;
26984 let isCodeGenOnly = 1;
26985 let DecoderNamespace = "EXT_mmvec";
26987 def V6_ldtnp0 : HInst<
26988 (outs HvxVR:$Vd32),
26989 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26990 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26991 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26992 let hasNewValue = 1;
26993 let opNewValue = 0;
26994 let isCVI = 1;
26995 let isPseudo = 1;
26996 let isCodeGenOnly = 1;
26997 let DecoderNamespace = "EXT_mmvec";
26999 def V6_ldtnpnt0 : HInst<
27000 (outs HvxVR:$Vd32),
27001 (ins PredRegs:$Pv4, IntRegs:$Rt32),
27002 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
27003 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
27004 let hasNewValue = 1;
27005 let opNewValue = 0;
27006 let isCVI = 1;
27007 let isPseudo = 1;
27008 let isCodeGenOnly = 1;
27009 let DecoderNamespace = "EXT_mmvec";
27011 def V6_ldtp0 : HInst<
27012 (outs HvxVR:$Vd32),
27013 (ins PredRegs:$Pv4, IntRegs:$Rt32),
27014 "if ($Pv4) $Vd32.tmp = vmem($Rt32)",
27015 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
27016 let hasNewValue = 1;
27017 let opNewValue = 0;
27018 let isCVI = 1;
27019 let isPseudo = 1;
27020 let isCodeGenOnly = 1;
27021 let DecoderNamespace = "EXT_mmvec";
27023 def V6_ldtpnt0 : HInst<
27024 (outs HvxVR:$Vd32),
27025 (ins PredRegs:$Pv4, IntRegs:$Rt32),
27026 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
27027 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
27028 let hasNewValue = 1;
27029 let opNewValue = 0;
27030 let isCVI = 1;
27031 let isPseudo = 1;
27032 let isCodeGenOnly = 1;
27033 let DecoderNamespace = "EXT_mmvec";
27035 def V6_ldu0 : HInst<
27036 (outs HvxVR:$Vd32),
27037 (ins IntRegs:$Rt32),
27038 "$Vd32 = vmemu($Rt32)",
27039 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
27040 let hasNewValue = 1;
27041 let opNewValue = 0;
27042 let isCVI = 1;
27043 let isPseudo = 1;
27044 let isCodeGenOnly = 1;
27045 let DecoderNamespace = "EXT_mmvec";
27047 def V6_lo : HInst<
27048 (outs HvxVR:$Vd32),
27049 (ins HvxWR:$Vss32),
27050 "$Vd32 = lo($Vss32)",
27051 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
27052 let hasNewValue = 1;
27053 let opNewValue = 0;
27054 let isCVI = 1;
27055 let isPseudo = 1;
27056 let DecoderNamespace = "EXT_mmvec";
27058 def V6_lvsplatb : HInst<
27059 (outs HvxVR:$Vd32),
27060 (ins IntRegs:$Rt32),
27061 "$Vd32.b = vsplat($Rt32)",
27062 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
27063 let Inst{13-5} = 0b000000010;
27064 let Inst{31-21} = 0b00011001110;
27065 let hasNewValue = 1;
27066 let opNewValue = 0;
27067 let isCVI = 1;
27068 let DecoderNamespace = "EXT_mmvec";
27070 def V6_lvsplath : HInst<
27071 (outs HvxVR:$Vd32),
27072 (ins IntRegs:$Rt32),
27073 "$Vd32.h = vsplat($Rt32)",
27074 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> {
27075 let Inst{13-5} = 0b000000001;
27076 let Inst{31-21} = 0b00011001110;
27077 let hasNewValue = 1;
27078 let opNewValue = 0;
27079 let isCVI = 1;
27080 let DecoderNamespace = "EXT_mmvec";
27082 def V6_lvsplatw : HInst<
27083 (outs HvxVR:$Vd32),
27084 (ins IntRegs:$Rt32),
27085 "$Vd32 = vsplat($Rt32)",
27086 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
27087 let Inst{13-5} = 0b000000001;
27088 let Inst{31-21} = 0b00011001101;
27089 let hasNewValue = 1;
27090 let opNewValue = 0;
27091 let isCVI = 1;
27092 let DecoderNamespace = "EXT_mmvec";
27094 def V6_pred_and : HInst<
27095 (outs HvxQR:$Qd4),
27096 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27097 "$Qd4 = and($Qs4,$Qt4)",
27098 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27099 let Inst{7-2} = 0b000000;
27100 let Inst{13-10} = 0b0000;
27101 let Inst{21-16} = 0b000011;
27102 let Inst{31-24} = 0b00011110;
27103 let hasNewValue = 1;
27104 let opNewValue = 0;
27105 let isCVI = 1;
27106 let DecoderNamespace = "EXT_mmvec";
27108 def V6_pred_and_n : HInst<
27109 (outs HvxQR:$Qd4),
27110 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27111 "$Qd4 = and($Qs4,!$Qt4)",
27112 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27113 let Inst{7-2} = 0b000101;
27114 let Inst{13-10} = 0b0000;
27115 let Inst{21-16} = 0b000011;
27116 let Inst{31-24} = 0b00011110;
27117 let hasNewValue = 1;
27118 let opNewValue = 0;
27119 let isCVI = 1;
27120 let DecoderNamespace = "EXT_mmvec";
27122 def V6_pred_not : HInst<
27123 (outs HvxQR:$Qd4),
27124 (ins HvxQR:$Qs4),
27125 "$Qd4 = not($Qs4)",
27126 tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
27127 let Inst{7-2} = 0b000010;
27128 let Inst{13-10} = 0b0000;
27129 let Inst{31-16} = 0b0001111000000011;
27130 let hasNewValue = 1;
27131 let opNewValue = 0;
27132 let isCVI = 1;
27133 let isHVXALU = 1;
27134 let isHVXALU2SRC = 1;
27135 let DecoderNamespace = "EXT_mmvec";
27137 def V6_pred_or : HInst<
27138 (outs HvxQR:$Qd4),
27139 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27140 "$Qd4 = or($Qs4,$Qt4)",
27141 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27142 let Inst{7-2} = 0b000001;
27143 let Inst{13-10} = 0b0000;
27144 let Inst{21-16} = 0b000011;
27145 let Inst{31-24} = 0b00011110;
27146 let hasNewValue = 1;
27147 let opNewValue = 0;
27148 let isCVI = 1;
27149 let DecoderNamespace = "EXT_mmvec";
27151 def V6_pred_or_n : HInst<
27152 (outs HvxQR:$Qd4),
27153 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27154 "$Qd4 = or($Qs4,!$Qt4)",
27155 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27156 let Inst{7-2} = 0b000100;
27157 let Inst{13-10} = 0b0000;
27158 let Inst{21-16} = 0b000011;
27159 let Inst{31-24} = 0b00011110;
27160 let hasNewValue = 1;
27161 let opNewValue = 0;
27162 let isCVI = 1;
27163 let DecoderNamespace = "EXT_mmvec";
27165 def V6_pred_scalar2 : HInst<
27166 (outs HvxQR:$Qd4),
27167 (ins IntRegs:$Rt32),
27168 "$Qd4 = vsetq($Rt32)",
27169 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
27170 let Inst{13-2} = 0b000000010001;
27171 let Inst{31-21} = 0b00011001101;
27172 let hasNewValue = 1;
27173 let opNewValue = 0;
27174 let isCVI = 1;
27175 let DecoderNamespace = "EXT_mmvec";
27177 def V6_pred_scalar2v2 : HInst<
27178 (outs HvxQR:$Qd4),
27179 (ins IntRegs:$Rt32),
27180 "$Qd4 = vsetq2($Rt32)",
27181 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
27182 let Inst{13-2} = 0b000000010011;
27183 let Inst{31-21} = 0b00011001101;
27184 let hasNewValue = 1;
27185 let opNewValue = 0;
27186 let isCVI = 1;
27187 let DecoderNamespace = "EXT_mmvec";
27189 def V6_pred_xor : HInst<
27190 (outs HvxQR:$Qd4),
27191 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27192 "$Qd4 = xor($Qs4,$Qt4)",
27193 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
27194 let Inst{7-2} = 0b000011;
27195 let Inst{13-10} = 0b0000;
27196 let Inst{21-16} = 0b000011;
27197 let Inst{31-24} = 0b00011110;
27198 let hasNewValue = 1;
27199 let opNewValue = 0;
27200 let isCVI = 1;
27201 let DecoderNamespace = "EXT_mmvec";
27203 def V6_shuffeqh : HInst<
27204 (outs HvxQR:$Qd4),
27205 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27206 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
27207 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27208 let Inst{7-2} = 0b000110;
27209 let Inst{13-10} = 0b0000;
27210 let Inst{21-16} = 0b000011;
27211 let Inst{31-24} = 0b00011110;
27212 let hasNewValue = 1;
27213 let opNewValue = 0;
27214 let isCVI = 1;
27215 let DecoderNamespace = "EXT_mmvec";
27217 def V6_shuffeqw : HInst<
27218 (outs HvxQR:$Qd4),
27219 (ins HvxQR:$Qs4, HvxQR:$Qt4),
27220 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
27221 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
27222 let Inst{7-2} = 0b000111;
27223 let Inst{13-10} = 0b0000;
27224 let Inst{21-16} = 0b000011;
27225 let Inst{31-24} = 0b00011110;
27226 let hasNewValue = 1;
27227 let opNewValue = 0;
27228 let isCVI = 1;
27229 let DecoderNamespace = "EXT_mmvec";
27231 def V6_st0 : HInst<
27232 (outs),
27233 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27234 "vmem($Rt32) = $Vs32",
27235 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27236 let isCVI = 1;
27237 let isPseudo = 1;
27238 let isCodeGenOnly = 1;
27239 let DecoderNamespace = "EXT_mmvec";
27241 def V6_stn0 : HInst<
27242 (outs),
27243 (ins IntRegs:$Rt32, HvxVR:$Os8),
27244 "vmem($Rt32) = $Os8.new",
27245 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27246 let isCVI = 1;
27247 let isPseudo = 1;
27248 let isCodeGenOnly = 1;
27249 let DecoderNamespace = "EXT_mmvec";
27250 let opNewValue = 1;
27252 def V6_stnnt0 : HInst<
27253 (outs),
27254 (ins IntRegs:$Rt32, HvxVR:$Os8),
27255 "vmem($Rt32):nt = $Os8.new",
27256 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27257 let isCVI = 1;
27258 let isPseudo = 1;
27259 let isCodeGenOnly = 1;
27260 let DecoderNamespace = "EXT_mmvec";
27261 let opNewValue = 1;
27263 def V6_stnp0 : HInst<
27264 (outs),
27265 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27266 "if (!$Pv4) vmem($Rt32) = $Vs32",
27267 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27268 let isCVI = 1;
27269 let isPseudo = 1;
27270 let isCodeGenOnly = 1;
27271 let DecoderNamespace = "EXT_mmvec";
27273 def V6_stnpnt0 : HInst<
27274 (outs),
27275 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27276 "if (!$Pv4) vmem($Rt32):nt = $Vs32",
27277 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27278 let isCVI = 1;
27279 let isPseudo = 1;
27280 let isCodeGenOnly = 1;
27281 let DecoderNamespace = "EXT_mmvec";
27283 def V6_stnq0 : HInst<
27284 (outs),
27285 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27286 "if (!$Qv4) vmem($Rt32) = $Vs32",
27287 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27288 let isCVI = 1;
27289 let isPseudo = 1;
27290 let isCodeGenOnly = 1;
27291 let DecoderNamespace = "EXT_mmvec";
27293 def V6_stnqnt0 : HInst<
27294 (outs),
27295 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27296 "if (!$Qv4) vmem($Rt32):nt = $Vs32",
27297 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27298 let isCVI = 1;
27299 let isPseudo = 1;
27300 let isCodeGenOnly = 1;
27301 let DecoderNamespace = "EXT_mmvec";
27303 def V6_stnt0 : HInst<
27304 (outs),
27305 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27306 "vmem($Rt32):nt = $Vs32",
27307 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27308 let isCVI = 1;
27309 let isPseudo = 1;
27310 let isCodeGenOnly = 1;
27311 let DecoderNamespace = "EXT_mmvec";
27313 def V6_stp0 : HInst<
27314 (outs),
27315 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27316 "if ($Pv4) vmem($Rt32) = $Vs32",
27317 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27318 let isCVI = 1;
27319 let isPseudo = 1;
27320 let isCodeGenOnly = 1;
27321 let DecoderNamespace = "EXT_mmvec";
27323 def V6_stpnt0 : HInst<
27324 (outs),
27325 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27326 "if ($Pv4) vmem($Rt32):nt = $Vs32",
27327 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27328 let isCVI = 1;
27329 let isPseudo = 1;
27330 let isCodeGenOnly = 1;
27331 let DecoderNamespace = "EXT_mmvec";
27333 def V6_stq0 : HInst<
27334 (outs),
27335 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27336 "if ($Qv4) vmem($Rt32) = $Vs32",
27337 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27338 let isCVI = 1;
27339 let isPseudo = 1;
27340 let isCodeGenOnly = 1;
27341 let DecoderNamespace = "EXT_mmvec";
27343 def V6_stqnt0 : HInst<
27344 (outs),
27345 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
27346 "if ($Qv4) vmem($Rt32):nt = $Vs32",
27347 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27348 let isCVI = 1;
27349 let isPseudo = 1;
27350 let isCodeGenOnly = 1;
27351 let DecoderNamespace = "EXT_mmvec";
27353 def V6_stu0 : HInst<
27354 (outs),
27355 (ins IntRegs:$Rt32, HvxVR:$Vs32),
27356 "vmemu($Rt32) = $Vs32",
27357 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27358 let isCVI = 1;
27359 let isPseudo = 1;
27360 let isCodeGenOnly = 1;
27361 let DecoderNamespace = "EXT_mmvec";
27363 def V6_stunp0 : HInst<
27364 (outs),
27365 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27366 "if (!$Pv4) vmemu($Rt32) = $Vs32",
27367 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27368 let isCVI = 1;
27369 let isPseudo = 1;
27370 let isCodeGenOnly = 1;
27371 let DecoderNamespace = "EXT_mmvec";
27373 def V6_stup0 : HInst<
27374 (outs),
27375 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
27376 "if ($Pv4) vmemu($Rt32) = $Vs32",
27377 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
27378 let isCVI = 1;
27379 let isPseudo = 1;
27380 let isCodeGenOnly = 1;
27381 let DecoderNamespace = "EXT_mmvec";
27383 def V6_v10mpyubs10 : HInst<
27384 (outs HvxWR:$Vdd32),
27385 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27386 "$Vdd32.w = v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27387 tc_f175e046, TypeCVI_VX>, Requires<[UseHVXV69]> {
27388 let hasNewValue = 1;
27389 let opNewValue = 0;
27390 let isCVI = 1;
27391 let isPseudo = 1;
27392 let DecoderNamespace = "EXT_mmvec";
27394 def V6_v10mpyubs10_vxx : HInst<
27395 (outs HvxWR:$Vxx32),
27396 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii),
27397 "$Vxx32.w += v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)",
27398 tc_4942646a, TypeCVI_VX>, Requires<[UseHVXV69]> {
27399 let hasNewValue = 1;
27400 let opNewValue = 0;
27401 let isAccumulator = 1;
27402 let isCVI = 1;
27403 let isPseudo = 1;
27404 let DecoderNamespace = "EXT_mmvec";
27405 let Constraints = "$Vxx32 = $Vxx32in";
27407 def V6_v6mpyhubs10 : HInst<
27408 (outs HvxWR:$Vdd32),
27409 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27410 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27411 tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27412 let Inst{7-7} = 0b1;
27413 let Inst{13-13} = 0b1;
27414 let Inst{31-21} = 0b00011111010;
27415 let hasNewValue = 1;
27416 let opNewValue = 0;
27417 let isCVI = 1;
27418 let DecoderNamespace = "EXT_mmvec";
27420 def V6_v6mpyhubs10_alt : HInst<
27421 (outs HvxWR:$Vdd32),
27422 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27423 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h",
27424 PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27425 let hasNewValue = 1;
27426 let opNewValue = 0;
27427 let isCVI = 1;
27428 let isPseudo = 1;
27429 let isCodeGenOnly = 1;
27430 let DecoderNamespace = "EXT_mmvec";
27432 def V6_v6mpyhubs10_vxx : HInst<
27433 (outs HvxWR:$Vxx32),
27434 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27435 "$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h",
27436 tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27437 let Inst{7-7} = 0b1;
27438 let Inst{13-13} = 0b1;
27439 let Inst{31-21} = 0b00011111001;
27440 let hasNewValue = 1;
27441 let opNewValue = 0;
27442 let isAccumulator = 1;
27443 let isCVI = 1;
27444 let DecoderNamespace = "EXT_mmvec";
27445 let Constraints = "$Vxx32 = $Vxx32in";
27447 def V6_v6mpyvubs10 : HInst<
27448 (outs HvxWR:$Vdd32),
27449 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27450 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27451 tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> {
27452 let Inst{7-7} = 0b0;
27453 let Inst{13-13} = 0b1;
27454 let Inst{31-21} = 0b00011111010;
27455 let hasNewValue = 1;
27456 let opNewValue = 0;
27457 let isCVI = 1;
27458 let DecoderNamespace = "EXT_mmvec";
27460 def V6_v6mpyvubs10_alt : HInst<
27461 (outs HvxWR:$Vdd32),
27462 (ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27463 "$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v",
27464 PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> {
27465 let hasNewValue = 1;
27466 let opNewValue = 0;
27467 let isCVI = 1;
27468 let isPseudo = 1;
27469 let isCodeGenOnly = 1;
27470 let DecoderNamespace = "EXT_mmvec";
27472 def V6_v6mpyvubs10_vxx : HInst<
27473 (outs HvxWR:$Vxx32),
27474 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii),
27475 "$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v",
27476 tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> {
27477 let Inst{7-7} = 0b0;
27478 let Inst{13-13} = 0b1;
27479 let Inst{31-21} = 0b00011111001;
27480 let hasNewValue = 1;
27481 let opNewValue = 0;
27482 let isAccumulator = 1;
27483 let isCVI = 1;
27484 let DecoderNamespace = "EXT_mmvec";
27485 let Constraints = "$Vxx32 = $Vxx32in";
27487 def V6_vL32Ub_ai : HInst<
27488 (outs HvxVR:$Vd32),
27489 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27490 "$Vd32 = vmemu($Rt32+#$Ii)",
27491 tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]>, PostInc_BaseImm {
27492 let Inst{7-5} = 0b111;
27493 let Inst{12-11} = 0b00;
27494 let Inst{31-21} = 0b00101000000;
27495 let hasNewValue = 1;
27496 let opNewValue = 0;
27497 let addrMode = BaseImmOffset;
27498 let accessSize = HVXVectorAccess;
27499 let isCVLoad = 1;
27500 let isCVI = 1;
27501 let mayLoad = 1;
27502 let isRestrictNoSlot1Store = 1;
27503 let BaseOpcode = "V6_vL32Ub_ai";
27504 let CextOpcode = "V6_vL32Ub";
27505 let DecoderNamespace = "EXT_mmvec";
27507 def V6_vL32Ub_pi : HInst<
27508 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27509 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27510 "$Vd32 = vmemu($Rx32++#$Ii)",
27511 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]>, PostInc_BaseImm {
27512 let Inst{7-5} = 0b111;
27513 let Inst{13-11} = 0b000;
27514 let Inst{31-21} = 0b00101001000;
27515 let hasNewValue = 1;
27516 let opNewValue = 0;
27517 let addrMode = PostInc;
27518 let accessSize = HVXVectorAccess;
27519 let isCVLoad = 1;
27520 let isCVI = 1;
27521 let mayLoad = 1;
27522 let isRestrictNoSlot1Store = 1;
27523 let BaseOpcode = "V6_vL32b_pi";
27524 let CextOpcode = "V6_vL32Ub";
27525 let DecoderNamespace = "EXT_mmvec";
27526 let Constraints = "$Rx32 = $Rx32in";
27528 def V6_vL32Ub_ppu : HInst<
27529 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27530 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27531 "$Vd32 = vmemu($Rx32++$Mu2)",
27532 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
27533 let Inst{12-5} = 0b00000111;
27534 let Inst{31-21} = 0b00101011000;
27535 let hasNewValue = 1;
27536 let opNewValue = 0;
27537 let addrMode = PostInc;
27538 let accessSize = HVXVectorAccess;
27539 let isCVLoad = 1;
27540 let isCVI = 1;
27541 let mayLoad = 1;
27542 let isRestrictNoSlot1Store = 1;
27543 let DecoderNamespace = "EXT_mmvec";
27544 let Constraints = "$Rx32 = $Rx32in";
27546 def V6_vL32b_ai : HInst<
27547 (outs HvxVR:$Vd32),
27548 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27549 "$Vd32 = vmem($Rt32+#$Ii)",
27550 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27551 let Inst{7-5} = 0b000;
27552 let Inst{12-11} = 0b00;
27553 let Inst{31-21} = 0b00101000000;
27554 let hasNewValue = 1;
27555 let opNewValue = 0;
27556 let addrMode = BaseImmOffset;
27557 let accessSize = HVXVectorAccess;
27558 let isCVLoad = 1;
27559 let isCVI = 1;
27560 let isHVXALU = 1;
27561 let mayLoad = 1;
27562 let isRestrictNoSlot1Store = 1;
27563 let BaseOpcode = "V6_vL32b_ai";
27564 let CextOpcode = "V6_vL32b";
27565 let isCVLoadable = 1;
27566 let isPredicable = 1;
27567 let DecoderNamespace = "EXT_mmvec";
27569 def V6_vL32b_cur_ai : HInst<
27570 (outs HvxVR:$Vd32),
27571 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27572 "$Vd32.cur = vmem($Rt32+#$Ii)",
27573 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27574 let Inst{7-5} = 0b001;
27575 let Inst{12-11} = 0b00;
27576 let Inst{31-21} = 0b00101000000;
27577 let hasNewValue = 1;
27578 let opNewValue = 0;
27579 let addrMode = BaseImmOffset;
27580 let accessSize = HVXVectorAccess;
27581 let isCVLoad = 1;
27582 let isCVI = 1;
27583 let CVINew = 1;
27584 let isHVXALU = 1;
27585 let mayLoad = 1;
27586 let isRestrictNoSlot1Store = 1;
27587 let BaseOpcode = "V6_vL32b_cur_ai";
27588 let CextOpcode = "V6_vL32b_cur";
27589 let isPredicable = 1;
27590 let DecoderNamespace = "EXT_mmvec";
27592 def V6_vL32b_cur_npred_ai : HInst<
27593 (outs HvxVR:$Vd32),
27594 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27595 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27596 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27597 let Inst{7-5} = 0b101;
27598 let Inst{31-21} = 0b00101000100;
27599 let isPredicated = 1;
27600 let isPredicatedFalse = 1;
27601 let hasNewValue = 1;
27602 let opNewValue = 0;
27603 let addrMode = BaseImmOffset;
27604 let accessSize = HVXVectorAccess;
27605 let isCVLoad = 1;
27606 let isCVI = 1;
27607 let CVINew = 1;
27608 let isHVXALU = 1;
27609 let mayLoad = 1;
27610 let isRestrictNoSlot1Store = 1;
27611 let BaseOpcode = "V6_vL32b_cur_ai";
27612 let DecoderNamespace = "EXT_mmvec";
27614 def V6_vL32b_cur_npred_pi : HInst<
27615 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27616 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27617 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27618 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27619 let Inst{7-5} = 0b101;
27620 let Inst{13-13} = 0b0;
27621 let Inst{31-21} = 0b00101001100;
27622 let isPredicated = 1;
27623 let isPredicatedFalse = 1;
27624 let hasNewValue = 1;
27625 let opNewValue = 0;
27626 let addrMode = PostInc;
27627 let accessSize = HVXVectorAccess;
27628 let isCVLoad = 1;
27629 let isCVI = 1;
27630 let CVINew = 1;
27631 let isHVXALU = 1;
27632 let mayLoad = 1;
27633 let isRestrictNoSlot1Store = 1;
27634 let BaseOpcode = "V6_vL32b_cur_pi";
27635 let DecoderNamespace = "EXT_mmvec";
27636 let Constraints = "$Rx32 = $Rx32in";
27638 def V6_vL32b_cur_npred_ppu : HInst<
27639 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27640 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27641 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27642 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27643 let Inst{10-5} = 0b000101;
27644 let Inst{31-21} = 0b00101011100;
27645 let isPredicated = 1;
27646 let isPredicatedFalse = 1;
27647 let hasNewValue = 1;
27648 let opNewValue = 0;
27649 let addrMode = PostInc;
27650 let accessSize = HVXVectorAccess;
27651 let isCVLoad = 1;
27652 let isCVI = 1;
27653 let CVINew = 1;
27654 let isHVXALU = 1;
27655 let mayLoad = 1;
27656 let isRestrictNoSlot1Store = 1;
27657 let BaseOpcode = "V6_vL32b_cur_ppu";
27658 let DecoderNamespace = "EXT_mmvec";
27659 let Constraints = "$Rx32 = $Rx32in";
27661 def V6_vL32b_cur_pi : HInst<
27662 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27663 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27664 "$Vd32.cur = vmem($Rx32++#$Ii)",
27665 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27666 let Inst{7-5} = 0b001;
27667 let Inst{13-11} = 0b000;
27668 let Inst{31-21} = 0b00101001000;
27669 let hasNewValue = 1;
27670 let opNewValue = 0;
27671 let addrMode = PostInc;
27672 let accessSize = HVXVectorAccess;
27673 let isCVLoad = 1;
27674 let isCVI = 1;
27675 let CVINew = 1;
27676 let isHVXALU = 1;
27677 let mayLoad = 1;
27678 let isRestrictNoSlot1Store = 1;
27679 let BaseOpcode = "V6_vL32b_cur_pi";
27680 let CextOpcode = "V6_vL32b_cur";
27681 let isPredicable = 1;
27682 let DecoderNamespace = "EXT_mmvec";
27683 let Constraints = "$Rx32 = $Rx32in";
27685 def V6_vL32b_cur_ppu : HInst<
27686 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27687 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27688 "$Vd32.cur = vmem($Rx32++$Mu2)",
27689 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27690 let Inst{12-5} = 0b00000001;
27691 let Inst{31-21} = 0b00101011000;
27692 let hasNewValue = 1;
27693 let opNewValue = 0;
27694 let addrMode = PostInc;
27695 let accessSize = HVXVectorAccess;
27696 let isCVLoad = 1;
27697 let isCVI = 1;
27698 let CVINew = 1;
27699 let isHVXALU = 1;
27700 let mayLoad = 1;
27701 let isRestrictNoSlot1Store = 1;
27702 let BaseOpcode = "V6_vL32b_cur_ppu";
27703 let isPredicable = 1;
27704 let DecoderNamespace = "EXT_mmvec";
27705 let Constraints = "$Rx32 = $Rx32in";
27707 def V6_vL32b_cur_pred_ai : HInst<
27708 (outs HvxVR:$Vd32),
27709 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27710 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27711 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27712 let Inst{7-5} = 0b100;
27713 let Inst{31-21} = 0b00101000100;
27714 let isPredicated = 1;
27715 let hasNewValue = 1;
27716 let opNewValue = 0;
27717 let addrMode = BaseImmOffset;
27718 let accessSize = HVXVectorAccess;
27719 let isCVLoad = 1;
27720 let isCVI = 1;
27721 let CVINew = 1;
27722 let isHVXALU = 1;
27723 let mayLoad = 1;
27724 let isRestrictNoSlot1Store = 1;
27725 let BaseOpcode = "V6_vL32b_cur_ai";
27726 let DecoderNamespace = "EXT_mmvec";
27728 def V6_vL32b_cur_pred_pi : HInst<
27729 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27730 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27731 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27732 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27733 let Inst{7-5} = 0b100;
27734 let Inst{13-13} = 0b0;
27735 let Inst{31-21} = 0b00101001100;
27736 let isPredicated = 1;
27737 let hasNewValue = 1;
27738 let opNewValue = 0;
27739 let addrMode = PostInc;
27740 let accessSize = HVXVectorAccess;
27741 let isCVLoad = 1;
27742 let isCVI = 1;
27743 let CVINew = 1;
27744 let isHVXALU = 1;
27745 let mayLoad = 1;
27746 let isRestrictNoSlot1Store = 1;
27747 let BaseOpcode = "V6_vL32b_cur_pi";
27748 let DecoderNamespace = "EXT_mmvec";
27749 let Constraints = "$Rx32 = $Rx32in";
27751 def V6_vL32b_cur_pred_ppu : HInst<
27752 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27753 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27754 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27755 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27756 let Inst{10-5} = 0b000100;
27757 let Inst{31-21} = 0b00101011100;
27758 let isPredicated = 1;
27759 let hasNewValue = 1;
27760 let opNewValue = 0;
27761 let addrMode = PostInc;
27762 let accessSize = HVXVectorAccess;
27763 let isCVLoad = 1;
27764 let isCVI = 1;
27765 let CVINew = 1;
27766 let isHVXALU = 1;
27767 let mayLoad = 1;
27768 let isRestrictNoSlot1Store = 1;
27769 let BaseOpcode = "V6_vL32b_cur_ppu";
27770 let DecoderNamespace = "EXT_mmvec";
27771 let Constraints = "$Rx32 = $Rx32in";
27773 def V6_vL32b_npred_ai : HInst<
27774 (outs HvxVR:$Vd32),
27775 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27776 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27777 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27778 let Inst{7-5} = 0b011;
27779 let Inst{31-21} = 0b00101000100;
27780 let isPredicated = 1;
27781 let isPredicatedFalse = 1;
27782 let hasNewValue = 1;
27783 let opNewValue = 0;
27784 let addrMode = BaseImmOffset;
27785 let accessSize = HVXVectorAccess;
27786 let isCVLoad = 1;
27787 let isCVI = 1;
27788 let isHVXALU = 1;
27789 let mayLoad = 1;
27790 let isRestrictNoSlot1Store = 1;
27791 let BaseOpcode = "V6_vL32b_ai";
27792 let DecoderNamespace = "EXT_mmvec";
27794 def V6_vL32b_npred_pi : HInst<
27795 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27796 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27797 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27798 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27799 let Inst{7-5} = 0b011;
27800 let Inst{13-13} = 0b0;
27801 let Inst{31-21} = 0b00101001100;
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 isHVXALU = 1;
27811 let mayLoad = 1;
27812 let isRestrictNoSlot1Store = 1;
27813 let BaseOpcode = "V6_vL32b_pi";
27814 let DecoderNamespace = "EXT_mmvec";
27815 let Constraints = "$Rx32 = $Rx32in";
27817 def V6_vL32b_npred_ppu : HInst<
27818 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27819 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27820 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27821 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27822 let Inst{10-5} = 0b000011;
27823 let Inst{31-21} = 0b00101011100;
27824 let isPredicated = 1;
27825 let isPredicatedFalse = 1;
27826 let hasNewValue = 1;
27827 let opNewValue = 0;
27828 let addrMode = PostInc;
27829 let accessSize = HVXVectorAccess;
27830 let isCVLoad = 1;
27831 let isCVI = 1;
27832 let isHVXALU = 1;
27833 let mayLoad = 1;
27834 let isRestrictNoSlot1Store = 1;
27835 let BaseOpcode = "V6_vL32b_ppu";
27836 let DecoderNamespace = "EXT_mmvec";
27837 let Constraints = "$Rx32 = $Rx32in";
27839 def V6_vL32b_nt_ai : HInst<
27840 (outs HvxVR:$Vd32),
27841 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27842 "$Vd32 = vmem($Rt32+#$Ii):nt",
27843 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27844 let Inst{7-5} = 0b000;
27845 let Inst{12-11} = 0b00;
27846 let Inst{31-21} = 0b00101000010;
27847 let hasNewValue = 1;
27848 let opNewValue = 0;
27849 let addrMode = BaseImmOffset;
27850 let accessSize = HVXVectorAccess;
27851 let isCVLoad = 1;
27852 let isCVI = 1;
27853 let isHVXALU = 1;
27854 let mayLoad = 1;
27855 let isNonTemporal = 1;
27856 let isRestrictNoSlot1Store = 1;
27857 let BaseOpcode = "V6_vL32b_nt_ai";
27858 let CextOpcode = "V6_vL32b_nt";
27859 let isCVLoadable = 1;
27860 let isPredicable = 1;
27861 let DecoderNamespace = "EXT_mmvec";
27863 def V6_vL32b_nt_cur_ai : HInst<
27864 (outs HvxVR:$Vd32),
27865 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27866 "$Vd32.cur = vmem($Rt32+#$Ii):nt",
27867 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27868 let Inst{7-5} = 0b001;
27869 let Inst{12-11} = 0b00;
27870 let Inst{31-21} = 0b00101000010;
27871 let hasNewValue = 1;
27872 let opNewValue = 0;
27873 let addrMode = BaseImmOffset;
27874 let accessSize = HVXVectorAccess;
27875 let isCVLoad = 1;
27876 let isCVI = 1;
27877 let CVINew = 1;
27878 let isHVXALU = 1;
27879 let mayLoad = 1;
27880 let isNonTemporal = 1;
27881 let isRestrictNoSlot1Store = 1;
27882 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27883 let CextOpcode = "V6_vL32b_nt_cur";
27884 let isPredicable = 1;
27885 let DecoderNamespace = "EXT_mmvec";
27887 def V6_vL32b_nt_cur_npred_ai : HInst<
27888 (outs HvxVR:$Vd32),
27889 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27890 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27891 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27892 let Inst{7-5} = 0b101;
27893 let Inst{31-21} = 0b00101000110;
27894 let isPredicated = 1;
27895 let isPredicatedFalse = 1;
27896 let hasNewValue = 1;
27897 let opNewValue = 0;
27898 let addrMode = BaseImmOffset;
27899 let accessSize = HVXVectorAccess;
27900 let isCVLoad = 1;
27901 let isCVI = 1;
27902 let CVINew = 1;
27903 let isHVXALU = 1;
27904 let mayLoad = 1;
27905 let isNonTemporal = 1;
27906 let isRestrictNoSlot1Store = 1;
27907 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27908 let DecoderNamespace = "EXT_mmvec";
27910 def V6_vL32b_nt_cur_npred_pi : HInst<
27911 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27912 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27913 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27914 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27915 let Inst{7-5} = 0b101;
27916 let Inst{13-13} = 0b0;
27917 let Inst{31-21} = 0b00101001110;
27918 let isPredicated = 1;
27919 let isPredicatedFalse = 1;
27920 let hasNewValue = 1;
27921 let opNewValue = 0;
27922 let addrMode = PostInc;
27923 let accessSize = HVXVectorAccess;
27924 let isCVLoad = 1;
27925 let isCVI = 1;
27926 let CVINew = 1;
27927 let isHVXALU = 1;
27928 let mayLoad = 1;
27929 let isNonTemporal = 1;
27930 let isRestrictNoSlot1Store = 1;
27931 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27932 let DecoderNamespace = "EXT_mmvec";
27933 let Constraints = "$Rx32 = $Rx32in";
27935 def V6_vL32b_nt_cur_npred_ppu : HInst<
27936 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27937 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27938 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27939 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27940 let Inst{10-5} = 0b000101;
27941 let Inst{31-21} = 0b00101011110;
27942 let isPredicated = 1;
27943 let isPredicatedFalse = 1;
27944 let hasNewValue = 1;
27945 let opNewValue = 0;
27946 let addrMode = PostInc;
27947 let accessSize = HVXVectorAccess;
27948 let isCVLoad = 1;
27949 let isCVI = 1;
27950 let CVINew = 1;
27951 let isHVXALU = 1;
27952 let mayLoad = 1;
27953 let isNonTemporal = 1;
27954 let isRestrictNoSlot1Store = 1;
27955 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27956 let DecoderNamespace = "EXT_mmvec";
27957 let Constraints = "$Rx32 = $Rx32in";
27959 def V6_vL32b_nt_cur_pi : HInst<
27960 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27961 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27962 "$Vd32.cur = vmem($Rx32++#$Ii):nt",
27963 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
27964 let Inst{7-5} = 0b001;
27965 let Inst{13-11} = 0b000;
27966 let Inst{31-21} = 0b00101001010;
27967 let hasNewValue = 1;
27968 let opNewValue = 0;
27969 let addrMode = PostInc;
27970 let accessSize = HVXVectorAccess;
27971 let isCVLoad = 1;
27972 let isCVI = 1;
27973 let CVINew = 1;
27974 let isHVXALU = 1;
27975 let mayLoad = 1;
27976 let isNonTemporal = 1;
27977 let isRestrictNoSlot1Store = 1;
27978 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27979 let CextOpcode = "V6_vL32b_nt_cur";
27980 let isPredicable = 1;
27981 let DecoderNamespace = "EXT_mmvec";
27982 let Constraints = "$Rx32 = $Rx32in";
27984 def V6_vL32b_nt_cur_ppu : HInst<
27985 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27986 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27987 "$Vd32.cur = vmem($Rx32++$Mu2):nt",
27988 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27989 let Inst{12-5} = 0b00000001;
27990 let Inst{31-21} = 0b00101011010;
27991 let hasNewValue = 1;
27992 let opNewValue = 0;
27993 let addrMode = PostInc;
27994 let accessSize = HVXVectorAccess;
27995 let isCVLoad = 1;
27996 let isCVI = 1;
27997 let CVINew = 1;
27998 let isHVXALU = 1;
27999 let mayLoad = 1;
28000 let isNonTemporal = 1;
28001 let isRestrictNoSlot1Store = 1;
28002 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
28003 let isPredicable = 1;
28004 let DecoderNamespace = "EXT_mmvec";
28005 let Constraints = "$Rx32 = $Rx32in";
28007 def V6_vL32b_nt_cur_pred_ai : HInst<
28008 (outs HvxVR:$Vd32),
28009 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28010 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
28011 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28012 let Inst{7-5} = 0b100;
28013 let Inst{31-21} = 0b00101000110;
28014 let isPredicated = 1;
28015 let hasNewValue = 1;
28016 let opNewValue = 0;
28017 let addrMode = BaseImmOffset;
28018 let accessSize = HVXVectorAccess;
28019 let isCVLoad = 1;
28020 let isCVI = 1;
28021 let CVINew = 1;
28022 let isHVXALU = 1;
28023 let mayLoad = 1;
28024 let isNonTemporal = 1;
28025 let isRestrictNoSlot1Store = 1;
28026 let BaseOpcode = "V6_vL32b_nt_cur_ai";
28027 let DecoderNamespace = "EXT_mmvec";
28029 def V6_vL32b_nt_cur_pred_pi : HInst<
28030 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28031 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28032 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
28033 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28034 let Inst{7-5} = 0b100;
28035 let Inst{13-13} = 0b0;
28036 let Inst{31-21} = 0b00101001110;
28037 let isPredicated = 1;
28038 let hasNewValue = 1;
28039 let opNewValue = 0;
28040 let addrMode = PostInc;
28041 let accessSize = HVXVectorAccess;
28042 let isCVLoad = 1;
28043 let isCVI = 1;
28044 let CVINew = 1;
28045 let isHVXALU = 1;
28046 let mayLoad = 1;
28047 let isNonTemporal = 1;
28048 let isRestrictNoSlot1Store = 1;
28049 let BaseOpcode = "V6_vL32b_nt_cur_pi";
28050 let DecoderNamespace = "EXT_mmvec";
28051 let Constraints = "$Rx32 = $Rx32in";
28053 def V6_vL32b_nt_cur_pred_ppu : HInst<
28054 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28055 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28056 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
28057 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28058 let Inst{10-5} = 0b000100;
28059 let Inst{31-21} = 0b00101011110;
28060 let isPredicated = 1;
28061 let hasNewValue = 1;
28062 let opNewValue = 0;
28063 let addrMode = PostInc;
28064 let accessSize = HVXVectorAccess;
28065 let isCVLoad = 1;
28066 let isCVI = 1;
28067 let CVINew = 1;
28068 let isHVXALU = 1;
28069 let mayLoad = 1;
28070 let isNonTemporal = 1;
28071 let isRestrictNoSlot1Store = 1;
28072 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
28073 let DecoderNamespace = "EXT_mmvec";
28074 let Constraints = "$Rx32 = $Rx32in";
28076 def V6_vL32b_nt_npred_ai : HInst<
28077 (outs HvxVR:$Vd32),
28078 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28079 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28080 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28081 let Inst{7-5} = 0b011;
28082 let Inst{31-21} = 0b00101000110;
28083 let isPredicated = 1;
28084 let isPredicatedFalse = 1;
28085 let hasNewValue = 1;
28086 let opNewValue = 0;
28087 let addrMode = BaseImmOffset;
28088 let accessSize = HVXVectorAccess;
28089 let isCVLoad = 1;
28090 let isCVI = 1;
28091 let isHVXALU = 1;
28092 let mayLoad = 1;
28093 let isNonTemporal = 1;
28094 let isRestrictNoSlot1Store = 1;
28095 let BaseOpcode = "V6_vL32b_nt_ai";
28096 let DecoderNamespace = "EXT_mmvec";
28098 def V6_vL32b_nt_npred_pi : HInst<
28099 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28100 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28101 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28102 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28103 let Inst{7-5} = 0b011;
28104 let Inst{13-13} = 0b0;
28105 let Inst{31-21} = 0b00101001110;
28106 let isPredicated = 1;
28107 let isPredicatedFalse = 1;
28108 let hasNewValue = 1;
28109 let opNewValue = 0;
28110 let addrMode = PostInc;
28111 let accessSize = HVXVectorAccess;
28112 let isCVLoad = 1;
28113 let isCVI = 1;
28114 let isHVXALU = 1;
28115 let mayLoad = 1;
28116 let isNonTemporal = 1;
28117 let isRestrictNoSlot1Store = 1;
28118 let BaseOpcode = "V6_vL32b_nt_pi";
28119 let DecoderNamespace = "EXT_mmvec";
28120 let Constraints = "$Rx32 = $Rx32in";
28122 def V6_vL32b_nt_npred_ppu : HInst<
28123 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28124 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28125 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28126 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28127 let Inst{10-5} = 0b000011;
28128 let Inst{31-21} = 0b00101011110;
28129 let isPredicated = 1;
28130 let isPredicatedFalse = 1;
28131 let hasNewValue = 1;
28132 let opNewValue = 0;
28133 let addrMode = PostInc;
28134 let accessSize = HVXVectorAccess;
28135 let isCVLoad = 1;
28136 let isCVI = 1;
28137 let isHVXALU = 1;
28138 let mayLoad = 1;
28139 let isNonTemporal = 1;
28140 let isRestrictNoSlot1Store = 1;
28141 let BaseOpcode = "V6_vL32b_nt_ppu";
28142 let DecoderNamespace = "EXT_mmvec";
28143 let Constraints = "$Rx32 = $Rx32in";
28145 def V6_vL32b_nt_pi : HInst<
28146 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28147 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28148 "$Vd32 = vmem($Rx32++#$Ii):nt",
28149 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28150 let Inst{7-5} = 0b000;
28151 let Inst{13-11} = 0b000;
28152 let Inst{31-21} = 0b00101001010;
28153 let hasNewValue = 1;
28154 let opNewValue = 0;
28155 let addrMode = PostInc;
28156 let accessSize = HVXVectorAccess;
28157 let isCVLoad = 1;
28158 let isCVI = 1;
28159 let isHVXALU = 1;
28160 let mayLoad = 1;
28161 let isNonTemporal = 1;
28162 let isRestrictNoSlot1Store = 1;
28163 let BaseOpcode = "V6_vL32b_nt_pi";
28164 let CextOpcode = "V6_vL32b_nt";
28165 let isCVLoadable = 1;
28166 let isPredicable = 1;
28167 let DecoderNamespace = "EXT_mmvec";
28168 let Constraints = "$Rx32 = $Rx32in";
28170 def V6_vL32b_nt_ppu : HInst<
28171 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28172 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28173 "$Vd32 = vmem($Rx32++$Mu2):nt",
28174 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28175 let Inst{12-5} = 0b00000000;
28176 let Inst{31-21} = 0b00101011010;
28177 let hasNewValue = 1;
28178 let opNewValue = 0;
28179 let addrMode = PostInc;
28180 let accessSize = HVXVectorAccess;
28181 let isCVLoad = 1;
28182 let isCVI = 1;
28183 let isHVXALU = 1;
28184 let mayLoad = 1;
28185 let isNonTemporal = 1;
28186 let isRestrictNoSlot1Store = 1;
28187 let BaseOpcode = "V6_vL32b_nt_ppu";
28188 let isCVLoadable = 1;
28189 let isPredicable = 1;
28190 let DecoderNamespace = "EXT_mmvec";
28191 let Constraints = "$Rx32 = $Rx32in";
28193 def V6_vL32b_nt_pred_ai : HInst<
28194 (outs HvxVR:$Vd32),
28195 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28196 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28197 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28198 let Inst{7-5} = 0b010;
28199 let Inst{31-21} = 0b00101000110;
28200 let isPredicated = 1;
28201 let hasNewValue = 1;
28202 let opNewValue = 0;
28203 let addrMode = BaseImmOffset;
28204 let accessSize = HVXVectorAccess;
28205 let isCVLoad = 1;
28206 let isCVI = 1;
28207 let isHVXALU = 1;
28208 let mayLoad = 1;
28209 let isNonTemporal = 1;
28210 let isRestrictNoSlot1Store = 1;
28211 let BaseOpcode = "V6_vL32b_nt_ai";
28212 let DecoderNamespace = "EXT_mmvec";
28214 def V6_vL32b_nt_pred_pi : HInst<
28215 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28216 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28217 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28218 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28219 let Inst{7-5} = 0b010;
28220 let Inst{13-13} = 0b0;
28221 let Inst{31-21} = 0b00101001110;
28222 let isPredicated = 1;
28223 let hasNewValue = 1;
28224 let opNewValue = 0;
28225 let addrMode = PostInc;
28226 let accessSize = HVXVectorAccess;
28227 let isCVLoad = 1;
28228 let isCVI = 1;
28229 let isHVXALU = 1;
28230 let mayLoad = 1;
28231 let isNonTemporal = 1;
28232 let isRestrictNoSlot1Store = 1;
28233 let BaseOpcode = "V6_vL32b_nt_pi";
28234 let DecoderNamespace = "EXT_mmvec";
28235 let Constraints = "$Rx32 = $Rx32in";
28237 def V6_vL32b_nt_pred_ppu : HInst<
28238 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28239 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28240 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28241 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28242 let Inst{10-5} = 0b000010;
28243 let Inst{31-21} = 0b00101011110;
28244 let isPredicated = 1;
28245 let hasNewValue = 1;
28246 let opNewValue = 0;
28247 let addrMode = PostInc;
28248 let accessSize = HVXVectorAccess;
28249 let isCVLoad = 1;
28250 let isCVI = 1;
28251 let isHVXALU = 1;
28252 let mayLoad = 1;
28253 let isNonTemporal = 1;
28254 let isRestrictNoSlot1Store = 1;
28255 let BaseOpcode = "V6_vL32b_nt_ppu";
28256 let DecoderNamespace = "EXT_mmvec";
28257 let Constraints = "$Rx32 = $Rx32in";
28259 def V6_vL32b_nt_tmp_ai : HInst<
28260 (outs HvxVR:$Vd32),
28261 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28262 "$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28263 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28264 let Inst{7-5} = 0b010;
28265 let Inst{12-11} = 0b00;
28266 let Inst{31-21} = 0b00101000010;
28267 let hasNewValue = 1;
28268 let opNewValue = 0;
28269 let addrMode = BaseImmOffset;
28270 let accessSize = HVXVectorAccess;
28271 let isCVLoad = 1;
28272 let isCVI = 1;
28273 let hasHvxTmp = 1;
28274 let mayLoad = 1;
28275 let isNonTemporal = 1;
28276 let isRestrictNoSlot1Store = 1;
28277 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28278 let CextOpcode = "V6_vL32b_nt_tmp";
28279 let isPredicable = 1;
28280 let DecoderNamespace = "EXT_mmvec";
28282 def V6_vL32b_nt_tmp_npred_ai : HInst<
28283 (outs HvxVR:$Vd32),
28284 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28285 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28286 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28287 let Inst{7-5} = 0b111;
28288 let Inst{31-21} = 0b00101000110;
28289 let isPredicated = 1;
28290 let isPredicatedFalse = 1;
28291 let hasNewValue = 1;
28292 let opNewValue = 0;
28293 let addrMode = BaseImmOffset;
28294 let accessSize = HVXVectorAccess;
28295 let isCVLoad = 1;
28296 let isCVI = 1;
28297 let hasHvxTmp = 1;
28298 let mayLoad = 1;
28299 let isNonTemporal = 1;
28300 let isRestrictNoSlot1Store = 1;
28301 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28302 let DecoderNamespace = "EXT_mmvec";
28304 def V6_vL32b_nt_tmp_npred_pi : HInst<
28305 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28306 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28307 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28308 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28309 let Inst{7-5} = 0b111;
28310 let Inst{13-13} = 0b0;
28311 let Inst{31-21} = 0b00101001110;
28312 let isPredicated = 1;
28313 let isPredicatedFalse = 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 hasHvxTmp = 1;
28321 let mayLoad = 1;
28322 let isNonTemporal = 1;
28323 let isRestrictNoSlot1Store = 1;
28324 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28325 let DecoderNamespace = "EXT_mmvec";
28326 let Constraints = "$Rx32 = $Rx32in";
28328 def V6_vL32b_nt_tmp_npred_ppu : HInst<
28329 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28330 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28331 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28332 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28333 let Inst{10-5} = 0b000111;
28334 let Inst{31-21} = 0b00101011110;
28335 let isPredicated = 1;
28336 let isPredicatedFalse = 1;
28337 let hasNewValue = 1;
28338 let opNewValue = 0;
28339 let addrMode = PostInc;
28340 let accessSize = HVXVectorAccess;
28341 let isCVLoad = 1;
28342 let isCVI = 1;
28343 let hasHvxTmp = 1;
28344 let mayLoad = 1;
28345 let isNonTemporal = 1;
28346 let isRestrictNoSlot1Store = 1;
28347 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28348 let DecoderNamespace = "EXT_mmvec";
28349 let Constraints = "$Rx32 = $Rx32in";
28351 def V6_vL32b_nt_tmp_pi : HInst<
28352 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28353 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28354 "$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28355 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28356 let Inst{7-5} = 0b010;
28357 let Inst{13-11} = 0b000;
28358 let Inst{31-21} = 0b00101001010;
28359 let hasNewValue = 1;
28360 let opNewValue = 0;
28361 let addrMode = PostInc;
28362 let accessSize = HVXVectorAccess;
28363 let isCVLoad = 1;
28364 let isCVI = 1;
28365 let hasHvxTmp = 1;
28366 let mayLoad = 1;
28367 let isNonTemporal = 1;
28368 let isRestrictNoSlot1Store = 1;
28369 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28370 let CextOpcode = "V6_vL32b_nt_tmp";
28371 let isPredicable = 1;
28372 let DecoderNamespace = "EXT_mmvec";
28373 let Constraints = "$Rx32 = $Rx32in";
28375 def V6_vL32b_nt_tmp_ppu : HInst<
28376 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28377 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28378 "$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28379 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28380 let Inst{12-5} = 0b00000010;
28381 let Inst{31-21} = 0b00101011010;
28382 let hasNewValue = 1;
28383 let opNewValue = 0;
28384 let addrMode = PostInc;
28385 let accessSize = HVXVectorAccess;
28386 let isCVLoad = 1;
28387 let isCVI = 1;
28388 let hasHvxTmp = 1;
28389 let mayLoad = 1;
28390 let isNonTemporal = 1;
28391 let isRestrictNoSlot1Store = 1;
28392 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28393 let isPredicable = 1;
28394 let DecoderNamespace = "EXT_mmvec";
28395 let Constraints = "$Rx32 = $Rx32in";
28397 def V6_vL32b_nt_tmp_pred_ai : HInst<
28398 (outs HvxVR:$Vd32),
28399 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28400 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28401 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28402 let Inst{7-5} = 0b110;
28403 let Inst{31-21} = 0b00101000110;
28404 let isPredicated = 1;
28405 let hasNewValue = 1;
28406 let opNewValue = 0;
28407 let addrMode = BaseImmOffset;
28408 let accessSize = HVXVectorAccess;
28409 let isCVLoad = 1;
28410 let isCVI = 1;
28411 let hasHvxTmp = 1;
28412 let mayLoad = 1;
28413 let isNonTemporal = 1;
28414 let isRestrictNoSlot1Store = 1;
28415 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
28416 let DecoderNamespace = "EXT_mmvec";
28418 def V6_vL32b_nt_tmp_pred_pi : HInst<
28419 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28420 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28421 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28422 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28423 let Inst{7-5} = 0b110;
28424 let Inst{13-13} = 0b0;
28425 let Inst{31-21} = 0b00101001110;
28426 let isPredicated = 1;
28427 let hasNewValue = 1;
28428 let opNewValue = 0;
28429 let addrMode = PostInc;
28430 let accessSize = HVXVectorAccess;
28431 let isCVLoad = 1;
28432 let isCVI = 1;
28433 let hasHvxTmp = 1;
28434 let mayLoad = 1;
28435 let isNonTemporal = 1;
28436 let isRestrictNoSlot1Store = 1;
28437 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
28438 let DecoderNamespace = "EXT_mmvec";
28439 let Constraints = "$Rx32 = $Rx32in";
28441 def V6_vL32b_nt_tmp_pred_ppu : HInst<
28442 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28443 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28444 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28445 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28446 let Inst{10-5} = 0b000110;
28447 let Inst{31-21} = 0b00101011110;
28448 let isPredicated = 1;
28449 let hasNewValue = 1;
28450 let opNewValue = 0;
28451 let addrMode = PostInc;
28452 let accessSize = HVXVectorAccess;
28453 let isCVLoad = 1;
28454 let isCVI = 1;
28455 let hasHvxTmp = 1;
28456 let mayLoad = 1;
28457 let isNonTemporal = 1;
28458 let isRestrictNoSlot1Store = 1;
28459 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
28460 let DecoderNamespace = "EXT_mmvec";
28461 let Constraints = "$Rx32 = $Rx32in";
28463 def V6_vL32b_pi : HInst<
28464 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28465 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28466 "$Vd32 = vmem($Rx32++#$Ii)",
28467 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28468 let Inst{7-5} = 0b000;
28469 let Inst{13-11} = 0b000;
28470 let Inst{31-21} = 0b00101001000;
28471 let hasNewValue = 1;
28472 let opNewValue = 0;
28473 let addrMode = PostInc;
28474 let accessSize = HVXVectorAccess;
28475 let isCVLoad = 1;
28476 let isCVI = 1;
28477 let isHVXALU = 1;
28478 let mayLoad = 1;
28479 let isRestrictNoSlot1Store = 1;
28480 let BaseOpcode = "V6_vL32b_pi";
28481 let CextOpcode = "V6_vL32b";
28482 let isCVLoadable = 1;
28483 let isPredicable = 1;
28484 let DecoderNamespace = "EXT_mmvec";
28485 let Constraints = "$Rx32 = $Rx32in";
28487 def V6_vL32b_ppu : HInst<
28488 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28489 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28490 "$Vd32 = vmem($Rx32++$Mu2)",
28491 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28492 let Inst{12-5} = 0b00000000;
28493 let Inst{31-21} = 0b00101011000;
28494 let hasNewValue = 1;
28495 let opNewValue = 0;
28496 let addrMode = PostInc;
28497 let accessSize = HVXVectorAccess;
28498 let isCVLoad = 1;
28499 let isCVI = 1;
28500 let isHVXALU = 1;
28501 let mayLoad = 1;
28502 let isRestrictNoSlot1Store = 1;
28503 let BaseOpcode = "V6_vL32b_ppu";
28504 let isCVLoadable = 1;
28505 let isPredicable = 1;
28506 let DecoderNamespace = "EXT_mmvec";
28507 let Constraints = "$Rx32 = $Rx32in";
28509 def V6_vL32b_pred_ai : HInst<
28510 (outs HvxVR:$Vd32),
28511 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28512 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28513 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28514 let Inst{7-5} = 0b010;
28515 let Inst{31-21} = 0b00101000100;
28516 let isPredicated = 1;
28517 let hasNewValue = 1;
28518 let opNewValue = 0;
28519 let addrMode = BaseImmOffset;
28520 let accessSize = HVXVectorAccess;
28521 let isCVLoad = 1;
28522 let isCVI = 1;
28523 let isHVXALU = 1;
28524 let mayLoad = 1;
28525 let isRestrictNoSlot1Store = 1;
28526 let BaseOpcode = "V6_vL32b_ai";
28527 let DecoderNamespace = "EXT_mmvec";
28529 def V6_vL32b_pred_pi : HInst<
28530 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28531 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28532 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28533 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28534 let Inst{7-5} = 0b010;
28535 let Inst{13-13} = 0b0;
28536 let Inst{31-21} = 0b00101001100;
28537 let isPredicated = 1;
28538 let hasNewValue = 1;
28539 let opNewValue = 0;
28540 let addrMode = PostInc;
28541 let accessSize = HVXVectorAccess;
28542 let isCVLoad = 1;
28543 let isCVI = 1;
28544 let isHVXALU = 1;
28545 let mayLoad = 1;
28546 let isRestrictNoSlot1Store = 1;
28547 let BaseOpcode = "V6_vL32b_pi";
28548 let DecoderNamespace = "EXT_mmvec";
28549 let Constraints = "$Rx32 = $Rx32in";
28551 def V6_vL32b_pred_ppu : HInst<
28552 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28553 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28554 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28555 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28556 let Inst{10-5} = 0b000010;
28557 let Inst{31-21} = 0b00101011100;
28558 let isPredicated = 1;
28559 let hasNewValue = 1;
28560 let opNewValue = 0;
28561 let addrMode = PostInc;
28562 let accessSize = HVXVectorAccess;
28563 let isCVLoad = 1;
28564 let isCVI = 1;
28565 let isHVXALU = 1;
28566 let mayLoad = 1;
28567 let isRestrictNoSlot1Store = 1;
28568 let BaseOpcode = "V6_vL32b_ppu";
28569 let DecoderNamespace = "EXT_mmvec";
28570 let Constraints = "$Rx32 = $Rx32in";
28572 def V6_vL32b_tmp_ai : HInst<
28573 (outs HvxVR:$Vd32),
28574 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28575 "$Vd32.tmp = vmem($Rt32+#$Ii)",
28576 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28577 let Inst{7-5} = 0b010;
28578 let Inst{12-11} = 0b00;
28579 let Inst{31-21} = 0b00101000000;
28580 let hasNewValue = 1;
28581 let opNewValue = 0;
28582 let addrMode = BaseImmOffset;
28583 let accessSize = HVXVectorAccess;
28584 let isCVLoad = 1;
28585 let isCVI = 1;
28586 let hasHvxTmp = 1;
28587 let mayLoad = 1;
28588 let isRestrictNoSlot1Store = 1;
28589 let BaseOpcode = "V6_vL32b_tmp_ai";
28590 let CextOpcode = "V6_vL32b_tmp";
28591 let isPredicable = 1;
28592 let DecoderNamespace = "EXT_mmvec";
28594 def V6_vL32b_tmp_npred_ai : HInst<
28595 (outs HvxVR:$Vd32),
28596 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28597 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28598 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28599 let Inst{7-5} = 0b111;
28600 let Inst{31-21} = 0b00101000100;
28601 let isPredicated = 1;
28602 let isPredicatedFalse = 1;
28603 let hasNewValue = 1;
28604 let opNewValue = 0;
28605 let addrMode = BaseImmOffset;
28606 let accessSize = HVXVectorAccess;
28607 let isCVLoad = 1;
28608 let isCVI = 1;
28609 let hasHvxTmp = 1;
28610 let mayLoad = 1;
28611 let isRestrictNoSlot1Store = 1;
28612 let BaseOpcode = "V6_vL32b_tmp_ai";
28613 let DecoderNamespace = "EXT_mmvec";
28615 def V6_vL32b_tmp_npred_pi : HInst<
28616 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28617 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28618 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28619 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28620 let Inst{7-5} = 0b111;
28621 let Inst{13-13} = 0b0;
28622 let Inst{31-21} = 0b00101001100;
28623 let isPredicated = 1;
28624 let isPredicatedFalse = 1;
28625 let hasNewValue = 1;
28626 let opNewValue = 0;
28627 let addrMode = PostInc;
28628 let accessSize = HVXVectorAccess;
28629 let isCVLoad = 1;
28630 let isCVI = 1;
28631 let hasHvxTmp = 1;
28632 let mayLoad = 1;
28633 let isRestrictNoSlot1Store = 1;
28634 let BaseOpcode = "V6_vL32b_tmp_pi";
28635 let DecoderNamespace = "EXT_mmvec";
28636 let Constraints = "$Rx32 = $Rx32in";
28638 def V6_vL32b_tmp_npred_ppu : HInst<
28639 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28640 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28641 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28642 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28643 let Inst{10-5} = 0b000111;
28644 let Inst{31-21} = 0b00101011100;
28645 let isPredicated = 1;
28646 let isPredicatedFalse = 1;
28647 let hasNewValue = 1;
28648 let opNewValue = 0;
28649 let addrMode = PostInc;
28650 let accessSize = HVXVectorAccess;
28651 let isCVLoad = 1;
28652 let isCVI = 1;
28653 let hasHvxTmp = 1;
28654 let mayLoad = 1;
28655 let isRestrictNoSlot1Store = 1;
28656 let BaseOpcode = "V6_vL32b_tmp_ppu";
28657 let DecoderNamespace = "EXT_mmvec";
28658 let Constraints = "$Rx32 = $Rx32in";
28660 def V6_vL32b_tmp_pi : HInst<
28661 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28662 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28663 "$Vd32.tmp = vmem($Rx32++#$Ii)",
28664 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm {
28665 let Inst{7-5} = 0b010;
28666 let Inst{13-11} = 0b000;
28667 let Inst{31-21} = 0b00101001000;
28668 let hasNewValue = 1;
28669 let opNewValue = 0;
28670 let addrMode = PostInc;
28671 let accessSize = HVXVectorAccess;
28672 let isCVLoad = 1;
28673 let isCVI = 1;
28674 let hasHvxTmp = 1;
28675 let mayLoad = 1;
28676 let isRestrictNoSlot1Store = 1;
28677 let BaseOpcode = "V6_vL32b_tmp_pi";
28678 let CextOpcode = "V6_vL32b_tmp";
28679 let isPredicable = 1;
28680 let DecoderNamespace = "EXT_mmvec";
28681 let Constraints = "$Rx32 = $Rx32in";
28683 def V6_vL32b_tmp_ppu : HInst<
28684 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28685 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28686 "$Vd32.tmp = vmem($Rx32++$Mu2)",
28687 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
28688 let Inst{12-5} = 0b00000010;
28689 let Inst{31-21} = 0b00101011000;
28690 let hasNewValue = 1;
28691 let opNewValue = 0;
28692 let addrMode = PostInc;
28693 let accessSize = HVXVectorAccess;
28694 let isCVLoad = 1;
28695 let isCVI = 1;
28696 let hasHvxTmp = 1;
28697 let mayLoad = 1;
28698 let isRestrictNoSlot1Store = 1;
28699 let BaseOpcode = "V6_vL32b_tmp_ppu";
28700 let isPredicable = 1;
28701 let DecoderNamespace = "EXT_mmvec";
28702 let Constraints = "$Rx32 = $Rx32in";
28704 def V6_vL32b_tmp_pred_ai : HInst<
28705 (outs HvxVR:$Vd32),
28706 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28707 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28708 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
28709 let Inst{7-5} = 0b110;
28710 let Inst{31-21} = 0b00101000100;
28711 let isPredicated = 1;
28712 let hasNewValue = 1;
28713 let opNewValue = 0;
28714 let addrMode = BaseImmOffset;
28715 let accessSize = HVXVectorAccess;
28716 let isCVLoad = 1;
28717 let isCVI = 1;
28718 let hasHvxTmp = 1;
28719 let mayLoad = 1;
28720 let isRestrictNoSlot1Store = 1;
28721 let BaseOpcode = "V6_vL32b_tmp_ai";
28722 let DecoderNamespace = "EXT_mmvec";
28724 def V6_vL32b_tmp_pred_pi : HInst<
28725 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28726 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28727 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28728 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
28729 let Inst{7-5} = 0b110;
28730 let Inst{13-13} = 0b0;
28731 let Inst{31-21} = 0b00101001100;
28732 let isPredicated = 1;
28733 let hasNewValue = 1;
28734 let opNewValue = 0;
28735 let addrMode = PostInc;
28736 let accessSize = HVXVectorAccess;
28737 let isCVLoad = 1;
28738 let isCVI = 1;
28739 let hasHvxTmp = 1;
28740 let mayLoad = 1;
28741 let isRestrictNoSlot1Store = 1;
28742 let BaseOpcode = "V6_vL32b_tmp_pi";
28743 let DecoderNamespace = "EXT_mmvec";
28744 let Constraints = "$Rx32 = $Rx32in";
28746 def V6_vL32b_tmp_pred_ppu : HInst<
28747 (outs HvxVR:$Vd32, IntRegs:$Rx32),
28748 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28749 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28750 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
28751 let Inst{10-5} = 0b000110;
28752 let Inst{31-21} = 0b00101011100;
28753 let isPredicated = 1;
28754 let hasNewValue = 1;
28755 let opNewValue = 0;
28756 let addrMode = PostInc;
28757 let accessSize = HVXVectorAccess;
28758 let isCVLoad = 1;
28759 let isCVI = 1;
28760 let hasHvxTmp = 1;
28761 let mayLoad = 1;
28762 let isRestrictNoSlot1Store = 1;
28763 let BaseOpcode = "V6_vL32b_tmp_ppu";
28764 let DecoderNamespace = "EXT_mmvec";
28765 let Constraints = "$Rx32 = $Rx32in";
28767 def V6_vS32Ub_ai : HInst<
28768 (outs),
28769 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28770 "vmemu($Rt32+#$Ii) = $Vs32",
28771 tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28772 let Inst{7-5} = 0b111;
28773 let Inst{12-11} = 0b00;
28774 let Inst{31-21} = 0b00101000001;
28775 let addrMode = BaseImmOffset;
28776 let accessSize = HVXVectorAccess;
28777 let isCVI = 1;
28778 let mayStore = 1;
28779 let BaseOpcode = "V6_vS32Ub_ai";
28780 let CextOpcode = "V6_vS32Ub";
28781 let isPredicable = 1;
28782 let DecoderNamespace = "EXT_mmvec";
28784 def V6_vS32Ub_npred_ai : HInst<
28785 (outs),
28786 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28787 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28788 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28789 let Inst{7-5} = 0b111;
28790 let Inst{31-21} = 0b00101000101;
28791 let isPredicated = 1;
28792 let isPredicatedFalse = 1;
28793 let addrMode = BaseImmOffset;
28794 let accessSize = HVXVectorAccess;
28795 let isCVI = 1;
28796 let mayStore = 1;
28797 let BaseOpcode = "V6_vS32Ub_ai";
28798 let DecoderNamespace = "EXT_mmvec";
28800 def V6_vS32Ub_npred_pi : HInst<
28801 (outs IntRegs:$Rx32),
28802 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28803 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28804 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28805 let Inst{7-5} = 0b111;
28806 let Inst{13-13} = 0b0;
28807 let Inst{31-21} = 0b00101001101;
28808 let isPredicated = 1;
28809 let isPredicatedFalse = 1;
28810 let addrMode = PostInc;
28811 let accessSize = HVXVectorAccess;
28812 let isCVI = 1;
28813 let mayStore = 1;
28814 let BaseOpcode = "V6_vS32Ub_pi";
28815 let DecoderNamespace = "EXT_mmvec";
28816 let Constraints = "$Rx32 = $Rx32in";
28818 def V6_vS32Ub_npred_ppu : HInst<
28819 (outs IntRegs:$Rx32),
28820 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28821 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28822 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28823 let Inst{10-5} = 0b000111;
28824 let Inst{31-21} = 0b00101011101;
28825 let isPredicated = 1;
28826 let isPredicatedFalse = 1;
28827 let addrMode = PostInc;
28828 let accessSize = HVXVectorAccess;
28829 let isCVI = 1;
28830 let mayStore = 1;
28831 let BaseOpcode = "V6_vS32Ub_ppu";
28832 let DecoderNamespace = "EXT_mmvec";
28833 let Constraints = "$Rx32 = $Rx32in";
28835 def V6_vS32Ub_pi : HInst<
28836 (outs IntRegs:$Rx32),
28837 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28838 "vmemu($Rx32++#$Ii) = $Vs32",
28839 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28840 let Inst{7-5} = 0b111;
28841 let Inst{13-11} = 0b000;
28842 let Inst{31-21} = 0b00101001001;
28843 let addrMode = PostInc;
28844 let accessSize = HVXVectorAccess;
28845 let isCVI = 1;
28846 let mayStore = 1;
28847 let BaseOpcode = "V6_vS32Ub_pi";
28848 let CextOpcode = "V6_vS32Ub";
28849 let isPredicable = 1;
28850 let DecoderNamespace = "EXT_mmvec";
28851 let Constraints = "$Rx32 = $Rx32in";
28853 def V6_vS32Ub_ppu : HInst<
28854 (outs IntRegs:$Rx32),
28855 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28856 "vmemu($Rx32++$Mu2) = $Vs32",
28857 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28858 let Inst{12-5} = 0b00000111;
28859 let Inst{31-21} = 0b00101011001;
28860 let addrMode = PostInc;
28861 let accessSize = HVXVectorAccess;
28862 let isCVI = 1;
28863 let mayStore = 1;
28864 let BaseOpcode = "V6_vS32Ub_ppu";
28865 let isPredicable = 1;
28866 let DecoderNamespace = "EXT_mmvec";
28867 let Constraints = "$Rx32 = $Rx32in";
28869 def V6_vS32Ub_pred_ai : HInst<
28870 (outs),
28871 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28872 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28873 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28874 let Inst{7-5} = 0b110;
28875 let Inst{31-21} = 0b00101000101;
28876 let isPredicated = 1;
28877 let addrMode = BaseImmOffset;
28878 let accessSize = HVXVectorAccess;
28879 let isCVI = 1;
28880 let mayStore = 1;
28881 let BaseOpcode = "V6_vS32Ub_ai";
28882 let DecoderNamespace = "EXT_mmvec";
28884 def V6_vS32Ub_pred_pi : HInst<
28885 (outs IntRegs:$Rx32),
28886 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28887 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28888 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28889 let Inst{7-5} = 0b110;
28890 let Inst{13-13} = 0b0;
28891 let Inst{31-21} = 0b00101001101;
28892 let isPredicated = 1;
28893 let addrMode = PostInc;
28894 let accessSize = HVXVectorAccess;
28895 let isCVI = 1;
28896 let mayStore = 1;
28897 let BaseOpcode = "V6_vS32Ub_pi";
28898 let DecoderNamespace = "EXT_mmvec";
28899 let Constraints = "$Rx32 = $Rx32in";
28901 def V6_vS32Ub_pred_ppu : HInst<
28902 (outs IntRegs:$Rx32),
28903 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28904 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28905 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28906 let Inst{10-5} = 0b000110;
28907 let Inst{31-21} = 0b00101011101;
28908 let isPredicated = 1;
28909 let addrMode = PostInc;
28910 let accessSize = HVXVectorAccess;
28911 let isCVI = 1;
28912 let mayStore = 1;
28913 let BaseOpcode = "V6_vS32Ub_ppu";
28914 let DecoderNamespace = "EXT_mmvec";
28915 let Constraints = "$Rx32 = $Rx32in";
28917 def V6_vS32b_ai : HInst<
28918 (outs),
28919 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28920 "vmem($Rt32+#$Ii) = $Vs32",
28921 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28922 let Inst{7-5} = 0b000;
28923 let Inst{12-11} = 0b00;
28924 let Inst{31-21} = 0b00101000001;
28925 let addrMode = BaseImmOffset;
28926 let accessSize = HVXVectorAccess;
28927 let isCVI = 1;
28928 let isHVXALU = 1;
28929 let mayStore = 1;
28930 let BaseOpcode = "V6_vS32b_ai";
28931 let CextOpcode = "V6_vS32b";
28932 let isNVStorable = 1;
28933 let isPredicable = 1;
28934 let DecoderNamespace = "EXT_mmvec";
28936 def V6_vS32b_new_ai : HInst<
28937 (outs),
28938 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28939 "vmem($Rt32+#$Ii) = $Os8.new",
28940 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
28941 let Inst{7-3} = 0b00100;
28942 let Inst{12-11} = 0b00;
28943 let Inst{31-21} = 0b00101000001;
28944 let addrMode = BaseImmOffset;
28945 let accessSize = HVXVectorAccess;
28946 let isNVStore = 1;
28947 let isCVI = 1;
28948 let CVINew = 1;
28949 let isNewValue = 1;
28950 let mayStore = 1;
28951 let BaseOpcode = "V6_vS32b_ai";
28952 let CextOpcode = "V6_vS32b_new";
28953 let isPredicable = 1;
28954 let DecoderNamespace = "EXT_mmvec";
28955 let opNewValue = 2;
28957 def V6_vS32b_new_npred_ai : HInst<
28958 (outs),
28959 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28960 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28961 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28962 let Inst{7-3} = 0b01101;
28963 let Inst{31-21} = 0b00101000101;
28964 let isPredicated = 1;
28965 let isPredicatedFalse = 1;
28966 let addrMode = BaseImmOffset;
28967 let accessSize = HVXVectorAccess;
28968 let isNVStore = 1;
28969 let isCVI = 1;
28970 let CVINew = 1;
28971 let isNewValue = 1;
28972 let mayStore = 1;
28973 let BaseOpcode = "V6_vS32b_ai";
28974 let DecoderNamespace = "EXT_mmvec";
28975 let opNewValue = 3;
28977 def V6_vS32b_new_npred_pi : HInst<
28978 (outs IntRegs:$Rx32),
28979 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28980 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28981 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28982 let Inst{7-3} = 0b01101;
28983 let Inst{13-13} = 0b0;
28984 let Inst{31-21} = 0b00101001101;
28985 let isPredicated = 1;
28986 let isPredicatedFalse = 1;
28987 let addrMode = PostInc;
28988 let accessSize = HVXVectorAccess;
28989 let isNVStore = 1;
28990 let isCVI = 1;
28991 let CVINew = 1;
28992 let isNewValue = 1;
28993 let mayStore = 1;
28994 let BaseOpcode = "V6_vS32b_pi";
28995 let DecoderNamespace = "EXT_mmvec";
28996 let opNewValue = 4;
28997 let Constraints = "$Rx32 = $Rx32in";
28999 def V6_vS32b_new_npred_ppu : HInst<
29000 (outs IntRegs:$Rx32),
29001 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29002 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29003 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29004 let Inst{10-3} = 0b00001101;
29005 let Inst{31-21} = 0b00101011101;
29006 let isPredicated = 1;
29007 let isPredicatedFalse = 1;
29008 let addrMode = PostInc;
29009 let accessSize = HVXVectorAccess;
29010 let isNVStore = 1;
29011 let isCVI = 1;
29012 let CVINew = 1;
29013 let isNewValue = 1;
29014 let mayStore = 1;
29015 let BaseOpcode = "V6_vS32b_ppu";
29016 let DecoderNamespace = "EXT_mmvec";
29017 let opNewValue = 4;
29018 let Constraints = "$Rx32 = $Rx32in";
29020 def V6_vS32b_new_pi : HInst<
29021 (outs IntRegs:$Rx32),
29022 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29023 "vmem($Rx32++#$Ii) = $Os8.new",
29024 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29025 let Inst{7-3} = 0b00100;
29026 let Inst{13-11} = 0b000;
29027 let Inst{31-21} = 0b00101001001;
29028 let addrMode = PostInc;
29029 let accessSize = HVXVectorAccess;
29030 let isNVStore = 1;
29031 let isCVI = 1;
29032 let CVINew = 1;
29033 let isNewValue = 1;
29034 let mayStore = 1;
29035 let BaseOpcode = "V6_vS32b_pi";
29036 let CextOpcode = "V6_vS32b_new";
29037 let isPredicable = 1;
29038 let DecoderNamespace = "EXT_mmvec";
29039 let opNewValue = 3;
29040 let Constraints = "$Rx32 = $Rx32in";
29042 def V6_vS32b_new_ppu : HInst<
29043 (outs IntRegs:$Rx32),
29044 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29045 "vmem($Rx32++$Mu2) = $Os8.new",
29046 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29047 let Inst{12-3} = 0b0000000100;
29048 let Inst{31-21} = 0b00101011001;
29049 let addrMode = PostInc;
29050 let accessSize = HVXVectorAccess;
29051 let isNVStore = 1;
29052 let isCVI = 1;
29053 let CVINew = 1;
29054 let isNewValue = 1;
29055 let mayStore = 1;
29056 let BaseOpcode = "V6_vS32b_ppu";
29057 let isPredicable = 1;
29058 let DecoderNamespace = "EXT_mmvec";
29059 let opNewValue = 3;
29060 let Constraints = "$Rx32 = $Rx32in";
29062 def V6_vS32b_new_pred_ai : HInst<
29063 (outs),
29064 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29065 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29066 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29067 let Inst{7-3} = 0b01000;
29068 let Inst{31-21} = 0b00101000101;
29069 let isPredicated = 1;
29070 let addrMode = BaseImmOffset;
29071 let accessSize = HVXVectorAccess;
29072 let isNVStore = 1;
29073 let isCVI = 1;
29074 let CVINew = 1;
29075 let isNewValue = 1;
29076 let mayStore = 1;
29077 let BaseOpcode = "V6_vS32b_ai";
29078 let DecoderNamespace = "EXT_mmvec";
29079 let opNewValue = 3;
29081 def V6_vS32b_new_pred_pi : HInst<
29082 (outs IntRegs:$Rx32),
29083 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29084 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29085 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29086 let Inst{7-3} = 0b01000;
29087 let Inst{13-13} = 0b0;
29088 let Inst{31-21} = 0b00101001101;
29089 let isPredicated = 1;
29090 let addrMode = PostInc;
29091 let accessSize = HVXVectorAccess;
29092 let isNVStore = 1;
29093 let isCVI = 1;
29094 let CVINew = 1;
29095 let isNewValue = 1;
29096 let mayStore = 1;
29097 let BaseOpcode = "V6_vS32b_pi";
29098 let DecoderNamespace = "EXT_mmvec";
29099 let opNewValue = 4;
29100 let Constraints = "$Rx32 = $Rx32in";
29102 def V6_vS32b_new_pred_ppu : HInst<
29103 (outs IntRegs:$Rx32),
29104 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29105 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29106 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29107 let Inst{10-3} = 0b00001000;
29108 let Inst{31-21} = 0b00101011101;
29109 let isPredicated = 1;
29110 let addrMode = PostInc;
29111 let accessSize = HVXVectorAccess;
29112 let isNVStore = 1;
29113 let isCVI = 1;
29114 let CVINew = 1;
29115 let isNewValue = 1;
29116 let mayStore = 1;
29117 let BaseOpcode = "V6_vS32b_ppu";
29118 let DecoderNamespace = "EXT_mmvec";
29119 let opNewValue = 4;
29120 let Constraints = "$Rx32 = $Rx32in";
29122 def V6_vS32b_npred_ai : HInst<
29123 (outs),
29124 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29125 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
29126 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29127 let Inst{7-5} = 0b001;
29128 let Inst{31-21} = 0b00101000101;
29129 let isPredicated = 1;
29130 let isPredicatedFalse = 1;
29131 let addrMode = BaseImmOffset;
29132 let accessSize = HVXVectorAccess;
29133 let isCVI = 1;
29134 let isHVXALU = 1;
29135 let mayStore = 1;
29136 let BaseOpcode = "V6_vS32b_ai";
29137 let isNVStorable = 1;
29138 let DecoderNamespace = "EXT_mmvec";
29140 def V6_vS32b_npred_pi : HInst<
29141 (outs IntRegs:$Rx32),
29142 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29143 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
29144 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29145 let Inst{7-5} = 0b001;
29146 let Inst{13-13} = 0b0;
29147 let Inst{31-21} = 0b00101001101;
29148 let isPredicated = 1;
29149 let isPredicatedFalse = 1;
29150 let addrMode = PostInc;
29151 let accessSize = HVXVectorAccess;
29152 let isCVI = 1;
29153 let isHVXALU = 1;
29154 let mayStore = 1;
29155 let BaseOpcode = "V6_vS32b_pi";
29156 let isNVStorable = 1;
29157 let DecoderNamespace = "EXT_mmvec";
29158 let Constraints = "$Rx32 = $Rx32in";
29160 def V6_vS32b_npred_ppu : HInst<
29161 (outs IntRegs:$Rx32),
29162 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29163 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29164 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29165 let Inst{10-5} = 0b000001;
29166 let Inst{31-21} = 0b00101011101;
29167 let isPredicated = 1;
29168 let isPredicatedFalse = 1;
29169 let addrMode = PostInc;
29170 let accessSize = HVXVectorAccess;
29171 let isCVI = 1;
29172 let isHVXALU = 1;
29173 let mayStore = 1;
29174 let BaseOpcode = "V6_vS32b_ppu";
29175 let isNVStorable = 1;
29176 let DecoderNamespace = "EXT_mmvec";
29177 let Constraints = "$Rx32 = $Rx32in";
29179 def V6_vS32b_nqpred_ai : HInst<
29180 (outs),
29181 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29182 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29183 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29184 let Inst{7-5} = 0b001;
29185 let Inst{31-21} = 0b00101000100;
29186 let addrMode = BaseImmOffset;
29187 let accessSize = HVXVectorAccess;
29188 let isCVI = 1;
29189 let isHVXALU = 1;
29190 let mayStore = 1;
29191 let DecoderNamespace = "EXT_mmvec";
29193 def V6_vS32b_nqpred_pi : HInst<
29194 (outs IntRegs:$Rx32),
29195 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29196 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29197 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29198 let Inst{7-5} = 0b001;
29199 let Inst{13-13} = 0b0;
29200 let Inst{31-21} = 0b00101001100;
29201 let addrMode = PostInc;
29202 let accessSize = HVXVectorAccess;
29203 let isCVI = 1;
29204 let isHVXALU = 1;
29205 let mayStore = 1;
29206 let DecoderNamespace = "EXT_mmvec";
29207 let Constraints = "$Rx32 = $Rx32in";
29209 def V6_vS32b_nqpred_ppu : HInst<
29210 (outs IntRegs:$Rx32),
29211 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29212 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29213 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29214 let Inst{10-5} = 0b000001;
29215 let Inst{31-21} = 0b00101011100;
29216 let addrMode = PostInc;
29217 let accessSize = HVXVectorAccess;
29218 let isCVI = 1;
29219 let isHVXALU = 1;
29220 let mayStore = 1;
29221 let DecoderNamespace = "EXT_mmvec";
29222 let Constraints = "$Rx32 = $Rx32in";
29224 def V6_vS32b_nt_ai : HInst<
29225 (outs),
29226 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29227 "vmem($Rt32+#$Ii):nt = $Vs32",
29228 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29229 let Inst{7-5} = 0b000;
29230 let Inst{12-11} = 0b00;
29231 let Inst{31-21} = 0b00101000011;
29232 let addrMode = BaseImmOffset;
29233 let accessSize = HVXVectorAccess;
29234 let isCVI = 1;
29235 let isHVXALU = 1;
29236 let isNonTemporal = 1;
29237 let mayStore = 1;
29238 let BaseOpcode = "V6_vS32b_ai";
29239 let CextOpcode = "V6_vS32b_nt";
29240 let isNVStorable = 1;
29241 let isPredicable = 1;
29242 let DecoderNamespace = "EXT_mmvec";
29244 def V6_vS32b_nt_new_ai : HInst<
29245 (outs),
29246 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29247 "vmem($Rt32+#$Ii):nt = $Os8.new",
29248 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29249 let Inst{7-3} = 0b00100;
29250 let Inst{12-11} = 0b00;
29251 let Inst{31-21} = 0b00101000011;
29252 let addrMode = BaseImmOffset;
29253 let accessSize = HVXVectorAccess;
29254 let isNVStore = 1;
29255 let isCVI = 1;
29256 let CVINew = 1;
29257 let isNewValue = 1;
29258 let isNonTemporal = 1;
29259 let mayStore = 1;
29260 let BaseOpcode = "V6_vS32b_ai";
29261 let CextOpcode = "V6_vS32b_nt_new";
29262 let isPredicable = 1;
29263 let DecoderNamespace = "EXT_mmvec";
29264 let opNewValue = 2;
29266 def V6_vS32b_nt_new_npred_ai : HInst<
29267 (outs),
29268 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29269 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29270 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29271 let Inst{7-3} = 0b01111;
29272 let Inst{31-21} = 0b00101000111;
29273 let isPredicated = 1;
29274 let isPredicatedFalse = 1;
29275 let addrMode = BaseImmOffset;
29276 let accessSize = HVXVectorAccess;
29277 let isNVStore = 1;
29278 let isCVI = 1;
29279 let CVINew = 1;
29280 let isNewValue = 1;
29281 let isNonTemporal = 1;
29282 let mayStore = 1;
29283 let BaseOpcode = "V6_vS32b_ai";
29284 let DecoderNamespace = "EXT_mmvec";
29285 let opNewValue = 3;
29287 def V6_vS32b_nt_new_npred_pi : HInst<
29288 (outs IntRegs:$Rx32),
29289 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29290 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29291 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29292 let Inst{7-3} = 0b01111;
29293 let Inst{13-13} = 0b0;
29294 let Inst{31-21} = 0b00101001111;
29295 let isPredicated = 1;
29296 let isPredicatedFalse = 1;
29297 let addrMode = PostInc;
29298 let accessSize = HVXVectorAccess;
29299 let isNVStore = 1;
29300 let isCVI = 1;
29301 let CVINew = 1;
29302 let isNewValue = 1;
29303 let isNonTemporal = 1;
29304 let mayStore = 1;
29305 let BaseOpcode = "V6_vS32b_pi";
29306 let DecoderNamespace = "EXT_mmvec";
29307 let opNewValue = 4;
29308 let Constraints = "$Rx32 = $Rx32in";
29310 def V6_vS32b_nt_new_npred_ppu : HInst<
29311 (outs IntRegs:$Rx32),
29312 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29313 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29314 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29315 let Inst{10-3} = 0b00001111;
29316 let Inst{31-21} = 0b00101011111;
29317 let isPredicated = 1;
29318 let isPredicatedFalse = 1;
29319 let addrMode = PostInc;
29320 let accessSize = HVXVectorAccess;
29321 let isNVStore = 1;
29322 let isCVI = 1;
29323 let CVINew = 1;
29324 let isNewValue = 1;
29325 let isNonTemporal = 1;
29326 let mayStore = 1;
29327 let BaseOpcode = "V6_vS32b_ppu";
29328 let DecoderNamespace = "EXT_mmvec";
29329 let opNewValue = 4;
29330 let Constraints = "$Rx32 = $Rx32in";
29332 def V6_vS32b_nt_new_pi : HInst<
29333 (outs IntRegs:$Rx32),
29334 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29335 "vmem($Rx32++#$Ii):nt = $Os8.new",
29336 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29337 let Inst{7-3} = 0b00100;
29338 let Inst{13-11} = 0b000;
29339 let Inst{31-21} = 0b00101001011;
29340 let addrMode = PostInc;
29341 let accessSize = HVXVectorAccess;
29342 let isNVStore = 1;
29343 let isCVI = 1;
29344 let CVINew = 1;
29345 let isNewValue = 1;
29346 let isNonTemporal = 1;
29347 let mayStore = 1;
29348 let BaseOpcode = "V6_vS32b_pi";
29349 let CextOpcode = "V6_vS32b_nt_new";
29350 let isPredicable = 1;
29351 let DecoderNamespace = "EXT_mmvec";
29352 let opNewValue = 3;
29353 let Constraints = "$Rx32 = $Rx32in";
29355 def V6_vS32b_nt_new_ppu : HInst<
29356 (outs IntRegs:$Rx32),
29357 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29358 "vmem($Rx32++$Mu2):nt = $Os8.new",
29359 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
29360 let Inst{12-3} = 0b0000000100;
29361 let Inst{31-21} = 0b00101011011;
29362 let addrMode = PostInc;
29363 let accessSize = HVXVectorAccess;
29364 let isNVStore = 1;
29365 let isCVI = 1;
29366 let CVINew = 1;
29367 let isNewValue = 1;
29368 let isNonTemporal = 1;
29369 let mayStore = 1;
29370 let BaseOpcode = "V6_vS32b_ppu";
29371 let isPredicable = 1;
29372 let DecoderNamespace = "EXT_mmvec";
29373 let opNewValue = 3;
29374 let Constraints = "$Rx32 = $Rx32in";
29376 def V6_vS32b_nt_new_pred_ai : HInst<
29377 (outs),
29378 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
29379 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29380 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
29381 let Inst{7-3} = 0b01010;
29382 let Inst{31-21} = 0b00101000111;
29383 let isPredicated = 1;
29384 let addrMode = BaseImmOffset;
29385 let accessSize = HVXVectorAccess;
29386 let isNVStore = 1;
29387 let isCVI = 1;
29388 let CVINew = 1;
29389 let isNewValue = 1;
29390 let isNonTemporal = 1;
29391 let mayStore = 1;
29392 let BaseOpcode = "V6_vS32b_ai";
29393 let DecoderNamespace = "EXT_mmvec";
29394 let opNewValue = 3;
29396 def V6_vS32b_nt_new_pred_pi : HInst<
29397 (outs IntRegs:$Rx32),
29398 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
29399 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29400 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
29401 let Inst{7-3} = 0b01010;
29402 let Inst{13-13} = 0b0;
29403 let Inst{31-21} = 0b00101001111;
29404 let isPredicated = 1;
29405 let addrMode = PostInc;
29406 let accessSize = HVXVectorAccess;
29407 let isNVStore = 1;
29408 let isCVI = 1;
29409 let CVINew = 1;
29410 let isNewValue = 1;
29411 let isNonTemporal = 1;
29412 let mayStore = 1;
29413 let BaseOpcode = "V6_vS32b_pi";
29414 let DecoderNamespace = "EXT_mmvec";
29415 let opNewValue = 4;
29416 let Constraints = "$Rx32 = $Rx32in";
29418 def V6_vS32b_nt_new_pred_ppu : HInst<
29419 (outs IntRegs:$Rx32),
29420 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
29421 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
29422 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
29423 let Inst{10-3} = 0b00001010;
29424 let Inst{31-21} = 0b00101011111;
29425 let isPredicated = 1;
29426 let addrMode = PostInc;
29427 let accessSize = HVXVectorAccess;
29428 let isNVStore = 1;
29429 let isCVI = 1;
29430 let CVINew = 1;
29431 let isNewValue = 1;
29432 let isNonTemporal = 1;
29433 let mayStore = 1;
29434 let BaseOpcode = "V6_vS32b_ppu";
29435 let DecoderNamespace = "EXT_mmvec";
29436 let opNewValue = 4;
29437 let Constraints = "$Rx32 = $Rx32in";
29439 def V6_vS32b_nt_npred_ai : HInst<
29440 (outs),
29441 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29442 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29443 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29444 let Inst{7-5} = 0b001;
29445 let Inst{31-21} = 0b00101000111;
29446 let isPredicated = 1;
29447 let isPredicatedFalse = 1;
29448 let addrMode = BaseImmOffset;
29449 let accessSize = HVXVectorAccess;
29450 let isCVI = 1;
29451 let isHVXALU = 1;
29452 let isNonTemporal = 1;
29453 let mayStore = 1;
29454 let BaseOpcode = "V6_vS32b_ai";
29455 let isNVStorable = 1;
29456 let DecoderNamespace = "EXT_mmvec";
29458 def V6_vS32b_nt_npred_pi : HInst<
29459 (outs IntRegs:$Rx32),
29460 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29461 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29462 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29463 let Inst{7-5} = 0b001;
29464 let Inst{13-13} = 0b0;
29465 let Inst{31-21} = 0b00101001111;
29466 let isPredicated = 1;
29467 let isPredicatedFalse = 1;
29468 let addrMode = PostInc;
29469 let accessSize = HVXVectorAccess;
29470 let isCVI = 1;
29471 let isHVXALU = 1;
29472 let isNonTemporal = 1;
29473 let mayStore = 1;
29474 let BaseOpcode = "V6_vS32b_pi";
29475 let isNVStorable = 1;
29476 let DecoderNamespace = "EXT_mmvec";
29477 let Constraints = "$Rx32 = $Rx32in";
29479 def V6_vS32b_nt_npred_ppu : HInst<
29480 (outs IntRegs:$Rx32),
29481 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29482 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29483 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29484 let Inst{10-5} = 0b000001;
29485 let Inst{31-21} = 0b00101011111;
29486 let isPredicated = 1;
29487 let isPredicatedFalse = 1;
29488 let addrMode = PostInc;
29489 let accessSize = HVXVectorAccess;
29490 let isCVI = 1;
29491 let isHVXALU = 1;
29492 let isNonTemporal = 1;
29493 let mayStore = 1;
29494 let BaseOpcode = "V6_vS32b_ppu";
29495 let isNVStorable = 1;
29496 let DecoderNamespace = "EXT_mmvec";
29497 let Constraints = "$Rx32 = $Rx32in";
29499 def V6_vS32b_nt_nqpred_ai : HInst<
29500 (outs),
29501 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29502 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29503 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29504 let Inst{7-5} = 0b001;
29505 let Inst{31-21} = 0b00101000110;
29506 let addrMode = BaseImmOffset;
29507 let accessSize = HVXVectorAccess;
29508 let isCVI = 1;
29509 let isHVXALU = 1;
29510 let isNonTemporal = 1;
29511 let mayStore = 1;
29512 let DecoderNamespace = "EXT_mmvec";
29514 def V6_vS32b_nt_nqpred_pi : HInst<
29515 (outs IntRegs:$Rx32),
29516 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29517 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29518 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29519 let Inst{7-5} = 0b001;
29520 let Inst{13-13} = 0b0;
29521 let Inst{31-21} = 0b00101001110;
29522 let addrMode = PostInc;
29523 let accessSize = HVXVectorAccess;
29524 let isCVI = 1;
29525 let isHVXALU = 1;
29526 let isNonTemporal = 1;
29527 let mayStore = 1;
29528 let DecoderNamespace = "EXT_mmvec";
29529 let Constraints = "$Rx32 = $Rx32in";
29531 def V6_vS32b_nt_nqpred_ppu : HInst<
29532 (outs IntRegs:$Rx32),
29533 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29534 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29535 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29536 let Inst{10-5} = 0b000001;
29537 let Inst{31-21} = 0b00101011110;
29538 let addrMode = PostInc;
29539 let accessSize = HVXVectorAccess;
29540 let isCVI = 1;
29541 let isHVXALU = 1;
29542 let isNonTemporal = 1;
29543 let mayStore = 1;
29544 let DecoderNamespace = "EXT_mmvec";
29545 let Constraints = "$Rx32 = $Rx32in";
29547 def V6_vS32b_nt_pi : HInst<
29548 (outs IntRegs:$Rx32),
29549 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29550 "vmem($Rx32++#$Ii):nt = $Vs32",
29551 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29552 let Inst{7-5} = 0b000;
29553 let Inst{13-11} = 0b000;
29554 let Inst{31-21} = 0b00101001011;
29555 let addrMode = PostInc;
29556 let accessSize = HVXVectorAccess;
29557 let isCVI = 1;
29558 let isHVXALU = 1;
29559 let isNonTemporal = 1;
29560 let mayStore = 1;
29561 let BaseOpcode = "V6_vS32b_pi";
29562 let CextOpcode = "V6_vS32b_nt";
29563 let isNVStorable = 1;
29564 let isPredicable = 1;
29565 let DecoderNamespace = "EXT_mmvec";
29566 let Constraints = "$Rx32 = $Rx32in";
29568 def V6_vS32b_nt_ppu : HInst<
29569 (outs IntRegs:$Rx32),
29570 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29571 "vmem($Rx32++$Mu2):nt = $Vs32",
29572 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29573 let Inst{12-5} = 0b00000000;
29574 let Inst{31-21} = 0b00101011011;
29575 let addrMode = PostInc;
29576 let accessSize = HVXVectorAccess;
29577 let isCVI = 1;
29578 let isHVXALU = 1;
29579 let isNonTemporal = 1;
29580 let mayStore = 1;
29581 let BaseOpcode = "V6_vS32b_ppu";
29582 let isNVStorable = 1;
29583 let isPredicable = 1;
29584 let DecoderNamespace = "EXT_mmvec";
29585 let Constraints = "$Rx32 = $Rx32in";
29587 def V6_vS32b_nt_pred_ai : HInst<
29588 (outs),
29589 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29590 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
29591 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29592 let Inst{7-5} = 0b000;
29593 let Inst{31-21} = 0b00101000111;
29594 let isPredicated = 1;
29595 let addrMode = BaseImmOffset;
29596 let accessSize = HVXVectorAccess;
29597 let isCVI = 1;
29598 let isHVXALU = 1;
29599 let isNonTemporal = 1;
29600 let mayStore = 1;
29601 let BaseOpcode = "V6_vS32b_ai";
29602 let isNVStorable = 1;
29603 let DecoderNamespace = "EXT_mmvec";
29605 def V6_vS32b_nt_pred_pi : HInst<
29606 (outs IntRegs:$Rx32),
29607 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29608 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
29609 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29610 let Inst{7-5} = 0b000;
29611 let Inst{13-13} = 0b0;
29612 let Inst{31-21} = 0b00101001111;
29613 let isPredicated = 1;
29614 let addrMode = PostInc;
29615 let accessSize = HVXVectorAccess;
29616 let isCVI = 1;
29617 let isHVXALU = 1;
29618 let isNonTemporal = 1;
29619 let mayStore = 1;
29620 let BaseOpcode = "V6_vS32b_pi";
29621 let isNVStorable = 1;
29622 let DecoderNamespace = "EXT_mmvec";
29623 let Constraints = "$Rx32 = $Rx32in";
29625 def V6_vS32b_nt_pred_ppu : HInst<
29626 (outs IntRegs:$Rx32),
29627 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29628 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
29629 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29630 let Inst{10-5} = 0b000000;
29631 let Inst{31-21} = 0b00101011111;
29632 let isPredicated = 1;
29633 let addrMode = PostInc;
29634 let accessSize = HVXVectorAccess;
29635 let isCVI = 1;
29636 let isHVXALU = 1;
29637 let isNonTemporal = 1;
29638 let mayStore = 1;
29639 let BaseOpcode = "V6_vS32b_ppu";
29640 let isNVStorable = 1;
29641 let DecoderNamespace = "EXT_mmvec";
29642 let Constraints = "$Rx32 = $Rx32in";
29644 def V6_vS32b_nt_qpred_ai : HInst<
29645 (outs),
29646 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29647 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
29648 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29649 let Inst{7-5} = 0b000;
29650 let Inst{31-21} = 0b00101000110;
29651 let addrMode = BaseImmOffset;
29652 let accessSize = HVXVectorAccess;
29653 let isCVI = 1;
29654 let isHVXALU = 1;
29655 let isNonTemporal = 1;
29656 let mayStore = 1;
29657 let DecoderNamespace = "EXT_mmvec";
29659 def V6_vS32b_nt_qpred_pi : HInst<
29660 (outs IntRegs:$Rx32),
29661 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29662 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
29663 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29664 let Inst{7-5} = 0b000;
29665 let Inst{13-13} = 0b0;
29666 let Inst{31-21} = 0b00101001110;
29667 let addrMode = PostInc;
29668 let accessSize = HVXVectorAccess;
29669 let isCVI = 1;
29670 let isHVXALU = 1;
29671 let isNonTemporal = 1;
29672 let mayStore = 1;
29673 let DecoderNamespace = "EXT_mmvec";
29674 let Constraints = "$Rx32 = $Rx32in";
29676 def V6_vS32b_nt_qpred_ppu : HInst<
29677 (outs IntRegs:$Rx32),
29678 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29679 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
29680 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29681 let Inst{10-5} = 0b000000;
29682 let Inst{31-21} = 0b00101011110;
29683 let addrMode = PostInc;
29684 let accessSize = HVXVectorAccess;
29685 let isCVI = 1;
29686 let isHVXALU = 1;
29687 let isNonTemporal = 1;
29688 let mayStore = 1;
29689 let DecoderNamespace = "EXT_mmvec";
29690 let Constraints = "$Rx32 = $Rx32in";
29692 def V6_vS32b_pi : HInst<
29693 (outs IntRegs:$Rx32),
29694 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29695 "vmem($Rx32++#$Ii) = $Vs32",
29696 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm {
29697 let Inst{7-5} = 0b000;
29698 let Inst{13-11} = 0b000;
29699 let Inst{31-21} = 0b00101001001;
29700 let addrMode = PostInc;
29701 let accessSize = HVXVectorAccess;
29702 let isCVI = 1;
29703 let isHVXALU = 1;
29704 let mayStore = 1;
29705 let BaseOpcode = "V6_vS32b_pi";
29706 let CextOpcode = "V6_vS32b";
29707 let isNVStorable = 1;
29708 let isPredicable = 1;
29709 let DecoderNamespace = "EXT_mmvec";
29710 let Constraints = "$Rx32 = $Rx32in";
29712 def V6_vS32b_ppu : HInst<
29713 (outs IntRegs:$Rx32),
29714 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29715 "vmem($Rx32++$Mu2) = $Vs32",
29716 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
29717 let Inst{12-5} = 0b00000000;
29718 let Inst{31-21} = 0b00101011001;
29719 let addrMode = PostInc;
29720 let accessSize = HVXVectorAccess;
29721 let isCVI = 1;
29722 let isHVXALU = 1;
29723 let mayStore = 1;
29724 let BaseOpcode = "V6_vS32b_ppu";
29725 let isNVStorable = 1;
29726 let isPredicable = 1;
29727 let DecoderNamespace = "EXT_mmvec";
29728 let Constraints = "$Rx32 = $Rx32in";
29730 def V6_vS32b_pred_ai : HInst<
29731 (outs),
29732 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29733 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
29734 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
29735 let Inst{7-5} = 0b000;
29736 let Inst{31-21} = 0b00101000101;
29737 let isPredicated = 1;
29738 let addrMode = BaseImmOffset;
29739 let accessSize = HVXVectorAccess;
29740 let isCVI = 1;
29741 let isHVXALU = 1;
29742 let mayStore = 1;
29743 let BaseOpcode = "V6_vS32b_ai";
29744 let isNVStorable = 1;
29745 let DecoderNamespace = "EXT_mmvec";
29747 def V6_vS32b_pred_pi : HInst<
29748 (outs IntRegs:$Rx32),
29749 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29750 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
29751 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
29752 let Inst{7-5} = 0b000;
29753 let Inst{13-13} = 0b0;
29754 let Inst{31-21} = 0b00101001101;
29755 let isPredicated = 1;
29756 let addrMode = PostInc;
29757 let accessSize = HVXVectorAccess;
29758 let isCVI = 1;
29759 let isHVXALU = 1;
29760 let mayStore = 1;
29761 let BaseOpcode = "V6_vS32b_pi";
29762 let isNVStorable = 1;
29763 let DecoderNamespace = "EXT_mmvec";
29764 let Constraints = "$Rx32 = $Rx32in";
29766 def V6_vS32b_pred_ppu : HInst<
29767 (outs IntRegs:$Rx32),
29768 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29769 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
29770 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
29771 let Inst{10-5} = 0b000000;
29772 let Inst{31-21} = 0b00101011101;
29773 let isPredicated = 1;
29774 let addrMode = PostInc;
29775 let accessSize = HVXVectorAccess;
29776 let isCVI = 1;
29777 let isHVXALU = 1;
29778 let mayStore = 1;
29779 let BaseOpcode = "V6_vS32b_ppu";
29780 let isNVStorable = 1;
29781 let DecoderNamespace = "EXT_mmvec";
29782 let Constraints = "$Rx32 = $Rx32in";
29784 def V6_vS32b_qpred_ai : HInst<
29785 (outs),
29786 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
29787 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
29788 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
29789 let Inst{7-5} = 0b000;
29790 let Inst{31-21} = 0b00101000100;
29791 let addrMode = BaseImmOffset;
29792 let accessSize = HVXVectorAccess;
29793 let isCVI = 1;
29794 let isHVXALU = 1;
29795 let mayStore = 1;
29796 let DecoderNamespace = "EXT_mmvec";
29798 def V6_vS32b_qpred_pi : HInst<
29799 (outs IntRegs:$Rx32),
29800 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
29801 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
29802 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
29803 let Inst{7-5} = 0b000;
29804 let Inst{13-13} = 0b0;
29805 let Inst{31-21} = 0b00101001100;
29806 let addrMode = PostInc;
29807 let accessSize = HVXVectorAccess;
29808 let isCVI = 1;
29809 let isHVXALU = 1;
29810 let mayStore = 1;
29811 let DecoderNamespace = "EXT_mmvec";
29812 let Constraints = "$Rx32 = $Rx32in";
29814 def V6_vS32b_qpred_ppu : HInst<
29815 (outs IntRegs:$Rx32),
29816 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
29817 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
29818 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
29819 let Inst{10-5} = 0b000000;
29820 let Inst{31-21} = 0b00101011100;
29821 let addrMode = PostInc;
29822 let accessSize = HVXVectorAccess;
29823 let isCVI = 1;
29824 let isHVXALU = 1;
29825 let mayStore = 1;
29826 let DecoderNamespace = "EXT_mmvec";
29827 let Constraints = "$Rx32 = $Rx32in";
29829 def V6_vS32b_srls_ai : HInst<
29830 (outs),
29831 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
29832 "vmem($Rt32+#$Ii):scatter_release",
29833 tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
29834 let Inst{7-0} = 0b00101000;
29835 let Inst{12-11} = 0b00;
29836 let Inst{31-21} = 0b00101000001;
29837 let addrMode = BaseImmOffset;
29838 let accessSize = HVXVectorAccess;
29839 let isCVI = 1;
29840 let CVINew = 1;
29841 let mayStore = 1;
29842 let DecoderNamespace = "EXT_mmvec";
29844 def V6_vS32b_srls_pi : HInst<
29845 (outs IntRegs:$Rx32),
29846 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
29847 "vmem($Rx32++#$Ii):scatter_release",
29848 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
29849 let Inst{7-0} = 0b00101000;
29850 let Inst{13-11} = 0b000;
29851 let Inst{31-21} = 0b00101001001;
29852 let addrMode = PostInc;
29853 let accessSize = HVXVectorAccess;
29854 let isCVI = 1;
29855 let CVINew = 1;
29856 let mayStore = 1;
29857 let DecoderNamespace = "EXT_mmvec";
29858 let Constraints = "$Rx32 = $Rx32in";
29860 def V6_vS32b_srls_ppu : HInst<
29861 (outs IntRegs:$Rx32),
29862 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
29863 "vmem($Rx32++$Mu2):scatter_release",
29864 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
29865 let Inst{12-0} = 0b0000000101000;
29866 let Inst{31-21} = 0b00101011001;
29867 let addrMode = PostInc;
29868 let accessSize = HVXVectorAccess;
29869 let isCVI = 1;
29870 let CVINew = 1;
29871 let mayStore = 1;
29872 let DecoderNamespace = "EXT_mmvec";
29873 let Constraints = "$Rx32 = $Rx32in";
29875 def V6_vabs_hf : HInst<
29876 (outs HvxVR:$Vd32),
29877 (ins HvxVR:$Vu32),
29878 "$Vd32.hf = vabs($Vu32.hf)",
29879 tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29880 let Inst{7-5} = 0b100;
29881 let Inst{13-13} = 0b1;
29882 let Inst{31-16} = 0b0001111000000110;
29883 let hasNewValue = 1;
29884 let opNewValue = 0;
29885 let isCVI = 1;
29886 let DecoderNamespace = "EXT_mmvec";
29888 def V6_vabs_sf : HInst<
29889 (outs HvxVR:$Vd32),
29890 (ins HvxVR:$Vu32),
29891 "$Vd32.sf = vabs($Vu32.sf)",
29892 tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
29893 let Inst{7-5} = 0b101;
29894 let Inst{13-13} = 0b1;
29895 let Inst{31-16} = 0b0001111000000110;
29896 let hasNewValue = 1;
29897 let opNewValue = 0;
29898 let isCVI = 1;
29899 let DecoderNamespace = "EXT_mmvec";
29901 def V6_vabsb : HInst<
29902 (outs HvxVR:$Vd32),
29903 (ins HvxVR:$Vu32),
29904 "$Vd32.b = vabs($Vu32.b)",
29905 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29906 let Inst{7-5} = 0b100;
29907 let Inst{13-13} = 0b0;
29908 let Inst{31-16} = 0b0001111000000001;
29909 let hasNewValue = 1;
29910 let opNewValue = 0;
29911 let isCVI = 1;
29912 let isHVXALU = 1;
29913 let isHVXALU2SRC = 1;
29914 let DecoderNamespace = "EXT_mmvec";
29916 def V6_vabsb_alt : HInst<
29917 (outs HvxVR:$Vd32),
29918 (ins HvxVR:$Vu32),
29919 "$Vd32 = vabsb($Vu32)",
29920 PSEUDO, 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_vabsb_sat : HInst<
29929 (outs HvxVR:$Vd32),
29930 (ins HvxVR:$Vu32),
29931 "$Vd32.b = vabs($Vu32.b):sat",
29932 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29933 let Inst{7-5} = 0b101;
29934 let Inst{13-13} = 0b0;
29935 let Inst{31-16} = 0b0001111000000001;
29936 let hasNewValue = 1;
29937 let opNewValue = 0;
29938 let isCVI = 1;
29939 let isHVXALU = 1;
29940 let isHVXALU2SRC = 1;
29941 let DecoderNamespace = "EXT_mmvec";
29943 def V6_vabsb_sat_alt : HInst<
29944 (outs HvxVR:$Vd32),
29945 (ins HvxVR:$Vu32),
29946 "$Vd32 = vabsb($Vu32):sat",
29947 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29948 let hasNewValue = 1;
29949 let opNewValue = 0;
29950 let isCVI = 1;
29951 let isPseudo = 1;
29952 let isCodeGenOnly = 1;
29953 let DecoderNamespace = "EXT_mmvec";
29955 def V6_vabsdiffh : HInst<
29956 (outs HvxVR:$Vd32),
29957 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29958 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29959 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29960 let Inst{7-5} = 0b001;
29961 let Inst{13-13} = 0b0;
29962 let Inst{31-21} = 0b00011100110;
29963 let hasNewValue = 1;
29964 let opNewValue = 0;
29965 let isCVI = 1;
29966 let DecoderNamespace = "EXT_mmvec";
29968 def V6_vabsdiffh_alt : HInst<
29969 (outs HvxVR:$Vd32),
29970 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29971 "$Vd32 = vabsdiffh($Vu32,$Vv32)",
29972 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29973 let hasNewValue = 1;
29974 let opNewValue = 0;
29975 let isCVI = 1;
29976 let isPseudo = 1;
29977 let isCodeGenOnly = 1;
29978 let DecoderNamespace = "EXT_mmvec";
29980 def V6_vabsdiffub : HInst<
29981 (outs HvxVR:$Vd32),
29982 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29983 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29984 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29985 let Inst{7-5} = 0b000;
29986 let Inst{13-13} = 0b0;
29987 let Inst{31-21} = 0b00011100110;
29988 let hasNewValue = 1;
29989 let opNewValue = 0;
29990 let isCVI = 1;
29991 let DecoderNamespace = "EXT_mmvec";
29993 def V6_vabsdiffub_alt : HInst<
29994 (outs HvxVR:$Vd32),
29995 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29996 "$Vd32 = vabsdiffub($Vu32,$Vv32)",
29997 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29998 let hasNewValue = 1;
29999 let opNewValue = 0;
30000 let isCVI = 1;
30001 let isPseudo = 1;
30002 let isCodeGenOnly = 1;
30003 let DecoderNamespace = "EXT_mmvec";
30005 def V6_vabsdiffuh : HInst<
30006 (outs HvxVR:$Vd32),
30007 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30008 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
30009 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
30010 let Inst{7-5} = 0b010;
30011 let Inst{13-13} = 0b0;
30012 let Inst{31-21} = 0b00011100110;
30013 let hasNewValue = 1;
30014 let opNewValue = 0;
30015 let isCVI = 1;
30016 let DecoderNamespace = "EXT_mmvec";
30018 def V6_vabsdiffuh_alt : HInst<
30019 (outs HvxVR:$Vd32),
30020 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30021 "$Vd32 = vabsdiffuh($Vu32,$Vv32)",
30022 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30023 let hasNewValue = 1;
30024 let opNewValue = 0;
30025 let isCVI = 1;
30026 let isPseudo = 1;
30027 let isCodeGenOnly = 1;
30028 let DecoderNamespace = "EXT_mmvec";
30030 def V6_vabsdiffw : HInst<
30031 (outs HvxVR:$Vd32),
30032 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30033 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
30034 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
30035 let Inst{7-5} = 0b011;
30036 let Inst{13-13} = 0b0;
30037 let Inst{31-21} = 0b00011100110;
30038 let hasNewValue = 1;
30039 let opNewValue = 0;
30040 let isCVI = 1;
30041 let DecoderNamespace = "EXT_mmvec";
30043 def V6_vabsdiffw_alt : HInst<
30044 (outs HvxVR:$Vd32),
30045 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30046 "$Vd32 = vabsdiffw($Vu32,$Vv32)",
30047 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30048 let hasNewValue = 1;
30049 let opNewValue = 0;
30050 let isCVI = 1;
30051 let isPseudo = 1;
30052 let isCodeGenOnly = 1;
30053 let DecoderNamespace = "EXT_mmvec";
30055 def V6_vabsh : HInst<
30056 (outs HvxVR:$Vd32),
30057 (ins HvxVR:$Vu32),
30058 "$Vd32.h = vabs($Vu32.h)",
30059 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30060 let Inst{7-5} = 0b000;
30061 let Inst{13-13} = 0b0;
30062 let Inst{31-16} = 0b0001111000000000;
30063 let hasNewValue = 1;
30064 let opNewValue = 0;
30065 let isCVI = 1;
30066 let isHVXALU = 1;
30067 let isHVXALU2SRC = 1;
30068 let DecoderNamespace = "EXT_mmvec";
30070 def V6_vabsh_alt : HInst<
30071 (outs HvxVR:$Vd32),
30072 (ins HvxVR:$Vu32),
30073 "$Vd32 = vabsh($Vu32)",
30074 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30075 let hasNewValue = 1;
30076 let opNewValue = 0;
30077 let isCVI = 1;
30078 let isPseudo = 1;
30079 let isCodeGenOnly = 1;
30080 let DecoderNamespace = "EXT_mmvec";
30082 def V6_vabsh_sat : HInst<
30083 (outs HvxVR:$Vd32),
30084 (ins HvxVR:$Vu32),
30085 "$Vd32.h = vabs($Vu32.h):sat",
30086 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30087 let Inst{7-5} = 0b001;
30088 let Inst{13-13} = 0b0;
30089 let Inst{31-16} = 0b0001111000000000;
30090 let hasNewValue = 1;
30091 let opNewValue = 0;
30092 let isCVI = 1;
30093 let isHVXALU = 1;
30094 let isHVXALU2SRC = 1;
30095 let DecoderNamespace = "EXT_mmvec";
30097 def V6_vabsh_sat_alt : HInst<
30098 (outs HvxVR:$Vd32),
30099 (ins HvxVR:$Vu32),
30100 "$Vd32 = vabsh($Vu32):sat",
30101 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30102 let hasNewValue = 1;
30103 let opNewValue = 0;
30104 let isCVI = 1;
30105 let isPseudo = 1;
30106 let isCodeGenOnly = 1;
30107 let DecoderNamespace = "EXT_mmvec";
30109 def V6_vabsub_alt : HInst<
30110 (outs HvxVR:$Vd32),
30111 (ins HvxVR:$Vu32),
30112 "$Vd32.ub = vabs($Vu32.b)",
30113 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30114 let hasNewValue = 1;
30115 let opNewValue = 0;
30116 let isCVI = 1;
30117 let isPseudo = 1;
30118 let isCodeGenOnly = 1;
30119 let DecoderNamespace = "EXT_mmvec";
30121 def V6_vabsuh_alt : HInst<
30122 (outs HvxVR:$Vd32),
30123 (ins HvxVR:$Vu32),
30124 "$Vd32.uh = vabs($Vu32.h)",
30125 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30126 let hasNewValue = 1;
30127 let opNewValue = 0;
30128 let isCVI = 1;
30129 let isPseudo = 1;
30130 let isCodeGenOnly = 1;
30131 let DecoderNamespace = "EXT_mmvec";
30133 def V6_vabsuw_alt : HInst<
30134 (outs HvxVR:$Vd32),
30135 (ins HvxVR:$Vu32),
30136 "$Vd32.uw = vabs($Vu32.w)",
30137 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
30138 let hasNewValue = 1;
30139 let opNewValue = 0;
30140 let isCVI = 1;
30141 let isPseudo = 1;
30142 let isCodeGenOnly = 1;
30143 let DecoderNamespace = "EXT_mmvec";
30145 def V6_vabsw : HInst<
30146 (outs HvxVR:$Vd32),
30147 (ins HvxVR:$Vu32),
30148 "$Vd32.w = vabs($Vu32.w)",
30149 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30150 let Inst{7-5} = 0b010;
30151 let Inst{13-13} = 0b0;
30152 let Inst{31-16} = 0b0001111000000000;
30153 let hasNewValue = 1;
30154 let opNewValue = 0;
30155 let isCVI = 1;
30156 let isHVXALU = 1;
30157 let isHVXALU2SRC = 1;
30158 let DecoderNamespace = "EXT_mmvec";
30160 def V6_vabsw_alt : HInst<
30161 (outs HvxVR:$Vd32),
30162 (ins HvxVR:$Vu32),
30163 "$Vd32 = vabsw($Vu32)",
30164 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30165 let hasNewValue = 1;
30166 let opNewValue = 0;
30167 let isCVI = 1;
30168 let isPseudo = 1;
30169 let isCodeGenOnly = 1;
30170 let DecoderNamespace = "EXT_mmvec";
30172 def V6_vabsw_sat : HInst<
30173 (outs HvxVR:$Vd32),
30174 (ins HvxVR:$Vu32),
30175 "$Vd32.w = vabs($Vu32.w):sat",
30176 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30177 let Inst{7-5} = 0b011;
30178 let Inst{13-13} = 0b0;
30179 let Inst{31-16} = 0b0001111000000000;
30180 let hasNewValue = 1;
30181 let opNewValue = 0;
30182 let isCVI = 1;
30183 let isHVXALU = 1;
30184 let isHVXALU2SRC = 1;
30185 let DecoderNamespace = "EXT_mmvec";
30187 def V6_vabsw_sat_alt : HInst<
30188 (outs HvxVR:$Vd32),
30189 (ins HvxVR:$Vu32),
30190 "$Vd32 = vabsw($Vu32):sat",
30191 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30192 let hasNewValue = 1;
30193 let opNewValue = 0;
30194 let isCVI = 1;
30195 let isPseudo = 1;
30196 let isCodeGenOnly = 1;
30197 let DecoderNamespace = "EXT_mmvec";
30199 def V6_vadd_hf : HInst<
30200 (outs HvxVR:$Vd32),
30201 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30202 "$Vd32.qf16 = vadd($Vu32.hf,$Vv32.hf)",
30203 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30204 let Inst{7-5} = 0b011;
30205 let Inst{13-13} = 0b1;
30206 let Inst{31-21} = 0b00011111011;
30207 let hasNewValue = 1;
30208 let opNewValue = 0;
30209 let isCVI = 1;
30210 let DecoderNamespace = "EXT_mmvec";
30212 def V6_vadd_hf_hf : HInst<
30213 (outs HvxVR:$Vd32),
30214 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30215 "$Vd32.hf = vadd($Vu32.hf,$Vv32.hf)",
30216 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30217 let Inst{7-5} = 0b111;
30218 let Inst{13-13} = 0b1;
30219 let Inst{31-21} = 0b00011111101;
30220 let hasNewValue = 1;
30221 let opNewValue = 0;
30222 let isCVI = 1;
30223 let DecoderNamespace = "EXT_mmvec";
30225 def V6_vadd_qf16 : HInst<
30226 (outs HvxVR:$Vd32),
30227 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30228 "$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.qf16)",
30229 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30230 let Inst{7-5} = 0b010;
30231 let Inst{13-13} = 0b1;
30232 let Inst{31-21} = 0b00011111011;
30233 let hasNewValue = 1;
30234 let opNewValue = 0;
30235 let isCVI = 1;
30236 let DecoderNamespace = "EXT_mmvec";
30238 def V6_vadd_qf16_mix : HInst<
30239 (outs HvxVR:$Vd32),
30240 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30241 "$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.hf)",
30242 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30243 let Inst{7-5} = 0b100;
30244 let Inst{13-13} = 0b1;
30245 let Inst{31-21} = 0b00011111011;
30246 let hasNewValue = 1;
30247 let opNewValue = 0;
30248 let isCVI = 1;
30249 let DecoderNamespace = "EXT_mmvec";
30251 def V6_vadd_qf32 : HInst<
30252 (outs HvxVR:$Vd32),
30253 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30254 "$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.qf32)",
30255 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30256 let Inst{7-5} = 0b000;
30257 let Inst{13-13} = 0b1;
30258 let Inst{31-21} = 0b00011111101;
30259 let hasNewValue = 1;
30260 let opNewValue = 0;
30261 let isCVI = 1;
30262 let DecoderNamespace = "EXT_mmvec";
30264 def V6_vadd_qf32_mix : HInst<
30265 (outs HvxVR:$Vd32),
30266 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30267 "$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.sf)",
30268 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30269 let Inst{7-5} = 0b010;
30270 let Inst{13-13} = 0b1;
30271 let Inst{31-21} = 0b00011111101;
30272 let hasNewValue = 1;
30273 let opNewValue = 0;
30274 let isCVI = 1;
30275 let DecoderNamespace = "EXT_mmvec";
30277 def V6_vadd_sf : HInst<
30278 (outs HvxVR:$Vd32),
30279 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30280 "$Vd32.qf32 = vadd($Vu32.sf,$Vv32.sf)",
30281 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
30282 let Inst{7-5} = 0b001;
30283 let Inst{13-13} = 0b1;
30284 let Inst{31-21} = 0b00011111101;
30285 let hasNewValue = 1;
30286 let opNewValue = 0;
30287 let isCVI = 1;
30288 let DecoderNamespace = "EXT_mmvec";
30290 def V6_vadd_sf_bf : HInst<
30291 (outs HvxWR:$Vdd32),
30292 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30293 "$Vdd32.sf = vadd($Vu32.bf,$Vv32.bf)",
30294 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
30295 let Inst{7-5} = 0b110;
30296 let Inst{13-13} = 0b1;
30297 let Inst{31-21} = 0b00011101010;
30298 let hasNewValue = 1;
30299 let opNewValue = 0;
30300 let isCVI = 1;
30301 let DecoderNamespace = "EXT_mmvec";
30303 def V6_vadd_sf_hf : HInst<
30304 (outs HvxWR:$Vdd32),
30305 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30306 "$Vdd32.sf = vadd($Vu32.hf,$Vv32.hf)",
30307 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30308 let Inst{7-5} = 0b100;
30309 let Inst{13-13} = 0b1;
30310 let Inst{31-21} = 0b00011111100;
30311 let hasNewValue = 1;
30312 let opNewValue = 0;
30313 let isCVI = 1;
30314 let DecoderNamespace = "EXT_mmvec";
30316 def V6_vadd_sf_sf : HInst<
30317 (outs HvxVR:$Vd32),
30318 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30319 "$Vd32.sf = vadd($Vu32.sf,$Vv32.sf)",
30320 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
30321 let Inst{7-5} = 0b110;
30322 let Inst{13-13} = 0b1;
30323 let Inst{31-21} = 0b00011111100;
30324 let hasNewValue = 1;
30325 let opNewValue = 0;
30326 let isCVI = 1;
30327 let DecoderNamespace = "EXT_mmvec";
30329 def V6_vaddb : HInst<
30330 (outs HvxVR:$Vd32),
30331 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30332 "$Vd32.b = vadd($Vu32.b,$Vv32.b)",
30333 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30334 let Inst{7-5} = 0b110;
30335 let Inst{13-13} = 0b0;
30336 let Inst{31-21} = 0b00011111101;
30337 let hasNewValue = 1;
30338 let opNewValue = 0;
30339 let isCVI = 1;
30340 let isHVXALU = 1;
30341 let isHVXALU2SRC = 1;
30342 let DecoderNamespace = "EXT_mmvec";
30344 def V6_vaddb_alt : HInst<
30345 (outs HvxVR:$Vd32),
30346 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30347 "$Vd32 = vaddb($Vu32,$Vv32)",
30348 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30349 let hasNewValue = 1;
30350 let opNewValue = 0;
30351 let isCVI = 1;
30352 let isPseudo = 1;
30353 let isCodeGenOnly = 1;
30354 let DecoderNamespace = "EXT_mmvec";
30356 def V6_vaddb_dv : HInst<
30357 (outs HvxWR:$Vdd32),
30358 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30359 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
30360 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30361 let Inst{7-5} = 0b100;
30362 let Inst{13-13} = 0b0;
30363 let Inst{31-21} = 0b00011100011;
30364 let hasNewValue = 1;
30365 let opNewValue = 0;
30366 let isCVI = 1;
30367 let DecoderNamespace = "EXT_mmvec";
30369 def V6_vaddb_dv_alt : HInst<
30370 (outs HvxWR:$Vdd32),
30371 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30372 "$Vdd32 = vaddb($Vuu32,$Vvv32)",
30373 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30374 let hasNewValue = 1;
30375 let opNewValue = 0;
30376 let isCVI = 1;
30377 let isPseudo = 1;
30378 let isCodeGenOnly = 1;
30379 let DecoderNamespace = "EXT_mmvec";
30381 def V6_vaddbnq : HInst<
30382 (outs HvxVR:$Vx32),
30383 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30384 "if (!$Qv4) $Vx32.b += $Vu32.b",
30385 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30386 let Inst{7-5} = 0b011;
30387 let Inst{13-13} = 0b1;
30388 let Inst{21-16} = 0b000001;
30389 let Inst{31-24} = 0b00011110;
30390 let hasNewValue = 1;
30391 let opNewValue = 0;
30392 let isAccumulator = 1;
30393 let isCVI = 1;
30394 let isHVXALU = 1;
30395 let isHVXALU2SRC = 1;
30396 let DecoderNamespace = "EXT_mmvec";
30397 let Constraints = "$Vx32 = $Vx32in";
30399 def V6_vaddbnq_alt : HInst<
30400 (outs HvxVR:$Vx32),
30401 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30402 "if (!$Qv4.b) $Vx32.b += $Vu32.b",
30403 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30404 let hasNewValue = 1;
30405 let opNewValue = 0;
30406 let isAccumulator = 1;
30407 let isCVI = 1;
30408 let isPseudo = 1;
30409 let isCodeGenOnly = 1;
30410 let DecoderNamespace = "EXT_mmvec";
30411 let Constraints = "$Vx32 = $Vx32in";
30413 def V6_vaddbq : HInst<
30414 (outs HvxVR:$Vx32),
30415 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30416 "if ($Qv4) $Vx32.b += $Vu32.b",
30417 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30418 let Inst{7-5} = 0b000;
30419 let Inst{13-13} = 0b1;
30420 let Inst{21-16} = 0b000001;
30421 let Inst{31-24} = 0b00011110;
30422 let hasNewValue = 1;
30423 let opNewValue = 0;
30424 let isAccumulator = 1;
30425 let isCVI = 1;
30426 let isHVXALU = 1;
30427 let isHVXALU2SRC = 1;
30428 let DecoderNamespace = "EXT_mmvec";
30429 let Constraints = "$Vx32 = $Vx32in";
30431 def V6_vaddbq_alt : HInst<
30432 (outs HvxVR:$Vx32),
30433 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30434 "if ($Qv4.b) $Vx32.b += $Vu32.b",
30435 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30436 let hasNewValue = 1;
30437 let opNewValue = 0;
30438 let isAccumulator = 1;
30439 let isCVI = 1;
30440 let isPseudo = 1;
30441 let isCodeGenOnly = 1;
30442 let DecoderNamespace = "EXT_mmvec";
30443 let Constraints = "$Vx32 = $Vx32in";
30445 def V6_vaddbsat : HInst<
30446 (outs HvxVR:$Vd32),
30447 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30448 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
30449 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30450 let Inst{7-5} = 0b000;
30451 let Inst{13-13} = 0b0;
30452 let Inst{31-21} = 0b00011111000;
30453 let hasNewValue = 1;
30454 let opNewValue = 0;
30455 let isCVI = 1;
30456 let isHVXALU = 1;
30457 let isHVXALU2SRC = 1;
30458 let DecoderNamespace = "EXT_mmvec";
30460 def V6_vaddbsat_alt : HInst<
30461 (outs HvxVR:$Vd32),
30462 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30463 "$Vd32 = vaddb($Vu32,$Vv32):sat",
30464 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30465 let hasNewValue = 1;
30466 let opNewValue = 0;
30467 let isCVI = 1;
30468 let isPseudo = 1;
30469 let isCodeGenOnly = 1;
30470 let DecoderNamespace = "EXT_mmvec";
30472 def V6_vaddbsat_dv : HInst<
30473 (outs HvxWR:$Vdd32),
30474 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30475 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
30476 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
30477 let Inst{7-5} = 0b000;
30478 let Inst{13-13} = 0b0;
30479 let Inst{31-21} = 0b00011110101;
30480 let hasNewValue = 1;
30481 let opNewValue = 0;
30482 let isCVI = 1;
30483 let DecoderNamespace = "EXT_mmvec";
30485 def V6_vaddbsat_dv_alt : HInst<
30486 (outs HvxWR:$Vdd32),
30487 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30488 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
30489 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30490 let hasNewValue = 1;
30491 let opNewValue = 0;
30492 let isCVI = 1;
30493 let isPseudo = 1;
30494 let isCodeGenOnly = 1;
30495 let DecoderNamespace = "EXT_mmvec";
30497 def V6_vaddcarry : HInst<
30498 (outs HvxVR:$Vd32, HvxQR:$Qx4),
30499 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
30500 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
30501 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
30502 let Inst{7-7} = 0b0;
30503 let Inst{13-13} = 0b1;
30504 let Inst{31-21} = 0b00011100101;
30505 let hasNewValue = 1;
30506 let opNewValue = 0;
30507 let isCVI = 1;
30508 let isHVXALU = 1;
30509 let isHVXALU2SRC = 1;
30510 let DecoderNamespace = "EXT_mmvec";
30511 let Constraints = "$Qx4 = $Qx4in";
30513 def V6_vaddcarryo : HInst<
30514 (outs HvxVR:$Vd32, HvxQR:$Qe4),
30515 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30516 "$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
30517 tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
30518 let Inst{7-7} = 0b0;
30519 let Inst{13-13} = 0b1;
30520 let Inst{31-21} = 0b00011101101;
30521 let hasNewValue = 1;
30522 let opNewValue = 0;
30523 let isCVI = 1;
30524 let isHVXALU = 1;
30525 let isHVXALU2SRC = 1;
30526 let DecoderNamespace = "EXT_mmvec";
30528 def V6_vaddcarrysat : HInst<
30529 (outs HvxVR:$Vd32),
30530 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
30531 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
30532 tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
30533 let Inst{7-7} = 0b0;
30534 let Inst{13-13} = 0b1;
30535 let Inst{31-21} = 0b00011101100;
30536 let hasNewValue = 1;
30537 let opNewValue = 0;
30538 let isCVI = 1;
30539 let isHVXALU = 1;
30540 let isHVXALU2SRC = 1;
30541 let DecoderNamespace = "EXT_mmvec";
30543 def V6_vaddclbh : HInst<
30544 (outs HvxVR:$Vd32),
30545 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30546 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
30547 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30548 let Inst{7-5} = 0b000;
30549 let Inst{13-13} = 0b1;
30550 let Inst{31-21} = 0b00011111000;
30551 let hasNewValue = 1;
30552 let opNewValue = 0;
30553 let isCVI = 1;
30554 let DecoderNamespace = "EXT_mmvec";
30556 def V6_vaddclbw : HInst<
30557 (outs HvxVR:$Vd32),
30558 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30559 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
30560 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
30561 let Inst{7-5} = 0b001;
30562 let Inst{13-13} = 0b1;
30563 let Inst{31-21} = 0b00011111000;
30564 let hasNewValue = 1;
30565 let opNewValue = 0;
30566 let isCVI = 1;
30567 let DecoderNamespace = "EXT_mmvec";
30569 def V6_vaddh : HInst<
30570 (outs HvxVR:$Vd32),
30571 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30572 "$Vd32.h = vadd($Vu32.h,$Vv32.h)",
30573 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30574 let Inst{7-5} = 0b111;
30575 let Inst{13-13} = 0b0;
30576 let Inst{31-21} = 0b00011111101;
30577 let hasNewValue = 1;
30578 let opNewValue = 0;
30579 let isCVI = 1;
30580 let isHVXALU = 1;
30581 let isHVXALU2SRC = 1;
30582 let DecoderNamespace = "EXT_mmvec";
30584 def V6_vaddh_alt : HInst<
30585 (outs HvxVR:$Vd32),
30586 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30587 "$Vd32 = vaddh($Vu32,$Vv32)",
30588 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30589 let hasNewValue = 1;
30590 let opNewValue = 0;
30591 let isCVI = 1;
30592 let isPseudo = 1;
30593 let isCodeGenOnly = 1;
30594 let DecoderNamespace = "EXT_mmvec";
30596 def V6_vaddh_dv : HInst<
30597 (outs HvxWR:$Vdd32),
30598 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30599 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
30600 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30601 let Inst{7-5} = 0b101;
30602 let Inst{13-13} = 0b0;
30603 let Inst{31-21} = 0b00011100011;
30604 let hasNewValue = 1;
30605 let opNewValue = 0;
30606 let isCVI = 1;
30607 let DecoderNamespace = "EXT_mmvec";
30609 def V6_vaddh_dv_alt : HInst<
30610 (outs HvxWR:$Vdd32),
30611 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30612 "$Vdd32 = vaddh($Vuu32,$Vvv32)",
30613 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30614 let hasNewValue = 1;
30615 let opNewValue = 0;
30616 let isCVI = 1;
30617 let isPseudo = 1;
30618 let isCodeGenOnly = 1;
30619 let DecoderNamespace = "EXT_mmvec";
30621 def V6_vaddhnq : HInst<
30622 (outs HvxVR:$Vx32),
30623 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30624 "if (!$Qv4) $Vx32.h += $Vu32.h",
30625 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30626 let Inst{7-5} = 0b100;
30627 let Inst{13-13} = 0b1;
30628 let Inst{21-16} = 0b000001;
30629 let Inst{31-24} = 0b00011110;
30630 let hasNewValue = 1;
30631 let opNewValue = 0;
30632 let isAccumulator = 1;
30633 let isCVI = 1;
30634 let isHVXALU = 1;
30635 let isHVXALU2SRC = 1;
30636 let DecoderNamespace = "EXT_mmvec";
30637 let Constraints = "$Vx32 = $Vx32in";
30639 def V6_vaddhnq_alt : HInst<
30640 (outs HvxVR:$Vx32),
30641 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30642 "if (!$Qv4.h) $Vx32.h += $Vu32.h",
30643 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30644 let hasNewValue = 1;
30645 let opNewValue = 0;
30646 let isAccumulator = 1;
30647 let isCVI = 1;
30648 let isPseudo = 1;
30649 let isCodeGenOnly = 1;
30650 let DecoderNamespace = "EXT_mmvec";
30651 let Constraints = "$Vx32 = $Vx32in";
30653 def V6_vaddhq : HInst<
30654 (outs HvxVR:$Vx32),
30655 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30656 "if ($Qv4) $Vx32.h += $Vu32.h",
30657 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
30658 let Inst{7-5} = 0b001;
30659 let Inst{13-13} = 0b1;
30660 let Inst{21-16} = 0b000001;
30661 let Inst{31-24} = 0b00011110;
30662 let hasNewValue = 1;
30663 let opNewValue = 0;
30664 let isAccumulator = 1;
30665 let isCVI = 1;
30666 let isHVXALU = 1;
30667 let isHVXALU2SRC = 1;
30668 let DecoderNamespace = "EXT_mmvec";
30669 let Constraints = "$Vx32 = $Vx32in";
30671 def V6_vaddhq_alt : HInst<
30672 (outs HvxVR:$Vx32),
30673 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30674 "if ($Qv4.h) $Vx32.h += $Vu32.h",
30675 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30676 let hasNewValue = 1;
30677 let opNewValue = 0;
30678 let isAccumulator = 1;
30679 let isCVI = 1;
30680 let isPseudo = 1;
30681 let isCodeGenOnly = 1;
30682 let DecoderNamespace = "EXT_mmvec";
30683 let Constraints = "$Vx32 = $Vx32in";
30685 def V6_vaddhsat : HInst<
30686 (outs HvxVR:$Vd32),
30687 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30688 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
30689 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30690 let Inst{7-5} = 0b011;
30691 let Inst{13-13} = 0b0;
30692 let Inst{31-21} = 0b00011100010;
30693 let hasNewValue = 1;
30694 let opNewValue = 0;
30695 let isCVI = 1;
30696 let isHVXALU = 1;
30697 let isHVXALU2SRC = 1;
30698 let DecoderNamespace = "EXT_mmvec";
30700 def V6_vaddhsat_alt : HInst<
30701 (outs HvxVR:$Vd32),
30702 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30703 "$Vd32 = vaddh($Vu32,$Vv32):sat",
30704 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30705 let hasNewValue = 1;
30706 let opNewValue = 0;
30707 let isCVI = 1;
30708 let isPseudo = 1;
30709 let isCodeGenOnly = 1;
30710 let DecoderNamespace = "EXT_mmvec";
30712 def V6_vaddhsat_dv : HInst<
30713 (outs HvxWR:$Vdd32),
30714 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30715 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
30716 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30717 let Inst{7-5} = 0b001;
30718 let Inst{13-13} = 0b0;
30719 let Inst{31-21} = 0b00011100100;
30720 let hasNewValue = 1;
30721 let opNewValue = 0;
30722 let isCVI = 1;
30723 let DecoderNamespace = "EXT_mmvec";
30725 def V6_vaddhsat_dv_alt : HInst<
30726 (outs HvxWR:$Vdd32),
30727 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30728 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
30729 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30730 let hasNewValue = 1;
30731 let opNewValue = 0;
30732 let isCVI = 1;
30733 let isPseudo = 1;
30734 let isCodeGenOnly = 1;
30735 let DecoderNamespace = "EXT_mmvec";
30737 def V6_vaddhw : HInst<
30738 (outs HvxWR:$Vdd32),
30739 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30740 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
30741 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30742 let Inst{7-5} = 0b100;
30743 let Inst{13-13} = 0b0;
30744 let Inst{31-21} = 0b00011100101;
30745 let hasNewValue = 1;
30746 let opNewValue = 0;
30747 let isCVI = 1;
30748 let DecoderNamespace = "EXT_mmvec";
30750 def V6_vaddhw_acc : HInst<
30751 (outs HvxWR:$Vxx32),
30752 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30753 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
30754 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30755 let Inst{7-5} = 0b010;
30756 let Inst{13-13} = 0b1;
30757 let Inst{31-21} = 0b00011100001;
30758 let hasNewValue = 1;
30759 let opNewValue = 0;
30760 let isAccumulator = 1;
30761 let isCVI = 1;
30762 let DecoderNamespace = "EXT_mmvec";
30763 let Constraints = "$Vxx32 = $Vxx32in";
30765 def V6_vaddhw_acc_alt : HInst<
30766 (outs HvxWR:$Vxx32),
30767 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30768 "$Vxx32 += vaddh($Vu32,$Vv32)",
30769 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30770 let hasNewValue = 1;
30771 let opNewValue = 0;
30772 let isAccumulator = 1;
30773 let isCVI = 1;
30774 let isPseudo = 1;
30775 let isCodeGenOnly = 1;
30776 let DecoderNamespace = "EXT_mmvec";
30777 let Constraints = "$Vxx32 = $Vxx32in";
30779 def V6_vaddhw_alt : HInst<
30780 (outs HvxWR:$Vdd32),
30781 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30782 "$Vdd32 = vaddh($Vu32,$Vv32)",
30783 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30784 let hasNewValue = 1;
30785 let opNewValue = 0;
30786 let isCVI = 1;
30787 let isPseudo = 1;
30788 let isCodeGenOnly = 1;
30789 let DecoderNamespace = "EXT_mmvec";
30791 def V6_vaddubh : HInst<
30792 (outs HvxWR:$Vdd32),
30793 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30794 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
30795 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30796 let Inst{7-5} = 0b010;
30797 let Inst{13-13} = 0b0;
30798 let Inst{31-21} = 0b00011100101;
30799 let hasNewValue = 1;
30800 let opNewValue = 0;
30801 let isCVI = 1;
30802 let DecoderNamespace = "EXT_mmvec";
30804 def V6_vaddubh_acc : HInst<
30805 (outs HvxWR:$Vxx32),
30806 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30807 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
30808 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30809 let Inst{7-5} = 0b101;
30810 let Inst{13-13} = 0b1;
30811 let Inst{31-21} = 0b00011100010;
30812 let hasNewValue = 1;
30813 let opNewValue = 0;
30814 let isAccumulator = 1;
30815 let isCVI = 1;
30816 let DecoderNamespace = "EXT_mmvec";
30817 let Constraints = "$Vxx32 = $Vxx32in";
30819 def V6_vaddubh_acc_alt : HInst<
30820 (outs HvxWR:$Vxx32),
30821 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30822 "$Vxx32 += vaddub($Vu32,$Vv32)",
30823 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30824 let hasNewValue = 1;
30825 let opNewValue = 0;
30826 let isAccumulator = 1;
30827 let isCVI = 1;
30828 let isPseudo = 1;
30829 let isCodeGenOnly = 1;
30830 let DecoderNamespace = "EXT_mmvec";
30831 let Constraints = "$Vxx32 = $Vxx32in";
30833 def V6_vaddubh_alt : HInst<
30834 (outs HvxWR:$Vdd32),
30835 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30836 "$Vdd32 = vaddub($Vu32,$Vv32)",
30837 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30838 let hasNewValue = 1;
30839 let opNewValue = 0;
30840 let isCVI = 1;
30841 let isPseudo = 1;
30842 let isCodeGenOnly = 1;
30843 let DecoderNamespace = "EXT_mmvec";
30845 def V6_vaddubsat : HInst<
30846 (outs HvxVR:$Vd32),
30847 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30848 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
30849 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30850 let Inst{7-5} = 0b001;
30851 let Inst{13-13} = 0b0;
30852 let Inst{31-21} = 0b00011100010;
30853 let hasNewValue = 1;
30854 let opNewValue = 0;
30855 let isCVI = 1;
30856 let isHVXALU = 1;
30857 let isHVXALU2SRC = 1;
30858 let DecoderNamespace = "EXT_mmvec";
30860 def V6_vaddubsat_alt : HInst<
30861 (outs HvxVR:$Vd32),
30862 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30863 "$Vd32 = vaddub($Vu32,$Vv32):sat",
30864 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30865 let hasNewValue = 1;
30866 let opNewValue = 0;
30867 let isCVI = 1;
30868 let isPseudo = 1;
30869 let isCodeGenOnly = 1;
30870 let DecoderNamespace = "EXT_mmvec";
30872 def V6_vaddubsat_dv : HInst<
30873 (outs HvxWR:$Vdd32),
30874 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30875 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
30876 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30877 let Inst{7-5} = 0b111;
30878 let Inst{13-13} = 0b0;
30879 let Inst{31-21} = 0b00011100011;
30880 let hasNewValue = 1;
30881 let opNewValue = 0;
30882 let isCVI = 1;
30883 let DecoderNamespace = "EXT_mmvec";
30885 def V6_vaddubsat_dv_alt : HInst<
30886 (outs HvxWR:$Vdd32),
30887 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30888 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
30889 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30890 let hasNewValue = 1;
30891 let opNewValue = 0;
30892 let isCVI = 1;
30893 let isPseudo = 1;
30894 let isCodeGenOnly = 1;
30895 let DecoderNamespace = "EXT_mmvec";
30897 def V6_vaddububb_sat : HInst<
30898 (outs HvxVR:$Vd32),
30899 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30900 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
30901 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
30902 let Inst{7-5} = 0b100;
30903 let Inst{13-13} = 0b0;
30904 let Inst{31-21} = 0b00011110101;
30905 let hasNewValue = 1;
30906 let opNewValue = 0;
30907 let isCVI = 1;
30908 let isHVXALU = 1;
30909 let isHVXALU2SRC = 1;
30910 let DecoderNamespace = "EXT_mmvec";
30912 def V6_vadduhsat : HInst<
30913 (outs HvxVR:$Vd32),
30914 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30915 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
30916 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30917 let Inst{7-5} = 0b010;
30918 let Inst{13-13} = 0b0;
30919 let Inst{31-21} = 0b00011100010;
30920 let hasNewValue = 1;
30921 let opNewValue = 0;
30922 let isCVI = 1;
30923 let isHVXALU = 1;
30924 let isHVXALU2SRC = 1;
30925 let DecoderNamespace = "EXT_mmvec";
30927 def V6_vadduhsat_alt : HInst<
30928 (outs HvxVR:$Vd32),
30929 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30930 "$Vd32 = vadduh($Vu32,$Vv32):sat",
30931 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30932 let hasNewValue = 1;
30933 let opNewValue = 0;
30934 let isCVI = 1;
30935 let isPseudo = 1;
30936 let isCodeGenOnly = 1;
30937 let DecoderNamespace = "EXT_mmvec";
30939 def V6_vadduhsat_dv : HInst<
30940 (outs HvxWR:$Vdd32),
30941 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30942 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
30943 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30944 let Inst{7-5} = 0b000;
30945 let Inst{13-13} = 0b0;
30946 let Inst{31-21} = 0b00011100100;
30947 let hasNewValue = 1;
30948 let opNewValue = 0;
30949 let isCVI = 1;
30950 let DecoderNamespace = "EXT_mmvec";
30952 def V6_vadduhsat_dv_alt : HInst<
30953 (outs HvxWR:$Vdd32),
30954 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30955 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
30956 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30957 let hasNewValue = 1;
30958 let opNewValue = 0;
30959 let isCVI = 1;
30960 let isPseudo = 1;
30961 let isCodeGenOnly = 1;
30962 let DecoderNamespace = "EXT_mmvec";
30964 def V6_vadduhw : HInst<
30965 (outs HvxWR:$Vdd32),
30966 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30967 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
30968 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
30969 let Inst{7-5} = 0b011;
30970 let Inst{13-13} = 0b0;
30971 let Inst{31-21} = 0b00011100101;
30972 let hasNewValue = 1;
30973 let opNewValue = 0;
30974 let isCVI = 1;
30975 let DecoderNamespace = "EXT_mmvec";
30977 def V6_vadduhw_acc : HInst<
30978 (outs HvxWR:$Vxx32),
30979 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30980 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
30981 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
30982 let Inst{7-5} = 0b100;
30983 let Inst{13-13} = 0b1;
30984 let Inst{31-21} = 0b00011100010;
30985 let hasNewValue = 1;
30986 let opNewValue = 0;
30987 let isAccumulator = 1;
30988 let isCVI = 1;
30989 let DecoderNamespace = "EXT_mmvec";
30990 let Constraints = "$Vxx32 = $Vxx32in";
30992 def V6_vadduhw_acc_alt : HInst<
30993 (outs HvxWR:$Vxx32),
30994 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30995 "$Vxx32 += vadduh($Vu32,$Vv32)",
30996 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30997 let hasNewValue = 1;
30998 let opNewValue = 0;
30999 let isAccumulator = 1;
31000 let isCVI = 1;
31001 let isPseudo = 1;
31002 let isCodeGenOnly = 1;
31003 let DecoderNamespace = "EXT_mmvec";
31004 let Constraints = "$Vxx32 = $Vxx32in";
31006 def V6_vadduhw_alt : HInst<
31007 (outs HvxWR:$Vdd32),
31008 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31009 "$Vdd32 = vadduh($Vu32,$Vv32)",
31010 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31011 let hasNewValue = 1;
31012 let opNewValue = 0;
31013 let isCVI = 1;
31014 let isPseudo = 1;
31015 let isCodeGenOnly = 1;
31016 let DecoderNamespace = "EXT_mmvec";
31018 def V6_vadduwsat : HInst<
31019 (outs HvxVR:$Vd32),
31020 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31021 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
31022 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
31023 let Inst{7-5} = 0b001;
31024 let Inst{13-13} = 0b0;
31025 let Inst{31-21} = 0b00011111011;
31026 let hasNewValue = 1;
31027 let opNewValue = 0;
31028 let isCVI = 1;
31029 let isHVXALU = 1;
31030 let isHVXALU2SRC = 1;
31031 let DecoderNamespace = "EXT_mmvec";
31033 def V6_vadduwsat_alt : HInst<
31034 (outs HvxVR:$Vd32),
31035 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31036 "$Vd32 = vadduw($Vu32,$Vv32):sat",
31037 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31038 let hasNewValue = 1;
31039 let opNewValue = 0;
31040 let isCVI = 1;
31041 let isPseudo = 1;
31042 let isCodeGenOnly = 1;
31043 let DecoderNamespace = "EXT_mmvec";
31045 def V6_vadduwsat_dv : HInst<
31046 (outs HvxWR:$Vdd32),
31047 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31048 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
31049 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
31050 let Inst{7-5} = 0b010;
31051 let Inst{13-13} = 0b0;
31052 let Inst{31-21} = 0b00011110101;
31053 let hasNewValue = 1;
31054 let opNewValue = 0;
31055 let isCVI = 1;
31056 let DecoderNamespace = "EXT_mmvec";
31058 def V6_vadduwsat_dv_alt : HInst<
31059 (outs HvxWR:$Vdd32),
31060 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31061 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
31062 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31063 let hasNewValue = 1;
31064 let opNewValue = 0;
31065 let isCVI = 1;
31066 let isPseudo = 1;
31067 let isCodeGenOnly = 1;
31068 let DecoderNamespace = "EXT_mmvec";
31070 def V6_vaddw : HInst<
31071 (outs HvxVR:$Vd32),
31072 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31073 "$Vd32.w = vadd($Vu32.w,$Vv32.w)",
31074 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31075 let Inst{7-5} = 0b000;
31076 let Inst{13-13} = 0b0;
31077 let Inst{31-21} = 0b00011100010;
31078 let hasNewValue = 1;
31079 let opNewValue = 0;
31080 let isCVI = 1;
31081 let isHVXALU = 1;
31082 let isHVXALU2SRC = 1;
31083 let DecoderNamespace = "EXT_mmvec";
31085 def V6_vaddw_alt : HInst<
31086 (outs HvxVR:$Vd32),
31087 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31088 "$Vd32 = vaddw($Vu32,$Vv32)",
31089 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31090 let hasNewValue = 1;
31091 let opNewValue = 0;
31092 let isCVI = 1;
31093 let isPseudo = 1;
31094 let isCodeGenOnly = 1;
31095 let DecoderNamespace = "EXT_mmvec";
31097 def V6_vaddw_dv : HInst<
31098 (outs HvxWR:$Vdd32),
31099 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31100 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
31101 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
31102 let Inst{7-5} = 0b110;
31103 let Inst{13-13} = 0b0;
31104 let Inst{31-21} = 0b00011100011;
31105 let hasNewValue = 1;
31106 let opNewValue = 0;
31107 let isCVI = 1;
31108 let DecoderNamespace = "EXT_mmvec";
31110 def V6_vaddw_dv_alt : HInst<
31111 (outs HvxWR:$Vdd32),
31112 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31113 "$Vdd32 = vaddw($Vuu32,$Vvv32)",
31114 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31115 let hasNewValue = 1;
31116 let opNewValue = 0;
31117 let isCVI = 1;
31118 let isPseudo = 1;
31119 let isCodeGenOnly = 1;
31120 let DecoderNamespace = "EXT_mmvec";
31122 def V6_vaddwnq : HInst<
31123 (outs HvxVR:$Vx32),
31124 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31125 "if (!$Qv4) $Vx32.w += $Vu32.w",
31126 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
31127 let Inst{7-5} = 0b101;
31128 let Inst{13-13} = 0b1;
31129 let Inst{21-16} = 0b000001;
31130 let Inst{31-24} = 0b00011110;
31131 let hasNewValue = 1;
31132 let opNewValue = 0;
31133 let isAccumulator = 1;
31134 let isCVI = 1;
31135 let isHVXALU = 1;
31136 let isHVXALU2SRC = 1;
31137 let DecoderNamespace = "EXT_mmvec";
31138 let Constraints = "$Vx32 = $Vx32in";
31140 def V6_vaddwnq_alt : HInst<
31141 (outs HvxVR:$Vx32),
31142 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31143 "if (!$Qv4.w) $Vx32.w += $Vu32.w",
31144 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31145 let hasNewValue = 1;
31146 let opNewValue = 0;
31147 let isAccumulator = 1;
31148 let isCVI = 1;
31149 let isPseudo = 1;
31150 let isCodeGenOnly = 1;
31151 let DecoderNamespace = "EXT_mmvec";
31152 let Constraints = "$Vx32 = $Vx32in";
31154 def V6_vaddwq : HInst<
31155 (outs HvxVR:$Vx32),
31156 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31157 "if ($Qv4) $Vx32.w += $Vu32.w",
31158 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
31159 let Inst{7-5} = 0b010;
31160 let Inst{13-13} = 0b1;
31161 let Inst{21-16} = 0b000001;
31162 let Inst{31-24} = 0b00011110;
31163 let hasNewValue = 1;
31164 let opNewValue = 0;
31165 let isAccumulator = 1;
31166 let isCVI = 1;
31167 let isHVXALU = 1;
31168 let isHVXALU2SRC = 1;
31169 let DecoderNamespace = "EXT_mmvec";
31170 let Constraints = "$Vx32 = $Vx32in";
31172 def V6_vaddwq_alt : HInst<
31173 (outs HvxVR:$Vx32),
31174 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
31175 "if ($Qv4.w) $Vx32.w += $Vu32.w",
31176 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31177 let hasNewValue = 1;
31178 let opNewValue = 0;
31179 let isAccumulator = 1;
31180 let isCVI = 1;
31181 let isPseudo = 1;
31182 let isCodeGenOnly = 1;
31183 let DecoderNamespace = "EXT_mmvec";
31184 let Constraints = "$Vx32 = $Vx32in";
31186 def V6_vaddwsat : HInst<
31187 (outs HvxVR:$Vd32),
31188 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31189 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
31190 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31191 let Inst{7-5} = 0b100;
31192 let Inst{13-13} = 0b0;
31193 let Inst{31-21} = 0b00011100010;
31194 let hasNewValue = 1;
31195 let opNewValue = 0;
31196 let isCVI = 1;
31197 let isHVXALU = 1;
31198 let isHVXALU2SRC = 1;
31199 let DecoderNamespace = "EXT_mmvec";
31201 def V6_vaddwsat_alt : HInst<
31202 (outs HvxVR:$Vd32),
31203 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31204 "$Vd32 = vaddw($Vu32,$Vv32):sat",
31205 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31206 let hasNewValue = 1;
31207 let opNewValue = 0;
31208 let isCVI = 1;
31209 let isPseudo = 1;
31210 let isCodeGenOnly = 1;
31211 let DecoderNamespace = "EXT_mmvec";
31213 def V6_vaddwsat_dv : HInst<
31214 (outs HvxWR:$Vdd32),
31215 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31216 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
31217 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
31218 let Inst{7-5} = 0b010;
31219 let Inst{13-13} = 0b0;
31220 let Inst{31-21} = 0b00011100100;
31221 let hasNewValue = 1;
31222 let opNewValue = 0;
31223 let isCVI = 1;
31224 let DecoderNamespace = "EXT_mmvec";
31226 def V6_vaddwsat_dv_alt : HInst<
31227 (outs HvxWR:$Vdd32),
31228 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
31229 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
31230 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31231 let hasNewValue = 1;
31232 let opNewValue = 0;
31233 let isCVI = 1;
31234 let isPseudo = 1;
31235 let isCodeGenOnly = 1;
31236 let DecoderNamespace = "EXT_mmvec";
31238 def V6_valignb : HInst<
31239 (outs HvxVR:$Vd32),
31240 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31241 "$Vd32 = valign($Vu32,$Vv32,$Rt8)",
31242 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
31243 let Inst{7-5} = 0b000;
31244 let Inst{13-13} = 0b0;
31245 let Inst{31-24} = 0b00011011;
31246 let hasNewValue = 1;
31247 let opNewValue = 0;
31248 let isCVI = 1;
31249 let DecoderNamespace = "EXT_mmvec";
31251 def V6_valignbi : HInst<
31252 (outs HvxVR:$Vd32),
31253 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
31254 "$Vd32 = valign($Vu32,$Vv32,#$Ii)",
31255 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
31256 let Inst{13-13} = 0b1;
31257 let Inst{31-21} = 0b00011110001;
31258 let hasNewValue = 1;
31259 let opNewValue = 0;
31260 let isCVI = 1;
31261 let DecoderNamespace = "EXT_mmvec";
31263 def V6_vand : HInst<
31264 (outs HvxVR:$Vd32),
31265 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31266 "$Vd32 = vand($Vu32,$Vv32)",
31267 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31268 let Inst{7-5} = 0b101;
31269 let Inst{13-13} = 0b0;
31270 let Inst{31-21} = 0b00011100001;
31271 let hasNewValue = 1;
31272 let opNewValue = 0;
31273 let isCVI = 1;
31274 let isHVXALU = 1;
31275 let isHVXALU2SRC = 1;
31276 let DecoderNamespace = "EXT_mmvec";
31278 def V6_vandnqrt : HInst<
31279 (outs HvxVR:$Vd32),
31280 (ins HvxQR:$Qu4, IntRegs:$Rt32),
31281 "$Vd32 = vand(!$Qu4,$Rt32)",
31282 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> {
31283 let Inst{7-5} = 0b101;
31284 let Inst{13-10} = 0b0001;
31285 let Inst{31-21} = 0b00011001101;
31286 let hasNewValue = 1;
31287 let opNewValue = 0;
31288 let isCVI = 1;
31289 let DecoderNamespace = "EXT_mmvec";
31291 def V6_vandnqrt_acc : HInst<
31292 (outs HvxVR:$Vx32),
31293 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31294 "$Vx32 |= vand(!$Qu4,$Rt32)",
31295 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> {
31296 let Inst{7-5} = 0b011;
31297 let Inst{13-10} = 0b1001;
31298 let Inst{31-21} = 0b00011001011;
31299 let hasNewValue = 1;
31300 let opNewValue = 0;
31301 let isAccumulator = 1;
31302 let isCVI = 1;
31303 let DecoderNamespace = "EXT_mmvec";
31304 let Constraints = "$Vx32 = $Vx32in";
31306 def V6_vandnqrt_acc_alt : HInst<
31307 (outs HvxVR:$Vx32),
31308 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31309 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
31310 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31311 let hasNewValue = 1;
31312 let opNewValue = 0;
31313 let isAccumulator = 1;
31314 let isCVI = 1;
31315 let isPseudo = 1;
31316 let isCodeGenOnly = 1;
31317 let DecoderNamespace = "EXT_mmvec";
31318 let Constraints = "$Vx32 = $Vx32in";
31320 def V6_vandnqrt_alt : HInst<
31321 (outs HvxVR:$Vd32),
31322 (ins HvxQR:$Qu4, IntRegs:$Rt32),
31323 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
31324 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
31325 let hasNewValue = 1;
31326 let opNewValue = 0;
31327 let isCVI = 1;
31328 let isPseudo = 1;
31329 let isCodeGenOnly = 1;
31330 let DecoderNamespace = "EXT_mmvec";
31332 def V6_vandqrt : HInst<
31333 (outs HvxVR:$Vd32),
31334 (ins HvxQR:$Qu4, IntRegs:$Rt32),
31335 "$Vd32 = vand($Qu4,$Rt32)",
31336 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
31337 let Inst{7-5} = 0b101;
31338 let Inst{13-10} = 0b0000;
31339 let Inst{31-21} = 0b00011001101;
31340 let hasNewValue = 1;
31341 let opNewValue = 0;
31342 let isCVI = 1;
31343 let DecoderNamespace = "EXT_mmvec";
31345 def V6_vandqrt_acc : HInst<
31346 (outs HvxVR:$Vx32),
31347 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31348 "$Vx32 |= vand($Qu4,$Rt32)",
31349 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
31350 let Inst{7-5} = 0b011;
31351 let Inst{13-10} = 0b1000;
31352 let Inst{31-21} = 0b00011001011;
31353 let hasNewValue = 1;
31354 let opNewValue = 0;
31355 let isAccumulator = 1;
31356 let isCVI = 1;
31357 let DecoderNamespace = "EXT_mmvec";
31358 let Constraints = "$Vx32 = $Vx32in";
31360 def V6_vandqrt_acc_alt : HInst<
31361 (outs HvxVR:$Vx32),
31362 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
31363 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
31364 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31365 let hasNewValue = 1;
31366 let opNewValue = 0;
31367 let isAccumulator = 1;
31368 let isCVI = 1;
31369 let isPseudo = 1;
31370 let isCodeGenOnly = 1;
31371 let DecoderNamespace = "EXT_mmvec";
31372 let Constraints = "$Vx32 = $Vx32in";
31374 def V6_vandqrt_alt : HInst<
31375 (outs HvxVR:$Vd32),
31376 (ins HvxQR:$Qu4, IntRegs:$Rt32),
31377 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
31378 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31379 let hasNewValue = 1;
31380 let opNewValue = 0;
31381 let isCVI = 1;
31382 let isPseudo = 1;
31383 let isCodeGenOnly = 1;
31384 let DecoderNamespace = "EXT_mmvec";
31386 def V6_vandvnqv : HInst<
31387 (outs HvxVR:$Vd32),
31388 (ins HvxQR:$Qv4, HvxVR:$Vu32),
31389 "$Vd32 = vand(!$Qv4,$Vu32)",
31390 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31391 let Inst{7-5} = 0b001;
31392 let Inst{13-13} = 0b1;
31393 let Inst{21-16} = 0b000011;
31394 let Inst{31-24} = 0b00011110;
31395 let hasNewValue = 1;
31396 let opNewValue = 0;
31397 let isCVI = 1;
31398 let isHVXALU = 1;
31399 let isHVXALU2SRC = 1;
31400 let DecoderNamespace = "EXT_mmvec";
31402 def V6_vandvqv : HInst<
31403 (outs HvxVR:$Vd32),
31404 (ins HvxQR:$Qv4, HvxVR:$Vu32),
31405 "$Vd32 = vand($Qv4,$Vu32)",
31406 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
31407 let Inst{7-5} = 0b000;
31408 let Inst{13-13} = 0b1;
31409 let Inst{21-16} = 0b000011;
31410 let Inst{31-24} = 0b00011110;
31411 let hasNewValue = 1;
31412 let opNewValue = 0;
31413 let isCVI = 1;
31414 let isHVXALU = 1;
31415 let isHVXALU2SRC = 1;
31416 let DecoderNamespace = "EXT_mmvec";
31418 def V6_vandvrt : HInst<
31419 (outs HvxQR:$Qd4),
31420 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31421 "$Qd4 = vand($Vu32,$Rt32)",
31422 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
31423 let Inst{7-2} = 0b010010;
31424 let Inst{13-13} = 0b0;
31425 let Inst{31-21} = 0b00011001101;
31426 let hasNewValue = 1;
31427 let opNewValue = 0;
31428 let isCVI = 1;
31429 let DecoderNamespace = "EXT_mmvec";
31431 def V6_vandvrt_acc : HInst<
31432 (outs HvxQR:$Qx4),
31433 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31434 "$Qx4 |= vand($Vu32,$Rt32)",
31435 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
31436 let Inst{7-2} = 0b100000;
31437 let Inst{13-13} = 0b1;
31438 let Inst{31-21} = 0b00011001011;
31439 let isAccumulator = 1;
31440 let isCVI = 1;
31441 let DecoderNamespace = "EXT_mmvec";
31442 let Constraints = "$Qx4 = $Qx4in";
31444 def V6_vandvrt_acc_alt : HInst<
31445 (outs HvxQR:$Qx4),
31446 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
31447 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
31448 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31449 let isAccumulator = 1;
31450 let isCVI = 1;
31451 let isPseudo = 1;
31452 let isCodeGenOnly = 1;
31453 let DecoderNamespace = "EXT_mmvec";
31454 let Constraints = "$Qx4 = $Qx4in";
31456 def V6_vandvrt_alt : HInst<
31457 (outs HvxQR:$Qd4),
31458 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31459 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
31460 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31461 let hasNewValue = 1;
31462 let opNewValue = 0;
31463 let isCVI = 1;
31464 let isPseudo = 1;
31465 let isCodeGenOnly = 1;
31466 let DecoderNamespace = "EXT_mmvec";
31468 def V6_vaslh : HInst<
31469 (outs HvxVR:$Vd32),
31470 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31471 "$Vd32.h = vasl($Vu32.h,$Rt32)",
31472 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31473 let Inst{7-5} = 0b000;
31474 let Inst{13-13} = 0b0;
31475 let Inst{31-21} = 0b00011001100;
31476 let hasNewValue = 1;
31477 let opNewValue = 0;
31478 let isCVI = 1;
31479 let DecoderNamespace = "EXT_mmvec";
31481 def V6_vaslh_acc : HInst<
31482 (outs HvxVR:$Vx32),
31483 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31484 "$Vx32.h += vasl($Vu32.h,$Rt32)",
31485 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31486 let Inst{7-5} = 0b101;
31487 let Inst{13-13} = 0b1;
31488 let Inst{31-21} = 0b00011001101;
31489 let hasNewValue = 1;
31490 let opNewValue = 0;
31491 let isAccumulator = 1;
31492 let isCVI = 1;
31493 let DecoderNamespace = "EXT_mmvec";
31494 let Constraints = "$Vx32 = $Vx32in";
31496 def V6_vaslh_acc_alt : HInst<
31497 (outs HvxVR:$Vx32),
31498 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31499 "$Vx32 += vaslh($Vu32,$Rt32)",
31500 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31501 let hasNewValue = 1;
31502 let opNewValue = 0;
31503 let isAccumulator = 1;
31504 let isCVI = 1;
31505 let isPseudo = 1;
31506 let isCodeGenOnly = 1;
31507 let DecoderNamespace = "EXT_mmvec";
31508 let Constraints = "$Vx32 = $Vx32in";
31510 def V6_vaslh_alt : HInst<
31511 (outs HvxVR:$Vd32),
31512 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31513 "$Vd32 = vaslh($Vu32,$Rt32)",
31514 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31515 let hasNewValue = 1;
31516 let opNewValue = 0;
31517 let isCVI = 1;
31518 let isPseudo = 1;
31519 let isCodeGenOnly = 1;
31520 let DecoderNamespace = "EXT_mmvec";
31522 def V6_vaslhv : HInst<
31523 (outs HvxVR:$Vd32),
31524 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31525 "$Vd32.h = vasl($Vu32.h,$Vv32.h)",
31526 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31527 let Inst{7-5} = 0b101;
31528 let Inst{13-13} = 0b0;
31529 let Inst{31-21} = 0b00011111101;
31530 let hasNewValue = 1;
31531 let opNewValue = 0;
31532 let isCVI = 1;
31533 let DecoderNamespace = "EXT_mmvec";
31535 def V6_vaslhv_alt : HInst<
31536 (outs HvxVR:$Vd32),
31537 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31538 "$Vd32 = vaslh($Vu32,$Vv32)",
31539 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31540 let hasNewValue = 1;
31541 let opNewValue = 0;
31542 let isCVI = 1;
31543 let isPseudo = 1;
31544 let isCodeGenOnly = 1;
31545 let DecoderNamespace = "EXT_mmvec";
31547 def V6_vaslw : HInst<
31548 (outs HvxVR:$Vd32),
31549 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31550 "$Vd32.w = vasl($Vu32.w,$Rt32)",
31551 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31552 let Inst{7-5} = 0b111;
31553 let Inst{13-13} = 0b0;
31554 let Inst{31-21} = 0b00011001011;
31555 let hasNewValue = 1;
31556 let opNewValue = 0;
31557 let isCVI = 1;
31558 let DecoderNamespace = "EXT_mmvec";
31560 def V6_vaslw_acc : HInst<
31561 (outs HvxVR:$Vx32),
31562 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31563 "$Vx32.w += vasl($Vu32.w,$Rt32)",
31564 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31565 let Inst{7-5} = 0b010;
31566 let Inst{13-13} = 0b1;
31567 let Inst{31-21} = 0b00011001011;
31568 let hasNewValue = 1;
31569 let opNewValue = 0;
31570 let isAccumulator = 1;
31571 let isCVI = 1;
31572 let DecoderNamespace = "EXT_mmvec";
31573 let Constraints = "$Vx32 = $Vx32in";
31575 def V6_vaslw_acc_alt : HInst<
31576 (outs HvxVR:$Vx32),
31577 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31578 "$Vx32 += vaslw($Vu32,$Rt32)",
31579 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31580 let hasNewValue = 1;
31581 let opNewValue = 0;
31582 let isAccumulator = 1;
31583 let isCVI = 1;
31584 let isPseudo = 1;
31585 let isCodeGenOnly = 1;
31586 let DecoderNamespace = "EXT_mmvec";
31587 let Constraints = "$Vx32 = $Vx32in";
31589 def V6_vaslw_alt : HInst<
31590 (outs HvxVR:$Vd32),
31591 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31592 "$Vd32 = vaslw($Vu32,$Rt32)",
31593 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31594 let hasNewValue = 1;
31595 let opNewValue = 0;
31596 let isCVI = 1;
31597 let isPseudo = 1;
31598 let isCodeGenOnly = 1;
31599 let DecoderNamespace = "EXT_mmvec";
31601 def V6_vaslwv : HInst<
31602 (outs HvxVR:$Vd32),
31603 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31604 "$Vd32.w = vasl($Vu32.w,$Vv32.w)",
31605 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31606 let Inst{7-5} = 0b100;
31607 let Inst{13-13} = 0b0;
31608 let Inst{31-21} = 0b00011111101;
31609 let hasNewValue = 1;
31610 let opNewValue = 0;
31611 let isCVI = 1;
31612 let DecoderNamespace = "EXT_mmvec";
31614 def V6_vaslwv_alt : HInst<
31615 (outs HvxVR:$Vd32),
31616 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31617 "$Vd32 = vaslw($Vu32,$Vv32)",
31618 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31619 let hasNewValue = 1;
31620 let opNewValue = 0;
31621 let isCVI = 1;
31622 let isPseudo = 1;
31623 let isCodeGenOnly = 1;
31624 let DecoderNamespace = "EXT_mmvec";
31626 def V6_vasr_into : HInst<
31627 (outs HvxWR:$Vxx32),
31628 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31629 "$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
31630 tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
31631 let Inst{7-5} = 0b111;
31632 let Inst{13-13} = 0b1;
31633 let Inst{31-21} = 0b00011010101;
31634 let hasNewValue = 1;
31635 let opNewValue = 0;
31636 let isCVI = 1;
31637 let DecoderNamespace = "EXT_mmvec";
31638 let Constraints = "$Vxx32 = $Vxx32in";
31640 def V6_vasr_into_alt : HInst<
31641 (outs HvxWR:$Vxx32),
31642 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31643 "$Vxx32 = vasrinto($Vu32,$Vv32)",
31644 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
31645 let hasNewValue = 1;
31646 let opNewValue = 0;
31647 let isCVI = 1;
31648 let isPseudo = 1;
31649 let isCodeGenOnly = 1;
31650 let DecoderNamespace = "EXT_mmvec";
31651 let Constraints = "$Vxx32 = $Vxx32in";
31653 def V6_vasrh : HInst<
31654 (outs HvxVR:$Vd32),
31655 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31656 "$Vd32.h = vasr($Vu32.h,$Rt32)",
31657 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31658 let Inst{7-5} = 0b110;
31659 let Inst{13-13} = 0b0;
31660 let Inst{31-21} = 0b00011001011;
31661 let hasNewValue = 1;
31662 let opNewValue = 0;
31663 let isCVI = 1;
31664 let DecoderNamespace = "EXT_mmvec";
31666 def V6_vasrh_acc : HInst<
31667 (outs HvxVR:$Vx32),
31668 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31669 "$Vx32.h += vasr($Vu32.h,$Rt32)",
31670 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
31671 let Inst{7-5} = 0b111;
31672 let Inst{13-13} = 0b1;
31673 let Inst{31-21} = 0b00011001100;
31674 let hasNewValue = 1;
31675 let opNewValue = 0;
31676 let isAccumulator = 1;
31677 let isCVI = 1;
31678 let DecoderNamespace = "EXT_mmvec";
31679 let Constraints = "$Vx32 = $Vx32in";
31681 def V6_vasrh_acc_alt : HInst<
31682 (outs HvxVR:$Vx32),
31683 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31684 "$Vx32 += vasrh($Vu32,$Rt32)",
31685 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31686 let hasNewValue = 1;
31687 let opNewValue = 0;
31688 let isAccumulator = 1;
31689 let isCVI = 1;
31690 let isPseudo = 1;
31691 let isCodeGenOnly = 1;
31692 let DecoderNamespace = "EXT_mmvec";
31693 let Constraints = "$Vx32 = $Vx32in";
31695 def V6_vasrh_alt : HInst<
31696 (outs HvxVR:$Vd32),
31697 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31698 "$Vd32 = vasrh($Vu32,$Rt32)",
31699 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31700 let hasNewValue = 1;
31701 let opNewValue = 0;
31702 let isCVI = 1;
31703 let isPseudo = 1;
31704 let isCodeGenOnly = 1;
31705 let DecoderNamespace = "EXT_mmvec";
31707 def V6_vasrhbrndsat : HInst<
31708 (outs HvxVR:$Vd32),
31709 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31710 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31711 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31712 let Inst{7-5} = 0b000;
31713 let Inst{13-13} = 0b1;
31714 let Inst{31-24} = 0b00011011;
31715 let hasNewValue = 1;
31716 let opNewValue = 0;
31717 let isCVI = 1;
31718 let DecoderNamespace = "EXT_mmvec";
31720 def V6_vasrhbsat : HInst<
31721 (outs HvxVR:$Vd32),
31722 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31723 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31724 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31725 let Inst{7-5} = 0b000;
31726 let Inst{13-13} = 0b0;
31727 let Inst{31-24} = 0b00011000;
31728 let hasNewValue = 1;
31729 let opNewValue = 0;
31730 let isCVI = 1;
31731 let DecoderNamespace = "EXT_mmvec";
31733 def V6_vasrhubrndsat : HInst<
31734 (outs HvxVR:$Vd32),
31735 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31736 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
31737 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31738 let Inst{7-5} = 0b111;
31739 let Inst{13-13} = 0b0;
31740 let Inst{31-24} = 0b00011011;
31741 let hasNewValue = 1;
31742 let opNewValue = 0;
31743 let isCVI = 1;
31744 let DecoderNamespace = "EXT_mmvec";
31746 def V6_vasrhubsat : HInst<
31747 (outs HvxVR:$Vd32),
31748 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31749 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
31750 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31751 let Inst{7-5} = 0b110;
31752 let Inst{13-13} = 0b0;
31753 let Inst{31-24} = 0b00011011;
31754 let hasNewValue = 1;
31755 let opNewValue = 0;
31756 let isCVI = 1;
31757 let DecoderNamespace = "EXT_mmvec";
31759 def V6_vasrhv : HInst<
31760 (outs HvxVR:$Vd32),
31761 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31762 "$Vd32.h = vasr($Vu32.h,$Vv32.h)",
31763 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
31764 let Inst{7-5} = 0b011;
31765 let Inst{13-13} = 0b0;
31766 let Inst{31-21} = 0b00011111101;
31767 let hasNewValue = 1;
31768 let opNewValue = 0;
31769 let isCVI = 1;
31770 let DecoderNamespace = "EXT_mmvec";
31772 def V6_vasrhv_alt : HInst<
31773 (outs HvxVR:$Vd32),
31774 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31775 "$Vd32 = vasrh($Vu32,$Vv32)",
31776 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31777 let hasNewValue = 1;
31778 let opNewValue = 0;
31779 let isCVI = 1;
31780 let isPseudo = 1;
31781 let isCodeGenOnly = 1;
31782 let DecoderNamespace = "EXT_mmvec";
31784 def V6_vasruhubrndsat : HInst<
31785 (outs HvxVR:$Vd32),
31786 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31787 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
31788 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31789 let Inst{7-5} = 0b111;
31790 let Inst{13-13} = 0b0;
31791 let Inst{31-24} = 0b00011000;
31792 let hasNewValue = 1;
31793 let opNewValue = 0;
31794 let isCVI = 1;
31795 let DecoderNamespace = "EXT_mmvec";
31797 def V6_vasruhubsat : HInst<
31798 (outs HvxVR:$Vd32),
31799 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31800 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
31801 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31802 let Inst{7-5} = 0b101;
31803 let Inst{13-13} = 0b1;
31804 let Inst{31-24} = 0b00011000;
31805 let hasNewValue = 1;
31806 let opNewValue = 0;
31807 let isCVI = 1;
31808 let DecoderNamespace = "EXT_mmvec";
31810 def V6_vasruwuhrndsat : HInst<
31811 (outs HvxVR:$Vd32),
31812 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31813 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
31814 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31815 let Inst{7-5} = 0b001;
31816 let Inst{13-13} = 0b0;
31817 let Inst{31-24} = 0b00011000;
31818 let hasNewValue = 1;
31819 let opNewValue = 0;
31820 let isCVI = 1;
31821 let DecoderNamespace = "EXT_mmvec";
31823 def V6_vasruwuhsat : HInst<
31824 (outs HvxVR:$Vd32),
31825 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31826 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
31827 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
31828 let Inst{7-5} = 0b100;
31829 let Inst{13-13} = 0b1;
31830 let Inst{31-24} = 0b00011000;
31831 let hasNewValue = 1;
31832 let opNewValue = 0;
31833 let isCVI = 1;
31834 let DecoderNamespace = "EXT_mmvec";
31836 def V6_vasrvuhubrndsat : HInst<
31837 (outs HvxVR:$Vd32),
31838 (ins HvxWR:$Vuu32, HvxVR:$Vv32),
31839 "$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):rnd:sat",
31840 tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31841 let Inst{7-5} = 0b011;
31842 let Inst{13-13} = 0b0;
31843 let Inst{31-21} = 0b00011101000;
31844 let hasNewValue = 1;
31845 let opNewValue = 0;
31846 let isCVI = 1;
31847 let hasUnaryRestriction = 1;
31848 let DecoderNamespace = "EXT_mmvec";
31850 def V6_vasrvuhubsat : HInst<
31851 (outs HvxVR:$Vd32),
31852 (ins HvxWR:$Vuu32, HvxVR:$Vv32),
31853 "$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):sat",
31854 tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31855 let Inst{7-5} = 0b010;
31856 let Inst{13-13} = 0b0;
31857 let Inst{31-21} = 0b00011101000;
31858 let hasNewValue = 1;
31859 let opNewValue = 0;
31860 let isCVI = 1;
31861 let hasUnaryRestriction = 1;
31862 let DecoderNamespace = "EXT_mmvec";
31864 def V6_vasrvwuhrndsat : HInst<
31865 (outs HvxVR:$Vd32),
31866 (ins HvxWR:$Vuu32, HvxVR:$Vv32),
31867 "$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):rnd:sat",
31868 tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31869 let Inst{7-5} = 0b001;
31870 let Inst{13-13} = 0b0;
31871 let Inst{31-21} = 0b00011101000;
31872 let hasNewValue = 1;
31873 let opNewValue = 0;
31874 let isCVI = 1;
31875 let hasUnaryRestriction = 1;
31876 let DecoderNamespace = "EXT_mmvec";
31878 def V6_vasrvwuhsat : HInst<
31879 (outs HvxVR:$Vd32),
31880 (ins HvxWR:$Vuu32, HvxVR:$Vv32),
31881 "$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):sat",
31882 tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> {
31883 let Inst{7-5} = 0b000;
31884 let Inst{13-13} = 0b0;
31885 let Inst{31-21} = 0b00011101000;
31886 let hasNewValue = 1;
31887 let opNewValue = 0;
31888 let isCVI = 1;
31889 let hasUnaryRestriction = 1;
31890 let DecoderNamespace = "EXT_mmvec";
31892 def V6_vasrw : HInst<
31893 (outs HvxVR:$Vd32),
31894 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31895 "$Vd32.w = vasr($Vu32.w,$Rt32)",
31896 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
31897 let Inst{7-5} = 0b101;
31898 let Inst{13-13} = 0b0;
31899 let Inst{31-21} = 0b00011001011;
31900 let hasNewValue = 1;
31901 let opNewValue = 0;
31902 let isCVI = 1;
31903 let DecoderNamespace = "EXT_mmvec";
31905 def V6_vasrw_acc : HInst<
31906 (outs HvxVR:$Vx32),
31907 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31908 "$Vx32.w += vasr($Vu32.w,$Rt32)",
31909 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
31910 let Inst{7-5} = 0b101;
31911 let Inst{13-13} = 0b1;
31912 let Inst{31-21} = 0b00011001011;
31913 let hasNewValue = 1;
31914 let opNewValue = 0;
31915 let isAccumulator = 1;
31916 let isCVI = 1;
31917 let DecoderNamespace = "EXT_mmvec";
31918 let Constraints = "$Vx32 = $Vx32in";
31920 def V6_vasrw_acc_alt : HInst<
31921 (outs HvxVR:$Vx32),
31922 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31923 "$Vx32 += vasrw($Vu32,$Rt32)",
31924 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31925 let hasNewValue = 1;
31926 let opNewValue = 0;
31927 let isAccumulator = 1;
31928 let isCVI = 1;
31929 let isPseudo = 1;
31930 let isCodeGenOnly = 1;
31931 let DecoderNamespace = "EXT_mmvec";
31932 let Constraints = "$Vx32 = $Vx32in";
31934 def V6_vasrw_alt : HInst<
31935 (outs HvxVR:$Vd32),
31936 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31937 "$Vd32 = vasrw($Vu32,$Rt32)",
31938 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31939 let hasNewValue = 1;
31940 let opNewValue = 0;
31941 let isCVI = 1;
31942 let isPseudo = 1;
31943 let isCodeGenOnly = 1;
31944 let DecoderNamespace = "EXT_mmvec";
31946 def V6_vasrwh : HInst<
31947 (outs HvxVR:$Vd32),
31948 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31949 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
31950 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31951 let Inst{7-5} = 0b010;
31952 let Inst{13-13} = 0b0;
31953 let Inst{31-24} = 0b00011011;
31954 let hasNewValue = 1;
31955 let opNewValue = 0;
31956 let isCVI = 1;
31957 let DecoderNamespace = "EXT_mmvec";
31959 def V6_vasrwhrndsat : HInst<
31960 (outs HvxVR:$Vd32),
31961 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31962 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31963 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31964 let Inst{7-5} = 0b100;
31965 let Inst{13-13} = 0b0;
31966 let Inst{31-24} = 0b00011011;
31967 let hasNewValue = 1;
31968 let opNewValue = 0;
31969 let isCVI = 1;
31970 let DecoderNamespace = "EXT_mmvec";
31972 def V6_vasrwhsat : HInst<
31973 (outs HvxVR:$Vd32),
31974 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31975 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
31976 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
31977 let Inst{7-5} = 0b011;
31978 let Inst{13-13} = 0b0;
31979 let Inst{31-24} = 0b00011011;
31980 let hasNewValue = 1;
31981 let opNewValue = 0;
31982 let isCVI = 1;
31983 let DecoderNamespace = "EXT_mmvec";
31985 def V6_vasrwuhrndsat : HInst<
31986 (outs HvxVR:$Vd32),
31987 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31988 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
31989 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
31990 let Inst{7-5} = 0b010;
31991 let Inst{13-13} = 0b0;
31992 let Inst{31-24} = 0b00011000;
31993 let hasNewValue = 1;
31994 let opNewValue = 0;
31995 let isCVI = 1;
31996 let DecoderNamespace = "EXT_mmvec";
31998 def V6_vasrwuhsat : HInst<
31999 (outs HvxVR:$Vd32),
32000 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32001 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
32002 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
32003 let Inst{7-5} = 0b101;
32004 let Inst{13-13} = 0b0;
32005 let Inst{31-24} = 0b00011011;
32006 let hasNewValue = 1;
32007 let opNewValue = 0;
32008 let isCVI = 1;
32009 let DecoderNamespace = "EXT_mmvec";
32011 def V6_vasrwv : HInst<
32012 (outs HvxVR:$Vd32),
32013 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32014 "$Vd32.w = vasr($Vu32.w,$Vv32.w)",
32015 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
32016 let Inst{7-5} = 0b000;
32017 let Inst{13-13} = 0b0;
32018 let Inst{31-21} = 0b00011111101;
32019 let hasNewValue = 1;
32020 let opNewValue = 0;
32021 let isCVI = 1;
32022 let DecoderNamespace = "EXT_mmvec";
32024 def V6_vasrwv_alt : HInst<
32025 (outs HvxVR:$Vd32),
32026 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32027 "$Vd32 = vasrw($Vu32,$Vv32)",
32028 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32029 let hasNewValue = 1;
32030 let opNewValue = 0;
32031 let isCVI = 1;
32032 let isPseudo = 1;
32033 let isCodeGenOnly = 1;
32034 let DecoderNamespace = "EXT_mmvec";
32036 def V6_vassign : HInst<
32037 (outs HvxVR:$Vd32),
32038 (ins HvxVR:$Vu32),
32039 "$Vd32 = $Vu32",
32040 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
32041 let Inst{7-5} = 0b111;
32042 let Inst{13-13} = 0b1;
32043 let Inst{31-16} = 0b0001111000000011;
32044 let hasNewValue = 1;
32045 let opNewValue = 0;
32046 let isCVI = 1;
32047 let isHVXALU = 1;
32048 let DecoderNamespace = "EXT_mmvec";
32050 def V6_vassign_fp : HInst<
32051 (outs HvxVR:$Vd32),
32052 (ins HvxVR:$Vu32),
32053 "$Vd32.w = vfmv($Vu32.w)",
32054 tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32055 let Inst{7-5} = 0b001;
32056 let Inst{13-13} = 0b1;
32057 let Inst{31-16} = 0b0001111000000110;
32058 let hasNewValue = 1;
32059 let opNewValue = 0;
32060 let isCVI = 1;
32061 let DecoderNamespace = "EXT_mmvec";
32063 def V6_vassign_tmp : HInst<
32064 (outs HvxVR:$Vd32),
32065 (ins HvxVR:$Vu32),
32066 "$Vd32.tmp = $Vu32",
32067 tc_e2fdd6e6, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV69]> {
32068 let Inst{7-5} = 0b110;
32069 let Inst{13-13} = 0b0;
32070 let Inst{31-16} = 0b0001111000000001;
32071 let hasNewValue = 1;
32072 let opNewValue = 0;
32073 let isCVI = 1;
32074 let hasHvxTmp = 1;
32075 let DecoderNamespace = "EXT_mmvec";
32077 def V6_vassignp : HInst<
32078 (outs HvxWR:$Vdd32),
32079 (ins HvxWR:$Vuu32),
32080 "$Vdd32 = $Vuu32",
32081 CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
32082 let hasNewValue = 1;
32083 let opNewValue = 0;
32084 let isCVI = 1;
32085 let isPseudo = 1;
32086 let DecoderNamespace = "EXT_mmvec";
32088 def V6_vavgb : HInst<
32089 (outs HvxVR:$Vd32),
32090 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32091 "$Vd32.b = vavg($Vu32.b,$Vv32.b)",
32092 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32093 let Inst{7-5} = 0b100;
32094 let Inst{13-13} = 0b1;
32095 let Inst{31-21} = 0b00011111000;
32096 let hasNewValue = 1;
32097 let opNewValue = 0;
32098 let isCVI = 1;
32099 let isHVXALU = 1;
32100 let isHVXALU2SRC = 1;
32101 let DecoderNamespace = "EXT_mmvec";
32103 def V6_vavgb_alt : HInst<
32104 (outs HvxVR:$Vd32),
32105 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32106 "$Vd32 = vavgb($Vu32,$Vv32)",
32107 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32108 let hasNewValue = 1;
32109 let opNewValue = 0;
32110 let isCVI = 1;
32111 let isPseudo = 1;
32112 let isCodeGenOnly = 1;
32113 let DecoderNamespace = "EXT_mmvec";
32115 def V6_vavgbrnd : HInst<
32116 (outs HvxVR:$Vd32),
32117 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32118 "$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
32119 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32120 let Inst{7-5} = 0b101;
32121 let Inst{13-13} = 0b1;
32122 let Inst{31-21} = 0b00011111000;
32123 let hasNewValue = 1;
32124 let opNewValue = 0;
32125 let isCVI = 1;
32126 let isHVXALU = 1;
32127 let isHVXALU2SRC = 1;
32128 let DecoderNamespace = "EXT_mmvec";
32130 def V6_vavgbrnd_alt : HInst<
32131 (outs HvxVR:$Vd32),
32132 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32133 "$Vd32 = vavgb($Vu32,$Vv32):rnd",
32134 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32135 let hasNewValue = 1;
32136 let opNewValue = 0;
32137 let isCVI = 1;
32138 let isPseudo = 1;
32139 let isCodeGenOnly = 1;
32140 let DecoderNamespace = "EXT_mmvec";
32142 def V6_vavgh : HInst<
32143 (outs HvxVR:$Vd32),
32144 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32145 "$Vd32.h = vavg($Vu32.h,$Vv32.h)",
32146 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32147 let Inst{7-5} = 0b110;
32148 let Inst{13-13} = 0b0;
32149 let Inst{31-21} = 0b00011100110;
32150 let hasNewValue = 1;
32151 let opNewValue = 0;
32152 let isCVI = 1;
32153 let isHVXALU = 1;
32154 let isHVXALU2SRC = 1;
32155 let DecoderNamespace = "EXT_mmvec";
32157 def V6_vavgh_alt : HInst<
32158 (outs HvxVR:$Vd32),
32159 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32160 "$Vd32 = vavgh($Vu32,$Vv32)",
32161 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32162 let hasNewValue = 1;
32163 let opNewValue = 0;
32164 let isCVI = 1;
32165 let isPseudo = 1;
32166 let isCodeGenOnly = 1;
32167 let DecoderNamespace = "EXT_mmvec";
32169 def V6_vavghrnd : HInst<
32170 (outs HvxVR:$Vd32),
32171 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32172 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
32173 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32174 let Inst{7-5} = 0b101;
32175 let Inst{13-13} = 0b0;
32176 let Inst{31-21} = 0b00011100111;
32177 let hasNewValue = 1;
32178 let opNewValue = 0;
32179 let isCVI = 1;
32180 let isHVXALU = 1;
32181 let isHVXALU2SRC = 1;
32182 let DecoderNamespace = "EXT_mmvec";
32184 def V6_vavghrnd_alt : HInst<
32185 (outs HvxVR:$Vd32),
32186 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32187 "$Vd32 = vavgh($Vu32,$Vv32):rnd",
32188 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32189 let hasNewValue = 1;
32190 let opNewValue = 0;
32191 let isCVI = 1;
32192 let isPseudo = 1;
32193 let isCodeGenOnly = 1;
32194 let DecoderNamespace = "EXT_mmvec";
32196 def V6_vavgub : HInst<
32197 (outs HvxVR:$Vd32),
32198 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32199 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
32200 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32201 let Inst{7-5} = 0b100;
32202 let Inst{13-13} = 0b0;
32203 let Inst{31-21} = 0b00011100110;
32204 let hasNewValue = 1;
32205 let opNewValue = 0;
32206 let isCVI = 1;
32207 let isHVXALU = 1;
32208 let isHVXALU2SRC = 1;
32209 let DecoderNamespace = "EXT_mmvec";
32211 def V6_vavgub_alt : HInst<
32212 (outs HvxVR:$Vd32),
32213 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32214 "$Vd32 = vavgub($Vu32,$Vv32)",
32215 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32216 let hasNewValue = 1;
32217 let opNewValue = 0;
32218 let isCVI = 1;
32219 let isPseudo = 1;
32220 let isCodeGenOnly = 1;
32221 let DecoderNamespace = "EXT_mmvec";
32223 def V6_vavgubrnd : HInst<
32224 (outs HvxVR:$Vd32),
32225 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32226 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
32227 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32228 let Inst{7-5} = 0b011;
32229 let Inst{13-13} = 0b0;
32230 let Inst{31-21} = 0b00011100111;
32231 let hasNewValue = 1;
32232 let opNewValue = 0;
32233 let isCVI = 1;
32234 let isHVXALU = 1;
32235 let isHVXALU2SRC = 1;
32236 let DecoderNamespace = "EXT_mmvec";
32238 def V6_vavgubrnd_alt : HInst<
32239 (outs HvxVR:$Vd32),
32240 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32241 "$Vd32 = vavgub($Vu32,$Vv32):rnd",
32242 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32243 let hasNewValue = 1;
32244 let opNewValue = 0;
32245 let isCVI = 1;
32246 let isPseudo = 1;
32247 let isCodeGenOnly = 1;
32248 let DecoderNamespace = "EXT_mmvec";
32250 def V6_vavguh : HInst<
32251 (outs HvxVR:$Vd32),
32252 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32253 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
32254 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32255 let Inst{7-5} = 0b101;
32256 let Inst{13-13} = 0b0;
32257 let Inst{31-21} = 0b00011100110;
32258 let hasNewValue = 1;
32259 let opNewValue = 0;
32260 let isCVI = 1;
32261 let isHVXALU = 1;
32262 let isHVXALU2SRC = 1;
32263 let DecoderNamespace = "EXT_mmvec";
32265 def V6_vavguh_alt : HInst<
32266 (outs HvxVR:$Vd32),
32267 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32268 "$Vd32 = vavguh($Vu32,$Vv32)",
32269 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32270 let hasNewValue = 1;
32271 let opNewValue = 0;
32272 let isCVI = 1;
32273 let isPseudo = 1;
32274 let isCodeGenOnly = 1;
32275 let DecoderNamespace = "EXT_mmvec";
32277 def V6_vavguhrnd : HInst<
32278 (outs HvxVR:$Vd32),
32279 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32280 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
32281 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32282 let Inst{7-5} = 0b100;
32283 let Inst{13-13} = 0b0;
32284 let Inst{31-21} = 0b00011100111;
32285 let hasNewValue = 1;
32286 let opNewValue = 0;
32287 let isCVI = 1;
32288 let isHVXALU = 1;
32289 let isHVXALU2SRC = 1;
32290 let DecoderNamespace = "EXT_mmvec";
32292 def V6_vavguhrnd_alt : HInst<
32293 (outs HvxVR:$Vd32),
32294 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32295 "$Vd32 = vavguh($Vu32,$Vv32):rnd",
32296 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32297 let hasNewValue = 1;
32298 let opNewValue = 0;
32299 let isCVI = 1;
32300 let isPseudo = 1;
32301 let isCodeGenOnly = 1;
32302 let DecoderNamespace = "EXT_mmvec";
32304 def V6_vavguw : HInst<
32305 (outs HvxVR:$Vd32),
32306 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32307 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
32308 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32309 let Inst{7-5} = 0b010;
32310 let Inst{13-13} = 0b1;
32311 let Inst{31-21} = 0b00011111000;
32312 let hasNewValue = 1;
32313 let opNewValue = 0;
32314 let isCVI = 1;
32315 let isHVXALU = 1;
32316 let isHVXALU2SRC = 1;
32317 let DecoderNamespace = "EXT_mmvec";
32319 def V6_vavguw_alt : HInst<
32320 (outs HvxVR:$Vd32),
32321 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32322 "$Vd32 = vavguw($Vu32,$Vv32)",
32323 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32324 let hasNewValue = 1;
32325 let opNewValue = 0;
32326 let isCVI = 1;
32327 let isPseudo = 1;
32328 let isCodeGenOnly = 1;
32329 let DecoderNamespace = "EXT_mmvec";
32331 def V6_vavguwrnd : HInst<
32332 (outs HvxVR:$Vd32),
32333 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32334 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
32335 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
32336 let Inst{7-5} = 0b011;
32337 let Inst{13-13} = 0b1;
32338 let Inst{31-21} = 0b00011111000;
32339 let hasNewValue = 1;
32340 let opNewValue = 0;
32341 let isCVI = 1;
32342 let isHVXALU = 1;
32343 let isHVXALU2SRC = 1;
32344 let DecoderNamespace = "EXT_mmvec";
32346 def V6_vavguwrnd_alt : HInst<
32347 (outs HvxVR:$Vd32),
32348 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32349 "$Vd32 = vavguw($Vu32,$Vv32):rnd",
32350 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32351 let hasNewValue = 1;
32352 let opNewValue = 0;
32353 let isCVI = 1;
32354 let isPseudo = 1;
32355 let isCodeGenOnly = 1;
32356 let DecoderNamespace = "EXT_mmvec";
32358 def V6_vavgw : HInst<
32359 (outs HvxVR:$Vd32),
32360 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32361 "$Vd32.w = vavg($Vu32.w,$Vv32.w)",
32362 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32363 let Inst{7-5} = 0b111;
32364 let Inst{13-13} = 0b0;
32365 let Inst{31-21} = 0b00011100110;
32366 let hasNewValue = 1;
32367 let opNewValue = 0;
32368 let isCVI = 1;
32369 let isHVXALU = 1;
32370 let isHVXALU2SRC = 1;
32371 let DecoderNamespace = "EXT_mmvec";
32373 def V6_vavgw_alt : HInst<
32374 (outs HvxVR:$Vd32),
32375 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32376 "$Vd32 = vavgw($Vu32,$Vv32)",
32377 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32378 let hasNewValue = 1;
32379 let opNewValue = 0;
32380 let isCVI = 1;
32381 let isPseudo = 1;
32382 let isCodeGenOnly = 1;
32383 let DecoderNamespace = "EXT_mmvec";
32385 def V6_vavgwrnd : HInst<
32386 (outs HvxVR:$Vd32),
32387 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32388 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
32389 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32390 let Inst{7-5} = 0b110;
32391 let Inst{13-13} = 0b0;
32392 let Inst{31-21} = 0b00011100111;
32393 let hasNewValue = 1;
32394 let opNewValue = 0;
32395 let isCVI = 1;
32396 let isHVXALU = 1;
32397 let isHVXALU2SRC = 1;
32398 let DecoderNamespace = "EXT_mmvec";
32400 def V6_vavgwrnd_alt : HInst<
32401 (outs HvxVR:$Vd32),
32402 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32403 "$Vd32 = vavgw($Vu32,$Vv32):rnd",
32404 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32405 let hasNewValue = 1;
32406 let opNewValue = 0;
32407 let isCVI = 1;
32408 let isPseudo = 1;
32409 let isCodeGenOnly = 1;
32410 let DecoderNamespace = "EXT_mmvec";
32412 def V6_vccombine : HInst<
32413 (outs HvxWR:$Vdd32),
32414 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
32415 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
32416 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
32417 let Inst{7-7} = 0b0;
32418 let Inst{13-13} = 0b0;
32419 let Inst{31-21} = 0b00011010011;
32420 let isPredicated = 1;
32421 let hasNewValue = 1;
32422 let opNewValue = 0;
32423 let isCVI = 1;
32424 let DecoderNamespace = "EXT_mmvec";
32426 def V6_vcl0h : HInst<
32427 (outs HvxVR:$Vd32),
32428 (ins HvxVR:$Vu32),
32429 "$Vd32.uh = vcl0($Vu32.uh)",
32430 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32431 let Inst{7-5} = 0b111;
32432 let Inst{13-13} = 0b0;
32433 let Inst{31-16} = 0b0001111000000010;
32434 let hasNewValue = 1;
32435 let opNewValue = 0;
32436 let isCVI = 1;
32437 let DecoderNamespace = "EXT_mmvec";
32439 def V6_vcl0h_alt : HInst<
32440 (outs HvxVR:$Vd32),
32441 (ins HvxVR:$Vu32),
32442 "$Vd32 = vcl0h($Vu32)",
32443 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32444 let hasNewValue = 1;
32445 let opNewValue = 0;
32446 let isCVI = 1;
32447 let isPseudo = 1;
32448 let isCodeGenOnly = 1;
32449 let DecoderNamespace = "EXT_mmvec";
32451 def V6_vcl0w : HInst<
32452 (outs HvxVR:$Vd32),
32453 (ins HvxVR:$Vu32),
32454 "$Vd32.uw = vcl0($Vu32.uw)",
32455 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
32456 let Inst{7-5} = 0b101;
32457 let Inst{13-13} = 0b0;
32458 let Inst{31-16} = 0b0001111000000010;
32459 let hasNewValue = 1;
32460 let opNewValue = 0;
32461 let isCVI = 1;
32462 let DecoderNamespace = "EXT_mmvec";
32464 def V6_vcl0w_alt : HInst<
32465 (outs HvxVR:$Vd32),
32466 (ins HvxVR:$Vu32),
32467 "$Vd32 = vcl0w($Vu32)",
32468 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32469 let hasNewValue = 1;
32470 let opNewValue = 0;
32471 let isCVI = 1;
32472 let isPseudo = 1;
32473 let isCodeGenOnly = 1;
32474 let DecoderNamespace = "EXT_mmvec";
32476 def V6_vcmov : HInst<
32477 (outs HvxVR:$Vd32),
32478 (ins PredRegs:$Ps4, HvxVR:$Vu32),
32479 "if ($Ps4) $Vd32 = $Vu32",
32480 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
32481 let Inst{7-7} = 0b0;
32482 let Inst{13-13} = 0b0;
32483 let Inst{31-16} = 0b0001101000000000;
32484 let isPredicated = 1;
32485 let hasNewValue = 1;
32486 let opNewValue = 0;
32487 let isCVI = 1;
32488 let isHVXALU = 1;
32489 let DecoderNamespace = "EXT_mmvec";
32491 def V6_vcombine : HInst<
32492 (outs HvxWR:$Vdd32),
32493 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32494 "$Vdd32 = vcombine($Vu32,$Vv32)",
32495 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
32496 let Inst{7-5} = 0b111;
32497 let Inst{13-13} = 0b0;
32498 let Inst{31-21} = 0b00011111010;
32499 let hasNewValue = 1;
32500 let opNewValue = 0;
32501 let isCVI = 1;
32502 let isRegSequence = 1;
32503 let DecoderNamespace = "EXT_mmvec";
32505 def V6_vcombine_tmp : HInst<
32506 (outs HvxWR:$Vdd32),
32507 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32508 "$Vdd32.tmp = vcombine($Vu32,$Vv32)",
32509 tc_531b383c, TypeCVI_VX>, Enc_71bb9b, Requires<[UseHVXV69]> {
32510 let Inst{7-5} = 0b111;
32511 let Inst{13-13} = 0b0;
32512 let Inst{31-21} = 0b00011110101;
32513 let hasNewValue = 1;
32514 let opNewValue = 0;
32515 let isCVI = 1;
32516 let hasHvxTmp = 1;
32517 let DecoderNamespace = "EXT_mmvec";
32519 def V6_vconv_h_hf : HInst<
32520 (outs HvxVR:$Vd32),
32521 (ins HvxVR:$Vu32),
32522 "$Vd32.h = $Vu32.hf",
32523 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32524 let Inst{7-5} = 0b010;
32525 let Inst{13-13} = 0b1;
32526 let Inst{31-16} = 0b0001111000000101;
32527 let hasNewValue = 1;
32528 let opNewValue = 0;
32529 let isCVI = 1;
32530 let DecoderNamespace = "EXT_mmvec";
32532 def V6_vconv_hf_h : HInst<
32533 (outs HvxVR:$Vd32),
32534 (ins HvxVR:$Vu32),
32535 "$Vd32.hf = $Vu32.h",
32536 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32537 let Inst{7-5} = 0b100;
32538 let Inst{13-13} = 0b1;
32539 let Inst{31-16} = 0b0001111000000101;
32540 let hasNewValue = 1;
32541 let opNewValue = 0;
32542 let isCVI = 1;
32543 let DecoderNamespace = "EXT_mmvec";
32545 def V6_vconv_hf_qf16 : HInst<
32546 (outs HvxVR:$Vd32),
32547 (ins HvxVR:$Vu32),
32548 "$Vd32.hf = $Vu32.qf16",
32549 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32550 let Inst{7-5} = 0b011;
32551 let Inst{13-13} = 0b1;
32552 let Inst{31-16} = 0b0001111000000100;
32553 let hasNewValue = 1;
32554 let opNewValue = 0;
32555 let isCVI = 1;
32556 let DecoderNamespace = "EXT_mmvec";
32558 def V6_vconv_hf_qf32 : HInst<
32559 (outs HvxVR:$Vd32),
32560 (ins HvxWR:$Vuu32),
32561 "$Vd32.hf = $Vuu32.qf32",
32562 tc_51d0ecc3, TypeCVI_VS>, Enc_a33d04, Requires<[UseHVXV68,UseHVXQFloat]> {
32563 let Inst{7-5} = 0b110;
32564 let Inst{13-13} = 0b1;
32565 let Inst{31-16} = 0b0001111000000100;
32566 let hasNewValue = 1;
32567 let opNewValue = 0;
32568 let isCVI = 1;
32569 let DecoderNamespace = "EXT_mmvec";
32571 def V6_vconv_sf_qf32 : HInst<
32572 (outs HvxVR:$Vd32),
32573 (ins HvxVR:$Vu32),
32574 "$Vd32.sf = $Vu32.qf32",
32575 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> {
32576 let Inst{7-5} = 0b000;
32577 let Inst{13-13} = 0b1;
32578 let Inst{31-16} = 0b0001111000000100;
32579 let hasNewValue = 1;
32580 let opNewValue = 0;
32581 let isCVI = 1;
32582 let DecoderNamespace = "EXT_mmvec";
32584 def V6_vconv_sf_w : HInst<
32585 (outs HvxVR:$Vd32),
32586 (ins HvxVR:$Vu32),
32587 "$Vd32.sf = $Vu32.w",
32588 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32589 let Inst{7-5} = 0b011;
32590 let Inst{13-13} = 0b1;
32591 let Inst{31-16} = 0b0001111000000101;
32592 let hasNewValue = 1;
32593 let opNewValue = 0;
32594 let isCVI = 1;
32595 let DecoderNamespace = "EXT_mmvec";
32597 def V6_vconv_w_sf : HInst<
32598 (outs HvxVR:$Vd32),
32599 (ins HvxVR:$Vu32),
32600 "$Vd32.w = $Vu32.sf",
32601 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> {
32602 let Inst{7-5} = 0b001;
32603 let Inst{13-13} = 0b1;
32604 let Inst{31-16} = 0b0001111000000101;
32605 let hasNewValue = 1;
32606 let opNewValue = 0;
32607 let isCVI = 1;
32608 let DecoderNamespace = "EXT_mmvec";
32610 def V6_vcvt_b_hf : HInst<
32611 (outs HvxVR:$Vd32),
32612 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32613 "$Vd32.b = vcvt($Vu32.hf,$Vv32.hf)",
32614 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32615 let Inst{7-5} = 0b110;
32616 let Inst{13-13} = 0b1;
32617 let Inst{31-21} = 0b00011111110;
32618 let hasNewValue = 1;
32619 let opNewValue = 0;
32620 let isCVI = 1;
32621 let DecoderNamespace = "EXT_mmvec";
32623 def V6_vcvt_bf_sf : HInst<
32624 (outs HvxVR:$Vd32),
32625 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32626 "$Vd32.bf = vcvt($Vu32.sf,$Vv32.sf)",
32627 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
32628 let Inst{7-5} = 0b011;
32629 let Inst{13-13} = 0b1;
32630 let Inst{31-21} = 0b00011101010;
32631 let hasNewValue = 1;
32632 let opNewValue = 0;
32633 let isCVI = 1;
32634 let DecoderNamespace = "EXT_mmvec";
32636 def V6_vcvt_h_hf : HInst<
32637 (outs HvxVR:$Vd32),
32638 (ins HvxVR:$Vu32),
32639 "$Vd32.h = vcvt($Vu32.hf)",
32640 tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32641 let Inst{7-5} = 0b000;
32642 let Inst{13-13} = 0b1;
32643 let Inst{31-16} = 0b0001111000000110;
32644 let hasNewValue = 1;
32645 let opNewValue = 0;
32646 let isCVI = 1;
32647 let DecoderNamespace = "EXT_mmvec";
32649 def V6_vcvt_hf_b : HInst<
32650 (outs HvxWR:$Vdd32),
32651 (ins HvxVR:$Vu32),
32652 "$Vdd32.hf = vcvt($Vu32.b)",
32653 tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32654 let Inst{7-5} = 0b010;
32655 let Inst{13-13} = 0b1;
32656 let Inst{31-16} = 0b0001111000000100;
32657 let hasNewValue = 1;
32658 let opNewValue = 0;
32659 let isCVI = 1;
32660 let DecoderNamespace = "EXT_mmvec";
32662 def V6_vcvt_hf_h : HInst<
32663 (outs HvxVR:$Vd32),
32664 (ins HvxVR:$Vu32),
32665 "$Vd32.hf = vcvt($Vu32.h)",
32666 tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32667 let Inst{7-5} = 0b111;
32668 let Inst{13-13} = 0b1;
32669 let Inst{31-16} = 0b0001111000000100;
32670 let hasNewValue = 1;
32671 let opNewValue = 0;
32672 let isCVI = 1;
32673 let DecoderNamespace = "EXT_mmvec";
32675 def V6_vcvt_hf_sf : HInst<
32676 (outs HvxVR:$Vd32),
32677 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32678 "$Vd32.hf = vcvt($Vu32.sf,$Vv32.sf)",
32679 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32680 let Inst{7-5} = 0b001;
32681 let Inst{13-13} = 0b1;
32682 let Inst{31-21} = 0b00011111011;
32683 let hasNewValue = 1;
32684 let opNewValue = 0;
32685 let isCVI = 1;
32686 let DecoderNamespace = "EXT_mmvec";
32688 def V6_vcvt_hf_ub : HInst<
32689 (outs HvxWR:$Vdd32),
32690 (ins HvxVR:$Vu32),
32691 "$Vdd32.hf = vcvt($Vu32.ub)",
32692 tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32693 let Inst{7-5} = 0b001;
32694 let Inst{13-13} = 0b1;
32695 let Inst{31-16} = 0b0001111000000100;
32696 let hasNewValue = 1;
32697 let opNewValue = 0;
32698 let isCVI = 1;
32699 let DecoderNamespace = "EXT_mmvec";
32701 def V6_vcvt_hf_uh : HInst<
32702 (outs HvxVR:$Vd32),
32703 (ins HvxVR:$Vu32),
32704 "$Vd32.hf = vcvt($Vu32.uh)",
32705 tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32706 let Inst{7-5} = 0b101;
32707 let Inst{13-13} = 0b1;
32708 let Inst{31-16} = 0b0001111000000100;
32709 let hasNewValue = 1;
32710 let opNewValue = 0;
32711 let isCVI = 1;
32712 let DecoderNamespace = "EXT_mmvec";
32714 def V6_vcvt_sf_hf : HInst<
32715 (outs HvxWR:$Vdd32),
32716 (ins HvxVR:$Vu32),
32717 "$Vdd32.sf = vcvt($Vu32.hf)",
32718 tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32719 let Inst{7-5} = 0b100;
32720 let Inst{13-13} = 0b1;
32721 let Inst{31-16} = 0b0001111000000100;
32722 let hasNewValue = 1;
32723 let opNewValue = 0;
32724 let isCVI = 1;
32725 let DecoderNamespace = "EXT_mmvec";
32727 def V6_vcvt_ub_hf : HInst<
32728 (outs HvxVR:$Vd32),
32729 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32730 "$Vd32.ub = vcvt($Vu32.hf,$Vv32.hf)",
32731 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32732 let Inst{7-5} = 0b101;
32733 let Inst{13-13} = 0b1;
32734 let Inst{31-21} = 0b00011111110;
32735 let hasNewValue = 1;
32736 let opNewValue = 0;
32737 let isCVI = 1;
32738 let DecoderNamespace = "EXT_mmvec";
32740 def V6_vcvt_uh_hf : HInst<
32741 (outs HvxVR:$Vd32),
32742 (ins HvxVR:$Vu32),
32743 "$Vd32.uh = vcvt($Vu32.hf)",
32744 tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32745 let Inst{7-5} = 0b000;
32746 let Inst{13-13} = 0b1;
32747 let Inst{31-16} = 0b0001111000000101;
32748 let hasNewValue = 1;
32749 let opNewValue = 0;
32750 let isCVI = 1;
32751 let DecoderNamespace = "EXT_mmvec";
32753 def V6_vd0 : HInst<
32754 (outs HvxVR:$Vd32),
32755 (ins),
32756 "$Vd32 = #0",
32757 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
32758 let hasNewValue = 1;
32759 let opNewValue = 0;
32760 let isCVI = 1;
32761 let isPseudo = 1;
32762 let isCodeGenOnly = 1;
32763 let DecoderNamespace = "EXT_mmvec";
32765 def V6_vdd0 : HInst<
32766 (outs HvxWR:$Vdd32),
32767 (ins),
32768 "$Vdd32 = #0",
32769 tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
32770 let hasNewValue = 1;
32771 let opNewValue = 0;
32772 let isCVI = 1;
32773 let isPseudo = 1;
32774 let isCodeGenOnly = 1;
32775 let DecoderNamespace = "EXT_mmvec";
32777 def V6_vdeal : HInst<
32778 (outs HvxVR:$Vy32, HvxVR:$Vx32),
32779 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
32780 "vdeal($Vy32,$Vx32,$Rt32)",
32781 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
32782 let Inst{7-5} = 0b010;
32783 let Inst{13-13} = 0b1;
32784 let Inst{31-21} = 0b00011001111;
32785 let hasNewValue = 1;
32786 let opNewValue = 0;
32787 let hasNewValue2 = 1;
32788 let opNewValue2 = 1;
32789 let isCVI = 1;
32790 let DecoderNamespace = "EXT_mmvec";
32791 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
32793 def V6_vdealb : HInst<
32794 (outs HvxVR:$Vd32),
32795 (ins HvxVR:$Vu32),
32796 "$Vd32.b = vdeal($Vu32.b)",
32797 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32798 let Inst{7-5} = 0b111;
32799 let Inst{13-13} = 0b0;
32800 let Inst{31-16} = 0b0001111000000000;
32801 let hasNewValue = 1;
32802 let opNewValue = 0;
32803 let isCVI = 1;
32804 let DecoderNamespace = "EXT_mmvec";
32806 def V6_vdealb4w : HInst<
32807 (outs HvxVR:$Vd32),
32808 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32809 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
32810 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32811 let Inst{7-5} = 0b111;
32812 let Inst{13-13} = 0b0;
32813 let Inst{31-21} = 0b00011111001;
32814 let hasNewValue = 1;
32815 let opNewValue = 0;
32816 let isCVI = 1;
32817 let DecoderNamespace = "EXT_mmvec";
32819 def V6_vdealb4w_alt : HInst<
32820 (outs HvxVR:$Vd32),
32821 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32822 "$Vd32 = vdealb4w($Vu32,$Vv32)",
32823 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32824 let hasNewValue = 1;
32825 let opNewValue = 0;
32826 let isCVI = 1;
32827 let isPseudo = 1;
32828 let isCodeGenOnly = 1;
32829 let DecoderNamespace = "EXT_mmvec";
32831 def V6_vdealb_alt : HInst<
32832 (outs HvxVR:$Vd32),
32833 (ins HvxVR:$Vu32),
32834 "$Vd32 = vdealb($Vu32)",
32835 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32836 let hasNewValue = 1;
32837 let opNewValue = 0;
32838 let isCVI = 1;
32839 let isPseudo = 1;
32840 let isCodeGenOnly = 1;
32841 let DecoderNamespace = "EXT_mmvec";
32843 def V6_vdealh : HInst<
32844 (outs HvxVR:$Vd32),
32845 (ins HvxVR:$Vu32),
32846 "$Vd32.h = vdeal($Vu32.h)",
32847 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
32848 let Inst{7-5} = 0b110;
32849 let Inst{13-13} = 0b0;
32850 let Inst{31-16} = 0b0001111000000000;
32851 let hasNewValue = 1;
32852 let opNewValue = 0;
32853 let isCVI = 1;
32854 let DecoderNamespace = "EXT_mmvec";
32856 def V6_vdealh_alt : HInst<
32857 (outs HvxVR:$Vd32),
32858 (ins HvxVR:$Vu32),
32859 "$Vd32 = vdealh($Vu32)",
32860 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32861 let hasNewValue = 1;
32862 let opNewValue = 0;
32863 let isCVI = 1;
32864 let isPseudo = 1;
32865 let isCodeGenOnly = 1;
32866 let DecoderNamespace = "EXT_mmvec";
32868 def V6_vdealvdd : HInst<
32869 (outs HvxWR:$Vdd32),
32870 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32871 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
32872 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32873 let Inst{7-5} = 0b100;
32874 let Inst{13-13} = 0b1;
32875 let Inst{31-24} = 0b00011011;
32876 let hasNewValue = 1;
32877 let opNewValue = 0;
32878 let isCVI = 1;
32879 let DecoderNamespace = "EXT_mmvec";
32881 def V6_vdelta : HInst<
32882 (outs HvxVR:$Vd32),
32883 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32884 "$Vd32 = vdelta($Vu32,$Vv32)",
32885 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
32886 let Inst{7-5} = 0b001;
32887 let Inst{13-13} = 0b0;
32888 let Inst{31-21} = 0b00011111001;
32889 let hasNewValue = 1;
32890 let opNewValue = 0;
32891 let isCVI = 1;
32892 let DecoderNamespace = "EXT_mmvec";
32894 def V6_vdmpy_sf_hf : HInst<
32895 (outs HvxVR:$Vd32),
32896 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32897 "$Vd32.sf = vdmpy($Vu32.hf,$Vv32.hf)",
32898 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32899 let Inst{7-5} = 0b110;
32900 let Inst{13-13} = 0b1;
32901 let Inst{31-21} = 0b00011111101;
32902 let hasNewValue = 1;
32903 let opNewValue = 0;
32904 let isCVI = 1;
32905 let DecoderNamespace = "EXT_mmvec";
32907 def V6_vdmpy_sf_hf_acc : HInst<
32908 (outs HvxVR:$Vx32),
32909 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
32910 "$Vx32.sf += vdmpy($Vu32.hf,$Vv32.hf)",
32911 tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
32912 let Inst{7-5} = 0b011;
32913 let Inst{13-13} = 0b1;
32914 let Inst{31-21} = 0b00011100010;
32915 let hasNewValue = 1;
32916 let opNewValue = 0;
32917 let isAccumulator = 1;
32918 let isCVI = 1;
32919 let DecoderNamespace = "EXT_mmvec";
32920 let Constraints = "$Vx32 = $Vx32in";
32922 def V6_vdmpybus : HInst<
32923 (outs HvxVR:$Vd32),
32924 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32925 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
32926 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
32927 let Inst{7-5} = 0b110;
32928 let Inst{13-13} = 0b0;
32929 let Inst{31-21} = 0b00011001000;
32930 let hasNewValue = 1;
32931 let opNewValue = 0;
32932 let isCVI = 1;
32933 let DecoderNamespace = "EXT_mmvec";
32935 def V6_vdmpybus_acc : HInst<
32936 (outs HvxVR:$Vx32),
32937 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32938 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
32939 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
32940 let Inst{7-5} = 0b110;
32941 let Inst{13-13} = 0b1;
32942 let Inst{31-21} = 0b00011001000;
32943 let hasNewValue = 1;
32944 let opNewValue = 0;
32945 let isAccumulator = 1;
32946 let isCVI = 1;
32947 let DecoderNamespace = "EXT_mmvec";
32948 let Constraints = "$Vx32 = $Vx32in";
32950 def V6_vdmpybus_acc_alt : HInst<
32951 (outs HvxVR:$Vx32),
32952 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
32953 "$Vx32 += vdmpybus($Vu32,$Rt32)",
32954 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32955 let hasNewValue = 1;
32956 let opNewValue = 0;
32957 let isAccumulator = 1;
32958 let isCVI = 1;
32959 let isPseudo = 1;
32960 let isCodeGenOnly = 1;
32961 let DecoderNamespace = "EXT_mmvec";
32962 let Constraints = "$Vx32 = $Vx32in";
32964 def V6_vdmpybus_alt : HInst<
32965 (outs HvxVR:$Vd32),
32966 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32967 "$Vd32 = vdmpybus($Vu32,$Rt32)",
32968 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32969 let hasNewValue = 1;
32970 let opNewValue = 0;
32971 let isCVI = 1;
32972 let isPseudo = 1;
32973 let isCodeGenOnly = 1;
32974 let DecoderNamespace = "EXT_mmvec";
32976 def V6_vdmpybus_dv : HInst<
32977 (outs HvxWR:$Vdd32),
32978 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32979 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
32980 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32981 let Inst{7-5} = 0b111;
32982 let Inst{13-13} = 0b0;
32983 let Inst{31-21} = 0b00011001000;
32984 let hasNewValue = 1;
32985 let opNewValue = 0;
32986 let isCVI = 1;
32987 let DecoderNamespace = "EXT_mmvec";
32989 def V6_vdmpybus_dv_acc : HInst<
32990 (outs HvxWR:$Vxx32),
32991 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32992 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
32993 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32994 let Inst{7-5} = 0b111;
32995 let Inst{13-13} = 0b1;
32996 let Inst{31-21} = 0b00011001000;
32997 let hasNewValue = 1;
32998 let opNewValue = 0;
32999 let isAccumulator = 1;
33000 let isCVI = 1;
33001 let DecoderNamespace = "EXT_mmvec";
33002 let Constraints = "$Vxx32 = $Vxx32in";
33004 def V6_vdmpybus_dv_acc_alt : HInst<
33005 (outs HvxWR:$Vxx32),
33006 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33007 "$Vxx32 += vdmpybus($Vuu32,$Rt32)",
33008 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33009 let hasNewValue = 1;
33010 let opNewValue = 0;
33011 let isAccumulator = 1;
33012 let isCVI = 1;
33013 let isPseudo = 1;
33014 let isCodeGenOnly = 1;
33015 let DecoderNamespace = "EXT_mmvec";
33016 let Constraints = "$Vxx32 = $Vxx32in";
33018 def V6_vdmpybus_dv_alt : HInst<
33019 (outs HvxWR:$Vdd32),
33020 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33021 "$Vdd32 = vdmpybus($Vuu32,$Rt32)",
33022 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33023 let hasNewValue = 1;
33024 let opNewValue = 0;
33025 let isCVI = 1;
33026 let isPseudo = 1;
33027 let isCodeGenOnly = 1;
33028 let DecoderNamespace = "EXT_mmvec";
33030 def V6_vdmpyhb : HInst<
33031 (outs HvxVR:$Vd32),
33032 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33033 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
33034 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33035 let Inst{7-5} = 0b010;
33036 let Inst{13-13} = 0b0;
33037 let Inst{31-21} = 0b00011001000;
33038 let hasNewValue = 1;
33039 let opNewValue = 0;
33040 let isCVI = 1;
33041 let DecoderNamespace = "EXT_mmvec";
33043 def V6_vdmpyhb_acc : HInst<
33044 (outs HvxVR:$Vx32),
33045 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33046 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
33047 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33048 let Inst{7-5} = 0b011;
33049 let Inst{13-13} = 0b1;
33050 let Inst{31-21} = 0b00011001000;
33051 let hasNewValue = 1;
33052 let opNewValue = 0;
33053 let isAccumulator = 1;
33054 let isCVI = 1;
33055 let DecoderNamespace = "EXT_mmvec";
33056 let Constraints = "$Vx32 = $Vx32in";
33058 def V6_vdmpyhb_acc_alt : HInst<
33059 (outs HvxVR:$Vx32),
33060 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33061 "$Vx32 += vdmpyhb($Vu32,$Rt32)",
33062 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33063 let hasNewValue = 1;
33064 let opNewValue = 0;
33065 let isAccumulator = 1;
33066 let isCVI = 1;
33067 let isPseudo = 1;
33068 let isCodeGenOnly = 1;
33069 let DecoderNamespace = "EXT_mmvec";
33070 let Constraints = "$Vx32 = $Vx32in";
33072 def V6_vdmpyhb_alt : HInst<
33073 (outs HvxVR:$Vd32),
33074 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33075 "$Vd32 = vdmpyhb($Vu32,$Rt32)",
33076 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33077 let hasNewValue = 1;
33078 let opNewValue = 0;
33079 let isCVI = 1;
33080 let isPseudo = 1;
33081 let isCodeGenOnly = 1;
33082 let DecoderNamespace = "EXT_mmvec";
33084 def V6_vdmpyhb_dv : HInst<
33085 (outs HvxWR:$Vdd32),
33086 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33087 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
33088 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33089 let Inst{7-5} = 0b100;
33090 let Inst{13-13} = 0b0;
33091 let Inst{31-21} = 0b00011001001;
33092 let hasNewValue = 1;
33093 let opNewValue = 0;
33094 let isCVI = 1;
33095 let DecoderNamespace = "EXT_mmvec";
33097 def V6_vdmpyhb_dv_acc : HInst<
33098 (outs HvxWR:$Vxx32),
33099 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33100 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
33101 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33102 let Inst{7-5} = 0b100;
33103 let Inst{13-13} = 0b1;
33104 let Inst{31-21} = 0b00011001001;
33105 let hasNewValue = 1;
33106 let opNewValue = 0;
33107 let isAccumulator = 1;
33108 let isCVI = 1;
33109 let DecoderNamespace = "EXT_mmvec";
33110 let Constraints = "$Vxx32 = $Vxx32in";
33112 def V6_vdmpyhb_dv_acc_alt : HInst<
33113 (outs HvxWR:$Vxx32),
33114 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33115 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
33116 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33117 let hasNewValue = 1;
33118 let opNewValue = 0;
33119 let isAccumulator = 1;
33120 let isCVI = 1;
33121 let isPseudo = 1;
33122 let isCodeGenOnly = 1;
33123 let DecoderNamespace = "EXT_mmvec";
33124 let Constraints = "$Vxx32 = $Vxx32in";
33126 def V6_vdmpyhb_dv_alt : HInst<
33127 (outs HvxWR:$Vdd32),
33128 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33129 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
33130 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33131 let hasNewValue = 1;
33132 let opNewValue = 0;
33133 let isCVI = 1;
33134 let isPseudo = 1;
33135 let isCodeGenOnly = 1;
33136 let DecoderNamespace = "EXT_mmvec";
33138 def V6_vdmpyhisat : HInst<
33139 (outs HvxVR:$Vd32),
33140 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33141 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
33142 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
33143 let Inst{7-5} = 0b011;
33144 let Inst{13-13} = 0b0;
33145 let Inst{31-21} = 0b00011001001;
33146 let hasNewValue = 1;
33147 let opNewValue = 0;
33148 let isCVI = 1;
33149 let DecoderNamespace = "EXT_mmvec";
33151 def V6_vdmpyhisat_acc : HInst<
33152 (outs HvxVR:$Vx32),
33153 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33154 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
33155 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
33156 let Inst{7-5} = 0b010;
33157 let Inst{13-13} = 0b1;
33158 let Inst{31-21} = 0b00011001001;
33159 let hasNewValue = 1;
33160 let opNewValue = 0;
33161 let isAccumulator = 1;
33162 let isCVI = 1;
33163 let DecoderNamespace = "EXT_mmvec";
33164 let Constraints = "$Vx32 = $Vx32in";
33166 def V6_vdmpyhisat_acc_alt : HInst<
33167 (outs HvxVR:$Vx32),
33168 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33169 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
33170 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33171 let hasNewValue = 1;
33172 let opNewValue = 0;
33173 let isAccumulator = 1;
33174 let isCVI = 1;
33175 let isPseudo = 1;
33176 let isCodeGenOnly = 1;
33177 let DecoderNamespace = "EXT_mmvec";
33178 let Constraints = "$Vx32 = $Vx32in";
33180 def V6_vdmpyhisat_alt : HInst<
33181 (outs HvxVR:$Vd32),
33182 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33183 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
33184 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33185 let hasNewValue = 1;
33186 let opNewValue = 0;
33187 let isCVI = 1;
33188 let isPseudo = 1;
33189 let isCodeGenOnly = 1;
33190 let DecoderNamespace = "EXT_mmvec";
33192 def V6_vdmpyhsat : HInst<
33193 (outs HvxVR:$Vd32),
33194 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33195 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
33196 tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33197 let Inst{7-5} = 0b010;
33198 let Inst{13-13} = 0b0;
33199 let Inst{31-21} = 0b00011001001;
33200 let hasNewValue = 1;
33201 let opNewValue = 0;
33202 let isCVI = 1;
33203 let DecoderNamespace = "EXT_mmvec";
33205 def V6_vdmpyhsat_acc : HInst<
33206 (outs HvxVR:$Vx32),
33207 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33208 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
33209 tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33210 let Inst{7-5} = 0b011;
33211 let Inst{13-13} = 0b1;
33212 let Inst{31-21} = 0b00011001001;
33213 let hasNewValue = 1;
33214 let opNewValue = 0;
33215 let isAccumulator = 1;
33216 let isCVI = 1;
33217 let DecoderNamespace = "EXT_mmvec";
33218 let Constraints = "$Vx32 = $Vx32in";
33220 def V6_vdmpyhsat_acc_alt : HInst<
33221 (outs HvxVR:$Vx32),
33222 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33223 "$Vx32 += vdmpyh($Vu32,$Rt32):sat",
33224 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33225 let hasNewValue = 1;
33226 let opNewValue = 0;
33227 let isAccumulator = 1;
33228 let isCVI = 1;
33229 let isPseudo = 1;
33230 let isCodeGenOnly = 1;
33231 let DecoderNamespace = "EXT_mmvec";
33232 let Constraints = "$Vx32 = $Vx32in";
33234 def V6_vdmpyhsat_alt : HInst<
33235 (outs HvxVR:$Vd32),
33236 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33237 "$Vd32 = vdmpyh($Vu32,$Rt32):sat",
33238 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33239 let hasNewValue = 1;
33240 let opNewValue = 0;
33241 let isCVI = 1;
33242 let isPseudo = 1;
33243 let isCodeGenOnly = 1;
33244 let DecoderNamespace = "EXT_mmvec";
33246 def V6_vdmpyhsuisat : HInst<
33247 (outs HvxVR:$Vd32),
33248 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33249 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
33250 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
33251 let Inst{7-5} = 0b001;
33252 let Inst{13-13} = 0b0;
33253 let Inst{31-21} = 0b00011001001;
33254 let hasNewValue = 1;
33255 let opNewValue = 0;
33256 let isCVI = 1;
33257 let DecoderNamespace = "EXT_mmvec";
33259 def V6_vdmpyhsuisat_acc : HInst<
33260 (outs HvxVR:$Vx32),
33261 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33262 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
33263 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
33264 let Inst{7-5} = 0b001;
33265 let Inst{13-13} = 0b1;
33266 let Inst{31-21} = 0b00011001001;
33267 let hasNewValue = 1;
33268 let opNewValue = 0;
33269 let isAccumulator = 1;
33270 let isCVI = 1;
33271 let DecoderNamespace = "EXT_mmvec";
33272 let Constraints = "$Vx32 = $Vx32in";
33274 def V6_vdmpyhsuisat_acc_alt : HInst<
33275 (outs HvxVR:$Vx32),
33276 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33277 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
33278 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33279 let hasNewValue = 1;
33280 let opNewValue = 0;
33281 let isAccumulator = 1;
33282 let isCVI = 1;
33283 let isPseudo = 1;
33284 let isCodeGenOnly = 1;
33285 let DecoderNamespace = "EXT_mmvec";
33286 let Constraints = "$Vx32 = $Vx32in";
33288 def V6_vdmpyhsuisat_alt : HInst<
33289 (outs HvxVR:$Vd32),
33290 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33291 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
33292 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33293 let hasNewValue = 1;
33294 let opNewValue = 0;
33295 let isCVI = 1;
33296 let isPseudo = 1;
33297 let isCodeGenOnly = 1;
33298 let DecoderNamespace = "EXT_mmvec";
33300 def V6_vdmpyhsusat : HInst<
33301 (outs HvxVR:$Vd32),
33302 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33303 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
33304 tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33305 let Inst{7-5} = 0b000;
33306 let Inst{13-13} = 0b0;
33307 let Inst{31-21} = 0b00011001001;
33308 let hasNewValue = 1;
33309 let opNewValue = 0;
33310 let isCVI = 1;
33311 let DecoderNamespace = "EXT_mmvec";
33313 def V6_vdmpyhsusat_acc : HInst<
33314 (outs HvxVR:$Vx32),
33315 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33316 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
33317 tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33318 let Inst{7-5} = 0b000;
33319 let Inst{13-13} = 0b1;
33320 let Inst{31-21} = 0b00011001001;
33321 let hasNewValue = 1;
33322 let opNewValue = 0;
33323 let isAccumulator = 1;
33324 let isCVI = 1;
33325 let DecoderNamespace = "EXT_mmvec";
33326 let Constraints = "$Vx32 = $Vx32in";
33328 def V6_vdmpyhsusat_acc_alt : HInst<
33329 (outs HvxVR:$Vx32),
33330 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33331 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
33332 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33333 let hasNewValue = 1;
33334 let opNewValue = 0;
33335 let isAccumulator = 1;
33336 let isCVI = 1;
33337 let isPseudo = 1;
33338 let isCodeGenOnly = 1;
33339 let DecoderNamespace = "EXT_mmvec";
33340 let Constraints = "$Vx32 = $Vx32in";
33342 def V6_vdmpyhsusat_alt : HInst<
33343 (outs HvxVR:$Vd32),
33344 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33345 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
33346 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33347 let hasNewValue = 1;
33348 let opNewValue = 0;
33349 let isCVI = 1;
33350 let isPseudo = 1;
33351 let isCodeGenOnly = 1;
33352 let DecoderNamespace = "EXT_mmvec";
33354 def V6_vdmpyhvsat : HInst<
33355 (outs HvxVR:$Vd32),
33356 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33357 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
33358 tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
33359 let Inst{7-5} = 0b011;
33360 let Inst{13-13} = 0b0;
33361 let Inst{31-21} = 0b00011100000;
33362 let hasNewValue = 1;
33363 let opNewValue = 0;
33364 let isCVI = 1;
33365 let DecoderNamespace = "EXT_mmvec";
33367 def V6_vdmpyhvsat_acc : HInst<
33368 (outs HvxVR:$Vx32),
33369 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33370 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
33371 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33372 let Inst{7-5} = 0b011;
33373 let Inst{13-13} = 0b1;
33374 let Inst{31-21} = 0b00011100000;
33375 let hasNewValue = 1;
33376 let opNewValue = 0;
33377 let isAccumulator = 1;
33378 let isCVI = 1;
33379 let DecoderNamespace = "EXT_mmvec";
33380 let Constraints = "$Vx32 = $Vx32in";
33382 def V6_vdmpyhvsat_acc_alt : HInst<
33383 (outs HvxVR:$Vx32),
33384 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33385 "$Vx32 += vdmpyh($Vu32,$Vv32):sat",
33386 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33387 let hasNewValue = 1;
33388 let opNewValue = 0;
33389 let isAccumulator = 1;
33390 let isCVI = 1;
33391 let isPseudo = 1;
33392 let isCodeGenOnly = 1;
33393 let DecoderNamespace = "EXT_mmvec";
33394 let Constraints = "$Vx32 = $Vx32in";
33396 def V6_vdmpyhvsat_alt : HInst<
33397 (outs HvxVR:$Vd32),
33398 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33399 "$Vd32 = vdmpyh($Vu32,$Vv32):sat",
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_vdsaduh : HInst<
33409 (outs HvxWR:$Vdd32),
33410 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33411 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
33412 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33413 let Inst{7-5} = 0b101;
33414 let Inst{13-13} = 0b0;
33415 let Inst{31-21} = 0b00011001000;
33416 let hasNewValue = 1;
33417 let opNewValue = 0;
33418 let isCVI = 1;
33419 let DecoderNamespace = "EXT_mmvec";
33421 def V6_vdsaduh_acc : HInst<
33422 (outs HvxWR:$Vxx32),
33423 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33424 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
33425 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33426 let Inst{7-5} = 0b000;
33427 let Inst{13-13} = 0b1;
33428 let Inst{31-21} = 0b00011001011;
33429 let hasNewValue = 1;
33430 let opNewValue = 0;
33431 let isAccumulator = 1;
33432 let isCVI = 1;
33433 let DecoderNamespace = "EXT_mmvec";
33434 let Constraints = "$Vxx32 = $Vxx32in";
33436 def V6_vdsaduh_acc_alt : HInst<
33437 (outs HvxWR:$Vxx32),
33438 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33439 "$Vxx32 += vdsaduh($Vuu32,$Rt32)",
33440 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33441 let hasNewValue = 1;
33442 let opNewValue = 0;
33443 let isAccumulator = 1;
33444 let isCVI = 1;
33445 let isPseudo = 1;
33446 let isCodeGenOnly = 1;
33447 let DecoderNamespace = "EXT_mmvec";
33448 let Constraints = "$Vxx32 = $Vxx32in";
33450 def V6_vdsaduh_alt : HInst<
33451 (outs HvxWR:$Vdd32),
33452 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33453 "$Vdd32 = vdsaduh($Vuu32,$Rt32)",
33454 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33455 let hasNewValue = 1;
33456 let opNewValue = 0;
33457 let isCVI = 1;
33458 let isPseudo = 1;
33459 let isCodeGenOnly = 1;
33460 let DecoderNamespace = "EXT_mmvec";
33462 def V6_veqb : HInst<
33463 (outs HvxQR:$Qd4),
33464 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33465 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
33466 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33467 let Inst{7-2} = 0b000000;
33468 let Inst{13-13} = 0b0;
33469 let Inst{31-21} = 0b00011111100;
33470 let hasNewValue = 1;
33471 let opNewValue = 0;
33472 let isCVI = 1;
33473 let isHVXALU = 1;
33474 let isHVXALU2SRC = 1;
33475 let DecoderNamespace = "EXT_mmvec";
33477 def V6_veqb_and : HInst<
33478 (outs HvxQR:$Qx4),
33479 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33480 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
33481 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33482 let Inst{7-2} = 0b000000;
33483 let Inst{13-13} = 0b1;
33484 let Inst{31-21} = 0b00011100100;
33485 let isCVI = 1;
33486 let isHVXALU = 1;
33487 let isHVXALU2SRC = 1;
33488 let DecoderNamespace = "EXT_mmvec";
33489 let Constraints = "$Qx4 = $Qx4in";
33491 def V6_veqb_or : HInst<
33492 (outs HvxQR:$Qx4),
33493 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33494 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
33495 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33496 let Inst{7-2} = 0b010000;
33497 let Inst{13-13} = 0b1;
33498 let Inst{31-21} = 0b00011100100;
33499 let isAccumulator = 1;
33500 let isCVI = 1;
33501 let isHVXALU = 1;
33502 let isHVXALU2SRC = 1;
33503 let DecoderNamespace = "EXT_mmvec";
33504 let Constraints = "$Qx4 = $Qx4in";
33506 def V6_veqb_xor : HInst<
33507 (outs HvxQR:$Qx4),
33508 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33509 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
33510 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33511 let Inst{7-2} = 0b100000;
33512 let Inst{13-13} = 0b1;
33513 let Inst{31-21} = 0b00011100100;
33514 let isCVI = 1;
33515 let isHVXALU = 1;
33516 let isHVXALU2SRC = 1;
33517 let DecoderNamespace = "EXT_mmvec";
33518 let Constraints = "$Qx4 = $Qx4in";
33520 def V6_veqh : HInst<
33521 (outs HvxQR:$Qd4),
33522 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33523 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
33524 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33525 let Inst{7-2} = 0b000001;
33526 let Inst{13-13} = 0b0;
33527 let Inst{31-21} = 0b00011111100;
33528 let hasNewValue = 1;
33529 let opNewValue = 0;
33530 let isCVI = 1;
33531 let isHVXALU = 1;
33532 let isHVXALU2SRC = 1;
33533 let DecoderNamespace = "EXT_mmvec";
33535 def V6_veqh_and : HInst<
33536 (outs HvxQR:$Qx4),
33537 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33538 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
33539 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33540 let Inst{7-2} = 0b000001;
33541 let Inst{13-13} = 0b1;
33542 let Inst{31-21} = 0b00011100100;
33543 let isCVI = 1;
33544 let isHVXALU = 1;
33545 let isHVXALU2SRC = 1;
33546 let DecoderNamespace = "EXT_mmvec";
33547 let Constraints = "$Qx4 = $Qx4in";
33549 def V6_veqh_or : HInst<
33550 (outs HvxQR:$Qx4),
33551 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33552 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
33553 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33554 let Inst{7-2} = 0b010001;
33555 let Inst{13-13} = 0b1;
33556 let Inst{31-21} = 0b00011100100;
33557 let isAccumulator = 1;
33558 let isCVI = 1;
33559 let isHVXALU = 1;
33560 let isHVXALU2SRC = 1;
33561 let DecoderNamespace = "EXT_mmvec";
33562 let Constraints = "$Qx4 = $Qx4in";
33564 def V6_veqh_xor : HInst<
33565 (outs HvxQR:$Qx4),
33566 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33567 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
33568 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33569 let Inst{7-2} = 0b100001;
33570 let Inst{13-13} = 0b1;
33571 let Inst{31-21} = 0b00011100100;
33572 let isCVI = 1;
33573 let isHVXALU = 1;
33574 let isHVXALU2SRC = 1;
33575 let DecoderNamespace = "EXT_mmvec";
33576 let Constraints = "$Qx4 = $Qx4in";
33578 def V6_veqw : HInst<
33579 (outs HvxQR:$Qd4),
33580 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33581 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
33582 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33583 let Inst{7-2} = 0b000010;
33584 let Inst{13-13} = 0b0;
33585 let Inst{31-21} = 0b00011111100;
33586 let hasNewValue = 1;
33587 let opNewValue = 0;
33588 let isCVI = 1;
33589 let isHVXALU = 1;
33590 let isHVXALU2SRC = 1;
33591 let DecoderNamespace = "EXT_mmvec";
33593 def V6_veqw_and : HInst<
33594 (outs HvxQR:$Qx4),
33595 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33596 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
33597 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33598 let Inst{7-2} = 0b000010;
33599 let Inst{13-13} = 0b1;
33600 let Inst{31-21} = 0b00011100100;
33601 let isCVI = 1;
33602 let isHVXALU = 1;
33603 let isHVXALU2SRC = 1;
33604 let DecoderNamespace = "EXT_mmvec";
33605 let Constraints = "$Qx4 = $Qx4in";
33607 def V6_veqw_or : HInst<
33608 (outs HvxQR:$Qx4),
33609 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33610 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
33611 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33612 let Inst{7-2} = 0b010010;
33613 let Inst{13-13} = 0b1;
33614 let Inst{31-21} = 0b00011100100;
33615 let isAccumulator = 1;
33616 let isCVI = 1;
33617 let isHVXALU = 1;
33618 let isHVXALU2SRC = 1;
33619 let DecoderNamespace = "EXT_mmvec";
33620 let Constraints = "$Qx4 = $Qx4in";
33622 def V6_veqw_xor : HInst<
33623 (outs HvxQR:$Qx4),
33624 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33625 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
33626 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33627 let Inst{7-2} = 0b100010;
33628 let Inst{13-13} = 0b1;
33629 let Inst{31-21} = 0b00011100100;
33630 let isCVI = 1;
33631 let isHVXALU = 1;
33632 let isHVXALU2SRC = 1;
33633 let DecoderNamespace = "EXT_mmvec";
33634 let Constraints = "$Qx4 = $Qx4in";
33636 def V6_vfmax_hf : HInst<
33637 (outs HvxVR:$Vd32),
33638 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33639 "$Vd32.hf = vfmax($Vu32.hf,$Vv32.hf)",
33640 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33641 let Inst{7-5} = 0b010;
33642 let Inst{13-13} = 0b1;
33643 let Inst{31-21} = 0b00011100011;
33644 let hasNewValue = 1;
33645 let opNewValue = 0;
33646 let isCVI = 1;
33647 let DecoderNamespace = "EXT_mmvec";
33649 def V6_vfmax_sf : HInst<
33650 (outs HvxVR:$Vd32),
33651 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33652 "$Vd32.sf = vfmax($Vu32.sf,$Vv32.sf)",
33653 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33654 let Inst{7-5} = 0b011;
33655 let Inst{13-13} = 0b1;
33656 let Inst{31-21} = 0b00011100011;
33657 let hasNewValue = 1;
33658 let opNewValue = 0;
33659 let isCVI = 1;
33660 let DecoderNamespace = "EXT_mmvec";
33662 def V6_vfmin_hf : HInst<
33663 (outs HvxVR:$Vd32),
33664 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33665 "$Vd32.hf = vfmin($Vu32.hf,$Vv32.hf)",
33666 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33667 let Inst{7-5} = 0b000;
33668 let Inst{13-13} = 0b1;
33669 let Inst{31-21} = 0b00011100011;
33670 let hasNewValue = 1;
33671 let opNewValue = 0;
33672 let isCVI = 1;
33673 let DecoderNamespace = "EXT_mmvec";
33675 def V6_vfmin_sf : HInst<
33676 (outs HvxVR:$Vd32),
33677 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33678 "$Vd32.sf = vfmin($Vu32.sf,$Vv32.sf)",
33679 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33680 let Inst{7-5} = 0b001;
33681 let Inst{13-13} = 0b1;
33682 let Inst{31-21} = 0b00011100011;
33683 let hasNewValue = 1;
33684 let opNewValue = 0;
33685 let isCVI = 1;
33686 let DecoderNamespace = "EXT_mmvec";
33688 def V6_vfneg_hf : HInst<
33689 (outs HvxVR:$Vd32),
33690 (ins HvxVR:$Vu32),
33691 "$Vd32.hf = vfneg($Vu32.hf)",
33692 tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33693 let Inst{7-5} = 0b010;
33694 let Inst{13-13} = 0b1;
33695 let Inst{31-16} = 0b0001111000000110;
33696 let hasNewValue = 1;
33697 let opNewValue = 0;
33698 let isCVI = 1;
33699 let DecoderNamespace = "EXT_mmvec";
33701 def V6_vfneg_sf : HInst<
33702 (outs HvxVR:$Vd32),
33703 (ins HvxVR:$Vu32),
33704 "$Vd32.sf = vfneg($Vu32.sf)",
33705 tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> {
33706 let Inst{7-5} = 0b011;
33707 let Inst{13-13} = 0b1;
33708 let Inst{31-16} = 0b0001111000000110;
33709 let hasNewValue = 1;
33710 let opNewValue = 0;
33711 let isCVI = 1;
33712 let DecoderNamespace = "EXT_mmvec";
33714 def V6_vgathermh : HInst<
33715 (outs),
33716 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33717 "vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33718 tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33719 let Inst{12-5} = 0b00001000;
33720 let Inst{31-21} = 0b00101111000;
33721 let hasNewValue = 1;
33722 let opNewValue = 0;
33723 let accessSize = HalfWordAccess;
33724 let isCVLoad = 1;
33725 let isCVI = 1;
33726 let isHVXALU = 1;
33727 let mayLoad = 1;
33728 let Defs = [VTMP];
33729 let DecoderNamespace = "EXT_mmvec";
33731 def V6_vgathermhq : HInst<
33732 (outs),
33733 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33734 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
33735 tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33736 let Inst{12-7} = 0b001010;
33737 let Inst{31-21} = 0b00101111000;
33738 let hasNewValue = 1;
33739 let opNewValue = 0;
33740 let accessSize = HalfWordAccess;
33741 let isCVLoad = 1;
33742 let isCVI = 1;
33743 let isHVXALU = 1;
33744 let mayLoad = 1;
33745 let Defs = [VTMP];
33746 let DecoderNamespace = "EXT_mmvec";
33748 def V6_vgathermhw : HInst<
33749 (outs),
33750 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33751 "vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33752 tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> {
33753 let Inst{12-5} = 0b00010000;
33754 let Inst{31-21} = 0b00101111000;
33755 let hasNewValue = 1;
33756 let opNewValue = 0;
33757 let accessSize = HalfWordAccess;
33758 let isCVLoad = 1;
33759 let isCVI = 1;
33760 let mayLoad = 1;
33761 let Defs = [VTMP];
33762 let DecoderNamespace = "EXT_mmvec";
33764 def V6_vgathermhwq : HInst<
33765 (outs),
33766 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
33767 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
33768 tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> {
33769 let Inst{12-7} = 0b001100;
33770 let Inst{31-21} = 0b00101111000;
33771 let hasNewValue = 1;
33772 let opNewValue = 0;
33773 let accessSize = HalfWordAccess;
33774 let isCVLoad = 1;
33775 let isCVI = 1;
33776 let mayLoad = 1;
33777 let Defs = [VTMP];
33778 let DecoderNamespace = "EXT_mmvec";
33780 def V6_vgathermw : HInst<
33781 (outs),
33782 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33783 "vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33784 tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
33785 let Inst{12-5} = 0b00000000;
33786 let Inst{31-21} = 0b00101111000;
33787 let hasNewValue = 1;
33788 let opNewValue = 0;
33789 let accessSize = WordAccess;
33790 let isCVLoad = 1;
33791 let isCVI = 1;
33792 let isHVXALU = 1;
33793 let mayLoad = 1;
33794 let Defs = [VTMP];
33795 let DecoderNamespace = "EXT_mmvec";
33797 def V6_vgathermwq : HInst<
33798 (outs),
33799 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
33800 "if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
33801 tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
33802 let Inst{12-7} = 0b001000;
33803 let Inst{31-21} = 0b00101111000;
33804 let hasNewValue = 1;
33805 let opNewValue = 0;
33806 let accessSize = WordAccess;
33807 let isCVLoad = 1;
33808 let isCVI = 1;
33809 let isHVXALU = 1;
33810 let mayLoad = 1;
33811 let Defs = [VTMP];
33812 let DecoderNamespace = "EXT_mmvec";
33814 def V6_vgtb : HInst<
33815 (outs HvxQR:$Qd4),
33816 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33817 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
33818 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33819 let Inst{7-2} = 0b000100;
33820 let Inst{13-13} = 0b0;
33821 let Inst{31-21} = 0b00011111100;
33822 let hasNewValue = 1;
33823 let opNewValue = 0;
33824 let isCVI = 1;
33825 let isHVXALU = 1;
33826 let isHVXALU2SRC = 1;
33827 let DecoderNamespace = "EXT_mmvec";
33829 def V6_vgtb_and : HInst<
33830 (outs HvxQR:$Qx4),
33831 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33832 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
33833 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33834 let Inst{7-2} = 0b000100;
33835 let Inst{13-13} = 0b1;
33836 let Inst{31-21} = 0b00011100100;
33837 let isCVI = 1;
33838 let isHVXALU = 1;
33839 let isHVXALU2SRC = 1;
33840 let DecoderNamespace = "EXT_mmvec";
33841 let Constraints = "$Qx4 = $Qx4in";
33843 def V6_vgtb_or : HInst<
33844 (outs HvxQR:$Qx4),
33845 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33846 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
33847 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33848 let Inst{7-2} = 0b010100;
33849 let Inst{13-13} = 0b1;
33850 let Inst{31-21} = 0b00011100100;
33851 let isAccumulator = 1;
33852 let isCVI = 1;
33853 let isHVXALU = 1;
33854 let isHVXALU2SRC = 1;
33855 let DecoderNamespace = "EXT_mmvec";
33856 let Constraints = "$Qx4 = $Qx4in";
33858 def V6_vgtb_xor : HInst<
33859 (outs HvxQR:$Qx4),
33860 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33861 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
33862 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33863 let Inst{7-2} = 0b100100;
33864 let Inst{13-13} = 0b1;
33865 let Inst{31-21} = 0b00011100100;
33866 let isCVI = 1;
33867 let isHVXALU = 1;
33868 let isHVXALU2SRC = 1;
33869 let DecoderNamespace = "EXT_mmvec";
33870 let Constraints = "$Qx4 = $Qx4in";
33872 def V6_vgtbf : HInst<
33873 (outs HvxQR:$Qd4),
33874 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33875 "$Qd4 = vcmp.gt($Vu32.bf,$Vv32.bf)",
33876 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV73,UseHVXQFloat]> {
33877 let Inst{7-2} = 0b011110;
33878 let Inst{13-13} = 0b1;
33879 let Inst{31-21} = 0b00011100100;
33880 let hasNewValue = 1;
33881 let opNewValue = 0;
33882 let isCVI = 1;
33883 let isHVXALU = 1;
33884 let isHVXALU2SRC = 1;
33885 let DecoderNamespace = "EXT_mmvec";
33887 def V6_vgtbf_and : HInst<
33888 (outs HvxQR:$Qx4),
33889 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33890 "$Qx4 &= vcmp.gt($Vu32.bf,$Vv32.bf)",
33891 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33892 let Inst{7-2} = 0b110100;
33893 let Inst{13-13} = 0b1;
33894 let Inst{31-21} = 0b00011100100;
33895 let isCVI = 1;
33896 let isHVXALU = 1;
33897 let isHVXALU2SRC = 1;
33898 let DecoderNamespace = "EXT_mmvec";
33899 let Constraints = "$Qx4 = $Qx4in";
33901 def V6_vgtbf_or : HInst<
33902 (outs HvxQR:$Qx4),
33903 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33904 "$Qx4 |= vcmp.gt($Vu32.bf,$Vv32.bf)",
33905 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33906 let Inst{7-2} = 0b001110;
33907 let Inst{13-13} = 0b1;
33908 let Inst{31-21} = 0b00011100100;
33909 let isAccumulator = 1;
33910 let isCVI = 1;
33911 let isHVXALU = 1;
33912 let isHVXALU2SRC = 1;
33913 let DecoderNamespace = "EXT_mmvec";
33914 let Constraints = "$Qx4 = $Qx4in";
33916 def V6_vgtbf_xor : HInst<
33917 (outs HvxQR:$Qx4),
33918 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33919 "$Qx4 ^= vcmp.gt($Vu32.bf,$Vv32.bf)",
33920 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> {
33921 let Inst{7-2} = 0b111100;
33922 let Inst{13-13} = 0b1;
33923 let Inst{31-21} = 0b00011100100;
33924 let isCVI = 1;
33925 let isHVXALU = 1;
33926 let isHVXALU2SRC = 1;
33927 let DecoderNamespace = "EXT_mmvec";
33928 let Constraints = "$Qx4 = $Qx4in";
33930 def V6_vgth : HInst<
33931 (outs HvxQR:$Qd4),
33932 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33933 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
33934 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
33935 let Inst{7-2} = 0b000101;
33936 let Inst{13-13} = 0b0;
33937 let Inst{31-21} = 0b00011111100;
33938 let hasNewValue = 1;
33939 let opNewValue = 0;
33940 let isCVI = 1;
33941 let isHVXALU = 1;
33942 let isHVXALU2SRC = 1;
33943 let DecoderNamespace = "EXT_mmvec";
33945 def V6_vgth_and : HInst<
33946 (outs HvxQR:$Qx4),
33947 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33948 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
33949 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33950 let Inst{7-2} = 0b000101;
33951 let Inst{13-13} = 0b1;
33952 let Inst{31-21} = 0b00011100100;
33953 let isCVI = 1;
33954 let isHVXALU = 1;
33955 let isHVXALU2SRC = 1;
33956 let DecoderNamespace = "EXT_mmvec";
33957 let Constraints = "$Qx4 = $Qx4in";
33959 def V6_vgth_or : HInst<
33960 (outs HvxQR:$Qx4),
33961 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33962 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
33963 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33964 let Inst{7-2} = 0b010101;
33965 let Inst{13-13} = 0b1;
33966 let Inst{31-21} = 0b00011100100;
33967 let isAccumulator = 1;
33968 let isCVI = 1;
33969 let isHVXALU = 1;
33970 let isHVXALU2SRC = 1;
33971 let DecoderNamespace = "EXT_mmvec";
33972 let Constraints = "$Qx4 = $Qx4in";
33974 def V6_vgth_xor : HInst<
33975 (outs HvxQR:$Qx4),
33976 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
33977 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
33978 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
33979 let Inst{7-2} = 0b100101;
33980 let Inst{13-13} = 0b1;
33981 let Inst{31-21} = 0b00011100100;
33982 let isCVI = 1;
33983 let isHVXALU = 1;
33984 let isHVXALU2SRC = 1;
33985 let DecoderNamespace = "EXT_mmvec";
33986 let Constraints = "$Qx4 = $Qx4in";
33988 def V6_vgthf : HInst<
33989 (outs HvxQR:$Qd4),
33990 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33991 "$Qd4 = vcmp.gt($Vu32.hf,$Vv32.hf)",
33992 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
33993 let Inst{7-2} = 0b011101;
33994 let Inst{13-13} = 0b1;
33995 let Inst{31-21} = 0b00011100100;
33996 let hasNewValue = 1;
33997 let opNewValue = 0;
33998 let isCVI = 1;
33999 let isHVXALU = 1;
34000 let isHVXALU2SRC = 1;
34001 let DecoderNamespace = "EXT_mmvec";
34003 def V6_vgthf_and : HInst<
34004 (outs HvxQR:$Qx4),
34005 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34006 "$Qx4 &= vcmp.gt($Vu32.hf,$Vv32.hf)",
34007 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34008 let Inst{7-2} = 0b110011;
34009 let Inst{13-13} = 0b1;
34010 let Inst{31-21} = 0b00011100100;
34011 let isCVI = 1;
34012 let isHVXALU = 1;
34013 let isHVXALU2SRC = 1;
34014 let DecoderNamespace = "EXT_mmvec";
34015 let Constraints = "$Qx4 = $Qx4in";
34017 def V6_vgthf_or : HInst<
34018 (outs HvxQR:$Qx4),
34019 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34020 "$Qx4 |= vcmp.gt($Vu32.hf,$Vv32.hf)",
34021 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34022 let Inst{7-2} = 0b001101;
34023 let Inst{13-13} = 0b1;
34024 let Inst{31-21} = 0b00011100100;
34025 let isAccumulator = 1;
34026 let isCVI = 1;
34027 let isHVXALU = 1;
34028 let isHVXALU2SRC = 1;
34029 let DecoderNamespace = "EXT_mmvec";
34030 let Constraints = "$Qx4 = $Qx4in";
34032 def V6_vgthf_xor : HInst<
34033 (outs HvxQR:$Qx4),
34034 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34035 "$Qx4 ^= vcmp.gt($Vu32.hf,$Vv32.hf)",
34036 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34037 let Inst{7-2} = 0b111011;
34038 let Inst{13-13} = 0b1;
34039 let Inst{31-21} = 0b00011100100;
34040 let isCVI = 1;
34041 let isHVXALU = 1;
34042 let isHVXALU2SRC = 1;
34043 let DecoderNamespace = "EXT_mmvec";
34044 let Constraints = "$Qx4 = $Qx4in";
34046 def V6_vgtsf : HInst<
34047 (outs HvxQR:$Qd4),
34048 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34049 "$Qd4 = vcmp.gt($Vu32.sf,$Vv32.sf)",
34050 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34051 let Inst{7-2} = 0b011100;
34052 let Inst{13-13} = 0b1;
34053 let Inst{31-21} = 0b00011100100;
34054 let hasNewValue = 1;
34055 let opNewValue = 0;
34056 let isCVI = 1;
34057 let isHVXALU = 1;
34058 let isHVXALU2SRC = 1;
34059 let DecoderNamespace = "EXT_mmvec";
34061 def V6_vgtsf_and : HInst<
34062 (outs HvxQR:$Qx4),
34063 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34064 "$Qx4 &= vcmp.gt($Vu32.sf,$Vv32.sf)",
34065 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34066 let Inst{7-2} = 0b110010;
34067 let Inst{13-13} = 0b1;
34068 let Inst{31-21} = 0b00011100100;
34069 let isCVI = 1;
34070 let isHVXALU = 1;
34071 let isHVXALU2SRC = 1;
34072 let DecoderNamespace = "EXT_mmvec";
34073 let Constraints = "$Qx4 = $Qx4in";
34075 def V6_vgtsf_or : HInst<
34076 (outs HvxQR:$Qx4),
34077 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34078 "$Qx4 |= vcmp.gt($Vu32.sf,$Vv32.sf)",
34079 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34080 let Inst{7-2} = 0b001100;
34081 let Inst{13-13} = 0b1;
34082 let Inst{31-21} = 0b00011100100;
34083 let isAccumulator = 1;
34084 let isCVI = 1;
34085 let isHVXALU = 1;
34086 let isHVXALU2SRC = 1;
34087 let DecoderNamespace = "EXT_mmvec";
34088 let Constraints = "$Qx4 = $Qx4in";
34090 def V6_vgtsf_xor : HInst<
34091 (outs HvxQR:$Qx4),
34092 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34093 "$Qx4 ^= vcmp.gt($Vu32.sf,$Vv32.sf)",
34094 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> {
34095 let Inst{7-2} = 0b111010;
34096 let Inst{13-13} = 0b1;
34097 let Inst{31-21} = 0b00011100100;
34098 let isCVI = 1;
34099 let isHVXALU = 1;
34100 let isHVXALU2SRC = 1;
34101 let DecoderNamespace = "EXT_mmvec";
34102 let Constraints = "$Qx4 = $Qx4in";
34104 def V6_vgtub : HInst<
34105 (outs HvxQR:$Qd4),
34106 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34107 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
34108 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34109 let Inst{7-2} = 0b001000;
34110 let Inst{13-13} = 0b0;
34111 let Inst{31-21} = 0b00011111100;
34112 let hasNewValue = 1;
34113 let opNewValue = 0;
34114 let isCVI = 1;
34115 let isHVXALU = 1;
34116 let isHVXALU2SRC = 1;
34117 let DecoderNamespace = "EXT_mmvec";
34119 def V6_vgtub_and : HInst<
34120 (outs HvxQR:$Qx4),
34121 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34122 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
34123 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34124 let Inst{7-2} = 0b001000;
34125 let Inst{13-13} = 0b1;
34126 let Inst{31-21} = 0b00011100100;
34127 let isCVI = 1;
34128 let isHVXALU = 1;
34129 let isHVXALU2SRC = 1;
34130 let DecoderNamespace = "EXT_mmvec";
34131 let Constraints = "$Qx4 = $Qx4in";
34133 def V6_vgtub_or : HInst<
34134 (outs HvxQR:$Qx4),
34135 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34136 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
34137 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34138 let Inst{7-2} = 0b011000;
34139 let Inst{13-13} = 0b1;
34140 let Inst{31-21} = 0b00011100100;
34141 let isAccumulator = 1;
34142 let isCVI = 1;
34143 let isHVXALU = 1;
34144 let isHVXALU2SRC = 1;
34145 let DecoderNamespace = "EXT_mmvec";
34146 let Constraints = "$Qx4 = $Qx4in";
34148 def V6_vgtub_xor : HInst<
34149 (outs HvxQR:$Qx4),
34150 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34151 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
34152 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34153 let Inst{7-2} = 0b101000;
34154 let Inst{13-13} = 0b1;
34155 let Inst{31-21} = 0b00011100100;
34156 let isCVI = 1;
34157 let isHVXALU = 1;
34158 let isHVXALU2SRC = 1;
34159 let DecoderNamespace = "EXT_mmvec";
34160 let Constraints = "$Qx4 = $Qx4in";
34162 def V6_vgtuh : HInst<
34163 (outs HvxQR:$Qd4),
34164 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34165 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
34166 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34167 let Inst{7-2} = 0b001001;
34168 let Inst{13-13} = 0b0;
34169 let Inst{31-21} = 0b00011111100;
34170 let hasNewValue = 1;
34171 let opNewValue = 0;
34172 let isCVI = 1;
34173 let isHVXALU = 1;
34174 let isHVXALU2SRC = 1;
34175 let DecoderNamespace = "EXT_mmvec";
34177 def V6_vgtuh_and : HInst<
34178 (outs HvxQR:$Qx4),
34179 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34180 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
34181 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34182 let Inst{7-2} = 0b001001;
34183 let Inst{13-13} = 0b1;
34184 let Inst{31-21} = 0b00011100100;
34185 let isCVI = 1;
34186 let isHVXALU = 1;
34187 let isHVXALU2SRC = 1;
34188 let DecoderNamespace = "EXT_mmvec";
34189 let Constraints = "$Qx4 = $Qx4in";
34191 def V6_vgtuh_or : HInst<
34192 (outs HvxQR:$Qx4),
34193 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34194 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
34195 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34196 let Inst{7-2} = 0b011001;
34197 let Inst{13-13} = 0b1;
34198 let Inst{31-21} = 0b00011100100;
34199 let isAccumulator = 1;
34200 let isCVI = 1;
34201 let isHVXALU = 1;
34202 let isHVXALU2SRC = 1;
34203 let DecoderNamespace = "EXT_mmvec";
34204 let Constraints = "$Qx4 = $Qx4in";
34206 def V6_vgtuh_xor : HInst<
34207 (outs HvxQR:$Qx4),
34208 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34209 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
34210 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34211 let Inst{7-2} = 0b101001;
34212 let Inst{13-13} = 0b1;
34213 let Inst{31-21} = 0b00011100100;
34214 let isCVI = 1;
34215 let isHVXALU = 1;
34216 let isHVXALU2SRC = 1;
34217 let DecoderNamespace = "EXT_mmvec";
34218 let Constraints = "$Qx4 = $Qx4in";
34220 def V6_vgtuw : HInst<
34221 (outs HvxQR:$Qd4),
34222 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34223 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
34224 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34225 let Inst{7-2} = 0b001010;
34226 let Inst{13-13} = 0b0;
34227 let Inst{31-21} = 0b00011111100;
34228 let hasNewValue = 1;
34229 let opNewValue = 0;
34230 let isCVI = 1;
34231 let isHVXALU = 1;
34232 let isHVXALU2SRC = 1;
34233 let DecoderNamespace = "EXT_mmvec";
34235 def V6_vgtuw_and : HInst<
34236 (outs HvxQR:$Qx4),
34237 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34238 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
34239 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34240 let Inst{7-2} = 0b001010;
34241 let Inst{13-13} = 0b1;
34242 let Inst{31-21} = 0b00011100100;
34243 let isCVI = 1;
34244 let isHVXALU = 1;
34245 let isHVXALU2SRC = 1;
34246 let DecoderNamespace = "EXT_mmvec";
34247 let Constraints = "$Qx4 = $Qx4in";
34249 def V6_vgtuw_or : HInst<
34250 (outs HvxQR:$Qx4),
34251 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34252 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
34253 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34254 let Inst{7-2} = 0b011010;
34255 let Inst{13-13} = 0b1;
34256 let Inst{31-21} = 0b00011100100;
34257 let isAccumulator = 1;
34258 let isCVI = 1;
34259 let isHVXALU = 1;
34260 let isHVXALU2SRC = 1;
34261 let DecoderNamespace = "EXT_mmvec";
34262 let Constraints = "$Qx4 = $Qx4in";
34264 def V6_vgtuw_xor : HInst<
34265 (outs HvxQR:$Qx4),
34266 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34267 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
34268 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34269 let Inst{7-2} = 0b101010;
34270 let Inst{13-13} = 0b1;
34271 let Inst{31-21} = 0b00011100100;
34272 let isCVI = 1;
34273 let isHVXALU = 1;
34274 let isHVXALU2SRC = 1;
34275 let DecoderNamespace = "EXT_mmvec";
34276 let Constraints = "$Qx4 = $Qx4in";
34278 def V6_vgtw : HInst<
34279 (outs HvxQR:$Qd4),
34280 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34281 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
34282 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
34283 let Inst{7-2} = 0b000110;
34284 let Inst{13-13} = 0b0;
34285 let Inst{31-21} = 0b00011111100;
34286 let hasNewValue = 1;
34287 let opNewValue = 0;
34288 let isCVI = 1;
34289 let isHVXALU = 1;
34290 let isHVXALU2SRC = 1;
34291 let DecoderNamespace = "EXT_mmvec";
34293 def V6_vgtw_and : HInst<
34294 (outs HvxQR:$Qx4),
34295 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34296 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
34297 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34298 let Inst{7-2} = 0b000110;
34299 let Inst{13-13} = 0b1;
34300 let Inst{31-21} = 0b00011100100;
34301 let isCVI = 1;
34302 let isHVXALU = 1;
34303 let isHVXALU2SRC = 1;
34304 let DecoderNamespace = "EXT_mmvec";
34305 let Constraints = "$Qx4 = $Qx4in";
34307 def V6_vgtw_or : HInst<
34308 (outs HvxQR:$Qx4),
34309 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34310 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
34311 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34312 let Inst{7-2} = 0b010110;
34313 let Inst{13-13} = 0b1;
34314 let Inst{31-21} = 0b00011100100;
34315 let isAccumulator = 1;
34316 let isCVI = 1;
34317 let isHVXALU = 1;
34318 let isHVXALU2SRC = 1;
34319 let DecoderNamespace = "EXT_mmvec";
34320 let Constraints = "$Qx4 = $Qx4in";
34322 def V6_vgtw_xor : HInst<
34323 (outs HvxQR:$Qx4),
34324 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
34325 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
34326 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
34327 let Inst{7-2} = 0b100110;
34328 let Inst{13-13} = 0b1;
34329 let Inst{31-21} = 0b00011100100;
34330 let isCVI = 1;
34331 let isHVXALU = 1;
34332 let isHVXALU2SRC = 1;
34333 let DecoderNamespace = "EXT_mmvec";
34334 let Constraints = "$Qx4 = $Qx4in";
34336 def V6_vhist : HInst<
34337 (outs),
34338 (ins),
34339 "vhist",
34340 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
34341 let Inst{13-0} = 0b10000010000000;
34342 let Inst{31-16} = 0b0001111000000000;
34343 let isCVI = 1;
34344 let DecoderNamespace = "EXT_mmvec";
34346 def V6_vhistq : HInst<
34347 (outs),
34348 (ins HvxQR:$Qv4),
34349 "vhist($Qv4)",
34350 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
34351 let Inst{13-0} = 0b10000010000000;
34352 let Inst{21-16} = 0b000010;
34353 let Inst{31-24} = 0b00011110;
34354 let isCVI = 1;
34355 let DecoderNamespace = "EXT_mmvec";
34357 def V6_vinsertwr : HInst<
34358 (outs HvxVR:$Vx32),
34359 (ins HvxVR:$Vx32in, IntRegs:$Rt32),
34360 "$Vx32.w = vinsert($Rt32)",
34361 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
34362 let Inst{13-5} = 0b100000001;
34363 let Inst{31-21} = 0b00011001101;
34364 let hasNewValue = 1;
34365 let opNewValue = 0;
34366 let isCVI = 1;
34367 let DecoderNamespace = "EXT_mmvec";
34368 let Constraints = "$Vx32 = $Vx32in";
34370 def V6_vlalignb : HInst<
34371 (outs HvxVR:$Vd32),
34372 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34373 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
34374 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
34375 let Inst{7-5} = 0b001;
34376 let Inst{13-13} = 0b0;
34377 let Inst{31-24} = 0b00011011;
34378 let hasNewValue = 1;
34379 let opNewValue = 0;
34380 let isCVI = 1;
34381 let DecoderNamespace = "EXT_mmvec";
34383 def V6_vlalignbi : HInst<
34384 (outs HvxVR:$Vd32),
34385 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34386 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
34387 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
34388 let Inst{13-13} = 0b1;
34389 let Inst{31-21} = 0b00011110011;
34390 let hasNewValue = 1;
34391 let opNewValue = 0;
34392 let isCVI = 1;
34393 let DecoderNamespace = "EXT_mmvec";
34395 def V6_vlsrb : HInst<
34396 (outs HvxVR:$Vd32),
34397 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34398 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
34399 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
34400 let Inst{7-5} = 0b011;
34401 let Inst{13-13} = 0b0;
34402 let Inst{31-21} = 0b00011001100;
34403 let hasNewValue = 1;
34404 let opNewValue = 0;
34405 let isCVI = 1;
34406 let DecoderNamespace = "EXT_mmvec";
34408 def V6_vlsrh : HInst<
34409 (outs HvxVR:$Vd32),
34410 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34411 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
34412 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
34413 let Inst{7-5} = 0b010;
34414 let Inst{13-13} = 0b0;
34415 let Inst{31-21} = 0b00011001100;
34416 let hasNewValue = 1;
34417 let opNewValue = 0;
34418 let isCVI = 1;
34419 let DecoderNamespace = "EXT_mmvec";
34421 def V6_vlsrh_alt : HInst<
34422 (outs HvxVR:$Vd32),
34423 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34424 "$Vd32 = vlsrh($Vu32,$Rt32)",
34425 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34426 let hasNewValue = 1;
34427 let opNewValue = 0;
34428 let isCVI = 1;
34429 let isPseudo = 1;
34430 let isCodeGenOnly = 1;
34431 let DecoderNamespace = "EXT_mmvec";
34433 def V6_vlsrhv : HInst<
34434 (outs HvxVR:$Vd32),
34435 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34436 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
34437 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
34438 let Inst{7-5} = 0b010;
34439 let Inst{13-13} = 0b0;
34440 let Inst{31-21} = 0b00011111101;
34441 let hasNewValue = 1;
34442 let opNewValue = 0;
34443 let isCVI = 1;
34444 let DecoderNamespace = "EXT_mmvec";
34446 def V6_vlsrhv_alt : HInst<
34447 (outs HvxVR:$Vd32),
34448 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34449 "$Vd32 = vlsrh($Vu32,$Vv32)",
34450 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34451 let hasNewValue = 1;
34452 let opNewValue = 0;
34453 let isCVI = 1;
34454 let isPseudo = 1;
34455 let isCodeGenOnly = 1;
34456 let DecoderNamespace = "EXT_mmvec";
34458 def V6_vlsrw : HInst<
34459 (outs HvxVR:$Vd32),
34460 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34461 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
34462 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
34463 let Inst{7-5} = 0b001;
34464 let Inst{13-13} = 0b0;
34465 let Inst{31-21} = 0b00011001100;
34466 let hasNewValue = 1;
34467 let opNewValue = 0;
34468 let isCVI = 1;
34469 let DecoderNamespace = "EXT_mmvec";
34471 def V6_vlsrw_alt : HInst<
34472 (outs HvxVR:$Vd32),
34473 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34474 "$Vd32 = vlsrw($Vu32,$Rt32)",
34475 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34476 let hasNewValue = 1;
34477 let opNewValue = 0;
34478 let isCVI = 1;
34479 let isPseudo = 1;
34480 let isCodeGenOnly = 1;
34481 let DecoderNamespace = "EXT_mmvec";
34483 def V6_vlsrwv : HInst<
34484 (outs HvxVR:$Vd32),
34485 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34486 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
34487 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
34488 let Inst{7-5} = 0b001;
34489 let Inst{13-13} = 0b0;
34490 let Inst{31-21} = 0b00011111101;
34491 let hasNewValue = 1;
34492 let opNewValue = 0;
34493 let isCVI = 1;
34494 let DecoderNamespace = "EXT_mmvec";
34496 def V6_vlsrwv_alt : HInst<
34497 (outs HvxVR:$Vd32),
34498 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34499 "$Vd32 = vlsrw($Vu32,$Vv32)",
34500 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34501 let hasNewValue = 1;
34502 let opNewValue = 0;
34503 let isCVI = 1;
34504 let isPseudo = 1;
34505 let isCodeGenOnly = 1;
34506 let DecoderNamespace = "EXT_mmvec";
34508 def V6_vlut4 : HInst<
34509 (outs HvxVR:$Vd32),
34510 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34511 "$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
34512 tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
34513 let Inst{7-5} = 0b100;
34514 let Inst{13-13} = 0b0;
34515 let Inst{31-21} = 0b00011001011;
34516 let hasNewValue = 1;
34517 let opNewValue = 0;
34518 let isCVI = 1;
34519 let DecoderNamespace = "EXT_mmvec";
34521 def V6_vlutvvb : HInst<
34522 (outs HvxVR:$Vd32),
34523 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34524 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
34525 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
34526 let Inst{7-5} = 0b001;
34527 let Inst{13-13} = 0b1;
34528 let Inst{31-24} = 0b00011011;
34529 let hasNewValue = 1;
34530 let opNewValue = 0;
34531 let isCVI = 1;
34532 let DecoderNamespace = "EXT_mmvec";
34534 def V6_vlutvvb_nm : HInst<
34535 (outs HvxVR:$Vd32),
34536 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34537 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
34538 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
34539 let Inst{7-5} = 0b011;
34540 let Inst{13-13} = 0b0;
34541 let Inst{31-24} = 0b00011000;
34542 let hasNewValue = 1;
34543 let opNewValue = 0;
34544 let isCVI = 1;
34545 let DecoderNamespace = "EXT_mmvec";
34547 def V6_vlutvvb_oracc : HInst<
34548 (outs HvxVR:$Vx32),
34549 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34550 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
34551 tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
34552 let Inst{7-5} = 0b101;
34553 let Inst{13-13} = 0b1;
34554 let Inst{31-24} = 0b00011011;
34555 let hasNewValue = 1;
34556 let opNewValue = 0;
34557 let isAccumulator = 1;
34558 let isCVI = 1;
34559 let DecoderNamespace = "EXT_mmvec";
34560 let Constraints = "$Vx32 = $Vx32in";
34562 def V6_vlutvvb_oracci : HInst<
34563 (outs HvxVR:$Vx32),
34564 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34565 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
34566 tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
34567 let Inst{13-13} = 0b1;
34568 let Inst{31-21} = 0b00011100110;
34569 let hasNewValue = 1;
34570 let opNewValue = 0;
34571 let isAccumulator = 1;
34572 let isCVI = 1;
34573 let DecoderNamespace = "EXT_mmvec";
34574 let Constraints = "$Vx32 = $Vx32in";
34576 def V6_vlutvvbi : HInst<
34577 (outs HvxVR:$Vd32),
34578 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34579 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
34580 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
34581 let Inst{13-13} = 0b0;
34582 let Inst{31-21} = 0b00011110001;
34583 let hasNewValue = 1;
34584 let opNewValue = 0;
34585 let isCVI = 1;
34586 let DecoderNamespace = "EXT_mmvec";
34588 def V6_vlutvwh : HInst<
34589 (outs HvxWR:$Vdd32),
34590 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34591 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
34592 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
34593 let Inst{7-5} = 0b110;
34594 let Inst{13-13} = 0b1;
34595 let Inst{31-24} = 0b00011011;
34596 let hasNewValue = 1;
34597 let opNewValue = 0;
34598 let isCVI = 1;
34599 let DecoderNamespace = "EXT_mmvec";
34601 def V6_vlutvwh_nm : HInst<
34602 (outs HvxWR:$Vdd32),
34603 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34604 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
34605 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
34606 let Inst{7-5} = 0b100;
34607 let Inst{13-13} = 0b0;
34608 let Inst{31-24} = 0b00011000;
34609 let hasNewValue = 1;
34610 let opNewValue = 0;
34611 let isCVI = 1;
34612 let DecoderNamespace = "EXT_mmvec";
34614 def V6_vlutvwh_oracc : HInst<
34615 (outs HvxWR:$Vxx32),
34616 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
34617 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
34618 tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
34619 let Inst{7-5} = 0b111;
34620 let Inst{13-13} = 0b1;
34621 let Inst{31-24} = 0b00011011;
34622 let hasNewValue = 1;
34623 let opNewValue = 0;
34624 let isAccumulator = 1;
34625 let isCVI = 1;
34626 let DecoderNamespace = "EXT_mmvec";
34627 let Constraints = "$Vxx32 = $Vxx32in";
34629 def V6_vlutvwh_oracci : HInst<
34630 (outs HvxWR:$Vxx32),
34631 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34632 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
34633 tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
34634 let Inst{13-13} = 0b1;
34635 let Inst{31-21} = 0b00011100111;
34636 let hasNewValue = 1;
34637 let opNewValue = 0;
34638 let isAccumulator = 1;
34639 let isCVI = 1;
34640 let DecoderNamespace = "EXT_mmvec";
34641 let Constraints = "$Vxx32 = $Vxx32in";
34643 def V6_vlutvwhi : HInst<
34644 (outs HvxWR:$Vdd32),
34645 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
34646 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
34647 tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
34648 let Inst{13-13} = 0b0;
34649 let Inst{31-21} = 0b00011110011;
34650 let hasNewValue = 1;
34651 let opNewValue = 0;
34652 let isCVI = 1;
34653 let DecoderNamespace = "EXT_mmvec";
34655 def V6_vmax_bf : HInst<
34656 (outs HvxVR:$Vd32),
34657 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34658 "$Vd32.bf = vmax($Vu32.bf,$Vv32.bf)",
34659 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
34660 let Inst{7-5} = 0b111;
34661 let Inst{13-13} = 0b1;
34662 let Inst{31-21} = 0b00011101010;
34663 let hasNewValue = 1;
34664 let opNewValue = 0;
34665 let isCVI = 1;
34666 let DecoderNamespace = "EXT_mmvec";
34668 def V6_vmax_hf : HInst<
34669 (outs HvxVR:$Vd32),
34670 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34671 "$Vd32.hf = vmax($Vu32.hf,$Vv32.hf)",
34672 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34673 let Inst{7-5} = 0b011;
34674 let Inst{13-13} = 0b1;
34675 let Inst{31-21} = 0b00011111110;
34676 let hasNewValue = 1;
34677 let opNewValue = 0;
34678 let isCVI = 1;
34679 let isHVXALU = 1;
34680 let isHVXALU2SRC = 1;
34681 let DecoderNamespace = "EXT_mmvec";
34683 def V6_vmax_sf : HInst<
34684 (outs HvxVR:$Vd32),
34685 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34686 "$Vd32.sf = vmax($Vu32.sf,$Vv32.sf)",
34687 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34688 let Inst{7-5} = 0b001;
34689 let Inst{13-13} = 0b1;
34690 let Inst{31-21} = 0b00011111110;
34691 let hasNewValue = 1;
34692 let opNewValue = 0;
34693 let isCVI = 1;
34694 let isHVXALU = 1;
34695 let isHVXALU2SRC = 1;
34696 let DecoderNamespace = "EXT_mmvec";
34698 def V6_vmaxb : HInst<
34699 (outs HvxVR:$Vd32),
34700 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34701 "$Vd32.b = vmax($Vu32.b,$Vv32.b)",
34702 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34703 let Inst{7-5} = 0b101;
34704 let Inst{13-13} = 0b0;
34705 let Inst{31-21} = 0b00011111001;
34706 let hasNewValue = 1;
34707 let opNewValue = 0;
34708 let isCVI = 1;
34709 let isHVXALU = 1;
34710 let isHVXALU2SRC = 1;
34711 let DecoderNamespace = "EXT_mmvec";
34713 def V6_vmaxb_alt : HInst<
34714 (outs HvxVR:$Vd32),
34715 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34716 "$Vd32 = vmaxb($Vu32,$Vv32)",
34717 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34718 let hasNewValue = 1;
34719 let opNewValue = 0;
34720 let isCVI = 1;
34721 let isPseudo = 1;
34722 let isCodeGenOnly = 1;
34723 let DecoderNamespace = "EXT_mmvec";
34725 def V6_vmaxh : HInst<
34726 (outs HvxVR:$Vd32),
34727 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34728 "$Vd32.h = vmax($Vu32.h,$Vv32.h)",
34729 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34730 let Inst{7-5} = 0b111;
34731 let Inst{13-13} = 0b0;
34732 let Inst{31-21} = 0b00011111000;
34733 let hasNewValue = 1;
34734 let opNewValue = 0;
34735 let isCVI = 1;
34736 let isHVXALU = 1;
34737 let isHVXALU2SRC = 1;
34738 let DecoderNamespace = "EXT_mmvec";
34740 def V6_vmaxh_alt : HInst<
34741 (outs HvxVR:$Vd32),
34742 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34743 "$Vd32 = vmaxh($Vu32,$Vv32)",
34744 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34745 let hasNewValue = 1;
34746 let opNewValue = 0;
34747 let isCVI = 1;
34748 let isPseudo = 1;
34749 let isCodeGenOnly = 1;
34750 let DecoderNamespace = "EXT_mmvec";
34752 def V6_vmaxub : HInst<
34753 (outs HvxVR:$Vd32),
34754 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34755 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
34756 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34757 let Inst{7-5} = 0b101;
34758 let Inst{13-13} = 0b0;
34759 let Inst{31-21} = 0b00011111000;
34760 let hasNewValue = 1;
34761 let opNewValue = 0;
34762 let isCVI = 1;
34763 let isHVXALU = 1;
34764 let isHVXALU2SRC = 1;
34765 let DecoderNamespace = "EXT_mmvec";
34767 def V6_vmaxub_alt : HInst<
34768 (outs HvxVR:$Vd32),
34769 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34770 "$Vd32 = vmaxub($Vu32,$Vv32)",
34771 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34772 let hasNewValue = 1;
34773 let opNewValue = 0;
34774 let isCVI = 1;
34775 let isPseudo = 1;
34776 let isCodeGenOnly = 1;
34777 let DecoderNamespace = "EXT_mmvec";
34779 def V6_vmaxuh : HInst<
34780 (outs HvxVR:$Vd32),
34781 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34782 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
34783 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34784 let Inst{7-5} = 0b110;
34785 let Inst{13-13} = 0b0;
34786 let Inst{31-21} = 0b00011111000;
34787 let hasNewValue = 1;
34788 let opNewValue = 0;
34789 let isCVI = 1;
34790 let isHVXALU = 1;
34791 let isHVXALU2SRC = 1;
34792 let DecoderNamespace = "EXT_mmvec";
34794 def V6_vmaxuh_alt : HInst<
34795 (outs HvxVR:$Vd32),
34796 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34797 "$Vd32 = vmaxuh($Vu32,$Vv32)",
34798 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34799 let hasNewValue = 1;
34800 let opNewValue = 0;
34801 let isCVI = 1;
34802 let isPseudo = 1;
34803 let isCodeGenOnly = 1;
34804 let DecoderNamespace = "EXT_mmvec";
34806 def V6_vmaxw : HInst<
34807 (outs HvxVR:$Vd32),
34808 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34809 "$Vd32.w = vmax($Vu32.w,$Vv32.w)",
34810 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34811 let Inst{7-5} = 0b000;
34812 let Inst{13-13} = 0b0;
34813 let Inst{31-21} = 0b00011111001;
34814 let hasNewValue = 1;
34815 let opNewValue = 0;
34816 let isCVI = 1;
34817 let isHVXALU = 1;
34818 let isHVXALU2SRC = 1;
34819 let DecoderNamespace = "EXT_mmvec";
34821 def V6_vmaxw_alt : HInst<
34822 (outs HvxVR:$Vd32),
34823 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34824 "$Vd32 = vmaxw($Vu32,$Vv32)",
34825 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34826 let hasNewValue = 1;
34827 let opNewValue = 0;
34828 let isCVI = 1;
34829 let isPseudo = 1;
34830 let isCodeGenOnly = 1;
34831 let DecoderNamespace = "EXT_mmvec";
34833 def V6_vmin_bf : HInst<
34834 (outs HvxVR:$Vd32),
34835 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34836 "$Vd32.bf = vmin($Vu32.bf,$Vv32.bf)",
34837 tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> {
34838 let Inst{7-5} = 0b000;
34839 let Inst{13-13} = 0b1;
34840 let Inst{31-21} = 0b00011101010;
34841 let hasNewValue = 1;
34842 let opNewValue = 0;
34843 let isCVI = 1;
34844 let DecoderNamespace = "EXT_mmvec";
34846 def V6_vmin_hf : HInst<
34847 (outs HvxVR:$Vd32),
34848 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34849 "$Vd32.hf = vmin($Vu32.hf,$Vv32.hf)",
34850 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34851 let Inst{7-5} = 0b100;
34852 let Inst{13-13} = 0b1;
34853 let Inst{31-21} = 0b00011111110;
34854 let hasNewValue = 1;
34855 let opNewValue = 0;
34856 let isCVI = 1;
34857 let isHVXALU = 1;
34858 let isHVXALU2SRC = 1;
34859 let DecoderNamespace = "EXT_mmvec";
34861 def V6_vmin_sf : HInst<
34862 (outs HvxVR:$Vd32),
34863 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34864 "$Vd32.sf = vmin($Vu32.sf,$Vv32.sf)",
34865 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
34866 let Inst{7-5} = 0b010;
34867 let Inst{13-13} = 0b1;
34868 let Inst{31-21} = 0b00011111110;
34869 let hasNewValue = 1;
34870 let opNewValue = 0;
34871 let isCVI = 1;
34872 let isHVXALU = 1;
34873 let isHVXALU2SRC = 1;
34874 let DecoderNamespace = "EXT_mmvec";
34876 def V6_vminb : HInst<
34877 (outs HvxVR:$Vd32),
34878 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34879 "$Vd32.b = vmin($Vu32.b,$Vv32.b)",
34880 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
34881 let Inst{7-5} = 0b100;
34882 let Inst{13-13} = 0b0;
34883 let Inst{31-21} = 0b00011111001;
34884 let hasNewValue = 1;
34885 let opNewValue = 0;
34886 let isCVI = 1;
34887 let isHVXALU = 1;
34888 let isHVXALU2SRC = 1;
34889 let DecoderNamespace = "EXT_mmvec";
34891 def V6_vminb_alt : HInst<
34892 (outs HvxVR:$Vd32),
34893 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34894 "$Vd32 = vminb($Vu32,$Vv32)",
34895 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
34896 let hasNewValue = 1;
34897 let opNewValue = 0;
34898 let isCVI = 1;
34899 let isPseudo = 1;
34900 let isCodeGenOnly = 1;
34901 let DecoderNamespace = "EXT_mmvec";
34903 def V6_vminh : HInst<
34904 (outs HvxVR:$Vd32),
34905 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34906 "$Vd32.h = vmin($Vu32.h,$Vv32.h)",
34907 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34908 let Inst{7-5} = 0b011;
34909 let Inst{13-13} = 0b0;
34910 let Inst{31-21} = 0b00011111000;
34911 let hasNewValue = 1;
34912 let opNewValue = 0;
34913 let isCVI = 1;
34914 let isHVXALU = 1;
34915 let isHVXALU2SRC = 1;
34916 let DecoderNamespace = "EXT_mmvec";
34918 def V6_vminh_alt : HInst<
34919 (outs HvxVR:$Vd32),
34920 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34921 "$Vd32 = vminh($Vu32,$Vv32)",
34922 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34923 let hasNewValue = 1;
34924 let opNewValue = 0;
34925 let isCVI = 1;
34926 let isPseudo = 1;
34927 let isCodeGenOnly = 1;
34928 let DecoderNamespace = "EXT_mmvec";
34930 def V6_vminub : HInst<
34931 (outs HvxVR:$Vd32),
34932 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34933 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
34934 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34935 let Inst{7-5} = 0b001;
34936 let Inst{13-13} = 0b0;
34937 let Inst{31-21} = 0b00011111000;
34938 let hasNewValue = 1;
34939 let opNewValue = 0;
34940 let isCVI = 1;
34941 let isHVXALU = 1;
34942 let isHVXALU2SRC = 1;
34943 let DecoderNamespace = "EXT_mmvec";
34945 def V6_vminub_alt : HInst<
34946 (outs HvxVR:$Vd32),
34947 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34948 "$Vd32 = vminub($Vu32,$Vv32)",
34949 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34950 let hasNewValue = 1;
34951 let opNewValue = 0;
34952 let isCVI = 1;
34953 let isPseudo = 1;
34954 let isCodeGenOnly = 1;
34955 let DecoderNamespace = "EXT_mmvec";
34957 def V6_vminuh : HInst<
34958 (outs HvxVR:$Vd32),
34959 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34960 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
34961 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34962 let Inst{7-5} = 0b010;
34963 let Inst{13-13} = 0b0;
34964 let Inst{31-21} = 0b00011111000;
34965 let hasNewValue = 1;
34966 let opNewValue = 0;
34967 let isCVI = 1;
34968 let isHVXALU = 1;
34969 let isHVXALU2SRC = 1;
34970 let DecoderNamespace = "EXT_mmvec";
34972 def V6_vminuh_alt : HInst<
34973 (outs HvxVR:$Vd32),
34974 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34975 "$Vd32 = vminuh($Vu32,$Vv32)",
34976 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34977 let hasNewValue = 1;
34978 let opNewValue = 0;
34979 let isCVI = 1;
34980 let isPseudo = 1;
34981 let isCodeGenOnly = 1;
34982 let DecoderNamespace = "EXT_mmvec";
34984 def V6_vminw : HInst<
34985 (outs HvxVR:$Vd32),
34986 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34987 "$Vd32.w = vmin($Vu32.w,$Vv32.w)",
34988 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34989 let Inst{7-5} = 0b100;
34990 let Inst{13-13} = 0b0;
34991 let Inst{31-21} = 0b00011111000;
34992 let hasNewValue = 1;
34993 let opNewValue = 0;
34994 let isCVI = 1;
34995 let isHVXALU = 1;
34996 let isHVXALU2SRC = 1;
34997 let DecoderNamespace = "EXT_mmvec";
34999 def V6_vminw_alt : HInst<
35000 (outs HvxVR:$Vd32),
35001 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35002 "$Vd32 = vminw($Vu32,$Vv32)",
35003 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35004 let hasNewValue = 1;
35005 let opNewValue = 0;
35006 let isCVI = 1;
35007 let isPseudo = 1;
35008 let isCodeGenOnly = 1;
35009 let DecoderNamespace = "EXT_mmvec";
35011 def V6_vmpabus : HInst<
35012 (outs HvxWR:$Vdd32),
35013 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35014 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
35015 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
35016 let Inst{7-5} = 0b110;
35017 let Inst{13-13} = 0b0;
35018 let Inst{31-21} = 0b00011001001;
35019 let hasNewValue = 1;
35020 let opNewValue = 0;
35021 let isCVI = 1;
35022 let DecoderNamespace = "EXT_mmvec";
35024 def V6_vmpabus_acc : HInst<
35025 (outs HvxWR:$Vxx32),
35026 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35027 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
35028 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
35029 let Inst{7-5} = 0b110;
35030 let Inst{13-13} = 0b1;
35031 let Inst{31-21} = 0b00011001001;
35032 let hasNewValue = 1;
35033 let opNewValue = 0;
35034 let isAccumulator = 1;
35035 let isCVI = 1;
35036 let DecoderNamespace = "EXT_mmvec";
35037 let Constraints = "$Vxx32 = $Vxx32in";
35039 def V6_vmpabus_acc_alt : HInst<
35040 (outs HvxWR:$Vxx32),
35041 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35042 "$Vxx32 += vmpabus($Vuu32,$Rt32)",
35043 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35044 let hasNewValue = 1;
35045 let opNewValue = 0;
35046 let isAccumulator = 1;
35047 let isCVI = 1;
35048 let isPseudo = 1;
35049 let isCodeGenOnly = 1;
35050 let DecoderNamespace = "EXT_mmvec";
35051 let Constraints = "$Vxx32 = $Vxx32in";
35053 def V6_vmpabus_alt : HInst<
35054 (outs HvxWR:$Vdd32),
35055 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35056 "$Vdd32 = vmpabus($Vuu32,$Rt32)",
35057 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35058 let hasNewValue = 1;
35059 let opNewValue = 0;
35060 let isCVI = 1;
35061 let isPseudo = 1;
35062 let isCodeGenOnly = 1;
35063 let DecoderNamespace = "EXT_mmvec";
35065 def V6_vmpabusv : HInst<
35066 (outs HvxWR:$Vdd32),
35067 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35068 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
35069 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
35070 let Inst{7-5} = 0b011;
35071 let Inst{13-13} = 0b0;
35072 let Inst{31-21} = 0b00011100001;
35073 let hasNewValue = 1;
35074 let opNewValue = 0;
35075 let isCVI = 1;
35076 let DecoderNamespace = "EXT_mmvec";
35078 def V6_vmpabusv_alt : HInst<
35079 (outs HvxWR:$Vdd32),
35080 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35081 "$Vdd32 = vmpabus($Vuu32,$Vvv32)",
35082 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35083 let hasNewValue = 1;
35084 let opNewValue = 0;
35085 let isCVI = 1;
35086 let isPseudo = 1;
35087 let isCodeGenOnly = 1;
35088 let DecoderNamespace = "EXT_mmvec";
35090 def V6_vmpabuu : HInst<
35091 (outs HvxWR:$Vdd32),
35092 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35093 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
35094 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
35095 let Inst{7-5} = 0b011;
35096 let Inst{13-13} = 0b0;
35097 let Inst{31-21} = 0b00011001011;
35098 let hasNewValue = 1;
35099 let opNewValue = 0;
35100 let isCVI = 1;
35101 let DecoderNamespace = "EXT_mmvec";
35103 def V6_vmpabuu_acc : HInst<
35104 (outs HvxWR:$Vxx32),
35105 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35106 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
35107 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
35108 let Inst{7-5} = 0b100;
35109 let Inst{13-13} = 0b1;
35110 let Inst{31-21} = 0b00011001101;
35111 let hasNewValue = 1;
35112 let opNewValue = 0;
35113 let isAccumulator = 1;
35114 let isCVI = 1;
35115 let DecoderNamespace = "EXT_mmvec";
35116 let Constraints = "$Vxx32 = $Vxx32in";
35118 def V6_vmpabuu_acc_alt : HInst<
35119 (outs HvxWR:$Vxx32),
35120 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35121 "$Vxx32 += vmpabuu($Vuu32,$Rt32)",
35122 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35123 let hasNewValue = 1;
35124 let opNewValue = 0;
35125 let isAccumulator = 1;
35126 let isCVI = 1;
35127 let isPseudo = 1;
35128 let isCodeGenOnly = 1;
35129 let DecoderNamespace = "EXT_mmvec";
35130 let Constraints = "$Vxx32 = $Vxx32in";
35132 def V6_vmpabuu_alt : HInst<
35133 (outs HvxWR:$Vdd32),
35134 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35135 "$Vdd32 = vmpabuu($Vuu32,$Rt32)",
35136 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35137 let hasNewValue = 1;
35138 let opNewValue = 0;
35139 let isCVI = 1;
35140 let isPseudo = 1;
35141 let isCodeGenOnly = 1;
35142 let DecoderNamespace = "EXT_mmvec";
35144 def V6_vmpabuuv : HInst<
35145 (outs HvxWR:$Vdd32),
35146 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35147 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
35148 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
35149 let Inst{7-5} = 0b111;
35150 let Inst{13-13} = 0b0;
35151 let Inst{31-21} = 0b00011100111;
35152 let hasNewValue = 1;
35153 let opNewValue = 0;
35154 let isCVI = 1;
35155 let DecoderNamespace = "EXT_mmvec";
35157 def V6_vmpabuuv_alt : HInst<
35158 (outs HvxWR:$Vdd32),
35159 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
35160 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
35161 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35162 let hasNewValue = 1;
35163 let opNewValue = 0;
35164 let isCVI = 1;
35165 let isPseudo = 1;
35166 let isCodeGenOnly = 1;
35167 let DecoderNamespace = "EXT_mmvec";
35169 def V6_vmpahb : HInst<
35170 (outs HvxWR:$Vdd32),
35171 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35172 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
35173 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
35174 let Inst{7-5} = 0b111;
35175 let Inst{13-13} = 0b0;
35176 let Inst{31-21} = 0b00011001001;
35177 let hasNewValue = 1;
35178 let opNewValue = 0;
35179 let isCVI = 1;
35180 let DecoderNamespace = "EXT_mmvec";
35182 def V6_vmpahb_acc : HInst<
35183 (outs HvxWR:$Vxx32),
35184 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35185 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
35186 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
35187 let Inst{7-5} = 0b111;
35188 let Inst{13-13} = 0b1;
35189 let Inst{31-21} = 0b00011001001;
35190 let hasNewValue = 1;
35191 let opNewValue = 0;
35192 let isAccumulator = 1;
35193 let isCVI = 1;
35194 let DecoderNamespace = "EXT_mmvec";
35195 let Constraints = "$Vxx32 = $Vxx32in";
35197 def V6_vmpahb_acc_alt : HInst<
35198 (outs HvxWR:$Vxx32),
35199 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35200 "$Vxx32 += vmpahb($Vuu32,$Rt32)",
35201 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35202 let hasNewValue = 1;
35203 let opNewValue = 0;
35204 let isAccumulator = 1;
35205 let isCVI = 1;
35206 let isPseudo = 1;
35207 let isCodeGenOnly = 1;
35208 let DecoderNamespace = "EXT_mmvec";
35209 let Constraints = "$Vxx32 = $Vxx32in";
35211 def V6_vmpahb_alt : HInst<
35212 (outs HvxWR:$Vdd32),
35213 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35214 "$Vdd32 = vmpahb($Vuu32,$Rt32)",
35215 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35216 let hasNewValue = 1;
35217 let opNewValue = 0;
35218 let isCVI = 1;
35219 let isPseudo = 1;
35220 let isCodeGenOnly = 1;
35221 let DecoderNamespace = "EXT_mmvec";
35223 def V6_vmpahhsat : HInst<
35224 (outs HvxVR:$Vx32),
35225 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35226 "$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
35227 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35228 let Inst{7-5} = 0b100;
35229 let Inst{13-13} = 0b1;
35230 let Inst{31-21} = 0b00011001100;
35231 let hasNewValue = 1;
35232 let opNewValue = 0;
35233 let isCVI = 1;
35234 let DecoderNamespace = "EXT_mmvec";
35235 let Constraints = "$Vx32 = $Vx32in";
35237 def V6_vmpauhb : HInst<
35238 (outs HvxWR:$Vdd32),
35239 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35240 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
35241 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
35242 let Inst{7-5} = 0b101;
35243 let Inst{13-13} = 0b0;
35244 let Inst{31-21} = 0b00011001100;
35245 let hasNewValue = 1;
35246 let opNewValue = 0;
35247 let isCVI = 1;
35248 let DecoderNamespace = "EXT_mmvec";
35250 def V6_vmpauhb_acc : HInst<
35251 (outs HvxWR:$Vxx32),
35252 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35253 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
35254 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
35255 let Inst{7-5} = 0b010;
35256 let Inst{13-13} = 0b1;
35257 let Inst{31-21} = 0b00011001100;
35258 let hasNewValue = 1;
35259 let opNewValue = 0;
35260 let isAccumulator = 1;
35261 let isCVI = 1;
35262 let DecoderNamespace = "EXT_mmvec";
35263 let Constraints = "$Vxx32 = $Vxx32in";
35265 def V6_vmpauhb_acc_alt : HInst<
35266 (outs HvxWR:$Vxx32),
35267 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
35268 "$Vxx32 += vmpauhb($Vuu32,$Rt32)",
35269 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35270 let hasNewValue = 1;
35271 let opNewValue = 0;
35272 let isAccumulator = 1;
35273 let isCVI = 1;
35274 let isPseudo = 1;
35275 let isCodeGenOnly = 1;
35276 let DecoderNamespace = "EXT_mmvec";
35277 let Constraints = "$Vxx32 = $Vxx32in";
35279 def V6_vmpauhb_alt : HInst<
35280 (outs HvxWR:$Vdd32),
35281 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
35282 "$Vdd32 = vmpauhb($Vuu32,$Rt32)",
35283 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35284 let hasNewValue = 1;
35285 let opNewValue = 0;
35286 let isCVI = 1;
35287 let isPseudo = 1;
35288 let isCodeGenOnly = 1;
35289 let DecoderNamespace = "EXT_mmvec";
35291 def V6_vmpauhuhsat : HInst<
35292 (outs HvxVR:$Vx32),
35293 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35294 "$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
35295 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35296 let Inst{7-5} = 0b101;
35297 let Inst{13-13} = 0b1;
35298 let Inst{31-21} = 0b00011001100;
35299 let hasNewValue = 1;
35300 let opNewValue = 0;
35301 let isCVI = 1;
35302 let DecoderNamespace = "EXT_mmvec";
35303 let Constraints = "$Vx32 = $Vx32in";
35305 def V6_vmpsuhuhsat : HInst<
35306 (outs HvxVR:$Vx32),
35307 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35308 "$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
35309 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
35310 let Inst{7-5} = 0b110;
35311 let Inst{13-13} = 0b1;
35312 let Inst{31-21} = 0b00011001100;
35313 let hasNewValue = 1;
35314 let opNewValue = 0;
35315 let isCVI = 1;
35316 let DecoderNamespace = "EXT_mmvec";
35317 let Constraints = "$Vx32 = $Vx32in";
35319 def V6_vmpy_hf_hf : HInst<
35320 (outs HvxVR:$Vd32),
35321 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35322 "$Vd32.hf = vmpy($Vu32.hf,$Vv32.hf)",
35323 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35324 let Inst{7-5} = 0b011;
35325 let Inst{13-13} = 0b1;
35326 let Inst{31-21} = 0b00011111100;
35327 let hasNewValue = 1;
35328 let opNewValue = 0;
35329 let isCVI = 1;
35330 let DecoderNamespace = "EXT_mmvec";
35332 def V6_vmpy_hf_hf_acc : HInst<
35333 (outs HvxVR:$Vx32),
35334 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35335 "$Vx32.hf += vmpy($Vu32.hf,$Vv32.hf)",
35336 tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35337 let Inst{7-5} = 0b010;
35338 let Inst{13-13} = 0b1;
35339 let Inst{31-21} = 0b00011100010;
35340 let hasNewValue = 1;
35341 let opNewValue = 0;
35342 let isAccumulator = 1;
35343 let isCVI = 1;
35344 let DecoderNamespace = "EXT_mmvec";
35345 let Constraints = "$Vx32 = $Vx32in";
35347 def V6_vmpy_qf16 : HInst<
35348 (outs HvxVR:$Vd32),
35349 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35350 "$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.qf16)",
35351 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35352 let Inst{7-5} = 0b011;
35353 let Inst{13-13} = 0b1;
35354 let Inst{31-21} = 0b00011111111;
35355 let hasNewValue = 1;
35356 let opNewValue = 0;
35357 let isCVI = 1;
35358 let DecoderNamespace = "EXT_mmvec";
35360 def V6_vmpy_qf16_hf : HInst<
35361 (outs HvxVR:$Vd32),
35362 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35363 "$Vd32.qf16 = vmpy($Vu32.hf,$Vv32.hf)",
35364 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35365 let Inst{7-5} = 0b100;
35366 let Inst{13-13} = 0b1;
35367 let Inst{31-21} = 0b00011111111;
35368 let hasNewValue = 1;
35369 let opNewValue = 0;
35370 let isCVI = 1;
35371 let DecoderNamespace = "EXT_mmvec";
35373 def V6_vmpy_qf16_mix_hf : HInst<
35374 (outs HvxVR:$Vd32),
35375 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35376 "$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.hf)",
35377 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35378 let Inst{7-5} = 0b101;
35379 let Inst{13-13} = 0b1;
35380 let Inst{31-21} = 0b00011111111;
35381 let hasNewValue = 1;
35382 let opNewValue = 0;
35383 let isCVI = 1;
35384 let DecoderNamespace = "EXT_mmvec";
35386 def V6_vmpy_qf32 : HInst<
35387 (outs HvxVR:$Vd32),
35388 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35389 "$Vd32.qf32 = vmpy($Vu32.qf32,$Vv32.qf32)",
35390 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35391 let Inst{7-5} = 0b000;
35392 let Inst{13-13} = 0b1;
35393 let Inst{31-21} = 0b00011111111;
35394 let hasNewValue = 1;
35395 let opNewValue = 0;
35396 let isCVI = 1;
35397 let DecoderNamespace = "EXT_mmvec";
35399 def V6_vmpy_qf32_hf : HInst<
35400 (outs HvxWR:$Vdd32),
35401 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35402 "$Vdd32.qf32 = vmpy($Vu32.hf,$Vv32.hf)",
35403 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35404 let Inst{7-5} = 0b111;
35405 let Inst{13-13} = 0b1;
35406 let Inst{31-21} = 0b00011111111;
35407 let hasNewValue = 1;
35408 let opNewValue = 0;
35409 let isCVI = 1;
35410 let DecoderNamespace = "EXT_mmvec";
35412 def V6_vmpy_qf32_mix_hf : HInst<
35413 (outs HvxWR:$Vdd32),
35414 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35415 "$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.hf)",
35416 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35417 let Inst{7-5} = 0b000;
35418 let Inst{13-13} = 0b1;
35419 let Inst{31-21} = 0b00011111100;
35420 let hasNewValue = 1;
35421 let opNewValue = 0;
35422 let isCVI = 1;
35423 let DecoderNamespace = "EXT_mmvec";
35425 def V6_vmpy_qf32_qf16 : HInst<
35426 (outs HvxWR:$Vdd32),
35427 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35428 "$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.qf16)",
35429 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> {
35430 let Inst{7-5} = 0b110;
35431 let Inst{13-13} = 0b1;
35432 let Inst{31-21} = 0b00011111111;
35433 let hasNewValue = 1;
35434 let opNewValue = 0;
35435 let isCVI = 1;
35436 let DecoderNamespace = "EXT_mmvec";
35438 def V6_vmpy_qf32_sf : HInst<
35439 (outs HvxVR:$Vd32),
35440 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35441 "$Vd32.qf32 = vmpy($Vu32.sf,$Vv32.sf)",
35442 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
35443 let Inst{7-5} = 0b001;
35444 let Inst{13-13} = 0b1;
35445 let Inst{31-21} = 0b00011111111;
35446 let hasNewValue = 1;
35447 let opNewValue = 0;
35448 let isCVI = 1;
35449 let DecoderNamespace = "EXT_mmvec";
35451 def V6_vmpy_sf_bf : HInst<
35452 (outs HvxWR:$Vdd32),
35453 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35454 "$Vdd32.sf = vmpy($Vu32.bf,$Vv32.bf)",
35455 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
35456 let Inst{7-5} = 0b100;
35457 let Inst{13-13} = 0b1;
35458 let Inst{31-21} = 0b00011101010;
35459 let hasNewValue = 1;
35460 let opNewValue = 0;
35461 let isCVI = 1;
35462 let DecoderNamespace = "EXT_mmvec";
35464 def V6_vmpy_sf_bf_acc : HInst<
35465 (outs HvxWR:$Vxx32),
35466 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35467 "$Vxx32.sf += vmpy($Vu32.bf,$Vv32.bf)",
35468 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV73,UseHVXIEEEFP]> {
35469 let Inst{7-5} = 0b000;
35470 let Inst{13-13} = 0b1;
35471 let Inst{31-21} = 0b00011101000;
35472 let hasNewValue = 1;
35473 let opNewValue = 0;
35474 let isAccumulator = 1;
35475 let isCVI = 1;
35476 let DecoderNamespace = "EXT_mmvec";
35477 let Constraints = "$Vxx32 = $Vxx32in";
35479 def V6_vmpy_sf_hf : HInst<
35480 (outs HvxWR:$Vdd32),
35481 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35482 "$Vdd32.sf = vmpy($Vu32.hf,$Vv32.hf)",
35483 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35484 let Inst{7-5} = 0b010;
35485 let Inst{13-13} = 0b1;
35486 let Inst{31-21} = 0b00011111100;
35487 let hasNewValue = 1;
35488 let opNewValue = 0;
35489 let isCVI = 1;
35490 let DecoderNamespace = "EXT_mmvec";
35492 def V6_vmpy_sf_hf_acc : HInst<
35493 (outs HvxWR:$Vxx32),
35494 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35495 "$Vxx32.sf += vmpy($Vu32.hf,$Vv32.hf)",
35496 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35497 let Inst{7-5} = 0b001;
35498 let Inst{13-13} = 0b1;
35499 let Inst{31-21} = 0b00011100010;
35500 let hasNewValue = 1;
35501 let opNewValue = 0;
35502 let isAccumulator = 1;
35503 let isCVI = 1;
35504 let DecoderNamespace = "EXT_mmvec";
35505 let Constraints = "$Vxx32 = $Vxx32in";
35507 def V6_vmpy_sf_sf : HInst<
35508 (outs HvxVR:$Vd32),
35509 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35510 "$Vd32.sf = vmpy($Vu32.sf,$Vv32.sf)",
35511 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
35512 let Inst{7-5} = 0b001;
35513 let Inst{13-13} = 0b1;
35514 let Inst{31-21} = 0b00011111100;
35515 let hasNewValue = 1;
35516 let opNewValue = 0;
35517 let isCVI = 1;
35518 let DecoderNamespace = "EXT_mmvec";
35520 def V6_vmpybus : HInst<
35521 (outs HvxWR:$Vdd32),
35522 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35523 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
35524 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35525 let Inst{7-5} = 0b101;
35526 let Inst{13-13} = 0b0;
35527 let Inst{31-21} = 0b00011001001;
35528 let hasNewValue = 1;
35529 let opNewValue = 0;
35530 let isCVI = 1;
35531 let DecoderNamespace = "EXT_mmvec";
35533 def V6_vmpybus_acc : HInst<
35534 (outs HvxWR:$Vxx32),
35535 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35536 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
35537 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35538 let Inst{7-5} = 0b101;
35539 let Inst{13-13} = 0b1;
35540 let Inst{31-21} = 0b00011001001;
35541 let hasNewValue = 1;
35542 let opNewValue = 0;
35543 let isAccumulator = 1;
35544 let isCVI = 1;
35545 let DecoderNamespace = "EXT_mmvec";
35546 let Constraints = "$Vxx32 = $Vxx32in";
35548 def V6_vmpybus_acc_alt : HInst<
35549 (outs HvxWR:$Vxx32),
35550 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35551 "$Vxx32 += vmpybus($Vu32,$Rt32)",
35552 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35553 let hasNewValue = 1;
35554 let opNewValue = 0;
35555 let isAccumulator = 1;
35556 let isCVI = 1;
35557 let isPseudo = 1;
35558 let isCodeGenOnly = 1;
35559 let DecoderNamespace = "EXT_mmvec";
35560 let Constraints = "$Vxx32 = $Vxx32in";
35562 def V6_vmpybus_alt : HInst<
35563 (outs HvxWR:$Vdd32),
35564 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35565 "$Vdd32 = vmpybus($Vu32,$Rt32)",
35566 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35567 let hasNewValue = 1;
35568 let opNewValue = 0;
35569 let isCVI = 1;
35570 let isPseudo = 1;
35571 let isCodeGenOnly = 1;
35572 let DecoderNamespace = "EXT_mmvec";
35574 def V6_vmpybusv : HInst<
35575 (outs HvxWR:$Vdd32),
35576 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35577 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
35578 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35579 let Inst{7-5} = 0b110;
35580 let Inst{13-13} = 0b0;
35581 let Inst{31-21} = 0b00011100000;
35582 let hasNewValue = 1;
35583 let opNewValue = 0;
35584 let isCVI = 1;
35585 let DecoderNamespace = "EXT_mmvec";
35587 def V6_vmpybusv_acc : HInst<
35588 (outs HvxWR:$Vxx32),
35589 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35590 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
35591 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35592 let Inst{7-5} = 0b110;
35593 let Inst{13-13} = 0b1;
35594 let Inst{31-21} = 0b00011100000;
35595 let hasNewValue = 1;
35596 let opNewValue = 0;
35597 let isAccumulator = 1;
35598 let isCVI = 1;
35599 let DecoderNamespace = "EXT_mmvec";
35600 let Constraints = "$Vxx32 = $Vxx32in";
35602 def V6_vmpybusv_acc_alt : HInst<
35603 (outs HvxWR:$Vxx32),
35604 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35605 "$Vxx32 += vmpybus($Vu32,$Vv32)",
35606 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35607 let hasNewValue = 1;
35608 let opNewValue = 0;
35609 let isAccumulator = 1;
35610 let isCVI = 1;
35611 let isPseudo = 1;
35612 let isCodeGenOnly = 1;
35613 let DecoderNamespace = "EXT_mmvec";
35614 let Constraints = "$Vxx32 = $Vxx32in";
35616 def V6_vmpybusv_alt : HInst<
35617 (outs HvxWR:$Vdd32),
35618 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35619 "$Vdd32 = vmpybus($Vu32,$Vv32)",
35620 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35621 let hasNewValue = 1;
35622 let opNewValue = 0;
35623 let isCVI = 1;
35624 let isPseudo = 1;
35625 let isCodeGenOnly = 1;
35626 let DecoderNamespace = "EXT_mmvec";
35628 def V6_vmpybv : HInst<
35629 (outs HvxWR:$Vdd32),
35630 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35631 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
35632 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35633 let Inst{7-5} = 0b100;
35634 let Inst{13-13} = 0b0;
35635 let Inst{31-21} = 0b00011100000;
35636 let hasNewValue = 1;
35637 let opNewValue = 0;
35638 let isCVI = 1;
35639 let DecoderNamespace = "EXT_mmvec";
35641 def V6_vmpybv_acc : HInst<
35642 (outs HvxWR:$Vxx32),
35643 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35644 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
35645 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35646 let Inst{7-5} = 0b100;
35647 let Inst{13-13} = 0b1;
35648 let Inst{31-21} = 0b00011100000;
35649 let hasNewValue = 1;
35650 let opNewValue = 0;
35651 let isAccumulator = 1;
35652 let isCVI = 1;
35653 let DecoderNamespace = "EXT_mmvec";
35654 let Constraints = "$Vxx32 = $Vxx32in";
35656 def V6_vmpybv_acc_alt : HInst<
35657 (outs HvxWR:$Vxx32),
35658 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35659 "$Vxx32 += vmpyb($Vu32,$Vv32)",
35660 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35661 let hasNewValue = 1;
35662 let opNewValue = 0;
35663 let isAccumulator = 1;
35664 let isCVI = 1;
35665 let isPseudo = 1;
35666 let isCodeGenOnly = 1;
35667 let DecoderNamespace = "EXT_mmvec";
35668 let Constraints = "$Vxx32 = $Vxx32in";
35670 def V6_vmpybv_alt : HInst<
35671 (outs HvxWR:$Vdd32),
35672 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35673 "$Vdd32 = vmpyb($Vu32,$Vv32)",
35674 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35675 let hasNewValue = 1;
35676 let opNewValue = 0;
35677 let isCVI = 1;
35678 let isPseudo = 1;
35679 let isCodeGenOnly = 1;
35680 let DecoderNamespace = "EXT_mmvec";
35682 def V6_vmpyewuh : HInst<
35683 (outs HvxVR:$Vd32),
35684 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35685 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
35686 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
35687 let Inst{7-5} = 0b101;
35688 let Inst{13-13} = 0b0;
35689 let Inst{31-21} = 0b00011111111;
35690 let hasNewValue = 1;
35691 let opNewValue = 0;
35692 let isCVI = 1;
35693 let DecoderNamespace = "EXT_mmvec";
35695 def V6_vmpyewuh_64 : HInst<
35696 (outs HvxWR:$Vdd32),
35697 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35698 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
35699 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
35700 let Inst{7-5} = 0b110;
35701 let Inst{13-13} = 0b0;
35702 let Inst{31-21} = 0b00011110101;
35703 let hasNewValue = 1;
35704 let opNewValue = 0;
35705 let isCVI = 1;
35706 let DecoderNamespace = "EXT_mmvec";
35708 def V6_vmpyewuh_alt : HInst<
35709 (outs HvxVR:$Vd32),
35710 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35711 "$Vd32 = vmpyewuh($Vu32,$Vv32)",
35712 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35713 let hasNewValue = 1;
35714 let opNewValue = 0;
35715 let isCVI = 1;
35716 let isPseudo = 1;
35717 let isCodeGenOnly = 1;
35718 let DecoderNamespace = "EXT_mmvec";
35720 def V6_vmpyh : HInst<
35721 (outs HvxWR:$Vdd32),
35722 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35723 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
35724 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
35725 let Inst{7-5} = 0b000;
35726 let Inst{13-13} = 0b0;
35727 let Inst{31-21} = 0b00011001010;
35728 let hasNewValue = 1;
35729 let opNewValue = 0;
35730 let isCVI = 1;
35731 let DecoderNamespace = "EXT_mmvec";
35733 def V6_vmpyh_acc : HInst<
35734 (outs HvxWR:$Vxx32),
35735 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35736 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
35737 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
35738 let Inst{7-5} = 0b110;
35739 let Inst{13-13} = 0b1;
35740 let Inst{31-21} = 0b00011001101;
35741 let hasNewValue = 1;
35742 let opNewValue = 0;
35743 let isAccumulator = 1;
35744 let isCVI = 1;
35745 let DecoderNamespace = "EXT_mmvec";
35746 let Constraints = "$Vxx32 = $Vxx32in";
35748 def V6_vmpyh_acc_alt : HInst<
35749 (outs HvxWR:$Vxx32),
35750 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35751 "$Vxx32 += vmpyh($Vu32,$Rt32)",
35752 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35753 let hasNewValue = 1;
35754 let opNewValue = 0;
35755 let isAccumulator = 1;
35756 let isCVI = 1;
35757 let isPseudo = 1;
35758 let isCodeGenOnly = 1;
35759 let DecoderNamespace = "EXT_mmvec";
35760 let Constraints = "$Vxx32 = $Vxx32in";
35762 def V6_vmpyh_alt : HInst<
35763 (outs HvxWR:$Vdd32),
35764 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35765 "$Vdd32 = vmpyh($Vu32,$Rt32)",
35766 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35767 let hasNewValue = 1;
35768 let opNewValue = 0;
35769 let isCVI = 1;
35770 let isPseudo = 1;
35771 let isCodeGenOnly = 1;
35772 let DecoderNamespace = "EXT_mmvec";
35774 def V6_vmpyhsat_acc : HInst<
35775 (outs HvxWR:$Vxx32),
35776 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35777 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
35778 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
35779 let Inst{7-5} = 0b000;
35780 let Inst{13-13} = 0b1;
35781 let Inst{31-21} = 0b00011001010;
35782 let hasNewValue = 1;
35783 let opNewValue = 0;
35784 let isAccumulator = 1;
35785 let isCVI = 1;
35786 let DecoderNamespace = "EXT_mmvec";
35787 let Constraints = "$Vxx32 = $Vxx32in";
35789 def V6_vmpyhsat_acc_alt : HInst<
35790 (outs HvxWR:$Vxx32),
35791 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35792 "$Vxx32 += vmpyh($Vu32,$Rt32):sat",
35793 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35794 let hasNewValue = 1;
35795 let opNewValue = 0;
35796 let isAccumulator = 1;
35797 let isCVI = 1;
35798 let isPseudo = 1;
35799 let isCodeGenOnly = 1;
35800 let DecoderNamespace = "EXT_mmvec";
35801 let Constraints = "$Vxx32 = $Vxx32in";
35803 def V6_vmpyhsrs : HInst<
35804 (outs HvxVR:$Vd32),
35805 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35806 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
35807 tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35808 let Inst{7-5} = 0b010;
35809 let Inst{13-13} = 0b0;
35810 let Inst{31-21} = 0b00011001010;
35811 let hasNewValue = 1;
35812 let opNewValue = 0;
35813 let isCVI = 1;
35814 let DecoderNamespace = "EXT_mmvec";
35816 def V6_vmpyhsrs_alt : HInst<
35817 (outs HvxVR:$Vd32),
35818 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35819 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
35820 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35821 let hasNewValue = 1;
35822 let opNewValue = 0;
35823 let isCVI = 1;
35824 let isPseudo = 1;
35825 let isCodeGenOnly = 1;
35826 let DecoderNamespace = "EXT_mmvec";
35828 def V6_vmpyhss : HInst<
35829 (outs HvxVR:$Vd32),
35830 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35831 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
35832 tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
35833 let Inst{7-5} = 0b001;
35834 let Inst{13-13} = 0b0;
35835 let Inst{31-21} = 0b00011001010;
35836 let hasNewValue = 1;
35837 let opNewValue = 0;
35838 let isCVI = 1;
35839 let DecoderNamespace = "EXT_mmvec";
35841 def V6_vmpyhss_alt : HInst<
35842 (outs HvxVR:$Vd32),
35843 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35844 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
35845 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35846 let hasNewValue = 1;
35847 let opNewValue = 0;
35848 let isCVI = 1;
35849 let isPseudo = 1;
35850 let isCodeGenOnly = 1;
35851 let DecoderNamespace = "EXT_mmvec";
35853 def V6_vmpyhus : HInst<
35854 (outs HvxWR:$Vdd32),
35855 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35856 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
35857 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35858 let Inst{7-5} = 0b010;
35859 let Inst{13-13} = 0b0;
35860 let Inst{31-21} = 0b00011100001;
35861 let hasNewValue = 1;
35862 let opNewValue = 0;
35863 let isCVI = 1;
35864 let DecoderNamespace = "EXT_mmvec";
35866 def V6_vmpyhus_acc : HInst<
35867 (outs HvxWR:$Vxx32),
35868 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35869 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
35870 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35871 let Inst{7-5} = 0b001;
35872 let Inst{13-13} = 0b1;
35873 let Inst{31-21} = 0b00011100001;
35874 let hasNewValue = 1;
35875 let opNewValue = 0;
35876 let isAccumulator = 1;
35877 let isCVI = 1;
35878 let DecoderNamespace = "EXT_mmvec";
35879 let Constraints = "$Vxx32 = $Vxx32in";
35881 def V6_vmpyhus_acc_alt : HInst<
35882 (outs HvxWR:$Vxx32),
35883 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35884 "$Vxx32 += vmpyhus($Vu32,$Vv32)",
35885 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35886 let hasNewValue = 1;
35887 let opNewValue = 0;
35888 let isAccumulator = 1;
35889 let isCVI = 1;
35890 let isPseudo = 1;
35891 let isCodeGenOnly = 1;
35892 let DecoderNamespace = "EXT_mmvec";
35893 let Constraints = "$Vxx32 = $Vxx32in";
35895 def V6_vmpyhus_alt : HInst<
35896 (outs HvxWR:$Vdd32),
35897 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35898 "$Vdd32 = vmpyhus($Vu32,$Vv32)",
35899 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35900 let hasNewValue = 1;
35901 let opNewValue = 0;
35902 let isCVI = 1;
35903 let isPseudo = 1;
35904 let isCodeGenOnly = 1;
35905 let DecoderNamespace = "EXT_mmvec";
35907 def V6_vmpyhv : HInst<
35908 (outs HvxWR:$Vdd32),
35909 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35910 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
35911 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
35912 let Inst{7-5} = 0b111;
35913 let Inst{13-13} = 0b0;
35914 let Inst{31-21} = 0b00011100000;
35915 let hasNewValue = 1;
35916 let opNewValue = 0;
35917 let isCVI = 1;
35918 let DecoderNamespace = "EXT_mmvec";
35920 def V6_vmpyhv_acc : HInst<
35921 (outs HvxWR:$Vxx32),
35922 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35923 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
35924 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
35925 let Inst{7-5} = 0b111;
35926 let Inst{13-13} = 0b1;
35927 let Inst{31-21} = 0b00011100000;
35928 let hasNewValue = 1;
35929 let opNewValue = 0;
35930 let isAccumulator = 1;
35931 let isCVI = 1;
35932 let DecoderNamespace = "EXT_mmvec";
35933 let Constraints = "$Vxx32 = $Vxx32in";
35935 def V6_vmpyhv_acc_alt : HInst<
35936 (outs HvxWR:$Vxx32),
35937 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35938 "$Vxx32 += vmpyh($Vu32,$Vv32)",
35939 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35940 let hasNewValue = 1;
35941 let opNewValue = 0;
35942 let isAccumulator = 1;
35943 let isCVI = 1;
35944 let isPseudo = 1;
35945 let isCodeGenOnly = 1;
35946 let DecoderNamespace = "EXT_mmvec";
35947 let Constraints = "$Vxx32 = $Vxx32in";
35949 def V6_vmpyhv_alt : HInst<
35950 (outs HvxWR:$Vdd32),
35951 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35952 "$Vdd32 = vmpyh($Vu32,$Vv32)",
35953 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35954 let hasNewValue = 1;
35955 let opNewValue = 0;
35956 let isCVI = 1;
35957 let isPseudo = 1;
35958 let isCodeGenOnly = 1;
35959 let DecoderNamespace = "EXT_mmvec";
35961 def V6_vmpyhvsrs : HInst<
35962 (outs HvxVR:$Vd32),
35963 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35964 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
35965 tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35966 let Inst{7-5} = 0b001;
35967 let Inst{13-13} = 0b0;
35968 let Inst{31-21} = 0b00011100001;
35969 let hasNewValue = 1;
35970 let opNewValue = 0;
35971 let isCVI = 1;
35972 let DecoderNamespace = "EXT_mmvec";
35974 def V6_vmpyhvsrs_alt : HInst<
35975 (outs HvxVR:$Vd32),
35976 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35977 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
35978 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35979 let hasNewValue = 1;
35980 let opNewValue = 0;
35981 let isCVI = 1;
35982 let isPseudo = 1;
35983 let isCodeGenOnly = 1;
35984 let DecoderNamespace = "EXT_mmvec";
35986 def V6_vmpyieoh : HInst<
35987 (outs HvxVR:$Vd32),
35988 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35989 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
35990 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35991 let Inst{7-5} = 0b000;
35992 let Inst{13-13} = 0b0;
35993 let Inst{31-21} = 0b00011111011;
35994 let hasNewValue = 1;
35995 let opNewValue = 0;
35996 let isCVI = 1;
35997 let DecoderNamespace = "EXT_mmvec";
35999 def V6_vmpyiewh_acc : HInst<
36000 (outs HvxVR:$Vx32),
36001 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36002 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
36003 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36004 let Inst{7-5} = 0b000;
36005 let Inst{13-13} = 0b1;
36006 let Inst{31-21} = 0b00011100010;
36007 let hasNewValue = 1;
36008 let opNewValue = 0;
36009 let isAccumulator = 1;
36010 let isCVI = 1;
36011 let DecoderNamespace = "EXT_mmvec";
36012 let Constraints = "$Vx32 = $Vx32in";
36014 def V6_vmpyiewh_acc_alt : HInst<
36015 (outs HvxVR:$Vx32),
36016 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36017 "$Vx32 += vmpyiewh($Vu32,$Vv32)",
36018 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36019 let hasNewValue = 1;
36020 let opNewValue = 0;
36021 let isAccumulator = 1;
36022 let isCVI = 1;
36023 let isPseudo = 1;
36024 let isCodeGenOnly = 1;
36025 let DecoderNamespace = "EXT_mmvec";
36026 let Constraints = "$Vx32 = $Vx32in";
36028 def V6_vmpyiewuh : HInst<
36029 (outs HvxVR:$Vd32),
36030 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36031 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
36032 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36033 let Inst{7-5} = 0b000;
36034 let Inst{13-13} = 0b0;
36035 let Inst{31-21} = 0b00011111110;
36036 let hasNewValue = 1;
36037 let opNewValue = 0;
36038 let isCVI = 1;
36039 let DecoderNamespace = "EXT_mmvec";
36041 def V6_vmpyiewuh_acc : HInst<
36042 (outs HvxVR:$Vx32),
36043 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36044 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
36045 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36046 let Inst{7-5} = 0b101;
36047 let Inst{13-13} = 0b1;
36048 let Inst{31-21} = 0b00011100001;
36049 let hasNewValue = 1;
36050 let opNewValue = 0;
36051 let isAccumulator = 1;
36052 let isCVI = 1;
36053 let DecoderNamespace = "EXT_mmvec";
36054 let Constraints = "$Vx32 = $Vx32in";
36056 def V6_vmpyiewuh_acc_alt : HInst<
36057 (outs HvxVR:$Vx32),
36058 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36059 "$Vx32 += vmpyiewuh($Vu32,$Vv32)",
36060 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36061 let hasNewValue = 1;
36062 let opNewValue = 0;
36063 let isAccumulator = 1;
36064 let isCVI = 1;
36065 let isPseudo = 1;
36066 let isCodeGenOnly = 1;
36067 let DecoderNamespace = "EXT_mmvec";
36068 let Constraints = "$Vx32 = $Vx32in";
36070 def V6_vmpyiewuh_alt : HInst<
36071 (outs HvxVR:$Vd32),
36072 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36073 "$Vd32 = vmpyiewuh($Vu32,$Vv32)",
36074 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36075 let hasNewValue = 1;
36076 let opNewValue = 0;
36077 let isCVI = 1;
36078 let isPseudo = 1;
36079 let isCodeGenOnly = 1;
36080 let DecoderNamespace = "EXT_mmvec";
36082 def V6_vmpyih : HInst<
36083 (outs HvxVR:$Vd32),
36084 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36085 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
36086 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36087 let Inst{7-5} = 0b100;
36088 let Inst{13-13} = 0b0;
36089 let Inst{31-21} = 0b00011100001;
36090 let hasNewValue = 1;
36091 let opNewValue = 0;
36092 let isCVI = 1;
36093 let DecoderNamespace = "EXT_mmvec";
36095 def V6_vmpyih_acc : HInst<
36096 (outs HvxVR:$Vx32),
36097 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36098 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
36099 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36100 let Inst{7-5} = 0b100;
36101 let Inst{13-13} = 0b1;
36102 let Inst{31-21} = 0b00011100001;
36103 let hasNewValue = 1;
36104 let opNewValue = 0;
36105 let isAccumulator = 1;
36106 let isCVI = 1;
36107 let DecoderNamespace = "EXT_mmvec";
36108 let Constraints = "$Vx32 = $Vx32in";
36110 def V6_vmpyih_acc_alt : HInst<
36111 (outs HvxVR:$Vx32),
36112 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36113 "$Vx32 += vmpyih($Vu32,$Vv32)",
36114 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36115 let hasNewValue = 1;
36116 let opNewValue = 0;
36117 let isAccumulator = 1;
36118 let isCVI = 1;
36119 let isPseudo = 1;
36120 let isCodeGenOnly = 1;
36121 let DecoderNamespace = "EXT_mmvec";
36122 let Constraints = "$Vx32 = $Vx32in";
36124 def V6_vmpyih_alt : HInst<
36125 (outs HvxVR:$Vd32),
36126 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36127 "$Vd32 = vmpyih($Vu32,$Vv32)",
36128 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36129 let hasNewValue = 1;
36130 let opNewValue = 0;
36131 let isCVI = 1;
36132 let isPseudo = 1;
36133 let isCodeGenOnly = 1;
36134 let DecoderNamespace = "EXT_mmvec";
36136 def V6_vmpyihb : HInst<
36137 (outs HvxVR:$Vd32),
36138 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36139 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
36140 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36141 let Inst{7-5} = 0b000;
36142 let Inst{13-13} = 0b0;
36143 let Inst{31-21} = 0b00011001011;
36144 let hasNewValue = 1;
36145 let opNewValue = 0;
36146 let isCVI = 1;
36147 let DecoderNamespace = "EXT_mmvec";
36149 def V6_vmpyihb_acc : HInst<
36150 (outs HvxVR:$Vx32),
36151 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36152 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
36153 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36154 let Inst{7-5} = 0b001;
36155 let Inst{13-13} = 0b1;
36156 let Inst{31-21} = 0b00011001011;
36157 let hasNewValue = 1;
36158 let opNewValue = 0;
36159 let isAccumulator = 1;
36160 let isCVI = 1;
36161 let DecoderNamespace = "EXT_mmvec";
36162 let Constraints = "$Vx32 = $Vx32in";
36164 def V6_vmpyihb_acc_alt : HInst<
36165 (outs HvxVR:$Vx32),
36166 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36167 "$Vx32 += vmpyihb($Vu32,$Rt32)",
36168 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36169 let hasNewValue = 1;
36170 let opNewValue = 0;
36171 let isAccumulator = 1;
36172 let isCVI = 1;
36173 let isPseudo = 1;
36174 let isCodeGenOnly = 1;
36175 let DecoderNamespace = "EXT_mmvec";
36176 let Constraints = "$Vx32 = $Vx32in";
36178 def V6_vmpyihb_alt : HInst<
36179 (outs HvxVR:$Vd32),
36180 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36181 "$Vd32 = vmpyihb($Vu32,$Rt32)",
36182 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36183 let hasNewValue = 1;
36184 let opNewValue = 0;
36185 let isCVI = 1;
36186 let isPseudo = 1;
36187 let isCodeGenOnly = 1;
36188 let DecoderNamespace = "EXT_mmvec";
36190 def V6_vmpyiowh : HInst<
36191 (outs HvxVR:$Vd32),
36192 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36193 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
36194 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36195 let Inst{7-5} = 0b001;
36196 let Inst{13-13} = 0b0;
36197 let Inst{31-21} = 0b00011111110;
36198 let hasNewValue = 1;
36199 let opNewValue = 0;
36200 let isCVI = 1;
36201 let DecoderNamespace = "EXT_mmvec";
36203 def V6_vmpyiowh_alt : HInst<
36204 (outs HvxVR:$Vd32),
36205 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36206 "$Vd32 = vmpyiowh($Vu32,$Vv32)",
36207 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36208 let hasNewValue = 1;
36209 let opNewValue = 0;
36210 let isCVI = 1;
36211 let isPseudo = 1;
36212 let isCodeGenOnly = 1;
36213 let DecoderNamespace = "EXT_mmvec";
36215 def V6_vmpyiwb : HInst<
36216 (outs HvxVR:$Vd32),
36217 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36218 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
36219 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
36220 let Inst{7-5} = 0b000;
36221 let Inst{13-13} = 0b0;
36222 let Inst{31-21} = 0b00011001101;
36223 let hasNewValue = 1;
36224 let opNewValue = 0;
36225 let isCVI = 1;
36226 let DecoderNamespace = "EXT_mmvec";
36228 def V6_vmpyiwb_acc : HInst<
36229 (outs HvxVR:$Vx32),
36230 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36231 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
36232 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
36233 let Inst{7-5} = 0b010;
36234 let Inst{13-13} = 0b1;
36235 let Inst{31-21} = 0b00011001010;
36236 let hasNewValue = 1;
36237 let opNewValue = 0;
36238 let isAccumulator = 1;
36239 let isCVI = 1;
36240 let DecoderNamespace = "EXT_mmvec";
36241 let Constraints = "$Vx32 = $Vx32in";
36243 def V6_vmpyiwb_acc_alt : HInst<
36244 (outs HvxVR:$Vx32),
36245 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36246 "$Vx32 += vmpyiwb($Vu32,$Rt32)",
36247 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36248 let hasNewValue = 1;
36249 let opNewValue = 0;
36250 let isAccumulator = 1;
36251 let isCVI = 1;
36252 let isPseudo = 1;
36253 let isCodeGenOnly = 1;
36254 let DecoderNamespace = "EXT_mmvec";
36255 let Constraints = "$Vx32 = $Vx32in";
36257 def V6_vmpyiwb_alt : HInst<
36258 (outs HvxVR:$Vd32),
36259 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36260 "$Vd32 = vmpyiwb($Vu32,$Rt32)",
36261 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36262 let hasNewValue = 1;
36263 let opNewValue = 0;
36264 let isCVI = 1;
36265 let isPseudo = 1;
36266 let isCodeGenOnly = 1;
36267 let DecoderNamespace = "EXT_mmvec";
36269 def V6_vmpyiwh : HInst<
36270 (outs HvxVR:$Vd32),
36271 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36272 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
36273 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
36274 let Inst{7-5} = 0b111;
36275 let Inst{13-13} = 0b0;
36276 let Inst{31-21} = 0b00011001100;
36277 let hasNewValue = 1;
36278 let opNewValue = 0;
36279 let isCVI = 1;
36280 let DecoderNamespace = "EXT_mmvec";
36282 def V6_vmpyiwh_acc : HInst<
36283 (outs HvxVR:$Vx32),
36284 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36285 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
36286 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
36287 let Inst{7-5} = 0b011;
36288 let Inst{13-13} = 0b1;
36289 let Inst{31-21} = 0b00011001010;
36290 let hasNewValue = 1;
36291 let opNewValue = 0;
36292 let isAccumulator = 1;
36293 let isCVI = 1;
36294 let DecoderNamespace = "EXT_mmvec";
36295 let Constraints = "$Vx32 = $Vx32in";
36297 def V6_vmpyiwh_acc_alt : HInst<
36298 (outs HvxVR:$Vx32),
36299 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36300 "$Vx32 += vmpyiwh($Vu32,$Rt32)",
36301 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36302 let hasNewValue = 1;
36303 let opNewValue = 0;
36304 let isAccumulator = 1;
36305 let isCVI = 1;
36306 let isPseudo = 1;
36307 let isCodeGenOnly = 1;
36308 let DecoderNamespace = "EXT_mmvec";
36309 let Constraints = "$Vx32 = $Vx32in";
36311 def V6_vmpyiwh_alt : HInst<
36312 (outs HvxVR:$Vd32),
36313 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36314 "$Vd32 = vmpyiwh($Vu32,$Rt32)",
36315 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36316 let hasNewValue = 1;
36317 let opNewValue = 0;
36318 let isCVI = 1;
36319 let isPseudo = 1;
36320 let isCodeGenOnly = 1;
36321 let DecoderNamespace = "EXT_mmvec";
36323 def V6_vmpyiwub : HInst<
36324 (outs HvxVR:$Vd32),
36325 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36326 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
36327 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
36328 let Inst{7-5} = 0b110;
36329 let Inst{13-13} = 0b0;
36330 let Inst{31-21} = 0b00011001100;
36331 let hasNewValue = 1;
36332 let opNewValue = 0;
36333 let isCVI = 1;
36334 let DecoderNamespace = "EXT_mmvec";
36336 def V6_vmpyiwub_acc : HInst<
36337 (outs HvxVR:$Vx32),
36338 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36339 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
36340 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
36341 let Inst{7-5} = 0b001;
36342 let Inst{13-13} = 0b1;
36343 let Inst{31-21} = 0b00011001100;
36344 let hasNewValue = 1;
36345 let opNewValue = 0;
36346 let isAccumulator = 1;
36347 let isCVI = 1;
36348 let DecoderNamespace = "EXT_mmvec";
36349 let Constraints = "$Vx32 = $Vx32in";
36351 def V6_vmpyiwub_acc_alt : HInst<
36352 (outs HvxVR:$Vx32),
36353 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36354 "$Vx32 += vmpyiwub($Vu32,$Rt32)",
36355 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36356 let hasNewValue = 1;
36357 let opNewValue = 0;
36358 let isAccumulator = 1;
36359 let isCVI = 1;
36360 let isPseudo = 1;
36361 let isCodeGenOnly = 1;
36362 let DecoderNamespace = "EXT_mmvec";
36363 let Constraints = "$Vx32 = $Vx32in";
36365 def V6_vmpyiwub_alt : HInst<
36366 (outs HvxVR:$Vd32),
36367 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36368 "$Vd32 = vmpyiwub($Vu32,$Rt32)",
36369 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36370 let hasNewValue = 1;
36371 let opNewValue = 0;
36372 let isCVI = 1;
36373 let isPseudo = 1;
36374 let isCodeGenOnly = 1;
36375 let DecoderNamespace = "EXT_mmvec";
36377 def V6_vmpyowh : HInst<
36378 (outs HvxVR:$Vd32),
36379 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36380 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
36381 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36382 let Inst{7-5} = 0b111;
36383 let Inst{13-13} = 0b0;
36384 let Inst{31-21} = 0b00011111111;
36385 let hasNewValue = 1;
36386 let opNewValue = 0;
36387 let isCVI = 1;
36388 let DecoderNamespace = "EXT_mmvec";
36390 def V6_vmpyowh_64_acc : HInst<
36391 (outs HvxWR:$Vxx32),
36392 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36393 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
36394 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
36395 let Inst{7-5} = 0b011;
36396 let Inst{13-13} = 0b1;
36397 let Inst{31-21} = 0b00011100001;
36398 let hasNewValue = 1;
36399 let opNewValue = 0;
36400 let isAccumulator = 1;
36401 let isCVI = 1;
36402 let DecoderNamespace = "EXT_mmvec";
36403 let Constraints = "$Vxx32 = $Vxx32in";
36405 def V6_vmpyowh_alt : HInst<
36406 (outs HvxVR:$Vd32),
36407 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36408 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
36409 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36410 let hasNewValue = 1;
36411 let opNewValue = 0;
36412 let isCVI = 1;
36413 let isPseudo = 1;
36414 let isCodeGenOnly = 1;
36415 let DecoderNamespace = "EXT_mmvec";
36417 def V6_vmpyowh_rnd : HInst<
36418 (outs HvxVR:$Vd32),
36419 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36420 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
36421 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
36422 let Inst{7-5} = 0b000;
36423 let Inst{13-13} = 0b0;
36424 let Inst{31-21} = 0b00011111010;
36425 let hasNewValue = 1;
36426 let opNewValue = 0;
36427 let isCVI = 1;
36428 let DecoderNamespace = "EXT_mmvec";
36430 def V6_vmpyowh_rnd_alt : HInst<
36431 (outs HvxVR:$Vd32),
36432 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36433 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
36434 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36435 let hasNewValue = 1;
36436 let opNewValue = 0;
36437 let isCVI = 1;
36438 let isPseudo = 1;
36439 let isCodeGenOnly = 1;
36440 let DecoderNamespace = "EXT_mmvec";
36442 def V6_vmpyowh_rnd_sacc : HInst<
36443 (outs HvxVR:$Vx32),
36444 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36445 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
36446 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36447 let Inst{7-5} = 0b111;
36448 let Inst{13-13} = 0b1;
36449 let Inst{31-21} = 0b00011100001;
36450 let hasNewValue = 1;
36451 let opNewValue = 0;
36452 let isAccumulator = 1;
36453 let isCVI = 1;
36454 let DecoderNamespace = "EXT_mmvec";
36455 let Constraints = "$Vx32 = $Vx32in";
36457 def V6_vmpyowh_rnd_sacc_alt : HInst<
36458 (outs HvxVR:$Vx32),
36459 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36460 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
36461 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36462 let hasNewValue = 1;
36463 let opNewValue = 0;
36464 let isAccumulator = 1;
36465 let isCVI = 1;
36466 let isPseudo = 1;
36467 let DecoderNamespace = "EXT_mmvec";
36468 let Constraints = "$Vx32 = $Vx32in";
36470 def V6_vmpyowh_sacc : HInst<
36471 (outs HvxVR:$Vx32),
36472 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36473 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
36474 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
36475 let Inst{7-5} = 0b110;
36476 let Inst{13-13} = 0b1;
36477 let Inst{31-21} = 0b00011100001;
36478 let hasNewValue = 1;
36479 let opNewValue = 0;
36480 let isAccumulator = 1;
36481 let isCVI = 1;
36482 let DecoderNamespace = "EXT_mmvec";
36483 let Constraints = "$Vx32 = $Vx32in";
36485 def V6_vmpyowh_sacc_alt : HInst<
36486 (outs HvxVR:$Vx32),
36487 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36488 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
36489 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36490 let hasNewValue = 1;
36491 let opNewValue = 0;
36492 let isAccumulator = 1;
36493 let isCVI = 1;
36494 let isPseudo = 1;
36495 let DecoderNamespace = "EXT_mmvec";
36496 let Constraints = "$Vx32 = $Vx32in";
36498 def V6_vmpyub : HInst<
36499 (outs HvxWR:$Vdd32),
36500 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36501 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
36502 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
36503 let Inst{7-5} = 0b000;
36504 let Inst{13-13} = 0b0;
36505 let Inst{31-21} = 0b00011001110;
36506 let hasNewValue = 1;
36507 let opNewValue = 0;
36508 let isCVI = 1;
36509 let DecoderNamespace = "EXT_mmvec";
36511 def V6_vmpyub_acc : HInst<
36512 (outs HvxWR:$Vxx32),
36513 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36514 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
36515 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
36516 let Inst{7-5} = 0b000;
36517 let Inst{13-13} = 0b1;
36518 let Inst{31-21} = 0b00011001100;
36519 let hasNewValue = 1;
36520 let opNewValue = 0;
36521 let isAccumulator = 1;
36522 let isCVI = 1;
36523 let DecoderNamespace = "EXT_mmvec";
36524 let Constraints = "$Vxx32 = $Vxx32in";
36526 def V6_vmpyub_acc_alt : HInst<
36527 (outs HvxWR:$Vxx32),
36528 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36529 "$Vxx32 += vmpyub($Vu32,$Rt32)",
36530 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36531 let hasNewValue = 1;
36532 let opNewValue = 0;
36533 let isAccumulator = 1;
36534 let isCVI = 1;
36535 let isPseudo = 1;
36536 let isCodeGenOnly = 1;
36537 let DecoderNamespace = "EXT_mmvec";
36538 let Constraints = "$Vxx32 = $Vxx32in";
36540 def V6_vmpyub_alt : HInst<
36541 (outs HvxWR:$Vdd32),
36542 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36543 "$Vdd32 = vmpyub($Vu32,$Rt32)",
36544 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36545 let hasNewValue = 1;
36546 let opNewValue = 0;
36547 let isCVI = 1;
36548 let isPseudo = 1;
36549 let isCodeGenOnly = 1;
36550 let DecoderNamespace = "EXT_mmvec";
36552 def V6_vmpyubv : HInst<
36553 (outs HvxWR:$Vdd32),
36554 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36555 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
36556 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36557 let Inst{7-5} = 0b101;
36558 let Inst{13-13} = 0b0;
36559 let Inst{31-21} = 0b00011100000;
36560 let hasNewValue = 1;
36561 let opNewValue = 0;
36562 let isCVI = 1;
36563 let DecoderNamespace = "EXT_mmvec";
36565 def V6_vmpyubv_acc : HInst<
36566 (outs HvxWR:$Vxx32),
36567 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36568 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
36569 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36570 let Inst{7-5} = 0b101;
36571 let Inst{13-13} = 0b1;
36572 let Inst{31-21} = 0b00011100000;
36573 let hasNewValue = 1;
36574 let opNewValue = 0;
36575 let isAccumulator = 1;
36576 let isCVI = 1;
36577 let DecoderNamespace = "EXT_mmvec";
36578 let Constraints = "$Vxx32 = $Vxx32in";
36580 def V6_vmpyubv_acc_alt : HInst<
36581 (outs HvxWR:$Vxx32),
36582 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36583 "$Vxx32 += vmpyub($Vu32,$Vv32)",
36584 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36585 let hasNewValue = 1;
36586 let opNewValue = 0;
36587 let isAccumulator = 1;
36588 let isCVI = 1;
36589 let isPseudo = 1;
36590 let isCodeGenOnly = 1;
36591 let DecoderNamespace = "EXT_mmvec";
36592 let Constraints = "$Vxx32 = $Vxx32in";
36594 def V6_vmpyubv_alt : HInst<
36595 (outs HvxWR:$Vdd32),
36596 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36597 "$Vdd32 = vmpyub($Vu32,$Vv32)",
36598 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36599 let hasNewValue = 1;
36600 let opNewValue = 0;
36601 let isCVI = 1;
36602 let isPseudo = 1;
36603 let isCodeGenOnly = 1;
36604 let DecoderNamespace = "EXT_mmvec";
36606 def V6_vmpyuh : HInst<
36607 (outs HvxWR:$Vdd32),
36608 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36609 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
36610 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
36611 let Inst{7-5} = 0b011;
36612 let Inst{13-13} = 0b0;
36613 let Inst{31-21} = 0b00011001010;
36614 let hasNewValue = 1;
36615 let opNewValue = 0;
36616 let isCVI = 1;
36617 let DecoderNamespace = "EXT_mmvec";
36619 def V6_vmpyuh_acc : HInst<
36620 (outs HvxWR:$Vxx32),
36621 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36622 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
36623 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
36624 let Inst{7-5} = 0b001;
36625 let Inst{13-13} = 0b1;
36626 let Inst{31-21} = 0b00011001010;
36627 let hasNewValue = 1;
36628 let opNewValue = 0;
36629 let isAccumulator = 1;
36630 let isCVI = 1;
36631 let DecoderNamespace = "EXT_mmvec";
36632 let Constraints = "$Vxx32 = $Vxx32in";
36634 def V6_vmpyuh_acc_alt : HInst<
36635 (outs HvxWR:$Vxx32),
36636 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36637 "$Vxx32 += vmpyuh($Vu32,$Rt32)",
36638 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36639 let hasNewValue = 1;
36640 let opNewValue = 0;
36641 let isAccumulator = 1;
36642 let isCVI = 1;
36643 let isPseudo = 1;
36644 let isCodeGenOnly = 1;
36645 let DecoderNamespace = "EXT_mmvec";
36646 let Constraints = "$Vxx32 = $Vxx32in";
36648 def V6_vmpyuh_alt : HInst<
36649 (outs HvxWR:$Vdd32),
36650 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36651 "$Vdd32 = vmpyuh($Vu32,$Rt32)",
36652 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36653 let hasNewValue = 1;
36654 let opNewValue = 0;
36655 let isCVI = 1;
36656 let isPseudo = 1;
36657 let isCodeGenOnly = 1;
36658 let DecoderNamespace = "EXT_mmvec";
36660 def V6_vmpyuhe : HInst<
36661 (outs HvxVR:$Vd32),
36662 (ins HvxVR:$Vu32, IntRegs:$Rt32),
36663 "$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
36664 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
36665 let Inst{7-5} = 0b010;
36666 let Inst{13-13} = 0b0;
36667 let Inst{31-21} = 0b00011001011;
36668 let hasNewValue = 1;
36669 let opNewValue = 0;
36670 let isCVI = 1;
36671 let DecoderNamespace = "EXT_mmvec";
36673 def V6_vmpyuhe_acc : HInst<
36674 (outs HvxVR:$Vx32),
36675 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
36676 "$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
36677 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
36678 let Inst{7-5} = 0b011;
36679 let Inst{13-13} = 0b1;
36680 let Inst{31-21} = 0b00011001100;
36681 let hasNewValue = 1;
36682 let opNewValue = 0;
36683 let isAccumulator = 1;
36684 let isCVI = 1;
36685 let DecoderNamespace = "EXT_mmvec";
36686 let Constraints = "$Vx32 = $Vx32in";
36688 def V6_vmpyuhv : HInst<
36689 (outs HvxWR:$Vdd32),
36690 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36691 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
36692 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36693 let Inst{7-5} = 0b000;
36694 let Inst{13-13} = 0b0;
36695 let Inst{31-21} = 0b00011100001;
36696 let hasNewValue = 1;
36697 let opNewValue = 0;
36698 let isCVI = 1;
36699 let DecoderNamespace = "EXT_mmvec";
36701 def V6_vmpyuhv_acc : HInst<
36702 (outs HvxWR:$Vxx32),
36703 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36704 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
36705 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
36706 let Inst{7-5} = 0b000;
36707 let Inst{13-13} = 0b1;
36708 let Inst{31-21} = 0b00011100001;
36709 let hasNewValue = 1;
36710 let opNewValue = 0;
36711 let isAccumulator = 1;
36712 let isCVI = 1;
36713 let DecoderNamespace = "EXT_mmvec";
36714 let Constraints = "$Vxx32 = $Vxx32in";
36716 def V6_vmpyuhv_acc_alt : HInst<
36717 (outs HvxWR:$Vxx32),
36718 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
36719 "$Vxx32 += vmpyuh($Vu32,$Vv32)",
36720 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36721 let hasNewValue = 1;
36722 let opNewValue = 0;
36723 let isAccumulator = 1;
36724 let isCVI = 1;
36725 let isPseudo = 1;
36726 let isCodeGenOnly = 1;
36727 let DecoderNamespace = "EXT_mmvec";
36728 let Constraints = "$Vxx32 = $Vxx32in";
36730 def V6_vmpyuhv_alt : HInst<
36731 (outs HvxWR:$Vdd32),
36732 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36733 "$Vdd32 = vmpyuh($Vu32,$Vv32)",
36734 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36735 let hasNewValue = 1;
36736 let opNewValue = 0;
36737 let isCVI = 1;
36738 let isPseudo = 1;
36739 let isCodeGenOnly = 1;
36740 let DecoderNamespace = "EXT_mmvec";
36742 def V6_vmpyuhvs : HInst<
36743 (outs HvxVR:$Vd32),
36744 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36745 "$Vd32.uh = vmpy($Vu32.uh,$Vv32.uh):>>16",
36746 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV69]> {
36747 let Inst{7-5} = 0b111;
36748 let Inst{13-13} = 0b1;
36749 let Inst{31-21} = 0b00011111110;
36750 let hasNewValue = 1;
36751 let opNewValue = 0;
36752 let isCVI = 1;
36753 let DecoderNamespace = "EXT_mmvec";
36755 def V6_vmux : HInst<
36756 (outs HvxVR:$Vd32),
36757 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
36758 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
36759 tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
36760 let Inst{7-7} = 0b0;
36761 let Inst{13-13} = 0b1;
36762 let Inst{31-21} = 0b00011110111;
36763 let hasNewValue = 1;
36764 let opNewValue = 0;
36765 let isCVI = 1;
36766 let isHVXALU = 1;
36767 let isHVXALU2SRC = 1;
36768 let DecoderNamespace = "EXT_mmvec";
36770 def V6_vnavgb : HInst<
36771 (outs HvxVR:$Vd32),
36772 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36773 "$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
36774 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
36775 let Inst{7-5} = 0b110;
36776 let Inst{13-13} = 0b1;
36777 let Inst{31-21} = 0b00011111000;
36778 let hasNewValue = 1;
36779 let opNewValue = 0;
36780 let isCVI = 1;
36781 let isHVXALU = 1;
36782 let isHVXALU2SRC = 1;
36783 let DecoderNamespace = "EXT_mmvec";
36785 def V6_vnavgb_alt : HInst<
36786 (outs HvxVR:$Vd32),
36787 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36788 "$Vd32 = vnavgb($Vu32,$Vv32)",
36789 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
36790 let hasNewValue = 1;
36791 let opNewValue = 0;
36792 let isCVI = 1;
36793 let isPseudo = 1;
36794 let isCodeGenOnly = 1;
36795 let DecoderNamespace = "EXT_mmvec";
36797 def V6_vnavgh : HInst<
36798 (outs HvxVR:$Vd32),
36799 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36800 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
36801 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36802 let Inst{7-5} = 0b001;
36803 let Inst{13-13} = 0b0;
36804 let Inst{31-21} = 0b00011100111;
36805 let hasNewValue = 1;
36806 let opNewValue = 0;
36807 let isCVI = 1;
36808 let isHVXALU = 1;
36809 let isHVXALU2SRC = 1;
36810 let DecoderNamespace = "EXT_mmvec";
36812 def V6_vnavgh_alt : HInst<
36813 (outs HvxVR:$Vd32),
36814 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36815 "$Vd32 = vnavgh($Vu32,$Vv32)",
36816 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36817 let hasNewValue = 1;
36818 let opNewValue = 0;
36819 let isCVI = 1;
36820 let isPseudo = 1;
36821 let isCodeGenOnly = 1;
36822 let DecoderNamespace = "EXT_mmvec";
36824 def V6_vnavgub : HInst<
36825 (outs HvxVR:$Vd32),
36826 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36827 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
36828 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36829 let Inst{7-5} = 0b000;
36830 let Inst{13-13} = 0b0;
36831 let Inst{31-21} = 0b00011100111;
36832 let hasNewValue = 1;
36833 let opNewValue = 0;
36834 let isCVI = 1;
36835 let isHVXALU = 1;
36836 let isHVXALU2SRC = 1;
36837 let DecoderNamespace = "EXT_mmvec";
36839 def V6_vnavgub_alt : HInst<
36840 (outs HvxVR:$Vd32),
36841 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36842 "$Vd32 = vnavgub($Vu32,$Vv32)",
36843 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36844 let hasNewValue = 1;
36845 let opNewValue = 0;
36846 let isCVI = 1;
36847 let isPseudo = 1;
36848 let isCodeGenOnly = 1;
36849 let DecoderNamespace = "EXT_mmvec";
36851 def V6_vnavgw : HInst<
36852 (outs HvxVR:$Vd32),
36853 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36854 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
36855 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36856 let Inst{7-5} = 0b010;
36857 let Inst{13-13} = 0b0;
36858 let Inst{31-21} = 0b00011100111;
36859 let hasNewValue = 1;
36860 let opNewValue = 0;
36861 let isCVI = 1;
36862 let isHVXALU = 1;
36863 let isHVXALU2SRC = 1;
36864 let DecoderNamespace = "EXT_mmvec";
36866 def V6_vnavgw_alt : HInst<
36867 (outs HvxVR:$Vd32),
36868 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36869 "$Vd32 = vnavgw($Vu32,$Vv32)",
36870 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36871 let hasNewValue = 1;
36872 let opNewValue = 0;
36873 let isCVI = 1;
36874 let isPseudo = 1;
36875 let isCodeGenOnly = 1;
36876 let DecoderNamespace = "EXT_mmvec";
36878 def V6_vnccombine : HInst<
36879 (outs HvxWR:$Vdd32),
36880 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
36881 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
36882 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
36883 let Inst{7-7} = 0b0;
36884 let Inst{13-13} = 0b0;
36885 let Inst{31-21} = 0b00011010010;
36886 let isPredicated = 1;
36887 let isPredicatedFalse = 1;
36888 let hasNewValue = 1;
36889 let opNewValue = 0;
36890 let isCVI = 1;
36891 let DecoderNamespace = "EXT_mmvec";
36893 def V6_vncmov : HInst<
36894 (outs HvxVR:$Vd32),
36895 (ins PredRegs:$Ps4, HvxVR:$Vu32),
36896 "if (!$Ps4) $Vd32 = $Vu32",
36897 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
36898 let Inst{7-7} = 0b0;
36899 let Inst{13-13} = 0b0;
36900 let Inst{31-16} = 0b0001101000100000;
36901 let isPredicated = 1;
36902 let isPredicatedFalse = 1;
36903 let hasNewValue = 1;
36904 let opNewValue = 0;
36905 let isCVI = 1;
36906 let isHVXALU = 1;
36907 let DecoderNamespace = "EXT_mmvec";
36909 def V6_vnormamth : HInst<
36910 (outs HvxVR:$Vd32),
36911 (ins HvxVR:$Vu32),
36912 "$Vd32.h = vnormamt($Vu32.h)",
36913 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36914 let Inst{7-5} = 0b101;
36915 let Inst{13-13} = 0b0;
36916 let Inst{31-16} = 0b0001111000000011;
36917 let hasNewValue = 1;
36918 let opNewValue = 0;
36919 let isCVI = 1;
36920 let DecoderNamespace = "EXT_mmvec";
36922 def V6_vnormamth_alt : HInst<
36923 (outs HvxVR:$Vd32),
36924 (ins HvxVR:$Vu32),
36925 "$Vd32 = vnormamth($Vu32)",
36926 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36927 let hasNewValue = 1;
36928 let opNewValue = 0;
36929 let isCVI = 1;
36930 let isPseudo = 1;
36931 let isCodeGenOnly = 1;
36932 let DecoderNamespace = "EXT_mmvec";
36934 def V6_vnormamtw : HInst<
36935 (outs HvxVR:$Vd32),
36936 (ins HvxVR:$Vu32),
36937 "$Vd32.w = vnormamt($Vu32.w)",
36938 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
36939 let Inst{7-5} = 0b100;
36940 let Inst{13-13} = 0b0;
36941 let Inst{31-16} = 0b0001111000000011;
36942 let hasNewValue = 1;
36943 let opNewValue = 0;
36944 let isCVI = 1;
36945 let DecoderNamespace = "EXT_mmvec";
36947 def V6_vnormamtw_alt : HInst<
36948 (outs HvxVR:$Vd32),
36949 (ins HvxVR:$Vu32),
36950 "$Vd32 = vnormamtw($Vu32)",
36951 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36952 let hasNewValue = 1;
36953 let opNewValue = 0;
36954 let isCVI = 1;
36955 let isPseudo = 1;
36956 let isCodeGenOnly = 1;
36957 let DecoderNamespace = "EXT_mmvec";
36959 def V6_vnot : HInst<
36960 (outs HvxVR:$Vd32),
36961 (ins HvxVR:$Vu32),
36962 "$Vd32 = vnot($Vu32)",
36963 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
36964 let Inst{7-5} = 0b100;
36965 let Inst{13-13} = 0b0;
36966 let Inst{31-16} = 0b0001111000000000;
36967 let hasNewValue = 1;
36968 let opNewValue = 0;
36969 let isCVI = 1;
36970 let isHVXALU = 1;
36971 let isHVXALU2SRC = 1;
36972 let DecoderNamespace = "EXT_mmvec";
36974 def V6_vor : HInst<
36975 (outs HvxVR:$Vd32),
36976 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36977 "$Vd32 = vor($Vu32,$Vv32)",
36978 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36979 let Inst{7-5} = 0b110;
36980 let Inst{13-13} = 0b0;
36981 let Inst{31-21} = 0b00011100001;
36982 let hasNewValue = 1;
36983 let opNewValue = 0;
36984 let isCVI = 1;
36985 let isHVXALU = 1;
36986 let isHVXALU2SRC = 1;
36987 let DecoderNamespace = "EXT_mmvec";
36989 def V6_vpackeb : HInst<
36990 (outs HvxVR:$Vd32),
36991 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36992 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
36993 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
36994 let Inst{7-5} = 0b010;
36995 let Inst{13-13} = 0b0;
36996 let Inst{31-21} = 0b00011111110;
36997 let hasNewValue = 1;
36998 let opNewValue = 0;
36999 let isCVI = 1;
37000 let DecoderNamespace = "EXT_mmvec";
37002 def V6_vpackeb_alt : HInst<
37003 (outs HvxVR:$Vd32),
37004 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37005 "$Vd32 = vpackeb($Vu32,$Vv32)",
37006 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37007 let hasNewValue = 1;
37008 let opNewValue = 0;
37009 let isCVI = 1;
37010 let isPseudo = 1;
37011 let isCodeGenOnly = 1;
37012 let DecoderNamespace = "EXT_mmvec";
37014 def V6_vpackeh : HInst<
37015 (outs HvxVR:$Vd32),
37016 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37017 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
37018 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37019 let Inst{7-5} = 0b011;
37020 let Inst{13-13} = 0b0;
37021 let Inst{31-21} = 0b00011111110;
37022 let hasNewValue = 1;
37023 let opNewValue = 0;
37024 let isCVI = 1;
37025 let DecoderNamespace = "EXT_mmvec";
37027 def V6_vpackeh_alt : HInst<
37028 (outs HvxVR:$Vd32),
37029 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37030 "$Vd32 = vpackeh($Vu32,$Vv32)",
37031 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37032 let hasNewValue = 1;
37033 let opNewValue = 0;
37034 let isCVI = 1;
37035 let isPseudo = 1;
37036 let isCodeGenOnly = 1;
37037 let DecoderNamespace = "EXT_mmvec";
37039 def V6_vpackhb_sat : HInst<
37040 (outs HvxVR:$Vd32),
37041 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37042 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
37043 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37044 let Inst{7-5} = 0b110;
37045 let Inst{13-13} = 0b0;
37046 let Inst{31-21} = 0b00011111110;
37047 let hasNewValue = 1;
37048 let opNewValue = 0;
37049 let isCVI = 1;
37050 let DecoderNamespace = "EXT_mmvec";
37052 def V6_vpackhb_sat_alt : HInst<
37053 (outs HvxVR:$Vd32),
37054 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37055 "$Vd32 = vpackhb($Vu32,$Vv32):sat",
37056 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37057 let hasNewValue = 1;
37058 let opNewValue = 0;
37059 let isCVI = 1;
37060 let isPseudo = 1;
37061 let isCodeGenOnly = 1;
37062 let DecoderNamespace = "EXT_mmvec";
37064 def V6_vpackhub_sat : HInst<
37065 (outs HvxVR:$Vd32),
37066 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37067 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
37068 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37069 let Inst{7-5} = 0b101;
37070 let Inst{13-13} = 0b0;
37071 let Inst{31-21} = 0b00011111110;
37072 let hasNewValue = 1;
37073 let opNewValue = 0;
37074 let isCVI = 1;
37075 let DecoderNamespace = "EXT_mmvec";
37077 def V6_vpackhub_sat_alt : HInst<
37078 (outs HvxVR:$Vd32),
37079 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37080 "$Vd32 = vpackhub($Vu32,$Vv32):sat",
37081 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37082 let hasNewValue = 1;
37083 let opNewValue = 0;
37084 let isCVI = 1;
37085 let isPseudo = 1;
37086 let isCodeGenOnly = 1;
37087 let DecoderNamespace = "EXT_mmvec";
37089 def V6_vpackob : HInst<
37090 (outs HvxVR:$Vd32),
37091 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37092 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
37093 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37094 let Inst{7-5} = 0b001;
37095 let Inst{13-13} = 0b0;
37096 let Inst{31-21} = 0b00011111111;
37097 let hasNewValue = 1;
37098 let opNewValue = 0;
37099 let isCVI = 1;
37100 let DecoderNamespace = "EXT_mmvec";
37102 def V6_vpackob_alt : HInst<
37103 (outs HvxVR:$Vd32),
37104 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37105 "$Vd32 = vpackob($Vu32,$Vv32)",
37106 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37107 let hasNewValue = 1;
37108 let opNewValue = 0;
37109 let isCVI = 1;
37110 let isPseudo = 1;
37111 let isCodeGenOnly = 1;
37112 let DecoderNamespace = "EXT_mmvec";
37114 def V6_vpackoh : HInst<
37115 (outs HvxVR:$Vd32),
37116 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37117 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
37118 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37119 let Inst{7-5} = 0b010;
37120 let Inst{13-13} = 0b0;
37121 let Inst{31-21} = 0b00011111111;
37122 let hasNewValue = 1;
37123 let opNewValue = 0;
37124 let isCVI = 1;
37125 let DecoderNamespace = "EXT_mmvec";
37127 def V6_vpackoh_alt : HInst<
37128 (outs HvxVR:$Vd32),
37129 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37130 "$Vd32 = vpackoh($Vu32,$Vv32)",
37131 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37132 let hasNewValue = 1;
37133 let opNewValue = 0;
37134 let isCVI = 1;
37135 let isPseudo = 1;
37136 let isCodeGenOnly = 1;
37137 let DecoderNamespace = "EXT_mmvec";
37139 def V6_vpackwh_sat : HInst<
37140 (outs HvxVR:$Vd32),
37141 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37142 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
37143 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37144 let Inst{7-5} = 0b000;
37145 let Inst{13-13} = 0b0;
37146 let Inst{31-21} = 0b00011111111;
37147 let hasNewValue = 1;
37148 let opNewValue = 0;
37149 let isCVI = 1;
37150 let DecoderNamespace = "EXT_mmvec";
37152 def V6_vpackwh_sat_alt : HInst<
37153 (outs HvxVR:$Vd32),
37154 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37155 "$Vd32 = vpackwh($Vu32,$Vv32):sat",
37156 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37157 let hasNewValue = 1;
37158 let opNewValue = 0;
37159 let isCVI = 1;
37160 let isPseudo = 1;
37161 let isCodeGenOnly = 1;
37162 let DecoderNamespace = "EXT_mmvec";
37164 def V6_vpackwuh_sat : HInst<
37165 (outs HvxVR:$Vd32),
37166 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37167 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
37168 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37169 let Inst{7-5} = 0b111;
37170 let Inst{13-13} = 0b0;
37171 let Inst{31-21} = 0b00011111110;
37172 let hasNewValue = 1;
37173 let opNewValue = 0;
37174 let isCVI = 1;
37175 let DecoderNamespace = "EXT_mmvec";
37177 def V6_vpackwuh_sat_alt : HInst<
37178 (outs HvxVR:$Vd32),
37179 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37180 "$Vd32 = vpackwuh($Vu32,$Vv32):sat",
37181 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37182 let hasNewValue = 1;
37183 let opNewValue = 0;
37184 let isCVI = 1;
37185 let isPseudo = 1;
37186 let isCodeGenOnly = 1;
37187 let DecoderNamespace = "EXT_mmvec";
37189 def V6_vpopcounth : HInst<
37190 (outs HvxVR:$Vd32),
37191 (ins HvxVR:$Vu32),
37192 "$Vd32.h = vpopcount($Vu32.h)",
37193 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
37194 let Inst{7-5} = 0b110;
37195 let Inst{13-13} = 0b0;
37196 let Inst{31-16} = 0b0001111000000010;
37197 let hasNewValue = 1;
37198 let opNewValue = 0;
37199 let isCVI = 1;
37200 let DecoderNamespace = "EXT_mmvec";
37202 def V6_vpopcounth_alt : HInst<
37203 (outs HvxVR:$Vd32),
37204 (ins HvxVR:$Vu32),
37205 "$Vd32 = vpopcounth($Vu32)",
37206 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37207 let hasNewValue = 1;
37208 let opNewValue = 0;
37209 let isCVI = 1;
37210 let isPseudo = 1;
37211 let isCodeGenOnly = 1;
37212 let DecoderNamespace = "EXT_mmvec";
37214 def V6_vprefixqb : HInst<
37215 (outs HvxVR:$Vd32),
37216 (ins HvxQR:$Qv4),
37217 "$Vd32.b = prefixsum($Qv4)",
37218 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37219 let Inst{13-5} = 0b100000010;
37220 let Inst{21-16} = 0b000011;
37221 let Inst{31-24} = 0b00011110;
37222 let hasNewValue = 1;
37223 let opNewValue = 0;
37224 let isCVI = 1;
37225 let DecoderNamespace = "EXT_mmvec";
37227 def V6_vprefixqh : HInst<
37228 (outs HvxVR:$Vd32),
37229 (ins HvxQR:$Qv4),
37230 "$Vd32.h = prefixsum($Qv4)",
37231 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37232 let Inst{13-5} = 0b100001010;
37233 let Inst{21-16} = 0b000011;
37234 let Inst{31-24} = 0b00011110;
37235 let hasNewValue = 1;
37236 let opNewValue = 0;
37237 let isCVI = 1;
37238 let DecoderNamespace = "EXT_mmvec";
37240 def V6_vprefixqw : HInst<
37241 (outs HvxVR:$Vd32),
37242 (ins HvxQR:$Qv4),
37243 "$Vd32.w = prefixsum($Qv4)",
37244 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
37245 let Inst{13-5} = 0b100010010;
37246 let Inst{21-16} = 0b000011;
37247 let Inst{31-24} = 0b00011110;
37248 let hasNewValue = 1;
37249 let opNewValue = 0;
37250 let isCVI = 1;
37251 let DecoderNamespace = "EXT_mmvec";
37253 def V6_vrdelta : HInst<
37254 (outs HvxVR:$Vd32),
37255 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37256 "$Vd32 = vrdelta($Vu32,$Vv32)",
37257 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
37258 let Inst{7-5} = 0b011;
37259 let Inst{13-13} = 0b0;
37260 let Inst{31-21} = 0b00011111001;
37261 let hasNewValue = 1;
37262 let opNewValue = 0;
37263 let isCVI = 1;
37264 let DecoderNamespace = "EXT_mmvec";
37266 def V6_vrmpybub_rtt : HInst<
37267 (outs HvxWR:$Vdd32),
37268 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37269 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
37270 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
37271 let Inst{7-5} = 0b101;
37272 let Inst{13-13} = 0b0;
37273 let Inst{31-21} = 0b00011001110;
37274 let hasNewValue = 1;
37275 let opNewValue = 0;
37276 let isCVI = 1;
37277 let DecoderNamespace = "EXT_mmvec";
37279 def V6_vrmpybub_rtt_acc : HInst<
37280 (outs HvxWR:$Vxx32),
37281 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37282 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
37283 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
37284 let Inst{7-5} = 0b000;
37285 let Inst{13-13} = 0b1;
37286 let Inst{31-21} = 0b00011001101;
37287 let hasNewValue = 1;
37288 let opNewValue = 0;
37289 let isAccumulator = 1;
37290 let isCVI = 1;
37291 let DecoderNamespace = "EXT_mmvec";
37292 let Constraints = "$Vxx32 = $Vxx32in";
37294 def V6_vrmpybub_rtt_acc_alt : HInst<
37295 (outs HvxWR:$Vxx32),
37296 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37297 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
37298 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37299 let hasNewValue = 1;
37300 let opNewValue = 0;
37301 let isAccumulator = 1;
37302 let isCVI = 1;
37303 let isPseudo = 1;
37304 let isCodeGenOnly = 1;
37305 let DecoderNamespace = "EXT_mmvec";
37306 let Constraints = "$Vxx32 = $Vxx32in";
37308 def V6_vrmpybub_rtt_alt : HInst<
37309 (outs HvxWR:$Vdd32),
37310 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37311 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
37312 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37313 let hasNewValue = 1;
37314 let opNewValue = 0;
37315 let isCVI = 1;
37316 let isPseudo = 1;
37317 let isCodeGenOnly = 1;
37318 let DecoderNamespace = "EXT_mmvec";
37320 def V6_vrmpybus : HInst<
37321 (outs HvxVR:$Vd32),
37322 (ins HvxVR:$Vu32, IntRegs:$Rt32),
37323 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
37324 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
37325 let Inst{7-5} = 0b100;
37326 let Inst{13-13} = 0b0;
37327 let Inst{31-21} = 0b00011001000;
37328 let hasNewValue = 1;
37329 let opNewValue = 0;
37330 let isCVI = 1;
37331 let DecoderNamespace = "EXT_mmvec";
37333 def V6_vrmpybus_acc : HInst<
37334 (outs HvxVR:$Vx32),
37335 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37336 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
37337 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
37338 let Inst{7-5} = 0b101;
37339 let Inst{13-13} = 0b1;
37340 let Inst{31-21} = 0b00011001000;
37341 let hasNewValue = 1;
37342 let opNewValue = 0;
37343 let isAccumulator = 1;
37344 let isCVI = 1;
37345 let DecoderNamespace = "EXT_mmvec";
37346 let Constraints = "$Vx32 = $Vx32in";
37348 def V6_vrmpybus_acc_alt : HInst<
37349 (outs HvxVR:$Vx32),
37350 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37351 "$Vx32 += vrmpybus($Vu32,$Rt32)",
37352 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37353 let hasNewValue = 1;
37354 let opNewValue = 0;
37355 let isAccumulator = 1;
37356 let isCVI = 1;
37357 let isPseudo = 1;
37358 let isCodeGenOnly = 1;
37359 let DecoderNamespace = "EXT_mmvec";
37360 let Constraints = "$Vx32 = $Vx32in";
37362 def V6_vrmpybus_alt : HInst<
37363 (outs HvxVR:$Vd32),
37364 (ins HvxVR:$Vu32, IntRegs:$Rt32),
37365 "$Vd32 = vrmpybus($Vu32,$Rt32)",
37366 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37367 let hasNewValue = 1;
37368 let opNewValue = 0;
37369 let isCVI = 1;
37370 let isPseudo = 1;
37371 let isCodeGenOnly = 1;
37372 let DecoderNamespace = "EXT_mmvec";
37374 def V6_vrmpybusi : HInst<
37375 (outs HvxWR:$Vdd32),
37376 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37377 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
37378 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37379 let Inst{7-6} = 0b10;
37380 let Inst{13-13} = 0b0;
37381 let Inst{31-21} = 0b00011001010;
37382 let hasNewValue = 1;
37383 let opNewValue = 0;
37384 let isCVI = 1;
37385 let DecoderNamespace = "EXT_mmvec";
37387 def V6_vrmpybusi_acc : HInst<
37388 (outs HvxWR:$Vxx32),
37389 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37390 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
37391 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37392 let Inst{7-6} = 0b10;
37393 let Inst{13-13} = 0b1;
37394 let Inst{31-21} = 0b00011001010;
37395 let hasNewValue = 1;
37396 let opNewValue = 0;
37397 let isAccumulator = 1;
37398 let isCVI = 1;
37399 let DecoderNamespace = "EXT_mmvec";
37400 let Constraints = "$Vxx32 = $Vxx32in";
37402 def V6_vrmpybusi_acc_alt : HInst<
37403 (outs HvxWR:$Vxx32),
37404 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37405 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
37406 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37407 let hasNewValue = 1;
37408 let opNewValue = 0;
37409 let isAccumulator = 1;
37410 let isCVI = 1;
37411 let isPseudo = 1;
37412 let isCodeGenOnly = 1;
37413 let DecoderNamespace = "EXT_mmvec";
37414 let Constraints = "$Vxx32 = $Vxx32in";
37416 def V6_vrmpybusi_alt : HInst<
37417 (outs HvxWR:$Vdd32),
37418 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37419 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
37420 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37421 let hasNewValue = 1;
37422 let opNewValue = 0;
37423 let isCVI = 1;
37424 let isPseudo = 1;
37425 let isCodeGenOnly = 1;
37426 let DecoderNamespace = "EXT_mmvec";
37428 def V6_vrmpybusv : HInst<
37429 (outs HvxVR:$Vd32),
37430 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37431 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
37432 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37433 let Inst{7-5} = 0b010;
37434 let Inst{13-13} = 0b0;
37435 let Inst{31-21} = 0b00011100000;
37436 let hasNewValue = 1;
37437 let opNewValue = 0;
37438 let isCVI = 1;
37439 let DecoderNamespace = "EXT_mmvec";
37441 def V6_vrmpybusv_acc : HInst<
37442 (outs HvxVR:$Vx32),
37443 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37444 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
37445 tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37446 let Inst{7-5} = 0b010;
37447 let Inst{13-13} = 0b1;
37448 let Inst{31-21} = 0b00011100000;
37449 let hasNewValue = 1;
37450 let opNewValue = 0;
37451 let isAccumulator = 1;
37452 let isCVI = 1;
37453 let DecoderNamespace = "EXT_mmvec";
37454 let Constraints = "$Vx32 = $Vx32in";
37456 def V6_vrmpybusv_acc_alt : HInst<
37457 (outs HvxVR:$Vx32),
37458 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37459 "$Vx32 += vrmpybus($Vu32,$Vv32)",
37460 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37461 let hasNewValue = 1;
37462 let opNewValue = 0;
37463 let isAccumulator = 1;
37464 let isCVI = 1;
37465 let isPseudo = 1;
37466 let isCodeGenOnly = 1;
37467 let DecoderNamespace = "EXT_mmvec";
37468 let Constraints = "$Vx32 = $Vx32in";
37470 def V6_vrmpybusv_alt : HInst<
37471 (outs HvxVR:$Vd32),
37472 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37473 "$Vd32 = vrmpybus($Vu32,$Vv32)",
37474 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37475 let hasNewValue = 1;
37476 let opNewValue = 0;
37477 let isCVI = 1;
37478 let isPseudo = 1;
37479 let isCodeGenOnly = 1;
37480 let DecoderNamespace = "EXT_mmvec";
37482 def V6_vrmpybv : HInst<
37483 (outs HvxVR:$Vd32),
37484 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37485 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
37486 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37487 let Inst{7-5} = 0b001;
37488 let Inst{13-13} = 0b0;
37489 let Inst{31-21} = 0b00011100000;
37490 let hasNewValue = 1;
37491 let opNewValue = 0;
37492 let isCVI = 1;
37493 let DecoderNamespace = "EXT_mmvec";
37495 def V6_vrmpybv_acc : HInst<
37496 (outs HvxVR:$Vx32),
37497 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37498 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
37499 tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37500 let Inst{7-5} = 0b001;
37501 let Inst{13-13} = 0b1;
37502 let Inst{31-21} = 0b00011100000;
37503 let hasNewValue = 1;
37504 let opNewValue = 0;
37505 let isAccumulator = 1;
37506 let isCVI = 1;
37507 let DecoderNamespace = "EXT_mmvec";
37508 let Constraints = "$Vx32 = $Vx32in";
37510 def V6_vrmpybv_acc_alt : HInst<
37511 (outs HvxVR:$Vx32),
37512 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37513 "$Vx32 += vrmpyb($Vu32,$Vv32)",
37514 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37515 let hasNewValue = 1;
37516 let opNewValue = 0;
37517 let isAccumulator = 1;
37518 let isCVI = 1;
37519 let isPseudo = 1;
37520 let isCodeGenOnly = 1;
37521 let DecoderNamespace = "EXT_mmvec";
37522 let Constraints = "$Vx32 = $Vx32in";
37524 def V6_vrmpybv_alt : HInst<
37525 (outs HvxVR:$Vd32),
37526 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37527 "$Vd32 = vrmpyb($Vu32,$Vv32)",
37528 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37529 let hasNewValue = 1;
37530 let opNewValue = 0;
37531 let isCVI = 1;
37532 let isPseudo = 1;
37533 let isCodeGenOnly = 1;
37534 let DecoderNamespace = "EXT_mmvec";
37536 def V6_vrmpyub : HInst<
37537 (outs HvxVR:$Vd32),
37538 (ins HvxVR:$Vu32, IntRegs:$Rt32),
37539 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
37540 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
37541 let Inst{7-5} = 0b011;
37542 let Inst{13-13} = 0b0;
37543 let Inst{31-21} = 0b00011001000;
37544 let hasNewValue = 1;
37545 let opNewValue = 0;
37546 let isCVI = 1;
37547 let DecoderNamespace = "EXT_mmvec";
37549 def V6_vrmpyub_acc : HInst<
37550 (outs HvxVR:$Vx32),
37551 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37552 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
37553 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
37554 let Inst{7-5} = 0b100;
37555 let Inst{13-13} = 0b1;
37556 let Inst{31-21} = 0b00011001000;
37557 let hasNewValue = 1;
37558 let opNewValue = 0;
37559 let isAccumulator = 1;
37560 let isCVI = 1;
37561 let DecoderNamespace = "EXT_mmvec";
37562 let Constraints = "$Vx32 = $Vx32in";
37564 def V6_vrmpyub_acc_alt : HInst<
37565 (outs HvxVR:$Vx32),
37566 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
37567 "$Vx32 += vrmpyub($Vu32,$Rt32)",
37568 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37569 let hasNewValue = 1;
37570 let opNewValue = 0;
37571 let isAccumulator = 1;
37572 let isCVI = 1;
37573 let isPseudo = 1;
37574 let isCodeGenOnly = 1;
37575 let DecoderNamespace = "EXT_mmvec";
37576 let Constraints = "$Vx32 = $Vx32in";
37578 def V6_vrmpyub_alt : HInst<
37579 (outs HvxVR:$Vd32),
37580 (ins HvxVR:$Vu32, IntRegs:$Rt32),
37581 "$Vd32 = vrmpyub($Vu32,$Rt32)",
37582 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37583 let hasNewValue = 1;
37584 let opNewValue = 0;
37585 let isCVI = 1;
37586 let isPseudo = 1;
37587 let isCodeGenOnly = 1;
37588 let DecoderNamespace = "EXT_mmvec";
37590 def V6_vrmpyub_rtt : HInst<
37591 (outs HvxWR:$Vdd32),
37592 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37593 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37594 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
37595 let Inst{7-5} = 0b100;
37596 let Inst{13-13} = 0b0;
37597 let Inst{31-21} = 0b00011001110;
37598 let hasNewValue = 1;
37599 let opNewValue = 0;
37600 let isCVI = 1;
37601 let DecoderNamespace = "EXT_mmvec";
37603 def V6_vrmpyub_rtt_acc : HInst<
37604 (outs HvxWR:$Vxx32),
37605 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37606 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37607 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
37608 let Inst{7-5} = 0b111;
37609 let Inst{13-13} = 0b1;
37610 let Inst{31-21} = 0b00011001101;
37611 let hasNewValue = 1;
37612 let opNewValue = 0;
37613 let isAccumulator = 1;
37614 let isCVI = 1;
37615 let DecoderNamespace = "EXT_mmvec";
37616 let Constraints = "$Vxx32 = $Vxx32in";
37618 def V6_vrmpyub_rtt_acc_alt : HInst<
37619 (outs HvxWR:$Vxx32),
37620 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
37621 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
37622 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37623 let hasNewValue = 1;
37624 let opNewValue = 0;
37625 let isAccumulator = 1;
37626 let isCVI = 1;
37627 let isPseudo = 1;
37628 let isCodeGenOnly = 1;
37629 let DecoderNamespace = "EXT_mmvec";
37630 let Constraints = "$Vxx32 = $Vxx32in";
37632 def V6_vrmpyub_rtt_alt : HInst<
37633 (outs HvxWR:$Vdd32),
37634 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
37635 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
37636 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
37637 let hasNewValue = 1;
37638 let opNewValue = 0;
37639 let isCVI = 1;
37640 let isPseudo = 1;
37641 let isCodeGenOnly = 1;
37642 let DecoderNamespace = "EXT_mmvec";
37644 def V6_vrmpyubi : HInst<
37645 (outs HvxWR:$Vdd32),
37646 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37647 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37648 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
37649 let Inst{7-6} = 0b11;
37650 let Inst{13-13} = 0b0;
37651 let Inst{31-21} = 0b00011001101;
37652 let hasNewValue = 1;
37653 let opNewValue = 0;
37654 let isCVI = 1;
37655 let DecoderNamespace = "EXT_mmvec";
37657 def V6_vrmpyubi_acc : HInst<
37658 (outs HvxWR:$Vxx32),
37659 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37660 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
37661 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
37662 let Inst{7-6} = 0b11;
37663 let Inst{13-13} = 0b1;
37664 let Inst{31-21} = 0b00011001011;
37665 let hasNewValue = 1;
37666 let opNewValue = 0;
37667 let isAccumulator = 1;
37668 let isCVI = 1;
37669 let DecoderNamespace = "EXT_mmvec";
37670 let Constraints = "$Vxx32 = $Vxx32in";
37672 def V6_vrmpyubi_acc_alt : HInst<
37673 (outs HvxWR:$Vxx32),
37674 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37675 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
37676 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37677 let hasNewValue = 1;
37678 let opNewValue = 0;
37679 let isAccumulator = 1;
37680 let isCVI = 1;
37681 let isPseudo = 1;
37682 let isCodeGenOnly = 1;
37683 let DecoderNamespace = "EXT_mmvec";
37684 let Constraints = "$Vxx32 = $Vxx32in";
37686 def V6_vrmpyubi_alt : HInst<
37687 (outs HvxWR:$Vdd32),
37688 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
37689 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
37690 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37691 let hasNewValue = 1;
37692 let opNewValue = 0;
37693 let isCVI = 1;
37694 let isPseudo = 1;
37695 let isCodeGenOnly = 1;
37696 let DecoderNamespace = "EXT_mmvec";
37698 def V6_vrmpyubv : HInst<
37699 (outs HvxVR:$Vd32),
37700 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37701 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
37702 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
37703 let Inst{7-5} = 0b000;
37704 let Inst{13-13} = 0b0;
37705 let Inst{31-21} = 0b00011100000;
37706 let hasNewValue = 1;
37707 let opNewValue = 0;
37708 let isCVI = 1;
37709 let DecoderNamespace = "EXT_mmvec";
37711 def V6_vrmpyubv_acc : HInst<
37712 (outs HvxVR:$Vx32),
37713 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37714 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
37715 tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> {
37716 let Inst{7-5} = 0b000;
37717 let Inst{13-13} = 0b1;
37718 let Inst{31-21} = 0b00011100000;
37719 let hasNewValue = 1;
37720 let opNewValue = 0;
37721 let isAccumulator = 1;
37722 let isCVI = 1;
37723 let DecoderNamespace = "EXT_mmvec";
37724 let Constraints = "$Vx32 = $Vx32in";
37726 def V6_vrmpyubv_acc_alt : HInst<
37727 (outs HvxVR:$Vx32),
37728 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
37729 "$Vx32 += vrmpyub($Vu32,$Vv32)",
37730 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37731 let hasNewValue = 1;
37732 let opNewValue = 0;
37733 let isAccumulator = 1;
37734 let isCVI = 1;
37735 let isPseudo = 1;
37736 let isCodeGenOnly = 1;
37737 let DecoderNamespace = "EXT_mmvec";
37738 let Constraints = "$Vx32 = $Vx32in";
37740 def V6_vrmpyubv_alt : HInst<
37741 (outs HvxVR:$Vd32),
37742 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37743 "$Vd32 = vrmpyub($Vu32,$Vv32)",
37744 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37745 let hasNewValue = 1;
37746 let opNewValue = 0;
37747 let isCVI = 1;
37748 let isPseudo = 1;
37749 let isCodeGenOnly = 1;
37750 let DecoderNamespace = "EXT_mmvec";
37752 def V6_vrmpyzbb_rt : HInst<
37753 (outs HvxVQR:$Vdddd32),
37754 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37755 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
37756 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37757 let Inst{7-5} = 0b000;
37758 let Inst{13-13} = 0b0;
37759 let Inst{31-19} = 0b0001100111101;
37760 let hasNewValue = 1;
37761 let opNewValue = 0;
37762 let isCVI = 1;
37763 let DecoderNamespace = "EXT_mmvec";
37765 def V6_vrmpyzbb_rt_acc : HInst<
37766 (outs HvxVQR:$Vyyyy32),
37767 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37768 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
37769 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37770 let Inst{7-5} = 0b010;
37771 let Inst{13-13} = 0b1;
37772 let Inst{31-19} = 0b0001100111000;
37773 let hasNewValue = 1;
37774 let opNewValue = 0;
37775 let isAccumulator = 1;
37776 let isCVI = 1;
37777 let DecoderNamespace = "EXT_mmvec";
37778 let Constraints = "$Vyyyy32 = $Vyyyy32in";
37780 def V6_vrmpyzbb_rx : HInst<
37781 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37782 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37783 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
37784 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37785 let Inst{7-5} = 0b000;
37786 let Inst{13-13} = 0b0;
37787 let Inst{31-19} = 0b0001100111100;
37788 let hasNewValue = 1;
37789 let opNewValue = 0;
37790 let isCVI = 1;
37791 let DecoderNamespace = "EXT_mmvec";
37792 let Constraints = "$Rx8 = $Rx8in";
37794 def V6_vrmpyzbb_rx_acc : HInst<
37795 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37796 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37797 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
37798 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37799 let Inst{7-5} = 0b010;
37800 let Inst{13-13} = 0b1;
37801 let Inst{31-19} = 0b0001100111001;
37802 let hasNewValue = 1;
37803 let opNewValue = 0;
37804 let isAccumulator = 1;
37805 let isCVI = 1;
37806 let DecoderNamespace = "EXT_mmvec";
37807 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37809 def V6_vrmpyzbub_rt : HInst<
37810 (outs HvxVQR:$Vdddd32),
37811 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37812 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
37813 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37814 let Inst{7-5} = 0b010;
37815 let Inst{13-13} = 0b0;
37816 let Inst{31-19} = 0b0001100111111;
37817 let hasNewValue = 1;
37818 let opNewValue = 0;
37819 let isCVI = 1;
37820 let DecoderNamespace = "EXT_mmvec";
37822 def V6_vrmpyzbub_rt_acc : HInst<
37823 (outs HvxVQR:$Vyyyy32),
37824 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37825 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
37826 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37827 let Inst{7-5} = 0b001;
37828 let Inst{13-13} = 0b1;
37829 let Inst{31-19} = 0b0001100111010;
37830 let hasNewValue = 1;
37831 let opNewValue = 0;
37832 let isAccumulator = 1;
37833 let isCVI = 1;
37834 let DecoderNamespace = "EXT_mmvec";
37835 let Constraints = "$Vyyyy32 = $Vyyyy32in";
37837 def V6_vrmpyzbub_rx : HInst<
37838 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37839 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37840 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
37841 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37842 let Inst{7-5} = 0b010;
37843 let Inst{13-13} = 0b0;
37844 let Inst{31-19} = 0b0001100111110;
37845 let hasNewValue = 1;
37846 let opNewValue = 0;
37847 let isCVI = 1;
37848 let DecoderNamespace = "EXT_mmvec";
37849 let Constraints = "$Rx8 = $Rx8in";
37851 def V6_vrmpyzbub_rx_acc : HInst<
37852 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37853 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37854 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
37855 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37856 let Inst{7-5} = 0b001;
37857 let Inst{13-13} = 0b1;
37858 let Inst{31-19} = 0b0001100111011;
37859 let hasNewValue = 1;
37860 let opNewValue = 0;
37861 let isAccumulator = 1;
37862 let isCVI = 1;
37863 let DecoderNamespace = "EXT_mmvec";
37864 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37866 def V6_vrmpyzcb_rt : HInst<
37867 (outs HvxVQR:$Vdddd32),
37868 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37869 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
37870 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37871 let Inst{7-5} = 0b001;
37872 let Inst{13-13} = 0b0;
37873 let Inst{31-19} = 0b0001100111101;
37874 let hasNewValue = 1;
37875 let opNewValue = 0;
37876 let isCVI = 1;
37877 let DecoderNamespace = "EXT_mmvec";
37879 def V6_vrmpyzcb_rt_acc : HInst<
37880 (outs HvxVQR:$Vyyyy32),
37881 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37882 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
37883 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37884 let Inst{7-5} = 0b011;
37885 let Inst{13-13} = 0b1;
37886 let Inst{31-19} = 0b0001100111000;
37887 let hasNewValue = 1;
37888 let opNewValue = 0;
37889 let isAccumulator = 1;
37890 let isCVI = 1;
37891 let DecoderNamespace = "EXT_mmvec";
37892 let Constraints = "$Vyyyy32 = $Vyyyy32in";
37894 def V6_vrmpyzcb_rx : HInst<
37895 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37896 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37897 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
37898 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37899 let Inst{7-5} = 0b001;
37900 let Inst{13-13} = 0b0;
37901 let Inst{31-19} = 0b0001100111100;
37902 let hasNewValue = 1;
37903 let opNewValue = 0;
37904 let isCVI = 1;
37905 let DecoderNamespace = "EXT_mmvec";
37906 let Constraints = "$Rx8 = $Rx8in";
37908 def V6_vrmpyzcb_rx_acc : HInst<
37909 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37910 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37911 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
37912 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37913 let Inst{7-5} = 0b011;
37914 let Inst{13-13} = 0b1;
37915 let Inst{31-19} = 0b0001100111001;
37916 let hasNewValue = 1;
37917 let opNewValue = 0;
37918 let isAccumulator = 1;
37919 let isCVI = 1;
37920 let DecoderNamespace = "EXT_mmvec";
37921 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37923 def V6_vrmpyzcbs_rt : HInst<
37924 (outs HvxVQR:$Vdddd32),
37925 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37926 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
37927 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37928 let Inst{7-5} = 0b010;
37929 let Inst{13-13} = 0b0;
37930 let Inst{31-19} = 0b0001100111101;
37931 let hasNewValue = 1;
37932 let opNewValue = 0;
37933 let isCVI = 1;
37934 let DecoderNamespace = "EXT_mmvec";
37936 def V6_vrmpyzcbs_rt_acc : HInst<
37937 (outs HvxVQR:$Vyyyy32),
37938 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37939 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
37940 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37941 let Inst{7-5} = 0b001;
37942 let Inst{13-13} = 0b1;
37943 let Inst{31-19} = 0b0001100111000;
37944 let hasNewValue = 1;
37945 let opNewValue = 0;
37946 let isAccumulator = 1;
37947 let isCVI = 1;
37948 let DecoderNamespace = "EXT_mmvec";
37949 let Constraints = "$Vyyyy32 = $Vyyyy32in";
37951 def V6_vrmpyzcbs_rx : HInst<
37952 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
37953 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37954 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
37955 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
37956 let Inst{7-5} = 0b010;
37957 let Inst{13-13} = 0b0;
37958 let Inst{31-19} = 0b0001100111100;
37959 let hasNewValue = 1;
37960 let opNewValue = 0;
37961 let isCVI = 1;
37962 let DecoderNamespace = "EXT_mmvec";
37963 let Constraints = "$Rx8 = $Rx8in";
37965 def V6_vrmpyzcbs_rx_acc : HInst<
37966 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
37967 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
37968 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
37969 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
37970 let Inst{7-5} = 0b001;
37971 let Inst{13-13} = 0b1;
37972 let Inst{31-19} = 0b0001100111001;
37973 let hasNewValue = 1;
37974 let opNewValue = 0;
37975 let isAccumulator = 1;
37976 let isCVI = 1;
37977 let DecoderNamespace = "EXT_mmvec";
37978 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
37980 def V6_vrmpyznb_rt : HInst<
37981 (outs HvxVQR:$Vdddd32),
37982 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
37983 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
37984 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
37985 let Inst{7-5} = 0b000;
37986 let Inst{13-13} = 0b0;
37987 let Inst{31-19} = 0b0001100111111;
37988 let hasNewValue = 1;
37989 let opNewValue = 0;
37990 let isCVI = 1;
37991 let DecoderNamespace = "EXT_mmvec";
37993 def V6_vrmpyznb_rt_acc : HInst<
37994 (outs HvxVQR:$Vyyyy32),
37995 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
37996 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
37997 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
37998 let Inst{7-5} = 0b010;
37999 let Inst{13-13} = 0b1;
38000 let Inst{31-19} = 0b0001100111010;
38001 let hasNewValue = 1;
38002 let opNewValue = 0;
38003 let isAccumulator = 1;
38004 let isCVI = 1;
38005 let DecoderNamespace = "EXT_mmvec";
38006 let Constraints = "$Vyyyy32 = $Vyyyy32in";
38008 def V6_vrmpyznb_rx : HInst<
38009 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
38010 (ins HvxVR:$Vu32, IntRegsLow8:$Rx8in),
38011 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
38012 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
38013 let Inst{7-5} = 0b000;
38014 let Inst{13-13} = 0b0;
38015 let Inst{31-19} = 0b0001100111110;
38016 let hasNewValue = 1;
38017 let opNewValue = 0;
38018 let isCVI = 1;
38019 let DecoderNamespace = "EXT_mmvec";
38020 let Constraints = "$Rx8 = $Rx8in";
38022 def V6_vrmpyznb_rx_acc : HInst<
38023 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
38024 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in),
38025 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
38026 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
38027 let Inst{7-5} = 0b010;
38028 let Inst{13-13} = 0b1;
38029 let Inst{31-19} = 0b0001100111011;
38030 let hasNewValue = 1;
38031 let opNewValue = 0;
38032 let isAccumulator = 1;
38033 let isCVI = 1;
38034 let DecoderNamespace = "EXT_mmvec";
38035 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
38037 def V6_vror : HInst<
38038 (outs HvxVR:$Vd32),
38039 (ins HvxVR:$Vu32, IntRegs:$Rt32),
38040 "$Vd32 = vror($Vu32,$Rt32)",
38041 tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
38042 let Inst{7-5} = 0b001;
38043 let Inst{13-13} = 0b0;
38044 let Inst{31-21} = 0b00011001011;
38045 let hasNewValue = 1;
38046 let opNewValue = 0;
38047 let isCVI = 1;
38048 let DecoderNamespace = "EXT_mmvec";
38050 def V6_vrotr : HInst<
38051 (outs HvxVR:$Vd32),
38052 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38053 "$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
38054 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
38055 let Inst{7-5} = 0b111;
38056 let Inst{13-13} = 0b1;
38057 let Inst{31-21} = 0b00011010100;
38058 let hasNewValue = 1;
38059 let opNewValue = 0;
38060 let isCVI = 1;
38061 let DecoderNamespace = "EXT_mmvec";
38063 def V6_vrotr_alt : HInst<
38064 (outs HvxVR:$Vd32),
38065 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38066 "$Vd32 = vrotr($Vu32,$Vv32)",
38067 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
38068 let hasNewValue = 1;
38069 let opNewValue = 0;
38070 let isCVI = 1;
38071 let isPseudo = 1;
38072 let isCodeGenOnly = 1;
38073 let DecoderNamespace = "EXT_mmvec";
38075 def V6_vroundhb : HInst<
38076 (outs HvxVR:$Vd32),
38077 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38078 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
38079 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38080 let Inst{7-5} = 0b110;
38081 let Inst{13-13} = 0b0;
38082 let Inst{31-21} = 0b00011111011;
38083 let hasNewValue = 1;
38084 let opNewValue = 0;
38085 let isCVI = 1;
38086 let DecoderNamespace = "EXT_mmvec";
38088 def V6_vroundhb_alt : HInst<
38089 (outs HvxVR:$Vd32),
38090 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38091 "$Vd32 = vroundhb($Vu32,$Vv32):sat",
38092 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38093 let hasNewValue = 1;
38094 let opNewValue = 0;
38095 let isCVI = 1;
38096 let isPseudo = 1;
38097 let isCodeGenOnly = 1;
38098 let DecoderNamespace = "EXT_mmvec";
38100 def V6_vroundhub : HInst<
38101 (outs HvxVR:$Vd32),
38102 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38103 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
38104 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38105 let Inst{7-5} = 0b111;
38106 let Inst{13-13} = 0b0;
38107 let Inst{31-21} = 0b00011111011;
38108 let hasNewValue = 1;
38109 let opNewValue = 0;
38110 let isCVI = 1;
38111 let DecoderNamespace = "EXT_mmvec";
38113 def V6_vroundhub_alt : HInst<
38114 (outs HvxVR:$Vd32),
38115 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38116 "$Vd32 = vroundhub($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_vrounduhub : HInst<
38126 (outs HvxVR:$Vd32),
38127 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38128 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
38129 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
38130 let Inst{7-5} = 0b011;
38131 let Inst{13-13} = 0b0;
38132 let Inst{31-21} = 0b00011111111;
38133 let hasNewValue = 1;
38134 let opNewValue = 0;
38135 let isCVI = 1;
38136 let DecoderNamespace = "EXT_mmvec";
38138 def V6_vrounduhub_alt : HInst<
38139 (outs HvxVR:$Vd32),
38140 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38141 "$Vd32 = vrounduhub($Vu32,$Vv32):sat",
38142 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
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_vrounduwuh : HInst<
38151 (outs HvxVR:$Vd32),
38152 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38153 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
38154 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
38155 let Inst{7-5} = 0b100;
38156 let Inst{13-13} = 0b0;
38157 let Inst{31-21} = 0b00011111111;
38158 let hasNewValue = 1;
38159 let opNewValue = 0;
38160 let isCVI = 1;
38161 let DecoderNamespace = "EXT_mmvec";
38163 def V6_vrounduwuh_alt : HInst<
38164 (outs HvxVR:$Vd32),
38165 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38166 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
38167 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38168 let hasNewValue = 1;
38169 let opNewValue = 0;
38170 let isCVI = 1;
38171 let isPseudo = 1;
38172 let isCodeGenOnly = 1;
38173 let DecoderNamespace = "EXT_mmvec";
38175 def V6_vroundwh : HInst<
38176 (outs HvxVR:$Vd32),
38177 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38178 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
38179 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38180 let Inst{7-5} = 0b100;
38181 let Inst{13-13} = 0b0;
38182 let Inst{31-21} = 0b00011111011;
38183 let hasNewValue = 1;
38184 let opNewValue = 0;
38185 let isCVI = 1;
38186 let DecoderNamespace = "EXT_mmvec";
38188 def V6_vroundwh_alt : HInst<
38189 (outs HvxVR:$Vd32),
38190 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38191 "$Vd32 = vroundwh($Vu32,$Vv32):sat",
38192 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38193 let hasNewValue = 1;
38194 let opNewValue = 0;
38195 let isCVI = 1;
38196 let isPseudo = 1;
38197 let isCodeGenOnly = 1;
38198 let DecoderNamespace = "EXT_mmvec";
38200 def V6_vroundwuh : HInst<
38201 (outs HvxVR:$Vd32),
38202 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38203 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
38204 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
38205 let Inst{7-5} = 0b101;
38206 let Inst{13-13} = 0b0;
38207 let Inst{31-21} = 0b00011111011;
38208 let hasNewValue = 1;
38209 let opNewValue = 0;
38210 let isCVI = 1;
38211 let DecoderNamespace = "EXT_mmvec";
38213 def V6_vroundwuh_alt : HInst<
38214 (outs HvxVR:$Vd32),
38215 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38216 "$Vd32 = vroundwuh($Vu32,$Vv32):sat",
38217 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38218 let hasNewValue = 1;
38219 let opNewValue = 0;
38220 let isCVI = 1;
38221 let isPseudo = 1;
38222 let isCodeGenOnly = 1;
38223 let DecoderNamespace = "EXT_mmvec";
38225 def V6_vrsadubi : HInst<
38226 (outs HvxWR:$Vdd32),
38227 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38228 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
38229 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
38230 let Inst{7-6} = 0b11;
38231 let Inst{13-13} = 0b0;
38232 let Inst{31-21} = 0b00011001010;
38233 let hasNewValue = 1;
38234 let opNewValue = 0;
38235 let isCVI = 1;
38236 let DecoderNamespace = "EXT_mmvec";
38238 def V6_vrsadubi_acc : HInst<
38239 (outs HvxWR:$Vxx32),
38240 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38241 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
38242 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
38243 let Inst{7-6} = 0b11;
38244 let Inst{13-13} = 0b1;
38245 let Inst{31-21} = 0b00011001010;
38246 let hasNewValue = 1;
38247 let opNewValue = 0;
38248 let isAccumulator = 1;
38249 let isCVI = 1;
38250 let DecoderNamespace = "EXT_mmvec";
38251 let Constraints = "$Vxx32 = $Vxx32in";
38253 def V6_vrsadubi_acc_alt : HInst<
38254 (outs HvxWR:$Vxx32),
38255 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38256 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
38257 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38258 let hasNewValue = 1;
38259 let opNewValue = 0;
38260 let isAccumulator = 1;
38261 let isCVI = 1;
38262 let isPseudo = 1;
38263 let isCodeGenOnly = 1;
38264 let DecoderNamespace = "EXT_mmvec";
38265 let Constraints = "$Vxx32 = $Vxx32in";
38267 def V6_vrsadubi_alt : HInst<
38268 (outs HvxWR:$Vdd32),
38269 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
38270 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
38271 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38272 let hasNewValue = 1;
38273 let opNewValue = 0;
38274 let isCVI = 1;
38275 let isPseudo = 1;
38276 let isCodeGenOnly = 1;
38277 let DecoderNamespace = "EXT_mmvec";
38279 def V6_vsatdw : HInst<
38280 (outs HvxVR:$Vd32),
38281 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38282 "$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
38283 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
38284 let Inst{7-5} = 0b111;
38285 let Inst{13-13} = 0b1;
38286 let Inst{31-21} = 0b00011101100;
38287 let hasNewValue = 1;
38288 let opNewValue = 0;
38289 let isCVI = 1;
38290 let isHVXALU = 1;
38291 let isHVXALU2SRC = 1;
38292 let DecoderNamespace = "EXT_mmvec";
38294 def V6_vsathub : HInst<
38295 (outs HvxVR:$Vd32),
38296 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38297 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
38298 tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38299 let Inst{7-5} = 0b010;
38300 let Inst{13-13} = 0b0;
38301 let Inst{31-21} = 0b00011111011;
38302 let hasNewValue = 1;
38303 let opNewValue = 0;
38304 let isCVI = 1;
38305 let isHVXALU = 1;
38306 let isHVXALU2SRC = 1;
38307 let DecoderNamespace = "EXT_mmvec";
38309 def V6_vsathub_alt : HInst<
38310 (outs HvxVR:$Vd32),
38311 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38312 "$Vd32 = vsathub($Vu32,$Vv32)",
38313 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38314 let hasNewValue = 1;
38315 let opNewValue = 0;
38316 let isCVI = 1;
38317 let isPseudo = 1;
38318 let isCodeGenOnly = 1;
38319 let DecoderNamespace = "EXT_mmvec";
38321 def V6_vsatuwuh : HInst<
38322 (outs HvxVR:$Vd32),
38323 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38324 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
38325 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
38326 let Inst{7-5} = 0b110;
38327 let Inst{13-13} = 0b0;
38328 let Inst{31-21} = 0b00011111001;
38329 let hasNewValue = 1;
38330 let opNewValue = 0;
38331 let isCVI = 1;
38332 let isHVXALU = 1;
38333 let isHVXALU2SRC = 1;
38334 let DecoderNamespace = "EXT_mmvec";
38336 def V6_vsatuwuh_alt : HInst<
38337 (outs HvxVR:$Vd32),
38338 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38339 "$Vd32 = vsatuwuh($Vu32,$Vv32)",
38340 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
38341 let hasNewValue = 1;
38342 let opNewValue = 0;
38343 let isCVI = 1;
38344 let isPseudo = 1;
38345 let isCodeGenOnly = 1;
38346 let DecoderNamespace = "EXT_mmvec";
38348 def V6_vsatwh : HInst<
38349 (outs HvxVR:$Vd32),
38350 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38351 "$Vd32.h = vsat($Vu32.w,$Vv32.w)",
38352 tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38353 let Inst{7-5} = 0b011;
38354 let Inst{13-13} = 0b0;
38355 let Inst{31-21} = 0b00011111011;
38356 let hasNewValue = 1;
38357 let opNewValue = 0;
38358 let isCVI = 1;
38359 let isHVXALU = 1;
38360 let isHVXALU2SRC = 1;
38361 let DecoderNamespace = "EXT_mmvec";
38363 def V6_vsatwh_alt : HInst<
38364 (outs HvxVR:$Vd32),
38365 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38366 "$Vd32 = vsatwh($Vu32,$Vv32)",
38367 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38368 let hasNewValue = 1;
38369 let opNewValue = 0;
38370 let isCVI = 1;
38371 let isPseudo = 1;
38372 let isCodeGenOnly = 1;
38373 let DecoderNamespace = "EXT_mmvec";
38375 def V6_vsb : HInst<
38376 (outs HvxWR:$Vdd32),
38377 (ins HvxVR:$Vu32),
38378 "$Vdd32.h = vsxt($Vu32.b)",
38379 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38380 let Inst{7-5} = 0b011;
38381 let Inst{13-13} = 0b0;
38382 let Inst{31-16} = 0b0001111000000010;
38383 let hasNewValue = 1;
38384 let opNewValue = 0;
38385 let isCVI = 1;
38386 let DecoderNamespace = "EXT_mmvec";
38388 def V6_vsb_alt : HInst<
38389 (outs HvxWR:$Vdd32),
38390 (ins HvxVR:$Vu32),
38391 "$Vdd32 = vsxtb($Vu32)",
38392 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38393 let hasNewValue = 1;
38394 let opNewValue = 0;
38395 let isCVI = 1;
38396 let isPseudo = 1;
38397 let isCodeGenOnly = 1;
38398 let DecoderNamespace = "EXT_mmvec";
38400 def V6_vscattermh : HInst<
38401 (outs),
38402 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38403 "vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
38404 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38405 let Inst{7-5} = 0b001;
38406 let Inst{31-21} = 0b00101111001;
38407 let accessSize = HalfWordAccess;
38408 let isCVI = 1;
38409 let isHVXALU = 1;
38410 let isHVXALU2SRC = 1;
38411 let mayStore = 1;
38412 let DecoderNamespace = "EXT_mmvec";
38414 def V6_vscattermh_add : HInst<
38415 (outs),
38416 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38417 "vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
38418 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38419 let Inst{7-5} = 0b101;
38420 let Inst{31-21} = 0b00101111001;
38421 let accessSize = HalfWordAccess;
38422 let isAccumulator = 1;
38423 let isCVI = 1;
38424 let isHVXALU = 1;
38425 let isHVXALU2SRC = 1;
38426 let mayStore = 1;
38427 let DecoderNamespace = "EXT_mmvec";
38429 def V6_vscattermh_add_alt : HInst<
38430 (outs),
38431 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38432 "vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
38433 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38434 let isAccumulator = 1;
38435 let isCVI = 1;
38436 let isPseudo = 1;
38437 let isCodeGenOnly = 1;
38438 let DecoderNamespace = "EXT_mmvec";
38440 def V6_vscattermh_alt : HInst<
38441 (outs),
38442 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38443 "vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
38444 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38445 let isCVI = 1;
38446 let isPseudo = 1;
38447 let isCodeGenOnly = 1;
38448 let DecoderNamespace = "EXT_mmvec";
38450 def V6_vscattermhq : HInst<
38451 (outs),
38452 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38453 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
38454 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
38455 let Inst{7-7} = 0b1;
38456 let Inst{31-21} = 0b00101111100;
38457 let accessSize = HalfWordAccess;
38458 let isCVI = 1;
38459 let isHVXALU = 1;
38460 let isHVXALU2SRC = 1;
38461 let mayStore = 1;
38462 let DecoderNamespace = "EXT_mmvec";
38464 def V6_vscattermhq_alt : HInst<
38465 (outs),
38466 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38467 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
38468 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38469 let isCVI = 1;
38470 let isPseudo = 1;
38471 let isCodeGenOnly = 1;
38472 let DecoderNamespace = "EXT_mmvec";
38474 def V6_vscattermhw : HInst<
38475 (outs),
38476 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38477 "vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
38478 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
38479 let Inst{7-5} = 0b010;
38480 let Inst{31-21} = 0b00101111001;
38481 let accessSize = HalfWordAccess;
38482 let isCVI = 1;
38483 let mayStore = 1;
38484 let DecoderNamespace = "EXT_mmvec";
38486 def V6_vscattermhw_add : HInst<
38487 (outs),
38488 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38489 "vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
38490 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
38491 let Inst{7-5} = 0b110;
38492 let Inst{31-21} = 0b00101111001;
38493 let accessSize = HalfWordAccess;
38494 let isAccumulator = 1;
38495 let isCVI = 1;
38496 let mayStore = 1;
38497 let DecoderNamespace = "EXT_mmvec";
38499 def V6_vscattermhwq : HInst<
38500 (outs),
38501 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38502 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
38503 tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
38504 let Inst{7-7} = 0b0;
38505 let Inst{31-21} = 0b00101111101;
38506 let accessSize = HalfWordAccess;
38507 let isCVI = 1;
38508 let mayStore = 1;
38509 let DecoderNamespace = "EXT_mmvec";
38511 def V6_vscattermw : HInst<
38512 (outs),
38513 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38514 "vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
38515 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38516 let Inst{7-5} = 0b000;
38517 let Inst{31-21} = 0b00101111001;
38518 let accessSize = WordAccess;
38519 let isCVI = 1;
38520 let isHVXALU = 1;
38521 let isHVXALU2SRC = 1;
38522 let mayStore = 1;
38523 let DecoderNamespace = "EXT_mmvec";
38525 def V6_vscattermw_add : HInst<
38526 (outs),
38527 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38528 "vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
38529 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
38530 let Inst{7-5} = 0b100;
38531 let Inst{31-21} = 0b00101111001;
38532 let accessSize = WordAccess;
38533 let isAccumulator = 1;
38534 let isCVI = 1;
38535 let isHVXALU = 1;
38536 let isHVXALU2SRC = 1;
38537 let mayStore = 1;
38538 let DecoderNamespace = "EXT_mmvec";
38540 def V6_vscattermw_add_alt : HInst<
38541 (outs),
38542 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38543 "vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
38544 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38545 let isAccumulator = 1;
38546 let isCVI = 1;
38547 let isPseudo = 1;
38548 let isCodeGenOnly = 1;
38549 let DecoderNamespace = "EXT_mmvec";
38551 def V6_vscattermw_alt : HInst<
38552 (outs),
38553 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38554 "vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
38555 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38556 let isCVI = 1;
38557 let isPseudo = 1;
38558 let isCodeGenOnly = 1;
38559 let DecoderNamespace = "EXT_mmvec";
38561 def V6_vscattermwh_add_alt : HInst<
38562 (outs),
38563 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38564 "vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
38565 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38566 let isAccumulator = 1;
38567 let isCVI = 1;
38568 let isPseudo = 1;
38569 let isCodeGenOnly = 1;
38570 let DecoderNamespace = "EXT_mmvec";
38572 def V6_vscattermwh_alt : HInst<
38573 (outs),
38574 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38575 "vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
38576 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38577 let isCVI = 1;
38578 let isPseudo = 1;
38579 let isCodeGenOnly = 1;
38580 let DecoderNamespace = "EXT_mmvec";
38582 def V6_vscattermwhq_alt : HInst<
38583 (outs),
38584 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
38585 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
38586 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38587 let isCVI = 1;
38588 let isPseudo = 1;
38589 let isCodeGenOnly = 1;
38590 let DecoderNamespace = "EXT_mmvec";
38592 def V6_vscattermwq : HInst<
38593 (outs),
38594 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38595 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
38596 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
38597 let Inst{7-7} = 0b0;
38598 let Inst{31-21} = 0b00101111100;
38599 let accessSize = WordAccess;
38600 let isCVI = 1;
38601 let isHVXALU = 1;
38602 let isHVXALU2SRC = 1;
38603 let mayStore = 1;
38604 let DecoderNamespace = "EXT_mmvec";
38606 def V6_vscattermwq_alt : HInst<
38607 (outs),
38608 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
38609 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
38610 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
38611 let isCVI = 1;
38612 let isPseudo = 1;
38613 let isCodeGenOnly = 1;
38614 let DecoderNamespace = "EXT_mmvec";
38616 def V6_vsh : HInst<
38617 (outs HvxWR:$Vdd32),
38618 (ins HvxVR:$Vu32),
38619 "$Vdd32.w = vsxt($Vu32.h)",
38620 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
38621 let Inst{7-5} = 0b100;
38622 let Inst{13-13} = 0b0;
38623 let Inst{31-16} = 0b0001111000000010;
38624 let hasNewValue = 1;
38625 let opNewValue = 0;
38626 let isCVI = 1;
38627 let DecoderNamespace = "EXT_mmvec";
38629 def V6_vsh_alt : HInst<
38630 (outs HvxWR:$Vdd32),
38631 (ins HvxVR:$Vu32),
38632 "$Vdd32 = vsxth($Vu32)",
38633 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38634 let hasNewValue = 1;
38635 let opNewValue = 0;
38636 let isCVI = 1;
38637 let isPseudo = 1;
38638 let isCodeGenOnly = 1;
38639 let DecoderNamespace = "EXT_mmvec";
38641 def V6_vshufeh : HInst<
38642 (outs HvxVR:$Vd32),
38643 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38644 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
38645 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38646 let Inst{7-5} = 0b011;
38647 let Inst{13-13} = 0b0;
38648 let Inst{31-21} = 0b00011111010;
38649 let hasNewValue = 1;
38650 let opNewValue = 0;
38651 let isCVI = 1;
38652 let isHVXALU = 1;
38653 let isHVXALU2SRC = 1;
38654 let DecoderNamespace = "EXT_mmvec";
38656 def V6_vshufeh_alt : HInst<
38657 (outs HvxVR:$Vd32),
38658 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38659 "$Vd32 = vshuffeh($Vu32,$Vv32)",
38660 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38661 let hasNewValue = 1;
38662 let opNewValue = 0;
38663 let isCVI = 1;
38664 let isPseudo = 1;
38665 let isCodeGenOnly = 1;
38666 let DecoderNamespace = "EXT_mmvec";
38668 def V6_vshuff : HInst<
38669 (outs HvxVR:$Vy32, HvxVR:$Vx32),
38670 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
38671 "vshuff($Vy32,$Vx32,$Rt32)",
38672 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
38673 let Inst{7-5} = 0b001;
38674 let Inst{13-13} = 0b1;
38675 let Inst{31-21} = 0b00011001111;
38676 let hasNewValue = 1;
38677 let opNewValue = 0;
38678 let hasNewValue2 = 1;
38679 let opNewValue2 = 1;
38680 let isCVI = 1;
38681 let DecoderNamespace = "EXT_mmvec";
38682 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
38684 def V6_vshuffb : HInst<
38685 (outs HvxVR:$Vd32),
38686 (ins HvxVR:$Vu32),
38687 "$Vd32.b = vshuff($Vu32.b)",
38688 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38689 let Inst{7-5} = 0b000;
38690 let Inst{13-13} = 0b0;
38691 let Inst{31-16} = 0b0001111000000010;
38692 let hasNewValue = 1;
38693 let opNewValue = 0;
38694 let isCVI = 1;
38695 let DecoderNamespace = "EXT_mmvec";
38697 def V6_vshuffb_alt : HInst<
38698 (outs HvxVR:$Vd32),
38699 (ins HvxVR:$Vu32),
38700 "$Vd32 = vshuffb($Vu32)",
38701 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38702 let hasNewValue = 1;
38703 let opNewValue = 0;
38704 let isCVI = 1;
38705 let isPseudo = 1;
38706 let isCodeGenOnly = 1;
38707 let DecoderNamespace = "EXT_mmvec";
38709 def V6_vshuffeb : HInst<
38710 (outs HvxVR:$Vd32),
38711 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38712 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
38713 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38714 let Inst{7-5} = 0b001;
38715 let Inst{13-13} = 0b0;
38716 let Inst{31-21} = 0b00011111010;
38717 let hasNewValue = 1;
38718 let opNewValue = 0;
38719 let isCVI = 1;
38720 let isHVXALU = 1;
38721 let isHVXALU2SRC = 1;
38722 let DecoderNamespace = "EXT_mmvec";
38724 def V6_vshuffeb_alt : HInst<
38725 (outs HvxVR:$Vd32),
38726 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38727 "$Vd32 = vshuffeb($Vu32,$Vv32)",
38728 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38729 let hasNewValue = 1;
38730 let opNewValue = 0;
38731 let isCVI = 1;
38732 let isPseudo = 1;
38733 let isCodeGenOnly = 1;
38734 let DecoderNamespace = "EXT_mmvec";
38736 def V6_vshuffh : HInst<
38737 (outs HvxVR:$Vd32),
38738 (ins HvxVR:$Vu32),
38739 "$Vd32.h = vshuff($Vu32.h)",
38740 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
38741 let Inst{7-5} = 0b111;
38742 let Inst{13-13} = 0b0;
38743 let Inst{31-16} = 0b0001111000000001;
38744 let hasNewValue = 1;
38745 let opNewValue = 0;
38746 let isCVI = 1;
38747 let DecoderNamespace = "EXT_mmvec";
38749 def V6_vshuffh_alt : HInst<
38750 (outs HvxVR:$Vd32),
38751 (ins HvxVR:$Vu32),
38752 "$Vd32 = vshuffh($Vu32)",
38753 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38754 let hasNewValue = 1;
38755 let opNewValue = 0;
38756 let isCVI = 1;
38757 let isPseudo = 1;
38758 let isCodeGenOnly = 1;
38759 let DecoderNamespace = "EXT_mmvec";
38761 def V6_vshuffob : HInst<
38762 (outs HvxVR:$Vd32),
38763 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38764 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
38765 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38766 let Inst{7-5} = 0b010;
38767 let Inst{13-13} = 0b0;
38768 let Inst{31-21} = 0b00011111010;
38769 let hasNewValue = 1;
38770 let opNewValue = 0;
38771 let isCVI = 1;
38772 let isHVXALU = 1;
38773 let isHVXALU2SRC = 1;
38774 let DecoderNamespace = "EXT_mmvec";
38776 def V6_vshuffob_alt : HInst<
38777 (outs HvxVR:$Vd32),
38778 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38779 "$Vd32 = vshuffob($Vu32,$Vv32)",
38780 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38781 let hasNewValue = 1;
38782 let opNewValue = 0;
38783 let isCVI = 1;
38784 let isPseudo = 1;
38785 let isCodeGenOnly = 1;
38786 let DecoderNamespace = "EXT_mmvec";
38788 def V6_vshuffvdd : HInst<
38789 (outs HvxWR:$Vdd32),
38790 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
38791 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
38792 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
38793 let Inst{7-5} = 0b011;
38794 let Inst{13-13} = 0b1;
38795 let Inst{31-24} = 0b00011011;
38796 let hasNewValue = 1;
38797 let opNewValue = 0;
38798 let isCVI = 1;
38799 let DecoderNamespace = "EXT_mmvec";
38801 def V6_vshufoeb : HInst<
38802 (outs HvxWR:$Vdd32),
38803 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38804 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
38805 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38806 let Inst{7-5} = 0b110;
38807 let Inst{13-13} = 0b0;
38808 let Inst{31-21} = 0b00011111010;
38809 let hasNewValue = 1;
38810 let opNewValue = 0;
38811 let isCVI = 1;
38812 let DecoderNamespace = "EXT_mmvec";
38814 def V6_vshufoeb_alt : HInst<
38815 (outs HvxWR:$Vdd32),
38816 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38817 "$Vdd32 = vshuffoeb($Vu32,$Vv32)",
38818 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38819 let hasNewValue = 1;
38820 let opNewValue = 0;
38821 let isCVI = 1;
38822 let isPseudo = 1;
38823 let isCodeGenOnly = 1;
38824 let DecoderNamespace = "EXT_mmvec";
38826 def V6_vshufoeh : HInst<
38827 (outs HvxWR:$Vdd32),
38828 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38829 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
38830 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
38831 let Inst{7-5} = 0b101;
38832 let Inst{13-13} = 0b0;
38833 let Inst{31-21} = 0b00011111010;
38834 let hasNewValue = 1;
38835 let opNewValue = 0;
38836 let isCVI = 1;
38837 let DecoderNamespace = "EXT_mmvec";
38839 def V6_vshufoeh_alt : HInst<
38840 (outs HvxWR:$Vdd32),
38841 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38842 "$Vdd32 = vshuffoeh($Vu32,$Vv32)",
38843 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38844 let hasNewValue = 1;
38845 let opNewValue = 0;
38846 let isCVI = 1;
38847 let isPseudo = 1;
38848 let isCodeGenOnly = 1;
38849 let DecoderNamespace = "EXT_mmvec";
38851 def V6_vshufoh : HInst<
38852 (outs HvxVR:$Vd32),
38853 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38854 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
38855 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
38856 let Inst{7-5} = 0b100;
38857 let Inst{13-13} = 0b0;
38858 let Inst{31-21} = 0b00011111010;
38859 let hasNewValue = 1;
38860 let opNewValue = 0;
38861 let isCVI = 1;
38862 let isHVXALU = 1;
38863 let isHVXALU2SRC = 1;
38864 let DecoderNamespace = "EXT_mmvec";
38866 def V6_vshufoh_alt : HInst<
38867 (outs HvxVR:$Vd32),
38868 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38869 "$Vd32 = vshuffoh($Vu32,$Vv32)",
38870 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
38871 let hasNewValue = 1;
38872 let opNewValue = 0;
38873 let isCVI = 1;
38874 let isPseudo = 1;
38875 let isCodeGenOnly = 1;
38876 let DecoderNamespace = "EXT_mmvec";
38878 def V6_vsub_hf : HInst<
38879 (outs HvxVR:$Vd32),
38880 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38881 "$Vd32.qf16 = vsub($Vu32.hf,$Vv32.hf)",
38882 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38883 let Inst{7-5} = 0b110;
38884 let Inst{13-13} = 0b1;
38885 let Inst{31-21} = 0b00011111011;
38886 let hasNewValue = 1;
38887 let opNewValue = 0;
38888 let isCVI = 1;
38889 let DecoderNamespace = "EXT_mmvec";
38891 def V6_vsub_hf_hf : HInst<
38892 (outs HvxVR:$Vd32),
38893 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38894 "$Vd32.hf = vsub($Vu32.hf,$Vv32.hf)",
38895 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38896 let Inst{7-5} = 0b000;
38897 let Inst{13-13} = 0b1;
38898 let Inst{31-21} = 0b00011111011;
38899 let hasNewValue = 1;
38900 let opNewValue = 0;
38901 let isCVI = 1;
38902 let DecoderNamespace = "EXT_mmvec";
38904 def V6_vsub_qf16 : HInst<
38905 (outs HvxVR:$Vd32),
38906 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38907 "$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.qf16)",
38908 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38909 let Inst{7-5} = 0b101;
38910 let Inst{13-13} = 0b1;
38911 let Inst{31-21} = 0b00011111011;
38912 let hasNewValue = 1;
38913 let opNewValue = 0;
38914 let isCVI = 1;
38915 let DecoderNamespace = "EXT_mmvec";
38917 def V6_vsub_qf16_mix : HInst<
38918 (outs HvxVR:$Vd32),
38919 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38920 "$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.hf)",
38921 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38922 let Inst{7-5} = 0b111;
38923 let Inst{13-13} = 0b1;
38924 let Inst{31-21} = 0b00011111011;
38925 let hasNewValue = 1;
38926 let opNewValue = 0;
38927 let isCVI = 1;
38928 let DecoderNamespace = "EXT_mmvec";
38930 def V6_vsub_qf32 : HInst<
38931 (outs HvxVR:$Vd32),
38932 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38933 "$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.qf32)",
38934 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38935 let Inst{7-5} = 0b011;
38936 let Inst{13-13} = 0b1;
38937 let Inst{31-21} = 0b00011111101;
38938 let hasNewValue = 1;
38939 let opNewValue = 0;
38940 let isCVI = 1;
38941 let DecoderNamespace = "EXT_mmvec";
38943 def V6_vsub_qf32_mix : HInst<
38944 (outs HvxVR:$Vd32),
38945 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38946 "$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.sf)",
38947 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38948 let Inst{7-5} = 0b101;
38949 let Inst{13-13} = 0b1;
38950 let Inst{31-21} = 0b00011111101;
38951 let hasNewValue = 1;
38952 let opNewValue = 0;
38953 let isCVI = 1;
38954 let DecoderNamespace = "EXT_mmvec";
38956 def V6_vsub_sf : HInst<
38957 (outs HvxVR:$Vd32),
38958 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38959 "$Vd32.qf32 = vsub($Vu32.sf,$Vv32.sf)",
38960 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> {
38961 let Inst{7-5} = 0b100;
38962 let Inst{13-13} = 0b1;
38963 let Inst{31-21} = 0b00011111101;
38964 let hasNewValue = 1;
38965 let opNewValue = 0;
38966 let isCVI = 1;
38967 let DecoderNamespace = "EXT_mmvec";
38969 def V6_vsub_sf_bf : HInst<
38970 (outs HvxWR:$Vdd32),
38971 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38972 "$Vdd32.sf = vsub($Vu32.bf,$Vv32.bf)",
38973 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> {
38974 let Inst{7-5} = 0b101;
38975 let Inst{13-13} = 0b1;
38976 let Inst{31-21} = 0b00011101010;
38977 let hasNewValue = 1;
38978 let opNewValue = 0;
38979 let isCVI = 1;
38980 let DecoderNamespace = "EXT_mmvec";
38982 def V6_vsub_sf_hf : HInst<
38983 (outs HvxWR:$Vdd32),
38984 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38985 "$Vdd32.sf = vsub($Vu32.hf,$Vv32.hf)",
38986 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> {
38987 let Inst{7-5} = 0b101;
38988 let Inst{13-13} = 0b1;
38989 let Inst{31-21} = 0b00011111100;
38990 let hasNewValue = 1;
38991 let opNewValue = 0;
38992 let isCVI = 1;
38993 let DecoderNamespace = "EXT_mmvec";
38995 def V6_vsub_sf_sf : HInst<
38996 (outs HvxVR:$Vd32),
38997 (ins HvxVR:$Vu32, HvxVR:$Vv32),
38998 "$Vd32.sf = vsub($Vu32.sf,$Vv32.sf)",
38999 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> {
39000 let Inst{7-5} = 0b111;
39001 let Inst{13-13} = 0b1;
39002 let Inst{31-21} = 0b00011111100;
39003 let hasNewValue = 1;
39004 let opNewValue = 0;
39005 let isCVI = 1;
39006 let DecoderNamespace = "EXT_mmvec";
39008 def V6_vsubb : HInst<
39009 (outs HvxVR:$Vd32),
39010 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39011 "$Vd32.b = vsub($Vu32.b,$Vv32.b)",
39012 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39013 let Inst{7-5} = 0b101;
39014 let Inst{13-13} = 0b0;
39015 let Inst{31-21} = 0b00011100010;
39016 let hasNewValue = 1;
39017 let opNewValue = 0;
39018 let isCVI = 1;
39019 let isHVXALU = 1;
39020 let isHVXALU2SRC = 1;
39021 let DecoderNamespace = "EXT_mmvec";
39023 def V6_vsubb_alt : HInst<
39024 (outs HvxVR:$Vd32),
39025 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39026 "$Vd32 = vsubb($Vu32,$Vv32)",
39027 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39028 let hasNewValue = 1;
39029 let opNewValue = 0;
39030 let isCVI = 1;
39031 let isPseudo = 1;
39032 let isCodeGenOnly = 1;
39033 let DecoderNamespace = "EXT_mmvec";
39035 def V6_vsubb_dv : HInst<
39036 (outs HvxWR:$Vdd32),
39037 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39038 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
39039 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39040 let Inst{7-5} = 0b011;
39041 let Inst{13-13} = 0b0;
39042 let Inst{31-21} = 0b00011100100;
39043 let hasNewValue = 1;
39044 let opNewValue = 0;
39045 let isCVI = 1;
39046 let DecoderNamespace = "EXT_mmvec";
39048 def V6_vsubb_dv_alt : HInst<
39049 (outs HvxWR:$Vdd32),
39050 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39051 "$Vdd32 = vsubb($Vuu32,$Vvv32)",
39052 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39053 let hasNewValue = 1;
39054 let opNewValue = 0;
39055 let isCVI = 1;
39056 let isPseudo = 1;
39057 let isCodeGenOnly = 1;
39058 let DecoderNamespace = "EXT_mmvec";
39060 def V6_vsubbnq : HInst<
39061 (outs HvxVR:$Vx32),
39062 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39063 "if (!$Qv4) $Vx32.b -= $Vu32.b",
39064 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39065 let Inst{7-5} = 0b001;
39066 let Inst{13-13} = 0b1;
39067 let Inst{21-16} = 0b000010;
39068 let Inst{31-24} = 0b00011110;
39069 let hasNewValue = 1;
39070 let opNewValue = 0;
39071 let isCVI = 1;
39072 let isHVXALU = 1;
39073 let isHVXALU2SRC = 1;
39074 let DecoderNamespace = "EXT_mmvec";
39075 let Constraints = "$Vx32 = $Vx32in";
39077 def V6_vsubbnq_alt : HInst<
39078 (outs HvxVR:$Vx32),
39079 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39080 "if (!$Qv4.b) $Vx32.b -= $Vu32.b",
39081 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39082 let hasNewValue = 1;
39083 let opNewValue = 0;
39084 let isCVI = 1;
39085 let isPseudo = 1;
39086 let isCodeGenOnly = 1;
39087 let DecoderNamespace = "EXT_mmvec";
39088 let Constraints = "$Vx32 = $Vx32in";
39090 def V6_vsubbq : HInst<
39091 (outs HvxVR:$Vx32),
39092 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39093 "if ($Qv4) $Vx32.b -= $Vu32.b",
39094 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39095 let Inst{7-5} = 0b110;
39096 let Inst{13-13} = 0b1;
39097 let Inst{21-16} = 0b000001;
39098 let Inst{31-24} = 0b00011110;
39099 let hasNewValue = 1;
39100 let opNewValue = 0;
39101 let isCVI = 1;
39102 let isHVXALU = 1;
39103 let isHVXALU2SRC = 1;
39104 let DecoderNamespace = "EXT_mmvec";
39105 let Constraints = "$Vx32 = $Vx32in";
39107 def V6_vsubbq_alt : HInst<
39108 (outs HvxVR:$Vx32),
39109 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39110 "if ($Qv4.b) $Vx32.b -= $Vu32.b",
39111 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39112 let hasNewValue = 1;
39113 let opNewValue = 0;
39114 let isCVI = 1;
39115 let isPseudo = 1;
39116 let isCodeGenOnly = 1;
39117 let DecoderNamespace = "EXT_mmvec";
39118 let Constraints = "$Vx32 = $Vx32in";
39120 def V6_vsubbsat : HInst<
39121 (outs HvxVR:$Vd32),
39122 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39123 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
39124 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39125 let Inst{7-5} = 0b010;
39126 let Inst{13-13} = 0b0;
39127 let Inst{31-21} = 0b00011111001;
39128 let hasNewValue = 1;
39129 let opNewValue = 0;
39130 let isCVI = 1;
39131 let isHVXALU = 1;
39132 let isHVXALU2SRC = 1;
39133 let DecoderNamespace = "EXT_mmvec";
39135 def V6_vsubbsat_alt : HInst<
39136 (outs HvxVR:$Vd32),
39137 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39138 "$Vd32 = vsubb($Vu32,$Vv32):sat",
39139 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39140 let hasNewValue = 1;
39141 let opNewValue = 0;
39142 let isCVI = 1;
39143 let isPseudo = 1;
39144 let isCodeGenOnly = 1;
39145 let DecoderNamespace = "EXT_mmvec";
39147 def V6_vsubbsat_dv : HInst<
39148 (outs HvxWR:$Vdd32),
39149 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39150 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
39151 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
39152 let Inst{7-5} = 0b001;
39153 let Inst{13-13} = 0b0;
39154 let Inst{31-21} = 0b00011110101;
39155 let hasNewValue = 1;
39156 let opNewValue = 0;
39157 let isCVI = 1;
39158 let DecoderNamespace = "EXT_mmvec";
39160 def V6_vsubbsat_dv_alt : HInst<
39161 (outs HvxWR:$Vdd32),
39162 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39163 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
39164 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39165 let hasNewValue = 1;
39166 let opNewValue = 0;
39167 let isCVI = 1;
39168 let isPseudo = 1;
39169 let isCodeGenOnly = 1;
39170 let DecoderNamespace = "EXT_mmvec";
39172 def V6_vsubcarry : HInst<
39173 (outs HvxVR:$Vd32, HvxQR:$Qx4),
39174 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
39175 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
39176 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
39177 let Inst{7-7} = 0b1;
39178 let Inst{13-13} = 0b1;
39179 let Inst{31-21} = 0b00011100101;
39180 let hasNewValue = 1;
39181 let opNewValue = 0;
39182 let isCVI = 1;
39183 let isHVXALU = 1;
39184 let isHVXALU2SRC = 1;
39185 let DecoderNamespace = "EXT_mmvec";
39186 let Constraints = "$Qx4 = $Qx4in";
39188 def V6_vsubcarryo : HInst<
39189 (outs HvxVR:$Vd32, HvxQR:$Qe4),
39190 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39191 "$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
39192 tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> {
39193 let Inst{7-7} = 0b1;
39194 let Inst{13-13} = 0b1;
39195 let Inst{31-21} = 0b00011101101;
39196 let hasNewValue = 1;
39197 let opNewValue = 0;
39198 let isCVI = 1;
39199 let isHVXALU = 1;
39200 let isHVXALU2SRC = 1;
39201 let DecoderNamespace = "EXT_mmvec";
39203 def V6_vsubh : HInst<
39204 (outs HvxVR:$Vd32),
39205 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39206 "$Vd32.h = vsub($Vu32.h,$Vv32.h)",
39207 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39208 let Inst{7-5} = 0b110;
39209 let Inst{13-13} = 0b0;
39210 let Inst{31-21} = 0b00011100010;
39211 let hasNewValue = 1;
39212 let opNewValue = 0;
39213 let isCVI = 1;
39214 let isHVXALU = 1;
39215 let isHVXALU2SRC = 1;
39216 let DecoderNamespace = "EXT_mmvec";
39218 def V6_vsubh_alt : HInst<
39219 (outs HvxVR:$Vd32),
39220 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39221 "$Vd32 = vsubh($Vu32,$Vv32)",
39222 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39223 let hasNewValue = 1;
39224 let opNewValue = 0;
39225 let isCVI = 1;
39226 let isPseudo = 1;
39227 let isCodeGenOnly = 1;
39228 let DecoderNamespace = "EXT_mmvec";
39230 def V6_vsubh_dv : HInst<
39231 (outs HvxWR:$Vdd32),
39232 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39233 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
39234 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39235 let Inst{7-5} = 0b100;
39236 let Inst{13-13} = 0b0;
39237 let Inst{31-21} = 0b00011100100;
39238 let hasNewValue = 1;
39239 let opNewValue = 0;
39240 let isCVI = 1;
39241 let DecoderNamespace = "EXT_mmvec";
39243 def V6_vsubh_dv_alt : HInst<
39244 (outs HvxWR:$Vdd32),
39245 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39246 "$Vdd32 = vsubh($Vuu32,$Vvv32)",
39247 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39248 let hasNewValue = 1;
39249 let opNewValue = 0;
39250 let isCVI = 1;
39251 let isPseudo = 1;
39252 let isCodeGenOnly = 1;
39253 let DecoderNamespace = "EXT_mmvec";
39255 def V6_vsubhnq : HInst<
39256 (outs HvxVR:$Vx32),
39257 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39258 "if (!$Qv4) $Vx32.h -= $Vu32.h",
39259 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39260 let Inst{7-5} = 0b010;
39261 let Inst{13-13} = 0b1;
39262 let Inst{21-16} = 0b000010;
39263 let Inst{31-24} = 0b00011110;
39264 let hasNewValue = 1;
39265 let opNewValue = 0;
39266 let isCVI = 1;
39267 let isHVXALU = 1;
39268 let isHVXALU2SRC = 1;
39269 let DecoderNamespace = "EXT_mmvec";
39270 let Constraints = "$Vx32 = $Vx32in";
39272 def V6_vsubhnq_alt : HInst<
39273 (outs HvxVR:$Vx32),
39274 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39275 "if (!$Qv4.h) $Vx32.h -= $Vu32.h",
39276 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39277 let hasNewValue = 1;
39278 let opNewValue = 0;
39279 let isCVI = 1;
39280 let isPseudo = 1;
39281 let isCodeGenOnly = 1;
39282 let DecoderNamespace = "EXT_mmvec";
39283 let Constraints = "$Vx32 = $Vx32in";
39285 def V6_vsubhq : HInst<
39286 (outs HvxVR:$Vx32),
39287 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39288 "if ($Qv4) $Vx32.h -= $Vu32.h",
39289 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39290 let Inst{7-5} = 0b111;
39291 let Inst{13-13} = 0b1;
39292 let Inst{21-16} = 0b000001;
39293 let Inst{31-24} = 0b00011110;
39294 let hasNewValue = 1;
39295 let opNewValue = 0;
39296 let isCVI = 1;
39297 let isHVXALU = 1;
39298 let isHVXALU2SRC = 1;
39299 let DecoderNamespace = "EXT_mmvec";
39300 let Constraints = "$Vx32 = $Vx32in";
39302 def V6_vsubhq_alt : HInst<
39303 (outs HvxVR:$Vx32),
39304 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39305 "if ($Qv4.h) $Vx32.h -= $Vu32.h",
39306 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39307 let hasNewValue = 1;
39308 let opNewValue = 0;
39309 let isCVI = 1;
39310 let isPseudo = 1;
39311 let isCodeGenOnly = 1;
39312 let DecoderNamespace = "EXT_mmvec";
39313 let Constraints = "$Vx32 = $Vx32in";
39315 def V6_vsubhsat : HInst<
39316 (outs HvxVR:$Vd32),
39317 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39318 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
39319 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39320 let Inst{7-5} = 0b010;
39321 let Inst{13-13} = 0b0;
39322 let Inst{31-21} = 0b00011100011;
39323 let hasNewValue = 1;
39324 let opNewValue = 0;
39325 let isCVI = 1;
39326 let isHVXALU = 1;
39327 let isHVXALU2SRC = 1;
39328 let DecoderNamespace = "EXT_mmvec";
39330 def V6_vsubhsat_alt : HInst<
39331 (outs HvxVR:$Vd32),
39332 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39333 "$Vd32 = vsubh($Vu32,$Vv32):sat",
39334 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39335 let hasNewValue = 1;
39336 let opNewValue = 0;
39337 let isCVI = 1;
39338 let isPseudo = 1;
39339 let isCodeGenOnly = 1;
39340 let DecoderNamespace = "EXT_mmvec";
39342 def V6_vsubhsat_dv : HInst<
39343 (outs HvxWR:$Vdd32),
39344 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39345 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
39346 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39347 let Inst{7-5} = 0b000;
39348 let Inst{13-13} = 0b0;
39349 let Inst{31-21} = 0b00011100101;
39350 let hasNewValue = 1;
39351 let opNewValue = 0;
39352 let isCVI = 1;
39353 let DecoderNamespace = "EXT_mmvec";
39355 def V6_vsubhsat_dv_alt : HInst<
39356 (outs HvxWR:$Vdd32),
39357 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39358 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
39359 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39360 let hasNewValue = 1;
39361 let opNewValue = 0;
39362 let isCVI = 1;
39363 let isPseudo = 1;
39364 let isCodeGenOnly = 1;
39365 let DecoderNamespace = "EXT_mmvec";
39367 def V6_vsubhw : HInst<
39368 (outs HvxWR:$Vdd32),
39369 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39370 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
39371 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39372 let Inst{7-5} = 0b111;
39373 let Inst{13-13} = 0b0;
39374 let Inst{31-21} = 0b00011100101;
39375 let hasNewValue = 1;
39376 let opNewValue = 0;
39377 let isCVI = 1;
39378 let DecoderNamespace = "EXT_mmvec";
39380 def V6_vsubhw_alt : HInst<
39381 (outs HvxWR:$Vdd32),
39382 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39383 "$Vdd32 = vsubh($Vu32,$Vv32)",
39384 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39385 let hasNewValue = 1;
39386 let opNewValue = 0;
39387 let isCVI = 1;
39388 let isPseudo = 1;
39389 let isCodeGenOnly = 1;
39390 let DecoderNamespace = "EXT_mmvec";
39392 def V6_vsububh : HInst<
39393 (outs HvxWR:$Vdd32),
39394 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39395 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
39396 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39397 let Inst{7-5} = 0b101;
39398 let Inst{13-13} = 0b0;
39399 let Inst{31-21} = 0b00011100101;
39400 let hasNewValue = 1;
39401 let opNewValue = 0;
39402 let isCVI = 1;
39403 let DecoderNamespace = "EXT_mmvec";
39405 def V6_vsububh_alt : HInst<
39406 (outs HvxWR:$Vdd32),
39407 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39408 "$Vdd32 = vsubub($Vu32,$Vv32)",
39409 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39410 let hasNewValue = 1;
39411 let opNewValue = 0;
39412 let isCVI = 1;
39413 let isPseudo = 1;
39414 let isCodeGenOnly = 1;
39415 let DecoderNamespace = "EXT_mmvec";
39417 def V6_vsububsat : HInst<
39418 (outs HvxVR:$Vd32),
39419 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39420 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
39421 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39422 let Inst{7-5} = 0b000;
39423 let Inst{13-13} = 0b0;
39424 let Inst{31-21} = 0b00011100011;
39425 let hasNewValue = 1;
39426 let opNewValue = 0;
39427 let isCVI = 1;
39428 let isHVXALU = 1;
39429 let isHVXALU2SRC = 1;
39430 let DecoderNamespace = "EXT_mmvec";
39432 def V6_vsububsat_alt : HInst<
39433 (outs HvxVR:$Vd32),
39434 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39435 "$Vd32 = vsubub($Vu32,$Vv32):sat",
39436 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39437 let hasNewValue = 1;
39438 let opNewValue = 0;
39439 let isCVI = 1;
39440 let isPseudo = 1;
39441 let isCodeGenOnly = 1;
39442 let DecoderNamespace = "EXT_mmvec";
39444 def V6_vsububsat_dv : HInst<
39445 (outs HvxWR:$Vdd32),
39446 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39447 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
39448 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39449 let Inst{7-5} = 0b110;
39450 let Inst{13-13} = 0b0;
39451 let Inst{31-21} = 0b00011100100;
39452 let hasNewValue = 1;
39453 let opNewValue = 0;
39454 let isCVI = 1;
39455 let DecoderNamespace = "EXT_mmvec";
39457 def V6_vsububsat_dv_alt : HInst<
39458 (outs HvxWR:$Vdd32),
39459 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39460 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
39461 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39462 let hasNewValue = 1;
39463 let opNewValue = 0;
39464 let isCVI = 1;
39465 let isPseudo = 1;
39466 let isCodeGenOnly = 1;
39467 let DecoderNamespace = "EXT_mmvec";
39469 def V6_vsubububb_sat : HInst<
39470 (outs HvxVR:$Vd32),
39471 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39472 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
39473 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39474 let Inst{7-5} = 0b101;
39475 let Inst{13-13} = 0b0;
39476 let Inst{31-21} = 0b00011110101;
39477 let hasNewValue = 1;
39478 let opNewValue = 0;
39479 let isCVI = 1;
39480 let isHVXALU = 1;
39481 let isHVXALU2SRC = 1;
39482 let DecoderNamespace = "EXT_mmvec";
39484 def V6_vsubuhsat : HInst<
39485 (outs HvxVR:$Vd32),
39486 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39487 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
39488 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39489 let Inst{7-5} = 0b001;
39490 let Inst{13-13} = 0b0;
39491 let Inst{31-21} = 0b00011100011;
39492 let hasNewValue = 1;
39493 let opNewValue = 0;
39494 let isCVI = 1;
39495 let isHVXALU = 1;
39496 let isHVXALU2SRC = 1;
39497 let DecoderNamespace = "EXT_mmvec";
39499 def V6_vsubuhsat_alt : HInst<
39500 (outs HvxVR:$Vd32),
39501 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39502 "$Vd32 = vsubuh($Vu32,$Vv32):sat",
39503 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39504 let hasNewValue = 1;
39505 let opNewValue = 0;
39506 let isCVI = 1;
39507 let isPseudo = 1;
39508 let isCodeGenOnly = 1;
39509 let DecoderNamespace = "EXT_mmvec";
39511 def V6_vsubuhsat_dv : HInst<
39512 (outs HvxWR:$Vdd32),
39513 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39514 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
39515 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39516 let Inst{7-5} = 0b111;
39517 let Inst{13-13} = 0b0;
39518 let Inst{31-21} = 0b00011100100;
39519 let hasNewValue = 1;
39520 let opNewValue = 0;
39521 let isCVI = 1;
39522 let DecoderNamespace = "EXT_mmvec";
39524 def V6_vsubuhsat_dv_alt : HInst<
39525 (outs HvxWR:$Vdd32),
39526 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39527 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
39528 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39529 let hasNewValue = 1;
39530 let opNewValue = 0;
39531 let isCVI = 1;
39532 let isPseudo = 1;
39533 let isCodeGenOnly = 1;
39534 let DecoderNamespace = "EXT_mmvec";
39536 def V6_vsubuhw : HInst<
39537 (outs HvxWR:$Vdd32),
39538 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39539 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
39540 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
39541 let Inst{7-5} = 0b110;
39542 let Inst{13-13} = 0b0;
39543 let Inst{31-21} = 0b00011100101;
39544 let hasNewValue = 1;
39545 let opNewValue = 0;
39546 let isCVI = 1;
39547 let DecoderNamespace = "EXT_mmvec";
39549 def V6_vsubuhw_alt : HInst<
39550 (outs HvxWR:$Vdd32),
39551 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39552 "$Vdd32 = vsubuh($Vu32,$Vv32)",
39553 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39554 let hasNewValue = 1;
39555 let opNewValue = 0;
39556 let isCVI = 1;
39557 let isPseudo = 1;
39558 let isCodeGenOnly = 1;
39559 let DecoderNamespace = "EXT_mmvec";
39561 def V6_vsubuwsat : HInst<
39562 (outs HvxVR:$Vd32),
39563 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39564 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
39565 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
39566 let Inst{7-5} = 0b100;
39567 let Inst{13-13} = 0b0;
39568 let Inst{31-21} = 0b00011111110;
39569 let hasNewValue = 1;
39570 let opNewValue = 0;
39571 let isCVI = 1;
39572 let isHVXALU = 1;
39573 let isHVXALU2SRC = 1;
39574 let DecoderNamespace = "EXT_mmvec";
39576 def V6_vsubuwsat_alt : HInst<
39577 (outs HvxVR:$Vd32),
39578 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39579 "$Vd32 = vsubuw($Vu32,$Vv32):sat",
39580 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39581 let hasNewValue = 1;
39582 let opNewValue = 0;
39583 let isCVI = 1;
39584 let isPseudo = 1;
39585 let isCodeGenOnly = 1;
39586 let DecoderNamespace = "EXT_mmvec";
39588 def V6_vsubuwsat_dv : HInst<
39589 (outs HvxWR:$Vdd32),
39590 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39591 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
39592 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
39593 let Inst{7-5} = 0b011;
39594 let Inst{13-13} = 0b0;
39595 let Inst{31-21} = 0b00011110101;
39596 let hasNewValue = 1;
39597 let opNewValue = 0;
39598 let isCVI = 1;
39599 let DecoderNamespace = "EXT_mmvec";
39601 def V6_vsubuwsat_dv_alt : HInst<
39602 (outs HvxWR:$Vdd32),
39603 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39604 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
39605 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
39606 let hasNewValue = 1;
39607 let opNewValue = 0;
39608 let isCVI = 1;
39609 let isPseudo = 1;
39610 let isCodeGenOnly = 1;
39611 let DecoderNamespace = "EXT_mmvec";
39613 def V6_vsubw : HInst<
39614 (outs HvxVR:$Vd32),
39615 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39616 "$Vd32.w = vsub($Vu32.w,$Vv32.w)",
39617 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39618 let Inst{7-5} = 0b111;
39619 let Inst{13-13} = 0b0;
39620 let Inst{31-21} = 0b00011100010;
39621 let hasNewValue = 1;
39622 let opNewValue = 0;
39623 let isCVI = 1;
39624 let isHVXALU = 1;
39625 let isHVXALU2SRC = 1;
39626 let DecoderNamespace = "EXT_mmvec";
39628 def V6_vsubw_alt : HInst<
39629 (outs HvxVR:$Vd32),
39630 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39631 "$Vd32 = vsubw($Vu32,$Vv32)",
39632 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39633 let hasNewValue = 1;
39634 let opNewValue = 0;
39635 let isCVI = 1;
39636 let isPseudo = 1;
39637 let isCodeGenOnly = 1;
39638 let DecoderNamespace = "EXT_mmvec";
39640 def V6_vsubw_dv : HInst<
39641 (outs HvxWR:$Vdd32),
39642 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39643 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
39644 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39645 let Inst{7-5} = 0b101;
39646 let Inst{13-13} = 0b0;
39647 let Inst{31-21} = 0b00011100100;
39648 let hasNewValue = 1;
39649 let opNewValue = 0;
39650 let isCVI = 1;
39651 let DecoderNamespace = "EXT_mmvec";
39653 def V6_vsubw_dv_alt : HInst<
39654 (outs HvxWR:$Vdd32),
39655 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39656 "$Vdd32 = vsubw($Vuu32,$Vvv32)",
39657 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39658 let hasNewValue = 1;
39659 let opNewValue = 0;
39660 let isCVI = 1;
39661 let isPseudo = 1;
39662 let isCodeGenOnly = 1;
39663 let DecoderNamespace = "EXT_mmvec";
39665 def V6_vsubwnq : HInst<
39666 (outs HvxVR:$Vx32),
39667 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39668 "if (!$Qv4) $Vx32.w -= $Vu32.w",
39669 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39670 let Inst{7-5} = 0b011;
39671 let Inst{13-13} = 0b1;
39672 let Inst{21-16} = 0b000010;
39673 let Inst{31-24} = 0b00011110;
39674 let hasNewValue = 1;
39675 let opNewValue = 0;
39676 let isCVI = 1;
39677 let isHVXALU = 1;
39678 let isHVXALU2SRC = 1;
39679 let DecoderNamespace = "EXT_mmvec";
39680 let Constraints = "$Vx32 = $Vx32in";
39682 def V6_vsubwnq_alt : HInst<
39683 (outs HvxVR:$Vx32),
39684 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39685 "if (!$Qv4.w) $Vx32.w -= $Vu32.w",
39686 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39687 let hasNewValue = 1;
39688 let opNewValue = 0;
39689 let isCVI = 1;
39690 let isPseudo = 1;
39691 let isCodeGenOnly = 1;
39692 let DecoderNamespace = "EXT_mmvec";
39693 let Constraints = "$Vx32 = $Vx32in";
39695 def V6_vsubwq : HInst<
39696 (outs HvxVR:$Vx32),
39697 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39698 "if ($Qv4) $Vx32.w -= $Vu32.w",
39699 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
39700 let Inst{7-5} = 0b000;
39701 let Inst{13-13} = 0b1;
39702 let Inst{21-16} = 0b000010;
39703 let Inst{31-24} = 0b00011110;
39704 let hasNewValue = 1;
39705 let opNewValue = 0;
39706 let isCVI = 1;
39707 let isHVXALU = 1;
39708 let isHVXALU2SRC = 1;
39709 let DecoderNamespace = "EXT_mmvec";
39710 let Constraints = "$Vx32 = $Vx32in";
39712 def V6_vsubwq_alt : HInst<
39713 (outs HvxVR:$Vx32),
39714 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
39715 "if ($Qv4.w) $Vx32.w -= $Vu32.w",
39716 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39717 let hasNewValue = 1;
39718 let opNewValue = 0;
39719 let isCVI = 1;
39720 let isPseudo = 1;
39721 let isCodeGenOnly = 1;
39722 let DecoderNamespace = "EXT_mmvec";
39723 let Constraints = "$Vx32 = $Vx32in";
39725 def V6_vsubwsat : HInst<
39726 (outs HvxVR:$Vd32),
39727 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39728 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
39729 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
39730 let Inst{7-5} = 0b011;
39731 let Inst{13-13} = 0b0;
39732 let Inst{31-21} = 0b00011100011;
39733 let hasNewValue = 1;
39734 let opNewValue = 0;
39735 let isCVI = 1;
39736 let isHVXALU = 1;
39737 let isHVXALU2SRC = 1;
39738 let DecoderNamespace = "EXT_mmvec";
39740 def V6_vsubwsat_alt : HInst<
39741 (outs HvxVR:$Vd32),
39742 (ins HvxVR:$Vu32, HvxVR:$Vv32),
39743 "$Vd32 = vsubw($Vu32,$Vv32):sat",
39744 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39745 let hasNewValue = 1;
39746 let opNewValue = 0;
39747 let isCVI = 1;
39748 let isPseudo = 1;
39749 let isCodeGenOnly = 1;
39750 let DecoderNamespace = "EXT_mmvec";
39752 def V6_vsubwsat_dv : HInst<
39753 (outs HvxWR:$Vdd32),
39754 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39755 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
39756 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
39757 let Inst{7-5} = 0b001;
39758 let Inst{13-13} = 0b0;
39759 let Inst{31-21} = 0b00011100101;
39760 let hasNewValue = 1;
39761 let opNewValue = 0;
39762 let isCVI = 1;
39763 let DecoderNamespace = "EXT_mmvec";
39765 def V6_vsubwsat_dv_alt : HInst<
39766 (outs HvxWR:$Vdd32),
39767 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
39768 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
39769 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39770 let hasNewValue = 1;
39771 let opNewValue = 0;
39772 let isCVI = 1;
39773 let isPseudo = 1;
39774 let isCodeGenOnly = 1;
39775 let DecoderNamespace = "EXT_mmvec";
39777 def V6_vswap : HInst<
39778 (outs HvxWR:$Vdd32),
39779 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
39780 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
39781 tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
39782 let Inst{7-7} = 0b0;
39783 let Inst{13-13} = 0b1;
39784 let Inst{31-21} = 0b00011110101;
39785 let hasNewValue = 1;
39786 let opNewValue = 0;
39787 let isCVI = 1;
39788 let DecoderNamespace = "EXT_mmvec";
39790 def V6_vtmpyb : HInst<
39791 (outs HvxWR:$Vdd32),
39792 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39793 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
39794 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39795 let Inst{7-5} = 0b000;
39796 let Inst{13-13} = 0b0;
39797 let Inst{31-21} = 0b00011001000;
39798 let hasNewValue = 1;
39799 let opNewValue = 0;
39800 let isCVI = 1;
39801 let DecoderNamespace = "EXT_mmvec";
39803 def V6_vtmpyb_acc : HInst<
39804 (outs HvxWR:$Vxx32),
39805 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39806 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
39807 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39808 let Inst{7-5} = 0b000;
39809 let Inst{13-13} = 0b1;
39810 let Inst{31-21} = 0b00011001000;
39811 let hasNewValue = 1;
39812 let opNewValue = 0;
39813 let isAccumulator = 1;
39814 let isCVI = 1;
39815 let DecoderNamespace = "EXT_mmvec";
39816 let Constraints = "$Vxx32 = $Vxx32in";
39818 def V6_vtmpyb_acc_alt : HInst<
39819 (outs HvxWR:$Vxx32),
39820 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39821 "$Vxx32 += vtmpyb($Vuu32,$Rt32)",
39822 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39823 let hasNewValue = 1;
39824 let opNewValue = 0;
39825 let isAccumulator = 1;
39826 let isCVI = 1;
39827 let isPseudo = 1;
39828 let isCodeGenOnly = 1;
39829 let DecoderNamespace = "EXT_mmvec";
39830 let Constraints = "$Vxx32 = $Vxx32in";
39832 def V6_vtmpyb_alt : HInst<
39833 (outs HvxWR:$Vdd32),
39834 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39835 "$Vdd32 = vtmpyb($Vuu32,$Rt32)",
39836 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39837 let hasNewValue = 1;
39838 let opNewValue = 0;
39839 let isCVI = 1;
39840 let isPseudo = 1;
39841 let isCodeGenOnly = 1;
39842 let DecoderNamespace = "EXT_mmvec";
39844 def V6_vtmpybus : HInst<
39845 (outs HvxWR:$Vdd32),
39846 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39847 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
39848 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39849 let Inst{7-5} = 0b001;
39850 let Inst{13-13} = 0b0;
39851 let Inst{31-21} = 0b00011001000;
39852 let hasNewValue = 1;
39853 let opNewValue = 0;
39854 let isCVI = 1;
39855 let DecoderNamespace = "EXT_mmvec";
39857 def V6_vtmpybus_acc : HInst<
39858 (outs HvxWR:$Vxx32),
39859 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39860 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
39861 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39862 let Inst{7-5} = 0b001;
39863 let Inst{13-13} = 0b1;
39864 let Inst{31-21} = 0b00011001000;
39865 let hasNewValue = 1;
39866 let opNewValue = 0;
39867 let isAccumulator = 1;
39868 let isCVI = 1;
39869 let DecoderNamespace = "EXT_mmvec";
39870 let Constraints = "$Vxx32 = $Vxx32in";
39872 def V6_vtmpybus_acc_alt : HInst<
39873 (outs HvxWR:$Vxx32),
39874 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39875 "$Vxx32 += vtmpybus($Vuu32,$Rt32)",
39876 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39877 let hasNewValue = 1;
39878 let opNewValue = 0;
39879 let isAccumulator = 1;
39880 let isCVI = 1;
39881 let isPseudo = 1;
39882 let isCodeGenOnly = 1;
39883 let DecoderNamespace = "EXT_mmvec";
39884 let Constraints = "$Vxx32 = $Vxx32in";
39886 def V6_vtmpybus_alt : HInst<
39887 (outs HvxWR:$Vdd32),
39888 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39889 "$Vdd32 = vtmpybus($Vuu32,$Rt32)",
39890 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39891 let hasNewValue = 1;
39892 let opNewValue = 0;
39893 let isCVI = 1;
39894 let isPseudo = 1;
39895 let isCodeGenOnly = 1;
39896 let DecoderNamespace = "EXT_mmvec";
39898 def V6_vtmpyhb : HInst<
39899 (outs HvxWR:$Vdd32),
39900 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39901 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
39902 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
39903 let Inst{7-5} = 0b100;
39904 let Inst{13-13} = 0b0;
39905 let Inst{31-21} = 0b00011001101;
39906 let hasNewValue = 1;
39907 let opNewValue = 0;
39908 let isCVI = 1;
39909 let DecoderNamespace = "EXT_mmvec";
39911 def V6_vtmpyhb_acc : HInst<
39912 (outs HvxWR:$Vxx32),
39913 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39914 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
39915 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
39916 let Inst{7-5} = 0b010;
39917 let Inst{13-13} = 0b1;
39918 let Inst{31-21} = 0b00011001000;
39919 let hasNewValue = 1;
39920 let opNewValue = 0;
39921 let isAccumulator = 1;
39922 let isCVI = 1;
39923 let DecoderNamespace = "EXT_mmvec";
39924 let Constraints = "$Vxx32 = $Vxx32in";
39926 def V6_vtmpyhb_acc_alt : HInst<
39927 (outs HvxWR:$Vxx32),
39928 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
39929 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
39930 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39931 let hasNewValue = 1;
39932 let opNewValue = 0;
39933 let isAccumulator = 1;
39934 let isCVI = 1;
39935 let isPseudo = 1;
39936 let isCodeGenOnly = 1;
39937 let DecoderNamespace = "EXT_mmvec";
39938 let Constraints = "$Vxx32 = $Vxx32in";
39940 def V6_vtmpyhb_alt : HInst<
39941 (outs HvxWR:$Vdd32),
39942 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
39943 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
39944 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39945 let hasNewValue = 1;
39946 let opNewValue = 0;
39947 let isCVI = 1;
39948 let isPseudo = 1;
39949 let isCodeGenOnly = 1;
39950 let DecoderNamespace = "EXT_mmvec";
39952 def V6_vtran2x2_map : HInst<
39953 (outs HvxVR:$Vy32, HvxVR:$Vx32),
39954 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
39955 "vtrans2x2($Vy32,$Vx32,$Rt32)",
39956 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39957 let hasNewValue = 1;
39958 let opNewValue = 0;
39959 let hasNewValue2 = 1;
39960 let opNewValue2 = 1;
39961 let isCVI = 1;
39962 let isPseudo = 1;
39963 let isCodeGenOnly = 1;
39964 let DecoderNamespace = "EXT_mmvec";
39965 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
39967 def V6_vunpackb : HInst<
39968 (outs HvxWR:$Vdd32),
39969 (ins HvxVR:$Vu32),
39970 "$Vdd32.h = vunpack($Vu32.b)",
39971 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39972 let Inst{7-5} = 0b010;
39973 let Inst{13-13} = 0b0;
39974 let Inst{31-16} = 0b0001111000000001;
39975 let hasNewValue = 1;
39976 let opNewValue = 0;
39977 let isCVI = 1;
39978 let DecoderNamespace = "EXT_mmvec";
39980 def V6_vunpackb_alt : HInst<
39981 (outs HvxWR:$Vdd32),
39982 (ins HvxVR:$Vu32),
39983 "$Vdd32 = vunpackb($Vu32)",
39984 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
39985 let hasNewValue = 1;
39986 let opNewValue = 0;
39987 let isCVI = 1;
39988 let isPseudo = 1;
39989 let isCodeGenOnly = 1;
39990 let DecoderNamespace = "EXT_mmvec";
39992 def V6_vunpackh : HInst<
39993 (outs HvxWR:$Vdd32),
39994 (ins HvxVR:$Vu32),
39995 "$Vdd32.w = vunpack($Vu32.h)",
39996 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
39997 let Inst{7-5} = 0b011;
39998 let Inst{13-13} = 0b0;
39999 let Inst{31-16} = 0b0001111000000001;
40000 let hasNewValue = 1;
40001 let opNewValue = 0;
40002 let isCVI = 1;
40003 let DecoderNamespace = "EXT_mmvec";
40005 def V6_vunpackh_alt : HInst<
40006 (outs HvxWR:$Vdd32),
40007 (ins HvxVR:$Vu32),
40008 "$Vdd32 = vunpackh($Vu32)",
40009 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40010 let hasNewValue = 1;
40011 let opNewValue = 0;
40012 let isCVI = 1;
40013 let isPseudo = 1;
40014 let isCodeGenOnly = 1;
40015 let DecoderNamespace = "EXT_mmvec";
40017 def V6_vunpackob : HInst<
40018 (outs HvxWR:$Vxx32),
40019 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40020 "$Vxx32.h |= vunpacko($Vu32.b)",
40021 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
40022 let Inst{7-5} = 0b000;
40023 let Inst{13-13} = 0b1;
40024 let Inst{31-16} = 0b0001111000000000;
40025 let hasNewValue = 1;
40026 let opNewValue = 0;
40027 let isAccumulator = 1;
40028 let isCVI = 1;
40029 let DecoderNamespace = "EXT_mmvec";
40030 let Constraints = "$Vxx32 = $Vxx32in";
40032 def V6_vunpackob_alt : HInst<
40033 (outs HvxWR:$Vxx32),
40034 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40035 "$Vxx32 |= vunpackob($Vu32)",
40036 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40037 let hasNewValue = 1;
40038 let opNewValue = 0;
40039 let isAccumulator = 1;
40040 let isCVI = 1;
40041 let isPseudo = 1;
40042 let DecoderNamespace = "EXT_mmvec";
40043 let Constraints = "$Vxx32 = $Vxx32in";
40045 def V6_vunpackoh : HInst<
40046 (outs HvxWR:$Vxx32),
40047 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40048 "$Vxx32.w |= vunpacko($Vu32.h)",
40049 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
40050 let Inst{7-5} = 0b001;
40051 let Inst{13-13} = 0b1;
40052 let Inst{31-16} = 0b0001111000000000;
40053 let hasNewValue = 1;
40054 let opNewValue = 0;
40055 let isAccumulator = 1;
40056 let isCVI = 1;
40057 let DecoderNamespace = "EXT_mmvec";
40058 let Constraints = "$Vxx32 = $Vxx32in";
40060 def V6_vunpackoh_alt : HInst<
40061 (outs HvxWR:$Vxx32),
40062 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
40063 "$Vxx32 |= vunpackoh($Vu32)",
40064 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40065 let hasNewValue = 1;
40066 let opNewValue = 0;
40067 let isAccumulator = 1;
40068 let isCVI = 1;
40069 let isPseudo = 1;
40070 let isCodeGenOnly = 1;
40071 let DecoderNamespace = "EXT_mmvec";
40072 let Constraints = "$Vxx32 = $Vxx32in";
40074 def V6_vunpackub : HInst<
40075 (outs HvxWR:$Vdd32),
40076 (ins HvxVR:$Vu32),
40077 "$Vdd32.uh = vunpack($Vu32.ub)",
40078 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
40079 let Inst{7-5} = 0b000;
40080 let Inst{13-13} = 0b0;
40081 let Inst{31-16} = 0b0001111000000001;
40082 let hasNewValue = 1;
40083 let opNewValue = 0;
40084 let isCVI = 1;
40085 let DecoderNamespace = "EXT_mmvec";
40087 def V6_vunpackub_alt : HInst<
40088 (outs HvxWR:$Vdd32),
40089 (ins HvxVR:$Vu32),
40090 "$Vdd32 = vunpackub($Vu32)",
40091 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40092 let hasNewValue = 1;
40093 let opNewValue = 0;
40094 let isCVI = 1;
40095 let isPseudo = 1;
40096 let isCodeGenOnly = 1;
40097 let DecoderNamespace = "EXT_mmvec";
40099 def V6_vunpackuh : HInst<
40100 (outs HvxWR:$Vdd32),
40101 (ins HvxVR:$Vu32),
40102 "$Vdd32.uw = vunpack($Vu32.uh)",
40103 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
40104 let Inst{7-5} = 0b001;
40105 let Inst{13-13} = 0b0;
40106 let Inst{31-16} = 0b0001111000000001;
40107 let hasNewValue = 1;
40108 let opNewValue = 0;
40109 let isCVI = 1;
40110 let DecoderNamespace = "EXT_mmvec";
40112 def V6_vunpackuh_alt : HInst<
40113 (outs HvxWR:$Vdd32),
40114 (ins HvxVR:$Vu32),
40115 "$Vdd32 = vunpackuh($Vu32)",
40116 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40117 let hasNewValue = 1;
40118 let opNewValue = 0;
40119 let isCVI = 1;
40120 let isPseudo = 1;
40121 let isCodeGenOnly = 1;
40122 let DecoderNamespace = "EXT_mmvec";
40124 def V6_vwhist128 : HInst<
40125 (outs),
40126 (ins),
40127 "vwhist128",
40128 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40129 let Inst{13-0} = 0b10010010000000;
40130 let Inst{31-16} = 0b0001111000000000;
40131 let isCVI = 1;
40132 let DecoderNamespace = "EXT_mmvec";
40134 def V6_vwhist128m : HInst<
40135 (outs),
40136 (ins u1_0Imm:$Ii),
40137 "vwhist128(#$Ii)",
40138 tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
40139 let Inst{7-0} = 0b10000000;
40140 let Inst{13-9} = 0b10011;
40141 let Inst{31-16} = 0b0001111000000000;
40142 let isCVI = 1;
40143 let DecoderNamespace = "EXT_mmvec";
40145 def V6_vwhist128q : HInst<
40146 (outs),
40147 (ins HvxQR:$Qv4),
40148 "vwhist128($Qv4)",
40149 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40150 let Inst{13-0} = 0b10010010000000;
40151 let Inst{21-16} = 0b000010;
40152 let Inst{31-24} = 0b00011110;
40153 let isCVI = 1;
40154 let DecoderNamespace = "EXT_mmvec";
40156 def V6_vwhist128qm : HInst<
40157 (outs),
40158 (ins HvxQR:$Qv4, u1_0Imm:$Ii),
40159 "vwhist128($Qv4,#$Ii)",
40160 tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
40161 let Inst{7-0} = 0b10000000;
40162 let Inst{13-9} = 0b10011;
40163 let Inst{21-16} = 0b000010;
40164 let Inst{31-24} = 0b00011110;
40165 let isCVI = 1;
40166 let DecoderNamespace = "EXT_mmvec";
40168 def V6_vwhist256 : HInst<
40169 (outs),
40170 (ins),
40171 "vwhist256",
40172 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40173 let Inst{13-0} = 0b10001010000000;
40174 let Inst{31-16} = 0b0001111000000000;
40175 let isCVI = 1;
40176 let DecoderNamespace = "EXT_mmvec";
40178 def V6_vwhist256_sat : HInst<
40179 (outs),
40180 (ins),
40181 "vwhist256:sat",
40182 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
40183 let Inst{13-0} = 0b10001110000000;
40184 let Inst{31-16} = 0b0001111000000000;
40185 let isCVI = 1;
40186 let DecoderNamespace = "EXT_mmvec";
40188 def V6_vwhist256q : HInst<
40189 (outs),
40190 (ins HvxQR:$Qv4),
40191 "vwhist256($Qv4)",
40192 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40193 let Inst{13-0} = 0b10001010000000;
40194 let Inst{21-16} = 0b000010;
40195 let Inst{31-24} = 0b00011110;
40196 let isCVI = 1;
40197 let DecoderNamespace = "EXT_mmvec";
40199 def V6_vwhist256q_sat : HInst<
40200 (outs),
40201 (ins HvxQR:$Qv4),
40202 "vwhist256($Qv4):sat",
40203 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
40204 let Inst{13-0} = 0b10001110000000;
40205 let Inst{21-16} = 0b000010;
40206 let Inst{31-24} = 0b00011110;
40207 let isCVI = 1;
40208 let DecoderNamespace = "EXT_mmvec";
40210 def V6_vxor : HInst<
40211 (outs HvxVR:$Vd32),
40212 (ins HvxVR:$Vu32, HvxVR:$Vv32),
40213 "$Vd32 = vxor($Vu32,$Vv32)",
40214 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
40215 let Inst{7-5} = 0b111;
40216 let Inst{13-13} = 0b0;
40217 let Inst{31-21} = 0b00011100001;
40218 let hasNewValue = 1;
40219 let opNewValue = 0;
40220 let isCVI = 1;
40221 let isHVXALU = 1;
40222 let isHVXALU2SRC = 1;
40223 let DecoderNamespace = "EXT_mmvec";
40225 def V6_vzb : HInst<
40226 (outs HvxWR:$Vdd32),
40227 (ins HvxVR:$Vu32),
40228 "$Vdd32.uh = vzxt($Vu32.ub)",
40229 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
40230 let Inst{7-5} = 0b001;
40231 let Inst{13-13} = 0b0;
40232 let Inst{31-16} = 0b0001111000000010;
40233 let hasNewValue = 1;
40234 let opNewValue = 0;
40235 let isCVI = 1;
40236 let DecoderNamespace = "EXT_mmvec";
40238 def V6_vzb_alt : HInst<
40239 (outs HvxWR:$Vdd32),
40240 (ins HvxVR:$Vu32),
40241 "$Vdd32 = vzxtb($Vu32)",
40242 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40243 let hasNewValue = 1;
40244 let opNewValue = 0;
40245 let isCVI = 1;
40246 let isPseudo = 1;
40247 let isCodeGenOnly = 1;
40248 let DecoderNamespace = "EXT_mmvec";
40250 def V6_vzh : HInst<
40251 (outs HvxWR:$Vdd32),
40252 (ins HvxVR:$Vu32),
40253 "$Vdd32.uw = vzxt($Vu32.uh)",
40254 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
40255 let Inst{7-5} = 0b010;
40256 let Inst{13-13} = 0b0;
40257 let Inst{31-16} = 0b0001111000000010;
40258 let hasNewValue = 1;
40259 let opNewValue = 0;
40260 let isCVI = 1;
40261 let DecoderNamespace = "EXT_mmvec";
40263 def V6_vzh_alt : HInst<
40264 (outs HvxWR:$Vdd32),
40265 (ins HvxVR:$Vu32),
40266 "$Vdd32 = vzxth($Vu32)",
40267 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
40268 let hasNewValue = 1;
40269 let opNewValue = 0;
40270 let isCVI = 1;
40271 let isPseudo = 1;
40272 let isCodeGenOnly = 1;
40273 let DecoderNamespace = "EXT_mmvec";
40275 def V6_zLd_ai : HInst<
40276 (outs),
40277 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
40278 "z = vmem($Rt32+#$Ii)",
40279 tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
40280 let Inst{7-0} = 0b00000000;
40281 let Inst{12-11} = 0b00;
40282 let Inst{31-21} = 0b00101100000;
40283 let addrMode = BaseImmOffset;
40284 let isCVI = 1;
40285 let mayLoad = 1;
40286 let isRestrictNoSlot1Store = 1;
40287 let CextOpcode = "V6_zLd";
40288 let DecoderNamespace = "EXT_mmvec";
40290 def V6_zLd_pi : HInst<
40291 (outs IntRegs:$Rx32),
40292 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
40293 "z = vmem($Rx32++#$Ii)",
40294 tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm {
40295 let Inst{7-0} = 0b00000000;
40296 let Inst{13-11} = 0b000;
40297 let Inst{31-21} = 0b00101101000;
40298 let addrMode = PostInc;
40299 let isCVI = 1;
40300 let mayLoad = 1;
40301 let isRestrictNoSlot1Store = 1;
40302 let CextOpcode = "V6_zLd";
40303 let DecoderNamespace = "EXT_mmvec";
40304 let Constraints = "$Rx32 = $Rx32in";
40306 def V6_zLd_ppu : HInst<
40307 (outs IntRegs:$Rx32),
40308 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
40309 "z = vmem($Rx32++$Mu2)",
40310 tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
40311 let Inst{12-0} = 0b0000000000001;
40312 let Inst{31-21} = 0b00101101000;
40313 let addrMode = PostInc;
40314 let isCVI = 1;
40315 let mayLoad = 1;
40316 let isRestrictNoSlot1Store = 1;
40317 let DecoderNamespace = "EXT_mmvec";
40318 let Constraints = "$Rx32 = $Rx32in";
40320 def V6_zLd_pred_ai : HInst<
40321 (outs),
40322 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
40323 "if ($Pv4) z = vmem($Rt32+#$Ii)",
40324 tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
40325 let Inst{7-0} = 0b00000000;
40326 let Inst{31-21} = 0b00101100100;
40327 let isPredicated = 1;
40328 let addrMode = BaseImmOffset;
40329 let isCVI = 1;
40330 let mayLoad = 1;
40331 let isRestrictNoSlot1Store = 1;
40332 let DecoderNamespace = "EXT_mmvec";
40334 def V6_zLd_pred_pi : HInst<
40335 (outs IntRegs:$Rx32),
40336 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
40337 "if ($Pv4) z = vmem($Rx32++#$Ii)",
40338 tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
40339 let Inst{7-0} = 0b00000000;
40340 let Inst{13-13} = 0b0;
40341 let Inst{31-21} = 0b00101101100;
40342 let isPredicated = 1;
40343 let addrMode = PostInc;
40344 let isCVI = 1;
40345 let mayLoad = 1;
40346 let isRestrictNoSlot1Store = 1;
40347 let DecoderNamespace = "EXT_mmvec";
40348 let Constraints = "$Rx32 = $Rx32in";
40350 def V6_zLd_pred_ppu : HInst<
40351 (outs IntRegs:$Rx32),
40352 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
40353 "if ($Pv4) z = vmem($Rx32++$Mu2)",
40354 tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
40355 let Inst{10-0} = 0b00000000001;
40356 let Inst{31-21} = 0b00101101100;
40357 let isPredicated = 1;
40358 let addrMode = PostInc;
40359 let isCVI = 1;
40360 let mayLoad = 1;
40361 let isRestrictNoSlot1Store = 1;
40362 let DecoderNamespace = "EXT_mmvec";
40363 let Constraints = "$Rx32 = $Rx32in";
40365 def V6_zextract : HInst<
40366 (outs HvxVR:$Vd32),
40367 (ins IntRegs:$Rt32),
40368 "$Vd32 = zextract($Rt32)",
40369 tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
40370 let Inst{13-5} = 0b000001001;
40371 let Inst{31-21} = 0b00011001101;
40372 let hasNewValue = 1;
40373 let opNewValue = 0;
40374 let isCVI = 1;
40375 let DecoderNamespace = "EXT_mmvec";
40377 def V6_zld0 : HInst<
40378 (outs),
40379 (ins IntRegs:$Rt32),
40380 "z = vmem($Rt32)",
40381 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
40382 let isCVI = 1;
40383 let isPseudo = 1;
40384 let isCodeGenOnly = 1;
40385 let DecoderNamespace = "EXT_mmvec";
40387 def V6_zldp0 : HInst<
40388 (outs),
40389 (ins PredRegs:$Pv4, IntRegs:$Rt32),
40390 "if ($Pv4) z = vmem($Rt32)",
40391 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
40392 let isCVI = 1;
40393 let isPseudo = 1;
40394 let isCodeGenOnly = 1;
40395 let DecoderNamespace = "EXT_mmvec";
40397 def Y2_barrier : HInst<
40398 (outs),
40399 (ins),
40400 "barrier",
40401 tc_77f94a5e, TypeST>, Enc_e3b0c4 {
40402 let Inst{13-0} = 0b00000000000000;
40403 let Inst{31-16} = 0b1010100000000000;
40404 let isSoloAX = 1;
40405 let hasSideEffects = 1;
40407 def Y2_break : HInst<
40408 (outs),
40409 (ins),
40410 "brkpt",
40411 tc_55255f2b, TypeCR>, Enc_e3b0c4 {
40412 let Inst{13-0} = 0b00000000000000;
40413 let Inst{31-16} = 0b0110110000100000;
40414 let hasSideEffects = 1;
40415 let isSolo = 1;
40417 def Y2_ciad : HInst<
40418 (outs),
40419 (ins IntRegs:$Rs32),
40420 "ciad($Rs32)",
40421 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40422 let Inst{13-0} = 0b00000001100000;
40423 let Inst{31-21} = 0b01100100000;
40424 let isSoloAX = 1;
40426 def Y2_crswap0 : HInst<
40427 (outs IntRegs:$Rx32),
40428 (ins IntRegs:$Rx32in),
40429 "crswap($Rx32,sgp0)",
40430 tc_7dc63b5c, TypeCR>, Enc_403871 {
40431 let Inst{13-0} = 0b00000000000000;
40432 let Inst{31-21} = 0b01100101000;
40433 let hasNewValue = 1;
40434 let opNewValue = 0;
40435 let Uses = [SGP0];
40436 let Defs = [SGP0];
40437 let Constraints = "$Rx32 = $Rx32in";
40439 def Y2_crswap_old : HInst<
40440 (outs IntRegs:$Rx32),
40441 (ins IntRegs:$Rx32in),
40442 "crswap($Rx32,sgp)",
40443 tc_7dc63b5c, TypeMAPPING> {
40444 let hasNewValue = 1;
40445 let opNewValue = 0;
40446 let isPseudo = 1;
40447 let isCodeGenOnly = 1;
40448 let Constraints = "$Rx32 = $Rx32in";
40450 def Y2_cswi : HInst<
40451 (outs),
40452 (ins IntRegs:$Rs32),
40453 "cswi($Rs32)",
40454 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40455 let Inst{13-0} = 0b00000000100000;
40456 let Inst{31-21} = 0b01100100000;
40457 let isSoloAX = 1;
40459 def Y2_dccleana : HInst<
40460 (outs),
40461 (ins IntRegs:$Rs32),
40462 "dccleana($Rs32)",
40463 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40464 let Inst{13-0} = 0b00000000000000;
40465 let Inst{31-21} = 0b10100000000;
40466 let isRestrictSlot1AOK = 1;
40467 let hasSideEffects = 1;
40469 def Y2_dccleanidx : HInst<
40470 (outs),
40471 (ins IntRegs:$Rs32),
40472 "dccleanidx($Rs32)",
40473 tc_d234b61a, TypeST>, Enc_ecbcc8 {
40474 let Inst{13-0} = 0b00000000000000;
40475 let Inst{31-21} = 0b10100010001;
40476 let isSoloAX = 1;
40478 def Y2_dccleaninva : HInst<
40479 (outs),
40480 (ins IntRegs:$Rs32),
40481 "dccleaninva($Rs32)",
40482 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40483 let Inst{13-0} = 0b00000000000000;
40484 let Inst{31-21} = 0b10100000010;
40485 let isRestrictSlot1AOK = 1;
40486 let hasSideEffects = 1;
40488 def Y2_dccleaninvidx : HInst<
40489 (outs),
40490 (ins IntRegs:$Rs32),
40491 "dccleaninvidx($Rs32)",
40492 tc_d234b61a, TypeST>, Enc_ecbcc8 {
40493 let Inst{13-0} = 0b00000000000000;
40494 let Inst{31-21} = 0b10100010011;
40495 let isSoloAX = 1;
40497 def Y2_dcfetch : HInst<
40498 (outs),
40499 (ins IntRegs:$Rs32),
40500 "dcfetch($Rs32)",
40501 tc_d45ba9cd, TypeMAPPING> {
40502 let hasSideEffects = 1;
40503 let isPseudo = 1;
40504 let isCodeGenOnly = 1;
40506 def Y2_dcfetchbo : HInst<
40507 (outs),
40508 (ins IntRegs:$Rs32, u11_3Imm:$Ii),
40509 "dcfetch($Rs32+#$Ii)",
40510 tc_2237d952, TypeLD>, Enc_2d829e {
40511 let Inst{13-11} = 0b000;
40512 let Inst{31-21} = 0b10010100000;
40513 let addrMode = BaseImmOffset;
40514 let isRestrictNoSlot1Store = 1;
40515 let hasSideEffects = 1;
40517 def Y2_dcinva : HInst<
40518 (outs),
40519 (ins IntRegs:$Rs32),
40520 "dcinva($Rs32)",
40521 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40522 let Inst{13-0} = 0b00000000000000;
40523 let Inst{31-21} = 0b10100000001;
40524 let isRestrictSlot1AOK = 1;
40525 let hasSideEffects = 1;
40527 def Y2_dcinvidx : HInst<
40528 (outs),
40529 (ins IntRegs:$Rs32),
40530 "dcinvidx($Rs32)",
40531 tc_d234b61a, TypeST>, Enc_ecbcc8 {
40532 let Inst{13-0} = 0b00000000000000;
40533 let Inst{31-21} = 0b10100010010;
40534 let isSoloAX = 1;
40536 def Y2_dckill : HInst<
40537 (outs),
40538 (ins),
40539 "dckill",
40540 tc_78f87ed3, TypeST>, Enc_e3b0c4 {
40541 let Inst{13-0} = 0b00000000000000;
40542 let Inst{31-16} = 0b1010001000000000;
40543 let isSolo = 1;
40545 def Y2_dctagr : HInst<
40546 (outs IntRegs:$Rd32),
40547 (ins IntRegs:$Rs32),
40548 "$Rd32 = dctagr($Rs32)",
40549 tc_a724463d, TypeST>, Enc_5e2823 {
40550 let Inst{13-5} = 0b000000000;
40551 let Inst{31-21} = 0b10100100001;
40552 let hasNewValue = 1;
40553 let opNewValue = 0;
40554 let isSoloAX = 1;
40556 def Y2_dctagw : HInst<
40557 (outs),
40558 (ins IntRegs:$Rs32, IntRegs:$Rt32),
40559 "dctagw($Rs32,$Rt32)",
40560 tc_6fb52018, TypeST>, Enc_ca3887 {
40561 let Inst{7-0} = 0b00000000;
40562 let Inst{13-13} = 0b0;
40563 let Inst{31-21} = 0b10100100000;
40564 let isSolo = 1;
40566 def Y2_dczeroa : HInst<
40567 (outs),
40568 (ins IntRegs:$Rs32),
40569 "dczeroa($Rs32)",
40570 tc_b1ae5f67, TypeST>, Enc_ecbcc8 {
40571 let Inst{13-0} = 0b00000000000000;
40572 let Inst{31-21} = 0b10100000110;
40573 let isRestrictSlot1AOK = 1;
40574 let mayStore = 1;
40575 let hasSideEffects = 1;
40577 def Y2_getimask : HInst<
40578 (outs IntRegs:$Rd32),
40579 (ins IntRegs:$Rs32),
40580 "$Rd32 = getimask($Rs32)",
40581 tc_46c18ecf, TypeCR>, Enc_5e2823 {
40582 let Inst{13-5} = 0b000000000;
40583 let Inst{31-21} = 0b01100110000;
40584 let hasNewValue = 1;
40585 let opNewValue = 0;
40586 let isSoloAX = 1;
40588 def Y2_iassignr : HInst<
40589 (outs IntRegs:$Rd32),
40590 (ins IntRegs:$Rs32),
40591 "$Rd32 = iassignr($Rs32)",
40592 tc_46c18ecf, TypeCR>, Enc_5e2823 {
40593 let Inst{13-5} = 0b000000000;
40594 let Inst{31-21} = 0b01100110011;
40595 let hasNewValue = 1;
40596 let opNewValue = 0;
40597 let isSoloAX = 1;
40599 def Y2_iassignw : HInst<
40600 (outs),
40601 (ins IntRegs:$Rs32),
40602 "iassignw($Rs32)",
40603 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40604 let Inst{13-0} = 0b00000001000000;
40605 let Inst{31-21} = 0b01100100000;
40606 let isSoloAX = 1;
40608 def Y2_icdatar : HInst<
40609 (outs IntRegs:$Rd32),
40610 (ins IntRegs:$Rs32),
40611 "$Rd32 = icdatar($Rs32)",
40612 tc_9b20a062, TypeJ>, Enc_5e2823 {
40613 let Inst{13-5} = 0b000000000;
40614 let Inst{31-21} = 0b01010101101;
40615 let hasNewValue = 1;
40616 let opNewValue = 0;
40617 let isSolo = 1;
40619 def Y2_icdataw : HInst<
40620 (outs),
40621 (ins IntRegs:$Rs32, IntRegs:$Rt32),
40622 "icdataw($Rs32,$Rt32)",
40623 tc_5a222e89, TypeJ>, Enc_ca3887, Requires<[HasV66]> {
40624 let Inst{7-0} = 0b00000000;
40625 let Inst{13-13} = 0b1;
40626 let Inst{31-21} = 0b01010101110;
40627 let isSolo = 1;
40629 def Y2_icinva : HInst<
40630 (outs),
40631 (ins IntRegs:$Rs32),
40632 "icinva($Rs32)",
40633 tc_0ba0d5da, TypeJ>, Enc_ecbcc8 {
40634 let Inst{13-0} = 0b00000000000000;
40635 let Inst{31-21} = 0b01010110110;
40636 let isSolo = 1;
40638 def Y2_icinvidx : HInst<
40639 (outs),
40640 (ins IntRegs:$Rs32),
40641 "icinvidx($Rs32)",
40642 tc_7d6a2568, TypeJ>, Enc_ecbcc8 {
40643 let Inst{13-0} = 0b00100000000000;
40644 let Inst{31-21} = 0b01010110110;
40645 let isSolo = 1;
40647 def Y2_ickill : HInst<
40648 (outs),
40649 (ins),
40650 "ickill",
40651 tc_b9bec29e, TypeJ>, Enc_e3b0c4 {
40652 let Inst{13-0} = 0b01000000000000;
40653 let Inst{31-16} = 0b0101011011000000;
40654 let isSolo = 1;
40656 def Y2_ictagr : HInst<
40657 (outs IntRegs:$Rd32),
40658 (ins IntRegs:$Rs32),
40659 "$Rd32 = ictagr($Rs32)",
40660 tc_759e57be, TypeJ>, Enc_5e2823 {
40661 let Inst{13-5} = 0b000000000;
40662 let Inst{31-21} = 0b01010101111;
40663 let hasNewValue = 1;
40664 let opNewValue = 0;
40665 let isSolo = 1;
40667 def Y2_ictagw : HInst<
40668 (outs),
40669 (ins IntRegs:$Rs32, IntRegs:$Rt32),
40670 "ictagw($Rs32,$Rt32)",
40671 tc_139ef484, TypeJ>, Enc_ca3887 {
40672 let Inst{7-0} = 0b00000000;
40673 let Inst{13-13} = 0b0;
40674 let Inst{31-21} = 0b01010101110;
40675 let isSolo = 1;
40677 def Y2_isync : HInst<
40678 (outs),
40679 (ins),
40680 "isync",
40681 tc_9b34f5e0, TypeJ>, Enc_e3b0c4 {
40682 let Inst{13-0} = 0b00000000000010;
40683 let Inst{31-16} = 0b0101011111000000;
40684 let isSolo = 1;
40686 def Y2_k0lock : HInst<
40687 (outs),
40688 (ins),
40689 "k0lock",
40690 tc_7f58404a, TypeCR>, Enc_e3b0c4 {
40691 let Inst{13-0} = 0b00000001100000;
40692 let Inst{31-16} = 0b0110110000100000;
40693 let isSolo = 1;
40695 def Y2_k0unlock : HInst<
40696 (outs),
40697 (ins),
40698 "k0unlock",
40699 tc_7f58404a, TypeCR>, Enc_e3b0c4 {
40700 let Inst{13-0} = 0b00000010000000;
40701 let Inst{31-16} = 0b0110110000100000;
40702 let isSolo = 1;
40704 def Y2_k1lock_map : HInst<
40705 (outs),
40706 (ins),
40707 "k1lock",
40708 PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
40709 let isPseudo = 1;
40710 let isCodeGenOnly = 1;
40712 def Y2_k1unlock_map : HInst<
40713 (outs),
40714 (ins),
40715 "k1unlock",
40716 PSEUDO, TypeMAPPING>, Requires<[HasV65]> {
40717 let isPseudo = 1;
40718 let isCodeGenOnly = 1;
40720 def Y2_l2cleaninvidx : HInst<
40721 (outs),
40722 (ins IntRegs:$Rs32),
40723 "l2cleaninvidx($Rs32)",
40724 tc_d234b61a, TypeST>, Enc_ecbcc8 {
40725 let Inst{13-0} = 0b00000000000000;
40726 let Inst{31-21} = 0b10101000011;
40727 let isSoloAX = 1;
40729 def Y2_l2kill : HInst<
40730 (outs),
40731 (ins),
40732 "l2kill",
40733 tc_b3d46584, TypeST>, Enc_e3b0c4 {
40734 let Inst{13-0} = 0b00000000000000;
40735 let Inst{31-16} = 0b1010100000100000;
40736 let isSolo = 1;
40738 def Y2_resume : HInst<
40739 (outs),
40740 (ins IntRegs:$Rs32),
40741 "resume($Rs32)",
40742 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40743 let Inst{13-0} = 0b00000000100000;
40744 let Inst{31-21} = 0b01100100010;
40745 let isSolo = 1;
40747 def Y2_setimask : HInst<
40748 (outs),
40749 (ins PredRegs:$Pt4, IntRegs:$Rs32),
40750 "setimask($Pt4,$Rs32)",
40751 tc_d71ea8fa, TypeCR>, Enc_9e9047 {
40752 let Inst{7-0} = 0b00000000;
40753 let Inst{13-10} = 0b0000;
40754 let Inst{31-21} = 0b01100100100;
40755 let isSoloAX = 1;
40757 def Y2_setprio : HInst<
40758 (outs),
40759 (ins PredRegs:$Pt4, IntRegs:$Rs32),
40760 "setprio($Pt4,$Rs32)",
40761 tc_d71ea8fa, TypeCR>, Enc_9e9047, Requires<[HasV66]> {
40762 let Inst{7-0} = 0b00100000;
40763 let Inst{13-10} = 0b0000;
40764 let Inst{31-21} = 0b01100100100;
40766 def Y2_start : HInst<
40767 (outs),
40768 (ins IntRegs:$Rs32),
40769 "start($Rs32)",
40770 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40771 let Inst{13-0} = 0b00000000100000;
40772 let Inst{31-21} = 0b01100100011;
40773 let isSolo = 1;
40775 def Y2_stop : HInst<
40776 (outs),
40777 (ins IntRegs:$Rs32),
40778 "stop($Rs32)",
40779 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40780 let Inst{13-0} = 0b00000000000000;
40781 let Inst{31-21} = 0b01100100011;
40782 let isSolo = 1;
40784 def Y2_swi : HInst<
40785 (outs),
40786 (ins IntRegs:$Rs32),
40787 "swi($Rs32)",
40788 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40789 let Inst{13-0} = 0b00000000000000;
40790 let Inst{31-21} = 0b01100100000;
40791 let isSoloAX = 1;
40793 def Y2_syncht : HInst<
40794 (outs),
40795 (ins),
40796 "syncht",
40797 tc_77f94a5e, TypeST>, Enc_e3b0c4 {
40798 let Inst{13-0} = 0b00000000000000;
40799 let Inst{31-16} = 0b1010100001000000;
40800 let isSolo = 1;
40802 def Y2_tfrscrr : HInst<
40803 (outs IntRegs:$Rd32),
40804 (ins SysRegs:$Ss128),
40805 "$Rd32 = $Ss128",
40806 tc_fae9dfa5, TypeCR>, Enc_7d1542 {
40807 let Inst{13-5} = 0b000000000;
40808 let Inst{31-23} = 0b011011101;
40809 let hasNewValue = 1;
40810 let opNewValue = 0;
40812 def Y2_tfrsrcr : HInst<
40813 (outs SysRegs:$Sd128),
40814 (ins IntRegs:$Rs32),
40815 "$Sd128 = $Rs32",
40816 tc_6ae3426b, TypeCR>, Enc_8f7633 {
40817 let Inst{13-7} = 0b0000000;
40818 let Inst{31-21} = 0b01100111000;
40819 let hasNewValue = 1;
40820 let opNewValue = 0;
40822 def Y2_tlblock : HInst<
40823 (outs),
40824 (ins),
40825 "tlblock",
40826 tc_7f58404a, TypeCR>, Enc_e3b0c4 {
40827 let Inst{13-0} = 0b00000000100000;
40828 let Inst{31-16} = 0b0110110000100000;
40829 let isSolo = 1;
40831 def Y2_tlbp : HInst<
40832 (outs IntRegs:$Rd32),
40833 (ins IntRegs:$Rs32),
40834 "$Rd32 = tlbp($Rs32)",
40835 tc_6aa823ab, TypeCR>, Enc_5e2823 {
40836 let Inst{13-5} = 0b000000000;
40837 let Inst{31-21} = 0b01101100100;
40838 let hasNewValue = 1;
40839 let opNewValue = 0;
40840 let isSolo = 1;
40842 def Y2_tlbr : HInst<
40843 (outs DoubleRegs:$Rdd32),
40844 (ins IntRegs:$Rs32),
40845 "$Rdd32 = tlbr($Rs32)",
40846 tc_6aa823ab, TypeCR>, Enc_3a3d62 {
40847 let Inst{13-5} = 0b000000000;
40848 let Inst{31-21} = 0b01101100010;
40849 let isSolo = 1;
40851 def Y2_tlbunlock : HInst<
40852 (outs),
40853 (ins),
40854 "tlbunlock",
40855 tc_7f58404a, TypeCR>, Enc_e3b0c4 {
40856 let Inst{13-0} = 0b00000001000000;
40857 let Inst{31-16} = 0b0110110000100000;
40858 let isSolo = 1;
40860 def Y2_tlbw : HInst<
40861 (outs),
40862 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
40863 "tlbw($Rss32,$Rt32)",
40864 tc_b2196a3f, TypeCR>, Enc_46f33d {
40865 let Inst{7-0} = 0b00000000;
40866 let Inst{13-13} = 0b0;
40867 let Inst{31-21} = 0b01101100000;
40868 let isSolo = 1;
40870 def Y2_wait : HInst<
40871 (outs),
40872 (ins IntRegs:$Rs32),
40873 "wait($Rs32)",
40874 tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
40875 let Inst{13-0} = 0b00000000000000;
40876 let Inst{31-21} = 0b01100100010;
40877 let isSolo = 1;
40879 def Y4_crswap1 : HInst<
40880 (outs IntRegs:$Rx32),
40881 (ins IntRegs:$Rx32in),
40882 "crswap($Rx32,sgp1)",
40883 tc_7dc63b5c, TypeCR>, Enc_403871 {
40884 let Inst{13-0} = 0b00000000000000;
40885 let Inst{31-21} = 0b01100101001;
40886 let hasNewValue = 1;
40887 let opNewValue = 0;
40888 let Uses = [SGP1];
40889 let Defs = [SGP1];
40890 let Constraints = "$Rx32 = $Rx32in";
40892 def Y4_crswap10 : HInst<
40893 (outs DoubleRegs:$Rxx32),
40894 (ins DoubleRegs:$Rxx32in, sgp10Const:$sgp10),
40895 "crswap($Rxx32,$sgp10)",
40896 tc_27106296, TypeCR>, Enc_d0fe02 {
40897 let Inst{13-0} = 0b00000000000000;
40898 let Inst{31-21} = 0b01101101100;
40899 let Uses = [SGP0, SGP1];
40900 let Defs = [SGP0, SGP1];
40901 let Constraints = "$Rxx32 = $Rxx32in";
40903 def Y4_l2fetch : HInst<
40904 (outs),
40905 (ins IntRegs:$Rs32, IntRegs:$Rt32),
40906 "l2fetch($Rs32,$Rt32)",
40907 tc_a3070909, TypeST>, Enc_ca3887 {
40908 let Inst{7-0} = 0b00000000;
40909 let Inst{13-13} = 0b0;
40910 let Inst{31-21} = 0b10100110000;
40911 let isSoloAX = 1;
40912 let hasSideEffects = 1;
40913 let mayStore = 1;
40915 def Y4_l2tagr : HInst<
40916 (outs IntRegs:$Rd32),
40917 (ins IntRegs:$Rs32),
40918 "$Rd32 = l2tagr($Rs32)",
40919 tc_a724463d, TypeST>, Enc_5e2823 {
40920 let Inst{13-5} = 0b000000000;
40921 let Inst{31-21} = 0b10100100011;
40922 let hasNewValue = 1;
40923 let opNewValue = 0;
40924 let isSoloAX = 1;
40926 def Y4_l2tagw : HInst<
40927 (outs),
40928 (ins IntRegs:$Rs32, IntRegs:$Rt32),
40929 "l2tagw($Rs32,$Rt32)",
40930 tc_512b1653, TypeST>, Enc_ca3887 {
40931 let Inst{7-0} = 0b00000000;
40932 let Inst{13-13} = 0b0;
40933 let Inst{31-21} = 0b10100100010;
40934 let isSolo = 1;
40936 def Y4_nmi : HInst<
40937 (outs),
40938 (ins IntRegs:$Rs32),
40939 "nmi($Rs32)",
40940 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40941 let Inst{13-0} = 0b00000001000000;
40942 let Inst{31-21} = 0b01100100011;
40943 let isSolo = 1;
40945 def Y4_siad : HInst<
40946 (outs),
40947 (ins IntRegs:$Rs32),
40948 "siad($Rs32)",
40949 tc_0a43be35, TypeCR>, Enc_ecbcc8 {
40950 let Inst{13-0} = 0b00000001100000;
40951 let Inst{31-21} = 0b01100100100;
40952 let isSoloAX = 1;
40954 def Y4_tfrscpp : HInst<
40955 (outs DoubleRegs:$Rdd32),
40956 (ins SysRegs64:$Sss128),
40957 "$Rdd32 = $Sss128",
40958 tc_fae9dfa5, TypeCR>, Enc_e32517 {
40959 let Inst{13-5} = 0b000000000;
40960 let Inst{31-23} = 0b011011110;
40962 def Y4_tfrspcp : HInst<
40963 (outs SysRegs64:$Sdd128),
40964 (ins DoubleRegs:$Rss32),
40965 "$Sdd128 = $Rss32",
40966 tc_6ae3426b, TypeCR>, Enc_a705fc {
40967 let Inst{13-7} = 0b0000000;
40968 let Inst{31-21} = 0b01101101000;
40969 let hasNewValue = 1;
40970 let opNewValue = 0;
40972 def Y4_trace : HInst<
40973 (outs),
40974 (ins IntRegs:$Rs32),
40975 "trace($Rs32)",
40976 tc_d7718fbe, TypeCR>, Enc_ecbcc8 {
40977 let Inst{13-0} = 0b00000000000000;
40978 let Inst{31-21} = 0b01100010010;
40979 let isSoloAX = 1;
40981 def Y5_ctlbw : HInst<
40982 (outs IntRegs:$Rd32),
40983 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
40984 "$Rd32 = ctlbw($Rss32,$Rt32)",
40985 tc_bb78483e, TypeCR>, Enc_3d5b28 {
40986 let Inst{7-5} = 0b000;
40987 let Inst{13-13} = 0b0;
40988 let Inst{31-21} = 0b01101100110;
40989 let hasNewValue = 1;
40990 let opNewValue = 0;
40991 let isSolo = 1;
40993 def Y5_l2cleanidx : HInst<
40994 (outs),
40995 (ins IntRegs:$Rs32),
40996 "l2cleanidx($Rs32)",
40997 tc_d234b61a, TypeST>, Enc_ecbcc8 {
40998 let Inst{13-0} = 0b00000000000000;
40999 let Inst{31-21} = 0b10100110001;
41000 let isSoloAX = 1;
41002 def Y5_l2fetch : HInst<
41003 (outs),
41004 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
41005 "l2fetch($Rs32,$Rtt32)",
41006 tc_a3070909, TypeST>, Enc_e6abcf {
41007 let Inst{7-0} = 0b00000000;
41008 let Inst{13-13} = 0b0;
41009 let Inst{31-21} = 0b10100110100;
41010 let isSoloAX = 1;
41011 let hasSideEffects = 1;
41012 let mayStore = 1;
41014 def Y5_l2gclean : HInst<
41015 (outs),
41016 (ins),
41017 "l2gclean",
41018 tc_b3d46584, TypeST>, Enc_e3b0c4 {
41019 let Inst{13-0} = 0b01000000000000;
41020 let Inst{31-16} = 0b1010100000100000;
41021 let isSolo = 1;
41023 def Y5_l2gcleaninv : HInst<
41024 (outs),
41025 (ins),
41026 "l2gcleaninv",
41027 tc_b3d46584, TypeST>, Enc_e3b0c4 {
41028 let Inst{13-0} = 0b01100000000000;
41029 let Inst{31-16} = 0b1010100000100000;
41030 let isSolo = 1;
41032 def Y5_l2gunlock : HInst<
41033 (outs),
41034 (ins),
41035 "l2gunlock",
41036 tc_b3d46584, TypeST>, Enc_e3b0c4 {
41037 let Inst{13-0} = 0b00100000000000;
41038 let Inst{31-16} = 0b1010100000100000;
41039 let isSolo = 1;
41041 def Y5_l2invidx : HInst<
41042 (outs),
41043 (ins IntRegs:$Rs32),
41044 "l2invidx($Rs32)",
41045 tc_d234b61a, TypeST>, Enc_ecbcc8 {
41046 let Inst{13-0} = 0b00000000000000;
41047 let Inst{31-21} = 0b10100110010;
41048 let isSoloAX = 1;
41050 def Y5_l2locka : HInst<
41051 (outs PredRegs:$Pd4),
41052 (ins IntRegs:$Rs32),
41053 "$Pd4 = l2locka($Rs32)",
41054 tc_a724463d, TypeST>, Enc_48b75f {
41055 let Inst{13-2} = 0b100000000000;
41056 let Inst{31-21} = 0b10100000111;
41057 let isPredicateLate = 1;
41058 let isSoloAX = 1;
41060 def Y5_l2unlocka : HInst<
41061 (outs),
41062 (ins IntRegs:$Rs32),
41063 "l2unlocka($Rs32)",
41064 tc_d234b61a, TypeST>, Enc_ecbcc8 {
41065 let Inst{13-0} = 0b00000000000000;
41066 let Inst{31-21} = 0b10100110011;
41067 let isSoloAX = 1;
41069 def Y5_tlbasidi : HInst<
41070 (outs),
41071 (ins IntRegs:$Rs32),
41072 "tlbinvasid($Rs32)",
41073 tc_54f0cee2, TypeCR>, Enc_ecbcc8 {
41074 let Inst{13-0} = 0b00000000000000;
41075 let Inst{31-21} = 0b01101100101;
41076 let isSolo = 1;
41078 def Y5_tlboc : HInst<
41079 (outs IntRegs:$Rd32),
41080 (ins DoubleRegs:$Rss32),
41081 "$Rd32 = tlboc($Rss32)",
41082 tc_6aa823ab, TypeCR>, Enc_90cd8b {
41083 let Inst{13-5} = 0b000000000;
41084 let Inst{31-21} = 0b01101100111;
41085 let hasNewValue = 1;
41086 let opNewValue = 0;
41087 let isSolo = 1;
41089 def Y6_diag : HInst<
41090 (outs),
41091 (ins IntRegs:$Rs32),
41092 "diag($Rs32)",
41093 tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> {
41094 let Inst{13-0} = 0b00000000100000;
41095 let Inst{31-21} = 0b01100010010;
41097 def Y6_diag0 : HInst<
41098 (outs),
41099 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
41100 "diag0($Rss32,$Rtt32)",
41101 tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
41102 let Inst{7-0} = 0b01000000;
41103 let Inst{13-13} = 0b0;
41104 let Inst{31-21} = 0b01100010010;
41106 def Y6_diag1 : HInst<
41107 (outs),
41108 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
41109 "diag1($Rss32,$Rtt32)",
41110 tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> {
41111 let Inst{7-0} = 0b01100000;
41112 let Inst{13-13} = 0b0;
41113 let Inst{31-21} = 0b01100010010;
41115 def Y6_dmlink : HInst<
41116 (outs),
41117 (ins IntRegs:$Rs32, IntRegs:$Rt32),
41118 "dmlink($Rs32,$Rt32)",
41119 tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> {
41120 let Inst{7-0} = 0b01000000;
41121 let Inst{13-13} = 0b0;
41122 let Inst{31-21} = 0b10100110000;
41123 let hasSideEffects = 1;
41124 let isSolo = 1;
41125 let mayStore = 1;
41127 def Y6_dmpause : HInst<
41128 (outs IntRegs:$Rd32),
41129 (ins),
41130 "$Rd32 = dmpause",
41131 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
41132 let Inst{13-5} = 0b000000011;
41133 let Inst{31-16} = 0b1010100000000000;
41134 let hasNewValue = 1;
41135 let opNewValue = 0;
41136 let hasSideEffects = 1;
41137 let isSolo = 1;
41139 def Y6_dmpoll : HInst<
41140 (outs IntRegs:$Rd32),
41141 (ins),
41142 "$Rd32 = dmpoll",
41143 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
41144 let Inst{13-5} = 0b000000010;
41145 let Inst{31-16} = 0b1010100000000000;
41146 let hasNewValue = 1;
41147 let opNewValue = 0;
41148 let hasSideEffects = 1;
41149 let isSolo = 1;
41151 def Y6_dmresume : HInst<
41152 (outs),
41153 (ins IntRegs:$Rs32),
41154 "dmresume($Rs32)",
41155 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
41156 let Inst{13-0} = 0b00000010000000;
41157 let Inst{31-21} = 0b10100110000;
41158 let hasSideEffects = 1;
41159 let isSolo = 1;
41161 def Y6_dmstart : HInst<
41162 (outs),
41163 (ins IntRegs:$Rs32),
41164 "dmstart($Rs32)",
41165 tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> {
41166 let Inst{13-0} = 0b00000000100000;
41167 let Inst{31-21} = 0b10100110000;
41168 let hasSideEffects = 1;
41169 let isSolo = 1;
41171 def Y6_dmwait : HInst<
41172 (outs IntRegs:$Rd32),
41173 (ins),
41174 "$Rd32 = dmwait",
41175 tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> {
41176 let Inst{13-5} = 0b000000001;
41177 let Inst{31-16} = 0b1010100000000000;
41178 let hasNewValue = 1;
41179 let opNewValue = 0;
41180 let hasSideEffects = 1;
41181 let isSolo = 1;
41183 def Y6_l2gcleaninvpa : HInst<
41184 (outs),
41185 (ins DoubleRegs:$Rtt32),
41186 "l2gcleaninv($Rtt32)",
41187 tc_7c28bd7e, TypeST>, Enc_598f6c {
41188 let Inst{7-0} = 0b00000000;
41189 let Inst{13-13} = 0b0;
41190 let Inst{31-16} = 0b1010011011000000;
41191 let isSolo = 1;
41193 def Y6_l2gcleanpa : HInst<
41194 (outs),
41195 (ins DoubleRegs:$Rtt32),
41196 "l2gclean($Rtt32)",
41197 tc_7c28bd7e, TypeST>, Enc_598f6c {
41198 let Inst{7-0} = 0b00000000;
41199 let Inst{13-13} = 0b0;
41200 let Inst{31-16} = 0b1010011010100000;
41201 let isSolo = 1;
41203 def dep_A2_addsat : HInst<
41204 (outs IntRegs:$Rd32),
41205 (ins IntRegs:$Rs32, IntRegs:$Rt32),
41206 "$Rd32 = add($Rs32,$Rt32):sat:deprecated",
41207 tc_8a825db2, TypeALU64>, Enc_5ab2be {
41208 let Inst{7-5} = 0b000;
41209 let Inst{13-13} = 0b0;
41210 let Inst{31-21} = 0b11010101100;
41211 let hasNewValue = 1;
41212 let opNewValue = 0;
41213 let prefersSlot3 = 1;
41214 let Defs = [USR_OVF];
41216 def dep_A2_subsat : HInst<
41217 (outs IntRegs:$Rd32),
41218 (ins IntRegs:$Rt32, IntRegs:$Rs32),
41219 "$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
41220 tc_8a825db2, TypeALU64>, Enc_bd6011 {
41221 let Inst{7-5} = 0b100;
41222 let Inst{13-13} = 0b0;
41223 let Inst{31-21} = 0b11010101100;
41224 let hasNewValue = 1;
41225 let opNewValue = 0;
41226 let prefersSlot3 = 1;
41227 let Defs = [USR_OVF];
41229 def dep_S2_packhl : HInst<
41230 (outs DoubleRegs:$Rdd32),
41231 (ins IntRegs:$Rs32, IntRegs:$Rt32),
41232 "$Rdd32 = packhl($Rs32,$Rt32):deprecated",
41233 tc_5da50c4b, TypeALU64>, Enc_be32a5 {
41234 let Inst{7-5} = 0b000;
41235 let Inst{13-13} = 0b0;
41236 let Inst{31-21} = 0b11010100000;
41238 def dup_A2_add : HInst<
41239 (outs IntRegs:$Rd32),
41240 (ins IntRegs:$Rs32, IntRegs:$Rt32),
41241 "$Rd32 = add($Rs32,$Rt32)",
41242 tc_388f9897, TypeALU32_3op>, Requires<[HasV73]> {
41243 let hasNewValue = 1;
41244 let opNewValue = 0;
41245 let AsmVariantName = "NonParsable";
41246 let isPseudo = 1;
41248 def dup_A2_addi : HInst<
41249 (outs IntRegs:$Rd32),
41250 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41251 "$Rd32 = add($Rs32,#$Ii)",
41252 tc_388f9897, TypeALU32_ADDI>, Requires<[HasV73]> {
41253 let hasNewValue = 1;
41254 let opNewValue = 0;
41255 let AsmVariantName = "NonParsable";
41256 let isPseudo = 1;
41257 let isExtendable = 1;
41258 let opExtendable = 2;
41259 let isExtentSigned = 1;
41260 let opExtentBits = 16;
41261 let opExtentAlign = 0;
41263 def dup_A2_andir : HInst<
41264 (outs IntRegs:$Rd32),
41265 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41266 "$Rd32 = and($Rs32,#$Ii)",
41267 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41268 let hasNewValue = 1;
41269 let opNewValue = 0;
41270 let AsmVariantName = "NonParsable";
41271 let isPseudo = 1;
41272 let isExtendable = 1;
41273 let opExtendable = 2;
41274 let isExtentSigned = 1;
41275 let opExtentBits = 10;
41276 let opExtentAlign = 0;
41278 def dup_A2_combineii : HInst<
41279 (outs DoubleRegs:$Rdd32),
41280 (ins s32_0Imm:$Ii, s8_0Imm:$II),
41281 "$Rdd32 = combine(#$Ii,#$II)",
41282 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41283 let AsmVariantName = "NonParsable";
41284 let isPseudo = 1;
41285 let isExtendable = 1;
41286 let opExtendable = 1;
41287 let isExtentSigned = 1;
41288 let opExtentBits = 8;
41289 let opExtentAlign = 0;
41291 def dup_A2_sxtb : HInst<
41292 (outs IntRegs:$Rd32),
41293 (ins IntRegs:$Rs32),
41294 "$Rd32 = sxtb($Rs32)",
41295 tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
41296 let hasNewValue = 1;
41297 let opNewValue = 0;
41298 let AsmVariantName = "NonParsable";
41299 let isPseudo = 1;
41301 def dup_A2_sxth : HInst<
41302 (outs IntRegs:$Rd32),
41303 (ins IntRegs:$Rs32),
41304 "$Rd32 = sxth($Rs32)",
41305 tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
41306 let hasNewValue = 1;
41307 let opNewValue = 0;
41308 let AsmVariantName = "NonParsable";
41309 let isPseudo = 1;
41311 def dup_A2_tfr : HInst<
41312 (outs IntRegs:$Rd32),
41313 (ins IntRegs:$Rs32),
41314 "$Rd32 = $Rs32",
41315 tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
41316 let hasNewValue = 1;
41317 let opNewValue = 0;
41318 let AsmVariantName = "NonParsable";
41319 let isPseudo = 1;
41321 def dup_A2_tfrsi : HInst<
41322 (outs IntRegs:$Rd32),
41323 (ins s32_0Imm:$Ii),
41324 "$Rd32 = #$Ii",
41325 tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
41326 let hasNewValue = 1;
41327 let opNewValue = 0;
41328 let AsmVariantName = "NonParsable";
41329 let isPseudo = 1;
41330 let isExtendable = 1;
41331 let opExtendable = 1;
41332 let isExtentSigned = 1;
41333 let opExtentBits = 16;
41334 let opExtentAlign = 0;
41336 def dup_A2_zxtb : HInst<
41337 (outs IntRegs:$Rd32),
41338 (ins IntRegs:$Rs32),
41339 "$Rd32 = zxtb($Rs32)",
41340 PSEUDO, TypeMAPPING>, Requires<[HasV73]> {
41341 let hasNewValue = 1;
41342 let opNewValue = 0;
41343 let AsmVariantName = "NonParsable";
41344 let isPseudo = 1;
41346 def dup_A2_zxth : HInst<
41347 (outs IntRegs:$Rd32),
41348 (ins IntRegs:$Rs32),
41349 "$Rd32 = zxth($Rs32)",
41350 tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> {
41351 let hasNewValue = 1;
41352 let opNewValue = 0;
41353 let AsmVariantName = "NonParsable";
41354 let isPseudo = 1;
41356 def dup_A4_combineii : HInst<
41357 (outs DoubleRegs:$Rdd32),
41358 (ins s8_0Imm:$Ii, u32_0Imm:$II),
41359 "$Rdd32 = combine(#$Ii,#$II)",
41360 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41361 let AsmVariantName = "NonParsable";
41362 let isPseudo = 1;
41363 let isExtendable = 1;
41364 let opExtendable = 2;
41365 let isExtentSigned = 0;
41366 let opExtentBits = 6;
41367 let opExtentAlign = 0;
41369 def dup_A4_combineir : HInst<
41370 (outs DoubleRegs:$Rdd32),
41371 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
41372 "$Rdd32 = combine(#$Ii,$Rs32)",
41373 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41374 let AsmVariantName = "NonParsable";
41375 let isPseudo = 1;
41376 let isExtendable = 1;
41377 let opExtendable = 1;
41378 let isExtentSigned = 1;
41379 let opExtentBits = 8;
41380 let opExtentAlign = 0;
41382 def dup_A4_combineri : HInst<
41383 (outs DoubleRegs:$Rdd32),
41384 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41385 "$Rdd32 = combine($Rs32,#$Ii)",
41386 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41387 let AsmVariantName = "NonParsable";
41388 let isPseudo = 1;
41389 let isExtendable = 1;
41390 let opExtendable = 2;
41391 let isExtentSigned = 1;
41392 let opExtentBits = 8;
41393 let opExtentAlign = 0;
41395 def dup_C2_cmoveif : HInst<
41396 (outs IntRegs:$Rd32),
41397 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
41398 "if (!$Pu4) $Rd32 = #$Ii",
41399 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41400 let isPredicated = 1;
41401 let isPredicatedFalse = 1;
41402 let hasNewValue = 1;
41403 let opNewValue = 0;
41404 let AsmVariantName = "NonParsable";
41405 let isPseudo = 1;
41406 let isExtendable = 1;
41407 let opExtendable = 2;
41408 let isExtentSigned = 1;
41409 let opExtentBits = 12;
41410 let opExtentAlign = 0;
41412 def dup_C2_cmoveit : HInst<
41413 (outs IntRegs:$Rd32),
41414 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
41415 "if ($Pu4) $Rd32 = #$Ii",
41416 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41417 let isPredicated = 1;
41418 let hasNewValue = 1;
41419 let opNewValue = 0;
41420 let AsmVariantName = "NonParsable";
41421 let isPseudo = 1;
41422 let isExtendable = 1;
41423 let opExtendable = 2;
41424 let isExtentSigned = 1;
41425 let opExtentBits = 12;
41426 let opExtentAlign = 0;
41428 def dup_C2_cmovenewif : HInst<
41429 (outs IntRegs:$Rd32),
41430 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
41431 "if (!$Pu4.new) $Rd32 = #$Ii",
41432 tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> {
41433 let isPredicated = 1;
41434 let isPredicatedFalse = 1;
41435 let hasNewValue = 1;
41436 let opNewValue = 0;
41437 let AsmVariantName = "NonParsable";
41438 let isPredicatedNew = 1;
41439 let isPseudo = 1;
41440 let isExtendable = 1;
41441 let opExtendable = 2;
41442 let isExtentSigned = 1;
41443 let opExtentBits = 12;
41444 let opExtentAlign = 0;
41446 def dup_C2_cmovenewit : HInst<
41447 (outs IntRegs:$Rd32),
41448 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
41449 "if ($Pu4.new) $Rd32 = #$Ii",
41450 tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> {
41451 let isPredicated = 1;
41452 let hasNewValue = 1;
41453 let opNewValue = 0;
41454 let AsmVariantName = "NonParsable";
41455 let isPredicatedNew = 1;
41456 let isPseudo = 1;
41457 let isExtendable = 1;
41458 let opExtendable = 2;
41459 let isExtentSigned = 1;
41460 let opExtentBits = 12;
41461 let opExtentAlign = 0;
41463 def dup_C2_cmpeqi : HInst<
41464 (outs PredRegs:$Pd4),
41465 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41466 "$Pd4 = cmp.eq($Rs32,#$Ii)",
41467 tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> {
41468 let AsmVariantName = "NonParsable";
41469 let isPseudo = 1;
41470 let isExtendable = 1;
41471 let opExtendable = 2;
41472 let isExtentSigned = 1;
41473 let opExtentBits = 10;
41474 let opExtentAlign = 0;
41476 def dup_L2_deallocframe : HInst<
41477 (outs DoubleRegs:$Rdd32),
41478 (ins IntRegs:$Rs32),
41479 "$Rdd32 = deallocframe($Rs32):raw",
41480 tc_aee6250c, TypeLD>, Requires<[HasV73]> {
41481 let accessSize = DoubleWordAccess;
41482 let AsmVariantName = "NonParsable";
41483 let mayLoad = 1;
41484 let Uses = [FRAMEKEY];
41485 let Defs = [R29];
41486 let isPseudo = 1;
41488 def dup_L2_loadrb_io : HInst<
41489 (outs IntRegs:$Rd32),
41490 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41491 "$Rd32 = memb($Rs32+#$Ii)",
41492 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41493 let hasNewValue = 1;
41494 let opNewValue = 0;
41495 let addrMode = BaseImmOffset;
41496 let accessSize = ByteAccess;
41497 let AsmVariantName = "NonParsable";
41498 let mayLoad = 1;
41499 let isPseudo = 1;
41500 let isExtendable = 1;
41501 let opExtendable = 2;
41502 let isExtentSigned = 1;
41503 let opExtentBits = 11;
41504 let opExtentAlign = 0;
41506 def dup_L2_loadrd_io : HInst<
41507 (outs DoubleRegs:$Rdd32),
41508 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
41509 "$Rdd32 = memd($Rs32+#$Ii)",
41510 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41511 let addrMode = BaseImmOffset;
41512 let accessSize = DoubleWordAccess;
41513 let AsmVariantName = "NonParsable";
41514 let mayLoad = 1;
41515 let isPseudo = 1;
41516 let isExtendable = 1;
41517 let opExtendable = 2;
41518 let isExtentSigned = 1;
41519 let opExtentBits = 14;
41520 let opExtentAlign = 3;
41522 def dup_L2_loadrh_io : HInst<
41523 (outs IntRegs:$Rd32),
41524 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
41525 "$Rd32 = memh($Rs32+#$Ii)",
41526 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41527 let hasNewValue = 1;
41528 let opNewValue = 0;
41529 let addrMode = BaseImmOffset;
41530 let accessSize = HalfWordAccess;
41531 let AsmVariantName = "NonParsable";
41532 let mayLoad = 1;
41533 let isPseudo = 1;
41534 let isExtendable = 1;
41535 let opExtendable = 2;
41536 let isExtentSigned = 1;
41537 let opExtentBits = 12;
41538 let opExtentAlign = 1;
41540 def dup_L2_loadri_io : HInst<
41541 (outs IntRegs:$Rd32),
41542 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
41543 "$Rd32 = memw($Rs32+#$Ii)",
41544 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41545 let hasNewValue = 1;
41546 let opNewValue = 0;
41547 let addrMode = BaseImmOffset;
41548 let accessSize = WordAccess;
41549 let AsmVariantName = "NonParsable";
41550 let mayLoad = 1;
41551 let isPseudo = 1;
41552 let isExtendable = 1;
41553 let opExtendable = 2;
41554 let isExtentSigned = 1;
41555 let opExtentBits = 13;
41556 let opExtentAlign = 2;
41558 def dup_L2_loadrub_io : HInst<
41559 (outs IntRegs:$Rd32),
41560 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
41561 "$Rd32 = memub($Rs32+#$Ii)",
41562 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41563 let hasNewValue = 1;
41564 let opNewValue = 0;
41565 let addrMode = BaseImmOffset;
41566 let accessSize = ByteAccess;
41567 let AsmVariantName = "NonParsable";
41568 let mayLoad = 1;
41569 let isPseudo = 1;
41570 let isExtendable = 1;
41571 let opExtendable = 2;
41572 let isExtentSigned = 1;
41573 let opExtentBits = 11;
41574 let opExtentAlign = 0;
41576 def dup_L2_loadruh_io : HInst<
41577 (outs IntRegs:$Rd32),
41578 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
41579 "$Rd32 = memuh($Rs32+#$Ii)",
41580 tc_eed07714, TypeLD>, Requires<[HasV73]> {
41581 let hasNewValue = 1;
41582 let opNewValue = 0;
41583 let addrMode = BaseImmOffset;
41584 let accessSize = HalfWordAccess;
41585 let AsmVariantName = "NonParsable";
41586 let mayLoad = 1;
41587 let isPseudo = 1;
41588 let isExtendable = 1;
41589 let opExtendable = 2;
41590 let isExtentSigned = 1;
41591 let opExtentBits = 12;
41592 let opExtentAlign = 1;
41594 def dup_S2_allocframe : HInst<
41595 (outs IntRegs:$Rx32),
41596 (ins IntRegs:$Rx32in, u11_3Imm:$Ii),
41597 "allocframe($Rx32,#$Ii):raw",
41598 tc_74a42bda, TypeST>, Requires<[HasV73]> {
41599 let hasNewValue = 1;
41600 let opNewValue = 0;
41601 let addrMode = BaseImmOffset;
41602 let accessSize = DoubleWordAccess;
41603 let AsmVariantName = "NonParsable";
41604 let mayStore = 1;
41605 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
41606 let Defs = [R30];
41607 let isPseudo = 1;
41608 let Constraints = "$Rx32 = $Rx32in";
41610 def dup_S2_storerb_io : HInst<
41611 (outs),
41612 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
41613 "memb($Rs32+#$Ii) = $Rt32",
41614 tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41615 let addrMode = BaseImmOffset;
41616 let accessSize = ByteAccess;
41617 let AsmVariantName = "NonParsable";
41618 let mayStore = 1;
41619 let isPseudo = 1;
41620 let isExtendable = 1;
41621 let opExtendable = 1;
41622 let isExtentSigned = 1;
41623 let opExtentBits = 11;
41624 let opExtentAlign = 0;
41626 def dup_S2_storerd_io : HInst<
41627 (outs),
41628 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
41629 "memd($Rs32+#$Ii) = $Rtt32",
41630 tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41631 let addrMode = BaseImmOffset;
41632 let accessSize = DoubleWordAccess;
41633 let AsmVariantName = "NonParsable";
41634 let mayStore = 1;
41635 let isPseudo = 1;
41636 let isExtendable = 1;
41637 let opExtendable = 1;
41638 let isExtentSigned = 1;
41639 let opExtentBits = 14;
41640 let opExtentAlign = 3;
41642 def dup_S2_storerh_io : HInst<
41643 (outs),
41644 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
41645 "memh($Rs32+#$Ii) = $Rt32",
41646 tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41647 let addrMode = BaseImmOffset;
41648 let accessSize = HalfWordAccess;
41649 let AsmVariantName = "NonParsable";
41650 let mayStore = 1;
41651 let isPseudo = 1;
41652 let isExtendable = 1;
41653 let opExtendable = 1;
41654 let isExtentSigned = 1;
41655 let opExtentBits = 12;
41656 let opExtentAlign = 1;
41658 def dup_S2_storeri_io : HInst<
41659 (outs),
41660 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
41661 "memw($Rs32+#$Ii) = $Rt32",
41662 tc_a9edeffa, TypeST>, Requires<[HasV73]> {
41663 let addrMode = BaseImmOffset;
41664 let accessSize = WordAccess;
41665 let AsmVariantName = "NonParsable";
41666 let mayStore = 1;
41667 let isPseudo = 1;
41668 let isExtendable = 1;
41669 let opExtendable = 1;
41670 let isExtentSigned = 1;
41671 let opExtentBits = 13;
41672 let opExtentAlign = 2;
41674 def dup_S4_storeirb_io : HInst<
41675 (outs),
41676 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
41677 "memb($Rs32+#$Ii) = #$II",
41678 tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> {
41679 let addrMode = BaseImmOffset;
41680 let accessSize = ByteAccess;
41681 let AsmVariantName = "NonParsable";
41682 let mayStore = 1;
41683 let isPseudo = 1;
41684 let isExtendable = 1;
41685 let opExtendable = 2;
41686 let isExtentSigned = 1;
41687 let opExtentBits = 8;
41688 let opExtentAlign = 0;
41690 def dup_S4_storeiri_io : HInst<
41691 (outs),
41692 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
41693 "memw($Rs32+#$Ii) = #$II",
41694 tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> {
41695 let addrMode = BaseImmOffset;
41696 let accessSize = WordAccess;
41697 let AsmVariantName = "NonParsable";
41698 let mayStore = 1;
41699 let isPseudo = 1;
41700 let isExtendable = 1;
41701 let opExtendable = 2;
41702 let isExtentSigned = 1;
41703 let opExtentBits = 8;
41704 let opExtentAlign = 0;