1 //===- HexagonDepInstrInfo.td ---------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // Automatically generated file, please consult code owner before editing. 10 //===----------------------------------------------------------------------===// 11 12 13 def A2_abs : HInst< 14 (outs IntRegs:$Rd32), 15 (ins IntRegs:$Rs32), 16 "$Rd32 = abs($Rs32)", 17 tc_c2f7d806, TypeS_2op>, Enc_5e2823 { 18 let Inst{13-5} = 0b000000100; 19 let Inst{31-21} = 0b10001100100; 20 let hasNewValue = 1; 21 let opNewValue = 0; 22 let prefersSlot3 = 1; 23 } 24 def A2_absp : HInst< 25 (outs DoubleRegs:$Rdd32), 26 (ins DoubleRegs:$Rss32), 27 "$Rdd32 = abs($Rss32)", 28 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 29 let Inst{13-5} = 0b000000110; 30 let Inst{31-21} = 0b10000000100; 31 let prefersSlot3 = 1; 32 } 33 def A2_abssat : HInst< 34 (outs IntRegs:$Rd32), 35 (ins IntRegs:$Rs32), 36 "$Rd32 = abs($Rs32):sat", 37 tc_c2f7d806, TypeS_2op>, Enc_5e2823 { 38 let Inst{13-5} = 0b000000101; 39 let Inst{31-21} = 0b10001100100; 40 let hasNewValue = 1; 41 let opNewValue = 0; 42 let prefersSlot3 = 1; 43 let Defs = [USR_OVF]; 44 } 45 def A2_add : HInst< 46 (outs IntRegs:$Rd32), 47 (ins IntRegs:$Rs32, IntRegs:$Rt32), 48 "$Rd32 = add($Rs32,$Rt32)", 49 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 50 let Inst{7-5} = 0b000; 51 let Inst{13-13} = 0b0; 52 let Inst{31-21} = 0b11110011000; 53 let hasNewValue = 1; 54 let opNewValue = 0; 55 let CextOpcode = "A2_add"; 56 let InputType = "reg"; 57 let BaseOpcode = "A2_add"; 58 let isCommutable = 1; 59 let isPredicable = 1; 60 } 61 def A2_addh_h16_hh : HInst< 62 (outs IntRegs:$Rd32), 63 (ins IntRegs:$Rt32, IntRegs:$Rs32), 64 "$Rd32 = add($Rt32.h,$Rs32.h):<<16", 65 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 66 let Inst{7-5} = 0b011; 67 let Inst{13-13} = 0b0; 68 let Inst{31-21} = 0b11010101010; 69 let hasNewValue = 1; 70 let opNewValue = 0; 71 let prefersSlot3 = 1; 72 } 73 def A2_addh_h16_hl : HInst< 74 (outs IntRegs:$Rd32), 75 (ins IntRegs:$Rt32, IntRegs:$Rs32), 76 "$Rd32 = add($Rt32.h,$Rs32.l):<<16", 77 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 78 let Inst{7-5} = 0b010; 79 let Inst{13-13} = 0b0; 80 let Inst{31-21} = 0b11010101010; 81 let hasNewValue = 1; 82 let opNewValue = 0; 83 let prefersSlot3 = 1; 84 } 85 def A2_addh_h16_lh : HInst< 86 (outs IntRegs:$Rd32), 87 (ins IntRegs:$Rt32, IntRegs:$Rs32), 88 "$Rd32 = add($Rt32.l,$Rs32.h):<<16", 89 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 90 let Inst{7-5} = 0b001; 91 let Inst{13-13} = 0b0; 92 let Inst{31-21} = 0b11010101010; 93 let hasNewValue = 1; 94 let opNewValue = 0; 95 let prefersSlot3 = 1; 96 } 97 def A2_addh_h16_ll : HInst< 98 (outs IntRegs:$Rd32), 99 (ins IntRegs:$Rt32, IntRegs:$Rs32), 100 "$Rd32 = add($Rt32.l,$Rs32.l):<<16", 101 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 102 let Inst{7-5} = 0b000; 103 let Inst{13-13} = 0b0; 104 let Inst{31-21} = 0b11010101010; 105 let hasNewValue = 1; 106 let opNewValue = 0; 107 let prefersSlot3 = 1; 108 } 109 def A2_addh_h16_sat_hh : HInst< 110 (outs IntRegs:$Rd32), 111 (ins IntRegs:$Rt32, IntRegs:$Rs32), 112 "$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16", 113 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 114 let Inst{7-5} = 0b111; 115 let Inst{13-13} = 0b0; 116 let Inst{31-21} = 0b11010101010; 117 let hasNewValue = 1; 118 let opNewValue = 0; 119 let prefersSlot3 = 1; 120 let Defs = [USR_OVF]; 121 } 122 def A2_addh_h16_sat_hl : HInst< 123 (outs IntRegs:$Rd32), 124 (ins IntRegs:$Rt32, IntRegs:$Rs32), 125 "$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16", 126 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 127 let Inst{7-5} = 0b110; 128 let Inst{13-13} = 0b0; 129 let Inst{31-21} = 0b11010101010; 130 let hasNewValue = 1; 131 let opNewValue = 0; 132 let prefersSlot3 = 1; 133 let Defs = [USR_OVF]; 134 } 135 def A2_addh_h16_sat_lh : HInst< 136 (outs IntRegs:$Rd32), 137 (ins IntRegs:$Rt32, IntRegs:$Rs32), 138 "$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16", 139 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 140 let Inst{7-5} = 0b101; 141 let Inst{13-13} = 0b0; 142 let Inst{31-21} = 0b11010101010; 143 let hasNewValue = 1; 144 let opNewValue = 0; 145 let prefersSlot3 = 1; 146 let Defs = [USR_OVF]; 147 } 148 def A2_addh_h16_sat_ll : HInst< 149 (outs IntRegs:$Rd32), 150 (ins IntRegs:$Rt32, IntRegs:$Rs32), 151 "$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16", 152 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 153 let Inst{7-5} = 0b100; 154 let Inst{13-13} = 0b0; 155 let Inst{31-21} = 0b11010101010; 156 let hasNewValue = 1; 157 let opNewValue = 0; 158 let prefersSlot3 = 1; 159 let Defs = [USR_OVF]; 160 } 161 def A2_addh_l16_hl : HInst< 162 (outs IntRegs:$Rd32), 163 (ins IntRegs:$Rt32, IntRegs:$Rs32), 164 "$Rd32 = add($Rt32.l,$Rs32.h)", 165 tc_1b9c9ee5, TypeALU64>, Enc_bd6011 { 166 let Inst{7-5} = 0b010; 167 let Inst{13-13} = 0b0; 168 let Inst{31-21} = 0b11010101000; 169 let hasNewValue = 1; 170 let opNewValue = 0; 171 let prefersSlot3 = 1; 172 } 173 def A2_addh_l16_ll : HInst< 174 (outs IntRegs:$Rd32), 175 (ins IntRegs:$Rt32, IntRegs:$Rs32), 176 "$Rd32 = add($Rt32.l,$Rs32.l)", 177 tc_1b9c9ee5, TypeALU64>, Enc_bd6011 { 178 let Inst{7-5} = 0b000; 179 let Inst{13-13} = 0b0; 180 let Inst{31-21} = 0b11010101000; 181 let hasNewValue = 1; 182 let opNewValue = 0; 183 let prefersSlot3 = 1; 184 } 185 def A2_addh_l16_sat_hl : HInst< 186 (outs IntRegs:$Rd32), 187 (ins IntRegs:$Rt32, IntRegs:$Rs32), 188 "$Rd32 = add($Rt32.l,$Rs32.h):sat", 189 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 190 let Inst{7-5} = 0b110; 191 let Inst{13-13} = 0b0; 192 let Inst{31-21} = 0b11010101000; 193 let hasNewValue = 1; 194 let opNewValue = 0; 195 let prefersSlot3 = 1; 196 let Defs = [USR_OVF]; 197 } 198 def A2_addh_l16_sat_ll : HInst< 199 (outs IntRegs:$Rd32), 200 (ins IntRegs:$Rt32, IntRegs:$Rs32), 201 "$Rd32 = add($Rt32.l,$Rs32.l):sat", 202 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 203 let Inst{7-5} = 0b100; 204 let Inst{13-13} = 0b0; 205 let Inst{31-21} = 0b11010101000; 206 let hasNewValue = 1; 207 let opNewValue = 0; 208 let prefersSlot3 = 1; 209 let Defs = [USR_OVF]; 210 } 211 def A2_addi : HInst< 212 (outs IntRegs:$Rd32), 213 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 214 "$Rd32 = add($Rs32,#$Ii)", 215 tc_b9488031, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel { 216 let Inst{31-28} = 0b1011; 217 let hasNewValue = 1; 218 let opNewValue = 0; 219 let CextOpcode = "A2_add"; 220 let InputType = "imm"; 221 let BaseOpcode = "A2_addi"; 222 let isPredicable = 1; 223 let isAdd = 1; 224 let isExtendable = 1; 225 let opExtendable = 2; 226 let isExtentSigned = 1; 227 let opExtentBits = 16; 228 let opExtentAlign = 0; 229 } 230 def A2_addp : HInst< 231 (outs DoubleRegs:$Rdd32), 232 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 233 "$Rdd32 = add($Rss32,$Rtt32)", 234 tc_540fdfbc, TypeALU64>, Enc_a56825 { 235 let Inst{7-5} = 0b111; 236 let Inst{13-13} = 0b0; 237 let Inst{31-21} = 0b11010011000; 238 let isCommutable = 1; 239 let isAdd = 1; 240 } 241 def A2_addpsat : HInst< 242 (outs DoubleRegs:$Rdd32), 243 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 244 "$Rdd32 = add($Rss32,$Rtt32):sat", 245 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 246 let Inst{7-5} = 0b101; 247 let Inst{13-13} = 0b0; 248 let Inst{31-21} = 0b11010011011; 249 let prefersSlot3 = 1; 250 let Defs = [USR_OVF]; 251 let isCommutable = 1; 252 } 253 def A2_addsat : HInst< 254 (outs IntRegs:$Rd32), 255 (ins IntRegs:$Rs32, IntRegs:$Rt32), 256 "$Rd32 = add($Rs32,$Rt32):sat", 257 tc_5ba5997d, TypeALU32_3op>, Enc_5ab2be { 258 let Inst{7-5} = 0b000; 259 let Inst{13-13} = 0b0; 260 let Inst{31-21} = 0b11110110010; 261 let hasNewValue = 1; 262 let opNewValue = 0; 263 let prefersSlot3 = 1; 264 let Defs = [USR_OVF]; 265 let InputType = "reg"; 266 let isCommutable = 1; 267 } 268 def A2_addsp : HInst< 269 (outs DoubleRegs:$Rdd32), 270 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 271 "$Rdd32 = add($Rs32,$Rtt32)", 272 tc_897d1a9d, TypeALU64> { 273 let isPseudo = 1; 274 } 275 def A2_addsph : HInst< 276 (outs DoubleRegs:$Rdd32), 277 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 278 "$Rdd32 = add($Rss32,$Rtt32):raw:hi", 279 tc_897d1a9d, TypeALU64>, Enc_a56825 { 280 let Inst{7-5} = 0b111; 281 let Inst{13-13} = 0b0; 282 let Inst{31-21} = 0b11010011011; 283 let prefersSlot3 = 1; 284 } 285 def A2_addspl : HInst< 286 (outs DoubleRegs:$Rdd32), 287 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 288 "$Rdd32 = add($Rss32,$Rtt32):raw:lo", 289 tc_897d1a9d, TypeALU64>, Enc_a56825 { 290 let Inst{7-5} = 0b110; 291 let Inst{13-13} = 0b0; 292 let Inst{31-21} = 0b11010011011; 293 let prefersSlot3 = 1; 294 } 295 def A2_and : HInst< 296 (outs IntRegs:$Rd32), 297 (ins IntRegs:$Rs32, IntRegs:$Rt32), 298 "$Rd32 = and($Rs32,$Rt32)", 299 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 300 let Inst{7-5} = 0b000; 301 let Inst{13-13} = 0b0; 302 let Inst{31-21} = 0b11110001000; 303 let hasNewValue = 1; 304 let opNewValue = 0; 305 let CextOpcode = "A2_and"; 306 let InputType = "reg"; 307 let BaseOpcode = "A2_and"; 308 let isCommutable = 1; 309 let isPredicable = 1; 310 } 311 def A2_andir : HInst< 312 (outs IntRegs:$Rd32), 313 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 314 "$Rd32 = and($Rs32,#$Ii)", 315 tc_b9488031, TypeALU32_2op>, Enc_140c83, ImmRegRel { 316 let Inst{31-22} = 0b0111011000; 317 let hasNewValue = 1; 318 let opNewValue = 0; 319 let CextOpcode = "A2_and"; 320 let InputType = "imm"; 321 let isExtendable = 1; 322 let opExtendable = 2; 323 let isExtentSigned = 1; 324 let opExtentBits = 10; 325 let opExtentAlign = 0; 326 } 327 def A2_andp : HInst< 328 (outs DoubleRegs:$Rdd32), 329 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 330 "$Rdd32 = and($Rss32,$Rtt32)", 331 tc_540fdfbc, TypeALU64>, Enc_a56825 { 332 let Inst{7-5} = 0b000; 333 let Inst{13-13} = 0b0; 334 let Inst{31-21} = 0b11010011111; 335 let isCommutable = 1; 336 } 337 def A2_aslh : HInst< 338 (outs IntRegs:$Rd32), 339 (ins IntRegs:$Rs32), 340 "$Rd32 = aslh($Rs32)", 341 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 342 let Inst{13-5} = 0b000000000; 343 let Inst{31-21} = 0b01110000000; 344 let hasNewValue = 1; 345 let opNewValue = 0; 346 let BaseOpcode = "A2_aslh"; 347 let isPredicable = 1; 348 } 349 def A2_asrh : HInst< 350 (outs IntRegs:$Rd32), 351 (ins IntRegs:$Rs32), 352 "$Rd32 = asrh($Rs32)", 353 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 354 let Inst{13-5} = 0b000000000; 355 let Inst{31-21} = 0b01110000001; 356 let hasNewValue = 1; 357 let opNewValue = 0; 358 let BaseOpcode = "A2_asrh"; 359 let isPredicable = 1; 360 } 361 def A2_combine_hh : HInst< 362 (outs IntRegs:$Rd32), 363 (ins IntRegs:$Rt32, IntRegs:$Rs32), 364 "$Rd32 = combine($Rt32.h,$Rs32.h)", 365 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 366 let Inst{7-5} = 0b000; 367 let Inst{13-13} = 0b0; 368 let Inst{31-21} = 0b11110011100; 369 let hasNewValue = 1; 370 let opNewValue = 0; 371 let InputType = "reg"; 372 } 373 def A2_combine_hl : HInst< 374 (outs IntRegs:$Rd32), 375 (ins IntRegs:$Rt32, IntRegs:$Rs32), 376 "$Rd32 = combine($Rt32.h,$Rs32.l)", 377 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 378 let Inst{7-5} = 0b000; 379 let Inst{13-13} = 0b0; 380 let Inst{31-21} = 0b11110011101; 381 let hasNewValue = 1; 382 let opNewValue = 0; 383 let InputType = "reg"; 384 } 385 def A2_combine_lh : HInst< 386 (outs IntRegs:$Rd32), 387 (ins IntRegs:$Rt32, IntRegs:$Rs32), 388 "$Rd32 = combine($Rt32.l,$Rs32.h)", 389 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 390 let Inst{7-5} = 0b000; 391 let Inst{13-13} = 0b0; 392 let Inst{31-21} = 0b11110011110; 393 let hasNewValue = 1; 394 let opNewValue = 0; 395 let InputType = "reg"; 396 } 397 def A2_combine_ll : HInst< 398 (outs IntRegs:$Rd32), 399 (ins IntRegs:$Rt32, IntRegs:$Rs32), 400 "$Rd32 = combine($Rt32.l,$Rs32.l)", 401 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 402 let Inst{7-5} = 0b000; 403 let Inst{13-13} = 0b0; 404 let Inst{31-21} = 0b11110011111; 405 let hasNewValue = 1; 406 let opNewValue = 0; 407 let InputType = "reg"; 408 } 409 def A2_combineii : HInst< 410 (outs DoubleRegs:$Rdd32), 411 (ins s32_0Imm:$Ii, s8_0Imm:$II), 412 "$Rdd32 = combine(#$Ii,#$II)", 413 tc_b9488031, TypeALU32_2op>, Enc_18c338 { 414 let Inst{31-23} = 0b011111000; 415 let isReMaterializable = 1; 416 let isAsCheapAsAMove = 1; 417 let isMoveImm = 1; 418 let isExtendable = 1; 419 let opExtendable = 1; 420 let isExtentSigned = 1; 421 let opExtentBits = 8; 422 let opExtentAlign = 0; 423 } 424 def A2_combinew : HInst< 425 (outs DoubleRegs:$Rdd32), 426 (ins IntRegs:$Rs32, IntRegs:$Rt32), 427 "$Rdd32 = combine($Rs32,$Rt32)", 428 tc_b9488031, TypeALU32_3op>, Enc_be32a5, PredNewRel { 429 let Inst{7-5} = 0b000; 430 let Inst{13-13} = 0b0; 431 let Inst{31-21} = 0b11110101000; 432 let InputType = "reg"; 433 let BaseOpcode = "A2_combinew"; 434 let isPredicable = 1; 435 } 436 def A2_max : HInst< 437 (outs IntRegs:$Rd32), 438 (ins IntRegs:$Rs32, IntRegs:$Rt32), 439 "$Rd32 = max($Rs32,$Rt32)", 440 tc_b44c6e2a, TypeALU64>, Enc_5ab2be { 441 let Inst{7-5} = 0b000; 442 let Inst{13-13} = 0b0; 443 let Inst{31-21} = 0b11010101110; 444 let hasNewValue = 1; 445 let opNewValue = 0; 446 let prefersSlot3 = 1; 447 } 448 def A2_maxp : HInst< 449 (outs DoubleRegs:$Rdd32), 450 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 451 "$Rdd32 = max($Rss32,$Rtt32)", 452 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 453 let Inst{7-5} = 0b100; 454 let Inst{13-13} = 0b0; 455 let Inst{31-21} = 0b11010011110; 456 let prefersSlot3 = 1; 457 } 458 def A2_maxu : HInst< 459 (outs IntRegs:$Rd32), 460 (ins IntRegs:$Rs32, IntRegs:$Rt32), 461 "$Rd32 = maxu($Rs32,$Rt32)", 462 tc_b44c6e2a, TypeALU64>, Enc_5ab2be { 463 let Inst{7-5} = 0b100; 464 let Inst{13-13} = 0b0; 465 let Inst{31-21} = 0b11010101110; 466 let hasNewValue = 1; 467 let opNewValue = 0; 468 let prefersSlot3 = 1; 469 } 470 def A2_maxup : HInst< 471 (outs DoubleRegs:$Rdd32), 472 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 473 "$Rdd32 = maxu($Rss32,$Rtt32)", 474 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 475 let Inst{7-5} = 0b101; 476 let Inst{13-13} = 0b0; 477 let Inst{31-21} = 0b11010011110; 478 let prefersSlot3 = 1; 479 } 480 def A2_min : HInst< 481 (outs IntRegs:$Rd32), 482 (ins IntRegs:$Rt32, IntRegs:$Rs32), 483 "$Rd32 = min($Rt32,$Rs32)", 484 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 485 let Inst{7-5} = 0b000; 486 let Inst{13-13} = 0b0; 487 let Inst{31-21} = 0b11010101101; 488 let hasNewValue = 1; 489 let opNewValue = 0; 490 let prefersSlot3 = 1; 491 } 492 def A2_minp : HInst< 493 (outs DoubleRegs:$Rdd32), 494 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 495 "$Rdd32 = min($Rtt32,$Rss32)", 496 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 497 let Inst{7-5} = 0b110; 498 let Inst{13-13} = 0b0; 499 let Inst{31-21} = 0b11010011101; 500 let prefersSlot3 = 1; 501 } 502 def A2_minu : HInst< 503 (outs IntRegs:$Rd32), 504 (ins IntRegs:$Rt32, IntRegs:$Rs32), 505 "$Rd32 = minu($Rt32,$Rs32)", 506 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 507 let Inst{7-5} = 0b100; 508 let Inst{13-13} = 0b0; 509 let Inst{31-21} = 0b11010101101; 510 let hasNewValue = 1; 511 let opNewValue = 0; 512 let prefersSlot3 = 1; 513 } 514 def A2_minup : HInst< 515 (outs DoubleRegs:$Rdd32), 516 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 517 "$Rdd32 = minu($Rtt32,$Rss32)", 518 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 519 let Inst{7-5} = 0b111; 520 let Inst{13-13} = 0b0; 521 let Inst{31-21} = 0b11010011101; 522 let prefersSlot3 = 1; 523 } 524 def A2_neg : HInst< 525 (outs IntRegs:$Rd32), 526 (ins IntRegs:$Rs32), 527 "$Rd32 = neg($Rs32)", 528 tc_68cb12ce, TypeALU32_2op> { 529 let hasNewValue = 1; 530 let opNewValue = 0; 531 let isPseudo = 1; 532 let isCodeGenOnly = 1; 533 } 534 def A2_negp : HInst< 535 (outs DoubleRegs:$Rdd32), 536 (ins DoubleRegs:$Rss32), 537 "$Rdd32 = neg($Rss32)", 538 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 539 let Inst{13-5} = 0b000000101; 540 let Inst{31-21} = 0b10000000100; 541 } 542 def A2_negsat : HInst< 543 (outs IntRegs:$Rd32), 544 (ins IntRegs:$Rs32), 545 "$Rd32 = neg($Rs32):sat", 546 tc_c2f7d806, TypeS_2op>, Enc_5e2823 { 547 let Inst{13-5} = 0b000000110; 548 let Inst{31-21} = 0b10001100100; 549 let hasNewValue = 1; 550 let opNewValue = 0; 551 let prefersSlot3 = 1; 552 let Defs = [USR_OVF]; 553 } 554 def A2_nop : HInst< 555 (outs), 556 (ins), 557 "nop", 558 tc_6efc556e, TypeALU32_2op>, Enc_e3b0c4 { 559 let Inst{13-0} = 0b00000000000000; 560 let Inst{31-16} = 0b0111111100000000; 561 } 562 def A2_not : HInst< 563 (outs IntRegs:$Rd32), 564 (ins IntRegs:$Rs32), 565 "$Rd32 = not($Rs32)", 566 tc_68cb12ce, TypeALU32_2op> { 567 let hasNewValue = 1; 568 let opNewValue = 0; 569 let isPseudo = 1; 570 let isCodeGenOnly = 1; 571 } 572 def A2_notp : HInst< 573 (outs DoubleRegs:$Rdd32), 574 (ins DoubleRegs:$Rss32), 575 "$Rdd32 = not($Rss32)", 576 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 577 let Inst{13-5} = 0b000000100; 578 let Inst{31-21} = 0b10000000100; 579 } 580 def A2_or : HInst< 581 (outs IntRegs:$Rd32), 582 (ins IntRegs:$Rs32, IntRegs:$Rt32), 583 "$Rd32 = or($Rs32,$Rt32)", 584 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 585 let Inst{7-5} = 0b000; 586 let Inst{13-13} = 0b0; 587 let Inst{31-21} = 0b11110001001; 588 let hasNewValue = 1; 589 let opNewValue = 0; 590 let CextOpcode = "A2_or"; 591 let InputType = "reg"; 592 let BaseOpcode = "A2_or"; 593 let isCommutable = 1; 594 let isPredicable = 1; 595 } 596 def A2_orir : HInst< 597 (outs IntRegs:$Rd32), 598 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 599 "$Rd32 = or($Rs32,#$Ii)", 600 tc_b9488031, TypeALU32_2op>, Enc_140c83, ImmRegRel { 601 let Inst{31-22} = 0b0111011010; 602 let hasNewValue = 1; 603 let opNewValue = 0; 604 let CextOpcode = "A2_or"; 605 let InputType = "imm"; 606 let isExtendable = 1; 607 let opExtendable = 2; 608 let isExtentSigned = 1; 609 let opExtentBits = 10; 610 let opExtentAlign = 0; 611 } 612 def A2_orp : HInst< 613 (outs DoubleRegs:$Rdd32), 614 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 615 "$Rdd32 = or($Rss32,$Rtt32)", 616 tc_540fdfbc, TypeALU64>, Enc_a56825 { 617 let Inst{7-5} = 0b010; 618 let Inst{13-13} = 0b0; 619 let Inst{31-21} = 0b11010011111; 620 let isCommutable = 1; 621 } 622 def A2_paddf : HInst< 623 (outs IntRegs:$Rd32), 624 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 625 "if (!$Pu4) $Rd32 = add($Rs32,$Rt32)", 626 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 627 let Inst{7-7} = 0b1; 628 let Inst{13-13} = 0b0; 629 let Inst{31-21} = 0b11111011000; 630 let isPredicated = 1; 631 let isPredicatedFalse = 1; 632 let hasNewValue = 1; 633 let opNewValue = 0; 634 let CextOpcode = "A2_add"; 635 let InputType = "reg"; 636 let BaseOpcode = "A2_add"; 637 } 638 def A2_paddfnew : HInst< 639 (outs IntRegs:$Rd32), 640 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 641 "if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)", 642 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 643 let Inst{7-7} = 0b1; 644 let Inst{13-13} = 0b1; 645 let Inst{31-21} = 0b11111011000; 646 let isPredicated = 1; 647 let isPredicatedFalse = 1; 648 let hasNewValue = 1; 649 let opNewValue = 0; 650 let isPredicatedNew = 1; 651 let CextOpcode = "A2_add"; 652 let InputType = "reg"; 653 let BaseOpcode = "A2_add"; 654 } 655 def A2_paddif : HInst< 656 (outs IntRegs:$Rd32), 657 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 658 "if (!$Pu4) $Rd32 = add($Rs32,#$Ii)", 659 tc_d6bf0472, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 660 let Inst{13-13} = 0b0; 661 let Inst{31-23} = 0b011101001; 662 let isPredicated = 1; 663 let isPredicatedFalse = 1; 664 let hasNewValue = 1; 665 let opNewValue = 0; 666 let CextOpcode = "A2_add"; 667 let InputType = "imm"; 668 let BaseOpcode = "A2_addi"; 669 let isExtendable = 1; 670 let opExtendable = 3; 671 let isExtentSigned = 1; 672 let opExtentBits = 8; 673 let opExtentAlign = 0; 674 } 675 def A2_paddifnew : HInst< 676 (outs IntRegs:$Rd32), 677 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 678 "if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)", 679 tc_2b2f4060, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 680 let Inst{13-13} = 0b1; 681 let Inst{31-23} = 0b011101001; 682 let isPredicated = 1; 683 let isPredicatedFalse = 1; 684 let hasNewValue = 1; 685 let opNewValue = 0; 686 let isPredicatedNew = 1; 687 let CextOpcode = "A2_add"; 688 let InputType = "imm"; 689 let BaseOpcode = "A2_addi"; 690 let isExtendable = 1; 691 let opExtendable = 3; 692 let isExtentSigned = 1; 693 let opExtentBits = 8; 694 let opExtentAlign = 0; 695 } 696 def A2_paddit : HInst< 697 (outs IntRegs:$Rd32), 698 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 699 "if ($Pu4) $Rd32 = add($Rs32,#$Ii)", 700 tc_d6bf0472, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 701 let Inst{13-13} = 0b0; 702 let Inst{31-23} = 0b011101000; 703 let isPredicated = 1; 704 let hasNewValue = 1; 705 let opNewValue = 0; 706 let CextOpcode = "A2_add"; 707 let InputType = "imm"; 708 let BaseOpcode = "A2_addi"; 709 let isExtendable = 1; 710 let opExtendable = 3; 711 let isExtentSigned = 1; 712 let opExtentBits = 8; 713 let opExtentAlign = 0; 714 } 715 def A2_padditnew : HInst< 716 (outs IntRegs:$Rd32), 717 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 718 "if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)", 719 tc_2b2f4060, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 720 let Inst{13-13} = 0b1; 721 let Inst{31-23} = 0b011101000; 722 let isPredicated = 1; 723 let hasNewValue = 1; 724 let opNewValue = 0; 725 let isPredicatedNew = 1; 726 let CextOpcode = "A2_add"; 727 let InputType = "imm"; 728 let BaseOpcode = "A2_addi"; 729 let isExtendable = 1; 730 let opExtendable = 3; 731 let isExtentSigned = 1; 732 let opExtentBits = 8; 733 let opExtentAlign = 0; 734 } 735 def A2_paddt : HInst< 736 (outs IntRegs:$Rd32), 737 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 738 "if ($Pu4) $Rd32 = add($Rs32,$Rt32)", 739 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 740 let Inst{7-7} = 0b0; 741 let Inst{13-13} = 0b0; 742 let Inst{31-21} = 0b11111011000; 743 let isPredicated = 1; 744 let hasNewValue = 1; 745 let opNewValue = 0; 746 let CextOpcode = "A2_add"; 747 let InputType = "reg"; 748 let BaseOpcode = "A2_add"; 749 } 750 def A2_paddtnew : HInst< 751 (outs IntRegs:$Rd32), 752 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 753 "if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)", 754 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 755 let Inst{7-7} = 0b0; 756 let Inst{13-13} = 0b1; 757 let Inst{31-21} = 0b11111011000; 758 let isPredicated = 1; 759 let hasNewValue = 1; 760 let opNewValue = 0; 761 let isPredicatedNew = 1; 762 let CextOpcode = "A2_add"; 763 let InputType = "reg"; 764 let BaseOpcode = "A2_add"; 765 } 766 def A2_pandf : HInst< 767 (outs IntRegs:$Rd32), 768 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 769 "if (!$Pu4) $Rd32 = and($Rs32,$Rt32)", 770 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 771 let Inst{7-7} = 0b1; 772 let Inst{13-13} = 0b0; 773 let Inst{31-21} = 0b11111001000; 774 let isPredicated = 1; 775 let isPredicatedFalse = 1; 776 let hasNewValue = 1; 777 let opNewValue = 0; 778 let BaseOpcode = "A2_and"; 779 } 780 def A2_pandfnew : HInst< 781 (outs IntRegs:$Rd32), 782 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 783 "if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)", 784 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 785 let Inst{7-7} = 0b1; 786 let Inst{13-13} = 0b1; 787 let Inst{31-21} = 0b11111001000; 788 let isPredicated = 1; 789 let isPredicatedFalse = 1; 790 let hasNewValue = 1; 791 let opNewValue = 0; 792 let isPredicatedNew = 1; 793 let BaseOpcode = "A2_and"; 794 } 795 def A2_pandt : HInst< 796 (outs IntRegs:$Rd32), 797 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 798 "if ($Pu4) $Rd32 = and($Rs32,$Rt32)", 799 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 800 let Inst{7-7} = 0b0; 801 let Inst{13-13} = 0b0; 802 let Inst{31-21} = 0b11111001000; 803 let isPredicated = 1; 804 let hasNewValue = 1; 805 let opNewValue = 0; 806 let BaseOpcode = "A2_and"; 807 } 808 def A2_pandtnew : HInst< 809 (outs IntRegs:$Rd32), 810 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 811 "if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)", 812 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 813 let Inst{7-7} = 0b0; 814 let Inst{13-13} = 0b1; 815 let Inst{31-21} = 0b11111001000; 816 let isPredicated = 1; 817 let hasNewValue = 1; 818 let opNewValue = 0; 819 let isPredicatedNew = 1; 820 let BaseOpcode = "A2_and"; 821 } 822 def A2_porf : HInst< 823 (outs IntRegs:$Rd32), 824 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 825 "if (!$Pu4) $Rd32 = or($Rs32,$Rt32)", 826 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 827 let Inst{7-7} = 0b1; 828 let Inst{13-13} = 0b0; 829 let Inst{31-21} = 0b11111001001; 830 let isPredicated = 1; 831 let isPredicatedFalse = 1; 832 let hasNewValue = 1; 833 let opNewValue = 0; 834 let BaseOpcode = "A2_or"; 835 } 836 def A2_porfnew : HInst< 837 (outs IntRegs:$Rd32), 838 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 839 "if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)", 840 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 841 let Inst{7-7} = 0b1; 842 let Inst{13-13} = 0b1; 843 let Inst{31-21} = 0b11111001001; 844 let isPredicated = 1; 845 let isPredicatedFalse = 1; 846 let hasNewValue = 1; 847 let opNewValue = 0; 848 let isPredicatedNew = 1; 849 let BaseOpcode = "A2_or"; 850 } 851 def A2_port : HInst< 852 (outs IntRegs:$Rd32), 853 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 854 "if ($Pu4) $Rd32 = or($Rs32,$Rt32)", 855 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 856 let Inst{7-7} = 0b0; 857 let Inst{13-13} = 0b0; 858 let Inst{31-21} = 0b11111001001; 859 let isPredicated = 1; 860 let hasNewValue = 1; 861 let opNewValue = 0; 862 let BaseOpcode = "A2_or"; 863 } 864 def A2_portnew : HInst< 865 (outs IntRegs:$Rd32), 866 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 867 "if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)", 868 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 869 let Inst{7-7} = 0b0; 870 let Inst{13-13} = 0b1; 871 let Inst{31-21} = 0b11111001001; 872 let isPredicated = 1; 873 let hasNewValue = 1; 874 let opNewValue = 0; 875 let isPredicatedNew = 1; 876 let BaseOpcode = "A2_or"; 877 } 878 def A2_psubf : HInst< 879 (outs IntRegs:$Rd32), 880 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 881 "if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)", 882 tc_d6bf0472, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 883 let Inst{7-7} = 0b1; 884 let Inst{13-13} = 0b0; 885 let Inst{31-21} = 0b11111011001; 886 let isPredicated = 1; 887 let isPredicatedFalse = 1; 888 let hasNewValue = 1; 889 let opNewValue = 0; 890 let BaseOpcode = "A2_sub"; 891 } 892 def A2_psubfnew : HInst< 893 (outs IntRegs:$Rd32), 894 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 895 "if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 896 tc_2b2f4060, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 897 let Inst{7-7} = 0b1; 898 let Inst{13-13} = 0b1; 899 let Inst{31-21} = 0b11111011001; 900 let isPredicated = 1; 901 let isPredicatedFalse = 1; 902 let hasNewValue = 1; 903 let opNewValue = 0; 904 let isPredicatedNew = 1; 905 let BaseOpcode = "A2_sub"; 906 } 907 def A2_psubt : HInst< 908 (outs IntRegs:$Rd32), 909 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 910 "if ($Pu4) $Rd32 = sub($Rt32,$Rs32)", 911 tc_d6bf0472, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 912 let Inst{7-7} = 0b0; 913 let Inst{13-13} = 0b0; 914 let Inst{31-21} = 0b11111011001; 915 let isPredicated = 1; 916 let hasNewValue = 1; 917 let opNewValue = 0; 918 let BaseOpcode = "A2_sub"; 919 } 920 def A2_psubtnew : HInst< 921 (outs IntRegs:$Rd32), 922 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 923 "if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 924 tc_2b2f4060, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 925 let Inst{7-7} = 0b0; 926 let Inst{13-13} = 0b1; 927 let Inst{31-21} = 0b11111011001; 928 let isPredicated = 1; 929 let hasNewValue = 1; 930 let opNewValue = 0; 931 let isPredicatedNew = 1; 932 let BaseOpcode = "A2_sub"; 933 } 934 def A2_pxorf : HInst< 935 (outs IntRegs:$Rd32), 936 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 937 "if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)", 938 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 939 let Inst{7-7} = 0b1; 940 let Inst{13-13} = 0b0; 941 let Inst{31-21} = 0b11111001011; 942 let isPredicated = 1; 943 let isPredicatedFalse = 1; 944 let hasNewValue = 1; 945 let opNewValue = 0; 946 let BaseOpcode = "A2_xor"; 947 } 948 def A2_pxorfnew : HInst< 949 (outs IntRegs:$Rd32), 950 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 951 "if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 952 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 953 let Inst{7-7} = 0b1; 954 let Inst{13-13} = 0b1; 955 let Inst{31-21} = 0b11111001011; 956 let isPredicated = 1; 957 let isPredicatedFalse = 1; 958 let hasNewValue = 1; 959 let opNewValue = 0; 960 let isPredicatedNew = 1; 961 let BaseOpcode = "A2_xor"; 962 } 963 def A2_pxort : HInst< 964 (outs IntRegs:$Rd32), 965 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 966 "if ($Pu4) $Rd32 = xor($Rs32,$Rt32)", 967 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 968 let Inst{7-7} = 0b0; 969 let Inst{13-13} = 0b0; 970 let Inst{31-21} = 0b11111001011; 971 let isPredicated = 1; 972 let hasNewValue = 1; 973 let opNewValue = 0; 974 let BaseOpcode = "A2_xor"; 975 } 976 def A2_pxortnew : HInst< 977 (outs IntRegs:$Rd32), 978 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 979 "if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 980 tc_2b2f4060, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 981 let Inst{7-7} = 0b0; 982 let Inst{13-13} = 0b1; 983 let Inst{31-21} = 0b11111001011; 984 let isPredicated = 1; 985 let hasNewValue = 1; 986 let opNewValue = 0; 987 let isPredicatedNew = 1; 988 let BaseOpcode = "A2_xor"; 989 } 990 def A2_roundsat : HInst< 991 (outs IntRegs:$Rd32), 992 (ins DoubleRegs:$Rss32), 993 "$Rd32 = round($Rss32):sat", 994 tc_c2f7d806, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 995 let Inst{13-5} = 0b000000001; 996 let Inst{31-21} = 0b10001000110; 997 let hasNewValue = 1; 998 let opNewValue = 0; 999 let prefersSlot3 = 1; 1000 let Defs = [USR_OVF]; 1001 } 1002 def A2_sat : HInst< 1003 (outs IntRegs:$Rd32), 1004 (ins DoubleRegs:$Rss32), 1005 "$Rd32 = sat($Rss32)", 1006 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 1007 let Inst{13-5} = 0b000000000; 1008 let Inst{31-21} = 0b10001000110; 1009 let hasNewValue = 1; 1010 let opNewValue = 0; 1011 let Defs = [USR_OVF]; 1012 } 1013 def A2_satb : HInst< 1014 (outs IntRegs:$Rd32), 1015 (ins IntRegs:$Rs32), 1016 "$Rd32 = satb($Rs32)", 1017 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 1018 let Inst{13-5} = 0b000000111; 1019 let Inst{31-21} = 0b10001100110; 1020 let hasNewValue = 1; 1021 let opNewValue = 0; 1022 let Defs = [USR_OVF]; 1023 } 1024 def A2_sath : HInst< 1025 (outs IntRegs:$Rd32), 1026 (ins IntRegs:$Rs32), 1027 "$Rd32 = sath($Rs32)", 1028 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 1029 let Inst{13-5} = 0b000000100; 1030 let Inst{31-21} = 0b10001100110; 1031 let hasNewValue = 1; 1032 let opNewValue = 0; 1033 let Defs = [USR_OVF]; 1034 } 1035 def A2_satub : HInst< 1036 (outs IntRegs:$Rd32), 1037 (ins IntRegs:$Rs32), 1038 "$Rd32 = satub($Rs32)", 1039 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 1040 let Inst{13-5} = 0b000000110; 1041 let Inst{31-21} = 0b10001100110; 1042 let hasNewValue = 1; 1043 let opNewValue = 0; 1044 let Defs = [USR_OVF]; 1045 } 1046 def A2_satuh : HInst< 1047 (outs IntRegs:$Rd32), 1048 (ins IntRegs:$Rs32), 1049 "$Rd32 = satuh($Rs32)", 1050 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 1051 let Inst{13-5} = 0b000000101; 1052 let Inst{31-21} = 0b10001100110; 1053 let hasNewValue = 1; 1054 let opNewValue = 0; 1055 let Defs = [USR_OVF]; 1056 } 1057 def A2_sub : HInst< 1058 (outs IntRegs:$Rd32), 1059 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1060 "$Rd32 = sub($Rt32,$Rs32)", 1061 tc_b9488031, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel { 1062 let Inst{7-5} = 0b000; 1063 let Inst{13-13} = 0b0; 1064 let Inst{31-21} = 0b11110011001; 1065 let hasNewValue = 1; 1066 let opNewValue = 0; 1067 let CextOpcode = "A2_sub"; 1068 let InputType = "reg"; 1069 let BaseOpcode = "A2_sub"; 1070 let isPredicable = 1; 1071 } 1072 def A2_subh_h16_hh : HInst< 1073 (outs IntRegs:$Rd32), 1074 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1075 "$Rd32 = sub($Rt32.h,$Rs32.h):<<16", 1076 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 1077 let Inst{7-5} = 0b011; 1078 let Inst{13-13} = 0b0; 1079 let Inst{31-21} = 0b11010101011; 1080 let hasNewValue = 1; 1081 let opNewValue = 0; 1082 let prefersSlot3 = 1; 1083 } 1084 def A2_subh_h16_hl : HInst< 1085 (outs IntRegs:$Rd32), 1086 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1087 "$Rd32 = sub($Rt32.h,$Rs32.l):<<16", 1088 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 1089 let Inst{7-5} = 0b010; 1090 let Inst{13-13} = 0b0; 1091 let Inst{31-21} = 0b11010101011; 1092 let hasNewValue = 1; 1093 let opNewValue = 0; 1094 let prefersSlot3 = 1; 1095 } 1096 def A2_subh_h16_lh : HInst< 1097 (outs IntRegs:$Rd32), 1098 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1099 "$Rd32 = sub($Rt32.l,$Rs32.h):<<16", 1100 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 1101 let Inst{7-5} = 0b001; 1102 let Inst{13-13} = 0b0; 1103 let Inst{31-21} = 0b11010101011; 1104 let hasNewValue = 1; 1105 let opNewValue = 0; 1106 let prefersSlot3 = 1; 1107 } 1108 def A2_subh_h16_ll : HInst< 1109 (outs IntRegs:$Rd32), 1110 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1111 "$Rd32 = sub($Rt32.l,$Rs32.l):<<16", 1112 tc_897d1a9d, TypeALU64>, Enc_bd6011 { 1113 let Inst{7-5} = 0b000; 1114 let Inst{13-13} = 0b0; 1115 let Inst{31-21} = 0b11010101011; 1116 let hasNewValue = 1; 1117 let opNewValue = 0; 1118 let prefersSlot3 = 1; 1119 } 1120 def A2_subh_h16_sat_hh : HInst< 1121 (outs IntRegs:$Rd32), 1122 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1123 "$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16", 1124 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1125 let Inst{7-5} = 0b111; 1126 let Inst{13-13} = 0b0; 1127 let Inst{31-21} = 0b11010101011; 1128 let hasNewValue = 1; 1129 let opNewValue = 0; 1130 let prefersSlot3 = 1; 1131 let Defs = [USR_OVF]; 1132 } 1133 def A2_subh_h16_sat_hl : HInst< 1134 (outs IntRegs:$Rd32), 1135 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1136 "$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16", 1137 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1138 let Inst{7-5} = 0b110; 1139 let Inst{13-13} = 0b0; 1140 let Inst{31-21} = 0b11010101011; 1141 let hasNewValue = 1; 1142 let opNewValue = 0; 1143 let prefersSlot3 = 1; 1144 let Defs = [USR_OVF]; 1145 } 1146 def A2_subh_h16_sat_lh : HInst< 1147 (outs IntRegs:$Rd32), 1148 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1149 "$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16", 1150 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1151 let Inst{7-5} = 0b101; 1152 let Inst{13-13} = 0b0; 1153 let Inst{31-21} = 0b11010101011; 1154 let hasNewValue = 1; 1155 let opNewValue = 0; 1156 let prefersSlot3 = 1; 1157 let Defs = [USR_OVF]; 1158 } 1159 def A2_subh_h16_sat_ll : HInst< 1160 (outs IntRegs:$Rd32), 1161 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1162 "$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16", 1163 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1164 let Inst{7-5} = 0b100; 1165 let Inst{13-13} = 0b0; 1166 let Inst{31-21} = 0b11010101011; 1167 let hasNewValue = 1; 1168 let opNewValue = 0; 1169 let prefersSlot3 = 1; 1170 let Defs = [USR_OVF]; 1171 } 1172 def A2_subh_l16_hl : HInst< 1173 (outs IntRegs:$Rd32), 1174 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1175 "$Rd32 = sub($Rt32.l,$Rs32.h)", 1176 tc_1b9c9ee5, TypeALU64>, Enc_bd6011 { 1177 let Inst{7-5} = 0b010; 1178 let Inst{13-13} = 0b0; 1179 let Inst{31-21} = 0b11010101001; 1180 let hasNewValue = 1; 1181 let opNewValue = 0; 1182 let prefersSlot3 = 1; 1183 } 1184 def A2_subh_l16_ll : HInst< 1185 (outs IntRegs:$Rd32), 1186 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1187 "$Rd32 = sub($Rt32.l,$Rs32.l)", 1188 tc_1b9c9ee5, TypeALU64>, Enc_bd6011 { 1189 let Inst{7-5} = 0b000; 1190 let Inst{13-13} = 0b0; 1191 let Inst{31-21} = 0b11010101001; 1192 let hasNewValue = 1; 1193 let opNewValue = 0; 1194 let prefersSlot3 = 1; 1195 } 1196 def A2_subh_l16_sat_hl : HInst< 1197 (outs IntRegs:$Rd32), 1198 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1199 "$Rd32 = sub($Rt32.l,$Rs32.h):sat", 1200 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1201 let Inst{7-5} = 0b110; 1202 let Inst{13-13} = 0b0; 1203 let Inst{31-21} = 0b11010101001; 1204 let hasNewValue = 1; 1205 let opNewValue = 0; 1206 let prefersSlot3 = 1; 1207 let Defs = [USR_OVF]; 1208 } 1209 def A2_subh_l16_sat_ll : HInst< 1210 (outs IntRegs:$Rd32), 1211 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1212 "$Rd32 = sub($Rt32.l,$Rs32.l):sat", 1213 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 1214 let Inst{7-5} = 0b100; 1215 let Inst{13-13} = 0b0; 1216 let Inst{31-21} = 0b11010101001; 1217 let hasNewValue = 1; 1218 let opNewValue = 0; 1219 let prefersSlot3 = 1; 1220 let Defs = [USR_OVF]; 1221 } 1222 def A2_subp : HInst< 1223 (outs DoubleRegs:$Rdd32), 1224 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1225 "$Rdd32 = sub($Rtt32,$Rss32)", 1226 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 1227 let Inst{7-5} = 0b111; 1228 let Inst{13-13} = 0b0; 1229 let Inst{31-21} = 0b11010011001; 1230 } 1231 def A2_subri : HInst< 1232 (outs IntRegs:$Rd32), 1233 (ins s32_0Imm:$Ii, IntRegs:$Rs32), 1234 "$Rd32 = sub(#$Ii,$Rs32)", 1235 tc_b9488031, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel { 1236 let Inst{31-22} = 0b0111011001; 1237 let hasNewValue = 1; 1238 let opNewValue = 0; 1239 let CextOpcode = "A2_sub"; 1240 let InputType = "imm"; 1241 let isExtendable = 1; 1242 let opExtendable = 1; 1243 let isExtentSigned = 1; 1244 let opExtentBits = 10; 1245 let opExtentAlign = 0; 1246 } 1247 def A2_subsat : HInst< 1248 (outs IntRegs:$Rd32), 1249 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1250 "$Rd32 = sub($Rt32,$Rs32):sat", 1251 tc_5ba5997d, TypeALU32_3op>, Enc_bd6011 { 1252 let Inst{7-5} = 0b000; 1253 let Inst{13-13} = 0b0; 1254 let Inst{31-21} = 0b11110110110; 1255 let hasNewValue = 1; 1256 let opNewValue = 0; 1257 let prefersSlot3 = 1; 1258 let Defs = [USR_OVF]; 1259 let InputType = "reg"; 1260 } 1261 def A2_svaddh : HInst< 1262 (outs IntRegs:$Rd32), 1263 (ins IntRegs:$Rs32, IntRegs:$Rt32), 1264 "$Rd32 = vaddh($Rs32,$Rt32)", 1265 tc_b9488031, TypeALU32_3op>, Enc_5ab2be { 1266 let Inst{7-5} = 0b000; 1267 let Inst{13-13} = 0b0; 1268 let Inst{31-21} = 0b11110110000; 1269 let hasNewValue = 1; 1270 let opNewValue = 0; 1271 let InputType = "reg"; 1272 let isCommutable = 1; 1273 } 1274 def A2_svaddhs : HInst< 1275 (outs IntRegs:$Rd32), 1276 (ins IntRegs:$Rs32, IntRegs:$Rt32), 1277 "$Rd32 = vaddh($Rs32,$Rt32):sat", 1278 tc_5ba5997d, TypeALU32_3op>, Enc_5ab2be { 1279 let Inst{7-5} = 0b000; 1280 let Inst{13-13} = 0b0; 1281 let Inst{31-21} = 0b11110110001; 1282 let hasNewValue = 1; 1283 let opNewValue = 0; 1284 let prefersSlot3 = 1; 1285 let Defs = [USR_OVF]; 1286 let InputType = "reg"; 1287 let isCommutable = 1; 1288 } 1289 def A2_svadduhs : HInst< 1290 (outs IntRegs:$Rd32), 1291 (ins IntRegs:$Rs32, IntRegs:$Rt32), 1292 "$Rd32 = vadduh($Rs32,$Rt32):sat", 1293 tc_5ba5997d, TypeALU32_3op>, Enc_5ab2be { 1294 let Inst{7-5} = 0b000; 1295 let Inst{13-13} = 0b0; 1296 let Inst{31-21} = 0b11110110011; 1297 let hasNewValue = 1; 1298 let opNewValue = 0; 1299 let prefersSlot3 = 1; 1300 let Defs = [USR_OVF]; 1301 let InputType = "reg"; 1302 let isCommutable = 1; 1303 } 1304 def A2_svavgh : HInst< 1305 (outs IntRegs:$Rd32), 1306 (ins IntRegs:$Rs32, IntRegs:$Rt32), 1307 "$Rd32 = vavgh($Rs32,$Rt32)", 1308 tc_b9488031, TypeALU32_3op>, Enc_5ab2be { 1309 let Inst{7-5} = 0b000; 1310 let Inst{13-13} = 0b0; 1311 let Inst{31-21} = 0b11110111000; 1312 let hasNewValue = 1; 1313 let opNewValue = 0; 1314 let InputType = "reg"; 1315 let isCommutable = 1; 1316 } 1317 def A2_svavghs : HInst< 1318 (outs IntRegs:$Rd32), 1319 (ins IntRegs:$Rs32, IntRegs:$Rt32), 1320 "$Rd32 = vavgh($Rs32,$Rt32):rnd", 1321 tc_8fe6b782, TypeALU32_3op>, Enc_5ab2be { 1322 let Inst{7-5} = 0b000; 1323 let Inst{13-13} = 0b0; 1324 let Inst{31-21} = 0b11110111001; 1325 let hasNewValue = 1; 1326 let opNewValue = 0; 1327 let InputType = "reg"; 1328 let isCommutable = 1; 1329 } 1330 def A2_svnavgh : HInst< 1331 (outs IntRegs:$Rd32), 1332 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1333 "$Rd32 = vnavgh($Rt32,$Rs32)", 1334 tc_b9488031, 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 InputType = "reg"; 1341 } 1342 def A2_svsubh : HInst< 1343 (outs IntRegs:$Rd32), 1344 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1345 "$Rd32 = vsubh($Rt32,$Rs32)", 1346 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 1347 let Inst{7-5} = 0b000; 1348 let Inst{13-13} = 0b0; 1349 let Inst{31-21} = 0b11110110100; 1350 let hasNewValue = 1; 1351 let opNewValue = 0; 1352 let InputType = "reg"; 1353 } 1354 def A2_svsubhs : HInst< 1355 (outs IntRegs:$Rd32), 1356 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1357 "$Rd32 = vsubh($Rt32,$Rs32):sat", 1358 tc_5ba5997d, TypeALU32_3op>, Enc_bd6011 { 1359 let Inst{7-5} = 0b000; 1360 let Inst{13-13} = 0b0; 1361 let Inst{31-21} = 0b11110110101; 1362 let hasNewValue = 1; 1363 let opNewValue = 0; 1364 let prefersSlot3 = 1; 1365 let Defs = [USR_OVF]; 1366 let InputType = "reg"; 1367 } 1368 def A2_svsubuhs : HInst< 1369 (outs IntRegs:$Rd32), 1370 (ins IntRegs:$Rt32, IntRegs:$Rs32), 1371 "$Rd32 = vsubuh($Rt32,$Rs32):sat", 1372 tc_5ba5997d, TypeALU32_3op>, Enc_bd6011 { 1373 let Inst{7-5} = 0b000; 1374 let Inst{13-13} = 0b0; 1375 let Inst{31-21} = 0b11110110111; 1376 let hasNewValue = 1; 1377 let opNewValue = 0; 1378 let prefersSlot3 = 1; 1379 let Defs = [USR_OVF]; 1380 let InputType = "reg"; 1381 } 1382 def A2_swiz : HInst< 1383 (outs IntRegs:$Rd32), 1384 (ins IntRegs:$Rs32), 1385 "$Rd32 = swiz($Rs32)", 1386 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 1387 let Inst{13-5} = 0b000000111; 1388 let Inst{31-21} = 0b10001100100; 1389 let hasNewValue = 1; 1390 let opNewValue = 0; 1391 } 1392 def A2_sxtb : HInst< 1393 (outs IntRegs:$Rd32), 1394 (ins IntRegs:$Rs32), 1395 "$Rd32 = sxtb($Rs32)", 1396 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1397 let Inst{13-5} = 0b000000000; 1398 let Inst{31-21} = 0b01110000101; 1399 let hasNewValue = 1; 1400 let opNewValue = 0; 1401 let BaseOpcode = "A2_sxtb"; 1402 let isPredicable = 1; 1403 } 1404 def A2_sxth : HInst< 1405 (outs IntRegs:$Rd32), 1406 (ins IntRegs:$Rs32), 1407 "$Rd32 = sxth($Rs32)", 1408 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1409 let Inst{13-5} = 0b000000000; 1410 let Inst{31-21} = 0b01110000111; 1411 let hasNewValue = 1; 1412 let opNewValue = 0; 1413 let BaseOpcode = "A2_sxth"; 1414 let isPredicable = 1; 1415 } 1416 def A2_sxtw : HInst< 1417 (outs DoubleRegs:$Rdd32), 1418 (ins IntRegs:$Rs32), 1419 "$Rdd32 = sxtw($Rs32)", 1420 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 1421 let Inst{13-5} = 0b000000000; 1422 let Inst{31-21} = 0b10000100010; 1423 } 1424 def A2_tfr : HInst< 1425 (outs IntRegs:$Rd32), 1426 (ins IntRegs:$Rs32), 1427 "$Rd32 = $Rs32", 1428 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1429 let Inst{13-5} = 0b000000000; 1430 let Inst{31-21} = 0b01110000011; 1431 let hasNewValue = 1; 1432 let opNewValue = 0; 1433 let InputType = "reg"; 1434 let BaseOpcode = "A2_tfr"; 1435 let isPredicable = 1; 1436 } 1437 def A2_tfrcrr : HInst< 1438 (outs IntRegs:$Rd32), 1439 (ins CtrRegs:$Cs32), 1440 "$Rd32 = $Cs32", 1441 tc_29175780, TypeCR>, Enc_0cb018 { 1442 let Inst{13-5} = 0b000000000; 1443 let Inst{31-21} = 0b01101010000; 1444 let hasNewValue = 1; 1445 let opNewValue = 0; 1446 } 1447 def A2_tfrf : HInst< 1448 (outs IntRegs:$Rd32), 1449 (ins PredRegs:$Pu4, IntRegs:$Rs32), 1450 "if (!$Pu4) $Rd32 = $Rs32", 1451 tc_d6bf0472, TypeALU32_2op>, PredNewRel, ImmRegRel { 1452 let isPredicated = 1; 1453 let isPredicatedFalse = 1; 1454 let hasNewValue = 1; 1455 let opNewValue = 0; 1456 let CextOpcode = "A2_tfr"; 1457 let InputType = "reg"; 1458 let BaseOpcode = "A2_tfr"; 1459 let isPseudo = 1; 1460 let isCodeGenOnly = 1; 1461 } 1462 def A2_tfrfnew : HInst< 1463 (outs IntRegs:$Rd32), 1464 (ins PredRegs:$Pu4, IntRegs:$Rs32), 1465 "if (!$Pu4.new) $Rd32 = $Rs32", 1466 tc_2b2f4060, TypeALU32_2op>, PredNewRel, ImmRegRel { 1467 let isPredicated = 1; 1468 let isPredicatedFalse = 1; 1469 let hasNewValue = 1; 1470 let opNewValue = 0; 1471 let isPredicatedNew = 1; 1472 let CextOpcode = "A2_tfr"; 1473 let InputType = "reg"; 1474 let BaseOpcode = "A2_tfr"; 1475 let isPseudo = 1; 1476 let isCodeGenOnly = 1; 1477 } 1478 def A2_tfrih : HInst< 1479 (outs IntRegs:$Rx32), 1480 (ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1481 "$Rx32.h = #$Ii", 1482 tc_b9488031, TypeALU32_2op>, Enc_51436c { 1483 let Inst{21-21} = 0b1; 1484 let Inst{31-24} = 0b01110010; 1485 let hasNewValue = 1; 1486 let opNewValue = 0; 1487 let Constraints = "$Rx32 = $Rx32in"; 1488 } 1489 def A2_tfril : HInst< 1490 (outs IntRegs:$Rx32), 1491 (ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1492 "$Rx32.l = #$Ii", 1493 tc_b9488031, TypeALU32_2op>, Enc_51436c { 1494 let Inst{21-21} = 0b1; 1495 let Inst{31-24} = 0b01110001; 1496 let hasNewValue = 1; 1497 let opNewValue = 0; 1498 let Constraints = "$Rx32 = $Rx32in"; 1499 } 1500 def A2_tfrp : HInst< 1501 (outs DoubleRegs:$Rdd32), 1502 (ins DoubleRegs:$Rss32), 1503 "$Rdd32 = $Rss32", 1504 tc_b9488031, TypeALU32_2op>, PredNewRel { 1505 let BaseOpcode = "A2_tfrp"; 1506 let isPredicable = 1; 1507 let isPseudo = 1; 1508 } 1509 def A2_tfrpf : HInst< 1510 (outs DoubleRegs:$Rdd32), 1511 (ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1512 "if (!$Pu4) $Rdd32 = $Rss32", 1513 tc_b9488031, TypeALU32_2op>, PredNewRel { 1514 let isPredicated = 1; 1515 let isPredicatedFalse = 1; 1516 let BaseOpcode = "A2_tfrp"; 1517 let isPseudo = 1; 1518 } 1519 def A2_tfrpfnew : HInst< 1520 (outs DoubleRegs:$Rdd32), 1521 (ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1522 "if (!$Pu4.new) $Rdd32 = $Rss32", 1523 tc_5f6847a1, TypeALU32_2op>, PredNewRel { 1524 let isPredicated = 1; 1525 let isPredicatedFalse = 1; 1526 let isPredicatedNew = 1; 1527 let BaseOpcode = "A2_tfrp"; 1528 let isPseudo = 1; 1529 } 1530 def A2_tfrpi : HInst< 1531 (outs DoubleRegs:$Rdd32), 1532 (ins s8_0Imm:$Ii), 1533 "$Rdd32 = #$Ii", 1534 tc_b9488031, TypeALU64> { 1535 let isReMaterializable = 1; 1536 let isAsCheapAsAMove = 1; 1537 let isMoveImm = 1; 1538 let isPseudo = 1; 1539 } 1540 def A2_tfrpt : HInst< 1541 (outs DoubleRegs:$Rdd32), 1542 (ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1543 "if ($Pu4) $Rdd32 = $Rss32", 1544 tc_b9488031, TypeALU32_2op>, PredNewRel { 1545 let isPredicated = 1; 1546 let BaseOpcode = "A2_tfrp"; 1547 let isPseudo = 1; 1548 } 1549 def A2_tfrptnew : HInst< 1550 (outs DoubleRegs:$Rdd32), 1551 (ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1552 "if ($Pu4.new) $Rdd32 = $Rss32", 1553 tc_5f6847a1, TypeALU32_2op>, PredNewRel { 1554 let isPredicated = 1; 1555 let isPredicatedNew = 1; 1556 let BaseOpcode = "A2_tfrp"; 1557 let isPseudo = 1; 1558 } 1559 def A2_tfrrcr : HInst< 1560 (outs CtrRegs:$Cd32), 1561 (ins IntRegs:$Rs32), 1562 "$Cd32 = $Rs32", 1563 tc_a21dc435, TypeCR>, Enc_bd811a { 1564 let Inst{13-5} = 0b000000000; 1565 let Inst{31-21} = 0b01100010001; 1566 let hasNewValue = 1; 1567 let opNewValue = 0; 1568 } 1569 def A2_tfrsi : HInst< 1570 (outs IntRegs:$Rd32), 1571 (ins s32_0Imm:$Ii), 1572 "$Rd32 = #$Ii", 1573 tc_68cb12ce, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel { 1574 let Inst{21-21} = 0b0; 1575 let Inst{31-24} = 0b01111000; 1576 let hasNewValue = 1; 1577 let opNewValue = 0; 1578 let CextOpcode = "A2_tfr"; 1579 let InputType = "imm"; 1580 let BaseOpcode = "A2_tfrsi"; 1581 let isPredicable = 1; 1582 let isReMaterializable = 1; 1583 let isAsCheapAsAMove = 1; 1584 let isMoveImm = 1; 1585 let isExtendable = 1; 1586 let opExtendable = 1; 1587 let isExtentSigned = 1; 1588 let opExtentBits = 16; 1589 let opExtentAlign = 0; 1590 } 1591 def A2_tfrt : HInst< 1592 (outs IntRegs:$Rd32), 1593 (ins PredRegs:$Pu4, IntRegs:$Rs32), 1594 "if ($Pu4) $Rd32 = $Rs32", 1595 tc_d6bf0472, TypeALU32_2op>, PredNewRel, ImmRegRel { 1596 let isPredicated = 1; 1597 let hasNewValue = 1; 1598 let opNewValue = 0; 1599 let CextOpcode = "A2_tfr"; 1600 let InputType = "reg"; 1601 let BaseOpcode = "A2_tfr"; 1602 let isPseudo = 1; 1603 let isCodeGenOnly = 1; 1604 } 1605 def A2_tfrtnew : HInst< 1606 (outs IntRegs:$Rd32), 1607 (ins PredRegs:$Pu4, IntRegs:$Rs32), 1608 "if ($Pu4.new) $Rd32 = $Rs32", 1609 tc_2b2f4060, TypeALU32_2op>, PredNewRel, ImmRegRel { 1610 let isPredicated = 1; 1611 let hasNewValue = 1; 1612 let opNewValue = 0; 1613 let isPredicatedNew = 1; 1614 let CextOpcode = "A2_tfr"; 1615 let InputType = "reg"; 1616 let BaseOpcode = "A2_tfr"; 1617 let isPseudo = 1; 1618 let isCodeGenOnly = 1; 1619 } 1620 def A2_vabsh : HInst< 1621 (outs DoubleRegs:$Rdd32), 1622 (ins DoubleRegs:$Rss32), 1623 "$Rdd32 = vabsh($Rss32)", 1624 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 1625 let Inst{13-5} = 0b000000100; 1626 let Inst{31-21} = 0b10000000010; 1627 let prefersSlot3 = 1; 1628 } 1629 def A2_vabshsat : HInst< 1630 (outs DoubleRegs:$Rdd32), 1631 (ins DoubleRegs:$Rss32), 1632 "$Rdd32 = vabsh($Rss32):sat", 1633 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 1634 let Inst{13-5} = 0b000000101; 1635 let Inst{31-21} = 0b10000000010; 1636 let prefersSlot3 = 1; 1637 let Defs = [USR_OVF]; 1638 } 1639 def A2_vabsw : HInst< 1640 (outs DoubleRegs:$Rdd32), 1641 (ins DoubleRegs:$Rss32), 1642 "$Rdd32 = vabsw($Rss32)", 1643 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 1644 let Inst{13-5} = 0b000000110; 1645 let Inst{31-21} = 0b10000000010; 1646 let prefersSlot3 = 1; 1647 } 1648 def A2_vabswsat : HInst< 1649 (outs DoubleRegs:$Rdd32), 1650 (ins DoubleRegs:$Rss32), 1651 "$Rdd32 = vabsw($Rss32):sat", 1652 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 1653 let Inst{13-5} = 0b000000111; 1654 let Inst{31-21} = 0b10000000010; 1655 let prefersSlot3 = 1; 1656 let Defs = [USR_OVF]; 1657 } 1658 def A2_vaddb_map : HInst< 1659 (outs DoubleRegs:$Rdd32), 1660 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1661 "$Rdd32 = vaddb($Rss32,$Rtt32)", 1662 tc_540fdfbc, TypeMAPPING> { 1663 let isPseudo = 1; 1664 let isCodeGenOnly = 1; 1665 } 1666 def A2_vaddh : HInst< 1667 (outs DoubleRegs:$Rdd32), 1668 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1669 "$Rdd32 = vaddh($Rss32,$Rtt32)", 1670 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1671 let Inst{7-5} = 0b010; 1672 let Inst{13-13} = 0b0; 1673 let Inst{31-21} = 0b11010011000; 1674 } 1675 def A2_vaddhs : HInst< 1676 (outs DoubleRegs:$Rdd32), 1677 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1678 "$Rdd32 = vaddh($Rss32,$Rtt32):sat", 1679 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 1680 let Inst{7-5} = 0b011; 1681 let Inst{13-13} = 0b0; 1682 let Inst{31-21} = 0b11010011000; 1683 let prefersSlot3 = 1; 1684 let Defs = [USR_OVF]; 1685 } 1686 def A2_vaddub : HInst< 1687 (outs DoubleRegs:$Rdd32), 1688 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1689 "$Rdd32 = vaddub($Rss32,$Rtt32)", 1690 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1691 let Inst{7-5} = 0b000; 1692 let Inst{13-13} = 0b0; 1693 let Inst{31-21} = 0b11010011000; 1694 } 1695 def A2_vaddubs : HInst< 1696 (outs DoubleRegs:$Rdd32), 1697 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1698 "$Rdd32 = vaddub($Rss32,$Rtt32):sat", 1699 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 1700 let Inst{7-5} = 0b001; 1701 let Inst{13-13} = 0b0; 1702 let Inst{31-21} = 0b11010011000; 1703 let prefersSlot3 = 1; 1704 let Defs = [USR_OVF]; 1705 } 1706 def A2_vadduhs : HInst< 1707 (outs DoubleRegs:$Rdd32), 1708 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1709 "$Rdd32 = vadduh($Rss32,$Rtt32):sat", 1710 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 1711 let Inst{7-5} = 0b100; 1712 let Inst{13-13} = 0b0; 1713 let Inst{31-21} = 0b11010011000; 1714 let prefersSlot3 = 1; 1715 let Defs = [USR_OVF]; 1716 } 1717 def A2_vaddw : HInst< 1718 (outs DoubleRegs:$Rdd32), 1719 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1720 "$Rdd32 = vaddw($Rss32,$Rtt32)", 1721 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1722 let Inst{7-5} = 0b101; 1723 let Inst{13-13} = 0b0; 1724 let Inst{31-21} = 0b11010011000; 1725 } 1726 def A2_vaddws : HInst< 1727 (outs DoubleRegs:$Rdd32), 1728 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1729 "$Rdd32 = vaddw($Rss32,$Rtt32):sat", 1730 tc_b44c6e2a, TypeALU64>, Enc_a56825 { 1731 let Inst{7-5} = 0b110; 1732 let Inst{13-13} = 0b0; 1733 let Inst{31-21} = 0b11010011000; 1734 let prefersSlot3 = 1; 1735 let Defs = [USR_OVF]; 1736 } 1737 def A2_vavgh : HInst< 1738 (outs DoubleRegs:$Rdd32), 1739 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1740 "$Rdd32 = vavgh($Rss32,$Rtt32)", 1741 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1742 let Inst{7-5} = 0b010; 1743 let Inst{13-13} = 0b0; 1744 let Inst{31-21} = 0b11010011010; 1745 } 1746 def A2_vavghcr : HInst< 1747 (outs DoubleRegs:$Rdd32), 1748 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1749 "$Rdd32 = vavgh($Rss32,$Rtt32):crnd", 1750 tc_2b6f77c6, TypeALU64>, Enc_a56825 { 1751 let Inst{7-5} = 0b100; 1752 let Inst{13-13} = 0b0; 1753 let Inst{31-21} = 0b11010011010; 1754 let prefersSlot3 = 1; 1755 } 1756 def A2_vavghr : HInst< 1757 (outs DoubleRegs:$Rdd32), 1758 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1759 "$Rdd32 = vavgh($Rss32,$Rtt32):rnd", 1760 tc_dbdffe3d, TypeALU64>, Enc_a56825 { 1761 let Inst{7-5} = 0b011; 1762 let Inst{13-13} = 0b0; 1763 let Inst{31-21} = 0b11010011010; 1764 } 1765 def A2_vavgub : HInst< 1766 (outs DoubleRegs:$Rdd32), 1767 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1768 "$Rdd32 = vavgub($Rss32,$Rtt32)", 1769 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1770 let Inst{7-5} = 0b000; 1771 let Inst{13-13} = 0b0; 1772 let Inst{31-21} = 0b11010011010; 1773 } 1774 def A2_vavgubr : HInst< 1775 (outs DoubleRegs:$Rdd32), 1776 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1777 "$Rdd32 = vavgub($Rss32,$Rtt32):rnd", 1778 tc_dbdffe3d, TypeALU64>, Enc_a56825 { 1779 let Inst{7-5} = 0b001; 1780 let Inst{13-13} = 0b0; 1781 let Inst{31-21} = 0b11010011010; 1782 } 1783 def A2_vavguh : HInst< 1784 (outs DoubleRegs:$Rdd32), 1785 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1786 "$Rdd32 = vavguh($Rss32,$Rtt32)", 1787 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1788 let Inst{7-5} = 0b101; 1789 let Inst{13-13} = 0b0; 1790 let Inst{31-21} = 0b11010011010; 1791 } 1792 def A2_vavguhr : HInst< 1793 (outs DoubleRegs:$Rdd32), 1794 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1795 "$Rdd32 = vavguh($Rss32,$Rtt32):rnd", 1796 tc_dbdffe3d, TypeALU64>, Enc_a56825 { 1797 let Inst{7-5} = 0b110; 1798 let Inst{13-13} = 0b0; 1799 let Inst{31-21} = 0b11010011010; 1800 } 1801 def A2_vavguw : HInst< 1802 (outs DoubleRegs:$Rdd32), 1803 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1804 "$Rdd32 = vavguw($Rss32,$Rtt32)", 1805 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1806 let Inst{7-5} = 0b011; 1807 let Inst{13-13} = 0b0; 1808 let Inst{31-21} = 0b11010011011; 1809 } 1810 def A2_vavguwr : HInst< 1811 (outs DoubleRegs:$Rdd32), 1812 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1813 "$Rdd32 = vavguw($Rss32,$Rtt32):rnd", 1814 tc_dbdffe3d, TypeALU64>, Enc_a56825 { 1815 let Inst{7-5} = 0b100; 1816 let Inst{13-13} = 0b0; 1817 let Inst{31-21} = 0b11010011011; 1818 } 1819 def A2_vavgw : HInst< 1820 (outs DoubleRegs:$Rdd32), 1821 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1822 "$Rdd32 = vavgw($Rss32,$Rtt32)", 1823 tc_540fdfbc, TypeALU64>, Enc_a56825 { 1824 let Inst{7-5} = 0b000; 1825 let Inst{13-13} = 0b0; 1826 let Inst{31-21} = 0b11010011011; 1827 } 1828 def A2_vavgwcr : HInst< 1829 (outs DoubleRegs:$Rdd32), 1830 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1831 "$Rdd32 = vavgw($Rss32,$Rtt32):crnd", 1832 tc_2b6f77c6, TypeALU64>, Enc_a56825 { 1833 let Inst{7-5} = 0b010; 1834 let Inst{13-13} = 0b0; 1835 let Inst{31-21} = 0b11010011011; 1836 let prefersSlot3 = 1; 1837 } 1838 def A2_vavgwr : HInst< 1839 (outs DoubleRegs:$Rdd32), 1840 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1841 "$Rdd32 = vavgw($Rss32,$Rtt32):rnd", 1842 tc_dbdffe3d, TypeALU64>, Enc_a56825 { 1843 let Inst{7-5} = 0b001; 1844 let Inst{13-13} = 0b0; 1845 let Inst{31-21} = 0b11010011011; 1846 } 1847 def A2_vcmpbeq : HInst< 1848 (outs PredRegs:$Pd4), 1849 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1850 "$Pd4 = vcmpb.eq($Rss32,$Rtt32)", 1851 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1852 let Inst{7-2} = 0b110000; 1853 let Inst{13-13} = 0b0; 1854 let Inst{31-21} = 0b11010010000; 1855 } 1856 def A2_vcmpbgtu : HInst< 1857 (outs PredRegs:$Pd4), 1858 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1859 "$Pd4 = vcmpb.gtu($Rss32,$Rtt32)", 1860 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1861 let Inst{7-2} = 0b111000; 1862 let Inst{13-13} = 0b0; 1863 let Inst{31-21} = 0b11010010000; 1864 } 1865 def A2_vcmpheq : HInst< 1866 (outs PredRegs:$Pd4), 1867 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1868 "$Pd4 = vcmph.eq($Rss32,$Rtt32)", 1869 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1870 let Inst{7-2} = 0b011000; 1871 let Inst{13-13} = 0b0; 1872 let Inst{31-21} = 0b11010010000; 1873 } 1874 def A2_vcmphgt : HInst< 1875 (outs PredRegs:$Pd4), 1876 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1877 "$Pd4 = vcmph.gt($Rss32,$Rtt32)", 1878 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1879 let Inst{7-2} = 0b100000; 1880 let Inst{13-13} = 0b0; 1881 let Inst{31-21} = 0b11010010000; 1882 } 1883 def A2_vcmphgtu : HInst< 1884 (outs PredRegs:$Pd4), 1885 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1886 "$Pd4 = vcmph.gtu($Rss32,$Rtt32)", 1887 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1888 let Inst{7-2} = 0b101000; 1889 let Inst{13-13} = 0b0; 1890 let Inst{31-21} = 0b11010010000; 1891 } 1892 def A2_vcmpweq : HInst< 1893 (outs PredRegs:$Pd4), 1894 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1895 "$Pd4 = vcmpw.eq($Rss32,$Rtt32)", 1896 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1897 let Inst{7-2} = 0b000000; 1898 let Inst{13-13} = 0b0; 1899 let Inst{31-21} = 0b11010010000; 1900 } 1901 def A2_vcmpwgt : HInst< 1902 (outs PredRegs:$Pd4), 1903 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1904 "$Pd4 = vcmpw.gt($Rss32,$Rtt32)", 1905 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1906 let Inst{7-2} = 0b001000; 1907 let Inst{13-13} = 0b0; 1908 let Inst{31-21} = 0b11010010000; 1909 } 1910 def A2_vcmpwgtu : HInst< 1911 (outs PredRegs:$Pd4), 1912 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1913 "$Pd4 = vcmpw.gtu($Rss32,$Rtt32)", 1914 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 1915 let Inst{7-2} = 0b010000; 1916 let Inst{13-13} = 0b0; 1917 let Inst{31-21} = 0b11010010000; 1918 } 1919 def A2_vconj : HInst< 1920 (outs DoubleRegs:$Rdd32), 1921 (ins DoubleRegs:$Rss32), 1922 "$Rdd32 = vconj($Rss32):sat", 1923 tc_c2f7d806, TypeS_2op>, Enc_b9c5fb { 1924 let Inst{13-5} = 0b000000111; 1925 let Inst{31-21} = 0b10000000100; 1926 let prefersSlot3 = 1; 1927 let Defs = [USR_OVF]; 1928 } 1929 def A2_vmaxb : HInst< 1930 (outs DoubleRegs:$Rdd32), 1931 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1932 "$Rdd32 = vmaxb($Rtt32,$Rss32)", 1933 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1934 let Inst{7-5} = 0b110; 1935 let Inst{13-13} = 0b0; 1936 let Inst{31-21} = 0b11010011110; 1937 let prefersSlot3 = 1; 1938 } 1939 def A2_vmaxh : HInst< 1940 (outs DoubleRegs:$Rdd32), 1941 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1942 "$Rdd32 = vmaxh($Rtt32,$Rss32)", 1943 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1944 let Inst{7-5} = 0b001; 1945 let Inst{13-13} = 0b0; 1946 let Inst{31-21} = 0b11010011110; 1947 let prefersSlot3 = 1; 1948 } 1949 def A2_vmaxub : HInst< 1950 (outs DoubleRegs:$Rdd32), 1951 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1952 "$Rdd32 = vmaxub($Rtt32,$Rss32)", 1953 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1954 let Inst{7-5} = 0b000; 1955 let Inst{13-13} = 0b0; 1956 let Inst{31-21} = 0b11010011110; 1957 let prefersSlot3 = 1; 1958 } 1959 def A2_vmaxuh : HInst< 1960 (outs DoubleRegs:$Rdd32), 1961 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1962 "$Rdd32 = vmaxuh($Rtt32,$Rss32)", 1963 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1964 let Inst{7-5} = 0b010; 1965 let Inst{13-13} = 0b0; 1966 let Inst{31-21} = 0b11010011110; 1967 let prefersSlot3 = 1; 1968 } 1969 def A2_vmaxuw : HInst< 1970 (outs DoubleRegs:$Rdd32), 1971 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1972 "$Rdd32 = vmaxuw($Rtt32,$Rss32)", 1973 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1974 let Inst{7-5} = 0b101; 1975 let Inst{13-13} = 0b0; 1976 let Inst{31-21} = 0b11010011101; 1977 let prefersSlot3 = 1; 1978 } 1979 def A2_vmaxw : HInst< 1980 (outs DoubleRegs:$Rdd32), 1981 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1982 "$Rdd32 = vmaxw($Rtt32,$Rss32)", 1983 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1984 let Inst{7-5} = 0b011; 1985 let Inst{13-13} = 0b0; 1986 let Inst{31-21} = 0b11010011110; 1987 let prefersSlot3 = 1; 1988 } 1989 def A2_vminb : HInst< 1990 (outs DoubleRegs:$Rdd32), 1991 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1992 "$Rdd32 = vminb($Rtt32,$Rss32)", 1993 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 1994 let Inst{7-5} = 0b111; 1995 let Inst{13-13} = 0b0; 1996 let Inst{31-21} = 0b11010011110; 1997 let prefersSlot3 = 1; 1998 } 1999 def A2_vminh : HInst< 2000 (outs DoubleRegs:$Rdd32), 2001 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2002 "$Rdd32 = vminh($Rtt32,$Rss32)", 2003 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2004 let Inst{7-5} = 0b001; 2005 let Inst{13-13} = 0b0; 2006 let Inst{31-21} = 0b11010011101; 2007 let prefersSlot3 = 1; 2008 } 2009 def A2_vminub : HInst< 2010 (outs DoubleRegs:$Rdd32), 2011 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2012 "$Rdd32 = vminub($Rtt32,$Rss32)", 2013 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2014 let Inst{7-5} = 0b000; 2015 let Inst{13-13} = 0b0; 2016 let Inst{31-21} = 0b11010011101; 2017 let prefersSlot3 = 1; 2018 } 2019 def A2_vminuh : HInst< 2020 (outs DoubleRegs:$Rdd32), 2021 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2022 "$Rdd32 = vminuh($Rtt32,$Rss32)", 2023 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2024 let Inst{7-5} = 0b010; 2025 let Inst{13-13} = 0b0; 2026 let Inst{31-21} = 0b11010011101; 2027 let prefersSlot3 = 1; 2028 } 2029 def A2_vminuw : HInst< 2030 (outs DoubleRegs:$Rdd32), 2031 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2032 "$Rdd32 = vminuw($Rtt32,$Rss32)", 2033 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2034 let Inst{7-5} = 0b100; 2035 let Inst{13-13} = 0b0; 2036 let Inst{31-21} = 0b11010011101; 2037 let prefersSlot3 = 1; 2038 } 2039 def A2_vminw : HInst< 2040 (outs DoubleRegs:$Rdd32), 2041 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2042 "$Rdd32 = vminw($Rtt32,$Rss32)", 2043 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2044 let Inst{7-5} = 0b011; 2045 let Inst{13-13} = 0b0; 2046 let Inst{31-21} = 0b11010011101; 2047 let prefersSlot3 = 1; 2048 } 2049 def A2_vnavgh : HInst< 2050 (outs DoubleRegs:$Rdd32), 2051 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2052 "$Rdd32 = vnavgh($Rtt32,$Rss32)", 2053 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2054 let Inst{7-5} = 0b000; 2055 let Inst{13-13} = 0b0; 2056 let Inst{31-21} = 0b11010011100; 2057 } 2058 def A2_vnavghcr : HInst< 2059 (outs DoubleRegs:$Rdd32), 2060 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2061 "$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat", 2062 tc_2b6f77c6, TypeALU64>, Enc_ea23e4 { 2063 let Inst{7-5} = 0b010; 2064 let Inst{13-13} = 0b0; 2065 let Inst{31-21} = 0b11010011100; 2066 let prefersSlot3 = 1; 2067 let Defs = [USR_OVF]; 2068 } 2069 def A2_vnavghr : HInst< 2070 (outs DoubleRegs:$Rdd32), 2071 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2072 "$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat", 2073 tc_2b6f77c6, TypeALU64>, Enc_ea23e4 { 2074 let Inst{7-5} = 0b001; 2075 let Inst{13-13} = 0b0; 2076 let Inst{31-21} = 0b11010011100; 2077 let prefersSlot3 = 1; 2078 let Defs = [USR_OVF]; 2079 } 2080 def A2_vnavgw : HInst< 2081 (outs DoubleRegs:$Rdd32), 2082 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2083 "$Rdd32 = vnavgw($Rtt32,$Rss32)", 2084 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2085 let Inst{7-5} = 0b011; 2086 let Inst{13-13} = 0b0; 2087 let Inst{31-21} = 0b11010011100; 2088 } 2089 def A2_vnavgwcr : HInst< 2090 (outs DoubleRegs:$Rdd32), 2091 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2092 "$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat", 2093 tc_2b6f77c6, TypeALU64>, Enc_ea23e4 { 2094 let Inst{7-5} = 0b110; 2095 let Inst{13-13} = 0b0; 2096 let Inst{31-21} = 0b11010011100; 2097 let prefersSlot3 = 1; 2098 let Defs = [USR_OVF]; 2099 } 2100 def A2_vnavgwr : HInst< 2101 (outs DoubleRegs:$Rdd32), 2102 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2103 "$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat", 2104 tc_2b6f77c6, TypeALU64>, Enc_ea23e4 { 2105 let Inst{7-5} = 0b100; 2106 let Inst{13-13} = 0b0; 2107 let Inst{31-21} = 0b11010011100; 2108 let prefersSlot3 = 1; 2109 let Defs = [USR_OVF]; 2110 } 2111 def A2_vraddub : HInst< 2112 (outs DoubleRegs:$Rdd32), 2113 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2114 "$Rdd32 = vraddub($Rss32,$Rtt32)", 2115 tc_8fd5f294, TypeM>, Enc_a56825 { 2116 let Inst{7-5} = 0b001; 2117 let Inst{13-13} = 0b0; 2118 let Inst{31-21} = 0b11101000010; 2119 let prefersSlot3 = 1; 2120 } 2121 def A2_vraddub_acc : HInst< 2122 (outs DoubleRegs:$Rxx32), 2123 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2124 "$Rxx32 += vraddub($Rss32,$Rtt32)", 2125 tc_e913dc32, TypeM>, Enc_88c16c { 2126 let Inst{7-5} = 0b001; 2127 let Inst{13-13} = 0b0; 2128 let Inst{31-21} = 0b11101010010; 2129 let prefersSlot3 = 1; 2130 let Constraints = "$Rxx32 = $Rxx32in"; 2131 } 2132 def A2_vrsadub : HInst< 2133 (outs DoubleRegs:$Rdd32), 2134 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2135 "$Rdd32 = vrsadub($Rss32,$Rtt32)", 2136 tc_8fd5f294, TypeM>, Enc_a56825 { 2137 let Inst{7-5} = 0b010; 2138 let Inst{13-13} = 0b0; 2139 let Inst{31-21} = 0b11101000010; 2140 let prefersSlot3 = 1; 2141 } 2142 def A2_vrsadub_acc : HInst< 2143 (outs DoubleRegs:$Rxx32), 2144 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2145 "$Rxx32 += vrsadub($Rss32,$Rtt32)", 2146 tc_e913dc32, TypeM>, Enc_88c16c { 2147 let Inst{7-5} = 0b010; 2148 let Inst{13-13} = 0b0; 2149 let Inst{31-21} = 0b11101010010; 2150 let prefersSlot3 = 1; 2151 let Constraints = "$Rxx32 = $Rxx32in"; 2152 } 2153 def A2_vsubb_map : HInst< 2154 (outs DoubleRegs:$Rdd32), 2155 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2156 "$Rdd32 = vsubb($Rss32,$Rtt32)", 2157 tc_540fdfbc, TypeMAPPING> { 2158 let isPseudo = 1; 2159 let isCodeGenOnly = 1; 2160 } 2161 def A2_vsubh : HInst< 2162 (outs DoubleRegs:$Rdd32), 2163 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2164 "$Rdd32 = vsubh($Rtt32,$Rss32)", 2165 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2166 let Inst{7-5} = 0b010; 2167 let Inst{13-13} = 0b0; 2168 let Inst{31-21} = 0b11010011001; 2169 } 2170 def A2_vsubhs : HInst< 2171 (outs DoubleRegs:$Rdd32), 2172 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2173 "$Rdd32 = vsubh($Rtt32,$Rss32):sat", 2174 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2175 let Inst{7-5} = 0b011; 2176 let Inst{13-13} = 0b0; 2177 let Inst{31-21} = 0b11010011001; 2178 let prefersSlot3 = 1; 2179 let Defs = [USR_OVF]; 2180 } 2181 def A2_vsubub : HInst< 2182 (outs DoubleRegs:$Rdd32), 2183 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2184 "$Rdd32 = vsubub($Rtt32,$Rss32)", 2185 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2186 let Inst{7-5} = 0b000; 2187 let Inst{13-13} = 0b0; 2188 let Inst{31-21} = 0b11010011001; 2189 } 2190 def A2_vsububs : HInst< 2191 (outs DoubleRegs:$Rdd32), 2192 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2193 "$Rdd32 = vsubub($Rtt32,$Rss32):sat", 2194 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2195 let Inst{7-5} = 0b001; 2196 let Inst{13-13} = 0b0; 2197 let Inst{31-21} = 0b11010011001; 2198 let prefersSlot3 = 1; 2199 let Defs = [USR_OVF]; 2200 } 2201 def A2_vsubuhs : HInst< 2202 (outs DoubleRegs:$Rdd32), 2203 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2204 "$Rdd32 = vsubuh($Rtt32,$Rss32):sat", 2205 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2206 let Inst{7-5} = 0b100; 2207 let Inst{13-13} = 0b0; 2208 let Inst{31-21} = 0b11010011001; 2209 let prefersSlot3 = 1; 2210 let Defs = [USR_OVF]; 2211 } 2212 def A2_vsubw : HInst< 2213 (outs DoubleRegs:$Rdd32), 2214 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2215 "$Rdd32 = vsubw($Rtt32,$Rss32)", 2216 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2217 let Inst{7-5} = 0b101; 2218 let Inst{13-13} = 0b0; 2219 let Inst{31-21} = 0b11010011001; 2220 } 2221 def A2_vsubws : HInst< 2222 (outs DoubleRegs:$Rdd32), 2223 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2224 "$Rdd32 = vsubw($Rtt32,$Rss32):sat", 2225 tc_b44c6e2a, TypeALU64>, Enc_ea23e4 { 2226 let Inst{7-5} = 0b110; 2227 let Inst{13-13} = 0b0; 2228 let Inst{31-21} = 0b11010011001; 2229 let prefersSlot3 = 1; 2230 let Defs = [USR_OVF]; 2231 } 2232 def A2_xor : HInst< 2233 (outs IntRegs:$Rd32), 2234 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2235 "$Rd32 = xor($Rs32,$Rt32)", 2236 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, PredNewRel { 2237 let Inst{7-5} = 0b000; 2238 let Inst{13-13} = 0b0; 2239 let Inst{31-21} = 0b11110001011; 2240 let hasNewValue = 1; 2241 let opNewValue = 0; 2242 let InputType = "reg"; 2243 let BaseOpcode = "A2_xor"; 2244 let isCommutable = 1; 2245 let isPredicable = 1; 2246 } 2247 def A2_xorp : HInst< 2248 (outs DoubleRegs:$Rdd32), 2249 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2250 "$Rdd32 = xor($Rss32,$Rtt32)", 2251 tc_540fdfbc, TypeALU64>, Enc_a56825 { 2252 let Inst{7-5} = 0b100; 2253 let Inst{13-13} = 0b0; 2254 let Inst{31-21} = 0b11010011111; 2255 let isCommutable = 1; 2256 } 2257 def A2_zxtb : HInst< 2258 (outs IntRegs:$Rd32), 2259 (ins IntRegs:$Rs32), 2260 "$Rd32 = zxtb($Rs32)", 2261 tc_b9488031, TypeALU32_2op>, PredNewRel { 2262 let hasNewValue = 1; 2263 let opNewValue = 0; 2264 let BaseOpcode = "A2_zxtb"; 2265 let isPredicable = 1; 2266 let isPseudo = 1; 2267 let isCodeGenOnly = 1; 2268 } 2269 def A2_zxth : HInst< 2270 (outs IntRegs:$Rd32), 2271 (ins IntRegs:$Rs32), 2272 "$Rd32 = zxth($Rs32)", 2273 tc_68cb12ce, TypeALU32_2op>, Enc_5e2823, PredNewRel { 2274 let Inst{13-5} = 0b000000000; 2275 let Inst{31-21} = 0b01110000110; 2276 let hasNewValue = 1; 2277 let opNewValue = 0; 2278 let BaseOpcode = "A2_zxth"; 2279 let isPredicable = 1; 2280 } 2281 def A4_addp_c : HInst< 2282 (outs DoubleRegs:$Rdd32, PredRegs:$Px4), 2283 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 2284 "$Rdd32 = add($Rss32,$Rtt32,$Px4):carry", 2285 tc_523fcf30, TypeS_3op>, Enc_2b3f60 { 2286 let Inst{7-7} = 0b0; 2287 let Inst{13-13} = 0b0; 2288 let Inst{31-21} = 0b11000010110; 2289 let isPredicateLate = 1; 2290 let Constraints = "$Px4 = $Px4in"; 2291 } 2292 def A4_andn : HInst< 2293 (outs IntRegs:$Rd32), 2294 (ins IntRegs:$Rt32, IntRegs:$Rs32), 2295 "$Rd32 = and($Rt32,~$Rs32)", 2296 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 2297 let Inst{7-5} = 0b000; 2298 let Inst{13-13} = 0b0; 2299 let Inst{31-21} = 0b11110001100; 2300 let hasNewValue = 1; 2301 let opNewValue = 0; 2302 let InputType = "reg"; 2303 } 2304 def A4_andnp : HInst< 2305 (outs DoubleRegs:$Rdd32), 2306 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2307 "$Rdd32 = and($Rtt32,~$Rss32)", 2308 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2309 let Inst{7-5} = 0b001; 2310 let Inst{13-13} = 0b0; 2311 let Inst{31-21} = 0b11010011111; 2312 } 2313 def A4_bitsplit : HInst< 2314 (outs DoubleRegs:$Rdd32), 2315 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2316 "$Rdd32 = bitsplit($Rs32,$Rt32)", 2317 tc_1b9c9ee5, TypeALU64>, Enc_be32a5 { 2318 let Inst{7-5} = 0b000; 2319 let Inst{13-13} = 0b0; 2320 let Inst{31-21} = 0b11010100001; 2321 let prefersSlot3 = 1; 2322 } 2323 def A4_bitspliti : HInst< 2324 (outs DoubleRegs:$Rdd32), 2325 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 2326 "$Rdd32 = bitsplit($Rs32,#$Ii)", 2327 tc_1b9c9ee5, TypeS_2op>, Enc_311abd { 2328 let Inst{7-5} = 0b100; 2329 let Inst{13-13} = 0b0; 2330 let Inst{31-21} = 0b10001000110; 2331 let prefersSlot3 = 1; 2332 } 2333 def A4_boundscheck : HInst< 2334 (outs PredRegs:$Pd4), 2335 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 2336 "$Pd4 = boundscheck($Rs32,$Rtt32)", 2337 tc_1e856f58, TypeALU64> { 2338 let isPseudo = 1; 2339 } 2340 def A4_boundscheck_hi : HInst< 2341 (outs PredRegs:$Pd4), 2342 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2343 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi", 2344 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 2345 let Inst{7-2} = 0b101000; 2346 let Inst{13-13} = 0b1; 2347 let Inst{31-21} = 0b11010010000; 2348 } 2349 def A4_boundscheck_lo : HInst< 2350 (outs PredRegs:$Pd4), 2351 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2352 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo", 2353 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 2354 let Inst{7-2} = 0b100000; 2355 let Inst{13-13} = 0b1; 2356 let Inst{31-21} = 0b11010010000; 2357 } 2358 def A4_cmpbeq : HInst< 2359 (outs PredRegs:$Pd4), 2360 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2361 "$Pd4 = cmpb.eq($Rs32,$Rt32)", 2362 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2363 let Inst{7-2} = 0b110000; 2364 let Inst{13-13} = 0b0; 2365 let Inst{31-21} = 0b11000111110; 2366 let CextOpcode = "A4_cmpbeq"; 2367 let InputType = "reg"; 2368 let isCommutable = 1; 2369 let isCompare = 1; 2370 } 2371 def A4_cmpbeqi : HInst< 2372 (outs PredRegs:$Pd4), 2373 (ins IntRegs:$Rs32, u8_0Imm:$Ii), 2374 "$Pd4 = cmpb.eq($Rs32,#$Ii)", 2375 tc_7a830544, TypeALU64>, Enc_08d755, ImmRegRel { 2376 let Inst{4-2} = 0b000; 2377 let Inst{13-13} = 0b0; 2378 let Inst{31-21} = 0b11011101000; 2379 let CextOpcode = "A4_cmpbeq"; 2380 let InputType = "imm"; 2381 let isCommutable = 1; 2382 let isCompare = 1; 2383 } 2384 def A4_cmpbgt : HInst< 2385 (outs PredRegs:$Pd4), 2386 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2387 "$Pd4 = cmpb.gt($Rs32,$Rt32)", 2388 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2389 let Inst{7-2} = 0b010000; 2390 let Inst{13-13} = 0b0; 2391 let Inst{31-21} = 0b11000111110; 2392 let CextOpcode = "A4_cmpbgt"; 2393 let InputType = "reg"; 2394 let isCompare = 1; 2395 } 2396 def A4_cmpbgti : HInst< 2397 (outs PredRegs:$Pd4), 2398 (ins IntRegs:$Rs32, s8_0Imm:$Ii), 2399 "$Pd4 = cmpb.gt($Rs32,#$Ii)", 2400 tc_7a830544, TypeALU64>, Enc_08d755, ImmRegRel { 2401 let Inst{4-2} = 0b000; 2402 let Inst{13-13} = 0b0; 2403 let Inst{31-21} = 0b11011101001; 2404 let CextOpcode = "A4_cmpbgt"; 2405 let InputType = "imm"; 2406 let isCompare = 1; 2407 } 2408 def A4_cmpbgtu : HInst< 2409 (outs PredRegs:$Pd4), 2410 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2411 "$Pd4 = cmpb.gtu($Rs32,$Rt32)", 2412 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2413 let Inst{7-2} = 0b111000; 2414 let Inst{13-13} = 0b0; 2415 let Inst{31-21} = 0b11000111110; 2416 let CextOpcode = "A4_cmpbgtu"; 2417 let InputType = "reg"; 2418 let isCompare = 1; 2419 } 2420 def A4_cmpbgtui : HInst< 2421 (outs PredRegs:$Pd4), 2422 (ins IntRegs:$Rs32, u32_0Imm:$Ii), 2423 "$Pd4 = cmpb.gtu($Rs32,#$Ii)", 2424 tc_7a830544, TypeALU64>, Enc_02553a, ImmRegRel { 2425 let Inst{4-2} = 0b000; 2426 let Inst{13-12} = 0b00; 2427 let Inst{31-21} = 0b11011101010; 2428 let CextOpcode = "A4_cmpbgtu"; 2429 let InputType = "imm"; 2430 let isCompare = 1; 2431 let isExtendable = 1; 2432 let opExtendable = 2; 2433 let isExtentSigned = 0; 2434 let opExtentBits = 7; 2435 let opExtentAlign = 0; 2436 } 2437 def A4_cmpheq : HInst< 2438 (outs PredRegs:$Pd4), 2439 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2440 "$Pd4 = cmph.eq($Rs32,$Rt32)", 2441 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2442 let Inst{7-2} = 0b011000; 2443 let Inst{13-13} = 0b0; 2444 let Inst{31-21} = 0b11000111110; 2445 let CextOpcode = "A4_cmpheq"; 2446 let InputType = "reg"; 2447 let isCommutable = 1; 2448 let isCompare = 1; 2449 } 2450 def A4_cmpheqi : HInst< 2451 (outs PredRegs:$Pd4), 2452 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 2453 "$Pd4 = cmph.eq($Rs32,#$Ii)", 2454 tc_7a830544, TypeALU64>, Enc_08d755, ImmRegRel { 2455 let Inst{4-2} = 0b010; 2456 let Inst{13-13} = 0b0; 2457 let Inst{31-21} = 0b11011101000; 2458 let CextOpcode = "A4_cmpheq"; 2459 let InputType = "imm"; 2460 let isCommutable = 1; 2461 let isCompare = 1; 2462 let isExtendable = 1; 2463 let opExtendable = 2; 2464 let isExtentSigned = 1; 2465 let opExtentBits = 8; 2466 let opExtentAlign = 0; 2467 } 2468 def A4_cmphgt : HInst< 2469 (outs PredRegs:$Pd4), 2470 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2471 "$Pd4 = cmph.gt($Rs32,$Rt32)", 2472 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2473 let Inst{7-2} = 0b100000; 2474 let Inst{13-13} = 0b0; 2475 let Inst{31-21} = 0b11000111110; 2476 let CextOpcode = "A4_cmphgt"; 2477 let InputType = "reg"; 2478 let isCompare = 1; 2479 } 2480 def A4_cmphgti : HInst< 2481 (outs PredRegs:$Pd4), 2482 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 2483 "$Pd4 = cmph.gt($Rs32,#$Ii)", 2484 tc_7a830544, TypeALU64>, Enc_08d755, ImmRegRel { 2485 let Inst{4-2} = 0b010; 2486 let Inst{13-13} = 0b0; 2487 let Inst{31-21} = 0b11011101001; 2488 let CextOpcode = "A4_cmphgt"; 2489 let InputType = "imm"; 2490 let isCompare = 1; 2491 let isExtendable = 1; 2492 let opExtendable = 2; 2493 let isExtentSigned = 1; 2494 let opExtentBits = 8; 2495 let opExtentAlign = 0; 2496 } 2497 def A4_cmphgtu : HInst< 2498 (outs PredRegs:$Pd4), 2499 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2500 "$Pd4 = cmph.gtu($Rs32,$Rt32)", 2501 tc_1e856f58, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2502 let Inst{7-2} = 0b101000; 2503 let Inst{13-13} = 0b0; 2504 let Inst{31-21} = 0b11000111110; 2505 let CextOpcode = "A4_cmphgtu"; 2506 let InputType = "reg"; 2507 let isCompare = 1; 2508 } 2509 def A4_cmphgtui : HInst< 2510 (outs PredRegs:$Pd4), 2511 (ins IntRegs:$Rs32, u32_0Imm:$Ii), 2512 "$Pd4 = cmph.gtu($Rs32,#$Ii)", 2513 tc_7a830544, TypeALU64>, Enc_02553a, ImmRegRel { 2514 let Inst{4-2} = 0b010; 2515 let Inst{13-12} = 0b00; 2516 let Inst{31-21} = 0b11011101010; 2517 let CextOpcode = "A4_cmphgtu"; 2518 let InputType = "imm"; 2519 let isCompare = 1; 2520 let isExtendable = 1; 2521 let opExtendable = 2; 2522 let isExtentSigned = 0; 2523 let opExtentBits = 7; 2524 let opExtentAlign = 0; 2525 } 2526 def A4_combineii : HInst< 2527 (outs DoubleRegs:$Rdd32), 2528 (ins s8_0Imm:$Ii, u32_0Imm:$II), 2529 "$Rdd32 = combine(#$Ii,#$II)", 2530 tc_b9488031, TypeALU32_2op>, Enc_f0cca7 { 2531 let Inst{31-21} = 0b01111100100; 2532 let isExtendable = 1; 2533 let opExtendable = 2; 2534 let isExtentSigned = 0; 2535 let opExtentBits = 6; 2536 let opExtentAlign = 0; 2537 } 2538 def A4_combineir : HInst< 2539 (outs DoubleRegs:$Rdd32), 2540 (ins s32_0Imm:$Ii, IntRegs:$Rs32), 2541 "$Rdd32 = combine(#$Ii,$Rs32)", 2542 tc_b9488031, TypeALU32_2op>, Enc_9cdba7 { 2543 let Inst{13-13} = 0b1; 2544 let Inst{31-21} = 0b01110011001; 2545 let isExtendable = 1; 2546 let opExtendable = 1; 2547 let isExtentSigned = 1; 2548 let opExtentBits = 8; 2549 let opExtentAlign = 0; 2550 } 2551 def A4_combineri : HInst< 2552 (outs DoubleRegs:$Rdd32), 2553 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 2554 "$Rdd32 = combine($Rs32,#$Ii)", 2555 tc_b9488031, TypeALU32_2op>, Enc_9cdba7 { 2556 let Inst{13-13} = 0b1; 2557 let Inst{31-21} = 0b01110011000; 2558 let isExtendable = 1; 2559 let opExtendable = 2; 2560 let isExtentSigned = 1; 2561 let opExtentBits = 8; 2562 let opExtentAlign = 0; 2563 } 2564 def A4_cround_ri : HInst< 2565 (outs IntRegs:$Rd32), 2566 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 2567 "$Rd32 = cround($Rs32,#$Ii)", 2568 tc_2b6f77c6, TypeS_2op>, Enc_a05677 { 2569 let Inst{7-5} = 0b000; 2570 let Inst{13-13} = 0b0; 2571 let Inst{31-21} = 0b10001100111; 2572 let hasNewValue = 1; 2573 let opNewValue = 0; 2574 let prefersSlot3 = 1; 2575 } 2576 def A4_cround_rr : HInst< 2577 (outs IntRegs:$Rd32), 2578 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2579 "$Rd32 = cround($Rs32,$Rt32)", 2580 tc_2b6f77c6, TypeS_3op>, Enc_5ab2be { 2581 let Inst{7-5} = 0b000; 2582 let Inst{13-13} = 0b0; 2583 let Inst{31-21} = 0b11000110110; 2584 let hasNewValue = 1; 2585 let opNewValue = 0; 2586 let prefersSlot3 = 1; 2587 } 2588 def A4_ext : HInst< 2589 (outs), 2590 (ins u26_6Imm:$Ii), 2591 "immext(#$Ii)", 2592 tc_452f85af, TypeEXTENDER>, Enc_2b518f { 2593 let Inst{31-28} = 0b0000; 2594 } 2595 def A4_modwrapu : HInst< 2596 (outs IntRegs:$Rd32), 2597 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2598 "$Rd32 = modwrap($Rs32,$Rt32)", 2599 tc_b44c6e2a, TypeALU64>, Enc_5ab2be { 2600 let Inst{7-5} = 0b111; 2601 let Inst{13-13} = 0b0; 2602 let Inst{31-21} = 0b11010011111; 2603 let hasNewValue = 1; 2604 let opNewValue = 0; 2605 let prefersSlot3 = 1; 2606 } 2607 def A4_orn : HInst< 2608 (outs IntRegs:$Rd32), 2609 (ins IntRegs:$Rt32, IntRegs:$Rs32), 2610 "$Rd32 = or($Rt32,~$Rs32)", 2611 tc_b9488031, TypeALU32_3op>, Enc_bd6011 { 2612 let Inst{7-5} = 0b000; 2613 let Inst{13-13} = 0b0; 2614 let Inst{31-21} = 0b11110001101; 2615 let hasNewValue = 1; 2616 let opNewValue = 0; 2617 let InputType = "reg"; 2618 } 2619 def A4_ornp : HInst< 2620 (outs DoubleRegs:$Rdd32), 2621 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2622 "$Rdd32 = or($Rtt32,~$Rss32)", 2623 tc_540fdfbc, TypeALU64>, Enc_ea23e4 { 2624 let Inst{7-5} = 0b011; 2625 let Inst{13-13} = 0b0; 2626 let Inst{31-21} = 0b11010011111; 2627 } 2628 def A4_paslhf : HInst< 2629 (outs IntRegs:$Rd32), 2630 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2631 "if (!$Pu4) $Rd32 = aslh($Rs32)", 2632 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2633 let Inst{7-5} = 0b000; 2634 let Inst{13-10} = 0b1010; 2635 let Inst{31-21} = 0b01110000000; 2636 let isPredicated = 1; 2637 let isPredicatedFalse = 1; 2638 let hasNewValue = 1; 2639 let opNewValue = 0; 2640 let BaseOpcode = "A2_aslh"; 2641 } 2642 def A4_paslhfnew : HInst< 2643 (outs IntRegs:$Rd32), 2644 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2645 "if (!$Pu4.new) $Rd32 = aslh($Rs32)", 2646 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2647 let Inst{7-5} = 0b000; 2648 let Inst{13-10} = 0b1011; 2649 let Inst{31-21} = 0b01110000000; 2650 let isPredicated = 1; 2651 let isPredicatedFalse = 1; 2652 let hasNewValue = 1; 2653 let opNewValue = 0; 2654 let isPredicatedNew = 1; 2655 let BaseOpcode = "A2_aslh"; 2656 } 2657 def A4_paslht : HInst< 2658 (outs IntRegs:$Rd32), 2659 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2660 "if ($Pu4) $Rd32 = aslh($Rs32)", 2661 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2662 let Inst{7-5} = 0b000; 2663 let Inst{13-10} = 0b1000; 2664 let Inst{31-21} = 0b01110000000; 2665 let isPredicated = 1; 2666 let hasNewValue = 1; 2667 let opNewValue = 0; 2668 let BaseOpcode = "A2_aslh"; 2669 } 2670 def A4_paslhtnew : HInst< 2671 (outs IntRegs:$Rd32), 2672 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2673 "if ($Pu4.new) $Rd32 = aslh($Rs32)", 2674 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2675 let Inst{7-5} = 0b000; 2676 let Inst{13-10} = 0b1001; 2677 let Inst{31-21} = 0b01110000000; 2678 let isPredicated = 1; 2679 let hasNewValue = 1; 2680 let opNewValue = 0; 2681 let isPredicatedNew = 1; 2682 let BaseOpcode = "A2_aslh"; 2683 } 2684 def A4_pasrhf : HInst< 2685 (outs IntRegs:$Rd32), 2686 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2687 "if (!$Pu4) $Rd32 = asrh($Rs32)", 2688 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2689 let Inst{7-5} = 0b000; 2690 let Inst{13-10} = 0b1010; 2691 let Inst{31-21} = 0b01110000001; 2692 let isPredicated = 1; 2693 let isPredicatedFalse = 1; 2694 let hasNewValue = 1; 2695 let opNewValue = 0; 2696 let BaseOpcode = "A2_asrh"; 2697 } 2698 def A4_pasrhfnew : HInst< 2699 (outs IntRegs:$Rd32), 2700 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2701 "if (!$Pu4.new) $Rd32 = asrh($Rs32)", 2702 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2703 let Inst{7-5} = 0b000; 2704 let Inst{13-10} = 0b1011; 2705 let Inst{31-21} = 0b01110000001; 2706 let isPredicated = 1; 2707 let isPredicatedFalse = 1; 2708 let hasNewValue = 1; 2709 let opNewValue = 0; 2710 let isPredicatedNew = 1; 2711 let BaseOpcode = "A2_asrh"; 2712 } 2713 def A4_pasrht : HInst< 2714 (outs IntRegs:$Rd32), 2715 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2716 "if ($Pu4) $Rd32 = asrh($Rs32)", 2717 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2718 let Inst{7-5} = 0b000; 2719 let Inst{13-10} = 0b1000; 2720 let Inst{31-21} = 0b01110000001; 2721 let isPredicated = 1; 2722 let hasNewValue = 1; 2723 let opNewValue = 0; 2724 let BaseOpcode = "A2_asrh"; 2725 } 2726 def A4_pasrhtnew : HInst< 2727 (outs IntRegs:$Rd32), 2728 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2729 "if ($Pu4.new) $Rd32 = asrh($Rs32)", 2730 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2731 let Inst{7-5} = 0b000; 2732 let Inst{13-10} = 0b1001; 2733 let Inst{31-21} = 0b01110000001; 2734 let isPredicated = 1; 2735 let hasNewValue = 1; 2736 let opNewValue = 0; 2737 let isPredicatedNew = 1; 2738 let BaseOpcode = "A2_asrh"; 2739 } 2740 def A4_psxtbf : HInst< 2741 (outs IntRegs:$Rd32), 2742 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2743 "if (!$Pu4) $Rd32 = sxtb($Rs32)", 2744 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2745 let Inst{7-5} = 0b000; 2746 let Inst{13-10} = 0b1010; 2747 let Inst{31-21} = 0b01110000101; 2748 let isPredicated = 1; 2749 let isPredicatedFalse = 1; 2750 let hasNewValue = 1; 2751 let opNewValue = 0; 2752 let BaseOpcode = "A2_sxtb"; 2753 } 2754 def A4_psxtbfnew : HInst< 2755 (outs IntRegs:$Rd32), 2756 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2757 "if (!$Pu4.new) $Rd32 = sxtb($Rs32)", 2758 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2759 let Inst{7-5} = 0b000; 2760 let Inst{13-10} = 0b1011; 2761 let Inst{31-21} = 0b01110000101; 2762 let isPredicated = 1; 2763 let isPredicatedFalse = 1; 2764 let hasNewValue = 1; 2765 let opNewValue = 0; 2766 let isPredicatedNew = 1; 2767 let BaseOpcode = "A2_sxtb"; 2768 } 2769 def A4_psxtbt : HInst< 2770 (outs IntRegs:$Rd32), 2771 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2772 "if ($Pu4) $Rd32 = sxtb($Rs32)", 2773 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2774 let Inst{7-5} = 0b000; 2775 let Inst{13-10} = 0b1000; 2776 let Inst{31-21} = 0b01110000101; 2777 let isPredicated = 1; 2778 let hasNewValue = 1; 2779 let opNewValue = 0; 2780 let BaseOpcode = "A2_sxtb"; 2781 } 2782 def A4_psxtbtnew : HInst< 2783 (outs IntRegs:$Rd32), 2784 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2785 "if ($Pu4.new) $Rd32 = sxtb($Rs32)", 2786 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2787 let Inst{7-5} = 0b000; 2788 let Inst{13-10} = 0b1001; 2789 let Inst{31-21} = 0b01110000101; 2790 let isPredicated = 1; 2791 let hasNewValue = 1; 2792 let opNewValue = 0; 2793 let isPredicatedNew = 1; 2794 let BaseOpcode = "A2_sxtb"; 2795 } 2796 def A4_psxthf : HInst< 2797 (outs IntRegs:$Rd32), 2798 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2799 "if (!$Pu4) $Rd32 = sxth($Rs32)", 2800 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2801 let Inst{7-5} = 0b000; 2802 let Inst{13-10} = 0b1010; 2803 let Inst{31-21} = 0b01110000111; 2804 let isPredicated = 1; 2805 let isPredicatedFalse = 1; 2806 let hasNewValue = 1; 2807 let opNewValue = 0; 2808 let BaseOpcode = "A2_sxth"; 2809 } 2810 def A4_psxthfnew : HInst< 2811 (outs IntRegs:$Rd32), 2812 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2813 "if (!$Pu4.new) $Rd32 = sxth($Rs32)", 2814 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2815 let Inst{7-5} = 0b000; 2816 let Inst{13-10} = 0b1011; 2817 let Inst{31-21} = 0b01110000111; 2818 let isPredicated = 1; 2819 let isPredicatedFalse = 1; 2820 let hasNewValue = 1; 2821 let opNewValue = 0; 2822 let isPredicatedNew = 1; 2823 let BaseOpcode = "A2_sxth"; 2824 } 2825 def A4_psxtht : HInst< 2826 (outs IntRegs:$Rd32), 2827 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2828 "if ($Pu4) $Rd32 = sxth($Rs32)", 2829 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2830 let Inst{7-5} = 0b000; 2831 let Inst{13-10} = 0b1000; 2832 let Inst{31-21} = 0b01110000111; 2833 let isPredicated = 1; 2834 let hasNewValue = 1; 2835 let opNewValue = 0; 2836 let BaseOpcode = "A2_sxth"; 2837 } 2838 def A4_psxthtnew : HInst< 2839 (outs IntRegs:$Rd32), 2840 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2841 "if ($Pu4.new) $Rd32 = sxth($Rs32)", 2842 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2843 let Inst{7-5} = 0b000; 2844 let Inst{13-10} = 0b1001; 2845 let Inst{31-21} = 0b01110000111; 2846 let isPredicated = 1; 2847 let hasNewValue = 1; 2848 let opNewValue = 0; 2849 let isPredicatedNew = 1; 2850 let BaseOpcode = "A2_sxth"; 2851 } 2852 def A4_pzxtbf : HInst< 2853 (outs IntRegs:$Rd32), 2854 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2855 "if (!$Pu4) $Rd32 = zxtb($Rs32)", 2856 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2857 let Inst{7-5} = 0b000; 2858 let Inst{13-10} = 0b1010; 2859 let Inst{31-21} = 0b01110000100; 2860 let isPredicated = 1; 2861 let isPredicatedFalse = 1; 2862 let hasNewValue = 1; 2863 let opNewValue = 0; 2864 let BaseOpcode = "A2_zxtb"; 2865 } 2866 def A4_pzxtbfnew : HInst< 2867 (outs IntRegs:$Rd32), 2868 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2869 "if (!$Pu4.new) $Rd32 = zxtb($Rs32)", 2870 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2871 let Inst{7-5} = 0b000; 2872 let Inst{13-10} = 0b1011; 2873 let Inst{31-21} = 0b01110000100; 2874 let isPredicated = 1; 2875 let isPredicatedFalse = 1; 2876 let hasNewValue = 1; 2877 let opNewValue = 0; 2878 let isPredicatedNew = 1; 2879 let BaseOpcode = "A2_zxtb"; 2880 } 2881 def A4_pzxtbt : HInst< 2882 (outs IntRegs:$Rd32), 2883 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2884 "if ($Pu4) $Rd32 = zxtb($Rs32)", 2885 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2886 let Inst{7-5} = 0b000; 2887 let Inst{13-10} = 0b1000; 2888 let Inst{31-21} = 0b01110000100; 2889 let isPredicated = 1; 2890 let hasNewValue = 1; 2891 let opNewValue = 0; 2892 let BaseOpcode = "A2_zxtb"; 2893 } 2894 def A4_pzxtbtnew : HInst< 2895 (outs IntRegs:$Rd32), 2896 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2897 "if ($Pu4.new) $Rd32 = zxtb($Rs32)", 2898 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2899 let Inst{7-5} = 0b000; 2900 let Inst{13-10} = 0b1001; 2901 let Inst{31-21} = 0b01110000100; 2902 let isPredicated = 1; 2903 let hasNewValue = 1; 2904 let opNewValue = 0; 2905 let isPredicatedNew = 1; 2906 let BaseOpcode = "A2_zxtb"; 2907 } 2908 def A4_pzxthf : HInst< 2909 (outs IntRegs:$Rd32), 2910 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2911 "if (!$Pu4) $Rd32 = zxth($Rs32)", 2912 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2913 let Inst{7-5} = 0b000; 2914 let Inst{13-10} = 0b1010; 2915 let Inst{31-21} = 0b01110000110; 2916 let isPredicated = 1; 2917 let isPredicatedFalse = 1; 2918 let hasNewValue = 1; 2919 let opNewValue = 0; 2920 let BaseOpcode = "A2_zxth"; 2921 } 2922 def A4_pzxthfnew : HInst< 2923 (outs IntRegs:$Rd32), 2924 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2925 "if (!$Pu4.new) $Rd32 = zxth($Rs32)", 2926 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2927 let Inst{7-5} = 0b000; 2928 let Inst{13-10} = 0b1011; 2929 let Inst{31-21} = 0b01110000110; 2930 let isPredicated = 1; 2931 let isPredicatedFalse = 1; 2932 let hasNewValue = 1; 2933 let opNewValue = 0; 2934 let isPredicatedNew = 1; 2935 let BaseOpcode = "A2_zxth"; 2936 } 2937 def A4_pzxtht : HInst< 2938 (outs IntRegs:$Rd32), 2939 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2940 "if ($Pu4) $Rd32 = zxth($Rs32)", 2941 tc_b9488031, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2942 let Inst{7-5} = 0b000; 2943 let Inst{13-10} = 0b1000; 2944 let Inst{31-21} = 0b01110000110; 2945 let isPredicated = 1; 2946 let hasNewValue = 1; 2947 let opNewValue = 0; 2948 let BaseOpcode = "A2_zxth"; 2949 } 2950 def A4_pzxthtnew : HInst< 2951 (outs IntRegs:$Rd32), 2952 (ins PredRegs:$Pu4, IntRegs:$Rs32), 2953 "if ($Pu4.new) $Rd32 = zxth($Rs32)", 2954 tc_5f6847a1, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2955 let Inst{7-5} = 0b000; 2956 let Inst{13-10} = 0b1001; 2957 let Inst{31-21} = 0b01110000110; 2958 let isPredicated = 1; 2959 let hasNewValue = 1; 2960 let opNewValue = 0; 2961 let isPredicatedNew = 1; 2962 let BaseOpcode = "A2_zxth"; 2963 } 2964 def A4_rcmpeq : HInst< 2965 (outs IntRegs:$Rd32), 2966 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2967 "$Rd32 = cmp.eq($Rs32,$Rt32)", 2968 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 2969 let Inst{7-5} = 0b000; 2970 let Inst{13-13} = 0b0; 2971 let Inst{31-21} = 0b11110011010; 2972 let hasNewValue = 1; 2973 let opNewValue = 0; 2974 let CextOpcode = "A4_rcmpeq"; 2975 let InputType = "reg"; 2976 let isCommutable = 1; 2977 } 2978 def A4_rcmpeqi : HInst< 2979 (outs IntRegs:$Rd32), 2980 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 2981 "$Rd32 = cmp.eq($Rs32,#$Ii)", 2982 tc_b9488031, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 2983 let Inst{13-13} = 0b1; 2984 let Inst{31-21} = 0b01110011010; 2985 let hasNewValue = 1; 2986 let opNewValue = 0; 2987 let CextOpcode = "A4_rcmpeqi"; 2988 let InputType = "imm"; 2989 let isExtendable = 1; 2990 let opExtendable = 2; 2991 let isExtentSigned = 1; 2992 let opExtentBits = 8; 2993 let opExtentAlign = 0; 2994 } 2995 def A4_rcmpneq : HInst< 2996 (outs IntRegs:$Rd32), 2997 (ins IntRegs:$Rs32, IntRegs:$Rt32), 2998 "$Rd32 = !cmp.eq($Rs32,$Rt32)", 2999 tc_b9488031, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 3000 let Inst{7-5} = 0b000; 3001 let Inst{13-13} = 0b0; 3002 let Inst{31-21} = 0b11110011011; 3003 let hasNewValue = 1; 3004 let opNewValue = 0; 3005 let CextOpcode = "A4_rcmpneq"; 3006 let InputType = "reg"; 3007 let isCommutable = 1; 3008 } 3009 def A4_rcmpneqi : HInst< 3010 (outs IntRegs:$Rd32), 3011 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 3012 "$Rd32 = !cmp.eq($Rs32,#$Ii)", 3013 tc_b9488031, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 3014 let Inst{13-13} = 0b1; 3015 let Inst{31-21} = 0b01110011011; 3016 let hasNewValue = 1; 3017 let opNewValue = 0; 3018 let CextOpcode = "A4_rcmpeqi"; 3019 let InputType = "imm"; 3020 let isExtendable = 1; 3021 let opExtendable = 2; 3022 let isExtentSigned = 1; 3023 let opExtentBits = 8; 3024 let opExtentAlign = 0; 3025 } 3026 def A4_round_ri : HInst< 3027 (outs IntRegs:$Rd32), 3028 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 3029 "$Rd32 = round($Rs32,#$Ii)", 3030 tc_2b6f77c6, TypeS_2op>, Enc_a05677 { 3031 let Inst{7-5} = 0b100; 3032 let Inst{13-13} = 0b0; 3033 let Inst{31-21} = 0b10001100111; 3034 let hasNewValue = 1; 3035 let opNewValue = 0; 3036 let prefersSlot3 = 1; 3037 } 3038 def A4_round_ri_sat : HInst< 3039 (outs IntRegs:$Rd32), 3040 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 3041 "$Rd32 = round($Rs32,#$Ii):sat", 3042 tc_2b6f77c6, TypeS_2op>, Enc_a05677 { 3043 let Inst{7-5} = 0b110; 3044 let Inst{13-13} = 0b0; 3045 let Inst{31-21} = 0b10001100111; 3046 let hasNewValue = 1; 3047 let opNewValue = 0; 3048 let prefersSlot3 = 1; 3049 let Defs = [USR_OVF]; 3050 } 3051 def A4_round_rr : HInst< 3052 (outs IntRegs:$Rd32), 3053 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3054 "$Rd32 = round($Rs32,$Rt32)", 3055 tc_2b6f77c6, TypeS_3op>, Enc_5ab2be { 3056 let Inst{7-5} = 0b100; 3057 let Inst{13-13} = 0b0; 3058 let Inst{31-21} = 0b11000110110; 3059 let hasNewValue = 1; 3060 let opNewValue = 0; 3061 let prefersSlot3 = 1; 3062 } 3063 def A4_round_rr_sat : HInst< 3064 (outs IntRegs:$Rd32), 3065 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3066 "$Rd32 = round($Rs32,$Rt32):sat", 3067 tc_2b6f77c6, TypeS_3op>, Enc_5ab2be { 3068 let Inst{7-5} = 0b110; 3069 let Inst{13-13} = 0b0; 3070 let Inst{31-21} = 0b11000110110; 3071 let hasNewValue = 1; 3072 let opNewValue = 0; 3073 let prefersSlot3 = 1; 3074 let Defs = [USR_OVF]; 3075 } 3076 def A4_subp_c : HInst< 3077 (outs DoubleRegs:$Rdd32, PredRegs:$Px4), 3078 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 3079 "$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry", 3080 tc_523fcf30, TypeS_3op>, Enc_2b3f60 { 3081 let Inst{7-7} = 0b0; 3082 let Inst{13-13} = 0b0; 3083 let Inst{31-21} = 0b11000010111; 3084 let isPredicateLate = 1; 3085 let Constraints = "$Px4 = $Px4in"; 3086 } 3087 def A4_tfrcpp : HInst< 3088 (outs DoubleRegs:$Rdd32), 3089 (ins CtrRegs64:$Css32), 3090 "$Rdd32 = $Css32", 3091 tc_29175780, TypeCR>, Enc_667b39 { 3092 let Inst{13-5} = 0b000000000; 3093 let Inst{31-21} = 0b01101000000; 3094 } 3095 def A4_tfrpcp : HInst< 3096 (outs CtrRegs64:$Cdd32), 3097 (ins DoubleRegs:$Rss32), 3098 "$Cdd32 = $Rss32", 3099 tc_a21dc435, TypeCR>, Enc_0ed752 { 3100 let Inst{13-5} = 0b000000000; 3101 let Inst{31-21} = 0b01100011001; 3102 } 3103 def A4_tlbmatch : HInst< 3104 (outs PredRegs:$Pd4), 3105 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 3106 "$Pd4 = tlbmatch($Rss32,$Rt32)", 3107 tc_04c9decc, TypeALU64>, Enc_03833b { 3108 let Inst{7-2} = 0b011000; 3109 let Inst{13-13} = 0b1; 3110 let Inst{31-21} = 0b11010010000; 3111 let isPredicateLate = 1; 3112 } 3113 def A4_vcmpbeq_any : HInst< 3114 (outs PredRegs:$Pd4), 3115 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3116 "$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))", 3117 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 3118 let Inst{7-2} = 0b000000; 3119 let Inst{13-13} = 0b1; 3120 let Inst{31-21} = 0b11010010000; 3121 } 3122 def A4_vcmpbeqi : HInst< 3123 (outs PredRegs:$Pd4), 3124 (ins DoubleRegs:$Rss32, u8_0Imm:$Ii), 3125 "$Pd4 = vcmpb.eq($Rss32,#$Ii)", 3126 tc_7a830544, TypeALU64>, Enc_0d8adb { 3127 let Inst{4-2} = 0b000; 3128 let Inst{13-13} = 0b0; 3129 let Inst{31-21} = 0b11011100000; 3130 } 3131 def A4_vcmpbgt : HInst< 3132 (outs PredRegs:$Pd4), 3133 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3134 "$Pd4 = vcmpb.gt($Rss32,$Rtt32)", 3135 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 3136 let Inst{7-2} = 0b010000; 3137 let Inst{13-13} = 0b1; 3138 let Inst{31-21} = 0b11010010000; 3139 } 3140 def A4_vcmpbgti : HInst< 3141 (outs PredRegs:$Pd4), 3142 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3143 "$Pd4 = vcmpb.gt($Rss32,#$Ii)", 3144 tc_7a830544, TypeALU64>, Enc_0d8adb { 3145 let Inst{4-2} = 0b000; 3146 let Inst{13-13} = 0b0; 3147 let Inst{31-21} = 0b11011100001; 3148 } 3149 def A4_vcmpbgtui : HInst< 3150 (outs PredRegs:$Pd4), 3151 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3152 "$Pd4 = vcmpb.gtu($Rss32,#$Ii)", 3153 tc_7a830544, TypeALU64>, Enc_3680c2 { 3154 let Inst{4-2} = 0b000; 3155 let Inst{13-12} = 0b00; 3156 let Inst{31-21} = 0b11011100010; 3157 } 3158 def A4_vcmpheqi : HInst< 3159 (outs PredRegs:$Pd4), 3160 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3161 "$Pd4 = vcmph.eq($Rss32,#$Ii)", 3162 tc_7a830544, TypeALU64>, Enc_0d8adb { 3163 let Inst{4-2} = 0b010; 3164 let Inst{13-13} = 0b0; 3165 let Inst{31-21} = 0b11011100000; 3166 } 3167 def A4_vcmphgti : HInst< 3168 (outs PredRegs:$Pd4), 3169 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3170 "$Pd4 = vcmph.gt($Rss32,#$Ii)", 3171 tc_7a830544, TypeALU64>, Enc_0d8adb { 3172 let Inst{4-2} = 0b010; 3173 let Inst{13-13} = 0b0; 3174 let Inst{31-21} = 0b11011100001; 3175 } 3176 def A4_vcmphgtui : HInst< 3177 (outs PredRegs:$Pd4), 3178 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3179 "$Pd4 = vcmph.gtu($Rss32,#$Ii)", 3180 tc_7a830544, TypeALU64>, Enc_3680c2 { 3181 let Inst{4-2} = 0b010; 3182 let Inst{13-12} = 0b00; 3183 let Inst{31-21} = 0b11011100010; 3184 } 3185 def A4_vcmpweqi : HInst< 3186 (outs PredRegs:$Pd4), 3187 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3188 "$Pd4 = vcmpw.eq($Rss32,#$Ii)", 3189 tc_7a830544, TypeALU64>, Enc_0d8adb { 3190 let Inst{4-2} = 0b100; 3191 let Inst{13-13} = 0b0; 3192 let Inst{31-21} = 0b11011100000; 3193 } 3194 def A4_vcmpwgti : HInst< 3195 (outs PredRegs:$Pd4), 3196 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3197 "$Pd4 = vcmpw.gt($Rss32,#$Ii)", 3198 tc_7a830544, TypeALU64>, Enc_0d8adb { 3199 let Inst{4-2} = 0b100; 3200 let Inst{13-13} = 0b0; 3201 let Inst{31-21} = 0b11011100001; 3202 } 3203 def A4_vcmpwgtui : HInst< 3204 (outs PredRegs:$Pd4), 3205 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3206 "$Pd4 = vcmpw.gtu($Rss32,#$Ii)", 3207 tc_7a830544, TypeALU64>, Enc_3680c2 { 3208 let Inst{4-2} = 0b100; 3209 let Inst{13-12} = 0b00; 3210 let Inst{31-21} = 0b11011100010; 3211 } 3212 def A4_vrmaxh : HInst< 3213 (outs DoubleRegs:$Rxx32), 3214 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3215 "$Rxx32 = vrmaxh($Rss32,$Ru32)", 3216 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3217 let Inst{7-5} = 0b001; 3218 let Inst{13-13} = 0b0; 3219 let Inst{31-21} = 0b11001011001; 3220 let prefersSlot3 = 1; 3221 let Constraints = "$Rxx32 = $Rxx32in"; 3222 } 3223 def A4_vrmaxuh : HInst< 3224 (outs DoubleRegs:$Rxx32), 3225 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3226 "$Rxx32 = vrmaxuh($Rss32,$Ru32)", 3227 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3228 let Inst{7-5} = 0b001; 3229 let Inst{13-13} = 0b1; 3230 let Inst{31-21} = 0b11001011001; 3231 let prefersSlot3 = 1; 3232 let Constraints = "$Rxx32 = $Rxx32in"; 3233 } 3234 def A4_vrmaxuw : HInst< 3235 (outs DoubleRegs:$Rxx32), 3236 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3237 "$Rxx32 = vrmaxuw($Rss32,$Ru32)", 3238 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3239 let Inst{7-5} = 0b010; 3240 let Inst{13-13} = 0b1; 3241 let Inst{31-21} = 0b11001011001; 3242 let prefersSlot3 = 1; 3243 let Constraints = "$Rxx32 = $Rxx32in"; 3244 } 3245 def A4_vrmaxw : HInst< 3246 (outs DoubleRegs:$Rxx32), 3247 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3248 "$Rxx32 = vrmaxw($Rss32,$Ru32)", 3249 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3250 let Inst{7-5} = 0b010; 3251 let Inst{13-13} = 0b0; 3252 let Inst{31-21} = 0b11001011001; 3253 let prefersSlot3 = 1; 3254 let Constraints = "$Rxx32 = $Rxx32in"; 3255 } 3256 def A4_vrminh : HInst< 3257 (outs DoubleRegs:$Rxx32), 3258 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3259 "$Rxx32 = vrminh($Rss32,$Ru32)", 3260 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3261 let Inst{7-5} = 0b101; 3262 let Inst{13-13} = 0b0; 3263 let Inst{31-21} = 0b11001011001; 3264 let prefersSlot3 = 1; 3265 let Constraints = "$Rxx32 = $Rxx32in"; 3266 } 3267 def A4_vrminuh : HInst< 3268 (outs DoubleRegs:$Rxx32), 3269 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3270 "$Rxx32 = vrminuh($Rss32,$Ru32)", 3271 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3272 let Inst{7-5} = 0b101; 3273 let Inst{13-13} = 0b1; 3274 let Inst{31-21} = 0b11001011001; 3275 let prefersSlot3 = 1; 3276 let Constraints = "$Rxx32 = $Rxx32in"; 3277 } 3278 def A4_vrminuw : HInst< 3279 (outs DoubleRegs:$Rxx32), 3280 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3281 "$Rxx32 = vrminuw($Rss32,$Ru32)", 3282 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3283 let Inst{7-5} = 0b110; 3284 let Inst{13-13} = 0b1; 3285 let Inst{31-21} = 0b11001011001; 3286 let prefersSlot3 = 1; 3287 let Constraints = "$Rxx32 = $Rxx32in"; 3288 } 3289 def A4_vrminw : HInst< 3290 (outs DoubleRegs:$Rxx32), 3291 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3292 "$Rxx32 = vrminw($Rss32,$Ru32)", 3293 tc_c6ce9b3f, TypeS_3op>, Enc_412ff0 { 3294 let Inst{7-5} = 0b110; 3295 let Inst{13-13} = 0b0; 3296 let Inst{31-21} = 0b11001011001; 3297 let prefersSlot3 = 1; 3298 let Constraints = "$Rxx32 = $Rxx32in"; 3299 } 3300 def A5_ACS : HInst< 3301 (outs DoubleRegs:$Rxx32, PredRegs:$Pe4), 3302 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3303 "$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)", 3304 tc_caaebcba, TypeM>, Enc_831a7d, Requires<[HasV55]> { 3305 let Inst{7-7} = 0b0; 3306 let Inst{13-13} = 0b0; 3307 let Inst{31-21} = 0b11101010101; 3308 let isPredicateLate = 1; 3309 let prefersSlot3 = 1; 3310 let Defs = [USR_OVF]; 3311 let Constraints = "$Rxx32 = $Rxx32in"; 3312 } 3313 def A5_vaddhubs : HInst< 3314 (outs IntRegs:$Rd32), 3315 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3316 "$Rd32 = vaddhub($Rss32,$Rtt32):sat", 3317 tc_2b6f77c6, TypeS_3op>, Enc_d2216a, Requires<[HasV5]> { 3318 let Inst{7-5} = 0b001; 3319 let Inst{13-13} = 0b0; 3320 let Inst{31-21} = 0b11000001010; 3321 let hasNewValue = 1; 3322 let opNewValue = 0; 3323 let prefersSlot3 = 1; 3324 let Defs = [USR_OVF]; 3325 } 3326 def A6_vcmpbeq_notany : HInst< 3327 (outs PredRegs:$Pd4), 3328 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3329 "$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))", 3330 tc_55050d58, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> { 3331 let Inst{7-2} = 0b001000; 3332 let Inst{13-13} = 0b1; 3333 let Inst{31-21} = 0b11010010000; 3334 } 3335 def A6_vminub_RdP : HInst< 3336 (outs DoubleRegs:$Rdd32, PredRegs:$Pe4), 3337 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 3338 "$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)", 3339 tc_ef84f62f, TypeM>, Enc_d2c7f1, Requires<[HasV62]> { 3340 let Inst{7-7} = 0b0; 3341 let Inst{13-13} = 0b0; 3342 let Inst{31-21} = 0b11101010111; 3343 let isPredicateLate = 1; 3344 let prefersSlot3 = 1; 3345 } 3346 def C2_all8 : HInst< 3347 (outs PredRegs:$Pd4), 3348 (ins PredRegs:$Ps4), 3349 "$Pd4 = all8($Ps4)", 3350 tc_f2704b9a, TypeCR>, Enc_65d691 { 3351 let Inst{13-2} = 0b000000000000; 3352 let Inst{31-18} = 0b01101011101000; 3353 } 3354 def C2_and : HInst< 3355 (outs PredRegs:$Pd4), 3356 (ins PredRegs:$Pt4, PredRegs:$Ps4), 3357 "$Pd4 = and($Pt4,$Ps4)", 3358 tc_53bc8a6a, TypeCR>, Enc_454a26 { 3359 let Inst{7-2} = 0b000000; 3360 let Inst{13-10} = 0b0000; 3361 let Inst{31-18} = 0b01101011000000; 3362 } 3363 def C2_andn : HInst< 3364 (outs PredRegs:$Pd4), 3365 (ins PredRegs:$Pt4, PredRegs:$Ps4), 3366 "$Pd4 = and($Pt4,!$Ps4)", 3367 tc_53bc8a6a, TypeCR>, Enc_454a26 { 3368 let Inst{7-2} = 0b000000; 3369 let Inst{13-10} = 0b0000; 3370 let Inst{31-18} = 0b01101011011000; 3371 } 3372 def C2_any8 : HInst< 3373 (outs PredRegs:$Pd4), 3374 (ins PredRegs:$Ps4), 3375 "$Pd4 = any8($Ps4)", 3376 tc_f2704b9a, TypeCR>, Enc_65d691 { 3377 let Inst{13-2} = 0b000000000000; 3378 let Inst{31-18} = 0b01101011100000; 3379 } 3380 def C2_bitsclr : HInst< 3381 (outs PredRegs:$Pd4), 3382 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3383 "$Pd4 = bitsclr($Rs32,$Rt32)", 3384 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 3385 let Inst{7-2} = 0b000000; 3386 let Inst{13-13} = 0b0; 3387 let Inst{31-21} = 0b11000111100; 3388 } 3389 def C2_bitsclri : HInst< 3390 (outs PredRegs:$Pd4), 3391 (ins IntRegs:$Rs32, u6_0Imm:$Ii), 3392 "$Pd4 = bitsclr($Rs32,#$Ii)", 3393 tc_7a830544, TypeS_2op>, Enc_5d6c34 { 3394 let Inst{7-2} = 0b000000; 3395 let Inst{31-21} = 0b10000101100; 3396 } 3397 def C2_bitsset : HInst< 3398 (outs PredRegs:$Pd4), 3399 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3400 "$Pd4 = bitsset($Rs32,$Rt32)", 3401 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 3402 let Inst{7-2} = 0b000000; 3403 let Inst{13-13} = 0b0; 3404 let Inst{31-21} = 0b11000111010; 3405 } 3406 def C2_ccombinewf : HInst< 3407 (outs DoubleRegs:$Rdd32), 3408 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3409 "if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3410 tc_d6bf0472, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3411 let Inst{7-7} = 0b1; 3412 let Inst{13-13} = 0b0; 3413 let Inst{31-21} = 0b11111101000; 3414 let isPredicated = 1; 3415 let isPredicatedFalse = 1; 3416 let BaseOpcode = "A2_combinew"; 3417 } 3418 def C2_ccombinewnewf : HInst< 3419 (outs DoubleRegs:$Rdd32), 3420 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3421 "if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3422 tc_2b2f4060, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3423 let Inst{7-7} = 0b1; 3424 let Inst{13-13} = 0b1; 3425 let Inst{31-21} = 0b11111101000; 3426 let isPredicated = 1; 3427 let isPredicatedFalse = 1; 3428 let isPredicatedNew = 1; 3429 let BaseOpcode = "A2_combinew"; 3430 } 3431 def C2_ccombinewnewt : HInst< 3432 (outs DoubleRegs:$Rdd32), 3433 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3434 "if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3435 tc_2b2f4060, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3436 let Inst{7-7} = 0b0; 3437 let Inst{13-13} = 0b1; 3438 let Inst{31-21} = 0b11111101000; 3439 let isPredicated = 1; 3440 let isPredicatedNew = 1; 3441 let BaseOpcode = "A2_combinew"; 3442 } 3443 def C2_ccombinewt : HInst< 3444 (outs DoubleRegs:$Rdd32), 3445 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3446 "if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3447 tc_d6bf0472, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3448 let Inst{7-7} = 0b0; 3449 let Inst{13-13} = 0b0; 3450 let Inst{31-21} = 0b11111101000; 3451 let isPredicated = 1; 3452 let BaseOpcode = "A2_combinew"; 3453 } 3454 def C2_cmoveif : HInst< 3455 (outs IntRegs:$Rd32), 3456 (ins PredRegs:$Pu4, s32_0Imm:$Ii), 3457 "if (!$Pu4) $Rd32 = #$Ii", 3458 tc_b9488031, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3459 let Inst{13-13} = 0b0; 3460 let Inst{20-20} = 0b0; 3461 let Inst{31-23} = 0b011111101; 3462 let isPredicated = 1; 3463 let isPredicatedFalse = 1; 3464 let hasNewValue = 1; 3465 let opNewValue = 0; 3466 let CextOpcode = "A2_tfr"; 3467 let InputType = "imm"; 3468 let BaseOpcode = "A2_tfrsi"; 3469 let isMoveImm = 1; 3470 let isExtendable = 1; 3471 let opExtendable = 2; 3472 let isExtentSigned = 1; 3473 let opExtentBits = 12; 3474 let opExtentAlign = 0; 3475 } 3476 def C2_cmoveit : HInst< 3477 (outs IntRegs:$Rd32), 3478 (ins PredRegs:$Pu4, s32_0Imm:$Ii), 3479 "if ($Pu4) $Rd32 = #$Ii", 3480 tc_b9488031, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3481 let Inst{13-13} = 0b0; 3482 let Inst{20-20} = 0b0; 3483 let Inst{31-23} = 0b011111100; 3484 let isPredicated = 1; 3485 let hasNewValue = 1; 3486 let opNewValue = 0; 3487 let CextOpcode = "A2_tfr"; 3488 let InputType = "imm"; 3489 let BaseOpcode = "A2_tfrsi"; 3490 let isMoveImm = 1; 3491 let isExtendable = 1; 3492 let opExtendable = 2; 3493 let isExtentSigned = 1; 3494 let opExtentBits = 12; 3495 let opExtentAlign = 0; 3496 } 3497 def C2_cmovenewif : HInst< 3498 (outs IntRegs:$Rd32), 3499 (ins PredRegs:$Pu4, s32_0Imm:$Ii), 3500 "if (!$Pu4.new) $Rd32 = #$Ii", 3501 tc_5f6847a1, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3502 let Inst{13-13} = 0b1; 3503 let Inst{20-20} = 0b0; 3504 let Inst{31-23} = 0b011111101; 3505 let isPredicated = 1; 3506 let isPredicatedFalse = 1; 3507 let hasNewValue = 1; 3508 let opNewValue = 0; 3509 let isPredicatedNew = 1; 3510 let CextOpcode = "A2_tfr"; 3511 let InputType = "imm"; 3512 let BaseOpcode = "A2_tfrsi"; 3513 let isMoveImm = 1; 3514 let isExtendable = 1; 3515 let opExtendable = 2; 3516 let isExtentSigned = 1; 3517 let opExtentBits = 12; 3518 let opExtentAlign = 0; 3519 } 3520 def C2_cmovenewit : HInst< 3521 (outs IntRegs:$Rd32), 3522 (ins PredRegs:$Pu4, s32_0Imm:$Ii), 3523 "if ($Pu4.new) $Rd32 = #$Ii", 3524 tc_5f6847a1, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3525 let Inst{13-13} = 0b1; 3526 let Inst{20-20} = 0b0; 3527 let Inst{31-23} = 0b011111100; 3528 let isPredicated = 1; 3529 let hasNewValue = 1; 3530 let opNewValue = 0; 3531 let isPredicatedNew = 1; 3532 let CextOpcode = "A2_tfr"; 3533 let InputType = "imm"; 3534 let BaseOpcode = "A2_tfrsi"; 3535 let isMoveImm = 1; 3536 let isExtendable = 1; 3537 let opExtendable = 2; 3538 let isExtentSigned = 1; 3539 let opExtentBits = 12; 3540 let opExtentAlign = 0; 3541 } 3542 def C2_cmpeq : HInst< 3543 (outs PredRegs:$Pd4), 3544 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3545 "$Pd4 = cmp.eq($Rs32,$Rt32)", 3546 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3547 let Inst{7-2} = 0b000000; 3548 let Inst{13-13} = 0b0; 3549 let Inst{31-21} = 0b11110010000; 3550 let CextOpcode = "C2_cmpeq"; 3551 let InputType = "reg"; 3552 let isCommutable = 1; 3553 let isCompare = 1; 3554 } 3555 def C2_cmpeqi : HInst< 3556 (outs PredRegs:$Pd4), 3557 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 3558 "$Pd4 = cmp.eq($Rs32,#$Ii)", 3559 tc_6ebb4a12, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3560 let Inst{4-2} = 0b000; 3561 let Inst{31-22} = 0b0111010100; 3562 let CextOpcode = "C2_cmpeq"; 3563 let InputType = "imm"; 3564 let isCompare = 1; 3565 let isExtendable = 1; 3566 let opExtendable = 2; 3567 let isExtentSigned = 1; 3568 let opExtentBits = 10; 3569 let opExtentAlign = 0; 3570 } 3571 def C2_cmpeqp : HInst< 3572 (outs PredRegs:$Pd4), 3573 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3574 "$Pd4 = cmp.eq($Rss32,$Rtt32)", 3575 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 3576 let Inst{7-2} = 0b000000; 3577 let Inst{13-13} = 0b0; 3578 let Inst{31-21} = 0b11010010100; 3579 let isCommutable = 1; 3580 let isCompare = 1; 3581 } 3582 def C2_cmpgei : HInst< 3583 (outs PredRegs:$Pd4), 3584 (ins IntRegs:$Rs32, s8_0Imm:$Ii), 3585 "$Pd4 = cmp.ge($Rs32,#$Ii)", 3586 tc_6ebb4a12, TypeALU32_2op> { 3587 let isCompare = 1; 3588 let isPseudo = 1; 3589 } 3590 def C2_cmpgeui : HInst< 3591 (outs PredRegs:$Pd4), 3592 (ins IntRegs:$Rs32, u8_0Imm:$Ii), 3593 "$Pd4 = cmp.geu($Rs32,#$Ii)", 3594 tc_6ebb4a12, TypeALU32_2op> { 3595 let isCompare = 1; 3596 let isPseudo = 1; 3597 } 3598 def C2_cmpgt : HInst< 3599 (outs PredRegs:$Pd4), 3600 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3601 "$Pd4 = cmp.gt($Rs32,$Rt32)", 3602 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3603 let Inst{7-2} = 0b000000; 3604 let Inst{13-13} = 0b0; 3605 let Inst{31-21} = 0b11110010010; 3606 let CextOpcode = "C2_cmpgt"; 3607 let InputType = "reg"; 3608 let isCompare = 1; 3609 } 3610 def C2_cmpgti : HInst< 3611 (outs PredRegs:$Pd4), 3612 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 3613 "$Pd4 = cmp.gt($Rs32,#$Ii)", 3614 tc_6ebb4a12, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3615 let Inst{4-2} = 0b000; 3616 let Inst{31-22} = 0b0111010101; 3617 let CextOpcode = "C2_cmpgt"; 3618 let InputType = "imm"; 3619 let isCompare = 1; 3620 let isExtendable = 1; 3621 let opExtendable = 2; 3622 let isExtentSigned = 1; 3623 let opExtentBits = 10; 3624 let opExtentAlign = 0; 3625 } 3626 def C2_cmpgtp : HInst< 3627 (outs PredRegs:$Pd4), 3628 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3629 "$Pd4 = cmp.gt($Rss32,$Rtt32)", 3630 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 3631 let Inst{7-2} = 0b010000; 3632 let Inst{13-13} = 0b0; 3633 let Inst{31-21} = 0b11010010100; 3634 let isCompare = 1; 3635 } 3636 def C2_cmpgtu : HInst< 3637 (outs PredRegs:$Pd4), 3638 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3639 "$Pd4 = cmp.gtu($Rs32,$Rt32)", 3640 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3641 let Inst{7-2} = 0b000000; 3642 let Inst{13-13} = 0b0; 3643 let Inst{31-21} = 0b11110010011; 3644 let CextOpcode = "C2_cmpgtu"; 3645 let InputType = "reg"; 3646 let isCompare = 1; 3647 } 3648 def C2_cmpgtui : HInst< 3649 (outs PredRegs:$Pd4), 3650 (ins IntRegs:$Rs32, u32_0Imm:$Ii), 3651 "$Pd4 = cmp.gtu($Rs32,#$Ii)", 3652 tc_6ebb4a12, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3653 let Inst{4-2} = 0b000; 3654 let Inst{31-21} = 0b01110101100; 3655 let CextOpcode = "C2_cmpgtu"; 3656 let InputType = "imm"; 3657 let isCompare = 1; 3658 let isExtendable = 1; 3659 let opExtendable = 2; 3660 let isExtentSigned = 0; 3661 let opExtentBits = 9; 3662 let opExtentAlign = 0; 3663 } 3664 def C2_cmpgtup : HInst< 3665 (outs PredRegs:$Pd4), 3666 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3667 "$Pd4 = cmp.gtu($Rss32,$Rtt32)", 3668 tc_1e856f58, TypeALU64>, Enc_fcf7a7 { 3669 let Inst{7-2} = 0b100000; 3670 let Inst{13-13} = 0b0; 3671 let Inst{31-21} = 0b11010010100; 3672 let isCompare = 1; 3673 } 3674 def C2_cmplt : HInst< 3675 (outs PredRegs:$Pd4), 3676 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3677 "$Pd4 = cmp.lt($Rs32,$Rt32)", 3678 tc_6ebb4a12, TypeALU32_3op> { 3679 let isCompare = 1; 3680 let isPseudo = 1; 3681 let isCodeGenOnly = 1; 3682 } 3683 def C2_cmpltu : HInst< 3684 (outs PredRegs:$Pd4), 3685 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3686 "$Pd4 = cmp.ltu($Rs32,$Rt32)", 3687 tc_6ebb4a12, TypeALU32_3op> { 3688 let isCompare = 1; 3689 let isPseudo = 1; 3690 let isCodeGenOnly = 1; 3691 } 3692 def C2_mask : HInst< 3693 (outs DoubleRegs:$Rdd32), 3694 (ins PredRegs:$Pt4), 3695 "$Rdd32 = mask($Pt4)", 3696 tc_cde8b071, TypeS_2op>, Enc_78e566 { 3697 let Inst{7-5} = 0b000; 3698 let Inst{13-10} = 0b0000; 3699 let Inst{31-16} = 0b1000011000000000; 3700 } 3701 def C2_mux : HInst< 3702 (outs IntRegs:$Rd32), 3703 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3704 "$Rd32 = mux($Pu4,$Rs32,$Rt32)", 3705 tc_d6bf0472, TypeALU32_3op>, Enc_ea4c54 { 3706 let Inst{7-7} = 0b0; 3707 let Inst{13-13} = 0b0; 3708 let Inst{31-21} = 0b11110100000; 3709 let hasNewValue = 1; 3710 let opNewValue = 0; 3711 let InputType = "reg"; 3712 } 3713 def C2_muxii : HInst< 3714 (outs IntRegs:$Rd32), 3715 (ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II), 3716 "$Rd32 = mux($Pu4,#$Ii,#$II)", 3717 tc_d6bf0472, TypeALU32_2op>, Enc_830e5d { 3718 let Inst{31-25} = 0b0111101; 3719 let hasNewValue = 1; 3720 let opNewValue = 0; 3721 let isExtendable = 1; 3722 let opExtendable = 2; 3723 let isExtentSigned = 1; 3724 let opExtentBits = 8; 3725 let opExtentAlign = 0; 3726 } 3727 def C2_muxir : HInst< 3728 (outs IntRegs:$Rd32), 3729 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 3730 "$Rd32 = mux($Pu4,$Rs32,#$Ii)", 3731 tc_d6bf0472, TypeALU32_2op>, Enc_e38e1f { 3732 let Inst{13-13} = 0b0; 3733 let Inst{31-23} = 0b011100110; 3734 let hasNewValue = 1; 3735 let opNewValue = 0; 3736 let InputType = "imm"; 3737 let isExtendable = 1; 3738 let opExtendable = 3; 3739 let isExtentSigned = 1; 3740 let opExtentBits = 8; 3741 let opExtentAlign = 0; 3742 } 3743 def C2_muxri : HInst< 3744 (outs IntRegs:$Rd32), 3745 (ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32), 3746 "$Rd32 = mux($Pu4,#$Ii,$Rs32)", 3747 tc_d6bf0472, TypeALU32_2op>, Enc_e38e1f { 3748 let Inst{13-13} = 0b0; 3749 let Inst{31-23} = 0b011100111; 3750 let hasNewValue = 1; 3751 let opNewValue = 0; 3752 let InputType = "imm"; 3753 let isExtendable = 1; 3754 let opExtendable = 2; 3755 let isExtentSigned = 1; 3756 let opExtentBits = 8; 3757 let opExtentAlign = 0; 3758 } 3759 def C2_not : HInst< 3760 (outs PredRegs:$Pd4), 3761 (ins PredRegs:$Ps4), 3762 "$Pd4 = not($Ps4)", 3763 tc_f2704b9a, TypeCR>, Enc_65d691 { 3764 let Inst{13-2} = 0b000000000000; 3765 let Inst{31-18} = 0b01101011110000; 3766 } 3767 def C2_or : HInst< 3768 (outs PredRegs:$Pd4), 3769 (ins PredRegs:$Pt4, PredRegs:$Ps4), 3770 "$Pd4 = or($Pt4,$Ps4)", 3771 tc_53bc8a6a, TypeCR>, Enc_454a26 { 3772 let Inst{7-2} = 0b000000; 3773 let Inst{13-10} = 0b0000; 3774 let Inst{31-18} = 0b01101011001000; 3775 } 3776 def C2_orn : HInst< 3777 (outs PredRegs:$Pd4), 3778 (ins PredRegs:$Pt4, PredRegs:$Ps4), 3779 "$Pd4 = or($Pt4,!$Ps4)", 3780 tc_53bc8a6a, TypeCR>, Enc_454a26 { 3781 let Inst{7-2} = 0b000000; 3782 let Inst{13-10} = 0b0000; 3783 let Inst{31-18} = 0b01101011111000; 3784 } 3785 def C2_pxfer_map : HInst< 3786 (outs PredRegs:$Pd4), 3787 (ins PredRegs:$Ps4), 3788 "$Pd4 = $Ps4", 3789 tc_53bc8a6a, TypeMAPPING> { 3790 let isPseudo = 1; 3791 let isCodeGenOnly = 1; 3792 } 3793 def C2_tfrpr : HInst< 3794 (outs IntRegs:$Rd32), 3795 (ins PredRegs:$Ps4), 3796 "$Rd32 = $Ps4", 3797 tc_cde8b071, TypeS_2op>, Enc_f5e933 { 3798 let Inst{13-5} = 0b000000000; 3799 let Inst{31-18} = 0b10001001010000; 3800 let hasNewValue = 1; 3801 let opNewValue = 0; 3802 } 3803 def C2_tfrrp : HInst< 3804 (outs PredRegs:$Pd4), 3805 (ins IntRegs:$Rs32), 3806 "$Pd4 = $Rs32", 3807 tc_351fed2d, TypeS_2op>, Enc_48b75f { 3808 let Inst{13-2} = 0b000000000000; 3809 let Inst{31-21} = 0b10000101010; 3810 } 3811 def C2_vitpack : HInst< 3812 (outs IntRegs:$Rd32), 3813 (ins PredRegs:$Ps4, PredRegs:$Pt4), 3814 "$Rd32 = vitpack($Ps4,$Pt4)", 3815 tc_1b9c9ee5, TypeS_2op>, Enc_527412 { 3816 let Inst{7-5} = 0b000; 3817 let Inst{13-10} = 0b0000; 3818 let Inst{31-18} = 0b10001001000000; 3819 let hasNewValue = 1; 3820 let opNewValue = 0; 3821 let prefersSlot3 = 1; 3822 } 3823 def C2_vmux : HInst< 3824 (outs DoubleRegs:$Rdd32), 3825 (ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3826 "$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)", 3827 tc_f8eeed7a, TypeALU64>, Enc_329361 { 3828 let Inst{7-7} = 0b0; 3829 let Inst{13-13} = 0b0; 3830 let Inst{31-21} = 0b11010001000; 3831 } 3832 def C2_xor : HInst< 3833 (outs PredRegs:$Pd4), 3834 (ins PredRegs:$Ps4, PredRegs:$Pt4), 3835 "$Pd4 = xor($Ps4,$Pt4)", 3836 tc_53bc8a6a, TypeCR>, Enc_284ebb { 3837 let Inst{7-2} = 0b000000; 3838 let Inst{13-10} = 0b0000; 3839 let Inst{31-18} = 0b01101011010000; 3840 } 3841 def C4_addipc : HInst< 3842 (outs IntRegs:$Rd32), 3843 (ins u32_0Imm:$Ii), 3844 "$Rd32 = add(pc,#$Ii)", 3845 tc_b9c4623f, TypeCR>, Enc_607661 { 3846 let Inst{6-5} = 0b00; 3847 let Inst{13-13} = 0b0; 3848 let Inst{31-16} = 0b0110101001001001; 3849 let hasNewValue = 1; 3850 let opNewValue = 0; 3851 let isExtendable = 1; 3852 let opExtendable = 1; 3853 let isExtentSigned = 0; 3854 let opExtentBits = 6; 3855 let opExtentAlign = 0; 3856 } 3857 def C4_and_and : HInst< 3858 (outs PredRegs:$Pd4), 3859 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3860 "$Pd4 = and($Ps4,and($Pt4,$Pu4))", 3861 tc_481e5e5c, TypeCR>, Enc_9ac432 { 3862 let Inst{5-2} = 0b0000; 3863 let Inst{13-10} = 0b0000; 3864 let Inst{31-18} = 0b01101011000100; 3865 } 3866 def C4_and_andn : HInst< 3867 (outs PredRegs:$Pd4), 3868 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3869 "$Pd4 = and($Ps4,and($Pt4,!$Pu4))", 3870 tc_481e5e5c, TypeCR>, Enc_9ac432 { 3871 let Inst{5-2} = 0b0000; 3872 let Inst{13-10} = 0b0000; 3873 let Inst{31-18} = 0b01101011100100; 3874 } 3875 def C4_and_or : HInst< 3876 (outs PredRegs:$Pd4), 3877 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3878 "$Pd4 = and($Ps4,or($Pt4,$Pu4))", 3879 tc_481e5e5c, TypeCR>, Enc_9ac432 { 3880 let Inst{5-2} = 0b0000; 3881 let Inst{13-10} = 0b0000; 3882 let Inst{31-18} = 0b01101011001100; 3883 } 3884 def C4_and_orn : HInst< 3885 (outs PredRegs:$Pd4), 3886 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3887 "$Pd4 = and($Ps4,or($Pt4,!$Pu4))", 3888 tc_481e5e5c, TypeCR>, Enc_9ac432 { 3889 let Inst{5-2} = 0b0000; 3890 let Inst{13-10} = 0b0000; 3891 let Inst{31-18} = 0b01101011101100; 3892 } 3893 def C4_cmplte : HInst< 3894 (outs PredRegs:$Pd4), 3895 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3896 "$Pd4 = !cmp.gt($Rs32,$Rt32)", 3897 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3898 let Inst{7-2} = 0b000100; 3899 let Inst{13-13} = 0b0; 3900 let Inst{31-21} = 0b11110010010; 3901 let CextOpcode = "C4_cmplte"; 3902 let InputType = "reg"; 3903 let isCompare = 1; 3904 } 3905 def C4_cmpltei : HInst< 3906 (outs PredRegs:$Pd4), 3907 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 3908 "$Pd4 = !cmp.gt($Rs32,#$Ii)", 3909 tc_6ebb4a12, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3910 let Inst{4-2} = 0b100; 3911 let Inst{31-22} = 0b0111010101; 3912 let CextOpcode = "C4_cmplte"; 3913 let InputType = "imm"; 3914 let isCompare = 1; 3915 let isExtendable = 1; 3916 let opExtendable = 2; 3917 let isExtentSigned = 1; 3918 let opExtentBits = 10; 3919 let opExtentAlign = 0; 3920 } 3921 def C4_cmplteu : HInst< 3922 (outs PredRegs:$Pd4), 3923 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3924 "$Pd4 = !cmp.gtu($Rs32,$Rt32)", 3925 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3926 let Inst{7-2} = 0b000100; 3927 let Inst{13-13} = 0b0; 3928 let Inst{31-21} = 0b11110010011; 3929 let CextOpcode = "C4_cmplteu"; 3930 let InputType = "reg"; 3931 let isCompare = 1; 3932 } 3933 def C4_cmplteui : HInst< 3934 (outs PredRegs:$Pd4), 3935 (ins IntRegs:$Rs32, u32_0Imm:$Ii), 3936 "$Pd4 = !cmp.gtu($Rs32,#$Ii)", 3937 tc_6ebb4a12, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3938 let Inst{4-2} = 0b100; 3939 let Inst{31-21} = 0b01110101100; 3940 let CextOpcode = "C4_cmplteu"; 3941 let InputType = "imm"; 3942 let isCompare = 1; 3943 let isExtendable = 1; 3944 let opExtendable = 2; 3945 let isExtentSigned = 0; 3946 let opExtentBits = 9; 3947 let opExtentAlign = 0; 3948 } 3949 def C4_cmpneq : HInst< 3950 (outs PredRegs:$Pd4), 3951 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3952 "$Pd4 = !cmp.eq($Rs32,$Rt32)", 3953 tc_c6aa82f7, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3954 let Inst{7-2} = 0b000100; 3955 let Inst{13-13} = 0b0; 3956 let Inst{31-21} = 0b11110010000; 3957 let CextOpcode = "C4_cmpneq"; 3958 let InputType = "reg"; 3959 let isCommutable = 1; 3960 let isCompare = 1; 3961 } 3962 def C4_cmpneqi : HInst< 3963 (outs PredRegs:$Pd4), 3964 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 3965 "$Pd4 = !cmp.eq($Rs32,#$Ii)", 3966 tc_6ebb4a12, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3967 let Inst{4-2} = 0b100; 3968 let Inst{31-22} = 0b0111010100; 3969 let CextOpcode = "C4_cmpneq"; 3970 let InputType = "imm"; 3971 let isCompare = 1; 3972 let isExtendable = 1; 3973 let opExtendable = 2; 3974 let isExtentSigned = 1; 3975 let opExtentBits = 10; 3976 let opExtentAlign = 0; 3977 } 3978 def C4_fastcorner9 : HInst< 3979 (outs PredRegs:$Pd4), 3980 (ins PredRegs:$Ps4, PredRegs:$Pt4), 3981 "$Pd4 = fastcorner9($Ps4,$Pt4)", 3982 tc_53bc8a6a, TypeCR>, Enc_284ebb { 3983 let Inst{7-2} = 0b100100; 3984 let Inst{13-10} = 0b1000; 3985 let Inst{31-18} = 0b01101011000000; 3986 } 3987 def C4_fastcorner9_not : HInst< 3988 (outs PredRegs:$Pd4), 3989 (ins PredRegs:$Ps4, PredRegs:$Pt4), 3990 "$Pd4 = !fastcorner9($Ps4,$Pt4)", 3991 tc_53bc8a6a, TypeCR>, Enc_284ebb { 3992 let Inst{7-2} = 0b100100; 3993 let Inst{13-10} = 0b1000; 3994 let Inst{31-18} = 0b01101011000100; 3995 } 3996 def C4_nbitsclr : HInst< 3997 (outs PredRegs:$Pd4), 3998 (ins IntRegs:$Rs32, IntRegs:$Rt32), 3999 "$Pd4 = !bitsclr($Rs32,$Rt32)", 4000 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 4001 let Inst{7-2} = 0b000000; 4002 let Inst{13-13} = 0b0; 4003 let Inst{31-21} = 0b11000111101; 4004 } 4005 def C4_nbitsclri : HInst< 4006 (outs PredRegs:$Pd4), 4007 (ins IntRegs:$Rs32, u6_0Imm:$Ii), 4008 "$Pd4 = !bitsclr($Rs32,#$Ii)", 4009 tc_7a830544, TypeS_2op>, Enc_5d6c34 { 4010 let Inst{7-2} = 0b000000; 4011 let Inst{31-21} = 0b10000101101; 4012 } 4013 def C4_nbitsset : HInst< 4014 (outs PredRegs:$Pd4), 4015 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4016 "$Pd4 = !bitsset($Rs32,$Rt32)", 4017 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 4018 let Inst{7-2} = 0b000000; 4019 let Inst{13-13} = 0b0; 4020 let Inst{31-21} = 0b11000111011; 4021 } 4022 def C4_or_and : HInst< 4023 (outs PredRegs:$Pd4), 4024 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4025 "$Pd4 = or($Ps4,and($Pt4,$Pu4))", 4026 tc_481e5e5c, TypeCR>, Enc_9ac432 { 4027 let Inst{5-2} = 0b0000; 4028 let Inst{13-10} = 0b0000; 4029 let Inst{31-18} = 0b01101011010100; 4030 } 4031 def C4_or_andn : HInst< 4032 (outs PredRegs:$Pd4), 4033 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4034 "$Pd4 = or($Ps4,and($Pt4,!$Pu4))", 4035 tc_481e5e5c, TypeCR>, Enc_9ac432 { 4036 let Inst{5-2} = 0b0000; 4037 let Inst{13-10} = 0b0000; 4038 let Inst{31-18} = 0b01101011110100; 4039 } 4040 def C4_or_or : HInst< 4041 (outs PredRegs:$Pd4), 4042 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4043 "$Pd4 = or($Ps4,or($Pt4,$Pu4))", 4044 tc_481e5e5c, TypeCR>, Enc_9ac432 { 4045 let Inst{5-2} = 0b0000; 4046 let Inst{13-10} = 0b0000; 4047 let Inst{31-18} = 0b01101011011100; 4048 } 4049 def C4_or_orn : HInst< 4050 (outs PredRegs:$Pd4), 4051 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4052 "$Pd4 = or($Ps4,or($Pt4,!$Pu4))", 4053 tc_481e5e5c, TypeCR>, Enc_9ac432 { 4054 let Inst{5-2} = 0b0000; 4055 let Inst{13-10} = 0b0000; 4056 let Inst{31-18} = 0b01101011111100; 4057 } 4058 def F2_conv_d2df : HInst< 4059 (outs DoubleRegs:$Rdd32), 4060 (ins DoubleRegs:$Rss32), 4061 "$Rdd32 = convert_d2df($Rss32)", 4062 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4063 let Inst{13-5} = 0b000000011; 4064 let Inst{31-21} = 0b10000000111; 4065 let isFP = 1; 4066 let Uses = [USR]; 4067 } 4068 def F2_conv_d2sf : HInst< 4069 (outs IntRegs:$Rd32), 4070 (ins DoubleRegs:$Rss32), 4071 "$Rd32 = convert_d2sf($Rss32)", 4072 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4073 let Inst{13-5} = 0b000000001; 4074 let Inst{31-21} = 0b10001000010; 4075 let hasNewValue = 1; 4076 let opNewValue = 0; 4077 let isFP = 1; 4078 let Uses = [USR]; 4079 } 4080 def F2_conv_df2d : HInst< 4081 (outs DoubleRegs:$Rdd32), 4082 (ins DoubleRegs:$Rss32), 4083 "$Rdd32 = convert_df2d($Rss32)", 4084 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4085 let Inst{13-5} = 0b000000000; 4086 let Inst{31-21} = 0b10000000111; 4087 let isFP = 1; 4088 let Uses = [USR]; 4089 } 4090 def F2_conv_df2d_chop : HInst< 4091 (outs DoubleRegs:$Rdd32), 4092 (ins DoubleRegs:$Rss32), 4093 "$Rdd32 = convert_df2d($Rss32):chop", 4094 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4095 let Inst{13-5} = 0b000000110; 4096 let Inst{31-21} = 0b10000000111; 4097 let isFP = 1; 4098 let Uses = [USR]; 4099 } 4100 def F2_conv_df2sf : HInst< 4101 (outs IntRegs:$Rd32), 4102 (ins DoubleRegs:$Rss32), 4103 "$Rd32 = convert_df2sf($Rss32)", 4104 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4105 let Inst{13-5} = 0b000000001; 4106 let Inst{31-21} = 0b10001000000; 4107 let hasNewValue = 1; 4108 let opNewValue = 0; 4109 let isFP = 1; 4110 let Uses = [USR]; 4111 } 4112 def F2_conv_df2ud : HInst< 4113 (outs DoubleRegs:$Rdd32), 4114 (ins DoubleRegs:$Rss32), 4115 "$Rdd32 = convert_df2ud($Rss32)", 4116 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4117 let Inst{13-5} = 0b000000001; 4118 let Inst{31-21} = 0b10000000111; 4119 let isFP = 1; 4120 let Uses = [USR]; 4121 } 4122 def F2_conv_df2ud_chop : HInst< 4123 (outs DoubleRegs:$Rdd32), 4124 (ins DoubleRegs:$Rss32), 4125 "$Rdd32 = convert_df2ud($Rss32):chop", 4126 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4127 let Inst{13-5} = 0b000000111; 4128 let Inst{31-21} = 0b10000000111; 4129 let isFP = 1; 4130 let Uses = [USR]; 4131 } 4132 def F2_conv_df2uw : HInst< 4133 (outs IntRegs:$Rd32), 4134 (ins DoubleRegs:$Rss32), 4135 "$Rd32 = convert_df2uw($Rss32)", 4136 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4137 let Inst{13-5} = 0b000000001; 4138 let Inst{31-21} = 0b10001000011; 4139 let hasNewValue = 1; 4140 let opNewValue = 0; 4141 let isFP = 1; 4142 let Uses = [USR]; 4143 } 4144 def F2_conv_df2uw_chop : HInst< 4145 (outs IntRegs:$Rd32), 4146 (ins DoubleRegs:$Rss32), 4147 "$Rd32 = convert_df2uw($Rss32):chop", 4148 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4149 let Inst{13-5} = 0b000000001; 4150 let Inst{31-21} = 0b10001000101; 4151 let hasNewValue = 1; 4152 let opNewValue = 0; 4153 let isFP = 1; 4154 let Uses = [USR]; 4155 } 4156 def F2_conv_df2w : HInst< 4157 (outs IntRegs:$Rd32), 4158 (ins DoubleRegs:$Rss32), 4159 "$Rd32 = convert_df2w($Rss32)", 4160 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4161 let Inst{13-5} = 0b000000001; 4162 let Inst{31-21} = 0b10001000100; 4163 let hasNewValue = 1; 4164 let opNewValue = 0; 4165 let isFP = 1; 4166 let Uses = [USR]; 4167 } 4168 def F2_conv_df2w_chop : HInst< 4169 (outs IntRegs:$Rd32), 4170 (ins DoubleRegs:$Rss32), 4171 "$Rd32 = convert_df2w($Rss32):chop", 4172 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4173 let Inst{13-5} = 0b000000001; 4174 let Inst{31-21} = 0b10001000111; 4175 let hasNewValue = 1; 4176 let opNewValue = 0; 4177 let isFP = 1; 4178 let Uses = [USR]; 4179 } 4180 def F2_conv_sf2d : HInst< 4181 (outs DoubleRegs:$Rdd32), 4182 (ins IntRegs:$Rs32), 4183 "$Rdd32 = convert_sf2d($Rs32)", 4184 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4185 let Inst{13-5} = 0b000000100; 4186 let Inst{31-21} = 0b10000100100; 4187 let isFP = 1; 4188 let Uses = [USR]; 4189 } 4190 def F2_conv_sf2d_chop : HInst< 4191 (outs DoubleRegs:$Rdd32), 4192 (ins IntRegs:$Rs32), 4193 "$Rdd32 = convert_sf2d($Rs32):chop", 4194 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4195 let Inst{13-5} = 0b000000110; 4196 let Inst{31-21} = 0b10000100100; 4197 let isFP = 1; 4198 let Uses = [USR]; 4199 } 4200 def F2_conv_sf2df : HInst< 4201 (outs DoubleRegs:$Rdd32), 4202 (ins IntRegs:$Rs32), 4203 "$Rdd32 = convert_sf2df($Rs32)", 4204 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4205 let Inst{13-5} = 0b000000000; 4206 let Inst{31-21} = 0b10000100100; 4207 let isFP = 1; 4208 let Uses = [USR]; 4209 } 4210 def F2_conv_sf2ud : HInst< 4211 (outs DoubleRegs:$Rdd32), 4212 (ins IntRegs:$Rs32), 4213 "$Rdd32 = convert_sf2ud($Rs32)", 4214 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4215 let Inst{13-5} = 0b000000011; 4216 let Inst{31-21} = 0b10000100100; 4217 let isFP = 1; 4218 let Uses = [USR]; 4219 } 4220 def F2_conv_sf2ud_chop : HInst< 4221 (outs DoubleRegs:$Rdd32), 4222 (ins IntRegs:$Rs32), 4223 "$Rdd32 = convert_sf2ud($Rs32):chop", 4224 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4225 let Inst{13-5} = 0b000000101; 4226 let Inst{31-21} = 0b10000100100; 4227 let isFP = 1; 4228 let Uses = [USR]; 4229 } 4230 def F2_conv_sf2uw : HInst< 4231 (outs IntRegs:$Rd32), 4232 (ins IntRegs:$Rs32), 4233 "$Rd32 = convert_sf2uw($Rs32)", 4234 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4235 let Inst{13-5} = 0b000000000; 4236 let Inst{31-21} = 0b10001011011; 4237 let hasNewValue = 1; 4238 let opNewValue = 0; 4239 let isFP = 1; 4240 let Uses = [USR]; 4241 } 4242 def F2_conv_sf2uw_chop : HInst< 4243 (outs IntRegs:$Rd32), 4244 (ins IntRegs:$Rs32), 4245 "$Rd32 = convert_sf2uw($Rs32):chop", 4246 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4247 let Inst{13-5} = 0b000000001; 4248 let Inst{31-21} = 0b10001011011; 4249 let hasNewValue = 1; 4250 let opNewValue = 0; 4251 let isFP = 1; 4252 let Uses = [USR]; 4253 } 4254 def F2_conv_sf2w : HInst< 4255 (outs IntRegs:$Rd32), 4256 (ins IntRegs:$Rs32), 4257 "$Rd32 = convert_sf2w($Rs32)", 4258 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4259 let Inst{13-5} = 0b000000000; 4260 let Inst{31-21} = 0b10001011100; 4261 let hasNewValue = 1; 4262 let opNewValue = 0; 4263 let isFP = 1; 4264 let Uses = [USR]; 4265 } 4266 def F2_conv_sf2w_chop : HInst< 4267 (outs IntRegs:$Rd32), 4268 (ins IntRegs:$Rs32), 4269 "$Rd32 = convert_sf2w($Rs32):chop", 4270 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4271 let Inst{13-5} = 0b000000001; 4272 let Inst{31-21} = 0b10001011100; 4273 let hasNewValue = 1; 4274 let opNewValue = 0; 4275 let isFP = 1; 4276 let Uses = [USR]; 4277 } 4278 def F2_conv_ud2df : HInst< 4279 (outs DoubleRegs:$Rdd32), 4280 (ins DoubleRegs:$Rss32), 4281 "$Rdd32 = convert_ud2df($Rss32)", 4282 tc_f3eaa14b, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5]> { 4283 let Inst{13-5} = 0b000000010; 4284 let Inst{31-21} = 0b10000000111; 4285 let isFP = 1; 4286 let Uses = [USR]; 4287 } 4288 def F2_conv_ud2sf : HInst< 4289 (outs IntRegs:$Rd32), 4290 (ins DoubleRegs:$Rss32), 4291 "$Rd32 = convert_ud2sf($Rss32)", 4292 tc_f3eaa14b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 4293 let Inst{13-5} = 0b000000001; 4294 let Inst{31-21} = 0b10001000001; 4295 let hasNewValue = 1; 4296 let opNewValue = 0; 4297 let isFP = 1; 4298 let Uses = [USR]; 4299 } 4300 def F2_conv_uw2df : HInst< 4301 (outs DoubleRegs:$Rdd32), 4302 (ins IntRegs:$Rs32), 4303 "$Rdd32 = convert_uw2df($Rs32)", 4304 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4305 let Inst{13-5} = 0b000000001; 4306 let Inst{31-21} = 0b10000100100; 4307 let isFP = 1; 4308 let Uses = [USR]; 4309 } 4310 def F2_conv_uw2sf : HInst< 4311 (outs IntRegs:$Rd32), 4312 (ins IntRegs:$Rs32), 4313 "$Rd32 = convert_uw2sf($Rs32)", 4314 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4315 let Inst{13-5} = 0b000000000; 4316 let Inst{31-21} = 0b10001011001; 4317 let hasNewValue = 1; 4318 let opNewValue = 0; 4319 let isFP = 1; 4320 let Uses = [USR]; 4321 } 4322 def F2_conv_w2df : HInst< 4323 (outs DoubleRegs:$Rdd32), 4324 (ins IntRegs:$Rs32), 4325 "$Rdd32 = convert_w2df($Rs32)", 4326 tc_f3eaa14b, TypeS_2op>, Enc_3a3d62, Requires<[HasV5]> { 4327 let Inst{13-5} = 0b000000010; 4328 let Inst{31-21} = 0b10000100100; 4329 let isFP = 1; 4330 let Uses = [USR]; 4331 } 4332 def F2_conv_w2sf : HInst< 4333 (outs IntRegs:$Rd32), 4334 (ins IntRegs:$Rs32), 4335 "$Rd32 = convert_w2sf($Rs32)", 4336 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4337 let Inst{13-5} = 0b000000000; 4338 let Inst{31-21} = 0b10001011010; 4339 let hasNewValue = 1; 4340 let opNewValue = 0; 4341 let isFP = 1; 4342 let Uses = [USR]; 4343 } 4344 def F2_dfclass : HInst< 4345 (outs PredRegs:$Pd4), 4346 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 4347 "$Pd4 = dfclass($Rss32,#$Ii)", 4348 tc_7a830544, TypeALU64>, Enc_1f19b5, Requires<[HasV5]> { 4349 let Inst{4-2} = 0b100; 4350 let Inst{13-10} = 0b0000; 4351 let Inst{31-21} = 0b11011100100; 4352 let isFP = 1; 4353 let Uses = [USR]; 4354 } 4355 def F2_dfcmpeq : HInst< 4356 (outs PredRegs:$Pd4), 4357 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4358 "$Pd4 = dfcmp.eq($Rss32,$Rtt32)", 4359 tc_1e856f58, TypeALU64>, Enc_fcf7a7, Requires<[HasV5]> { 4360 let Inst{7-2} = 0b000000; 4361 let Inst{13-13} = 0b0; 4362 let Inst{31-21} = 0b11010010111; 4363 let isFP = 1; 4364 let Uses = [USR]; 4365 let isCompare = 1; 4366 } 4367 def F2_dfcmpge : HInst< 4368 (outs PredRegs:$Pd4), 4369 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4370 "$Pd4 = dfcmp.ge($Rss32,$Rtt32)", 4371 tc_1e856f58, TypeALU64>, Enc_fcf7a7, Requires<[HasV5]> { 4372 let Inst{7-2} = 0b010000; 4373 let Inst{13-13} = 0b0; 4374 let Inst{31-21} = 0b11010010111; 4375 let isFP = 1; 4376 let Uses = [USR]; 4377 let isCompare = 1; 4378 } 4379 def F2_dfcmpgt : HInst< 4380 (outs PredRegs:$Pd4), 4381 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4382 "$Pd4 = dfcmp.gt($Rss32,$Rtt32)", 4383 tc_1e856f58, TypeALU64>, Enc_fcf7a7, Requires<[HasV5]> { 4384 let Inst{7-2} = 0b001000; 4385 let Inst{13-13} = 0b0; 4386 let Inst{31-21} = 0b11010010111; 4387 let isFP = 1; 4388 let Uses = [USR]; 4389 let isCompare = 1; 4390 } 4391 def F2_dfcmpuo : HInst< 4392 (outs PredRegs:$Pd4), 4393 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4394 "$Pd4 = dfcmp.uo($Rss32,$Rtt32)", 4395 tc_1e856f58, TypeALU64>, Enc_fcf7a7, Requires<[HasV5]> { 4396 let Inst{7-2} = 0b011000; 4397 let Inst{13-13} = 0b0; 4398 let Inst{31-21} = 0b11010010111; 4399 let isFP = 1; 4400 let Uses = [USR]; 4401 let isCompare = 1; 4402 } 4403 def F2_dfimm_n : HInst< 4404 (outs DoubleRegs:$Rdd32), 4405 (ins u10_0Imm:$Ii), 4406 "$Rdd32 = dfmake(#$Ii):neg", 4407 tc_234a11a5, TypeALU64>, Enc_e6c957, Requires<[HasV5]> { 4408 let Inst{20-16} = 0b00000; 4409 let Inst{31-22} = 0b1101100101; 4410 let prefersSlot3 = 1; 4411 } 4412 def F2_dfimm_p : HInst< 4413 (outs DoubleRegs:$Rdd32), 4414 (ins u10_0Imm:$Ii), 4415 "$Rdd32 = dfmake(#$Ii):pos", 4416 tc_234a11a5, TypeALU64>, Enc_e6c957, Requires<[HasV5]> { 4417 let Inst{20-16} = 0b00000; 4418 let Inst{31-22} = 0b1101100100; 4419 let prefersSlot3 = 1; 4420 } 4421 def F2_sfadd : HInst< 4422 (outs IntRegs:$Rd32), 4423 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4424 "$Rd32 = sfadd($Rs32,$Rt32)", 4425 tc_6792d5ff, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4426 let Inst{7-5} = 0b000; 4427 let Inst{13-13} = 0b0; 4428 let Inst{31-21} = 0b11101011000; 4429 let hasNewValue = 1; 4430 let opNewValue = 0; 4431 let isFP = 1; 4432 let Uses = [USR]; 4433 let isCommutable = 1; 4434 } 4435 def F2_sfclass : HInst< 4436 (outs PredRegs:$Pd4), 4437 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 4438 "$Pd4 = sfclass($Rs32,#$Ii)", 4439 tc_7a830544, TypeS_2op>, Enc_83ee64, Requires<[HasV5]> { 4440 let Inst{7-2} = 0b000000; 4441 let Inst{13-13} = 0b0; 4442 let Inst{31-21} = 0b10000101111; 4443 let isFP = 1; 4444 let Uses = [USR]; 4445 } 4446 def F2_sfcmpeq : HInst< 4447 (outs PredRegs:$Pd4), 4448 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4449 "$Pd4 = sfcmp.eq($Rs32,$Rt32)", 4450 tc_1e856f58, TypeS_3op>, Enc_c2b48e, Requires<[HasV5]> { 4451 let Inst{7-2} = 0b011000; 4452 let Inst{13-13} = 0b0; 4453 let Inst{31-21} = 0b11000111111; 4454 let isFP = 1; 4455 let Uses = [USR]; 4456 let isCompare = 1; 4457 } 4458 def F2_sfcmpge : HInst< 4459 (outs PredRegs:$Pd4), 4460 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4461 "$Pd4 = sfcmp.ge($Rs32,$Rt32)", 4462 tc_1e856f58, TypeS_3op>, Enc_c2b48e, Requires<[HasV5]> { 4463 let Inst{7-2} = 0b000000; 4464 let Inst{13-13} = 0b0; 4465 let Inst{31-21} = 0b11000111111; 4466 let isFP = 1; 4467 let Uses = [USR]; 4468 let isCompare = 1; 4469 } 4470 def F2_sfcmpgt : HInst< 4471 (outs PredRegs:$Pd4), 4472 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4473 "$Pd4 = sfcmp.gt($Rs32,$Rt32)", 4474 tc_1e856f58, TypeS_3op>, Enc_c2b48e, Requires<[HasV5]> { 4475 let Inst{7-2} = 0b100000; 4476 let Inst{13-13} = 0b0; 4477 let Inst{31-21} = 0b11000111111; 4478 let isFP = 1; 4479 let Uses = [USR]; 4480 let isCompare = 1; 4481 } 4482 def F2_sfcmpuo : HInst< 4483 (outs PredRegs:$Pd4), 4484 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4485 "$Pd4 = sfcmp.uo($Rs32,$Rt32)", 4486 tc_1e856f58, TypeS_3op>, Enc_c2b48e, Requires<[HasV5]> { 4487 let Inst{7-2} = 0b001000; 4488 let Inst{13-13} = 0b0; 4489 let Inst{31-21} = 0b11000111111; 4490 let isFP = 1; 4491 let Uses = [USR]; 4492 let isCompare = 1; 4493 } 4494 def F2_sffixupd : HInst< 4495 (outs IntRegs:$Rd32), 4496 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4497 "$Rd32 = sffixupd($Rs32,$Rt32)", 4498 tc_6792d5ff, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4499 let Inst{7-5} = 0b001; 4500 let Inst{13-13} = 0b0; 4501 let Inst{31-21} = 0b11101011110; 4502 let hasNewValue = 1; 4503 let opNewValue = 0; 4504 let isFP = 1; 4505 } 4506 def F2_sffixupn : HInst< 4507 (outs IntRegs:$Rd32), 4508 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4509 "$Rd32 = sffixupn($Rs32,$Rt32)", 4510 tc_6792d5ff, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4511 let Inst{7-5} = 0b000; 4512 let Inst{13-13} = 0b0; 4513 let Inst{31-21} = 0b11101011110; 4514 let hasNewValue = 1; 4515 let opNewValue = 0; 4516 let isFP = 1; 4517 } 4518 def F2_sffixupr : HInst< 4519 (outs IntRegs:$Rd32), 4520 (ins IntRegs:$Rs32), 4521 "$Rd32 = sffixupr($Rs32)", 4522 tc_f3eaa14b, TypeS_2op>, Enc_5e2823, Requires<[HasV5]> { 4523 let Inst{13-5} = 0b000000000; 4524 let Inst{31-21} = 0b10001011101; 4525 let hasNewValue = 1; 4526 let opNewValue = 0; 4527 let isFP = 1; 4528 } 4529 def F2_sffma : HInst< 4530 (outs IntRegs:$Rx32), 4531 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4532 "$Rx32 += sfmpy($Rs32,$Rt32)", 4533 tc_d580173f, TypeM>, Enc_2ae154, Requires<[HasV5]> { 4534 let Inst{7-5} = 0b100; 4535 let Inst{13-13} = 0b0; 4536 let Inst{31-21} = 0b11101111000; 4537 let hasNewValue = 1; 4538 let opNewValue = 0; 4539 let isFP = 1; 4540 let Uses = [USR]; 4541 let Constraints = "$Rx32 = $Rx32in"; 4542 } 4543 def F2_sffma_lib : HInst< 4544 (outs IntRegs:$Rx32), 4545 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4546 "$Rx32 += sfmpy($Rs32,$Rt32):lib", 4547 tc_d580173f, TypeM>, Enc_2ae154, Requires<[HasV5]> { 4548 let Inst{7-5} = 0b110; 4549 let Inst{13-13} = 0b0; 4550 let Inst{31-21} = 0b11101111000; 4551 let hasNewValue = 1; 4552 let opNewValue = 0; 4553 let isFP = 1; 4554 let Uses = [USR]; 4555 let Constraints = "$Rx32 = $Rx32in"; 4556 } 4557 def F2_sffma_sc : HInst< 4558 (outs IntRegs:$Rx32), 4559 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4), 4560 "$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale", 4561 tc_038a1342, TypeM>, Enc_437f33, Requires<[HasV5]> { 4562 let Inst{7-7} = 0b1; 4563 let Inst{13-13} = 0b0; 4564 let Inst{31-21} = 0b11101111011; 4565 let hasNewValue = 1; 4566 let opNewValue = 0; 4567 let isFP = 1; 4568 let Uses = [USR]; 4569 let Constraints = "$Rx32 = $Rx32in"; 4570 } 4571 def F2_sffms : HInst< 4572 (outs IntRegs:$Rx32), 4573 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4574 "$Rx32 -= sfmpy($Rs32,$Rt32)", 4575 tc_d580173f, TypeM>, Enc_2ae154, Requires<[HasV5]> { 4576 let Inst{7-5} = 0b101; 4577 let Inst{13-13} = 0b0; 4578 let Inst{31-21} = 0b11101111000; 4579 let hasNewValue = 1; 4580 let opNewValue = 0; 4581 let isFP = 1; 4582 let Uses = [USR]; 4583 let Constraints = "$Rx32 = $Rx32in"; 4584 } 4585 def F2_sffms_lib : HInst< 4586 (outs IntRegs:$Rx32), 4587 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4588 "$Rx32 -= sfmpy($Rs32,$Rt32):lib", 4589 tc_d580173f, TypeM>, Enc_2ae154, Requires<[HasV5]> { 4590 let Inst{7-5} = 0b111; 4591 let Inst{13-13} = 0b0; 4592 let Inst{31-21} = 0b11101111000; 4593 let hasNewValue = 1; 4594 let opNewValue = 0; 4595 let isFP = 1; 4596 let Uses = [USR]; 4597 let Constraints = "$Rx32 = $Rx32in"; 4598 } 4599 def F2_sfimm_n : HInst< 4600 (outs IntRegs:$Rd32), 4601 (ins u10_0Imm:$Ii), 4602 "$Rd32 = sfmake(#$Ii):neg", 4603 tc_234a11a5, TypeALU64>, Enc_6c9440, Requires<[HasV5]> { 4604 let Inst{20-16} = 0b00000; 4605 let Inst{31-22} = 0b1101011001; 4606 let hasNewValue = 1; 4607 let opNewValue = 0; 4608 let prefersSlot3 = 1; 4609 } 4610 def F2_sfimm_p : HInst< 4611 (outs IntRegs:$Rd32), 4612 (ins u10_0Imm:$Ii), 4613 "$Rd32 = sfmake(#$Ii):pos", 4614 tc_234a11a5, TypeALU64>, Enc_6c9440, Requires<[HasV5]> { 4615 let Inst{20-16} = 0b00000; 4616 let Inst{31-22} = 0b1101011000; 4617 let hasNewValue = 1; 4618 let opNewValue = 0; 4619 let prefersSlot3 = 1; 4620 } 4621 def F2_sfinvsqrta : HInst< 4622 (outs IntRegs:$Rd32, PredRegs:$Pe4), 4623 (ins IntRegs:$Rs32), 4624 "$Rd32,$Pe4 = sfinvsqrta($Rs32)", 4625 tc_4d99bca9, TypeS_2op>, Enc_890909, Requires<[HasV5]> { 4626 let Inst{13-7} = 0b0000000; 4627 let Inst{31-21} = 0b10001011111; 4628 let hasNewValue = 1; 4629 let opNewValue = 0; 4630 let isFP = 1; 4631 let isPredicateLate = 1; 4632 } 4633 def F2_sfmax : HInst< 4634 (outs IntRegs:$Rd32), 4635 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4636 "$Rd32 = sfmax($Rs32,$Rt32)", 4637 tc_976ddc4f, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4638 let Inst{7-5} = 0b000; 4639 let Inst{13-13} = 0b0; 4640 let Inst{31-21} = 0b11101011100; 4641 let hasNewValue = 1; 4642 let opNewValue = 0; 4643 let isFP = 1; 4644 let prefersSlot3 = 1; 4645 let Uses = [USR]; 4646 } 4647 def F2_sfmin : HInst< 4648 (outs IntRegs:$Rd32), 4649 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4650 "$Rd32 = sfmin($Rs32,$Rt32)", 4651 tc_976ddc4f, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4652 let Inst{7-5} = 0b001; 4653 let Inst{13-13} = 0b0; 4654 let Inst{31-21} = 0b11101011100; 4655 let hasNewValue = 1; 4656 let opNewValue = 0; 4657 let isFP = 1; 4658 let prefersSlot3 = 1; 4659 let Uses = [USR]; 4660 } 4661 def F2_sfmpy : HInst< 4662 (outs IntRegs:$Rd32), 4663 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4664 "$Rd32 = sfmpy($Rs32,$Rt32)", 4665 tc_6792d5ff, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4666 let Inst{7-5} = 0b000; 4667 let Inst{13-13} = 0b0; 4668 let Inst{31-21} = 0b11101011010; 4669 let hasNewValue = 1; 4670 let opNewValue = 0; 4671 let isFP = 1; 4672 let Uses = [USR]; 4673 let isCommutable = 1; 4674 } 4675 def F2_sfrecipa : HInst< 4676 (outs IntRegs:$Rd32, PredRegs:$Pe4), 4677 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4678 "$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)", 4679 tc_9c00ce8d, TypeM>, Enc_a94f3b, Requires<[HasV5]> { 4680 let Inst{7-7} = 0b1; 4681 let Inst{13-13} = 0b0; 4682 let Inst{31-21} = 0b11101011111; 4683 let hasNewValue = 1; 4684 let opNewValue = 0; 4685 let isFP = 1; 4686 let isPredicateLate = 1; 4687 } 4688 def F2_sfsub : HInst< 4689 (outs IntRegs:$Rd32), 4690 (ins IntRegs:$Rs32, IntRegs:$Rt32), 4691 "$Rd32 = sfsub($Rs32,$Rt32)", 4692 tc_6792d5ff, TypeM>, Enc_5ab2be, Requires<[HasV5]> { 4693 let Inst{7-5} = 0b001; 4694 let Inst{13-13} = 0b0; 4695 let Inst{31-21} = 0b11101011000; 4696 let hasNewValue = 1; 4697 let opNewValue = 0; 4698 let isFP = 1; 4699 let Uses = [USR]; 4700 } 4701 def G4_tfrgcpp : HInst< 4702 (outs DoubleRegs:$Rdd32), 4703 (ins GuestRegs64:$Gss32), 4704 "$Rdd32 = $Gss32", 4705 tc_6fa4db47, TypeCR>, Enc_0aa344 { 4706 let Inst{13-5} = 0b000000000; 4707 let Inst{31-21} = 0b01101000001; 4708 } 4709 def G4_tfrgcrr : HInst< 4710 (outs IntRegs:$Rd32), 4711 (ins GuestRegs:$Gs32), 4712 "$Rd32 = $Gs32", 4713 tc_6fa4db47, TypeCR>, Enc_44271f { 4714 let Inst{13-5} = 0b000000000; 4715 let Inst{31-21} = 0b01101010001; 4716 let hasNewValue = 1; 4717 let opNewValue = 0; 4718 } 4719 def G4_tfrgpcp : HInst< 4720 (outs GuestRegs64:$Gdd32), 4721 (ins DoubleRegs:$Rss32), 4722 "$Gdd32 = $Rss32", 4723 tc_994333cd, TypeCR>, Enc_ed5027 { 4724 let Inst{13-5} = 0b000000000; 4725 let Inst{31-21} = 0b01100011000; 4726 let hasNewValue = 1; 4727 let opNewValue = 0; 4728 } 4729 def G4_tfrgrcr : HInst< 4730 (outs GuestRegs:$Gd32), 4731 (ins IntRegs:$Rs32), 4732 "$Gd32 = $Rs32", 4733 tc_994333cd, TypeCR>, Enc_621fba { 4734 let Inst{13-5} = 0b000000000; 4735 let Inst{31-21} = 0b01100010000; 4736 let hasNewValue = 1; 4737 let opNewValue = 0; 4738 } 4739 def J2_call : HInst< 4740 (outs), 4741 (ins a30_2Imm:$Ii), 4742 "call $Ii", 4743 tc_a27582fa, TypeJ>, Enc_81ac1d, PredRel { 4744 let Inst{0-0} = 0b0; 4745 let Inst{31-25} = 0b0101101; 4746 let isCall = 1; 4747 let prefersSlot3 = 1; 4748 let cofRelax2 = 1; 4749 let cofMax1 = 1; 4750 let Uses = [R29]; 4751 let Defs = [PC, R31]; 4752 let BaseOpcode = "J2_call"; 4753 let isPredicable = 1; 4754 let hasSideEffects = 1; 4755 let isExtendable = 1; 4756 let opExtendable = 0; 4757 let isExtentSigned = 1; 4758 let opExtentBits = 24; 4759 let opExtentAlign = 2; 4760 } 4761 def J2_callf : HInst< 4762 (outs), 4763 (ins PredRegs:$Pu4, a30_2Imm:$Ii), 4764 "if (!$Pu4) call $Ii", 4765 tc_2f185f5c, TypeJ>, Enc_daea09, PredRel { 4766 let Inst{0-0} = 0b0; 4767 let Inst{12-10} = 0b000; 4768 let Inst{21-21} = 0b1; 4769 let Inst{31-24} = 0b01011101; 4770 let isPredicated = 1; 4771 let isPredicatedFalse = 1; 4772 let isCall = 1; 4773 let prefersSlot3 = 1; 4774 let cofRelax1 = 1; 4775 let cofRelax2 = 1; 4776 let cofMax1 = 1; 4777 let Uses = [R29]; 4778 let Defs = [PC, R31]; 4779 let BaseOpcode = "J2_call"; 4780 let hasSideEffects = 1; 4781 let isTaken = Inst{12}; 4782 let isExtendable = 1; 4783 let opExtendable = 1; 4784 let isExtentSigned = 1; 4785 let opExtentBits = 17; 4786 let opExtentAlign = 2; 4787 } 4788 def J2_callr : HInst< 4789 (outs), 4790 (ins IntRegs:$Rs32), 4791 "callr $Rs32", 4792 tc_15411484, TypeJ>, Enc_ecbcc8 { 4793 let Inst{13-0} = 0b00000000000000; 4794 let Inst{31-21} = 0b01010000101; 4795 let isCall = 1; 4796 let prefersSlot3 = 1; 4797 let cofMax1 = 1; 4798 let Uses = [R29]; 4799 let Defs = [PC, R31]; 4800 let hasSideEffects = 1; 4801 } 4802 def J2_callrf : HInst< 4803 (outs), 4804 (ins PredRegs:$Pu4, IntRegs:$Rs32), 4805 "if (!$Pu4) callr $Rs32", 4806 tc_10b97e27, TypeJ>, Enc_88d4d9 { 4807 let Inst{7-0} = 0b00000000; 4808 let Inst{13-10} = 0b0000; 4809 let Inst{31-21} = 0b01010001001; 4810 let isPredicated = 1; 4811 let isPredicatedFalse = 1; 4812 let isCall = 1; 4813 let prefersSlot3 = 1; 4814 let cofMax1 = 1; 4815 let Uses = [R29]; 4816 let Defs = [PC, R31]; 4817 let hasSideEffects = 1; 4818 let isTaken = Inst{12}; 4819 } 4820 def J2_callrt : HInst< 4821 (outs), 4822 (ins PredRegs:$Pu4, IntRegs:$Rs32), 4823 "if ($Pu4) callr $Rs32", 4824 tc_10b97e27, TypeJ>, Enc_88d4d9 { 4825 let Inst{7-0} = 0b00000000; 4826 let Inst{13-10} = 0b0000; 4827 let Inst{31-21} = 0b01010001000; 4828 let isPredicated = 1; 4829 let isCall = 1; 4830 let prefersSlot3 = 1; 4831 let cofMax1 = 1; 4832 let Uses = [R29]; 4833 let Defs = [PC, R31]; 4834 let hasSideEffects = 1; 4835 let isTaken = Inst{12}; 4836 } 4837 def J2_callt : HInst< 4838 (outs), 4839 (ins PredRegs:$Pu4, a30_2Imm:$Ii), 4840 "if ($Pu4) call $Ii", 4841 tc_2f185f5c, TypeJ>, Enc_daea09, PredRel { 4842 let Inst{0-0} = 0b0; 4843 let Inst{12-10} = 0b000; 4844 let Inst{21-21} = 0b0; 4845 let Inst{31-24} = 0b01011101; 4846 let isPredicated = 1; 4847 let isCall = 1; 4848 let prefersSlot3 = 1; 4849 let cofRelax1 = 1; 4850 let cofRelax2 = 1; 4851 let cofMax1 = 1; 4852 let Uses = [R29]; 4853 let Defs = [PC, R31]; 4854 let BaseOpcode = "J2_call"; 4855 let hasSideEffects = 1; 4856 let isTaken = Inst{12}; 4857 let isExtendable = 1; 4858 let opExtendable = 1; 4859 let isExtentSigned = 1; 4860 let opExtentBits = 17; 4861 let opExtentAlign = 2; 4862 } 4863 def J2_endloop0 : HInst< 4864 (outs), 4865 (ins), 4866 "endloop0", 4867 tc_52d7bbea, TypeJ> { 4868 let Uses = [LC0, SA0]; 4869 let Defs = [LC0, P3, PC, USR]; 4870 let isBranch = 1; 4871 let isTerminator = 1; 4872 let isPseudo = 1; 4873 } 4874 def J2_endloop01 : HInst< 4875 (outs), 4876 (ins), 4877 "endloop01", 4878 tc_52d7bbea, TypeJ> { 4879 let Uses = [LC0, LC1, SA0, SA1]; 4880 let Defs = [LC0, LC1, P3, PC, USR]; 4881 let isPseudo = 1; 4882 } 4883 def J2_endloop1 : HInst< 4884 (outs), 4885 (ins), 4886 "endloop1", 4887 tc_52d7bbea, TypeJ> { 4888 let Uses = [LC1, SA1]; 4889 let Defs = [LC1, PC]; 4890 let isBranch = 1; 4891 let isTerminator = 1; 4892 let isPseudo = 1; 4893 } 4894 def J2_jump : HInst< 4895 (outs), 4896 (ins b30_2Imm:$Ii), 4897 "jump $Ii", 4898 tc_3669266a, TypeJ>, Enc_81ac1d, PredNewRel { 4899 let Inst{0-0} = 0b0; 4900 let Inst{31-25} = 0b0101100; 4901 let isTerminator = 1; 4902 let isBranch = 1; 4903 let cofRelax2 = 1; 4904 let cofMax1 = 1; 4905 let Defs = [PC]; 4906 let InputType = "imm"; 4907 let BaseOpcode = "J2_jump"; 4908 let isBarrier = 1; 4909 let isPredicable = 1; 4910 let isExtendable = 1; 4911 let opExtendable = 0; 4912 let isExtentSigned = 1; 4913 let opExtentBits = 24; 4914 let opExtentAlign = 2; 4915 } 4916 def J2_jumpf : HInst< 4917 (outs), 4918 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 4919 "if (!$Pu4) jump:nt $Ii", 4920 tc_e9fae2d6, TypeJ>, Enc_daea09, PredNewRel { 4921 let Inst{0-0} = 0b0; 4922 let Inst{12-10} = 0b000; 4923 let Inst{21-21} = 0b1; 4924 let Inst{31-24} = 0b01011100; 4925 let isPredicated = 1; 4926 let isPredicatedFalse = 1; 4927 let isTerminator = 1; 4928 let isBranch = 1; 4929 let cofRelax1 = 1; 4930 let cofRelax2 = 1; 4931 let cofMax1 = 1; 4932 let Defs = [PC]; 4933 let InputType = "imm"; 4934 let BaseOpcode = "J2_jump"; 4935 let isTaken = Inst{12}; 4936 let isExtendable = 1; 4937 let opExtendable = 1; 4938 let isExtentSigned = 1; 4939 let opExtentBits = 17; 4940 let opExtentAlign = 2; 4941 } 4942 def J2_jumpf_nopred_map : HInst< 4943 (outs), 4944 (ins PredRegs:$Pu4, b15_2Imm:$Ii), 4945 "if (!$Pu4) jump $Ii", 4946 tc_e9fae2d6, TypeMAPPING>, Requires<[HasV60]> { 4947 let isPseudo = 1; 4948 let isCodeGenOnly = 1; 4949 } 4950 def J2_jumpfnew : HInst< 4951 (outs), 4952 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 4953 "if (!$Pu4.new) jump:nt $Ii", 4954 tc_a46f0df5, TypeJ>, Enc_daea09, PredNewRel { 4955 let Inst{0-0} = 0b0; 4956 let Inst{12-10} = 0b010; 4957 let Inst{21-21} = 0b1; 4958 let Inst{31-24} = 0b01011100; 4959 let isPredicated = 1; 4960 let isPredicatedFalse = 1; 4961 let isTerminator = 1; 4962 let isBranch = 1; 4963 let isPredicatedNew = 1; 4964 let cofRelax1 = 1; 4965 let cofRelax2 = 1; 4966 let cofMax1 = 1; 4967 let Defs = [PC]; 4968 let InputType = "imm"; 4969 let BaseOpcode = "J2_jump"; 4970 let isTaken = Inst{12}; 4971 let isExtendable = 1; 4972 let opExtendable = 1; 4973 let isExtentSigned = 1; 4974 let opExtentBits = 17; 4975 let opExtentAlign = 2; 4976 } 4977 def J2_jumpfnewpt : HInst< 4978 (outs), 4979 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 4980 "if (!$Pu4.new) jump:t $Ii", 4981 tc_a46f0df5, TypeJ>, Enc_daea09, PredNewRel { 4982 let Inst{0-0} = 0b0; 4983 let Inst{12-10} = 0b110; 4984 let Inst{21-21} = 0b1; 4985 let Inst{31-24} = 0b01011100; 4986 let isPredicated = 1; 4987 let isPredicatedFalse = 1; 4988 let isTerminator = 1; 4989 let isBranch = 1; 4990 let isPredicatedNew = 1; 4991 let cofRelax1 = 1; 4992 let cofRelax2 = 1; 4993 let cofMax1 = 1; 4994 let Defs = [PC]; 4995 let InputType = "imm"; 4996 let BaseOpcode = "J2_jump"; 4997 let isTaken = Inst{12}; 4998 let isExtendable = 1; 4999 let opExtendable = 1; 5000 let isExtentSigned = 1; 5001 let opExtentBits = 17; 5002 let opExtentAlign = 2; 5003 } 5004 def J2_jumpfpt : HInst< 5005 (outs), 5006 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 5007 "if (!$Pu4) jump:t $Ii", 5008 tc_e1e99bfa, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5009 let Inst{0-0} = 0b0; 5010 let Inst{12-10} = 0b100; 5011 let Inst{21-21} = 0b1; 5012 let Inst{31-24} = 0b01011100; 5013 let isPredicated = 1; 5014 let isPredicatedFalse = 1; 5015 let isTerminator = 1; 5016 let isBranch = 1; 5017 let cofRelax1 = 1; 5018 let cofRelax2 = 1; 5019 let cofMax1 = 1; 5020 let Defs = [PC]; 5021 let InputType = "imm"; 5022 let BaseOpcode = "J2_jump"; 5023 let isTaken = Inst{12}; 5024 let isExtendable = 1; 5025 let opExtendable = 1; 5026 let isExtentSigned = 1; 5027 let opExtentBits = 17; 5028 let opExtentAlign = 2; 5029 } 5030 def J2_jumpr : HInst< 5031 (outs), 5032 (ins IntRegs:$Rs32), 5033 "jumpr $Rs32", 5034 tc_9faf76ae, TypeJ>, Enc_ecbcc8, PredNewRel { 5035 let Inst{13-0} = 0b00000000000000; 5036 let Inst{31-21} = 0b01010010100; 5037 let isTerminator = 1; 5038 let isIndirectBranch = 1; 5039 let isBranch = 1; 5040 let cofMax1 = 1; 5041 let Defs = [PC]; 5042 let InputType = "reg"; 5043 let BaseOpcode = "J2_jumpr"; 5044 let isBarrier = 1; 5045 let isPredicable = 1; 5046 } 5047 def J2_jumprf : HInst< 5048 (outs), 5049 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5050 "if (!$Pu4) jumpr:nt $Rs32", 5051 tc_e0739b8c, TypeJ>, Enc_88d4d9, PredNewRel { 5052 let Inst{7-0} = 0b00000000; 5053 let Inst{13-10} = 0b0000; 5054 let Inst{31-21} = 0b01010011011; 5055 let isPredicated = 1; 5056 let isPredicatedFalse = 1; 5057 let isTerminator = 1; 5058 let isIndirectBranch = 1; 5059 let isBranch = 1; 5060 let cofMax1 = 1; 5061 let Defs = [PC]; 5062 let InputType = "reg"; 5063 let BaseOpcode = "J2_jumpr"; 5064 let isTaken = Inst{12}; 5065 } 5066 def J2_jumprf_nopred_map : HInst< 5067 (outs), 5068 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5069 "if (!$Pu4) jumpr $Rs32", 5070 tc_e0739b8c, TypeMAPPING>, Requires<[HasV60]> { 5071 let isPseudo = 1; 5072 let isCodeGenOnly = 1; 5073 } 5074 def J2_jumprfnew : HInst< 5075 (outs), 5076 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5077 "if (!$Pu4.new) jumpr:nt $Rs32", 5078 tc_181af5d0, TypeJ>, Enc_88d4d9, PredNewRel { 5079 let Inst{7-0} = 0b00000000; 5080 let Inst{13-10} = 0b0010; 5081 let Inst{31-21} = 0b01010011011; 5082 let isPredicated = 1; 5083 let isPredicatedFalse = 1; 5084 let isTerminator = 1; 5085 let isIndirectBranch = 1; 5086 let isBranch = 1; 5087 let isPredicatedNew = 1; 5088 let cofMax1 = 1; 5089 let Defs = [PC]; 5090 let InputType = "reg"; 5091 let BaseOpcode = "J2_jumpr"; 5092 let isTaken = Inst{12}; 5093 } 5094 def J2_jumprfnewpt : HInst< 5095 (outs), 5096 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5097 "if (!$Pu4.new) jumpr:t $Rs32", 5098 tc_181af5d0, TypeJ>, Enc_88d4d9, PredNewRel { 5099 let Inst{7-0} = 0b00000000; 5100 let Inst{13-10} = 0b0110; 5101 let Inst{31-21} = 0b01010011011; 5102 let isPredicated = 1; 5103 let isPredicatedFalse = 1; 5104 let isTerminator = 1; 5105 let isIndirectBranch = 1; 5106 let isBranch = 1; 5107 let isPredicatedNew = 1; 5108 let cofMax1 = 1; 5109 let Defs = [PC]; 5110 let InputType = "reg"; 5111 let BaseOpcode = "J2_jumpr"; 5112 let isTaken = Inst{12}; 5113 } 5114 def J2_jumprfpt : HInst< 5115 (outs), 5116 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5117 "if (!$Pu4) jumpr:t $Rs32", 5118 tc_97743097, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5119 let Inst{7-0} = 0b00000000; 5120 let Inst{13-10} = 0b0100; 5121 let Inst{31-21} = 0b01010011011; 5122 let isPredicated = 1; 5123 let isPredicatedFalse = 1; 5124 let isTerminator = 1; 5125 let isIndirectBranch = 1; 5126 let isBranch = 1; 5127 let cofMax1 = 1; 5128 let Defs = [PC]; 5129 let InputType = "reg"; 5130 let BaseOpcode = "J2_jumpr"; 5131 let isTaken = Inst{12}; 5132 } 5133 def J2_jumprgtez : HInst< 5134 (outs), 5135 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5136 "if ($Rs32>=#0) jump:nt $Ii", 5137 tc_73043bf4, TypeCR>, Enc_0fa531 { 5138 let Inst{0-0} = 0b0; 5139 let Inst{12-12} = 0b0; 5140 let Inst{31-22} = 0b0110000101; 5141 let isPredicated = 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 isTaken = Inst{12}; 5150 } 5151 def J2_jumprgtezpt : HInst< 5152 (outs), 5153 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5154 "if ($Rs32>=#0) jump:t $Ii", 5155 tc_73043bf4, TypeCR>, Enc_0fa531 { 5156 let Inst{0-0} = 0b0; 5157 let Inst{12-12} = 0b1; 5158 let Inst{31-22} = 0b0110000101; 5159 let isPredicated = 1; 5160 let isTerminator = 1; 5161 let isBranch = 1; 5162 let isPredicatedNew = 1; 5163 let cofRelax1 = 1; 5164 let cofRelax2 = 1; 5165 let cofMax1 = 1; 5166 let Defs = [PC]; 5167 let isTaken = Inst{12}; 5168 } 5169 def J2_jumprltez : HInst< 5170 (outs), 5171 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5172 "if ($Rs32<=#0) jump:nt $Ii", 5173 tc_73043bf4, TypeCR>, Enc_0fa531 { 5174 let Inst{0-0} = 0b0; 5175 let Inst{12-12} = 0b0; 5176 let Inst{31-22} = 0b0110000111; 5177 let isPredicated = 1; 5178 let isTerminator = 1; 5179 let isBranch = 1; 5180 let isPredicatedNew = 1; 5181 let cofRelax1 = 1; 5182 let cofRelax2 = 1; 5183 let cofMax1 = 1; 5184 let Defs = [PC]; 5185 let isTaken = Inst{12}; 5186 } 5187 def J2_jumprltezpt : HInst< 5188 (outs), 5189 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5190 "if ($Rs32<=#0) jump:t $Ii", 5191 tc_73043bf4, TypeCR>, Enc_0fa531 { 5192 let Inst{0-0} = 0b0; 5193 let Inst{12-12} = 0b1; 5194 let Inst{31-22} = 0b0110000111; 5195 let isPredicated = 1; 5196 let isTerminator = 1; 5197 let isBranch = 1; 5198 let isPredicatedNew = 1; 5199 let cofRelax1 = 1; 5200 let cofRelax2 = 1; 5201 let cofMax1 = 1; 5202 let Defs = [PC]; 5203 let isTaken = Inst{12}; 5204 } 5205 def J2_jumprnz : HInst< 5206 (outs), 5207 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5208 "if ($Rs32==#0) jump:nt $Ii", 5209 tc_73043bf4, TypeCR>, Enc_0fa531 { 5210 let Inst{0-0} = 0b0; 5211 let Inst{12-12} = 0b0; 5212 let Inst{31-22} = 0b0110000110; 5213 let isPredicated = 1; 5214 let isTerminator = 1; 5215 let isBranch = 1; 5216 let isPredicatedNew = 1; 5217 let cofRelax1 = 1; 5218 let cofRelax2 = 1; 5219 let cofMax1 = 1; 5220 let Defs = [PC]; 5221 let isTaken = Inst{12}; 5222 } 5223 def J2_jumprnzpt : HInst< 5224 (outs), 5225 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5226 "if ($Rs32==#0) jump:t $Ii", 5227 tc_73043bf4, TypeCR>, Enc_0fa531 { 5228 let Inst{0-0} = 0b0; 5229 let Inst{12-12} = 0b1; 5230 let Inst{31-22} = 0b0110000110; 5231 let isPredicated = 1; 5232 let isTerminator = 1; 5233 let isBranch = 1; 5234 let isPredicatedNew = 1; 5235 let cofRelax1 = 1; 5236 let cofRelax2 = 1; 5237 let cofMax1 = 1; 5238 let Defs = [PC]; 5239 let isTaken = Inst{12}; 5240 } 5241 def J2_jumprt : HInst< 5242 (outs), 5243 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5244 "if ($Pu4) jumpr:nt $Rs32", 5245 tc_e0739b8c, TypeJ>, Enc_88d4d9, PredNewRel { 5246 let Inst{7-0} = 0b00000000; 5247 let Inst{13-10} = 0b0000; 5248 let Inst{31-21} = 0b01010011010; 5249 let isPredicated = 1; 5250 let isTerminator = 1; 5251 let isIndirectBranch = 1; 5252 let isBranch = 1; 5253 let cofMax1 = 1; 5254 let Defs = [PC]; 5255 let InputType = "reg"; 5256 let BaseOpcode = "J2_jumpr"; 5257 let isTaken = Inst{12}; 5258 } 5259 def J2_jumprt_nopred_map : HInst< 5260 (outs), 5261 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5262 "if ($Pu4) jumpr $Rs32", 5263 tc_e0739b8c, TypeMAPPING>, Requires<[HasV60]> { 5264 let isPseudo = 1; 5265 let isCodeGenOnly = 1; 5266 } 5267 def J2_jumprtnew : HInst< 5268 (outs), 5269 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5270 "if ($Pu4.new) jumpr:nt $Rs32", 5271 tc_181af5d0, TypeJ>, Enc_88d4d9, PredNewRel { 5272 let Inst{7-0} = 0b00000000; 5273 let Inst{13-10} = 0b0010; 5274 let Inst{31-21} = 0b01010011010; 5275 let isPredicated = 1; 5276 let isTerminator = 1; 5277 let isIndirectBranch = 1; 5278 let isBranch = 1; 5279 let isPredicatedNew = 1; 5280 let cofMax1 = 1; 5281 let Defs = [PC]; 5282 let InputType = "reg"; 5283 let BaseOpcode = "J2_jumpr"; 5284 let isTaken = Inst{12}; 5285 } 5286 def J2_jumprtnewpt : HInst< 5287 (outs), 5288 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5289 "if ($Pu4.new) jumpr:t $Rs32", 5290 tc_181af5d0, TypeJ>, Enc_88d4d9, PredNewRel { 5291 let Inst{7-0} = 0b00000000; 5292 let Inst{13-10} = 0b0110; 5293 let Inst{31-21} = 0b01010011010; 5294 let isPredicated = 1; 5295 let isTerminator = 1; 5296 let isIndirectBranch = 1; 5297 let isBranch = 1; 5298 let isPredicatedNew = 1; 5299 let cofMax1 = 1; 5300 let Defs = [PC]; 5301 let InputType = "reg"; 5302 let BaseOpcode = "J2_jumpr"; 5303 let isTaken = Inst{12}; 5304 } 5305 def J2_jumprtpt : HInst< 5306 (outs), 5307 (ins PredRegs:$Pu4, IntRegs:$Rs32), 5308 "if ($Pu4) jumpr:t $Rs32", 5309 tc_97743097, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5310 let Inst{7-0} = 0b00000000; 5311 let Inst{13-10} = 0b0100; 5312 let Inst{31-21} = 0b01010011010; 5313 let isPredicated = 1; 5314 let isTerminator = 1; 5315 let isIndirectBranch = 1; 5316 let isBranch = 1; 5317 let cofMax1 = 1; 5318 let Defs = [PC]; 5319 let InputType = "reg"; 5320 let BaseOpcode = "J2_jumpr"; 5321 let isTaken = Inst{12}; 5322 } 5323 def J2_jumprz : HInst< 5324 (outs), 5325 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5326 "if ($Rs32!=#0) jump:nt $Ii", 5327 tc_73043bf4, TypeCR>, Enc_0fa531 { 5328 let Inst{0-0} = 0b0; 5329 let Inst{12-12} = 0b0; 5330 let Inst{31-22} = 0b0110000100; 5331 let isPredicated = 1; 5332 let isTerminator = 1; 5333 let isBranch = 1; 5334 let isPredicatedNew = 1; 5335 let cofRelax1 = 1; 5336 let cofRelax2 = 1; 5337 let cofMax1 = 1; 5338 let Defs = [PC]; 5339 let isTaken = Inst{12}; 5340 } 5341 def J2_jumprzpt : HInst< 5342 (outs), 5343 (ins IntRegs:$Rs32, b13_2Imm:$Ii), 5344 "if ($Rs32!=#0) jump:t $Ii", 5345 tc_73043bf4, TypeCR>, Enc_0fa531 { 5346 let Inst{0-0} = 0b0; 5347 let Inst{12-12} = 0b1; 5348 let Inst{31-22} = 0b0110000100; 5349 let isPredicated = 1; 5350 let isTerminator = 1; 5351 let isBranch = 1; 5352 let isPredicatedNew = 1; 5353 let cofRelax1 = 1; 5354 let cofRelax2 = 1; 5355 let cofMax1 = 1; 5356 let Defs = [PC]; 5357 let isTaken = Inst{12}; 5358 } 5359 def J2_jumpt : HInst< 5360 (outs), 5361 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 5362 "if ($Pu4) jump:nt $Ii", 5363 tc_e9fae2d6, TypeJ>, Enc_daea09, PredNewRel { 5364 let Inst{0-0} = 0b0; 5365 let Inst{12-10} = 0b000; 5366 let Inst{21-21} = 0b0; 5367 let Inst{31-24} = 0b01011100; 5368 let isPredicated = 1; 5369 let isTerminator = 1; 5370 let isBranch = 1; 5371 let cofRelax1 = 1; 5372 let cofRelax2 = 1; 5373 let cofMax1 = 1; 5374 let Defs = [PC]; 5375 let InputType = "imm"; 5376 let BaseOpcode = "J2_jump"; 5377 let isTaken = Inst{12}; 5378 let isExtendable = 1; 5379 let opExtendable = 1; 5380 let isExtentSigned = 1; 5381 let opExtentBits = 17; 5382 let opExtentAlign = 2; 5383 } 5384 def J2_jumpt_nopred_map : HInst< 5385 (outs), 5386 (ins PredRegs:$Pu4, b15_2Imm:$Ii), 5387 "if ($Pu4) jump $Ii", 5388 tc_e9fae2d6, TypeMAPPING>, Requires<[HasV60]> { 5389 let isPseudo = 1; 5390 let isCodeGenOnly = 1; 5391 } 5392 def J2_jumptnew : HInst< 5393 (outs), 5394 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 5395 "if ($Pu4.new) jump:nt $Ii", 5396 tc_a46f0df5, TypeJ>, Enc_daea09, PredNewRel { 5397 let Inst{0-0} = 0b0; 5398 let Inst{12-10} = 0b010; 5399 let Inst{21-21} = 0b0; 5400 let Inst{31-24} = 0b01011100; 5401 let isPredicated = 1; 5402 let isTerminator = 1; 5403 let isBranch = 1; 5404 let isPredicatedNew = 1; 5405 let cofRelax1 = 1; 5406 let cofRelax2 = 1; 5407 let cofMax1 = 1; 5408 let Defs = [PC]; 5409 let InputType = "imm"; 5410 let BaseOpcode = "J2_jump"; 5411 let isTaken = Inst{12}; 5412 let isExtendable = 1; 5413 let opExtendable = 1; 5414 let isExtentSigned = 1; 5415 let opExtentBits = 17; 5416 let opExtentAlign = 2; 5417 } 5418 def J2_jumptnewpt : HInst< 5419 (outs), 5420 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 5421 "if ($Pu4.new) jump:t $Ii", 5422 tc_a46f0df5, TypeJ>, Enc_daea09, PredNewRel { 5423 let Inst{0-0} = 0b0; 5424 let Inst{12-10} = 0b110; 5425 let Inst{21-21} = 0b0; 5426 let Inst{31-24} = 0b01011100; 5427 let isPredicated = 1; 5428 let isTerminator = 1; 5429 let isBranch = 1; 5430 let isPredicatedNew = 1; 5431 let cofRelax1 = 1; 5432 let cofRelax2 = 1; 5433 let cofMax1 = 1; 5434 let Defs = [PC]; 5435 let InputType = "imm"; 5436 let BaseOpcode = "J2_jump"; 5437 let isTaken = Inst{12}; 5438 let isExtendable = 1; 5439 let opExtendable = 1; 5440 let isExtentSigned = 1; 5441 let opExtentBits = 17; 5442 let opExtentAlign = 2; 5443 } 5444 def J2_jumptpt : HInst< 5445 (outs), 5446 (ins PredRegs:$Pu4, b30_2Imm:$Ii), 5447 "if ($Pu4) jump:t $Ii", 5448 tc_e1e99bfa, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5449 let Inst{0-0} = 0b0; 5450 let Inst{12-10} = 0b100; 5451 let Inst{21-21} = 0b0; 5452 let Inst{31-24} = 0b01011100; 5453 let isPredicated = 1; 5454 let isTerminator = 1; 5455 let isBranch = 1; 5456 let cofRelax1 = 1; 5457 let cofRelax2 = 1; 5458 let cofMax1 = 1; 5459 let Defs = [PC]; 5460 let InputType = "imm"; 5461 let BaseOpcode = "J2_jump"; 5462 let isTaken = Inst{12}; 5463 let isExtendable = 1; 5464 let opExtendable = 1; 5465 let isExtentSigned = 1; 5466 let opExtentBits = 17; 5467 let opExtentAlign = 2; 5468 } 5469 def J2_loop0i : HInst< 5470 (outs), 5471 (ins b30_2Imm:$Ii, u10_0Imm:$II), 5472 "loop0($Ii,#$II)", 5473 tc_cf59f215, TypeCR>, Enc_4dc228 { 5474 let Inst{2-2} = 0b0; 5475 let Inst{13-13} = 0b0; 5476 let Inst{31-21} = 0b01101001000; 5477 let cofRelax1 = 1; 5478 let cofRelax2 = 1; 5479 let Defs = [LC0, SA0, USR]; 5480 let isExtendable = 1; 5481 let opExtendable = 0; 5482 let isExtentSigned = 1; 5483 let opExtentBits = 9; 5484 let opExtentAlign = 2; 5485 } 5486 def J2_loop0r : HInst< 5487 (outs), 5488 (ins b30_2Imm:$Ii, IntRegs:$Rs32), 5489 "loop0($Ii,$Rs32)", 5490 tc_7934b9df, TypeCR>, Enc_864a5a { 5491 let Inst{2-0} = 0b000; 5492 let Inst{7-5} = 0b000; 5493 let Inst{13-13} = 0b0; 5494 let Inst{31-21} = 0b01100000000; 5495 let cofRelax1 = 1; 5496 let cofRelax2 = 1; 5497 let Defs = [LC0, SA0, USR]; 5498 let isExtendable = 1; 5499 let opExtendable = 0; 5500 let isExtentSigned = 1; 5501 let opExtentBits = 9; 5502 let opExtentAlign = 2; 5503 } 5504 def J2_loop1i : HInst< 5505 (outs), 5506 (ins b30_2Imm:$Ii, u10_0Imm:$II), 5507 "loop1($Ii,#$II)", 5508 tc_cf59f215, TypeCR>, Enc_4dc228 { 5509 let Inst{2-2} = 0b0; 5510 let Inst{13-13} = 0b0; 5511 let Inst{31-21} = 0b01101001001; 5512 let cofRelax1 = 1; 5513 let cofRelax2 = 1; 5514 let Defs = [LC1, SA1]; 5515 let isExtendable = 1; 5516 let opExtendable = 0; 5517 let isExtentSigned = 1; 5518 let opExtentBits = 9; 5519 let opExtentAlign = 2; 5520 } 5521 def J2_loop1r : HInst< 5522 (outs), 5523 (ins b30_2Imm:$Ii, IntRegs:$Rs32), 5524 "loop1($Ii,$Rs32)", 5525 tc_7934b9df, TypeCR>, Enc_864a5a { 5526 let Inst{2-0} = 0b000; 5527 let Inst{7-5} = 0b000; 5528 let Inst{13-13} = 0b0; 5529 let Inst{31-21} = 0b01100000001; 5530 let cofRelax1 = 1; 5531 let cofRelax2 = 1; 5532 let Defs = [LC1, SA1]; 5533 let isExtendable = 1; 5534 let opExtendable = 0; 5535 let isExtentSigned = 1; 5536 let opExtentBits = 9; 5537 let opExtentAlign = 2; 5538 } 5539 def J2_pause : HInst< 5540 (outs), 5541 (ins u8_0Imm:$Ii), 5542 "pause(#$Ii)", 5543 tc_681a2300, TypeJ>, Enc_a51a9a { 5544 let Inst{1-0} = 0b00; 5545 let Inst{7-5} = 0b000; 5546 let Inst{13-13} = 0b0; 5547 let Inst{31-16} = 0b0101010001000000; 5548 let isSolo = 1; 5549 } 5550 def J2_ploop1si : HInst< 5551 (outs), 5552 (ins b30_2Imm:$Ii, u10_0Imm:$II), 5553 "p3 = sp1loop0($Ii,#$II)", 5554 tc_c5e2426d, TypeCR>, Enc_4dc228 { 5555 let Inst{2-2} = 0b0; 5556 let Inst{13-13} = 0b0; 5557 let Inst{31-21} = 0b01101001101; 5558 let isPredicateLate = 1; 5559 let cofRelax1 = 1; 5560 let cofRelax2 = 1; 5561 let Defs = [LC0, P3, SA0, USR]; 5562 let isExtendable = 1; 5563 let opExtendable = 0; 5564 let isExtentSigned = 1; 5565 let opExtentBits = 9; 5566 let opExtentAlign = 2; 5567 } 5568 def J2_ploop1sr : HInst< 5569 (outs), 5570 (ins b30_2Imm:$Ii, IntRegs:$Rs32), 5571 "p3 = sp1loop0($Ii,$Rs32)", 5572 tc_4f7cd700, TypeCR>, Enc_864a5a { 5573 let Inst{2-0} = 0b000; 5574 let Inst{7-5} = 0b000; 5575 let Inst{13-13} = 0b0; 5576 let Inst{31-21} = 0b01100000101; 5577 let isPredicateLate = 1; 5578 let cofRelax1 = 1; 5579 let cofRelax2 = 1; 5580 let Defs = [LC0, P3, SA0, USR]; 5581 let isExtendable = 1; 5582 let opExtendable = 0; 5583 let isExtentSigned = 1; 5584 let opExtentBits = 9; 5585 let opExtentAlign = 2; 5586 } 5587 def J2_ploop2si : HInst< 5588 (outs), 5589 (ins b30_2Imm:$Ii, u10_0Imm:$II), 5590 "p3 = sp2loop0($Ii,#$II)", 5591 tc_c5e2426d, TypeCR>, Enc_4dc228 { 5592 let Inst{2-2} = 0b0; 5593 let Inst{13-13} = 0b0; 5594 let Inst{31-21} = 0b01101001110; 5595 let isPredicateLate = 1; 5596 let cofRelax1 = 1; 5597 let cofRelax2 = 1; 5598 let Defs = [LC0, P3, SA0, USR]; 5599 let isExtendable = 1; 5600 let opExtendable = 0; 5601 let isExtentSigned = 1; 5602 let opExtentBits = 9; 5603 let opExtentAlign = 2; 5604 } 5605 def J2_ploop2sr : HInst< 5606 (outs), 5607 (ins b30_2Imm:$Ii, IntRegs:$Rs32), 5608 "p3 = sp2loop0($Ii,$Rs32)", 5609 tc_4f7cd700, TypeCR>, Enc_864a5a { 5610 let Inst{2-0} = 0b000; 5611 let Inst{7-5} = 0b000; 5612 let Inst{13-13} = 0b0; 5613 let Inst{31-21} = 0b01100000110; 5614 let isPredicateLate = 1; 5615 let cofRelax1 = 1; 5616 let cofRelax2 = 1; 5617 let Defs = [LC0, P3, SA0, USR]; 5618 let isExtendable = 1; 5619 let opExtendable = 0; 5620 let isExtentSigned = 1; 5621 let opExtentBits = 9; 5622 let opExtentAlign = 2; 5623 } 5624 def J2_ploop3si : HInst< 5625 (outs), 5626 (ins b30_2Imm:$Ii, u10_0Imm:$II), 5627 "p3 = sp3loop0($Ii,#$II)", 5628 tc_c5e2426d, TypeCR>, Enc_4dc228 { 5629 let Inst{2-2} = 0b0; 5630 let Inst{13-13} = 0b0; 5631 let Inst{31-21} = 0b01101001111; 5632 let isPredicateLate = 1; 5633 let cofRelax1 = 1; 5634 let cofRelax2 = 1; 5635 let Defs = [LC0, P3, SA0, USR]; 5636 let isExtendable = 1; 5637 let opExtendable = 0; 5638 let isExtentSigned = 1; 5639 let opExtentBits = 9; 5640 let opExtentAlign = 2; 5641 } 5642 def J2_ploop3sr : HInst< 5643 (outs), 5644 (ins b30_2Imm:$Ii, IntRegs:$Rs32), 5645 "p3 = sp3loop0($Ii,$Rs32)", 5646 tc_4f7cd700, TypeCR>, Enc_864a5a { 5647 let Inst{2-0} = 0b000; 5648 let Inst{7-5} = 0b000; 5649 let Inst{13-13} = 0b0; 5650 let Inst{31-21} = 0b01100000111; 5651 let isPredicateLate = 1; 5652 let cofRelax1 = 1; 5653 let cofRelax2 = 1; 5654 let Defs = [LC0, P3, SA0, USR]; 5655 let isExtendable = 1; 5656 let opExtendable = 0; 5657 let isExtentSigned = 1; 5658 let opExtentBits = 9; 5659 let opExtentAlign = 2; 5660 } 5661 def J2_trap0 : HInst< 5662 (outs), 5663 (ins u8_0Imm:$Ii), 5664 "trap0(#$Ii)", 5665 tc_14cd4cfa, TypeJ>, Enc_a51a9a { 5666 let Inst{1-0} = 0b00; 5667 let Inst{7-5} = 0b000; 5668 let Inst{13-13} = 0b0; 5669 let Inst{31-16} = 0b0101010000000000; 5670 let isSolo = 1; 5671 } 5672 def J2_trap1 : HInst< 5673 (outs IntRegs:$Rx32), 5674 (ins IntRegs:$Rx32in, u8_0Imm:$Ii), 5675 "trap1($Rx32,#$Ii)", 5676 tc_59a01ead, TypeJ>, Enc_33f8ba { 5677 let Inst{1-0} = 0b00; 5678 let Inst{7-5} = 0b000; 5679 let Inst{13-13} = 0b0; 5680 let Inst{31-21} = 0b01010100100; 5681 let hasNewValue = 1; 5682 let opNewValue = 0; 5683 let isSolo = 1; 5684 let Uses = [GOSP]; 5685 let Defs = [GOSP, PC]; 5686 let Constraints = "$Rx32 = $Rx32in"; 5687 } 5688 def J2_trap1_noregmap : HInst< 5689 (outs), 5690 (ins u8_0Imm:$Ii), 5691 "trap1(#$Ii)", 5692 tc_59a01ead, TypeMAPPING> { 5693 let isPseudo = 1; 5694 let isCodeGenOnly = 1; 5695 } 5696 def J4_cmpeq_f_jumpnv_nt : HInst< 5697 (outs), 5698 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5699 "if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 5700 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 5701 let Inst{0-0} = 0b0; 5702 let Inst{13-13} = 0b0; 5703 let Inst{19-19} = 0b0; 5704 let Inst{31-22} = 0b0010000001; 5705 let isPredicated = 1; 5706 let isPredicatedFalse = 1; 5707 let isTerminator = 1; 5708 let isBranch = 1; 5709 let isNewValue = 1; 5710 let cofMax1 = 1; 5711 let isRestrictNoSlot1Store = 1; 5712 let Defs = [PC]; 5713 let BaseOpcode = "J4_cmpeqr"; 5714 let isTaken = Inst{13}; 5715 let isExtendable = 1; 5716 let opExtendable = 2; 5717 let isExtentSigned = 1; 5718 let opExtentBits = 11; 5719 let opExtentAlign = 2; 5720 let opNewValue = 0; 5721 } 5722 def J4_cmpeq_f_jumpnv_t : HInst< 5723 (outs), 5724 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5725 "if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 5726 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 5727 let Inst{0-0} = 0b0; 5728 let Inst{13-13} = 0b1; 5729 let Inst{19-19} = 0b0; 5730 let Inst{31-22} = 0b0010000001; 5731 let isPredicated = 1; 5732 let isPredicatedFalse = 1; 5733 let isTerminator = 1; 5734 let isBranch = 1; 5735 let isNewValue = 1; 5736 let cofMax1 = 1; 5737 let isRestrictNoSlot1Store = 1; 5738 let Defs = [PC]; 5739 let BaseOpcode = "J4_cmpeqr"; 5740 let isTaken = Inst{13}; 5741 let isExtendable = 1; 5742 let opExtendable = 2; 5743 let isExtentSigned = 1; 5744 let opExtentBits = 11; 5745 let opExtentAlign = 2; 5746 let opNewValue = 0; 5747 } 5748 def J4_cmpeq_fp0_jump_nt : HInst< 5749 (outs), 5750 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5751 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 5752 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5753 let Inst{0-0} = 0b0; 5754 let Inst{13-12} = 0b00; 5755 let Inst{31-22} = 0b0001010001; 5756 let isPredicated = 1; 5757 let isPredicatedFalse = 1; 5758 let isTerminator = 1; 5759 let isBranch = 1; 5760 let isPredicatedNew = 1; 5761 let cofRelax1 = 1; 5762 let cofRelax2 = 1; 5763 let cofMax1 = 1; 5764 let Uses = [P0]; 5765 let Defs = [P0, PC]; 5766 let BaseOpcode = "J4_cmpeqp0"; 5767 let isTaken = Inst{13}; 5768 let isExtendable = 1; 5769 let opExtendable = 2; 5770 let isExtentSigned = 1; 5771 let opExtentBits = 11; 5772 let opExtentAlign = 2; 5773 } 5774 def J4_cmpeq_fp0_jump_t : HInst< 5775 (outs), 5776 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5777 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 5778 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5779 let Inst{0-0} = 0b0; 5780 let Inst{13-12} = 0b10; 5781 let Inst{31-22} = 0b0001010001; 5782 let isPredicated = 1; 5783 let isPredicatedFalse = 1; 5784 let isTerminator = 1; 5785 let isBranch = 1; 5786 let isPredicatedNew = 1; 5787 let cofRelax1 = 1; 5788 let cofRelax2 = 1; 5789 let cofMax1 = 1; 5790 let Uses = [P0]; 5791 let Defs = [P0, PC]; 5792 let BaseOpcode = "J4_cmpeqp0"; 5793 let isTaken = Inst{13}; 5794 let isExtendable = 1; 5795 let opExtendable = 2; 5796 let isExtentSigned = 1; 5797 let opExtentBits = 11; 5798 let opExtentAlign = 2; 5799 } 5800 def J4_cmpeq_fp1_jump_nt : HInst< 5801 (outs), 5802 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5803 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 5804 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5805 let Inst{0-0} = 0b0; 5806 let Inst{13-12} = 0b01; 5807 let Inst{31-22} = 0b0001010001; 5808 let isPredicated = 1; 5809 let isPredicatedFalse = 1; 5810 let isTerminator = 1; 5811 let isBranch = 1; 5812 let isPredicatedNew = 1; 5813 let cofRelax1 = 1; 5814 let cofRelax2 = 1; 5815 let cofMax1 = 1; 5816 let Uses = [P1]; 5817 let Defs = [P1, PC]; 5818 let BaseOpcode = "J4_cmpeqp1"; 5819 let isTaken = Inst{13}; 5820 let isExtendable = 1; 5821 let opExtendable = 2; 5822 let isExtentSigned = 1; 5823 let opExtentBits = 11; 5824 let opExtentAlign = 2; 5825 } 5826 def J4_cmpeq_fp1_jump_t : HInst< 5827 (outs), 5828 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5829 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 5830 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5831 let Inst{0-0} = 0b0; 5832 let Inst{13-12} = 0b11; 5833 let Inst{31-22} = 0b0001010001; 5834 let isPredicated = 1; 5835 let isPredicatedFalse = 1; 5836 let isTerminator = 1; 5837 let isBranch = 1; 5838 let isPredicatedNew = 1; 5839 let cofRelax1 = 1; 5840 let cofRelax2 = 1; 5841 let cofMax1 = 1; 5842 let Uses = [P1]; 5843 let Defs = [P1, PC]; 5844 let BaseOpcode = "J4_cmpeqp1"; 5845 let isTaken = Inst{13}; 5846 let isExtendable = 1; 5847 let opExtendable = 2; 5848 let isExtentSigned = 1; 5849 let opExtentBits = 11; 5850 let opExtentAlign = 2; 5851 } 5852 def J4_cmpeq_t_jumpnv_nt : HInst< 5853 (outs), 5854 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5855 "if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 5856 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 5857 let Inst{0-0} = 0b0; 5858 let Inst{13-13} = 0b0; 5859 let Inst{19-19} = 0b0; 5860 let Inst{31-22} = 0b0010000000; 5861 let isPredicated = 1; 5862 let isTerminator = 1; 5863 let isBranch = 1; 5864 let isNewValue = 1; 5865 let cofMax1 = 1; 5866 let isRestrictNoSlot1Store = 1; 5867 let Defs = [PC]; 5868 let BaseOpcode = "J4_cmpeqr"; 5869 let isTaken = Inst{13}; 5870 let isExtendable = 1; 5871 let opExtendable = 2; 5872 let isExtentSigned = 1; 5873 let opExtentBits = 11; 5874 let opExtentAlign = 2; 5875 let opNewValue = 0; 5876 } 5877 def J4_cmpeq_t_jumpnv_t : HInst< 5878 (outs), 5879 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5880 "if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 5881 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 5882 let Inst{0-0} = 0b0; 5883 let Inst{13-13} = 0b1; 5884 let Inst{19-19} = 0b0; 5885 let Inst{31-22} = 0b0010000000; 5886 let isPredicated = 1; 5887 let isTerminator = 1; 5888 let isBranch = 1; 5889 let isNewValue = 1; 5890 let cofMax1 = 1; 5891 let isRestrictNoSlot1Store = 1; 5892 let Defs = [PC]; 5893 let BaseOpcode = "J4_cmpeqr"; 5894 let isTaken = Inst{13}; 5895 let isExtendable = 1; 5896 let opExtendable = 2; 5897 let isExtentSigned = 1; 5898 let opExtentBits = 11; 5899 let opExtentAlign = 2; 5900 let opNewValue = 0; 5901 } 5902 def J4_cmpeq_tp0_jump_nt : HInst< 5903 (outs), 5904 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5905 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 5906 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5907 let Inst{0-0} = 0b0; 5908 let Inst{13-12} = 0b00; 5909 let Inst{31-22} = 0b0001010000; 5910 let isPredicated = 1; 5911 let isTerminator = 1; 5912 let isBranch = 1; 5913 let isPredicatedNew = 1; 5914 let cofRelax1 = 1; 5915 let cofRelax2 = 1; 5916 let cofMax1 = 1; 5917 let Uses = [P0]; 5918 let Defs = [P0, PC]; 5919 let BaseOpcode = "J4_cmpeqp0"; 5920 let isTaken = Inst{13}; 5921 let isExtendable = 1; 5922 let opExtendable = 2; 5923 let isExtentSigned = 1; 5924 let opExtentBits = 11; 5925 let opExtentAlign = 2; 5926 } 5927 def J4_cmpeq_tp0_jump_t : HInst< 5928 (outs), 5929 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5930 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii", 5931 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5932 let Inst{0-0} = 0b0; 5933 let Inst{13-12} = 0b10; 5934 let Inst{31-22} = 0b0001010000; 5935 let isPredicated = 1; 5936 let isTerminator = 1; 5937 let isBranch = 1; 5938 let isPredicatedNew = 1; 5939 let cofRelax1 = 1; 5940 let cofRelax2 = 1; 5941 let cofMax1 = 1; 5942 let Uses = [P0]; 5943 let Defs = [P0, PC]; 5944 let BaseOpcode = "J4_cmpeqp0"; 5945 let isTaken = Inst{13}; 5946 let isExtendable = 1; 5947 let opExtendable = 2; 5948 let isExtentSigned = 1; 5949 let opExtentBits = 11; 5950 let opExtentAlign = 2; 5951 } 5952 def J4_cmpeq_tp1_jump_nt : HInst< 5953 (outs), 5954 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5955 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 5956 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5957 let Inst{0-0} = 0b0; 5958 let Inst{13-12} = 0b01; 5959 let Inst{31-22} = 0b0001010000; 5960 let isPredicated = 1; 5961 let isTerminator = 1; 5962 let isBranch = 1; 5963 let isPredicatedNew = 1; 5964 let cofRelax1 = 1; 5965 let cofRelax2 = 1; 5966 let cofMax1 = 1; 5967 let Uses = [P1]; 5968 let Defs = [P1, PC]; 5969 let BaseOpcode = "J4_cmpeqp1"; 5970 let isTaken = Inst{13}; 5971 let isExtendable = 1; 5972 let opExtendable = 2; 5973 let isExtentSigned = 1; 5974 let opExtentBits = 11; 5975 let opExtentAlign = 2; 5976 } 5977 def J4_cmpeq_tp1_jump_t : HInst< 5978 (outs), 5979 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5980 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii", 5981 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 5982 let Inst{0-0} = 0b0; 5983 let Inst{13-12} = 0b11; 5984 let Inst{31-22} = 0b0001010000; 5985 let isPredicated = 1; 5986 let isTerminator = 1; 5987 let isBranch = 1; 5988 let isPredicatedNew = 1; 5989 let cofRelax1 = 1; 5990 let cofRelax2 = 1; 5991 let cofMax1 = 1; 5992 let Uses = [P1]; 5993 let Defs = [P1, PC]; 5994 let BaseOpcode = "J4_cmpeqp1"; 5995 let isTaken = Inst{13}; 5996 let isExtendable = 1; 5997 let opExtendable = 2; 5998 let isExtentSigned = 1; 5999 let opExtentBits = 11; 6000 let opExtentAlign = 2; 6001 } 6002 def J4_cmpeqi_f_jumpnv_nt : HInst< 6003 (outs), 6004 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6005 "if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6006 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6007 let Inst{0-0} = 0b0; 6008 let Inst{13-13} = 0b0; 6009 let Inst{19-19} = 0b0; 6010 let Inst{31-22} = 0b0010010001; 6011 let isPredicated = 1; 6012 let isPredicatedFalse = 1; 6013 let isTerminator = 1; 6014 let isBranch = 1; 6015 let isNewValue = 1; 6016 let cofMax1 = 1; 6017 let isRestrictNoSlot1Store = 1; 6018 let Defs = [PC]; 6019 let BaseOpcode = "J4_cmpeqi"; 6020 let isTaken = Inst{13}; 6021 let isExtendable = 1; 6022 let opExtendable = 2; 6023 let isExtentSigned = 1; 6024 let opExtentBits = 11; 6025 let opExtentAlign = 2; 6026 let opNewValue = 0; 6027 } 6028 def J4_cmpeqi_f_jumpnv_t : HInst< 6029 (outs), 6030 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6031 "if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6032 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6033 let Inst{0-0} = 0b0; 6034 let Inst{13-13} = 0b1; 6035 let Inst{19-19} = 0b0; 6036 let Inst{31-22} = 0b0010010001; 6037 let isPredicated = 1; 6038 let isPredicatedFalse = 1; 6039 let isTerminator = 1; 6040 let isBranch = 1; 6041 let isNewValue = 1; 6042 let cofMax1 = 1; 6043 let isRestrictNoSlot1Store = 1; 6044 let Defs = [PC]; 6045 let BaseOpcode = "J4_cmpeqi"; 6046 let isTaken = Inst{13}; 6047 let isExtendable = 1; 6048 let opExtendable = 2; 6049 let isExtentSigned = 1; 6050 let opExtentBits = 11; 6051 let opExtentAlign = 2; 6052 let opNewValue = 0; 6053 } 6054 def J4_cmpeqi_fp0_jump_nt : HInst< 6055 (outs), 6056 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6057 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii", 6058 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6059 let Inst{0-0} = 0b0; 6060 let Inst{13-13} = 0b0; 6061 let Inst{31-22} = 0b0001000001; 6062 let isPredicated = 1; 6063 let isPredicatedFalse = 1; 6064 let isTerminator = 1; 6065 let isBranch = 1; 6066 let isPredicatedNew = 1; 6067 let cofRelax1 = 1; 6068 let cofRelax2 = 1; 6069 let cofMax1 = 1; 6070 let Uses = [P0]; 6071 let Defs = [P0, PC]; 6072 let BaseOpcode = "J4_cmpeqip0"; 6073 let isTaken = Inst{13}; 6074 let isExtendable = 1; 6075 let opExtendable = 2; 6076 let isExtentSigned = 1; 6077 let opExtentBits = 11; 6078 let opExtentAlign = 2; 6079 } 6080 def J4_cmpeqi_fp0_jump_t : HInst< 6081 (outs), 6082 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6083 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii", 6084 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6085 let Inst{0-0} = 0b0; 6086 let Inst{13-13} = 0b1; 6087 let Inst{31-22} = 0b0001000001; 6088 let isPredicated = 1; 6089 let isPredicatedFalse = 1; 6090 let isTerminator = 1; 6091 let isBranch = 1; 6092 let isPredicatedNew = 1; 6093 let cofRelax1 = 1; 6094 let cofRelax2 = 1; 6095 let cofMax1 = 1; 6096 let Uses = [P0]; 6097 let Defs = [P0, PC]; 6098 let BaseOpcode = "J4_cmpeqip0"; 6099 let isTaken = Inst{13}; 6100 let isExtendable = 1; 6101 let opExtendable = 2; 6102 let isExtentSigned = 1; 6103 let opExtentBits = 11; 6104 let opExtentAlign = 2; 6105 } 6106 def J4_cmpeqi_fp1_jump_nt : HInst< 6107 (outs), 6108 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6109 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii", 6110 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6111 let Inst{0-0} = 0b0; 6112 let Inst{13-13} = 0b0; 6113 let Inst{31-22} = 0b0001001001; 6114 let isPredicated = 1; 6115 let isPredicatedFalse = 1; 6116 let isTerminator = 1; 6117 let isBranch = 1; 6118 let isPredicatedNew = 1; 6119 let cofRelax1 = 1; 6120 let cofRelax2 = 1; 6121 let cofMax1 = 1; 6122 let Uses = [P1]; 6123 let Defs = [P1, PC]; 6124 let BaseOpcode = "J4_cmpeqip1"; 6125 let isTaken = Inst{13}; 6126 let isExtendable = 1; 6127 let opExtendable = 2; 6128 let isExtentSigned = 1; 6129 let opExtentBits = 11; 6130 let opExtentAlign = 2; 6131 } 6132 def J4_cmpeqi_fp1_jump_t : HInst< 6133 (outs), 6134 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6135 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii", 6136 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6137 let Inst{0-0} = 0b0; 6138 let Inst{13-13} = 0b1; 6139 let Inst{31-22} = 0b0001001001; 6140 let isPredicated = 1; 6141 let isPredicatedFalse = 1; 6142 let isTerminator = 1; 6143 let isBranch = 1; 6144 let isPredicatedNew = 1; 6145 let cofRelax1 = 1; 6146 let cofRelax2 = 1; 6147 let cofMax1 = 1; 6148 let Uses = [P1]; 6149 let Defs = [P1, PC]; 6150 let BaseOpcode = "J4_cmpeqip1"; 6151 let isTaken = Inst{13}; 6152 let isExtendable = 1; 6153 let opExtendable = 2; 6154 let isExtentSigned = 1; 6155 let opExtentBits = 11; 6156 let opExtentAlign = 2; 6157 } 6158 def J4_cmpeqi_t_jumpnv_nt : HInst< 6159 (outs), 6160 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6161 "if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6162 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6163 let Inst{0-0} = 0b0; 6164 let Inst{13-13} = 0b0; 6165 let Inst{19-19} = 0b0; 6166 let Inst{31-22} = 0b0010010000; 6167 let isPredicated = 1; 6168 let isTerminator = 1; 6169 let isBranch = 1; 6170 let isNewValue = 1; 6171 let cofMax1 = 1; 6172 let isRestrictNoSlot1Store = 1; 6173 let Defs = [PC]; 6174 let BaseOpcode = "J4_cmpeqi"; 6175 let isTaken = Inst{13}; 6176 let isExtendable = 1; 6177 let opExtendable = 2; 6178 let isExtentSigned = 1; 6179 let opExtentBits = 11; 6180 let opExtentAlign = 2; 6181 let opNewValue = 0; 6182 } 6183 def J4_cmpeqi_t_jumpnv_t : HInst< 6184 (outs), 6185 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6186 "if (cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6187 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6188 let Inst{0-0} = 0b0; 6189 let Inst{13-13} = 0b1; 6190 let Inst{19-19} = 0b0; 6191 let Inst{31-22} = 0b0010010000; 6192 let isPredicated = 1; 6193 let isTerminator = 1; 6194 let isBranch = 1; 6195 let isNewValue = 1; 6196 let cofMax1 = 1; 6197 let isRestrictNoSlot1Store = 1; 6198 let Defs = [PC]; 6199 let BaseOpcode = "J4_cmpeqi"; 6200 let isTaken = Inst{13}; 6201 let isExtendable = 1; 6202 let opExtendable = 2; 6203 let isExtentSigned = 1; 6204 let opExtentBits = 11; 6205 let opExtentAlign = 2; 6206 let opNewValue = 0; 6207 } 6208 def J4_cmpeqi_tp0_jump_nt : HInst< 6209 (outs), 6210 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6211 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii", 6212 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6213 let Inst{0-0} = 0b0; 6214 let Inst{13-13} = 0b0; 6215 let Inst{31-22} = 0b0001000000; 6216 let isPredicated = 1; 6217 let isTerminator = 1; 6218 let isBranch = 1; 6219 let isPredicatedNew = 1; 6220 let cofRelax1 = 1; 6221 let cofRelax2 = 1; 6222 let cofMax1 = 1; 6223 let Uses = [P0]; 6224 let Defs = [P0, PC]; 6225 let BaseOpcode = "J4_cmpeqip0"; 6226 let isTaken = Inst{13}; 6227 let isExtendable = 1; 6228 let opExtendable = 2; 6229 let isExtentSigned = 1; 6230 let opExtentBits = 11; 6231 let opExtentAlign = 2; 6232 } 6233 def J4_cmpeqi_tp0_jump_t : HInst< 6234 (outs), 6235 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6236 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii", 6237 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6238 let Inst{0-0} = 0b0; 6239 let Inst{13-13} = 0b1; 6240 let Inst{31-22} = 0b0001000000; 6241 let isPredicated = 1; 6242 let isTerminator = 1; 6243 let isBranch = 1; 6244 let isPredicatedNew = 1; 6245 let cofRelax1 = 1; 6246 let cofRelax2 = 1; 6247 let cofMax1 = 1; 6248 let Uses = [P0]; 6249 let Defs = [P0, PC]; 6250 let BaseOpcode = "J4_cmpeqip0"; 6251 let isTaken = Inst{13}; 6252 let isExtendable = 1; 6253 let opExtendable = 2; 6254 let isExtentSigned = 1; 6255 let opExtentBits = 11; 6256 let opExtentAlign = 2; 6257 } 6258 def J4_cmpeqi_tp1_jump_nt : HInst< 6259 (outs), 6260 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6261 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii", 6262 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6263 let Inst{0-0} = 0b0; 6264 let Inst{13-13} = 0b0; 6265 let Inst{31-22} = 0b0001001000; 6266 let isPredicated = 1; 6267 let isTerminator = 1; 6268 let isBranch = 1; 6269 let isPredicatedNew = 1; 6270 let cofRelax1 = 1; 6271 let cofRelax2 = 1; 6272 let cofMax1 = 1; 6273 let Uses = [P1]; 6274 let Defs = [P1, PC]; 6275 let BaseOpcode = "J4_cmpeqip1"; 6276 let isTaken = Inst{13}; 6277 let isExtendable = 1; 6278 let opExtendable = 2; 6279 let isExtentSigned = 1; 6280 let opExtentBits = 11; 6281 let opExtentAlign = 2; 6282 } 6283 def J4_cmpeqi_tp1_jump_t : HInst< 6284 (outs), 6285 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6286 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii", 6287 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6288 let Inst{0-0} = 0b0; 6289 let Inst{13-13} = 0b1; 6290 let Inst{31-22} = 0b0001001000; 6291 let isPredicated = 1; 6292 let isTerminator = 1; 6293 let isBranch = 1; 6294 let isPredicatedNew = 1; 6295 let cofRelax1 = 1; 6296 let cofRelax2 = 1; 6297 let cofMax1 = 1; 6298 let Uses = [P1]; 6299 let Defs = [P1, PC]; 6300 let BaseOpcode = "J4_cmpeqip1"; 6301 let isTaken = Inst{13}; 6302 let isExtendable = 1; 6303 let opExtendable = 2; 6304 let isExtentSigned = 1; 6305 let opExtentBits = 11; 6306 let opExtentAlign = 2; 6307 } 6308 def J4_cmpeqn1_f_jumpnv_nt : HInst< 6309 (outs), 6310 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6311 "if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6312 tc_bde7aaf4, TypeNCJ>, Enc_e90a15, PredRel { 6313 let Inst{0-0} = 0b0; 6314 let Inst{13-8} = 0b000000; 6315 let Inst{19-19} = 0b0; 6316 let Inst{31-22} = 0b0010011001; 6317 let isPredicated = 1; 6318 let isPredicatedFalse = 1; 6319 let isTerminator = 1; 6320 let isBranch = 1; 6321 let isNewValue = 1; 6322 let cofMax1 = 1; 6323 let isRestrictNoSlot1Store = 1; 6324 let Defs = [PC]; 6325 let BaseOpcode = "J4_cmpeqn1r"; 6326 let isTaken = Inst{13}; 6327 let isExtendable = 1; 6328 let opExtendable = 2; 6329 let isExtentSigned = 1; 6330 let opExtentBits = 11; 6331 let opExtentAlign = 2; 6332 let opNewValue = 0; 6333 } 6334 def J4_cmpeqn1_f_jumpnv_t : HInst< 6335 (outs), 6336 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6337 "if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6338 tc_bde7aaf4, TypeNCJ>, Enc_5a18b3, PredRel { 6339 let Inst{0-0} = 0b0; 6340 let Inst{13-8} = 0b100000; 6341 let Inst{19-19} = 0b0; 6342 let Inst{31-22} = 0b0010011001; 6343 let isPredicated = 1; 6344 let isPredicatedFalse = 1; 6345 let isTerminator = 1; 6346 let isBranch = 1; 6347 let isNewValue = 1; 6348 let cofMax1 = 1; 6349 let isRestrictNoSlot1Store = 1; 6350 let Defs = [PC]; 6351 let BaseOpcode = "J4_cmpeqn1r"; 6352 let isTaken = Inst{13}; 6353 let isExtendable = 1; 6354 let opExtendable = 2; 6355 let isExtentSigned = 1; 6356 let opExtentBits = 11; 6357 let opExtentAlign = 2; 6358 let opNewValue = 0; 6359 } 6360 def J4_cmpeqn1_fp0_jump_nt : HInst< 6361 (outs), 6362 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6363 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 6364 tc_99be14ca, TypeCJ>, Enc_1de724, PredRel { 6365 let Inst{0-0} = 0b0; 6366 let Inst{13-8} = 0b000000; 6367 let Inst{31-22} = 0b0001000111; 6368 let isPredicated = 1; 6369 let isPredicatedFalse = 1; 6370 let isTerminator = 1; 6371 let isBranch = 1; 6372 let isPredicatedNew = 1; 6373 let cofRelax1 = 1; 6374 let cofRelax2 = 1; 6375 let cofMax1 = 1; 6376 let Uses = [P0]; 6377 let Defs = [P0, PC]; 6378 let BaseOpcode = "J4_cmpeqn1p0"; 6379 let isTaken = Inst{13}; 6380 let isExtendable = 1; 6381 let opExtendable = 2; 6382 let isExtentSigned = 1; 6383 let opExtentBits = 11; 6384 let opExtentAlign = 2; 6385 } 6386 def J4_cmpeqn1_fp0_jump_t : HInst< 6387 (outs), 6388 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6389 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii", 6390 tc_99be14ca, TypeCJ>, Enc_14640c, PredRel { 6391 let Inst{0-0} = 0b0; 6392 let Inst{13-8} = 0b100000; 6393 let Inst{31-22} = 0b0001000111; 6394 let isPredicated = 1; 6395 let isPredicatedFalse = 1; 6396 let isTerminator = 1; 6397 let isBranch = 1; 6398 let isPredicatedNew = 1; 6399 let cofRelax1 = 1; 6400 let cofRelax2 = 1; 6401 let cofMax1 = 1; 6402 let Uses = [P0]; 6403 let Defs = [P0, PC]; 6404 let BaseOpcode = "J4_cmpeqn1p0"; 6405 let isTaken = Inst{13}; 6406 let isExtendable = 1; 6407 let opExtendable = 2; 6408 let isExtentSigned = 1; 6409 let opExtentBits = 11; 6410 let opExtentAlign = 2; 6411 } 6412 def J4_cmpeqn1_fp1_jump_nt : HInst< 6413 (outs), 6414 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6415 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 6416 tc_99be14ca, TypeCJ>, Enc_668704, PredRel { 6417 let Inst{0-0} = 0b0; 6418 let Inst{13-8} = 0b000000; 6419 let Inst{31-22} = 0b0001001111; 6420 let isPredicated = 1; 6421 let isPredicatedFalse = 1; 6422 let isTerminator = 1; 6423 let isBranch = 1; 6424 let isPredicatedNew = 1; 6425 let cofRelax1 = 1; 6426 let cofRelax2 = 1; 6427 let cofMax1 = 1; 6428 let Uses = [P1]; 6429 let Defs = [P1, PC]; 6430 let BaseOpcode = "J4_cmpeqn1p1"; 6431 let isTaken = Inst{13}; 6432 let isExtendable = 1; 6433 let opExtendable = 2; 6434 let isExtentSigned = 1; 6435 let opExtentBits = 11; 6436 let opExtentAlign = 2; 6437 } 6438 def J4_cmpeqn1_fp1_jump_t : HInst< 6439 (outs), 6440 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6441 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii", 6442 tc_99be14ca, TypeCJ>, Enc_800e04, PredRel { 6443 let Inst{0-0} = 0b0; 6444 let Inst{13-8} = 0b100000; 6445 let Inst{31-22} = 0b0001001111; 6446 let isPredicated = 1; 6447 let isPredicatedFalse = 1; 6448 let isTerminator = 1; 6449 let isBranch = 1; 6450 let isPredicatedNew = 1; 6451 let cofRelax1 = 1; 6452 let cofRelax2 = 1; 6453 let cofMax1 = 1; 6454 let Uses = [P1]; 6455 let Defs = [P1, PC]; 6456 let BaseOpcode = "J4_cmpeqn1p1"; 6457 let isTaken = Inst{13}; 6458 let isExtendable = 1; 6459 let opExtendable = 2; 6460 let isExtentSigned = 1; 6461 let opExtentBits = 11; 6462 let opExtentAlign = 2; 6463 } 6464 def J4_cmpeqn1_t_jumpnv_nt : HInst< 6465 (outs), 6466 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6467 "if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6468 tc_bde7aaf4, TypeNCJ>, Enc_4aca3a, PredRel { 6469 let Inst{0-0} = 0b0; 6470 let Inst{13-8} = 0b000000; 6471 let Inst{19-19} = 0b0; 6472 let Inst{31-22} = 0b0010011000; 6473 let isPredicated = 1; 6474 let isTerminator = 1; 6475 let isBranch = 1; 6476 let isNewValue = 1; 6477 let cofMax1 = 1; 6478 let isRestrictNoSlot1Store = 1; 6479 let Defs = [PC]; 6480 let BaseOpcode = "J4_cmpeqn1r"; 6481 let isTaken = Inst{13}; 6482 let isExtendable = 1; 6483 let opExtendable = 2; 6484 let isExtentSigned = 1; 6485 let opExtentBits = 11; 6486 let opExtentAlign = 2; 6487 let opNewValue = 0; 6488 } 6489 def J4_cmpeqn1_t_jumpnv_t : HInst< 6490 (outs), 6491 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6492 "if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6493 tc_bde7aaf4, TypeNCJ>, Enc_f7ea77, PredRel { 6494 let Inst{0-0} = 0b0; 6495 let Inst{13-8} = 0b100000; 6496 let Inst{19-19} = 0b0; 6497 let Inst{31-22} = 0b0010011000; 6498 let isPredicated = 1; 6499 let isTerminator = 1; 6500 let isBranch = 1; 6501 let isNewValue = 1; 6502 let cofMax1 = 1; 6503 let isRestrictNoSlot1Store = 1; 6504 let Defs = [PC]; 6505 let BaseOpcode = "J4_cmpeqn1r"; 6506 let isTaken = Inst{13}; 6507 let isExtendable = 1; 6508 let opExtendable = 2; 6509 let isExtentSigned = 1; 6510 let opExtentBits = 11; 6511 let opExtentAlign = 2; 6512 let opNewValue = 0; 6513 } 6514 def J4_cmpeqn1_tp0_jump_nt : HInst< 6515 (outs), 6516 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6517 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii", 6518 tc_99be14ca, TypeCJ>, Enc_405228, PredRel { 6519 let Inst{0-0} = 0b0; 6520 let Inst{13-8} = 0b000000; 6521 let Inst{31-22} = 0b0001000110; 6522 let isPredicated = 1; 6523 let isTerminator = 1; 6524 let isBranch = 1; 6525 let isPredicatedNew = 1; 6526 let cofRelax1 = 1; 6527 let cofRelax2 = 1; 6528 let cofMax1 = 1; 6529 let Uses = [P0]; 6530 let Defs = [P0, PC]; 6531 let BaseOpcode = "J4_cmpeqn1p0"; 6532 let isTaken = Inst{13}; 6533 let isExtendable = 1; 6534 let opExtendable = 2; 6535 let isExtentSigned = 1; 6536 let opExtentBits = 11; 6537 let opExtentAlign = 2; 6538 } 6539 def J4_cmpeqn1_tp0_jump_t : HInst< 6540 (outs), 6541 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6542 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii", 6543 tc_99be14ca, TypeCJ>, Enc_3a2484, PredRel { 6544 let Inst{0-0} = 0b0; 6545 let Inst{13-8} = 0b100000; 6546 let Inst{31-22} = 0b0001000110; 6547 let isPredicated = 1; 6548 let isTerminator = 1; 6549 let isBranch = 1; 6550 let isPredicatedNew = 1; 6551 let cofRelax1 = 1; 6552 let cofRelax2 = 1; 6553 let cofMax1 = 1; 6554 let Uses = [P0]; 6555 let Defs = [P0, PC]; 6556 let BaseOpcode = "J4_cmpeqn1p0"; 6557 let isTaken = Inst{13}; 6558 let isExtendable = 1; 6559 let opExtendable = 2; 6560 let isExtentSigned = 1; 6561 let opExtentBits = 11; 6562 let opExtentAlign = 2; 6563 } 6564 def J4_cmpeqn1_tp1_jump_nt : HInst< 6565 (outs), 6566 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6567 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii", 6568 tc_99be14ca, TypeCJ>, Enc_736575, PredRel { 6569 let Inst{0-0} = 0b0; 6570 let Inst{13-8} = 0b000000; 6571 let Inst{31-22} = 0b0001001110; 6572 let isPredicated = 1; 6573 let isTerminator = 1; 6574 let isBranch = 1; 6575 let isPredicatedNew = 1; 6576 let cofRelax1 = 1; 6577 let cofRelax2 = 1; 6578 let cofMax1 = 1; 6579 let Uses = [P1]; 6580 let Defs = [P1, PC]; 6581 let BaseOpcode = "J4_cmpeqn1p1"; 6582 let isTaken = Inst{13}; 6583 let isExtendable = 1; 6584 let opExtendable = 2; 6585 let isExtentSigned = 1; 6586 let opExtentBits = 11; 6587 let opExtentAlign = 2; 6588 } 6589 def J4_cmpeqn1_tp1_jump_t : HInst< 6590 (outs), 6591 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6592 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii", 6593 tc_99be14ca, TypeCJ>, Enc_8e583a, PredRel { 6594 let Inst{0-0} = 0b0; 6595 let Inst{13-8} = 0b100000; 6596 let Inst{31-22} = 0b0001001110; 6597 let isPredicated = 1; 6598 let isTerminator = 1; 6599 let isBranch = 1; 6600 let isPredicatedNew = 1; 6601 let cofRelax1 = 1; 6602 let cofRelax2 = 1; 6603 let cofMax1 = 1; 6604 let Uses = [P1]; 6605 let Defs = [P1, PC]; 6606 let BaseOpcode = "J4_cmpeqn1p1"; 6607 let isTaken = Inst{13}; 6608 let isExtendable = 1; 6609 let opExtendable = 2; 6610 let isExtentSigned = 1; 6611 let opExtentBits = 11; 6612 let opExtentAlign = 2; 6613 } 6614 def J4_cmpgt_f_jumpnv_nt : HInst< 6615 (outs), 6616 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6617 "if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6618 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 6619 let Inst{0-0} = 0b0; 6620 let Inst{13-13} = 0b0; 6621 let Inst{19-19} = 0b0; 6622 let Inst{31-22} = 0b0010000011; 6623 let isPredicated = 1; 6624 let isPredicatedFalse = 1; 6625 let isTerminator = 1; 6626 let isBranch = 1; 6627 let isNewValue = 1; 6628 let cofMax1 = 1; 6629 let isRestrictNoSlot1Store = 1; 6630 let Defs = [PC]; 6631 let BaseOpcode = "J4_cmpgtr"; 6632 let isTaken = Inst{13}; 6633 let isExtendable = 1; 6634 let opExtendable = 2; 6635 let isExtentSigned = 1; 6636 let opExtentBits = 11; 6637 let opExtentAlign = 2; 6638 let opNewValue = 0; 6639 } 6640 def J4_cmpgt_f_jumpnv_t : HInst< 6641 (outs), 6642 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6643 "if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6644 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 6645 let Inst{0-0} = 0b0; 6646 let Inst{13-13} = 0b1; 6647 let Inst{19-19} = 0b0; 6648 let Inst{31-22} = 0b0010000011; 6649 let isPredicated = 1; 6650 let isPredicatedFalse = 1; 6651 let isTerminator = 1; 6652 let isBranch = 1; 6653 let isNewValue = 1; 6654 let cofMax1 = 1; 6655 let isRestrictNoSlot1Store = 1; 6656 let Defs = [PC]; 6657 let BaseOpcode = "J4_cmpgtr"; 6658 let isTaken = Inst{13}; 6659 let isExtendable = 1; 6660 let opExtendable = 2; 6661 let isExtentSigned = 1; 6662 let opExtentBits = 11; 6663 let opExtentAlign = 2; 6664 let opNewValue = 0; 6665 } 6666 def J4_cmpgt_fp0_jump_nt : HInst< 6667 (outs), 6668 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6669 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 6670 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6671 let Inst{0-0} = 0b0; 6672 let Inst{13-12} = 0b00; 6673 let Inst{31-22} = 0b0001010011; 6674 let isPredicated = 1; 6675 let isPredicatedFalse = 1; 6676 let isTerminator = 1; 6677 let isBranch = 1; 6678 let isPredicatedNew = 1; 6679 let cofRelax1 = 1; 6680 let cofRelax2 = 1; 6681 let cofMax1 = 1; 6682 let Uses = [P0]; 6683 let Defs = [P0, PC]; 6684 let BaseOpcode = "J4_cmpgtp0"; 6685 let isTaken = Inst{13}; 6686 let isExtendable = 1; 6687 let opExtendable = 2; 6688 let isExtentSigned = 1; 6689 let opExtentBits = 11; 6690 let opExtentAlign = 2; 6691 } 6692 def J4_cmpgt_fp0_jump_t : HInst< 6693 (outs), 6694 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6695 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 6696 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6697 let Inst{0-0} = 0b0; 6698 let Inst{13-12} = 0b10; 6699 let Inst{31-22} = 0b0001010011; 6700 let isPredicated = 1; 6701 let isPredicatedFalse = 1; 6702 let isTerminator = 1; 6703 let isBranch = 1; 6704 let isPredicatedNew = 1; 6705 let cofRelax1 = 1; 6706 let cofRelax2 = 1; 6707 let cofMax1 = 1; 6708 let Uses = [P0]; 6709 let Defs = [P0, PC]; 6710 let BaseOpcode = "J4_cmpgtp0"; 6711 let isTaken = Inst{13}; 6712 let isExtendable = 1; 6713 let opExtendable = 2; 6714 let isExtentSigned = 1; 6715 let opExtentBits = 11; 6716 let opExtentAlign = 2; 6717 } 6718 def J4_cmpgt_fp1_jump_nt : HInst< 6719 (outs), 6720 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6721 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 6722 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6723 let Inst{0-0} = 0b0; 6724 let Inst{13-12} = 0b01; 6725 let Inst{31-22} = 0b0001010011; 6726 let isPredicated = 1; 6727 let isPredicatedFalse = 1; 6728 let isTerminator = 1; 6729 let isBranch = 1; 6730 let isPredicatedNew = 1; 6731 let cofRelax1 = 1; 6732 let cofRelax2 = 1; 6733 let cofMax1 = 1; 6734 let Uses = [P1]; 6735 let Defs = [P1, PC]; 6736 let BaseOpcode = "J4_cmpgtp1"; 6737 let isTaken = Inst{13}; 6738 let isExtendable = 1; 6739 let opExtendable = 2; 6740 let isExtentSigned = 1; 6741 let opExtentBits = 11; 6742 let opExtentAlign = 2; 6743 } 6744 def J4_cmpgt_fp1_jump_t : HInst< 6745 (outs), 6746 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6747 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 6748 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6749 let Inst{0-0} = 0b0; 6750 let Inst{13-12} = 0b11; 6751 let Inst{31-22} = 0b0001010011; 6752 let isPredicated = 1; 6753 let isPredicatedFalse = 1; 6754 let isTerminator = 1; 6755 let isBranch = 1; 6756 let isPredicatedNew = 1; 6757 let cofRelax1 = 1; 6758 let cofRelax2 = 1; 6759 let cofMax1 = 1; 6760 let Uses = [P1]; 6761 let Defs = [P1, PC]; 6762 let BaseOpcode = "J4_cmpgtp1"; 6763 let isTaken = Inst{13}; 6764 let isExtendable = 1; 6765 let opExtendable = 2; 6766 let isExtentSigned = 1; 6767 let opExtentBits = 11; 6768 let opExtentAlign = 2; 6769 } 6770 def J4_cmpgt_t_jumpnv_nt : HInst< 6771 (outs), 6772 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6773 "if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6774 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 6775 let Inst{0-0} = 0b0; 6776 let Inst{13-13} = 0b0; 6777 let Inst{19-19} = 0b0; 6778 let Inst{31-22} = 0b0010000010; 6779 let isPredicated = 1; 6780 let isTerminator = 1; 6781 let isBranch = 1; 6782 let isNewValue = 1; 6783 let cofMax1 = 1; 6784 let isRestrictNoSlot1Store = 1; 6785 let Defs = [PC]; 6786 let BaseOpcode = "J4_cmpgtr"; 6787 let isTaken = Inst{13}; 6788 let isExtendable = 1; 6789 let opExtendable = 2; 6790 let isExtentSigned = 1; 6791 let opExtentBits = 11; 6792 let opExtentAlign = 2; 6793 let opNewValue = 0; 6794 } 6795 def J4_cmpgt_t_jumpnv_t : HInst< 6796 (outs), 6797 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6798 "if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6799 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 6800 let Inst{0-0} = 0b0; 6801 let Inst{13-13} = 0b1; 6802 let Inst{19-19} = 0b0; 6803 let Inst{31-22} = 0b0010000010; 6804 let isPredicated = 1; 6805 let isTerminator = 1; 6806 let isBranch = 1; 6807 let isNewValue = 1; 6808 let cofMax1 = 1; 6809 let isRestrictNoSlot1Store = 1; 6810 let Defs = [PC]; 6811 let BaseOpcode = "J4_cmpgtr"; 6812 let isTaken = Inst{13}; 6813 let isExtendable = 1; 6814 let opExtendable = 2; 6815 let isExtentSigned = 1; 6816 let opExtentBits = 11; 6817 let opExtentAlign = 2; 6818 let opNewValue = 0; 6819 } 6820 def J4_cmpgt_tp0_jump_nt : HInst< 6821 (outs), 6822 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6823 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 6824 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6825 let Inst{0-0} = 0b0; 6826 let Inst{13-12} = 0b00; 6827 let Inst{31-22} = 0b0001010010; 6828 let isPredicated = 1; 6829 let isTerminator = 1; 6830 let isBranch = 1; 6831 let isPredicatedNew = 1; 6832 let cofRelax1 = 1; 6833 let cofRelax2 = 1; 6834 let cofMax1 = 1; 6835 let Uses = [P0]; 6836 let Defs = [P0, PC]; 6837 let BaseOpcode = "J4_cmpgtp0"; 6838 let isTaken = Inst{13}; 6839 let isExtendable = 1; 6840 let opExtendable = 2; 6841 let isExtentSigned = 1; 6842 let opExtentBits = 11; 6843 let opExtentAlign = 2; 6844 } 6845 def J4_cmpgt_tp0_jump_t : HInst< 6846 (outs), 6847 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6848 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii", 6849 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6850 let Inst{0-0} = 0b0; 6851 let Inst{13-12} = 0b10; 6852 let Inst{31-22} = 0b0001010010; 6853 let isPredicated = 1; 6854 let isTerminator = 1; 6855 let isBranch = 1; 6856 let isPredicatedNew = 1; 6857 let cofRelax1 = 1; 6858 let cofRelax2 = 1; 6859 let cofMax1 = 1; 6860 let Uses = [P0]; 6861 let Defs = [P0, PC]; 6862 let BaseOpcode = "J4_cmpgtp0"; 6863 let isTaken = Inst{13}; 6864 let isExtendable = 1; 6865 let opExtendable = 2; 6866 let isExtentSigned = 1; 6867 let opExtentBits = 11; 6868 let opExtentAlign = 2; 6869 } 6870 def J4_cmpgt_tp1_jump_nt : HInst< 6871 (outs), 6872 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6873 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 6874 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6875 let Inst{0-0} = 0b0; 6876 let Inst{13-12} = 0b01; 6877 let Inst{31-22} = 0b0001010010; 6878 let isPredicated = 1; 6879 let isTerminator = 1; 6880 let isBranch = 1; 6881 let isPredicatedNew = 1; 6882 let cofRelax1 = 1; 6883 let cofRelax2 = 1; 6884 let cofMax1 = 1; 6885 let Uses = [P1]; 6886 let Defs = [P1, PC]; 6887 let BaseOpcode = "J4_cmpgtp1"; 6888 let isTaken = Inst{13}; 6889 let isExtendable = 1; 6890 let opExtendable = 2; 6891 let isExtentSigned = 1; 6892 let opExtentBits = 11; 6893 let opExtentAlign = 2; 6894 } 6895 def J4_cmpgt_tp1_jump_t : HInst< 6896 (outs), 6897 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6898 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii", 6899 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 6900 let Inst{0-0} = 0b0; 6901 let Inst{13-12} = 0b11; 6902 let Inst{31-22} = 0b0001010010; 6903 let isPredicated = 1; 6904 let isTerminator = 1; 6905 let isBranch = 1; 6906 let isPredicatedNew = 1; 6907 let cofRelax1 = 1; 6908 let cofRelax2 = 1; 6909 let cofMax1 = 1; 6910 let Uses = [P1]; 6911 let Defs = [P1, PC]; 6912 let BaseOpcode = "J4_cmpgtp1"; 6913 let isTaken = Inst{13}; 6914 let isExtendable = 1; 6915 let opExtendable = 2; 6916 let isExtentSigned = 1; 6917 let opExtentBits = 11; 6918 let opExtentAlign = 2; 6919 } 6920 def J4_cmpgti_f_jumpnv_nt : HInst< 6921 (outs), 6922 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6923 "if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 6924 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6925 let Inst{0-0} = 0b0; 6926 let Inst{13-13} = 0b0; 6927 let Inst{19-19} = 0b0; 6928 let Inst{31-22} = 0b0010010011; 6929 let isPredicated = 1; 6930 let isPredicatedFalse = 1; 6931 let isTerminator = 1; 6932 let isBranch = 1; 6933 let isNewValue = 1; 6934 let cofMax1 = 1; 6935 let isRestrictNoSlot1Store = 1; 6936 let Defs = [PC]; 6937 let BaseOpcode = "J4_cmpgtir"; 6938 let isTaken = Inst{13}; 6939 let isExtendable = 1; 6940 let opExtendable = 2; 6941 let isExtentSigned = 1; 6942 let opExtentBits = 11; 6943 let opExtentAlign = 2; 6944 let opNewValue = 0; 6945 } 6946 def J4_cmpgti_f_jumpnv_t : HInst< 6947 (outs), 6948 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6949 "if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii", 6950 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 6951 let Inst{0-0} = 0b0; 6952 let Inst{13-13} = 0b1; 6953 let Inst{19-19} = 0b0; 6954 let Inst{31-22} = 0b0010010011; 6955 let isPredicated = 1; 6956 let isPredicatedFalse = 1; 6957 let isTerminator = 1; 6958 let isBranch = 1; 6959 let isNewValue = 1; 6960 let cofMax1 = 1; 6961 let isRestrictNoSlot1Store = 1; 6962 let Defs = [PC]; 6963 let BaseOpcode = "J4_cmpgtir"; 6964 let isTaken = Inst{13}; 6965 let isExtendable = 1; 6966 let opExtendable = 2; 6967 let isExtentSigned = 1; 6968 let opExtentBits = 11; 6969 let opExtentAlign = 2; 6970 let opNewValue = 0; 6971 } 6972 def J4_cmpgti_fp0_jump_nt : HInst< 6973 (outs), 6974 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6975 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii", 6976 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 6977 let Inst{0-0} = 0b0; 6978 let Inst{13-13} = 0b0; 6979 let Inst{31-22} = 0b0001000011; 6980 let isPredicated = 1; 6981 let isPredicatedFalse = 1; 6982 let isTerminator = 1; 6983 let isBranch = 1; 6984 let isPredicatedNew = 1; 6985 let cofRelax1 = 1; 6986 let cofRelax2 = 1; 6987 let cofMax1 = 1; 6988 let Uses = [P0]; 6989 let Defs = [P0, PC]; 6990 let BaseOpcode = "J4_cmpgtip0"; 6991 let isTaken = Inst{13}; 6992 let isExtendable = 1; 6993 let opExtendable = 2; 6994 let isExtentSigned = 1; 6995 let opExtentBits = 11; 6996 let opExtentAlign = 2; 6997 } 6998 def J4_cmpgti_fp0_jump_t : HInst< 6999 (outs), 7000 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7001 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii", 7002 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7003 let Inst{0-0} = 0b0; 7004 let Inst{13-13} = 0b1; 7005 let Inst{31-22} = 0b0001000011; 7006 let isPredicated = 1; 7007 let isPredicatedFalse = 1; 7008 let isTerminator = 1; 7009 let isBranch = 1; 7010 let isPredicatedNew = 1; 7011 let cofRelax1 = 1; 7012 let cofRelax2 = 1; 7013 let cofMax1 = 1; 7014 let Uses = [P0]; 7015 let Defs = [P0, PC]; 7016 let BaseOpcode = "J4_cmpgtip0"; 7017 let isTaken = Inst{13}; 7018 let isExtendable = 1; 7019 let opExtendable = 2; 7020 let isExtentSigned = 1; 7021 let opExtentBits = 11; 7022 let opExtentAlign = 2; 7023 } 7024 def J4_cmpgti_fp1_jump_nt : HInst< 7025 (outs), 7026 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7027 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii", 7028 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7029 let Inst{0-0} = 0b0; 7030 let Inst{13-13} = 0b0; 7031 let Inst{31-22} = 0b0001001011; 7032 let isPredicated = 1; 7033 let isPredicatedFalse = 1; 7034 let isTerminator = 1; 7035 let isBranch = 1; 7036 let isPredicatedNew = 1; 7037 let cofRelax1 = 1; 7038 let cofRelax2 = 1; 7039 let cofMax1 = 1; 7040 let Uses = [P1]; 7041 let Defs = [P1, PC]; 7042 let BaseOpcode = "J4_cmpgtip1"; 7043 let isTaken = Inst{13}; 7044 let isExtendable = 1; 7045 let opExtendable = 2; 7046 let isExtentSigned = 1; 7047 let opExtentBits = 11; 7048 let opExtentAlign = 2; 7049 } 7050 def J4_cmpgti_fp1_jump_t : HInst< 7051 (outs), 7052 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7053 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii", 7054 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7055 let Inst{0-0} = 0b0; 7056 let Inst{13-13} = 0b1; 7057 let Inst{31-22} = 0b0001001011; 7058 let isPredicated = 1; 7059 let isPredicatedFalse = 1; 7060 let isTerminator = 1; 7061 let isBranch = 1; 7062 let isPredicatedNew = 1; 7063 let cofRelax1 = 1; 7064 let cofRelax2 = 1; 7065 let cofMax1 = 1; 7066 let Uses = [P1]; 7067 let Defs = [P1, PC]; 7068 let BaseOpcode = "J4_cmpgtip1"; 7069 let isTaken = Inst{13}; 7070 let isExtendable = 1; 7071 let opExtendable = 2; 7072 let isExtentSigned = 1; 7073 let opExtentBits = 11; 7074 let opExtentAlign = 2; 7075 } 7076 def J4_cmpgti_t_jumpnv_nt : HInst< 7077 (outs), 7078 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7079 "if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 7080 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 7081 let Inst{0-0} = 0b0; 7082 let Inst{13-13} = 0b0; 7083 let Inst{19-19} = 0b0; 7084 let Inst{31-22} = 0b0010010010; 7085 let isPredicated = 1; 7086 let isTerminator = 1; 7087 let isBranch = 1; 7088 let isNewValue = 1; 7089 let cofMax1 = 1; 7090 let isRestrictNoSlot1Store = 1; 7091 let Defs = [PC]; 7092 let BaseOpcode = "J4_cmpgtir"; 7093 let isTaken = Inst{13}; 7094 let isExtendable = 1; 7095 let opExtendable = 2; 7096 let isExtentSigned = 1; 7097 let opExtentBits = 11; 7098 let opExtentAlign = 2; 7099 let opNewValue = 0; 7100 } 7101 def J4_cmpgti_t_jumpnv_t : HInst< 7102 (outs), 7103 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7104 "if (cmp.gt($Ns8.new,#$II)) jump:t $Ii", 7105 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 7106 let Inst{0-0} = 0b0; 7107 let Inst{13-13} = 0b1; 7108 let Inst{19-19} = 0b0; 7109 let Inst{31-22} = 0b0010010010; 7110 let isPredicated = 1; 7111 let isTerminator = 1; 7112 let isBranch = 1; 7113 let isNewValue = 1; 7114 let cofMax1 = 1; 7115 let isRestrictNoSlot1Store = 1; 7116 let Defs = [PC]; 7117 let BaseOpcode = "J4_cmpgtir"; 7118 let isTaken = Inst{13}; 7119 let isExtendable = 1; 7120 let opExtendable = 2; 7121 let isExtentSigned = 1; 7122 let opExtentBits = 11; 7123 let opExtentAlign = 2; 7124 let opNewValue = 0; 7125 } 7126 def J4_cmpgti_tp0_jump_nt : HInst< 7127 (outs), 7128 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7129 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii", 7130 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7131 let Inst{0-0} = 0b0; 7132 let Inst{13-13} = 0b0; 7133 let Inst{31-22} = 0b0001000010; 7134 let isPredicated = 1; 7135 let isTerminator = 1; 7136 let isBranch = 1; 7137 let isPredicatedNew = 1; 7138 let cofRelax1 = 1; 7139 let cofRelax2 = 1; 7140 let cofMax1 = 1; 7141 let Uses = [P0]; 7142 let Defs = [P0, PC]; 7143 let BaseOpcode = "J4_cmpgtip0"; 7144 let isTaken = Inst{13}; 7145 let isExtendable = 1; 7146 let opExtendable = 2; 7147 let isExtentSigned = 1; 7148 let opExtentBits = 11; 7149 let opExtentAlign = 2; 7150 } 7151 def J4_cmpgti_tp0_jump_t : HInst< 7152 (outs), 7153 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7154 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii", 7155 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7156 let Inst{0-0} = 0b0; 7157 let Inst{13-13} = 0b1; 7158 let Inst{31-22} = 0b0001000010; 7159 let isPredicated = 1; 7160 let isTerminator = 1; 7161 let isBranch = 1; 7162 let isPredicatedNew = 1; 7163 let cofRelax1 = 1; 7164 let cofRelax2 = 1; 7165 let cofMax1 = 1; 7166 let Uses = [P0]; 7167 let Defs = [P0, PC]; 7168 let BaseOpcode = "J4_cmpgtip0"; 7169 let isTaken = Inst{13}; 7170 let isExtendable = 1; 7171 let opExtendable = 2; 7172 let isExtentSigned = 1; 7173 let opExtentBits = 11; 7174 let opExtentAlign = 2; 7175 } 7176 def J4_cmpgti_tp1_jump_nt : HInst< 7177 (outs), 7178 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7179 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii", 7180 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7181 let Inst{0-0} = 0b0; 7182 let Inst{13-13} = 0b0; 7183 let Inst{31-22} = 0b0001001010; 7184 let isPredicated = 1; 7185 let isTerminator = 1; 7186 let isBranch = 1; 7187 let isPredicatedNew = 1; 7188 let cofRelax1 = 1; 7189 let cofRelax2 = 1; 7190 let cofMax1 = 1; 7191 let Uses = [P1]; 7192 let Defs = [P1, PC]; 7193 let BaseOpcode = "J4_cmpgtip1"; 7194 let isTaken = Inst{13}; 7195 let isExtendable = 1; 7196 let opExtendable = 2; 7197 let isExtentSigned = 1; 7198 let opExtentBits = 11; 7199 let opExtentAlign = 2; 7200 } 7201 def J4_cmpgti_tp1_jump_t : HInst< 7202 (outs), 7203 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7204 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii", 7205 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7206 let Inst{0-0} = 0b0; 7207 let Inst{13-13} = 0b1; 7208 let Inst{31-22} = 0b0001001010; 7209 let isPredicated = 1; 7210 let isTerminator = 1; 7211 let isBranch = 1; 7212 let isPredicatedNew = 1; 7213 let cofRelax1 = 1; 7214 let cofRelax2 = 1; 7215 let cofMax1 = 1; 7216 let Uses = [P1]; 7217 let Defs = [P1, PC]; 7218 let BaseOpcode = "J4_cmpgtip1"; 7219 let isTaken = Inst{13}; 7220 let isExtendable = 1; 7221 let opExtendable = 2; 7222 let isExtentSigned = 1; 7223 let opExtentBits = 11; 7224 let opExtentAlign = 2; 7225 } 7226 def J4_cmpgtn1_f_jumpnv_nt : HInst< 7227 (outs), 7228 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7229 "if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7230 tc_bde7aaf4, TypeNCJ>, Enc_3694bd, PredRel { 7231 let Inst{0-0} = 0b0; 7232 let Inst{13-8} = 0b000000; 7233 let Inst{19-19} = 0b0; 7234 let Inst{31-22} = 0b0010011011; 7235 let isPredicated = 1; 7236 let isPredicatedFalse = 1; 7237 let isTerminator = 1; 7238 let isBranch = 1; 7239 let isNewValue = 1; 7240 let cofMax1 = 1; 7241 let isRestrictNoSlot1Store = 1; 7242 let Defs = [PC]; 7243 let BaseOpcode = "J4_cmpgtn1r"; 7244 let isTaken = Inst{13}; 7245 let isExtendable = 1; 7246 let opExtendable = 2; 7247 let isExtentSigned = 1; 7248 let opExtentBits = 11; 7249 let opExtentAlign = 2; 7250 let opNewValue = 0; 7251 } 7252 def J4_cmpgtn1_f_jumpnv_t : HInst< 7253 (outs), 7254 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7255 "if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7256 tc_bde7aaf4, TypeNCJ>, Enc_a6853f, PredRel { 7257 let Inst{0-0} = 0b0; 7258 let Inst{13-8} = 0b100000; 7259 let Inst{19-19} = 0b0; 7260 let Inst{31-22} = 0b0010011011; 7261 let isPredicated = 1; 7262 let isPredicatedFalse = 1; 7263 let isTerminator = 1; 7264 let isBranch = 1; 7265 let isNewValue = 1; 7266 let cofMax1 = 1; 7267 let isRestrictNoSlot1Store = 1; 7268 let Defs = [PC]; 7269 let BaseOpcode = "J4_cmpgtn1r"; 7270 let isTaken = Inst{13}; 7271 let isExtendable = 1; 7272 let opExtendable = 2; 7273 let isExtentSigned = 1; 7274 let opExtentBits = 11; 7275 let opExtentAlign = 2; 7276 let opNewValue = 0; 7277 } 7278 def J4_cmpgtn1_fp0_jump_nt : HInst< 7279 (outs), 7280 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7281 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 7282 tc_99be14ca, TypeCJ>, Enc_a42857, PredRel { 7283 let Inst{0-0} = 0b0; 7284 let Inst{13-8} = 0b000001; 7285 let Inst{31-22} = 0b0001000111; 7286 let isPredicated = 1; 7287 let isPredicatedFalse = 1; 7288 let isTerminator = 1; 7289 let isBranch = 1; 7290 let isPredicatedNew = 1; 7291 let cofRelax1 = 1; 7292 let cofRelax2 = 1; 7293 let cofMax1 = 1; 7294 let Uses = [P0]; 7295 let Defs = [P0, PC]; 7296 let BaseOpcode = "J4_cmpgtn1p0"; 7297 let isTaken = Inst{13}; 7298 let isExtendable = 1; 7299 let opExtendable = 2; 7300 let isExtentSigned = 1; 7301 let opExtentBits = 11; 7302 let opExtentAlign = 2; 7303 } 7304 def J4_cmpgtn1_fp0_jump_t : HInst< 7305 (outs), 7306 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7307 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii", 7308 tc_99be14ca, TypeCJ>, Enc_f6fe0b, PredRel { 7309 let Inst{0-0} = 0b0; 7310 let Inst{13-8} = 0b100001; 7311 let Inst{31-22} = 0b0001000111; 7312 let isPredicated = 1; 7313 let isPredicatedFalse = 1; 7314 let isTerminator = 1; 7315 let isBranch = 1; 7316 let isPredicatedNew = 1; 7317 let cofRelax1 = 1; 7318 let cofRelax2 = 1; 7319 let cofMax1 = 1; 7320 let Uses = [P0]; 7321 let Defs = [P0, PC]; 7322 let BaseOpcode = "J4_cmpgtn1p0"; 7323 let isTaken = Inst{13}; 7324 let isExtendable = 1; 7325 let opExtendable = 2; 7326 let isExtentSigned = 1; 7327 let opExtentBits = 11; 7328 let opExtentAlign = 2; 7329 } 7330 def J4_cmpgtn1_fp1_jump_nt : HInst< 7331 (outs), 7332 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7333 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 7334 tc_99be14ca, TypeCJ>, Enc_3e3989, PredRel { 7335 let Inst{0-0} = 0b0; 7336 let Inst{13-8} = 0b000001; 7337 let Inst{31-22} = 0b0001001111; 7338 let isPredicated = 1; 7339 let isPredicatedFalse = 1; 7340 let isTerminator = 1; 7341 let isBranch = 1; 7342 let isPredicatedNew = 1; 7343 let cofRelax1 = 1; 7344 let cofRelax2 = 1; 7345 let cofMax1 = 1; 7346 let Uses = [P1]; 7347 let Defs = [P1, PC]; 7348 let BaseOpcode = "J4_cmpgtn1p1"; 7349 let isTaken = Inst{13}; 7350 let isExtendable = 1; 7351 let opExtendable = 2; 7352 let isExtentSigned = 1; 7353 let opExtentBits = 11; 7354 let opExtentAlign = 2; 7355 } 7356 def J4_cmpgtn1_fp1_jump_t : HInst< 7357 (outs), 7358 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7359 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii", 7360 tc_99be14ca, TypeCJ>, Enc_b909d2, PredRel { 7361 let Inst{0-0} = 0b0; 7362 let Inst{13-8} = 0b100001; 7363 let Inst{31-22} = 0b0001001111; 7364 let isPredicated = 1; 7365 let isPredicatedFalse = 1; 7366 let isTerminator = 1; 7367 let isBranch = 1; 7368 let isPredicatedNew = 1; 7369 let cofRelax1 = 1; 7370 let cofRelax2 = 1; 7371 let cofMax1 = 1; 7372 let Uses = [P1]; 7373 let Defs = [P1, PC]; 7374 let BaseOpcode = "J4_cmpgtn1p1"; 7375 let isTaken = Inst{13}; 7376 let isExtendable = 1; 7377 let opExtendable = 2; 7378 let isExtentSigned = 1; 7379 let opExtentBits = 11; 7380 let opExtentAlign = 2; 7381 } 7382 def J4_cmpgtn1_t_jumpnv_nt : HInst< 7383 (outs), 7384 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7385 "if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7386 tc_bde7aaf4, TypeNCJ>, Enc_f82302, PredRel { 7387 let Inst{0-0} = 0b0; 7388 let Inst{13-8} = 0b000000; 7389 let Inst{19-19} = 0b0; 7390 let Inst{31-22} = 0b0010011010; 7391 let isPredicated = 1; 7392 let isTerminator = 1; 7393 let isBranch = 1; 7394 let isNewValue = 1; 7395 let cofMax1 = 1; 7396 let isRestrictNoSlot1Store = 1; 7397 let Defs = [PC]; 7398 let BaseOpcode = "J4_cmpgtn1r"; 7399 let isTaken = Inst{13}; 7400 let isExtendable = 1; 7401 let opExtendable = 2; 7402 let isExtentSigned = 1; 7403 let opExtentBits = 11; 7404 let opExtentAlign = 2; 7405 let opNewValue = 0; 7406 } 7407 def J4_cmpgtn1_t_jumpnv_t : HInst< 7408 (outs), 7409 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7410 "if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7411 tc_bde7aaf4, TypeNCJ>, Enc_6413b6, PredRel { 7412 let Inst{0-0} = 0b0; 7413 let Inst{13-8} = 0b100000; 7414 let Inst{19-19} = 0b0; 7415 let Inst{31-22} = 0b0010011010; 7416 let isPredicated = 1; 7417 let isTerminator = 1; 7418 let isBranch = 1; 7419 let isNewValue = 1; 7420 let cofMax1 = 1; 7421 let isRestrictNoSlot1Store = 1; 7422 let Defs = [PC]; 7423 let BaseOpcode = "J4_cmpgtn1r"; 7424 let isTaken = Inst{13}; 7425 let isExtendable = 1; 7426 let opExtendable = 2; 7427 let isExtentSigned = 1; 7428 let opExtentBits = 11; 7429 let opExtentAlign = 2; 7430 let opNewValue = 0; 7431 } 7432 def J4_cmpgtn1_tp0_jump_nt : HInst< 7433 (outs), 7434 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7435 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii", 7436 tc_99be14ca, TypeCJ>, Enc_b78edd, PredRel { 7437 let Inst{0-0} = 0b0; 7438 let Inst{13-8} = 0b000001; 7439 let Inst{31-22} = 0b0001000110; 7440 let isPredicated = 1; 7441 let isTerminator = 1; 7442 let isBranch = 1; 7443 let isPredicatedNew = 1; 7444 let cofRelax1 = 1; 7445 let cofRelax2 = 1; 7446 let cofMax1 = 1; 7447 let Uses = [P0]; 7448 let Defs = [P0, PC]; 7449 let BaseOpcode = "J4_cmpgtn1p0"; 7450 let isTaken = Inst{13}; 7451 let isExtendable = 1; 7452 let opExtendable = 2; 7453 let isExtentSigned = 1; 7454 let opExtentBits = 11; 7455 let opExtentAlign = 2; 7456 } 7457 def J4_cmpgtn1_tp0_jump_t : HInst< 7458 (outs), 7459 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7460 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii", 7461 tc_99be14ca, TypeCJ>, Enc_041d7b, PredRel { 7462 let Inst{0-0} = 0b0; 7463 let Inst{13-8} = 0b100001; 7464 let Inst{31-22} = 0b0001000110; 7465 let isPredicated = 1; 7466 let isTerminator = 1; 7467 let isBranch = 1; 7468 let isPredicatedNew = 1; 7469 let cofRelax1 = 1; 7470 let cofRelax2 = 1; 7471 let cofMax1 = 1; 7472 let Uses = [P0]; 7473 let Defs = [P0, PC]; 7474 let BaseOpcode = "J4_cmpgtn1p0"; 7475 let isTaken = Inst{13}; 7476 let isExtendable = 1; 7477 let opExtendable = 2; 7478 let isExtentSigned = 1; 7479 let opExtentBits = 11; 7480 let opExtentAlign = 2; 7481 } 7482 def J4_cmpgtn1_tp1_jump_nt : HInst< 7483 (outs), 7484 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7485 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii", 7486 tc_99be14ca, TypeCJ>, Enc_b1e1fb, PredRel { 7487 let Inst{0-0} = 0b0; 7488 let Inst{13-8} = 0b000001; 7489 let Inst{31-22} = 0b0001001110; 7490 let isPredicated = 1; 7491 let isTerminator = 1; 7492 let isBranch = 1; 7493 let isPredicatedNew = 1; 7494 let cofRelax1 = 1; 7495 let cofRelax2 = 1; 7496 let cofMax1 = 1; 7497 let Uses = [P1]; 7498 let Defs = [P1, PC]; 7499 let BaseOpcode = "J4_cmpgtn1p1"; 7500 let isTaken = Inst{13}; 7501 let isExtendable = 1; 7502 let opExtendable = 2; 7503 let isExtentSigned = 1; 7504 let opExtentBits = 11; 7505 let opExtentAlign = 2; 7506 } 7507 def J4_cmpgtn1_tp1_jump_t : HInst< 7508 (outs), 7509 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7510 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii", 7511 tc_99be14ca, TypeCJ>, Enc_178717, PredRel { 7512 let Inst{0-0} = 0b0; 7513 let Inst{13-8} = 0b100001; 7514 let Inst{31-22} = 0b0001001110; 7515 let isPredicated = 1; 7516 let isTerminator = 1; 7517 let isBranch = 1; 7518 let isPredicatedNew = 1; 7519 let cofRelax1 = 1; 7520 let cofRelax2 = 1; 7521 let cofMax1 = 1; 7522 let Uses = [P1]; 7523 let Defs = [P1, PC]; 7524 let BaseOpcode = "J4_cmpgtn1p1"; 7525 let isTaken = Inst{13}; 7526 let isExtendable = 1; 7527 let opExtendable = 2; 7528 let isExtentSigned = 1; 7529 let opExtentBits = 11; 7530 let opExtentAlign = 2; 7531 } 7532 def J4_cmpgtu_f_jumpnv_nt : HInst< 7533 (outs), 7534 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7535 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7536 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 7537 let Inst{0-0} = 0b0; 7538 let Inst{13-13} = 0b0; 7539 let Inst{19-19} = 0b0; 7540 let Inst{31-22} = 0b0010000101; 7541 let isPredicated = 1; 7542 let isPredicatedFalse = 1; 7543 let isTerminator = 1; 7544 let isBranch = 1; 7545 let isNewValue = 1; 7546 let cofMax1 = 1; 7547 let isRestrictNoSlot1Store = 1; 7548 let Defs = [PC]; 7549 let BaseOpcode = "J4_cmpgtur"; 7550 let isTaken = Inst{13}; 7551 let isExtendable = 1; 7552 let opExtendable = 2; 7553 let isExtentSigned = 1; 7554 let opExtentBits = 11; 7555 let opExtentAlign = 2; 7556 let opNewValue = 0; 7557 } 7558 def J4_cmpgtu_f_jumpnv_t : HInst< 7559 (outs), 7560 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7561 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7562 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 7563 let Inst{0-0} = 0b0; 7564 let Inst{13-13} = 0b1; 7565 let Inst{19-19} = 0b0; 7566 let Inst{31-22} = 0b0010000101; 7567 let isPredicated = 1; 7568 let isPredicatedFalse = 1; 7569 let isTerminator = 1; 7570 let isBranch = 1; 7571 let isNewValue = 1; 7572 let cofMax1 = 1; 7573 let isRestrictNoSlot1Store = 1; 7574 let Defs = [PC]; 7575 let BaseOpcode = "J4_cmpgtur"; 7576 let isTaken = Inst{13}; 7577 let isExtendable = 1; 7578 let opExtendable = 2; 7579 let isExtentSigned = 1; 7580 let opExtentBits = 11; 7581 let opExtentAlign = 2; 7582 let opNewValue = 0; 7583 } 7584 def J4_cmpgtu_fp0_jump_nt : HInst< 7585 (outs), 7586 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7587 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 7588 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7589 let Inst{0-0} = 0b0; 7590 let Inst{13-12} = 0b00; 7591 let Inst{31-22} = 0b0001010101; 7592 let isPredicated = 1; 7593 let isPredicatedFalse = 1; 7594 let isTerminator = 1; 7595 let isBranch = 1; 7596 let isPredicatedNew = 1; 7597 let cofRelax1 = 1; 7598 let cofRelax2 = 1; 7599 let cofMax1 = 1; 7600 let Uses = [P0]; 7601 let Defs = [P0, PC]; 7602 let BaseOpcode = "J4_cmpgtup0"; 7603 let isTaken = Inst{13}; 7604 let isExtendable = 1; 7605 let opExtendable = 2; 7606 let isExtentSigned = 1; 7607 let opExtentBits = 11; 7608 let opExtentAlign = 2; 7609 } 7610 def J4_cmpgtu_fp0_jump_t : HInst< 7611 (outs), 7612 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7613 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 7614 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7615 let Inst{0-0} = 0b0; 7616 let Inst{13-12} = 0b10; 7617 let Inst{31-22} = 0b0001010101; 7618 let isPredicated = 1; 7619 let isPredicatedFalse = 1; 7620 let isTerminator = 1; 7621 let isBranch = 1; 7622 let isPredicatedNew = 1; 7623 let cofRelax1 = 1; 7624 let cofRelax2 = 1; 7625 let cofMax1 = 1; 7626 let Uses = [P0]; 7627 let Defs = [P0, PC]; 7628 let BaseOpcode = "J4_cmpgtup0"; 7629 let isTaken = Inst{13}; 7630 let isExtendable = 1; 7631 let opExtendable = 2; 7632 let isExtentSigned = 1; 7633 let opExtentBits = 11; 7634 let opExtentAlign = 2; 7635 } 7636 def J4_cmpgtu_fp1_jump_nt : HInst< 7637 (outs), 7638 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7639 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 7640 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7641 let Inst{0-0} = 0b0; 7642 let Inst{13-12} = 0b01; 7643 let Inst{31-22} = 0b0001010101; 7644 let isPredicated = 1; 7645 let isPredicatedFalse = 1; 7646 let isTerminator = 1; 7647 let isBranch = 1; 7648 let isPredicatedNew = 1; 7649 let cofRelax1 = 1; 7650 let cofRelax2 = 1; 7651 let cofMax1 = 1; 7652 let Uses = [P1]; 7653 let Defs = [P1, PC]; 7654 let BaseOpcode = "J4_cmpgtup1"; 7655 let isTaken = Inst{13}; 7656 let isExtendable = 1; 7657 let opExtendable = 2; 7658 let isExtentSigned = 1; 7659 let opExtentBits = 11; 7660 let opExtentAlign = 2; 7661 } 7662 def J4_cmpgtu_fp1_jump_t : HInst< 7663 (outs), 7664 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7665 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 7666 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7667 let Inst{0-0} = 0b0; 7668 let Inst{13-12} = 0b11; 7669 let Inst{31-22} = 0b0001010101; 7670 let isPredicated = 1; 7671 let isPredicatedFalse = 1; 7672 let isTerminator = 1; 7673 let isBranch = 1; 7674 let isPredicatedNew = 1; 7675 let cofRelax1 = 1; 7676 let cofRelax2 = 1; 7677 let cofMax1 = 1; 7678 let Uses = [P1]; 7679 let Defs = [P1, PC]; 7680 let BaseOpcode = "J4_cmpgtup1"; 7681 let isTaken = Inst{13}; 7682 let isExtendable = 1; 7683 let opExtendable = 2; 7684 let isExtentSigned = 1; 7685 let opExtentBits = 11; 7686 let opExtentAlign = 2; 7687 } 7688 def J4_cmpgtu_t_jumpnv_nt : HInst< 7689 (outs), 7690 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7691 "if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7692 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 7693 let Inst{0-0} = 0b0; 7694 let Inst{13-13} = 0b0; 7695 let Inst{19-19} = 0b0; 7696 let Inst{31-22} = 0b0010000100; 7697 let isPredicated = 1; 7698 let isTerminator = 1; 7699 let isBranch = 1; 7700 let isNewValue = 1; 7701 let cofMax1 = 1; 7702 let isRestrictNoSlot1Store = 1; 7703 let Defs = [PC]; 7704 let BaseOpcode = "J4_cmpgtur"; 7705 let isTaken = Inst{13}; 7706 let isExtendable = 1; 7707 let opExtendable = 2; 7708 let isExtentSigned = 1; 7709 let opExtentBits = 11; 7710 let opExtentAlign = 2; 7711 let opNewValue = 0; 7712 } 7713 def J4_cmpgtu_t_jumpnv_t : HInst< 7714 (outs), 7715 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7716 "if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7717 tc_51b866be, TypeNCJ>, Enc_c9a18e, PredRel { 7718 let Inst{0-0} = 0b0; 7719 let Inst{13-13} = 0b1; 7720 let Inst{19-19} = 0b0; 7721 let Inst{31-22} = 0b0010000100; 7722 let isPredicated = 1; 7723 let isTerminator = 1; 7724 let isBranch = 1; 7725 let isNewValue = 1; 7726 let cofMax1 = 1; 7727 let isRestrictNoSlot1Store = 1; 7728 let Defs = [PC]; 7729 let BaseOpcode = "J4_cmpgtur"; 7730 let isTaken = Inst{13}; 7731 let isExtendable = 1; 7732 let opExtendable = 2; 7733 let isExtentSigned = 1; 7734 let opExtentBits = 11; 7735 let opExtentAlign = 2; 7736 let opNewValue = 0; 7737 } 7738 def J4_cmpgtu_tp0_jump_nt : HInst< 7739 (outs), 7740 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7741 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 7742 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7743 let Inst{0-0} = 0b0; 7744 let Inst{13-12} = 0b00; 7745 let Inst{31-22} = 0b0001010100; 7746 let isPredicated = 1; 7747 let isTerminator = 1; 7748 let isBranch = 1; 7749 let isPredicatedNew = 1; 7750 let cofRelax1 = 1; 7751 let cofRelax2 = 1; 7752 let cofMax1 = 1; 7753 let Uses = [P0]; 7754 let Defs = [P0, PC]; 7755 let BaseOpcode = "J4_cmpgtup0"; 7756 let isTaken = Inst{13}; 7757 let isExtendable = 1; 7758 let opExtendable = 2; 7759 let isExtentSigned = 1; 7760 let opExtentBits = 11; 7761 let opExtentAlign = 2; 7762 } 7763 def J4_cmpgtu_tp0_jump_t : HInst< 7764 (outs), 7765 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7766 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii", 7767 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7768 let Inst{0-0} = 0b0; 7769 let Inst{13-12} = 0b10; 7770 let Inst{31-22} = 0b0001010100; 7771 let isPredicated = 1; 7772 let isTerminator = 1; 7773 let isBranch = 1; 7774 let isPredicatedNew = 1; 7775 let cofRelax1 = 1; 7776 let cofRelax2 = 1; 7777 let cofMax1 = 1; 7778 let Uses = [P0]; 7779 let Defs = [P0, PC]; 7780 let BaseOpcode = "J4_cmpgtup0"; 7781 let isTaken = Inst{13}; 7782 let isExtendable = 1; 7783 let opExtendable = 2; 7784 let isExtentSigned = 1; 7785 let opExtentBits = 11; 7786 let opExtentAlign = 2; 7787 } 7788 def J4_cmpgtu_tp1_jump_nt : HInst< 7789 (outs), 7790 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7791 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 7792 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7793 let Inst{0-0} = 0b0; 7794 let Inst{13-12} = 0b01; 7795 let Inst{31-22} = 0b0001010100; 7796 let isPredicated = 1; 7797 let isTerminator = 1; 7798 let isBranch = 1; 7799 let isPredicatedNew = 1; 7800 let cofRelax1 = 1; 7801 let cofRelax2 = 1; 7802 let cofMax1 = 1; 7803 let Uses = [P1]; 7804 let Defs = [P1, PC]; 7805 let BaseOpcode = "J4_cmpgtup1"; 7806 let isTaken = Inst{13}; 7807 let isExtendable = 1; 7808 let opExtendable = 2; 7809 let isExtentSigned = 1; 7810 let opExtentBits = 11; 7811 let opExtentAlign = 2; 7812 } 7813 def J4_cmpgtu_tp1_jump_t : HInst< 7814 (outs), 7815 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7816 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii", 7817 tc_855b0b61, TypeCJ>, Enc_6a5972, PredRel { 7818 let Inst{0-0} = 0b0; 7819 let Inst{13-12} = 0b11; 7820 let Inst{31-22} = 0b0001010100; 7821 let isPredicated = 1; 7822 let isTerminator = 1; 7823 let isBranch = 1; 7824 let isPredicatedNew = 1; 7825 let cofRelax1 = 1; 7826 let cofRelax2 = 1; 7827 let cofMax1 = 1; 7828 let Uses = [P1]; 7829 let Defs = [P1, PC]; 7830 let BaseOpcode = "J4_cmpgtup1"; 7831 let isTaken = Inst{13}; 7832 let isExtendable = 1; 7833 let opExtendable = 2; 7834 let isExtentSigned = 1; 7835 let opExtentBits = 11; 7836 let opExtentAlign = 2; 7837 } 7838 def J4_cmpgtui_f_jumpnv_nt : HInst< 7839 (outs), 7840 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7841 "if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 7842 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 7843 let Inst{0-0} = 0b0; 7844 let Inst{13-13} = 0b0; 7845 let Inst{19-19} = 0b0; 7846 let Inst{31-22} = 0b0010010101; 7847 let isPredicated = 1; 7848 let isPredicatedFalse = 1; 7849 let isTerminator = 1; 7850 let isBranch = 1; 7851 let isNewValue = 1; 7852 let cofMax1 = 1; 7853 let isRestrictNoSlot1Store = 1; 7854 let Defs = [PC]; 7855 let BaseOpcode = "J4_cmpgtuir"; 7856 let isTaken = Inst{13}; 7857 let isExtendable = 1; 7858 let opExtendable = 2; 7859 let isExtentSigned = 1; 7860 let opExtentBits = 11; 7861 let opExtentAlign = 2; 7862 let opNewValue = 0; 7863 } 7864 def J4_cmpgtui_f_jumpnv_t : HInst< 7865 (outs), 7866 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7867 "if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 7868 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 7869 let Inst{0-0} = 0b0; 7870 let Inst{13-13} = 0b1; 7871 let Inst{19-19} = 0b0; 7872 let Inst{31-22} = 0b0010010101; 7873 let isPredicated = 1; 7874 let isPredicatedFalse = 1; 7875 let isTerminator = 1; 7876 let isBranch = 1; 7877 let isNewValue = 1; 7878 let cofMax1 = 1; 7879 let isRestrictNoSlot1Store = 1; 7880 let Defs = [PC]; 7881 let BaseOpcode = "J4_cmpgtuir"; 7882 let isTaken = Inst{13}; 7883 let isExtendable = 1; 7884 let opExtendable = 2; 7885 let isExtentSigned = 1; 7886 let opExtentBits = 11; 7887 let opExtentAlign = 2; 7888 let opNewValue = 0; 7889 } 7890 def J4_cmpgtui_fp0_jump_nt : HInst< 7891 (outs), 7892 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7893 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii", 7894 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7895 let Inst{0-0} = 0b0; 7896 let Inst{13-13} = 0b0; 7897 let Inst{31-22} = 0b0001000101; 7898 let isPredicated = 1; 7899 let isPredicatedFalse = 1; 7900 let isTerminator = 1; 7901 let isBranch = 1; 7902 let isPredicatedNew = 1; 7903 let cofRelax1 = 1; 7904 let cofRelax2 = 1; 7905 let cofMax1 = 1; 7906 let Uses = [P0]; 7907 let Defs = [P0, PC]; 7908 let BaseOpcode = "J4_cmpgtuip0"; 7909 let isTaken = Inst{13}; 7910 let isExtendable = 1; 7911 let opExtendable = 2; 7912 let isExtentSigned = 1; 7913 let opExtentBits = 11; 7914 let opExtentAlign = 2; 7915 } 7916 def J4_cmpgtui_fp0_jump_t : HInst< 7917 (outs), 7918 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7919 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii", 7920 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7921 let Inst{0-0} = 0b0; 7922 let Inst{13-13} = 0b1; 7923 let Inst{31-22} = 0b0001000101; 7924 let isPredicated = 1; 7925 let isPredicatedFalse = 1; 7926 let isTerminator = 1; 7927 let isBranch = 1; 7928 let isPredicatedNew = 1; 7929 let cofRelax1 = 1; 7930 let cofRelax2 = 1; 7931 let cofMax1 = 1; 7932 let Uses = [P0]; 7933 let Defs = [P0, PC]; 7934 let BaseOpcode = "J4_cmpgtuip0"; 7935 let isTaken = Inst{13}; 7936 let isExtendable = 1; 7937 let opExtendable = 2; 7938 let isExtentSigned = 1; 7939 let opExtentBits = 11; 7940 let opExtentAlign = 2; 7941 } 7942 def J4_cmpgtui_fp1_jump_nt : HInst< 7943 (outs), 7944 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7945 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii", 7946 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7947 let Inst{0-0} = 0b0; 7948 let Inst{13-13} = 0b0; 7949 let Inst{31-22} = 0b0001001101; 7950 let isPredicated = 1; 7951 let isPredicatedFalse = 1; 7952 let isTerminator = 1; 7953 let isBranch = 1; 7954 let isPredicatedNew = 1; 7955 let cofRelax1 = 1; 7956 let cofRelax2 = 1; 7957 let cofMax1 = 1; 7958 let Uses = [P1]; 7959 let Defs = [P1, PC]; 7960 let BaseOpcode = "J4_cmpgtuip1"; 7961 let isTaken = Inst{13}; 7962 let isExtendable = 1; 7963 let opExtendable = 2; 7964 let isExtentSigned = 1; 7965 let opExtentBits = 11; 7966 let opExtentAlign = 2; 7967 } 7968 def J4_cmpgtui_fp1_jump_t : HInst< 7969 (outs), 7970 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7971 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii", 7972 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 7973 let Inst{0-0} = 0b0; 7974 let Inst{13-13} = 0b1; 7975 let Inst{31-22} = 0b0001001101; 7976 let isPredicated = 1; 7977 let isPredicatedFalse = 1; 7978 let isTerminator = 1; 7979 let isBranch = 1; 7980 let isPredicatedNew = 1; 7981 let cofRelax1 = 1; 7982 let cofRelax2 = 1; 7983 let cofMax1 = 1; 7984 let Uses = [P1]; 7985 let Defs = [P1, PC]; 7986 let BaseOpcode = "J4_cmpgtuip1"; 7987 let isTaken = Inst{13}; 7988 let isExtendable = 1; 7989 let opExtendable = 2; 7990 let isExtentSigned = 1; 7991 let opExtentBits = 11; 7992 let opExtentAlign = 2; 7993 } 7994 def J4_cmpgtui_t_jumpnv_nt : HInst< 7995 (outs), 7996 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7997 "if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 7998 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 7999 let Inst{0-0} = 0b0; 8000 let Inst{13-13} = 0b0; 8001 let Inst{19-19} = 0b0; 8002 let Inst{31-22} = 0b0010010100; 8003 let isPredicated = 1; 8004 let isTerminator = 1; 8005 let isBranch = 1; 8006 let isNewValue = 1; 8007 let cofMax1 = 1; 8008 let isRestrictNoSlot1Store = 1; 8009 let Defs = [PC]; 8010 let BaseOpcode = "J4_cmpgtuir"; 8011 let isTaken = Inst{13}; 8012 let isExtendable = 1; 8013 let opExtendable = 2; 8014 let isExtentSigned = 1; 8015 let opExtentBits = 11; 8016 let opExtentAlign = 2; 8017 let opNewValue = 0; 8018 } 8019 def J4_cmpgtui_t_jumpnv_t : HInst< 8020 (outs), 8021 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8022 "if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 8023 tc_bde7aaf4, TypeNCJ>, Enc_eafd18, PredRel { 8024 let Inst{0-0} = 0b0; 8025 let Inst{13-13} = 0b1; 8026 let Inst{19-19} = 0b0; 8027 let Inst{31-22} = 0b0010010100; 8028 let isPredicated = 1; 8029 let isTerminator = 1; 8030 let isBranch = 1; 8031 let isNewValue = 1; 8032 let cofMax1 = 1; 8033 let isRestrictNoSlot1Store = 1; 8034 let Defs = [PC]; 8035 let BaseOpcode = "J4_cmpgtuir"; 8036 let isTaken = Inst{13}; 8037 let isExtendable = 1; 8038 let opExtendable = 2; 8039 let isExtentSigned = 1; 8040 let opExtentBits = 11; 8041 let opExtentAlign = 2; 8042 let opNewValue = 0; 8043 } 8044 def J4_cmpgtui_tp0_jump_nt : HInst< 8045 (outs), 8046 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8047 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii", 8048 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 8049 let Inst{0-0} = 0b0; 8050 let Inst{13-13} = 0b0; 8051 let Inst{31-22} = 0b0001000100; 8052 let isPredicated = 1; 8053 let isTerminator = 1; 8054 let isBranch = 1; 8055 let isPredicatedNew = 1; 8056 let cofRelax1 = 1; 8057 let cofRelax2 = 1; 8058 let cofMax1 = 1; 8059 let Uses = [P0]; 8060 let Defs = [P0, PC]; 8061 let BaseOpcode = "J4_cmpgtuip0"; 8062 let isTaken = Inst{13}; 8063 let isExtendable = 1; 8064 let opExtendable = 2; 8065 let isExtentSigned = 1; 8066 let opExtentBits = 11; 8067 let opExtentAlign = 2; 8068 } 8069 def J4_cmpgtui_tp0_jump_t : HInst< 8070 (outs), 8071 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8072 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii", 8073 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 8074 let Inst{0-0} = 0b0; 8075 let Inst{13-13} = 0b1; 8076 let Inst{31-22} = 0b0001000100; 8077 let isPredicated = 1; 8078 let isTerminator = 1; 8079 let isBranch = 1; 8080 let isPredicatedNew = 1; 8081 let cofRelax1 = 1; 8082 let cofRelax2 = 1; 8083 let cofMax1 = 1; 8084 let Uses = [P0]; 8085 let Defs = [P0, PC]; 8086 let BaseOpcode = "J4_cmpgtuip0"; 8087 let isTaken = Inst{13}; 8088 let isExtendable = 1; 8089 let opExtendable = 2; 8090 let isExtentSigned = 1; 8091 let opExtentBits = 11; 8092 let opExtentAlign = 2; 8093 } 8094 def J4_cmpgtui_tp1_jump_nt : HInst< 8095 (outs), 8096 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8097 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii", 8098 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 8099 let Inst{0-0} = 0b0; 8100 let Inst{13-13} = 0b0; 8101 let Inst{31-22} = 0b0001001100; 8102 let isPredicated = 1; 8103 let isTerminator = 1; 8104 let isBranch = 1; 8105 let isPredicatedNew = 1; 8106 let cofRelax1 = 1; 8107 let cofRelax2 = 1; 8108 let cofMax1 = 1; 8109 let Uses = [P1]; 8110 let Defs = [P1, PC]; 8111 let BaseOpcode = "J4_cmpgtuip1"; 8112 let isTaken = Inst{13}; 8113 let isExtendable = 1; 8114 let opExtendable = 2; 8115 let isExtentSigned = 1; 8116 let opExtentBits = 11; 8117 let opExtentAlign = 2; 8118 } 8119 def J4_cmpgtui_tp1_jump_t : HInst< 8120 (outs), 8121 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8122 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii", 8123 tc_99be14ca, TypeCJ>, Enc_14d27a, PredRel { 8124 let Inst{0-0} = 0b0; 8125 let Inst{13-13} = 0b1; 8126 let Inst{31-22} = 0b0001001100; 8127 let isPredicated = 1; 8128 let isTerminator = 1; 8129 let isBranch = 1; 8130 let isPredicatedNew = 1; 8131 let cofRelax1 = 1; 8132 let cofRelax2 = 1; 8133 let cofMax1 = 1; 8134 let Uses = [P1]; 8135 let Defs = [P1, PC]; 8136 let BaseOpcode = "J4_cmpgtuip1"; 8137 let isTaken = Inst{13}; 8138 let isExtendable = 1; 8139 let opExtendable = 2; 8140 let isExtentSigned = 1; 8141 let opExtentBits = 11; 8142 let opExtentAlign = 2; 8143 } 8144 def J4_cmplt_f_jumpnv_nt : HInst< 8145 (outs), 8146 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8147 "if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8148 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8149 let Inst{0-0} = 0b0; 8150 let Inst{13-13} = 0b0; 8151 let Inst{19-19} = 0b0; 8152 let Inst{31-22} = 0b0010000111; 8153 let isPredicated = 1; 8154 let isPredicatedFalse = 1; 8155 let isTerminator = 1; 8156 let isBranch = 1; 8157 let isNewValue = 1; 8158 let cofMax1 = 1; 8159 let isRestrictNoSlot1Store = 1; 8160 let Defs = [PC]; 8161 let BaseOpcode = "J4_cmpltr"; 8162 let isTaken = Inst{13}; 8163 let isExtendable = 1; 8164 let opExtendable = 2; 8165 let isExtentSigned = 1; 8166 let opExtentBits = 11; 8167 let opExtentAlign = 2; 8168 let opNewValue = 1; 8169 } 8170 def J4_cmplt_f_jumpnv_t : HInst< 8171 (outs), 8172 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8173 "if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8174 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8175 let Inst{0-0} = 0b0; 8176 let Inst{13-13} = 0b1; 8177 let Inst{19-19} = 0b0; 8178 let Inst{31-22} = 0b0010000111; 8179 let isPredicated = 1; 8180 let isPredicatedFalse = 1; 8181 let isTerminator = 1; 8182 let isBranch = 1; 8183 let isNewValue = 1; 8184 let cofMax1 = 1; 8185 let isRestrictNoSlot1Store = 1; 8186 let Defs = [PC]; 8187 let BaseOpcode = "J4_cmpltr"; 8188 let isTaken = Inst{13}; 8189 let isExtendable = 1; 8190 let opExtendable = 2; 8191 let isExtentSigned = 1; 8192 let opExtentBits = 11; 8193 let opExtentAlign = 2; 8194 let opNewValue = 1; 8195 } 8196 def J4_cmplt_t_jumpnv_nt : HInst< 8197 (outs), 8198 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8199 "if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8200 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8201 let Inst{0-0} = 0b0; 8202 let Inst{13-13} = 0b0; 8203 let Inst{19-19} = 0b0; 8204 let Inst{31-22} = 0b0010000110; 8205 let isPredicated = 1; 8206 let isTerminator = 1; 8207 let isBranch = 1; 8208 let isNewValue = 1; 8209 let cofMax1 = 1; 8210 let isRestrictNoSlot1Store = 1; 8211 let Defs = [PC]; 8212 let BaseOpcode = "J4_cmpltr"; 8213 let isTaken = Inst{13}; 8214 let isExtendable = 1; 8215 let opExtendable = 2; 8216 let isExtentSigned = 1; 8217 let opExtentBits = 11; 8218 let opExtentAlign = 2; 8219 let opNewValue = 1; 8220 } 8221 def J4_cmplt_t_jumpnv_t : HInst< 8222 (outs), 8223 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8224 "if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8225 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8226 let Inst{0-0} = 0b0; 8227 let Inst{13-13} = 0b1; 8228 let Inst{19-19} = 0b0; 8229 let Inst{31-22} = 0b0010000110; 8230 let isPredicated = 1; 8231 let isTerminator = 1; 8232 let isBranch = 1; 8233 let isNewValue = 1; 8234 let cofMax1 = 1; 8235 let isRestrictNoSlot1Store = 1; 8236 let Defs = [PC]; 8237 let BaseOpcode = "J4_cmpltr"; 8238 let isTaken = Inst{13}; 8239 let isExtendable = 1; 8240 let opExtendable = 2; 8241 let isExtentSigned = 1; 8242 let opExtentBits = 11; 8243 let opExtentAlign = 2; 8244 let opNewValue = 1; 8245 } 8246 def J4_cmpltu_f_jumpnv_nt : HInst< 8247 (outs), 8248 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8249 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8250 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8251 let Inst{0-0} = 0b0; 8252 let Inst{13-13} = 0b0; 8253 let Inst{19-19} = 0b0; 8254 let Inst{31-22} = 0b0010001001; 8255 let isPredicated = 1; 8256 let isPredicatedFalse = 1; 8257 let isTerminator = 1; 8258 let isBranch = 1; 8259 let isNewValue = 1; 8260 let cofMax1 = 1; 8261 let isRestrictNoSlot1Store = 1; 8262 let Defs = [PC]; 8263 let BaseOpcode = "J4_cmpltur"; 8264 let isTaken = Inst{13}; 8265 let isExtendable = 1; 8266 let opExtendable = 2; 8267 let isExtentSigned = 1; 8268 let opExtentBits = 11; 8269 let opExtentAlign = 2; 8270 let opNewValue = 1; 8271 } 8272 def J4_cmpltu_f_jumpnv_t : HInst< 8273 (outs), 8274 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8275 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8276 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8277 let Inst{0-0} = 0b0; 8278 let Inst{13-13} = 0b1; 8279 let Inst{19-19} = 0b0; 8280 let Inst{31-22} = 0b0010001001; 8281 let isPredicated = 1; 8282 let isPredicatedFalse = 1; 8283 let isTerminator = 1; 8284 let isBranch = 1; 8285 let isNewValue = 1; 8286 let cofMax1 = 1; 8287 let isRestrictNoSlot1Store = 1; 8288 let Defs = [PC]; 8289 let BaseOpcode = "J4_cmpltur"; 8290 let isTaken = Inst{13}; 8291 let isExtendable = 1; 8292 let opExtendable = 2; 8293 let isExtentSigned = 1; 8294 let opExtentBits = 11; 8295 let opExtentAlign = 2; 8296 let opNewValue = 1; 8297 } 8298 def J4_cmpltu_t_jumpnv_nt : HInst< 8299 (outs), 8300 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8301 "if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8302 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8303 let Inst{0-0} = 0b0; 8304 let Inst{13-13} = 0b0; 8305 let Inst{19-19} = 0b0; 8306 let Inst{31-22} = 0b0010001000; 8307 let isPredicated = 1; 8308 let isTerminator = 1; 8309 let isBranch = 1; 8310 let isNewValue = 1; 8311 let cofMax1 = 1; 8312 let isRestrictNoSlot1Store = 1; 8313 let Defs = [PC]; 8314 let BaseOpcode = "J4_cmpltur"; 8315 let isTaken = Inst{13}; 8316 let isExtendable = 1; 8317 let opExtendable = 2; 8318 let isExtentSigned = 1; 8319 let opExtentBits = 11; 8320 let opExtentAlign = 2; 8321 let opNewValue = 1; 8322 } 8323 def J4_cmpltu_t_jumpnv_t : HInst< 8324 (outs), 8325 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8326 "if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8327 tc_5eb851fc, TypeNCJ>, Enc_5de85f, PredRel { 8328 let Inst{0-0} = 0b0; 8329 let Inst{13-13} = 0b1; 8330 let Inst{19-19} = 0b0; 8331 let Inst{31-22} = 0b0010001000; 8332 let isPredicated = 1; 8333 let isTerminator = 1; 8334 let isBranch = 1; 8335 let isNewValue = 1; 8336 let cofMax1 = 1; 8337 let isRestrictNoSlot1Store = 1; 8338 let Defs = [PC]; 8339 let BaseOpcode = "J4_cmpltur"; 8340 let isTaken = Inst{13}; 8341 let isExtendable = 1; 8342 let opExtendable = 2; 8343 let isExtentSigned = 1; 8344 let opExtentBits = 11; 8345 let opExtentAlign = 2; 8346 let opNewValue = 1; 8347 } 8348 def J4_hintjumpr : HInst< 8349 (outs), 8350 (ins IntRegs:$Rs32), 8351 "hintjr($Rs32)", 8352 tc_9faf76ae, TypeJ>, Enc_ecbcc8 { 8353 let Inst{13-0} = 0b00000000000000; 8354 let Inst{31-21} = 0b01010010101; 8355 let isTerminator = 1; 8356 let isIndirectBranch = 1; 8357 let isBranch = 1; 8358 let cofMax1 = 1; 8359 } 8360 def J4_jumpseti : HInst< 8361 (outs GeneralSubRegs:$Rd16), 8362 (ins u6_0Imm:$II, b30_2Imm:$Ii), 8363 "$Rd16 = #$II ; jump $Ii", 8364 tc_49eb22c8, TypeCJ>, Enc_9e4c3f { 8365 let Inst{0-0} = 0b0; 8366 let Inst{31-22} = 0b0001011000; 8367 let hasNewValue = 1; 8368 let opNewValue = 0; 8369 let isTerminator = 1; 8370 let isBranch = 1; 8371 let cofRelax2 = 1; 8372 let cofMax1 = 1; 8373 let Defs = [PC]; 8374 let isExtendable = 1; 8375 let opExtendable = 2; 8376 let isExtentSigned = 1; 8377 let opExtentBits = 11; 8378 let opExtentAlign = 2; 8379 } 8380 def J4_jumpsetr : HInst< 8381 (outs GeneralSubRegs:$Rd16), 8382 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8383 "$Rd16 = $Rs16 ; jump $Ii", 8384 tc_49eb22c8, TypeCJ>, Enc_66bce1 { 8385 let Inst{0-0} = 0b0; 8386 let Inst{13-12} = 0b00; 8387 let Inst{31-22} = 0b0001011100; 8388 let hasNewValue = 1; 8389 let opNewValue = 0; 8390 let isTerminator = 1; 8391 let isBranch = 1; 8392 let cofRelax2 = 1; 8393 let cofMax1 = 1; 8394 let Defs = [PC]; 8395 let isExtendable = 1; 8396 let opExtendable = 2; 8397 let isExtentSigned = 1; 8398 let opExtentBits = 11; 8399 let opExtentAlign = 2; 8400 } 8401 def J4_tstbit0_f_jumpnv_nt : HInst< 8402 (outs), 8403 (ins IntRegs:$Ns8, b30_2Imm:$Ii), 8404 "if (!tstbit($Ns8.new,#0)) jump:nt $Ii", 8405 tc_746baa8e, TypeNCJ>, Enc_69d63b { 8406 let Inst{0-0} = 0b0; 8407 let Inst{13-8} = 0b000000; 8408 let Inst{19-19} = 0b0; 8409 let Inst{31-22} = 0b0010010111; 8410 let isPredicated = 1; 8411 let isPredicatedFalse = 1; 8412 let isTerminator = 1; 8413 let isBranch = 1; 8414 let isNewValue = 1; 8415 let cofMax1 = 1; 8416 let isRestrictNoSlot1Store = 1; 8417 let Defs = [PC]; 8418 let isTaken = Inst{13}; 8419 let isExtendable = 1; 8420 let opExtendable = 1; 8421 let isExtentSigned = 1; 8422 let opExtentBits = 11; 8423 let opExtentAlign = 2; 8424 let opNewValue = 0; 8425 } 8426 def J4_tstbit0_f_jumpnv_t : HInst< 8427 (outs), 8428 (ins IntRegs:$Ns8, b30_2Imm:$Ii), 8429 "if (!tstbit($Ns8.new,#0)) jump:t $Ii", 8430 tc_746baa8e, TypeNCJ>, Enc_69d63b { 8431 let Inst{0-0} = 0b0; 8432 let Inst{13-8} = 0b100000; 8433 let Inst{19-19} = 0b0; 8434 let Inst{31-22} = 0b0010010111; 8435 let isPredicated = 1; 8436 let isPredicatedFalse = 1; 8437 let isTerminator = 1; 8438 let isBranch = 1; 8439 let isNewValue = 1; 8440 let cofMax1 = 1; 8441 let isRestrictNoSlot1Store = 1; 8442 let Defs = [PC]; 8443 let isTaken = Inst{13}; 8444 let isExtendable = 1; 8445 let opExtendable = 1; 8446 let isExtentSigned = 1; 8447 let opExtentBits = 11; 8448 let opExtentAlign = 2; 8449 let opNewValue = 0; 8450 } 8451 def J4_tstbit0_fp0_jump_nt : HInst< 8452 (outs), 8453 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8454 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii", 8455 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8456 let Inst{0-0} = 0b0; 8457 let Inst{13-8} = 0b000011; 8458 let Inst{31-22} = 0b0001000111; 8459 let isPredicated = 1; 8460 let isPredicatedFalse = 1; 8461 let isTerminator = 1; 8462 let isBranch = 1; 8463 let isPredicatedNew = 1; 8464 let cofRelax1 = 1; 8465 let cofRelax2 = 1; 8466 let cofMax1 = 1; 8467 let Uses = [P0]; 8468 let Defs = [P0, PC]; 8469 let isTaken = Inst{13}; 8470 let isExtendable = 1; 8471 let opExtendable = 1; 8472 let isExtentSigned = 1; 8473 let opExtentBits = 11; 8474 let opExtentAlign = 2; 8475 } 8476 def J4_tstbit0_fp0_jump_t : HInst< 8477 (outs), 8478 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8479 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii", 8480 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8481 let Inst{0-0} = 0b0; 8482 let Inst{13-8} = 0b100011; 8483 let Inst{31-22} = 0b0001000111; 8484 let isPredicated = 1; 8485 let isPredicatedFalse = 1; 8486 let isTerminator = 1; 8487 let isBranch = 1; 8488 let isPredicatedNew = 1; 8489 let cofRelax1 = 1; 8490 let cofRelax2 = 1; 8491 let cofMax1 = 1; 8492 let Uses = [P0]; 8493 let Defs = [P0, PC]; 8494 let isTaken = Inst{13}; 8495 let isExtendable = 1; 8496 let opExtendable = 1; 8497 let isExtentSigned = 1; 8498 let opExtentBits = 11; 8499 let opExtentAlign = 2; 8500 } 8501 def J4_tstbit0_fp1_jump_nt : HInst< 8502 (outs), 8503 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8504 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii", 8505 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8506 let Inst{0-0} = 0b0; 8507 let Inst{13-8} = 0b000011; 8508 let Inst{31-22} = 0b0001001111; 8509 let isPredicated = 1; 8510 let isPredicatedFalse = 1; 8511 let isTerminator = 1; 8512 let isBranch = 1; 8513 let isPredicatedNew = 1; 8514 let cofRelax1 = 1; 8515 let cofRelax2 = 1; 8516 let cofMax1 = 1; 8517 let Uses = [P1]; 8518 let Defs = [P1, PC]; 8519 let isTaken = Inst{13}; 8520 let isExtendable = 1; 8521 let opExtendable = 1; 8522 let isExtentSigned = 1; 8523 let opExtentBits = 11; 8524 let opExtentAlign = 2; 8525 } 8526 def J4_tstbit0_fp1_jump_t : HInst< 8527 (outs), 8528 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8529 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii", 8530 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8531 let Inst{0-0} = 0b0; 8532 let Inst{13-8} = 0b100011; 8533 let Inst{31-22} = 0b0001001111; 8534 let isPredicated = 1; 8535 let isPredicatedFalse = 1; 8536 let isTerminator = 1; 8537 let isBranch = 1; 8538 let isPredicatedNew = 1; 8539 let cofRelax1 = 1; 8540 let cofRelax2 = 1; 8541 let cofMax1 = 1; 8542 let Uses = [P1]; 8543 let Defs = [P1, PC]; 8544 let isTaken = Inst{13}; 8545 let isExtendable = 1; 8546 let opExtendable = 1; 8547 let isExtentSigned = 1; 8548 let opExtentBits = 11; 8549 let opExtentAlign = 2; 8550 } 8551 def J4_tstbit0_t_jumpnv_nt : HInst< 8552 (outs), 8553 (ins IntRegs:$Ns8, b30_2Imm:$Ii), 8554 "if (tstbit($Ns8.new,#0)) jump:nt $Ii", 8555 tc_746baa8e, TypeNCJ>, Enc_69d63b { 8556 let Inst{0-0} = 0b0; 8557 let Inst{13-8} = 0b000000; 8558 let Inst{19-19} = 0b0; 8559 let Inst{31-22} = 0b0010010110; 8560 let isPredicated = 1; 8561 let isTerminator = 1; 8562 let isBranch = 1; 8563 let isNewValue = 1; 8564 let cofMax1 = 1; 8565 let isRestrictNoSlot1Store = 1; 8566 let Defs = [PC]; 8567 let isTaken = Inst{13}; 8568 let isExtendable = 1; 8569 let opExtendable = 1; 8570 let isExtentSigned = 1; 8571 let opExtentBits = 11; 8572 let opExtentAlign = 2; 8573 let opNewValue = 0; 8574 } 8575 def J4_tstbit0_t_jumpnv_t : HInst< 8576 (outs), 8577 (ins IntRegs:$Ns8, b30_2Imm:$Ii), 8578 "if (tstbit($Ns8.new,#0)) jump:t $Ii", 8579 tc_746baa8e, TypeNCJ>, Enc_69d63b { 8580 let Inst{0-0} = 0b0; 8581 let Inst{13-8} = 0b100000; 8582 let Inst{19-19} = 0b0; 8583 let Inst{31-22} = 0b0010010110; 8584 let isPredicated = 1; 8585 let isTerminator = 1; 8586 let isBranch = 1; 8587 let isNewValue = 1; 8588 let cofMax1 = 1; 8589 let isRestrictNoSlot1Store = 1; 8590 let Defs = [PC]; 8591 let isTaken = Inst{13}; 8592 let isExtendable = 1; 8593 let opExtendable = 1; 8594 let isExtentSigned = 1; 8595 let opExtentBits = 11; 8596 let opExtentAlign = 2; 8597 let opNewValue = 0; 8598 } 8599 def J4_tstbit0_tp0_jump_nt : HInst< 8600 (outs), 8601 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8602 "p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii", 8603 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8604 let Inst{0-0} = 0b0; 8605 let Inst{13-8} = 0b000011; 8606 let Inst{31-22} = 0b0001000110; 8607 let isPredicated = 1; 8608 let isTerminator = 1; 8609 let isBranch = 1; 8610 let isPredicatedNew = 1; 8611 let cofRelax1 = 1; 8612 let cofRelax2 = 1; 8613 let cofMax1 = 1; 8614 let Uses = [P0]; 8615 let Defs = [P0, PC]; 8616 let isTaken = Inst{13}; 8617 let isExtendable = 1; 8618 let opExtendable = 1; 8619 let isExtentSigned = 1; 8620 let opExtentBits = 11; 8621 let opExtentAlign = 2; 8622 } 8623 def J4_tstbit0_tp0_jump_t : HInst< 8624 (outs), 8625 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8626 "p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii", 8627 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8628 let Inst{0-0} = 0b0; 8629 let Inst{13-8} = 0b100011; 8630 let Inst{31-22} = 0b0001000110; 8631 let isPredicated = 1; 8632 let isTerminator = 1; 8633 let isBranch = 1; 8634 let isPredicatedNew = 1; 8635 let cofRelax1 = 1; 8636 let cofRelax2 = 1; 8637 let cofMax1 = 1; 8638 let Uses = [P0]; 8639 let Defs = [P0, PC]; 8640 let isTaken = Inst{13}; 8641 let isExtendable = 1; 8642 let opExtendable = 1; 8643 let isExtentSigned = 1; 8644 let opExtentBits = 11; 8645 let opExtentAlign = 2; 8646 } 8647 def J4_tstbit0_tp1_jump_nt : HInst< 8648 (outs), 8649 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8650 "p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii", 8651 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8652 let Inst{0-0} = 0b0; 8653 let Inst{13-8} = 0b000011; 8654 let Inst{31-22} = 0b0001001110; 8655 let isPredicated = 1; 8656 let isTerminator = 1; 8657 let isBranch = 1; 8658 let isPredicatedNew = 1; 8659 let cofRelax1 = 1; 8660 let cofRelax2 = 1; 8661 let cofMax1 = 1; 8662 let Uses = [P1]; 8663 let Defs = [P1, PC]; 8664 let isTaken = Inst{13}; 8665 let isExtendable = 1; 8666 let opExtendable = 1; 8667 let isExtentSigned = 1; 8668 let opExtentBits = 11; 8669 let opExtentAlign = 2; 8670 } 8671 def J4_tstbit0_tp1_jump_t : HInst< 8672 (outs), 8673 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8674 "p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii", 8675 tc_3cb8ea06, TypeCJ>, Enc_ad1c74 { 8676 let Inst{0-0} = 0b0; 8677 let Inst{13-8} = 0b100011; 8678 let Inst{31-22} = 0b0001001110; 8679 let isPredicated = 1; 8680 let isTerminator = 1; 8681 let isBranch = 1; 8682 let isPredicatedNew = 1; 8683 let cofRelax1 = 1; 8684 let cofRelax2 = 1; 8685 let cofMax1 = 1; 8686 let Uses = [P1]; 8687 let Defs = [P1, PC]; 8688 let isTaken = Inst{13}; 8689 let isExtendable = 1; 8690 let opExtendable = 1; 8691 let isExtentSigned = 1; 8692 let opExtentBits = 11; 8693 let opExtentAlign = 2; 8694 } 8695 def L2_deallocframe : HInst< 8696 (outs DoubleRegs:$Rdd32), 8697 (ins IntRegs:$Rs32), 8698 "$Rdd32 = deallocframe($Rs32):raw", 8699 tc_d1090e34, TypeLD>, Enc_3a3d62 { 8700 let Inst{13-5} = 0b000000000; 8701 let Inst{31-21} = 0b10010000000; 8702 let accessSize = DoubleWordAccess; 8703 let mayLoad = 1; 8704 let Uses = [FRAMEKEY]; 8705 let Defs = [R29]; 8706 } 8707 def L2_loadalignb_io : HInst< 8708 (outs DoubleRegs:$Ryy32), 8709 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii), 8710 "$Ryy32 = memb_fifo($Rs32+#$Ii)", 8711 tc_ef52ed71, TypeLD>, Enc_a27588 { 8712 let Inst{24-21} = 0b0100; 8713 let Inst{31-27} = 0b10010; 8714 let addrMode = BaseImmOffset; 8715 let accessSize = ByteAccess; 8716 let mayLoad = 1; 8717 let isExtendable = 1; 8718 let opExtendable = 3; 8719 let isExtentSigned = 1; 8720 let opExtentBits = 11; 8721 let opExtentAlign = 0; 8722 let Constraints = "$Ryy32 = $Ryy32in"; 8723 } 8724 def L2_loadalignb_pbr : HInst< 8725 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8726 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8727 "$Ryy32 = memb_fifo($Rx32++$Mu2:brev)", 8728 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8729 let Inst{12-5} = 0b00000000; 8730 let Inst{31-21} = 0b10011110100; 8731 let accessSize = ByteAccess; 8732 let mayLoad = 1; 8733 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8734 } 8735 def L2_loadalignb_pci : HInst< 8736 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8737 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 8738 "$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))", 8739 tc_03220ffa, TypeLD>, Enc_74aef2 { 8740 let Inst{12-9} = 0b0000; 8741 let Inst{31-21} = 0b10011000100; 8742 let addrMode = PostInc; 8743 let accessSize = ByteAccess; 8744 let mayLoad = 1; 8745 let Uses = [CS]; 8746 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8747 } 8748 def L2_loadalignb_pcr : HInst< 8749 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8750 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8751 "$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))", 8752 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8753 let Inst{12-5} = 0b00010000; 8754 let Inst{31-21} = 0b10011000100; 8755 let addrMode = PostInc; 8756 let accessSize = ByteAccess; 8757 let mayLoad = 1; 8758 let Uses = [CS]; 8759 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8760 } 8761 def L2_loadalignb_pi : HInst< 8762 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8763 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii), 8764 "$Ryy32 = memb_fifo($Rx32++#$Ii)", 8765 tc_bad2bcaf, TypeLD>, Enc_6b197f { 8766 let Inst{13-9} = 0b00000; 8767 let Inst{31-21} = 0b10011010100; 8768 let addrMode = PostInc; 8769 let accessSize = ByteAccess; 8770 let mayLoad = 1; 8771 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8772 } 8773 def L2_loadalignb_pr : HInst< 8774 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8775 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8776 "$Ryy32 = memb_fifo($Rx32++$Mu2)", 8777 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8778 let Inst{12-5} = 0b00000000; 8779 let Inst{31-21} = 0b10011100100; 8780 let addrMode = PostInc; 8781 let accessSize = ByteAccess; 8782 let mayLoad = 1; 8783 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8784 } 8785 def L2_loadalignb_zomap : HInst< 8786 (outs DoubleRegs:$Ryy32), 8787 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 8788 "$Ryy32 = memb_fifo($Rs32)", 8789 tc_ef52ed71, TypeMAPPING> { 8790 let isPseudo = 1; 8791 let isCodeGenOnly = 1; 8792 let Constraints = "$Ryy32 = $Ryy32in"; 8793 } 8794 def L2_loadalignh_io : HInst< 8795 (outs DoubleRegs:$Ryy32), 8796 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii), 8797 "$Ryy32 = memh_fifo($Rs32+#$Ii)", 8798 tc_ef52ed71, TypeLD>, Enc_5cd7e9 { 8799 let Inst{24-21} = 0b0010; 8800 let Inst{31-27} = 0b10010; 8801 let addrMode = BaseImmOffset; 8802 let accessSize = HalfWordAccess; 8803 let mayLoad = 1; 8804 let isExtendable = 1; 8805 let opExtendable = 3; 8806 let isExtentSigned = 1; 8807 let opExtentBits = 12; 8808 let opExtentAlign = 1; 8809 let Constraints = "$Ryy32 = $Ryy32in"; 8810 } 8811 def L2_loadalignh_pbr : HInst< 8812 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8813 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8814 "$Ryy32 = memh_fifo($Rx32++$Mu2:brev)", 8815 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8816 let Inst{12-5} = 0b00000000; 8817 let Inst{31-21} = 0b10011110010; 8818 let accessSize = HalfWordAccess; 8819 let mayLoad = 1; 8820 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8821 } 8822 def L2_loadalignh_pci : HInst< 8823 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8824 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 8825 "$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))", 8826 tc_03220ffa, TypeLD>, Enc_9e2e1c { 8827 let Inst{12-9} = 0b0000; 8828 let Inst{31-21} = 0b10011000010; 8829 let addrMode = PostInc; 8830 let accessSize = HalfWordAccess; 8831 let mayLoad = 1; 8832 let Uses = [CS]; 8833 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8834 } 8835 def L2_loadalignh_pcr : HInst< 8836 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8837 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8838 "$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))", 8839 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8840 let Inst{12-5} = 0b00010000; 8841 let Inst{31-21} = 0b10011000010; 8842 let addrMode = PostInc; 8843 let accessSize = HalfWordAccess; 8844 let mayLoad = 1; 8845 let Uses = [CS]; 8846 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8847 } 8848 def L2_loadalignh_pi : HInst< 8849 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8850 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii), 8851 "$Ryy32 = memh_fifo($Rx32++#$Ii)", 8852 tc_bad2bcaf, TypeLD>, Enc_bd1cbc { 8853 let Inst{13-9} = 0b00000; 8854 let Inst{31-21} = 0b10011010010; 8855 let addrMode = PostInc; 8856 let accessSize = HalfWordAccess; 8857 let mayLoad = 1; 8858 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8859 } 8860 def L2_loadalignh_pr : HInst< 8861 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8862 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8863 "$Ryy32 = memh_fifo($Rx32++$Mu2)", 8864 tc_bad2bcaf, TypeLD>, Enc_1f5d8f { 8865 let Inst{12-5} = 0b00000000; 8866 let Inst{31-21} = 0b10011100010; 8867 let addrMode = PostInc; 8868 let accessSize = HalfWordAccess; 8869 let mayLoad = 1; 8870 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8871 } 8872 def L2_loadalignh_zomap : HInst< 8873 (outs DoubleRegs:$Ryy32), 8874 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 8875 "$Ryy32 = memh_fifo($Rs32)", 8876 tc_ef52ed71, TypeMAPPING> { 8877 let isPseudo = 1; 8878 let isCodeGenOnly = 1; 8879 let Constraints = "$Ryy32 = $Ryy32in"; 8880 } 8881 def L2_loadbsw2_io : HInst< 8882 (outs IntRegs:$Rd32), 8883 (ins IntRegs:$Rs32, s31_1Imm:$Ii), 8884 "$Rd32 = membh($Rs32+#$Ii)", 8885 tc_7f881c76, TypeLD>, Enc_de0214 { 8886 let Inst{24-21} = 0b0001; 8887 let Inst{31-27} = 0b10010; 8888 let hasNewValue = 1; 8889 let opNewValue = 0; 8890 let addrMode = BaseImmOffset; 8891 let accessSize = HalfWordAccess; 8892 let mayLoad = 1; 8893 let isExtendable = 1; 8894 let opExtendable = 2; 8895 let isExtentSigned = 1; 8896 let opExtentBits = 12; 8897 let opExtentAlign = 1; 8898 } 8899 def L2_loadbsw2_pbr : HInst< 8900 (outs IntRegs:$Rd32, IntRegs:$Rx32), 8901 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 8902 "$Rd32 = membh($Rx32++$Mu2:brev)", 8903 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 8904 let Inst{12-5} = 0b00000000; 8905 let Inst{31-21} = 0b10011110001; 8906 let hasNewValue = 1; 8907 let opNewValue = 0; 8908 let accessSize = HalfWordAccess; 8909 let mayLoad = 1; 8910 let Constraints = "$Rx32 = $Rx32in"; 8911 } 8912 def L2_loadbsw2_pci : HInst< 8913 (outs IntRegs:$Rd32, IntRegs:$Rx32), 8914 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 8915 "$Rd32 = membh($Rx32++#$Ii:circ($Mu2))", 8916 tc_4403ca65, TypeLD>, Enc_e83554 { 8917 let Inst{12-9} = 0b0000; 8918 let Inst{31-21} = 0b10011000001; 8919 let hasNewValue = 1; 8920 let opNewValue = 0; 8921 let addrMode = PostInc; 8922 let accessSize = HalfWordAccess; 8923 let mayLoad = 1; 8924 let Uses = [CS]; 8925 let Constraints = "$Rx32 = $Rx32in"; 8926 } 8927 def L2_loadbsw2_pcr : HInst< 8928 (outs IntRegs:$Rd32, IntRegs:$Rx32), 8929 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 8930 "$Rd32 = membh($Rx32++I:circ($Mu2))", 8931 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 8932 let Inst{12-5} = 0b00010000; 8933 let Inst{31-21} = 0b10011000001; 8934 let hasNewValue = 1; 8935 let opNewValue = 0; 8936 let addrMode = PostInc; 8937 let accessSize = HalfWordAccess; 8938 let mayLoad = 1; 8939 let Uses = [CS]; 8940 let Constraints = "$Rx32 = $Rx32in"; 8941 } 8942 def L2_loadbsw2_pi : HInst< 8943 (outs IntRegs:$Rd32, IntRegs:$Rx32), 8944 (ins IntRegs:$Rx32in, s4_1Imm:$Ii), 8945 "$Rd32 = membh($Rx32++#$Ii)", 8946 tc_2fc0c436, TypeLD>, Enc_152467 { 8947 let Inst{13-9} = 0b00000; 8948 let Inst{31-21} = 0b10011010001; 8949 let hasNewValue = 1; 8950 let opNewValue = 0; 8951 let addrMode = PostInc; 8952 let accessSize = HalfWordAccess; 8953 let mayLoad = 1; 8954 let Constraints = "$Rx32 = $Rx32in"; 8955 } 8956 def L2_loadbsw2_pr : HInst< 8957 (outs IntRegs:$Rd32, IntRegs:$Rx32), 8958 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 8959 "$Rd32 = membh($Rx32++$Mu2)", 8960 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 8961 let Inst{12-5} = 0b00000000; 8962 let Inst{31-21} = 0b10011100001; 8963 let hasNewValue = 1; 8964 let opNewValue = 0; 8965 let addrMode = PostInc; 8966 let accessSize = HalfWordAccess; 8967 let mayLoad = 1; 8968 let Constraints = "$Rx32 = $Rx32in"; 8969 } 8970 def L2_loadbsw2_zomap : HInst< 8971 (outs IntRegs:$Rd32), 8972 (ins IntRegs:$Rs32), 8973 "$Rd32 = membh($Rs32)", 8974 tc_7f881c76, TypeMAPPING> { 8975 let hasNewValue = 1; 8976 let opNewValue = 0; 8977 let isPseudo = 1; 8978 let isCodeGenOnly = 1; 8979 } 8980 def L2_loadbsw4_io : HInst< 8981 (outs DoubleRegs:$Rdd32), 8982 (ins IntRegs:$Rs32, s30_2Imm:$Ii), 8983 "$Rdd32 = membh($Rs32+#$Ii)", 8984 tc_7f881c76, TypeLD>, Enc_2d7491 { 8985 let Inst{24-21} = 0b0111; 8986 let Inst{31-27} = 0b10010; 8987 let addrMode = BaseImmOffset; 8988 let accessSize = WordAccess; 8989 let mayLoad = 1; 8990 let isExtendable = 1; 8991 let opExtendable = 2; 8992 let isExtentSigned = 1; 8993 let opExtentBits = 13; 8994 let opExtentAlign = 2; 8995 } 8996 def L2_loadbsw4_pbr : HInst< 8997 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 8998 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 8999 "$Rdd32 = membh($Rx32++$Mu2:brev)", 9000 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9001 let Inst{12-5} = 0b00000000; 9002 let Inst{31-21} = 0b10011110111; 9003 let accessSize = WordAccess; 9004 let mayLoad = 1; 9005 let Constraints = "$Rx32 = $Rx32in"; 9006 } 9007 def L2_loadbsw4_pci : HInst< 9008 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9009 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9010 "$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))", 9011 tc_4403ca65, TypeLD>, Enc_70b24b { 9012 let Inst{12-9} = 0b0000; 9013 let Inst{31-21} = 0b10011000111; 9014 let addrMode = PostInc; 9015 let accessSize = WordAccess; 9016 let mayLoad = 1; 9017 let Uses = [CS]; 9018 let Constraints = "$Rx32 = $Rx32in"; 9019 } 9020 def L2_loadbsw4_pcr : HInst< 9021 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9022 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9023 "$Rdd32 = membh($Rx32++I:circ($Mu2))", 9024 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9025 let Inst{12-5} = 0b00010000; 9026 let Inst{31-21} = 0b10011000111; 9027 let addrMode = PostInc; 9028 let accessSize = WordAccess; 9029 let mayLoad = 1; 9030 let Uses = [CS]; 9031 let Constraints = "$Rx32 = $Rx32in"; 9032 } 9033 def L2_loadbsw4_pi : HInst< 9034 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9035 (ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9036 "$Rdd32 = membh($Rx32++#$Ii)", 9037 tc_2fc0c436, TypeLD>, Enc_71f1b4 { 9038 let Inst{13-9} = 0b00000; 9039 let Inst{31-21} = 0b10011010111; 9040 let addrMode = PostInc; 9041 let accessSize = WordAccess; 9042 let mayLoad = 1; 9043 let Constraints = "$Rx32 = $Rx32in"; 9044 } 9045 def L2_loadbsw4_pr : HInst< 9046 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9047 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9048 "$Rdd32 = membh($Rx32++$Mu2)", 9049 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9050 let Inst{12-5} = 0b00000000; 9051 let Inst{31-21} = 0b10011100111; 9052 let addrMode = PostInc; 9053 let accessSize = WordAccess; 9054 let mayLoad = 1; 9055 let Constraints = "$Rx32 = $Rx32in"; 9056 } 9057 def L2_loadbsw4_zomap : HInst< 9058 (outs DoubleRegs:$Rdd32), 9059 (ins IntRegs:$Rs32), 9060 "$Rdd32 = membh($Rs32)", 9061 tc_7f881c76, TypeMAPPING> { 9062 let isPseudo = 1; 9063 let isCodeGenOnly = 1; 9064 } 9065 def L2_loadbzw2_io : HInst< 9066 (outs IntRegs:$Rd32), 9067 (ins IntRegs:$Rs32, s31_1Imm:$Ii), 9068 "$Rd32 = memubh($Rs32+#$Ii)", 9069 tc_7f881c76, TypeLD>, Enc_de0214 { 9070 let Inst{24-21} = 0b0011; 9071 let Inst{31-27} = 0b10010; 9072 let hasNewValue = 1; 9073 let opNewValue = 0; 9074 let addrMode = BaseImmOffset; 9075 let accessSize = HalfWordAccess; 9076 let mayLoad = 1; 9077 let isExtendable = 1; 9078 let opExtendable = 2; 9079 let isExtentSigned = 1; 9080 let opExtentBits = 12; 9081 let opExtentAlign = 1; 9082 } 9083 def L2_loadbzw2_pbr : HInst< 9084 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9085 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9086 "$Rd32 = memubh($Rx32++$Mu2:brev)", 9087 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9088 let Inst{12-5} = 0b00000000; 9089 let Inst{31-21} = 0b10011110011; 9090 let hasNewValue = 1; 9091 let opNewValue = 0; 9092 let accessSize = HalfWordAccess; 9093 let mayLoad = 1; 9094 let Constraints = "$Rx32 = $Rx32in"; 9095 } 9096 def L2_loadbzw2_pci : HInst< 9097 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9098 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9099 "$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9100 tc_4403ca65, TypeLD>, Enc_e83554 { 9101 let Inst{12-9} = 0b0000; 9102 let Inst{31-21} = 0b10011000011; 9103 let hasNewValue = 1; 9104 let opNewValue = 0; 9105 let addrMode = PostInc; 9106 let accessSize = HalfWordAccess; 9107 let mayLoad = 1; 9108 let Uses = [CS]; 9109 let Constraints = "$Rx32 = $Rx32in"; 9110 } 9111 def L2_loadbzw2_pcr : HInst< 9112 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9113 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9114 "$Rd32 = memubh($Rx32++I:circ($Mu2))", 9115 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9116 let Inst{12-5} = 0b00010000; 9117 let Inst{31-21} = 0b10011000011; 9118 let hasNewValue = 1; 9119 let opNewValue = 0; 9120 let addrMode = PostInc; 9121 let accessSize = HalfWordAccess; 9122 let mayLoad = 1; 9123 let Uses = [CS]; 9124 let Constraints = "$Rx32 = $Rx32in"; 9125 } 9126 def L2_loadbzw2_pi : HInst< 9127 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9128 (ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9129 "$Rd32 = memubh($Rx32++#$Ii)", 9130 tc_2fc0c436, TypeLD>, Enc_152467 { 9131 let Inst{13-9} = 0b00000; 9132 let Inst{31-21} = 0b10011010011; 9133 let hasNewValue = 1; 9134 let opNewValue = 0; 9135 let addrMode = PostInc; 9136 let accessSize = HalfWordAccess; 9137 let mayLoad = 1; 9138 let Constraints = "$Rx32 = $Rx32in"; 9139 } 9140 def L2_loadbzw2_pr : HInst< 9141 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9142 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9143 "$Rd32 = memubh($Rx32++$Mu2)", 9144 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9145 let Inst{12-5} = 0b00000000; 9146 let Inst{31-21} = 0b10011100011; 9147 let hasNewValue = 1; 9148 let opNewValue = 0; 9149 let addrMode = PostInc; 9150 let accessSize = HalfWordAccess; 9151 let mayLoad = 1; 9152 let Constraints = "$Rx32 = $Rx32in"; 9153 } 9154 def L2_loadbzw2_zomap : HInst< 9155 (outs IntRegs:$Rd32), 9156 (ins IntRegs:$Rs32), 9157 "$Rd32 = memubh($Rs32)", 9158 tc_7f881c76, TypeMAPPING> { 9159 let hasNewValue = 1; 9160 let opNewValue = 0; 9161 let isPseudo = 1; 9162 let isCodeGenOnly = 1; 9163 } 9164 def L2_loadbzw4_io : HInst< 9165 (outs DoubleRegs:$Rdd32), 9166 (ins IntRegs:$Rs32, s30_2Imm:$Ii), 9167 "$Rdd32 = memubh($Rs32+#$Ii)", 9168 tc_7f881c76, TypeLD>, Enc_2d7491 { 9169 let Inst{24-21} = 0b0101; 9170 let Inst{31-27} = 0b10010; 9171 let addrMode = BaseImmOffset; 9172 let accessSize = WordAccess; 9173 let mayLoad = 1; 9174 let isExtendable = 1; 9175 let opExtendable = 2; 9176 let isExtentSigned = 1; 9177 let opExtentBits = 13; 9178 let opExtentAlign = 2; 9179 } 9180 def L2_loadbzw4_pbr : HInst< 9181 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9182 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9183 "$Rdd32 = memubh($Rx32++$Mu2:brev)", 9184 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9185 let Inst{12-5} = 0b00000000; 9186 let Inst{31-21} = 0b10011110101; 9187 let accessSize = WordAccess; 9188 let mayLoad = 1; 9189 let Constraints = "$Rx32 = $Rx32in"; 9190 } 9191 def L2_loadbzw4_pci : HInst< 9192 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9193 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9194 "$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9195 tc_4403ca65, TypeLD>, Enc_70b24b { 9196 let Inst{12-9} = 0b0000; 9197 let Inst{31-21} = 0b10011000101; 9198 let addrMode = PostInc; 9199 let accessSize = WordAccess; 9200 let mayLoad = 1; 9201 let Uses = [CS]; 9202 let Constraints = "$Rx32 = $Rx32in"; 9203 } 9204 def L2_loadbzw4_pcr : HInst< 9205 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9206 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9207 "$Rdd32 = memubh($Rx32++I:circ($Mu2))", 9208 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9209 let Inst{12-5} = 0b00010000; 9210 let Inst{31-21} = 0b10011000101; 9211 let addrMode = PostInc; 9212 let accessSize = WordAccess; 9213 let mayLoad = 1; 9214 let Uses = [CS]; 9215 let Constraints = "$Rx32 = $Rx32in"; 9216 } 9217 def L2_loadbzw4_pi : HInst< 9218 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9219 (ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9220 "$Rdd32 = memubh($Rx32++#$Ii)", 9221 tc_2fc0c436, TypeLD>, Enc_71f1b4 { 9222 let Inst{13-9} = 0b00000; 9223 let Inst{31-21} = 0b10011010101; 9224 let addrMode = PostInc; 9225 let accessSize = WordAccess; 9226 let mayLoad = 1; 9227 let Constraints = "$Rx32 = $Rx32in"; 9228 } 9229 def L2_loadbzw4_pr : HInst< 9230 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9231 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9232 "$Rdd32 = memubh($Rx32++$Mu2)", 9233 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9234 let Inst{12-5} = 0b00000000; 9235 let Inst{31-21} = 0b10011100101; 9236 let addrMode = PostInc; 9237 let accessSize = WordAccess; 9238 let mayLoad = 1; 9239 let Constraints = "$Rx32 = $Rx32in"; 9240 } 9241 def L2_loadbzw4_zomap : HInst< 9242 (outs DoubleRegs:$Rdd32), 9243 (ins IntRegs:$Rs32), 9244 "$Rdd32 = memubh($Rs32)", 9245 tc_7f881c76, TypeMAPPING> { 9246 let isPseudo = 1; 9247 let isCodeGenOnly = 1; 9248 } 9249 def L2_loadrb_io : HInst< 9250 (outs IntRegs:$Rd32), 9251 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 9252 "$Rd32 = memb($Rs32+#$Ii)", 9253 tc_7f881c76, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9254 let Inst{24-21} = 0b1000; 9255 let Inst{31-27} = 0b10010; 9256 let hasNewValue = 1; 9257 let opNewValue = 0; 9258 let addrMode = BaseImmOffset; 9259 let accessSize = ByteAccess; 9260 let mayLoad = 1; 9261 let CextOpcode = "L2_loadrb"; 9262 let BaseOpcode = "L2_loadrb_io"; 9263 let isPredicable = 1; 9264 let isExtendable = 1; 9265 let opExtendable = 2; 9266 let isExtentSigned = 1; 9267 let opExtentBits = 11; 9268 let opExtentAlign = 0; 9269 } 9270 def L2_loadrb_pbr : HInst< 9271 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9272 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9273 "$Rd32 = memb($Rx32++$Mu2:brev)", 9274 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9275 let Inst{12-5} = 0b00000000; 9276 let Inst{31-21} = 0b10011111000; 9277 let hasNewValue = 1; 9278 let opNewValue = 0; 9279 let accessSize = ByteAccess; 9280 let mayLoad = 1; 9281 let Constraints = "$Rx32 = $Rx32in"; 9282 } 9283 def L2_loadrb_pci : HInst< 9284 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9285 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9286 "$Rd32 = memb($Rx32++#$Ii:circ($Mu2))", 9287 tc_4403ca65, TypeLD>, Enc_e0a47a { 9288 let Inst{12-9} = 0b0000; 9289 let Inst{31-21} = 0b10011001000; 9290 let hasNewValue = 1; 9291 let opNewValue = 0; 9292 let addrMode = PostInc; 9293 let accessSize = ByteAccess; 9294 let mayLoad = 1; 9295 let Uses = [CS]; 9296 let Constraints = "$Rx32 = $Rx32in"; 9297 } 9298 def L2_loadrb_pcr : HInst< 9299 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9300 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9301 "$Rd32 = memb($Rx32++I:circ($Mu2))", 9302 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9303 let Inst{12-5} = 0b00010000; 9304 let Inst{31-21} = 0b10011001000; 9305 let hasNewValue = 1; 9306 let opNewValue = 0; 9307 let addrMode = PostInc; 9308 let accessSize = ByteAccess; 9309 let mayLoad = 1; 9310 let Uses = [CS]; 9311 let Constraints = "$Rx32 = $Rx32in"; 9312 } 9313 def L2_loadrb_pi : HInst< 9314 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9315 (ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9316 "$Rd32 = memb($Rx32++#$Ii)", 9317 tc_2fc0c436, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 9318 let Inst{13-9} = 0b00000; 9319 let Inst{31-21} = 0b10011011000; 9320 let hasNewValue = 1; 9321 let opNewValue = 0; 9322 let addrMode = PostInc; 9323 let accessSize = ByteAccess; 9324 let mayLoad = 1; 9325 let CextOpcode = "L2_loadrb"; 9326 let BaseOpcode = "L2_loadrb_pi"; 9327 let isPredicable = 1; 9328 let Constraints = "$Rx32 = $Rx32in"; 9329 } 9330 def L2_loadrb_pr : HInst< 9331 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9332 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9333 "$Rd32 = memb($Rx32++$Mu2)", 9334 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9335 let Inst{12-5} = 0b00000000; 9336 let Inst{31-21} = 0b10011101000; 9337 let hasNewValue = 1; 9338 let opNewValue = 0; 9339 let addrMode = PostInc; 9340 let accessSize = ByteAccess; 9341 let mayLoad = 1; 9342 let Constraints = "$Rx32 = $Rx32in"; 9343 } 9344 def L2_loadrb_zomap : HInst< 9345 (outs IntRegs:$Rd32), 9346 (ins IntRegs:$Rs32), 9347 "$Rd32 = memb($Rs32)", 9348 tc_7f881c76, TypeMAPPING> { 9349 let hasNewValue = 1; 9350 let opNewValue = 0; 9351 let isPseudo = 1; 9352 let isCodeGenOnly = 1; 9353 } 9354 def L2_loadrbgp : HInst< 9355 (outs IntRegs:$Rd32), 9356 (ins u32_0Imm:$Ii), 9357 "$Rd32 = memb(gp+#$Ii)", 9358 tc_9c98e8af, TypeV2LDST>, Enc_25bef0, AddrModeRel { 9359 let Inst{24-21} = 0b1000; 9360 let Inst{31-27} = 0b01001; 9361 let hasNewValue = 1; 9362 let opNewValue = 0; 9363 let accessSize = ByteAccess; 9364 let mayLoad = 1; 9365 let Uses = [GP]; 9366 let BaseOpcode = "L4_loadrb_abs"; 9367 let isPredicable = 1; 9368 let opExtendable = 1; 9369 let isExtentSigned = 0; 9370 let opExtentBits = 16; 9371 let opExtentAlign = 0; 9372 } 9373 def L2_loadrd_io : HInst< 9374 (outs DoubleRegs:$Rdd32), 9375 (ins IntRegs:$Rs32, s29_3Imm:$Ii), 9376 "$Rdd32 = memd($Rs32+#$Ii)", 9377 tc_7f881c76, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm { 9378 let Inst{24-21} = 0b1110; 9379 let Inst{31-27} = 0b10010; 9380 let addrMode = BaseImmOffset; 9381 let accessSize = DoubleWordAccess; 9382 let mayLoad = 1; 9383 let CextOpcode = "L2_loadrd"; 9384 let BaseOpcode = "L2_loadrd_io"; 9385 let isPredicable = 1; 9386 let isExtendable = 1; 9387 let opExtendable = 2; 9388 let isExtentSigned = 1; 9389 let opExtentBits = 14; 9390 let opExtentAlign = 3; 9391 } 9392 def L2_loadrd_pbr : HInst< 9393 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9394 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9395 "$Rdd32 = memd($Rx32++$Mu2:brev)", 9396 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9397 let Inst{12-5} = 0b00000000; 9398 let Inst{31-21} = 0b10011111110; 9399 let accessSize = DoubleWordAccess; 9400 let mayLoad = 1; 9401 let Constraints = "$Rx32 = $Rx32in"; 9402 } 9403 def L2_loadrd_pci : HInst< 9404 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9405 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2), 9406 "$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))", 9407 tc_4403ca65, TypeLD>, Enc_b05839 { 9408 let Inst{12-9} = 0b0000; 9409 let Inst{31-21} = 0b10011001110; 9410 let addrMode = PostInc; 9411 let accessSize = DoubleWordAccess; 9412 let mayLoad = 1; 9413 let Uses = [CS]; 9414 let Constraints = "$Rx32 = $Rx32in"; 9415 } 9416 def L2_loadrd_pcr : HInst< 9417 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9418 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9419 "$Rdd32 = memd($Rx32++I:circ($Mu2))", 9420 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9421 let Inst{12-5} = 0b00010000; 9422 let Inst{31-21} = 0b10011001110; 9423 let addrMode = PostInc; 9424 let accessSize = DoubleWordAccess; 9425 let mayLoad = 1; 9426 let Uses = [CS]; 9427 let Constraints = "$Rx32 = $Rx32in"; 9428 } 9429 def L2_loadrd_pi : HInst< 9430 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9431 (ins IntRegs:$Rx32in, s4_3Imm:$Ii), 9432 "$Rdd32 = memd($Rx32++#$Ii)", 9433 tc_2fc0c436, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm { 9434 let Inst{13-9} = 0b00000; 9435 let Inst{31-21} = 0b10011011110; 9436 let addrMode = PostInc; 9437 let accessSize = DoubleWordAccess; 9438 let mayLoad = 1; 9439 let CextOpcode = "L2_loadrd"; 9440 let BaseOpcode = "L2_loadrd_pi"; 9441 let isPredicable = 1; 9442 let Constraints = "$Rx32 = $Rx32in"; 9443 } 9444 def L2_loadrd_pr : HInst< 9445 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9446 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9447 "$Rdd32 = memd($Rx32++$Mu2)", 9448 tc_2fc0c436, TypeLD>, Enc_7eee72 { 9449 let Inst{12-5} = 0b00000000; 9450 let Inst{31-21} = 0b10011101110; 9451 let addrMode = PostInc; 9452 let accessSize = DoubleWordAccess; 9453 let mayLoad = 1; 9454 let Constraints = "$Rx32 = $Rx32in"; 9455 } 9456 def L2_loadrd_zomap : HInst< 9457 (outs DoubleRegs:$Rdd32), 9458 (ins IntRegs:$Rs32), 9459 "$Rdd32 = memd($Rs32)", 9460 tc_7f881c76, TypeMAPPING> { 9461 let isPseudo = 1; 9462 let isCodeGenOnly = 1; 9463 } 9464 def L2_loadrdgp : HInst< 9465 (outs DoubleRegs:$Rdd32), 9466 (ins u29_3Imm:$Ii), 9467 "$Rdd32 = memd(gp+#$Ii)", 9468 tc_9c98e8af, TypeV2LDST>, Enc_509701, AddrModeRel { 9469 let Inst{24-21} = 0b1110; 9470 let Inst{31-27} = 0b01001; 9471 let accessSize = DoubleWordAccess; 9472 let mayLoad = 1; 9473 let Uses = [GP]; 9474 let BaseOpcode = "L4_loadrd_abs"; 9475 let isPredicable = 1; 9476 let opExtendable = 1; 9477 let isExtentSigned = 0; 9478 let opExtentBits = 19; 9479 let opExtentAlign = 3; 9480 } 9481 def L2_loadrh_io : HInst< 9482 (outs IntRegs:$Rd32), 9483 (ins IntRegs:$Rs32, s31_1Imm:$Ii), 9484 "$Rd32 = memh($Rs32+#$Ii)", 9485 tc_7f881c76, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 9486 let Inst{24-21} = 0b1010; 9487 let Inst{31-27} = 0b10010; 9488 let hasNewValue = 1; 9489 let opNewValue = 0; 9490 let addrMode = BaseImmOffset; 9491 let accessSize = HalfWordAccess; 9492 let mayLoad = 1; 9493 let CextOpcode = "L2_loadrh"; 9494 let BaseOpcode = "L2_loadrh_io"; 9495 let isPredicable = 1; 9496 let isExtendable = 1; 9497 let opExtendable = 2; 9498 let isExtentSigned = 1; 9499 let opExtentBits = 12; 9500 let opExtentAlign = 1; 9501 } 9502 def L2_loadrh_pbr : HInst< 9503 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9504 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9505 "$Rd32 = memh($Rx32++$Mu2:brev)", 9506 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9507 let Inst{12-5} = 0b00000000; 9508 let Inst{31-21} = 0b10011111010; 9509 let hasNewValue = 1; 9510 let opNewValue = 0; 9511 let accessSize = HalfWordAccess; 9512 let mayLoad = 1; 9513 let Constraints = "$Rx32 = $Rx32in"; 9514 } 9515 def L2_loadrh_pci : HInst< 9516 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9517 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9518 "$Rd32 = memh($Rx32++#$Ii:circ($Mu2))", 9519 tc_4403ca65, TypeLD>, Enc_e83554 { 9520 let Inst{12-9} = 0b0000; 9521 let Inst{31-21} = 0b10011001010; 9522 let hasNewValue = 1; 9523 let opNewValue = 0; 9524 let addrMode = PostInc; 9525 let accessSize = HalfWordAccess; 9526 let mayLoad = 1; 9527 let Uses = [CS]; 9528 let Constraints = "$Rx32 = $Rx32in"; 9529 } 9530 def L2_loadrh_pcr : HInst< 9531 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9532 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9533 "$Rd32 = memh($Rx32++I:circ($Mu2))", 9534 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9535 let Inst{12-5} = 0b00010000; 9536 let Inst{31-21} = 0b10011001010; 9537 let hasNewValue = 1; 9538 let opNewValue = 0; 9539 let addrMode = PostInc; 9540 let accessSize = HalfWordAccess; 9541 let mayLoad = 1; 9542 let Uses = [CS]; 9543 let Constraints = "$Rx32 = $Rx32in"; 9544 } 9545 def L2_loadrh_pi : HInst< 9546 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9547 (ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9548 "$Rd32 = memh($Rx32++#$Ii)", 9549 tc_2fc0c436, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 9550 let Inst{13-9} = 0b00000; 9551 let Inst{31-21} = 0b10011011010; 9552 let hasNewValue = 1; 9553 let opNewValue = 0; 9554 let addrMode = PostInc; 9555 let accessSize = HalfWordAccess; 9556 let mayLoad = 1; 9557 let CextOpcode = "L2_loadrh"; 9558 let BaseOpcode = "L2_loadrh_pi"; 9559 let isPredicable = 1; 9560 let Constraints = "$Rx32 = $Rx32in"; 9561 } 9562 def L2_loadrh_pr : HInst< 9563 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9564 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9565 "$Rd32 = memh($Rx32++$Mu2)", 9566 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9567 let Inst{12-5} = 0b00000000; 9568 let Inst{31-21} = 0b10011101010; 9569 let hasNewValue = 1; 9570 let opNewValue = 0; 9571 let addrMode = PostInc; 9572 let accessSize = HalfWordAccess; 9573 let mayLoad = 1; 9574 let Constraints = "$Rx32 = $Rx32in"; 9575 } 9576 def L2_loadrh_zomap : HInst< 9577 (outs IntRegs:$Rd32), 9578 (ins IntRegs:$Rs32), 9579 "$Rd32 = memh($Rs32)", 9580 tc_7f881c76, TypeMAPPING> { 9581 let hasNewValue = 1; 9582 let opNewValue = 0; 9583 let isPseudo = 1; 9584 let isCodeGenOnly = 1; 9585 } 9586 def L2_loadrhgp : HInst< 9587 (outs IntRegs:$Rd32), 9588 (ins u31_1Imm:$Ii), 9589 "$Rd32 = memh(gp+#$Ii)", 9590 tc_9c98e8af, TypeV2LDST>, Enc_8df4be, AddrModeRel { 9591 let Inst{24-21} = 0b1010; 9592 let Inst{31-27} = 0b01001; 9593 let hasNewValue = 1; 9594 let opNewValue = 0; 9595 let accessSize = HalfWordAccess; 9596 let mayLoad = 1; 9597 let Uses = [GP]; 9598 let BaseOpcode = "L4_loadrh_abs"; 9599 let isPredicable = 1; 9600 let opExtendable = 1; 9601 let isExtentSigned = 0; 9602 let opExtentBits = 17; 9603 let opExtentAlign = 1; 9604 } 9605 def L2_loadri_io : HInst< 9606 (outs IntRegs:$Rd32), 9607 (ins IntRegs:$Rs32, s30_2Imm:$Ii), 9608 "$Rd32 = memw($Rs32+#$Ii)", 9609 tc_7f881c76, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm { 9610 let Inst{24-21} = 0b1100; 9611 let Inst{31-27} = 0b10010; 9612 let hasNewValue = 1; 9613 let opNewValue = 0; 9614 let addrMode = BaseImmOffset; 9615 let accessSize = WordAccess; 9616 let mayLoad = 1; 9617 let CextOpcode = "L2_loadri"; 9618 let BaseOpcode = "L2_loadri_io"; 9619 let isPredicable = 1; 9620 let isExtendable = 1; 9621 let opExtendable = 2; 9622 let isExtentSigned = 1; 9623 let opExtentBits = 13; 9624 let opExtentAlign = 2; 9625 } 9626 def L2_loadri_pbr : HInst< 9627 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9628 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9629 "$Rd32 = memw($Rx32++$Mu2:brev)", 9630 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9631 let Inst{12-5} = 0b00000000; 9632 let Inst{31-21} = 0b10011111100; 9633 let hasNewValue = 1; 9634 let opNewValue = 0; 9635 let accessSize = WordAccess; 9636 let mayLoad = 1; 9637 let Constraints = "$Rx32 = $Rx32in"; 9638 } 9639 def L2_loadri_pci : HInst< 9640 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9641 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9642 "$Rd32 = memw($Rx32++#$Ii:circ($Mu2))", 9643 tc_4403ca65, TypeLD>, Enc_27fd0e { 9644 let Inst{12-9} = 0b0000; 9645 let Inst{31-21} = 0b10011001100; 9646 let hasNewValue = 1; 9647 let opNewValue = 0; 9648 let addrMode = PostInc; 9649 let accessSize = WordAccess; 9650 let mayLoad = 1; 9651 let Uses = [CS]; 9652 let Constraints = "$Rx32 = $Rx32in"; 9653 } 9654 def L2_loadri_pcr : HInst< 9655 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9656 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9657 "$Rd32 = memw($Rx32++I:circ($Mu2))", 9658 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9659 let Inst{12-5} = 0b00010000; 9660 let Inst{31-21} = 0b10011001100; 9661 let hasNewValue = 1; 9662 let opNewValue = 0; 9663 let addrMode = PostInc; 9664 let accessSize = WordAccess; 9665 let mayLoad = 1; 9666 let Uses = [CS]; 9667 let Constraints = "$Rx32 = $Rx32in"; 9668 } 9669 def L2_loadri_pi : HInst< 9670 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9671 (ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9672 "$Rd32 = memw($Rx32++#$Ii)", 9673 tc_2fc0c436, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm { 9674 let Inst{13-9} = 0b00000; 9675 let Inst{31-21} = 0b10011011100; 9676 let hasNewValue = 1; 9677 let opNewValue = 0; 9678 let addrMode = PostInc; 9679 let accessSize = WordAccess; 9680 let mayLoad = 1; 9681 let CextOpcode = "L2_loadri"; 9682 let BaseOpcode = "L2_loadri_pi"; 9683 let isPredicable = 1; 9684 let Constraints = "$Rx32 = $Rx32in"; 9685 } 9686 def L2_loadri_pr : HInst< 9687 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9688 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9689 "$Rd32 = memw($Rx32++$Mu2)", 9690 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9691 let Inst{12-5} = 0b00000000; 9692 let Inst{31-21} = 0b10011101100; 9693 let hasNewValue = 1; 9694 let opNewValue = 0; 9695 let addrMode = PostInc; 9696 let accessSize = WordAccess; 9697 let mayLoad = 1; 9698 let Constraints = "$Rx32 = $Rx32in"; 9699 } 9700 def L2_loadri_zomap : HInst< 9701 (outs IntRegs:$Rd32), 9702 (ins IntRegs:$Rs32), 9703 "$Rd32 = memw($Rs32)", 9704 tc_7f881c76, TypeMAPPING> { 9705 let hasNewValue = 1; 9706 let opNewValue = 0; 9707 let isPseudo = 1; 9708 let isCodeGenOnly = 1; 9709 } 9710 def L2_loadrigp : HInst< 9711 (outs IntRegs:$Rd32), 9712 (ins u30_2Imm:$Ii), 9713 "$Rd32 = memw(gp+#$Ii)", 9714 tc_9c98e8af, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 9715 let Inst{24-21} = 0b1100; 9716 let Inst{31-27} = 0b01001; 9717 let hasNewValue = 1; 9718 let opNewValue = 0; 9719 let accessSize = WordAccess; 9720 let mayLoad = 1; 9721 let Uses = [GP]; 9722 let BaseOpcode = "L4_loadri_abs"; 9723 let isPredicable = 1; 9724 let opExtendable = 1; 9725 let isExtentSigned = 0; 9726 let opExtentBits = 18; 9727 let opExtentAlign = 2; 9728 } 9729 def L2_loadrub_io : HInst< 9730 (outs IntRegs:$Rd32), 9731 (ins IntRegs:$Rs32, s32_0Imm:$Ii), 9732 "$Rd32 = memub($Rs32+#$Ii)", 9733 tc_7f881c76, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9734 let Inst{24-21} = 0b1001; 9735 let Inst{31-27} = 0b10010; 9736 let hasNewValue = 1; 9737 let opNewValue = 0; 9738 let addrMode = BaseImmOffset; 9739 let accessSize = ByteAccess; 9740 let mayLoad = 1; 9741 let CextOpcode = "L2_loadrub"; 9742 let BaseOpcode = "L2_loadrub_io"; 9743 let isPredicable = 1; 9744 let isExtendable = 1; 9745 let opExtendable = 2; 9746 let isExtentSigned = 1; 9747 let opExtentBits = 11; 9748 let opExtentAlign = 0; 9749 } 9750 def L2_loadrub_pbr : HInst< 9751 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9752 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9753 "$Rd32 = memub($Rx32++$Mu2:brev)", 9754 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9755 let Inst{12-5} = 0b00000000; 9756 let Inst{31-21} = 0b10011111001; 9757 let hasNewValue = 1; 9758 let opNewValue = 0; 9759 let accessSize = ByteAccess; 9760 let mayLoad = 1; 9761 let Constraints = "$Rx32 = $Rx32in"; 9762 } 9763 def L2_loadrub_pci : HInst< 9764 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9765 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9766 "$Rd32 = memub($Rx32++#$Ii:circ($Mu2))", 9767 tc_4403ca65, TypeLD>, Enc_e0a47a { 9768 let Inst{12-9} = 0b0000; 9769 let Inst{31-21} = 0b10011001001; 9770 let hasNewValue = 1; 9771 let opNewValue = 0; 9772 let addrMode = PostInc; 9773 let accessSize = ByteAccess; 9774 let mayLoad = 1; 9775 let Uses = [CS]; 9776 let Constraints = "$Rx32 = $Rx32in"; 9777 } 9778 def L2_loadrub_pcr : HInst< 9779 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9780 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9781 "$Rd32 = memub($Rx32++I:circ($Mu2))", 9782 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9783 let Inst{12-5} = 0b00010000; 9784 let Inst{31-21} = 0b10011001001; 9785 let hasNewValue = 1; 9786 let opNewValue = 0; 9787 let addrMode = PostInc; 9788 let accessSize = ByteAccess; 9789 let mayLoad = 1; 9790 let Uses = [CS]; 9791 let Constraints = "$Rx32 = $Rx32in"; 9792 } 9793 def L2_loadrub_pi : HInst< 9794 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9795 (ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9796 "$Rd32 = memub($Rx32++#$Ii)", 9797 tc_2fc0c436, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 9798 let Inst{13-9} = 0b00000; 9799 let Inst{31-21} = 0b10011011001; 9800 let hasNewValue = 1; 9801 let opNewValue = 0; 9802 let addrMode = PostInc; 9803 let accessSize = ByteAccess; 9804 let mayLoad = 1; 9805 let CextOpcode = "L2_loadrub"; 9806 let BaseOpcode = "L2_loadrub_pi"; 9807 let isPredicable = 1; 9808 let Constraints = "$Rx32 = $Rx32in"; 9809 } 9810 def L2_loadrub_pr : HInst< 9811 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9812 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9813 "$Rd32 = memub($Rx32++$Mu2)", 9814 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9815 let Inst{12-5} = 0b00000000; 9816 let Inst{31-21} = 0b10011101001; 9817 let hasNewValue = 1; 9818 let opNewValue = 0; 9819 let addrMode = PostInc; 9820 let accessSize = ByteAccess; 9821 let mayLoad = 1; 9822 let Constraints = "$Rx32 = $Rx32in"; 9823 } 9824 def L2_loadrub_zomap : HInst< 9825 (outs IntRegs:$Rd32), 9826 (ins IntRegs:$Rs32), 9827 "$Rd32 = memub($Rs32)", 9828 tc_7f881c76, TypeMAPPING> { 9829 let hasNewValue = 1; 9830 let opNewValue = 0; 9831 let isPseudo = 1; 9832 let isCodeGenOnly = 1; 9833 } 9834 def L2_loadrubgp : HInst< 9835 (outs IntRegs:$Rd32), 9836 (ins u32_0Imm:$Ii), 9837 "$Rd32 = memub(gp+#$Ii)", 9838 tc_9c98e8af, TypeV2LDST>, Enc_25bef0, AddrModeRel { 9839 let Inst{24-21} = 0b1001; 9840 let Inst{31-27} = 0b01001; 9841 let hasNewValue = 1; 9842 let opNewValue = 0; 9843 let accessSize = ByteAccess; 9844 let mayLoad = 1; 9845 let Uses = [GP]; 9846 let BaseOpcode = "L4_loadrub_abs"; 9847 let isPredicable = 1; 9848 let opExtendable = 1; 9849 let isExtentSigned = 0; 9850 let opExtentBits = 16; 9851 let opExtentAlign = 0; 9852 } 9853 def L2_loadruh_io : HInst< 9854 (outs IntRegs:$Rd32), 9855 (ins IntRegs:$Rs32, s31_1Imm:$Ii), 9856 "$Rd32 = memuh($Rs32+#$Ii)", 9857 tc_7f881c76, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 9858 let Inst{24-21} = 0b1011; 9859 let Inst{31-27} = 0b10010; 9860 let hasNewValue = 1; 9861 let opNewValue = 0; 9862 let addrMode = BaseImmOffset; 9863 let accessSize = HalfWordAccess; 9864 let mayLoad = 1; 9865 let CextOpcode = "L2_loadruh"; 9866 let BaseOpcode = "L2_loadruh_io"; 9867 let isPredicable = 1; 9868 let isExtendable = 1; 9869 let opExtendable = 2; 9870 let isExtentSigned = 1; 9871 let opExtentBits = 12; 9872 let opExtentAlign = 1; 9873 } 9874 def L2_loadruh_pbr : HInst< 9875 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9876 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9877 "$Rd32 = memuh($Rx32++$Mu2:brev)", 9878 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9879 let Inst{12-5} = 0b00000000; 9880 let Inst{31-21} = 0b10011111011; 9881 let hasNewValue = 1; 9882 let opNewValue = 0; 9883 let accessSize = HalfWordAccess; 9884 let mayLoad = 1; 9885 let Constraints = "$Rx32 = $Rx32in"; 9886 } 9887 def L2_loadruh_pci : HInst< 9888 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9889 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9890 "$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))", 9891 tc_4403ca65, TypeLD>, Enc_e83554 { 9892 let Inst{12-9} = 0b0000; 9893 let Inst{31-21} = 0b10011001011; 9894 let hasNewValue = 1; 9895 let opNewValue = 0; 9896 let addrMode = PostInc; 9897 let accessSize = HalfWordAccess; 9898 let mayLoad = 1; 9899 let Uses = [CS]; 9900 let Constraints = "$Rx32 = $Rx32in"; 9901 } 9902 def L2_loadruh_pcr : HInst< 9903 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9904 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9905 "$Rd32 = memuh($Rx32++I:circ($Mu2))", 9906 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9907 let Inst{12-5} = 0b00010000; 9908 let Inst{31-21} = 0b10011001011; 9909 let hasNewValue = 1; 9910 let opNewValue = 0; 9911 let addrMode = PostInc; 9912 let accessSize = HalfWordAccess; 9913 let mayLoad = 1; 9914 let Uses = [CS]; 9915 let Constraints = "$Rx32 = $Rx32in"; 9916 } 9917 def L2_loadruh_pi : HInst< 9918 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9919 (ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9920 "$Rd32 = memuh($Rx32++#$Ii)", 9921 tc_2fc0c436, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 9922 let Inst{13-9} = 0b00000; 9923 let Inst{31-21} = 0b10011011011; 9924 let hasNewValue = 1; 9925 let opNewValue = 0; 9926 let addrMode = PostInc; 9927 let accessSize = HalfWordAccess; 9928 let mayLoad = 1; 9929 let CextOpcode = "L2_loadruh"; 9930 let BaseOpcode = "L2_loadruh_pi"; 9931 let isPredicable = 1; 9932 let Constraints = "$Rx32 = $Rx32in"; 9933 } 9934 def L2_loadruh_pr : HInst< 9935 (outs IntRegs:$Rd32, IntRegs:$Rx32), 9936 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 9937 "$Rd32 = memuh($Rx32++$Mu2)", 9938 tc_2fc0c436, TypeLD>, Enc_74d4e5 { 9939 let Inst{12-5} = 0b00000000; 9940 let Inst{31-21} = 0b10011101011; 9941 let hasNewValue = 1; 9942 let opNewValue = 0; 9943 let addrMode = PostInc; 9944 let accessSize = HalfWordAccess; 9945 let mayLoad = 1; 9946 let Constraints = "$Rx32 = $Rx32in"; 9947 } 9948 def L2_loadruh_zomap : HInst< 9949 (outs IntRegs:$Rd32), 9950 (ins IntRegs:$Rs32), 9951 "$Rd32 = memuh($Rs32)", 9952 tc_7f881c76, TypeMAPPING> { 9953 let hasNewValue = 1; 9954 let opNewValue = 0; 9955 let isPseudo = 1; 9956 let isCodeGenOnly = 1; 9957 } 9958 def L2_loadruhgp : HInst< 9959 (outs IntRegs:$Rd32), 9960 (ins u31_1Imm:$Ii), 9961 "$Rd32 = memuh(gp+#$Ii)", 9962 tc_9c98e8af, TypeV2LDST>, Enc_8df4be, AddrModeRel { 9963 let Inst{24-21} = 0b1011; 9964 let Inst{31-27} = 0b01001; 9965 let hasNewValue = 1; 9966 let opNewValue = 0; 9967 let accessSize = HalfWordAccess; 9968 let mayLoad = 1; 9969 let Uses = [GP]; 9970 let BaseOpcode = "L4_loadruh_abs"; 9971 let isPredicable = 1; 9972 let opExtendable = 1; 9973 let isExtentSigned = 0; 9974 let opExtentBits = 17; 9975 let opExtentAlign = 1; 9976 } 9977 def L2_loadw_locked : HInst< 9978 (outs IntRegs:$Rd32), 9979 (ins IntRegs:$Rs32), 9980 "$Rd32 = memw_locked($Rs32)", 9981 tc_6aa5711a, TypeLD>, Enc_5e2823 { 9982 let Inst{13-5} = 0b000000000; 9983 let Inst{31-21} = 0b10010010000; 9984 let hasNewValue = 1; 9985 let opNewValue = 0; 9986 let accessSize = WordAccess; 9987 let mayLoad = 1; 9988 let isSoloAX = 1; 9989 } 9990 def L2_ploadrbf_io : HInst< 9991 (outs IntRegs:$Rd32), 9992 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 9993 "if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)", 9994 tc_ef52ed71, TypeV2LDST>, Enc_a21d47, AddrModeRel { 9995 let Inst{13-13} = 0b0; 9996 let Inst{31-21} = 0b01000101000; 9997 let isPredicated = 1; 9998 let isPredicatedFalse = 1; 9999 let hasNewValue = 1; 10000 let opNewValue = 0; 10001 let addrMode = BaseImmOffset; 10002 let accessSize = ByteAccess; 10003 let mayLoad = 1; 10004 let CextOpcode = "L2_loadrb"; 10005 let BaseOpcode = "L2_loadrb_io"; 10006 let isExtendable = 1; 10007 let opExtendable = 3; 10008 let isExtentSigned = 0; 10009 let opExtentBits = 6; 10010 let opExtentAlign = 0; 10011 } 10012 def L2_ploadrbf_pi : HInst< 10013 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10014 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10015 "if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)", 10016 tc_bad2bcaf, TypeLD>, Enc_f4413a, PredNewRel { 10017 let Inst{13-11} = 0b101; 10018 let Inst{31-21} = 0b10011011000; 10019 let isPredicated = 1; 10020 let isPredicatedFalse = 1; 10021 let hasNewValue = 1; 10022 let opNewValue = 0; 10023 let addrMode = PostInc; 10024 let accessSize = ByteAccess; 10025 let mayLoad = 1; 10026 let BaseOpcode = "L2_loadrb_pi"; 10027 let Constraints = "$Rx32 = $Rx32in"; 10028 } 10029 def L2_ploadrbf_zomap : HInst< 10030 (outs IntRegs:$Rd32), 10031 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10032 "if (!$Pt4) $Rd32 = memb($Rs32)", 10033 tc_ef52ed71, TypeMAPPING> { 10034 let hasNewValue = 1; 10035 let opNewValue = 0; 10036 let isPseudo = 1; 10037 let isCodeGenOnly = 1; 10038 } 10039 def L2_ploadrbfnew_io : HInst< 10040 (outs IntRegs:$Rd32), 10041 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10042 "if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10043 tc_2fc0c436, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10044 let Inst{13-13} = 0b0; 10045 let Inst{31-21} = 0b01000111000; 10046 let isPredicated = 1; 10047 let isPredicatedFalse = 1; 10048 let hasNewValue = 1; 10049 let opNewValue = 0; 10050 let addrMode = BaseImmOffset; 10051 let accessSize = ByteAccess; 10052 let isPredicatedNew = 1; 10053 let mayLoad = 1; 10054 let CextOpcode = "L2_loadrb"; 10055 let BaseOpcode = "L2_loadrb_io"; 10056 let isExtendable = 1; 10057 let opExtendable = 3; 10058 let isExtentSigned = 0; 10059 let opExtentBits = 6; 10060 let opExtentAlign = 0; 10061 } 10062 def L2_ploadrbfnew_pi : HInst< 10063 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10064 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10065 "if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10066 tc_63fe3df7, TypeLD>, Enc_f4413a, PredNewRel { 10067 let Inst{13-11} = 0b111; 10068 let Inst{31-21} = 0b10011011000; 10069 let isPredicated = 1; 10070 let isPredicatedFalse = 1; 10071 let hasNewValue = 1; 10072 let opNewValue = 0; 10073 let addrMode = PostInc; 10074 let accessSize = ByteAccess; 10075 let isPredicatedNew = 1; 10076 let mayLoad = 1; 10077 let BaseOpcode = "L2_loadrb_pi"; 10078 let Constraints = "$Rx32 = $Rx32in"; 10079 } 10080 def L2_ploadrbfnew_zomap : HInst< 10081 (outs IntRegs:$Rd32), 10082 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10083 "if (!$Pt4.new) $Rd32 = memb($Rs32)", 10084 tc_2fc0c436, TypeMAPPING> { 10085 let hasNewValue = 1; 10086 let opNewValue = 0; 10087 let isPseudo = 1; 10088 let isCodeGenOnly = 1; 10089 } 10090 def L2_ploadrbt_io : HInst< 10091 (outs IntRegs:$Rd32), 10092 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10093 "if ($Pt4) $Rd32 = memb($Rs32+#$Ii)", 10094 tc_ef52ed71, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10095 let Inst{13-13} = 0b0; 10096 let Inst{31-21} = 0b01000001000; 10097 let isPredicated = 1; 10098 let hasNewValue = 1; 10099 let opNewValue = 0; 10100 let addrMode = BaseImmOffset; 10101 let accessSize = ByteAccess; 10102 let mayLoad = 1; 10103 let CextOpcode = "L2_loadrb"; 10104 let BaseOpcode = "L2_loadrb_io"; 10105 let isExtendable = 1; 10106 let opExtendable = 3; 10107 let isExtentSigned = 0; 10108 let opExtentBits = 6; 10109 let opExtentAlign = 0; 10110 } 10111 def L2_ploadrbt_pi : HInst< 10112 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10113 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10114 "if ($Pt4) $Rd32 = memb($Rx32++#$Ii)", 10115 tc_bad2bcaf, TypeLD>, Enc_f4413a, PredNewRel { 10116 let Inst{13-11} = 0b100; 10117 let Inst{31-21} = 0b10011011000; 10118 let isPredicated = 1; 10119 let hasNewValue = 1; 10120 let opNewValue = 0; 10121 let addrMode = PostInc; 10122 let accessSize = ByteAccess; 10123 let mayLoad = 1; 10124 let BaseOpcode = "L2_loadrb_pi"; 10125 let Constraints = "$Rx32 = $Rx32in"; 10126 } 10127 def L2_ploadrbt_zomap : HInst< 10128 (outs IntRegs:$Rd32), 10129 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10130 "if ($Pt4) $Rd32 = memb($Rs32)", 10131 tc_ef52ed71, TypeMAPPING> { 10132 let hasNewValue = 1; 10133 let opNewValue = 0; 10134 let isPseudo = 1; 10135 let isCodeGenOnly = 1; 10136 } 10137 def L2_ploadrbtnew_io : HInst< 10138 (outs IntRegs:$Rd32), 10139 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10140 "if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10141 tc_2fc0c436, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10142 let Inst{13-13} = 0b0; 10143 let Inst{31-21} = 0b01000011000; 10144 let isPredicated = 1; 10145 let hasNewValue = 1; 10146 let opNewValue = 0; 10147 let addrMode = BaseImmOffset; 10148 let accessSize = ByteAccess; 10149 let isPredicatedNew = 1; 10150 let mayLoad = 1; 10151 let CextOpcode = "L2_loadrb"; 10152 let BaseOpcode = "L2_loadrb_io"; 10153 let isExtendable = 1; 10154 let opExtendable = 3; 10155 let isExtentSigned = 0; 10156 let opExtentBits = 6; 10157 let opExtentAlign = 0; 10158 } 10159 def L2_ploadrbtnew_pi : HInst< 10160 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10161 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10162 "if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10163 tc_63fe3df7, TypeLD>, Enc_f4413a, PredNewRel { 10164 let Inst{13-11} = 0b110; 10165 let Inst{31-21} = 0b10011011000; 10166 let isPredicated = 1; 10167 let hasNewValue = 1; 10168 let opNewValue = 0; 10169 let addrMode = PostInc; 10170 let accessSize = ByteAccess; 10171 let isPredicatedNew = 1; 10172 let mayLoad = 1; 10173 let BaseOpcode = "L2_loadrb_pi"; 10174 let Constraints = "$Rx32 = $Rx32in"; 10175 } 10176 def L2_ploadrbtnew_zomap : HInst< 10177 (outs IntRegs:$Rd32), 10178 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10179 "if ($Pt4.new) $Rd32 = memb($Rs32)", 10180 tc_2fc0c436, TypeMAPPING> { 10181 let hasNewValue = 1; 10182 let opNewValue = 0; 10183 let isPseudo = 1; 10184 let isCodeGenOnly = 1; 10185 } 10186 def L2_ploadrdf_io : HInst< 10187 (outs DoubleRegs:$Rdd32), 10188 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10189 "if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10190 tc_ef52ed71, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10191 let Inst{13-13} = 0b0; 10192 let Inst{31-21} = 0b01000101110; 10193 let isPredicated = 1; 10194 let isPredicatedFalse = 1; 10195 let addrMode = BaseImmOffset; 10196 let accessSize = DoubleWordAccess; 10197 let mayLoad = 1; 10198 let CextOpcode = "L2_loadrd"; 10199 let BaseOpcode = "L2_loadrd_io"; 10200 let isExtendable = 1; 10201 let opExtendable = 3; 10202 let isExtentSigned = 0; 10203 let opExtentBits = 9; 10204 let opExtentAlign = 3; 10205 } 10206 def L2_ploadrdf_pi : HInst< 10207 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10208 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10209 "if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10210 tc_bad2bcaf, TypeLD>, Enc_9d1247, PredNewRel { 10211 let Inst{13-11} = 0b101; 10212 let Inst{31-21} = 0b10011011110; 10213 let isPredicated = 1; 10214 let isPredicatedFalse = 1; 10215 let addrMode = PostInc; 10216 let accessSize = DoubleWordAccess; 10217 let mayLoad = 1; 10218 let BaseOpcode = "L2_loadrd_pi"; 10219 let Constraints = "$Rx32 = $Rx32in"; 10220 } 10221 def L2_ploadrdf_zomap : HInst< 10222 (outs DoubleRegs:$Rdd32), 10223 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10224 "if (!$Pt4) $Rdd32 = memd($Rs32)", 10225 tc_ef52ed71, TypeMAPPING> { 10226 let isPseudo = 1; 10227 let isCodeGenOnly = 1; 10228 } 10229 def L2_ploadrdfnew_io : HInst< 10230 (outs DoubleRegs:$Rdd32), 10231 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10232 "if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10233 tc_2fc0c436, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10234 let Inst{13-13} = 0b0; 10235 let Inst{31-21} = 0b01000111110; 10236 let isPredicated = 1; 10237 let isPredicatedFalse = 1; 10238 let addrMode = BaseImmOffset; 10239 let accessSize = DoubleWordAccess; 10240 let isPredicatedNew = 1; 10241 let mayLoad = 1; 10242 let CextOpcode = "L2_loadrd"; 10243 let BaseOpcode = "L2_loadrd_io"; 10244 let isExtendable = 1; 10245 let opExtendable = 3; 10246 let isExtentSigned = 0; 10247 let opExtentBits = 9; 10248 let opExtentAlign = 3; 10249 } 10250 def L2_ploadrdfnew_pi : HInst< 10251 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10252 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10253 "if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10254 tc_63fe3df7, TypeLD>, Enc_9d1247, PredNewRel { 10255 let Inst{13-11} = 0b111; 10256 let Inst{31-21} = 0b10011011110; 10257 let isPredicated = 1; 10258 let isPredicatedFalse = 1; 10259 let addrMode = PostInc; 10260 let accessSize = DoubleWordAccess; 10261 let isPredicatedNew = 1; 10262 let mayLoad = 1; 10263 let BaseOpcode = "L2_loadrd_pi"; 10264 let Constraints = "$Rx32 = $Rx32in"; 10265 } 10266 def L2_ploadrdfnew_zomap : HInst< 10267 (outs DoubleRegs:$Rdd32), 10268 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10269 "if (!$Pt4.new) $Rdd32 = memd($Rs32)", 10270 tc_2fc0c436, TypeMAPPING> { 10271 let isPseudo = 1; 10272 let isCodeGenOnly = 1; 10273 } 10274 def L2_ploadrdt_io : HInst< 10275 (outs DoubleRegs:$Rdd32), 10276 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10277 "if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10278 tc_ef52ed71, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10279 let Inst{13-13} = 0b0; 10280 let Inst{31-21} = 0b01000001110; 10281 let isPredicated = 1; 10282 let addrMode = BaseImmOffset; 10283 let accessSize = DoubleWordAccess; 10284 let mayLoad = 1; 10285 let CextOpcode = "L2_loadrd"; 10286 let BaseOpcode = "L2_loadrd_io"; 10287 let isExtendable = 1; 10288 let opExtendable = 3; 10289 let isExtentSigned = 0; 10290 let opExtentBits = 9; 10291 let opExtentAlign = 3; 10292 } 10293 def L2_ploadrdt_pi : HInst< 10294 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10295 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10296 "if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10297 tc_bad2bcaf, TypeLD>, Enc_9d1247, PredNewRel { 10298 let Inst{13-11} = 0b100; 10299 let Inst{31-21} = 0b10011011110; 10300 let isPredicated = 1; 10301 let addrMode = PostInc; 10302 let accessSize = DoubleWordAccess; 10303 let mayLoad = 1; 10304 let BaseOpcode = "L2_loadrd_pi"; 10305 let Constraints = "$Rx32 = $Rx32in"; 10306 } 10307 def L2_ploadrdt_zomap : HInst< 10308 (outs DoubleRegs:$Rdd32), 10309 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10310 "if ($Pt4) $Rdd32 = memd($Rs32)", 10311 tc_ef52ed71, TypeMAPPING> { 10312 let isPseudo = 1; 10313 let isCodeGenOnly = 1; 10314 } 10315 def L2_ploadrdtnew_io : HInst< 10316 (outs DoubleRegs:$Rdd32), 10317 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10318 "if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10319 tc_2fc0c436, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10320 let Inst{13-13} = 0b0; 10321 let Inst{31-21} = 0b01000011110; 10322 let isPredicated = 1; 10323 let addrMode = BaseImmOffset; 10324 let accessSize = DoubleWordAccess; 10325 let isPredicatedNew = 1; 10326 let mayLoad = 1; 10327 let CextOpcode = "L2_loadrd"; 10328 let BaseOpcode = "L2_loadrd_io"; 10329 let isExtendable = 1; 10330 let opExtendable = 3; 10331 let isExtentSigned = 0; 10332 let opExtentBits = 9; 10333 let opExtentAlign = 3; 10334 } 10335 def L2_ploadrdtnew_pi : HInst< 10336 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10337 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10338 "if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10339 tc_63fe3df7, TypeLD>, Enc_9d1247, PredNewRel { 10340 let Inst{13-11} = 0b110; 10341 let Inst{31-21} = 0b10011011110; 10342 let isPredicated = 1; 10343 let addrMode = PostInc; 10344 let accessSize = DoubleWordAccess; 10345 let isPredicatedNew = 1; 10346 let mayLoad = 1; 10347 let BaseOpcode = "L2_loadrd_pi"; 10348 let Constraints = "$Rx32 = $Rx32in"; 10349 } 10350 def L2_ploadrdtnew_zomap : HInst< 10351 (outs DoubleRegs:$Rdd32), 10352 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10353 "if ($Pt4.new) $Rdd32 = memd($Rs32)", 10354 tc_2fc0c436, TypeMAPPING> { 10355 let isPseudo = 1; 10356 let isCodeGenOnly = 1; 10357 } 10358 def L2_ploadrhf_io : HInst< 10359 (outs IntRegs:$Rd32), 10360 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10361 "if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)", 10362 tc_ef52ed71, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10363 let Inst{13-13} = 0b0; 10364 let Inst{31-21} = 0b01000101010; 10365 let isPredicated = 1; 10366 let isPredicatedFalse = 1; 10367 let hasNewValue = 1; 10368 let opNewValue = 0; 10369 let addrMode = BaseImmOffset; 10370 let accessSize = HalfWordAccess; 10371 let mayLoad = 1; 10372 let CextOpcode = "L2_loadrh"; 10373 let BaseOpcode = "L2_loadrh_io"; 10374 let isExtendable = 1; 10375 let opExtendable = 3; 10376 let isExtentSigned = 0; 10377 let opExtentBits = 7; 10378 let opExtentAlign = 1; 10379 } 10380 def L2_ploadrhf_pi : HInst< 10381 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10382 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10383 "if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)", 10384 tc_bad2bcaf, TypeLD>, Enc_733b27, PredNewRel { 10385 let Inst{13-11} = 0b101; 10386 let Inst{31-21} = 0b10011011010; 10387 let isPredicated = 1; 10388 let isPredicatedFalse = 1; 10389 let hasNewValue = 1; 10390 let opNewValue = 0; 10391 let addrMode = PostInc; 10392 let accessSize = HalfWordAccess; 10393 let mayLoad = 1; 10394 let BaseOpcode = "L2_loadrh_pi"; 10395 let Constraints = "$Rx32 = $Rx32in"; 10396 } 10397 def L2_ploadrhf_zomap : HInst< 10398 (outs IntRegs:$Rd32), 10399 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10400 "if (!$Pt4) $Rd32 = memh($Rs32)", 10401 tc_ef52ed71, TypeMAPPING> { 10402 let hasNewValue = 1; 10403 let opNewValue = 0; 10404 let isPseudo = 1; 10405 let isCodeGenOnly = 1; 10406 } 10407 def L2_ploadrhfnew_io : HInst< 10408 (outs IntRegs:$Rd32), 10409 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10410 "if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10411 tc_2fc0c436, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10412 let Inst{13-13} = 0b0; 10413 let Inst{31-21} = 0b01000111010; 10414 let isPredicated = 1; 10415 let isPredicatedFalse = 1; 10416 let hasNewValue = 1; 10417 let opNewValue = 0; 10418 let addrMode = BaseImmOffset; 10419 let accessSize = HalfWordAccess; 10420 let isPredicatedNew = 1; 10421 let mayLoad = 1; 10422 let CextOpcode = "L2_loadrh"; 10423 let BaseOpcode = "L2_loadrh_io"; 10424 let isExtendable = 1; 10425 let opExtendable = 3; 10426 let isExtentSigned = 0; 10427 let opExtentBits = 7; 10428 let opExtentAlign = 1; 10429 } 10430 def L2_ploadrhfnew_pi : HInst< 10431 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10432 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10433 "if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10434 tc_63fe3df7, TypeLD>, Enc_733b27, PredNewRel { 10435 let Inst{13-11} = 0b111; 10436 let Inst{31-21} = 0b10011011010; 10437 let isPredicated = 1; 10438 let isPredicatedFalse = 1; 10439 let hasNewValue = 1; 10440 let opNewValue = 0; 10441 let addrMode = PostInc; 10442 let accessSize = HalfWordAccess; 10443 let isPredicatedNew = 1; 10444 let mayLoad = 1; 10445 let BaseOpcode = "L2_loadrh_pi"; 10446 let Constraints = "$Rx32 = $Rx32in"; 10447 } 10448 def L2_ploadrhfnew_zomap : HInst< 10449 (outs IntRegs:$Rd32), 10450 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10451 "if (!$Pt4.new) $Rd32 = memh($Rs32)", 10452 tc_2fc0c436, TypeMAPPING> { 10453 let hasNewValue = 1; 10454 let opNewValue = 0; 10455 let isPseudo = 1; 10456 let isCodeGenOnly = 1; 10457 } 10458 def L2_ploadrht_io : HInst< 10459 (outs IntRegs:$Rd32), 10460 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10461 "if ($Pt4) $Rd32 = memh($Rs32+#$Ii)", 10462 tc_ef52ed71, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10463 let Inst{13-13} = 0b0; 10464 let Inst{31-21} = 0b01000001010; 10465 let isPredicated = 1; 10466 let hasNewValue = 1; 10467 let opNewValue = 0; 10468 let addrMode = BaseImmOffset; 10469 let accessSize = HalfWordAccess; 10470 let mayLoad = 1; 10471 let CextOpcode = "L2_loadrh"; 10472 let BaseOpcode = "L2_loadrh_io"; 10473 let isExtendable = 1; 10474 let opExtendable = 3; 10475 let isExtentSigned = 0; 10476 let opExtentBits = 7; 10477 let opExtentAlign = 1; 10478 } 10479 def L2_ploadrht_pi : HInst< 10480 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10481 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10482 "if ($Pt4) $Rd32 = memh($Rx32++#$Ii)", 10483 tc_bad2bcaf, TypeLD>, Enc_733b27, PredNewRel { 10484 let Inst{13-11} = 0b100; 10485 let Inst{31-21} = 0b10011011010; 10486 let isPredicated = 1; 10487 let hasNewValue = 1; 10488 let opNewValue = 0; 10489 let addrMode = PostInc; 10490 let accessSize = HalfWordAccess; 10491 let mayLoad = 1; 10492 let BaseOpcode = "L2_loadrh_pi"; 10493 let Constraints = "$Rx32 = $Rx32in"; 10494 } 10495 def L2_ploadrht_zomap : HInst< 10496 (outs IntRegs:$Rd32), 10497 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10498 "if ($Pt4) $Rd32 = memh($Rs32)", 10499 tc_ef52ed71, TypeMAPPING> { 10500 let hasNewValue = 1; 10501 let opNewValue = 0; 10502 let isPseudo = 1; 10503 let isCodeGenOnly = 1; 10504 } 10505 def L2_ploadrhtnew_io : HInst< 10506 (outs IntRegs:$Rd32), 10507 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10508 "if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10509 tc_2fc0c436, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10510 let Inst{13-13} = 0b0; 10511 let Inst{31-21} = 0b01000011010; 10512 let isPredicated = 1; 10513 let hasNewValue = 1; 10514 let opNewValue = 0; 10515 let addrMode = BaseImmOffset; 10516 let accessSize = HalfWordAccess; 10517 let isPredicatedNew = 1; 10518 let mayLoad = 1; 10519 let CextOpcode = "L2_loadrh"; 10520 let BaseOpcode = "L2_loadrh_io"; 10521 let isExtendable = 1; 10522 let opExtendable = 3; 10523 let isExtentSigned = 0; 10524 let opExtentBits = 7; 10525 let opExtentAlign = 1; 10526 } 10527 def L2_ploadrhtnew_pi : HInst< 10528 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10529 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10530 "if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10531 tc_63fe3df7, TypeLD>, Enc_733b27, PredNewRel { 10532 let Inst{13-11} = 0b110; 10533 let Inst{31-21} = 0b10011011010; 10534 let isPredicated = 1; 10535 let hasNewValue = 1; 10536 let opNewValue = 0; 10537 let addrMode = PostInc; 10538 let accessSize = HalfWordAccess; 10539 let isPredicatedNew = 1; 10540 let mayLoad = 1; 10541 let BaseOpcode = "L2_loadrh_pi"; 10542 let Constraints = "$Rx32 = $Rx32in"; 10543 } 10544 def L2_ploadrhtnew_zomap : HInst< 10545 (outs IntRegs:$Rd32), 10546 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10547 "if ($Pt4.new) $Rd32 = memh($Rs32)", 10548 tc_2fc0c436, TypeMAPPING> { 10549 let hasNewValue = 1; 10550 let opNewValue = 0; 10551 let isPseudo = 1; 10552 let isCodeGenOnly = 1; 10553 } 10554 def L2_ploadrif_io : HInst< 10555 (outs IntRegs:$Rd32), 10556 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10557 "if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)", 10558 tc_ef52ed71, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10559 let Inst{13-13} = 0b0; 10560 let Inst{31-21} = 0b01000101100; 10561 let isPredicated = 1; 10562 let isPredicatedFalse = 1; 10563 let hasNewValue = 1; 10564 let opNewValue = 0; 10565 let addrMode = BaseImmOffset; 10566 let accessSize = WordAccess; 10567 let mayLoad = 1; 10568 let CextOpcode = "L2_loadri"; 10569 let BaseOpcode = "L2_loadri_io"; 10570 let isExtendable = 1; 10571 let opExtendable = 3; 10572 let isExtentSigned = 0; 10573 let opExtentBits = 8; 10574 let opExtentAlign = 2; 10575 } 10576 def L2_ploadrif_pi : HInst< 10577 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10578 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10579 "if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)", 10580 tc_bad2bcaf, TypeLD>, Enc_b97f71, PredNewRel { 10581 let Inst{13-11} = 0b101; 10582 let Inst{31-21} = 0b10011011100; 10583 let isPredicated = 1; 10584 let isPredicatedFalse = 1; 10585 let hasNewValue = 1; 10586 let opNewValue = 0; 10587 let addrMode = PostInc; 10588 let accessSize = WordAccess; 10589 let mayLoad = 1; 10590 let BaseOpcode = "L2_loadri_pi"; 10591 let Constraints = "$Rx32 = $Rx32in"; 10592 } 10593 def L2_ploadrif_zomap : HInst< 10594 (outs IntRegs:$Rd32), 10595 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10596 "if (!$Pt4) $Rd32 = memw($Rs32)", 10597 tc_ef52ed71, TypeMAPPING> { 10598 let hasNewValue = 1; 10599 let opNewValue = 0; 10600 let isPseudo = 1; 10601 let isCodeGenOnly = 1; 10602 } 10603 def L2_ploadrifnew_io : HInst< 10604 (outs IntRegs:$Rd32), 10605 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10606 "if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10607 tc_2fc0c436, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10608 let Inst{13-13} = 0b0; 10609 let Inst{31-21} = 0b01000111100; 10610 let isPredicated = 1; 10611 let isPredicatedFalse = 1; 10612 let hasNewValue = 1; 10613 let opNewValue = 0; 10614 let addrMode = BaseImmOffset; 10615 let accessSize = WordAccess; 10616 let isPredicatedNew = 1; 10617 let mayLoad = 1; 10618 let CextOpcode = "L2_loadri"; 10619 let BaseOpcode = "L2_loadri_io"; 10620 let isExtendable = 1; 10621 let opExtendable = 3; 10622 let isExtentSigned = 0; 10623 let opExtentBits = 8; 10624 let opExtentAlign = 2; 10625 } 10626 def L2_ploadrifnew_pi : HInst< 10627 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10628 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10629 "if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10630 tc_63fe3df7, TypeLD>, Enc_b97f71, PredNewRel { 10631 let Inst{13-11} = 0b111; 10632 let Inst{31-21} = 0b10011011100; 10633 let isPredicated = 1; 10634 let isPredicatedFalse = 1; 10635 let hasNewValue = 1; 10636 let opNewValue = 0; 10637 let addrMode = PostInc; 10638 let accessSize = WordAccess; 10639 let isPredicatedNew = 1; 10640 let mayLoad = 1; 10641 let BaseOpcode = "L2_loadri_pi"; 10642 let Constraints = "$Rx32 = $Rx32in"; 10643 } 10644 def L2_ploadrifnew_zomap : HInst< 10645 (outs IntRegs:$Rd32), 10646 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10647 "if (!$Pt4.new) $Rd32 = memw($Rs32)", 10648 tc_2fc0c436, TypeMAPPING> { 10649 let hasNewValue = 1; 10650 let opNewValue = 0; 10651 let isPseudo = 1; 10652 let isCodeGenOnly = 1; 10653 } 10654 def L2_ploadrit_io : HInst< 10655 (outs IntRegs:$Rd32), 10656 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10657 "if ($Pt4) $Rd32 = memw($Rs32+#$Ii)", 10658 tc_ef52ed71, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10659 let Inst{13-13} = 0b0; 10660 let Inst{31-21} = 0b01000001100; 10661 let isPredicated = 1; 10662 let hasNewValue = 1; 10663 let opNewValue = 0; 10664 let addrMode = BaseImmOffset; 10665 let accessSize = WordAccess; 10666 let mayLoad = 1; 10667 let CextOpcode = "L2_loadri"; 10668 let BaseOpcode = "L2_loadri_io"; 10669 let isExtendable = 1; 10670 let opExtendable = 3; 10671 let isExtentSigned = 0; 10672 let opExtentBits = 8; 10673 let opExtentAlign = 2; 10674 } 10675 def L2_ploadrit_pi : HInst< 10676 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10677 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10678 "if ($Pt4) $Rd32 = memw($Rx32++#$Ii)", 10679 tc_bad2bcaf, TypeLD>, Enc_b97f71, PredNewRel { 10680 let Inst{13-11} = 0b100; 10681 let Inst{31-21} = 0b10011011100; 10682 let isPredicated = 1; 10683 let hasNewValue = 1; 10684 let opNewValue = 0; 10685 let addrMode = PostInc; 10686 let accessSize = WordAccess; 10687 let mayLoad = 1; 10688 let BaseOpcode = "L2_loadri_pi"; 10689 let Constraints = "$Rx32 = $Rx32in"; 10690 } 10691 def L2_ploadrit_zomap : HInst< 10692 (outs IntRegs:$Rd32), 10693 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10694 "if ($Pt4) $Rd32 = memw($Rs32)", 10695 tc_ef52ed71, TypeMAPPING> { 10696 let hasNewValue = 1; 10697 let opNewValue = 0; 10698 let isPseudo = 1; 10699 let isCodeGenOnly = 1; 10700 } 10701 def L2_ploadritnew_io : HInst< 10702 (outs IntRegs:$Rd32), 10703 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10704 "if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10705 tc_2fc0c436, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10706 let Inst{13-13} = 0b0; 10707 let Inst{31-21} = 0b01000011100; 10708 let isPredicated = 1; 10709 let hasNewValue = 1; 10710 let opNewValue = 0; 10711 let addrMode = BaseImmOffset; 10712 let accessSize = WordAccess; 10713 let isPredicatedNew = 1; 10714 let mayLoad = 1; 10715 let CextOpcode = "L2_loadri"; 10716 let BaseOpcode = "L2_loadri_io"; 10717 let isExtendable = 1; 10718 let opExtendable = 3; 10719 let isExtentSigned = 0; 10720 let opExtentBits = 8; 10721 let opExtentAlign = 2; 10722 } 10723 def L2_ploadritnew_pi : HInst< 10724 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10725 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10726 "if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10727 tc_63fe3df7, TypeLD>, Enc_b97f71, PredNewRel { 10728 let Inst{13-11} = 0b110; 10729 let Inst{31-21} = 0b10011011100; 10730 let isPredicated = 1; 10731 let hasNewValue = 1; 10732 let opNewValue = 0; 10733 let addrMode = PostInc; 10734 let accessSize = WordAccess; 10735 let isPredicatedNew = 1; 10736 let mayLoad = 1; 10737 let BaseOpcode = "L2_loadri_pi"; 10738 let Constraints = "$Rx32 = $Rx32in"; 10739 } 10740 def L2_ploadritnew_zomap : HInst< 10741 (outs IntRegs:$Rd32), 10742 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10743 "if ($Pt4.new) $Rd32 = memw($Rs32)", 10744 tc_2fc0c436, TypeMAPPING> { 10745 let hasNewValue = 1; 10746 let opNewValue = 0; 10747 let isPseudo = 1; 10748 let isCodeGenOnly = 1; 10749 } 10750 def L2_ploadrubf_io : HInst< 10751 (outs IntRegs:$Rd32), 10752 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10753 "if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)", 10754 tc_ef52ed71, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10755 let Inst{13-13} = 0b0; 10756 let Inst{31-21} = 0b01000101001; 10757 let isPredicated = 1; 10758 let isPredicatedFalse = 1; 10759 let hasNewValue = 1; 10760 let opNewValue = 0; 10761 let addrMode = BaseImmOffset; 10762 let accessSize = ByteAccess; 10763 let mayLoad = 1; 10764 let CextOpcode = "L2_loadrub"; 10765 let BaseOpcode = "L2_loadrub_io"; 10766 let isExtendable = 1; 10767 let opExtendable = 3; 10768 let isExtentSigned = 0; 10769 let opExtentBits = 6; 10770 let opExtentAlign = 0; 10771 } 10772 def L2_ploadrubf_pi : HInst< 10773 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10774 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10775 "if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)", 10776 tc_bad2bcaf, TypeLD>, Enc_f4413a, PredNewRel { 10777 let Inst{13-11} = 0b101; 10778 let Inst{31-21} = 0b10011011001; 10779 let isPredicated = 1; 10780 let isPredicatedFalse = 1; 10781 let hasNewValue = 1; 10782 let opNewValue = 0; 10783 let addrMode = PostInc; 10784 let accessSize = ByteAccess; 10785 let mayLoad = 1; 10786 let BaseOpcode = "L2_loadrub_pi"; 10787 let Constraints = "$Rx32 = $Rx32in"; 10788 } 10789 def L2_ploadrubf_zomap : HInst< 10790 (outs IntRegs:$Rd32), 10791 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10792 "if (!$Pt4) $Rd32 = memub($Rs32)", 10793 tc_ef52ed71, TypeMAPPING> { 10794 let hasNewValue = 1; 10795 let opNewValue = 0; 10796 let isPseudo = 1; 10797 let isCodeGenOnly = 1; 10798 } 10799 def L2_ploadrubfnew_io : HInst< 10800 (outs IntRegs:$Rd32), 10801 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10802 "if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 10803 tc_2fc0c436, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10804 let Inst{13-13} = 0b0; 10805 let Inst{31-21} = 0b01000111001; 10806 let isPredicated = 1; 10807 let isPredicatedFalse = 1; 10808 let hasNewValue = 1; 10809 let opNewValue = 0; 10810 let addrMode = BaseImmOffset; 10811 let accessSize = ByteAccess; 10812 let isPredicatedNew = 1; 10813 let mayLoad = 1; 10814 let CextOpcode = "L2_loadrub"; 10815 let BaseOpcode = "L2_loadrub_io"; 10816 let isExtendable = 1; 10817 let opExtendable = 3; 10818 let isExtentSigned = 0; 10819 let opExtentBits = 6; 10820 let opExtentAlign = 0; 10821 } 10822 def L2_ploadrubfnew_pi : HInst< 10823 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10824 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10825 "if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 10826 tc_63fe3df7, TypeLD>, Enc_f4413a, PredNewRel { 10827 let Inst{13-11} = 0b111; 10828 let Inst{31-21} = 0b10011011001; 10829 let isPredicated = 1; 10830 let isPredicatedFalse = 1; 10831 let hasNewValue = 1; 10832 let opNewValue = 0; 10833 let addrMode = PostInc; 10834 let accessSize = ByteAccess; 10835 let isPredicatedNew = 1; 10836 let mayLoad = 1; 10837 let BaseOpcode = "L2_loadrub_pi"; 10838 let Constraints = "$Rx32 = $Rx32in"; 10839 } 10840 def L2_ploadrubfnew_zomap : HInst< 10841 (outs IntRegs:$Rd32), 10842 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10843 "if (!$Pt4.new) $Rd32 = memub($Rs32)", 10844 tc_2fc0c436, TypeMAPPING> { 10845 let hasNewValue = 1; 10846 let opNewValue = 0; 10847 let isPseudo = 1; 10848 let isCodeGenOnly = 1; 10849 } 10850 def L2_ploadrubt_io : HInst< 10851 (outs IntRegs:$Rd32), 10852 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10853 "if ($Pt4) $Rd32 = memub($Rs32+#$Ii)", 10854 tc_ef52ed71, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10855 let Inst{13-13} = 0b0; 10856 let Inst{31-21} = 0b01000001001; 10857 let isPredicated = 1; 10858 let hasNewValue = 1; 10859 let opNewValue = 0; 10860 let addrMode = BaseImmOffset; 10861 let accessSize = ByteAccess; 10862 let mayLoad = 1; 10863 let CextOpcode = "L2_loadrub"; 10864 let BaseOpcode = "L2_loadrub_io"; 10865 let isExtendable = 1; 10866 let opExtendable = 3; 10867 let isExtentSigned = 0; 10868 let opExtentBits = 6; 10869 let opExtentAlign = 0; 10870 } 10871 def L2_ploadrubt_pi : HInst< 10872 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10873 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10874 "if ($Pt4) $Rd32 = memub($Rx32++#$Ii)", 10875 tc_bad2bcaf, TypeLD>, Enc_f4413a, PredNewRel { 10876 let Inst{13-11} = 0b100; 10877 let Inst{31-21} = 0b10011011001; 10878 let isPredicated = 1; 10879 let hasNewValue = 1; 10880 let opNewValue = 0; 10881 let addrMode = PostInc; 10882 let accessSize = ByteAccess; 10883 let mayLoad = 1; 10884 let BaseOpcode = "L2_loadrub_pi"; 10885 let Constraints = "$Rx32 = $Rx32in"; 10886 } 10887 def L2_ploadrubt_zomap : HInst< 10888 (outs IntRegs:$Rd32), 10889 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10890 "if ($Pt4) $Rd32 = memub($Rs32)", 10891 tc_ef52ed71, TypeMAPPING> { 10892 let hasNewValue = 1; 10893 let opNewValue = 0; 10894 let isPseudo = 1; 10895 let isCodeGenOnly = 1; 10896 } 10897 def L2_ploadrubtnew_io : HInst< 10898 (outs IntRegs:$Rd32), 10899 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10900 "if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 10901 tc_2fc0c436, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10902 let Inst{13-13} = 0b0; 10903 let Inst{31-21} = 0b01000011001; 10904 let isPredicated = 1; 10905 let hasNewValue = 1; 10906 let opNewValue = 0; 10907 let addrMode = BaseImmOffset; 10908 let accessSize = ByteAccess; 10909 let isPredicatedNew = 1; 10910 let mayLoad = 1; 10911 let CextOpcode = "L2_loadrub"; 10912 let BaseOpcode = "L2_loadrub_io"; 10913 let isExtendable = 1; 10914 let opExtendable = 3; 10915 let isExtentSigned = 0; 10916 let opExtentBits = 6; 10917 let opExtentAlign = 0; 10918 } 10919 def L2_ploadrubtnew_pi : HInst< 10920 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10921 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10922 "if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 10923 tc_63fe3df7, TypeLD>, Enc_f4413a, PredNewRel { 10924 let Inst{13-11} = 0b110; 10925 let Inst{31-21} = 0b10011011001; 10926 let isPredicated = 1; 10927 let hasNewValue = 1; 10928 let opNewValue = 0; 10929 let addrMode = PostInc; 10930 let accessSize = ByteAccess; 10931 let isPredicatedNew = 1; 10932 let mayLoad = 1; 10933 let BaseOpcode = "L2_loadrub_pi"; 10934 let Constraints = "$Rx32 = $Rx32in"; 10935 } 10936 def L2_ploadrubtnew_zomap : HInst< 10937 (outs IntRegs:$Rd32), 10938 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10939 "if ($Pt4.new) $Rd32 = memub($Rs32)", 10940 tc_2fc0c436, TypeMAPPING> { 10941 let hasNewValue = 1; 10942 let opNewValue = 0; 10943 let isPseudo = 1; 10944 let isCodeGenOnly = 1; 10945 } 10946 def L2_ploadruhf_io : HInst< 10947 (outs IntRegs:$Rd32), 10948 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10949 "if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)", 10950 tc_ef52ed71, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10951 let Inst{13-13} = 0b0; 10952 let Inst{31-21} = 0b01000101011; 10953 let isPredicated = 1; 10954 let isPredicatedFalse = 1; 10955 let hasNewValue = 1; 10956 let opNewValue = 0; 10957 let addrMode = BaseImmOffset; 10958 let accessSize = HalfWordAccess; 10959 let mayLoad = 1; 10960 let CextOpcode = "L2_loadruh"; 10961 let BaseOpcode = "L2_loadruh_io"; 10962 let isExtendable = 1; 10963 let opExtendable = 3; 10964 let isExtentSigned = 0; 10965 let opExtentBits = 7; 10966 let opExtentAlign = 1; 10967 } 10968 def L2_ploadruhf_pi : HInst< 10969 (outs IntRegs:$Rd32, IntRegs:$Rx32), 10970 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10971 "if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)", 10972 tc_bad2bcaf, TypeLD>, Enc_733b27, PredNewRel { 10973 let Inst{13-11} = 0b101; 10974 let Inst{31-21} = 0b10011011011; 10975 let isPredicated = 1; 10976 let isPredicatedFalse = 1; 10977 let hasNewValue = 1; 10978 let opNewValue = 0; 10979 let addrMode = PostInc; 10980 let accessSize = HalfWordAccess; 10981 let mayLoad = 1; 10982 let BaseOpcode = "L2_loadruh_pi"; 10983 let Constraints = "$Rx32 = $Rx32in"; 10984 } 10985 def L2_ploadruhf_zomap : HInst< 10986 (outs IntRegs:$Rd32), 10987 (ins PredRegs:$Pt4, IntRegs:$Rs32), 10988 "if (!$Pt4) $Rd32 = memuh($Rs32)", 10989 tc_ef52ed71, TypeMAPPING> { 10990 let hasNewValue = 1; 10991 let opNewValue = 0; 10992 let isPseudo = 1; 10993 let isCodeGenOnly = 1; 10994 } 10995 def L2_ploadruhfnew_io : HInst< 10996 (outs IntRegs:$Rd32), 10997 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10998 "if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 10999 tc_2fc0c436, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11000 let Inst{13-13} = 0b0; 11001 let Inst{31-21} = 0b01000111011; 11002 let isPredicated = 1; 11003 let isPredicatedFalse = 1; 11004 let hasNewValue = 1; 11005 let opNewValue = 0; 11006 let addrMode = BaseImmOffset; 11007 let accessSize = HalfWordAccess; 11008 let isPredicatedNew = 1; 11009 let mayLoad = 1; 11010 let CextOpcode = "L2_loadruh"; 11011 let BaseOpcode = "L2_loadruh_io"; 11012 let isExtendable = 1; 11013 let opExtendable = 3; 11014 let isExtentSigned = 0; 11015 let opExtentBits = 7; 11016 let opExtentAlign = 1; 11017 } 11018 def L2_ploadruhfnew_pi : HInst< 11019 (outs IntRegs:$Rd32, IntRegs:$Rx32), 11020 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11021 "if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11022 tc_63fe3df7, TypeLD>, Enc_733b27, PredNewRel { 11023 let Inst{13-11} = 0b111; 11024 let Inst{31-21} = 0b10011011011; 11025 let isPredicated = 1; 11026 let isPredicatedFalse = 1; 11027 let hasNewValue = 1; 11028 let opNewValue = 0; 11029 let addrMode = PostInc; 11030 let accessSize = HalfWordAccess; 11031 let isPredicatedNew = 1; 11032 let mayLoad = 1; 11033 let BaseOpcode = "L2_loadruh_pi"; 11034 let Constraints = "$Rx32 = $Rx32in"; 11035 } 11036 def L2_ploadruhfnew_zomap : HInst< 11037 (outs IntRegs:$Rd32), 11038 (ins PredRegs:$Pt4, IntRegs:$Rs32), 11039 "if (!$Pt4.new) $Rd32 = memuh($Rs32)", 11040 tc_2fc0c436, TypeMAPPING> { 11041 let hasNewValue = 1; 11042 let opNewValue = 0; 11043 let isPseudo = 1; 11044 let isCodeGenOnly = 1; 11045 } 11046 def L2_ploadruht_io : HInst< 11047 (outs IntRegs:$Rd32), 11048 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11049 "if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11050 tc_ef52ed71, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11051 let Inst{13-13} = 0b0; 11052 let Inst{31-21} = 0b01000001011; 11053 let isPredicated = 1; 11054 let hasNewValue = 1; 11055 let opNewValue = 0; 11056 let addrMode = BaseImmOffset; 11057 let accessSize = HalfWordAccess; 11058 let mayLoad = 1; 11059 let CextOpcode = "L2_loadruh"; 11060 let BaseOpcode = "L2_loadruh_io"; 11061 let isExtendable = 1; 11062 let opExtendable = 3; 11063 let isExtentSigned = 0; 11064 let opExtentBits = 7; 11065 let opExtentAlign = 1; 11066 } 11067 def L2_ploadruht_pi : HInst< 11068 (outs IntRegs:$Rd32, IntRegs:$Rx32), 11069 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11070 "if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11071 tc_bad2bcaf, TypeLD>, Enc_733b27, PredNewRel { 11072 let Inst{13-11} = 0b100; 11073 let Inst{31-21} = 0b10011011011; 11074 let isPredicated = 1; 11075 let hasNewValue = 1; 11076 let opNewValue = 0; 11077 let addrMode = PostInc; 11078 let accessSize = HalfWordAccess; 11079 let mayLoad = 1; 11080 let BaseOpcode = "L2_loadruh_pi"; 11081 let Constraints = "$Rx32 = $Rx32in"; 11082 } 11083 def L2_ploadruht_zomap : HInst< 11084 (outs IntRegs:$Rd32), 11085 (ins PredRegs:$Pt4, IntRegs:$Rs32), 11086 "if ($Pt4) $Rd32 = memuh($Rs32)", 11087 tc_ef52ed71, TypeMAPPING> { 11088 let hasNewValue = 1; 11089 let opNewValue = 0; 11090 let isPseudo = 1; 11091 let isCodeGenOnly = 1; 11092 } 11093 def L2_ploadruhtnew_io : HInst< 11094 (outs IntRegs:$Rd32), 11095 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11096 "if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11097 tc_2fc0c436, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11098 let Inst{13-13} = 0b0; 11099 let Inst{31-21} = 0b01000011011; 11100 let isPredicated = 1; 11101 let hasNewValue = 1; 11102 let opNewValue = 0; 11103 let addrMode = BaseImmOffset; 11104 let accessSize = HalfWordAccess; 11105 let isPredicatedNew = 1; 11106 let mayLoad = 1; 11107 let CextOpcode = "L2_loadruh"; 11108 let BaseOpcode = "L2_loadruh_io"; 11109 let isExtendable = 1; 11110 let opExtendable = 3; 11111 let isExtentSigned = 0; 11112 let opExtentBits = 7; 11113 let opExtentAlign = 1; 11114 } 11115 def L2_ploadruhtnew_pi : HInst< 11116 (outs IntRegs:$Rd32, IntRegs:$Rx32), 11117 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11118 "if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11119 tc_63fe3df7, TypeLD>, Enc_733b27, PredNewRel { 11120 let Inst{13-11} = 0b110; 11121 let Inst{31-21} = 0b10011011011; 11122 let isPredicated = 1; 11123 let hasNewValue = 1; 11124 let opNewValue = 0; 11125 let addrMode = PostInc; 11126 let accessSize = HalfWordAccess; 11127 let isPredicatedNew = 1; 11128 let mayLoad = 1; 11129 let BaseOpcode = "L2_loadruh_pi"; 11130 let Constraints = "$Rx32 = $Rx32in"; 11131 } 11132 def L2_ploadruhtnew_zomap : HInst< 11133 (outs IntRegs:$Rd32), 11134 (ins PredRegs:$Pt4, IntRegs:$Rs32), 11135 "if ($Pt4.new) $Rd32 = memuh($Rs32)", 11136 tc_2fc0c436, TypeMAPPING> { 11137 let hasNewValue = 1; 11138 let opNewValue = 0; 11139 let isPseudo = 1; 11140 let isCodeGenOnly = 1; 11141 } 11142 def L4_add_memopb_io : HInst< 11143 (outs), 11144 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11145 "memb($Rs32+#$Ii) += $Rt32", 11146 tc_44126683, TypeV4LDST>, Enc_d44e31 { 11147 let Inst{6-5} = 0b00; 11148 let Inst{13-13} = 0b0; 11149 let Inst{31-21} = 0b00111110000; 11150 let addrMode = BaseImmOffset; 11151 let accessSize = ByteAccess; 11152 let mayLoad = 1; 11153 let isRestrictNoSlot1Store = 1; 11154 let mayStore = 1; 11155 let isExtendable = 1; 11156 let opExtendable = 1; 11157 let isExtentSigned = 0; 11158 let opExtentBits = 6; 11159 let opExtentAlign = 0; 11160 } 11161 def L4_add_memopb_zomap : HInst< 11162 (outs), 11163 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11164 "memb($Rs32) += $Rt32", 11165 tc_44126683, TypeMAPPING> { 11166 let isPseudo = 1; 11167 let isCodeGenOnly = 1; 11168 } 11169 def L4_add_memoph_io : HInst< 11170 (outs), 11171 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11172 "memh($Rs32+#$Ii) += $Rt32", 11173 tc_44126683, TypeV4LDST>, Enc_163a3c { 11174 let Inst{6-5} = 0b00; 11175 let Inst{13-13} = 0b0; 11176 let Inst{31-21} = 0b00111110001; 11177 let addrMode = BaseImmOffset; 11178 let accessSize = HalfWordAccess; 11179 let mayLoad = 1; 11180 let isRestrictNoSlot1Store = 1; 11181 let mayStore = 1; 11182 let isExtendable = 1; 11183 let opExtendable = 1; 11184 let isExtentSigned = 0; 11185 let opExtentBits = 7; 11186 let opExtentAlign = 1; 11187 } 11188 def L4_add_memoph_zomap : HInst< 11189 (outs), 11190 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11191 "memh($Rs32) += $Rt32", 11192 tc_44126683, TypeMAPPING> { 11193 let isPseudo = 1; 11194 let isCodeGenOnly = 1; 11195 } 11196 def L4_add_memopw_io : HInst< 11197 (outs), 11198 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11199 "memw($Rs32+#$Ii) += $Rt32", 11200 tc_44126683, TypeV4LDST>, Enc_226535 { 11201 let Inst{6-5} = 0b00; 11202 let Inst{13-13} = 0b0; 11203 let Inst{31-21} = 0b00111110010; 11204 let addrMode = BaseImmOffset; 11205 let accessSize = WordAccess; 11206 let mayLoad = 1; 11207 let isRestrictNoSlot1Store = 1; 11208 let mayStore = 1; 11209 let isExtendable = 1; 11210 let opExtendable = 1; 11211 let isExtentSigned = 0; 11212 let opExtentBits = 8; 11213 let opExtentAlign = 2; 11214 } 11215 def L4_add_memopw_zomap : HInst< 11216 (outs), 11217 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11218 "memw($Rs32) += $Rt32", 11219 tc_44126683, TypeMAPPING> { 11220 let isPseudo = 1; 11221 let isCodeGenOnly = 1; 11222 } 11223 def L4_and_memopb_io : HInst< 11224 (outs), 11225 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11226 "memb($Rs32+#$Ii) &= $Rt32", 11227 tc_44126683, TypeV4LDST>, Enc_d44e31 { 11228 let Inst{6-5} = 0b10; 11229 let Inst{13-13} = 0b0; 11230 let Inst{31-21} = 0b00111110000; 11231 let addrMode = BaseImmOffset; 11232 let accessSize = ByteAccess; 11233 let mayLoad = 1; 11234 let isRestrictNoSlot1Store = 1; 11235 let mayStore = 1; 11236 let isExtendable = 1; 11237 let opExtendable = 1; 11238 let isExtentSigned = 0; 11239 let opExtentBits = 6; 11240 let opExtentAlign = 0; 11241 } 11242 def L4_and_memopb_zomap : HInst< 11243 (outs), 11244 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11245 "memb($Rs32) &= $Rt32", 11246 tc_44126683, TypeMAPPING> { 11247 let isPseudo = 1; 11248 let isCodeGenOnly = 1; 11249 } 11250 def L4_and_memoph_io : HInst< 11251 (outs), 11252 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11253 "memh($Rs32+#$Ii) &= $Rt32", 11254 tc_44126683, TypeV4LDST>, Enc_163a3c { 11255 let Inst{6-5} = 0b10; 11256 let Inst{13-13} = 0b0; 11257 let Inst{31-21} = 0b00111110001; 11258 let addrMode = BaseImmOffset; 11259 let accessSize = HalfWordAccess; 11260 let mayLoad = 1; 11261 let isRestrictNoSlot1Store = 1; 11262 let mayStore = 1; 11263 let isExtendable = 1; 11264 let opExtendable = 1; 11265 let isExtentSigned = 0; 11266 let opExtentBits = 7; 11267 let opExtentAlign = 1; 11268 } 11269 def L4_and_memoph_zomap : HInst< 11270 (outs), 11271 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11272 "memh($Rs32) &= $Rt32", 11273 tc_44126683, TypeMAPPING> { 11274 let isPseudo = 1; 11275 let isCodeGenOnly = 1; 11276 } 11277 def L4_and_memopw_io : HInst< 11278 (outs), 11279 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11280 "memw($Rs32+#$Ii) &= $Rt32", 11281 tc_44126683, TypeV4LDST>, Enc_226535 { 11282 let Inst{6-5} = 0b10; 11283 let Inst{13-13} = 0b0; 11284 let Inst{31-21} = 0b00111110010; 11285 let addrMode = BaseImmOffset; 11286 let accessSize = WordAccess; 11287 let mayLoad = 1; 11288 let isRestrictNoSlot1Store = 1; 11289 let mayStore = 1; 11290 let isExtendable = 1; 11291 let opExtendable = 1; 11292 let isExtentSigned = 0; 11293 let opExtentBits = 8; 11294 let opExtentAlign = 2; 11295 } 11296 def L4_and_memopw_zomap : HInst< 11297 (outs), 11298 (ins IntRegs:$Rs32, IntRegs:$Rt32), 11299 "memw($Rs32) &= $Rt32", 11300 tc_44126683, TypeMAPPING> { 11301 let isPseudo = 1; 11302 let isCodeGenOnly = 1; 11303 } 11304 def L4_iadd_memopb_io : HInst< 11305 (outs), 11306 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11307 "memb($Rs32+#$Ii) += #$II", 11308 tc_44126683, TypeV4LDST>, Enc_46c951 { 11309 let Inst{6-5} = 0b00; 11310 let Inst{13-13} = 0b0; 11311 let Inst{31-21} = 0b00111111000; 11312 let addrMode = BaseImmOffset; 11313 let accessSize = ByteAccess; 11314 let mayLoad = 1; 11315 let isRestrictNoSlot1Store = 1; 11316 let mayStore = 1; 11317 let isExtendable = 1; 11318 let opExtendable = 1; 11319 let isExtentSigned = 0; 11320 let opExtentBits = 6; 11321 let opExtentAlign = 0; 11322 } 11323 def L4_iadd_memopb_zomap : HInst< 11324 (outs), 11325 (ins IntRegs:$Rs32, u5_0Imm:$II), 11326 "memb($Rs32) += #$II", 11327 tc_44126683, TypeMAPPING> { 11328 let isPseudo = 1; 11329 let isCodeGenOnly = 1; 11330 } 11331 def L4_iadd_memoph_io : HInst< 11332 (outs), 11333 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11334 "memh($Rs32+#$Ii) += #$II", 11335 tc_44126683, TypeV4LDST>, Enc_e66a97 { 11336 let Inst{6-5} = 0b00; 11337 let Inst{13-13} = 0b0; 11338 let Inst{31-21} = 0b00111111001; 11339 let addrMode = BaseImmOffset; 11340 let accessSize = HalfWordAccess; 11341 let mayLoad = 1; 11342 let isRestrictNoSlot1Store = 1; 11343 let mayStore = 1; 11344 let isExtendable = 1; 11345 let opExtendable = 1; 11346 let isExtentSigned = 0; 11347 let opExtentBits = 7; 11348 let opExtentAlign = 1; 11349 } 11350 def L4_iadd_memoph_zomap : HInst< 11351 (outs), 11352 (ins IntRegs:$Rs32, u5_0Imm:$II), 11353 "memh($Rs32) += #$II", 11354 tc_44126683, TypeMAPPING> { 11355 let isPseudo = 1; 11356 let isCodeGenOnly = 1; 11357 } 11358 def L4_iadd_memopw_io : HInst< 11359 (outs), 11360 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11361 "memw($Rs32+#$Ii) += #$II", 11362 tc_44126683, TypeV4LDST>, Enc_84b2cd { 11363 let Inst{6-5} = 0b00; 11364 let Inst{13-13} = 0b0; 11365 let Inst{31-21} = 0b00111111010; 11366 let addrMode = BaseImmOffset; 11367 let accessSize = WordAccess; 11368 let mayLoad = 1; 11369 let isRestrictNoSlot1Store = 1; 11370 let mayStore = 1; 11371 let isExtendable = 1; 11372 let opExtendable = 1; 11373 let isExtentSigned = 0; 11374 let opExtentBits = 8; 11375 let opExtentAlign = 2; 11376 } 11377 def L4_iadd_memopw_zomap : HInst< 11378 (outs), 11379 (ins IntRegs:$Rs32, u5_0Imm:$II), 11380 "memw($Rs32) += #$II", 11381 tc_44126683, TypeMAPPING> { 11382 let isPseudo = 1; 11383 let isCodeGenOnly = 1; 11384 } 11385 def L4_iand_memopb_io : HInst< 11386 (outs), 11387 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11388 "memb($Rs32+#$Ii) = clrbit(#$II)", 11389 tc_44126683, TypeV4LDST>, Enc_46c951 { 11390 let Inst{6-5} = 0b10; 11391 let Inst{13-13} = 0b0; 11392 let Inst{31-21} = 0b00111111000; 11393 let addrMode = BaseImmOffset; 11394 let accessSize = ByteAccess; 11395 let mayLoad = 1; 11396 let isRestrictNoSlot1Store = 1; 11397 let mayStore = 1; 11398 let isExtendable = 1; 11399 let opExtendable = 1; 11400 let isExtentSigned = 0; 11401 let opExtentBits = 6; 11402 let opExtentAlign = 0; 11403 } 11404 def L4_iand_memopb_zomap : HInst< 11405 (outs), 11406 (ins IntRegs:$Rs32, u5_0Imm:$II), 11407 "memb($Rs32) = clrbit(#$II)", 11408 tc_44126683, TypeMAPPING> { 11409 let isPseudo = 1; 11410 let isCodeGenOnly = 1; 11411 } 11412 def L4_iand_memoph_io : HInst< 11413 (outs), 11414 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11415 "memh($Rs32+#$Ii) = clrbit(#$II)", 11416 tc_44126683, TypeV4LDST>, Enc_e66a97 { 11417 let Inst{6-5} = 0b10; 11418 let Inst{13-13} = 0b0; 11419 let Inst{31-21} = 0b00111111001; 11420 let addrMode = BaseImmOffset; 11421 let accessSize = HalfWordAccess; 11422 let mayLoad = 1; 11423 let isRestrictNoSlot1Store = 1; 11424 let mayStore = 1; 11425 let isExtendable = 1; 11426 let opExtendable = 1; 11427 let isExtentSigned = 0; 11428 let opExtentBits = 7; 11429 let opExtentAlign = 1; 11430 } 11431 def L4_iand_memoph_zomap : HInst< 11432 (outs), 11433 (ins IntRegs:$Rs32, u5_0Imm:$II), 11434 "memh($Rs32) = clrbit(#$II)", 11435 tc_44126683, TypeMAPPING> { 11436 let isPseudo = 1; 11437 let isCodeGenOnly = 1; 11438 } 11439 def L4_iand_memopw_io : HInst< 11440 (outs), 11441 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11442 "memw($Rs32+#$Ii) = clrbit(#$II)", 11443 tc_44126683, TypeV4LDST>, Enc_84b2cd { 11444 let Inst{6-5} = 0b10; 11445 let Inst{13-13} = 0b0; 11446 let Inst{31-21} = 0b00111111010; 11447 let addrMode = BaseImmOffset; 11448 let accessSize = WordAccess; 11449 let mayLoad = 1; 11450 let isRestrictNoSlot1Store = 1; 11451 let mayStore = 1; 11452 let isExtendable = 1; 11453 let opExtendable = 1; 11454 let isExtentSigned = 0; 11455 let opExtentBits = 8; 11456 let opExtentAlign = 2; 11457 } 11458 def L4_iand_memopw_zomap : HInst< 11459 (outs), 11460 (ins IntRegs:$Rs32, u5_0Imm:$II), 11461 "memw($Rs32) = clrbit(#$II)", 11462 tc_44126683, TypeMAPPING> { 11463 let isPseudo = 1; 11464 let isCodeGenOnly = 1; 11465 } 11466 def L4_ior_memopb_io : HInst< 11467 (outs), 11468 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11469 "memb($Rs32+#$Ii) = setbit(#$II)", 11470 tc_44126683, TypeV4LDST>, Enc_46c951 { 11471 let Inst{6-5} = 0b11; 11472 let Inst{13-13} = 0b0; 11473 let Inst{31-21} = 0b00111111000; 11474 let addrMode = BaseImmOffset; 11475 let accessSize = ByteAccess; 11476 let mayLoad = 1; 11477 let isRestrictNoSlot1Store = 1; 11478 let mayStore = 1; 11479 let isExtendable = 1; 11480 let opExtendable = 1; 11481 let isExtentSigned = 0; 11482 let opExtentBits = 6; 11483 let opExtentAlign = 0; 11484 } 11485 def L4_ior_memopb_zomap : HInst< 11486 (outs), 11487 (ins IntRegs:$Rs32, u5_0Imm:$II), 11488 "memb($Rs32) = setbit(#$II)", 11489 tc_44126683, TypeMAPPING> { 11490 let isPseudo = 1; 11491 let isCodeGenOnly = 1; 11492 } 11493 def L4_ior_memoph_io : HInst< 11494 (outs), 11495 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11496 "memh($Rs32+#$Ii) = setbit(#$II)", 11497 tc_44126683, TypeV4LDST>, Enc_e66a97 { 11498 let Inst{6-5} = 0b11; 11499 let Inst{13-13} = 0b0; 11500 let Inst{31-21} = 0b00111111001; 11501 let addrMode = BaseImmOffset; 11502 let accessSize = HalfWordAccess; 11503 let mayLoad = 1; 11504 let isRestrictNoSlot1Store = 1; 11505 let mayStore = 1; 11506 let isExtendable = 1; 11507 let opExtendable = 1; 11508 let isExtentSigned = 0; 11509 let opExtentBits = 7; 11510 let opExtentAlign = 1; 11511 } 11512 def L4_ior_memoph_zomap : HInst< 11513 (outs), 11514 (ins IntRegs:$Rs32, u5_0Imm:$II), 11515 "memh($Rs32) = setbit(#$II)", 11516 tc_44126683, TypeMAPPING> { 11517 let isPseudo = 1; 11518 let isCodeGenOnly = 1; 11519 } 11520 def L4_ior_memopw_io : HInst< 11521 (outs), 11522 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11523 "memw($Rs32+#$Ii) = setbit(#$II)", 11524 tc_44126683, TypeV4LDST>, Enc_84b2cd { 11525 let Inst{6-5} = 0b11; 11526 let Inst{13-13} = 0b0; 11527 let Inst{31-21} = 0b00111111010; 11528 let addrMode = BaseImmOffset; 11529 let accessSize = WordAccess; 11530 let mayLoad = 1; 11531 let isRestrictNoSlot1Store = 1; 11532 let mayStore = 1; 11533 let isExtendable = 1; 11534 let opExtendable = 1; 11535 let isExtentSigned = 0; 11536 let opExtentBits = 8; 11537 let opExtentAlign = 2; 11538 } 11539 def L4_ior_memopw_zomap : HInst< 11540 (outs), 11541 (ins IntRegs:$Rs32, u5_0Imm:$II), 11542 "memw($Rs32) = setbit(#$II)", 11543 tc_44126683, TypeMAPPING> { 11544 let isPseudo = 1; 11545 let isCodeGenOnly = 1; 11546 } 11547 def L4_isub_memopb_io : HInst< 11548 (outs), 11549 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11550 "memb($Rs32+#$Ii) -= #$II", 11551 tc_44126683, TypeV4LDST>, Enc_46c951 { 11552 let Inst{6-5} = 0b01; 11553 let Inst{13-13} = 0b0; 11554 let Inst{31-21} = 0b00111111000; 11555 let addrMode = BaseImmOffset; 11556 let accessSize = ByteAccess; 11557 let mayLoad = 1; 11558 let isRestrictNoSlot1Store = 1; 11559 let mayStore = 1; 11560 let isExtendable = 1; 11561 let opExtendable = 1; 11562 let isExtentSigned = 0; 11563 let opExtentBits = 6; 11564 let opExtentAlign = 0; 11565 } 11566 def L4_isub_memopb_zomap : HInst< 11567 (outs), 11568 (ins IntRegs:$Rs32, u5_0Imm:$II), 11569 "memb($Rs32) -= #$II", 11570 tc_44126683, TypeMAPPING> { 11571 let isPseudo = 1; 11572 let isCodeGenOnly = 1; 11573 } 11574 def L4_isub_memoph_io : HInst< 11575 (outs), 11576 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11577 "memh($Rs32+#$Ii) -= #$II", 11578 tc_44126683, TypeV4LDST>, Enc_e66a97 { 11579 let Inst{6-5} = 0b01; 11580 let Inst{13-13} = 0b0; 11581 let Inst{31-21} = 0b00111111001; 11582 let addrMode = BaseImmOffset; 11583 let accessSize = HalfWordAccess; 11584 let mayLoad = 1; 11585 let isRestrictNoSlot1Store = 1; 11586 let mayStore = 1; 11587 let isExtendable = 1; 11588 let opExtendable = 1; 11589 let isExtentSigned = 0; 11590 let opExtentBits = 7; 11591 let opExtentAlign = 1; 11592 } 11593 def L4_isub_memoph_zomap : HInst< 11594 (outs), 11595 (ins IntRegs:$Rs32, u5_0Imm:$II), 11596 "memh($Rs32) -= #$II", 11597 tc_44126683, TypeMAPPING> { 11598 let isPseudo = 1; 11599 let isCodeGenOnly = 1; 11600 } 11601 def L4_isub_memopw_io : HInst< 11602 (outs), 11603 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11604 "memw($Rs32+#$Ii) -= #$II", 11605 tc_44126683, TypeV4LDST>, Enc_84b2cd { 11606 let Inst{6-5} = 0b01; 11607 let Inst{13-13} = 0b0; 11608 let Inst{31-21} = 0b00111111010; 11609 let addrMode = BaseImmOffset; 11610 let accessSize = WordAccess; 11611 let mayLoad = 1; 11612 let isRestrictNoSlot1Store = 1; 11613 let mayStore = 1; 11614 let isExtendable = 1; 11615 let opExtendable = 1; 11616 let isExtentSigned = 0; 11617 let opExtentBits = 8; 11618 let opExtentAlign = 2; 11619 } 11620 def L4_isub_memopw_zomap : HInst< 11621 (outs), 11622 (ins IntRegs:$Rs32, u5_0Imm:$II), 11623 "memw($Rs32) -= #$II", 11624 tc_44126683, TypeMAPPING> { 11625 let isPseudo = 1; 11626 let isCodeGenOnly = 1; 11627 } 11628 def L4_loadalignb_ap : HInst< 11629 (outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11630 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11631 "$Ryy32 = memb_fifo($Re32=#$II)", 11632 tc_5acef64a, TypeLD>, Enc_f394d3 { 11633 let Inst{7-7} = 0b0; 11634 let Inst{13-12} = 0b01; 11635 let Inst{31-21} = 0b10011010100; 11636 let addrMode = AbsoluteSet; 11637 let accessSize = ByteAccess; 11638 let mayLoad = 1; 11639 let isExtended = 1; 11640 let DecoderNamespace = "MustExtend"; 11641 let isExtendable = 1; 11642 let opExtendable = 3; 11643 let isExtentSigned = 0; 11644 let opExtentBits = 6; 11645 let opExtentAlign = 0; 11646 let Constraints = "$Ryy32 = $Ryy32in"; 11647 } 11648 def L4_loadalignb_ur : HInst< 11649 (outs DoubleRegs:$Ryy32), 11650 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11651 "$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)", 11652 tc_0cd51c76, TypeLD>, Enc_04c959 { 11653 let Inst{12-12} = 0b1; 11654 let Inst{31-21} = 0b10011100100; 11655 let addrMode = BaseLongOffset; 11656 let accessSize = ByteAccess; 11657 let mayLoad = 1; 11658 let isExtended = 1; 11659 let InputType = "imm"; 11660 let DecoderNamespace = "MustExtend"; 11661 let isExtendable = 1; 11662 let opExtendable = 4; 11663 let isExtentSigned = 0; 11664 let opExtentBits = 6; 11665 let opExtentAlign = 0; 11666 let Constraints = "$Ryy32 = $Ryy32in"; 11667 } 11668 def L4_loadalignh_ap : HInst< 11669 (outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11670 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11671 "$Ryy32 = memh_fifo($Re32=#$II)", 11672 tc_5acef64a, TypeLD>, Enc_f394d3 { 11673 let Inst{7-7} = 0b0; 11674 let Inst{13-12} = 0b01; 11675 let Inst{31-21} = 0b10011010010; 11676 let addrMode = AbsoluteSet; 11677 let accessSize = HalfWordAccess; 11678 let mayLoad = 1; 11679 let isExtended = 1; 11680 let DecoderNamespace = "MustExtend"; 11681 let isExtendable = 1; 11682 let opExtendable = 3; 11683 let isExtentSigned = 0; 11684 let opExtentBits = 6; 11685 let opExtentAlign = 0; 11686 let Constraints = "$Ryy32 = $Ryy32in"; 11687 } 11688 def L4_loadalignh_ur : HInst< 11689 (outs DoubleRegs:$Ryy32), 11690 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11691 "$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)", 11692 tc_0cd51c76, TypeLD>, Enc_04c959 { 11693 let Inst{12-12} = 0b1; 11694 let Inst{31-21} = 0b10011100010; 11695 let addrMode = BaseLongOffset; 11696 let accessSize = HalfWordAccess; 11697 let mayLoad = 1; 11698 let isExtended = 1; 11699 let InputType = "imm"; 11700 let DecoderNamespace = "MustExtend"; 11701 let isExtendable = 1; 11702 let opExtendable = 4; 11703 let isExtentSigned = 0; 11704 let opExtentBits = 6; 11705 let opExtentAlign = 0; 11706 let Constraints = "$Ryy32 = $Ryy32in"; 11707 } 11708 def L4_loadbsw2_ap : HInst< 11709 (outs IntRegs:$Rd32, IntRegs:$Re32), 11710 (ins u32_0Imm:$II), 11711 "$Rd32 = membh($Re32=#$II)", 11712 tc_b77c481f, TypeLD>, Enc_323f2d { 11713 let Inst{7-7} = 0b0; 11714 let Inst{13-12} = 0b01; 11715 let Inst{31-21} = 0b10011010001; 11716 let hasNewValue = 1; 11717 let opNewValue = 0; 11718 let addrMode = AbsoluteSet; 11719 let accessSize = HalfWordAccess; 11720 let mayLoad = 1; 11721 let isExtended = 1; 11722 let DecoderNamespace = "MustExtend"; 11723 let isExtendable = 1; 11724 let opExtendable = 2; 11725 let isExtentSigned = 0; 11726 let opExtentBits = 6; 11727 let opExtentAlign = 0; 11728 } 11729 def L4_loadbsw2_ur : HInst< 11730 (outs IntRegs:$Rd32), 11731 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11732 "$Rd32 = membh($Rt32<<#$Ii+#$II)", 11733 tc_cf47a43f, TypeLD>, Enc_4f677b { 11734 let Inst{12-12} = 0b1; 11735 let Inst{31-21} = 0b10011100001; 11736 let hasNewValue = 1; 11737 let opNewValue = 0; 11738 let addrMode = BaseLongOffset; 11739 let accessSize = HalfWordAccess; 11740 let mayLoad = 1; 11741 let isExtended = 1; 11742 let InputType = "imm"; 11743 let DecoderNamespace = "MustExtend"; 11744 let isExtendable = 1; 11745 let opExtendable = 3; 11746 let isExtentSigned = 0; 11747 let opExtentBits = 6; 11748 let opExtentAlign = 0; 11749 } 11750 def L4_loadbsw4_ap : HInst< 11751 (outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11752 (ins u32_0Imm:$II), 11753 "$Rdd32 = membh($Re32=#$II)", 11754 tc_b77c481f, TypeLD>, Enc_7fa7f6 { 11755 let Inst{7-7} = 0b0; 11756 let Inst{13-12} = 0b01; 11757 let Inst{31-21} = 0b10011010111; 11758 let addrMode = AbsoluteSet; 11759 let accessSize = WordAccess; 11760 let mayLoad = 1; 11761 let isExtended = 1; 11762 let DecoderNamespace = "MustExtend"; 11763 let isExtendable = 1; 11764 let opExtendable = 2; 11765 let isExtentSigned = 0; 11766 let opExtentBits = 6; 11767 let opExtentAlign = 0; 11768 } 11769 def L4_loadbsw4_ur : HInst< 11770 (outs DoubleRegs:$Rdd32), 11771 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11772 "$Rdd32 = membh($Rt32<<#$Ii+#$II)", 11773 tc_cf47a43f, TypeLD>, Enc_6185fe { 11774 let Inst{12-12} = 0b1; 11775 let Inst{31-21} = 0b10011100111; 11776 let addrMode = BaseLongOffset; 11777 let accessSize = WordAccess; 11778 let mayLoad = 1; 11779 let isExtended = 1; 11780 let InputType = "imm"; 11781 let DecoderNamespace = "MustExtend"; 11782 let isExtendable = 1; 11783 let opExtendable = 3; 11784 let isExtentSigned = 0; 11785 let opExtentBits = 6; 11786 let opExtentAlign = 0; 11787 } 11788 def L4_loadbzw2_ap : HInst< 11789 (outs IntRegs:$Rd32, IntRegs:$Re32), 11790 (ins u32_0Imm:$II), 11791 "$Rd32 = memubh($Re32=#$II)", 11792 tc_b77c481f, TypeLD>, Enc_323f2d { 11793 let Inst{7-7} = 0b0; 11794 let Inst{13-12} = 0b01; 11795 let Inst{31-21} = 0b10011010011; 11796 let hasNewValue = 1; 11797 let opNewValue = 0; 11798 let addrMode = AbsoluteSet; 11799 let accessSize = HalfWordAccess; 11800 let mayLoad = 1; 11801 let isExtended = 1; 11802 let DecoderNamespace = "MustExtend"; 11803 let isExtendable = 1; 11804 let opExtendable = 2; 11805 let isExtentSigned = 0; 11806 let opExtentBits = 6; 11807 let opExtentAlign = 0; 11808 } 11809 def L4_loadbzw2_ur : HInst< 11810 (outs IntRegs:$Rd32), 11811 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11812 "$Rd32 = memubh($Rt32<<#$Ii+#$II)", 11813 tc_cf47a43f, TypeLD>, Enc_4f677b { 11814 let Inst{12-12} = 0b1; 11815 let Inst{31-21} = 0b10011100011; 11816 let hasNewValue = 1; 11817 let opNewValue = 0; 11818 let addrMode = BaseLongOffset; 11819 let accessSize = HalfWordAccess; 11820 let mayLoad = 1; 11821 let isExtended = 1; 11822 let InputType = "imm"; 11823 let DecoderNamespace = "MustExtend"; 11824 let isExtendable = 1; 11825 let opExtendable = 3; 11826 let isExtentSigned = 0; 11827 let opExtentBits = 6; 11828 let opExtentAlign = 0; 11829 } 11830 def L4_loadbzw4_ap : HInst< 11831 (outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11832 (ins u32_0Imm:$II), 11833 "$Rdd32 = memubh($Re32=#$II)", 11834 tc_b77c481f, TypeLD>, Enc_7fa7f6 { 11835 let Inst{7-7} = 0b0; 11836 let Inst{13-12} = 0b01; 11837 let Inst{31-21} = 0b10011010101; 11838 let addrMode = AbsoluteSet; 11839 let accessSize = WordAccess; 11840 let mayLoad = 1; 11841 let isExtended = 1; 11842 let DecoderNamespace = "MustExtend"; 11843 let isExtendable = 1; 11844 let opExtendable = 2; 11845 let isExtentSigned = 0; 11846 let opExtentBits = 6; 11847 let opExtentAlign = 0; 11848 } 11849 def L4_loadbzw4_ur : HInst< 11850 (outs DoubleRegs:$Rdd32), 11851 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11852 "$Rdd32 = memubh($Rt32<<#$Ii+#$II)", 11853 tc_cf47a43f, TypeLD>, Enc_6185fe { 11854 let Inst{12-12} = 0b1; 11855 let Inst{31-21} = 0b10011100101; 11856 let addrMode = BaseLongOffset; 11857 let accessSize = WordAccess; 11858 let mayLoad = 1; 11859 let isExtended = 1; 11860 let InputType = "imm"; 11861 let DecoderNamespace = "MustExtend"; 11862 let isExtendable = 1; 11863 let opExtendable = 3; 11864 let isExtentSigned = 0; 11865 let opExtentBits = 6; 11866 let opExtentAlign = 0; 11867 } 11868 def L4_loadd_locked : HInst< 11869 (outs DoubleRegs:$Rdd32), 11870 (ins IntRegs:$Rs32), 11871 "$Rdd32 = memd_locked($Rs32)", 11872 tc_6aa5711a, TypeLD>, Enc_3a3d62 { 11873 let Inst{13-5} = 0b010000000; 11874 let Inst{31-21} = 0b10010010000; 11875 let accessSize = DoubleWordAccess; 11876 let mayLoad = 1; 11877 let isSoloAX = 1; 11878 } 11879 def L4_loadrb_ap : HInst< 11880 (outs IntRegs:$Rd32, IntRegs:$Re32), 11881 (ins u32_0Imm:$II), 11882 "$Rd32 = memb($Re32=#$II)", 11883 tc_b77c481f, TypeLD>, Enc_323f2d { 11884 let Inst{7-7} = 0b0; 11885 let Inst{13-12} = 0b01; 11886 let Inst{31-21} = 0b10011011000; 11887 let hasNewValue = 1; 11888 let opNewValue = 0; 11889 let addrMode = AbsoluteSet; 11890 let accessSize = ByteAccess; 11891 let mayLoad = 1; 11892 let isExtended = 1; 11893 let DecoderNamespace = "MustExtend"; 11894 let isExtendable = 1; 11895 let opExtendable = 2; 11896 let isExtentSigned = 0; 11897 let opExtentBits = 6; 11898 let opExtentAlign = 0; 11899 } 11900 def L4_loadrb_rr : HInst< 11901 (outs IntRegs:$Rd32), 11902 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 11903 "$Rd32 = memb($Rs32+$Rt32<<#$Ii)", 11904 tc_f47d212f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 11905 let Inst{6-5} = 0b00; 11906 let Inst{31-21} = 0b00111010000; 11907 let hasNewValue = 1; 11908 let opNewValue = 0; 11909 let addrMode = BaseRegOffset; 11910 let accessSize = ByteAccess; 11911 let mayLoad = 1; 11912 let CextOpcode = "L2_loadrb"; 11913 let InputType = "reg"; 11914 let BaseOpcode = "L4_loadrb_rr"; 11915 let isPredicable = 1; 11916 } 11917 def L4_loadrb_ur : HInst< 11918 (outs IntRegs:$Rd32), 11919 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11920 "$Rd32 = memb($Rt32<<#$Ii+#$II)", 11921 tc_cf47a43f, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 11922 let Inst{12-12} = 0b1; 11923 let Inst{31-21} = 0b10011101000; 11924 let hasNewValue = 1; 11925 let opNewValue = 0; 11926 let addrMode = BaseLongOffset; 11927 let accessSize = ByteAccess; 11928 let mayLoad = 1; 11929 let isExtended = 1; 11930 let CextOpcode = "L2_loadrb"; 11931 let InputType = "imm"; 11932 let DecoderNamespace = "MustExtend"; 11933 let isExtendable = 1; 11934 let opExtendable = 3; 11935 let isExtentSigned = 0; 11936 let opExtentBits = 6; 11937 let opExtentAlign = 0; 11938 } 11939 def L4_loadrd_ap : HInst< 11940 (outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11941 (ins u32_0Imm:$II), 11942 "$Rdd32 = memd($Re32=#$II)", 11943 tc_b77c481f, TypeLD>, Enc_7fa7f6 { 11944 let Inst{7-7} = 0b0; 11945 let Inst{13-12} = 0b01; 11946 let Inst{31-21} = 0b10011011110; 11947 let addrMode = AbsoluteSet; 11948 let accessSize = DoubleWordAccess; 11949 let mayLoad = 1; 11950 let isExtended = 1; 11951 let DecoderNamespace = "MustExtend"; 11952 let isExtendable = 1; 11953 let opExtendable = 2; 11954 let isExtentSigned = 0; 11955 let opExtentBits = 6; 11956 let opExtentAlign = 0; 11957 } 11958 def L4_loadrd_rr : HInst< 11959 (outs DoubleRegs:$Rdd32), 11960 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 11961 "$Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 11962 tc_f47d212f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl { 11963 let Inst{6-5} = 0b00; 11964 let Inst{31-21} = 0b00111010110; 11965 let addrMode = BaseRegOffset; 11966 let accessSize = DoubleWordAccess; 11967 let mayLoad = 1; 11968 let CextOpcode = "L2_loadrd"; 11969 let InputType = "reg"; 11970 let BaseOpcode = "L4_loadrd_rr"; 11971 let isPredicable = 1; 11972 } 11973 def L4_loadrd_ur : HInst< 11974 (outs DoubleRegs:$Rdd32), 11975 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11976 "$Rdd32 = memd($Rt32<<#$Ii+#$II)", 11977 tc_cf47a43f, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl { 11978 let Inst{12-12} = 0b1; 11979 let Inst{31-21} = 0b10011101110; 11980 let addrMode = BaseLongOffset; 11981 let accessSize = DoubleWordAccess; 11982 let mayLoad = 1; 11983 let isExtended = 1; 11984 let CextOpcode = "L2_loadrd"; 11985 let InputType = "imm"; 11986 let DecoderNamespace = "MustExtend"; 11987 let isExtendable = 1; 11988 let opExtendable = 3; 11989 let isExtentSigned = 0; 11990 let opExtentBits = 6; 11991 let opExtentAlign = 0; 11992 } 11993 def L4_loadrh_ap : HInst< 11994 (outs IntRegs:$Rd32, IntRegs:$Re32), 11995 (ins u32_0Imm:$II), 11996 "$Rd32 = memh($Re32=#$II)", 11997 tc_b77c481f, TypeLD>, Enc_323f2d { 11998 let Inst{7-7} = 0b0; 11999 let Inst{13-12} = 0b01; 12000 let Inst{31-21} = 0b10011011010; 12001 let hasNewValue = 1; 12002 let opNewValue = 0; 12003 let addrMode = AbsoluteSet; 12004 let accessSize = HalfWordAccess; 12005 let mayLoad = 1; 12006 let isExtended = 1; 12007 let DecoderNamespace = "MustExtend"; 12008 let isExtendable = 1; 12009 let opExtendable = 2; 12010 let isExtentSigned = 0; 12011 let opExtentBits = 6; 12012 let opExtentAlign = 0; 12013 } 12014 def L4_loadrh_rr : HInst< 12015 (outs IntRegs:$Rd32), 12016 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12017 "$Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12018 tc_f47d212f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12019 let Inst{6-5} = 0b00; 12020 let Inst{31-21} = 0b00111010010; 12021 let hasNewValue = 1; 12022 let opNewValue = 0; 12023 let addrMode = BaseRegOffset; 12024 let accessSize = HalfWordAccess; 12025 let mayLoad = 1; 12026 let CextOpcode = "L2_loadrh"; 12027 let InputType = "reg"; 12028 let BaseOpcode = "L4_loadrh_rr"; 12029 let isPredicable = 1; 12030 } 12031 def L4_loadrh_ur : HInst< 12032 (outs IntRegs:$Rd32), 12033 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12034 "$Rd32 = memh($Rt32<<#$Ii+#$II)", 12035 tc_cf47a43f, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12036 let Inst{12-12} = 0b1; 12037 let Inst{31-21} = 0b10011101010; 12038 let hasNewValue = 1; 12039 let opNewValue = 0; 12040 let addrMode = BaseLongOffset; 12041 let accessSize = HalfWordAccess; 12042 let mayLoad = 1; 12043 let isExtended = 1; 12044 let CextOpcode = "L2_loadrh"; 12045 let InputType = "imm"; 12046 let DecoderNamespace = "MustExtend"; 12047 let isExtendable = 1; 12048 let opExtendable = 3; 12049 let isExtentSigned = 0; 12050 let opExtentBits = 6; 12051 let opExtentAlign = 0; 12052 } 12053 def L4_loadri_ap : HInst< 12054 (outs IntRegs:$Rd32, IntRegs:$Re32), 12055 (ins u32_0Imm:$II), 12056 "$Rd32 = memw($Re32=#$II)", 12057 tc_b77c481f, TypeLD>, Enc_323f2d { 12058 let Inst{7-7} = 0b0; 12059 let Inst{13-12} = 0b01; 12060 let Inst{31-21} = 0b10011011100; 12061 let hasNewValue = 1; 12062 let opNewValue = 0; 12063 let addrMode = AbsoluteSet; 12064 let accessSize = WordAccess; 12065 let mayLoad = 1; 12066 let isExtended = 1; 12067 let DecoderNamespace = "MustExtend"; 12068 let isExtendable = 1; 12069 let opExtendable = 2; 12070 let isExtentSigned = 0; 12071 let opExtentBits = 6; 12072 let opExtentAlign = 0; 12073 } 12074 def L4_loadri_rr : HInst< 12075 (outs IntRegs:$Rd32), 12076 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12077 "$Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12078 tc_f47d212f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12079 let Inst{6-5} = 0b00; 12080 let Inst{31-21} = 0b00111010100; 12081 let hasNewValue = 1; 12082 let opNewValue = 0; 12083 let addrMode = BaseRegOffset; 12084 let accessSize = WordAccess; 12085 let mayLoad = 1; 12086 let CextOpcode = "L2_loadri"; 12087 let InputType = "reg"; 12088 let BaseOpcode = "L4_loadri_rr"; 12089 let isPredicable = 1; 12090 } 12091 def L4_loadri_ur : HInst< 12092 (outs IntRegs:$Rd32), 12093 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12094 "$Rd32 = memw($Rt32<<#$Ii+#$II)", 12095 tc_cf47a43f, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12096 let Inst{12-12} = 0b1; 12097 let Inst{31-21} = 0b10011101100; 12098 let hasNewValue = 1; 12099 let opNewValue = 0; 12100 let addrMode = BaseLongOffset; 12101 let accessSize = WordAccess; 12102 let mayLoad = 1; 12103 let isExtended = 1; 12104 let CextOpcode = "L2_loadri"; 12105 let InputType = "imm"; 12106 let DecoderNamespace = "MustExtend"; 12107 let isExtendable = 1; 12108 let opExtendable = 3; 12109 let isExtentSigned = 0; 12110 let opExtentBits = 6; 12111 let opExtentAlign = 0; 12112 } 12113 def L4_loadrub_ap : HInst< 12114 (outs IntRegs:$Rd32, IntRegs:$Re32), 12115 (ins u32_0Imm:$II), 12116 "$Rd32 = memub($Re32=#$II)", 12117 tc_b77c481f, TypeLD>, Enc_323f2d { 12118 let Inst{7-7} = 0b0; 12119 let Inst{13-12} = 0b01; 12120 let Inst{31-21} = 0b10011011001; 12121 let hasNewValue = 1; 12122 let opNewValue = 0; 12123 let addrMode = AbsoluteSet; 12124 let accessSize = ByteAccess; 12125 let mayLoad = 1; 12126 let isExtended = 1; 12127 let DecoderNamespace = "MustExtend"; 12128 let isExtendable = 1; 12129 let opExtendable = 2; 12130 let isExtentSigned = 0; 12131 let opExtentBits = 6; 12132 let opExtentAlign = 0; 12133 } 12134 def L4_loadrub_rr : HInst< 12135 (outs IntRegs:$Rd32), 12136 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12137 "$Rd32 = memub($Rs32+$Rt32<<#$Ii)", 12138 tc_f47d212f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12139 let Inst{6-5} = 0b00; 12140 let Inst{31-21} = 0b00111010001; 12141 let hasNewValue = 1; 12142 let opNewValue = 0; 12143 let addrMode = BaseRegOffset; 12144 let accessSize = ByteAccess; 12145 let mayLoad = 1; 12146 let CextOpcode = "L2_loadrub"; 12147 let InputType = "reg"; 12148 let BaseOpcode = "L4_loadrub_rr"; 12149 let isPredicable = 1; 12150 } 12151 def L4_loadrub_ur : HInst< 12152 (outs IntRegs:$Rd32), 12153 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12154 "$Rd32 = memub($Rt32<<#$Ii+#$II)", 12155 tc_cf47a43f, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12156 let Inst{12-12} = 0b1; 12157 let Inst{31-21} = 0b10011101001; 12158 let hasNewValue = 1; 12159 let opNewValue = 0; 12160 let addrMode = BaseLongOffset; 12161 let accessSize = ByteAccess; 12162 let mayLoad = 1; 12163 let isExtended = 1; 12164 let CextOpcode = "L2_loadrub"; 12165 let InputType = "imm"; 12166 let DecoderNamespace = "MustExtend"; 12167 let isExtendable = 1; 12168 let opExtendable = 3; 12169 let isExtentSigned = 0; 12170 let opExtentBits = 6; 12171 let opExtentAlign = 0; 12172 } 12173 def L4_loadruh_ap : HInst< 12174 (outs IntRegs:$Rd32, IntRegs:$Re32), 12175 (ins u32_0Imm:$II), 12176 "$Rd32 = memuh($Re32=#$II)", 12177 tc_b77c481f, TypeLD>, Enc_323f2d { 12178 let Inst{7-7} = 0b0; 12179 let Inst{13-12} = 0b01; 12180 let Inst{31-21} = 0b10011011011; 12181 let hasNewValue = 1; 12182 let opNewValue = 0; 12183 let addrMode = AbsoluteSet; 12184 let accessSize = HalfWordAccess; 12185 let mayLoad = 1; 12186 let isExtended = 1; 12187 let DecoderNamespace = "MustExtend"; 12188 let isExtendable = 1; 12189 let opExtendable = 2; 12190 let isExtentSigned = 0; 12191 let opExtentBits = 6; 12192 let opExtentAlign = 0; 12193 } 12194 def L4_loadruh_rr : HInst< 12195 (outs IntRegs:$Rd32), 12196 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12197 "$Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 12198 tc_f47d212f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12199 let Inst{6-5} = 0b00; 12200 let Inst{31-21} = 0b00111010011; 12201 let hasNewValue = 1; 12202 let opNewValue = 0; 12203 let addrMode = BaseRegOffset; 12204 let accessSize = HalfWordAccess; 12205 let mayLoad = 1; 12206 let CextOpcode = "L2_loadruh"; 12207 let InputType = "reg"; 12208 let BaseOpcode = "L4_loadruh_rr"; 12209 let isPredicable = 1; 12210 } 12211 def L4_loadruh_ur : HInst< 12212 (outs IntRegs:$Rd32), 12213 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12214 "$Rd32 = memuh($Rt32<<#$Ii+#$II)", 12215 tc_cf47a43f, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12216 let Inst{12-12} = 0b1; 12217 let Inst{31-21} = 0b10011101011; 12218 let hasNewValue = 1; 12219 let opNewValue = 0; 12220 let addrMode = BaseLongOffset; 12221 let accessSize = HalfWordAccess; 12222 let mayLoad = 1; 12223 let isExtended = 1; 12224 let CextOpcode = "L2_loadruh"; 12225 let InputType = "imm"; 12226 let DecoderNamespace = "MustExtend"; 12227 let isExtendable = 1; 12228 let opExtendable = 3; 12229 let isExtentSigned = 0; 12230 let opExtentBits = 6; 12231 let opExtentAlign = 0; 12232 } 12233 def L4_or_memopb_io : HInst< 12234 (outs), 12235 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 12236 "memb($Rs32+#$Ii) |= $Rt32", 12237 tc_44126683, TypeV4LDST>, Enc_d44e31 { 12238 let Inst{6-5} = 0b11; 12239 let Inst{13-13} = 0b0; 12240 let Inst{31-21} = 0b00111110000; 12241 let addrMode = BaseImmOffset; 12242 let accessSize = ByteAccess; 12243 let mayLoad = 1; 12244 let isRestrictNoSlot1Store = 1; 12245 let mayStore = 1; 12246 let isExtendable = 1; 12247 let opExtendable = 1; 12248 let isExtentSigned = 0; 12249 let opExtentBits = 6; 12250 let opExtentAlign = 0; 12251 } 12252 def L4_or_memopb_zomap : HInst< 12253 (outs), 12254 (ins IntRegs:$Rs32, IntRegs:$Rt32), 12255 "memb($Rs32) |= $Rt32", 12256 tc_44126683, TypeMAPPING> { 12257 let isPseudo = 1; 12258 let isCodeGenOnly = 1; 12259 } 12260 def L4_or_memoph_io : HInst< 12261 (outs), 12262 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 12263 "memh($Rs32+#$Ii) |= $Rt32", 12264 tc_44126683, TypeV4LDST>, Enc_163a3c { 12265 let Inst{6-5} = 0b11; 12266 let Inst{13-13} = 0b0; 12267 let Inst{31-21} = 0b00111110001; 12268 let addrMode = BaseImmOffset; 12269 let accessSize = HalfWordAccess; 12270 let mayLoad = 1; 12271 let isRestrictNoSlot1Store = 1; 12272 let mayStore = 1; 12273 let isExtendable = 1; 12274 let opExtendable = 1; 12275 let isExtentSigned = 0; 12276 let opExtentBits = 7; 12277 let opExtentAlign = 1; 12278 } 12279 def L4_or_memoph_zomap : HInst< 12280 (outs), 12281 (ins IntRegs:$Rs32, IntRegs:$Rt32), 12282 "memh($Rs32) |= $Rt32", 12283 tc_44126683, TypeMAPPING> { 12284 let isPseudo = 1; 12285 let isCodeGenOnly = 1; 12286 } 12287 def L4_or_memopw_io : HInst< 12288 (outs), 12289 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 12290 "memw($Rs32+#$Ii) |= $Rt32", 12291 tc_44126683, TypeV4LDST>, Enc_226535 { 12292 let Inst{6-5} = 0b11; 12293 let Inst{13-13} = 0b0; 12294 let Inst{31-21} = 0b00111110010; 12295 let addrMode = BaseImmOffset; 12296 let accessSize = WordAccess; 12297 let mayLoad = 1; 12298 let isRestrictNoSlot1Store = 1; 12299 let mayStore = 1; 12300 let isExtendable = 1; 12301 let opExtendable = 1; 12302 let isExtentSigned = 0; 12303 let opExtentBits = 8; 12304 let opExtentAlign = 2; 12305 } 12306 def L4_or_memopw_zomap : HInst< 12307 (outs), 12308 (ins IntRegs:$Rs32, IntRegs:$Rt32), 12309 "memw($Rs32) |= $Rt32", 12310 tc_44126683, TypeMAPPING> { 12311 let isPseudo = 1; 12312 let isCodeGenOnly = 1; 12313 } 12314 def L4_ploadrbf_abs : HInst< 12315 (outs IntRegs:$Rd32), 12316 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12317 "if (!$Pt4) $Rd32 = memb(#$Ii)", 12318 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12319 let Inst{7-5} = 0b100; 12320 let Inst{13-11} = 0b101; 12321 let Inst{31-21} = 0b10011111000; 12322 let isPredicated = 1; 12323 let isPredicatedFalse = 1; 12324 let hasNewValue = 1; 12325 let opNewValue = 0; 12326 let addrMode = Absolute; 12327 let accessSize = ByteAccess; 12328 let mayLoad = 1; 12329 let isExtended = 1; 12330 let CextOpcode = "L2_loadrb"; 12331 let BaseOpcode = "L4_loadrb_abs"; 12332 let DecoderNamespace = "MustExtend"; 12333 let isExtendable = 1; 12334 let opExtendable = 2; 12335 let isExtentSigned = 0; 12336 let opExtentBits = 6; 12337 let opExtentAlign = 0; 12338 } 12339 def L4_ploadrbf_rr : HInst< 12340 (outs IntRegs:$Rd32), 12341 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12342 "if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12343 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12344 let Inst{31-21} = 0b00110001000; 12345 let isPredicated = 1; 12346 let isPredicatedFalse = 1; 12347 let hasNewValue = 1; 12348 let opNewValue = 0; 12349 let addrMode = BaseRegOffset; 12350 let accessSize = ByteAccess; 12351 let mayLoad = 1; 12352 let CextOpcode = "L2_loadrb"; 12353 let InputType = "reg"; 12354 let BaseOpcode = "L4_loadrb_rr"; 12355 } 12356 def L4_ploadrbfnew_abs : HInst< 12357 (outs IntRegs:$Rd32), 12358 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12359 "if (!$Pt4.new) $Rd32 = memb(#$Ii)", 12360 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12361 let Inst{7-5} = 0b100; 12362 let Inst{13-11} = 0b111; 12363 let Inst{31-21} = 0b10011111000; 12364 let isPredicated = 1; 12365 let isPredicatedFalse = 1; 12366 let hasNewValue = 1; 12367 let opNewValue = 0; 12368 let addrMode = Absolute; 12369 let accessSize = ByteAccess; 12370 let isPredicatedNew = 1; 12371 let mayLoad = 1; 12372 let isExtended = 1; 12373 let CextOpcode = "L2_loadrb"; 12374 let BaseOpcode = "L4_loadrb_abs"; 12375 let DecoderNamespace = "MustExtend"; 12376 let isExtendable = 1; 12377 let opExtendable = 2; 12378 let isExtentSigned = 0; 12379 let opExtentBits = 6; 12380 let opExtentAlign = 0; 12381 } 12382 def L4_ploadrbfnew_rr : HInst< 12383 (outs IntRegs:$Rd32), 12384 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12385 "if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12386 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12387 let Inst{31-21} = 0b00110011000; 12388 let isPredicated = 1; 12389 let isPredicatedFalse = 1; 12390 let hasNewValue = 1; 12391 let opNewValue = 0; 12392 let addrMode = BaseRegOffset; 12393 let accessSize = ByteAccess; 12394 let isPredicatedNew = 1; 12395 let mayLoad = 1; 12396 let CextOpcode = "L2_loadrb"; 12397 let InputType = "reg"; 12398 let BaseOpcode = "L4_loadrb_rr"; 12399 } 12400 def L4_ploadrbt_abs : HInst< 12401 (outs IntRegs:$Rd32), 12402 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12403 "if ($Pt4) $Rd32 = memb(#$Ii)", 12404 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12405 let Inst{7-5} = 0b100; 12406 let Inst{13-11} = 0b100; 12407 let Inst{31-21} = 0b10011111000; 12408 let isPredicated = 1; 12409 let hasNewValue = 1; 12410 let opNewValue = 0; 12411 let addrMode = Absolute; 12412 let accessSize = ByteAccess; 12413 let mayLoad = 1; 12414 let isExtended = 1; 12415 let CextOpcode = "L2_loadrb"; 12416 let BaseOpcode = "L4_loadrb_abs"; 12417 let DecoderNamespace = "MustExtend"; 12418 let isExtendable = 1; 12419 let opExtendable = 2; 12420 let isExtentSigned = 0; 12421 let opExtentBits = 6; 12422 let opExtentAlign = 0; 12423 } 12424 def L4_ploadrbt_rr : HInst< 12425 (outs IntRegs:$Rd32), 12426 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12427 "if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12428 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12429 let Inst{31-21} = 0b00110000000; 12430 let isPredicated = 1; 12431 let hasNewValue = 1; 12432 let opNewValue = 0; 12433 let addrMode = BaseRegOffset; 12434 let accessSize = ByteAccess; 12435 let mayLoad = 1; 12436 let CextOpcode = "L2_loadrb"; 12437 let InputType = "reg"; 12438 let BaseOpcode = "L4_loadrb_rr"; 12439 } 12440 def L4_ploadrbtnew_abs : HInst< 12441 (outs IntRegs:$Rd32), 12442 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12443 "if ($Pt4.new) $Rd32 = memb(#$Ii)", 12444 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12445 let Inst{7-5} = 0b100; 12446 let Inst{13-11} = 0b110; 12447 let Inst{31-21} = 0b10011111000; 12448 let isPredicated = 1; 12449 let hasNewValue = 1; 12450 let opNewValue = 0; 12451 let addrMode = Absolute; 12452 let accessSize = ByteAccess; 12453 let isPredicatedNew = 1; 12454 let mayLoad = 1; 12455 let isExtended = 1; 12456 let CextOpcode = "L2_loadrb"; 12457 let BaseOpcode = "L4_loadrb_abs"; 12458 let DecoderNamespace = "MustExtend"; 12459 let isExtendable = 1; 12460 let opExtendable = 2; 12461 let isExtentSigned = 0; 12462 let opExtentBits = 6; 12463 let opExtentAlign = 0; 12464 } 12465 def L4_ploadrbtnew_rr : HInst< 12466 (outs IntRegs:$Rd32), 12467 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12468 "if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12469 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12470 let Inst{31-21} = 0b00110010000; 12471 let isPredicated = 1; 12472 let hasNewValue = 1; 12473 let opNewValue = 0; 12474 let addrMode = BaseRegOffset; 12475 let accessSize = ByteAccess; 12476 let isPredicatedNew = 1; 12477 let mayLoad = 1; 12478 let CextOpcode = "L2_loadrb"; 12479 let InputType = "reg"; 12480 let BaseOpcode = "L4_loadrb_rr"; 12481 } 12482 def L4_ploadrdf_abs : HInst< 12483 (outs DoubleRegs:$Rdd32), 12484 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12485 "if (!$Pt4) $Rdd32 = memd(#$Ii)", 12486 tc_1d5a38a8, TypeLD>, Enc_2a7b91, AddrModeRel { 12487 let Inst{7-5} = 0b100; 12488 let Inst{13-11} = 0b101; 12489 let Inst{31-21} = 0b10011111110; 12490 let isPredicated = 1; 12491 let isPredicatedFalse = 1; 12492 let addrMode = Absolute; 12493 let accessSize = DoubleWordAccess; 12494 let mayLoad = 1; 12495 let isExtended = 1; 12496 let CextOpcode = "L2_loadrd"; 12497 let BaseOpcode = "L4_loadrd_abs"; 12498 let DecoderNamespace = "MustExtend"; 12499 let isExtendable = 1; 12500 let opExtendable = 2; 12501 let isExtentSigned = 0; 12502 let opExtentBits = 6; 12503 let opExtentAlign = 0; 12504 } 12505 def L4_ploadrdf_rr : HInst< 12506 (outs DoubleRegs:$Rdd32), 12507 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12508 "if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12509 tc_9ef61e5c, TypeLD>, Enc_98c0b8, AddrModeRel { 12510 let Inst{31-21} = 0b00110001110; 12511 let isPredicated = 1; 12512 let isPredicatedFalse = 1; 12513 let addrMode = BaseRegOffset; 12514 let accessSize = DoubleWordAccess; 12515 let mayLoad = 1; 12516 let CextOpcode = "L2_loadrd"; 12517 let InputType = "reg"; 12518 let BaseOpcode = "L4_loadrd_rr"; 12519 } 12520 def L4_ploadrdfnew_abs : HInst< 12521 (outs DoubleRegs:$Rdd32), 12522 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12523 "if (!$Pt4.new) $Rdd32 = memd(#$Ii)", 12524 tc_b77c481f, TypeLD>, Enc_2a7b91, AddrModeRel { 12525 let Inst{7-5} = 0b100; 12526 let Inst{13-11} = 0b111; 12527 let Inst{31-21} = 0b10011111110; 12528 let isPredicated = 1; 12529 let isPredicatedFalse = 1; 12530 let addrMode = Absolute; 12531 let accessSize = DoubleWordAccess; 12532 let isPredicatedNew = 1; 12533 let mayLoad = 1; 12534 let isExtended = 1; 12535 let CextOpcode = "L2_loadrd"; 12536 let BaseOpcode = "L4_loadrd_abs"; 12537 let DecoderNamespace = "MustExtend"; 12538 let isExtendable = 1; 12539 let opExtendable = 2; 12540 let isExtentSigned = 0; 12541 let opExtentBits = 6; 12542 let opExtentAlign = 0; 12543 } 12544 def L4_ploadrdfnew_rr : HInst< 12545 (outs DoubleRegs:$Rdd32), 12546 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12547 "if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12548 tc_b7dd427e, TypeLD>, Enc_98c0b8, AddrModeRel { 12549 let Inst{31-21} = 0b00110011110; 12550 let isPredicated = 1; 12551 let isPredicatedFalse = 1; 12552 let addrMode = BaseRegOffset; 12553 let accessSize = DoubleWordAccess; 12554 let isPredicatedNew = 1; 12555 let mayLoad = 1; 12556 let CextOpcode = "L2_loadrd"; 12557 let InputType = "reg"; 12558 let BaseOpcode = "L4_loadrd_rr"; 12559 } 12560 def L4_ploadrdt_abs : HInst< 12561 (outs DoubleRegs:$Rdd32), 12562 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12563 "if ($Pt4) $Rdd32 = memd(#$Ii)", 12564 tc_1d5a38a8, TypeLD>, Enc_2a7b91, AddrModeRel { 12565 let Inst{7-5} = 0b100; 12566 let Inst{13-11} = 0b100; 12567 let Inst{31-21} = 0b10011111110; 12568 let isPredicated = 1; 12569 let addrMode = Absolute; 12570 let accessSize = DoubleWordAccess; 12571 let mayLoad = 1; 12572 let isExtended = 1; 12573 let CextOpcode = "L2_loadrd"; 12574 let BaseOpcode = "L4_loadrd_abs"; 12575 let DecoderNamespace = "MustExtend"; 12576 let isExtendable = 1; 12577 let opExtendable = 2; 12578 let isExtentSigned = 0; 12579 let opExtentBits = 6; 12580 let opExtentAlign = 0; 12581 } 12582 def L4_ploadrdt_rr : HInst< 12583 (outs DoubleRegs:$Rdd32), 12584 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12585 "if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12586 tc_9ef61e5c, TypeLD>, Enc_98c0b8, AddrModeRel { 12587 let Inst{31-21} = 0b00110000110; 12588 let isPredicated = 1; 12589 let addrMode = BaseRegOffset; 12590 let accessSize = DoubleWordAccess; 12591 let mayLoad = 1; 12592 let CextOpcode = "L2_loadrd"; 12593 let InputType = "reg"; 12594 let BaseOpcode = "L4_loadrd_rr"; 12595 } 12596 def L4_ploadrdtnew_abs : HInst< 12597 (outs DoubleRegs:$Rdd32), 12598 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12599 "if ($Pt4.new) $Rdd32 = memd(#$Ii)", 12600 tc_b77c481f, TypeLD>, Enc_2a7b91, AddrModeRel { 12601 let Inst{7-5} = 0b100; 12602 let Inst{13-11} = 0b110; 12603 let Inst{31-21} = 0b10011111110; 12604 let isPredicated = 1; 12605 let addrMode = Absolute; 12606 let accessSize = DoubleWordAccess; 12607 let isPredicatedNew = 1; 12608 let mayLoad = 1; 12609 let isExtended = 1; 12610 let CextOpcode = "L2_loadrd"; 12611 let BaseOpcode = "L4_loadrd_abs"; 12612 let DecoderNamespace = "MustExtend"; 12613 let isExtendable = 1; 12614 let opExtendable = 2; 12615 let isExtentSigned = 0; 12616 let opExtentBits = 6; 12617 let opExtentAlign = 0; 12618 } 12619 def L4_ploadrdtnew_rr : HInst< 12620 (outs DoubleRegs:$Rdd32), 12621 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12622 "if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12623 tc_b7dd427e, TypeLD>, Enc_98c0b8, AddrModeRel { 12624 let Inst{31-21} = 0b00110010110; 12625 let isPredicated = 1; 12626 let addrMode = BaseRegOffset; 12627 let accessSize = DoubleWordAccess; 12628 let isPredicatedNew = 1; 12629 let mayLoad = 1; 12630 let CextOpcode = "L2_loadrd"; 12631 let InputType = "reg"; 12632 let BaseOpcode = "L4_loadrd_rr"; 12633 } 12634 def L4_ploadrhf_abs : HInst< 12635 (outs IntRegs:$Rd32), 12636 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12637 "if (!$Pt4) $Rd32 = memh(#$Ii)", 12638 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12639 let Inst{7-5} = 0b100; 12640 let Inst{13-11} = 0b101; 12641 let Inst{31-21} = 0b10011111010; 12642 let isPredicated = 1; 12643 let isPredicatedFalse = 1; 12644 let hasNewValue = 1; 12645 let opNewValue = 0; 12646 let addrMode = Absolute; 12647 let accessSize = HalfWordAccess; 12648 let mayLoad = 1; 12649 let isExtended = 1; 12650 let CextOpcode = "L2_loadrh"; 12651 let BaseOpcode = "L4_loadrh_abs"; 12652 let DecoderNamespace = "MustExtend"; 12653 let isExtendable = 1; 12654 let opExtendable = 2; 12655 let isExtentSigned = 0; 12656 let opExtentBits = 6; 12657 let opExtentAlign = 0; 12658 } 12659 def L4_ploadrhf_rr : HInst< 12660 (outs IntRegs:$Rd32), 12661 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12662 "if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12663 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12664 let Inst{31-21} = 0b00110001010; 12665 let isPredicated = 1; 12666 let isPredicatedFalse = 1; 12667 let hasNewValue = 1; 12668 let opNewValue = 0; 12669 let addrMode = BaseRegOffset; 12670 let accessSize = HalfWordAccess; 12671 let mayLoad = 1; 12672 let CextOpcode = "L2_loadrh"; 12673 let InputType = "reg"; 12674 let BaseOpcode = "L4_loadrh_rr"; 12675 } 12676 def L4_ploadrhfnew_abs : HInst< 12677 (outs IntRegs:$Rd32), 12678 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12679 "if (!$Pt4.new) $Rd32 = memh(#$Ii)", 12680 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12681 let Inst{7-5} = 0b100; 12682 let Inst{13-11} = 0b111; 12683 let Inst{31-21} = 0b10011111010; 12684 let isPredicated = 1; 12685 let isPredicatedFalse = 1; 12686 let hasNewValue = 1; 12687 let opNewValue = 0; 12688 let addrMode = Absolute; 12689 let accessSize = HalfWordAccess; 12690 let isPredicatedNew = 1; 12691 let mayLoad = 1; 12692 let isExtended = 1; 12693 let CextOpcode = "L2_loadrh"; 12694 let BaseOpcode = "L4_loadrh_abs"; 12695 let DecoderNamespace = "MustExtend"; 12696 let isExtendable = 1; 12697 let opExtendable = 2; 12698 let isExtentSigned = 0; 12699 let opExtentBits = 6; 12700 let opExtentAlign = 0; 12701 } 12702 def L4_ploadrhfnew_rr : HInst< 12703 (outs IntRegs:$Rd32), 12704 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12705 "if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12706 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12707 let Inst{31-21} = 0b00110011010; 12708 let isPredicated = 1; 12709 let isPredicatedFalse = 1; 12710 let hasNewValue = 1; 12711 let opNewValue = 0; 12712 let addrMode = BaseRegOffset; 12713 let accessSize = HalfWordAccess; 12714 let isPredicatedNew = 1; 12715 let mayLoad = 1; 12716 let CextOpcode = "L2_loadrh"; 12717 let InputType = "reg"; 12718 let BaseOpcode = "L4_loadrh_rr"; 12719 } 12720 def L4_ploadrht_abs : HInst< 12721 (outs IntRegs:$Rd32), 12722 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12723 "if ($Pt4) $Rd32 = memh(#$Ii)", 12724 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12725 let Inst{7-5} = 0b100; 12726 let Inst{13-11} = 0b100; 12727 let Inst{31-21} = 0b10011111010; 12728 let isPredicated = 1; 12729 let hasNewValue = 1; 12730 let opNewValue = 0; 12731 let addrMode = Absolute; 12732 let accessSize = HalfWordAccess; 12733 let mayLoad = 1; 12734 let isExtended = 1; 12735 let CextOpcode = "L2_loadrh"; 12736 let BaseOpcode = "L4_loadrh_abs"; 12737 let DecoderNamespace = "MustExtend"; 12738 let isExtendable = 1; 12739 let opExtendable = 2; 12740 let isExtentSigned = 0; 12741 let opExtentBits = 6; 12742 let opExtentAlign = 0; 12743 } 12744 def L4_ploadrht_rr : HInst< 12745 (outs IntRegs:$Rd32), 12746 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12747 "if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12748 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12749 let Inst{31-21} = 0b00110000010; 12750 let isPredicated = 1; 12751 let hasNewValue = 1; 12752 let opNewValue = 0; 12753 let addrMode = BaseRegOffset; 12754 let accessSize = HalfWordAccess; 12755 let mayLoad = 1; 12756 let CextOpcode = "L2_loadrh"; 12757 let InputType = "reg"; 12758 let BaseOpcode = "L4_loadrh_rr"; 12759 } 12760 def L4_ploadrhtnew_abs : HInst< 12761 (outs IntRegs:$Rd32), 12762 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12763 "if ($Pt4.new) $Rd32 = memh(#$Ii)", 12764 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12765 let Inst{7-5} = 0b100; 12766 let Inst{13-11} = 0b110; 12767 let Inst{31-21} = 0b10011111010; 12768 let isPredicated = 1; 12769 let hasNewValue = 1; 12770 let opNewValue = 0; 12771 let addrMode = Absolute; 12772 let accessSize = HalfWordAccess; 12773 let isPredicatedNew = 1; 12774 let mayLoad = 1; 12775 let isExtended = 1; 12776 let CextOpcode = "L2_loadrh"; 12777 let BaseOpcode = "L4_loadrh_abs"; 12778 let DecoderNamespace = "MustExtend"; 12779 let isExtendable = 1; 12780 let opExtendable = 2; 12781 let isExtentSigned = 0; 12782 let opExtentBits = 6; 12783 let opExtentAlign = 0; 12784 } 12785 def L4_ploadrhtnew_rr : HInst< 12786 (outs IntRegs:$Rd32), 12787 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12788 "if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12789 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12790 let Inst{31-21} = 0b00110010010; 12791 let isPredicated = 1; 12792 let hasNewValue = 1; 12793 let opNewValue = 0; 12794 let addrMode = BaseRegOffset; 12795 let accessSize = HalfWordAccess; 12796 let isPredicatedNew = 1; 12797 let mayLoad = 1; 12798 let CextOpcode = "L2_loadrh"; 12799 let InputType = "reg"; 12800 let BaseOpcode = "L4_loadrh_rr"; 12801 } 12802 def L4_ploadrif_abs : HInst< 12803 (outs IntRegs:$Rd32), 12804 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12805 "if (!$Pt4) $Rd32 = memw(#$Ii)", 12806 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12807 let Inst{7-5} = 0b100; 12808 let Inst{13-11} = 0b101; 12809 let Inst{31-21} = 0b10011111100; 12810 let isPredicated = 1; 12811 let isPredicatedFalse = 1; 12812 let hasNewValue = 1; 12813 let opNewValue = 0; 12814 let addrMode = Absolute; 12815 let accessSize = WordAccess; 12816 let mayLoad = 1; 12817 let isExtended = 1; 12818 let CextOpcode = "L2_loadri"; 12819 let BaseOpcode = "L4_loadri_abs"; 12820 let DecoderNamespace = "MustExtend"; 12821 let isExtendable = 1; 12822 let opExtendable = 2; 12823 let isExtentSigned = 0; 12824 let opExtentBits = 6; 12825 let opExtentAlign = 0; 12826 } 12827 def L4_ploadrif_rr : HInst< 12828 (outs IntRegs:$Rd32), 12829 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12830 "if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12831 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12832 let Inst{31-21} = 0b00110001100; 12833 let isPredicated = 1; 12834 let isPredicatedFalse = 1; 12835 let hasNewValue = 1; 12836 let opNewValue = 0; 12837 let addrMode = BaseRegOffset; 12838 let accessSize = WordAccess; 12839 let mayLoad = 1; 12840 let CextOpcode = "L2_loadri"; 12841 let InputType = "reg"; 12842 let BaseOpcode = "L4_loadri_rr"; 12843 } 12844 def L4_ploadrifnew_abs : HInst< 12845 (outs IntRegs:$Rd32), 12846 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12847 "if (!$Pt4.new) $Rd32 = memw(#$Ii)", 12848 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12849 let Inst{7-5} = 0b100; 12850 let Inst{13-11} = 0b111; 12851 let Inst{31-21} = 0b10011111100; 12852 let isPredicated = 1; 12853 let isPredicatedFalse = 1; 12854 let hasNewValue = 1; 12855 let opNewValue = 0; 12856 let addrMode = Absolute; 12857 let accessSize = WordAccess; 12858 let isPredicatedNew = 1; 12859 let mayLoad = 1; 12860 let isExtended = 1; 12861 let CextOpcode = "L2_loadri"; 12862 let BaseOpcode = "L4_loadri_abs"; 12863 let DecoderNamespace = "MustExtend"; 12864 let isExtendable = 1; 12865 let opExtendable = 2; 12866 let isExtentSigned = 0; 12867 let opExtentBits = 6; 12868 let opExtentAlign = 0; 12869 } 12870 def L4_ploadrifnew_rr : HInst< 12871 (outs IntRegs:$Rd32), 12872 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12873 "if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12874 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12875 let Inst{31-21} = 0b00110011100; 12876 let isPredicated = 1; 12877 let isPredicatedFalse = 1; 12878 let hasNewValue = 1; 12879 let opNewValue = 0; 12880 let addrMode = BaseRegOffset; 12881 let accessSize = WordAccess; 12882 let isPredicatedNew = 1; 12883 let mayLoad = 1; 12884 let CextOpcode = "L2_loadri"; 12885 let InputType = "reg"; 12886 let BaseOpcode = "L4_loadri_rr"; 12887 } 12888 def L4_ploadrit_abs : HInst< 12889 (outs IntRegs:$Rd32), 12890 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12891 "if ($Pt4) $Rd32 = memw(#$Ii)", 12892 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12893 let Inst{7-5} = 0b100; 12894 let Inst{13-11} = 0b100; 12895 let Inst{31-21} = 0b10011111100; 12896 let isPredicated = 1; 12897 let hasNewValue = 1; 12898 let opNewValue = 0; 12899 let addrMode = Absolute; 12900 let accessSize = WordAccess; 12901 let mayLoad = 1; 12902 let isExtended = 1; 12903 let CextOpcode = "L2_loadri"; 12904 let BaseOpcode = "L4_loadri_abs"; 12905 let DecoderNamespace = "MustExtend"; 12906 let isExtendable = 1; 12907 let opExtendable = 2; 12908 let isExtentSigned = 0; 12909 let opExtentBits = 6; 12910 let opExtentAlign = 0; 12911 } 12912 def L4_ploadrit_rr : HInst< 12913 (outs IntRegs:$Rd32), 12914 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12915 "if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12916 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 12917 let Inst{31-21} = 0b00110000100; 12918 let isPredicated = 1; 12919 let hasNewValue = 1; 12920 let opNewValue = 0; 12921 let addrMode = BaseRegOffset; 12922 let accessSize = WordAccess; 12923 let mayLoad = 1; 12924 let CextOpcode = "L2_loadri"; 12925 let InputType = "reg"; 12926 let BaseOpcode = "L4_loadri_rr"; 12927 } 12928 def L4_ploadritnew_abs : HInst< 12929 (outs IntRegs:$Rd32), 12930 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12931 "if ($Pt4.new) $Rd32 = memw(#$Ii)", 12932 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 12933 let Inst{7-5} = 0b100; 12934 let Inst{13-11} = 0b110; 12935 let Inst{31-21} = 0b10011111100; 12936 let isPredicated = 1; 12937 let hasNewValue = 1; 12938 let opNewValue = 0; 12939 let addrMode = Absolute; 12940 let accessSize = WordAccess; 12941 let isPredicatedNew = 1; 12942 let mayLoad = 1; 12943 let isExtended = 1; 12944 let CextOpcode = "L2_loadri"; 12945 let BaseOpcode = "L4_loadri_abs"; 12946 let DecoderNamespace = "MustExtend"; 12947 let isExtendable = 1; 12948 let opExtendable = 2; 12949 let isExtentSigned = 0; 12950 let opExtentBits = 6; 12951 let opExtentAlign = 0; 12952 } 12953 def L4_ploadritnew_rr : HInst< 12954 (outs IntRegs:$Rd32), 12955 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12956 "if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12957 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 12958 let Inst{31-21} = 0b00110010100; 12959 let isPredicated = 1; 12960 let hasNewValue = 1; 12961 let opNewValue = 0; 12962 let addrMode = BaseRegOffset; 12963 let accessSize = WordAccess; 12964 let isPredicatedNew = 1; 12965 let mayLoad = 1; 12966 let CextOpcode = "L2_loadri"; 12967 let InputType = "reg"; 12968 let BaseOpcode = "L4_loadri_rr"; 12969 } 12970 def L4_ploadrubf_abs : HInst< 12971 (outs IntRegs:$Rd32), 12972 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 12973 "if (!$Pt4) $Rd32 = memub(#$Ii)", 12974 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 12975 let Inst{7-5} = 0b100; 12976 let Inst{13-11} = 0b101; 12977 let Inst{31-21} = 0b10011111001; 12978 let isPredicated = 1; 12979 let isPredicatedFalse = 1; 12980 let hasNewValue = 1; 12981 let opNewValue = 0; 12982 let addrMode = Absolute; 12983 let accessSize = ByteAccess; 12984 let mayLoad = 1; 12985 let isExtended = 1; 12986 let CextOpcode = "L2_loadrub"; 12987 let BaseOpcode = "L4_loadrub_abs"; 12988 let DecoderNamespace = "MustExtend"; 12989 let isExtendable = 1; 12990 let opExtendable = 2; 12991 let isExtentSigned = 0; 12992 let opExtentBits = 6; 12993 let opExtentAlign = 0; 12994 } 12995 def L4_ploadrubf_rr : HInst< 12996 (outs IntRegs:$Rd32), 12997 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12998 "if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 12999 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 13000 let Inst{31-21} = 0b00110001001; 13001 let isPredicated = 1; 13002 let isPredicatedFalse = 1; 13003 let hasNewValue = 1; 13004 let opNewValue = 0; 13005 let addrMode = BaseRegOffset; 13006 let accessSize = ByteAccess; 13007 let mayLoad = 1; 13008 let CextOpcode = "L2_loadrub"; 13009 let InputType = "reg"; 13010 let BaseOpcode = "L4_loadrub_rr"; 13011 } 13012 def L4_ploadrubfnew_abs : HInst< 13013 (outs IntRegs:$Rd32), 13014 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13015 "if (!$Pt4.new) $Rd32 = memub(#$Ii)", 13016 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 13017 let Inst{7-5} = 0b100; 13018 let Inst{13-11} = 0b111; 13019 let Inst{31-21} = 0b10011111001; 13020 let isPredicated = 1; 13021 let isPredicatedFalse = 1; 13022 let hasNewValue = 1; 13023 let opNewValue = 0; 13024 let addrMode = Absolute; 13025 let accessSize = ByteAccess; 13026 let isPredicatedNew = 1; 13027 let mayLoad = 1; 13028 let isExtended = 1; 13029 let CextOpcode = "L2_loadrub"; 13030 let BaseOpcode = "L4_loadrub_abs"; 13031 let DecoderNamespace = "MustExtend"; 13032 let isExtendable = 1; 13033 let opExtendable = 2; 13034 let isExtentSigned = 0; 13035 let opExtentBits = 6; 13036 let opExtentAlign = 0; 13037 } 13038 def L4_ploadrubfnew_rr : HInst< 13039 (outs IntRegs:$Rd32), 13040 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13041 "if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13042 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 13043 let Inst{31-21} = 0b00110011001; 13044 let isPredicated = 1; 13045 let isPredicatedFalse = 1; 13046 let hasNewValue = 1; 13047 let opNewValue = 0; 13048 let addrMode = BaseRegOffset; 13049 let accessSize = ByteAccess; 13050 let isPredicatedNew = 1; 13051 let mayLoad = 1; 13052 let CextOpcode = "L2_loadrub"; 13053 let InputType = "reg"; 13054 let BaseOpcode = "L4_loadrub_rr"; 13055 } 13056 def L4_ploadrubt_abs : HInst< 13057 (outs IntRegs:$Rd32), 13058 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13059 "if ($Pt4) $Rd32 = memub(#$Ii)", 13060 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 13061 let Inst{7-5} = 0b100; 13062 let Inst{13-11} = 0b100; 13063 let Inst{31-21} = 0b10011111001; 13064 let isPredicated = 1; 13065 let hasNewValue = 1; 13066 let opNewValue = 0; 13067 let addrMode = Absolute; 13068 let accessSize = ByteAccess; 13069 let mayLoad = 1; 13070 let isExtended = 1; 13071 let CextOpcode = "L2_loadrub"; 13072 let BaseOpcode = "L4_loadrub_abs"; 13073 let DecoderNamespace = "MustExtend"; 13074 let isExtendable = 1; 13075 let opExtendable = 2; 13076 let isExtentSigned = 0; 13077 let opExtentBits = 6; 13078 let opExtentAlign = 0; 13079 } 13080 def L4_ploadrubt_rr : HInst< 13081 (outs IntRegs:$Rd32), 13082 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13083 "if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13084 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 13085 let Inst{31-21} = 0b00110000001; 13086 let isPredicated = 1; 13087 let hasNewValue = 1; 13088 let opNewValue = 0; 13089 let addrMode = BaseRegOffset; 13090 let accessSize = ByteAccess; 13091 let mayLoad = 1; 13092 let CextOpcode = "L2_loadrub"; 13093 let InputType = "reg"; 13094 let BaseOpcode = "L4_loadrub_rr"; 13095 } 13096 def L4_ploadrubtnew_abs : HInst< 13097 (outs IntRegs:$Rd32), 13098 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13099 "if ($Pt4.new) $Rd32 = memub(#$Ii)", 13100 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 13101 let Inst{7-5} = 0b100; 13102 let Inst{13-11} = 0b110; 13103 let Inst{31-21} = 0b10011111001; 13104 let isPredicated = 1; 13105 let hasNewValue = 1; 13106 let opNewValue = 0; 13107 let addrMode = Absolute; 13108 let accessSize = ByteAccess; 13109 let isPredicatedNew = 1; 13110 let mayLoad = 1; 13111 let isExtended = 1; 13112 let CextOpcode = "L2_loadrub"; 13113 let BaseOpcode = "L4_loadrub_abs"; 13114 let DecoderNamespace = "MustExtend"; 13115 let isExtendable = 1; 13116 let opExtendable = 2; 13117 let isExtentSigned = 0; 13118 let opExtentBits = 6; 13119 let opExtentAlign = 0; 13120 } 13121 def L4_ploadrubtnew_rr : HInst< 13122 (outs IntRegs:$Rd32), 13123 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13124 "if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13125 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 13126 let Inst{31-21} = 0b00110010001; 13127 let isPredicated = 1; 13128 let hasNewValue = 1; 13129 let opNewValue = 0; 13130 let addrMode = BaseRegOffset; 13131 let accessSize = ByteAccess; 13132 let isPredicatedNew = 1; 13133 let mayLoad = 1; 13134 let CextOpcode = "L2_loadrub"; 13135 let InputType = "reg"; 13136 let BaseOpcode = "L4_loadrub_rr"; 13137 } 13138 def L4_ploadruhf_abs : HInst< 13139 (outs IntRegs:$Rd32), 13140 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13141 "if (!$Pt4) $Rd32 = memuh(#$Ii)", 13142 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 13143 let Inst{7-5} = 0b100; 13144 let Inst{13-11} = 0b101; 13145 let Inst{31-21} = 0b10011111011; 13146 let isPredicated = 1; 13147 let isPredicatedFalse = 1; 13148 let hasNewValue = 1; 13149 let opNewValue = 0; 13150 let addrMode = Absolute; 13151 let accessSize = HalfWordAccess; 13152 let mayLoad = 1; 13153 let isExtended = 1; 13154 let CextOpcode = "L2_loadruh"; 13155 let BaseOpcode = "L4_loadruh_abs"; 13156 let DecoderNamespace = "MustExtend"; 13157 let isExtendable = 1; 13158 let opExtendable = 2; 13159 let isExtentSigned = 0; 13160 let opExtentBits = 6; 13161 let opExtentAlign = 0; 13162 } 13163 def L4_ploadruhf_rr : HInst< 13164 (outs IntRegs:$Rd32), 13165 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13166 "if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13167 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 13168 let Inst{31-21} = 0b00110001011; 13169 let isPredicated = 1; 13170 let isPredicatedFalse = 1; 13171 let hasNewValue = 1; 13172 let opNewValue = 0; 13173 let addrMode = BaseRegOffset; 13174 let accessSize = HalfWordAccess; 13175 let mayLoad = 1; 13176 let CextOpcode = "L2_loadruh"; 13177 let InputType = "reg"; 13178 let BaseOpcode = "L4_loadruh_rr"; 13179 } 13180 def L4_ploadruhfnew_abs : HInst< 13181 (outs IntRegs:$Rd32), 13182 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13183 "if (!$Pt4.new) $Rd32 = memuh(#$Ii)", 13184 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 13185 let Inst{7-5} = 0b100; 13186 let Inst{13-11} = 0b111; 13187 let Inst{31-21} = 0b10011111011; 13188 let isPredicated = 1; 13189 let isPredicatedFalse = 1; 13190 let hasNewValue = 1; 13191 let opNewValue = 0; 13192 let addrMode = Absolute; 13193 let accessSize = HalfWordAccess; 13194 let isPredicatedNew = 1; 13195 let mayLoad = 1; 13196 let isExtended = 1; 13197 let CextOpcode = "L2_loadruh"; 13198 let BaseOpcode = "L4_loadruh_abs"; 13199 let DecoderNamespace = "MustExtend"; 13200 let isExtendable = 1; 13201 let opExtendable = 2; 13202 let isExtentSigned = 0; 13203 let opExtentBits = 6; 13204 let opExtentAlign = 0; 13205 } 13206 def L4_ploadruhfnew_rr : HInst< 13207 (outs IntRegs:$Rd32), 13208 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13209 "if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13210 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 13211 let Inst{31-21} = 0b00110011011; 13212 let isPredicated = 1; 13213 let isPredicatedFalse = 1; 13214 let hasNewValue = 1; 13215 let opNewValue = 0; 13216 let addrMode = BaseRegOffset; 13217 let accessSize = HalfWordAccess; 13218 let isPredicatedNew = 1; 13219 let mayLoad = 1; 13220 let CextOpcode = "L2_loadruh"; 13221 let InputType = "reg"; 13222 let BaseOpcode = "L4_loadruh_rr"; 13223 } 13224 def L4_ploadruht_abs : HInst< 13225 (outs IntRegs:$Rd32), 13226 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13227 "if ($Pt4) $Rd32 = memuh(#$Ii)", 13228 tc_1d5a38a8, TypeLD>, Enc_2301d6, AddrModeRel { 13229 let Inst{7-5} = 0b100; 13230 let Inst{13-11} = 0b100; 13231 let Inst{31-21} = 0b10011111011; 13232 let isPredicated = 1; 13233 let hasNewValue = 1; 13234 let opNewValue = 0; 13235 let addrMode = Absolute; 13236 let accessSize = HalfWordAccess; 13237 let mayLoad = 1; 13238 let isExtended = 1; 13239 let CextOpcode = "L2_loadruh"; 13240 let BaseOpcode = "L4_loadruh_abs"; 13241 let DecoderNamespace = "MustExtend"; 13242 let isExtendable = 1; 13243 let opExtendable = 2; 13244 let isExtentSigned = 0; 13245 let opExtentBits = 6; 13246 let opExtentAlign = 0; 13247 } 13248 def L4_ploadruht_rr : HInst< 13249 (outs IntRegs:$Rd32), 13250 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13251 "if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13252 tc_9ef61e5c, TypeLD>, Enc_2e1979, AddrModeRel { 13253 let Inst{31-21} = 0b00110000011; 13254 let isPredicated = 1; 13255 let hasNewValue = 1; 13256 let opNewValue = 0; 13257 let addrMode = BaseRegOffset; 13258 let accessSize = HalfWordAccess; 13259 let mayLoad = 1; 13260 let CextOpcode = "L2_loadruh"; 13261 let InputType = "reg"; 13262 let BaseOpcode = "L4_loadruh_rr"; 13263 } 13264 def L4_ploadruhtnew_abs : HInst< 13265 (outs IntRegs:$Rd32), 13266 (ins PredRegs:$Pt4, u32_0Imm:$Ii), 13267 "if ($Pt4.new) $Rd32 = memuh(#$Ii)", 13268 tc_b77c481f, TypeLD>, Enc_2301d6, AddrModeRel { 13269 let Inst{7-5} = 0b100; 13270 let Inst{13-11} = 0b110; 13271 let Inst{31-21} = 0b10011111011; 13272 let isPredicated = 1; 13273 let hasNewValue = 1; 13274 let opNewValue = 0; 13275 let addrMode = Absolute; 13276 let accessSize = HalfWordAccess; 13277 let isPredicatedNew = 1; 13278 let mayLoad = 1; 13279 let isExtended = 1; 13280 let CextOpcode = "L2_loadruh"; 13281 let BaseOpcode = "L4_loadruh_abs"; 13282 let DecoderNamespace = "MustExtend"; 13283 let isExtendable = 1; 13284 let opExtendable = 2; 13285 let isExtentSigned = 0; 13286 let opExtentBits = 6; 13287 let opExtentAlign = 0; 13288 } 13289 def L4_ploadruhtnew_rr : HInst< 13290 (outs IntRegs:$Rd32), 13291 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13292 "if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13293 tc_b7dd427e, TypeLD>, Enc_2e1979, AddrModeRel { 13294 let Inst{31-21} = 0b00110010011; 13295 let isPredicated = 1; 13296 let hasNewValue = 1; 13297 let opNewValue = 0; 13298 let addrMode = BaseRegOffset; 13299 let accessSize = HalfWordAccess; 13300 let isPredicatedNew = 1; 13301 let mayLoad = 1; 13302 let CextOpcode = "L2_loadruh"; 13303 let InputType = "reg"; 13304 let BaseOpcode = "L4_loadruh_rr"; 13305 } 13306 def L4_return : HInst< 13307 (outs DoubleRegs:$Rdd32), 13308 (ins IntRegs:$Rs32), 13309 "$Rdd32 = dealloc_return($Rs32):raw", 13310 tc_3d04548d, TypeLD>, Enc_3a3d62, PredNewRel { 13311 let Inst{13-5} = 0b000000000; 13312 let Inst{31-21} = 0b10010110000; 13313 let isTerminator = 1; 13314 let isIndirectBranch = 1; 13315 let accessSize = DoubleWordAccess; 13316 let mayLoad = 1; 13317 let cofMax1 = 1; 13318 let isRestrictNoSlot1Store = 1; 13319 let isReturn = 1; 13320 let Uses = [FRAMEKEY]; 13321 let Defs = [PC, R29]; 13322 let BaseOpcode = "L4_return"; 13323 let isBarrier = 1; 13324 let isPredicable = 1; 13325 let isTaken = 1; 13326 } 13327 def L4_return_f : HInst< 13328 (outs DoubleRegs:$Rdd32), 13329 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13330 "if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13331 tc_513bef45, TypeLD>, Enc_b7fad3, PredNewRel { 13332 let Inst{7-5} = 0b000; 13333 let Inst{13-10} = 0b1100; 13334 let Inst{31-21} = 0b10010110000; 13335 let isPredicated = 1; 13336 let isPredicatedFalse = 1; 13337 let isTerminator = 1; 13338 let isIndirectBranch = 1; 13339 let accessSize = DoubleWordAccess; 13340 let mayLoad = 1; 13341 let cofMax1 = 1; 13342 let isRestrictNoSlot1Store = 1; 13343 let isReturn = 1; 13344 let Uses = [FRAMEKEY]; 13345 let Defs = [PC, R29]; 13346 let BaseOpcode = "L4_return"; 13347 let isTaken = Inst{12}; 13348 } 13349 def L4_return_fnew_pnt : HInst< 13350 (outs DoubleRegs:$Rdd32), 13351 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13352 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13353 tc_395dc00f, TypeLD>, Enc_b7fad3, PredNewRel { 13354 let Inst{7-5} = 0b000; 13355 let Inst{13-10} = 0b1010; 13356 let Inst{31-21} = 0b10010110000; 13357 let isPredicated = 1; 13358 let isPredicatedFalse = 1; 13359 let isTerminator = 1; 13360 let isIndirectBranch = 1; 13361 let accessSize = DoubleWordAccess; 13362 let isPredicatedNew = 1; 13363 let mayLoad = 1; 13364 let cofMax1 = 1; 13365 let isRestrictNoSlot1Store = 1; 13366 let isReturn = 1; 13367 let Uses = [FRAMEKEY]; 13368 let Defs = [PC, R29]; 13369 let BaseOpcode = "L4_return"; 13370 let isTaken = Inst{12}; 13371 } 13372 def L4_return_fnew_pt : HInst< 13373 (outs DoubleRegs:$Rdd32), 13374 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13375 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13376 tc_395dc00f, TypeLD>, Enc_b7fad3, PredNewRel { 13377 let Inst{7-5} = 0b000; 13378 let Inst{13-10} = 0b1110; 13379 let Inst{31-21} = 0b10010110000; 13380 let isPredicated = 1; 13381 let isPredicatedFalse = 1; 13382 let isTerminator = 1; 13383 let isIndirectBranch = 1; 13384 let accessSize = DoubleWordAccess; 13385 let isPredicatedNew = 1; 13386 let mayLoad = 1; 13387 let cofMax1 = 1; 13388 let isRestrictNoSlot1Store = 1; 13389 let isReturn = 1; 13390 let Uses = [FRAMEKEY]; 13391 let Defs = [PC, R29]; 13392 let BaseOpcode = "L4_return"; 13393 let isTaken = Inst{12}; 13394 } 13395 def L4_return_map_to_raw_f : HInst< 13396 (outs), 13397 (ins PredRegs:$Pv4), 13398 "if (!$Pv4) dealloc_return", 13399 tc_513bef45, TypeMAPPING>, Requires<[HasV65]> { 13400 let isPseudo = 1; 13401 let isCodeGenOnly = 1; 13402 } 13403 def L4_return_map_to_raw_fnew_pnt : HInst< 13404 (outs), 13405 (ins PredRegs:$Pv4), 13406 "if (!$Pv4.new) dealloc_return:nt", 13407 tc_395dc00f, TypeMAPPING>, Requires<[HasV65]> { 13408 let isPseudo = 1; 13409 let isCodeGenOnly = 1; 13410 } 13411 def L4_return_map_to_raw_fnew_pt : HInst< 13412 (outs), 13413 (ins PredRegs:$Pv4), 13414 "if (!$Pv4.new) dealloc_return:t", 13415 tc_395dc00f, TypeMAPPING>, Requires<[HasV65]> { 13416 let isPseudo = 1; 13417 let isCodeGenOnly = 1; 13418 } 13419 def L4_return_map_to_raw_t : HInst< 13420 (outs), 13421 (ins PredRegs:$Pv4), 13422 "if ($Pv4) dealloc_return", 13423 tc_3bc2c5d3, TypeMAPPING>, Requires<[HasV65]> { 13424 let isPseudo = 1; 13425 let isCodeGenOnly = 1; 13426 } 13427 def L4_return_map_to_raw_tnew_pnt : HInst< 13428 (outs), 13429 (ins PredRegs:$Pv4), 13430 "if ($Pv4.new) dealloc_return:nt", 13431 tc_e7624c08, TypeMAPPING>, Requires<[HasV65]> { 13432 let isPseudo = 1; 13433 let isCodeGenOnly = 1; 13434 } 13435 def L4_return_map_to_raw_tnew_pt : HInst< 13436 (outs), 13437 (ins PredRegs:$Pv4), 13438 "if ($Pv4.new) dealloc_return:t", 13439 tc_e7624c08, TypeMAPPING>, Requires<[HasV65]> { 13440 let isPseudo = 1; 13441 let isCodeGenOnly = 1; 13442 } 13443 def L4_return_t : HInst< 13444 (outs DoubleRegs:$Rdd32), 13445 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13446 "if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13447 tc_513bef45, TypeLD>, Enc_b7fad3, PredNewRel { 13448 let Inst{7-5} = 0b000; 13449 let Inst{13-10} = 0b0100; 13450 let Inst{31-21} = 0b10010110000; 13451 let isPredicated = 1; 13452 let isTerminator = 1; 13453 let isIndirectBranch = 1; 13454 let accessSize = DoubleWordAccess; 13455 let mayLoad = 1; 13456 let cofMax1 = 1; 13457 let isRestrictNoSlot1Store = 1; 13458 let isReturn = 1; 13459 let Uses = [FRAMEKEY]; 13460 let Defs = [PC, R29]; 13461 let BaseOpcode = "L4_return"; 13462 let isTaken = Inst{12}; 13463 } 13464 def L4_return_tnew_pnt : HInst< 13465 (outs DoubleRegs:$Rdd32), 13466 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13467 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13468 tc_395dc00f, TypeLD>, Enc_b7fad3, PredNewRel { 13469 let Inst{7-5} = 0b000; 13470 let Inst{13-10} = 0b0010; 13471 let Inst{31-21} = 0b10010110000; 13472 let isPredicated = 1; 13473 let isTerminator = 1; 13474 let isIndirectBranch = 1; 13475 let accessSize = DoubleWordAccess; 13476 let isPredicatedNew = 1; 13477 let mayLoad = 1; 13478 let cofMax1 = 1; 13479 let isRestrictNoSlot1Store = 1; 13480 let isReturn = 1; 13481 let Uses = [FRAMEKEY]; 13482 let Defs = [PC, R29]; 13483 let BaseOpcode = "L4_return"; 13484 let isTaken = Inst{12}; 13485 } 13486 def L4_return_tnew_pt : HInst< 13487 (outs DoubleRegs:$Rdd32), 13488 (ins PredRegs:$Pv4, IntRegs:$Rs32), 13489 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13490 tc_395dc00f, TypeLD>, Enc_b7fad3, PredNewRel { 13491 let Inst{7-5} = 0b000; 13492 let Inst{13-10} = 0b0110; 13493 let Inst{31-21} = 0b10010110000; 13494 let isPredicated = 1; 13495 let isTerminator = 1; 13496 let isIndirectBranch = 1; 13497 let accessSize = DoubleWordAccess; 13498 let isPredicatedNew = 1; 13499 let mayLoad = 1; 13500 let cofMax1 = 1; 13501 let isRestrictNoSlot1Store = 1; 13502 let isReturn = 1; 13503 let Uses = [FRAMEKEY]; 13504 let Defs = [PC, R29]; 13505 let BaseOpcode = "L4_return"; 13506 let isTaken = Inst{12}; 13507 } 13508 def L4_sub_memopb_io : HInst< 13509 (outs), 13510 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 13511 "memb($Rs32+#$Ii) -= $Rt32", 13512 tc_44126683, TypeV4LDST>, Enc_d44e31 { 13513 let Inst{6-5} = 0b01; 13514 let Inst{13-13} = 0b0; 13515 let Inst{31-21} = 0b00111110000; 13516 let addrMode = BaseImmOffset; 13517 let accessSize = ByteAccess; 13518 let mayLoad = 1; 13519 let isRestrictNoSlot1Store = 1; 13520 let mayStore = 1; 13521 let isExtendable = 1; 13522 let opExtendable = 1; 13523 let isExtentSigned = 0; 13524 let opExtentBits = 6; 13525 let opExtentAlign = 0; 13526 } 13527 def L4_sub_memopb_zomap : HInst< 13528 (outs), 13529 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13530 "memb($Rs32) -= $Rt32", 13531 tc_44126683, TypeMAPPING> { 13532 let isPseudo = 1; 13533 let isCodeGenOnly = 1; 13534 } 13535 def L4_sub_memoph_io : HInst< 13536 (outs), 13537 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 13538 "memh($Rs32+#$Ii) -= $Rt32", 13539 tc_44126683, TypeV4LDST>, Enc_163a3c { 13540 let Inst{6-5} = 0b01; 13541 let Inst{13-13} = 0b0; 13542 let Inst{31-21} = 0b00111110001; 13543 let addrMode = BaseImmOffset; 13544 let accessSize = HalfWordAccess; 13545 let mayLoad = 1; 13546 let isRestrictNoSlot1Store = 1; 13547 let mayStore = 1; 13548 let isExtendable = 1; 13549 let opExtendable = 1; 13550 let isExtentSigned = 0; 13551 let opExtentBits = 7; 13552 let opExtentAlign = 1; 13553 } 13554 def L4_sub_memoph_zomap : HInst< 13555 (outs), 13556 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13557 "memh($Rs32) -= $Rt32", 13558 tc_44126683, TypeMAPPING> { 13559 let isPseudo = 1; 13560 let isCodeGenOnly = 1; 13561 } 13562 def L4_sub_memopw_io : HInst< 13563 (outs), 13564 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 13565 "memw($Rs32+#$Ii) -= $Rt32", 13566 tc_44126683, TypeV4LDST>, Enc_226535 { 13567 let Inst{6-5} = 0b01; 13568 let Inst{13-13} = 0b0; 13569 let Inst{31-21} = 0b00111110010; 13570 let addrMode = BaseImmOffset; 13571 let accessSize = WordAccess; 13572 let mayLoad = 1; 13573 let isRestrictNoSlot1Store = 1; 13574 let mayStore = 1; 13575 let isExtendable = 1; 13576 let opExtendable = 1; 13577 let isExtentSigned = 0; 13578 let opExtentBits = 8; 13579 let opExtentAlign = 2; 13580 } 13581 def L4_sub_memopw_zomap : HInst< 13582 (outs), 13583 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13584 "memw($Rs32) -= $Rt32", 13585 tc_44126683, TypeMAPPING> { 13586 let isPseudo = 1; 13587 let isCodeGenOnly = 1; 13588 } 13589 def L6_deallocframe_map_to_raw : HInst< 13590 (outs), 13591 (ins), 13592 "deallocframe", 13593 tc_d1090e34, TypeMAPPING>, Requires<[HasV65]> { 13594 let isPseudo = 1; 13595 let isCodeGenOnly = 1; 13596 } 13597 def L6_return_map_to_raw : HInst< 13598 (outs), 13599 (ins), 13600 "dealloc_return", 13601 tc_3d04548d, TypeMAPPING>, Requires<[HasV65]> { 13602 let isPseudo = 1; 13603 let isCodeGenOnly = 1; 13604 } 13605 def M2_acci : HInst< 13606 (outs IntRegs:$Rx32), 13607 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13608 "$Rx32 += add($Rs32,$Rt32)", 13609 tc_c74f796f, TypeM>, Enc_2ae154, ImmRegRel { 13610 let Inst{7-5} = 0b001; 13611 let Inst{13-13} = 0b0; 13612 let Inst{31-21} = 0b11101111000; 13613 let hasNewValue = 1; 13614 let opNewValue = 0; 13615 let prefersSlot3 = 1; 13616 let CextOpcode = "M2_acci"; 13617 let InputType = "reg"; 13618 let Constraints = "$Rx32 = $Rx32in"; 13619 } 13620 def M2_accii : HInst< 13621 (outs IntRegs:$Rx32), 13622 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 13623 "$Rx32 += add($Rs32,#$Ii)", 13624 tc_c74f796f, TypeM>, Enc_c90aca, ImmRegRel { 13625 let Inst{13-13} = 0b0; 13626 let Inst{31-21} = 0b11100010000; 13627 let hasNewValue = 1; 13628 let opNewValue = 0; 13629 let prefersSlot3 = 1; 13630 let CextOpcode = "M2_acci"; 13631 let InputType = "imm"; 13632 let isExtendable = 1; 13633 let opExtendable = 3; 13634 let isExtentSigned = 1; 13635 let opExtentBits = 8; 13636 let opExtentAlign = 0; 13637 let Constraints = "$Rx32 = $Rx32in"; 13638 } 13639 def M2_cmaci_s0 : HInst< 13640 (outs DoubleRegs:$Rxx32), 13641 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13642 "$Rxx32 += cmpyi($Rs32,$Rt32)", 13643 tc_e913dc32, TypeM>, Enc_61f0b0 { 13644 let Inst{7-5} = 0b001; 13645 let Inst{13-13} = 0b0; 13646 let Inst{31-21} = 0b11100111000; 13647 let prefersSlot3 = 1; 13648 let Constraints = "$Rxx32 = $Rxx32in"; 13649 } 13650 def M2_cmacr_s0 : HInst< 13651 (outs DoubleRegs:$Rxx32), 13652 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13653 "$Rxx32 += cmpyr($Rs32,$Rt32)", 13654 tc_e913dc32, TypeM>, Enc_61f0b0 { 13655 let Inst{7-5} = 0b010; 13656 let Inst{13-13} = 0b0; 13657 let Inst{31-21} = 0b11100111000; 13658 let prefersSlot3 = 1; 13659 let Constraints = "$Rxx32 = $Rxx32in"; 13660 } 13661 def M2_cmacs_s0 : HInst< 13662 (outs DoubleRegs:$Rxx32), 13663 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13664 "$Rxx32 += cmpy($Rs32,$Rt32):sat", 13665 tc_e913dc32, TypeM>, Enc_61f0b0 { 13666 let Inst{7-5} = 0b110; 13667 let Inst{13-13} = 0b0; 13668 let Inst{31-21} = 0b11100111000; 13669 let prefersSlot3 = 1; 13670 let Defs = [USR_OVF]; 13671 let Constraints = "$Rxx32 = $Rxx32in"; 13672 } 13673 def M2_cmacs_s1 : HInst< 13674 (outs DoubleRegs:$Rxx32), 13675 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13676 "$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat", 13677 tc_e913dc32, TypeM>, Enc_61f0b0 { 13678 let Inst{7-5} = 0b110; 13679 let Inst{13-13} = 0b0; 13680 let Inst{31-21} = 0b11100111100; 13681 let prefersSlot3 = 1; 13682 let Defs = [USR_OVF]; 13683 let Constraints = "$Rxx32 = $Rxx32in"; 13684 } 13685 def M2_cmacsc_s0 : HInst< 13686 (outs DoubleRegs:$Rxx32), 13687 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13688 "$Rxx32 += cmpy($Rs32,$Rt32*):sat", 13689 tc_e913dc32, TypeM>, Enc_61f0b0 { 13690 let Inst{7-5} = 0b110; 13691 let Inst{13-13} = 0b0; 13692 let Inst{31-21} = 0b11100111010; 13693 let prefersSlot3 = 1; 13694 let Defs = [USR_OVF]; 13695 let Constraints = "$Rxx32 = $Rxx32in"; 13696 } 13697 def M2_cmacsc_s1 : HInst< 13698 (outs DoubleRegs:$Rxx32), 13699 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13700 "$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat", 13701 tc_e913dc32, TypeM>, Enc_61f0b0 { 13702 let Inst{7-5} = 0b110; 13703 let Inst{13-13} = 0b0; 13704 let Inst{31-21} = 0b11100111110; 13705 let prefersSlot3 = 1; 13706 let Defs = [USR_OVF]; 13707 let Constraints = "$Rxx32 = $Rxx32in"; 13708 } 13709 def M2_cmpyi_s0 : HInst< 13710 (outs DoubleRegs:$Rdd32), 13711 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13712 "$Rdd32 = cmpyi($Rs32,$Rt32)", 13713 tc_8fd5f294, TypeM>, Enc_be32a5 { 13714 let Inst{7-5} = 0b001; 13715 let Inst{13-13} = 0b0; 13716 let Inst{31-21} = 0b11100101000; 13717 let prefersSlot3 = 1; 13718 } 13719 def M2_cmpyr_s0 : HInst< 13720 (outs DoubleRegs:$Rdd32), 13721 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13722 "$Rdd32 = cmpyr($Rs32,$Rt32)", 13723 tc_8fd5f294, TypeM>, Enc_be32a5 { 13724 let Inst{7-5} = 0b010; 13725 let Inst{13-13} = 0b0; 13726 let Inst{31-21} = 0b11100101000; 13727 let prefersSlot3 = 1; 13728 } 13729 def M2_cmpyrs_s0 : HInst< 13730 (outs IntRegs:$Rd32), 13731 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13732 "$Rd32 = cmpy($Rs32,$Rt32):rnd:sat", 13733 tc_8fd5f294, TypeM>, Enc_5ab2be { 13734 let Inst{7-5} = 0b110; 13735 let Inst{13-13} = 0b0; 13736 let Inst{31-21} = 0b11101101001; 13737 let hasNewValue = 1; 13738 let opNewValue = 0; 13739 let prefersSlot3 = 1; 13740 let Defs = [USR_OVF]; 13741 } 13742 def M2_cmpyrs_s1 : HInst< 13743 (outs IntRegs:$Rd32), 13744 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13745 "$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat", 13746 tc_8fd5f294, TypeM>, Enc_5ab2be { 13747 let Inst{7-5} = 0b110; 13748 let Inst{13-13} = 0b0; 13749 let Inst{31-21} = 0b11101101101; 13750 let hasNewValue = 1; 13751 let opNewValue = 0; 13752 let prefersSlot3 = 1; 13753 let Defs = [USR_OVF]; 13754 } 13755 def M2_cmpyrsc_s0 : HInst< 13756 (outs IntRegs:$Rd32), 13757 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13758 "$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat", 13759 tc_8fd5f294, TypeM>, Enc_5ab2be { 13760 let Inst{7-5} = 0b110; 13761 let Inst{13-13} = 0b0; 13762 let Inst{31-21} = 0b11101101011; 13763 let hasNewValue = 1; 13764 let opNewValue = 0; 13765 let prefersSlot3 = 1; 13766 let Defs = [USR_OVF]; 13767 } 13768 def M2_cmpyrsc_s1 : HInst< 13769 (outs IntRegs:$Rd32), 13770 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13771 "$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat", 13772 tc_8fd5f294, TypeM>, Enc_5ab2be { 13773 let Inst{7-5} = 0b110; 13774 let Inst{13-13} = 0b0; 13775 let Inst{31-21} = 0b11101101111; 13776 let hasNewValue = 1; 13777 let opNewValue = 0; 13778 let prefersSlot3 = 1; 13779 let Defs = [USR_OVF]; 13780 } 13781 def M2_cmpys_s0 : HInst< 13782 (outs DoubleRegs:$Rdd32), 13783 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13784 "$Rdd32 = cmpy($Rs32,$Rt32):sat", 13785 tc_8fd5f294, TypeM>, Enc_be32a5 { 13786 let Inst{7-5} = 0b110; 13787 let Inst{13-13} = 0b0; 13788 let Inst{31-21} = 0b11100101000; 13789 let prefersSlot3 = 1; 13790 let Defs = [USR_OVF]; 13791 } 13792 def M2_cmpys_s1 : HInst< 13793 (outs DoubleRegs:$Rdd32), 13794 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13795 "$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat", 13796 tc_8fd5f294, TypeM>, Enc_be32a5 { 13797 let Inst{7-5} = 0b110; 13798 let Inst{13-13} = 0b0; 13799 let Inst{31-21} = 0b11100101100; 13800 let prefersSlot3 = 1; 13801 let Defs = [USR_OVF]; 13802 } 13803 def M2_cmpysc_s0 : HInst< 13804 (outs DoubleRegs:$Rdd32), 13805 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13806 "$Rdd32 = cmpy($Rs32,$Rt32*):sat", 13807 tc_8fd5f294, TypeM>, Enc_be32a5 { 13808 let Inst{7-5} = 0b110; 13809 let Inst{13-13} = 0b0; 13810 let Inst{31-21} = 0b11100101010; 13811 let prefersSlot3 = 1; 13812 let Defs = [USR_OVF]; 13813 } 13814 def M2_cmpysc_s1 : HInst< 13815 (outs DoubleRegs:$Rdd32), 13816 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13817 "$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat", 13818 tc_8fd5f294, TypeM>, Enc_be32a5 { 13819 let Inst{7-5} = 0b110; 13820 let Inst{13-13} = 0b0; 13821 let Inst{31-21} = 0b11100101110; 13822 let prefersSlot3 = 1; 13823 let Defs = [USR_OVF]; 13824 } 13825 def M2_cnacs_s0 : HInst< 13826 (outs DoubleRegs:$Rxx32), 13827 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13828 "$Rxx32 -= cmpy($Rs32,$Rt32):sat", 13829 tc_e913dc32, TypeM>, Enc_61f0b0 { 13830 let Inst{7-5} = 0b111; 13831 let Inst{13-13} = 0b0; 13832 let Inst{31-21} = 0b11100111000; 13833 let prefersSlot3 = 1; 13834 let Defs = [USR_OVF]; 13835 let Constraints = "$Rxx32 = $Rxx32in"; 13836 } 13837 def M2_cnacs_s1 : HInst< 13838 (outs DoubleRegs:$Rxx32), 13839 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13840 "$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat", 13841 tc_e913dc32, TypeM>, Enc_61f0b0 { 13842 let Inst{7-5} = 0b111; 13843 let Inst{13-13} = 0b0; 13844 let Inst{31-21} = 0b11100111100; 13845 let prefersSlot3 = 1; 13846 let Defs = [USR_OVF]; 13847 let Constraints = "$Rxx32 = $Rxx32in"; 13848 } 13849 def M2_cnacsc_s0 : HInst< 13850 (outs DoubleRegs:$Rxx32), 13851 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13852 "$Rxx32 -= cmpy($Rs32,$Rt32*):sat", 13853 tc_e913dc32, TypeM>, Enc_61f0b0 { 13854 let Inst{7-5} = 0b111; 13855 let Inst{13-13} = 0b0; 13856 let Inst{31-21} = 0b11100111010; 13857 let prefersSlot3 = 1; 13858 let Defs = [USR_OVF]; 13859 let Constraints = "$Rxx32 = $Rxx32in"; 13860 } 13861 def M2_cnacsc_s1 : HInst< 13862 (outs DoubleRegs:$Rxx32), 13863 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13864 "$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat", 13865 tc_e913dc32, TypeM>, Enc_61f0b0 { 13866 let Inst{7-5} = 0b111; 13867 let Inst{13-13} = 0b0; 13868 let Inst{31-21} = 0b11100111110; 13869 let prefersSlot3 = 1; 13870 let Defs = [USR_OVF]; 13871 let Constraints = "$Rxx32 = $Rxx32in"; 13872 } 13873 def M2_dpmpyss_acc_s0 : HInst< 13874 (outs DoubleRegs:$Rxx32), 13875 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13876 "$Rxx32 += mpy($Rs32,$Rt32)", 13877 tc_e913dc32, TypeM>, Enc_61f0b0 { 13878 let Inst{7-5} = 0b000; 13879 let Inst{13-13} = 0b0; 13880 let Inst{31-21} = 0b11100111000; 13881 let prefersSlot3 = 1; 13882 let Constraints = "$Rxx32 = $Rxx32in"; 13883 } 13884 def M2_dpmpyss_nac_s0 : HInst< 13885 (outs DoubleRegs:$Rxx32), 13886 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13887 "$Rxx32 -= mpy($Rs32,$Rt32)", 13888 tc_e913dc32, TypeM>, Enc_61f0b0 { 13889 let Inst{7-5} = 0b000; 13890 let Inst{13-13} = 0b0; 13891 let Inst{31-21} = 0b11100111001; 13892 let prefersSlot3 = 1; 13893 let Constraints = "$Rxx32 = $Rxx32in"; 13894 } 13895 def M2_dpmpyss_rnd_s0 : HInst< 13896 (outs IntRegs:$Rd32), 13897 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13898 "$Rd32 = mpy($Rs32,$Rt32):rnd", 13899 tc_8fd5f294, TypeM>, Enc_5ab2be { 13900 let Inst{7-5} = 0b001; 13901 let Inst{13-13} = 0b0; 13902 let Inst{31-21} = 0b11101101001; 13903 let hasNewValue = 1; 13904 let opNewValue = 0; 13905 let prefersSlot3 = 1; 13906 } 13907 def M2_dpmpyss_s0 : HInst< 13908 (outs DoubleRegs:$Rdd32), 13909 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13910 "$Rdd32 = mpy($Rs32,$Rt32)", 13911 tc_8fd5f294, TypeM>, Enc_be32a5 { 13912 let Inst{7-5} = 0b000; 13913 let Inst{13-13} = 0b0; 13914 let Inst{31-21} = 0b11100101000; 13915 let prefersSlot3 = 1; 13916 } 13917 def M2_dpmpyuu_acc_s0 : HInst< 13918 (outs DoubleRegs:$Rxx32), 13919 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13920 "$Rxx32 += mpyu($Rs32,$Rt32)", 13921 tc_e913dc32, TypeM>, Enc_61f0b0 { 13922 let Inst{7-5} = 0b000; 13923 let Inst{13-13} = 0b0; 13924 let Inst{31-21} = 0b11100111010; 13925 let prefersSlot3 = 1; 13926 let Constraints = "$Rxx32 = $Rxx32in"; 13927 } 13928 def M2_dpmpyuu_nac_s0 : HInst< 13929 (outs DoubleRegs:$Rxx32), 13930 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13931 "$Rxx32 -= mpyu($Rs32,$Rt32)", 13932 tc_e913dc32, TypeM>, Enc_61f0b0 { 13933 let Inst{7-5} = 0b000; 13934 let Inst{13-13} = 0b0; 13935 let Inst{31-21} = 0b11100111011; 13936 let prefersSlot3 = 1; 13937 let Constraints = "$Rxx32 = $Rxx32in"; 13938 } 13939 def M2_dpmpyuu_s0 : HInst< 13940 (outs DoubleRegs:$Rdd32), 13941 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13942 "$Rdd32 = mpyu($Rs32,$Rt32)", 13943 tc_8fd5f294, TypeM>, Enc_be32a5 { 13944 let Inst{7-5} = 0b000; 13945 let Inst{13-13} = 0b0; 13946 let Inst{31-21} = 0b11100101010; 13947 let prefersSlot3 = 1; 13948 } 13949 def M2_hmmpyh_rs1 : HInst< 13950 (outs IntRegs:$Rd32), 13951 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13952 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat", 13953 tc_8fd5f294, TypeM>, Enc_5ab2be { 13954 let Inst{7-5} = 0b100; 13955 let Inst{13-13} = 0b0; 13956 let Inst{31-21} = 0b11101101101; 13957 let hasNewValue = 1; 13958 let opNewValue = 0; 13959 let prefersSlot3 = 1; 13960 let Defs = [USR_OVF]; 13961 } 13962 def M2_hmmpyh_s1 : HInst< 13963 (outs IntRegs:$Rd32), 13964 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13965 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat", 13966 tc_8fd5f294, TypeM>, Enc_5ab2be { 13967 let Inst{7-5} = 0b000; 13968 let Inst{13-13} = 0b0; 13969 let Inst{31-21} = 0b11101101101; 13970 let hasNewValue = 1; 13971 let opNewValue = 0; 13972 let prefersSlot3 = 1; 13973 let Defs = [USR_OVF]; 13974 } 13975 def M2_hmmpyl_rs1 : HInst< 13976 (outs IntRegs:$Rd32), 13977 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13978 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat", 13979 tc_8fd5f294, TypeM>, Enc_5ab2be { 13980 let Inst{7-5} = 0b100; 13981 let Inst{13-13} = 0b0; 13982 let Inst{31-21} = 0b11101101111; 13983 let hasNewValue = 1; 13984 let opNewValue = 0; 13985 let prefersSlot3 = 1; 13986 let Defs = [USR_OVF]; 13987 } 13988 def M2_hmmpyl_s1 : HInst< 13989 (outs IntRegs:$Rd32), 13990 (ins IntRegs:$Rs32, IntRegs:$Rt32), 13991 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat", 13992 tc_8fd5f294, TypeM>, Enc_5ab2be { 13993 let Inst{7-5} = 0b001; 13994 let Inst{13-13} = 0b0; 13995 let Inst{31-21} = 0b11101101101; 13996 let hasNewValue = 1; 13997 let opNewValue = 0; 13998 let prefersSlot3 = 1; 13999 let Defs = [USR_OVF]; 14000 } 14001 def M2_maci : HInst< 14002 (outs IntRegs:$Rx32), 14003 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14004 "$Rx32 += mpyi($Rs32,$Rt32)", 14005 tc_e913dc32, TypeM>, Enc_2ae154, ImmRegRel { 14006 let Inst{7-5} = 0b000; 14007 let Inst{13-13} = 0b0; 14008 let Inst{31-21} = 0b11101111000; 14009 let hasNewValue = 1; 14010 let opNewValue = 0; 14011 let prefersSlot3 = 1; 14012 let CextOpcode = "M2_maci"; 14013 let InputType = "reg"; 14014 let Constraints = "$Rx32 = $Rx32in"; 14015 } 14016 def M2_macsin : HInst< 14017 (outs IntRegs:$Rx32), 14018 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14019 "$Rx32 -= mpyi($Rs32,#$Ii)", 14020 tc_16d0d8d5, TypeM>, Enc_c90aca { 14021 let Inst{13-13} = 0b0; 14022 let Inst{31-21} = 0b11100001100; 14023 let hasNewValue = 1; 14024 let opNewValue = 0; 14025 let prefersSlot3 = 1; 14026 let InputType = "imm"; 14027 let isExtendable = 1; 14028 let opExtendable = 3; 14029 let isExtentSigned = 0; 14030 let opExtentBits = 8; 14031 let opExtentAlign = 0; 14032 let Constraints = "$Rx32 = $Rx32in"; 14033 } 14034 def M2_macsip : HInst< 14035 (outs IntRegs:$Rx32), 14036 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14037 "$Rx32 += mpyi($Rs32,#$Ii)", 14038 tc_16d0d8d5, TypeM>, Enc_c90aca, ImmRegRel { 14039 let Inst{13-13} = 0b0; 14040 let Inst{31-21} = 0b11100001000; 14041 let hasNewValue = 1; 14042 let opNewValue = 0; 14043 let prefersSlot3 = 1; 14044 let CextOpcode = "M2_maci"; 14045 let InputType = "imm"; 14046 let isExtendable = 1; 14047 let opExtendable = 3; 14048 let isExtentSigned = 0; 14049 let opExtentBits = 8; 14050 let opExtentAlign = 0; 14051 let Constraints = "$Rx32 = $Rx32in"; 14052 } 14053 def M2_mmachs_rs0 : HInst< 14054 (outs DoubleRegs:$Rxx32), 14055 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14056 "$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat", 14057 tc_e913dc32, TypeM>, Enc_88c16c { 14058 let Inst{7-5} = 0b111; 14059 let Inst{13-13} = 0b0; 14060 let Inst{31-21} = 0b11101010001; 14061 let prefersSlot3 = 1; 14062 let Defs = [USR_OVF]; 14063 let Constraints = "$Rxx32 = $Rxx32in"; 14064 } 14065 def M2_mmachs_rs1 : HInst< 14066 (outs DoubleRegs:$Rxx32), 14067 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14068 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14069 tc_e913dc32, TypeM>, Enc_88c16c { 14070 let Inst{7-5} = 0b111; 14071 let Inst{13-13} = 0b0; 14072 let Inst{31-21} = 0b11101010101; 14073 let prefersSlot3 = 1; 14074 let Defs = [USR_OVF]; 14075 let Constraints = "$Rxx32 = $Rxx32in"; 14076 } 14077 def M2_mmachs_s0 : HInst< 14078 (outs DoubleRegs:$Rxx32), 14079 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14080 "$Rxx32 += vmpywoh($Rss32,$Rtt32):sat", 14081 tc_e913dc32, TypeM>, Enc_88c16c { 14082 let Inst{7-5} = 0b111; 14083 let Inst{13-13} = 0b0; 14084 let Inst{31-21} = 0b11101010000; 14085 let prefersSlot3 = 1; 14086 let Defs = [USR_OVF]; 14087 let Constraints = "$Rxx32 = $Rxx32in"; 14088 } 14089 def M2_mmachs_s1 : HInst< 14090 (outs DoubleRegs:$Rxx32), 14091 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14092 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat", 14093 tc_e913dc32, TypeM>, Enc_88c16c { 14094 let Inst{7-5} = 0b111; 14095 let Inst{13-13} = 0b0; 14096 let Inst{31-21} = 0b11101010100; 14097 let prefersSlot3 = 1; 14098 let Defs = [USR_OVF]; 14099 let Constraints = "$Rxx32 = $Rxx32in"; 14100 } 14101 def M2_mmacls_rs0 : HInst< 14102 (outs DoubleRegs:$Rxx32), 14103 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14104 "$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat", 14105 tc_e913dc32, TypeM>, Enc_88c16c { 14106 let Inst{7-5} = 0b101; 14107 let Inst{13-13} = 0b0; 14108 let Inst{31-21} = 0b11101010001; 14109 let prefersSlot3 = 1; 14110 let Defs = [USR_OVF]; 14111 let Constraints = "$Rxx32 = $Rxx32in"; 14112 } 14113 def M2_mmacls_rs1 : HInst< 14114 (outs DoubleRegs:$Rxx32), 14115 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14116 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14117 tc_e913dc32, TypeM>, Enc_88c16c { 14118 let Inst{7-5} = 0b101; 14119 let Inst{13-13} = 0b0; 14120 let Inst{31-21} = 0b11101010101; 14121 let prefersSlot3 = 1; 14122 let Defs = [USR_OVF]; 14123 let Constraints = "$Rxx32 = $Rxx32in"; 14124 } 14125 def M2_mmacls_s0 : HInst< 14126 (outs DoubleRegs:$Rxx32), 14127 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14128 "$Rxx32 += vmpyweh($Rss32,$Rtt32):sat", 14129 tc_e913dc32, TypeM>, Enc_88c16c { 14130 let Inst{7-5} = 0b101; 14131 let Inst{13-13} = 0b0; 14132 let Inst{31-21} = 0b11101010000; 14133 let prefersSlot3 = 1; 14134 let Defs = [USR_OVF]; 14135 let Constraints = "$Rxx32 = $Rxx32in"; 14136 } 14137 def M2_mmacls_s1 : HInst< 14138 (outs DoubleRegs:$Rxx32), 14139 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14140 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat", 14141 tc_e913dc32, TypeM>, Enc_88c16c { 14142 let Inst{7-5} = 0b101; 14143 let Inst{13-13} = 0b0; 14144 let Inst{31-21} = 0b11101010100; 14145 let prefersSlot3 = 1; 14146 let Defs = [USR_OVF]; 14147 let Constraints = "$Rxx32 = $Rxx32in"; 14148 } 14149 def M2_mmacuhs_rs0 : HInst< 14150 (outs DoubleRegs:$Rxx32), 14151 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14152 "$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat", 14153 tc_e913dc32, TypeM>, Enc_88c16c { 14154 let Inst{7-5} = 0b111; 14155 let Inst{13-13} = 0b0; 14156 let Inst{31-21} = 0b11101010011; 14157 let prefersSlot3 = 1; 14158 let Defs = [USR_OVF]; 14159 let Constraints = "$Rxx32 = $Rxx32in"; 14160 } 14161 def M2_mmacuhs_rs1 : HInst< 14162 (outs DoubleRegs:$Rxx32), 14163 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14164 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14165 tc_e913dc32, TypeM>, Enc_88c16c { 14166 let Inst{7-5} = 0b111; 14167 let Inst{13-13} = 0b0; 14168 let Inst{31-21} = 0b11101010111; 14169 let prefersSlot3 = 1; 14170 let Defs = [USR_OVF]; 14171 let Constraints = "$Rxx32 = $Rxx32in"; 14172 } 14173 def M2_mmacuhs_s0 : HInst< 14174 (outs DoubleRegs:$Rxx32), 14175 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14176 "$Rxx32 += vmpywouh($Rss32,$Rtt32):sat", 14177 tc_e913dc32, TypeM>, Enc_88c16c { 14178 let Inst{7-5} = 0b111; 14179 let Inst{13-13} = 0b0; 14180 let Inst{31-21} = 0b11101010010; 14181 let prefersSlot3 = 1; 14182 let Defs = [USR_OVF]; 14183 let Constraints = "$Rxx32 = $Rxx32in"; 14184 } 14185 def M2_mmacuhs_s1 : HInst< 14186 (outs DoubleRegs:$Rxx32), 14187 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14188 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat", 14189 tc_e913dc32, TypeM>, Enc_88c16c { 14190 let Inst{7-5} = 0b111; 14191 let Inst{13-13} = 0b0; 14192 let Inst{31-21} = 0b11101010110; 14193 let prefersSlot3 = 1; 14194 let Defs = [USR_OVF]; 14195 let Constraints = "$Rxx32 = $Rxx32in"; 14196 } 14197 def M2_mmaculs_rs0 : HInst< 14198 (outs DoubleRegs:$Rxx32), 14199 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14200 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat", 14201 tc_e913dc32, TypeM>, Enc_88c16c { 14202 let Inst{7-5} = 0b101; 14203 let Inst{13-13} = 0b0; 14204 let Inst{31-21} = 0b11101010011; 14205 let prefersSlot3 = 1; 14206 let Defs = [USR_OVF]; 14207 let Constraints = "$Rxx32 = $Rxx32in"; 14208 } 14209 def M2_mmaculs_rs1 : HInst< 14210 (outs DoubleRegs:$Rxx32), 14211 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14212 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14213 tc_e913dc32, TypeM>, Enc_88c16c { 14214 let Inst{7-5} = 0b101; 14215 let Inst{13-13} = 0b0; 14216 let Inst{31-21} = 0b11101010111; 14217 let prefersSlot3 = 1; 14218 let Defs = [USR_OVF]; 14219 let Constraints = "$Rxx32 = $Rxx32in"; 14220 } 14221 def M2_mmaculs_s0 : HInst< 14222 (outs DoubleRegs:$Rxx32), 14223 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14224 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat", 14225 tc_e913dc32, TypeM>, Enc_88c16c { 14226 let Inst{7-5} = 0b101; 14227 let Inst{13-13} = 0b0; 14228 let Inst{31-21} = 0b11101010010; 14229 let prefersSlot3 = 1; 14230 let Defs = [USR_OVF]; 14231 let Constraints = "$Rxx32 = $Rxx32in"; 14232 } 14233 def M2_mmaculs_s1 : HInst< 14234 (outs DoubleRegs:$Rxx32), 14235 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14236 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat", 14237 tc_e913dc32, TypeM>, Enc_88c16c { 14238 let Inst{7-5} = 0b101; 14239 let Inst{13-13} = 0b0; 14240 let Inst{31-21} = 0b11101010110; 14241 let prefersSlot3 = 1; 14242 let Defs = [USR_OVF]; 14243 let Constraints = "$Rxx32 = $Rxx32in"; 14244 } 14245 def M2_mmpyh_rs0 : HInst< 14246 (outs DoubleRegs:$Rdd32), 14247 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14248 "$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat", 14249 tc_8fd5f294, TypeM>, Enc_a56825 { 14250 let Inst{7-5} = 0b111; 14251 let Inst{13-13} = 0b0; 14252 let Inst{31-21} = 0b11101000001; 14253 let prefersSlot3 = 1; 14254 let Defs = [USR_OVF]; 14255 } 14256 def M2_mmpyh_rs1 : HInst< 14257 (outs DoubleRegs:$Rdd32), 14258 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14259 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14260 tc_8fd5f294, TypeM>, Enc_a56825 { 14261 let Inst{7-5} = 0b111; 14262 let Inst{13-13} = 0b0; 14263 let Inst{31-21} = 0b11101000101; 14264 let prefersSlot3 = 1; 14265 let Defs = [USR_OVF]; 14266 } 14267 def M2_mmpyh_s0 : HInst< 14268 (outs DoubleRegs:$Rdd32), 14269 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14270 "$Rdd32 = vmpywoh($Rss32,$Rtt32):sat", 14271 tc_8fd5f294, TypeM>, Enc_a56825 { 14272 let Inst{7-5} = 0b111; 14273 let Inst{13-13} = 0b0; 14274 let Inst{31-21} = 0b11101000000; 14275 let prefersSlot3 = 1; 14276 let Defs = [USR_OVF]; 14277 } 14278 def M2_mmpyh_s1 : HInst< 14279 (outs DoubleRegs:$Rdd32), 14280 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14281 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat", 14282 tc_8fd5f294, TypeM>, Enc_a56825 { 14283 let Inst{7-5} = 0b111; 14284 let Inst{13-13} = 0b0; 14285 let Inst{31-21} = 0b11101000100; 14286 let prefersSlot3 = 1; 14287 let Defs = [USR_OVF]; 14288 } 14289 def M2_mmpyl_rs0 : HInst< 14290 (outs DoubleRegs:$Rdd32), 14291 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14292 "$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat", 14293 tc_8fd5f294, TypeM>, Enc_a56825 { 14294 let Inst{7-5} = 0b101; 14295 let Inst{13-13} = 0b0; 14296 let Inst{31-21} = 0b11101000001; 14297 let prefersSlot3 = 1; 14298 let Defs = [USR_OVF]; 14299 } 14300 def M2_mmpyl_rs1 : HInst< 14301 (outs DoubleRegs:$Rdd32), 14302 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14303 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14304 tc_8fd5f294, TypeM>, Enc_a56825 { 14305 let Inst{7-5} = 0b101; 14306 let Inst{13-13} = 0b0; 14307 let Inst{31-21} = 0b11101000101; 14308 let prefersSlot3 = 1; 14309 let Defs = [USR_OVF]; 14310 } 14311 def M2_mmpyl_s0 : HInst< 14312 (outs DoubleRegs:$Rdd32), 14313 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14314 "$Rdd32 = vmpyweh($Rss32,$Rtt32):sat", 14315 tc_8fd5f294, TypeM>, Enc_a56825 { 14316 let Inst{7-5} = 0b101; 14317 let Inst{13-13} = 0b0; 14318 let Inst{31-21} = 0b11101000000; 14319 let prefersSlot3 = 1; 14320 let Defs = [USR_OVF]; 14321 } 14322 def M2_mmpyl_s1 : HInst< 14323 (outs DoubleRegs:$Rdd32), 14324 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14325 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat", 14326 tc_8fd5f294, TypeM>, Enc_a56825 { 14327 let Inst{7-5} = 0b101; 14328 let Inst{13-13} = 0b0; 14329 let Inst{31-21} = 0b11101000100; 14330 let prefersSlot3 = 1; 14331 let Defs = [USR_OVF]; 14332 } 14333 def M2_mmpyuh_rs0 : HInst< 14334 (outs DoubleRegs:$Rdd32), 14335 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14336 "$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat", 14337 tc_8fd5f294, TypeM>, Enc_a56825 { 14338 let Inst{7-5} = 0b111; 14339 let Inst{13-13} = 0b0; 14340 let Inst{31-21} = 0b11101000011; 14341 let prefersSlot3 = 1; 14342 let Defs = [USR_OVF]; 14343 } 14344 def M2_mmpyuh_rs1 : HInst< 14345 (outs DoubleRegs:$Rdd32), 14346 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14347 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14348 tc_8fd5f294, TypeM>, Enc_a56825 { 14349 let Inst{7-5} = 0b111; 14350 let Inst{13-13} = 0b0; 14351 let Inst{31-21} = 0b11101000111; 14352 let prefersSlot3 = 1; 14353 let Defs = [USR_OVF]; 14354 } 14355 def M2_mmpyuh_s0 : HInst< 14356 (outs DoubleRegs:$Rdd32), 14357 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14358 "$Rdd32 = vmpywouh($Rss32,$Rtt32):sat", 14359 tc_8fd5f294, TypeM>, Enc_a56825 { 14360 let Inst{7-5} = 0b111; 14361 let Inst{13-13} = 0b0; 14362 let Inst{31-21} = 0b11101000010; 14363 let prefersSlot3 = 1; 14364 let Defs = [USR_OVF]; 14365 } 14366 def M2_mmpyuh_s1 : HInst< 14367 (outs DoubleRegs:$Rdd32), 14368 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14369 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat", 14370 tc_8fd5f294, TypeM>, Enc_a56825 { 14371 let Inst{7-5} = 0b111; 14372 let Inst{13-13} = 0b0; 14373 let Inst{31-21} = 0b11101000110; 14374 let prefersSlot3 = 1; 14375 let Defs = [USR_OVF]; 14376 } 14377 def M2_mmpyul_rs0 : HInst< 14378 (outs DoubleRegs:$Rdd32), 14379 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14380 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat", 14381 tc_8fd5f294, TypeM>, Enc_a56825 { 14382 let Inst{7-5} = 0b101; 14383 let Inst{13-13} = 0b0; 14384 let Inst{31-21} = 0b11101000011; 14385 let prefersSlot3 = 1; 14386 let Defs = [USR_OVF]; 14387 } 14388 def M2_mmpyul_rs1 : HInst< 14389 (outs DoubleRegs:$Rdd32), 14390 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14391 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14392 tc_8fd5f294, TypeM>, Enc_a56825 { 14393 let Inst{7-5} = 0b101; 14394 let Inst{13-13} = 0b0; 14395 let Inst{31-21} = 0b11101000111; 14396 let prefersSlot3 = 1; 14397 let Defs = [USR_OVF]; 14398 } 14399 def M2_mmpyul_s0 : HInst< 14400 (outs DoubleRegs:$Rdd32), 14401 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14402 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat", 14403 tc_8fd5f294, TypeM>, Enc_a56825 { 14404 let Inst{7-5} = 0b101; 14405 let Inst{13-13} = 0b0; 14406 let Inst{31-21} = 0b11101000010; 14407 let prefersSlot3 = 1; 14408 let Defs = [USR_OVF]; 14409 } 14410 def M2_mmpyul_s1 : HInst< 14411 (outs DoubleRegs:$Rdd32), 14412 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14413 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat", 14414 tc_8fd5f294, TypeM>, Enc_a56825 { 14415 let Inst{7-5} = 0b101; 14416 let Inst{13-13} = 0b0; 14417 let Inst{31-21} = 0b11101000110; 14418 let prefersSlot3 = 1; 14419 let Defs = [USR_OVF]; 14420 } 14421 def M2_mpy_acc_hh_s0 : HInst< 14422 (outs IntRegs:$Rx32), 14423 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14424 "$Rx32 += mpy($Rs32.h,$Rt32.h)", 14425 tc_e913dc32, TypeM>, Enc_2ae154 { 14426 let Inst{7-5} = 0b011; 14427 let Inst{13-13} = 0b0; 14428 let Inst{31-21} = 0b11101110000; 14429 let hasNewValue = 1; 14430 let opNewValue = 0; 14431 let prefersSlot3 = 1; 14432 let Constraints = "$Rx32 = $Rx32in"; 14433 } 14434 def M2_mpy_acc_hh_s1 : HInst< 14435 (outs IntRegs:$Rx32), 14436 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14437 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1", 14438 tc_e913dc32, TypeM>, Enc_2ae154 { 14439 let Inst{7-5} = 0b011; 14440 let Inst{13-13} = 0b0; 14441 let Inst{31-21} = 0b11101110100; 14442 let hasNewValue = 1; 14443 let opNewValue = 0; 14444 let prefersSlot3 = 1; 14445 let Constraints = "$Rx32 = $Rx32in"; 14446 } 14447 def M2_mpy_acc_hl_s0 : HInst< 14448 (outs IntRegs:$Rx32), 14449 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14450 "$Rx32 += mpy($Rs32.h,$Rt32.l)", 14451 tc_e913dc32, TypeM>, Enc_2ae154 { 14452 let Inst{7-5} = 0b010; 14453 let Inst{13-13} = 0b0; 14454 let Inst{31-21} = 0b11101110000; 14455 let hasNewValue = 1; 14456 let opNewValue = 0; 14457 let prefersSlot3 = 1; 14458 let Constraints = "$Rx32 = $Rx32in"; 14459 } 14460 def M2_mpy_acc_hl_s1 : HInst< 14461 (outs IntRegs:$Rx32), 14462 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14463 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1", 14464 tc_e913dc32, TypeM>, Enc_2ae154 { 14465 let Inst{7-5} = 0b010; 14466 let Inst{13-13} = 0b0; 14467 let Inst{31-21} = 0b11101110100; 14468 let hasNewValue = 1; 14469 let opNewValue = 0; 14470 let prefersSlot3 = 1; 14471 let Constraints = "$Rx32 = $Rx32in"; 14472 } 14473 def M2_mpy_acc_lh_s0 : HInst< 14474 (outs IntRegs:$Rx32), 14475 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14476 "$Rx32 += mpy($Rs32.l,$Rt32.h)", 14477 tc_e913dc32, TypeM>, Enc_2ae154 { 14478 let Inst{7-5} = 0b001; 14479 let Inst{13-13} = 0b0; 14480 let Inst{31-21} = 0b11101110000; 14481 let hasNewValue = 1; 14482 let opNewValue = 0; 14483 let prefersSlot3 = 1; 14484 let Constraints = "$Rx32 = $Rx32in"; 14485 } 14486 def M2_mpy_acc_lh_s1 : HInst< 14487 (outs IntRegs:$Rx32), 14488 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14489 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1", 14490 tc_e913dc32, TypeM>, Enc_2ae154 { 14491 let Inst{7-5} = 0b001; 14492 let Inst{13-13} = 0b0; 14493 let Inst{31-21} = 0b11101110100; 14494 let hasNewValue = 1; 14495 let opNewValue = 0; 14496 let prefersSlot3 = 1; 14497 let Constraints = "$Rx32 = $Rx32in"; 14498 } 14499 def M2_mpy_acc_ll_s0 : HInst< 14500 (outs IntRegs:$Rx32), 14501 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14502 "$Rx32 += mpy($Rs32.l,$Rt32.l)", 14503 tc_e913dc32, TypeM>, Enc_2ae154 { 14504 let Inst{7-5} = 0b000; 14505 let Inst{13-13} = 0b0; 14506 let Inst{31-21} = 0b11101110000; 14507 let hasNewValue = 1; 14508 let opNewValue = 0; 14509 let prefersSlot3 = 1; 14510 let Constraints = "$Rx32 = $Rx32in"; 14511 } 14512 def M2_mpy_acc_ll_s1 : HInst< 14513 (outs IntRegs:$Rx32), 14514 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14515 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1", 14516 tc_e913dc32, TypeM>, Enc_2ae154 { 14517 let Inst{7-5} = 0b000; 14518 let Inst{13-13} = 0b0; 14519 let Inst{31-21} = 0b11101110100; 14520 let hasNewValue = 1; 14521 let opNewValue = 0; 14522 let prefersSlot3 = 1; 14523 let Constraints = "$Rx32 = $Rx32in"; 14524 } 14525 def M2_mpy_acc_sat_hh_s0 : HInst< 14526 (outs IntRegs:$Rx32), 14527 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14528 "$Rx32 += mpy($Rs32.h,$Rt32.h):sat", 14529 tc_e913dc32, TypeM>, Enc_2ae154 { 14530 let Inst{7-5} = 0b111; 14531 let Inst{13-13} = 0b0; 14532 let Inst{31-21} = 0b11101110000; 14533 let hasNewValue = 1; 14534 let opNewValue = 0; 14535 let prefersSlot3 = 1; 14536 let Defs = [USR_OVF]; 14537 let Constraints = "$Rx32 = $Rx32in"; 14538 } 14539 def M2_mpy_acc_sat_hh_s1 : HInst< 14540 (outs IntRegs:$Rx32), 14541 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14542 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat", 14543 tc_e913dc32, TypeM>, Enc_2ae154 { 14544 let Inst{7-5} = 0b111; 14545 let Inst{13-13} = 0b0; 14546 let Inst{31-21} = 0b11101110100; 14547 let hasNewValue = 1; 14548 let opNewValue = 0; 14549 let prefersSlot3 = 1; 14550 let Defs = [USR_OVF]; 14551 let Constraints = "$Rx32 = $Rx32in"; 14552 } 14553 def M2_mpy_acc_sat_hl_s0 : HInst< 14554 (outs IntRegs:$Rx32), 14555 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14556 "$Rx32 += mpy($Rs32.h,$Rt32.l):sat", 14557 tc_e913dc32, TypeM>, Enc_2ae154 { 14558 let Inst{7-5} = 0b110; 14559 let Inst{13-13} = 0b0; 14560 let Inst{31-21} = 0b11101110000; 14561 let hasNewValue = 1; 14562 let opNewValue = 0; 14563 let prefersSlot3 = 1; 14564 let Defs = [USR_OVF]; 14565 let Constraints = "$Rx32 = $Rx32in"; 14566 } 14567 def M2_mpy_acc_sat_hl_s1 : HInst< 14568 (outs IntRegs:$Rx32), 14569 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14570 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat", 14571 tc_e913dc32, TypeM>, Enc_2ae154 { 14572 let Inst{7-5} = 0b110; 14573 let Inst{13-13} = 0b0; 14574 let Inst{31-21} = 0b11101110100; 14575 let hasNewValue = 1; 14576 let opNewValue = 0; 14577 let prefersSlot3 = 1; 14578 let Defs = [USR_OVF]; 14579 let Constraints = "$Rx32 = $Rx32in"; 14580 } 14581 def M2_mpy_acc_sat_lh_s0 : HInst< 14582 (outs IntRegs:$Rx32), 14583 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14584 "$Rx32 += mpy($Rs32.l,$Rt32.h):sat", 14585 tc_e913dc32, TypeM>, Enc_2ae154 { 14586 let Inst{7-5} = 0b101; 14587 let Inst{13-13} = 0b0; 14588 let Inst{31-21} = 0b11101110000; 14589 let hasNewValue = 1; 14590 let opNewValue = 0; 14591 let prefersSlot3 = 1; 14592 let Defs = [USR_OVF]; 14593 let Constraints = "$Rx32 = $Rx32in"; 14594 } 14595 def M2_mpy_acc_sat_lh_s1 : HInst< 14596 (outs IntRegs:$Rx32), 14597 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14598 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat", 14599 tc_e913dc32, TypeM>, Enc_2ae154 { 14600 let Inst{7-5} = 0b101; 14601 let Inst{13-13} = 0b0; 14602 let Inst{31-21} = 0b11101110100; 14603 let hasNewValue = 1; 14604 let opNewValue = 0; 14605 let prefersSlot3 = 1; 14606 let Defs = [USR_OVF]; 14607 let Constraints = "$Rx32 = $Rx32in"; 14608 } 14609 def M2_mpy_acc_sat_ll_s0 : HInst< 14610 (outs IntRegs:$Rx32), 14611 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14612 "$Rx32 += mpy($Rs32.l,$Rt32.l):sat", 14613 tc_e913dc32, TypeM>, Enc_2ae154 { 14614 let Inst{7-5} = 0b100; 14615 let Inst{13-13} = 0b0; 14616 let Inst{31-21} = 0b11101110000; 14617 let hasNewValue = 1; 14618 let opNewValue = 0; 14619 let prefersSlot3 = 1; 14620 let Defs = [USR_OVF]; 14621 let Constraints = "$Rx32 = $Rx32in"; 14622 } 14623 def M2_mpy_acc_sat_ll_s1 : HInst< 14624 (outs IntRegs:$Rx32), 14625 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14626 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat", 14627 tc_e913dc32, TypeM>, Enc_2ae154 { 14628 let Inst{7-5} = 0b100; 14629 let Inst{13-13} = 0b0; 14630 let Inst{31-21} = 0b11101110100; 14631 let hasNewValue = 1; 14632 let opNewValue = 0; 14633 let prefersSlot3 = 1; 14634 let Defs = [USR_OVF]; 14635 let Constraints = "$Rx32 = $Rx32in"; 14636 } 14637 def M2_mpy_hh_s0 : HInst< 14638 (outs IntRegs:$Rd32), 14639 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14640 "$Rd32 = mpy($Rs32.h,$Rt32.h)", 14641 tc_8fd5f294, TypeM>, Enc_5ab2be { 14642 let Inst{7-5} = 0b011; 14643 let Inst{13-13} = 0b0; 14644 let Inst{31-21} = 0b11101100000; 14645 let hasNewValue = 1; 14646 let opNewValue = 0; 14647 let prefersSlot3 = 1; 14648 } 14649 def M2_mpy_hh_s1 : HInst< 14650 (outs IntRegs:$Rd32), 14651 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14652 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1", 14653 tc_8fd5f294, TypeM>, Enc_5ab2be { 14654 let Inst{7-5} = 0b011; 14655 let Inst{13-13} = 0b0; 14656 let Inst{31-21} = 0b11101100100; 14657 let hasNewValue = 1; 14658 let opNewValue = 0; 14659 let prefersSlot3 = 1; 14660 } 14661 def M2_mpy_hl_s0 : HInst< 14662 (outs IntRegs:$Rd32), 14663 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14664 "$Rd32 = mpy($Rs32.h,$Rt32.l)", 14665 tc_8fd5f294, TypeM>, Enc_5ab2be { 14666 let Inst{7-5} = 0b010; 14667 let Inst{13-13} = 0b0; 14668 let Inst{31-21} = 0b11101100000; 14669 let hasNewValue = 1; 14670 let opNewValue = 0; 14671 let prefersSlot3 = 1; 14672 } 14673 def M2_mpy_hl_s1 : HInst< 14674 (outs IntRegs:$Rd32), 14675 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14676 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1", 14677 tc_8fd5f294, TypeM>, Enc_5ab2be { 14678 let Inst{7-5} = 0b010; 14679 let Inst{13-13} = 0b0; 14680 let Inst{31-21} = 0b11101100100; 14681 let hasNewValue = 1; 14682 let opNewValue = 0; 14683 let prefersSlot3 = 1; 14684 } 14685 def M2_mpy_lh_s0 : HInst< 14686 (outs IntRegs:$Rd32), 14687 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14688 "$Rd32 = mpy($Rs32.l,$Rt32.h)", 14689 tc_8fd5f294, TypeM>, Enc_5ab2be { 14690 let Inst{7-5} = 0b001; 14691 let Inst{13-13} = 0b0; 14692 let Inst{31-21} = 0b11101100000; 14693 let hasNewValue = 1; 14694 let opNewValue = 0; 14695 let prefersSlot3 = 1; 14696 } 14697 def M2_mpy_lh_s1 : HInst< 14698 (outs IntRegs:$Rd32), 14699 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14700 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1", 14701 tc_8fd5f294, TypeM>, Enc_5ab2be { 14702 let Inst{7-5} = 0b001; 14703 let Inst{13-13} = 0b0; 14704 let Inst{31-21} = 0b11101100100; 14705 let hasNewValue = 1; 14706 let opNewValue = 0; 14707 let prefersSlot3 = 1; 14708 } 14709 def M2_mpy_ll_s0 : HInst< 14710 (outs IntRegs:$Rd32), 14711 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14712 "$Rd32 = mpy($Rs32.l,$Rt32.l)", 14713 tc_8fd5f294, TypeM>, Enc_5ab2be { 14714 let Inst{7-5} = 0b000; 14715 let Inst{13-13} = 0b0; 14716 let Inst{31-21} = 0b11101100000; 14717 let hasNewValue = 1; 14718 let opNewValue = 0; 14719 let prefersSlot3 = 1; 14720 } 14721 def M2_mpy_ll_s1 : HInst< 14722 (outs IntRegs:$Rd32), 14723 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14724 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1", 14725 tc_8fd5f294, TypeM>, Enc_5ab2be { 14726 let Inst{7-5} = 0b000; 14727 let Inst{13-13} = 0b0; 14728 let Inst{31-21} = 0b11101100100; 14729 let hasNewValue = 1; 14730 let opNewValue = 0; 14731 let prefersSlot3 = 1; 14732 } 14733 def M2_mpy_nac_hh_s0 : HInst< 14734 (outs IntRegs:$Rx32), 14735 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14736 "$Rx32 -= mpy($Rs32.h,$Rt32.h)", 14737 tc_e913dc32, TypeM>, Enc_2ae154 { 14738 let Inst{7-5} = 0b011; 14739 let Inst{13-13} = 0b0; 14740 let Inst{31-21} = 0b11101110001; 14741 let hasNewValue = 1; 14742 let opNewValue = 0; 14743 let prefersSlot3 = 1; 14744 let Constraints = "$Rx32 = $Rx32in"; 14745 } 14746 def M2_mpy_nac_hh_s1 : HInst< 14747 (outs IntRegs:$Rx32), 14748 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14749 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1", 14750 tc_e913dc32, TypeM>, Enc_2ae154 { 14751 let Inst{7-5} = 0b011; 14752 let Inst{13-13} = 0b0; 14753 let Inst{31-21} = 0b11101110101; 14754 let hasNewValue = 1; 14755 let opNewValue = 0; 14756 let prefersSlot3 = 1; 14757 let Constraints = "$Rx32 = $Rx32in"; 14758 } 14759 def M2_mpy_nac_hl_s0 : HInst< 14760 (outs IntRegs:$Rx32), 14761 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14762 "$Rx32 -= mpy($Rs32.h,$Rt32.l)", 14763 tc_e913dc32, TypeM>, Enc_2ae154 { 14764 let Inst{7-5} = 0b010; 14765 let Inst{13-13} = 0b0; 14766 let Inst{31-21} = 0b11101110001; 14767 let hasNewValue = 1; 14768 let opNewValue = 0; 14769 let prefersSlot3 = 1; 14770 let Constraints = "$Rx32 = $Rx32in"; 14771 } 14772 def M2_mpy_nac_hl_s1 : HInst< 14773 (outs IntRegs:$Rx32), 14774 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14775 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1", 14776 tc_e913dc32, TypeM>, Enc_2ae154 { 14777 let Inst{7-5} = 0b010; 14778 let Inst{13-13} = 0b0; 14779 let Inst{31-21} = 0b11101110101; 14780 let hasNewValue = 1; 14781 let opNewValue = 0; 14782 let prefersSlot3 = 1; 14783 let Constraints = "$Rx32 = $Rx32in"; 14784 } 14785 def M2_mpy_nac_lh_s0 : HInst< 14786 (outs IntRegs:$Rx32), 14787 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14788 "$Rx32 -= mpy($Rs32.l,$Rt32.h)", 14789 tc_e913dc32, TypeM>, Enc_2ae154 { 14790 let Inst{7-5} = 0b001; 14791 let Inst{13-13} = 0b0; 14792 let Inst{31-21} = 0b11101110001; 14793 let hasNewValue = 1; 14794 let opNewValue = 0; 14795 let prefersSlot3 = 1; 14796 let Constraints = "$Rx32 = $Rx32in"; 14797 } 14798 def M2_mpy_nac_lh_s1 : HInst< 14799 (outs IntRegs:$Rx32), 14800 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14801 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1", 14802 tc_e913dc32, TypeM>, Enc_2ae154 { 14803 let Inst{7-5} = 0b001; 14804 let Inst{13-13} = 0b0; 14805 let Inst{31-21} = 0b11101110101; 14806 let hasNewValue = 1; 14807 let opNewValue = 0; 14808 let prefersSlot3 = 1; 14809 let Constraints = "$Rx32 = $Rx32in"; 14810 } 14811 def M2_mpy_nac_ll_s0 : HInst< 14812 (outs IntRegs:$Rx32), 14813 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14814 "$Rx32 -= mpy($Rs32.l,$Rt32.l)", 14815 tc_e913dc32, TypeM>, Enc_2ae154 { 14816 let Inst{7-5} = 0b000; 14817 let Inst{13-13} = 0b0; 14818 let Inst{31-21} = 0b11101110001; 14819 let hasNewValue = 1; 14820 let opNewValue = 0; 14821 let prefersSlot3 = 1; 14822 let Constraints = "$Rx32 = $Rx32in"; 14823 } 14824 def M2_mpy_nac_ll_s1 : HInst< 14825 (outs IntRegs:$Rx32), 14826 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14827 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1", 14828 tc_e913dc32, TypeM>, Enc_2ae154 { 14829 let Inst{7-5} = 0b000; 14830 let Inst{13-13} = 0b0; 14831 let Inst{31-21} = 0b11101110101; 14832 let hasNewValue = 1; 14833 let opNewValue = 0; 14834 let prefersSlot3 = 1; 14835 let Constraints = "$Rx32 = $Rx32in"; 14836 } 14837 def M2_mpy_nac_sat_hh_s0 : HInst< 14838 (outs IntRegs:$Rx32), 14839 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14840 "$Rx32 -= mpy($Rs32.h,$Rt32.h):sat", 14841 tc_e913dc32, TypeM>, Enc_2ae154 { 14842 let Inst{7-5} = 0b111; 14843 let Inst{13-13} = 0b0; 14844 let Inst{31-21} = 0b11101110001; 14845 let hasNewValue = 1; 14846 let opNewValue = 0; 14847 let prefersSlot3 = 1; 14848 let Defs = [USR_OVF]; 14849 let Constraints = "$Rx32 = $Rx32in"; 14850 } 14851 def M2_mpy_nac_sat_hh_s1 : HInst< 14852 (outs IntRegs:$Rx32), 14853 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14854 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat", 14855 tc_e913dc32, TypeM>, Enc_2ae154 { 14856 let Inst{7-5} = 0b111; 14857 let Inst{13-13} = 0b0; 14858 let Inst{31-21} = 0b11101110101; 14859 let hasNewValue = 1; 14860 let opNewValue = 0; 14861 let prefersSlot3 = 1; 14862 let Defs = [USR_OVF]; 14863 let Constraints = "$Rx32 = $Rx32in"; 14864 } 14865 def M2_mpy_nac_sat_hl_s0 : HInst< 14866 (outs IntRegs:$Rx32), 14867 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14868 "$Rx32 -= mpy($Rs32.h,$Rt32.l):sat", 14869 tc_e913dc32, TypeM>, Enc_2ae154 { 14870 let Inst{7-5} = 0b110; 14871 let Inst{13-13} = 0b0; 14872 let Inst{31-21} = 0b11101110001; 14873 let hasNewValue = 1; 14874 let opNewValue = 0; 14875 let prefersSlot3 = 1; 14876 let Defs = [USR_OVF]; 14877 let Constraints = "$Rx32 = $Rx32in"; 14878 } 14879 def M2_mpy_nac_sat_hl_s1 : HInst< 14880 (outs IntRegs:$Rx32), 14881 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14882 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat", 14883 tc_e913dc32, TypeM>, Enc_2ae154 { 14884 let Inst{7-5} = 0b110; 14885 let Inst{13-13} = 0b0; 14886 let Inst{31-21} = 0b11101110101; 14887 let hasNewValue = 1; 14888 let opNewValue = 0; 14889 let prefersSlot3 = 1; 14890 let Defs = [USR_OVF]; 14891 let Constraints = "$Rx32 = $Rx32in"; 14892 } 14893 def M2_mpy_nac_sat_lh_s0 : HInst< 14894 (outs IntRegs:$Rx32), 14895 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14896 "$Rx32 -= mpy($Rs32.l,$Rt32.h):sat", 14897 tc_e913dc32, TypeM>, Enc_2ae154 { 14898 let Inst{7-5} = 0b101; 14899 let Inst{13-13} = 0b0; 14900 let Inst{31-21} = 0b11101110001; 14901 let hasNewValue = 1; 14902 let opNewValue = 0; 14903 let prefersSlot3 = 1; 14904 let Defs = [USR_OVF]; 14905 let Constraints = "$Rx32 = $Rx32in"; 14906 } 14907 def M2_mpy_nac_sat_lh_s1 : HInst< 14908 (outs IntRegs:$Rx32), 14909 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14910 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat", 14911 tc_e913dc32, TypeM>, Enc_2ae154 { 14912 let Inst{7-5} = 0b101; 14913 let Inst{13-13} = 0b0; 14914 let Inst{31-21} = 0b11101110101; 14915 let hasNewValue = 1; 14916 let opNewValue = 0; 14917 let prefersSlot3 = 1; 14918 let Defs = [USR_OVF]; 14919 let Constraints = "$Rx32 = $Rx32in"; 14920 } 14921 def M2_mpy_nac_sat_ll_s0 : HInst< 14922 (outs IntRegs:$Rx32), 14923 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14924 "$Rx32 -= mpy($Rs32.l,$Rt32.l):sat", 14925 tc_e913dc32, TypeM>, Enc_2ae154 { 14926 let Inst{7-5} = 0b100; 14927 let Inst{13-13} = 0b0; 14928 let Inst{31-21} = 0b11101110001; 14929 let hasNewValue = 1; 14930 let opNewValue = 0; 14931 let prefersSlot3 = 1; 14932 let Defs = [USR_OVF]; 14933 let Constraints = "$Rx32 = $Rx32in"; 14934 } 14935 def M2_mpy_nac_sat_ll_s1 : HInst< 14936 (outs IntRegs:$Rx32), 14937 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14938 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat", 14939 tc_e913dc32, TypeM>, Enc_2ae154 { 14940 let Inst{7-5} = 0b100; 14941 let Inst{13-13} = 0b0; 14942 let Inst{31-21} = 0b11101110101; 14943 let hasNewValue = 1; 14944 let opNewValue = 0; 14945 let prefersSlot3 = 1; 14946 let Defs = [USR_OVF]; 14947 let Constraints = "$Rx32 = $Rx32in"; 14948 } 14949 def M2_mpy_rnd_hh_s0 : HInst< 14950 (outs IntRegs:$Rd32), 14951 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14952 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd", 14953 tc_8fd5f294, TypeM>, Enc_5ab2be { 14954 let Inst{7-5} = 0b011; 14955 let Inst{13-13} = 0b0; 14956 let Inst{31-21} = 0b11101100001; 14957 let hasNewValue = 1; 14958 let opNewValue = 0; 14959 let prefersSlot3 = 1; 14960 } 14961 def M2_mpy_rnd_hh_s1 : HInst< 14962 (outs IntRegs:$Rd32), 14963 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14964 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 14965 tc_8fd5f294, TypeM>, Enc_5ab2be { 14966 let Inst{7-5} = 0b011; 14967 let Inst{13-13} = 0b0; 14968 let Inst{31-21} = 0b11101100101; 14969 let hasNewValue = 1; 14970 let opNewValue = 0; 14971 let prefersSlot3 = 1; 14972 } 14973 def M2_mpy_rnd_hl_s0 : HInst< 14974 (outs IntRegs:$Rd32), 14975 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14976 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd", 14977 tc_8fd5f294, TypeM>, Enc_5ab2be { 14978 let Inst{7-5} = 0b010; 14979 let Inst{13-13} = 0b0; 14980 let Inst{31-21} = 0b11101100001; 14981 let hasNewValue = 1; 14982 let opNewValue = 0; 14983 let prefersSlot3 = 1; 14984 } 14985 def M2_mpy_rnd_hl_s1 : HInst< 14986 (outs IntRegs:$Rd32), 14987 (ins IntRegs:$Rs32, IntRegs:$Rt32), 14988 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 14989 tc_8fd5f294, TypeM>, Enc_5ab2be { 14990 let Inst{7-5} = 0b010; 14991 let Inst{13-13} = 0b0; 14992 let Inst{31-21} = 0b11101100101; 14993 let hasNewValue = 1; 14994 let opNewValue = 0; 14995 let prefersSlot3 = 1; 14996 } 14997 def M2_mpy_rnd_lh_s0 : HInst< 14998 (outs IntRegs:$Rd32), 14999 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15000 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd", 15001 tc_8fd5f294, TypeM>, Enc_5ab2be { 15002 let Inst{7-5} = 0b001; 15003 let Inst{13-13} = 0b0; 15004 let Inst{31-21} = 0b11101100001; 15005 let hasNewValue = 1; 15006 let opNewValue = 0; 15007 let prefersSlot3 = 1; 15008 } 15009 def M2_mpy_rnd_lh_s1 : HInst< 15010 (outs IntRegs:$Rd32), 15011 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15012 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15013 tc_8fd5f294, TypeM>, Enc_5ab2be { 15014 let Inst{7-5} = 0b001; 15015 let Inst{13-13} = 0b0; 15016 let Inst{31-21} = 0b11101100101; 15017 let hasNewValue = 1; 15018 let opNewValue = 0; 15019 let prefersSlot3 = 1; 15020 } 15021 def M2_mpy_rnd_ll_s0 : HInst< 15022 (outs IntRegs:$Rd32), 15023 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15024 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd", 15025 tc_8fd5f294, TypeM>, Enc_5ab2be { 15026 let Inst{7-5} = 0b000; 15027 let Inst{13-13} = 0b0; 15028 let Inst{31-21} = 0b11101100001; 15029 let hasNewValue = 1; 15030 let opNewValue = 0; 15031 let prefersSlot3 = 1; 15032 } 15033 def M2_mpy_rnd_ll_s1 : HInst< 15034 (outs IntRegs:$Rd32), 15035 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15036 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15037 tc_8fd5f294, TypeM>, Enc_5ab2be { 15038 let Inst{7-5} = 0b000; 15039 let Inst{13-13} = 0b0; 15040 let Inst{31-21} = 0b11101100101; 15041 let hasNewValue = 1; 15042 let opNewValue = 0; 15043 let prefersSlot3 = 1; 15044 } 15045 def M2_mpy_sat_hh_s0 : HInst< 15046 (outs IntRegs:$Rd32), 15047 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15048 "$Rd32 = mpy($Rs32.h,$Rt32.h):sat", 15049 tc_8fd5f294, TypeM>, Enc_5ab2be { 15050 let Inst{7-5} = 0b111; 15051 let Inst{13-13} = 0b0; 15052 let Inst{31-21} = 0b11101100000; 15053 let hasNewValue = 1; 15054 let opNewValue = 0; 15055 let prefersSlot3 = 1; 15056 let Defs = [USR_OVF]; 15057 } 15058 def M2_mpy_sat_hh_s1 : HInst< 15059 (outs IntRegs:$Rd32), 15060 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15061 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat", 15062 tc_8fd5f294, TypeM>, Enc_5ab2be { 15063 let Inst{7-5} = 0b111; 15064 let Inst{13-13} = 0b0; 15065 let Inst{31-21} = 0b11101100100; 15066 let hasNewValue = 1; 15067 let opNewValue = 0; 15068 let prefersSlot3 = 1; 15069 let Defs = [USR_OVF]; 15070 } 15071 def M2_mpy_sat_hl_s0 : HInst< 15072 (outs IntRegs:$Rd32), 15073 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15074 "$Rd32 = mpy($Rs32.h,$Rt32.l):sat", 15075 tc_8fd5f294, TypeM>, Enc_5ab2be { 15076 let Inst{7-5} = 0b110; 15077 let Inst{13-13} = 0b0; 15078 let Inst{31-21} = 0b11101100000; 15079 let hasNewValue = 1; 15080 let opNewValue = 0; 15081 let prefersSlot3 = 1; 15082 let Defs = [USR_OVF]; 15083 } 15084 def M2_mpy_sat_hl_s1 : HInst< 15085 (outs IntRegs:$Rd32), 15086 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15087 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat", 15088 tc_8fd5f294, TypeM>, Enc_5ab2be { 15089 let Inst{7-5} = 0b110; 15090 let Inst{13-13} = 0b0; 15091 let Inst{31-21} = 0b11101100100; 15092 let hasNewValue = 1; 15093 let opNewValue = 0; 15094 let prefersSlot3 = 1; 15095 let Defs = [USR_OVF]; 15096 } 15097 def M2_mpy_sat_lh_s0 : HInst< 15098 (outs IntRegs:$Rd32), 15099 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15100 "$Rd32 = mpy($Rs32.l,$Rt32.h):sat", 15101 tc_8fd5f294, TypeM>, Enc_5ab2be { 15102 let Inst{7-5} = 0b101; 15103 let Inst{13-13} = 0b0; 15104 let Inst{31-21} = 0b11101100000; 15105 let hasNewValue = 1; 15106 let opNewValue = 0; 15107 let prefersSlot3 = 1; 15108 let Defs = [USR_OVF]; 15109 } 15110 def M2_mpy_sat_lh_s1 : HInst< 15111 (outs IntRegs:$Rd32), 15112 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15113 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat", 15114 tc_8fd5f294, TypeM>, Enc_5ab2be { 15115 let Inst{7-5} = 0b101; 15116 let Inst{13-13} = 0b0; 15117 let Inst{31-21} = 0b11101100100; 15118 let hasNewValue = 1; 15119 let opNewValue = 0; 15120 let prefersSlot3 = 1; 15121 let Defs = [USR_OVF]; 15122 } 15123 def M2_mpy_sat_ll_s0 : HInst< 15124 (outs IntRegs:$Rd32), 15125 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15126 "$Rd32 = mpy($Rs32.l,$Rt32.l):sat", 15127 tc_8fd5f294, TypeM>, Enc_5ab2be { 15128 let Inst{7-5} = 0b100; 15129 let Inst{13-13} = 0b0; 15130 let Inst{31-21} = 0b11101100000; 15131 let hasNewValue = 1; 15132 let opNewValue = 0; 15133 let prefersSlot3 = 1; 15134 let Defs = [USR_OVF]; 15135 } 15136 def M2_mpy_sat_ll_s1 : HInst< 15137 (outs IntRegs:$Rd32), 15138 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15139 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat", 15140 tc_8fd5f294, TypeM>, Enc_5ab2be { 15141 let Inst{7-5} = 0b100; 15142 let Inst{13-13} = 0b0; 15143 let Inst{31-21} = 0b11101100100; 15144 let hasNewValue = 1; 15145 let opNewValue = 0; 15146 let prefersSlot3 = 1; 15147 let Defs = [USR_OVF]; 15148 } 15149 def M2_mpy_sat_rnd_hh_s0 : HInst< 15150 (outs IntRegs:$Rd32), 15151 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15152 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat", 15153 tc_8fd5f294, TypeM>, Enc_5ab2be { 15154 let Inst{7-5} = 0b111; 15155 let Inst{13-13} = 0b0; 15156 let Inst{31-21} = 0b11101100001; 15157 let hasNewValue = 1; 15158 let opNewValue = 0; 15159 let prefersSlot3 = 1; 15160 let Defs = [USR_OVF]; 15161 } 15162 def M2_mpy_sat_rnd_hh_s1 : HInst< 15163 (outs IntRegs:$Rd32), 15164 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15165 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat", 15166 tc_8fd5f294, TypeM>, Enc_5ab2be { 15167 let Inst{7-5} = 0b111; 15168 let Inst{13-13} = 0b0; 15169 let Inst{31-21} = 0b11101100101; 15170 let hasNewValue = 1; 15171 let opNewValue = 0; 15172 let prefersSlot3 = 1; 15173 let Defs = [USR_OVF]; 15174 } 15175 def M2_mpy_sat_rnd_hl_s0 : HInst< 15176 (outs IntRegs:$Rd32), 15177 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15178 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat", 15179 tc_8fd5f294, TypeM>, Enc_5ab2be { 15180 let Inst{7-5} = 0b110; 15181 let Inst{13-13} = 0b0; 15182 let Inst{31-21} = 0b11101100001; 15183 let hasNewValue = 1; 15184 let opNewValue = 0; 15185 let prefersSlot3 = 1; 15186 let Defs = [USR_OVF]; 15187 } 15188 def M2_mpy_sat_rnd_hl_s1 : HInst< 15189 (outs IntRegs:$Rd32), 15190 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15191 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat", 15192 tc_8fd5f294, TypeM>, Enc_5ab2be { 15193 let Inst{7-5} = 0b110; 15194 let Inst{13-13} = 0b0; 15195 let Inst{31-21} = 0b11101100101; 15196 let hasNewValue = 1; 15197 let opNewValue = 0; 15198 let prefersSlot3 = 1; 15199 let Defs = [USR_OVF]; 15200 } 15201 def M2_mpy_sat_rnd_lh_s0 : HInst< 15202 (outs IntRegs:$Rd32), 15203 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15204 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat", 15205 tc_8fd5f294, TypeM>, Enc_5ab2be { 15206 let Inst{7-5} = 0b101; 15207 let Inst{13-13} = 0b0; 15208 let Inst{31-21} = 0b11101100001; 15209 let hasNewValue = 1; 15210 let opNewValue = 0; 15211 let prefersSlot3 = 1; 15212 let Defs = [USR_OVF]; 15213 } 15214 def M2_mpy_sat_rnd_lh_s1 : HInst< 15215 (outs IntRegs:$Rd32), 15216 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15217 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat", 15218 tc_8fd5f294, TypeM>, Enc_5ab2be { 15219 let Inst{7-5} = 0b101; 15220 let Inst{13-13} = 0b0; 15221 let Inst{31-21} = 0b11101100101; 15222 let hasNewValue = 1; 15223 let opNewValue = 0; 15224 let prefersSlot3 = 1; 15225 let Defs = [USR_OVF]; 15226 } 15227 def M2_mpy_sat_rnd_ll_s0 : HInst< 15228 (outs IntRegs:$Rd32), 15229 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15230 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat", 15231 tc_8fd5f294, TypeM>, Enc_5ab2be { 15232 let Inst{7-5} = 0b100; 15233 let Inst{13-13} = 0b0; 15234 let Inst{31-21} = 0b11101100001; 15235 let hasNewValue = 1; 15236 let opNewValue = 0; 15237 let prefersSlot3 = 1; 15238 let Defs = [USR_OVF]; 15239 } 15240 def M2_mpy_sat_rnd_ll_s1 : HInst< 15241 (outs IntRegs:$Rd32), 15242 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15243 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat", 15244 tc_8fd5f294, TypeM>, Enc_5ab2be { 15245 let Inst{7-5} = 0b100; 15246 let Inst{13-13} = 0b0; 15247 let Inst{31-21} = 0b11101100101; 15248 let hasNewValue = 1; 15249 let opNewValue = 0; 15250 let prefersSlot3 = 1; 15251 let Defs = [USR_OVF]; 15252 } 15253 def M2_mpy_up : HInst< 15254 (outs IntRegs:$Rd32), 15255 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15256 "$Rd32 = mpy($Rs32,$Rt32)", 15257 tc_8fd5f294, TypeM>, Enc_5ab2be { 15258 let Inst{7-5} = 0b001; 15259 let Inst{13-13} = 0b0; 15260 let Inst{31-21} = 0b11101101000; 15261 let hasNewValue = 1; 15262 let opNewValue = 0; 15263 let prefersSlot3 = 1; 15264 } 15265 def M2_mpy_up_s1 : HInst< 15266 (outs IntRegs:$Rd32), 15267 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15268 "$Rd32 = mpy($Rs32,$Rt32):<<1", 15269 tc_8fd5f294, TypeM>, Enc_5ab2be { 15270 let Inst{7-5} = 0b010; 15271 let Inst{13-13} = 0b0; 15272 let Inst{31-21} = 0b11101101101; 15273 let hasNewValue = 1; 15274 let opNewValue = 0; 15275 let prefersSlot3 = 1; 15276 } 15277 def M2_mpy_up_s1_sat : HInst< 15278 (outs IntRegs:$Rd32), 15279 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15280 "$Rd32 = mpy($Rs32,$Rt32):<<1:sat", 15281 tc_8fd5f294, TypeM>, Enc_5ab2be { 15282 let Inst{7-5} = 0b000; 15283 let Inst{13-13} = 0b0; 15284 let Inst{31-21} = 0b11101101111; 15285 let hasNewValue = 1; 15286 let opNewValue = 0; 15287 let prefersSlot3 = 1; 15288 let Defs = [USR_OVF]; 15289 } 15290 def M2_mpyd_acc_hh_s0 : HInst< 15291 (outs DoubleRegs:$Rxx32), 15292 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15293 "$Rxx32 += mpy($Rs32.h,$Rt32.h)", 15294 tc_e913dc32, TypeM>, Enc_61f0b0 { 15295 let Inst{7-5} = 0b011; 15296 let Inst{13-13} = 0b0; 15297 let Inst{31-21} = 0b11100110000; 15298 let prefersSlot3 = 1; 15299 let Constraints = "$Rxx32 = $Rxx32in"; 15300 } 15301 def M2_mpyd_acc_hh_s1 : HInst< 15302 (outs DoubleRegs:$Rxx32), 15303 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15304 "$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1", 15305 tc_e913dc32, TypeM>, Enc_61f0b0 { 15306 let Inst{7-5} = 0b011; 15307 let Inst{13-13} = 0b0; 15308 let Inst{31-21} = 0b11100110100; 15309 let prefersSlot3 = 1; 15310 let Constraints = "$Rxx32 = $Rxx32in"; 15311 } 15312 def M2_mpyd_acc_hl_s0 : HInst< 15313 (outs DoubleRegs:$Rxx32), 15314 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15315 "$Rxx32 += mpy($Rs32.h,$Rt32.l)", 15316 tc_e913dc32, TypeM>, Enc_61f0b0 { 15317 let Inst{7-5} = 0b010; 15318 let Inst{13-13} = 0b0; 15319 let Inst{31-21} = 0b11100110000; 15320 let prefersSlot3 = 1; 15321 let Constraints = "$Rxx32 = $Rxx32in"; 15322 } 15323 def M2_mpyd_acc_hl_s1 : HInst< 15324 (outs DoubleRegs:$Rxx32), 15325 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15326 "$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1", 15327 tc_e913dc32, TypeM>, Enc_61f0b0 { 15328 let Inst{7-5} = 0b010; 15329 let Inst{13-13} = 0b0; 15330 let Inst{31-21} = 0b11100110100; 15331 let prefersSlot3 = 1; 15332 let Constraints = "$Rxx32 = $Rxx32in"; 15333 } 15334 def M2_mpyd_acc_lh_s0 : HInst< 15335 (outs DoubleRegs:$Rxx32), 15336 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15337 "$Rxx32 += mpy($Rs32.l,$Rt32.h)", 15338 tc_e913dc32, TypeM>, Enc_61f0b0 { 15339 let Inst{7-5} = 0b001; 15340 let Inst{13-13} = 0b0; 15341 let Inst{31-21} = 0b11100110000; 15342 let prefersSlot3 = 1; 15343 let Constraints = "$Rxx32 = $Rxx32in"; 15344 } 15345 def M2_mpyd_acc_lh_s1 : HInst< 15346 (outs DoubleRegs:$Rxx32), 15347 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15348 "$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1", 15349 tc_e913dc32, TypeM>, Enc_61f0b0 { 15350 let Inst{7-5} = 0b001; 15351 let Inst{13-13} = 0b0; 15352 let Inst{31-21} = 0b11100110100; 15353 let prefersSlot3 = 1; 15354 let Constraints = "$Rxx32 = $Rxx32in"; 15355 } 15356 def M2_mpyd_acc_ll_s0 : HInst< 15357 (outs DoubleRegs:$Rxx32), 15358 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15359 "$Rxx32 += mpy($Rs32.l,$Rt32.l)", 15360 tc_e913dc32, TypeM>, Enc_61f0b0 { 15361 let Inst{7-5} = 0b000; 15362 let Inst{13-13} = 0b0; 15363 let Inst{31-21} = 0b11100110000; 15364 let prefersSlot3 = 1; 15365 let Constraints = "$Rxx32 = $Rxx32in"; 15366 } 15367 def M2_mpyd_acc_ll_s1 : HInst< 15368 (outs DoubleRegs:$Rxx32), 15369 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15370 "$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1", 15371 tc_e913dc32, TypeM>, Enc_61f0b0 { 15372 let Inst{7-5} = 0b000; 15373 let Inst{13-13} = 0b0; 15374 let Inst{31-21} = 0b11100110100; 15375 let prefersSlot3 = 1; 15376 let Constraints = "$Rxx32 = $Rxx32in"; 15377 } 15378 def M2_mpyd_hh_s0 : HInst< 15379 (outs DoubleRegs:$Rdd32), 15380 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15381 "$Rdd32 = mpy($Rs32.h,$Rt32.h)", 15382 tc_8fd5f294, TypeM>, Enc_be32a5 { 15383 let Inst{7-5} = 0b011; 15384 let Inst{13-13} = 0b0; 15385 let Inst{31-21} = 0b11100100000; 15386 let prefersSlot3 = 1; 15387 } 15388 def M2_mpyd_hh_s1 : HInst< 15389 (outs DoubleRegs:$Rdd32), 15390 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15391 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1", 15392 tc_8fd5f294, TypeM>, Enc_be32a5 { 15393 let Inst{7-5} = 0b011; 15394 let Inst{13-13} = 0b0; 15395 let Inst{31-21} = 0b11100100100; 15396 let prefersSlot3 = 1; 15397 } 15398 def M2_mpyd_hl_s0 : HInst< 15399 (outs DoubleRegs:$Rdd32), 15400 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15401 "$Rdd32 = mpy($Rs32.h,$Rt32.l)", 15402 tc_8fd5f294, TypeM>, Enc_be32a5 { 15403 let Inst{7-5} = 0b010; 15404 let Inst{13-13} = 0b0; 15405 let Inst{31-21} = 0b11100100000; 15406 let prefersSlot3 = 1; 15407 } 15408 def M2_mpyd_hl_s1 : HInst< 15409 (outs DoubleRegs:$Rdd32), 15410 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15411 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1", 15412 tc_8fd5f294, TypeM>, Enc_be32a5 { 15413 let Inst{7-5} = 0b010; 15414 let Inst{13-13} = 0b0; 15415 let Inst{31-21} = 0b11100100100; 15416 let prefersSlot3 = 1; 15417 } 15418 def M2_mpyd_lh_s0 : HInst< 15419 (outs DoubleRegs:$Rdd32), 15420 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15421 "$Rdd32 = mpy($Rs32.l,$Rt32.h)", 15422 tc_8fd5f294, TypeM>, Enc_be32a5 { 15423 let Inst{7-5} = 0b001; 15424 let Inst{13-13} = 0b0; 15425 let Inst{31-21} = 0b11100100000; 15426 let prefersSlot3 = 1; 15427 } 15428 def M2_mpyd_lh_s1 : HInst< 15429 (outs DoubleRegs:$Rdd32), 15430 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15431 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1", 15432 tc_8fd5f294, TypeM>, Enc_be32a5 { 15433 let Inst{7-5} = 0b001; 15434 let Inst{13-13} = 0b0; 15435 let Inst{31-21} = 0b11100100100; 15436 let prefersSlot3 = 1; 15437 } 15438 def M2_mpyd_ll_s0 : HInst< 15439 (outs DoubleRegs:$Rdd32), 15440 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15441 "$Rdd32 = mpy($Rs32.l,$Rt32.l)", 15442 tc_8fd5f294, TypeM>, Enc_be32a5 { 15443 let Inst{7-5} = 0b000; 15444 let Inst{13-13} = 0b0; 15445 let Inst{31-21} = 0b11100100000; 15446 let prefersSlot3 = 1; 15447 } 15448 def M2_mpyd_ll_s1 : HInst< 15449 (outs DoubleRegs:$Rdd32), 15450 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15451 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1", 15452 tc_8fd5f294, TypeM>, Enc_be32a5 { 15453 let Inst{7-5} = 0b000; 15454 let Inst{13-13} = 0b0; 15455 let Inst{31-21} = 0b11100100100; 15456 let prefersSlot3 = 1; 15457 } 15458 def M2_mpyd_nac_hh_s0 : HInst< 15459 (outs DoubleRegs:$Rxx32), 15460 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15461 "$Rxx32 -= mpy($Rs32.h,$Rt32.h)", 15462 tc_e913dc32, TypeM>, Enc_61f0b0 { 15463 let Inst{7-5} = 0b011; 15464 let Inst{13-13} = 0b0; 15465 let Inst{31-21} = 0b11100110001; 15466 let prefersSlot3 = 1; 15467 let Constraints = "$Rxx32 = $Rxx32in"; 15468 } 15469 def M2_mpyd_nac_hh_s1 : HInst< 15470 (outs DoubleRegs:$Rxx32), 15471 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15472 "$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1", 15473 tc_e913dc32, TypeM>, Enc_61f0b0 { 15474 let Inst{7-5} = 0b011; 15475 let Inst{13-13} = 0b0; 15476 let Inst{31-21} = 0b11100110101; 15477 let prefersSlot3 = 1; 15478 let Constraints = "$Rxx32 = $Rxx32in"; 15479 } 15480 def M2_mpyd_nac_hl_s0 : HInst< 15481 (outs DoubleRegs:$Rxx32), 15482 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15483 "$Rxx32 -= mpy($Rs32.h,$Rt32.l)", 15484 tc_e913dc32, TypeM>, Enc_61f0b0 { 15485 let Inst{7-5} = 0b010; 15486 let Inst{13-13} = 0b0; 15487 let Inst{31-21} = 0b11100110001; 15488 let prefersSlot3 = 1; 15489 let Constraints = "$Rxx32 = $Rxx32in"; 15490 } 15491 def M2_mpyd_nac_hl_s1 : HInst< 15492 (outs DoubleRegs:$Rxx32), 15493 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15494 "$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1", 15495 tc_e913dc32, TypeM>, Enc_61f0b0 { 15496 let Inst{7-5} = 0b010; 15497 let Inst{13-13} = 0b0; 15498 let Inst{31-21} = 0b11100110101; 15499 let prefersSlot3 = 1; 15500 let Constraints = "$Rxx32 = $Rxx32in"; 15501 } 15502 def M2_mpyd_nac_lh_s0 : HInst< 15503 (outs DoubleRegs:$Rxx32), 15504 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15505 "$Rxx32 -= mpy($Rs32.l,$Rt32.h)", 15506 tc_e913dc32, TypeM>, Enc_61f0b0 { 15507 let Inst{7-5} = 0b001; 15508 let Inst{13-13} = 0b0; 15509 let Inst{31-21} = 0b11100110001; 15510 let prefersSlot3 = 1; 15511 let Constraints = "$Rxx32 = $Rxx32in"; 15512 } 15513 def M2_mpyd_nac_lh_s1 : HInst< 15514 (outs DoubleRegs:$Rxx32), 15515 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15516 "$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15517 tc_e913dc32, TypeM>, Enc_61f0b0 { 15518 let Inst{7-5} = 0b001; 15519 let Inst{13-13} = 0b0; 15520 let Inst{31-21} = 0b11100110101; 15521 let prefersSlot3 = 1; 15522 let Constraints = "$Rxx32 = $Rxx32in"; 15523 } 15524 def M2_mpyd_nac_ll_s0 : HInst< 15525 (outs DoubleRegs:$Rxx32), 15526 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15527 "$Rxx32 -= mpy($Rs32.l,$Rt32.l)", 15528 tc_e913dc32, TypeM>, Enc_61f0b0 { 15529 let Inst{7-5} = 0b000; 15530 let Inst{13-13} = 0b0; 15531 let Inst{31-21} = 0b11100110001; 15532 let prefersSlot3 = 1; 15533 let Constraints = "$Rxx32 = $Rxx32in"; 15534 } 15535 def M2_mpyd_nac_ll_s1 : HInst< 15536 (outs DoubleRegs:$Rxx32), 15537 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15538 "$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15539 tc_e913dc32, TypeM>, Enc_61f0b0 { 15540 let Inst{7-5} = 0b000; 15541 let Inst{13-13} = 0b0; 15542 let Inst{31-21} = 0b11100110101; 15543 let prefersSlot3 = 1; 15544 let Constraints = "$Rxx32 = $Rxx32in"; 15545 } 15546 def M2_mpyd_rnd_hh_s0 : HInst< 15547 (outs DoubleRegs:$Rdd32), 15548 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15549 "$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd", 15550 tc_8fd5f294, TypeM>, Enc_be32a5 { 15551 let Inst{7-5} = 0b011; 15552 let Inst{13-13} = 0b0; 15553 let Inst{31-21} = 0b11100100001; 15554 let prefersSlot3 = 1; 15555 } 15556 def M2_mpyd_rnd_hh_s1 : HInst< 15557 (outs DoubleRegs:$Rdd32), 15558 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15559 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15560 tc_8fd5f294, TypeM>, Enc_be32a5 { 15561 let Inst{7-5} = 0b011; 15562 let Inst{13-13} = 0b0; 15563 let Inst{31-21} = 0b11100100101; 15564 let prefersSlot3 = 1; 15565 } 15566 def M2_mpyd_rnd_hl_s0 : HInst< 15567 (outs DoubleRegs:$Rdd32), 15568 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15569 "$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd", 15570 tc_8fd5f294, TypeM>, Enc_be32a5 { 15571 let Inst{7-5} = 0b010; 15572 let Inst{13-13} = 0b0; 15573 let Inst{31-21} = 0b11100100001; 15574 let prefersSlot3 = 1; 15575 } 15576 def M2_mpyd_rnd_hl_s1 : HInst< 15577 (outs DoubleRegs:$Rdd32), 15578 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15579 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15580 tc_8fd5f294, TypeM>, Enc_be32a5 { 15581 let Inst{7-5} = 0b010; 15582 let Inst{13-13} = 0b0; 15583 let Inst{31-21} = 0b11100100101; 15584 let prefersSlot3 = 1; 15585 } 15586 def M2_mpyd_rnd_lh_s0 : HInst< 15587 (outs DoubleRegs:$Rdd32), 15588 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15589 "$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd", 15590 tc_8fd5f294, TypeM>, Enc_be32a5 { 15591 let Inst{7-5} = 0b001; 15592 let Inst{13-13} = 0b0; 15593 let Inst{31-21} = 0b11100100001; 15594 let prefersSlot3 = 1; 15595 } 15596 def M2_mpyd_rnd_lh_s1 : HInst< 15597 (outs DoubleRegs:$Rdd32), 15598 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15599 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15600 tc_8fd5f294, TypeM>, Enc_be32a5 { 15601 let Inst{7-5} = 0b001; 15602 let Inst{13-13} = 0b0; 15603 let Inst{31-21} = 0b11100100101; 15604 let prefersSlot3 = 1; 15605 } 15606 def M2_mpyd_rnd_ll_s0 : HInst< 15607 (outs DoubleRegs:$Rdd32), 15608 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15609 "$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd", 15610 tc_8fd5f294, TypeM>, Enc_be32a5 { 15611 let Inst{7-5} = 0b000; 15612 let Inst{13-13} = 0b0; 15613 let Inst{31-21} = 0b11100100001; 15614 let prefersSlot3 = 1; 15615 } 15616 def M2_mpyd_rnd_ll_s1 : HInst< 15617 (outs DoubleRegs:$Rdd32), 15618 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15619 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15620 tc_8fd5f294, TypeM>, Enc_be32a5 { 15621 let Inst{7-5} = 0b000; 15622 let Inst{13-13} = 0b0; 15623 let Inst{31-21} = 0b11100100101; 15624 let prefersSlot3 = 1; 15625 } 15626 def M2_mpyi : HInst< 15627 (outs IntRegs:$Rd32), 15628 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15629 "$Rd32 = mpyi($Rs32,$Rt32)", 15630 tc_8fd5f294, TypeM>, Enc_5ab2be, ImmRegRel { 15631 let Inst{7-5} = 0b000; 15632 let Inst{13-13} = 0b0; 15633 let Inst{31-21} = 0b11101101000; 15634 let hasNewValue = 1; 15635 let opNewValue = 0; 15636 let prefersSlot3 = 1; 15637 let CextOpcode = "M2_mpyi"; 15638 let InputType = "reg"; 15639 } 15640 def M2_mpysin : HInst< 15641 (outs IntRegs:$Rd32), 15642 (ins IntRegs:$Rs32, u8_0Imm:$Ii), 15643 "$Rd32 = -mpyi($Rs32,#$Ii)", 15644 tc_1853ea6d, TypeM>, Enc_b8c967 { 15645 let Inst{13-13} = 0b0; 15646 let Inst{31-21} = 0b11100000100; 15647 let hasNewValue = 1; 15648 let opNewValue = 0; 15649 let prefersSlot3 = 1; 15650 } 15651 def M2_mpysip : HInst< 15652 (outs IntRegs:$Rd32), 15653 (ins IntRegs:$Rs32, u32_0Imm:$Ii), 15654 "$Rd32 = +mpyi($Rs32,#$Ii)", 15655 tc_1853ea6d, TypeM>, Enc_b8c967 { 15656 let Inst{13-13} = 0b0; 15657 let Inst{31-21} = 0b11100000000; 15658 let hasNewValue = 1; 15659 let opNewValue = 0; 15660 let prefersSlot3 = 1; 15661 let isExtendable = 1; 15662 let opExtendable = 2; 15663 let isExtentSigned = 0; 15664 let opExtentBits = 8; 15665 let opExtentAlign = 0; 15666 } 15667 def M2_mpysmi : HInst< 15668 (outs IntRegs:$Rd32), 15669 (ins IntRegs:$Rs32, m32_0Imm:$Ii), 15670 "$Rd32 = mpyi($Rs32,#$Ii)", 15671 tc_1853ea6d, TypeM>, ImmRegRel { 15672 let hasNewValue = 1; 15673 let opNewValue = 0; 15674 let CextOpcode = "M2_mpyi"; 15675 let InputType = "imm"; 15676 let isPseudo = 1; 15677 let isExtendable = 1; 15678 let opExtendable = 2; 15679 let isExtentSigned = 1; 15680 let opExtentBits = 9; 15681 let opExtentAlign = 0; 15682 } 15683 def M2_mpysu_up : HInst< 15684 (outs IntRegs:$Rd32), 15685 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15686 "$Rd32 = mpysu($Rs32,$Rt32)", 15687 tc_8fd5f294, TypeM>, Enc_5ab2be { 15688 let Inst{7-5} = 0b001; 15689 let Inst{13-13} = 0b0; 15690 let Inst{31-21} = 0b11101101011; 15691 let hasNewValue = 1; 15692 let opNewValue = 0; 15693 let prefersSlot3 = 1; 15694 } 15695 def M2_mpyu_acc_hh_s0 : HInst< 15696 (outs IntRegs:$Rx32), 15697 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15698 "$Rx32 += mpyu($Rs32.h,$Rt32.h)", 15699 tc_e913dc32, TypeM>, Enc_2ae154 { 15700 let Inst{7-5} = 0b011; 15701 let Inst{13-13} = 0b0; 15702 let Inst{31-21} = 0b11101110010; 15703 let hasNewValue = 1; 15704 let opNewValue = 0; 15705 let prefersSlot3 = 1; 15706 let Constraints = "$Rx32 = $Rx32in"; 15707 } 15708 def M2_mpyu_acc_hh_s1 : HInst< 15709 (outs IntRegs:$Rx32), 15710 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15711 "$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1", 15712 tc_e913dc32, TypeM>, Enc_2ae154 { 15713 let Inst{7-5} = 0b011; 15714 let Inst{13-13} = 0b0; 15715 let Inst{31-21} = 0b11101110110; 15716 let hasNewValue = 1; 15717 let opNewValue = 0; 15718 let prefersSlot3 = 1; 15719 let Constraints = "$Rx32 = $Rx32in"; 15720 } 15721 def M2_mpyu_acc_hl_s0 : HInst< 15722 (outs IntRegs:$Rx32), 15723 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15724 "$Rx32 += mpyu($Rs32.h,$Rt32.l)", 15725 tc_e913dc32, TypeM>, Enc_2ae154 { 15726 let Inst{7-5} = 0b010; 15727 let Inst{13-13} = 0b0; 15728 let Inst{31-21} = 0b11101110010; 15729 let hasNewValue = 1; 15730 let opNewValue = 0; 15731 let prefersSlot3 = 1; 15732 let Constraints = "$Rx32 = $Rx32in"; 15733 } 15734 def M2_mpyu_acc_hl_s1 : HInst< 15735 (outs IntRegs:$Rx32), 15736 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15737 "$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1", 15738 tc_e913dc32, TypeM>, Enc_2ae154 { 15739 let Inst{7-5} = 0b010; 15740 let Inst{13-13} = 0b0; 15741 let Inst{31-21} = 0b11101110110; 15742 let hasNewValue = 1; 15743 let opNewValue = 0; 15744 let prefersSlot3 = 1; 15745 let Constraints = "$Rx32 = $Rx32in"; 15746 } 15747 def M2_mpyu_acc_lh_s0 : HInst< 15748 (outs IntRegs:$Rx32), 15749 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15750 "$Rx32 += mpyu($Rs32.l,$Rt32.h)", 15751 tc_e913dc32, TypeM>, Enc_2ae154 { 15752 let Inst{7-5} = 0b001; 15753 let Inst{13-13} = 0b0; 15754 let Inst{31-21} = 0b11101110010; 15755 let hasNewValue = 1; 15756 let opNewValue = 0; 15757 let prefersSlot3 = 1; 15758 let Constraints = "$Rx32 = $Rx32in"; 15759 } 15760 def M2_mpyu_acc_lh_s1 : HInst< 15761 (outs IntRegs:$Rx32), 15762 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15763 "$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1", 15764 tc_e913dc32, TypeM>, Enc_2ae154 { 15765 let Inst{7-5} = 0b001; 15766 let Inst{13-13} = 0b0; 15767 let Inst{31-21} = 0b11101110110; 15768 let hasNewValue = 1; 15769 let opNewValue = 0; 15770 let prefersSlot3 = 1; 15771 let Constraints = "$Rx32 = $Rx32in"; 15772 } 15773 def M2_mpyu_acc_ll_s0 : HInst< 15774 (outs IntRegs:$Rx32), 15775 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15776 "$Rx32 += mpyu($Rs32.l,$Rt32.l)", 15777 tc_e913dc32, TypeM>, Enc_2ae154 { 15778 let Inst{7-5} = 0b000; 15779 let Inst{13-13} = 0b0; 15780 let Inst{31-21} = 0b11101110010; 15781 let hasNewValue = 1; 15782 let opNewValue = 0; 15783 let prefersSlot3 = 1; 15784 let Constraints = "$Rx32 = $Rx32in"; 15785 } 15786 def M2_mpyu_acc_ll_s1 : HInst< 15787 (outs IntRegs:$Rx32), 15788 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15789 "$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1", 15790 tc_e913dc32, TypeM>, Enc_2ae154 { 15791 let Inst{7-5} = 0b000; 15792 let Inst{13-13} = 0b0; 15793 let Inst{31-21} = 0b11101110110; 15794 let hasNewValue = 1; 15795 let opNewValue = 0; 15796 let prefersSlot3 = 1; 15797 let Constraints = "$Rx32 = $Rx32in"; 15798 } 15799 def M2_mpyu_hh_s0 : HInst< 15800 (outs IntRegs:$Rd32), 15801 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15802 "$Rd32 = mpyu($Rs32.h,$Rt32.h)", 15803 tc_8fd5f294, TypeM>, Enc_5ab2be { 15804 let Inst{7-5} = 0b011; 15805 let Inst{13-13} = 0b0; 15806 let Inst{31-21} = 0b11101100010; 15807 let hasNewValue = 1; 15808 let opNewValue = 0; 15809 let prefersSlot3 = 1; 15810 } 15811 def M2_mpyu_hh_s1 : HInst< 15812 (outs IntRegs:$Rd32), 15813 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15814 "$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1", 15815 tc_8fd5f294, TypeM>, Enc_5ab2be { 15816 let Inst{7-5} = 0b011; 15817 let Inst{13-13} = 0b0; 15818 let Inst{31-21} = 0b11101100110; 15819 let hasNewValue = 1; 15820 let opNewValue = 0; 15821 let prefersSlot3 = 1; 15822 } 15823 def M2_mpyu_hl_s0 : HInst< 15824 (outs IntRegs:$Rd32), 15825 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15826 "$Rd32 = mpyu($Rs32.h,$Rt32.l)", 15827 tc_8fd5f294, TypeM>, Enc_5ab2be { 15828 let Inst{7-5} = 0b010; 15829 let Inst{13-13} = 0b0; 15830 let Inst{31-21} = 0b11101100010; 15831 let hasNewValue = 1; 15832 let opNewValue = 0; 15833 let prefersSlot3 = 1; 15834 } 15835 def M2_mpyu_hl_s1 : HInst< 15836 (outs IntRegs:$Rd32), 15837 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15838 "$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1", 15839 tc_8fd5f294, TypeM>, Enc_5ab2be { 15840 let Inst{7-5} = 0b010; 15841 let Inst{13-13} = 0b0; 15842 let Inst{31-21} = 0b11101100110; 15843 let hasNewValue = 1; 15844 let opNewValue = 0; 15845 let prefersSlot3 = 1; 15846 } 15847 def M2_mpyu_lh_s0 : HInst< 15848 (outs IntRegs:$Rd32), 15849 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15850 "$Rd32 = mpyu($Rs32.l,$Rt32.h)", 15851 tc_8fd5f294, TypeM>, Enc_5ab2be { 15852 let Inst{7-5} = 0b001; 15853 let Inst{13-13} = 0b0; 15854 let Inst{31-21} = 0b11101100010; 15855 let hasNewValue = 1; 15856 let opNewValue = 0; 15857 let prefersSlot3 = 1; 15858 } 15859 def M2_mpyu_lh_s1 : HInst< 15860 (outs IntRegs:$Rd32), 15861 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15862 "$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1", 15863 tc_8fd5f294, TypeM>, Enc_5ab2be { 15864 let Inst{7-5} = 0b001; 15865 let Inst{13-13} = 0b0; 15866 let Inst{31-21} = 0b11101100110; 15867 let hasNewValue = 1; 15868 let opNewValue = 0; 15869 let prefersSlot3 = 1; 15870 } 15871 def M2_mpyu_ll_s0 : HInst< 15872 (outs IntRegs:$Rd32), 15873 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15874 "$Rd32 = mpyu($Rs32.l,$Rt32.l)", 15875 tc_8fd5f294, TypeM>, Enc_5ab2be { 15876 let Inst{7-5} = 0b000; 15877 let Inst{13-13} = 0b0; 15878 let Inst{31-21} = 0b11101100010; 15879 let hasNewValue = 1; 15880 let opNewValue = 0; 15881 let prefersSlot3 = 1; 15882 } 15883 def M2_mpyu_ll_s1 : HInst< 15884 (outs IntRegs:$Rd32), 15885 (ins IntRegs:$Rs32, IntRegs:$Rt32), 15886 "$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1", 15887 tc_8fd5f294, TypeM>, Enc_5ab2be { 15888 let Inst{7-5} = 0b000; 15889 let Inst{13-13} = 0b0; 15890 let Inst{31-21} = 0b11101100110; 15891 let hasNewValue = 1; 15892 let opNewValue = 0; 15893 let prefersSlot3 = 1; 15894 } 15895 def M2_mpyu_nac_hh_s0 : HInst< 15896 (outs IntRegs:$Rx32), 15897 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15898 "$Rx32 -= mpyu($Rs32.h,$Rt32.h)", 15899 tc_e913dc32, TypeM>, Enc_2ae154 { 15900 let Inst{7-5} = 0b011; 15901 let Inst{13-13} = 0b0; 15902 let Inst{31-21} = 0b11101110011; 15903 let hasNewValue = 1; 15904 let opNewValue = 0; 15905 let prefersSlot3 = 1; 15906 let Constraints = "$Rx32 = $Rx32in"; 15907 } 15908 def M2_mpyu_nac_hh_s1 : HInst< 15909 (outs IntRegs:$Rx32), 15910 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15911 "$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 15912 tc_e913dc32, TypeM>, Enc_2ae154 { 15913 let Inst{7-5} = 0b011; 15914 let Inst{13-13} = 0b0; 15915 let Inst{31-21} = 0b11101110111; 15916 let hasNewValue = 1; 15917 let opNewValue = 0; 15918 let prefersSlot3 = 1; 15919 let Constraints = "$Rx32 = $Rx32in"; 15920 } 15921 def M2_mpyu_nac_hl_s0 : HInst< 15922 (outs IntRegs:$Rx32), 15923 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15924 "$Rx32 -= mpyu($Rs32.h,$Rt32.l)", 15925 tc_e913dc32, TypeM>, Enc_2ae154 { 15926 let Inst{7-5} = 0b010; 15927 let Inst{13-13} = 0b0; 15928 let Inst{31-21} = 0b11101110011; 15929 let hasNewValue = 1; 15930 let opNewValue = 0; 15931 let prefersSlot3 = 1; 15932 let Constraints = "$Rx32 = $Rx32in"; 15933 } 15934 def M2_mpyu_nac_hl_s1 : HInst< 15935 (outs IntRegs:$Rx32), 15936 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15937 "$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 15938 tc_e913dc32, TypeM>, Enc_2ae154 { 15939 let Inst{7-5} = 0b010; 15940 let Inst{13-13} = 0b0; 15941 let Inst{31-21} = 0b11101110111; 15942 let hasNewValue = 1; 15943 let opNewValue = 0; 15944 let prefersSlot3 = 1; 15945 let Constraints = "$Rx32 = $Rx32in"; 15946 } 15947 def M2_mpyu_nac_lh_s0 : HInst< 15948 (outs IntRegs:$Rx32), 15949 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15950 "$Rx32 -= mpyu($Rs32.l,$Rt32.h)", 15951 tc_e913dc32, TypeM>, Enc_2ae154 { 15952 let Inst{7-5} = 0b001; 15953 let Inst{13-13} = 0b0; 15954 let Inst{31-21} = 0b11101110011; 15955 let hasNewValue = 1; 15956 let opNewValue = 0; 15957 let prefersSlot3 = 1; 15958 let Constraints = "$Rx32 = $Rx32in"; 15959 } 15960 def M2_mpyu_nac_lh_s1 : HInst< 15961 (outs IntRegs:$Rx32), 15962 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15963 "$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 15964 tc_e913dc32, TypeM>, Enc_2ae154 { 15965 let Inst{7-5} = 0b001; 15966 let Inst{13-13} = 0b0; 15967 let Inst{31-21} = 0b11101110111; 15968 let hasNewValue = 1; 15969 let opNewValue = 0; 15970 let prefersSlot3 = 1; 15971 let Constraints = "$Rx32 = $Rx32in"; 15972 } 15973 def M2_mpyu_nac_ll_s0 : HInst< 15974 (outs IntRegs:$Rx32), 15975 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15976 "$Rx32 -= mpyu($Rs32.l,$Rt32.l)", 15977 tc_e913dc32, TypeM>, Enc_2ae154 { 15978 let Inst{7-5} = 0b000; 15979 let Inst{13-13} = 0b0; 15980 let Inst{31-21} = 0b11101110011; 15981 let hasNewValue = 1; 15982 let opNewValue = 0; 15983 let prefersSlot3 = 1; 15984 let Constraints = "$Rx32 = $Rx32in"; 15985 } 15986 def M2_mpyu_nac_ll_s1 : HInst< 15987 (outs IntRegs:$Rx32), 15988 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15989 "$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 15990 tc_e913dc32, TypeM>, Enc_2ae154 { 15991 let Inst{7-5} = 0b000; 15992 let Inst{13-13} = 0b0; 15993 let Inst{31-21} = 0b11101110111; 15994 let hasNewValue = 1; 15995 let opNewValue = 0; 15996 let prefersSlot3 = 1; 15997 let Constraints = "$Rx32 = $Rx32in"; 15998 } 15999 def M2_mpyu_up : HInst< 16000 (outs IntRegs:$Rd32), 16001 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16002 "$Rd32 = mpyu($Rs32,$Rt32)", 16003 tc_8fd5f294, TypeM>, Enc_5ab2be { 16004 let Inst{7-5} = 0b001; 16005 let Inst{13-13} = 0b0; 16006 let Inst{31-21} = 0b11101101010; 16007 let hasNewValue = 1; 16008 let opNewValue = 0; 16009 let prefersSlot3 = 1; 16010 } 16011 def M2_mpyud_acc_hh_s0 : HInst< 16012 (outs DoubleRegs:$Rxx32), 16013 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16014 "$Rxx32 += mpyu($Rs32.h,$Rt32.h)", 16015 tc_e913dc32, TypeM>, Enc_61f0b0 { 16016 let Inst{7-5} = 0b011; 16017 let Inst{13-13} = 0b0; 16018 let Inst{31-21} = 0b11100110010; 16019 let prefersSlot3 = 1; 16020 let Constraints = "$Rxx32 = $Rxx32in"; 16021 } 16022 def M2_mpyud_acc_hh_s1 : HInst< 16023 (outs DoubleRegs:$Rxx32), 16024 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16025 "$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1", 16026 tc_e913dc32, TypeM>, Enc_61f0b0 { 16027 let Inst{7-5} = 0b011; 16028 let Inst{13-13} = 0b0; 16029 let Inst{31-21} = 0b11100110110; 16030 let prefersSlot3 = 1; 16031 let Constraints = "$Rxx32 = $Rxx32in"; 16032 } 16033 def M2_mpyud_acc_hl_s0 : HInst< 16034 (outs DoubleRegs:$Rxx32), 16035 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16036 "$Rxx32 += mpyu($Rs32.h,$Rt32.l)", 16037 tc_e913dc32, TypeM>, Enc_61f0b0 { 16038 let Inst{7-5} = 0b010; 16039 let Inst{13-13} = 0b0; 16040 let Inst{31-21} = 0b11100110010; 16041 let prefersSlot3 = 1; 16042 let Constraints = "$Rxx32 = $Rxx32in"; 16043 } 16044 def M2_mpyud_acc_hl_s1 : HInst< 16045 (outs DoubleRegs:$Rxx32), 16046 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16047 "$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1", 16048 tc_e913dc32, TypeM>, Enc_61f0b0 { 16049 let Inst{7-5} = 0b010; 16050 let Inst{13-13} = 0b0; 16051 let Inst{31-21} = 0b11100110110; 16052 let prefersSlot3 = 1; 16053 let Constraints = "$Rxx32 = $Rxx32in"; 16054 } 16055 def M2_mpyud_acc_lh_s0 : HInst< 16056 (outs DoubleRegs:$Rxx32), 16057 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16058 "$Rxx32 += mpyu($Rs32.l,$Rt32.h)", 16059 tc_e913dc32, TypeM>, Enc_61f0b0 { 16060 let Inst{7-5} = 0b001; 16061 let Inst{13-13} = 0b0; 16062 let Inst{31-21} = 0b11100110010; 16063 let prefersSlot3 = 1; 16064 let Constraints = "$Rxx32 = $Rxx32in"; 16065 } 16066 def M2_mpyud_acc_lh_s1 : HInst< 16067 (outs DoubleRegs:$Rxx32), 16068 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16069 "$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1", 16070 tc_e913dc32, TypeM>, Enc_61f0b0 { 16071 let Inst{7-5} = 0b001; 16072 let Inst{13-13} = 0b0; 16073 let Inst{31-21} = 0b11100110110; 16074 let prefersSlot3 = 1; 16075 let Constraints = "$Rxx32 = $Rxx32in"; 16076 } 16077 def M2_mpyud_acc_ll_s0 : HInst< 16078 (outs DoubleRegs:$Rxx32), 16079 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16080 "$Rxx32 += mpyu($Rs32.l,$Rt32.l)", 16081 tc_e913dc32, TypeM>, Enc_61f0b0 { 16082 let Inst{7-5} = 0b000; 16083 let Inst{13-13} = 0b0; 16084 let Inst{31-21} = 0b11100110010; 16085 let prefersSlot3 = 1; 16086 let Constraints = "$Rxx32 = $Rxx32in"; 16087 } 16088 def M2_mpyud_acc_ll_s1 : HInst< 16089 (outs DoubleRegs:$Rxx32), 16090 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16091 "$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1", 16092 tc_e913dc32, TypeM>, Enc_61f0b0 { 16093 let Inst{7-5} = 0b000; 16094 let Inst{13-13} = 0b0; 16095 let Inst{31-21} = 0b11100110110; 16096 let prefersSlot3 = 1; 16097 let Constraints = "$Rxx32 = $Rxx32in"; 16098 } 16099 def M2_mpyud_hh_s0 : HInst< 16100 (outs DoubleRegs:$Rdd32), 16101 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16102 "$Rdd32 = mpyu($Rs32.h,$Rt32.h)", 16103 tc_8fd5f294, TypeM>, Enc_be32a5 { 16104 let Inst{7-5} = 0b011; 16105 let Inst{13-13} = 0b0; 16106 let Inst{31-21} = 0b11100100010; 16107 let prefersSlot3 = 1; 16108 } 16109 def M2_mpyud_hh_s1 : HInst< 16110 (outs DoubleRegs:$Rdd32), 16111 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16112 "$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16113 tc_8fd5f294, TypeM>, Enc_be32a5 { 16114 let Inst{7-5} = 0b011; 16115 let Inst{13-13} = 0b0; 16116 let Inst{31-21} = 0b11100100110; 16117 let prefersSlot3 = 1; 16118 } 16119 def M2_mpyud_hl_s0 : HInst< 16120 (outs DoubleRegs:$Rdd32), 16121 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16122 "$Rdd32 = mpyu($Rs32.h,$Rt32.l)", 16123 tc_8fd5f294, TypeM>, Enc_be32a5 { 16124 let Inst{7-5} = 0b010; 16125 let Inst{13-13} = 0b0; 16126 let Inst{31-21} = 0b11100100010; 16127 let prefersSlot3 = 1; 16128 } 16129 def M2_mpyud_hl_s1 : HInst< 16130 (outs DoubleRegs:$Rdd32), 16131 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16132 "$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16133 tc_8fd5f294, TypeM>, Enc_be32a5 { 16134 let Inst{7-5} = 0b010; 16135 let Inst{13-13} = 0b0; 16136 let Inst{31-21} = 0b11100100110; 16137 let prefersSlot3 = 1; 16138 } 16139 def M2_mpyud_lh_s0 : HInst< 16140 (outs DoubleRegs:$Rdd32), 16141 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16142 "$Rdd32 = mpyu($Rs32.l,$Rt32.h)", 16143 tc_8fd5f294, TypeM>, Enc_be32a5 { 16144 let Inst{7-5} = 0b001; 16145 let Inst{13-13} = 0b0; 16146 let Inst{31-21} = 0b11100100010; 16147 let prefersSlot3 = 1; 16148 } 16149 def M2_mpyud_lh_s1 : HInst< 16150 (outs DoubleRegs:$Rdd32), 16151 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16152 "$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16153 tc_8fd5f294, TypeM>, Enc_be32a5 { 16154 let Inst{7-5} = 0b001; 16155 let Inst{13-13} = 0b0; 16156 let Inst{31-21} = 0b11100100110; 16157 let prefersSlot3 = 1; 16158 } 16159 def M2_mpyud_ll_s0 : HInst< 16160 (outs DoubleRegs:$Rdd32), 16161 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16162 "$Rdd32 = mpyu($Rs32.l,$Rt32.l)", 16163 tc_8fd5f294, TypeM>, Enc_be32a5 { 16164 let Inst{7-5} = 0b000; 16165 let Inst{13-13} = 0b0; 16166 let Inst{31-21} = 0b11100100010; 16167 let prefersSlot3 = 1; 16168 } 16169 def M2_mpyud_ll_s1 : HInst< 16170 (outs DoubleRegs:$Rdd32), 16171 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16172 "$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16173 tc_8fd5f294, TypeM>, Enc_be32a5 { 16174 let Inst{7-5} = 0b000; 16175 let Inst{13-13} = 0b0; 16176 let Inst{31-21} = 0b11100100110; 16177 let prefersSlot3 = 1; 16178 } 16179 def M2_mpyud_nac_hh_s0 : HInst< 16180 (outs DoubleRegs:$Rxx32), 16181 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16182 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h)", 16183 tc_e913dc32, TypeM>, Enc_61f0b0 { 16184 let Inst{7-5} = 0b011; 16185 let Inst{13-13} = 0b0; 16186 let Inst{31-21} = 0b11100110011; 16187 let prefersSlot3 = 1; 16188 let Constraints = "$Rxx32 = $Rxx32in"; 16189 } 16190 def M2_mpyud_nac_hh_s1 : HInst< 16191 (outs DoubleRegs:$Rxx32), 16192 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16193 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16194 tc_e913dc32, TypeM>, Enc_61f0b0 { 16195 let Inst{7-5} = 0b011; 16196 let Inst{13-13} = 0b0; 16197 let Inst{31-21} = 0b11100110111; 16198 let prefersSlot3 = 1; 16199 let Constraints = "$Rxx32 = $Rxx32in"; 16200 } 16201 def M2_mpyud_nac_hl_s0 : HInst< 16202 (outs DoubleRegs:$Rxx32), 16203 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16204 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l)", 16205 tc_e913dc32, TypeM>, Enc_61f0b0 { 16206 let Inst{7-5} = 0b010; 16207 let Inst{13-13} = 0b0; 16208 let Inst{31-21} = 0b11100110011; 16209 let prefersSlot3 = 1; 16210 let Constraints = "$Rxx32 = $Rxx32in"; 16211 } 16212 def M2_mpyud_nac_hl_s1 : HInst< 16213 (outs DoubleRegs:$Rxx32), 16214 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16215 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16216 tc_e913dc32, TypeM>, Enc_61f0b0 { 16217 let Inst{7-5} = 0b010; 16218 let Inst{13-13} = 0b0; 16219 let Inst{31-21} = 0b11100110111; 16220 let prefersSlot3 = 1; 16221 let Constraints = "$Rxx32 = $Rxx32in"; 16222 } 16223 def M2_mpyud_nac_lh_s0 : HInst< 16224 (outs DoubleRegs:$Rxx32), 16225 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16226 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h)", 16227 tc_e913dc32, TypeM>, Enc_61f0b0 { 16228 let Inst{7-5} = 0b001; 16229 let Inst{13-13} = 0b0; 16230 let Inst{31-21} = 0b11100110011; 16231 let prefersSlot3 = 1; 16232 let Constraints = "$Rxx32 = $Rxx32in"; 16233 } 16234 def M2_mpyud_nac_lh_s1 : HInst< 16235 (outs DoubleRegs:$Rxx32), 16236 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16237 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16238 tc_e913dc32, TypeM>, Enc_61f0b0 { 16239 let Inst{7-5} = 0b001; 16240 let Inst{13-13} = 0b0; 16241 let Inst{31-21} = 0b11100110111; 16242 let prefersSlot3 = 1; 16243 let Constraints = "$Rxx32 = $Rxx32in"; 16244 } 16245 def M2_mpyud_nac_ll_s0 : HInst< 16246 (outs DoubleRegs:$Rxx32), 16247 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16248 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l)", 16249 tc_e913dc32, TypeM>, Enc_61f0b0 { 16250 let Inst{7-5} = 0b000; 16251 let Inst{13-13} = 0b0; 16252 let Inst{31-21} = 0b11100110011; 16253 let prefersSlot3 = 1; 16254 let Constraints = "$Rxx32 = $Rxx32in"; 16255 } 16256 def M2_mpyud_nac_ll_s1 : HInst< 16257 (outs DoubleRegs:$Rxx32), 16258 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16259 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16260 tc_e913dc32, TypeM>, Enc_61f0b0 { 16261 let Inst{7-5} = 0b000; 16262 let Inst{13-13} = 0b0; 16263 let Inst{31-21} = 0b11100110111; 16264 let prefersSlot3 = 1; 16265 let Constraints = "$Rxx32 = $Rxx32in"; 16266 } 16267 def M2_mpyui : HInst< 16268 (outs IntRegs:$Rd32), 16269 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16270 "$Rd32 = mpyui($Rs32,$Rt32)", 16271 tc_8fd5f294, TypeM> { 16272 let hasNewValue = 1; 16273 let opNewValue = 0; 16274 let isPseudo = 1; 16275 let isCodeGenOnly = 1; 16276 } 16277 def M2_nacci : HInst< 16278 (outs IntRegs:$Rx32), 16279 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16280 "$Rx32 -= add($Rs32,$Rt32)", 16281 tc_c74f796f, TypeM>, Enc_2ae154 { 16282 let Inst{7-5} = 0b001; 16283 let Inst{13-13} = 0b0; 16284 let Inst{31-21} = 0b11101111100; 16285 let hasNewValue = 1; 16286 let opNewValue = 0; 16287 let prefersSlot3 = 1; 16288 let InputType = "reg"; 16289 let Constraints = "$Rx32 = $Rx32in"; 16290 } 16291 def M2_naccii : HInst< 16292 (outs IntRegs:$Rx32), 16293 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 16294 "$Rx32 -= add($Rs32,#$Ii)", 16295 tc_c74f796f, TypeM>, Enc_c90aca { 16296 let Inst{13-13} = 0b0; 16297 let Inst{31-21} = 0b11100010100; 16298 let hasNewValue = 1; 16299 let opNewValue = 0; 16300 let prefersSlot3 = 1; 16301 let InputType = "imm"; 16302 let isExtendable = 1; 16303 let opExtendable = 3; 16304 let isExtentSigned = 1; 16305 let opExtentBits = 8; 16306 let opExtentAlign = 0; 16307 let Constraints = "$Rx32 = $Rx32in"; 16308 } 16309 def M2_subacc : HInst< 16310 (outs IntRegs:$Rx32), 16311 (ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32), 16312 "$Rx32 += sub($Rt32,$Rs32)", 16313 tc_c74f796f, TypeM>, Enc_a568d4 { 16314 let Inst{7-5} = 0b011; 16315 let Inst{13-13} = 0b0; 16316 let Inst{31-21} = 0b11101111000; 16317 let hasNewValue = 1; 16318 let opNewValue = 0; 16319 let prefersSlot3 = 1; 16320 let InputType = "reg"; 16321 let Constraints = "$Rx32 = $Rx32in"; 16322 } 16323 def M2_vabsdiffh : HInst< 16324 (outs DoubleRegs:$Rdd32), 16325 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16326 "$Rdd32 = vabsdiffh($Rtt32,$Rss32)", 16327 tc_2b6f77c6, TypeM>, Enc_ea23e4 { 16328 let Inst{7-5} = 0b000; 16329 let Inst{13-13} = 0b0; 16330 let Inst{31-21} = 0b11101000011; 16331 let prefersSlot3 = 1; 16332 } 16333 def M2_vabsdiffw : HInst< 16334 (outs DoubleRegs:$Rdd32), 16335 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16336 "$Rdd32 = vabsdiffw($Rtt32,$Rss32)", 16337 tc_2b6f77c6, TypeM>, Enc_ea23e4 { 16338 let Inst{7-5} = 0b000; 16339 let Inst{13-13} = 0b0; 16340 let Inst{31-21} = 0b11101000001; 16341 let prefersSlot3 = 1; 16342 } 16343 def M2_vcmac_s0_sat_i : HInst< 16344 (outs DoubleRegs:$Rxx32), 16345 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16346 "$Rxx32 += vcmpyi($Rss32,$Rtt32):sat", 16347 tc_e913dc32, TypeM>, Enc_88c16c { 16348 let Inst{7-5} = 0b100; 16349 let Inst{13-13} = 0b0; 16350 let Inst{31-21} = 0b11101010010; 16351 let prefersSlot3 = 1; 16352 let Defs = [USR_OVF]; 16353 let Constraints = "$Rxx32 = $Rxx32in"; 16354 } 16355 def M2_vcmac_s0_sat_r : HInst< 16356 (outs DoubleRegs:$Rxx32), 16357 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16358 "$Rxx32 += vcmpyr($Rss32,$Rtt32):sat", 16359 tc_e913dc32, TypeM>, Enc_88c16c { 16360 let Inst{7-5} = 0b100; 16361 let Inst{13-13} = 0b0; 16362 let Inst{31-21} = 0b11101010001; 16363 let prefersSlot3 = 1; 16364 let Defs = [USR_OVF]; 16365 let Constraints = "$Rxx32 = $Rxx32in"; 16366 } 16367 def M2_vcmpy_s0_sat_i : HInst< 16368 (outs DoubleRegs:$Rdd32), 16369 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16370 "$Rdd32 = vcmpyi($Rss32,$Rtt32):sat", 16371 tc_8fd5f294, TypeM>, Enc_a56825 { 16372 let Inst{7-5} = 0b110; 16373 let Inst{13-13} = 0b0; 16374 let Inst{31-21} = 0b11101000010; 16375 let prefersSlot3 = 1; 16376 let Defs = [USR_OVF]; 16377 } 16378 def M2_vcmpy_s0_sat_r : HInst< 16379 (outs DoubleRegs:$Rdd32), 16380 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16381 "$Rdd32 = vcmpyr($Rss32,$Rtt32):sat", 16382 tc_8fd5f294, TypeM>, Enc_a56825 { 16383 let Inst{7-5} = 0b110; 16384 let Inst{13-13} = 0b0; 16385 let Inst{31-21} = 0b11101000001; 16386 let prefersSlot3 = 1; 16387 let Defs = [USR_OVF]; 16388 } 16389 def M2_vcmpy_s1_sat_i : HInst< 16390 (outs DoubleRegs:$Rdd32), 16391 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16392 "$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat", 16393 tc_8fd5f294, TypeM>, Enc_a56825 { 16394 let Inst{7-5} = 0b110; 16395 let Inst{13-13} = 0b0; 16396 let Inst{31-21} = 0b11101000110; 16397 let prefersSlot3 = 1; 16398 let Defs = [USR_OVF]; 16399 } 16400 def M2_vcmpy_s1_sat_r : HInst< 16401 (outs DoubleRegs:$Rdd32), 16402 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16403 "$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat", 16404 tc_8fd5f294, TypeM>, Enc_a56825 { 16405 let Inst{7-5} = 0b110; 16406 let Inst{13-13} = 0b0; 16407 let Inst{31-21} = 0b11101000101; 16408 let prefersSlot3 = 1; 16409 let Defs = [USR_OVF]; 16410 } 16411 def M2_vdmacs_s0 : HInst< 16412 (outs DoubleRegs:$Rxx32), 16413 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16414 "$Rxx32 += vdmpy($Rss32,$Rtt32):sat", 16415 tc_e913dc32, TypeM>, Enc_88c16c { 16416 let Inst{7-5} = 0b100; 16417 let Inst{13-13} = 0b0; 16418 let Inst{31-21} = 0b11101010000; 16419 let prefersSlot3 = 1; 16420 let Defs = [USR_OVF]; 16421 let Constraints = "$Rxx32 = $Rxx32in"; 16422 } 16423 def M2_vdmacs_s1 : HInst< 16424 (outs DoubleRegs:$Rxx32), 16425 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16426 "$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat", 16427 tc_e913dc32, TypeM>, Enc_88c16c { 16428 let Inst{7-5} = 0b100; 16429 let Inst{13-13} = 0b0; 16430 let Inst{31-21} = 0b11101010100; 16431 let prefersSlot3 = 1; 16432 let Defs = [USR_OVF]; 16433 let Constraints = "$Rxx32 = $Rxx32in"; 16434 } 16435 def M2_vdmpyrs_s0 : HInst< 16436 (outs IntRegs:$Rd32), 16437 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16438 "$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat", 16439 tc_8fd5f294, TypeM>, Enc_d2216a { 16440 let Inst{7-5} = 0b000; 16441 let Inst{13-13} = 0b0; 16442 let Inst{31-21} = 0b11101001000; 16443 let hasNewValue = 1; 16444 let opNewValue = 0; 16445 let prefersSlot3 = 1; 16446 let Defs = [USR_OVF]; 16447 } 16448 def M2_vdmpyrs_s1 : HInst< 16449 (outs IntRegs:$Rd32), 16450 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16451 "$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat", 16452 tc_8fd5f294, TypeM>, Enc_d2216a { 16453 let Inst{7-5} = 0b000; 16454 let Inst{13-13} = 0b0; 16455 let Inst{31-21} = 0b11101001100; 16456 let hasNewValue = 1; 16457 let opNewValue = 0; 16458 let prefersSlot3 = 1; 16459 let Defs = [USR_OVF]; 16460 } 16461 def M2_vdmpys_s0 : HInst< 16462 (outs DoubleRegs:$Rdd32), 16463 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16464 "$Rdd32 = vdmpy($Rss32,$Rtt32):sat", 16465 tc_8fd5f294, TypeM>, Enc_a56825 { 16466 let Inst{7-5} = 0b100; 16467 let Inst{13-13} = 0b0; 16468 let Inst{31-21} = 0b11101000000; 16469 let prefersSlot3 = 1; 16470 let Defs = [USR_OVF]; 16471 } 16472 def M2_vdmpys_s1 : HInst< 16473 (outs DoubleRegs:$Rdd32), 16474 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16475 "$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat", 16476 tc_8fd5f294, TypeM>, Enc_a56825 { 16477 let Inst{7-5} = 0b100; 16478 let Inst{13-13} = 0b0; 16479 let Inst{31-21} = 0b11101000100; 16480 let prefersSlot3 = 1; 16481 let Defs = [USR_OVF]; 16482 } 16483 def M2_vmac2 : HInst< 16484 (outs DoubleRegs:$Rxx32), 16485 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16486 "$Rxx32 += vmpyh($Rs32,$Rt32)", 16487 tc_e913dc32, TypeM>, Enc_61f0b0 { 16488 let Inst{7-5} = 0b001; 16489 let Inst{13-13} = 0b0; 16490 let Inst{31-21} = 0b11100111001; 16491 let prefersSlot3 = 1; 16492 let Constraints = "$Rxx32 = $Rxx32in"; 16493 } 16494 def M2_vmac2es : HInst< 16495 (outs DoubleRegs:$Rxx32), 16496 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16497 "$Rxx32 += vmpyeh($Rss32,$Rtt32)", 16498 tc_e913dc32, TypeM>, Enc_88c16c { 16499 let Inst{7-5} = 0b010; 16500 let Inst{13-13} = 0b0; 16501 let Inst{31-21} = 0b11101010001; 16502 let prefersSlot3 = 1; 16503 let Constraints = "$Rxx32 = $Rxx32in"; 16504 } 16505 def M2_vmac2es_s0 : HInst< 16506 (outs DoubleRegs:$Rxx32), 16507 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16508 "$Rxx32 += vmpyeh($Rss32,$Rtt32):sat", 16509 tc_e913dc32, TypeM>, Enc_88c16c { 16510 let Inst{7-5} = 0b110; 16511 let Inst{13-13} = 0b0; 16512 let Inst{31-21} = 0b11101010000; 16513 let prefersSlot3 = 1; 16514 let Defs = [USR_OVF]; 16515 let Constraints = "$Rxx32 = $Rxx32in"; 16516 } 16517 def M2_vmac2es_s1 : HInst< 16518 (outs DoubleRegs:$Rxx32), 16519 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16520 "$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat", 16521 tc_e913dc32, TypeM>, Enc_88c16c { 16522 let Inst{7-5} = 0b110; 16523 let Inst{13-13} = 0b0; 16524 let Inst{31-21} = 0b11101010100; 16525 let prefersSlot3 = 1; 16526 let Defs = [USR_OVF]; 16527 let Constraints = "$Rxx32 = $Rxx32in"; 16528 } 16529 def M2_vmac2s_s0 : HInst< 16530 (outs DoubleRegs:$Rxx32), 16531 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16532 "$Rxx32 += vmpyh($Rs32,$Rt32):sat", 16533 tc_e913dc32, TypeM>, Enc_61f0b0 { 16534 let Inst{7-5} = 0b101; 16535 let Inst{13-13} = 0b0; 16536 let Inst{31-21} = 0b11100111000; 16537 let prefersSlot3 = 1; 16538 let Defs = [USR_OVF]; 16539 let Constraints = "$Rxx32 = $Rxx32in"; 16540 } 16541 def M2_vmac2s_s1 : HInst< 16542 (outs DoubleRegs:$Rxx32), 16543 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16544 "$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat", 16545 tc_e913dc32, TypeM>, Enc_61f0b0 { 16546 let Inst{7-5} = 0b101; 16547 let Inst{13-13} = 0b0; 16548 let Inst{31-21} = 0b11100111100; 16549 let prefersSlot3 = 1; 16550 let Defs = [USR_OVF]; 16551 let Constraints = "$Rxx32 = $Rxx32in"; 16552 } 16553 def M2_vmac2su_s0 : HInst< 16554 (outs DoubleRegs:$Rxx32), 16555 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16556 "$Rxx32 += vmpyhsu($Rs32,$Rt32):sat", 16557 tc_e913dc32, TypeM>, Enc_61f0b0 { 16558 let Inst{7-5} = 0b101; 16559 let Inst{13-13} = 0b0; 16560 let Inst{31-21} = 0b11100111011; 16561 let prefersSlot3 = 1; 16562 let Defs = [USR_OVF]; 16563 let Constraints = "$Rxx32 = $Rxx32in"; 16564 } 16565 def M2_vmac2su_s1 : HInst< 16566 (outs DoubleRegs:$Rxx32), 16567 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16568 "$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat", 16569 tc_e913dc32, TypeM>, Enc_61f0b0 { 16570 let Inst{7-5} = 0b101; 16571 let Inst{13-13} = 0b0; 16572 let Inst{31-21} = 0b11100111111; 16573 let prefersSlot3 = 1; 16574 let Defs = [USR_OVF]; 16575 let Constraints = "$Rxx32 = $Rxx32in"; 16576 } 16577 def M2_vmpy2es_s0 : HInst< 16578 (outs DoubleRegs:$Rdd32), 16579 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16580 "$Rdd32 = vmpyeh($Rss32,$Rtt32):sat", 16581 tc_8fd5f294, TypeM>, Enc_a56825 { 16582 let Inst{7-5} = 0b110; 16583 let Inst{13-13} = 0b0; 16584 let Inst{31-21} = 0b11101000000; 16585 let prefersSlot3 = 1; 16586 let Defs = [USR_OVF]; 16587 } 16588 def M2_vmpy2es_s1 : HInst< 16589 (outs DoubleRegs:$Rdd32), 16590 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16591 "$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat", 16592 tc_8fd5f294, TypeM>, Enc_a56825 { 16593 let Inst{7-5} = 0b110; 16594 let Inst{13-13} = 0b0; 16595 let Inst{31-21} = 0b11101000100; 16596 let prefersSlot3 = 1; 16597 let Defs = [USR_OVF]; 16598 } 16599 def M2_vmpy2s_s0 : HInst< 16600 (outs DoubleRegs:$Rdd32), 16601 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16602 "$Rdd32 = vmpyh($Rs32,$Rt32):sat", 16603 tc_8fd5f294, TypeM>, Enc_be32a5 { 16604 let Inst{7-5} = 0b101; 16605 let Inst{13-13} = 0b0; 16606 let Inst{31-21} = 0b11100101000; 16607 let prefersSlot3 = 1; 16608 let Defs = [USR_OVF]; 16609 } 16610 def M2_vmpy2s_s0pack : HInst< 16611 (outs IntRegs:$Rd32), 16612 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16613 "$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat", 16614 tc_8fd5f294, TypeM>, Enc_5ab2be { 16615 let Inst{7-5} = 0b111; 16616 let Inst{13-13} = 0b0; 16617 let Inst{31-21} = 0b11101101001; 16618 let hasNewValue = 1; 16619 let opNewValue = 0; 16620 let prefersSlot3 = 1; 16621 let Defs = [USR_OVF]; 16622 } 16623 def M2_vmpy2s_s1 : HInst< 16624 (outs DoubleRegs:$Rdd32), 16625 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16626 "$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat", 16627 tc_8fd5f294, TypeM>, Enc_be32a5 { 16628 let Inst{7-5} = 0b101; 16629 let Inst{13-13} = 0b0; 16630 let Inst{31-21} = 0b11100101100; 16631 let prefersSlot3 = 1; 16632 let Defs = [USR_OVF]; 16633 } 16634 def M2_vmpy2s_s1pack : HInst< 16635 (outs IntRegs:$Rd32), 16636 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16637 "$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat", 16638 tc_8fd5f294, TypeM>, Enc_5ab2be { 16639 let Inst{7-5} = 0b111; 16640 let Inst{13-13} = 0b0; 16641 let Inst{31-21} = 0b11101101101; 16642 let hasNewValue = 1; 16643 let opNewValue = 0; 16644 let prefersSlot3 = 1; 16645 let Defs = [USR_OVF]; 16646 } 16647 def M2_vmpy2su_s0 : HInst< 16648 (outs DoubleRegs:$Rdd32), 16649 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16650 "$Rdd32 = vmpyhsu($Rs32,$Rt32):sat", 16651 tc_8fd5f294, TypeM>, Enc_be32a5 { 16652 let Inst{7-5} = 0b111; 16653 let Inst{13-13} = 0b0; 16654 let Inst{31-21} = 0b11100101000; 16655 let prefersSlot3 = 1; 16656 let Defs = [USR_OVF]; 16657 } 16658 def M2_vmpy2su_s1 : HInst< 16659 (outs DoubleRegs:$Rdd32), 16660 (ins IntRegs:$Rs32, IntRegs:$Rt32), 16661 "$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat", 16662 tc_8fd5f294, TypeM>, Enc_be32a5 { 16663 let Inst{7-5} = 0b111; 16664 let Inst{13-13} = 0b0; 16665 let Inst{31-21} = 0b11100101100; 16666 let prefersSlot3 = 1; 16667 let Defs = [USR_OVF]; 16668 } 16669 def M2_vraddh : HInst< 16670 (outs IntRegs:$Rd32), 16671 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16672 "$Rd32 = vraddh($Rss32,$Rtt32)", 16673 tc_8fd5f294, TypeM>, Enc_d2216a { 16674 let Inst{7-5} = 0b111; 16675 let Inst{13-13} = 0b0; 16676 let Inst{31-21} = 0b11101001001; 16677 let hasNewValue = 1; 16678 let opNewValue = 0; 16679 let prefersSlot3 = 1; 16680 } 16681 def M2_vradduh : HInst< 16682 (outs IntRegs:$Rd32), 16683 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16684 "$Rd32 = vradduh($Rss32,$Rtt32)", 16685 tc_8fd5f294, TypeM>, Enc_d2216a { 16686 let Inst{7-5} = 0b001; 16687 let Inst{13-13} = 0b0; 16688 let Inst{31-21} = 0b11101001000; 16689 let hasNewValue = 1; 16690 let opNewValue = 0; 16691 let prefersSlot3 = 1; 16692 } 16693 def M2_vrcmaci_s0 : HInst< 16694 (outs DoubleRegs:$Rxx32), 16695 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16696 "$Rxx32 += vrcmpyi($Rss32,$Rtt32)", 16697 tc_e913dc32, TypeM>, Enc_88c16c { 16698 let Inst{7-5} = 0b000; 16699 let Inst{13-13} = 0b0; 16700 let Inst{31-21} = 0b11101010000; 16701 let prefersSlot3 = 1; 16702 let Constraints = "$Rxx32 = $Rxx32in"; 16703 } 16704 def M2_vrcmaci_s0c : HInst< 16705 (outs DoubleRegs:$Rxx32), 16706 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16707 "$Rxx32 += vrcmpyi($Rss32,$Rtt32*)", 16708 tc_e913dc32, TypeM>, Enc_88c16c { 16709 let Inst{7-5} = 0b000; 16710 let Inst{13-13} = 0b0; 16711 let Inst{31-21} = 0b11101010010; 16712 let prefersSlot3 = 1; 16713 let Constraints = "$Rxx32 = $Rxx32in"; 16714 } 16715 def M2_vrcmacr_s0 : HInst< 16716 (outs DoubleRegs:$Rxx32), 16717 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16718 "$Rxx32 += vrcmpyr($Rss32,$Rtt32)", 16719 tc_e913dc32, TypeM>, Enc_88c16c { 16720 let Inst{7-5} = 0b001; 16721 let Inst{13-13} = 0b0; 16722 let Inst{31-21} = 0b11101010000; 16723 let prefersSlot3 = 1; 16724 let Constraints = "$Rxx32 = $Rxx32in"; 16725 } 16726 def M2_vrcmacr_s0c : HInst< 16727 (outs DoubleRegs:$Rxx32), 16728 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16729 "$Rxx32 += vrcmpyr($Rss32,$Rtt32*)", 16730 tc_e913dc32, TypeM>, Enc_88c16c { 16731 let Inst{7-5} = 0b001; 16732 let Inst{13-13} = 0b0; 16733 let Inst{31-21} = 0b11101010011; 16734 let prefersSlot3 = 1; 16735 let Constraints = "$Rxx32 = $Rxx32in"; 16736 } 16737 def M2_vrcmpyi_s0 : HInst< 16738 (outs DoubleRegs:$Rdd32), 16739 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16740 "$Rdd32 = vrcmpyi($Rss32,$Rtt32)", 16741 tc_8fd5f294, TypeM>, Enc_a56825 { 16742 let Inst{7-5} = 0b000; 16743 let Inst{13-13} = 0b0; 16744 let Inst{31-21} = 0b11101000000; 16745 let prefersSlot3 = 1; 16746 } 16747 def M2_vrcmpyi_s0c : HInst< 16748 (outs DoubleRegs:$Rdd32), 16749 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16750 "$Rdd32 = vrcmpyi($Rss32,$Rtt32*)", 16751 tc_8fd5f294, TypeM>, Enc_a56825 { 16752 let Inst{7-5} = 0b000; 16753 let Inst{13-13} = 0b0; 16754 let Inst{31-21} = 0b11101000010; 16755 let prefersSlot3 = 1; 16756 } 16757 def M2_vrcmpyr_s0 : HInst< 16758 (outs DoubleRegs:$Rdd32), 16759 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16760 "$Rdd32 = vrcmpyr($Rss32,$Rtt32)", 16761 tc_8fd5f294, TypeM>, Enc_a56825 { 16762 let Inst{7-5} = 0b001; 16763 let Inst{13-13} = 0b0; 16764 let Inst{31-21} = 0b11101000000; 16765 let prefersSlot3 = 1; 16766 } 16767 def M2_vrcmpyr_s0c : HInst< 16768 (outs DoubleRegs:$Rdd32), 16769 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16770 "$Rdd32 = vrcmpyr($Rss32,$Rtt32*)", 16771 tc_8fd5f294, TypeM>, Enc_a56825 { 16772 let Inst{7-5} = 0b001; 16773 let Inst{13-13} = 0b0; 16774 let Inst{31-21} = 0b11101000011; 16775 let prefersSlot3 = 1; 16776 } 16777 def M2_vrcmpys_acc_s1 : HInst< 16778 (outs DoubleRegs:$Rxx32), 16779 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 16780 "$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat", 16781 tc_e913dc32, TypeM> { 16782 let isPseudo = 1; 16783 let Constraints = "$Rxx32 = $Rxx32in"; 16784 } 16785 def M2_vrcmpys_acc_s1_h : HInst< 16786 (outs DoubleRegs:$Rxx32), 16787 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16788 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 16789 tc_e913dc32, TypeM>, Enc_88c16c { 16790 let Inst{7-5} = 0b100; 16791 let Inst{13-13} = 0b0; 16792 let Inst{31-21} = 0b11101010101; 16793 let prefersSlot3 = 1; 16794 let Defs = [USR_OVF]; 16795 let Constraints = "$Rxx32 = $Rxx32in"; 16796 } 16797 def M2_vrcmpys_acc_s1_l : HInst< 16798 (outs DoubleRegs:$Rxx32), 16799 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16800 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 16801 tc_e913dc32, TypeM>, Enc_88c16c { 16802 let Inst{7-5} = 0b100; 16803 let Inst{13-13} = 0b0; 16804 let Inst{31-21} = 0b11101010111; 16805 let prefersSlot3 = 1; 16806 let Defs = [USR_OVF]; 16807 let Constraints = "$Rxx32 = $Rxx32in"; 16808 } 16809 def M2_vrcmpys_s1 : HInst< 16810 (outs DoubleRegs:$Rdd32), 16811 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16812 "$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat", 16813 tc_8fd5f294, TypeM> { 16814 let isPseudo = 1; 16815 } 16816 def M2_vrcmpys_s1_h : HInst< 16817 (outs DoubleRegs:$Rdd32), 16818 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16819 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 16820 tc_8fd5f294, TypeM>, Enc_a56825 { 16821 let Inst{7-5} = 0b100; 16822 let Inst{13-13} = 0b0; 16823 let Inst{31-21} = 0b11101000101; 16824 let prefersSlot3 = 1; 16825 let Defs = [USR_OVF]; 16826 } 16827 def M2_vrcmpys_s1_l : HInst< 16828 (outs DoubleRegs:$Rdd32), 16829 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16830 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 16831 tc_8fd5f294, TypeM>, Enc_a56825 { 16832 let Inst{7-5} = 0b100; 16833 let Inst{13-13} = 0b0; 16834 let Inst{31-21} = 0b11101000111; 16835 let prefersSlot3 = 1; 16836 let Defs = [USR_OVF]; 16837 } 16838 def M2_vrcmpys_s1rp : HInst< 16839 (outs IntRegs:$Rd32), 16840 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16841 "$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat", 16842 tc_8fd5f294, TypeM> { 16843 let hasNewValue = 1; 16844 let opNewValue = 0; 16845 let isPseudo = 1; 16846 } 16847 def M2_vrcmpys_s1rp_h : HInst< 16848 (outs IntRegs:$Rd32), 16849 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16850 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi", 16851 tc_8fd5f294, TypeM>, Enc_d2216a { 16852 let Inst{7-5} = 0b110; 16853 let Inst{13-13} = 0b0; 16854 let Inst{31-21} = 0b11101001101; 16855 let hasNewValue = 1; 16856 let opNewValue = 0; 16857 let prefersSlot3 = 1; 16858 let Defs = [USR_OVF]; 16859 } 16860 def M2_vrcmpys_s1rp_l : HInst< 16861 (outs IntRegs:$Rd32), 16862 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16863 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo", 16864 tc_8fd5f294, TypeM>, Enc_d2216a { 16865 let Inst{7-5} = 0b111; 16866 let Inst{13-13} = 0b0; 16867 let Inst{31-21} = 0b11101001101; 16868 let hasNewValue = 1; 16869 let opNewValue = 0; 16870 let prefersSlot3 = 1; 16871 let Defs = [USR_OVF]; 16872 } 16873 def M2_vrmac_s0 : HInst< 16874 (outs DoubleRegs:$Rxx32), 16875 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16876 "$Rxx32 += vrmpyh($Rss32,$Rtt32)", 16877 tc_e913dc32, TypeM>, Enc_88c16c { 16878 let Inst{7-5} = 0b010; 16879 let Inst{13-13} = 0b0; 16880 let Inst{31-21} = 0b11101010000; 16881 let prefersSlot3 = 1; 16882 let Constraints = "$Rxx32 = $Rxx32in"; 16883 } 16884 def M2_vrmpy_s0 : HInst< 16885 (outs DoubleRegs:$Rdd32), 16886 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16887 "$Rdd32 = vrmpyh($Rss32,$Rtt32)", 16888 tc_8fd5f294, TypeM>, Enc_a56825 { 16889 let Inst{7-5} = 0b010; 16890 let Inst{13-13} = 0b0; 16891 let Inst{31-21} = 0b11101000000; 16892 let prefersSlot3 = 1; 16893 } 16894 def M2_xor_xacc : HInst< 16895 (outs IntRegs:$Rx32), 16896 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16897 "$Rx32 ^= xor($Rs32,$Rt32)", 16898 tc_84df2cd3, TypeM>, Enc_2ae154 { 16899 let Inst{7-5} = 0b011; 16900 let Inst{13-13} = 0b0; 16901 let Inst{31-21} = 0b11101111100; 16902 let hasNewValue = 1; 16903 let opNewValue = 0; 16904 let prefersSlot3 = 1; 16905 let InputType = "reg"; 16906 let Constraints = "$Rx32 = $Rx32in"; 16907 } 16908 def M4_and_and : HInst< 16909 (outs IntRegs:$Rx32), 16910 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16911 "$Rx32 &= and($Rs32,$Rt32)", 16912 tc_84df2cd3, TypeM>, Enc_2ae154 { 16913 let Inst{7-5} = 0b000; 16914 let Inst{13-13} = 0b0; 16915 let Inst{31-21} = 0b11101111010; 16916 let hasNewValue = 1; 16917 let opNewValue = 0; 16918 let prefersSlot3 = 1; 16919 let InputType = "reg"; 16920 let Constraints = "$Rx32 = $Rx32in"; 16921 } 16922 def M4_and_andn : HInst< 16923 (outs IntRegs:$Rx32), 16924 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16925 "$Rx32 &= and($Rs32,~$Rt32)", 16926 tc_84df2cd3, TypeM>, Enc_2ae154 { 16927 let Inst{7-5} = 0b001; 16928 let Inst{13-13} = 0b0; 16929 let Inst{31-21} = 0b11101111001; 16930 let hasNewValue = 1; 16931 let opNewValue = 0; 16932 let prefersSlot3 = 1; 16933 let InputType = "reg"; 16934 let Constraints = "$Rx32 = $Rx32in"; 16935 } 16936 def M4_and_or : HInst< 16937 (outs IntRegs:$Rx32), 16938 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16939 "$Rx32 &= or($Rs32,$Rt32)", 16940 tc_84df2cd3, TypeM>, Enc_2ae154 { 16941 let Inst{7-5} = 0b001; 16942 let Inst{13-13} = 0b0; 16943 let Inst{31-21} = 0b11101111010; 16944 let hasNewValue = 1; 16945 let opNewValue = 0; 16946 let prefersSlot3 = 1; 16947 let InputType = "reg"; 16948 let Constraints = "$Rx32 = $Rx32in"; 16949 } 16950 def M4_and_xor : HInst< 16951 (outs IntRegs:$Rx32), 16952 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16953 "$Rx32 &= xor($Rs32,$Rt32)", 16954 tc_84df2cd3, TypeM>, Enc_2ae154 { 16955 let Inst{7-5} = 0b010; 16956 let Inst{13-13} = 0b0; 16957 let Inst{31-21} = 0b11101111010; 16958 let hasNewValue = 1; 16959 let opNewValue = 0; 16960 let prefersSlot3 = 1; 16961 let InputType = "reg"; 16962 let Constraints = "$Rx32 = $Rx32in"; 16963 } 16964 def M4_cmpyi_wh : HInst< 16965 (outs IntRegs:$Rd32), 16966 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16967 "$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat", 16968 tc_8fd5f294, TypeS_3op>, Enc_3d5b28 { 16969 let Inst{7-5} = 0b100; 16970 let Inst{13-13} = 0b0; 16971 let Inst{31-21} = 0b11000101000; 16972 let hasNewValue = 1; 16973 let opNewValue = 0; 16974 let prefersSlot3 = 1; 16975 let Defs = [USR_OVF]; 16976 } 16977 def M4_cmpyi_whc : HInst< 16978 (outs IntRegs:$Rd32), 16979 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16980 "$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat", 16981 tc_8fd5f294, TypeS_3op>, Enc_3d5b28, Requires<[HasV5]> { 16982 let Inst{7-5} = 0b101; 16983 let Inst{13-13} = 0b0; 16984 let Inst{31-21} = 0b11000101000; 16985 let hasNewValue = 1; 16986 let opNewValue = 0; 16987 let prefersSlot3 = 1; 16988 let Defs = [USR_OVF]; 16989 } 16990 def M4_cmpyr_wh : HInst< 16991 (outs IntRegs:$Rd32), 16992 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16993 "$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat", 16994 tc_8fd5f294, TypeS_3op>, Enc_3d5b28 { 16995 let Inst{7-5} = 0b110; 16996 let Inst{13-13} = 0b0; 16997 let Inst{31-21} = 0b11000101000; 16998 let hasNewValue = 1; 16999 let opNewValue = 0; 17000 let prefersSlot3 = 1; 17001 let Defs = [USR_OVF]; 17002 } 17003 def M4_cmpyr_whc : HInst< 17004 (outs IntRegs:$Rd32), 17005 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17006 "$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat", 17007 tc_8fd5f294, TypeS_3op>, Enc_3d5b28, Requires<[HasV5]> { 17008 let Inst{7-5} = 0b111; 17009 let Inst{13-13} = 0b0; 17010 let Inst{31-21} = 0b11000101000; 17011 let hasNewValue = 1; 17012 let opNewValue = 0; 17013 let prefersSlot3 = 1; 17014 let Defs = [USR_OVF]; 17015 } 17016 def M4_mac_up_s1_sat : HInst< 17017 (outs IntRegs:$Rx32), 17018 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17019 "$Rx32 += mpy($Rs32,$Rt32):<<1:sat", 17020 tc_e913dc32, TypeM>, Enc_2ae154 { 17021 let Inst{7-5} = 0b000; 17022 let Inst{13-13} = 0b0; 17023 let Inst{31-21} = 0b11101111011; 17024 let hasNewValue = 1; 17025 let opNewValue = 0; 17026 let prefersSlot3 = 1; 17027 let Defs = [USR_OVF]; 17028 let InputType = "reg"; 17029 let Constraints = "$Rx32 = $Rx32in"; 17030 } 17031 def M4_mpyri_addi : HInst< 17032 (outs IntRegs:$Rd32), 17033 (ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II), 17034 "$Rd32 = add(#$Ii,mpyi($Rs32,#$II))", 17035 tc_16d0d8d5, TypeALU64>, Enc_322e1b, ImmRegRel { 17036 let Inst{31-24} = 0b11011000; 17037 let hasNewValue = 1; 17038 let opNewValue = 0; 17039 let prefersSlot3 = 1; 17040 let CextOpcode = "M4_mpyri_addr"; 17041 let isExtendable = 1; 17042 let opExtendable = 1; 17043 let isExtentSigned = 0; 17044 let opExtentBits = 6; 17045 let opExtentAlign = 0; 17046 } 17047 def M4_mpyri_addr : HInst< 17048 (outs IntRegs:$Rd32), 17049 (ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii), 17050 "$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))", 17051 tc_16d0d8d5, TypeALU64>, Enc_420cf3, ImmRegRel { 17052 let Inst{31-23} = 0b110111111; 17053 let hasNewValue = 1; 17054 let opNewValue = 0; 17055 let prefersSlot3 = 1; 17056 let CextOpcode = "M4_mpyri_addr"; 17057 let InputType = "imm"; 17058 let isExtendable = 1; 17059 let opExtendable = 3; 17060 let isExtentSigned = 0; 17061 let opExtentBits = 6; 17062 let opExtentAlign = 0; 17063 } 17064 def M4_mpyri_addr_u2 : HInst< 17065 (outs IntRegs:$Rd32), 17066 (ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32), 17067 "$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))", 17068 tc_bcc96cee, TypeALU64>, Enc_277737 { 17069 let Inst{31-23} = 0b110111110; 17070 let hasNewValue = 1; 17071 let opNewValue = 0; 17072 let prefersSlot3 = 1; 17073 } 17074 def M4_mpyrr_addi : HInst< 17075 (outs IntRegs:$Rd32), 17076 (ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32), 17077 "$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))", 17078 tc_e913dc32, TypeALU64>, Enc_a7b8e8, ImmRegRel { 17079 let Inst{31-23} = 0b110101110; 17080 let hasNewValue = 1; 17081 let opNewValue = 0; 17082 let prefersSlot3 = 1; 17083 let CextOpcode = "M4_mpyrr_addr"; 17084 let InputType = "imm"; 17085 let isExtendable = 1; 17086 let opExtendable = 1; 17087 let isExtentSigned = 0; 17088 let opExtentBits = 6; 17089 let opExtentAlign = 0; 17090 } 17091 def M4_mpyrr_addr : HInst< 17092 (outs IntRegs:$Ry32), 17093 (ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32), 17094 "$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))", 17095 tc_e913dc32, TypeM>, Enc_7f1a05, ImmRegRel { 17096 let Inst{7-5} = 0b000; 17097 let Inst{13-13} = 0b0; 17098 let Inst{31-21} = 0b11100011000; 17099 let hasNewValue = 1; 17100 let opNewValue = 0; 17101 let prefersSlot3 = 1; 17102 let CextOpcode = "M4_mpyrr_addr"; 17103 let InputType = "reg"; 17104 let Constraints = "$Ry32 = $Ry32in"; 17105 } 17106 def M4_nac_up_s1_sat : HInst< 17107 (outs IntRegs:$Rx32), 17108 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17109 "$Rx32 -= mpy($Rs32,$Rt32):<<1:sat", 17110 tc_e913dc32, TypeM>, Enc_2ae154 { 17111 let Inst{7-5} = 0b001; 17112 let Inst{13-13} = 0b0; 17113 let Inst{31-21} = 0b11101111011; 17114 let hasNewValue = 1; 17115 let opNewValue = 0; 17116 let prefersSlot3 = 1; 17117 let Defs = [USR_OVF]; 17118 let InputType = "reg"; 17119 let Constraints = "$Rx32 = $Rx32in"; 17120 } 17121 def M4_or_and : HInst< 17122 (outs IntRegs:$Rx32), 17123 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17124 "$Rx32 |= and($Rs32,$Rt32)", 17125 tc_84df2cd3, TypeM>, Enc_2ae154 { 17126 let Inst{7-5} = 0b011; 17127 let Inst{13-13} = 0b0; 17128 let Inst{31-21} = 0b11101111010; 17129 let hasNewValue = 1; 17130 let opNewValue = 0; 17131 let prefersSlot3 = 1; 17132 let InputType = "reg"; 17133 let Constraints = "$Rx32 = $Rx32in"; 17134 } 17135 def M4_or_andn : HInst< 17136 (outs IntRegs:$Rx32), 17137 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17138 "$Rx32 |= and($Rs32,~$Rt32)", 17139 tc_84df2cd3, TypeM>, Enc_2ae154 { 17140 let Inst{7-5} = 0b000; 17141 let Inst{13-13} = 0b0; 17142 let Inst{31-21} = 0b11101111001; 17143 let hasNewValue = 1; 17144 let opNewValue = 0; 17145 let prefersSlot3 = 1; 17146 let InputType = "reg"; 17147 let Constraints = "$Rx32 = $Rx32in"; 17148 } 17149 def M4_or_or : HInst< 17150 (outs IntRegs:$Rx32), 17151 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17152 "$Rx32 |= or($Rs32,$Rt32)", 17153 tc_84df2cd3, TypeM>, Enc_2ae154 { 17154 let Inst{7-5} = 0b000; 17155 let Inst{13-13} = 0b0; 17156 let Inst{31-21} = 0b11101111110; 17157 let hasNewValue = 1; 17158 let opNewValue = 0; 17159 let prefersSlot3 = 1; 17160 let InputType = "reg"; 17161 let Constraints = "$Rx32 = $Rx32in"; 17162 } 17163 def M4_or_xor : HInst< 17164 (outs IntRegs:$Rx32), 17165 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17166 "$Rx32 |= xor($Rs32,$Rt32)", 17167 tc_84df2cd3, TypeM>, Enc_2ae154 { 17168 let Inst{7-5} = 0b001; 17169 let Inst{13-13} = 0b0; 17170 let Inst{31-21} = 0b11101111110; 17171 let hasNewValue = 1; 17172 let opNewValue = 0; 17173 let prefersSlot3 = 1; 17174 let InputType = "reg"; 17175 let Constraints = "$Rx32 = $Rx32in"; 17176 } 17177 def M4_pmpyw : HInst< 17178 (outs DoubleRegs:$Rdd32), 17179 (ins IntRegs:$Rs32, IntRegs:$Rt32), 17180 "$Rdd32 = pmpyw($Rs32,$Rt32)", 17181 tc_8fd5f294, TypeM>, Enc_be32a5 { 17182 let Inst{7-5} = 0b111; 17183 let Inst{13-13} = 0b0; 17184 let Inst{31-21} = 0b11100101010; 17185 let prefersSlot3 = 1; 17186 } 17187 def M4_pmpyw_acc : HInst< 17188 (outs DoubleRegs:$Rxx32), 17189 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17190 "$Rxx32 ^= pmpyw($Rs32,$Rt32)", 17191 tc_e913dc32, TypeM>, Enc_61f0b0 { 17192 let Inst{7-5} = 0b111; 17193 let Inst{13-13} = 0b0; 17194 let Inst{31-21} = 0b11100111001; 17195 let prefersSlot3 = 1; 17196 let Constraints = "$Rxx32 = $Rxx32in"; 17197 } 17198 def M4_vpmpyh : HInst< 17199 (outs DoubleRegs:$Rdd32), 17200 (ins IntRegs:$Rs32, IntRegs:$Rt32), 17201 "$Rdd32 = vpmpyh($Rs32,$Rt32)", 17202 tc_8fd5f294, TypeM>, Enc_be32a5 { 17203 let Inst{7-5} = 0b111; 17204 let Inst{13-13} = 0b0; 17205 let Inst{31-21} = 0b11100101110; 17206 let prefersSlot3 = 1; 17207 } 17208 def M4_vpmpyh_acc : HInst< 17209 (outs DoubleRegs:$Rxx32), 17210 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17211 "$Rxx32 ^= vpmpyh($Rs32,$Rt32)", 17212 tc_e913dc32, TypeM>, Enc_61f0b0 { 17213 let Inst{7-5} = 0b111; 17214 let Inst{13-13} = 0b0; 17215 let Inst{31-21} = 0b11100111101; 17216 let prefersSlot3 = 1; 17217 let Constraints = "$Rxx32 = $Rxx32in"; 17218 } 17219 def M4_vrmpyeh_acc_s0 : HInst< 17220 (outs DoubleRegs:$Rxx32), 17221 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17222 "$Rxx32 += vrmpyweh($Rss32,$Rtt32)", 17223 tc_e913dc32, TypeM>, Enc_88c16c { 17224 let Inst{7-5} = 0b110; 17225 let Inst{13-13} = 0b0; 17226 let Inst{31-21} = 0b11101010001; 17227 let prefersSlot3 = 1; 17228 let Constraints = "$Rxx32 = $Rxx32in"; 17229 } 17230 def M4_vrmpyeh_acc_s1 : HInst< 17231 (outs DoubleRegs:$Rxx32), 17232 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17233 "$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1", 17234 tc_e913dc32, TypeM>, Enc_88c16c { 17235 let Inst{7-5} = 0b110; 17236 let Inst{13-13} = 0b0; 17237 let Inst{31-21} = 0b11101010101; 17238 let prefersSlot3 = 1; 17239 let Constraints = "$Rxx32 = $Rxx32in"; 17240 } 17241 def M4_vrmpyeh_s0 : HInst< 17242 (outs DoubleRegs:$Rdd32), 17243 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17244 "$Rdd32 = vrmpyweh($Rss32,$Rtt32)", 17245 tc_8fd5f294, TypeM>, Enc_a56825 { 17246 let Inst{7-5} = 0b100; 17247 let Inst{13-13} = 0b0; 17248 let Inst{31-21} = 0b11101000010; 17249 let prefersSlot3 = 1; 17250 } 17251 def M4_vrmpyeh_s1 : HInst< 17252 (outs DoubleRegs:$Rdd32), 17253 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17254 "$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1", 17255 tc_8fd5f294, TypeM>, Enc_a56825 { 17256 let Inst{7-5} = 0b100; 17257 let Inst{13-13} = 0b0; 17258 let Inst{31-21} = 0b11101000110; 17259 let prefersSlot3 = 1; 17260 } 17261 def M4_vrmpyoh_acc_s0 : HInst< 17262 (outs DoubleRegs:$Rxx32), 17263 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17264 "$Rxx32 += vrmpywoh($Rss32,$Rtt32)", 17265 tc_e913dc32, TypeM>, Enc_88c16c { 17266 let Inst{7-5} = 0b110; 17267 let Inst{13-13} = 0b0; 17268 let Inst{31-21} = 0b11101010011; 17269 let prefersSlot3 = 1; 17270 let Constraints = "$Rxx32 = $Rxx32in"; 17271 } 17272 def M4_vrmpyoh_acc_s1 : HInst< 17273 (outs DoubleRegs:$Rxx32), 17274 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17275 "$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1", 17276 tc_e913dc32, TypeM>, Enc_88c16c { 17277 let Inst{7-5} = 0b110; 17278 let Inst{13-13} = 0b0; 17279 let Inst{31-21} = 0b11101010111; 17280 let prefersSlot3 = 1; 17281 let Constraints = "$Rxx32 = $Rxx32in"; 17282 } 17283 def M4_vrmpyoh_s0 : HInst< 17284 (outs DoubleRegs:$Rdd32), 17285 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17286 "$Rdd32 = vrmpywoh($Rss32,$Rtt32)", 17287 tc_8fd5f294, TypeM>, Enc_a56825 { 17288 let Inst{7-5} = 0b010; 17289 let Inst{13-13} = 0b0; 17290 let Inst{31-21} = 0b11101000001; 17291 let prefersSlot3 = 1; 17292 } 17293 def M4_vrmpyoh_s1 : HInst< 17294 (outs DoubleRegs:$Rdd32), 17295 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17296 "$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1", 17297 tc_8fd5f294, TypeM>, Enc_a56825 { 17298 let Inst{7-5} = 0b010; 17299 let Inst{13-13} = 0b0; 17300 let Inst{31-21} = 0b11101000101; 17301 let prefersSlot3 = 1; 17302 } 17303 def M4_xor_and : HInst< 17304 (outs IntRegs:$Rx32), 17305 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17306 "$Rx32 ^= and($Rs32,$Rt32)", 17307 tc_84df2cd3, TypeM>, Enc_2ae154 { 17308 let Inst{7-5} = 0b010; 17309 let Inst{13-13} = 0b0; 17310 let Inst{31-21} = 0b11101111110; 17311 let hasNewValue = 1; 17312 let opNewValue = 0; 17313 let prefersSlot3 = 1; 17314 let InputType = "reg"; 17315 let Constraints = "$Rx32 = $Rx32in"; 17316 } 17317 def M4_xor_andn : HInst< 17318 (outs IntRegs:$Rx32), 17319 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17320 "$Rx32 ^= and($Rs32,~$Rt32)", 17321 tc_84df2cd3, TypeM>, Enc_2ae154 { 17322 let Inst{7-5} = 0b010; 17323 let Inst{13-13} = 0b0; 17324 let Inst{31-21} = 0b11101111001; 17325 let hasNewValue = 1; 17326 let opNewValue = 0; 17327 let prefersSlot3 = 1; 17328 let InputType = "reg"; 17329 let Constraints = "$Rx32 = $Rx32in"; 17330 } 17331 def M4_xor_or : HInst< 17332 (outs IntRegs:$Rx32), 17333 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17334 "$Rx32 ^= or($Rs32,$Rt32)", 17335 tc_84df2cd3, TypeM>, Enc_2ae154 { 17336 let Inst{7-5} = 0b011; 17337 let Inst{13-13} = 0b0; 17338 let Inst{31-21} = 0b11101111110; 17339 let hasNewValue = 1; 17340 let opNewValue = 0; 17341 let prefersSlot3 = 1; 17342 let InputType = "reg"; 17343 let Constraints = "$Rx32 = $Rx32in"; 17344 } 17345 def M4_xor_xacc : HInst< 17346 (outs DoubleRegs:$Rxx32), 17347 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17348 "$Rxx32 ^= xor($Rss32,$Rtt32)", 17349 tc_84df2cd3, TypeS_3op>, Enc_88c16c { 17350 let Inst{7-5} = 0b000; 17351 let Inst{13-13} = 0b0; 17352 let Inst{31-21} = 0b11001010100; 17353 let prefersSlot3 = 1; 17354 let Constraints = "$Rxx32 = $Rxx32in"; 17355 } 17356 def M5_vdmacbsu : HInst< 17357 (outs DoubleRegs:$Rxx32), 17358 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17359 "$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat", 17360 tc_e913dc32, TypeM>, Enc_88c16c, Requires<[HasV5]> { 17361 let Inst{7-5} = 0b001; 17362 let Inst{13-13} = 0b0; 17363 let Inst{31-21} = 0b11101010001; 17364 let prefersSlot3 = 1; 17365 let Defs = [USR_OVF]; 17366 let Constraints = "$Rxx32 = $Rxx32in"; 17367 } 17368 def M5_vdmpybsu : HInst< 17369 (outs DoubleRegs:$Rdd32), 17370 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17371 "$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat", 17372 tc_8fd5f294, TypeM>, Enc_a56825, Requires<[HasV5]> { 17373 let Inst{7-5} = 0b001; 17374 let Inst{13-13} = 0b0; 17375 let Inst{31-21} = 0b11101000101; 17376 let prefersSlot3 = 1; 17377 let Defs = [USR_OVF]; 17378 } 17379 def M5_vmacbsu : HInst< 17380 (outs DoubleRegs:$Rxx32), 17381 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17382 "$Rxx32 += vmpybsu($Rs32,$Rt32)", 17383 tc_e913dc32, TypeM>, Enc_61f0b0 { 17384 let Inst{7-5} = 0b001; 17385 let Inst{13-13} = 0b0; 17386 let Inst{31-21} = 0b11100111110; 17387 let prefersSlot3 = 1; 17388 let Constraints = "$Rxx32 = $Rxx32in"; 17389 } 17390 def M5_vmacbuu : HInst< 17391 (outs DoubleRegs:$Rxx32), 17392 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17393 "$Rxx32 += vmpybu($Rs32,$Rt32)", 17394 tc_e913dc32, TypeM>, Enc_61f0b0 { 17395 let Inst{7-5} = 0b001; 17396 let Inst{13-13} = 0b0; 17397 let Inst{31-21} = 0b11100111100; 17398 let prefersSlot3 = 1; 17399 let Constraints = "$Rxx32 = $Rxx32in"; 17400 } 17401 def M5_vmpybsu : HInst< 17402 (outs DoubleRegs:$Rdd32), 17403 (ins IntRegs:$Rs32, IntRegs:$Rt32), 17404 "$Rdd32 = vmpybsu($Rs32,$Rt32)", 17405 tc_8fd5f294, TypeM>, Enc_be32a5 { 17406 let Inst{7-5} = 0b001; 17407 let Inst{13-13} = 0b0; 17408 let Inst{31-21} = 0b11100101010; 17409 let prefersSlot3 = 1; 17410 } 17411 def M5_vmpybuu : HInst< 17412 (outs DoubleRegs:$Rdd32), 17413 (ins IntRegs:$Rs32, IntRegs:$Rt32), 17414 "$Rdd32 = vmpybu($Rs32,$Rt32)", 17415 tc_8fd5f294, TypeM>, Enc_be32a5 { 17416 let Inst{7-5} = 0b001; 17417 let Inst{13-13} = 0b0; 17418 let Inst{31-21} = 0b11100101100; 17419 let prefersSlot3 = 1; 17420 } 17421 def M5_vrmacbsu : HInst< 17422 (outs DoubleRegs:$Rxx32), 17423 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17424 "$Rxx32 += vrmpybsu($Rss32,$Rtt32)", 17425 tc_e913dc32, TypeM>, Enc_88c16c { 17426 let Inst{7-5} = 0b001; 17427 let Inst{13-13} = 0b0; 17428 let Inst{31-21} = 0b11101010110; 17429 let prefersSlot3 = 1; 17430 let Constraints = "$Rxx32 = $Rxx32in"; 17431 } 17432 def M5_vrmacbuu : HInst< 17433 (outs DoubleRegs:$Rxx32), 17434 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17435 "$Rxx32 += vrmpybu($Rss32,$Rtt32)", 17436 tc_e913dc32, TypeM>, Enc_88c16c { 17437 let Inst{7-5} = 0b001; 17438 let Inst{13-13} = 0b0; 17439 let Inst{31-21} = 0b11101010100; 17440 let prefersSlot3 = 1; 17441 let Constraints = "$Rxx32 = $Rxx32in"; 17442 } 17443 def M5_vrmpybsu : HInst< 17444 (outs DoubleRegs:$Rdd32), 17445 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17446 "$Rdd32 = vrmpybsu($Rss32,$Rtt32)", 17447 tc_8fd5f294, TypeM>, Enc_a56825 { 17448 let Inst{7-5} = 0b001; 17449 let Inst{13-13} = 0b0; 17450 let Inst{31-21} = 0b11101000110; 17451 let prefersSlot3 = 1; 17452 } 17453 def M5_vrmpybuu : HInst< 17454 (outs DoubleRegs:$Rdd32), 17455 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17456 "$Rdd32 = vrmpybu($Rss32,$Rtt32)", 17457 tc_8fd5f294, TypeM>, Enc_a56825 { 17458 let Inst{7-5} = 0b001; 17459 let Inst{13-13} = 0b0; 17460 let Inst{31-21} = 0b11101000100; 17461 let prefersSlot3 = 1; 17462 } 17463 def M6_vabsdiffb : HInst< 17464 (outs DoubleRegs:$Rdd32), 17465 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17466 "$Rdd32 = vabsdiffb($Rtt32,$Rss32)", 17467 tc_f49e76f4, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17468 let Inst{7-5} = 0b000; 17469 let Inst{13-13} = 0b0; 17470 let Inst{31-21} = 0b11101000111; 17471 let prefersSlot3 = 1; 17472 } 17473 def M6_vabsdiffub : HInst< 17474 (outs DoubleRegs:$Rdd32), 17475 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17476 "$Rdd32 = vabsdiffub($Rtt32,$Rss32)", 17477 tc_f49e76f4, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17478 let Inst{7-5} = 0b000; 17479 let Inst{13-13} = 0b0; 17480 let Inst{31-21} = 0b11101000101; 17481 let prefersSlot3 = 1; 17482 } 17483 def PS_loadrbabs : HInst< 17484 (outs IntRegs:$Rd32), 17485 (ins u32_0Imm:$Ii), 17486 "$Rd32 = memb(#$Ii)", 17487 tc_9c98e8af, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17488 let Inst{24-21} = 0b1000; 17489 let Inst{31-27} = 0b01001; 17490 let hasNewValue = 1; 17491 let opNewValue = 0; 17492 let addrMode = Absolute; 17493 let accessSize = ByteAccess; 17494 let mayLoad = 1; 17495 let isExtended = 1; 17496 let CextOpcode = "L2_loadrb"; 17497 let BaseOpcode = "L4_loadrb_abs"; 17498 let isPredicable = 1; 17499 let DecoderNamespace = "MustExtend"; 17500 let isExtended = 1; 17501 let opExtendable = 1; 17502 let isExtentSigned = 0; 17503 let opExtentBits = 16; 17504 let opExtentAlign = 0; 17505 } 17506 def PS_loadrdabs : HInst< 17507 (outs DoubleRegs:$Rdd32), 17508 (ins u29_3Imm:$Ii), 17509 "$Rdd32 = memd(#$Ii)", 17510 tc_9c98e8af, TypeV2LDST>, Enc_509701, AddrModeRel { 17511 let Inst{24-21} = 0b1110; 17512 let Inst{31-27} = 0b01001; 17513 let addrMode = Absolute; 17514 let accessSize = DoubleWordAccess; 17515 let mayLoad = 1; 17516 let isExtended = 1; 17517 let CextOpcode = "L2_loadrd"; 17518 let BaseOpcode = "L4_loadrd_abs"; 17519 let isPredicable = 1; 17520 let DecoderNamespace = "MustExtend"; 17521 let isExtended = 1; 17522 let opExtendable = 1; 17523 let isExtentSigned = 0; 17524 let opExtentBits = 19; 17525 let opExtentAlign = 3; 17526 } 17527 def PS_loadrhabs : HInst< 17528 (outs IntRegs:$Rd32), 17529 (ins u31_1Imm:$Ii), 17530 "$Rd32 = memh(#$Ii)", 17531 tc_9c98e8af, TypeV2LDST>, Enc_8df4be, AddrModeRel { 17532 let Inst{24-21} = 0b1010; 17533 let Inst{31-27} = 0b01001; 17534 let hasNewValue = 1; 17535 let opNewValue = 0; 17536 let addrMode = Absolute; 17537 let accessSize = HalfWordAccess; 17538 let mayLoad = 1; 17539 let isExtended = 1; 17540 let CextOpcode = "L2_loadrh"; 17541 let BaseOpcode = "L4_loadrh_abs"; 17542 let isPredicable = 1; 17543 let DecoderNamespace = "MustExtend"; 17544 let isExtended = 1; 17545 let opExtendable = 1; 17546 let isExtentSigned = 0; 17547 let opExtentBits = 17; 17548 let opExtentAlign = 1; 17549 } 17550 def PS_loadriabs : HInst< 17551 (outs IntRegs:$Rd32), 17552 (ins u30_2Imm:$Ii), 17553 "$Rd32 = memw(#$Ii)", 17554 tc_9c98e8af, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 17555 let Inst{24-21} = 0b1100; 17556 let Inst{31-27} = 0b01001; 17557 let hasNewValue = 1; 17558 let opNewValue = 0; 17559 let addrMode = Absolute; 17560 let accessSize = WordAccess; 17561 let mayLoad = 1; 17562 let isExtended = 1; 17563 let CextOpcode = "L2_loadri"; 17564 let BaseOpcode = "L4_loadri_abs"; 17565 let isPredicable = 1; 17566 let DecoderNamespace = "MustExtend"; 17567 let isExtended = 1; 17568 let opExtendable = 1; 17569 let isExtentSigned = 0; 17570 let opExtentBits = 18; 17571 let opExtentAlign = 2; 17572 } 17573 def PS_loadrubabs : HInst< 17574 (outs IntRegs:$Rd32), 17575 (ins u32_0Imm:$Ii), 17576 "$Rd32 = memub(#$Ii)", 17577 tc_9c98e8af, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17578 let Inst{24-21} = 0b1001; 17579 let Inst{31-27} = 0b01001; 17580 let hasNewValue = 1; 17581 let opNewValue = 0; 17582 let addrMode = Absolute; 17583 let accessSize = ByteAccess; 17584 let mayLoad = 1; 17585 let isExtended = 1; 17586 let CextOpcode = "L2_loadrub"; 17587 let BaseOpcode = "L4_loadrub_abs"; 17588 let isPredicable = 1; 17589 let DecoderNamespace = "MustExtend"; 17590 let isExtended = 1; 17591 let opExtendable = 1; 17592 let isExtentSigned = 0; 17593 let opExtentBits = 16; 17594 let opExtentAlign = 0; 17595 } 17596 def PS_loadruhabs : HInst< 17597 (outs IntRegs:$Rd32), 17598 (ins u31_1Imm:$Ii), 17599 "$Rd32 = memuh(#$Ii)", 17600 tc_9c98e8af, TypeV2LDST>, Enc_8df4be, AddrModeRel { 17601 let Inst{24-21} = 0b1011; 17602 let Inst{31-27} = 0b01001; 17603 let hasNewValue = 1; 17604 let opNewValue = 0; 17605 let addrMode = Absolute; 17606 let accessSize = HalfWordAccess; 17607 let mayLoad = 1; 17608 let isExtended = 1; 17609 let CextOpcode = "L2_loadruh"; 17610 let BaseOpcode = "L4_loadruh_abs"; 17611 let isPredicable = 1; 17612 let DecoderNamespace = "MustExtend"; 17613 let isExtended = 1; 17614 let opExtendable = 1; 17615 let isExtentSigned = 0; 17616 let opExtentBits = 17; 17617 let opExtentAlign = 1; 17618 } 17619 def PS_storerbabs : HInst< 17620 (outs), 17621 (ins u32_0Imm:$Ii, IntRegs:$Rt32), 17622 "memb(#$Ii) = $Rt32", 17623 tc_a788683e, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 17624 let Inst{24-21} = 0b0000; 17625 let Inst{31-27} = 0b01001; 17626 let addrMode = Absolute; 17627 let accessSize = ByteAccess; 17628 let isExtended = 1; 17629 let mayStore = 1; 17630 let CextOpcode = "S2_storerb"; 17631 let BaseOpcode = "S2_storerbabs"; 17632 let isPredicable = 1; 17633 let isNVStorable = 1; 17634 let DecoderNamespace = "MustExtend"; 17635 let isExtended = 1; 17636 let opExtendable = 0; 17637 let isExtentSigned = 0; 17638 let opExtentBits = 16; 17639 let opExtentAlign = 0; 17640 } 17641 def PS_storerbnewabs : HInst< 17642 (outs), 17643 (ins u32_0Imm:$Ii, IntRegs:$Nt8), 17644 "memb(#$Ii) = $Nt8.new", 17645 tc_ff9ee76e, TypeV2LDST>, Enc_ad1831, AddrModeRel { 17646 let Inst{12-11} = 0b00; 17647 let Inst{24-21} = 0b0101; 17648 let Inst{31-27} = 0b01001; 17649 let addrMode = Absolute; 17650 let accessSize = ByteAccess; 17651 let isNVStore = 1; 17652 let isNewValue = 1; 17653 let isExtended = 1; 17654 let isRestrictNoSlot1Store = 1; 17655 let mayStore = 1; 17656 let CextOpcode = "S2_storerb"; 17657 let BaseOpcode = "S2_storerbabs"; 17658 let isPredicable = 1; 17659 let DecoderNamespace = "MustExtend"; 17660 let isExtended = 1; 17661 let opExtendable = 0; 17662 let isExtentSigned = 0; 17663 let opExtentBits = 16; 17664 let opExtentAlign = 0; 17665 let opNewValue = 1; 17666 } 17667 def PS_storerdabs : HInst< 17668 (outs), 17669 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 17670 "memd(#$Ii) = $Rtt32", 17671 tc_a788683e, TypeV2LDST>, Enc_5c124a, AddrModeRel { 17672 let Inst{24-21} = 0b0110; 17673 let Inst{31-27} = 0b01001; 17674 let addrMode = Absolute; 17675 let accessSize = DoubleWordAccess; 17676 let isExtended = 1; 17677 let mayStore = 1; 17678 let CextOpcode = "S2_storerd"; 17679 let BaseOpcode = "S2_storerdabs"; 17680 let isPredicable = 1; 17681 let DecoderNamespace = "MustExtend"; 17682 let isExtended = 1; 17683 let opExtendable = 0; 17684 let isExtentSigned = 0; 17685 let opExtentBits = 19; 17686 let opExtentAlign = 3; 17687 } 17688 def PS_storerfabs : HInst< 17689 (outs), 17690 (ins u31_1Imm:$Ii, IntRegs:$Rt32), 17691 "memh(#$Ii) = $Rt32.h", 17692 tc_a788683e, TypeV2LDST>, Enc_fda92c, AddrModeRel { 17693 let Inst{24-21} = 0b0011; 17694 let Inst{31-27} = 0b01001; 17695 let addrMode = Absolute; 17696 let accessSize = HalfWordAccess; 17697 let isExtended = 1; 17698 let mayStore = 1; 17699 let CextOpcode = "S2_storerf"; 17700 let BaseOpcode = "S2_storerfabs"; 17701 let isPredicable = 1; 17702 let DecoderNamespace = "MustExtend"; 17703 let isExtended = 1; 17704 let opExtendable = 0; 17705 let isExtentSigned = 0; 17706 let opExtentBits = 17; 17707 let opExtentAlign = 1; 17708 } 17709 def PS_storerhabs : HInst< 17710 (outs), 17711 (ins u31_1Imm:$Ii, IntRegs:$Rt32), 17712 "memh(#$Ii) = $Rt32", 17713 tc_a788683e, TypeV2LDST>, Enc_fda92c, AddrModeRel { 17714 let Inst{24-21} = 0b0010; 17715 let Inst{31-27} = 0b01001; 17716 let addrMode = Absolute; 17717 let accessSize = HalfWordAccess; 17718 let isExtended = 1; 17719 let mayStore = 1; 17720 let CextOpcode = "S2_storerh"; 17721 let BaseOpcode = "S2_storerhabs"; 17722 let isPredicable = 1; 17723 let isNVStorable = 1; 17724 let DecoderNamespace = "MustExtend"; 17725 let isExtended = 1; 17726 let opExtendable = 0; 17727 let isExtentSigned = 0; 17728 let opExtentBits = 17; 17729 let opExtentAlign = 1; 17730 } 17731 def PS_storerhnewabs : HInst< 17732 (outs), 17733 (ins u31_1Imm:$Ii, IntRegs:$Nt8), 17734 "memh(#$Ii) = $Nt8.new", 17735 tc_ff9ee76e, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 17736 let Inst{12-11} = 0b01; 17737 let Inst{24-21} = 0b0101; 17738 let Inst{31-27} = 0b01001; 17739 let addrMode = Absolute; 17740 let accessSize = HalfWordAccess; 17741 let isNVStore = 1; 17742 let isNewValue = 1; 17743 let isExtended = 1; 17744 let isRestrictNoSlot1Store = 1; 17745 let mayStore = 1; 17746 let CextOpcode = "S2_storerh"; 17747 let BaseOpcode = "S2_storerhabs"; 17748 let isPredicable = 1; 17749 let DecoderNamespace = "MustExtend"; 17750 let isExtended = 1; 17751 let opExtendable = 0; 17752 let isExtentSigned = 0; 17753 let opExtentBits = 17; 17754 let opExtentAlign = 1; 17755 let opNewValue = 1; 17756 } 17757 def PS_storeriabs : HInst< 17758 (outs), 17759 (ins u30_2Imm:$Ii, IntRegs:$Rt32), 17760 "memw(#$Ii) = $Rt32", 17761 tc_a788683e, TypeV2LDST>, Enc_541f26, AddrModeRel { 17762 let Inst{24-21} = 0b0100; 17763 let Inst{31-27} = 0b01001; 17764 let addrMode = Absolute; 17765 let accessSize = WordAccess; 17766 let isExtended = 1; 17767 let mayStore = 1; 17768 let CextOpcode = "S2_storeri"; 17769 let BaseOpcode = "S2_storeriabs"; 17770 let isPredicable = 1; 17771 let isNVStorable = 1; 17772 let DecoderNamespace = "MustExtend"; 17773 let isExtended = 1; 17774 let opExtendable = 0; 17775 let isExtentSigned = 0; 17776 let opExtentBits = 18; 17777 let opExtentAlign = 2; 17778 } 17779 def PS_storerinewabs : HInst< 17780 (outs), 17781 (ins u30_2Imm:$Ii, IntRegs:$Nt8), 17782 "memw(#$Ii) = $Nt8.new", 17783 tc_ff9ee76e, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 17784 let Inst{12-11} = 0b10; 17785 let Inst{24-21} = 0b0101; 17786 let Inst{31-27} = 0b01001; 17787 let addrMode = Absolute; 17788 let accessSize = WordAccess; 17789 let isNVStore = 1; 17790 let isNewValue = 1; 17791 let isExtended = 1; 17792 let isRestrictNoSlot1Store = 1; 17793 let mayStore = 1; 17794 let CextOpcode = "S2_storeri"; 17795 let BaseOpcode = "S2_storeriabs"; 17796 let isPredicable = 1; 17797 let DecoderNamespace = "MustExtend"; 17798 let isExtended = 1; 17799 let opExtendable = 0; 17800 let isExtentSigned = 0; 17801 let opExtentBits = 18; 17802 let opExtentAlign = 2; 17803 let opNewValue = 1; 17804 } 17805 def S2_addasl_rrri : HInst< 17806 (outs IntRegs:$Rd32), 17807 (ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii), 17808 "$Rd32 = addasl($Rt32,$Rs32,#$Ii)", 17809 tc_c74f796f, TypeS_3op>, Enc_47ef61 { 17810 let Inst{13-13} = 0b0; 17811 let Inst{31-21} = 0b11000100000; 17812 let hasNewValue = 1; 17813 let opNewValue = 0; 17814 let prefersSlot3 = 1; 17815 } 17816 def S2_allocframe : HInst< 17817 (outs IntRegs:$Rx32), 17818 (ins IntRegs:$Rx32in, u11_3Imm:$Ii), 17819 "allocframe($Rx32,#$Ii):raw", 17820 tc_e216a5db, TypeST>, Enc_22c845 { 17821 let Inst{13-11} = 0b000; 17822 let Inst{31-21} = 0b10100000100; 17823 let hasNewValue = 1; 17824 let opNewValue = 0; 17825 let addrMode = BaseImmOffset; 17826 let accessSize = DoubleWordAccess; 17827 let mayStore = 1; 17828 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 17829 let Defs = [R30]; 17830 let Constraints = "$Rx32 = $Rx32in"; 17831 } 17832 def S2_asl_i_p : HInst< 17833 (outs DoubleRegs:$Rdd32), 17834 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 17835 "$Rdd32 = asl($Rss32,#$Ii)", 17836 tc_540fdfbc, TypeS_2op>, Enc_5eac98 { 17837 let Inst{7-5} = 0b010; 17838 let Inst{31-21} = 0b10000000000; 17839 } 17840 def S2_asl_i_p_acc : HInst< 17841 (outs DoubleRegs:$Rxx32), 17842 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 17843 "$Rxx32 += asl($Rss32,#$Ii)", 17844 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 17845 let Inst{7-5} = 0b110; 17846 let Inst{31-21} = 0b10000010000; 17847 let prefersSlot3 = 1; 17848 let Constraints = "$Rxx32 = $Rxx32in"; 17849 } 17850 def S2_asl_i_p_and : HInst< 17851 (outs DoubleRegs:$Rxx32), 17852 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 17853 "$Rxx32 &= asl($Rss32,#$Ii)", 17854 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 17855 let Inst{7-5} = 0b010; 17856 let Inst{31-21} = 0b10000010010; 17857 let prefersSlot3 = 1; 17858 let Constraints = "$Rxx32 = $Rxx32in"; 17859 } 17860 def S2_asl_i_p_nac : HInst< 17861 (outs DoubleRegs:$Rxx32), 17862 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 17863 "$Rxx32 -= asl($Rss32,#$Ii)", 17864 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 17865 let Inst{7-5} = 0b010; 17866 let Inst{31-21} = 0b10000010000; 17867 let prefersSlot3 = 1; 17868 let Constraints = "$Rxx32 = $Rxx32in"; 17869 } 17870 def S2_asl_i_p_or : HInst< 17871 (outs DoubleRegs:$Rxx32), 17872 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 17873 "$Rxx32 |= asl($Rss32,#$Ii)", 17874 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 17875 let Inst{7-5} = 0b110; 17876 let Inst{31-21} = 0b10000010010; 17877 let prefersSlot3 = 1; 17878 let Constraints = "$Rxx32 = $Rxx32in"; 17879 } 17880 def S2_asl_i_p_xacc : HInst< 17881 (outs DoubleRegs:$Rxx32), 17882 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 17883 "$Rxx32 ^= asl($Rss32,#$Ii)", 17884 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 17885 let Inst{7-5} = 0b010; 17886 let Inst{31-21} = 0b10000010100; 17887 let prefersSlot3 = 1; 17888 let Constraints = "$Rxx32 = $Rxx32in"; 17889 } 17890 def S2_asl_i_r : HInst< 17891 (outs IntRegs:$Rd32), 17892 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 17893 "$Rd32 = asl($Rs32,#$Ii)", 17894 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 17895 let Inst{7-5} = 0b010; 17896 let Inst{13-13} = 0b0; 17897 let Inst{31-21} = 0b10001100000; 17898 let hasNewValue = 1; 17899 let opNewValue = 0; 17900 } 17901 def S2_asl_i_r_acc : HInst< 17902 (outs IntRegs:$Rx32), 17903 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 17904 "$Rx32 += asl($Rs32,#$Ii)", 17905 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 17906 let Inst{7-5} = 0b110; 17907 let Inst{13-13} = 0b0; 17908 let Inst{31-21} = 0b10001110000; 17909 let hasNewValue = 1; 17910 let opNewValue = 0; 17911 let prefersSlot3 = 1; 17912 let Constraints = "$Rx32 = $Rx32in"; 17913 } 17914 def S2_asl_i_r_and : HInst< 17915 (outs IntRegs:$Rx32), 17916 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 17917 "$Rx32 &= asl($Rs32,#$Ii)", 17918 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 17919 let Inst{7-5} = 0b010; 17920 let Inst{13-13} = 0b0; 17921 let Inst{31-21} = 0b10001110010; 17922 let hasNewValue = 1; 17923 let opNewValue = 0; 17924 let prefersSlot3 = 1; 17925 let Constraints = "$Rx32 = $Rx32in"; 17926 } 17927 def S2_asl_i_r_nac : HInst< 17928 (outs IntRegs:$Rx32), 17929 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 17930 "$Rx32 -= asl($Rs32,#$Ii)", 17931 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 17932 let Inst{7-5} = 0b010; 17933 let Inst{13-13} = 0b0; 17934 let Inst{31-21} = 0b10001110000; 17935 let hasNewValue = 1; 17936 let opNewValue = 0; 17937 let prefersSlot3 = 1; 17938 let Constraints = "$Rx32 = $Rx32in"; 17939 } 17940 def S2_asl_i_r_or : HInst< 17941 (outs IntRegs:$Rx32), 17942 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 17943 "$Rx32 |= asl($Rs32,#$Ii)", 17944 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 17945 let Inst{7-5} = 0b110; 17946 let Inst{13-13} = 0b0; 17947 let Inst{31-21} = 0b10001110010; 17948 let hasNewValue = 1; 17949 let opNewValue = 0; 17950 let prefersSlot3 = 1; 17951 let Constraints = "$Rx32 = $Rx32in"; 17952 } 17953 def S2_asl_i_r_sat : HInst< 17954 (outs IntRegs:$Rd32), 17955 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 17956 "$Rd32 = asl($Rs32,#$Ii):sat", 17957 tc_b44c6e2a, TypeS_2op>, Enc_a05677 { 17958 let Inst{7-5} = 0b010; 17959 let Inst{13-13} = 0b0; 17960 let Inst{31-21} = 0b10001100010; 17961 let hasNewValue = 1; 17962 let opNewValue = 0; 17963 let prefersSlot3 = 1; 17964 let Defs = [USR_OVF]; 17965 } 17966 def S2_asl_i_r_xacc : HInst< 17967 (outs IntRegs:$Rx32), 17968 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 17969 "$Rx32 ^= asl($Rs32,#$Ii)", 17970 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 17971 let Inst{7-5} = 0b010; 17972 let Inst{13-13} = 0b0; 17973 let Inst{31-21} = 0b10001110100; 17974 let hasNewValue = 1; 17975 let opNewValue = 0; 17976 let prefersSlot3 = 1; 17977 let Constraints = "$Rx32 = $Rx32in"; 17978 } 17979 def S2_asl_i_vh : HInst< 17980 (outs DoubleRegs:$Rdd32), 17981 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 17982 "$Rdd32 = vaslh($Rss32,#$Ii)", 17983 tc_540fdfbc, TypeS_2op>, Enc_12b6e9 { 17984 let Inst{7-5} = 0b010; 17985 let Inst{13-12} = 0b00; 17986 let Inst{31-21} = 0b10000000100; 17987 } 17988 def S2_asl_i_vw : HInst< 17989 (outs DoubleRegs:$Rdd32), 17990 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 17991 "$Rdd32 = vaslw($Rss32,#$Ii)", 17992 tc_540fdfbc, TypeS_2op>, Enc_7e5a82 { 17993 let Inst{7-5} = 0b010; 17994 let Inst{13-13} = 0b0; 17995 let Inst{31-21} = 0b10000000010; 17996 } 17997 def S2_asl_r_p : HInst< 17998 (outs DoubleRegs:$Rdd32), 17999 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18000 "$Rdd32 = asl($Rss32,$Rt32)", 18001 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18002 let Inst{7-5} = 0b100; 18003 let Inst{13-13} = 0b0; 18004 let Inst{31-21} = 0b11000011100; 18005 } 18006 def S2_asl_r_p_acc : HInst< 18007 (outs DoubleRegs:$Rxx32), 18008 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18009 "$Rxx32 += asl($Rss32,$Rt32)", 18010 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18011 let Inst{7-5} = 0b100; 18012 let Inst{13-13} = 0b0; 18013 let Inst{31-21} = 0b11001011110; 18014 let prefersSlot3 = 1; 18015 let Constraints = "$Rxx32 = $Rxx32in"; 18016 } 18017 def S2_asl_r_p_and : HInst< 18018 (outs DoubleRegs:$Rxx32), 18019 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18020 "$Rxx32 &= asl($Rss32,$Rt32)", 18021 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18022 let Inst{7-5} = 0b100; 18023 let Inst{13-13} = 0b0; 18024 let Inst{31-21} = 0b11001011010; 18025 let prefersSlot3 = 1; 18026 let Constraints = "$Rxx32 = $Rxx32in"; 18027 } 18028 def S2_asl_r_p_nac : HInst< 18029 (outs DoubleRegs:$Rxx32), 18030 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18031 "$Rxx32 -= asl($Rss32,$Rt32)", 18032 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18033 let Inst{7-5} = 0b100; 18034 let Inst{13-13} = 0b0; 18035 let Inst{31-21} = 0b11001011100; 18036 let prefersSlot3 = 1; 18037 let Constraints = "$Rxx32 = $Rxx32in"; 18038 } 18039 def S2_asl_r_p_or : HInst< 18040 (outs DoubleRegs:$Rxx32), 18041 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18042 "$Rxx32 |= asl($Rss32,$Rt32)", 18043 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18044 let Inst{7-5} = 0b100; 18045 let Inst{13-13} = 0b0; 18046 let Inst{31-21} = 0b11001011000; 18047 let prefersSlot3 = 1; 18048 let Constraints = "$Rxx32 = $Rxx32in"; 18049 } 18050 def S2_asl_r_p_xor : HInst< 18051 (outs DoubleRegs:$Rxx32), 18052 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18053 "$Rxx32 ^= asl($Rss32,$Rt32)", 18054 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18055 let Inst{7-5} = 0b100; 18056 let Inst{13-13} = 0b0; 18057 let Inst{31-21} = 0b11001011011; 18058 let prefersSlot3 = 1; 18059 let Constraints = "$Rxx32 = $Rxx32in"; 18060 } 18061 def S2_asl_r_r : HInst< 18062 (outs IntRegs:$Rd32), 18063 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18064 "$Rd32 = asl($Rs32,$Rt32)", 18065 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 18066 let Inst{7-5} = 0b100; 18067 let Inst{13-13} = 0b0; 18068 let Inst{31-21} = 0b11000110010; 18069 let hasNewValue = 1; 18070 let opNewValue = 0; 18071 } 18072 def S2_asl_r_r_acc : HInst< 18073 (outs IntRegs:$Rx32), 18074 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18075 "$Rx32 += asl($Rs32,$Rt32)", 18076 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18077 let Inst{7-5} = 0b100; 18078 let Inst{13-13} = 0b0; 18079 let Inst{31-21} = 0b11001100110; 18080 let hasNewValue = 1; 18081 let opNewValue = 0; 18082 let prefersSlot3 = 1; 18083 let Constraints = "$Rx32 = $Rx32in"; 18084 } 18085 def S2_asl_r_r_and : HInst< 18086 (outs IntRegs:$Rx32), 18087 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18088 "$Rx32 &= asl($Rs32,$Rt32)", 18089 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18090 let Inst{7-5} = 0b100; 18091 let Inst{13-13} = 0b0; 18092 let Inst{31-21} = 0b11001100010; 18093 let hasNewValue = 1; 18094 let opNewValue = 0; 18095 let prefersSlot3 = 1; 18096 let Constraints = "$Rx32 = $Rx32in"; 18097 } 18098 def S2_asl_r_r_nac : HInst< 18099 (outs IntRegs:$Rx32), 18100 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18101 "$Rx32 -= asl($Rs32,$Rt32)", 18102 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18103 let Inst{7-5} = 0b100; 18104 let Inst{13-13} = 0b0; 18105 let Inst{31-21} = 0b11001100100; 18106 let hasNewValue = 1; 18107 let opNewValue = 0; 18108 let prefersSlot3 = 1; 18109 let Constraints = "$Rx32 = $Rx32in"; 18110 } 18111 def S2_asl_r_r_or : HInst< 18112 (outs IntRegs:$Rx32), 18113 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18114 "$Rx32 |= asl($Rs32,$Rt32)", 18115 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18116 let Inst{7-5} = 0b100; 18117 let Inst{13-13} = 0b0; 18118 let Inst{31-21} = 0b11001100000; 18119 let hasNewValue = 1; 18120 let opNewValue = 0; 18121 let prefersSlot3 = 1; 18122 let Constraints = "$Rx32 = $Rx32in"; 18123 } 18124 def S2_asl_r_r_sat : HInst< 18125 (outs IntRegs:$Rd32), 18126 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18127 "$Rd32 = asl($Rs32,$Rt32):sat", 18128 tc_b44c6e2a, TypeS_3op>, Enc_5ab2be { 18129 let Inst{7-5} = 0b100; 18130 let Inst{13-13} = 0b0; 18131 let Inst{31-21} = 0b11000110000; 18132 let hasNewValue = 1; 18133 let opNewValue = 0; 18134 let prefersSlot3 = 1; 18135 let Defs = [USR_OVF]; 18136 } 18137 def S2_asl_r_vh : HInst< 18138 (outs DoubleRegs:$Rdd32), 18139 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18140 "$Rdd32 = vaslh($Rss32,$Rt32)", 18141 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18142 let Inst{7-5} = 0b100; 18143 let Inst{13-13} = 0b0; 18144 let Inst{31-21} = 0b11000011010; 18145 } 18146 def S2_asl_r_vw : HInst< 18147 (outs DoubleRegs:$Rdd32), 18148 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18149 "$Rdd32 = vaslw($Rss32,$Rt32)", 18150 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18151 let Inst{7-5} = 0b100; 18152 let Inst{13-13} = 0b0; 18153 let Inst{31-21} = 0b11000011000; 18154 } 18155 def S2_asr_i_p : HInst< 18156 (outs DoubleRegs:$Rdd32), 18157 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18158 "$Rdd32 = asr($Rss32,#$Ii)", 18159 tc_540fdfbc, TypeS_2op>, Enc_5eac98 { 18160 let Inst{7-5} = 0b000; 18161 let Inst{31-21} = 0b10000000000; 18162 } 18163 def S2_asr_i_p_acc : HInst< 18164 (outs DoubleRegs:$Rxx32), 18165 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18166 "$Rxx32 += asr($Rss32,#$Ii)", 18167 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 18168 let Inst{7-5} = 0b100; 18169 let Inst{31-21} = 0b10000010000; 18170 let prefersSlot3 = 1; 18171 let Constraints = "$Rxx32 = $Rxx32in"; 18172 } 18173 def S2_asr_i_p_and : HInst< 18174 (outs DoubleRegs:$Rxx32), 18175 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18176 "$Rxx32 &= asr($Rss32,#$Ii)", 18177 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 18178 let Inst{7-5} = 0b000; 18179 let Inst{31-21} = 0b10000010010; 18180 let prefersSlot3 = 1; 18181 let Constraints = "$Rxx32 = $Rxx32in"; 18182 } 18183 def S2_asr_i_p_nac : HInst< 18184 (outs DoubleRegs:$Rxx32), 18185 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18186 "$Rxx32 -= asr($Rss32,#$Ii)", 18187 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 18188 let Inst{7-5} = 0b000; 18189 let Inst{31-21} = 0b10000010000; 18190 let prefersSlot3 = 1; 18191 let Constraints = "$Rxx32 = $Rxx32in"; 18192 } 18193 def S2_asr_i_p_or : HInst< 18194 (outs DoubleRegs:$Rxx32), 18195 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18196 "$Rxx32 |= asr($Rss32,#$Ii)", 18197 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 18198 let Inst{7-5} = 0b100; 18199 let Inst{31-21} = 0b10000010010; 18200 let prefersSlot3 = 1; 18201 let Constraints = "$Rxx32 = $Rxx32in"; 18202 } 18203 def S2_asr_i_p_rnd : HInst< 18204 (outs DoubleRegs:$Rdd32), 18205 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18206 "$Rdd32 = asr($Rss32,#$Ii):rnd", 18207 tc_2b6f77c6, TypeS_2op>, Enc_5eac98, Requires<[HasV5]> { 18208 let Inst{7-5} = 0b111; 18209 let Inst{31-21} = 0b10000000110; 18210 let prefersSlot3 = 1; 18211 } 18212 def S2_asr_i_p_rnd_goodsyntax : HInst< 18213 (outs DoubleRegs:$Rdd32), 18214 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18215 "$Rdd32 = asrrnd($Rss32,#$Ii)", 18216 tc_2b6f77c6, TypeS_2op>, Requires<[HasV5]> { 18217 let isPseudo = 1; 18218 } 18219 def S2_asr_i_r : HInst< 18220 (outs IntRegs:$Rd32), 18221 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 18222 "$Rd32 = asr($Rs32,#$Ii)", 18223 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 18224 let Inst{7-5} = 0b000; 18225 let Inst{13-13} = 0b0; 18226 let Inst{31-21} = 0b10001100000; 18227 let hasNewValue = 1; 18228 let opNewValue = 0; 18229 } 18230 def S2_asr_i_r_acc : HInst< 18231 (outs IntRegs:$Rx32), 18232 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18233 "$Rx32 += asr($Rs32,#$Ii)", 18234 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 18235 let Inst{7-5} = 0b100; 18236 let Inst{13-13} = 0b0; 18237 let Inst{31-21} = 0b10001110000; 18238 let hasNewValue = 1; 18239 let opNewValue = 0; 18240 let prefersSlot3 = 1; 18241 let Constraints = "$Rx32 = $Rx32in"; 18242 } 18243 def S2_asr_i_r_and : HInst< 18244 (outs IntRegs:$Rx32), 18245 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18246 "$Rx32 &= asr($Rs32,#$Ii)", 18247 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 18248 let Inst{7-5} = 0b000; 18249 let Inst{13-13} = 0b0; 18250 let Inst{31-21} = 0b10001110010; 18251 let hasNewValue = 1; 18252 let opNewValue = 0; 18253 let prefersSlot3 = 1; 18254 let Constraints = "$Rx32 = $Rx32in"; 18255 } 18256 def S2_asr_i_r_nac : HInst< 18257 (outs IntRegs:$Rx32), 18258 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18259 "$Rx32 -= asr($Rs32,#$Ii)", 18260 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 18261 let Inst{7-5} = 0b000; 18262 let Inst{13-13} = 0b0; 18263 let Inst{31-21} = 0b10001110000; 18264 let hasNewValue = 1; 18265 let opNewValue = 0; 18266 let prefersSlot3 = 1; 18267 let Constraints = "$Rx32 = $Rx32in"; 18268 } 18269 def S2_asr_i_r_or : HInst< 18270 (outs IntRegs:$Rx32), 18271 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18272 "$Rx32 |= asr($Rs32,#$Ii)", 18273 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 18274 let Inst{7-5} = 0b100; 18275 let Inst{13-13} = 0b0; 18276 let Inst{31-21} = 0b10001110010; 18277 let hasNewValue = 1; 18278 let opNewValue = 0; 18279 let prefersSlot3 = 1; 18280 let Constraints = "$Rx32 = $Rx32in"; 18281 } 18282 def S2_asr_i_r_rnd : HInst< 18283 (outs IntRegs:$Rd32), 18284 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 18285 "$Rd32 = asr($Rs32,#$Ii):rnd", 18286 tc_2b6f77c6, TypeS_2op>, Enc_a05677 { 18287 let Inst{7-5} = 0b000; 18288 let Inst{13-13} = 0b0; 18289 let Inst{31-21} = 0b10001100010; 18290 let hasNewValue = 1; 18291 let opNewValue = 0; 18292 let prefersSlot3 = 1; 18293 } 18294 def S2_asr_i_r_rnd_goodsyntax : HInst< 18295 (outs IntRegs:$Rd32), 18296 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 18297 "$Rd32 = asrrnd($Rs32,#$Ii)", 18298 tc_2b6f77c6, TypeS_2op> { 18299 let hasNewValue = 1; 18300 let opNewValue = 0; 18301 let isPseudo = 1; 18302 } 18303 def S2_asr_i_svw_trun : HInst< 18304 (outs IntRegs:$Rd32), 18305 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18306 "$Rd32 = vasrw($Rss32,#$Ii)", 18307 tc_1b9c9ee5, TypeS_2op>, Enc_8dec2e { 18308 let Inst{7-5} = 0b010; 18309 let Inst{13-13} = 0b0; 18310 let Inst{31-21} = 0b10001000110; 18311 let hasNewValue = 1; 18312 let opNewValue = 0; 18313 let prefersSlot3 = 1; 18314 } 18315 def S2_asr_i_vh : HInst< 18316 (outs DoubleRegs:$Rdd32), 18317 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18318 "$Rdd32 = vasrh($Rss32,#$Ii)", 18319 tc_540fdfbc, TypeS_2op>, Enc_12b6e9 { 18320 let Inst{7-5} = 0b000; 18321 let Inst{13-12} = 0b00; 18322 let Inst{31-21} = 0b10000000100; 18323 } 18324 def S2_asr_i_vw : HInst< 18325 (outs DoubleRegs:$Rdd32), 18326 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18327 "$Rdd32 = vasrw($Rss32,#$Ii)", 18328 tc_540fdfbc, TypeS_2op>, Enc_7e5a82 { 18329 let Inst{7-5} = 0b000; 18330 let Inst{13-13} = 0b0; 18331 let Inst{31-21} = 0b10000000010; 18332 } 18333 def S2_asr_r_p : HInst< 18334 (outs DoubleRegs:$Rdd32), 18335 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18336 "$Rdd32 = asr($Rss32,$Rt32)", 18337 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18338 let Inst{7-5} = 0b000; 18339 let Inst{13-13} = 0b0; 18340 let Inst{31-21} = 0b11000011100; 18341 } 18342 def S2_asr_r_p_acc : HInst< 18343 (outs DoubleRegs:$Rxx32), 18344 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18345 "$Rxx32 += asr($Rss32,$Rt32)", 18346 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18347 let Inst{7-5} = 0b000; 18348 let Inst{13-13} = 0b0; 18349 let Inst{31-21} = 0b11001011110; 18350 let prefersSlot3 = 1; 18351 let Constraints = "$Rxx32 = $Rxx32in"; 18352 } 18353 def S2_asr_r_p_and : HInst< 18354 (outs DoubleRegs:$Rxx32), 18355 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18356 "$Rxx32 &= asr($Rss32,$Rt32)", 18357 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18358 let Inst{7-5} = 0b000; 18359 let Inst{13-13} = 0b0; 18360 let Inst{31-21} = 0b11001011010; 18361 let prefersSlot3 = 1; 18362 let Constraints = "$Rxx32 = $Rxx32in"; 18363 } 18364 def S2_asr_r_p_nac : HInst< 18365 (outs DoubleRegs:$Rxx32), 18366 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18367 "$Rxx32 -= asr($Rss32,$Rt32)", 18368 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18369 let Inst{7-5} = 0b000; 18370 let Inst{13-13} = 0b0; 18371 let Inst{31-21} = 0b11001011100; 18372 let prefersSlot3 = 1; 18373 let Constraints = "$Rxx32 = $Rxx32in"; 18374 } 18375 def S2_asr_r_p_or : HInst< 18376 (outs DoubleRegs:$Rxx32), 18377 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18378 "$Rxx32 |= asr($Rss32,$Rt32)", 18379 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18380 let Inst{7-5} = 0b000; 18381 let Inst{13-13} = 0b0; 18382 let Inst{31-21} = 0b11001011000; 18383 let prefersSlot3 = 1; 18384 let Constraints = "$Rxx32 = $Rxx32in"; 18385 } 18386 def S2_asr_r_p_xor : HInst< 18387 (outs DoubleRegs:$Rxx32), 18388 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18389 "$Rxx32 ^= asr($Rss32,$Rt32)", 18390 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18391 let Inst{7-5} = 0b000; 18392 let Inst{13-13} = 0b0; 18393 let Inst{31-21} = 0b11001011011; 18394 let prefersSlot3 = 1; 18395 let Constraints = "$Rxx32 = $Rxx32in"; 18396 } 18397 def S2_asr_r_r : HInst< 18398 (outs IntRegs:$Rd32), 18399 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18400 "$Rd32 = asr($Rs32,$Rt32)", 18401 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 18402 let Inst{7-5} = 0b000; 18403 let Inst{13-13} = 0b0; 18404 let Inst{31-21} = 0b11000110010; 18405 let hasNewValue = 1; 18406 let opNewValue = 0; 18407 } 18408 def S2_asr_r_r_acc : HInst< 18409 (outs IntRegs:$Rx32), 18410 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18411 "$Rx32 += asr($Rs32,$Rt32)", 18412 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18413 let Inst{7-5} = 0b000; 18414 let Inst{13-13} = 0b0; 18415 let Inst{31-21} = 0b11001100110; 18416 let hasNewValue = 1; 18417 let opNewValue = 0; 18418 let prefersSlot3 = 1; 18419 let Constraints = "$Rx32 = $Rx32in"; 18420 } 18421 def S2_asr_r_r_and : HInst< 18422 (outs IntRegs:$Rx32), 18423 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18424 "$Rx32 &= asr($Rs32,$Rt32)", 18425 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18426 let Inst{7-5} = 0b000; 18427 let Inst{13-13} = 0b0; 18428 let Inst{31-21} = 0b11001100010; 18429 let hasNewValue = 1; 18430 let opNewValue = 0; 18431 let prefersSlot3 = 1; 18432 let Constraints = "$Rx32 = $Rx32in"; 18433 } 18434 def S2_asr_r_r_nac : HInst< 18435 (outs IntRegs:$Rx32), 18436 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18437 "$Rx32 -= asr($Rs32,$Rt32)", 18438 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18439 let Inst{7-5} = 0b000; 18440 let Inst{13-13} = 0b0; 18441 let Inst{31-21} = 0b11001100100; 18442 let hasNewValue = 1; 18443 let opNewValue = 0; 18444 let prefersSlot3 = 1; 18445 let Constraints = "$Rx32 = $Rx32in"; 18446 } 18447 def S2_asr_r_r_or : HInst< 18448 (outs IntRegs:$Rx32), 18449 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18450 "$Rx32 |= asr($Rs32,$Rt32)", 18451 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18452 let Inst{7-5} = 0b000; 18453 let Inst{13-13} = 0b0; 18454 let Inst{31-21} = 0b11001100000; 18455 let hasNewValue = 1; 18456 let opNewValue = 0; 18457 let prefersSlot3 = 1; 18458 let Constraints = "$Rx32 = $Rx32in"; 18459 } 18460 def S2_asr_r_r_sat : HInst< 18461 (outs IntRegs:$Rd32), 18462 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18463 "$Rd32 = asr($Rs32,$Rt32):sat", 18464 tc_b44c6e2a, TypeS_3op>, Enc_5ab2be { 18465 let Inst{7-5} = 0b000; 18466 let Inst{13-13} = 0b0; 18467 let Inst{31-21} = 0b11000110000; 18468 let hasNewValue = 1; 18469 let opNewValue = 0; 18470 let prefersSlot3 = 1; 18471 let Defs = [USR_OVF]; 18472 } 18473 def S2_asr_r_svw_trun : HInst< 18474 (outs IntRegs:$Rd32), 18475 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18476 "$Rd32 = vasrw($Rss32,$Rt32)", 18477 tc_1b9c9ee5, TypeS_3op>, Enc_3d5b28 { 18478 let Inst{7-5} = 0b010; 18479 let Inst{13-13} = 0b0; 18480 let Inst{31-21} = 0b11000101000; 18481 let hasNewValue = 1; 18482 let opNewValue = 0; 18483 let prefersSlot3 = 1; 18484 } 18485 def S2_asr_r_vh : HInst< 18486 (outs DoubleRegs:$Rdd32), 18487 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18488 "$Rdd32 = vasrh($Rss32,$Rt32)", 18489 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18490 let Inst{7-5} = 0b000; 18491 let Inst{13-13} = 0b0; 18492 let Inst{31-21} = 0b11000011010; 18493 } 18494 def S2_asr_r_vw : HInst< 18495 (outs DoubleRegs:$Rdd32), 18496 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18497 "$Rdd32 = vasrw($Rss32,$Rt32)", 18498 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18499 let Inst{7-5} = 0b000; 18500 let Inst{13-13} = 0b0; 18501 let Inst{31-21} = 0b11000011000; 18502 } 18503 def S2_brev : HInst< 18504 (outs IntRegs:$Rd32), 18505 (ins IntRegs:$Rs32), 18506 "$Rd32 = brev($Rs32)", 18507 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18508 let Inst{13-5} = 0b000000110; 18509 let Inst{31-21} = 0b10001100010; 18510 let hasNewValue = 1; 18511 let opNewValue = 0; 18512 let prefersSlot3 = 1; 18513 } 18514 def S2_brevp : HInst< 18515 (outs DoubleRegs:$Rdd32), 18516 (ins DoubleRegs:$Rss32), 18517 "$Rdd32 = brev($Rss32)", 18518 tc_d088982c, TypeS_2op>, Enc_b9c5fb { 18519 let Inst{13-5} = 0b000000110; 18520 let Inst{31-21} = 0b10000000110; 18521 let prefersSlot3 = 1; 18522 } 18523 def S2_cabacdecbin : HInst< 18524 (outs DoubleRegs:$Rdd32), 18525 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18526 "$Rdd32 = decbin($Rss32,$Rtt32)", 18527 tc_c6ebf8dd, TypeS_3op>, Enc_a56825 { 18528 let Inst{7-5} = 0b110; 18529 let Inst{13-13} = 0b0; 18530 let Inst{31-21} = 0b11000001110; 18531 let isPredicateLate = 1; 18532 let prefersSlot3 = 1; 18533 let Defs = [P0]; 18534 } 18535 def S2_cl0 : HInst< 18536 (outs IntRegs:$Rd32), 18537 (ins IntRegs:$Rs32), 18538 "$Rd32 = cl0($Rs32)", 18539 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18540 let Inst{13-5} = 0b000000101; 18541 let Inst{31-21} = 0b10001100000; 18542 let hasNewValue = 1; 18543 let opNewValue = 0; 18544 let prefersSlot3 = 1; 18545 } 18546 def S2_cl0p : HInst< 18547 (outs IntRegs:$Rd32), 18548 (ins DoubleRegs:$Rss32), 18549 "$Rd32 = cl0($Rss32)", 18550 tc_d088982c, TypeS_2op>, Enc_90cd8b { 18551 let Inst{13-5} = 0b000000010; 18552 let Inst{31-21} = 0b10001000010; 18553 let hasNewValue = 1; 18554 let opNewValue = 0; 18555 let prefersSlot3 = 1; 18556 } 18557 def S2_cl1 : HInst< 18558 (outs IntRegs:$Rd32), 18559 (ins IntRegs:$Rs32), 18560 "$Rd32 = cl1($Rs32)", 18561 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18562 let Inst{13-5} = 0b000000110; 18563 let Inst{31-21} = 0b10001100000; 18564 let hasNewValue = 1; 18565 let opNewValue = 0; 18566 let prefersSlot3 = 1; 18567 } 18568 def S2_cl1p : HInst< 18569 (outs IntRegs:$Rd32), 18570 (ins DoubleRegs:$Rss32), 18571 "$Rd32 = cl1($Rss32)", 18572 tc_d088982c, TypeS_2op>, Enc_90cd8b { 18573 let Inst{13-5} = 0b000000100; 18574 let Inst{31-21} = 0b10001000010; 18575 let hasNewValue = 1; 18576 let opNewValue = 0; 18577 let prefersSlot3 = 1; 18578 } 18579 def S2_clb : HInst< 18580 (outs IntRegs:$Rd32), 18581 (ins IntRegs:$Rs32), 18582 "$Rd32 = clb($Rs32)", 18583 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18584 let Inst{13-5} = 0b000000100; 18585 let Inst{31-21} = 0b10001100000; 18586 let hasNewValue = 1; 18587 let opNewValue = 0; 18588 let prefersSlot3 = 1; 18589 } 18590 def S2_clbnorm : HInst< 18591 (outs IntRegs:$Rd32), 18592 (ins IntRegs:$Rs32), 18593 "$Rd32 = normamt($Rs32)", 18594 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18595 let Inst{13-5} = 0b000000111; 18596 let Inst{31-21} = 0b10001100000; 18597 let hasNewValue = 1; 18598 let opNewValue = 0; 18599 let prefersSlot3 = 1; 18600 } 18601 def S2_clbp : HInst< 18602 (outs IntRegs:$Rd32), 18603 (ins DoubleRegs:$Rss32), 18604 "$Rd32 = clb($Rss32)", 18605 tc_d088982c, TypeS_2op>, Enc_90cd8b { 18606 let Inst{13-5} = 0b000000000; 18607 let Inst{31-21} = 0b10001000010; 18608 let hasNewValue = 1; 18609 let opNewValue = 0; 18610 let prefersSlot3 = 1; 18611 } 18612 def S2_clrbit_i : HInst< 18613 (outs IntRegs:$Rd32), 18614 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 18615 "$Rd32 = clrbit($Rs32,#$Ii)", 18616 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 18617 let Inst{7-5} = 0b001; 18618 let Inst{13-13} = 0b0; 18619 let Inst{31-21} = 0b10001100110; 18620 let hasNewValue = 1; 18621 let opNewValue = 0; 18622 } 18623 def S2_clrbit_r : HInst< 18624 (outs IntRegs:$Rd32), 18625 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18626 "$Rd32 = clrbit($Rs32,$Rt32)", 18627 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 18628 let Inst{7-5} = 0b010; 18629 let Inst{13-13} = 0b0; 18630 let Inst{31-21} = 0b11000110100; 18631 let hasNewValue = 1; 18632 let opNewValue = 0; 18633 } 18634 def S2_ct0 : HInst< 18635 (outs IntRegs:$Rd32), 18636 (ins IntRegs:$Rs32), 18637 "$Rd32 = ct0($Rs32)", 18638 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18639 let Inst{13-5} = 0b000000100; 18640 let Inst{31-21} = 0b10001100010; 18641 let hasNewValue = 1; 18642 let opNewValue = 0; 18643 let prefersSlot3 = 1; 18644 } 18645 def S2_ct0p : HInst< 18646 (outs IntRegs:$Rd32), 18647 (ins DoubleRegs:$Rss32), 18648 "$Rd32 = ct0($Rss32)", 18649 tc_d088982c, TypeS_2op>, Enc_90cd8b { 18650 let Inst{13-5} = 0b000000010; 18651 let Inst{31-21} = 0b10001000111; 18652 let hasNewValue = 1; 18653 let opNewValue = 0; 18654 let prefersSlot3 = 1; 18655 } 18656 def S2_ct1 : HInst< 18657 (outs IntRegs:$Rd32), 18658 (ins IntRegs:$Rs32), 18659 "$Rd32 = ct1($Rs32)", 18660 tc_d088982c, TypeS_2op>, Enc_5e2823 { 18661 let Inst{13-5} = 0b000000101; 18662 let Inst{31-21} = 0b10001100010; 18663 let hasNewValue = 1; 18664 let opNewValue = 0; 18665 let prefersSlot3 = 1; 18666 } 18667 def S2_ct1p : HInst< 18668 (outs IntRegs:$Rd32), 18669 (ins DoubleRegs:$Rss32), 18670 "$Rd32 = ct1($Rss32)", 18671 tc_d088982c, TypeS_2op>, Enc_90cd8b { 18672 let Inst{13-5} = 0b000000100; 18673 let Inst{31-21} = 0b10001000111; 18674 let hasNewValue = 1; 18675 let opNewValue = 0; 18676 let prefersSlot3 = 1; 18677 } 18678 def S2_deinterleave : HInst< 18679 (outs DoubleRegs:$Rdd32), 18680 (ins DoubleRegs:$Rss32), 18681 "$Rdd32 = deinterleave($Rss32)", 18682 tc_d088982c, TypeS_2op>, Enc_b9c5fb { 18683 let Inst{13-5} = 0b000000100; 18684 let Inst{31-21} = 0b10000000110; 18685 let prefersSlot3 = 1; 18686 } 18687 def S2_extractu : HInst< 18688 (outs IntRegs:$Rd32), 18689 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 18690 "$Rd32 = extractu($Rs32,#$Ii,#$II)", 18691 tc_c74f796f, TypeS_2op>, Enc_b388cf { 18692 let Inst{13-13} = 0b0; 18693 let Inst{31-23} = 0b100011010; 18694 let hasNewValue = 1; 18695 let opNewValue = 0; 18696 let prefersSlot3 = 1; 18697 } 18698 def S2_extractu_rp : HInst< 18699 (outs IntRegs:$Rd32), 18700 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 18701 "$Rd32 = extractu($Rs32,$Rtt32)", 18702 tc_2b6f77c6, TypeS_3op>, Enc_e07374 { 18703 let Inst{7-5} = 0b000; 18704 let Inst{13-13} = 0b0; 18705 let Inst{31-21} = 0b11001001000; 18706 let hasNewValue = 1; 18707 let opNewValue = 0; 18708 let prefersSlot3 = 1; 18709 } 18710 def S2_extractup : HInst< 18711 (outs DoubleRegs:$Rdd32), 18712 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 18713 "$Rdd32 = extractu($Rss32,#$Ii,#$II)", 18714 tc_c74f796f, TypeS_2op>, Enc_b84c4c { 18715 let Inst{31-24} = 0b10000001; 18716 let prefersSlot3 = 1; 18717 } 18718 def S2_extractup_rp : HInst< 18719 (outs DoubleRegs:$Rdd32), 18720 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18721 "$Rdd32 = extractu($Rss32,$Rtt32)", 18722 tc_2b6f77c6, TypeS_3op>, Enc_a56825 { 18723 let Inst{7-5} = 0b000; 18724 let Inst{13-13} = 0b0; 18725 let Inst{31-21} = 0b11000001000; 18726 let prefersSlot3 = 1; 18727 } 18728 def S2_insert : HInst< 18729 (outs IntRegs:$Rx32), 18730 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 18731 "$Rx32 = insert($Rs32,#$Ii,#$II)", 18732 tc_87735c3b, TypeS_2op>, Enc_a1e29d { 18733 let Inst{13-13} = 0b0; 18734 let Inst{31-23} = 0b100011110; 18735 let hasNewValue = 1; 18736 let opNewValue = 0; 18737 let prefersSlot3 = 1; 18738 let Constraints = "$Rx32 = $Rx32in"; 18739 } 18740 def S2_insert_rp : HInst< 18741 (outs IntRegs:$Rx32), 18742 (ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32), 18743 "$Rx32 = insert($Rs32,$Rtt32)", 18744 tc_84df2cd3, TypeS_3op>, Enc_179b35 { 18745 let Inst{7-5} = 0b000; 18746 let Inst{13-13} = 0b0; 18747 let Inst{31-21} = 0b11001000000; 18748 let hasNewValue = 1; 18749 let opNewValue = 0; 18750 let prefersSlot3 = 1; 18751 let Constraints = "$Rx32 = $Rx32in"; 18752 } 18753 def S2_insertp : HInst< 18754 (outs DoubleRegs:$Rxx32), 18755 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 18756 "$Rxx32 = insert($Rss32,#$Ii,#$II)", 18757 tc_87735c3b, TypeS_2op>, Enc_143a3c { 18758 let Inst{31-24} = 0b10000011; 18759 let prefersSlot3 = 1; 18760 let Constraints = "$Rxx32 = $Rxx32in"; 18761 } 18762 def S2_insertp_rp : HInst< 18763 (outs DoubleRegs:$Rxx32), 18764 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18765 "$Rxx32 = insert($Rss32,$Rtt32)", 18766 tc_84df2cd3, TypeS_3op>, Enc_88c16c { 18767 let Inst{7-5} = 0b000; 18768 let Inst{13-13} = 0b0; 18769 let Inst{31-21} = 0b11001010000; 18770 let prefersSlot3 = 1; 18771 let Constraints = "$Rxx32 = $Rxx32in"; 18772 } 18773 def S2_interleave : HInst< 18774 (outs DoubleRegs:$Rdd32), 18775 (ins DoubleRegs:$Rss32), 18776 "$Rdd32 = interleave($Rss32)", 18777 tc_d088982c, TypeS_2op>, Enc_b9c5fb { 18778 let Inst{13-5} = 0b000000101; 18779 let Inst{31-21} = 0b10000000110; 18780 let prefersSlot3 = 1; 18781 } 18782 def S2_lfsp : HInst< 18783 (outs DoubleRegs:$Rdd32), 18784 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18785 "$Rdd32 = lfs($Rss32,$Rtt32)", 18786 tc_2b6f77c6, TypeS_3op>, Enc_a56825 { 18787 let Inst{7-5} = 0b110; 18788 let Inst{13-13} = 0b0; 18789 let Inst{31-21} = 0b11000001100; 18790 let prefersSlot3 = 1; 18791 } 18792 def S2_lsl_r_p : HInst< 18793 (outs DoubleRegs:$Rdd32), 18794 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18795 "$Rdd32 = lsl($Rss32,$Rt32)", 18796 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18797 let Inst{7-5} = 0b110; 18798 let Inst{13-13} = 0b0; 18799 let Inst{31-21} = 0b11000011100; 18800 } 18801 def S2_lsl_r_p_acc : HInst< 18802 (outs DoubleRegs:$Rxx32), 18803 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18804 "$Rxx32 += lsl($Rss32,$Rt32)", 18805 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18806 let Inst{7-5} = 0b110; 18807 let Inst{13-13} = 0b0; 18808 let Inst{31-21} = 0b11001011110; 18809 let prefersSlot3 = 1; 18810 let Constraints = "$Rxx32 = $Rxx32in"; 18811 } 18812 def S2_lsl_r_p_and : HInst< 18813 (outs DoubleRegs:$Rxx32), 18814 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18815 "$Rxx32 &= lsl($Rss32,$Rt32)", 18816 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18817 let Inst{7-5} = 0b110; 18818 let Inst{13-13} = 0b0; 18819 let Inst{31-21} = 0b11001011010; 18820 let prefersSlot3 = 1; 18821 let Constraints = "$Rxx32 = $Rxx32in"; 18822 } 18823 def S2_lsl_r_p_nac : HInst< 18824 (outs DoubleRegs:$Rxx32), 18825 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18826 "$Rxx32 -= lsl($Rss32,$Rt32)", 18827 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 18828 let Inst{7-5} = 0b110; 18829 let Inst{13-13} = 0b0; 18830 let Inst{31-21} = 0b11001011100; 18831 let prefersSlot3 = 1; 18832 let Constraints = "$Rxx32 = $Rxx32in"; 18833 } 18834 def S2_lsl_r_p_or : HInst< 18835 (outs DoubleRegs:$Rxx32), 18836 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18837 "$Rxx32 |= lsl($Rss32,$Rt32)", 18838 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18839 let Inst{7-5} = 0b110; 18840 let Inst{13-13} = 0b0; 18841 let Inst{31-21} = 0b11001011000; 18842 let prefersSlot3 = 1; 18843 let Constraints = "$Rxx32 = $Rxx32in"; 18844 } 18845 def S2_lsl_r_p_xor : HInst< 18846 (outs DoubleRegs:$Rxx32), 18847 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18848 "$Rxx32 ^= lsl($Rss32,$Rt32)", 18849 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 18850 let Inst{7-5} = 0b110; 18851 let Inst{13-13} = 0b0; 18852 let Inst{31-21} = 0b11001011011; 18853 let prefersSlot3 = 1; 18854 let Constraints = "$Rxx32 = $Rxx32in"; 18855 } 18856 def S2_lsl_r_r : HInst< 18857 (outs IntRegs:$Rd32), 18858 (ins IntRegs:$Rs32, IntRegs:$Rt32), 18859 "$Rd32 = lsl($Rs32,$Rt32)", 18860 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 18861 let Inst{7-5} = 0b110; 18862 let Inst{13-13} = 0b0; 18863 let Inst{31-21} = 0b11000110010; 18864 let hasNewValue = 1; 18865 let opNewValue = 0; 18866 } 18867 def S2_lsl_r_r_acc : HInst< 18868 (outs IntRegs:$Rx32), 18869 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18870 "$Rx32 += lsl($Rs32,$Rt32)", 18871 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18872 let Inst{7-5} = 0b110; 18873 let Inst{13-13} = 0b0; 18874 let Inst{31-21} = 0b11001100110; 18875 let hasNewValue = 1; 18876 let opNewValue = 0; 18877 let prefersSlot3 = 1; 18878 let Constraints = "$Rx32 = $Rx32in"; 18879 } 18880 def S2_lsl_r_r_and : HInst< 18881 (outs IntRegs:$Rx32), 18882 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18883 "$Rx32 &= lsl($Rs32,$Rt32)", 18884 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18885 let Inst{7-5} = 0b110; 18886 let Inst{13-13} = 0b0; 18887 let Inst{31-21} = 0b11001100010; 18888 let hasNewValue = 1; 18889 let opNewValue = 0; 18890 let prefersSlot3 = 1; 18891 let Constraints = "$Rx32 = $Rx32in"; 18892 } 18893 def S2_lsl_r_r_nac : HInst< 18894 (outs IntRegs:$Rx32), 18895 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18896 "$Rx32 -= lsl($Rs32,$Rt32)", 18897 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 18898 let Inst{7-5} = 0b110; 18899 let Inst{13-13} = 0b0; 18900 let Inst{31-21} = 0b11001100100; 18901 let hasNewValue = 1; 18902 let opNewValue = 0; 18903 let prefersSlot3 = 1; 18904 let Constraints = "$Rx32 = $Rx32in"; 18905 } 18906 def S2_lsl_r_r_or : HInst< 18907 (outs IntRegs:$Rx32), 18908 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18909 "$Rx32 |= lsl($Rs32,$Rt32)", 18910 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 18911 let Inst{7-5} = 0b110; 18912 let Inst{13-13} = 0b0; 18913 let Inst{31-21} = 0b11001100000; 18914 let hasNewValue = 1; 18915 let opNewValue = 0; 18916 let prefersSlot3 = 1; 18917 let Constraints = "$Rx32 = $Rx32in"; 18918 } 18919 def S2_lsl_r_vh : HInst< 18920 (outs DoubleRegs:$Rdd32), 18921 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18922 "$Rdd32 = vlslh($Rss32,$Rt32)", 18923 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18924 let Inst{7-5} = 0b110; 18925 let Inst{13-13} = 0b0; 18926 let Inst{31-21} = 0b11000011010; 18927 } 18928 def S2_lsl_r_vw : HInst< 18929 (outs DoubleRegs:$Rdd32), 18930 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18931 "$Rdd32 = vlslw($Rss32,$Rt32)", 18932 tc_540fdfbc, TypeS_3op>, Enc_927852 { 18933 let Inst{7-5} = 0b110; 18934 let Inst{13-13} = 0b0; 18935 let Inst{31-21} = 0b11000011000; 18936 } 18937 def S2_lsr_i_p : HInst< 18938 (outs DoubleRegs:$Rdd32), 18939 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18940 "$Rdd32 = lsr($Rss32,#$Ii)", 18941 tc_540fdfbc, TypeS_2op>, Enc_5eac98 { 18942 let Inst{7-5} = 0b001; 18943 let Inst{31-21} = 0b10000000000; 18944 } 18945 def S2_lsr_i_p_acc : HInst< 18946 (outs DoubleRegs:$Rxx32), 18947 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18948 "$Rxx32 += lsr($Rss32,#$Ii)", 18949 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 18950 let Inst{7-5} = 0b101; 18951 let Inst{31-21} = 0b10000010000; 18952 let prefersSlot3 = 1; 18953 let Constraints = "$Rxx32 = $Rxx32in"; 18954 } 18955 def S2_lsr_i_p_and : HInst< 18956 (outs DoubleRegs:$Rxx32), 18957 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18958 "$Rxx32 &= lsr($Rss32,#$Ii)", 18959 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 18960 let Inst{7-5} = 0b001; 18961 let Inst{31-21} = 0b10000010010; 18962 let prefersSlot3 = 1; 18963 let Constraints = "$Rxx32 = $Rxx32in"; 18964 } 18965 def S2_lsr_i_p_nac : HInst< 18966 (outs DoubleRegs:$Rxx32), 18967 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18968 "$Rxx32 -= lsr($Rss32,#$Ii)", 18969 tc_c74f796f, TypeS_2op>, Enc_70fb07 { 18970 let Inst{7-5} = 0b001; 18971 let Inst{31-21} = 0b10000010000; 18972 let prefersSlot3 = 1; 18973 let Constraints = "$Rxx32 = $Rxx32in"; 18974 } 18975 def S2_lsr_i_p_or : HInst< 18976 (outs DoubleRegs:$Rxx32), 18977 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18978 "$Rxx32 |= lsr($Rss32,#$Ii)", 18979 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 18980 let Inst{7-5} = 0b101; 18981 let Inst{31-21} = 0b10000010010; 18982 let prefersSlot3 = 1; 18983 let Constraints = "$Rxx32 = $Rxx32in"; 18984 } 18985 def S2_lsr_i_p_xacc : HInst< 18986 (outs DoubleRegs:$Rxx32), 18987 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18988 "$Rxx32 ^= lsr($Rss32,#$Ii)", 18989 tc_84df2cd3, TypeS_2op>, Enc_70fb07 { 18990 let Inst{7-5} = 0b001; 18991 let Inst{31-21} = 0b10000010100; 18992 let prefersSlot3 = 1; 18993 let Constraints = "$Rxx32 = $Rxx32in"; 18994 } 18995 def S2_lsr_i_r : HInst< 18996 (outs IntRegs:$Rd32), 18997 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 18998 "$Rd32 = lsr($Rs32,#$Ii)", 18999 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 19000 let Inst{7-5} = 0b001; 19001 let Inst{13-13} = 0b0; 19002 let Inst{31-21} = 0b10001100000; 19003 let hasNewValue = 1; 19004 let opNewValue = 0; 19005 } 19006 def S2_lsr_i_r_acc : HInst< 19007 (outs IntRegs:$Rx32), 19008 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19009 "$Rx32 += lsr($Rs32,#$Ii)", 19010 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 19011 let Inst{7-5} = 0b101; 19012 let Inst{13-13} = 0b0; 19013 let Inst{31-21} = 0b10001110000; 19014 let hasNewValue = 1; 19015 let opNewValue = 0; 19016 let prefersSlot3 = 1; 19017 let Constraints = "$Rx32 = $Rx32in"; 19018 } 19019 def S2_lsr_i_r_and : HInst< 19020 (outs IntRegs:$Rx32), 19021 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19022 "$Rx32 &= lsr($Rs32,#$Ii)", 19023 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 19024 let Inst{7-5} = 0b001; 19025 let Inst{13-13} = 0b0; 19026 let Inst{31-21} = 0b10001110010; 19027 let hasNewValue = 1; 19028 let opNewValue = 0; 19029 let prefersSlot3 = 1; 19030 let Constraints = "$Rx32 = $Rx32in"; 19031 } 19032 def S2_lsr_i_r_nac : HInst< 19033 (outs IntRegs:$Rx32), 19034 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19035 "$Rx32 -= lsr($Rs32,#$Ii)", 19036 tc_c74f796f, TypeS_2op>, Enc_28a2dc { 19037 let Inst{7-5} = 0b001; 19038 let Inst{13-13} = 0b0; 19039 let Inst{31-21} = 0b10001110000; 19040 let hasNewValue = 1; 19041 let opNewValue = 0; 19042 let prefersSlot3 = 1; 19043 let Constraints = "$Rx32 = $Rx32in"; 19044 } 19045 def S2_lsr_i_r_or : HInst< 19046 (outs IntRegs:$Rx32), 19047 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19048 "$Rx32 |= lsr($Rs32,#$Ii)", 19049 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 19050 let Inst{7-5} = 0b101; 19051 let Inst{13-13} = 0b0; 19052 let Inst{31-21} = 0b10001110010; 19053 let hasNewValue = 1; 19054 let opNewValue = 0; 19055 let prefersSlot3 = 1; 19056 let Constraints = "$Rx32 = $Rx32in"; 19057 } 19058 def S2_lsr_i_r_xacc : HInst< 19059 (outs IntRegs:$Rx32), 19060 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19061 "$Rx32 ^= lsr($Rs32,#$Ii)", 19062 tc_84df2cd3, TypeS_2op>, Enc_28a2dc { 19063 let Inst{7-5} = 0b001; 19064 let Inst{13-13} = 0b0; 19065 let Inst{31-21} = 0b10001110100; 19066 let hasNewValue = 1; 19067 let opNewValue = 0; 19068 let prefersSlot3 = 1; 19069 let Constraints = "$Rx32 = $Rx32in"; 19070 } 19071 def S2_lsr_i_vh : HInst< 19072 (outs DoubleRegs:$Rdd32), 19073 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 19074 "$Rdd32 = vlsrh($Rss32,#$Ii)", 19075 tc_540fdfbc, TypeS_2op>, Enc_12b6e9 { 19076 let Inst{7-5} = 0b001; 19077 let Inst{13-12} = 0b00; 19078 let Inst{31-21} = 0b10000000100; 19079 } 19080 def S2_lsr_i_vw : HInst< 19081 (outs DoubleRegs:$Rdd32), 19082 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 19083 "$Rdd32 = vlsrw($Rss32,#$Ii)", 19084 tc_540fdfbc, TypeS_2op>, Enc_7e5a82 { 19085 let Inst{7-5} = 0b001; 19086 let Inst{13-13} = 0b0; 19087 let Inst{31-21} = 0b10000000010; 19088 } 19089 def S2_lsr_r_p : HInst< 19090 (outs DoubleRegs:$Rdd32), 19091 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19092 "$Rdd32 = lsr($Rss32,$Rt32)", 19093 tc_540fdfbc, TypeS_3op>, Enc_927852 { 19094 let Inst{7-5} = 0b010; 19095 let Inst{13-13} = 0b0; 19096 let Inst{31-21} = 0b11000011100; 19097 } 19098 def S2_lsr_r_p_acc : HInst< 19099 (outs DoubleRegs:$Rxx32), 19100 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19101 "$Rxx32 += lsr($Rss32,$Rt32)", 19102 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 19103 let Inst{7-5} = 0b010; 19104 let Inst{13-13} = 0b0; 19105 let Inst{31-21} = 0b11001011110; 19106 let prefersSlot3 = 1; 19107 let Constraints = "$Rxx32 = $Rxx32in"; 19108 } 19109 def S2_lsr_r_p_and : HInst< 19110 (outs DoubleRegs:$Rxx32), 19111 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19112 "$Rxx32 &= lsr($Rss32,$Rt32)", 19113 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 19114 let Inst{7-5} = 0b010; 19115 let Inst{13-13} = 0b0; 19116 let Inst{31-21} = 0b11001011010; 19117 let prefersSlot3 = 1; 19118 let Constraints = "$Rxx32 = $Rxx32in"; 19119 } 19120 def S2_lsr_r_p_nac : HInst< 19121 (outs DoubleRegs:$Rxx32), 19122 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19123 "$Rxx32 -= lsr($Rss32,$Rt32)", 19124 tc_c74f796f, TypeS_3op>, Enc_1aa186 { 19125 let Inst{7-5} = 0b010; 19126 let Inst{13-13} = 0b0; 19127 let Inst{31-21} = 0b11001011100; 19128 let prefersSlot3 = 1; 19129 let Constraints = "$Rxx32 = $Rxx32in"; 19130 } 19131 def S2_lsr_r_p_or : HInst< 19132 (outs DoubleRegs:$Rxx32), 19133 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19134 "$Rxx32 |= lsr($Rss32,$Rt32)", 19135 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 19136 let Inst{7-5} = 0b010; 19137 let Inst{13-13} = 0b0; 19138 let Inst{31-21} = 0b11001011000; 19139 let prefersSlot3 = 1; 19140 let Constraints = "$Rxx32 = $Rxx32in"; 19141 } 19142 def S2_lsr_r_p_xor : HInst< 19143 (outs DoubleRegs:$Rxx32), 19144 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19145 "$Rxx32 ^= lsr($Rss32,$Rt32)", 19146 tc_84df2cd3, TypeS_3op>, Enc_1aa186 { 19147 let Inst{7-5} = 0b010; 19148 let Inst{13-13} = 0b0; 19149 let Inst{31-21} = 0b11001011011; 19150 let prefersSlot3 = 1; 19151 let Constraints = "$Rxx32 = $Rxx32in"; 19152 } 19153 def S2_lsr_r_r : HInst< 19154 (outs IntRegs:$Rd32), 19155 (ins IntRegs:$Rs32, IntRegs:$Rt32), 19156 "$Rd32 = lsr($Rs32,$Rt32)", 19157 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 19158 let Inst{7-5} = 0b010; 19159 let Inst{13-13} = 0b0; 19160 let Inst{31-21} = 0b11000110010; 19161 let hasNewValue = 1; 19162 let opNewValue = 0; 19163 } 19164 def S2_lsr_r_r_acc : HInst< 19165 (outs IntRegs:$Rx32), 19166 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19167 "$Rx32 += lsr($Rs32,$Rt32)", 19168 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 19169 let Inst{7-5} = 0b010; 19170 let Inst{13-13} = 0b0; 19171 let Inst{31-21} = 0b11001100110; 19172 let hasNewValue = 1; 19173 let opNewValue = 0; 19174 let prefersSlot3 = 1; 19175 let Constraints = "$Rx32 = $Rx32in"; 19176 } 19177 def S2_lsr_r_r_and : HInst< 19178 (outs IntRegs:$Rx32), 19179 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19180 "$Rx32 &= lsr($Rs32,$Rt32)", 19181 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 19182 let Inst{7-5} = 0b010; 19183 let Inst{13-13} = 0b0; 19184 let Inst{31-21} = 0b11001100010; 19185 let hasNewValue = 1; 19186 let opNewValue = 0; 19187 let prefersSlot3 = 1; 19188 let Constraints = "$Rx32 = $Rx32in"; 19189 } 19190 def S2_lsr_r_r_nac : HInst< 19191 (outs IntRegs:$Rx32), 19192 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19193 "$Rx32 -= lsr($Rs32,$Rt32)", 19194 tc_c74f796f, TypeS_3op>, Enc_2ae154 { 19195 let Inst{7-5} = 0b010; 19196 let Inst{13-13} = 0b0; 19197 let Inst{31-21} = 0b11001100100; 19198 let hasNewValue = 1; 19199 let opNewValue = 0; 19200 let prefersSlot3 = 1; 19201 let Constraints = "$Rx32 = $Rx32in"; 19202 } 19203 def S2_lsr_r_r_or : HInst< 19204 (outs IntRegs:$Rx32), 19205 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19206 "$Rx32 |= lsr($Rs32,$Rt32)", 19207 tc_84df2cd3, TypeS_3op>, Enc_2ae154 { 19208 let Inst{7-5} = 0b010; 19209 let Inst{13-13} = 0b0; 19210 let Inst{31-21} = 0b11001100000; 19211 let hasNewValue = 1; 19212 let opNewValue = 0; 19213 let prefersSlot3 = 1; 19214 let Constraints = "$Rx32 = $Rx32in"; 19215 } 19216 def S2_lsr_r_vh : HInst< 19217 (outs DoubleRegs:$Rdd32), 19218 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19219 "$Rdd32 = vlsrh($Rss32,$Rt32)", 19220 tc_540fdfbc, TypeS_3op>, Enc_927852 { 19221 let Inst{7-5} = 0b010; 19222 let Inst{13-13} = 0b0; 19223 let Inst{31-21} = 0b11000011010; 19224 } 19225 def S2_lsr_r_vw : HInst< 19226 (outs DoubleRegs:$Rdd32), 19227 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19228 "$Rdd32 = vlsrw($Rss32,$Rt32)", 19229 tc_540fdfbc, TypeS_3op>, Enc_927852 { 19230 let Inst{7-5} = 0b010; 19231 let Inst{13-13} = 0b0; 19232 let Inst{31-21} = 0b11000011000; 19233 } 19234 def S2_packhl : HInst< 19235 (outs DoubleRegs:$Rdd32), 19236 (ins IntRegs:$Rs32, IntRegs:$Rt32), 19237 "$Rdd32 = packhl($Rs32,$Rt32)", 19238 tc_b9488031, TypeALU32_3op>, Enc_be32a5 { 19239 let Inst{7-5} = 0b000; 19240 let Inst{13-13} = 0b0; 19241 let Inst{31-21} = 0b11110101100; 19242 let InputType = "reg"; 19243 } 19244 def S2_parityp : HInst< 19245 (outs IntRegs:$Rd32), 19246 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19247 "$Rd32 = parity($Rss32,$Rtt32)", 19248 tc_2b6f77c6, TypeALU64>, Enc_d2216a { 19249 let Inst{7-5} = 0b000; 19250 let Inst{13-13} = 0b0; 19251 let Inst{31-21} = 0b11010000000; 19252 let hasNewValue = 1; 19253 let opNewValue = 0; 19254 let prefersSlot3 = 1; 19255 } 19256 def S2_pstorerbf_io : HInst< 19257 (outs), 19258 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19259 "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32", 19260 tc_8b15472a, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19261 let Inst{2-2} = 0b0; 19262 let Inst{31-21} = 0b01000100000; 19263 let isPredicated = 1; 19264 let isPredicatedFalse = 1; 19265 let addrMode = BaseImmOffset; 19266 let accessSize = ByteAccess; 19267 let mayStore = 1; 19268 let CextOpcode = "S2_storerb"; 19269 let InputType = "imm"; 19270 let BaseOpcode = "S2_storerb_io"; 19271 let isNVStorable = 1; 19272 let isExtendable = 1; 19273 let opExtendable = 2; 19274 let isExtentSigned = 0; 19275 let opExtentBits = 6; 19276 let opExtentAlign = 0; 19277 } 19278 def S2_pstorerbf_pi : HInst< 19279 (outs IntRegs:$Rx32), 19280 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19281 "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32", 19282 tc_cd7374a0, TypeST>, Enc_cc449f, AddrModeRel { 19283 let Inst{2-2} = 0b1; 19284 let Inst{7-7} = 0b0; 19285 let Inst{13-13} = 0b1; 19286 let Inst{31-21} = 0b10101011000; 19287 let isPredicated = 1; 19288 let isPredicatedFalse = 1; 19289 let addrMode = PostInc; 19290 let accessSize = ByteAccess; 19291 let mayStore = 1; 19292 let BaseOpcode = "S2_storerb_pi"; 19293 let isNVStorable = 1; 19294 let Constraints = "$Rx32 = $Rx32in"; 19295 } 19296 def S2_pstorerbf_zomap : HInst< 19297 (outs), 19298 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19299 "if (!$Pv4) memb($Rs32) = $Rt32", 19300 tc_8b15472a, TypeMAPPING> { 19301 let isPseudo = 1; 19302 let isCodeGenOnly = 1; 19303 } 19304 def S2_pstorerbfnew_pi : HInst< 19305 (outs IntRegs:$Rx32), 19306 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19307 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19308 tc_74e47fd9, TypeST>, Enc_cc449f, AddrModeRel { 19309 let Inst{2-2} = 0b1; 19310 let Inst{7-7} = 0b1; 19311 let Inst{13-13} = 0b1; 19312 let Inst{31-21} = 0b10101011000; 19313 let isPredicated = 1; 19314 let isPredicatedFalse = 1; 19315 let addrMode = PostInc; 19316 let accessSize = ByteAccess; 19317 let isPredicatedNew = 1; 19318 let mayStore = 1; 19319 let BaseOpcode = "S2_storerb_pi"; 19320 let isNVStorable = 1; 19321 let Constraints = "$Rx32 = $Rx32in"; 19322 } 19323 def S2_pstorerbnewf_io : HInst< 19324 (outs), 19325 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19326 "if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19327 tc_594ab548, TypeV2LDST>, Enc_585242, AddrModeRel { 19328 let Inst{2-2} = 0b0; 19329 let Inst{12-11} = 0b00; 19330 let Inst{31-21} = 0b01000100101; 19331 let isPredicated = 1; 19332 let isPredicatedFalse = 1; 19333 let addrMode = BaseImmOffset; 19334 let accessSize = ByteAccess; 19335 let isNVStore = 1; 19336 let isNewValue = 1; 19337 let isRestrictNoSlot1Store = 1; 19338 let mayStore = 1; 19339 let CextOpcode = "S2_storerb"; 19340 let InputType = "imm"; 19341 let BaseOpcode = "S2_storerb_io"; 19342 let isExtendable = 1; 19343 let opExtendable = 2; 19344 let isExtentSigned = 0; 19345 let opExtentBits = 6; 19346 let opExtentAlign = 0; 19347 let opNewValue = 3; 19348 } 19349 def S2_pstorerbnewf_pi : HInst< 19350 (outs IntRegs:$Rx32), 19351 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19352 "if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19353 tc_d9f95eef, TypeST>, Enc_52a5dd, AddrModeRel { 19354 let Inst{2-2} = 0b1; 19355 let Inst{7-7} = 0b0; 19356 let Inst{13-11} = 0b100; 19357 let Inst{31-21} = 0b10101011101; 19358 let isPredicated = 1; 19359 let isPredicatedFalse = 1; 19360 let addrMode = PostInc; 19361 let accessSize = ByteAccess; 19362 let isNVStore = 1; 19363 let isNewValue = 1; 19364 let isRestrictNoSlot1Store = 1; 19365 let mayStore = 1; 19366 let CextOpcode = "S2_storerb"; 19367 let BaseOpcode = "S2_storerb_pi"; 19368 let opNewValue = 4; 19369 let Constraints = "$Rx32 = $Rx32in"; 19370 } 19371 def S2_pstorerbnewf_zomap : HInst< 19372 (outs), 19373 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19374 "if (!$Pv4) memb($Rs32) = $Nt8.new", 19375 tc_594ab548, TypeMAPPING> { 19376 let isPseudo = 1; 19377 let isCodeGenOnly = 1; 19378 let opNewValue = 2; 19379 } 19380 def S2_pstorerbnewfnew_pi : HInst< 19381 (outs IntRegs:$Rx32), 19382 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19383 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19384 tc_d24b2d85, TypeST>, Enc_52a5dd, AddrModeRel { 19385 let Inst{2-2} = 0b1; 19386 let Inst{7-7} = 0b1; 19387 let Inst{13-11} = 0b100; 19388 let Inst{31-21} = 0b10101011101; 19389 let isPredicated = 1; 19390 let isPredicatedFalse = 1; 19391 let addrMode = PostInc; 19392 let accessSize = ByteAccess; 19393 let isNVStore = 1; 19394 let isPredicatedNew = 1; 19395 let isNewValue = 1; 19396 let isRestrictNoSlot1Store = 1; 19397 let mayStore = 1; 19398 let CextOpcode = "S2_storerb"; 19399 let BaseOpcode = "S2_storerb_pi"; 19400 let opNewValue = 4; 19401 let Constraints = "$Rx32 = $Rx32in"; 19402 } 19403 def S2_pstorerbnewt_io : HInst< 19404 (outs), 19405 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19406 "if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19407 tc_594ab548, TypeV2LDST>, Enc_585242, AddrModeRel { 19408 let Inst{2-2} = 0b0; 19409 let Inst{12-11} = 0b00; 19410 let Inst{31-21} = 0b01000000101; 19411 let isPredicated = 1; 19412 let addrMode = BaseImmOffset; 19413 let accessSize = ByteAccess; 19414 let isNVStore = 1; 19415 let isNewValue = 1; 19416 let isRestrictNoSlot1Store = 1; 19417 let mayStore = 1; 19418 let CextOpcode = "S2_storerb"; 19419 let InputType = "imm"; 19420 let BaseOpcode = "S2_storerb_io"; 19421 let isExtendable = 1; 19422 let opExtendable = 2; 19423 let isExtentSigned = 0; 19424 let opExtentBits = 6; 19425 let opExtentAlign = 0; 19426 let opNewValue = 3; 19427 } 19428 def S2_pstorerbnewt_pi : HInst< 19429 (outs IntRegs:$Rx32), 19430 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19431 "if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19432 tc_d9f95eef, TypeST>, Enc_52a5dd, AddrModeRel { 19433 let Inst{2-2} = 0b0; 19434 let Inst{7-7} = 0b0; 19435 let Inst{13-11} = 0b100; 19436 let Inst{31-21} = 0b10101011101; 19437 let isPredicated = 1; 19438 let addrMode = PostInc; 19439 let accessSize = ByteAccess; 19440 let isNVStore = 1; 19441 let isNewValue = 1; 19442 let isRestrictNoSlot1Store = 1; 19443 let mayStore = 1; 19444 let CextOpcode = "S2_storerb"; 19445 let BaseOpcode = "S2_storerb_pi"; 19446 let opNewValue = 4; 19447 let Constraints = "$Rx32 = $Rx32in"; 19448 } 19449 def S2_pstorerbnewt_zomap : HInst< 19450 (outs), 19451 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19452 "if ($Pv4) memb($Rs32) = $Nt8.new", 19453 tc_594ab548, TypeMAPPING> { 19454 let isPseudo = 1; 19455 let isCodeGenOnly = 1; 19456 let opNewValue = 2; 19457 } 19458 def S2_pstorerbnewtnew_pi : HInst< 19459 (outs IntRegs:$Rx32), 19460 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19461 "if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19462 tc_d24b2d85, TypeST>, Enc_52a5dd, AddrModeRel { 19463 let Inst{2-2} = 0b0; 19464 let Inst{7-7} = 0b1; 19465 let Inst{13-11} = 0b100; 19466 let Inst{31-21} = 0b10101011101; 19467 let isPredicated = 1; 19468 let addrMode = PostInc; 19469 let accessSize = ByteAccess; 19470 let isNVStore = 1; 19471 let isPredicatedNew = 1; 19472 let isNewValue = 1; 19473 let isRestrictNoSlot1Store = 1; 19474 let mayStore = 1; 19475 let CextOpcode = "S2_storerb"; 19476 let BaseOpcode = "S2_storerb_pi"; 19477 let opNewValue = 4; 19478 let Constraints = "$Rx32 = $Rx32in"; 19479 } 19480 def S2_pstorerbt_io : HInst< 19481 (outs), 19482 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19483 "if ($Pv4) memb($Rs32+#$Ii) = $Rt32", 19484 tc_8b15472a, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19485 let Inst{2-2} = 0b0; 19486 let Inst{31-21} = 0b01000000000; 19487 let isPredicated = 1; 19488 let addrMode = BaseImmOffset; 19489 let accessSize = ByteAccess; 19490 let mayStore = 1; 19491 let CextOpcode = "S2_storerb"; 19492 let InputType = "imm"; 19493 let BaseOpcode = "S2_storerb_io"; 19494 let isNVStorable = 1; 19495 let isExtendable = 1; 19496 let opExtendable = 2; 19497 let isExtentSigned = 0; 19498 let opExtentBits = 6; 19499 let opExtentAlign = 0; 19500 } 19501 def S2_pstorerbt_pi : HInst< 19502 (outs IntRegs:$Rx32), 19503 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19504 "if ($Pv4) memb($Rx32++#$Ii) = $Rt32", 19505 tc_cd7374a0, TypeST>, Enc_cc449f, AddrModeRel { 19506 let Inst{2-2} = 0b0; 19507 let Inst{7-7} = 0b0; 19508 let Inst{13-13} = 0b1; 19509 let Inst{31-21} = 0b10101011000; 19510 let isPredicated = 1; 19511 let addrMode = PostInc; 19512 let accessSize = ByteAccess; 19513 let mayStore = 1; 19514 let BaseOpcode = "S2_storerb_pi"; 19515 let isNVStorable = 1; 19516 let Constraints = "$Rx32 = $Rx32in"; 19517 } 19518 def S2_pstorerbt_zomap : HInst< 19519 (outs), 19520 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19521 "if ($Pv4) memb($Rs32) = $Rt32", 19522 tc_8b15472a, TypeMAPPING> { 19523 let isPseudo = 1; 19524 let isCodeGenOnly = 1; 19525 } 19526 def S2_pstorerbtnew_pi : HInst< 19527 (outs IntRegs:$Rx32), 19528 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19529 "if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19530 tc_74e47fd9, TypeST>, Enc_cc449f, AddrModeRel { 19531 let Inst{2-2} = 0b0; 19532 let Inst{7-7} = 0b1; 19533 let Inst{13-13} = 0b1; 19534 let Inst{31-21} = 0b10101011000; 19535 let isPredicated = 1; 19536 let addrMode = PostInc; 19537 let accessSize = ByteAccess; 19538 let isPredicatedNew = 1; 19539 let mayStore = 1; 19540 let BaseOpcode = "S2_storerb_pi"; 19541 let isNVStorable = 1; 19542 let Constraints = "$Rx32 = $Rx32in"; 19543 } 19544 def S2_pstorerdf_io : HInst< 19545 (outs), 19546 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 19547 "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32", 19548 tc_8b15472a, TypeV2LDST>, Enc_57a33e, AddrModeRel { 19549 let Inst{2-2} = 0b0; 19550 let Inst{31-21} = 0b01000100110; 19551 let isPredicated = 1; 19552 let isPredicatedFalse = 1; 19553 let addrMode = BaseImmOffset; 19554 let accessSize = DoubleWordAccess; 19555 let mayStore = 1; 19556 let CextOpcode = "S2_storerd"; 19557 let InputType = "imm"; 19558 let BaseOpcode = "S2_storerd_io"; 19559 let isExtendable = 1; 19560 let opExtendable = 2; 19561 let isExtentSigned = 0; 19562 let opExtentBits = 9; 19563 let opExtentAlign = 3; 19564 } 19565 def S2_pstorerdf_pi : HInst< 19566 (outs IntRegs:$Rx32), 19567 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 19568 "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32", 19569 tc_cd7374a0, TypeST>, Enc_9a33d5, AddrModeRel { 19570 let Inst{2-2} = 0b1; 19571 let Inst{7-7} = 0b0; 19572 let Inst{13-13} = 0b1; 19573 let Inst{31-21} = 0b10101011110; 19574 let isPredicated = 1; 19575 let isPredicatedFalse = 1; 19576 let addrMode = PostInc; 19577 let accessSize = DoubleWordAccess; 19578 let mayStore = 1; 19579 let CextOpcode = "S2_storerd"; 19580 let BaseOpcode = "S2_storerd_pi"; 19581 let Constraints = "$Rx32 = $Rx32in"; 19582 } 19583 def S2_pstorerdf_zomap : HInst< 19584 (outs), 19585 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19586 "if (!$Pv4) memd($Rs32) = $Rtt32", 19587 tc_8b15472a, TypeMAPPING> { 19588 let isPseudo = 1; 19589 let isCodeGenOnly = 1; 19590 } 19591 def S2_pstorerdfnew_pi : HInst< 19592 (outs IntRegs:$Rx32), 19593 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 19594 "if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 19595 tc_74e47fd9, TypeST>, Enc_9a33d5, AddrModeRel { 19596 let Inst{2-2} = 0b1; 19597 let Inst{7-7} = 0b1; 19598 let Inst{13-13} = 0b1; 19599 let Inst{31-21} = 0b10101011110; 19600 let isPredicated = 1; 19601 let isPredicatedFalse = 1; 19602 let addrMode = PostInc; 19603 let accessSize = DoubleWordAccess; 19604 let isPredicatedNew = 1; 19605 let mayStore = 1; 19606 let CextOpcode = "S2_storerd"; 19607 let BaseOpcode = "S2_storerd_pi"; 19608 let Constraints = "$Rx32 = $Rx32in"; 19609 } 19610 def S2_pstorerdt_io : HInst< 19611 (outs), 19612 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 19613 "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32", 19614 tc_8b15472a, TypeV2LDST>, Enc_57a33e, AddrModeRel { 19615 let Inst{2-2} = 0b0; 19616 let Inst{31-21} = 0b01000000110; 19617 let isPredicated = 1; 19618 let addrMode = BaseImmOffset; 19619 let accessSize = DoubleWordAccess; 19620 let mayStore = 1; 19621 let CextOpcode = "S2_storerd"; 19622 let InputType = "imm"; 19623 let BaseOpcode = "S2_storerd_io"; 19624 let isExtendable = 1; 19625 let opExtendable = 2; 19626 let isExtentSigned = 0; 19627 let opExtentBits = 9; 19628 let opExtentAlign = 3; 19629 } 19630 def S2_pstorerdt_pi : HInst< 19631 (outs IntRegs:$Rx32), 19632 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 19633 "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32", 19634 tc_cd7374a0, TypeST>, Enc_9a33d5, AddrModeRel { 19635 let Inst{2-2} = 0b0; 19636 let Inst{7-7} = 0b0; 19637 let Inst{13-13} = 0b1; 19638 let Inst{31-21} = 0b10101011110; 19639 let isPredicated = 1; 19640 let addrMode = PostInc; 19641 let accessSize = DoubleWordAccess; 19642 let mayStore = 1; 19643 let CextOpcode = "S2_storerd"; 19644 let BaseOpcode = "S2_storerd_pi"; 19645 let Constraints = "$Rx32 = $Rx32in"; 19646 } 19647 def S2_pstorerdt_zomap : HInst< 19648 (outs), 19649 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19650 "if ($Pv4) memd($Rs32) = $Rtt32", 19651 tc_8b15472a, TypeMAPPING> { 19652 let isPseudo = 1; 19653 let isCodeGenOnly = 1; 19654 } 19655 def S2_pstorerdtnew_pi : HInst< 19656 (outs IntRegs:$Rx32), 19657 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 19658 "if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 19659 tc_74e47fd9, TypeST>, Enc_9a33d5, AddrModeRel { 19660 let Inst{2-2} = 0b0; 19661 let Inst{7-7} = 0b1; 19662 let Inst{13-13} = 0b1; 19663 let Inst{31-21} = 0b10101011110; 19664 let isPredicated = 1; 19665 let addrMode = PostInc; 19666 let accessSize = DoubleWordAccess; 19667 let isPredicatedNew = 1; 19668 let mayStore = 1; 19669 let CextOpcode = "S2_storerd"; 19670 let BaseOpcode = "S2_storerd_pi"; 19671 let Constraints = "$Rx32 = $Rx32in"; 19672 } 19673 def S2_pstorerff_io : HInst< 19674 (outs), 19675 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 19676 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h", 19677 tc_8b15472a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 19678 let Inst{2-2} = 0b0; 19679 let Inst{31-21} = 0b01000100011; 19680 let isPredicated = 1; 19681 let isPredicatedFalse = 1; 19682 let addrMode = BaseImmOffset; 19683 let accessSize = HalfWordAccess; 19684 let mayStore = 1; 19685 let CextOpcode = "S2_storerf"; 19686 let InputType = "imm"; 19687 let BaseOpcode = "S2_storerf_io"; 19688 let isExtendable = 1; 19689 let opExtendable = 2; 19690 let isExtentSigned = 0; 19691 let opExtentBits = 7; 19692 let opExtentAlign = 1; 19693 } 19694 def S2_pstorerff_pi : HInst< 19695 (outs IntRegs:$Rx32), 19696 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19697 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h", 19698 tc_cd7374a0, TypeST>, Enc_b886fd, AddrModeRel { 19699 let Inst{2-2} = 0b1; 19700 let Inst{7-7} = 0b0; 19701 let Inst{13-13} = 0b1; 19702 let Inst{31-21} = 0b10101011011; 19703 let isPredicated = 1; 19704 let isPredicatedFalse = 1; 19705 let addrMode = PostInc; 19706 let accessSize = HalfWordAccess; 19707 let mayStore = 1; 19708 let CextOpcode = "S2_storerf"; 19709 let BaseOpcode = "S2_storerf_pi"; 19710 let Constraints = "$Rx32 = $Rx32in"; 19711 } 19712 def S2_pstorerff_zomap : HInst< 19713 (outs), 19714 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19715 "if (!$Pv4) memh($Rs32) = $Rt32.h", 19716 tc_8b15472a, TypeMAPPING> { 19717 let isPseudo = 1; 19718 let isCodeGenOnly = 1; 19719 } 19720 def S2_pstorerffnew_pi : HInst< 19721 (outs IntRegs:$Rx32), 19722 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19723 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 19724 tc_74e47fd9, TypeST>, Enc_b886fd, AddrModeRel { 19725 let Inst{2-2} = 0b1; 19726 let Inst{7-7} = 0b1; 19727 let Inst{13-13} = 0b1; 19728 let Inst{31-21} = 0b10101011011; 19729 let isPredicated = 1; 19730 let isPredicatedFalse = 1; 19731 let addrMode = PostInc; 19732 let accessSize = HalfWordAccess; 19733 let isPredicatedNew = 1; 19734 let mayStore = 1; 19735 let CextOpcode = "S2_storerf"; 19736 let BaseOpcode = "S2_storerf_pi"; 19737 let Constraints = "$Rx32 = $Rx32in"; 19738 } 19739 def S2_pstorerft_io : HInst< 19740 (outs), 19741 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 19742 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h", 19743 tc_8b15472a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 19744 let Inst{2-2} = 0b0; 19745 let Inst{31-21} = 0b01000000011; 19746 let isPredicated = 1; 19747 let addrMode = BaseImmOffset; 19748 let accessSize = HalfWordAccess; 19749 let mayStore = 1; 19750 let CextOpcode = "S2_storerf"; 19751 let InputType = "imm"; 19752 let BaseOpcode = "S2_storerf_io"; 19753 let isExtendable = 1; 19754 let opExtendable = 2; 19755 let isExtentSigned = 0; 19756 let opExtentBits = 7; 19757 let opExtentAlign = 1; 19758 } 19759 def S2_pstorerft_pi : HInst< 19760 (outs IntRegs:$Rx32), 19761 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19762 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h", 19763 tc_cd7374a0, TypeST>, Enc_b886fd, AddrModeRel { 19764 let Inst{2-2} = 0b0; 19765 let Inst{7-7} = 0b0; 19766 let Inst{13-13} = 0b1; 19767 let Inst{31-21} = 0b10101011011; 19768 let isPredicated = 1; 19769 let addrMode = PostInc; 19770 let accessSize = HalfWordAccess; 19771 let mayStore = 1; 19772 let CextOpcode = "S2_storerf"; 19773 let BaseOpcode = "S2_storerf_pi"; 19774 let Constraints = "$Rx32 = $Rx32in"; 19775 } 19776 def S2_pstorerft_zomap : HInst< 19777 (outs), 19778 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19779 "if ($Pv4) memh($Rs32) = $Rt32.h", 19780 tc_8b15472a, TypeMAPPING> { 19781 let isPseudo = 1; 19782 let isCodeGenOnly = 1; 19783 } 19784 def S2_pstorerftnew_pi : HInst< 19785 (outs IntRegs:$Rx32), 19786 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19787 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 19788 tc_74e47fd9, TypeST>, Enc_b886fd, AddrModeRel { 19789 let Inst{2-2} = 0b0; 19790 let Inst{7-7} = 0b1; 19791 let Inst{13-13} = 0b1; 19792 let Inst{31-21} = 0b10101011011; 19793 let isPredicated = 1; 19794 let addrMode = PostInc; 19795 let accessSize = HalfWordAccess; 19796 let isPredicatedNew = 1; 19797 let mayStore = 1; 19798 let CextOpcode = "S2_storerf"; 19799 let BaseOpcode = "S2_storerf_pi"; 19800 let Constraints = "$Rx32 = $Rx32in"; 19801 } 19802 def S2_pstorerhf_io : HInst< 19803 (outs), 19804 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 19805 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32", 19806 tc_8b15472a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 19807 let Inst{2-2} = 0b0; 19808 let Inst{31-21} = 0b01000100010; 19809 let isPredicated = 1; 19810 let isPredicatedFalse = 1; 19811 let addrMode = BaseImmOffset; 19812 let accessSize = HalfWordAccess; 19813 let mayStore = 1; 19814 let CextOpcode = "S2_storerh"; 19815 let InputType = "imm"; 19816 let BaseOpcode = "S2_storerh_io"; 19817 let isNVStorable = 1; 19818 let isExtendable = 1; 19819 let opExtendable = 2; 19820 let isExtentSigned = 0; 19821 let opExtentBits = 7; 19822 let opExtentAlign = 1; 19823 } 19824 def S2_pstorerhf_pi : HInst< 19825 (outs IntRegs:$Rx32), 19826 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19827 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32", 19828 tc_cd7374a0, TypeST>, Enc_b886fd, AddrModeRel { 19829 let Inst{2-2} = 0b1; 19830 let Inst{7-7} = 0b0; 19831 let Inst{13-13} = 0b1; 19832 let Inst{31-21} = 0b10101011010; 19833 let isPredicated = 1; 19834 let isPredicatedFalse = 1; 19835 let addrMode = PostInc; 19836 let accessSize = HalfWordAccess; 19837 let mayStore = 1; 19838 let BaseOpcode = "S2_storerh_pi"; 19839 let isNVStorable = 1; 19840 let Constraints = "$Rx32 = $Rx32in"; 19841 } 19842 def S2_pstorerhf_zomap : HInst< 19843 (outs), 19844 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19845 "if (!$Pv4) memh($Rs32) = $Rt32", 19846 tc_8b15472a, TypeMAPPING> { 19847 let isPseudo = 1; 19848 let isCodeGenOnly = 1; 19849 } 19850 def S2_pstorerhfnew_pi : HInst< 19851 (outs IntRegs:$Rx32), 19852 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 19853 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32", 19854 tc_74e47fd9, TypeST>, Enc_b886fd, AddrModeRel { 19855 let Inst{2-2} = 0b1; 19856 let Inst{7-7} = 0b1; 19857 let Inst{13-13} = 0b1; 19858 let Inst{31-21} = 0b10101011010; 19859 let isPredicated = 1; 19860 let isPredicatedFalse = 1; 19861 let addrMode = PostInc; 19862 let accessSize = HalfWordAccess; 19863 let isPredicatedNew = 1; 19864 let mayStore = 1; 19865 let BaseOpcode = "S2_storerh_pi"; 19866 let isNVStorable = 1; 19867 let Constraints = "$Rx32 = $Rx32in"; 19868 } 19869 def S2_pstorerhnewf_io : HInst< 19870 (outs), 19871 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 19872 "if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new", 19873 tc_594ab548, TypeV2LDST>, Enc_f44229, AddrModeRel { 19874 let Inst{2-2} = 0b0; 19875 let Inst{12-11} = 0b01; 19876 let Inst{31-21} = 0b01000100101; 19877 let isPredicated = 1; 19878 let isPredicatedFalse = 1; 19879 let addrMode = BaseImmOffset; 19880 let accessSize = HalfWordAccess; 19881 let isNVStore = 1; 19882 let isNewValue = 1; 19883 let isRestrictNoSlot1Store = 1; 19884 let mayStore = 1; 19885 let CextOpcode = "S2_storerh"; 19886 let InputType = "imm"; 19887 let BaseOpcode = "S2_storerh_io"; 19888 let isExtendable = 1; 19889 let opExtendable = 2; 19890 let isExtentSigned = 0; 19891 let opExtentBits = 7; 19892 let opExtentAlign = 1; 19893 let opNewValue = 3; 19894 } 19895 def S2_pstorerhnewf_pi : HInst< 19896 (outs IntRegs:$Rx32), 19897 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 19898 "if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new", 19899 tc_d9f95eef, TypeST>, Enc_31aa6a, AddrModeRel { 19900 let Inst{2-2} = 0b1; 19901 let Inst{7-7} = 0b0; 19902 let Inst{13-11} = 0b101; 19903 let Inst{31-21} = 0b10101011101; 19904 let isPredicated = 1; 19905 let isPredicatedFalse = 1; 19906 let addrMode = PostInc; 19907 let accessSize = HalfWordAccess; 19908 let isNVStore = 1; 19909 let isNewValue = 1; 19910 let isRestrictNoSlot1Store = 1; 19911 let mayStore = 1; 19912 let CextOpcode = "S2_storerh"; 19913 let BaseOpcode = "S2_storerh_pi"; 19914 let opNewValue = 4; 19915 let Constraints = "$Rx32 = $Rx32in"; 19916 } 19917 def S2_pstorerhnewf_zomap : HInst< 19918 (outs), 19919 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19920 "if (!$Pv4) memh($Rs32) = $Nt8.new", 19921 tc_594ab548, TypeMAPPING> { 19922 let isPseudo = 1; 19923 let isCodeGenOnly = 1; 19924 let opNewValue = 2; 19925 } 19926 def S2_pstorerhnewfnew_pi : HInst< 19927 (outs IntRegs:$Rx32), 19928 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 19929 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 19930 tc_d24b2d85, TypeST>, Enc_31aa6a, AddrModeRel { 19931 let Inst{2-2} = 0b1; 19932 let Inst{7-7} = 0b1; 19933 let Inst{13-11} = 0b101; 19934 let Inst{31-21} = 0b10101011101; 19935 let isPredicated = 1; 19936 let isPredicatedFalse = 1; 19937 let addrMode = PostInc; 19938 let accessSize = HalfWordAccess; 19939 let isNVStore = 1; 19940 let isPredicatedNew = 1; 19941 let isNewValue = 1; 19942 let isRestrictNoSlot1Store = 1; 19943 let mayStore = 1; 19944 let CextOpcode = "S2_storerh"; 19945 let BaseOpcode = "S2_storerh_pi"; 19946 let opNewValue = 4; 19947 let Constraints = "$Rx32 = $Rx32in"; 19948 } 19949 def S2_pstorerhnewt_io : HInst< 19950 (outs), 19951 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 19952 "if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new", 19953 tc_594ab548, TypeV2LDST>, Enc_f44229, AddrModeRel { 19954 let Inst{2-2} = 0b0; 19955 let Inst{12-11} = 0b01; 19956 let Inst{31-21} = 0b01000000101; 19957 let isPredicated = 1; 19958 let addrMode = BaseImmOffset; 19959 let accessSize = HalfWordAccess; 19960 let isNVStore = 1; 19961 let isNewValue = 1; 19962 let isRestrictNoSlot1Store = 1; 19963 let mayStore = 1; 19964 let CextOpcode = "S2_storerh"; 19965 let InputType = "imm"; 19966 let BaseOpcode = "S2_storerh_io"; 19967 let isExtendable = 1; 19968 let opExtendable = 2; 19969 let isExtentSigned = 0; 19970 let opExtentBits = 7; 19971 let opExtentAlign = 1; 19972 let opNewValue = 3; 19973 } 19974 def S2_pstorerhnewt_pi : HInst< 19975 (outs IntRegs:$Rx32), 19976 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 19977 "if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new", 19978 tc_d9f95eef, TypeST>, Enc_31aa6a, AddrModeRel { 19979 let Inst{2-2} = 0b0; 19980 let Inst{7-7} = 0b0; 19981 let Inst{13-11} = 0b101; 19982 let Inst{31-21} = 0b10101011101; 19983 let isPredicated = 1; 19984 let addrMode = PostInc; 19985 let accessSize = HalfWordAccess; 19986 let isNVStore = 1; 19987 let isNewValue = 1; 19988 let isRestrictNoSlot1Store = 1; 19989 let mayStore = 1; 19990 let CextOpcode = "S2_storerh"; 19991 let BaseOpcode = "S2_storerh_pi"; 19992 let opNewValue = 4; 19993 let Constraints = "$Rx32 = $Rx32in"; 19994 } 19995 def S2_pstorerhnewt_zomap : HInst< 19996 (outs), 19997 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19998 "if ($Pv4) memh($Rs32) = $Nt8.new", 19999 tc_594ab548, TypeMAPPING> { 20000 let isPseudo = 1; 20001 let isCodeGenOnly = 1; 20002 let opNewValue = 2; 20003 } 20004 def S2_pstorerhnewtnew_pi : HInst< 20005 (outs IntRegs:$Rx32), 20006 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20007 "if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20008 tc_d24b2d85, TypeST>, Enc_31aa6a, AddrModeRel { 20009 let Inst{2-2} = 0b0; 20010 let Inst{7-7} = 0b1; 20011 let Inst{13-11} = 0b101; 20012 let Inst{31-21} = 0b10101011101; 20013 let isPredicated = 1; 20014 let addrMode = PostInc; 20015 let accessSize = HalfWordAccess; 20016 let isNVStore = 1; 20017 let isPredicatedNew = 1; 20018 let isNewValue = 1; 20019 let isRestrictNoSlot1Store = 1; 20020 let mayStore = 1; 20021 let CextOpcode = "S2_storerh"; 20022 let BaseOpcode = "S2_storerh_pi"; 20023 let opNewValue = 4; 20024 let Constraints = "$Rx32 = $Rx32in"; 20025 } 20026 def S2_pstorerht_io : HInst< 20027 (outs), 20028 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20029 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32", 20030 tc_8b15472a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20031 let Inst{2-2} = 0b0; 20032 let Inst{31-21} = 0b01000000010; 20033 let isPredicated = 1; 20034 let addrMode = BaseImmOffset; 20035 let accessSize = HalfWordAccess; 20036 let mayStore = 1; 20037 let CextOpcode = "S2_storerh"; 20038 let InputType = "imm"; 20039 let BaseOpcode = "S2_storerh_io"; 20040 let isNVStorable = 1; 20041 let isExtendable = 1; 20042 let opExtendable = 2; 20043 let isExtentSigned = 0; 20044 let opExtentBits = 7; 20045 let opExtentAlign = 1; 20046 } 20047 def S2_pstorerht_pi : HInst< 20048 (outs IntRegs:$Rx32), 20049 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20050 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32", 20051 tc_cd7374a0, TypeST>, Enc_b886fd, AddrModeRel { 20052 let Inst{2-2} = 0b0; 20053 let Inst{7-7} = 0b0; 20054 let Inst{13-13} = 0b1; 20055 let Inst{31-21} = 0b10101011010; 20056 let isPredicated = 1; 20057 let addrMode = PostInc; 20058 let accessSize = HalfWordAccess; 20059 let mayStore = 1; 20060 let BaseOpcode = "S2_storerh_pi"; 20061 let isNVStorable = 1; 20062 let Constraints = "$Rx32 = $Rx32in"; 20063 } 20064 def S2_pstorerht_zomap : HInst< 20065 (outs), 20066 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20067 "if ($Pv4) memh($Rs32) = $Rt32", 20068 tc_8b15472a, TypeMAPPING> { 20069 let isPseudo = 1; 20070 let isCodeGenOnly = 1; 20071 } 20072 def S2_pstorerhtnew_pi : HInst< 20073 (outs IntRegs:$Rx32), 20074 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20075 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20076 tc_74e47fd9, TypeST>, Enc_b886fd, AddrModeRel { 20077 let Inst{2-2} = 0b0; 20078 let Inst{7-7} = 0b1; 20079 let Inst{13-13} = 0b1; 20080 let Inst{31-21} = 0b10101011010; 20081 let isPredicated = 1; 20082 let addrMode = PostInc; 20083 let accessSize = HalfWordAccess; 20084 let isPredicatedNew = 1; 20085 let mayStore = 1; 20086 let BaseOpcode = "S2_storerh_pi"; 20087 let isNVStorable = 1; 20088 let Constraints = "$Rx32 = $Rx32in"; 20089 } 20090 def S2_pstorerif_io : HInst< 20091 (outs), 20092 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20093 "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32", 20094 tc_8b15472a, TypeV2LDST>, Enc_397f23, AddrModeRel { 20095 let Inst{2-2} = 0b0; 20096 let Inst{31-21} = 0b01000100100; 20097 let isPredicated = 1; 20098 let isPredicatedFalse = 1; 20099 let addrMode = BaseImmOffset; 20100 let accessSize = WordAccess; 20101 let mayStore = 1; 20102 let CextOpcode = "S2_storeri"; 20103 let InputType = "imm"; 20104 let BaseOpcode = "S2_storeri_io"; 20105 let isNVStorable = 1; 20106 let isExtendable = 1; 20107 let opExtendable = 2; 20108 let isExtentSigned = 0; 20109 let opExtentBits = 8; 20110 let opExtentAlign = 2; 20111 } 20112 def S2_pstorerif_pi : HInst< 20113 (outs IntRegs:$Rx32), 20114 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20115 "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32", 20116 tc_cd7374a0, TypeST>, Enc_7eaeb6, AddrModeRel { 20117 let Inst{2-2} = 0b1; 20118 let Inst{7-7} = 0b0; 20119 let Inst{13-13} = 0b1; 20120 let Inst{31-21} = 0b10101011100; 20121 let isPredicated = 1; 20122 let isPredicatedFalse = 1; 20123 let addrMode = PostInc; 20124 let accessSize = WordAccess; 20125 let mayStore = 1; 20126 let BaseOpcode = "S2_storeri_pi"; 20127 let isNVStorable = 1; 20128 let Constraints = "$Rx32 = $Rx32in"; 20129 } 20130 def S2_pstorerif_zomap : HInst< 20131 (outs), 20132 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20133 "if (!$Pv4) memw($Rs32) = $Rt32", 20134 tc_8b15472a, TypeMAPPING> { 20135 let isPseudo = 1; 20136 let isCodeGenOnly = 1; 20137 } 20138 def S2_pstorerifnew_pi : HInst< 20139 (outs IntRegs:$Rx32), 20140 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20141 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20142 tc_74e47fd9, TypeST>, Enc_7eaeb6, AddrModeRel { 20143 let Inst{2-2} = 0b1; 20144 let Inst{7-7} = 0b1; 20145 let Inst{13-13} = 0b1; 20146 let Inst{31-21} = 0b10101011100; 20147 let isPredicated = 1; 20148 let isPredicatedFalse = 1; 20149 let addrMode = PostInc; 20150 let accessSize = WordAccess; 20151 let isPredicatedNew = 1; 20152 let mayStore = 1; 20153 let CextOpcode = "S2_storeri"; 20154 let BaseOpcode = "S2_storeri_pi"; 20155 let isNVStorable = 1; 20156 let Constraints = "$Rx32 = $Rx32in"; 20157 } 20158 def S2_pstorerinewf_io : HInst< 20159 (outs), 20160 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20161 "if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20162 tc_594ab548, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20163 let Inst{2-2} = 0b0; 20164 let Inst{12-11} = 0b10; 20165 let Inst{31-21} = 0b01000100101; 20166 let isPredicated = 1; 20167 let isPredicatedFalse = 1; 20168 let addrMode = BaseImmOffset; 20169 let accessSize = WordAccess; 20170 let isNVStore = 1; 20171 let isNewValue = 1; 20172 let isRestrictNoSlot1Store = 1; 20173 let mayStore = 1; 20174 let CextOpcode = "S2_storeri"; 20175 let InputType = "imm"; 20176 let BaseOpcode = "S2_storeri_io"; 20177 let isExtendable = 1; 20178 let opExtendable = 2; 20179 let isExtentSigned = 0; 20180 let opExtentBits = 8; 20181 let opExtentAlign = 2; 20182 let opNewValue = 3; 20183 } 20184 def S2_pstorerinewf_pi : HInst< 20185 (outs IntRegs:$Rx32), 20186 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20187 "if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20188 tc_d9f95eef, TypeST>, Enc_65f095, AddrModeRel { 20189 let Inst{2-2} = 0b1; 20190 let Inst{7-7} = 0b0; 20191 let Inst{13-11} = 0b110; 20192 let Inst{31-21} = 0b10101011101; 20193 let isPredicated = 1; 20194 let isPredicatedFalse = 1; 20195 let addrMode = PostInc; 20196 let accessSize = WordAccess; 20197 let isNVStore = 1; 20198 let isNewValue = 1; 20199 let isRestrictNoSlot1Store = 1; 20200 let mayStore = 1; 20201 let CextOpcode = "S2_storeri"; 20202 let BaseOpcode = "S2_storeri_pi"; 20203 let opNewValue = 4; 20204 let Constraints = "$Rx32 = $Rx32in"; 20205 } 20206 def S2_pstorerinewf_zomap : HInst< 20207 (outs), 20208 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20209 "if (!$Pv4) memw($Rs32) = $Nt8.new", 20210 tc_594ab548, TypeMAPPING> { 20211 let isPseudo = 1; 20212 let isCodeGenOnly = 1; 20213 let opNewValue = 2; 20214 } 20215 def S2_pstorerinewfnew_pi : HInst< 20216 (outs IntRegs:$Rx32), 20217 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20218 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20219 tc_d24b2d85, TypeST>, Enc_65f095, AddrModeRel { 20220 let Inst{2-2} = 0b1; 20221 let Inst{7-7} = 0b1; 20222 let Inst{13-11} = 0b110; 20223 let Inst{31-21} = 0b10101011101; 20224 let isPredicated = 1; 20225 let isPredicatedFalse = 1; 20226 let addrMode = PostInc; 20227 let accessSize = WordAccess; 20228 let isNVStore = 1; 20229 let isPredicatedNew = 1; 20230 let isNewValue = 1; 20231 let isRestrictNoSlot1Store = 1; 20232 let mayStore = 1; 20233 let CextOpcode = "S2_storeri"; 20234 let BaseOpcode = "S2_storeri_pi"; 20235 let opNewValue = 4; 20236 let Constraints = "$Rx32 = $Rx32in"; 20237 } 20238 def S2_pstorerinewt_io : HInst< 20239 (outs), 20240 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20241 "if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20242 tc_594ab548, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20243 let Inst{2-2} = 0b0; 20244 let Inst{12-11} = 0b10; 20245 let Inst{31-21} = 0b01000000101; 20246 let isPredicated = 1; 20247 let addrMode = BaseImmOffset; 20248 let accessSize = WordAccess; 20249 let isNVStore = 1; 20250 let isNewValue = 1; 20251 let isRestrictNoSlot1Store = 1; 20252 let mayStore = 1; 20253 let CextOpcode = "S2_storeri"; 20254 let InputType = "imm"; 20255 let BaseOpcode = "S2_storeri_io"; 20256 let isExtendable = 1; 20257 let opExtendable = 2; 20258 let isExtentSigned = 0; 20259 let opExtentBits = 8; 20260 let opExtentAlign = 2; 20261 let opNewValue = 3; 20262 } 20263 def S2_pstorerinewt_pi : HInst< 20264 (outs IntRegs:$Rx32), 20265 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20266 "if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20267 tc_d9f95eef, TypeST>, Enc_65f095, AddrModeRel { 20268 let Inst{2-2} = 0b0; 20269 let Inst{7-7} = 0b0; 20270 let Inst{13-11} = 0b110; 20271 let Inst{31-21} = 0b10101011101; 20272 let isPredicated = 1; 20273 let addrMode = PostInc; 20274 let accessSize = WordAccess; 20275 let isNVStore = 1; 20276 let isNewValue = 1; 20277 let isRestrictNoSlot1Store = 1; 20278 let mayStore = 1; 20279 let CextOpcode = "S2_storeri"; 20280 let BaseOpcode = "S2_storeri_pi"; 20281 let opNewValue = 4; 20282 let Constraints = "$Rx32 = $Rx32in"; 20283 } 20284 def S2_pstorerinewt_zomap : HInst< 20285 (outs), 20286 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20287 "if ($Pv4) memw($Rs32) = $Nt8.new", 20288 tc_594ab548, TypeMAPPING> { 20289 let isPseudo = 1; 20290 let isCodeGenOnly = 1; 20291 let opNewValue = 2; 20292 } 20293 def S2_pstorerinewtnew_pi : HInst< 20294 (outs IntRegs:$Rx32), 20295 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20296 "if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20297 tc_d24b2d85, TypeST>, Enc_65f095, AddrModeRel { 20298 let Inst{2-2} = 0b0; 20299 let Inst{7-7} = 0b1; 20300 let Inst{13-11} = 0b110; 20301 let Inst{31-21} = 0b10101011101; 20302 let isPredicated = 1; 20303 let addrMode = PostInc; 20304 let accessSize = WordAccess; 20305 let isNVStore = 1; 20306 let isPredicatedNew = 1; 20307 let isNewValue = 1; 20308 let isRestrictNoSlot1Store = 1; 20309 let mayStore = 1; 20310 let CextOpcode = "S2_storeri"; 20311 let BaseOpcode = "S2_storeri_pi"; 20312 let opNewValue = 4; 20313 let Constraints = "$Rx32 = $Rx32in"; 20314 } 20315 def S2_pstorerit_io : HInst< 20316 (outs), 20317 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20318 "if ($Pv4) memw($Rs32+#$Ii) = $Rt32", 20319 tc_8b15472a, TypeV2LDST>, Enc_397f23, AddrModeRel { 20320 let Inst{2-2} = 0b0; 20321 let Inst{31-21} = 0b01000000100; 20322 let isPredicated = 1; 20323 let addrMode = BaseImmOffset; 20324 let accessSize = WordAccess; 20325 let mayStore = 1; 20326 let CextOpcode = "S2_storeri"; 20327 let InputType = "imm"; 20328 let BaseOpcode = "S2_storeri_io"; 20329 let isNVStorable = 1; 20330 let isExtendable = 1; 20331 let opExtendable = 2; 20332 let isExtentSigned = 0; 20333 let opExtentBits = 8; 20334 let opExtentAlign = 2; 20335 } 20336 def S2_pstorerit_pi : HInst< 20337 (outs IntRegs:$Rx32), 20338 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20339 "if ($Pv4) memw($Rx32++#$Ii) = $Rt32", 20340 tc_cd7374a0, TypeST>, Enc_7eaeb6, AddrModeRel { 20341 let Inst{2-2} = 0b0; 20342 let Inst{7-7} = 0b0; 20343 let Inst{13-13} = 0b1; 20344 let Inst{31-21} = 0b10101011100; 20345 let isPredicated = 1; 20346 let addrMode = PostInc; 20347 let accessSize = WordAccess; 20348 let mayStore = 1; 20349 let BaseOpcode = "S2_storeri_pi"; 20350 let isNVStorable = 1; 20351 let Constraints = "$Rx32 = $Rx32in"; 20352 } 20353 def S2_pstorerit_zomap : HInst< 20354 (outs), 20355 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20356 "if ($Pv4) memw($Rs32) = $Rt32", 20357 tc_8b15472a, TypeMAPPING> { 20358 let isPseudo = 1; 20359 let isCodeGenOnly = 1; 20360 } 20361 def S2_pstoreritnew_pi : HInst< 20362 (outs IntRegs:$Rx32), 20363 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20364 "if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20365 tc_74e47fd9, TypeST>, Enc_7eaeb6, AddrModeRel { 20366 let Inst{2-2} = 0b0; 20367 let Inst{7-7} = 0b1; 20368 let Inst{13-13} = 0b1; 20369 let Inst{31-21} = 0b10101011100; 20370 let isPredicated = 1; 20371 let addrMode = PostInc; 20372 let accessSize = WordAccess; 20373 let isPredicatedNew = 1; 20374 let mayStore = 1; 20375 let BaseOpcode = "S2_storeri_pi"; 20376 let isNVStorable = 1; 20377 let Constraints = "$Rx32 = $Rx32in"; 20378 } 20379 def S2_setbit_i : HInst< 20380 (outs IntRegs:$Rd32), 20381 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 20382 "$Rd32 = setbit($Rs32,#$Ii)", 20383 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 20384 let Inst{7-5} = 0b000; 20385 let Inst{13-13} = 0b0; 20386 let Inst{31-21} = 0b10001100110; 20387 let hasNewValue = 1; 20388 let opNewValue = 0; 20389 } 20390 def S2_setbit_r : HInst< 20391 (outs IntRegs:$Rd32), 20392 (ins IntRegs:$Rs32, IntRegs:$Rt32), 20393 "$Rd32 = setbit($Rs32,$Rt32)", 20394 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 20395 let Inst{7-5} = 0b000; 20396 let Inst{13-13} = 0b0; 20397 let Inst{31-21} = 0b11000110100; 20398 let hasNewValue = 1; 20399 let opNewValue = 0; 20400 } 20401 def S2_shuffeb : HInst< 20402 (outs DoubleRegs:$Rdd32), 20403 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20404 "$Rdd32 = shuffeb($Rss32,$Rtt32)", 20405 tc_540fdfbc, TypeS_3op>, Enc_a56825 { 20406 let Inst{7-5} = 0b010; 20407 let Inst{13-13} = 0b0; 20408 let Inst{31-21} = 0b11000001000; 20409 } 20410 def S2_shuffeh : HInst< 20411 (outs DoubleRegs:$Rdd32), 20412 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20413 "$Rdd32 = shuffeh($Rss32,$Rtt32)", 20414 tc_540fdfbc, TypeS_3op>, Enc_a56825 { 20415 let Inst{7-5} = 0b110; 20416 let Inst{13-13} = 0b0; 20417 let Inst{31-21} = 0b11000001000; 20418 } 20419 def S2_shuffob : HInst< 20420 (outs DoubleRegs:$Rdd32), 20421 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20422 "$Rdd32 = shuffob($Rtt32,$Rss32)", 20423 tc_540fdfbc, TypeS_3op>, Enc_ea23e4 { 20424 let Inst{7-5} = 0b100; 20425 let Inst{13-13} = 0b0; 20426 let Inst{31-21} = 0b11000001000; 20427 } 20428 def S2_shuffoh : HInst< 20429 (outs DoubleRegs:$Rdd32), 20430 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20431 "$Rdd32 = shuffoh($Rtt32,$Rss32)", 20432 tc_540fdfbc, TypeS_3op>, Enc_ea23e4 { 20433 let Inst{7-5} = 0b000; 20434 let Inst{13-13} = 0b0; 20435 let Inst{31-21} = 0b11000001100; 20436 } 20437 def S2_storerb_io : HInst< 20438 (outs), 20439 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 20440 "memb($Rs32+#$Ii) = $Rt32", 20441 tc_05b6c987, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { 20442 let Inst{24-21} = 0b1000; 20443 let Inst{31-27} = 0b10100; 20444 let addrMode = BaseImmOffset; 20445 let accessSize = ByteAccess; 20446 let mayStore = 1; 20447 let CextOpcode = "S2_storerb"; 20448 let InputType = "imm"; 20449 let BaseOpcode = "S2_storerb_io"; 20450 let isPredicable = 1; 20451 let isNVStorable = 1; 20452 let isExtendable = 1; 20453 let opExtendable = 1; 20454 let isExtentSigned = 1; 20455 let opExtentBits = 11; 20456 let opExtentAlign = 0; 20457 } 20458 def S2_storerb_pbr : HInst< 20459 (outs IntRegs:$Rx32), 20460 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20461 "memb($Rx32++$Mu2:brev) = $Rt32", 20462 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 20463 let Inst{7-0} = 0b00000000; 20464 let Inst{31-21} = 0b10101111000; 20465 let accessSize = ByteAccess; 20466 let mayStore = 1; 20467 let BaseOpcode = "S2_storerb_pbr"; 20468 let isNVStorable = 1; 20469 let Constraints = "$Rx32 = $Rx32in"; 20470 } 20471 def S2_storerb_pci : HInst< 20472 (outs IntRegs:$Rx32), 20473 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20474 "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32", 20475 tc_9fdb5406, TypeST>, Enc_b15941, AddrModeRel { 20476 let Inst{2-0} = 0b000; 20477 let Inst{7-7} = 0b0; 20478 let Inst{31-21} = 0b10101001000; 20479 let addrMode = PostInc; 20480 let accessSize = ByteAccess; 20481 let mayStore = 1; 20482 let Uses = [CS]; 20483 let BaseOpcode = "S2_storerb_pci"; 20484 let isNVStorable = 1; 20485 let Constraints = "$Rx32 = $Rx32in"; 20486 } 20487 def S2_storerb_pcr : HInst< 20488 (outs IntRegs:$Rx32), 20489 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20490 "memb($Rx32++I:circ($Mu2)) = $Rt32", 20491 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 20492 let Inst{7-0} = 0b00000010; 20493 let Inst{31-21} = 0b10101001000; 20494 let addrMode = PostInc; 20495 let accessSize = ByteAccess; 20496 let mayStore = 1; 20497 let Uses = [CS]; 20498 let BaseOpcode = "S2_storerb_pcr"; 20499 let isNVStorable = 1; 20500 let Constraints = "$Rx32 = $Rx32in"; 20501 } 20502 def S2_storerb_pi : HInst< 20503 (outs IntRegs:$Rx32), 20504 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 20505 "memb($Rx32++#$Ii) = $Rt32", 20506 tc_f86c328a, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { 20507 let Inst{2-0} = 0b000; 20508 let Inst{7-7} = 0b0; 20509 let Inst{13-13} = 0b0; 20510 let Inst{31-21} = 0b10101011000; 20511 let addrMode = PostInc; 20512 let accessSize = ByteAccess; 20513 let mayStore = 1; 20514 let CextOpcode = "S2_storerb"; 20515 let BaseOpcode = "S2_storerb_pi"; 20516 let isPredicable = 1; 20517 let isNVStorable = 1; 20518 let Constraints = "$Rx32 = $Rx32in"; 20519 } 20520 def S2_storerb_pr : HInst< 20521 (outs IntRegs:$Rx32), 20522 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20523 "memb($Rx32++$Mu2) = $Rt32", 20524 tc_f86c328a, TypeST>, Enc_d5c73f { 20525 let Inst{7-0} = 0b00000000; 20526 let Inst{31-21} = 0b10101101000; 20527 let addrMode = PostInc; 20528 let accessSize = ByteAccess; 20529 let mayStore = 1; 20530 let isNVStorable = 1; 20531 let Constraints = "$Rx32 = $Rx32in"; 20532 } 20533 def S2_storerb_zomap : HInst< 20534 (outs), 20535 (ins IntRegs:$Rs32, IntRegs:$Rt32), 20536 "memb($Rs32) = $Rt32", 20537 tc_05b6c987, TypeMAPPING> { 20538 let isPseudo = 1; 20539 let isCodeGenOnly = 1; 20540 } 20541 def S2_storerbgp : HInst< 20542 (outs), 20543 (ins u32_0Imm:$Ii, IntRegs:$Rt32), 20544 "memb(gp+#$Ii) = $Rt32", 20545 tc_a788683e, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 20546 let Inst{24-21} = 0b0000; 20547 let Inst{31-27} = 0b01001; 20548 let accessSize = ByteAccess; 20549 let mayStore = 1; 20550 let Uses = [GP]; 20551 let BaseOpcode = "S2_storerbabs"; 20552 let isPredicable = 1; 20553 let isNVStorable = 1; 20554 let opExtendable = 0; 20555 let isExtentSigned = 0; 20556 let opExtentBits = 16; 20557 let opExtentAlign = 0; 20558 } 20559 def S2_storerbnew_io : HInst< 20560 (outs), 20561 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8), 20562 "memb($Rs32+#$Ii) = $Nt8.new", 20563 tc_f7dd9c9f, TypeST>, Enc_4df4e9, AddrModeRel { 20564 let Inst{12-11} = 0b00; 20565 let Inst{24-21} = 0b1101; 20566 let Inst{31-27} = 0b10100; 20567 let addrMode = BaseImmOffset; 20568 let accessSize = ByteAccess; 20569 let isNVStore = 1; 20570 let isNewValue = 1; 20571 let isRestrictNoSlot1Store = 1; 20572 let mayStore = 1; 20573 let CextOpcode = "S2_storerb"; 20574 let InputType = "imm"; 20575 let BaseOpcode = "S2_storerb_io"; 20576 let isPredicable = 1; 20577 let isExtendable = 1; 20578 let opExtendable = 1; 20579 let isExtentSigned = 1; 20580 let opExtentBits = 11; 20581 let opExtentAlign = 0; 20582 let opNewValue = 2; 20583 } 20584 def S2_storerbnew_pbr : HInst< 20585 (outs IntRegs:$Rx32), 20586 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 20587 "memb($Rx32++$Mu2:brev) = $Nt8.new", 20588 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 20589 let Inst{7-0} = 0b00000000; 20590 let Inst{12-11} = 0b00; 20591 let Inst{31-21} = 0b10101111101; 20592 let accessSize = ByteAccess; 20593 let isNVStore = 1; 20594 let isNewValue = 1; 20595 let isRestrictNoSlot1Store = 1; 20596 let mayStore = 1; 20597 let BaseOpcode = "S2_storerb_pbr"; 20598 let opNewValue = 3; 20599 let Constraints = "$Rx32 = $Rx32in"; 20600 } 20601 def S2_storerbnew_pci : HInst< 20602 (outs IntRegs:$Rx32), 20603 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 20604 "memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 20605 tc_9d5941c7, TypeST>, Enc_96ce4f, AddrModeRel { 20606 let Inst{2-0} = 0b000; 20607 let Inst{7-7} = 0b0; 20608 let Inst{12-11} = 0b00; 20609 let Inst{31-21} = 0b10101001101; 20610 let addrMode = PostInc; 20611 let accessSize = ByteAccess; 20612 let isNVStore = 1; 20613 let isNewValue = 1; 20614 let isRestrictNoSlot1Store = 1; 20615 let mayStore = 1; 20616 let Uses = [CS]; 20617 let BaseOpcode = "S2_storerb_pci"; 20618 let opNewValue = 4; 20619 let Constraints = "$Rx32 = $Rx32in"; 20620 } 20621 def S2_storerbnew_pcr : HInst< 20622 (outs IntRegs:$Rx32), 20623 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 20624 "memb($Rx32++I:circ($Mu2)) = $Nt8.new", 20625 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 20626 let Inst{7-0} = 0b00000010; 20627 let Inst{12-11} = 0b00; 20628 let Inst{31-21} = 0b10101001101; 20629 let addrMode = PostInc; 20630 let accessSize = ByteAccess; 20631 let isNVStore = 1; 20632 let isNewValue = 1; 20633 let isRestrictNoSlot1Store = 1; 20634 let mayStore = 1; 20635 let Uses = [CS]; 20636 let BaseOpcode = "S2_storerb_pcr"; 20637 let opNewValue = 3; 20638 let Constraints = "$Rx32 = $Rx32in"; 20639 } 20640 def S2_storerbnew_pi : HInst< 20641 (outs IntRegs:$Rx32), 20642 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 20643 "memb($Rx32++#$Ii) = $Nt8.new", 20644 tc_e7d02c66, TypeST>, Enc_c7cd90, AddrModeRel { 20645 let Inst{2-0} = 0b000; 20646 let Inst{7-7} = 0b0; 20647 let Inst{13-11} = 0b000; 20648 let Inst{31-21} = 0b10101011101; 20649 let addrMode = PostInc; 20650 let accessSize = ByteAccess; 20651 let isNVStore = 1; 20652 let isNewValue = 1; 20653 let isRestrictNoSlot1Store = 1; 20654 let mayStore = 1; 20655 let BaseOpcode = "S2_storerb_pi"; 20656 let isPredicable = 1; 20657 let isNVStorable = 1; 20658 let opNewValue = 3; 20659 let Constraints = "$Rx32 = $Rx32in"; 20660 } 20661 def S2_storerbnew_pr : HInst< 20662 (outs IntRegs:$Rx32), 20663 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 20664 "memb($Rx32++$Mu2) = $Nt8.new", 20665 tc_e7d02c66, TypeST>, Enc_8dbe85 { 20666 let Inst{7-0} = 0b00000000; 20667 let Inst{12-11} = 0b00; 20668 let Inst{31-21} = 0b10101101101; 20669 let addrMode = PostInc; 20670 let accessSize = ByteAccess; 20671 let isNVStore = 1; 20672 let isNewValue = 1; 20673 let isRestrictNoSlot1Store = 1; 20674 let mayStore = 1; 20675 let opNewValue = 3; 20676 let Constraints = "$Rx32 = $Rx32in"; 20677 } 20678 def S2_storerbnew_zomap : HInst< 20679 (outs), 20680 (ins IntRegs:$Rs32, IntRegs:$Nt8), 20681 "memb($Rs32) = $Nt8.new", 20682 tc_f7dd9c9f, TypeMAPPING> { 20683 let isPseudo = 1; 20684 let isCodeGenOnly = 1; 20685 let opNewValue = 1; 20686 } 20687 def S2_storerbnewgp : HInst< 20688 (outs), 20689 (ins u32_0Imm:$Ii, IntRegs:$Nt8), 20690 "memb(gp+#$Ii) = $Nt8.new", 20691 tc_ff9ee76e, TypeV2LDST>, Enc_ad1831, AddrModeRel { 20692 let Inst{12-11} = 0b00; 20693 let Inst{24-21} = 0b0101; 20694 let Inst{31-27} = 0b01001; 20695 let accessSize = ByteAccess; 20696 let isNVStore = 1; 20697 let isNewValue = 1; 20698 let isRestrictNoSlot1Store = 1; 20699 let mayStore = 1; 20700 let Uses = [GP]; 20701 let BaseOpcode = "S2_storerbabs"; 20702 let isPredicable = 1; 20703 let opExtendable = 0; 20704 let isExtentSigned = 0; 20705 let opExtentBits = 16; 20706 let opExtentAlign = 0; 20707 let opNewValue = 1; 20708 } 20709 def S2_storerd_io : HInst< 20710 (outs), 20711 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 20712 "memd($Rs32+#$Ii) = $Rtt32", 20713 tc_05b6c987, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { 20714 let Inst{24-21} = 0b1110; 20715 let Inst{31-27} = 0b10100; 20716 let addrMode = BaseImmOffset; 20717 let accessSize = DoubleWordAccess; 20718 let mayStore = 1; 20719 let CextOpcode = "S2_storerd"; 20720 let InputType = "imm"; 20721 let BaseOpcode = "S2_storerd_io"; 20722 let isPredicable = 1; 20723 let isExtendable = 1; 20724 let opExtendable = 1; 20725 let isExtentSigned = 1; 20726 let opExtentBits = 14; 20727 let opExtentAlign = 3; 20728 } 20729 def S2_storerd_pbr : HInst< 20730 (outs IntRegs:$Rx32), 20731 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 20732 "memd($Rx32++$Mu2:brev) = $Rtt32", 20733 tc_f86c328a, TypeST>, Enc_928ca1 { 20734 let Inst{7-0} = 0b00000000; 20735 let Inst{31-21} = 0b10101111110; 20736 let accessSize = DoubleWordAccess; 20737 let mayStore = 1; 20738 let Constraints = "$Rx32 = $Rx32in"; 20739 } 20740 def S2_storerd_pci : HInst< 20741 (outs IntRegs:$Rx32), 20742 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32), 20743 "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32", 20744 tc_9fdb5406, TypeST>, Enc_395cc4 { 20745 let Inst{2-0} = 0b000; 20746 let Inst{7-7} = 0b0; 20747 let Inst{31-21} = 0b10101001110; 20748 let addrMode = PostInc; 20749 let accessSize = DoubleWordAccess; 20750 let mayStore = 1; 20751 let Uses = [CS]; 20752 let Constraints = "$Rx32 = $Rx32in"; 20753 } 20754 def S2_storerd_pcr : HInst< 20755 (outs IntRegs:$Rx32), 20756 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 20757 "memd($Rx32++I:circ($Mu2)) = $Rtt32", 20758 tc_f86c328a, TypeST>, Enc_928ca1 { 20759 let Inst{7-0} = 0b00000010; 20760 let Inst{31-21} = 0b10101001110; 20761 let addrMode = PostInc; 20762 let accessSize = DoubleWordAccess; 20763 let mayStore = 1; 20764 let Uses = [CS]; 20765 let Constraints = "$Rx32 = $Rx32in"; 20766 } 20767 def S2_storerd_pi : HInst< 20768 (outs IntRegs:$Rx32), 20769 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20770 "memd($Rx32++#$Ii) = $Rtt32", 20771 tc_f86c328a, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { 20772 let Inst{2-0} = 0b000; 20773 let Inst{7-7} = 0b0; 20774 let Inst{13-13} = 0b0; 20775 let Inst{31-21} = 0b10101011110; 20776 let addrMode = PostInc; 20777 let accessSize = DoubleWordAccess; 20778 let mayStore = 1; 20779 let CextOpcode = "S2_storerd"; 20780 let BaseOpcode = "S2_storerd_pi"; 20781 let isPredicable = 1; 20782 let Constraints = "$Rx32 = $Rx32in"; 20783 } 20784 def S2_storerd_pr : HInst< 20785 (outs IntRegs:$Rx32), 20786 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 20787 "memd($Rx32++$Mu2) = $Rtt32", 20788 tc_f86c328a, TypeST>, Enc_928ca1 { 20789 let Inst{7-0} = 0b00000000; 20790 let Inst{31-21} = 0b10101101110; 20791 let addrMode = PostInc; 20792 let accessSize = DoubleWordAccess; 20793 let mayStore = 1; 20794 let Constraints = "$Rx32 = $Rx32in"; 20795 } 20796 def S2_storerd_zomap : HInst< 20797 (outs), 20798 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 20799 "memd($Rs32) = $Rtt32", 20800 tc_05b6c987, TypeMAPPING> { 20801 let isPseudo = 1; 20802 let isCodeGenOnly = 1; 20803 } 20804 def S2_storerdgp : HInst< 20805 (outs), 20806 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 20807 "memd(gp+#$Ii) = $Rtt32", 20808 tc_a788683e, TypeV2LDST>, Enc_5c124a, AddrModeRel { 20809 let Inst{24-21} = 0b0110; 20810 let Inst{31-27} = 0b01001; 20811 let accessSize = DoubleWordAccess; 20812 let mayStore = 1; 20813 let Uses = [GP]; 20814 let BaseOpcode = "S2_storerdabs"; 20815 let isPredicable = 1; 20816 let opExtendable = 0; 20817 let isExtentSigned = 0; 20818 let opExtentBits = 19; 20819 let opExtentAlign = 3; 20820 } 20821 def S2_storerf_io : HInst< 20822 (outs), 20823 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 20824 "memh($Rs32+#$Ii) = $Rt32.h", 20825 tc_05b6c987, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 20826 let Inst{24-21} = 0b1011; 20827 let Inst{31-27} = 0b10100; 20828 let addrMode = BaseImmOffset; 20829 let accessSize = HalfWordAccess; 20830 let mayStore = 1; 20831 let CextOpcode = "S2_storerf"; 20832 let InputType = "imm"; 20833 let BaseOpcode = "S2_storerf_io"; 20834 let isPredicable = 1; 20835 let isExtendable = 1; 20836 let opExtendable = 1; 20837 let isExtentSigned = 1; 20838 let opExtentBits = 12; 20839 let opExtentAlign = 1; 20840 } 20841 def S2_storerf_pbr : HInst< 20842 (outs IntRegs:$Rx32), 20843 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20844 "memh($Rx32++$Mu2:brev) = $Rt32.h", 20845 tc_f86c328a, TypeST>, Enc_d5c73f { 20846 let Inst{7-0} = 0b00000000; 20847 let Inst{31-21} = 0b10101111011; 20848 let accessSize = HalfWordAccess; 20849 let mayStore = 1; 20850 let Constraints = "$Rx32 = $Rx32in"; 20851 } 20852 def S2_storerf_pci : HInst< 20853 (outs IntRegs:$Rx32), 20854 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20855 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h", 20856 tc_9fdb5406, TypeST>, Enc_935d9b { 20857 let Inst{2-0} = 0b000; 20858 let Inst{7-7} = 0b0; 20859 let Inst{31-21} = 0b10101001011; 20860 let addrMode = PostInc; 20861 let accessSize = HalfWordAccess; 20862 let mayStore = 1; 20863 let Uses = [CS]; 20864 let Constraints = "$Rx32 = $Rx32in"; 20865 } 20866 def S2_storerf_pcr : HInst< 20867 (outs IntRegs:$Rx32), 20868 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20869 "memh($Rx32++I:circ($Mu2)) = $Rt32.h", 20870 tc_f86c328a, TypeST>, Enc_d5c73f { 20871 let Inst{7-0} = 0b00000010; 20872 let Inst{31-21} = 0b10101001011; 20873 let addrMode = PostInc; 20874 let accessSize = HalfWordAccess; 20875 let mayStore = 1; 20876 let Uses = [CS]; 20877 let Constraints = "$Rx32 = $Rx32in"; 20878 } 20879 def S2_storerf_pi : HInst< 20880 (outs IntRegs:$Rx32), 20881 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20882 "memh($Rx32++#$Ii) = $Rt32.h", 20883 tc_f86c328a, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 20884 let Inst{2-0} = 0b000; 20885 let Inst{7-7} = 0b0; 20886 let Inst{13-13} = 0b0; 20887 let Inst{31-21} = 0b10101011011; 20888 let addrMode = PostInc; 20889 let accessSize = HalfWordAccess; 20890 let mayStore = 1; 20891 let CextOpcode = "S2_storerf"; 20892 let BaseOpcode = "S2_storerf_pi"; 20893 let isPredicable = 1; 20894 let Constraints = "$Rx32 = $Rx32in"; 20895 } 20896 def S2_storerf_pr : HInst< 20897 (outs IntRegs:$Rx32), 20898 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20899 "memh($Rx32++$Mu2) = $Rt32.h", 20900 tc_f86c328a, TypeST>, Enc_d5c73f { 20901 let Inst{7-0} = 0b00000000; 20902 let Inst{31-21} = 0b10101101011; 20903 let addrMode = PostInc; 20904 let accessSize = HalfWordAccess; 20905 let mayStore = 1; 20906 let Constraints = "$Rx32 = $Rx32in"; 20907 } 20908 def S2_storerf_zomap : HInst< 20909 (outs), 20910 (ins IntRegs:$Rs32, IntRegs:$Rt32), 20911 "memh($Rs32) = $Rt32.h", 20912 tc_05b6c987, TypeMAPPING> { 20913 let isPseudo = 1; 20914 let isCodeGenOnly = 1; 20915 } 20916 def S2_storerfgp : HInst< 20917 (outs), 20918 (ins u31_1Imm:$Ii, IntRegs:$Rt32), 20919 "memh(gp+#$Ii) = $Rt32.h", 20920 tc_a788683e, TypeV2LDST>, Enc_fda92c, AddrModeRel { 20921 let Inst{24-21} = 0b0011; 20922 let Inst{31-27} = 0b01001; 20923 let accessSize = HalfWordAccess; 20924 let mayStore = 1; 20925 let Uses = [GP]; 20926 let BaseOpcode = "S2_storerfabs"; 20927 let isPredicable = 1; 20928 let opExtendable = 0; 20929 let isExtentSigned = 0; 20930 let opExtentBits = 17; 20931 let opExtentAlign = 1; 20932 } 20933 def S2_storerh_io : HInst< 20934 (outs), 20935 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 20936 "memh($Rs32+#$Ii) = $Rt32", 20937 tc_05b6c987, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 20938 let Inst{24-21} = 0b1010; 20939 let Inst{31-27} = 0b10100; 20940 let addrMode = BaseImmOffset; 20941 let accessSize = HalfWordAccess; 20942 let mayStore = 1; 20943 let CextOpcode = "S2_storerh"; 20944 let InputType = "imm"; 20945 let BaseOpcode = "S2_storerh_io"; 20946 let isPredicable = 1; 20947 let isNVStorable = 1; 20948 let isExtendable = 1; 20949 let opExtendable = 1; 20950 let isExtentSigned = 1; 20951 let opExtentBits = 12; 20952 let opExtentAlign = 1; 20953 } 20954 def S2_storerh_pbr : HInst< 20955 (outs IntRegs:$Rx32), 20956 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20957 "memh($Rx32++$Mu2:brev) = $Rt32", 20958 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 20959 let Inst{7-0} = 0b00000000; 20960 let Inst{31-21} = 0b10101111010; 20961 let accessSize = HalfWordAccess; 20962 let mayStore = 1; 20963 let BaseOpcode = "S2_storerh_pbr"; 20964 let isNVStorable = 1; 20965 let Constraints = "$Rx32 = $Rx32in"; 20966 } 20967 def S2_storerh_pci : HInst< 20968 (outs IntRegs:$Rx32), 20969 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20970 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32", 20971 tc_9fdb5406, TypeST>, Enc_935d9b, AddrModeRel { 20972 let Inst{2-0} = 0b000; 20973 let Inst{7-7} = 0b0; 20974 let Inst{31-21} = 0b10101001010; 20975 let addrMode = PostInc; 20976 let accessSize = HalfWordAccess; 20977 let mayStore = 1; 20978 let Uses = [CS]; 20979 let BaseOpcode = "S2_storerh_pci"; 20980 let isNVStorable = 1; 20981 let Constraints = "$Rx32 = $Rx32in"; 20982 } 20983 def S2_storerh_pcr : HInst< 20984 (outs IntRegs:$Rx32), 20985 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20986 "memh($Rx32++I:circ($Mu2)) = $Rt32", 20987 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 20988 let Inst{7-0} = 0b00000010; 20989 let Inst{31-21} = 0b10101001010; 20990 let addrMode = PostInc; 20991 let accessSize = HalfWordAccess; 20992 let mayStore = 1; 20993 let Uses = [CS]; 20994 let BaseOpcode = "S2_storerh_pcr"; 20995 let isNVStorable = 1; 20996 let Constraints = "$Rx32 = $Rx32in"; 20997 } 20998 def S2_storerh_pi : HInst< 20999 (outs IntRegs:$Rx32), 21000 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21001 "memh($Rx32++#$Ii) = $Rt32", 21002 tc_f86c328a, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21003 let Inst{2-0} = 0b000; 21004 let Inst{7-7} = 0b0; 21005 let Inst{13-13} = 0b0; 21006 let Inst{31-21} = 0b10101011010; 21007 let addrMode = PostInc; 21008 let accessSize = HalfWordAccess; 21009 let mayStore = 1; 21010 let CextOpcode = "S2_storerh"; 21011 let BaseOpcode = "S2_storerh_pi"; 21012 let isPredicable = 1; 21013 let isNVStorable = 1; 21014 let Constraints = "$Rx32 = $Rx32in"; 21015 } 21016 def S2_storerh_pr : HInst< 21017 (outs IntRegs:$Rx32), 21018 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21019 "memh($Rx32++$Mu2) = $Rt32", 21020 tc_f86c328a, TypeST>, Enc_d5c73f { 21021 let Inst{7-0} = 0b00000000; 21022 let Inst{31-21} = 0b10101101010; 21023 let addrMode = PostInc; 21024 let accessSize = HalfWordAccess; 21025 let mayStore = 1; 21026 let isNVStorable = 1; 21027 let Constraints = "$Rx32 = $Rx32in"; 21028 } 21029 def S2_storerh_zomap : HInst< 21030 (outs), 21031 (ins IntRegs:$Rs32, IntRegs:$Rt32), 21032 "memh($Rs32) = $Rt32", 21033 tc_05b6c987, TypeMAPPING> { 21034 let isPseudo = 1; 21035 let isCodeGenOnly = 1; 21036 } 21037 def S2_storerhgp : HInst< 21038 (outs), 21039 (ins u31_1Imm:$Ii, IntRegs:$Rt32), 21040 "memh(gp+#$Ii) = $Rt32", 21041 tc_a788683e, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21042 let Inst{24-21} = 0b0010; 21043 let Inst{31-27} = 0b01001; 21044 let accessSize = HalfWordAccess; 21045 let mayStore = 1; 21046 let Uses = [GP]; 21047 let BaseOpcode = "S2_storerhabs"; 21048 let isPredicable = 1; 21049 let isNVStorable = 1; 21050 let opExtendable = 0; 21051 let isExtentSigned = 0; 21052 let opExtentBits = 17; 21053 let opExtentAlign = 1; 21054 } 21055 def S2_storerhnew_io : HInst< 21056 (outs), 21057 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8), 21058 "memh($Rs32+#$Ii) = $Nt8.new", 21059 tc_f7dd9c9f, TypeST>, Enc_0d8870, AddrModeRel { 21060 let Inst{12-11} = 0b01; 21061 let Inst{24-21} = 0b1101; 21062 let Inst{31-27} = 0b10100; 21063 let addrMode = BaseImmOffset; 21064 let accessSize = HalfWordAccess; 21065 let isNVStore = 1; 21066 let isNewValue = 1; 21067 let isRestrictNoSlot1Store = 1; 21068 let mayStore = 1; 21069 let CextOpcode = "S2_storerh"; 21070 let InputType = "imm"; 21071 let BaseOpcode = "S2_storerh_io"; 21072 let isPredicable = 1; 21073 let isExtendable = 1; 21074 let opExtendable = 1; 21075 let isExtentSigned = 1; 21076 let opExtentBits = 12; 21077 let opExtentAlign = 1; 21078 let opNewValue = 2; 21079 } 21080 def S2_storerhnew_pbr : HInst< 21081 (outs IntRegs:$Rx32), 21082 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21083 "memh($Rx32++$Mu2:brev) = $Nt8.new", 21084 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 21085 let Inst{7-0} = 0b00000000; 21086 let Inst{12-11} = 0b01; 21087 let Inst{31-21} = 0b10101111101; 21088 let accessSize = HalfWordAccess; 21089 let isNVStore = 1; 21090 let isNewValue = 1; 21091 let isRestrictNoSlot1Store = 1; 21092 let mayStore = 1; 21093 let BaseOpcode = "S2_storerh_pbr"; 21094 let opNewValue = 3; 21095 let Constraints = "$Rx32 = $Rx32in"; 21096 } 21097 def S2_storerhnew_pci : HInst< 21098 (outs IntRegs:$Rx32), 21099 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21100 "memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21101 tc_9d5941c7, TypeST>, Enc_91b9fe, AddrModeRel { 21102 let Inst{2-0} = 0b000; 21103 let Inst{7-7} = 0b0; 21104 let Inst{12-11} = 0b01; 21105 let Inst{31-21} = 0b10101001101; 21106 let addrMode = PostInc; 21107 let accessSize = HalfWordAccess; 21108 let isNVStore = 1; 21109 let isNewValue = 1; 21110 let isRestrictNoSlot1Store = 1; 21111 let mayStore = 1; 21112 let Uses = [CS]; 21113 let BaseOpcode = "S2_storerh_pci"; 21114 let opNewValue = 4; 21115 let Constraints = "$Rx32 = $Rx32in"; 21116 } 21117 def S2_storerhnew_pcr : HInst< 21118 (outs IntRegs:$Rx32), 21119 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21120 "memh($Rx32++I:circ($Mu2)) = $Nt8.new", 21121 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 21122 let Inst{7-0} = 0b00000010; 21123 let Inst{12-11} = 0b01; 21124 let Inst{31-21} = 0b10101001101; 21125 let addrMode = PostInc; 21126 let accessSize = HalfWordAccess; 21127 let isNVStore = 1; 21128 let isNewValue = 1; 21129 let isRestrictNoSlot1Store = 1; 21130 let mayStore = 1; 21131 let Uses = [CS]; 21132 let BaseOpcode = "S2_storerh_pcr"; 21133 let opNewValue = 3; 21134 let Constraints = "$Rx32 = $Rx32in"; 21135 } 21136 def S2_storerhnew_pi : HInst< 21137 (outs IntRegs:$Rx32), 21138 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 21139 "memh($Rx32++#$Ii) = $Nt8.new", 21140 tc_e7d02c66, TypeST>, Enc_e26546, AddrModeRel { 21141 let Inst{2-0} = 0b000; 21142 let Inst{7-7} = 0b0; 21143 let Inst{13-11} = 0b001; 21144 let Inst{31-21} = 0b10101011101; 21145 let addrMode = PostInc; 21146 let accessSize = HalfWordAccess; 21147 let isNVStore = 1; 21148 let isNewValue = 1; 21149 let isRestrictNoSlot1Store = 1; 21150 let mayStore = 1; 21151 let BaseOpcode = "S2_storerh_pi"; 21152 let isNVStorable = 1; 21153 let isPredicable = 1; 21154 let opNewValue = 3; 21155 let Constraints = "$Rx32 = $Rx32in"; 21156 } 21157 def S2_storerhnew_pr : HInst< 21158 (outs IntRegs:$Rx32), 21159 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21160 "memh($Rx32++$Mu2) = $Nt8.new", 21161 tc_e7d02c66, TypeST>, Enc_8dbe85 { 21162 let Inst{7-0} = 0b00000000; 21163 let Inst{12-11} = 0b01; 21164 let Inst{31-21} = 0b10101101101; 21165 let addrMode = PostInc; 21166 let accessSize = HalfWordAccess; 21167 let isNVStore = 1; 21168 let isNewValue = 1; 21169 let isRestrictNoSlot1Store = 1; 21170 let mayStore = 1; 21171 let opNewValue = 3; 21172 let Constraints = "$Rx32 = $Rx32in"; 21173 } 21174 def S2_storerhnew_zomap : HInst< 21175 (outs), 21176 (ins IntRegs:$Rs32, IntRegs:$Nt8), 21177 "memh($Rs32) = $Nt8.new", 21178 tc_f7dd9c9f, TypeMAPPING> { 21179 let isPseudo = 1; 21180 let isCodeGenOnly = 1; 21181 let opNewValue = 1; 21182 } 21183 def S2_storerhnewgp : HInst< 21184 (outs), 21185 (ins u31_1Imm:$Ii, IntRegs:$Nt8), 21186 "memh(gp+#$Ii) = $Nt8.new", 21187 tc_ff9ee76e, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 21188 let Inst{12-11} = 0b01; 21189 let Inst{24-21} = 0b0101; 21190 let Inst{31-27} = 0b01001; 21191 let accessSize = HalfWordAccess; 21192 let isNVStore = 1; 21193 let isNewValue = 1; 21194 let isRestrictNoSlot1Store = 1; 21195 let mayStore = 1; 21196 let Uses = [GP]; 21197 let BaseOpcode = "S2_storerhabs"; 21198 let isPredicable = 1; 21199 let opExtendable = 0; 21200 let isExtentSigned = 0; 21201 let opExtentBits = 17; 21202 let opExtentAlign = 1; 21203 let opNewValue = 1; 21204 } 21205 def S2_storeri_io : HInst< 21206 (outs), 21207 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 21208 "memw($Rs32+#$Ii) = $Rt32", 21209 tc_05b6c987, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { 21210 let Inst{24-21} = 0b1100; 21211 let Inst{31-27} = 0b10100; 21212 let addrMode = BaseImmOffset; 21213 let accessSize = WordAccess; 21214 let mayStore = 1; 21215 let CextOpcode = "S2_storeri"; 21216 let InputType = "imm"; 21217 let BaseOpcode = "S2_storeri_io"; 21218 let isPredicable = 1; 21219 let isNVStorable = 1; 21220 let isExtendable = 1; 21221 let opExtendable = 1; 21222 let isExtentSigned = 1; 21223 let opExtentBits = 13; 21224 let opExtentAlign = 2; 21225 } 21226 def S2_storeri_pbr : HInst< 21227 (outs IntRegs:$Rx32), 21228 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21229 "memw($Rx32++$Mu2:brev) = $Rt32", 21230 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 21231 let Inst{7-0} = 0b00000000; 21232 let Inst{31-21} = 0b10101111100; 21233 let accessSize = WordAccess; 21234 let mayStore = 1; 21235 let BaseOpcode = "S2_storeri_pbr"; 21236 let isNVStorable = 1; 21237 let Constraints = "$Rx32 = $Rx32in"; 21238 } 21239 def S2_storeri_pci : HInst< 21240 (outs IntRegs:$Rx32), 21241 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21242 "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21243 tc_9fdb5406, TypeST>, Enc_79b8c8, AddrModeRel { 21244 let Inst{2-0} = 0b000; 21245 let Inst{7-7} = 0b0; 21246 let Inst{31-21} = 0b10101001100; 21247 let addrMode = PostInc; 21248 let accessSize = WordAccess; 21249 let mayStore = 1; 21250 let Uses = [CS]; 21251 let BaseOpcode = "S2_storeri_pci"; 21252 let isNVStorable = 1; 21253 let Constraints = "$Rx32 = $Rx32in"; 21254 } 21255 def S2_storeri_pcr : HInst< 21256 (outs IntRegs:$Rx32), 21257 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21258 "memw($Rx32++I:circ($Mu2)) = $Rt32", 21259 tc_f86c328a, TypeST>, Enc_d5c73f, AddrModeRel { 21260 let Inst{7-0} = 0b00000010; 21261 let Inst{31-21} = 0b10101001100; 21262 let addrMode = PostInc; 21263 let accessSize = WordAccess; 21264 let mayStore = 1; 21265 let Uses = [CS]; 21266 let BaseOpcode = "S2_storeri_pcr"; 21267 let isNVStorable = 1; 21268 let Constraints = "$Rx32 = $Rx32in"; 21269 } 21270 def S2_storeri_pi : HInst< 21271 (outs IntRegs:$Rx32), 21272 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 21273 "memw($Rx32++#$Ii) = $Rt32", 21274 tc_f86c328a, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { 21275 let Inst{2-0} = 0b000; 21276 let Inst{7-7} = 0b0; 21277 let Inst{13-13} = 0b0; 21278 let Inst{31-21} = 0b10101011100; 21279 let addrMode = PostInc; 21280 let accessSize = WordAccess; 21281 let mayStore = 1; 21282 let CextOpcode = "S2_storeri"; 21283 let BaseOpcode = "S2_storeri_pi"; 21284 let isPredicable = 1; 21285 let isNVStorable = 1; 21286 let Constraints = "$Rx32 = $Rx32in"; 21287 } 21288 def S2_storeri_pr : HInst< 21289 (outs IntRegs:$Rx32), 21290 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21291 "memw($Rx32++$Mu2) = $Rt32", 21292 tc_f86c328a, TypeST>, Enc_d5c73f { 21293 let Inst{7-0} = 0b00000000; 21294 let Inst{31-21} = 0b10101101100; 21295 let addrMode = PostInc; 21296 let accessSize = WordAccess; 21297 let mayStore = 1; 21298 let isNVStorable = 1; 21299 let Constraints = "$Rx32 = $Rx32in"; 21300 } 21301 def S2_storeri_zomap : HInst< 21302 (outs), 21303 (ins IntRegs:$Rs32, IntRegs:$Rt32), 21304 "memw($Rs32) = $Rt32", 21305 tc_05b6c987, TypeMAPPING> { 21306 let isPseudo = 1; 21307 let isCodeGenOnly = 1; 21308 } 21309 def S2_storerigp : HInst< 21310 (outs), 21311 (ins u30_2Imm:$Ii, IntRegs:$Rt32), 21312 "memw(gp+#$Ii) = $Rt32", 21313 tc_a788683e, TypeV2LDST>, Enc_541f26, AddrModeRel { 21314 let Inst{24-21} = 0b0100; 21315 let Inst{31-27} = 0b01001; 21316 let accessSize = WordAccess; 21317 let mayStore = 1; 21318 let Uses = [GP]; 21319 let BaseOpcode = "S2_storeriabs"; 21320 let isPredicable = 1; 21321 let isNVStorable = 1; 21322 let opExtendable = 0; 21323 let isExtentSigned = 0; 21324 let opExtentBits = 18; 21325 let opExtentAlign = 2; 21326 } 21327 def S2_storerinew_io : HInst< 21328 (outs), 21329 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8), 21330 "memw($Rs32+#$Ii) = $Nt8.new", 21331 tc_f7dd9c9f, TypeST>, Enc_690862, AddrModeRel { 21332 let Inst{12-11} = 0b10; 21333 let Inst{24-21} = 0b1101; 21334 let Inst{31-27} = 0b10100; 21335 let addrMode = BaseImmOffset; 21336 let accessSize = WordAccess; 21337 let isNVStore = 1; 21338 let isNewValue = 1; 21339 let isRestrictNoSlot1Store = 1; 21340 let mayStore = 1; 21341 let CextOpcode = "S2_storeri"; 21342 let InputType = "imm"; 21343 let BaseOpcode = "S2_storeri_io"; 21344 let isPredicable = 1; 21345 let isExtendable = 1; 21346 let opExtendable = 1; 21347 let isExtentSigned = 1; 21348 let opExtentBits = 13; 21349 let opExtentAlign = 2; 21350 let opNewValue = 2; 21351 } 21352 def S2_storerinew_pbr : HInst< 21353 (outs IntRegs:$Rx32), 21354 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21355 "memw($Rx32++$Mu2:brev) = $Nt8.new", 21356 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 21357 let Inst{7-0} = 0b00000000; 21358 let Inst{12-11} = 0b10; 21359 let Inst{31-21} = 0b10101111101; 21360 let accessSize = WordAccess; 21361 let isNVStore = 1; 21362 let isNewValue = 1; 21363 let isRestrictNoSlot1Store = 1; 21364 let mayStore = 1; 21365 let BaseOpcode = "S2_storeri_pbr"; 21366 let opNewValue = 3; 21367 let Constraints = "$Rx32 = $Rx32in"; 21368 } 21369 def S2_storerinew_pci : HInst< 21370 (outs IntRegs:$Rx32), 21371 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21372 "memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21373 tc_9d5941c7, TypeST>, Enc_3f97c8, AddrModeRel { 21374 let Inst{2-0} = 0b000; 21375 let Inst{7-7} = 0b0; 21376 let Inst{12-11} = 0b10; 21377 let Inst{31-21} = 0b10101001101; 21378 let addrMode = PostInc; 21379 let accessSize = WordAccess; 21380 let isNVStore = 1; 21381 let isNewValue = 1; 21382 let isRestrictNoSlot1Store = 1; 21383 let mayStore = 1; 21384 let Uses = [CS]; 21385 let BaseOpcode = "S2_storeri_pci"; 21386 let opNewValue = 4; 21387 let Constraints = "$Rx32 = $Rx32in"; 21388 } 21389 def S2_storerinew_pcr : HInst< 21390 (outs IntRegs:$Rx32), 21391 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21392 "memw($Rx32++I:circ($Mu2)) = $Nt8.new", 21393 tc_e7d02c66, TypeST>, Enc_8dbe85, AddrModeRel { 21394 let Inst{7-0} = 0b00000010; 21395 let Inst{12-11} = 0b10; 21396 let Inst{31-21} = 0b10101001101; 21397 let addrMode = PostInc; 21398 let accessSize = WordAccess; 21399 let isNVStore = 1; 21400 let isNewValue = 1; 21401 let isRestrictNoSlot1Store = 1; 21402 let mayStore = 1; 21403 let Uses = [CS]; 21404 let BaseOpcode = "S2_storeri_pcr"; 21405 let opNewValue = 3; 21406 let Constraints = "$Rx32 = $Rx32in"; 21407 } 21408 def S2_storerinew_pi : HInst< 21409 (outs IntRegs:$Rx32), 21410 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 21411 "memw($Rx32++#$Ii) = $Nt8.new", 21412 tc_e7d02c66, TypeST>, Enc_223005, AddrModeRel { 21413 let Inst{2-0} = 0b000; 21414 let Inst{7-7} = 0b0; 21415 let Inst{13-11} = 0b010; 21416 let Inst{31-21} = 0b10101011101; 21417 let addrMode = PostInc; 21418 let accessSize = WordAccess; 21419 let isNVStore = 1; 21420 let isNewValue = 1; 21421 let isRestrictNoSlot1Store = 1; 21422 let mayStore = 1; 21423 let BaseOpcode = "S2_storeri_pi"; 21424 let isPredicable = 1; 21425 let opNewValue = 3; 21426 let Constraints = "$Rx32 = $Rx32in"; 21427 } 21428 def S2_storerinew_pr : HInst< 21429 (outs IntRegs:$Rx32), 21430 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21431 "memw($Rx32++$Mu2) = $Nt8.new", 21432 tc_e7d02c66, TypeST>, Enc_8dbe85 { 21433 let Inst{7-0} = 0b00000000; 21434 let Inst{12-11} = 0b10; 21435 let Inst{31-21} = 0b10101101101; 21436 let addrMode = PostInc; 21437 let accessSize = WordAccess; 21438 let isNVStore = 1; 21439 let isNewValue = 1; 21440 let isRestrictNoSlot1Store = 1; 21441 let mayStore = 1; 21442 let opNewValue = 3; 21443 let Constraints = "$Rx32 = $Rx32in"; 21444 } 21445 def S2_storerinew_zomap : HInst< 21446 (outs), 21447 (ins IntRegs:$Rs32, IntRegs:$Nt8), 21448 "memw($Rs32) = $Nt8.new", 21449 tc_f7dd9c9f, TypeMAPPING> { 21450 let isPseudo = 1; 21451 let isCodeGenOnly = 1; 21452 let opNewValue = 1; 21453 } 21454 def S2_storerinewgp : HInst< 21455 (outs), 21456 (ins u30_2Imm:$Ii, IntRegs:$Nt8), 21457 "memw(gp+#$Ii) = $Nt8.new", 21458 tc_ff9ee76e, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 21459 let Inst{12-11} = 0b10; 21460 let Inst{24-21} = 0b0101; 21461 let Inst{31-27} = 0b01001; 21462 let accessSize = WordAccess; 21463 let isNVStore = 1; 21464 let isNewValue = 1; 21465 let isRestrictNoSlot1Store = 1; 21466 let mayStore = 1; 21467 let Uses = [GP]; 21468 let BaseOpcode = "S2_storeriabs"; 21469 let isPredicable = 1; 21470 let opExtendable = 0; 21471 let isExtentSigned = 0; 21472 let opExtentBits = 18; 21473 let opExtentAlign = 2; 21474 let opNewValue = 1; 21475 } 21476 def S2_storew_locked : HInst< 21477 (outs PredRegs:$Pd4), 21478 (ins IntRegs:$Rs32, IntRegs:$Rt32), 21479 "memw_locked($Rs32,$Pd4) = $Rt32", 21480 tc_1372bca1, TypeST>, Enc_c2b48e { 21481 let Inst{7-2} = 0b000000; 21482 let Inst{13-13} = 0b0; 21483 let Inst{31-21} = 0b10100000101; 21484 let accessSize = WordAccess; 21485 let isPredicateLate = 1; 21486 let isSoloAX = 1; 21487 let mayStore = 1; 21488 } 21489 def S2_svsathb : HInst< 21490 (outs IntRegs:$Rd32), 21491 (ins IntRegs:$Rs32), 21492 "$Rd32 = vsathb($Rs32)", 21493 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 21494 let Inst{13-5} = 0b000000000; 21495 let Inst{31-21} = 0b10001100100; 21496 let hasNewValue = 1; 21497 let opNewValue = 0; 21498 let Defs = [USR_OVF]; 21499 } 21500 def S2_svsathub : HInst< 21501 (outs IntRegs:$Rd32), 21502 (ins IntRegs:$Rs32), 21503 "$Rd32 = vsathub($Rs32)", 21504 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 21505 let Inst{13-5} = 0b000000010; 21506 let Inst{31-21} = 0b10001100100; 21507 let hasNewValue = 1; 21508 let opNewValue = 0; 21509 let Defs = [USR_OVF]; 21510 } 21511 def S2_tableidxb : HInst< 21512 (outs IntRegs:$Rx32), 21513 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21514 "$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw", 21515 tc_87735c3b, TypeS_2op>, Enc_cd82bc { 21516 let Inst{31-22} = 0b1000011100; 21517 let hasNewValue = 1; 21518 let opNewValue = 0; 21519 let prefersSlot3 = 1; 21520 let Constraints = "$Rx32 = $Rx32in"; 21521 } 21522 def S2_tableidxb_goodsyntax : HInst< 21523 (outs IntRegs:$Rx32), 21524 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21525 "$Rx32 = tableidxb($Rs32,#$Ii,#$II)", 21526 tc_87735c3b, TypeS_2op> { 21527 let hasNewValue = 1; 21528 let opNewValue = 0; 21529 let isPseudo = 1; 21530 let isCodeGenOnly = 1; 21531 let Constraints = "$Rx32 = $Rx32in"; 21532 } 21533 def S2_tableidxd : HInst< 21534 (outs IntRegs:$Rx32), 21535 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21536 "$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw", 21537 tc_87735c3b, TypeS_2op>, Enc_cd82bc { 21538 let Inst{31-22} = 0b1000011111; 21539 let hasNewValue = 1; 21540 let opNewValue = 0; 21541 let prefersSlot3 = 1; 21542 let Constraints = "$Rx32 = $Rx32in"; 21543 } 21544 def S2_tableidxd_goodsyntax : HInst< 21545 (outs IntRegs:$Rx32), 21546 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21547 "$Rx32 = tableidxd($Rs32,#$Ii,#$II)", 21548 tc_87735c3b, TypeS_2op> { 21549 let hasNewValue = 1; 21550 let opNewValue = 0; 21551 let isPseudo = 1; 21552 let Constraints = "$Rx32 = $Rx32in"; 21553 } 21554 def S2_tableidxh : HInst< 21555 (outs IntRegs:$Rx32), 21556 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21557 "$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw", 21558 tc_87735c3b, TypeS_2op>, Enc_cd82bc { 21559 let Inst{31-22} = 0b1000011101; 21560 let hasNewValue = 1; 21561 let opNewValue = 0; 21562 let prefersSlot3 = 1; 21563 let Constraints = "$Rx32 = $Rx32in"; 21564 } 21565 def S2_tableidxh_goodsyntax : HInst< 21566 (outs IntRegs:$Rx32), 21567 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21568 "$Rx32 = tableidxh($Rs32,#$Ii,#$II)", 21569 tc_87735c3b, TypeS_2op> { 21570 let hasNewValue = 1; 21571 let opNewValue = 0; 21572 let isPseudo = 1; 21573 let Constraints = "$Rx32 = $Rx32in"; 21574 } 21575 def S2_tableidxw : HInst< 21576 (outs IntRegs:$Rx32), 21577 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21578 "$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw", 21579 tc_87735c3b, TypeS_2op>, Enc_cd82bc { 21580 let Inst{31-22} = 0b1000011110; 21581 let hasNewValue = 1; 21582 let opNewValue = 0; 21583 let prefersSlot3 = 1; 21584 let Constraints = "$Rx32 = $Rx32in"; 21585 } 21586 def S2_tableidxw_goodsyntax : HInst< 21587 (outs IntRegs:$Rx32), 21588 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21589 "$Rx32 = tableidxw($Rs32,#$Ii,#$II)", 21590 tc_87735c3b, TypeS_2op> { 21591 let hasNewValue = 1; 21592 let opNewValue = 0; 21593 let isPseudo = 1; 21594 let Constraints = "$Rx32 = $Rx32in"; 21595 } 21596 def S2_togglebit_i : HInst< 21597 (outs IntRegs:$Rd32), 21598 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 21599 "$Rd32 = togglebit($Rs32,#$Ii)", 21600 tc_540fdfbc, TypeS_2op>, Enc_a05677 { 21601 let Inst{7-5} = 0b010; 21602 let Inst{13-13} = 0b0; 21603 let Inst{31-21} = 0b10001100110; 21604 let hasNewValue = 1; 21605 let opNewValue = 0; 21606 } 21607 def S2_togglebit_r : HInst< 21608 (outs IntRegs:$Rd32), 21609 (ins IntRegs:$Rs32, IntRegs:$Rt32), 21610 "$Rd32 = togglebit($Rs32,$Rt32)", 21611 tc_540fdfbc, TypeS_3op>, Enc_5ab2be { 21612 let Inst{7-5} = 0b100; 21613 let Inst{13-13} = 0b0; 21614 let Inst{31-21} = 0b11000110100; 21615 let hasNewValue = 1; 21616 let opNewValue = 0; 21617 } 21618 def S2_tstbit_i : HInst< 21619 (outs PredRegs:$Pd4), 21620 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 21621 "$Pd4 = tstbit($Rs32,#$Ii)", 21622 tc_7a830544, TypeS_2op>, Enc_83ee64 { 21623 let Inst{7-2} = 0b000000; 21624 let Inst{13-13} = 0b0; 21625 let Inst{31-21} = 0b10000101000; 21626 } 21627 def S2_tstbit_r : HInst< 21628 (outs PredRegs:$Pd4), 21629 (ins IntRegs:$Rs32, IntRegs:$Rt32), 21630 "$Pd4 = tstbit($Rs32,$Rt32)", 21631 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 21632 let Inst{7-2} = 0b000000; 21633 let Inst{13-13} = 0b0; 21634 let Inst{31-21} = 0b11000111000; 21635 } 21636 def S2_valignib : HInst< 21637 (outs DoubleRegs:$Rdd32), 21638 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii), 21639 "$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)", 21640 tc_f8eeed7a, TypeS_3op>, Enc_729ff7 { 21641 let Inst{13-13} = 0b0; 21642 let Inst{31-21} = 0b11000000000; 21643 } 21644 def S2_valignrb : HInst< 21645 (outs DoubleRegs:$Rdd32), 21646 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4), 21647 "$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)", 21648 tc_f8eeed7a, TypeS_3op>, Enc_8c6530 { 21649 let Inst{7-7} = 0b0; 21650 let Inst{13-13} = 0b0; 21651 let Inst{31-21} = 0b11000010000; 21652 } 21653 def S2_vcnegh : HInst< 21654 (outs DoubleRegs:$Rdd32), 21655 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 21656 "$Rdd32 = vcnegh($Rss32,$Rt32)", 21657 tc_b44c6e2a, TypeS_3op>, Enc_927852 { 21658 let Inst{7-5} = 0b010; 21659 let Inst{13-13} = 0b0; 21660 let Inst{31-21} = 0b11000011110; 21661 let prefersSlot3 = 1; 21662 let Defs = [USR_OVF]; 21663 } 21664 def S2_vcrotate : HInst< 21665 (outs DoubleRegs:$Rdd32), 21666 (ins DoubleRegs:$Rss32, IntRegs:$Rt32), 21667 "$Rdd32 = vcrotate($Rss32,$Rt32)", 21668 tc_2b6f77c6, TypeS_3op>, Enc_927852 { 21669 let Inst{7-5} = 0b000; 21670 let Inst{13-13} = 0b0; 21671 let Inst{31-21} = 0b11000011110; 21672 let prefersSlot3 = 1; 21673 let Defs = [USR_OVF]; 21674 } 21675 def S2_vrcnegh : HInst< 21676 (outs DoubleRegs:$Rxx32), 21677 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 21678 "$Rxx32 += vrcnegh($Rss32,$Rt32)", 21679 tc_e913dc32, TypeS_3op>, Enc_1aa186 { 21680 let Inst{7-5} = 0b111; 21681 let Inst{13-13} = 0b1; 21682 let Inst{31-21} = 0b11001011001; 21683 let prefersSlot3 = 1; 21684 let Constraints = "$Rxx32 = $Rxx32in"; 21685 } 21686 def S2_vrndpackwh : HInst< 21687 (outs IntRegs:$Rd32), 21688 (ins DoubleRegs:$Rss32), 21689 "$Rd32 = vrndwh($Rss32)", 21690 tc_d088982c, TypeS_2op>, Enc_90cd8b { 21691 let Inst{13-5} = 0b000000100; 21692 let Inst{31-21} = 0b10001000100; 21693 let hasNewValue = 1; 21694 let opNewValue = 0; 21695 let prefersSlot3 = 1; 21696 } 21697 def S2_vrndpackwhs : HInst< 21698 (outs IntRegs:$Rd32), 21699 (ins DoubleRegs:$Rss32), 21700 "$Rd32 = vrndwh($Rss32):sat", 21701 tc_c2f7d806, TypeS_2op>, Enc_90cd8b { 21702 let Inst{13-5} = 0b000000110; 21703 let Inst{31-21} = 0b10001000100; 21704 let hasNewValue = 1; 21705 let opNewValue = 0; 21706 let prefersSlot3 = 1; 21707 let Defs = [USR_OVF]; 21708 } 21709 def S2_vsathb : HInst< 21710 (outs IntRegs:$Rd32), 21711 (ins DoubleRegs:$Rss32), 21712 "$Rd32 = vsathb($Rss32)", 21713 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21714 let Inst{13-5} = 0b000000110; 21715 let Inst{31-21} = 0b10001000000; 21716 let hasNewValue = 1; 21717 let opNewValue = 0; 21718 let Defs = [USR_OVF]; 21719 } 21720 def S2_vsathb_nopack : HInst< 21721 (outs DoubleRegs:$Rdd32), 21722 (ins DoubleRegs:$Rss32), 21723 "$Rdd32 = vsathb($Rss32)", 21724 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 21725 let Inst{13-5} = 0b000000111; 21726 let Inst{31-21} = 0b10000000000; 21727 let Defs = [USR_OVF]; 21728 } 21729 def S2_vsathub : HInst< 21730 (outs IntRegs:$Rd32), 21731 (ins DoubleRegs:$Rss32), 21732 "$Rd32 = vsathub($Rss32)", 21733 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21734 let Inst{13-5} = 0b000000000; 21735 let Inst{31-21} = 0b10001000000; 21736 let hasNewValue = 1; 21737 let opNewValue = 0; 21738 let Defs = [USR_OVF]; 21739 } 21740 def S2_vsathub_nopack : HInst< 21741 (outs DoubleRegs:$Rdd32), 21742 (ins DoubleRegs:$Rss32), 21743 "$Rdd32 = vsathub($Rss32)", 21744 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 21745 let Inst{13-5} = 0b000000100; 21746 let Inst{31-21} = 0b10000000000; 21747 let Defs = [USR_OVF]; 21748 } 21749 def S2_vsatwh : HInst< 21750 (outs IntRegs:$Rd32), 21751 (ins DoubleRegs:$Rss32), 21752 "$Rd32 = vsatwh($Rss32)", 21753 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21754 let Inst{13-5} = 0b000000010; 21755 let Inst{31-21} = 0b10001000000; 21756 let hasNewValue = 1; 21757 let opNewValue = 0; 21758 let Defs = [USR_OVF]; 21759 } 21760 def S2_vsatwh_nopack : HInst< 21761 (outs DoubleRegs:$Rdd32), 21762 (ins DoubleRegs:$Rss32), 21763 "$Rdd32 = vsatwh($Rss32)", 21764 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 21765 let Inst{13-5} = 0b000000110; 21766 let Inst{31-21} = 0b10000000000; 21767 let Defs = [USR_OVF]; 21768 } 21769 def S2_vsatwuh : HInst< 21770 (outs IntRegs:$Rd32), 21771 (ins DoubleRegs:$Rss32), 21772 "$Rd32 = vsatwuh($Rss32)", 21773 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21774 let Inst{13-5} = 0b000000100; 21775 let Inst{31-21} = 0b10001000000; 21776 let hasNewValue = 1; 21777 let opNewValue = 0; 21778 let Defs = [USR_OVF]; 21779 } 21780 def S2_vsatwuh_nopack : HInst< 21781 (outs DoubleRegs:$Rdd32), 21782 (ins DoubleRegs:$Rss32), 21783 "$Rdd32 = vsatwuh($Rss32)", 21784 tc_cde8b071, TypeS_2op>, Enc_b9c5fb { 21785 let Inst{13-5} = 0b000000101; 21786 let Inst{31-21} = 0b10000000000; 21787 let Defs = [USR_OVF]; 21788 } 21789 def S2_vsplatrb : HInst< 21790 (outs IntRegs:$Rd32), 21791 (ins IntRegs:$Rs32), 21792 "$Rd32 = vsplatb($Rs32)", 21793 tc_cde8b071, TypeS_2op>, Enc_5e2823 { 21794 let Inst{13-5} = 0b000000111; 21795 let Inst{31-21} = 0b10001100010; 21796 let hasNewValue = 1; 21797 let opNewValue = 0; 21798 let isReMaterializable = 1; 21799 let isAsCheapAsAMove = 1; 21800 } 21801 def S2_vsplatrh : HInst< 21802 (outs DoubleRegs:$Rdd32), 21803 (ins IntRegs:$Rs32), 21804 "$Rdd32 = vsplath($Rs32)", 21805 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 21806 let Inst{13-5} = 0b000000010; 21807 let Inst{31-21} = 0b10000100010; 21808 let isReMaterializable = 1; 21809 let isAsCheapAsAMove = 1; 21810 } 21811 def S2_vspliceib : HInst< 21812 (outs DoubleRegs:$Rdd32), 21813 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii), 21814 "$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)", 21815 tc_f8eeed7a, TypeS_3op>, Enc_d50cd3 { 21816 let Inst{13-13} = 0b0; 21817 let Inst{31-21} = 0b11000000100; 21818 } 21819 def S2_vsplicerb : HInst< 21820 (outs DoubleRegs:$Rdd32), 21821 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4), 21822 "$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)", 21823 tc_f8eeed7a, TypeS_3op>, Enc_dbd70c { 21824 let Inst{7-7} = 0b0; 21825 let Inst{13-13} = 0b0; 21826 let Inst{31-21} = 0b11000010100; 21827 } 21828 def S2_vsxtbh : HInst< 21829 (outs DoubleRegs:$Rdd32), 21830 (ins IntRegs:$Rs32), 21831 "$Rdd32 = vsxtbh($Rs32)", 21832 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 21833 let Inst{13-5} = 0b000000000; 21834 let Inst{31-21} = 0b10000100000; 21835 let isReMaterializable = 1; 21836 let isAsCheapAsAMove = 1; 21837 } 21838 def S2_vsxthw : HInst< 21839 (outs DoubleRegs:$Rdd32), 21840 (ins IntRegs:$Rs32), 21841 "$Rdd32 = vsxthw($Rs32)", 21842 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 21843 let Inst{13-5} = 0b000000100; 21844 let Inst{31-21} = 0b10000100000; 21845 let isReMaterializable = 1; 21846 let isAsCheapAsAMove = 1; 21847 } 21848 def S2_vtrunehb : HInst< 21849 (outs IntRegs:$Rd32), 21850 (ins DoubleRegs:$Rss32), 21851 "$Rd32 = vtrunehb($Rss32)", 21852 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21853 let Inst{13-5} = 0b000000010; 21854 let Inst{31-21} = 0b10001000100; 21855 let hasNewValue = 1; 21856 let opNewValue = 0; 21857 } 21858 def S2_vtrunewh : HInst< 21859 (outs DoubleRegs:$Rdd32), 21860 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 21861 "$Rdd32 = vtrunewh($Rss32,$Rtt32)", 21862 tc_540fdfbc, TypeS_3op>, Enc_a56825 { 21863 let Inst{7-5} = 0b010; 21864 let Inst{13-13} = 0b0; 21865 let Inst{31-21} = 0b11000001100; 21866 } 21867 def S2_vtrunohb : HInst< 21868 (outs IntRegs:$Rd32), 21869 (ins DoubleRegs:$Rss32), 21870 "$Rd32 = vtrunohb($Rss32)", 21871 tc_cde8b071, TypeS_2op>, Enc_90cd8b { 21872 let Inst{13-5} = 0b000000000; 21873 let Inst{31-21} = 0b10001000100; 21874 let hasNewValue = 1; 21875 let opNewValue = 0; 21876 } 21877 def S2_vtrunowh : HInst< 21878 (outs DoubleRegs:$Rdd32), 21879 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 21880 "$Rdd32 = vtrunowh($Rss32,$Rtt32)", 21881 tc_540fdfbc, TypeS_3op>, Enc_a56825 { 21882 let Inst{7-5} = 0b100; 21883 let Inst{13-13} = 0b0; 21884 let Inst{31-21} = 0b11000001100; 21885 } 21886 def S2_vzxtbh : HInst< 21887 (outs DoubleRegs:$Rdd32), 21888 (ins IntRegs:$Rs32), 21889 "$Rdd32 = vzxtbh($Rs32)", 21890 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 21891 let Inst{13-5} = 0b000000010; 21892 let Inst{31-21} = 0b10000100000; 21893 let isReMaterializable = 1; 21894 let isAsCheapAsAMove = 1; 21895 } 21896 def S2_vzxthw : HInst< 21897 (outs DoubleRegs:$Rdd32), 21898 (ins IntRegs:$Rs32), 21899 "$Rdd32 = vzxthw($Rs32)", 21900 tc_cde8b071, TypeS_2op>, Enc_3a3d62 { 21901 let Inst{13-5} = 0b000000110; 21902 let Inst{31-21} = 0b10000100000; 21903 let isReMaterializable = 1; 21904 let isAsCheapAsAMove = 1; 21905 } 21906 def S4_addaddi : HInst< 21907 (outs IntRegs:$Rd32), 21908 (ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii), 21909 "$Rd32 = add($Rs32,add($Ru32,#$Ii))", 21910 tc_c74f796f, TypeALU64>, Enc_8b8d61 { 21911 let Inst{31-23} = 0b110110110; 21912 let hasNewValue = 1; 21913 let opNewValue = 0; 21914 let prefersSlot3 = 1; 21915 let isExtendable = 1; 21916 let opExtendable = 3; 21917 let isExtentSigned = 1; 21918 let opExtentBits = 6; 21919 let opExtentAlign = 0; 21920 } 21921 def S4_addi_asl_ri : HInst< 21922 (outs IntRegs:$Rx32), 21923 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 21924 "$Rx32 = add(#$Ii,asl($Rx32in,#$II))", 21925 tc_c74f796f, TypeALU64>, Enc_c31910 { 21926 let Inst{2-0} = 0b100; 21927 let Inst{4-4} = 0b0; 21928 let Inst{31-24} = 0b11011110; 21929 let hasNewValue = 1; 21930 let opNewValue = 0; 21931 let prefersSlot3 = 1; 21932 let isExtendable = 1; 21933 let opExtendable = 1; 21934 let isExtentSigned = 0; 21935 let opExtentBits = 8; 21936 let opExtentAlign = 0; 21937 let Constraints = "$Rx32 = $Rx32in"; 21938 } 21939 def S4_addi_lsr_ri : HInst< 21940 (outs IntRegs:$Rx32), 21941 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 21942 "$Rx32 = add(#$Ii,lsr($Rx32in,#$II))", 21943 tc_c74f796f, TypeALU64>, Enc_c31910 { 21944 let Inst{2-0} = 0b100; 21945 let Inst{4-4} = 0b1; 21946 let Inst{31-24} = 0b11011110; 21947 let hasNewValue = 1; 21948 let opNewValue = 0; 21949 let prefersSlot3 = 1; 21950 let isExtendable = 1; 21951 let opExtendable = 1; 21952 let isExtentSigned = 0; 21953 let opExtentBits = 8; 21954 let opExtentAlign = 0; 21955 let Constraints = "$Rx32 = $Rx32in"; 21956 } 21957 def S4_andi_asl_ri : HInst< 21958 (outs IntRegs:$Rx32), 21959 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 21960 "$Rx32 = and(#$Ii,asl($Rx32in,#$II))", 21961 tc_84df2cd3, TypeALU64>, Enc_c31910 { 21962 let Inst{2-0} = 0b000; 21963 let Inst{4-4} = 0b0; 21964 let Inst{31-24} = 0b11011110; 21965 let hasNewValue = 1; 21966 let opNewValue = 0; 21967 let prefersSlot3 = 1; 21968 let isExtendable = 1; 21969 let opExtendable = 1; 21970 let isExtentSigned = 0; 21971 let opExtentBits = 8; 21972 let opExtentAlign = 0; 21973 let Constraints = "$Rx32 = $Rx32in"; 21974 } 21975 def S4_andi_lsr_ri : HInst< 21976 (outs IntRegs:$Rx32), 21977 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 21978 "$Rx32 = and(#$Ii,lsr($Rx32in,#$II))", 21979 tc_84df2cd3, TypeALU64>, Enc_c31910 { 21980 let Inst{2-0} = 0b000; 21981 let Inst{4-4} = 0b1; 21982 let Inst{31-24} = 0b11011110; 21983 let hasNewValue = 1; 21984 let opNewValue = 0; 21985 let prefersSlot3 = 1; 21986 let isExtendable = 1; 21987 let opExtendable = 1; 21988 let isExtentSigned = 0; 21989 let opExtentBits = 8; 21990 let opExtentAlign = 0; 21991 let Constraints = "$Rx32 = $Rx32in"; 21992 } 21993 def S4_clbaddi : HInst< 21994 (outs IntRegs:$Rd32), 21995 (ins IntRegs:$Rs32, s6_0Imm:$Ii), 21996 "$Rd32 = add(clb($Rs32),#$Ii)", 21997 tc_2b6f77c6, TypeS_2op>, Enc_9fae8a { 21998 let Inst{7-5} = 0b000; 21999 let Inst{31-21} = 0b10001100001; 22000 let hasNewValue = 1; 22001 let opNewValue = 0; 22002 let prefersSlot3 = 1; 22003 } 22004 def S4_clbpaddi : HInst< 22005 (outs IntRegs:$Rd32), 22006 (ins DoubleRegs:$Rss32, s6_0Imm:$Ii), 22007 "$Rd32 = add(clb($Rss32),#$Ii)", 22008 tc_2b6f77c6, TypeS_2op>, Enc_a1640c { 22009 let Inst{7-5} = 0b010; 22010 let Inst{31-21} = 0b10001000011; 22011 let hasNewValue = 1; 22012 let opNewValue = 0; 22013 let prefersSlot3 = 1; 22014 } 22015 def S4_clbpnorm : HInst< 22016 (outs IntRegs:$Rd32), 22017 (ins DoubleRegs:$Rss32), 22018 "$Rd32 = normamt($Rss32)", 22019 tc_d088982c, TypeS_2op>, Enc_90cd8b { 22020 let Inst{13-5} = 0b000000000; 22021 let Inst{31-21} = 0b10001000011; 22022 let hasNewValue = 1; 22023 let opNewValue = 0; 22024 let prefersSlot3 = 1; 22025 } 22026 def S4_extract : HInst< 22027 (outs IntRegs:$Rd32), 22028 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 22029 "$Rd32 = extract($Rs32,#$Ii,#$II)", 22030 tc_c74f796f, TypeS_2op>, Enc_b388cf { 22031 let Inst{13-13} = 0b0; 22032 let Inst{31-23} = 0b100011011; 22033 let hasNewValue = 1; 22034 let opNewValue = 0; 22035 let prefersSlot3 = 1; 22036 } 22037 def S4_extract_rp : HInst< 22038 (outs IntRegs:$Rd32), 22039 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 22040 "$Rd32 = extract($Rs32,$Rtt32)", 22041 tc_2b6f77c6, TypeS_3op>, Enc_e07374 { 22042 let Inst{7-5} = 0b010; 22043 let Inst{13-13} = 0b0; 22044 let Inst{31-21} = 0b11001001000; 22045 let hasNewValue = 1; 22046 let opNewValue = 0; 22047 let prefersSlot3 = 1; 22048 } 22049 def S4_extractp : HInst< 22050 (outs DoubleRegs:$Rdd32), 22051 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 22052 "$Rdd32 = extract($Rss32,#$Ii,#$II)", 22053 tc_c74f796f, TypeS_2op>, Enc_b84c4c { 22054 let Inst{31-24} = 0b10001010; 22055 let prefersSlot3 = 1; 22056 } 22057 def S4_extractp_rp : HInst< 22058 (outs DoubleRegs:$Rdd32), 22059 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22060 "$Rdd32 = extract($Rss32,$Rtt32)", 22061 tc_2b6f77c6, TypeS_3op>, Enc_a56825 { 22062 let Inst{7-5} = 0b100; 22063 let Inst{13-13} = 0b0; 22064 let Inst{31-21} = 0b11000001110; 22065 let prefersSlot3 = 1; 22066 } 22067 def S4_lsli : HInst< 22068 (outs IntRegs:$Rd32), 22069 (ins s6_0Imm:$Ii, IntRegs:$Rt32), 22070 "$Rd32 = lsl(#$Ii,$Rt32)", 22071 tc_540fdfbc, TypeS_3op>, Enc_fef969 { 22072 let Inst{7-6} = 0b11; 22073 let Inst{13-13} = 0b0; 22074 let Inst{31-21} = 0b11000110100; 22075 let hasNewValue = 1; 22076 let opNewValue = 0; 22077 } 22078 def S4_ntstbit_i : HInst< 22079 (outs PredRegs:$Pd4), 22080 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 22081 "$Pd4 = !tstbit($Rs32,#$Ii)", 22082 tc_7a830544, TypeS_2op>, Enc_83ee64 { 22083 let Inst{7-2} = 0b000000; 22084 let Inst{13-13} = 0b0; 22085 let Inst{31-21} = 0b10000101001; 22086 } 22087 def S4_ntstbit_r : HInst< 22088 (outs PredRegs:$Pd4), 22089 (ins IntRegs:$Rs32, IntRegs:$Rt32), 22090 "$Pd4 = !tstbit($Rs32,$Rt32)", 22091 tc_1e856f58, TypeS_3op>, Enc_c2b48e { 22092 let Inst{7-2} = 0b000000; 22093 let Inst{13-13} = 0b0; 22094 let Inst{31-21} = 0b11000111001; 22095 } 22096 def S4_or_andi : HInst< 22097 (outs IntRegs:$Rx32), 22098 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22099 "$Rx32 |= and($Rs32,#$Ii)", 22100 tc_84df2cd3, TypeALU64>, Enc_b0e9d8 { 22101 let Inst{31-22} = 0b1101101000; 22102 let hasNewValue = 1; 22103 let opNewValue = 0; 22104 let prefersSlot3 = 1; 22105 let InputType = "imm"; 22106 let isExtendable = 1; 22107 let opExtendable = 3; 22108 let isExtentSigned = 1; 22109 let opExtentBits = 10; 22110 let opExtentAlign = 0; 22111 let Constraints = "$Rx32 = $Rx32in"; 22112 } 22113 def S4_or_andix : HInst< 22114 (outs IntRegs:$Rx32), 22115 (ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii), 22116 "$Rx32 = or($Ru32,and($Rx32in,#$Ii))", 22117 tc_84df2cd3, TypeALU64>, Enc_b4e6cf { 22118 let Inst{31-22} = 0b1101101001; 22119 let hasNewValue = 1; 22120 let opNewValue = 0; 22121 let prefersSlot3 = 1; 22122 let isExtendable = 1; 22123 let opExtendable = 3; 22124 let isExtentSigned = 1; 22125 let opExtentBits = 10; 22126 let opExtentAlign = 0; 22127 let Constraints = "$Rx32 = $Rx32in"; 22128 } 22129 def S4_or_ori : HInst< 22130 (outs IntRegs:$Rx32), 22131 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22132 "$Rx32 |= or($Rs32,#$Ii)", 22133 tc_84df2cd3, TypeALU64>, Enc_b0e9d8 { 22134 let Inst{31-22} = 0b1101101010; 22135 let hasNewValue = 1; 22136 let opNewValue = 0; 22137 let prefersSlot3 = 1; 22138 let InputType = "imm"; 22139 let isExtendable = 1; 22140 let opExtendable = 3; 22141 let isExtentSigned = 1; 22142 let opExtentBits = 10; 22143 let opExtentAlign = 0; 22144 let Constraints = "$Rx32 = $Rx32in"; 22145 } 22146 def S4_ori_asl_ri : HInst< 22147 (outs IntRegs:$Rx32), 22148 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22149 "$Rx32 = or(#$Ii,asl($Rx32in,#$II))", 22150 tc_84df2cd3, TypeALU64>, Enc_c31910 { 22151 let Inst{2-0} = 0b010; 22152 let Inst{4-4} = 0b0; 22153 let Inst{31-24} = 0b11011110; 22154 let hasNewValue = 1; 22155 let opNewValue = 0; 22156 let prefersSlot3 = 1; 22157 let isExtendable = 1; 22158 let opExtendable = 1; 22159 let isExtentSigned = 0; 22160 let opExtentBits = 8; 22161 let opExtentAlign = 0; 22162 let Constraints = "$Rx32 = $Rx32in"; 22163 } 22164 def S4_ori_lsr_ri : HInst< 22165 (outs IntRegs:$Rx32), 22166 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22167 "$Rx32 = or(#$Ii,lsr($Rx32in,#$II))", 22168 tc_84df2cd3, TypeALU64>, Enc_c31910 { 22169 let Inst{2-0} = 0b010; 22170 let Inst{4-4} = 0b1; 22171 let Inst{31-24} = 0b11011110; 22172 let hasNewValue = 1; 22173 let opNewValue = 0; 22174 let prefersSlot3 = 1; 22175 let isExtendable = 1; 22176 let opExtendable = 1; 22177 let isExtentSigned = 0; 22178 let opExtentBits = 8; 22179 let opExtentAlign = 0; 22180 let Constraints = "$Rx32 = $Rx32in"; 22181 } 22182 def S4_parity : HInst< 22183 (outs IntRegs:$Rd32), 22184 (ins IntRegs:$Rs32, IntRegs:$Rt32), 22185 "$Rd32 = parity($Rs32,$Rt32)", 22186 tc_2b6f77c6, TypeALU64>, Enc_5ab2be { 22187 let Inst{7-5} = 0b000; 22188 let Inst{13-13} = 0b0; 22189 let Inst{31-21} = 0b11010101111; 22190 let hasNewValue = 1; 22191 let opNewValue = 0; 22192 let prefersSlot3 = 1; 22193 } 22194 def S4_pstorerbf_abs : HInst< 22195 (outs), 22196 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22197 "if (!$Pv4) memb(#$Ii) = $Rt32", 22198 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 22199 let Inst{2-2} = 0b1; 22200 let Inst{7-7} = 0b1; 22201 let Inst{13-13} = 0b0; 22202 let Inst{31-18} = 0b10101111000000; 22203 let isPredicated = 1; 22204 let isPredicatedFalse = 1; 22205 let addrMode = Absolute; 22206 let accessSize = ByteAccess; 22207 let isExtended = 1; 22208 let mayStore = 1; 22209 let CextOpcode = "S2_storerb"; 22210 let BaseOpcode = "S2_storerbabs"; 22211 let isNVStorable = 1; 22212 let DecoderNamespace = "MustExtend"; 22213 let isExtendable = 1; 22214 let opExtendable = 1; 22215 let isExtentSigned = 0; 22216 let opExtentBits = 6; 22217 let opExtentAlign = 0; 22218 } 22219 def S4_pstorerbf_rr : HInst< 22220 (outs), 22221 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22222 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22223 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 22224 let Inst{31-21} = 0b00110101000; 22225 let isPredicated = 1; 22226 let isPredicatedFalse = 1; 22227 let addrMode = BaseRegOffset; 22228 let accessSize = ByteAccess; 22229 let mayStore = 1; 22230 let CextOpcode = "S2_storerb"; 22231 let InputType = "reg"; 22232 let BaseOpcode = "S4_storerb_rr"; 22233 let isNVStorable = 1; 22234 } 22235 def S4_pstorerbfnew_abs : HInst< 22236 (outs), 22237 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22238 "if (!$Pv4.new) memb(#$Ii) = $Rt32", 22239 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 22240 let Inst{2-2} = 0b1; 22241 let Inst{7-7} = 0b1; 22242 let Inst{13-13} = 0b1; 22243 let Inst{31-18} = 0b10101111000000; 22244 let isPredicated = 1; 22245 let isPredicatedFalse = 1; 22246 let addrMode = Absolute; 22247 let accessSize = ByteAccess; 22248 let isPredicatedNew = 1; 22249 let isExtended = 1; 22250 let mayStore = 1; 22251 let CextOpcode = "S2_storerb"; 22252 let BaseOpcode = "S2_storerbabs"; 22253 let isNVStorable = 1; 22254 let DecoderNamespace = "MustExtend"; 22255 let isExtendable = 1; 22256 let opExtendable = 1; 22257 let isExtentSigned = 0; 22258 let opExtentBits = 6; 22259 let opExtentAlign = 0; 22260 } 22261 def S4_pstorerbfnew_io : HInst< 22262 (outs), 22263 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 22264 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32", 22265 tc_f86c328a, TypeV2LDST>, Enc_da8d43, AddrModeRel { 22266 let Inst{2-2} = 0b0; 22267 let Inst{31-21} = 0b01000110000; 22268 let isPredicated = 1; 22269 let isPredicatedFalse = 1; 22270 let addrMode = BaseImmOffset; 22271 let accessSize = ByteAccess; 22272 let isPredicatedNew = 1; 22273 let mayStore = 1; 22274 let CextOpcode = "S2_storerb"; 22275 let InputType = "imm"; 22276 let BaseOpcode = "S2_storerb_io"; 22277 let isNVStorable = 1; 22278 let isExtendable = 1; 22279 let opExtendable = 2; 22280 let isExtentSigned = 0; 22281 let opExtentBits = 6; 22282 let opExtentAlign = 0; 22283 } 22284 def S4_pstorerbfnew_rr : HInst< 22285 (outs), 22286 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22287 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22288 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 22289 let Inst{31-21} = 0b00110111000; 22290 let isPredicated = 1; 22291 let isPredicatedFalse = 1; 22292 let addrMode = BaseRegOffset; 22293 let accessSize = ByteAccess; 22294 let isPredicatedNew = 1; 22295 let mayStore = 1; 22296 let CextOpcode = "S2_storerb"; 22297 let InputType = "reg"; 22298 let BaseOpcode = "S4_storerb_rr"; 22299 let isNVStorable = 1; 22300 } 22301 def S4_pstorerbfnew_zomap : HInst< 22302 (outs), 22303 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 22304 "if (!$Pv4.new) memb($Rs32) = $Rt32", 22305 tc_f86c328a, TypeMAPPING> { 22306 let isPseudo = 1; 22307 let isCodeGenOnly = 1; 22308 } 22309 def S4_pstorerbnewf_abs : HInst< 22310 (outs), 22311 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22312 "if (!$Pv4) memb(#$Ii) = $Nt8.new", 22313 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 22314 let Inst{2-2} = 0b1; 22315 let Inst{7-7} = 0b1; 22316 let Inst{13-11} = 0b000; 22317 let Inst{31-18} = 0b10101111101000; 22318 let isPredicated = 1; 22319 let isPredicatedFalse = 1; 22320 let addrMode = Absolute; 22321 let accessSize = ByteAccess; 22322 let isNVStore = 1; 22323 let isNewValue = 1; 22324 let isExtended = 1; 22325 let isRestrictNoSlot1Store = 1; 22326 let mayStore = 1; 22327 let CextOpcode = "S2_storerb"; 22328 let BaseOpcode = "S2_storerbabs"; 22329 let DecoderNamespace = "MustExtend"; 22330 let isExtendable = 1; 22331 let opExtendable = 1; 22332 let isExtentSigned = 0; 22333 let opExtentBits = 6; 22334 let opExtentAlign = 0; 22335 let opNewValue = 2; 22336 } 22337 def S4_pstorerbnewf_rr : HInst< 22338 (outs), 22339 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22340 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22341 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 22342 let Inst{4-3} = 0b00; 22343 let Inst{31-21} = 0b00110101101; 22344 let isPredicated = 1; 22345 let isPredicatedFalse = 1; 22346 let addrMode = BaseRegOffset; 22347 let accessSize = ByteAccess; 22348 let isNVStore = 1; 22349 let isNewValue = 1; 22350 let isRestrictNoSlot1Store = 1; 22351 let mayStore = 1; 22352 let CextOpcode = "S2_storerb"; 22353 let InputType = "reg"; 22354 let BaseOpcode = "S4_storerb_rr"; 22355 let opNewValue = 4; 22356 } 22357 def S4_pstorerbnewfnew_abs : HInst< 22358 (outs), 22359 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22360 "if (!$Pv4.new) memb(#$Ii) = $Nt8.new", 22361 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 22362 let Inst{2-2} = 0b1; 22363 let Inst{7-7} = 0b1; 22364 let Inst{13-11} = 0b100; 22365 let Inst{31-18} = 0b10101111101000; 22366 let isPredicated = 1; 22367 let isPredicatedFalse = 1; 22368 let addrMode = Absolute; 22369 let accessSize = ByteAccess; 22370 let isNVStore = 1; 22371 let isPredicatedNew = 1; 22372 let isNewValue = 1; 22373 let isExtended = 1; 22374 let isRestrictNoSlot1Store = 1; 22375 let mayStore = 1; 22376 let CextOpcode = "S2_storerb"; 22377 let BaseOpcode = "S2_storerbabs"; 22378 let DecoderNamespace = "MustExtend"; 22379 let isExtendable = 1; 22380 let opExtendable = 1; 22381 let isExtentSigned = 0; 22382 let opExtentBits = 6; 22383 let opExtentAlign = 0; 22384 let opNewValue = 2; 22385 } 22386 def S4_pstorerbnewfnew_io : HInst< 22387 (outs), 22388 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22389 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22390 tc_e7d02c66, TypeV2LDST>, Enc_585242, AddrModeRel { 22391 let Inst{2-2} = 0b0; 22392 let Inst{12-11} = 0b00; 22393 let Inst{31-21} = 0b01000110101; 22394 let isPredicated = 1; 22395 let isPredicatedFalse = 1; 22396 let addrMode = BaseImmOffset; 22397 let accessSize = ByteAccess; 22398 let isNVStore = 1; 22399 let isPredicatedNew = 1; 22400 let isNewValue = 1; 22401 let isRestrictNoSlot1Store = 1; 22402 let mayStore = 1; 22403 let CextOpcode = "S2_storerb"; 22404 let InputType = "imm"; 22405 let BaseOpcode = "S2_storerb_io"; 22406 let isExtendable = 1; 22407 let opExtendable = 2; 22408 let isExtentSigned = 0; 22409 let opExtentBits = 6; 22410 let opExtentAlign = 0; 22411 let opNewValue = 3; 22412 } 22413 def S4_pstorerbnewfnew_rr : HInst< 22414 (outs), 22415 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22416 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22417 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 22418 let Inst{4-3} = 0b00; 22419 let Inst{31-21} = 0b00110111101; 22420 let isPredicated = 1; 22421 let isPredicatedFalse = 1; 22422 let addrMode = BaseRegOffset; 22423 let accessSize = ByteAccess; 22424 let isNVStore = 1; 22425 let isPredicatedNew = 1; 22426 let isNewValue = 1; 22427 let isRestrictNoSlot1Store = 1; 22428 let mayStore = 1; 22429 let CextOpcode = "S2_storerb"; 22430 let InputType = "reg"; 22431 let BaseOpcode = "S4_storerb_rr"; 22432 let opNewValue = 4; 22433 } 22434 def S4_pstorerbnewfnew_zomap : HInst< 22435 (outs), 22436 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22437 "if (!$Pv4.new) memb($Rs32) = $Nt8.new", 22438 tc_e7d02c66, TypeMAPPING> { 22439 let isPseudo = 1; 22440 let isCodeGenOnly = 1; 22441 let opNewValue = 2; 22442 } 22443 def S4_pstorerbnewt_abs : HInst< 22444 (outs), 22445 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22446 "if ($Pv4) memb(#$Ii) = $Nt8.new", 22447 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 22448 let Inst{2-2} = 0b0; 22449 let Inst{7-7} = 0b1; 22450 let Inst{13-11} = 0b000; 22451 let Inst{31-18} = 0b10101111101000; 22452 let isPredicated = 1; 22453 let addrMode = Absolute; 22454 let accessSize = ByteAccess; 22455 let isNVStore = 1; 22456 let isNewValue = 1; 22457 let isExtended = 1; 22458 let isRestrictNoSlot1Store = 1; 22459 let mayStore = 1; 22460 let CextOpcode = "S2_storerb"; 22461 let BaseOpcode = "S2_storerbabs"; 22462 let DecoderNamespace = "MustExtend"; 22463 let isExtendable = 1; 22464 let opExtendable = 1; 22465 let isExtentSigned = 0; 22466 let opExtentBits = 6; 22467 let opExtentAlign = 0; 22468 let opNewValue = 2; 22469 } 22470 def S4_pstorerbnewt_rr : HInst< 22471 (outs), 22472 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22473 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22474 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 22475 let Inst{4-3} = 0b00; 22476 let Inst{31-21} = 0b00110100101; 22477 let isPredicated = 1; 22478 let addrMode = BaseRegOffset; 22479 let accessSize = ByteAccess; 22480 let isNVStore = 1; 22481 let isNewValue = 1; 22482 let isRestrictNoSlot1Store = 1; 22483 let mayStore = 1; 22484 let CextOpcode = "S2_storerb"; 22485 let InputType = "reg"; 22486 let BaseOpcode = "S4_storerb_rr"; 22487 let opNewValue = 4; 22488 } 22489 def S4_pstorerbnewtnew_abs : HInst< 22490 (outs), 22491 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22492 "if ($Pv4.new) memb(#$Ii) = $Nt8.new", 22493 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 22494 let Inst{2-2} = 0b0; 22495 let Inst{7-7} = 0b1; 22496 let Inst{13-11} = 0b100; 22497 let Inst{31-18} = 0b10101111101000; 22498 let isPredicated = 1; 22499 let addrMode = Absolute; 22500 let accessSize = ByteAccess; 22501 let isNVStore = 1; 22502 let isPredicatedNew = 1; 22503 let isNewValue = 1; 22504 let isExtended = 1; 22505 let isRestrictNoSlot1Store = 1; 22506 let mayStore = 1; 22507 let CextOpcode = "S2_storerb"; 22508 let BaseOpcode = "S2_storerbabs"; 22509 let DecoderNamespace = "MustExtend"; 22510 let isExtendable = 1; 22511 let opExtendable = 1; 22512 let isExtentSigned = 0; 22513 let opExtentBits = 6; 22514 let opExtentAlign = 0; 22515 let opNewValue = 2; 22516 } 22517 def S4_pstorerbnewtnew_io : HInst< 22518 (outs), 22519 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22520 "if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22521 tc_e7d02c66, TypeV2LDST>, Enc_585242, AddrModeRel { 22522 let Inst{2-2} = 0b0; 22523 let Inst{12-11} = 0b00; 22524 let Inst{31-21} = 0b01000010101; 22525 let isPredicated = 1; 22526 let addrMode = BaseImmOffset; 22527 let accessSize = ByteAccess; 22528 let isNVStore = 1; 22529 let isPredicatedNew = 1; 22530 let isNewValue = 1; 22531 let isRestrictNoSlot1Store = 1; 22532 let mayStore = 1; 22533 let CextOpcode = "S2_storerb"; 22534 let InputType = "imm"; 22535 let BaseOpcode = "S2_storerb_io"; 22536 let isExtendable = 1; 22537 let opExtendable = 2; 22538 let isExtentSigned = 0; 22539 let opExtentBits = 6; 22540 let opExtentAlign = 0; 22541 let opNewValue = 3; 22542 } 22543 def S4_pstorerbnewtnew_rr : HInst< 22544 (outs), 22545 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22546 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22547 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 22548 let Inst{4-3} = 0b00; 22549 let Inst{31-21} = 0b00110110101; 22550 let isPredicated = 1; 22551 let addrMode = BaseRegOffset; 22552 let accessSize = ByteAccess; 22553 let isNVStore = 1; 22554 let isPredicatedNew = 1; 22555 let isNewValue = 1; 22556 let isRestrictNoSlot1Store = 1; 22557 let mayStore = 1; 22558 let CextOpcode = "S2_storerb"; 22559 let InputType = "reg"; 22560 let BaseOpcode = "S4_storerb_rr"; 22561 let opNewValue = 4; 22562 } 22563 def S4_pstorerbnewtnew_zomap : HInst< 22564 (outs), 22565 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22566 "if ($Pv4.new) memb($Rs32) = $Nt8.new", 22567 tc_e7d02c66, TypeMAPPING> { 22568 let isPseudo = 1; 22569 let isCodeGenOnly = 1; 22570 let opNewValue = 2; 22571 } 22572 def S4_pstorerbt_abs : HInst< 22573 (outs), 22574 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22575 "if ($Pv4) memb(#$Ii) = $Rt32", 22576 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 22577 let Inst{2-2} = 0b0; 22578 let Inst{7-7} = 0b1; 22579 let Inst{13-13} = 0b0; 22580 let Inst{31-18} = 0b10101111000000; 22581 let isPredicated = 1; 22582 let addrMode = Absolute; 22583 let accessSize = ByteAccess; 22584 let isExtended = 1; 22585 let mayStore = 1; 22586 let CextOpcode = "S2_storerb"; 22587 let BaseOpcode = "S2_storerbabs"; 22588 let isNVStorable = 1; 22589 let DecoderNamespace = "MustExtend"; 22590 let isExtendable = 1; 22591 let opExtendable = 1; 22592 let isExtentSigned = 0; 22593 let opExtentBits = 6; 22594 let opExtentAlign = 0; 22595 } 22596 def S4_pstorerbt_rr : HInst< 22597 (outs), 22598 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22599 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22600 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 22601 let Inst{31-21} = 0b00110100000; 22602 let isPredicated = 1; 22603 let addrMode = BaseRegOffset; 22604 let accessSize = ByteAccess; 22605 let mayStore = 1; 22606 let CextOpcode = "S2_storerb"; 22607 let InputType = "reg"; 22608 let BaseOpcode = "S4_storerb_rr"; 22609 let isNVStorable = 1; 22610 } 22611 def S4_pstorerbtnew_abs : HInst< 22612 (outs), 22613 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22614 "if ($Pv4.new) memb(#$Ii) = $Rt32", 22615 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 22616 let Inst{2-2} = 0b0; 22617 let Inst{7-7} = 0b1; 22618 let Inst{13-13} = 0b1; 22619 let Inst{31-18} = 0b10101111000000; 22620 let isPredicated = 1; 22621 let addrMode = Absolute; 22622 let accessSize = ByteAccess; 22623 let isPredicatedNew = 1; 22624 let isExtended = 1; 22625 let mayStore = 1; 22626 let CextOpcode = "S2_storerb"; 22627 let BaseOpcode = "S2_storerbabs"; 22628 let isNVStorable = 1; 22629 let DecoderNamespace = "MustExtend"; 22630 let isExtendable = 1; 22631 let opExtendable = 1; 22632 let isExtentSigned = 0; 22633 let opExtentBits = 6; 22634 let opExtentAlign = 0; 22635 } 22636 def S4_pstorerbtnew_io : HInst< 22637 (outs), 22638 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 22639 "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32", 22640 tc_f86c328a, TypeV2LDST>, Enc_da8d43, AddrModeRel { 22641 let Inst{2-2} = 0b0; 22642 let Inst{31-21} = 0b01000010000; 22643 let isPredicated = 1; 22644 let addrMode = BaseImmOffset; 22645 let accessSize = ByteAccess; 22646 let isPredicatedNew = 1; 22647 let mayStore = 1; 22648 let CextOpcode = "S2_storerb"; 22649 let InputType = "imm"; 22650 let BaseOpcode = "S2_storerb_io"; 22651 let isNVStorable = 1; 22652 let isExtendable = 1; 22653 let opExtendable = 2; 22654 let isExtentSigned = 0; 22655 let opExtentBits = 6; 22656 let opExtentAlign = 0; 22657 } 22658 def S4_pstorerbtnew_rr : HInst< 22659 (outs), 22660 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22661 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22662 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 22663 let Inst{31-21} = 0b00110110000; 22664 let isPredicated = 1; 22665 let addrMode = BaseRegOffset; 22666 let accessSize = ByteAccess; 22667 let isPredicatedNew = 1; 22668 let mayStore = 1; 22669 let CextOpcode = "S2_storerb"; 22670 let InputType = "reg"; 22671 let BaseOpcode = "S4_storerb_rr"; 22672 let isNVStorable = 1; 22673 } 22674 def S4_pstorerbtnew_zomap : HInst< 22675 (outs), 22676 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 22677 "if ($Pv4.new) memb($Rs32) = $Rt32", 22678 tc_f86c328a, TypeMAPPING> { 22679 let isPseudo = 1; 22680 let isCodeGenOnly = 1; 22681 } 22682 def S4_pstorerdf_abs : HInst< 22683 (outs), 22684 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 22685 "if (!$Pv4) memd(#$Ii) = $Rtt32", 22686 tc_238d91d2, TypeST>, Enc_50b5ac, AddrModeRel { 22687 let Inst{2-2} = 0b1; 22688 let Inst{7-7} = 0b1; 22689 let Inst{13-13} = 0b0; 22690 let Inst{31-18} = 0b10101111110000; 22691 let isPredicated = 1; 22692 let isPredicatedFalse = 1; 22693 let addrMode = Absolute; 22694 let accessSize = DoubleWordAccess; 22695 let isExtended = 1; 22696 let mayStore = 1; 22697 let CextOpcode = "S2_storerd"; 22698 let BaseOpcode = "S2_storerdabs"; 22699 let DecoderNamespace = "MustExtend"; 22700 let isExtendable = 1; 22701 let opExtendable = 1; 22702 let isExtentSigned = 0; 22703 let opExtentBits = 6; 22704 let opExtentAlign = 0; 22705 } 22706 def S4_pstorerdf_rr : HInst< 22707 (outs), 22708 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 22709 "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 22710 tc_5274e61a, TypeST>, Enc_1a9974, AddrModeRel { 22711 let Inst{31-21} = 0b00110101110; 22712 let isPredicated = 1; 22713 let isPredicatedFalse = 1; 22714 let addrMode = BaseRegOffset; 22715 let accessSize = DoubleWordAccess; 22716 let mayStore = 1; 22717 let CextOpcode = "S2_storerd"; 22718 let InputType = "reg"; 22719 let BaseOpcode = "S2_storerd_rr"; 22720 } 22721 def S4_pstorerdfnew_abs : HInst< 22722 (outs), 22723 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 22724 "if (!$Pv4.new) memd(#$Ii) = $Rtt32", 22725 tc_66888ded, TypeST>, Enc_50b5ac, AddrModeRel { 22726 let Inst{2-2} = 0b1; 22727 let Inst{7-7} = 0b1; 22728 let Inst{13-13} = 0b1; 22729 let Inst{31-18} = 0b10101111110000; 22730 let isPredicated = 1; 22731 let isPredicatedFalse = 1; 22732 let addrMode = Absolute; 22733 let accessSize = DoubleWordAccess; 22734 let isPredicatedNew = 1; 22735 let isExtended = 1; 22736 let mayStore = 1; 22737 let CextOpcode = "S2_storerd"; 22738 let BaseOpcode = "S2_storerdabs"; 22739 let DecoderNamespace = "MustExtend"; 22740 let isExtendable = 1; 22741 let opExtendable = 1; 22742 let isExtentSigned = 0; 22743 let opExtentBits = 6; 22744 let opExtentAlign = 0; 22745 } 22746 def S4_pstorerdfnew_io : HInst< 22747 (outs), 22748 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 22749 "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 22750 tc_f86c328a, TypeV2LDST>, Enc_57a33e, AddrModeRel { 22751 let Inst{2-2} = 0b0; 22752 let Inst{31-21} = 0b01000110110; 22753 let isPredicated = 1; 22754 let isPredicatedFalse = 1; 22755 let addrMode = BaseImmOffset; 22756 let accessSize = DoubleWordAccess; 22757 let isPredicatedNew = 1; 22758 let mayStore = 1; 22759 let CextOpcode = "S2_storerd"; 22760 let InputType = "imm"; 22761 let BaseOpcode = "S2_storerd_io"; 22762 let isExtendable = 1; 22763 let opExtendable = 2; 22764 let isExtentSigned = 0; 22765 let opExtentBits = 9; 22766 let opExtentAlign = 3; 22767 } 22768 def S4_pstorerdfnew_rr : HInst< 22769 (outs), 22770 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 22771 "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 22772 tc_3e07fb90, TypeST>, Enc_1a9974, AddrModeRel { 22773 let Inst{31-21} = 0b00110111110; 22774 let isPredicated = 1; 22775 let isPredicatedFalse = 1; 22776 let addrMode = BaseRegOffset; 22777 let accessSize = DoubleWordAccess; 22778 let isPredicatedNew = 1; 22779 let mayStore = 1; 22780 let CextOpcode = "S2_storerd"; 22781 let InputType = "reg"; 22782 let BaseOpcode = "S2_storerd_rr"; 22783 } 22784 def S4_pstorerdfnew_zomap : HInst< 22785 (outs), 22786 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 22787 "if (!$Pv4.new) memd($Rs32) = $Rtt32", 22788 tc_f86c328a, TypeMAPPING> { 22789 let isPseudo = 1; 22790 let isCodeGenOnly = 1; 22791 } 22792 def S4_pstorerdt_abs : HInst< 22793 (outs), 22794 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 22795 "if ($Pv4) memd(#$Ii) = $Rtt32", 22796 tc_238d91d2, TypeST>, Enc_50b5ac, AddrModeRel { 22797 let Inst{2-2} = 0b0; 22798 let Inst{7-7} = 0b1; 22799 let Inst{13-13} = 0b0; 22800 let Inst{31-18} = 0b10101111110000; 22801 let isPredicated = 1; 22802 let addrMode = Absolute; 22803 let accessSize = DoubleWordAccess; 22804 let isExtended = 1; 22805 let mayStore = 1; 22806 let CextOpcode = "S2_storerd"; 22807 let BaseOpcode = "S2_storerdabs"; 22808 let DecoderNamespace = "MustExtend"; 22809 let isExtendable = 1; 22810 let opExtendable = 1; 22811 let isExtentSigned = 0; 22812 let opExtentBits = 6; 22813 let opExtentAlign = 0; 22814 } 22815 def S4_pstorerdt_rr : HInst< 22816 (outs), 22817 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 22818 "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 22819 tc_5274e61a, TypeST>, Enc_1a9974, AddrModeRel { 22820 let Inst{31-21} = 0b00110100110; 22821 let isPredicated = 1; 22822 let addrMode = BaseRegOffset; 22823 let accessSize = DoubleWordAccess; 22824 let mayStore = 1; 22825 let CextOpcode = "S2_storerd"; 22826 let InputType = "reg"; 22827 let BaseOpcode = "S2_storerd_rr"; 22828 } 22829 def S4_pstorerdtnew_abs : HInst< 22830 (outs), 22831 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 22832 "if ($Pv4.new) memd(#$Ii) = $Rtt32", 22833 tc_66888ded, TypeST>, Enc_50b5ac, AddrModeRel { 22834 let Inst{2-2} = 0b0; 22835 let Inst{7-7} = 0b1; 22836 let Inst{13-13} = 0b1; 22837 let Inst{31-18} = 0b10101111110000; 22838 let isPredicated = 1; 22839 let addrMode = Absolute; 22840 let accessSize = DoubleWordAccess; 22841 let isPredicatedNew = 1; 22842 let isExtended = 1; 22843 let mayStore = 1; 22844 let CextOpcode = "S2_storerd"; 22845 let BaseOpcode = "S2_storerdabs"; 22846 let DecoderNamespace = "MustExtend"; 22847 let isExtendable = 1; 22848 let opExtendable = 1; 22849 let isExtentSigned = 0; 22850 let opExtentBits = 6; 22851 let opExtentAlign = 0; 22852 } 22853 def S4_pstorerdtnew_io : HInst< 22854 (outs), 22855 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 22856 "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 22857 tc_f86c328a, TypeV2LDST>, Enc_57a33e, AddrModeRel { 22858 let Inst{2-2} = 0b0; 22859 let Inst{31-21} = 0b01000010110; 22860 let isPredicated = 1; 22861 let addrMode = BaseImmOffset; 22862 let accessSize = DoubleWordAccess; 22863 let isPredicatedNew = 1; 22864 let mayStore = 1; 22865 let CextOpcode = "S2_storerd"; 22866 let InputType = "imm"; 22867 let BaseOpcode = "S2_storerd_io"; 22868 let isExtendable = 1; 22869 let opExtendable = 2; 22870 let isExtentSigned = 0; 22871 let opExtentBits = 9; 22872 let opExtentAlign = 3; 22873 } 22874 def S4_pstorerdtnew_rr : HInst< 22875 (outs), 22876 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 22877 "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 22878 tc_3e07fb90, TypeST>, Enc_1a9974, AddrModeRel { 22879 let Inst{31-21} = 0b00110110110; 22880 let isPredicated = 1; 22881 let addrMode = BaseRegOffset; 22882 let accessSize = DoubleWordAccess; 22883 let isPredicatedNew = 1; 22884 let mayStore = 1; 22885 let CextOpcode = "S2_storerd"; 22886 let InputType = "reg"; 22887 let BaseOpcode = "S2_storerd_rr"; 22888 } 22889 def S4_pstorerdtnew_zomap : HInst< 22890 (outs), 22891 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 22892 "if ($Pv4.new) memd($Rs32) = $Rtt32", 22893 tc_f86c328a, TypeMAPPING> { 22894 let isPseudo = 1; 22895 let isCodeGenOnly = 1; 22896 } 22897 def S4_pstorerff_abs : HInst< 22898 (outs), 22899 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22900 "if (!$Pv4) memh(#$Ii) = $Rt32.h", 22901 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 22902 let Inst{2-2} = 0b1; 22903 let Inst{7-7} = 0b1; 22904 let Inst{13-13} = 0b0; 22905 let Inst{31-18} = 0b10101111011000; 22906 let isPredicated = 1; 22907 let isPredicatedFalse = 1; 22908 let addrMode = Absolute; 22909 let accessSize = HalfWordAccess; 22910 let isExtended = 1; 22911 let mayStore = 1; 22912 let CextOpcode = "S2_storerf"; 22913 let BaseOpcode = "S2_storerfabs"; 22914 let DecoderNamespace = "MustExtend"; 22915 let isExtendable = 1; 22916 let opExtendable = 1; 22917 let isExtentSigned = 0; 22918 let opExtentBits = 6; 22919 let opExtentAlign = 0; 22920 } 22921 def S4_pstorerff_rr : HInst< 22922 (outs), 22923 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22924 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 22925 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 22926 let Inst{31-21} = 0b00110101011; 22927 let isPredicated = 1; 22928 let isPredicatedFalse = 1; 22929 let addrMode = BaseRegOffset; 22930 let accessSize = HalfWordAccess; 22931 let mayStore = 1; 22932 let CextOpcode = "S2_storerf"; 22933 let InputType = "reg"; 22934 let BaseOpcode = "S4_storerf_rr"; 22935 } 22936 def S4_pstorerffnew_abs : HInst< 22937 (outs), 22938 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22939 "if (!$Pv4.new) memh(#$Ii) = $Rt32.h", 22940 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 22941 let Inst{2-2} = 0b1; 22942 let Inst{7-7} = 0b1; 22943 let Inst{13-13} = 0b1; 22944 let Inst{31-18} = 0b10101111011000; 22945 let isPredicated = 1; 22946 let isPredicatedFalse = 1; 22947 let addrMode = Absolute; 22948 let accessSize = HalfWordAccess; 22949 let isPredicatedNew = 1; 22950 let isExtended = 1; 22951 let mayStore = 1; 22952 let CextOpcode = "S2_storerf"; 22953 let BaseOpcode = "S2_storerfabs"; 22954 let DecoderNamespace = "MustExtend"; 22955 let isExtendable = 1; 22956 let opExtendable = 1; 22957 let isExtentSigned = 0; 22958 let opExtentBits = 6; 22959 let opExtentAlign = 0; 22960 } 22961 def S4_pstorerffnew_io : HInst< 22962 (outs), 22963 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 22964 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 22965 tc_f86c328a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 22966 let Inst{2-2} = 0b0; 22967 let Inst{31-21} = 0b01000110011; 22968 let isPredicated = 1; 22969 let isPredicatedFalse = 1; 22970 let addrMode = BaseImmOffset; 22971 let accessSize = HalfWordAccess; 22972 let isPredicatedNew = 1; 22973 let mayStore = 1; 22974 let CextOpcode = "S2_storerf"; 22975 let InputType = "imm"; 22976 let BaseOpcode = "S2_storerf_io"; 22977 let isExtendable = 1; 22978 let opExtendable = 2; 22979 let isExtentSigned = 0; 22980 let opExtentBits = 7; 22981 let opExtentAlign = 1; 22982 } 22983 def S4_pstorerffnew_rr : HInst< 22984 (outs), 22985 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22986 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 22987 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 22988 let Inst{31-21} = 0b00110111011; 22989 let isPredicated = 1; 22990 let isPredicatedFalse = 1; 22991 let addrMode = BaseRegOffset; 22992 let accessSize = HalfWordAccess; 22993 let isPredicatedNew = 1; 22994 let mayStore = 1; 22995 let CextOpcode = "S2_storerf"; 22996 let InputType = "reg"; 22997 let BaseOpcode = "S4_storerf_rr"; 22998 } 22999 def S4_pstorerffnew_zomap : HInst< 23000 (outs), 23001 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23002 "if (!$Pv4.new) memh($Rs32) = $Rt32.h", 23003 tc_f86c328a, TypeMAPPING> { 23004 let isPseudo = 1; 23005 let isCodeGenOnly = 1; 23006 } 23007 def S4_pstorerft_abs : HInst< 23008 (outs), 23009 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23010 "if ($Pv4) memh(#$Ii) = $Rt32.h", 23011 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 23012 let Inst{2-2} = 0b0; 23013 let Inst{7-7} = 0b1; 23014 let Inst{13-13} = 0b0; 23015 let Inst{31-18} = 0b10101111011000; 23016 let isPredicated = 1; 23017 let addrMode = Absolute; 23018 let accessSize = HalfWordAccess; 23019 let isExtended = 1; 23020 let mayStore = 1; 23021 let CextOpcode = "S2_storerf"; 23022 let BaseOpcode = "S2_storerfabs"; 23023 let DecoderNamespace = "MustExtend"; 23024 let isExtendable = 1; 23025 let opExtendable = 1; 23026 let isExtentSigned = 0; 23027 let opExtentBits = 6; 23028 let opExtentAlign = 0; 23029 } 23030 def S4_pstorerft_rr : HInst< 23031 (outs), 23032 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23033 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23034 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 23035 let Inst{31-21} = 0b00110100011; 23036 let isPredicated = 1; 23037 let addrMode = BaseRegOffset; 23038 let accessSize = HalfWordAccess; 23039 let mayStore = 1; 23040 let CextOpcode = "S2_storerf"; 23041 let InputType = "reg"; 23042 let BaseOpcode = "S4_storerf_rr"; 23043 } 23044 def S4_pstorerftnew_abs : HInst< 23045 (outs), 23046 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23047 "if ($Pv4.new) memh(#$Ii) = $Rt32.h", 23048 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 23049 let Inst{2-2} = 0b0; 23050 let Inst{7-7} = 0b1; 23051 let Inst{13-13} = 0b1; 23052 let Inst{31-18} = 0b10101111011000; 23053 let isPredicated = 1; 23054 let addrMode = Absolute; 23055 let accessSize = HalfWordAccess; 23056 let isPredicatedNew = 1; 23057 let isExtended = 1; 23058 let mayStore = 1; 23059 let CextOpcode = "S2_storerf"; 23060 let BaseOpcode = "S2_storerfabs"; 23061 let DecoderNamespace = "MustExtend"; 23062 let isExtendable = 1; 23063 let opExtendable = 1; 23064 let isExtentSigned = 0; 23065 let opExtentBits = 6; 23066 let opExtentAlign = 0; 23067 } 23068 def S4_pstorerftnew_io : HInst< 23069 (outs), 23070 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23071 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23072 tc_f86c328a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23073 let Inst{2-2} = 0b0; 23074 let Inst{31-21} = 0b01000010011; 23075 let isPredicated = 1; 23076 let addrMode = BaseImmOffset; 23077 let accessSize = HalfWordAccess; 23078 let isPredicatedNew = 1; 23079 let mayStore = 1; 23080 let CextOpcode = "S2_storerf"; 23081 let InputType = "imm"; 23082 let BaseOpcode = "S2_storerf_io"; 23083 let isExtendable = 1; 23084 let opExtendable = 2; 23085 let isExtentSigned = 0; 23086 let opExtentBits = 7; 23087 let opExtentAlign = 1; 23088 } 23089 def S4_pstorerftnew_rr : HInst< 23090 (outs), 23091 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23092 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23093 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 23094 let Inst{31-21} = 0b00110110011; 23095 let isPredicated = 1; 23096 let addrMode = BaseRegOffset; 23097 let accessSize = HalfWordAccess; 23098 let isPredicatedNew = 1; 23099 let mayStore = 1; 23100 let CextOpcode = "S2_storerf"; 23101 let InputType = "reg"; 23102 let BaseOpcode = "S4_storerf_rr"; 23103 } 23104 def S4_pstorerftnew_zomap : HInst< 23105 (outs), 23106 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23107 "if ($Pv4.new) memh($Rs32) = $Rt32.h", 23108 tc_f86c328a, TypeMAPPING> { 23109 let isPseudo = 1; 23110 let isCodeGenOnly = 1; 23111 } 23112 def S4_pstorerhf_abs : HInst< 23113 (outs), 23114 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23115 "if (!$Pv4) memh(#$Ii) = $Rt32", 23116 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 23117 let Inst{2-2} = 0b1; 23118 let Inst{7-7} = 0b1; 23119 let Inst{13-13} = 0b0; 23120 let Inst{31-18} = 0b10101111010000; 23121 let isPredicated = 1; 23122 let isPredicatedFalse = 1; 23123 let addrMode = Absolute; 23124 let accessSize = HalfWordAccess; 23125 let isExtended = 1; 23126 let mayStore = 1; 23127 let CextOpcode = "S2_storerh"; 23128 let BaseOpcode = "S2_storerhabs"; 23129 let isNVStorable = 1; 23130 let DecoderNamespace = "MustExtend"; 23131 let isExtendable = 1; 23132 let opExtendable = 1; 23133 let isExtentSigned = 0; 23134 let opExtentBits = 6; 23135 let opExtentAlign = 0; 23136 } 23137 def S4_pstorerhf_rr : HInst< 23138 (outs), 23139 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23140 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23141 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 23142 let Inst{31-21} = 0b00110101010; 23143 let isPredicated = 1; 23144 let isPredicatedFalse = 1; 23145 let addrMode = BaseRegOffset; 23146 let accessSize = HalfWordAccess; 23147 let mayStore = 1; 23148 let CextOpcode = "S2_storerh"; 23149 let InputType = "reg"; 23150 let BaseOpcode = "S2_storerh_rr"; 23151 let isNVStorable = 1; 23152 } 23153 def S4_pstorerhfnew_abs : HInst< 23154 (outs), 23155 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23156 "if (!$Pv4.new) memh(#$Ii) = $Rt32", 23157 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 23158 let Inst{2-2} = 0b1; 23159 let Inst{7-7} = 0b1; 23160 let Inst{13-13} = 0b1; 23161 let Inst{31-18} = 0b10101111010000; 23162 let isPredicated = 1; 23163 let isPredicatedFalse = 1; 23164 let addrMode = Absolute; 23165 let accessSize = HalfWordAccess; 23166 let isPredicatedNew = 1; 23167 let isExtended = 1; 23168 let mayStore = 1; 23169 let CextOpcode = "S2_storerh"; 23170 let BaseOpcode = "S2_storerhabs"; 23171 let isNVStorable = 1; 23172 let DecoderNamespace = "MustExtend"; 23173 let isExtendable = 1; 23174 let opExtendable = 1; 23175 let isExtentSigned = 0; 23176 let opExtentBits = 6; 23177 let opExtentAlign = 0; 23178 } 23179 def S4_pstorerhfnew_io : HInst< 23180 (outs), 23181 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23182 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23183 tc_f86c328a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23184 let Inst{2-2} = 0b0; 23185 let Inst{31-21} = 0b01000110010; 23186 let isPredicated = 1; 23187 let isPredicatedFalse = 1; 23188 let addrMode = BaseImmOffset; 23189 let accessSize = HalfWordAccess; 23190 let isPredicatedNew = 1; 23191 let mayStore = 1; 23192 let CextOpcode = "S2_storerh"; 23193 let InputType = "imm"; 23194 let BaseOpcode = "S2_storerh_io"; 23195 let isNVStorable = 1; 23196 let isExtendable = 1; 23197 let opExtendable = 2; 23198 let isExtentSigned = 0; 23199 let opExtentBits = 7; 23200 let opExtentAlign = 1; 23201 } 23202 def S4_pstorerhfnew_rr : HInst< 23203 (outs), 23204 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23205 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23206 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 23207 let Inst{31-21} = 0b00110111010; 23208 let isPredicated = 1; 23209 let isPredicatedFalse = 1; 23210 let addrMode = BaseRegOffset; 23211 let accessSize = HalfWordAccess; 23212 let isPredicatedNew = 1; 23213 let mayStore = 1; 23214 let CextOpcode = "S2_storerh"; 23215 let InputType = "reg"; 23216 let BaseOpcode = "S2_storerh_rr"; 23217 let isNVStorable = 1; 23218 } 23219 def S4_pstorerhfnew_zomap : HInst< 23220 (outs), 23221 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23222 "if (!$Pv4.new) memh($Rs32) = $Rt32", 23223 tc_f86c328a, TypeMAPPING> { 23224 let isPseudo = 1; 23225 let isCodeGenOnly = 1; 23226 } 23227 def S4_pstorerhnewf_abs : HInst< 23228 (outs), 23229 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23230 "if (!$Pv4) memh(#$Ii) = $Nt8.new", 23231 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 23232 let Inst{2-2} = 0b1; 23233 let Inst{7-7} = 0b1; 23234 let Inst{13-11} = 0b001; 23235 let Inst{31-18} = 0b10101111101000; 23236 let isPredicated = 1; 23237 let isPredicatedFalse = 1; 23238 let addrMode = Absolute; 23239 let accessSize = HalfWordAccess; 23240 let isNVStore = 1; 23241 let isNewValue = 1; 23242 let isExtended = 1; 23243 let isRestrictNoSlot1Store = 1; 23244 let mayStore = 1; 23245 let CextOpcode = "S2_storerh"; 23246 let BaseOpcode = "S2_storerhabs"; 23247 let DecoderNamespace = "MustExtend"; 23248 let isExtendable = 1; 23249 let opExtendable = 1; 23250 let isExtentSigned = 0; 23251 let opExtentBits = 6; 23252 let opExtentAlign = 0; 23253 let opNewValue = 2; 23254 } 23255 def S4_pstorerhnewf_rr : HInst< 23256 (outs), 23257 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23258 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23259 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 23260 let Inst{4-3} = 0b01; 23261 let Inst{31-21} = 0b00110101101; 23262 let isPredicated = 1; 23263 let isPredicatedFalse = 1; 23264 let addrMode = BaseRegOffset; 23265 let accessSize = HalfWordAccess; 23266 let isNVStore = 1; 23267 let isNewValue = 1; 23268 let isRestrictNoSlot1Store = 1; 23269 let mayStore = 1; 23270 let CextOpcode = "S2_storerh"; 23271 let InputType = "reg"; 23272 let BaseOpcode = "S2_storerh_rr"; 23273 let opNewValue = 4; 23274 } 23275 def S4_pstorerhnewfnew_abs : HInst< 23276 (outs), 23277 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23278 "if (!$Pv4.new) memh(#$Ii) = $Nt8.new", 23279 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 23280 let Inst{2-2} = 0b1; 23281 let Inst{7-7} = 0b1; 23282 let Inst{13-11} = 0b101; 23283 let Inst{31-18} = 0b10101111101000; 23284 let isPredicated = 1; 23285 let isPredicatedFalse = 1; 23286 let addrMode = Absolute; 23287 let accessSize = HalfWordAccess; 23288 let isNVStore = 1; 23289 let isPredicatedNew = 1; 23290 let isNewValue = 1; 23291 let isExtended = 1; 23292 let isRestrictNoSlot1Store = 1; 23293 let mayStore = 1; 23294 let CextOpcode = "S2_storerh"; 23295 let BaseOpcode = "S2_storerhabs"; 23296 let DecoderNamespace = "MustExtend"; 23297 let isExtendable = 1; 23298 let opExtendable = 1; 23299 let isExtentSigned = 0; 23300 let opExtentBits = 6; 23301 let opExtentAlign = 0; 23302 let opNewValue = 2; 23303 } 23304 def S4_pstorerhnewfnew_io : HInst< 23305 (outs), 23306 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23307 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23308 tc_e7d02c66, TypeV2LDST>, Enc_f44229, AddrModeRel { 23309 let Inst{2-2} = 0b0; 23310 let Inst{12-11} = 0b01; 23311 let Inst{31-21} = 0b01000110101; 23312 let isPredicated = 1; 23313 let isPredicatedFalse = 1; 23314 let addrMode = BaseImmOffset; 23315 let accessSize = HalfWordAccess; 23316 let isNVStore = 1; 23317 let isPredicatedNew = 1; 23318 let isNewValue = 1; 23319 let isRestrictNoSlot1Store = 1; 23320 let mayStore = 1; 23321 let CextOpcode = "S2_storerh"; 23322 let InputType = "imm"; 23323 let BaseOpcode = "S2_storerh_io"; 23324 let isExtendable = 1; 23325 let opExtendable = 2; 23326 let isExtentSigned = 0; 23327 let opExtentBits = 7; 23328 let opExtentAlign = 1; 23329 let opNewValue = 3; 23330 } 23331 def S4_pstorerhnewfnew_rr : HInst< 23332 (outs), 23333 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23334 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23335 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 23336 let Inst{4-3} = 0b01; 23337 let Inst{31-21} = 0b00110111101; 23338 let isPredicated = 1; 23339 let isPredicatedFalse = 1; 23340 let addrMode = BaseRegOffset; 23341 let accessSize = HalfWordAccess; 23342 let isNVStore = 1; 23343 let isPredicatedNew = 1; 23344 let isNewValue = 1; 23345 let isRestrictNoSlot1Store = 1; 23346 let mayStore = 1; 23347 let CextOpcode = "S2_storerh"; 23348 let InputType = "reg"; 23349 let BaseOpcode = "S2_storerh_rr"; 23350 let opNewValue = 4; 23351 } 23352 def S4_pstorerhnewfnew_zomap : HInst< 23353 (outs), 23354 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23355 "if (!$Pv4.new) memh($Rs32) = $Nt8.new", 23356 tc_e7d02c66, TypeMAPPING> { 23357 let isPseudo = 1; 23358 let isCodeGenOnly = 1; 23359 let opNewValue = 2; 23360 } 23361 def S4_pstorerhnewt_abs : HInst< 23362 (outs), 23363 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23364 "if ($Pv4) memh(#$Ii) = $Nt8.new", 23365 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 23366 let Inst{2-2} = 0b0; 23367 let Inst{7-7} = 0b1; 23368 let Inst{13-11} = 0b001; 23369 let Inst{31-18} = 0b10101111101000; 23370 let isPredicated = 1; 23371 let addrMode = Absolute; 23372 let accessSize = HalfWordAccess; 23373 let isNVStore = 1; 23374 let isNewValue = 1; 23375 let isExtended = 1; 23376 let isRestrictNoSlot1Store = 1; 23377 let mayStore = 1; 23378 let CextOpcode = "S2_storerh"; 23379 let BaseOpcode = "S2_storerhabs"; 23380 let DecoderNamespace = "MustExtend"; 23381 let isExtendable = 1; 23382 let opExtendable = 1; 23383 let isExtentSigned = 0; 23384 let opExtentBits = 6; 23385 let opExtentAlign = 0; 23386 let opNewValue = 2; 23387 } 23388 def S4_pstorerhnewt_rr : HInst< 23389 (outs), 23390 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23391 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23392 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 23393 let Inst{4-3} = 0b01; 23394 let Inst{31-21} = 0b00110100101; 23395 let isPredicated = 1; 23396 let addrMode = BaseRegOffset; 23397 let accessSize = HalfWordAccess; 23398 let isNVStore = 1; 23399 let isNewValue = 1; 23400 let isRestrictNoSlot1Store = 1; 23401 let mayStore = 1; 23402 let CextOpcode = "S2_storerh"; 23403 let InputType = "reg"; 23404 let BaseOpcode = "S2_storerh_rr"; 23405 let opNewValue = 4; 23406 } 23407 def S4_pstorerhnewtnew_abs : HInst< 23408 (outs), 23409 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23410 "if ($Pv4.new) memh(#$Ii) = $Nt8.new", 23411 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 23412 let Inst{2-2} = 0b0; 23413 let Inst{7-7} = 0b1; 23414 let Inst{13-11} = 0b101; 23415 let Inst{31-18} = 0b10101111101000; 23416 let isPredicated = 1; 23417 let addrMode = Absolute; 23418 let accessSize = HalfWordAccess; 23419 let isNVStore = 1; 23420 let isPredicatedNew = 1; 23421 let isNewValue = 1; 23422 let isExtended = 1; 23423 let isRestrictNoSlot1Store = 1; 23424 let mayStore = 1; 23425 let CextOpcode = "S2_storerh"; 23426 let BaseOpcode = "S2_storerhabs"; 23427 let DecoderNamespace = "MustExtend"; 23428 let isExtendable = 1; 23429 let opExtendable = 1; 23430 let isExtentSigned = 0; 23431 let opExtentBits = 6; 23432 let opExtentAlign = 0; 23433 let opNewValue = 2; 23434 } 23435 def S4_pstorerhnewtnew_io : HInst< 23436 (outs), 23437 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23438 "if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23439 tc_e7d02c66, TypeV2LDST>, Enc_f44229, AddrModeRel { 23440 let Inst{2-2} = 0b0; 23441 let Inst{12-11} = 0b01; 23442 let Inst{31-21} = 0b01000010101; 23443 let isPredicated = 1; 23444 let addrMode = BaseImmOffset; 23445 let accessSize = HalfWordAccess; 23446 let isNVStore = 1; 23447 let isPredicatedNew = 1; 23448 let isNewValue = 1; 23449 let isRestrictNoSlot1Store = 1; 23450 let mayStore = 1; 23451 let CextOpcode = "S2_storerh"; 23452 let InputType = "imm"; 23453 let BaseOpcode = "S2_storerh_io"; 23454 let isExtendable = 1; 23455 let opExtendable = 2; 23456 let isExtentSigned = 0; 23457 let opExtentBits = 7; 23458 let opExtentAlign = 1; 23459 let opNewValue = 3; 23460 } 23461 def S4_pstorerhnewtnew_rr : HInst< 23462 (outs), 23463 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23464 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23465 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 23466 let Inst{4-3} = 0b01; 23467 let Inst{31-21} = 0b00110110101; 23468 let isPredicated = 1; 23469 let addrMode = BaseRegOffset; 23470 let accessSize = HalfWordAccess; 23471 let isNVStore = 1; 23472 let isPredicatedNew = 1; 23473 let isNewValue = 1; 23474 let isRestrictNoSlot1Store = 1; 23475 let mayStore = 1; 23476 let CextOpcode = "S2_storerh"; 23477 let InputType = "reg"; 23478 let BaseOpcode = "S2_storerh_rr"; 23479 let opNewValue = 4; 23480 } 23481 def S4_pstorerhnewtnew_zomap : HInst< 23482 (outs), 23483 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23484 "if ($Pv4.new) memh($Rs32) = $Nt8.new", 23485 tc_e7d02c66, TypeMAPPING> { 23486 let isPseudo = 1; 23487 let isCodeGenOnly = 1; 23488 let opNewValue = 2; 23489 } 23490 def S4_pstorerht_abs : HInst< 23491 (outs), 23492 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23493 "if ($Pv4) memh(#$Ii) = $Rt32", 23494 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 23495 let Inst{2-2} = 0b0; 23496 let Inst{7-7} = 0b1; 23497 let Inst{13-13} = 0b0; 23498 let Inst{31-18} = 0b10101111010000; 23499 let isPredicated = 1; 23500 let addrMode = Absolute; 23501 let accessSize = HalfWordAccess; 23502 let isExtended = 1; 23503 let mayStore = 1; 23504 let CextOpcode = "S2_storerh"; 23505 let BaseOpcode = "S2_storerhabs"; 23506 let isNVStorable = 1; 23507 let DecoderNamespace = "MustExtend"; 23508 let isExtendable = 1; 23509 let opExtendable = 1; 23510 let isExtentSigned = 0; 23511 let opExtentBits = 6; 23512 let opExtentAlign = 0; 23513 } 23514 def S4_pstorerht_rr : HInst< 23515 (outs), 23516 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23517 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23518 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 23519 let Inst{31-21} = 0b00110100010; 23520 let isPredicated = 1; 23521 let addrMode = BaseRegOffset; 23522 let accessSize = HalfWordAccess; 23523 let mayStore = 1; 23524 let CextOpcode = "S2_storerh"; 23525 let InputType = "reg"; 23526 let BaseOpcode = "S2_storerh_rr"; 23527 let isNVStorable = 1; 23528 } 23529 def S4_pstorerhtnew_abs : HInst< 23530 (outs), 23531 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23532 "if ($Pv4.new) memh(#$Ii) = $Rt32", 23533 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 23534 let Inst{2-2} = 0b0; 23535 let Inst{7-7} = 0b1; 23536 let Inst{13-13} = 0b1; 23537 let Inst{31-18} = 0b10101111010000; 23538 let isPredicated = 1; 23539 let addrMode = Absolute; 23540 let accessSize = HalfWordAccess; 23541 let isPredicatedNew = 1; 23542 let isExtended = 1; 23543 let mayStore = 1; 23544 let CextOpcode = "S2_storerh"; 23545 let BaseOpcode = "S2_storerhabs"; 23546 let isNVStorable = 1; 23547 let DecoderNamespace = "MustExtend"; 23548 let isExtendable = 1; 23549 let opExtendable = 1; 23550 let isExtentSigned = 0; 23551 let opExtentBits = 6; 23552 let opExtentAlign = 0; 23553 } 23554 def S4_pstorerhtnew_io : HInst< 23555 (outs), 23556 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23557 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23558 tc_f86c328a, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23559 let Inst{2-2} = 0b0; 23560 let Inst{31-21} = 0b01000010010; 23561 let isPredicated = 1; 23562 let addrMode = BaseImmOffset; 23563 let accessSize = HalfWordAccess; 23564 let isPredicatedNew = 1; 23565 let mayStore = 1; 23566 let CextOpcode = "S2_storerh"; 23567 let InputType = "imm"; 23568 let BaseOpcode = "S2_storerh_io"; 23569 let isNVStorable = 1; 23570 let isExtendable = 1; 23571 let opExtendable = 2; 23572 let isExtentSigned = 0; 23573 let opExtentBits = 7; 23574 let opExtentAlign = 1; 23575 } 23576 def S4_pstorerhtnew_rr : HInst< 23577 (outs), 23578 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23579 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23580 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 23581 let Inst{31-21} = 0b00110110010; 23582 let isPredicated = 1; 23583 let addrMode = BaseRegOffset; 23584 let accessSize = HalfWordAccess; 23585 let isPredicatedNew = 1; 23586 let mayStore = 1; 23587 let CextOpcode = "S2_storerh"; 23588 let InputType = "reg"; 23589 let BaseOpcode = "S2_storerh_rr"; 23590 let isNVStorable = 1; 23591 } 23592 def S4_pstorerhtnew_zomap : HInst< 23593 (outs), 23594 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23595 "if ($Pv4.new) memh($Rs32) = $Rt32", 23596 tc_f86c328a, TypeMAPPING> { 23597 let isPseudo = 1; 23598 let isCodeGenOnly = 1; 23599 } 23600 def S4_pstorerif_abs : HInst< 23601 (outs), 23602 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23603 "if (!$Pv4) memw(#$Ii) = $Rt32", 23604 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 23605 let Inst{2-2} = 0b1; 23606 let Inst{7-7} = 0b1; 23607 let Inst{13-13} = 0b0; 23608 let Inst{31-18} = 0b10101111100000; 23609 let isPredicated = 1; 23610 let isPredicatedFalse = 1; 23611 let addrMode = Absolute; 23612 let accessSize = WordAccess; 23613 let isExtended = 1; 23614 let mayStore = 1; 23615 let CextOpcode = "S2_storeri"; 23616 let BaseOpcode = "S2_storeriabs"; 23617 let isNVStorable = 1; 23618 let DecoderNamespace = "MustExtend"; 23619 let isExtendable = 1; 23620 let opExtendable = 1; 23621 let isExtentSigned = 0; 23622 let opExtentBits = 6; 23623 let opExtentAlign = 0; 23624 } 23625 def S4_pstorerif_rr : HInst< 23626 (outs), 23627 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23628 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 23629 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 23630 let Inst{31-21} = 0b00110101100; 23631 let isPredicated = 1; 23632 let isPredicatedFalse = 1; 23633 let addrMode = BaseRegOffset; 23634 let accessSize = WordAccess; 23635 let mayStore = 1; 23636 let CextOpcode = "S2_storeri"; 23637 let InputType = "reg"; 23638 let BaseOpcode = "S2_storeri_rr"; 23639 let isNVStorable = 1; 23640 } 23641 def S4_pstorerifnew_abs : HInst< 23642 (outs), 23643 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23644 "if (!$Pv4.new) memw(#$Ii) = $Rt32", 23645 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 23646 let Inst{2-2} = 0b1; 23647 let Inst{7-7} = 0b1; 23648 let Inst{13-13} = 0b1; 23649 let Inst{31-18} = 0b10101111100000; 23650 let isPredicated = 1; 23651 let isPredicatedFalse = 1; 23652 let addrMode = Absolute; 23653 let accessSize = WordAccess; 23654 let isPredicatedNew = 1; 23655 let isExtended = 1; 23656 let mayStore = 1; 23657 let CextOpcode = "S2_storeri"; 23658 let BaseOpcode = "S2_storeriabs"; 23659 let isNVStorable = 1; 23660 let DecoderNamespace = "MustExtend"; 23661 let isExtendable = 1; 23662 let opExtendable = 1; 23663 let isExtentSigned = 0; 23664 let opExtentBits = 6; 23665 let opExtentAlign = 0; 23666 } 23667 def S4_pstorerifnew_io : HInst< 23668 (outs), 23669 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 23670 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32", 23671 tc_f86c328a, TypeV2LDST>, Enc_397f23, AddrModeRel { 23672 let Inst{2-2} = 0b0; 23673 let Inst{31-21} = 0b01000110100; 23674 let isPredicated = 1; 23675 let isPredicatedFalse = 1; 23676 let addrMode = BaseImmOffset; 23677 let accessSize = WordAccess; 23678 let isPredicatedNew = 1; 23679 let mayStore = 1; 23680 let CextOpcode = "S2_storeri"; 23681 let InputType = "imm"; 23682 let BaseOpcode = "S2_storeri_io"; 23683 let isNVStorable = 1; 23684 let isExtendable = 1; 23685 let opExtendable = 2; 23686 let isExtentSigned = 0; 23687 let opExtentBits = 8; 23688 let opExtentAlign = 2; 23689 } 23690 def S4_pstorerifnew_rr : HInst< 23691 (outs), 23692 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23693 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 23694 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 23695 let Inst{31-21} = 0b00110111100; 23696 let isPredicated = 1; 23697 let isPredicatedFalse = 1; 23698 let addrMode = BaseRegOffset; 23699 let accessSize = WordAccess; 23700 let isPredicatedNew = 1; 23701 let mayStore = 1; 23702 let CextOpcode = "S2_storeri"; 23703 let InputType = "reg"; 23704 let BaseOpcode = "S2_storeri_rr"; 23705 let isNVStorable = 1; 23706 } 23707 def S4_pstorerifnew_zomap : HInst< 23708 (outs), 23709 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23710 "if (!$Pv4.new) memw($Rs32) = $Rt32", 23711 tc_f86c328a, TypeMAPPING> { 23712 let isPseudo = 1; 23713 let isCodeGenOnly = 1; 23714 } 23715 def S4_pstorerinewf_abs : HInst< 23716 (outs), 23717 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23718 "if (!$Pv4) memw(#$Ii) = $Nt8.new", 23719 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 23720 let Inst{2-2} = 0b1; 23721 let Inst{7-7} = 0b1; 23722 let Inst{13-11} = 0b010; 23723 let Inst{31-18} = 0b10101111101000; 23724 let isPredicated = 1; 23725 let isPredicatedFalse = 1; 23726 let addrMode = Absolute; 23727 let accessSize = WordAccess; 23728 let isNVStore = 1; 23729 let isNewValue = 1; 23730 let isExtended = 1; 23731 let isRestrictNoSlot1Store = 1; 23732 let mayStore = 1; 23733 let CextOpcode = "S2_storeri"; 23734 let BaseOpcode = "S2_storeriabs"; 23735 let DecoderNamespace = "MustExtend"; 23736 let isExtendable = 1; 23737 let opExtendable = 1; 23738 let isExtentSigned = 0; 23739 let opExtentBits = 6; 23740 let opExtentAlign = 0; 23741 let opNewValue = 2; 23742 } 23743 def S4_pstorerinewf_rr : HInst< 23744 (outs), 23745 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23746 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23747 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 23748 let Inst{4-3} = 0b10; 23749 let Inst{31-21} = 0b00110101101; 23750 let isPredicated = 1; 23751 let isPredicatedFalse = 1; 23752 let addrMode = BaseRegOffset; 23753 let accessSize = WordAccess; 23754 let isNVStore = 1; 23755 let isNewValue = 1; 23756 let isRestrictNoSlot1Store = 1; 23757 let mayStore = 1; 23758 let CextOpcode = "S2_storeri"; 23759 let InputType = "reg"; 23760 let BaseOpcode = "S2_storeri_rr"; 23761 let opNewValue = 4; 23762 } 23763 def S4_pstorerinewfnew_abs : HInst< 23764 (outs), 23765 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23766 "if (!$Pv4.new) memw(#$Ii) = $Nt8.new", 23767 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 23768 let Inst{2-2} = 0b1; 23769 let Inst{7-7} = 0b1; 23770 let Inst{13-11} = 0b110; 23771 let Inst{31-18} = 0b10101111101000; 23772 let isPredicated = 1; 23773 let isPredicatedFalse = 1; 23774 let addrMode = Absolute; 23775 let accessSize = WordAccess; 23776 let isNVStore = 1; 23777 let isPredicatedNew = 1; 23778 let isNewValue = 1; 23779 let isExtended = 1; 23780 let isRestrictNoSlot1Store = 1; 23781 let mayStore = 1; 23782 let CextOpcode = "S2_storeri"; 23783 let BaseOpcode = "S2_storeriabs"; 23784 let DecoderNamespace = "MustExtend"; 23785 let isExtendable = 1; 23786 let opExtendable = 1; 23787 let isExtentSigned = 0; 23788 let opExtentBits = 6; 23789 let opExtentAlign = 0; 23790 let opNewValue = 2; 23791 } 23792 def S4_pstorerinewfnew_io : HInst< 23793 (outs), 23794 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 23795 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 23796 tc_e7d02c66, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 23797 let Inst{2-2} = 0b0; 23798 let Inst{12-11} = 0b10; 23799 let Inst{31-21} = 0b01000110101; 23800 let isPredicated = 1; 23801 let isPredicatedFalse = 1; 23802 let addrMode = BaseImmOffset; 23803 let accessSize = WordAccess; 23804 let isNVStore = 1; 23805 let isPredicatedNew = 1; 23806 let isNewValue = 1; 23807 let isRestrictNoSlot1Store = 1; 23808 let mayStore = 1; 23809 let CextOpcode = "S2_storeri"; 23810 let InputType = "imm"; 23811 let BaseOpcode = "S2_storeri_io"; 23812 let isExtendable = 1; 23813 let opExtendable = 2; 23814 let isExtentSigned = 0; 23815 let opExtentBits = 8; 23816 let opExtentAlign = 2; 23817 let opNewValue = 3; 23818 } 23819 def S4_pstorerinewfnew_rr : HInst< 23820 (outs), 23821 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23822 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23823 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 23824 let Inst{4-3} = 0b10; 23825 let Inst{31-21} = 0b00110111101; 23826 let isPredicated = 1; 23827 let isPredicatedFalse = 1; 23828 let addrMode = BaseRegOffset; 23829 let accessSize = WordAccess; 23830 let isNVStore = 1; 23831 let isPredicatedNew = 1; 23832 let isNewValue = 1; 23833 let isRestrictNoSlot1Store = 1; 23834 let mayStore = 1; 23835 let CextOpcode = "S2_storeri"; 23836 let InputType = "reg"; 23837 let BaseOpcode = "S2_storeri_rr"; 23838 let opNewValue = 4; 23839 } 23840 def S4_pstorerinewfnew_zomap : HInst< 23841 (outs), 23842 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23843 "if (!$Pv4.new) memw($Rs32) = $Nt8.new", 23844 tc_e7d02c66, TypeMAPPING> { 23845 let isPseudo = 1; 23846 let isCodeGenOnly = 1; 23847 let opNewValue = 2; 23848 } 23849 def S4_pstorerinewt_abs : HInst< 23850 (outs), 23851 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23852 "if ($Pv4) memw(#$Ii) = $Nt8.new", 23853 tc_6ac37025, TypeST>, Enc_44215c, AddrModeRel { 23854 let Inst{2-2} = 0b0; 23855 let Inst{7-7} = 0b1; 23856 let Inst{13-11} = 0b010; 23857 let Inst{31-18} = 0b10101111101000; 23858 let isPredicated = 1; 23859 let addrMode = Absolute; 23860 let accessSize = WordAccess; 23861 let isNVStore = 1; 23862 let isNewValue = 1; 23863 let isExtended = 1; 23864 let isRestrictNoSlot1Store = 1; 23865 let mayStore = 1; 23866 let CextOpcode = "S2_storeri"; 23867 let BaseOpcode = "S2_storeriabs"; 23868 let DecoderNamespace = "MustExtend"; 23869 let isExtendable = 1; 23870 let opExtendable = 1; 23871 let isExtentSigned = 0; 23872 let opExtentBits = 6; 23873 let opExtentAlign = 0; 23874 let opNewValue = 2; 23875 } 23876 def S4_pstorerinewt_rr : HInst< 23877 (outs), 23878 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23879 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23880 tc_adb14c66, TypeST>, Enc_47ee5e, AddrModeRel { 23881 let Inst{4-3} = 0b10; 23882 let Inst{31-21} = 0b00110100101; 23883 let isPredicated = 1; 23884 let addrMode = BaseRegOffset; 23885 let accessSize = WordAccess; 23886 let isNVStore = 1; 23887 let isNewValue = 1; 23888 let isRestrictNoSlot1Store = 1; 23889 let mayStore = 1; 23890 let CextOpcode = "S2_storeri"; 23891 let InputType = "reg"; 23892 let BaseOpcode = "S2_storeri_rr"; 23893 let opNewValue = 4; 23894 } 23895 def S4_pstorerinewtnew_abs : HInst< 23896 (outs), 23897 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23898 "if ($Pv4.new) memw(#$Ii) = $Nt8.new", 23899 tc_53bdb2f6, TypeST>, Enc_44215c, AddrModeRel { 23900 let Inst{2-2} = 0b0; 23901 let Inst{7-7} = 0b1; 23902 let Inst{13-11} = 0b110; 23903 let Inst{31-18} = 0b10101111101000; 23904 let isPredicated = 1; 23905 let addrMode = Absolute; 23906 let accessSize = WordAccess; 23907 let isNVStore = 1; 23908 let isPredicatedNew = 1; 23909 let isNewValue = 1; 23910 let isExtended = 1; 23911 let isRestrictNoSlot1Store = 1; 23912 let mayStore = 1; 23913 let CextOpcode = "S2_storeri"; 23914 let BaseOpcode = "S2_storeriabs"; 23915 let DecoderNamespace = "MustExtend"; 23916 let isExtendable = 1; 23917 let opExtendable = 1; 23918 let isExtentSigned = 0; 23919 let opExtentBits = 6; 23920 let opExtentAlign = 0; 23921 let opNewValue = 2; 23922 } 23923 def S4_pstorerinewtnew_io : HInst< 23924 (outs), 23925 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 23926 "if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 23927 tc_e7d02c66, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 23928 let Inst{2-2} = 0b0; 23929 let Inst{12-11} = 0b10; 23930 let Inst{31-21} = 0b01000010101; 23931 let isPredicated = 1; 23932 let addrMode = BaseImmOffset; 23933 let accessSize = WordAccess; 23934 let isNVStore = 1; 23935 let isPredicatedNew = 1; 23936 let isNewValue = 1; 23937 let isRestrictNoSlot1Store = 1; 23938 let mayStore = 1; 23939 let CextOpcode = "S2_storeri"; 23940 let InputType = "imm"; 23941 let BaseOpcode = "S2_storeri_io"; 23942 let isExtendable = 1; 23943 let opExtendable = 2; 23944 let isExtentSigned = 0; 23945 let opExtentBits = 8; 23946 let opExtentAlign = 2; 23947 let opNewValue = 3; 23948 } 23949 def S4_pstorerinewtnew_rr : HInst< 23950 (outs), 23951 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23952 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23953 tc_e421e012, TypeST>, Enc_47ee5e, AddrModeRel { 23954 let Inst{4-3} = 0b10; 23955 let Inst{31-21} = 0b00110110101; 23956 let isPredicated = 1; 23957 let addrMode = BaseRegOffset; 23958 let accessSize = WordAccess; 23959 let isNVStore = 1; 23960 let isPredicatedNew = 1; 23961 let isNewValue = 1; 23962 let isRestrictNoSlot1Store = 1; 23963 let mayStore = 1; 23964 let CextOpcode = "S2_storeri"; 23965 let InputType = "reg"; 23966 let BaseOpcode = "S2_storeri_rr"; 23967 let opNewValue = 4; 23968 } 23969 def S4_pstorerinewtnew_zomap : HInst< 23970 (outs), 23971 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23972 "if ($Pv4.new) memw($Rs32) = $Nt8.new", 23973 tc_e7d02c66, TypeMAPPING> { 23974 let isPseudo = 1; 23975 let isCodeGenOnly = 1; 23976 let opNewValue = 2; 23977 } 23978 def S4_pstorerit_abs : HInst< 23979 (outs), 23980 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23981 "if ($Pv4) memw(#$Ii) = $Rt32", 23982 tc_238d91d2, TypeST>, Enc_1cf4ca, AddrModeRel { 23983 let Inst{2-2} = 0b0; 23984 let Inst{7-7} = 0b1; 23985 let Inst{13-13} = 0b0; 23986 let Inst{31-18} = 0b10101111100000; 23987 let isPredicated = 1; 23988 let addrMode = Absolute; 23989 let accessSize = WordAccess; 23990 let isExtended = 1; 23991 let mayStore = 1; 23992 let CextOpcode = "S2_storeri"; 23993 let BaseOpcode = "S2_storeriabs"; 23994 let isNVStorable = 1; 23995 let DecoderNamespace = "MustExtend"; 23996 let isExtendable = 1; 23997 let opExtendable = 1; 23998 let isExtentSigned = 0; 23999 let opExtentBits = 6; 24000 let opExtentAlign = 0; 24001 } 24002 def S4_pstorerit_rr : HInst< 24003 (outs), 24004 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24005 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24006 tc_5274e61a, TypeST>, Enc_6339d5, AddrModeRel { 24007 let Inst{31-21} = 0b00110100100; 24008 let isPredicated = 1; 24009 let addrMode = BaseRegOffset; 24010 let accessSize = WordAccess; 24011 let mayStore = 1; 24012 let CextOpcode = "S2_storeri"; 24013 let InputType = "reg"; 24014 let BaseOpcode = "S2_storeri_rr"; 24015 let isNVStorable = 1; 24016 } 24017 def S4_pstoreritnew_abs : HInst< 24018 (outs), 24019 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24020 "if ($Pv4.new) memw(#$Ii) = $Rt32", 24021 tc_66888ded, TypeST>, Enc_1cf4ca, AddrModeRel { 24022 let Inst{2-2} = 0b0; 24023 let Inst{7-7} = 0b1; 24024 let Inst{13-13} = 0b1; 24025 let Inst{31-18} = 0b10101111100000; 24026 let isPredicated = 1; 24027 let addrMode = Absolute; 24028 let accessSize = WordAccess; 24029 let isPredicatedNew = 1; 24030 let isExtended = 1; 24031 let mayStore = 1; 24032 let CextOpcode = "S2_storeri"; 24033 let BaseOpcode = "S2_storeriabs"; 24034 let isNVStorable = 1; 24035 let DecoderNamespace = "MustExtend"; 24036 let isExtendable = 1; 24037 let opExtendable = 1; 24038 let isExtentSigned = 0; 24039 let opExtentBits = 6; 24040 let opExtentAlign = 0; 24041 } 24042 def S4_pstoreritnew_io : HInst< 24043 (outs), 24044 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24045 "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24046 tc_f86c328a, TypeV2LDST>, Enc_397f23, AddrModeRel { 24047 let Inst{2-2} = 0b0; 24048 let Inst{31-21} = 0b01000010100; 24049 let isPredicated = 1; 24050 let addrMode = BaseImmOffset; 24051 let accessSize = WordAccess; 24052 let isPredicatedNew = 1; 24053 let mayStore = 1; 24054 let CextOpcode = "S2_storeri"; 24055 let InputType = "imm"; 24056 let BaseOpcode = "S2_storeri_io"; 24057 let isNVStorable = 1; 24058 let isExtendable = 1; 24059 let opExtendable = 2; 24060 let isExtentSigned = 0; 24061 let opExtentBits = 8; 24062 let opExtentAlign = 2; 24063 } 24064 def S4_pstoreritnew_rr : HInst< 24065 (outs), 24066 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24067 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24068 tc_3e07fb90, TypeST>, Enc_6339d5, AddrModeRel { 24069 let Inst{31-21} = 0b00110110100; 24070 let isPredicated = 1; 24071 let addrMode = BaseRegOffset; 24072 let accessSize = WordAccess; 24073 let isPredicatedNew = 1; 24074 let mayStore = 1; 24075 let CextOpcode = "S2_storeri"; 24076 let InputType = "reg"; 24077 let BaseOpcode = "S2_storeri_rr"; 24078 let isNVStorable = 1; 24079 } 24080 def S4_pstoreritnew_zomap : HInst< 24081 (outs), 24082 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24083 "if ($Pv4.new) memw($Rs32) = $Rt32", 24084 tc_f86c328a, TypeMAPPING> { 24085 let isPseudo = 1; 24086 let isCodeGenOnly = 1; 24087 } 24088 def S4_stored_locked : HInst< 24089 (outs PredRegs:$Pd4), 24090 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24091 "memd_locked($Rs32,$Pd4) = $Rtt32", 24092 tc_1372bca1, TypeST>, Enc_d7dc10 { 24093 let Inst{7-2} = 0b000000; 24094 let Inst{13-13} = 0b0; 24095 let Inst{31-21} = 0b10100000111; 24096 let accessSize = DoubleWordAccess; 24097 let isPredicateLate = 1; 24098 let isSoloAX = 1; 24099 let mayStore = 1; 24100 } 24101 def S4_storeirb_io : HInst< 24102 (outs), 24103 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24104 "memb($Rs32+#$Ii) = #$II", 24105 tc_05b6c987, TypeST>, Enc_8203bb, PredNewRel { 24106 let Inst{31-21} = 0b00111100000; 24107 let addrMode = BaseImmOffset; 24108 let accessSize = ByteAccess; 24109 let mayStore = 1; 24110 let CextOpcode = "S2_storerb"; 24111 let InputType = "imm"; 24112 let BaseOpcode = "S4_storeirb_io"; 24113 let isPredicable = 1; 24114 let isExtendable = 1; 24115 let opExtendable = 2; 24116 let isExtentSigned = 1; 24117 let opExtentBits = 8; 24118 let opExtentAlign = 0; 24119 } 24120 def S4_storeirb_zomap : HInst< 24121 (outs), 24122 (ins IntRegs:$Rs32, s8_0Imm:$II), 24123 "memb($Rs32) = #$II", 24124 tc_05b6c987, TypeMAPPING> { 24125 let isPseudo = 1; 24126 let isCodeGenOnly = 1; 24127 } 24128 def S4_storeirbf_io : HInst< 24129 (outs), 24130 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24131 "if (!$Pv4) memb($Rs32+#$Ii) = #$II", 24132 tc_8b15472a, TypeST>, Enc_d7a65e, PredNewRel { 24133 let Inst{31-21} = 0b00111000100; 24134 let isPredicated = 1; 24135 let isPredicatedFalse = 1; 24136 let addrMode = BaseImmOffset; 24137 let accessSize = ByteAccess; 24138 let mayStore = 1; 24139 let CextOpcode = "S2_storerb"; 24140 let InputType = "imm"; 24141 let BaseOpcode = "S4_storeirb_io"; 24142 let isExtendable = 1; 24143 let opExtendable = 3; 24144 let isExtentSigned = 1; 24145 let opExtentBits = 6; 24146 let opExtentAlign = 0; 24147 } 24148 def S4_storeirbf_zomap : HInst< 24149 (outs), 24150 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24151 "if (!$Pv4) memb($Rs32) = #$II", 24152 tc_8b15472a, TypeMAPPING> { 24153 let isPseudo = 1; 24154 let isCodeGenOnly = 1; 24155 } 24156 def S4_storeirbfnew_io : HInst< 24157 (outs), 24158 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24159 "if (!$Pv4.new) memb($Rs32+#$Ii) = #$II", 24160 tc_f86c328a, TypeST>, Enc_d7a65e, PredNewRel { 24161 let Inst{31-21} = 0b00111001100; 24162 let isPredicated = 1; 24163 let isPredicatedFalse = 1; 24164 let addrMode = BaseImmOffset; 24165 let accessSize = ByteAccess; 24166 let isPredicatedNew = 1; 24167 let mayStore = 1; 24168 let CextOpcode = "S2_storerb"; 24169 let InputType = "imm"; 24170 let BaseOpcode = "S4_storeirb_io"; 24171 let isExtendable = 1; 24172 let opExtendable = 3; 24173 let isExtentSigned = 1; 24174 let opExtentBits = 6; 24175 let opExtentAlign = 0; 24176 } 24177 def S4_storeirbfnew_zomap : HInst< 24178 (outs), 24179 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24180 "if (!$Pv4.new) memb($Rs32) = #$II", 24181 tc_f86c328a, TypeMAPPING> { 24182 let isPseudo = 1; 24183 let isCodeGenOnly = 1; 24184 } 24185 def S4_storeirbt_io : HInst< 24186 (outs), 24187 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24188 "if ($Pv4) memb($Rs32+#$Ii) = #$II", 24189 tc_8b15472a, TypeST>, Enc_d7a65e, PredNewRel { 24190 let Inst{31-21} = 0b00111000000; 24191 let isPredicated = 1; 24192 let addrMode = BaseImmOffset; 24193 let accessSize = ByteAccess; 24194 let mayStore = 1; 24195 let CextOpcode = "S2_storerb"; 24196 let InputType = "imm"; 24197 let BaseOpcode = "S4_storeirb_io"; 24198 let isExtendable = 1; 24199 let opExtendable = 3; 24200 let isExtentSigned = 1; 24201 let opExtentBits = 6; 24202 let opExtentAlign = 0; 24203 } 24204 def S4_storeirbt_zomap : HInst< 24205 (outs), 24206 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24207 "if ($Pv4) memb($Rs32) = #$II", 24208 tc_8b15472a, TypeMAPPING> { 24209 let isPseudo = 1; 24210 let isCodeGenOnly = 1; 24211 } 24212 def S4_storeirbtnew_io : HInst< 24213 (outs), 24214 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24215 "if ($Pv4.new) memb($Rs32+#$Ii) = #$II", 24216 tc_f86c328a, TypeST>, Enc_d7a65e, PredNewRel { 24217 let Inst{31-21} = 0b00111001000; 24218 let isPredicated = 1; 24219 let addrMode = BaseImmOffset; 24220 let accessSize = ByteAccess; 24221 let isPredicatedNew = 1; 24222 let mayStore = 1; 24223 let CextOpcode = "S2_storerb"; 24224 let InputType = "imm"; 24225 let BaseOpcode = "S4_storeirb_io"; 24226 let isExtendable = 1; 24227 let opExtendable = 3; 24228 let isExtentSigned = 1; 24229 let opExtentBits = 6; 24230 let opExtentAlign = 0; 24231 } 24232 def S4_storeirbtnew_zomap : HInst< 24233 (outs), 24234 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24235 "if ($Pv4.new) memb($Rs32) = #$II", 24236 tc_f86c328a, TypeMAPPING> { 24237 let isPseudo = 1; 24238 let isCodeGenOnly = 1; 24239 } 24240 def S4_storeirh_io : HInst< 24241 (outs), 24242 (ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24243 "memh($Rs32+#$Ii) = #$II", 24244 tc_05b6c987, TypeST>, Enc_a803e0, PredNewRel { 24245 let Inst{31-21} = 0b00111100001; 24246 let addrMode = BaseImmOffset; 24247 let accessSize = HalfWordAccess; 24248 let mayStore = 1; 24249 let CextOpcode = "S2_storerh"; 24250 let InputType = "imm"; 24251 let BaseOpcode = "S4_storeirh_io"; 24252 let isPredicable = 1; 24253 let isExtendable = 1; 24254 let opExtendable = 2; 24255 let isExtentSigned = 1; 24256 let opExtentBits = 8; 24257 let opExtentAlign = 0; 24258 } 24259 def S4_storeirh_zomap : HInst< 24260 (outs), 24261 (ins IntRegs:$Rs32, s8_0Imm:$II), 24262 "memh($Rs32) = #$II", 24263 tc_05b6c987, TypeMAPPING> { 24264 let isPseudo = 1; 24265 let isCodeGenOnly = 1; 24266 } 24267 def S4_storeirhf_io : HInst< 24268 (outs), 24269 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24270 "if (!$Pv4) memh($Rs32+#$Ii) = #$II", 24271 tc_8b15472a, TypeST>, Enc_f20719, PredNewRel { 24272 let Inst{31-21} = 0b00111000101; 24273 let isPredicated = 1; 24274 let isPredicatedFalse = 1; 24275 let addrMode = BaseImmOffset; 24276 let accessSize = HalfWordAccess; 24277 let mayStore = 1; 24278 let CextOpcode = "S2_storerh"; 24279 let InputType = "imm"; 24280 let BaseOpcode = "S4_storeirh_io"; 24281 let isExtendable = 1; 24282 let opExtendable = 3; 24283 let isExtentSigned = 1; 24284 let opExtentBits = 6; 24285 let opExtentAlign = 0; 24286 } 24287 def S4_storeirhf_zomap : HInst< 24288 (outs), 24289 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24290 "if (!$Pv4) memh($Rs32) = #$II", 24291 tc_8b15472a, TypeMAPPING> { 24292 let isPseudo = 1; 24293 let isCodeGenOnly = 1; 24294 } 24295 def S4_storeirhfnew_io : HInst< 24296 (outs), 24297 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24298 "if (!$Pv4.new) memh($Rs32+#$Ii) = #$II", 24299 tc_f86c328a, TypeST>, Enc_f20719, PredNewRel { 24300 let Inst{31-21} = 0b00111001101; 24301 let isPredicated = 1; 24302 let isPredicatedFalse = 1; 24303 let addrMode = BaseImmOffset; 24304 let accessSize = HalfWordAccess; 24305 let isPredicatedNew = 1; 24306 let mayStore = 1; 24307 let CextOpcode = "S2_storerh"; 24308 let InputType = "imm"; 24309 let BaseOpcode = "S4_storeirh_io"; 24310 let isExtendable = 1; 24311 let opExtendable = 3; 24312 let isExtentSigned = 1; 24313 let opExtentBits = 6; 24314 let opExtentAlign = 0; 24315 } 24316 def S4_storeirhfnew_zomap : HInst< 24317 (outs), 24318 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24319 "if (!$Pv4.new) memh($Rs32) = #$II", 24320 tc_f86c328a, TypeMAPPING> { 24321 let isPseudo = 1; 24322 let isCodeGenOnly = 1; 24323 } 24324 def S4_storeirht_io : HInst< 24325 (outs), 24326 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24327 "if ($Pv4) memh($Rs32+#$Ii) = #$II", 24328 tc_8b15472a, TypeST>, Enc_f20719, PredNewRel { 24329 let Inst{31-21} = 0b00111000001; 24330 let isPredicated = 1; 24331 let addrMode = BaseImmOffset; 24332 let accessSize = HalfWordAccess; 24333 let mayStore = 1; 24334 let CextOpcode = "S2_storerh"; 24335 let InputType = "imm"; 24336 let BaseOpcode = "S4_storeirh_io"; 24337 let isExtendable = 1; 24338 let opExtendable = 3; 24339 let isExtentSigned = 1; 24340 let opExtentBits = 6; 24341 let opExtentAlign = 0; 24342 } 24343 def S4_storeirht_zomap : HInst< 24344 (outs), 24345 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24346 "if ($Pv4) memh($Rs32) = #$II", 24347 tc_8b15472a, TypeMAPPING> { 24348 let isPseudo = 1; 24349 let isCodeGenOnly = 1; 24350 } 24351 def S4_storeirhtnew_io : HInst< 24352 (outs), 24353 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24354 "if ($Pv4.new) memh($Rs32+#$Ii) = #$II", 24355 tc_f86c328a, TypeST>, Enc_f20719, PredNewRel { 24356 let Inst{31-21} = 0b00111001001; 24357 let isPredicated = 1; 24358 let addrMode = BaseImmOffset; 24359 let accessSize = HalfWordAccess; 24360 let isPredicatedNew = 1; 24361 let mayStore = 1; 24362 let CextOpcode = "S2_storerh"; 24363 let InputType = "imm"; 24364 let BaseOpcode = "S4_storeirh_io"; 24365 let isExtendable = 1; 24366 let opExtendable = 3; 24367 let isExtentSigned = 1; 24368 let opExtentBits = 6; 24369 let opExtentAlign = 0; 24370 } 24371 def S4_storeirhtnew_zomap : HInst< 24372 (outs), 24373 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24374 "if ($Pv4.new) memh($Rs32) = #$II", 24375 tc_f86c328a, TypeMAPPING> { 24376 let isPseudo = 1; 24377 let isCodeGenOnly = 1; 24378 } 24379 def S4_storeiri_io : HInst< 24380 (outs), 24381 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24382 "memw($Rs32+#$Ii) = #$II", 24383 tc_05b6c987, TypeST>, Enc_f37377, PredNewRel { 24384 let Inst{31-21} = 0b00111100010; 24385 let addrMode = BaseImmOffset; 24386 let accessSize = WordAccess; 24387 let mayStore = 1; 24388 let CextOpcode = "S2_storeri"; 24389 let InputType = "imm"; 24390 let BaseOpcode = "S4_storeiri_io"; 24391 let isPredicable = 1; 24392 let isExtendable = 1; 24393 let opExtendable = 2; 24394 let isExtentSigned = 1; 24395 let opExtentBits = 8; 24396 let opExtentAlign = 0; 24397 } 24398 def S4_storeiri_zomap : HInst< 24399 (outs), 24400 (ins IntRegs:$Rs32, s8_0Imm:$II), 24401 "memw($Rs32) = #$II", 24402 tc_05b6c987, TypeMAPPING> { 24403 let isPseudo = 1; 24404 let isCodeGenOnly = 1; 24405 } 24406 def S4_storeirif_io : HInst< 24407 (outs), 24408 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24409 "if (!$Pv4) memw($Rs32+#$Ii) = #$II", 24410 tc_8b15472a, TypeST>, Enc_5ccba9, PredNewRel { 24411 let Inst{31-21} = 0b00111000110; 24412 let isPredicated = 1; 24413 let isPredicatedFalse = 1; 24414 let addrMode = BaseImmOffset; 24415 let accessSize = WordAccess; 24416 let mayStore = 1; 24417 let CextOpcode = "S2_storeri"; 24418 let InputType = "imm"; 24419 let BaseOpcode = "S4_storeiri_io"; 24420 let isExtendable = 1; 24421 let opExtendable = 3; 24422 let isExtentSigned = 1; 24423 let opExtentBits = 6; 24424 let opExtentAlign = 0; 24425 } 24426 def S4_storeirif_zomap : HInst< 24427 (outs), 24428 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24429 "if (!$Pv4) memw($Rs32) = #$II", 24430 tc_8b15472a, TypeMAPPING> { 24431 let isPseudo = 1; 24432 let isCodeGenOnly = 1; 24433 } 24434 def S4_storeirifnew_io : HInst< 24435 (outs), 24436 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24437 "if (!$Pv4.new) memw($Rs32+#$Ii) = #$II", 24438 tc_f86c328a, TypeST>, Enc_5ccba9, PredNewRel { 24439 let Inst{31-21} = 0b00111001110; 24440 let isPredicated = 1; 24441 let isPredicatedFalse = 1; 24442 let addrMode = BaseImmOffset; 24443 let accessSize = WordAccess; 24444 let isPredicatedNew = 1; 24445 let mayStore = 1; 24446 let CextOpcode = "S2_storeri"; 24447 let InputType = "imm"; 24448 let BaseOpcode = "S4_storeiri_io"; 24449 let isExtendable = 1; 24450 let opExtendable = 3; 24451 let isExtentSigned = 1; 24452 let opExtentBits = 6; 24453 let opExtentAlign = 0; 24454 } 24455 def S4_storeirifnew_zomap : HInst< 24456 (outs), 24457 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24458 "if (!$Pv4.new) memw($Rs32) = #$II", 24459 tc_f86c328a, TypeMAPPING> { 24460 let isPseudo = 1; 24461 let isCodeGenOnly = 1; 24462 } 24463 def S4_storeirit_io : HInst< 24464 (outs), 24465 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24466 "if ($Pv4) memw($Rs32+#$Ii) = #$II", 24467 tc_8b15472a, TypeST>, Enc_5ccba9, PredNewRel { 24468 let Inst{31-21} = 0b00111000010; 24469 let isPredicated = 1; 24470 let addrMode = BaseImmOffset; 24471 let accessSize = WordAccess; 24472 let mayStore = 1; 24473 let CextOpcode = "S2_storeri"; 24474 let InputType = "imm"; 24475 let BaseOpcode = "S4_storeiri_io"; 24476 let isExtendable = 1; 24477 let opExtendable = 3; 24478 let isExtentSigned = 1; 24479 let opExtentBits = 6; 24480 let opExtentAlign = 0; 24481 } 24482 def S4_storeirit_zomap : HInst< 24483 (outs), 24484 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24485 "if ($Pv4) memw($Rs32) = #$II", 24486 tc_8b15472a, TypeMAPPING> { 24487 let isPseudo = 1; 24488 let isCodeGenOnly = 1; 24489 } 24490 def S4_storeiritnew_io : HInst< 24491 (outs), 24492 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24493 "if ($Pv4.new) memw($Rs32+#$Ii) = #$II", 24494 tc_f86c328a, TypeST>, Enc_5ccba9, PredNewRel { 24495 let Inst{31-21} = 0b00111001010; 24496 let isPredicated = 1; 24497 let addrMode = BaseImmOffset; 24498 let accessSize = WordAccess; 24499 let isPredicatedNew = 1; 24500 let mayStore = 1; 24501 let CextOpcode = "S2_storeri"; 24502 let InputType = "imm"; 24503 let BaseOpcode = "S4_storeiri_io"; 24504 let isExtendable = 1; 24505 let opExtendable = 3; 24506 let isExtentSigned = 1; 24507 let opExtentBits = 6; 24508 let opExtentAlign = 0; 24509 } 24510 def S4_storeiritnew_zomap : HInst< 24511 (outs), 24512 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24513 "if ($Pv4.new) memw($Rs32) = #$II", 24514 tc_f86c328a, TypeMAPPING> { 24515 let isPseudo = 1; 24516 let isCodeGenOnly = 1; 24517 } 24518 def S4_storerb_ap : HInst< 24519 (outs IntRegs:$Re32), 24520 (ins u32_0Imm:$II, IntRegs:$Rt32), 24521 "memb($Re32=#$II) = $Rt32", 24522 tc_66888ded, TypeST>, Enc_8bcba4, AddrModeRel { 24523 let Inst{7-6} = 0b10; 24524 let Inst{13-13} = 0b0; 24525 let Inst{31-21} = 0b10101011000; 24526 let addrMode = AbsoluteSet; 24527 let accessSize = ByteAccess; 24528 let isExtended = 1; 24529 let mayStore = 1; 24530 let BaseOpcode = "S2_storerb_ap"; 24531 let isNVStorable = 1; 24532 let DecoderNamespace = "MustExtend"; 24533 let isExtendable = 1; 24534 let opExtendable = 1; 24535 let isExtentSigned = 0; 24536 let opExtentBits = 6; 24537 let opExtentAlign = 0; 24538 } 24539 def S4_storerb_rr : HInst< 24540 (outs), 24541 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24542 "memb($Rs32+$Ru32<<#$Ii) = $Rt32", 24543 tc_d9709180, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 24544 let Inst{6-5} = 0b00; 24545 let Inst{31-21} = 0b00111011000; 24546 let addrMode = BaseRegOffset; 24547 let accessSize = ByteAccess; 24548 let mayStore = 1; 24549 let CextOpcode = "S2_storerb"; 24550 let InputType = "reg"; 24551 let BaseOpcode = "S4_storerb_rr"; 24552 let isNVStorable = 1; 24553 let isPredicable = 1; 24554 } 24555 def S4_storerb_ur : HInst< 24556 (outs), 24557 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 24558 "memb($Ru32<<#$Ii+#$II) = $Rt32", 24559 tc_0dc560de, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 24560 let Inst{7-7} = 0b1; 24561 let Inst{31-21} = 0b10101101000; 24562 let addrMode = BaseLongOffset; 24563 let accessSize = ByteAccess; 24564 let isExtended = 1; 24565 let mayStore = 1; 24566 let CextOpcode = "S2_storerb"; 24567 let InputType = "imm"; 24568 let BaseOpcode = "S4_storerb_ur"; 24569 let isNVStorable = 1; 24570 let DecoderNamespace = "MustExtend"; 24571 let isExtendable = 1; 24572 let opExtendable = 2; 24573 let isExtentSigned = 0; 24574 let opExtentBits = 6; 24575 let opExtentAlign = 0; 24576 } 24577 def S4_storerbnew_ap : HInst< 24578 (outs IntRegs:$Re32), 24579 (ins u32_0Imm:$II, IntRegs:$Nt8), 24580 "memb($Re32=#$II) = $Nt8.new", 24581 tc_53bdb2f6, TypeST>, Enc_724154, AddrModeRel { 24582 let Inst{7-6} = 0b10; 24583 let Inst{13-11} = 0b000; 24584 let Inst{31-21} = 0b10101011101; 24585 let addrMode = AbsoluteSet; 24586 let accessSize = ByteAccess; 24587 let isNVStore = 1; 24588 let isNewValue = 1; 24589 let isExtended = 1; 24590 let isRestrictNoSlot1Store = 1; 24591 let mayStore = 1; 24592 let BaseOpcode = "S2_storerb_ap"; 24593 let DecoderNamespace = "MustExtend"; 24594 let isExtendable = 1; 24595 let opExtendable = 1; 24596 let isExtentSigned = 0; 24597 let opExtentBits = 6; 24598 let opExtentAlign = 0; 24599 let opNewValue = 2; 24600 } 24601 def S4_storerbnew_rr : HInst< 24602 (outs), 24603 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24604 "memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24605 tc_b166348b, TypeST>, Enc_c6220b, AddrModeRel { 24606 let Inst{6-3} = 0b0000; 24607 let Inst{31-21} = 0b00111011101; 24608 let addrMode = BaseRegOffset; 24609 let accessSize = ByteAccess; 24610 let isNVStore = 1; 24611 let isNewValue = 1; 24612 let isRestrictNoSlot1Store = 1; 24613 let mayStore = 1; 24614 let CextOpcode = "S2_storerb"; 24615 let InputType = "reg"; 24616 let BaseOpcode = "S4_storerb_rr"; 24617 let isPredicable = 1; 24618 let opNewValue = 3; 24619 } 24620 def S4_storerbnew_ur : HInst< 24621 (outs), 24622 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 24623 "memb($Ru32<<#$Ii+#$II) = $Nt8.new", 24624 tc_a8acdac0, TypeST>, Enc_7eb485, AddrModeRel { 24625 let Inst{7-7} = 0b1; 24626 let Inst{12-11} = 0b00; 24627 let Inst{31-21} = 0b10101101101; 24628 let addrMode = BaseLongOffset; 24629 let accessSize = ByteAccess; 24630 let isNVStore = 1; 24631 let isNewValue = 1; 24632 let isExtended = 1; 24633 let isRestrictNoSlot1Store = 1; 24634 let mayStore = 1; 24635 let CextOpcode = "S2_storerb"; 24636 let BaseOpcode = "S4_storerb_ur"; 24637 let DecoderNamespace = "MustExtend"; 24638 let isExtendable = 1; 24639 let opExtendable = 2; 24640 let isExtentSigned = 0; 24641 let opExtentBits = 6; 24642 let opExtentAlign = 0; 24643 let opNewValue = 3; 24644 } 24645 def S4_storerd_ap : HInst< 24646 (outs IntRegs:$Re32), 24647 (ins u32_0Imm:$II, DoubleRegs:$Rtt32), 24648 "memd($Re32=#$II) = $Rtt32", 24649 tc_66888ded, TypeST>, Enc_c7a204 { 24650 let Inst{7-6} = 0b10; 24651 let Inst{13-13} = 0b0; 24652 let Inst{31-21} = 0b10101011110; 24653 let addrMode = AbsoluteSet; 24654 let accessSize = DoubleWordAccess; 24655 let isExtended = 1; 24656 let mayStore = 1; 24657 let BaseOpcode = "S4_storerd_ap"; 24658 let DecoderNamespace = "MustExtend"; 24659 let isExtendable = 1; 24660 let opExtendable = 1; 24661 let isExtentSigned = 0; 24662 let opExtentBits = 6; 24663 let opExtentAlign = 0; 24664 } 24665 def S4_storerd_rr : HInst< 24666 (outs), 24667 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 24668 "memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 24669 tc_d9709180, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { 24670 let Inst{6-5} = 0b00; 24671 let Inst{31-21} = 0b00111011110; 24672 let addrMode = BaseRegOffset; 24673 let accessSize = DoubleWordAccess; 24674 let mayStore = 1; 24675 let CextOpcode = "S2_storerd"; 24676 let InputType = "reg"; 24677 let BaseOpcode = "S2_storerd_rr"; 24678 let isPredicable = 1; 24679 } 24680 def S4_storerd_ur : HInst< 24681 (outs), 24682 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32), 24683 "memd($Ru32<<#$Ii+#$II) = $Rtt32", 24684 tc_0dc560de, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { 24685 let Inst{7-7} = 0b1; 24686 let Inst{31-21} = 0b10101101110; 24687 let addrMode = BaseLongOffset; 24688 let accessSize = DoubleWordAccess; 24689 let isExtended = 1; 24690 let mayStore = 1; 24691 let CextOpcode = "S2_storerd"; 24692 let InputType = "imm"; 24693 let BaseOpcode = "S2_storerd_ur"; 24694 let DecoderNamespace = "MustExtend"; 24695 let isExtendable = 1; 24696 let opExtendable = 2; 24697 let isExtentSigned = 0; 24698 let opExtentBits = 6; 24699 let opExtentAlign = 0; 24700 } 24701 def S4_storerf_ap : HInst< 24702 (outs IntRegs:$Re32), 24703 (ins u32_0Imm:$II, IntRegs:$Rt32), 24704 "memh($Re32=#$II) = $Rt32.h", 24705 tc_66888ded, TypeST>, Enc_8bcba4 { 24706 let Inst{7-6} = 0b10; 24707 let Inst{13-13} = 0b0; 24708 let Inst{31-21} = 0b10101011011; 24709 let addrMode = AbsoluteSet; 24710 let accessSize = HalfWordAccess; 24711 let isExtended = 1; 24712 let mayStore = 1; 24713 let BaseOpcode = "S4_storerf_ap"; 24714 let DecoderNamespace = "MustExtend"; 24715 let isExtendable = 1; 24716 let opExtendable = 1; 24717 let isExtentSigned = 0; 24718 let opExtentBits = 6; 24719 let opExtentAlign = 0; 24720 } 24721 def S4_storerf_rr : HInst< 24722 (outs), 24723 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24724 "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 24725 tc_d9709180, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 24726 let Inst{6-5} = 0b00; 24727 let Inst{31-21} = 0b00111011011; 24728 let addrMode = BaseRegOffset; 24729 let accessSize = HalfWordAccess; 24730 let mayStore = 1; 24731 let CextOpcode = "S2_storerf"; 24732 let InputType = "reg"; 24733 let BaseOpcode = "S4_storerf_rr"; 24734 let isPredicable = 1; 24735 } 24736 def S4_storerf_ur : HInst< 24737 (outs), 24738 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 24739 "memh($Ru32<<#$Ii+#$II) = $Rt32.h", 24740 tc_0dc560de, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 24741 let Inst{7-7} = 0b1; 24742 let Inst{31-21} = 0b10101101011; 24743 let addrMode = BaseLongOffset; 24744 let accessSize = HalfWordAccess; 24745 let isExtended = 1; 24746 let mayStore = 1; 24747 let CextOpcode = "S2_storerf"; 24748 let InputType = "imm"; 24749 let BaseOpcode = "S4_storerf_rr"; 24750 let DecoderNamespace = "MustExtend"; 24751 let isExtendable = 1; 24752 let opExtendable = 2; 24753 let isExtentSigned = 0; 24754 let opExtentBits = 6; 24755 let opExtentAlign = 0; 24756 } 24757 def S4_storerh_ap : HInst< 24758 (outs IntRegs:$Re32), 24759 (ins u32_0Imm:$II, IntRegs:$Rt32), 24760 "memh($Re32=#$II) = $Rt32", 24761 tc_66888ded, TypeST>, Enc_8bcba4, AddrModeRel { 24762 let Inst{7-6} = 0b10; 24763 let Inst{13-13} = 0b0; 24764 let Inst{31-21} = 0b10101011010; 24765 let addrMode = AbsoluteSet; 24766 let accessSize = HalfWordAccess; 24767 let isExtended = 1; 24768 let mayStore = 1; 24769 let BaseOpcode = "S2_storerh_ap"; 24770 let isNVStorable = 1; 24771 let DecoderNamespace = "MustExtend"; 24772 let isExtendable = 1; 24773 let opExtendable = 1; 24774 let isExtentSigned = 0; 24775 let opExtentBits = 6; 24776 let opExtentAlign = 0; 24777 } 24778 def S4_storerh_rr : HInst< 24779 (outs), 24780 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24781 "memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24782 tc_d9709180, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 24783 let Inst{6-5} = 0b00; 24784 let Inst{31-21} = 0b00111011010; 24785 let addrMode = BaseRegOffset; 24786 let accessSize = HalfWordAccess; 24787 let mayStore = 1; 24788 let CextOpcode = "S2_storerh"; 24789 let InputType = "reg"; 24790 let BaseOpcode = "S2_storerh_rr"; 24791 let isNVStorable = 1; 24792 let isPredicable = 1; 24793 } 24794 def S4_storerh_ur : HInst< 24795 (outs), 24796 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 24797 "memh($Ru32<<#$Ii+#$II) = $Rt32", 24798 tc_0dc560de, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 24799 let Inst{7-7} = 0b1; 24800 let Inst{31-21} = 0b10101101010; 24801 let addrMode = BaseLongOffset; 24802 let accessSize = HalfWordAccess; 24803 let isExtended = 1; 24804 let mayStore = 1; 24805 let CextOpcode = "S2_storerh"; 24806 let InputType = "imm"; 24807 let BaseOpcode = "S2_storerh_ur"; 24808 let isNVStorable = 1; 24809 let DecoderNamespace = "MustExtend"; 24810 let isExtendable = 1; 24811 let opExtendable = 2; 24812 let isExtentSigned = 0; 24813 let opExtentBits = 6; 24814 let opExtentAlign = 0; 24815 } 24816 def S4_storerhnew_ap : HInst< 24817 (outs IntRegs:$Re32), 24818 (ins u32_0Imm:$II, IntRegs:$Nt8), 24819 "memh($Re32=#$II) = $Nt8.new", 24820 tc_53bdb2f6, TypeST>, Enc_724154, AddrModeRel { 24821 let Inst{7-6} = 0b10; 24822 let Inst{13-11} = 0b001; 24823 let Inst{31-21} = 0b10101011101; 24824 let addrMode = AbsoluteSet; 24825 let accessSize = HalfWordAccess; 24826 let isNVStore = 1; 24827 let isNewValue = 1; 24828 let isExtended = 1; 24829 let isRestrictNoSlot1Store = 1; 24830 let mayStore = 1; 24831 let BaseOpcode = "S2_storerh_ap"; 24832 let DecoderNamespace = "MustExtend"; 24833 let isExtendable = 1; 24834 let opExtendable = 1; 24835 let isExtentSigned = 0; 24836 let opExtentBits = 6; 24837 let opExtentAlign = 0; 24838 let opNewValue = 2; 24839 } 24840 def S4_storerhnew_rr : HInst< 24841 (outs), 24842 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24843 "memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24844 tc_b166348b, TypeST>, Enc_c6220b, AddrModeRel { 24845 let Inst{6-3} = 0b0001; 24846 let Inst{31-21} = 0b00111011101; 24847 let addrMode = BaseRegOffset; 24848 let accessSize = HalfWordAccess; 24849 let isNVStore = 1; 24850 let isNewValue = 1; 24851 let isRestrictNoSlot1Store = 1; 24852 let mayStore = 1; 24853 let CextOpcode = "S2_storerh"; 24854 let InputType = "reg"; 24855 let BaseOpcode = "S2_storerh_rr"; 24856 let isPredicable = 1; 24857 let opNewValue = 3; 24858 } 24859 def S4_storerhnew_ur : HInst< 24860 (outs), 24861 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 24862 "memh($Ru32<<#$Ii+#$II) = $Nt8.new", 24863 tc_a8acdac0, TypeST>, Enc_7eb485, AddrModeRel { 24864 let Inst{7-7} = 0b1; 24865 let Inst{12-11} = 0b01; 24866 let Inst{31-21} = 0b10101101101; 24867 let addrMode = BaseLongOffset; 24868 let accessSize = HalfWordAccess; 24869 let isNVStore = 1; 24870 let isNewValue = 1; 24871 let isExtended = 1; 24872 let isRestrictNoSlot1Store = 1; 24873 let mayStore = 1; 24874 let CextOpcode = "S2_storerh"; 24875 let BaseOpcode = "S2_storerh_ur"; 24876 let DecoderNamespace = "MustExtend"; 24877 let isExtendable = 1; 24878 let opExtendable = 2; 24879 let isExtentSigned = 0; 24880 let opExtentBits = 6; 24881 let opExtentAlign = 0; 24882 let opNewValue = 3; 24883 } 24884 def S4_storeri_ap : HInst< 24885 (outs IntRegs:$Re32), 24886 (ins u32_0Imm:$II, IntRegs:$Rt32), 24887 "memw($Re32=#$II) = $Rt32", 24888 tc_66888ded, TypeST>, Enc_8bcba4, AddrModeRel { 24889 let Inst{7-6} = 0b10; 24890 let Inst{13-13} = 0b0; 24891 let Inst{31-21} = 0b10101011100; 24892 let addrMode = AbsoluteSet; 24893 let accessSize = WordAccess; 24894 let isExtended = 1; 24895 let mayStore = 1; 24896 let BaseOpcode = "S2_storeri_ap"; 24897 let isNVStorable = 1; 24898 let DecoderNamespace = "MustExtend"; 24899 let isExtendable = 1; 24900 let opExtendable = 1; 24901 let isExtentSigned = 0; 24902 let opExtentBits = 6; 24903 let opExtentAlign = 0; 24904 } 24905 def S4_storeri_rr : HInst< 24906 (outs), 24907 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24908 "memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24909 tc_d9709180, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 24910 let Inst{6-5} = 0b00; 24911 let Inst{31-21} = 0b00111011100; 24912 let addrMode = BaseRegOffset; 24913 let accessSize = WordAccess; 24914 let mayStore = 1; 24915 let CextOpcode = "S2_storeri"; 24916 let InputType = "reg"; 24917 let BaseOpcode = "S2_storeri_rr"; 24918 let isNVStorable = 1; 24919 let isPredicable = 1; 24920 } 24921 def S4_storeri_ur : HInst< 24922 (outs), 24923 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 24924 "memw($Ru32<<#$Ii+#$II) = $Rt32", 24925 tc_0dc560de, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 24926 let Inst{7-7} = 0b1; 24927 let Inst{31-21} = 0b10101101100; 24928 let addrMode = BaseLongOffset; 24929 let accessSize = WordAccess; 24930 let isExtended = 1; 24931 let mayStore = 1; 24932 let CextOpcode = "S2_storeri"; 24933 let InputType = "imm"; 24934 let BaseOpcode = "S2_storeri_ur"; 24935 let isNVStorable = 1; 24936 let DecoderNamespace = "MustExtend"; 24937 let isExtendable = 1; 24938 let opExtendable = 2; 24939 let isExtentSigned = 0; 24940 let opExtentBits = 6; 24941 let opExtentAlign = 0; 24942 } 24943 def S4_storerinew_ap : HInst< 24944 (outs IntRegs:$Re32), 24945 (ins u32_0Imm:$II, IntRegs:$Nt8), 24946 "memw($Re32=#$II) = $Nt8.new", 24947 tc_53bdb2f6, TypeST>, Enc_724154, AddrModeRel { 24948 let Inst{7-6} = 0b10; 24949 let Inst{13-11} = 0b010; 24950 let Inst{31-21} = 0b10101011101; 24951 let addrMode = AbsoluteSet; 24952 let accessSize = WordAccess; 24953 let isNVStore = 1; 24954 let isNewValue = 1; 24955 let isExtended = 1; 24956 let isRestrictNoSlot1Store = 1; 24957 let mayStore = 1; 24958 let BaseOpcode = "S2_storeri_ap"; 24959 let DecoderNamespace = "MustExtend"; 24960 let isExtendable = 1; 24961 let opExtendable = 1; 24962 let isExtentSigned = 0; 24963 let opExtentBits = 6; 24964 let opExtentAlign = 0; 24965 let opNewValue = 2; 24966 } 24967 def S4_storerinew_rr : HInst< 24968 (outs), 24969 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24970 "memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24971 tc_b166348b, TypeST>, Enc_c6220b, AddrModeRel { 24972 let Inst{6-3} = 0b0010; 24973 let Inst{31-21} = 0b00111011101; 24974 let addrMode = BaseRegOffset; 24975 let accessSize = WordAccess; 24976 let isNVStore = 1; 24977 let isNewValue = 1; 24978 let isRestrictNoSlot1Store = 1; 24979 let mayStore = 1; 24980 let CextOpcode = "S2_storeri"; 24981 let InputType = "reg"; 24982 let BaseOpcode = "S2_storeri_rr"; 24983 let isPredicable = 1; 24984 let opNewValue = 3; 24985 } 24986 def S4_storerinew_ur : HInst< 24987 (outs), 24988 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 24989 "memw($Ru32<<#$Ii+#$II) = $Nt8.new", 24990 tc_a8acdac0, TypeST>, Enc_7eb485, AddrModeRel { 24991 let Inst{7-7} = 0b1; 24992 let Inst{12-11} = 0b10; 24993 let Inst{31-21} = 0b10101101101; 24994 let addrMode = BaseLongOffset; 24995 let accessSize = WordAccess; 24996 let isNVStore = 1; 24997 let isNewValue = 1; 24998 let isExtended = 1; 24999 let isRestrictNoSlot1Store = 1; 25000 let mayStore = 1; 25001 let CextOpcode = "S2_storeri"; 25002 let BaseOpcode = "S2_storeri_ur"; 25003 let DecoderNamespace = "MustExtend"; 25004 let isExtendable = 1; 25005 let opExtendable = 2; 25006 let isExtentSigned = 0; 25007 let opExtentBits = 6; 25008 let opExtentAlign = 0; 25009 let opNewValue = 3; 25010 } 25011 def S4_subaddi : HInst< 25012 (outs IntRegs:$Rd32), 25013 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32), 25014 "$Rd32 = add($Rs32,sub(#$Ii,$Ru32))", 25015 tc_c74f796f, TypeALU64>, Enc_8b8d61 { 25016 let Inst{31-23} = 0b110110111; 25017 let hasNewValue = 1; 25018 let opNewValue = 0; 25019 let prefersSlot3 = 1; 25020 let isExtendable = 1; 25021 let opExtendable = 2; 25022 let isExtentSigned = 1; 25023 let opExtentBits = 6; 25024 let opExtentAlign = 0; 25025 } 25026 def S4_subi_asl_ri : HInst< 25027 (outs IntRegs:$Rx32), 25028 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25029 "$Rx32 = sub(#$Ii,asl($Rx32in,#$II))", 25030 tc_c74f796f, TypeALU64>, Enc_c31910 { 25031 let Inst{2-0} = 0b110; 25032 let Inst{4-4} = 0b0; 25033 let Inst{31-24} = 0b11011110; 25034 let hasNewValue = 1; 25035 let opNewValue = 0; 25036 let prefersSlot3 = 1; 25037 let isExtendable = 1; 25038 let opExtendable = 1; 25039 let isExtentSigned = 0; 25040 let opExtentBits = 8; 25041 let opExtentAlign = 0; 25042 let Constraints = "$Rx32 = $Rx32in"; 25043 } 25044 def S4_subi_lsr_ri : HInst< 25045 (outs IntRegs:$Rx32), 25046 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25047 "$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))", 25048 tc_c74f796f, TypeALU64>, Enc_c31910 { 25049 let Inst{2-0} = 0b110; 25050 let Inst{4-4} = 0b1; 25051 let Inst{31-24} = 0b11011110; 25052 let hasNewValue = 1; 25053 let opNewValue = 0; 25054 let prefersSlot3 = 1; 25055 let isExtendable = 1; 25056 let opExtendable = 1; 25057 let isExtentSigned = 0; 25058 let opExtentBits = 8; 25059 let opExtentAlign = 0; 25060 let Constraints = "$Rx32 = $Rx32in"; 25061 } 25062 def S4_vrcrotate : HInst< 25063 (outs DoubleRegs:$Rdd32), 25064 (ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25065 "$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)", 25066 tc_b9c0b731, TypeS_3op>, Enc_645d54 { 25067 let Inst{7-6} = 0b11; 25068 let Inst{31-21} = 0b11000011110; 25069 let prefersSlot3 = 1; 25070 } 25071 def S4_vrcrotate_acc : HInst< 25072 (outs DoubleRegs:$Rxx32), 25073 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25074 "$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)", 25075 tc_60571023, TypeS_3op>, Enc_b72622 { 25076 let Inst{7-6} = 0b00; 25077 let Inst{31-21} = 0b11001011101; 25078 let prefersSlot3 = 1; 25079 let Constraints = "$Rxx32 = $Rxx32in"; 25080 } 25081 def S4_vxaddsubh : HInst< 25082 (outs DoubleRegs:$Rdd32), 25083 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25084 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat", 25085 tc_b44c6e2a, TypeS_3op>, Enc_a56825 { 25086 let Inst{7-5} = 0b100; 25087 let Inst{13-13} = 0b0; 25088 let Inst{31-21} = 0b11000001010; 25089 let prefersSlot3 = 1; 25090 let Defs = [USR_OVF]; 25091 } 25092 def S4_vxaddsubhr : HInst< 25093 (outs DoubleRegs:$Rdd32), 25094 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25095 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat", 25096 tc_2b6f77c6, TypeS_3op>, Enc_a56825 { 25097 let Inst{7-5} = 0b000; 25098 let Inst{13-13} = 0b0; 25099 let Inst{31-21} = 0b11000001110; 25100 let prefersSlot3 = 1; 25101 let Defs = [USR_OVF]; 25102 } 25103 def S4_vxaddsubw : HInst< 25104 (outs DoubleRegs:$Rdd32), 25105 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25106 "$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat", 25107 tc_b44c6e2a, TypeS_3op>, Enc_a56825 { 25108 let Inst{7-5} = 0b000; 25109 let Inst{13-13} = 0b0; 25110 let Inst{31-21} = 0b11000001010; 25111 let prefersSlot3 = 1; 25112 let Defs = [USR_OVF]; 25113 } 25114 def S4_vxsubaddh : HInst< 25115 (outs DoubleRegs:$Rdd32), 25116 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25117 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat", 25118 tc_b44c6e2a, TypeS_3op>, Enc_a56825 { 25119 let Inst{7-5} = 0b110; 25120 let Inst{13-13} = 0b0; 25121 let Inst{31-21} = 0b11000001010; 25122 let prefersSlot3 = 1; 25123 let Defs = [USR_OVF]; 25124 } 25125 def S4_vxsubaddhr : HInst< 25126 (outs DoubleRegs:$Rdd32), 25127 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25128 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat", 25129 tc_2b6f77c6, TypeS_3op>, Enc_a56825 { 25130 let Inst{7-5} = 0b010; 25131 let Inst{13-13} = 0b0; 25132 let Inst{31-21} = 0b11000001110; 25133 let prefersSlot3 = 1; 25134 let Defs = [USR_OVF]; 25135 } 25136 def S4_vxsubaddw : HInst< 25137 (outs DoubleRegs:$Rdd32), 25138 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25139 "$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat", 25140 tc_b44c6e2a, TypeS_3op>, Enc_a56825 { 25141 let Inst{7-5} = 0b010; 25142 let Inst{13-13} = 0b0; 25143 let Inst{31-21} = 0b11000001010; 25144 let prefersSlot3 = 1; 25145 let Defs = [USR_OVF]; 25146 } 25147 def S5_asrhub_rnd_sat : HInst< 25148 (outs IntRegs:$Rd32), 25149 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25150 "$Rd32 = vasrhub($Rss32,#$Ii):raw", 25151 tc_2b6f77c6, TypeS_2op>, Enc_11a146, Requires<[HasV5]> { 25152 let Inst{7-5} = 0b100; 25153 let Inst{13-12} = 0b00; 25154 let Inst{31-21} = 0b10001000011; 25155 let hasNewValue = 1; 25156 let opNewValue = 0; 25157 let prefersSlot3 = 1; 25158 let Defs = [USR_OVF]; 25159 } 25160 def S5_asrhub_rnd_sat_goodsyntax : HInst< 25161 (outs IntRegs:$Rd32), 25162 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25163 "$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat", 25164 tc_2b6f77c6, TypeS_2op>, Requires<[HasV5]> { 25165 let hasNewValue = 1; 25166 let opNewValue = 0; 25167 let isPseudo = 1; 25168 } 25169 def S5_asrhub_sat : HInst< 25170 (outs IntRegs:$Rd32), 25171 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25172 "$Rd32 = vasrhub($Rss32,#$Ii):sat", 25173 tc_2b6f77c6, TypeS_2op>, Enc_11a146, Requires<[HasV5]> { 25174 let Inst{7-5} = 0b101; 25175 let Inst{13-12} = 0b00; 25176 let Inst{31-21} = 0b10001000011; 25177 let hasNewValue = 1; 25178 let opNewValue = 0; 25179 let prefersSlot3 = 1; 25180 let Defs = [USR_OVF]; 25181 } 25182 def S5_popcountp : HInst< 25183 (outs IntRegs:$Rd32), 25184 (ins DoubleRegs:$Rss32), 25185 "$Rd32 = popcount($Rss32)", 25186 tc_00afc57e, TypeS_2op>, Enc_90cd8b, Requires<[HasV5]> { 25187 let Inst{13-5} = 0b000000011; 25188 let Inst{31-21} = 0b10001000011; 25189 let hasNewValue = 1; 25190 let opNewValue = 0; 25191 let prefersSlot3 = 1; 25192 } 25193 def S5_vasrhrnd : HInst< 25194 (outs DoubleRegs:$Rdd32), 25195 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25196 "$Rdd32 = vasrh($Rss32,#$Ii):raw", 25197 tc_2b6f77c6, TypeS_2op>, Enc_12b6e9, Requires<[HasV5]> { 25198 let Inst{7-5} = 0b000; 25199 let Inst{13-12} = 0b00; 25200 let Inst{31-21} = 0b10000000001; 25201 let prefersSlot3 = 1; 25202 } 25203 def S5_vasrhrnd_goodsyntax : HInst< 25204 (outs DoubleRegs:$Rdd32), 25205 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25206 "$Rdd32 = vasrh($Rss32,#$Ii):rnd", 25207 tc_2b6f77c6, TypeS_2op>, Requires<[HasV5]> { 25208 let isPseudo = 1; 25209 } 25210 def S6_allocframe_to_raw : HInst< 25211 (outs), 25212 (ins u11_3Imm:$Ii), 25213 "allocframe(#$Ii)", 25214 tc_e216a5db, TypeMAPPING>, Requires<[HasV65]> { 25215 let isPseudo = 1; 25216 let isCodeGenOnly = 1; 25217 } 25218 def S6_rol_i_p : HInst< 25219 (outs DoubleRegs:$Rdd32), 25220 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 25221 "$Rdd32 = rol($Rss32,#$Ii)", 25222 tc_55050d58, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> { 25223 let Inst{7-5} = 0b011; 25224 let Inst{31-21} = 0b10000000000; 25225 } 25226 def S6_rol_i_p_acc : HInst< 25227 (outs DoubleRegs:$Rxx32), 25228 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25229 "$Rxx32 += rol($Rss32,#$Ii)", 25230 tc_41d5298e, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25231 let Inst{7-5} = 0b111; 25232 let Inst{31-21} = 0b10000010000; 25233 let prefersSlot3 = 1; 25234 let Constraints = "$Rxx32 = $Rxx32in"; 25235 } 25236 def S6_rol_i_p_and : HInst< 25237 (outs DoubleRegs:$Rxx32), 25238 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25239 "$Rxx32 &= rol($Rss32,#$Ii)", 25240 tc_41d5298e, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25241 let Inst{7-5} = 0b011; 25242 let Inst{31-21} = 0b10000010010; 25243 let prefersSlot3 = 1; 25244 let Constraints = "$Rxx32 = $Rxx32in"; 25245 } 25246 def S6_rol_i_p_nac : HInst< 25247 (outs DoubleRegs:$Rxx32), 25248 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25249 "$Rxx32 -= rol($Rss32,#$Ii)", 25250 tc_41d5298e, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25251 let Inst{7-5} = 0b011; 25252 let Inst{31-21} = 0b10000010000; 25253 let prefersSlot3 = 1; 25254 let Constraints = "$Rxx32 = $Rxx32in"; 25255 } 25256 def S6_rol_i_p_or : HInst< 25257 (outs DoubleRegs:$Rxx32), 25258 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25259 "$Rxx32 |= rol($Rss32,#$Ii)", 25260 tc_41d5298e, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25261 let Inst{7-5} = 0b111; 25262 let Inst{31-21} = 0b10000010010; 25263 let prefersSlot3 = 1; 25264 let Constraints = "$Rxx32 = $Rxx32in"; 25265 } 25266 def S6_rol_i_p_xacc : HInst< 25267 (outs DoubleRegs:$Rxx32), 25268 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25269 "$Rxx32 ^= rol($Rss32,#$Ii)", 25270 tc_41d5298e, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25271 let Inst{7-5} = 0b011; 25272 let Inst{31-21} = 0b10000010100; 25273 let prefersSlot3 = 1; 25274 let Constraints = "$Rxx32 = $Rxx32in"; 25275 } 25276 def S6_rol_i_r : HInst< 25277 (outs IntRegs:$Rd32), 25278 (ins IntRegs:$Rs32, u5_0Imm:$Ii), 25279 "$Rd32 = rol($Rs32,#$Ii)", 25280 tc_55050d58, TypeS_2op>, Enc_a05677, Requires<[HasV60]> { 25281 let Inst{7-5} = 0b011; 25282 let Inst{13-13} = 0b0; 25283 let Inst{31-21} = 0b10001100000; 25284 let hasNewValue = 1; 25285 let opNewValue = 0; 25286 } 25287 def S6_rol_i_r_acc : HInst< 25288 (outs IntRegs:$Rx32), 25289 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25290 "$Rx32 += rol($Rs32,#$Ii)", 25291 tc_41d5298e, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25292 let Inst{7-5} = 0b111; 25293 let Inst{13-13} = 0b0; 25294 let Inst{31-21} = 0b10001110000; 25295 let hasNewValue = 1; 25296 let opNewValue = 0; 25297 let prefersSlot3 = 1; 25298 let Constraints = "$Rx32 = $Rx32in"; 25299 } 25300 def S6_rol_i_r_and : HInst< 25301 (outs IntRegs:$Rx32), 25302 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25303 "$Rx32 &= rol($Rs32,#$Ii)", 25304 tc_41d5298e, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25305 let Inst{7-5} = 0b011; 25306 let Inst{13-13} = 0b0; 25307 let Inst{31-21} = 0b10001110010; 25308 let hasNewValue = 1; 25309 let opNewValue = 0; 25310 let prefersSlot3 = 1; 25311 let Constraints = "$Rx32 = $Rx32in"; 25312 } 25313 def S6_rol_i_r_nac : HInst< 25314 (outs IntRegs:$Rx32), 25315 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25316 "$Rx32 -= rol($Rs32,#$Ii)", 25317 tc_41d5298e, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25318 let Inst{7-5} = 0b011; 25319 let Inst{13-13} = 0b0; 25320 let Inst{31-21} = 0b10001110000; 25321 let hasNewValue = 1; 25322 let opNewValue = 0; 25323 let prefersSlot3 = 1; 25324 let Constraints = "$Rx32 = $Rx32in"; 25325 } 25326 def S6_rol_i_r_or : HInst< 25327 (outs IntRegs:$Rx32), 25328 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25329 "$Rx32 |= rol($Rs32,#$Ii)", 25330 tc_41d5298e, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25331 let Inst{7-5} = 0b111; 25332 let Inst{13-13} = 0b0; 25333 let Inst{31-21} = 0b10001110010; 25334 let hasNewValue = 1; 25335 let opNewValue = 0; 25336 let prefersSlot3 = 1; 25337 let Constraints = "$Rx32 = $Rx32in"; 25338 } 25339 def S6_rol_i_r_xacc : HInst< 25340 (outs IntRegs:$Rx32), 25341 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25342 "$Rx32 ^= rol($Rs32,#$Ii)", 25343 tc_41d5298e, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25344 let Inst{7-5} = 0b011; 25345 let Inst{13-13} = 0b0; 25346 let Inst{31-21} = 0b10001110100; 25347 let hasNewValue = 1; 25348 let opNewValue = 0; 25349 let prefersSlot3 = 1; 25350 let Constraints = "$Rx32 = $Rx32in"; 25351 } 25352 def S6_vsplatrbp : HInst< 25353 (outs DoubleRegs:$Rdd32), 25354 (ins IntRegs:$Rs32), 25355 "$Rdd32 = vsplatb($Rs32)", 25356 tc_be706f30, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> { 25357 let Inst{13-5} = 0b000000100; 25358 let Inst{31-21} = 0b10000100010; 25359 } 25360 def S6_vtrunehb_ppp : HInst< 25361 (outs DoubleRegs:$Rdd32), 25362 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25363 "$Rdd32 = vtrunehb($Rss32,$Rtt32)", 25364 tc_55050d58, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25365 let Inst{7-5} = 0b011; 25366 let Inst{13-13} = 0b0; 25367 let Inst{31-21} = 0b11000001100; 25368 } 25369 def S6_vtrunohb_ppp : HInst< 25370 (outs DoubleRegs:$Rdd32), 25371 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25372 "$Rdd32 = vtrunohb($Rss32,$Rtt32)", 25373 tc_55050d58, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25374 let Inst{7-5} = 0b101; 25375 let Inst{13-13} = 0b0; 25376 let Inst{31-21} = 0b11000001100; 25377 } 25378 def SA1_addi : HInst< 25379 (outs GeneralSubRegs:$Rx16), 25380 (ins IntRegs:$Rx16in, s32_0Imm:$Ii), 25381 "$Rx16 = add($Rx16in,#$Ii)", 25382 tc_609d2efe, TypeSUBINSN>, Enc_93af4c { 25383 let Inst{12-11} = 0b00; 25384 let hasNewValue = 1; 25385 let opNewValue = 0; 25386 let AsmVariantName = "NonParsable"; 25387 let DecoderNamespace = "SUBINSN_A"; 25388 let isExtendable = 1; 25389 let opExtendable = 2; 25390 let isExtentSigned = 1; 25391 let opExtentBits = 7; 25392 let opExtentAlign = 0; 25393 let Constraints = "$Rx16 = $Rx16in"; 25394 } 25395 def SA1_addrx : HInst< 25396 (outs GeneralSubRegs:$Rx16), 25397 (ins IntRegs:$Rx16in, GeneralSubRegs:$Rs16), 25398 "$Rx16 = add($Rx16in,$Rs16)", 25399 tc_609d2efe, TypeSUBINSN>, Enc_0527db { 25400 let Inst{12-8} = 0b11000; 25401 let hasNewValue = 1; 25402 let opNewValue = 0; 25403 let AsmVariantName = "NonParsable"; 25404 let DecoderNamespace = "SUBINSN_A"; 25405 let Constraints = "$Rx16 = $Rx16in"; 25406 } 25407 def SA1_addsp : HInst< 25408 (outs GeneralSubRegs:$Rd16), 25409 (ins u6_2Imm:$Ii), 25410 "$Rd16 = add(r29,#$Ii)", 25411 tc_a904d137, TypeSUBINSN>, Enc_2df31d { 25412 let Inst{12-10} = 0b011; 25413 let hasNewValue = 1; 25414 let opNewValue = 0; 25415 let AsmVariantName = "NonParsable"; 25416 let Uses = [R29]; 25417 let DecoderNamespace = "SUBINSN_A"; 25418 } 25419 def SA1_and1 : HInst< 25420 (outs GeneralSubRegs:$Rd16), 25421 (ins GeneralSubRegs:$Rs16), 25422 "$Rd16 = and($Rs16,#1)", 25423 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25424 let Inst{12-8} = 0b10010; 25425 let hasNewValue = 1; 25426 let opNewValue = 0; 25427 let AsmVariantName = "NonParsable"; 25428 let DecoderNamespace = "SUBINSN_A"; 25429 } 25430 def SA1_clrf : HInst< 25431 (outs GeneralSubRegs:$Rd16), 25432 (ins), 25433 "if (!p0) $Rd16 = #0", 25434 tc_1b82a277, TypeSUBINSN>, Enc_1f5ba6 { 25435 let Inst{12-4} = 0b110100111; 25436 let isPredicated = 1; 25437 let isPredicatedFalse = 1; 25438 let hasNewValue = 1; 25439 let opNewValue = 0; 25440 let AsmVariantName = "NonParsable"; 25441 let Uses = [P0]; 25442 let DecoderNamespace = "SUBINSN_A"; 25443 } 25444 def SA1_clrfnew : HInst< 25445 (outs GeneralSubRegs:$Rd16), 25446 (ins), 25447 "if (!p0.new) $Rd16 = #0", 25448 tc_e9c822f7, TypeSUBINSN>, Enc_1f5ba6 { 25449 let Inst{12-4} = 0b110100101; 25450 let isPredicated = 1; 25451 let isPredicatedFalse = 1; 25452 let hasNewValue = 1; 25453 let opNewValue = 0; 25454 let AsmVariantName = "NonParsable"; 25455 let isPredicatedNew = 1; 25456 let Uses = [P0]; 25457 let DecoderNamespace = "SUBINSN_A"; 25458 } 25459 def SA1_clrt : HInst< 25460 (outs GeneralSubRegs:$Rd16), 25461 (ins), 25462 "if (p0) $Rd16 = #0", 25463 tc_1b82a277, TypeSUBINSN>, Enc_1f5ba6 { 25464 let Inst{12-4} = 0b110100110; 25465 let isPredicated = 1; 25466 let hasNewValue = 1; 25467 let opNewValue = 0; 25468 let AsmVariantName = "NonParsable"; 25469 let Uses = [P0]; 25470 let DecoderNamespace = "SUBINSN_A"; 25471 } 25472 def SA1_clrtnew : HInst< 25473 (outs GeneralSubRegs:$Rd16), 25474 (ins), 25475 "if (p0.new) $Rd16 = #0", 25476 tc_e9c822f7, TypeSUBINSN>, Enc_1f5ba6 { 25477 let Inst{12-4} = 0b110100100; 25478 let isPredicated = 1; 25479 let hasNewValue = 1; 25480 let opNewValue = 0; 25481 let AsmVariantName = "NonParsable"; 25482 let isPredicatedNew = 1; 25483 let Uses = [P0]; 25484 let DecoderNamespace = "SUBINSN_A"; 25485 } 25486 def SA1_cmpeqi : HInst< 25487 (outs), 25488 (ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii), 25489 "p0 = cmp.eq($Rs16,#$Ii)", 25490 tc_90f3e30c, TypeSUBINSN>, Enc_63eaeb { 25491 let Inst{3-2} = 0b00; 25492 let Inst{12-8} = 0b11001; 25493 let AsmVariantName = "NonParsable"; 25494 let Defs = [P0]; 25495 let DecoderNamespace = "SUBINSN_A"; 25496 } 25497 def SA1_combine0i : HInst< 25498 (outs GeneralDoubleLow8Regs:$Rdd8), 25499 (ins u2_0Imm:$Ii), 25500 "$Rdd8 = combine(#0,#$Ii)", 25501 tc_a904d137, TypeSUBINSN>, Enc_ed48be { 25502 let Inst{4-3} = 0b00; 25503 let Inst{12-7} = 0b111000; 25504 let hasNewValue = 1; 25505 let opNewValue = 0; 25506 let AsmVariantName = "NonParsable"; 25507 let DecoderNamespace = "SUBINSN_A"; 25508 } 25509 def SA1_combine1i : HInst< 25510 (outs GeneralDoubleLow8Regs:$Rdd8), 25511 (ins u2_0Imm:$Ii), 25512 "$Rdd8 = combine(#1,#$Ii)", 25513 tc_a904d137, TypeSUBINSN>, Enc_ed48be { 25514 let Inst{4-3} = 0b01; 25515 let Inst{12-7} = 0b111000; 25516 let hasNewValue = 1; 25517 let opNewValue = 0; 25518 let AsmVariantName = "NonParsable"; 25519 let DecoderNamespace = "SUBINSN_A"; 25520 } 25521 def SA1_combine2i : HInst< 25522 (outs GeneralDoubleLow8Regs:$Rdd8), 25523 (ins u2_0Imm:$Ii), 25524 "$Rdd8 = combine(#2,#$Ii)", 25525 tc_a904d137, TypeSUBINSN>, Enc_ed48be { 25526 let Inst{4-3} = 0b10; 25527 let Inst{12-7} = 0b111000; 25528 let hasNewValue = 1; 25529 let opNewValue = 0; 25530 let AsmVariantName = "NonParsable"; 25531 let DecoderNamespace = "SUBINSN_A"; 25532 } 25533 def SA1_combine3i : HInst< 25534 (outs GeneralDoubleLow8Regs:$Rdd8), 25535 (ins u2_0Imm:$Ii), 25536 "$Rdd8 = combine(#3,#$Ii)", 25537 tc_a904d137, TypeSUBINSN>, Enc_ed48be { 25538 let Inst{4-3} = 0b11; 25539 let Inst{12-7} = 0b111000; 25540 let hasNewValue = 1; 25541 let opNewValue = 0; 25542 let AsmVariantName = "NonParsable"; 25543 let DecoderNamespace = "SUBINSN_A"; 25544 } 25545 def SA1_combinerz : HInst< 25546 (outs GeneralDoubleLow8Regs:$Rdd8), 25547 (ins GeneralSubRegs:$Rs16), 25548 "$Rdd8 = combine($Rs16,#0)", 25549 tc_a904d137, TypeSUBINSN>, Enc_399e12 { 25550 let Inst{3-3} = 0b1; 25551 let Inst{12-8} = 0b11101; 25552 let hasNewValue = 1; 25553 let opNewValue = 0; 25554 let AsmVariantName = "NonParsable"; 25555 let DecoderNamespace = "SUBINSN_A"; 25556 } 25557 def SA1_combinezr : HInst< 25558 (outs GeneralDoubleLow8Regs:$Rdd8), 25559 (ins GeneralSubRegs:$Rs16), 25560 "$Rdd8 = combine(#0,$Rs16)", 25561 tc_a904d137, TypeSUBINSN>, Enc_399e12 { 25562 let Inst{3-3} = 0b0; 25563 let Inst{12-8} = 0b11101; 25564 let hasNewValue = 1; 25565 let opNewValue = 0; 25566 let AsmVariantName = "NonParsable"; 25567 let DecoderNamespace = "SUBINSN_A"; 25568 } 25569 def SA1_dec : HInst< 25570 (outs GeneralSubRegs:$Rd16), 25571 (ins GeneralSubRegs:$Rs16, n1Const:$n1), 25572 "$Rd16 = add($Rs16,#$n1)", 25573 tc_609d2efe, TypeSUBINSN>, Enc_ee5ed0 { 25574 let Inst{12-8} = 0b10011; 25575 let hasNewValue = 1; 25576 let opNewValue = 0; 25577 let AsmVariantName = "NonParsable"; 25578 let DecoderNamespace = "SUBINSN_A"; 25579 } 25580 def SA1_inc : HInst< 25581 (outs GeneralSubRegs:$Rd16), 25582 (ins GeneralSubRegs:$Rs16), 25583 "$Rd16 = add($Rs16,#1)", 25584 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25585 let Inst{12-8} = 0b10001; 25586 let hasNewValue = 1; 25587 let opNewValue = 0; 25588 let AsmVariantName = "NonParsable"; 25589 let DecoderNamespace = "SUBINSN_A"; 25590 } 25591 def SA1_seti : HInst< 25592 (outs GeneralSubRegs:$Rd16), 25593 (ins u32_0Imm:$Ii), 25594 "$Rd16 = #$Ii", 25595 tc_a904d137, TypeSUBINSN>, Enc_e39bb2 { 25596 let Inst{12-10} = 0b010; 25597 let hasNewValue = 1; 25598 let opNewValue = 0; 25599 let AsmVariantName = "NonParsable"; 25600 let DecoderNamespace = "SUBINSN_A"; 25601 let isExtendable = 1; 25602 let opExtendable = 1; 25603 let isExtentSigned = 0; 25604 let opExtentBits = 6; 25605 let opExtentAlign = 0; 25606 } 25607 def SA1_setin1 : HInst< 25608 (outs GeneralSubRegs:$Rd16), 25609 (ins n1Const:$n1), 25610 "$Rd16 = #$n1", 25611 tc_a904d137, TypeSUBINSN>, Enc_7a0ea6 { 25612 let Inst{12-4} = 0b110100000; 25613 let hasNewValue = 1; 25614 let opNewValue = 0; 25615 let AsmVariantName = "NonParsable"; 25616 let DecoderNamespace = "SUBINSN_A"; 25617 } 25618 def SA1_sxtb : HInst< 25619 (outs GeneralSubRegs:$Rd16), 25620 (ins GeneralSubRegs:$Rs16), 25621 "$Rd16 = sxtb($Rs16)", 25622 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25623 let Inst{12-8} = 0b10101; 25624 let hasNewValue = 1; 25625 let opNewValue = 0; 25626 let AsmVariantName = "NonParsable"; 25627 let DecoderNamespace = "SUBINSN_A"; 25628 } 25629 def SA1_sxth : HInst< 25630 (outs GeneralSubRegs:$Rd16), 25631 (ins GeneralSubRegs:$Rs16), 25632 "$Rd16 = sxth($Rs16)", 25633 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25634 let Inst{12-8} = 0b10100; 25635 let hasNewValue = 1; 25636 let opNewValue = 0; 25637 let AsmVariantName = "NonParsable"; 25638 let DecoderNamespace = "SUBINSN_A"; 25639 } 25640 def SA1_tfr : HInst< 25641 (outs GeneralSubRegs:$Rd16), 25642 (ins GeneralSubRegs:$Rs16), 25643 "$Rd16 = $Rs16", 25644 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25645 let Inst{12-8} = 0b10000; 25646 let hasNewValue = 1; 25647 let opNewValue = 0; 25648 let AsmVariantName = "NonParsable"; 25649 let DecoderNamespace = "SUBINSN_A"; 25650 } 25651 def SA1_zxtb : HInst< 25652 (outs GeneralSubRegs:$Rd16), 25653 (ins GeneralSubRegs:$Rs16), 25654 "$Rd16 = and($Rs16,#255)", 25655 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25656 let Inst{12-8} = 0b10111; 25657 let hasNewValue = 1; 25658 let opNewValue = 0; 25659 let AsmVariantName = "NonParsable"; 25660 let DecoderNamespace = "SUBINSN_A"; 25661 } 25662 def SA1_zxth : HInst< 25663 (outs GeneralSubRegs:$Rd16), 25664 (ins GeneralSubRegs:$Rs16), 25665 "$Rd16 = zxth($Rs16)", 25666 tc_a904d137, TypeSUBINSN>, Enc_97d666 { 25667 let Inst{12-8} = 0b10110; 25668 let hasNewValue = 1; 25669 let opNewValue = 0; 25670 let AsmVariantName = "NonParsable"; 25671 let DecoderNamespace = "SUBINSN_A"; 25672 } 25673 def SL1_loadri_io : HInst< 25674 (outs GeneralSubRegs:$Rd16), 25675 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 25676 "$Rd16 = memw($Rs16+#$Ii)", 25677 tc_7f881c76, TypeSUBINSN>, Enc_53dca9 { 25678 let Inst{12-12} = 0b0; 25679 let hasNewValue = 1; 25680 let opNewValue = 0; 25681 let addrMode = BaseImmOffset; 25682 let accessSize = WordAccess; 25683 let AsmVariantName = "NonParsable"; 25684 let mayLoad = 1; 25685 let DecoderNamespace = "SUBINSN_L1"; 25686 } 25687 def SL1_loadrub_io : HInst< 25688 (outs GeneralSubRegs:$Rd16), 25689 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 25690 "$Rd16 = memub($Rs16+#$Ii)", 25691 tc_7f881c76, TypeSUBINSN>, Enc_c175d0 { 25692 let Inst{12-12} = 0b1; 25693 let hasNewValue = 1; 25694 let opNewValue = 0; 25695 let addrMode = BaseImmOffset; 25696 let accessSize = ByteAccess; 25697 let AsmVariantName = "NonParsable"; 25698 let mayLoad = 1; 25699 let DecoderNamespace = "SUBINSN_L1"; 25700 } 25701 def SL2_deallocframe : HInst< 25702 (outs), 25703 (ins), 25704 "deallocframe", 25705 tc_36c68ad1, TypeSUBINSN>, Enc_e3b0c4 { 25706 let Inst{12-0} = 0b1111100000000; 25707 let accessSize = DoubleWordAccess; 25708 let AsmVariantName = "NonParsable"; 25709 let mayLoad = 1; 25710 let Uses = [FRAMEKEY, R30]; 25711 let Defs = [R30, R29, R31]; 25712 let DecoderNamespace = "SUBINSN_L2"; 25713 } 25714 def SL2_jumpr31 : HInst< 25715 (outs), 25716 (ins), 25717 "jumpr r31", 25718 tc_2a160009, TypeSUBINSN>, Enc_e3b0c4 { 25719 let Inst{12-0} = 0b1111111000000; 25720 let isTerminator = 1; 25721 let isIndirectBranch = 1; 25722 let AsmVariantName = "NonParsable"; 25723 let cofMax1 = 1; 25724 let isReturn = 1; 25725 let Uses = [R31]; 25726 let Defs = [PC]; 25727 let DecoderNamespace = "SUBINSN_L2"; 25728 } 25729 def SL2_jumpr31_f : HInst< 25730 (outs), 25731 (ins), 25732 "if (!p0) jumpr r31", 25733 tc_2a160009, TypeSUBINSN>, Enc_e3b0c4 { 25734 let Inst{12-0} = 0b1111111000101; 25735 let isPredicated = 1; 25736 let isPredicatedFalse = 1; 25737 let isTerminator = 1; 25738 let isIndirectBranch = 1; 25739 let AsmVariantName = "NonParsable"; 25740 let cofMax1 = 1; 25741 let isReturn = 1; 25742 let Uses = [P0, R31]; 25743 let Defs = [PC]; 25744 let isTaken = Inst{4}; 25745 let DecoderNamespace = "SUBINSN_L2"; 25746 } 25747 def SL2_jumpr31_fnew : HInst< 25748 (outs), 25749 (ins), 25750 "if (!p0.new) jumpr:nt r31", 25751 tc_2a160009, TypeSUBINSN>, Enc_e3b0c4 { 25752 let Inst{12-0} = 0b1111111000111; 25753 let isPredicated = 1; 25754 let isPredicatedFalse = 1; 25755 let isTerminator = 1; 25756 let isIndirectBranch = 1; 25757 let AsmVariantName = "NonParsable"; 25758 let isPredicatedNew = 1; 25759 let cofMax1 = 1; 25760 let isReturn = 1; 25761 let Uses = [P0, R31]; 25762 let Defs = [PC]; 25763 let isTaken = Inst{4}; 25764 let DecoderNamespace = "SUBINSN_L2"; 25765 } 25766 def SL2_jumpr31_t : HInst< 25767 (outs), 25768 (ins), 25769 "if (p0) jumpr r31", 25770 tc_2a160009, TypeSUBINSN>, Enc_e3b0c4 { 25771 let Inst{12-0} = 0b1111111000100; 25772 let isPredicated = 1; 25773 let isTerminator = 1; 25774 let isIndirectBranch = 1; 25775 let AsmVariantName = "NonParsable"; 25776 let cofMax1 = 1; 25777 let isReturn = 1; 25778 let Uses = [P0, R31]; 25779 let Defs = [PC]; 25780 let isTaken = Inst{4}; 25781 let DecoderNamespace = "SUBINSN_L2"; 25782 } 25783 def SL2_jumpr31_tnew : HInst< 25784 (outs), 25785 (ins), 25786 "if (p0.new) jumpr:nt r31", 25787 tc_2a160009, TypeSUBINSN>, Enc_e3b0c4 { 25788 let Inst{12-0} = 0b1111111000110; 25789 let isPredicated = 1; 25790 let isTerminator = 1; 25791 let isIndirectBranch = 1; 25792 let AsmVariantName = "NonParsable"; 25793 let isPredicatedNew = 1; 25794 let cofMax1 = 1; 25795 let isReturn = 1; 25796 let Uses = [P0, R31]; 25797 let Defs = [PC]; 25798 let isTaken = Inst{4}; 25799 let DecoderNamespace = "SUBINSN_L2"; 25800 } 25801 def SL2_loadrb_io : HInst< 25802 (outs GeneralSubRegs:$Rd16), 25803 (ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii), 25804 "$Rd16 = memb($Rs16+#$Ii)", 25805 tc_7f881c76, TypeSUBINSN>, Enc_2fbf3c { 25806 let Inst{12-11} = 0b10; 25807 let hasNewValue = 1; 25808 let opNewValue = 0; 25809 let addrMode = BaseImmOffset; 25810 let accessSize = ByteAccess; 25811 let AsmVariantName = "NonParsable"; 25812 let mayLoad = 1; 25813 let DecoderNamespace = "SUBINSN_L2"; 25814 } 25815 def SL2_loadrd_sp : HInst< 25816 (outs GeneralDoubleLow8Regs:$Rdd8), 25817 (ins u5_3Imm:$Ii), 25818 "$Rdd8 = memd(r29+#$Ii)", 25819 tc_9c98e8af, TypeSUBINSN>, Enc_86a14b { 25820 let Inst{12-8} = 0b11110; 25821 let hasNewValue = 1; 25822 let opNewValue = 0; 25823 let addrMode = BaseImmOffset; 25824 let accessSize = DoubleWordAccess; 25825 let AsmVariantName = "NonParsable"; 25826 let mayLoad = 1; 25827 let Uses = [R29]; 25828 let DecoderNamespace = "SUBINSN_L2"; 25829 } 25830 def SL2_loadrh_io : HInst< 25831 (outs GeneralSubRegs:$Rd16), 25832 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 25833 "$Rd16 = memh($Rs16+#$Ii)", 25834 tc_7f881c76, TypeSUBINSN>, Enc_2bae10 { 25835 let Inst{12-11} = 0b00; 25836 let hasNewValue = 1; 25837 let opNewValue = 0; 25838 let addrMode = BaseImmOffset; 25839 let accessSize = HalfWordAccess; 25840 let AsmVariantName = "NonParsable"; 25841 let mayLoad = 1; 25842 let DecoderNamespace = "SUBINSN_L2"; 25843 } 25844 def SL2_loadri_sp : HInst< 25845 (outs GeneralSubRegs:$Rd16), 25846 (ins u5_2Imm:$Ii), 25847 "$Rd16 = memw(r29+#$Ii)", 25848 tc_9c98e8af, TypeSUBINSN>, Enc_51635c { 25849 let Inst{12-9} = 0b1110; 25850 let hasNewValue = 1; 25851 let opNewValue = 0; 25852 let addrMode = BaseImmOffset; 25853 let accessSize = WordAccess; 25854 let AsmVariantName = "NonParsable"; 25855 let mayLoad = 1; 25856 let Uses = [R29]; 25857 let DecoderNamespace = "SUBINSN_L2"; 25858 } 25859 def SL2_loadruh_io : HInst< 25860 (outs GeneralSubRegs:$Rd16), 25861 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 25862 "$Rd16 = memuh($Rs16+#$Ii)", 25863 tc_7f881c76, TypeSUBINSN>, Enc_2bae10 { 25864 let Inst{12-11} = 0b01; 25865 let hasNewValue = 1; 25866 let opNewValue = 0; 25867 let addrMode = BaseImmOffset; 25868 let accessSize = HalfWordAccess; 25869 let AsmVariantName = "NonParsable"; 25870 let mayLoad = 1; 25871 let DecoderNamespace = "SUBINSN_L2"; 25872 } 25873 def SL2_return : HInst< 25874 (outs), 25875 (ins), 25876 "dealloc_return", 25877 tc_fcab4871, TypeSUBINSN>, Enc_e3b0c4 { 25878 let Inst{12-0} = 0b1111101000000; 25879 let isTerminator = 1; 25880 let isIndirectBranch = 1; 25881 let accessSize = DoubleWordAccess; 25882 let AsmVariantName = "NonParsable"; 25883 let mayLoad = 1; 25884 let cofMax1 = 1; 25885 let isRestrictNoSlot1Store = 1; 25886 let isReturn = 1; 25887 let Uses = [FRAMEKEY, R30]; 25888 let Defs = [PC, R30, R29, R31]; 25889 let DecoderNamespace = "SUBINSN_L2"; 25890 } 25891 def SL2_return_f : HInst< 25892 (outs), 25893 (ins), 25894 "if (!p0) dealloc_return", 25895 tc_fcab4871, TypeSUBINSN>, Enc_e3b0c4 { 25896 let Inst{12-0} = 0b1111101000101; 25897 let isPredicated = 1; 25898 let isPredicatedFalse = 1; 25899 let isTerminator = 1; 25900 let isIndirectBranch = 1; 25901 let accessSize = DoubleWordAccess; 25902 let AsmVariantName = "NonParsable"; 25903 let mayLoad = 1; 25904 let cofMax1 = 1; 25905 let isRestrictNoSlot1Store = 1; 25906 let isReturn = 1; 25907 let Uses = [FRAMEKEY, P0, R30]; 25908 let Defs = [PC, R30, R29, R31]; 25909 let isTaken = Inst{4}; 25910 let DecoderNamespace = "SUBINSN_L2"; 25911 } 25912 def SL2_return_fnew : HInst< 25913 (outs), 25914 (ins), 25915 "if (!p0.new) dealloc_return:nt", 25916 tc_fcab4871, TypeSUBINSN>, Enc_e3b0c4 { 25917 let Inst{12-0} = 0b1111101000111; 25918 let isPredicated = 1; 25919 let isPredicatedFalse = 1; 25920 let isTerminator = 1; 25921 let isIndirectBranch = 1; 25922 let accessSize = DoubleWordAccess; 25923 let AsmVariantName = "NonParsable"; 25924 let isPredicatedNew = 1; 25925 let mayLoad = 1; 25926 let cofMax1 = 1; 25927 let isRestrictNoSlot1Store = 1; 25928 let isReturn = 1; 25929 let Uses = [FRAMEKEY, P0, R30]; 25930 let Defs = [PC, R30, R29, R31]; 25931 let isTaken = Inst{4}; 25932 let DecoderNamespace = "SUBINSN_L2"; 25933 } 25934 def SL2_return_t : HInst< 25935 (outs), 25936 (ins), 25937 "if (p0) dealloc_return", 25938 tc_fcab4871, TypeSUBINSN>, Enc_e3b0c4 { 25939 let Inst{12-0} = 0b1111101000100; 25940 let isPredicated = 1; 25941 let isTerminator = 1; 25942 let isIndirectBranch = 1; 25943 let accessSize = DoubleWordAccess; 25944 let AsmVariantName = "NonParsable"; 25945 let mayLoad = 1; 25946 let cofMax1 = 1; 25947 let isRestrictNoSlot1Store = 1; 25948 let isReturn = 1; 25949 let Uses = [FRAMEKEY, P0, R30]; 25950 let Defs = [PC, R30, R29, R31]; 25951 let isTaken = Inst{4}; 25952 let DecoderNamespace = "SUBINSN_L2"; 25953 } 25954 def SL2_return_tnew : HInst< 25955 (outs), 25956 (ins), 25957 "if (p0.new) dealloc_return:nt", 25958 tc_fcab4871, TypeSUBINSN>, Enc_e3b0c4 { 25959 let Inst{12-0} = 0b1111101000110; 25960 let isPredicated = 1; 25961 let isTerminator = 1; 25962 let isIndirectBranch = 1; 25963 let accessSize = DoubleWordAccess; 25964 let AsmVariantName = "NonParsable"; 25965 let isPredicatedNew = 1; 25966 let mayLoad = 1; 25967 let cofMax1 = 1; 25968 let isRestrictNoSlot1Store = 1; 25969 let isReturn = 1; 25970 let Uses = [FRAMEKEY, P0, R30]; 25971 let Defs = [PC, R30, R29, R31]; 25972 let isTaken = Inst{4}; 25973 let DecoderNamespace = "SUBINSN_L2"; 25974 } 25975 def SS1_storeb_io : HInst< 25976 (outs), 25977 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16), 25978 "memb($Rs16+#$Ii) = $Rt16", 25979 tc_05b6c987, TypeSUBINSN>, Enc_b38ffc { 25980 let Inst{12-12} = 0b1; 25981 let addrMode = BaseImmOffset; 25982 let accessSize = ByteAccess; 25983 let AsmVariantName = "NonParsable"; 25984 let mayStore = 1; 25985 let DecoderNamespace = "SUBINSN_S1"; 25986 } 25987 def SS1_storew_io : HInst< 25988 (outs), 25989 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16), 25990 "memw($Rs16+#$Ii) = $Rt16", 25991 tc_05b6c987, TypeSUBINSN>, Enc_f55a0c { 25992 let Inst{12-12} = 0b0; 25993 let addrMode = BaseImmOffset; 25994 let accessSize = WordAccess; 25995 let AsmVariantName = "NonParsable"; 25996 let mayStore = 1; 25997 let DecoderNamespace = "SUBINSN_S1"; 25998 } 25999 def SS2_allocframe : HInst< 26000 (outs), 26001 (ins u5_3Imm:$Ii), 26002 "allocframe(#$Ii)", 26003 tc_0fc1ae07, TypeSUBINSN>, Enc_6f70ca { 26004 let Inst{3-0} = 0b0000; 26005 let Inst{12-9} = 0b1110; 26006 let addrMode = BaseImmOffset; 26007 let accessSize = DoubleWordAccess; 26008 let AsmVariantName = "NonParsable"; 26009 let mayStore = 1; 26010 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R29, R31]; 26011 let Defs = [R30, R29]; 26012 let DecoderNamespace = "SUBINSN_S2"; 26013 } 26014 def SS2_storebi0 : HInst< 26015 (outs), 26016 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26017 "memb($Rs16+#$Ii) = #0", 26018 tc_57288781, TypeSUBINSN>, Enc_84d359 { 26019 let Inst{12-8} = 0b10010; 26020 let addrMode = BaseImmOffset; 26021 let accessSize = ByteAccess; 26022 let AsmVariantName = "NonParsable"; 26023 let mayStore = 1; 26024 let DecoderNamespace = "SUBINSN_S2"; 26025 } 26026 def SS2_storebi1 : HInst< 26027 (outs), 26028 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26029 "memb($Rs16+#$Ii) = #1", 26030 tc_57288781, TypeSUBINSN>, Enc_84d359 { 26031 let Inst{12-8} = 0b10011; 26032 let addrMode = BaseImmOffset; 26033 let accessSize = ByteAccess; 26034 let AsmVariantName = "NonParsable"; 26035 let mayStore = 1; 26036 let DecoderNamespace = "SUBINSN_S2"; 26037 } 26038 def SS2_stored_sp : HInst< 26039 (outs), 26040 (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8), 26041 "memd(r29+#$Ii) = $Rtt8", 26042 tc_a788683e, TypeSUBINSN>, Enc_b8309d { 26043 let Inst{12-9} = 0b0101; 26044 let addrMode = BaseImmOffset; 26045 let accessSize = DoubleWordAccess; 26046 let AsmVariantName = "NonParsable"; 26047 let mayStore = 1; 26048 let Uses = [R29]; 26049 let DecoderNamespace = "SUBINSN_S2"; 26050 } 26051 def SS2_storeh_io : HInst< 26052 (outs), 26053 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16), 26054 "memh($Rs16+#$Ii) = $Rt16", 26055 tc_05b6c987, TypeSUBINSN>, Enc_625deb { 26056 let Inst{12-11} = 0b00; 26057 let addrMode = BaseImmOffset; 26058 let accessSize = HalfWordAccess; 26059 let AsmVariantName = "NonParsable"; 26060 let mayStore = 1; 26061 let DecoderNamespace = "SUBINSN_S2"; 26062 } 26063 def SS2_storew_sp : HInst< 26064 (outs), 26065 (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16), 26066 "memw(r29+#$Ii) = $Rt16", 26067 tc_a788683e, TypeSUBINSN>, Enc_87c142 { 26068 let Inst{12-9} = 0b0100; 26069 let addrMode = BaseImmOffset; 26070 let accessSize = WordAccess; 26071 let AsmVariantName = "NonParsable"; 26072 let mayStore = 1; 26073 let Uses = [R29]; 26074 let DecoderNamespace = "SUBINSN_S2"; 26075 } 26076 def SS2_storewi0 : HInst< 26077 (outs), 26078 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26079 "memw($Rs16+#$Ii) = #0", 26080 tc_57288781, TypeSUBINSN>, Enc_a6ce9c { 26081 let Inst{12-8} = 0b10000; 26082 let addrMode = BaseImmOffset; 26083 let accessSize = WordAccess; 26084 let AsmVariantName = "NonParsable"; 26085 let mayStore = 1; 26086 let DecoderNamespace = "SUBINSN_S2"; 26087 } 26088 def SS2_storewi1 : HInst< 26089 (outs), 26090 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26091 "memw($Rs16+#$Ii) = #1", 26092 tc_57288781, TypeSUBINSN>, Enc_a6ce9c { 26093 let Inst{12-8} = 0b10001; 26094 let addrMode = BaseImmOffset; 26095 let accessSize = WordAccess; 26096 let AsmVariantName = "NonParsable"; 26097 let mayStore = 1; 26098 let DecoderNamespace = "SUBINSN_S2"; 26099 } 26100 def V6_MAP_equb : HInst< 26101 (outs HvxQR:$Qd4), 26102 (ins HvxVR:$Vu32, HvxVR:$Vv32), 26103 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)", 26104 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26105 let hasNewValue = 1; 26106 let opNewValue = 0; 26107 let isPseudo = 1; 26108 let isCodeGenOnly = 1; 26109 let DecoderNamespace = "EXT_mmvec"; 26110 } 26111 def V6_MAP_equb_and : HInst< 26112 (outs HvxQR:$Qx4), 26113 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26114 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)", 26115 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26116 let isPseudo = 1; 26117 let isCodeGenOnly = 1; 26118 let DecoderNamespace = "EXT_mmvec"; 26119 let Constraints = "$Qx4 = $Qx4in"; 26120 } 26121 def V6_MAP_equb_ior : HInst< 26122 (outs HvxQR:$Qx4), 26123 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26124 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)", 26125 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26126 let isAccumulator = 1; 26127 let isPseudo = 1; 26128 let isCodeGenOnly = 1; 26129 let DecoderNamespace = "EXT_mmvec"; 26130 let Constraints = "$Qx4 = $Qx4in"; 26131 } 26132 def V6_MAP_equb_xor : HInst< 26133 (outs HvxQR:$Qx4), 26134 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26135 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)", 26136 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26137 let isPseudo = 1; 26138 let isCodeGenOnly = 1; 26139 let DecoderNamespace = "EXT_mmvec"; 26140 let Constraints = "$Qx4 = $Qx4in"; 26141 } 26142 def V6_MAP_equh : HInst< 26143 (outs HvxQR:$Qd4), 26144 (ins HvxVR:$Vu32, HvxVR:$Vv32), 26145 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)", 26146 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26147 let hasNewValue = 1; 26148 let opNewValue = 0; 26149 let isPseudo = 1; 26150 let isCodeGenOnly = 1; 26151 let DecoderNamespace = "EXT_mmvec"; 26152 } 26153 def V6_MAP_equh_and : HInst< 26154 (outs HvxQR:$Qx4), 26155 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26156 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)", 26157 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26158 let isPseudo = 1; 26159 let isCodeGenOnly = 1; 26160 let DecoderNamespace = "EXT_mmvec"; 26161 let Constraints = "$Qx4 = $Qx4in"; 26162 } 26163 def V6_MAP_equh_ior : HInst< 26164 (outs HvxQR:$Qx4), 26165 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26166 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)", 26167 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26168 let isAccumulator = 1; 26169 let isPseudo = 1; 26170 let isCodeGenOnly = 1; 26171 let DecoderNamespace = "EXT_mmvec"; 26172 let Constraints = "$Qx4 = $Qx4in"; 26173 } 26174 def V6_MAP_equh_xor : HInst< 26175 (outs HvxQR:$Qx4), 26176 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26177 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)", 26178 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26179 let isPseudo = 1; 26180 let isCodeGenOnly = 1; 26181 let DecoderNamespace = "EXT_mmvec"; 26182 let Constraints = "$Qx4 = $Qx4in"; 26183 } 26184 def V6_MAP_equw : HInst< 26185 (outs HvxQR:$Qd4), 26186 (ins HvxVR:$Vu32, HvxVR:$Vv32), 26187 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)", 26188 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26189 let hasNewValue = 1; 26190 let opNewValue = 0; 26191 let isPseudo = 1; 26192 let isCodeGenOnly = 1; 26193 let DecoderNamespace = "EXT_mmvec"; 26194 } 26195 def V6_MAP_equw_and : HInst< 26196 (outs HvxQR:$Qx4), 26197 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26198 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)", 26199 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26200 let isPseudo = 1; 26201 let isCodeGenOnly = 1; 26202 let DecoderNamespace = "EXT_mmvec"; 26203 let Constraints = "$Qx4 = $Qx4in"; 26204 } 26205 def V6_MAP_equw_ior : HInst< 26206 (outs HvxQR:$Qx4), 26207 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26208 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)", 26209 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26210 let isAccumulator = 1; 26211 let isPseudo = 1; 26212 let isCodeGenOnly = 1; 26213 let DecoderNamespace = "EXT_mmvec"; 26214 let Constraints = "$Qx4 = $Qx4in"; 26215 } 26216 def V6_MAP_equw_xor : HInst< 26217 (outs HvxQR:$Qx4), 26218 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26219 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)", 26220 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26221 let isPseudo = 1; 26222 let isCodeGenOnly = 1; 26223 let DecoderNamespace = "EXT_mmvec"; 26224 let Constraints = "$Qx4 = $Qx4in"; 26225 } 26226 def V6_extractw : HInst< 26227 (outs IntRegs:$Rd32), 26228 (ins HvxVR:$Vu32, IntRegs:$Rs32), 26229 "$Rd32 = vextract($Vu32,$Rs32)", 26230 tc_9777e6bf, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> { 26231 let Inst{7-5} = 0b001; 26232 let Inst{13-13} = 0b0; 26233 let Inst{31-21} = 0b10010010000; 26234 let hasNewValue = 1; 26235 let opNewValue = 0; 26236 let isSolo = 1; 26237 let mayLoad = 1; 26238 let DecoderNamespace = "EXT_mmvec"; 26239 } 26240 def V6_extractw_alt : HInst< 26241 (outs IntRegs:$Rd32), 26242 (ins HvxVR:$Vu32, IntRegs:$Rs32), 26243 "$Rd32.w = vextract($Vu32,$Rs32)", 26244 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26245 let hasNewValue = 1; 26246 let opNewValue = 0; 26247 let isPseudo = 1; 26248 let isCodeGenOnly = 1; 26249 let DecoderNamespace = "EXT_mmvec"; 26250 } 26251 def V6_hi : HInst< 26252 (outs HvxVR:$Vd32), 26253 (ins HvxWR:$Vss32), 26254 "$Vd32 = hi($Vss32)", 26255 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26256 let hasNewValue = 1; 26257 let opNewValue = 0; 26258 let isPseudo = 1; 26259 let DecoderNamespace = "EXT_mmvec"; 26260 } 26261 def V6_ld0 : HInst< 26262 (outs HvxVR:$Vd32), 26263 (ins IntRegs:$Rt32), 26264 "$Vd32 = vmem($Rt32)", 26265 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26266 let hasNewValue = 1; 26267 let opNewValue = 0; 26268 let isPseudo = 1; 26269 let isCodeGenOnly = 1; 26270 let DecoderNamespace = "EXT_mmvec"; 26271 } 26272 def V6_ldcnp0 : HInst< 26273 (outs HvxVR:$Vd32), 26274 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26275 "if (!$Pv4) $Vd32.cur = vmem($Rt32)", 26276 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26277 let hasNewValue = 1; 26278 let opNewValue = 0; 26279 let isPseudo = 1; 26280 let isCodeGenOnly = 1; 26281 let DecoderNamespace = "EXT_mmvec"; 26282 } 26283 def V6_ldcnpnt0 : HInst< 26284 (outs HvxVR:$Vd32), 26285 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26286 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt", 26287 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26288 let hasNewValue = 1; 26289 let opNewValue = 0; 26290 let isPseudo = 1; 26291 let isCodeGenOnly = 1; 26292 let DecoderNamespace = "EXT_mmvec"; 26293 } 26294 def V6_ldcp0 : HInst< 26295 (outs HvxVR:$Vd32), 26296 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26297 "if ($Pv4) $Vd32.cur = vmem($Rt32)", 26298 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26299 let hasNewValue = 1; 26300 let opNewValue = 0; 26301 let isPseudo = 1; 26302 let isCodeGenOnly = 1; 26303 let DecoderNamespace = "EXT_mmvec"; 26304 } 26305 def V6_ldcpnt0 : HInst< 26306 (outs HvxVR:$Vd32), 26307 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26308 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt", 26309 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26310 let hasNewValue = 1; 26311 let opNewValue = 0; 26312 let isPseudo = 1; 26313 let isCodeGenOnly = 1; 26314 let DecoderNamespace = "EXT_mmvec"; 26315 } 26316 def V6_ldnp0 : HInst< 26317 (outs HvxVR:$Vd32), 26318 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26319 "if (!$Pv4) $Vd32 = vmem($Rt32)", 26320 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26321 let hasNewValue = 1; 26322 let opNewValue = 0; 26323 let isPseudo = 1; 26324 let isCodeGenOnly = 1; 26325 let DecoderNamespace = "EXT_mmvec"; 26326 } 26327 def V6_ldnpnt0 : HInst< 26328 (outs HvxVR:$Vd32), 26329 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26330 "if (!$Pv4) $Vd32 = vmem($Rt32):nt", 26331 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26332 let hasNewValue = 1; 26333 let opNewValue = 0; 26334 let isPseudo = 1; 26335 let isCodeGenOnly = 1; 26336 let DecoderNamespace = "EXT_mmvec"; 26337 } 26338 def V6_ldnt0 : HInst< 26339 (outs HvxVR:$Vd32), 26340 (ins IntRegs:$Rt32), 26341 "$Vd32 = vmem($Rt32):nt", 26342 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26343 let hasNewValue = 1; 26344 let opNewValue = 0; 26345 let isPseudo = 1; 26346 let isCodeGenOnly = 1; 26347 let DecoderNamespace = "EXT_mmvec"; 26348 } 26349 def V6_ldntnt0 : HInst< 26350 (outs HvxVR:$Vd32), 26351 (ins IntRegs:$Rt32), 26352 "$Vd32 = vmem($Rt32):nt", 26353 PSEUDO, TypeMAPPING>, Requires<[HasV62]> { 26354 let hasNewValue = 1; 26355 let opNewValue = 0; 26356 let isPseudo = 1; 26357 let isCodeGenOnly = 1; 26358 let DecoderNamespace = "EXT_mmvec"; 26359 } 26360 def V6_ldp0 : HInst< 26361 (outs HvxVR:$Vd32), 26362 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26363 "if ($Pv4) $Vd32 = vmem($Rt32)", 26364 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26365 let hasNewValue = 1; 26366 let opNewValue = 0; 26367 let isPseudo = 1; 26368 let isCodeGenOnly = 1; 26369 let DecoderNamespace = "EXT_mmvec"; 26370 } 26371 def V6_ldpnt0 : HInst< 26372 (outs HvxVR:$Vd32), 26373 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26374 "if ($Pv4) $Vd32 = vmem($Rt32):nt", 26375 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26376 let hasNewValue = 1; 26377 let opNewValue = 0; 26378 let isPseudo = 1; 26379 let isCodeGenOnly = 1; 26380 let DecoderNamespace = "EXT_mmvec"; 26381 } 26382 def V6_ldtnp0 : HInst< 26383 (outs HvxVR:$Vd32), 26384 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26385 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)", 26386 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26387 let hasNewValue = 1; 26388 let opNewValue = 0; 26389 let isPseudo = 1; 26390 let isCodeGenOnly = 1; 26391 let DecoderNamespace = "EXT_mmvec"; 26392 } 26393 def V6_ldtnpnt0 : HInst< 26394 (outs HvxVR:$Vd32), 26395 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26396 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt", 26397 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26398 let hasNewValue = 1; 26399 let opNewValue = 0; 26400 let isPseudo = 1; 26401 let isCodeGenOnly = 1; 26402 let DecoderNamespace = "EXT_mmvec"; 26403 } 26404 def V6_ldtp0 : HInst< 26405 (outs HvxVR:$Vd32), 26406 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26407 "if ($Pv4) $Vd32.tmp = vmem($Rt32)", 26408 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26409 let hasNewValue = 1; 26410 let opNewValue = 0; 26411 let isPseudo = 1; 26412 let isCodeGenOnly = 1; 26413 let DecoderNamespace = "EXT_mmvec"; 26414 } 26415 def V6_ldtpnt0 : HInst< 26416 (outs HvxVR:$Vd32), 26417 (ins PredRegs:$Pv4, IntRegs:$Rt32), 26418 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt", 26419 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26420 let hasNewValue = 1; 26421 let opNewValue = 0; 26422 let isPseudo = 1; 26423 let isCodeGenOnly = 1; 26424 let DecoderNamespace = "EXT_mmvec"; 26425 } 26426 def V6_ldu0 : HInst< 26427 (outs HvxVR:$Vd32), 26428 (ins IntRegs:$Rt32), 26429 "$Vd32 = vmemu($Rt32)", 26430 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26431 let hasNewValue = 1; 26432 let opNewValue = 0; 26433 let isPseudo = 1; 26434 let isCodeGenOnly = 1; 26435 let DecoderNamespace = "EXT_mmvec"; 26436 } 26437 def V6_lo : HInst< 26438 (outs HvxVR:$Vd32), 26439 (ins HvxWR:$Vss32), 26440 "$Vd32 = lo($Vss32)", 26441 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26442 let hasNewValue = 1; 26443 let opNewValue = 0; 26444 let isPseudo = 1; 26445 let DecoderNamespace = "EXT_mmvec"; 26446 } 26447 def V6_lvsplatb : HInst< 26448 (outs HvxVR:$Vd32), 26449 (ins IntRegs:$Rt32), 26450 "$Vd32.b = vsplat($Rt32)", 26451 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> { 26452 let Inst{13-5} = 0b000000010; 26453 let Inst{31-21} = 0b00011001110; 26454 let hasNewValue = 1; 26455 let opNewValue = 0; 26456 let DecoderNamespace = "EXT_mmvec"; 26457 } 26458 def V6_lvsplath : HInst< 26459 (outs HvxVR:$Vd32), 26460 (ins IntRegs:$Rt32), 26461 "$Vd32.h = vsplat($Rt32)", 26462 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> { 26463 let Inst{13-5} = 0b000000001; 26464 let Inst{31-21} = 0b00011001110; 26465 let hasNewValue = 1; 26466 let opNewValue = 0; 26467 let DecoderNamespace = "EXT_mmvec"; 26468 } 26469 def V6_lvsplatw : HInst< 26470 (outs HvxVR:$Vd32), 26471 (ins IntRegs:$Rt32), 26472 "$Vd32 = vsplat($Rt32)", 26473 tc_6b78cf13, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> { 26474 let Inst{13-5} = 0b000000001; 26475 let Inst{31-21} = 0b00011001101; 26476 let hasNewValue = 1; 26477 let opNewValue = 0; 26478 let DecoderNamespace = "EXT_mmvec"; 26479 } 26480 def V6_pred_and : HInst< 26481 (outs HvxQR:$Qd4), 26482 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26483 "$Qd4 = and($Qs4,$Qt4)", 26484 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26485 let Inst{7-2} = 0b000000; 26486 let Inst{13-10} = 0b0000; 26487 let Inst{21-16} = 0b000011; 26488 let Inst{31-24} = 0b00011110; 26489 let hasNewValue = 1; 26490 let opNewValue = 0; 26491 let DecoderNamespace = "EXT_mmvec"; 26492 } 26493 def V6_pred_and_n : HInst< 26494 (outs HvxQR:$Qd4), 26495 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26496 "$Qd4 = and($Qs4,!$Qt4)", 26497 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26498 let Inst{7-2} = 0b000101; 26499 let Inst{13-10} = 0b0000; 26500 let Inst{21-16} = 0b000011; 26501 let Inst{31-24} = 0b00011110; 26502 let hasNewValue = 1; 26503 let opNewValue = 0; 26504 let DecoderNamespace = "EXT_mmvec"; 26505 } 26506 def V6_pred_not : HInst< 26507 (outs HvxQR:$Qd4), 26508 (ins HvxQR:$Qs4), 26509 "$Qd4 = not($Qs4)", 26510 tc_71337255, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> { 26511 let Inst{7-2} = 0b000010; 26512 let Inst{13-10} = 0b0000; 26513 let Inst{31-16} = 0b0001111000000011; 26514 let hasNewValue = 1; 26515 let opNewValue = 0; 26516 let DecoderNamespace = "EXT_mmvec"; 26517 } 26518 def V6_pred_or : HInst< 26519 (outs HvxQR:$Qd4), 26520 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26521 "$Qd4 = or($Qs4,$Qt4)", 26522 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26523 let Inst{7-2} = 0b000001; 26524 let Inst{13-10} = 0b0000; 26525 let Inst{21-16} = 0b000011; 26526 let Inst{31-24} = 0b00011110; 26527 let hasNewValue = 1; 26528 let opNewValue = 0; 26529 let DecoderNamespace = "EXT_mmvec"; 26530 } 26531 def V6_pred_or_n : HInst< 26532 (outs HvxQR:$Qd4), 26533 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26534 "$Qd4 = or($Qs4,!$Qt4)", 26535 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26536 let Inst{7-2} = 0b000100; 26537 let Inst{13-10} = 0b0000; 26538 let Inst{21-16} = 0b000011; 26539 let Inst{31-24} = 0b00011110; 26540 let hasNewValue = 1; 26541 let opNewValue = 0; 26542 let DecoderNamespace = "EXT_mmvec"; 26543 } 26544 def V6_pred_scalar2 : HInst< 26545 (outs HvxQR:$Qd4), 26546 (ins IntRegs:$Rt32), 26547 "$Qd4 = vsetq($Rt32)", 26548 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> { 26549 let Inst{13-2} = 0b000000010001; 26550 let Inst{31-21} = 0b00011001101; 26551 let hasNewValue = 1; 26552 let opNewValue = 0; 26553 let DecoderNamespace = "EXT_mmvec"; 26554 } 26555 def V6_pred_scalar2v2 : HInst< 26556 (outs HvxQR:$Qd4), 26557 (ins IntRegs:$Rt32), 26558 "$Qd4 = vsetq2($Rt32)", 26559 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> { 26560 let Inst{13-2} = 0b000000010011; 26561 let Inst{31-21} = 0b00011001101; 26562 let hasNewValue = 1; 26563 let opNewValue = 0; 26564 let DecoderNamespace = "EXT_mmvec"; 26565 } 26566 def V6_pred_xor : HInst< 26567 (outs HvxQR:$Qd4), 26568 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26569 "$Qd4 = xor($Qs4,$Qt4)", 26570 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26571 let Inst{7-2} = 0b000011; 26572 let Inst{13-10} = 0b0000; 26573 let Inst{21-16} = 0b000011; 26574 let Inst{31-24} = 0b00011110; 26575 let hasNewValue = 1; 26576 let opNewValue = 0; 26577 let DecoderNamespace = "EXT_mmvec"; 26578 } 26579 def V6_shuffeqh : HInst< 26580 (outs HvxQR:$Qd4), 26581 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26582 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)", 26583 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 26584 let Inst{7-2} = 0b000110; 26585 let Inst{13-10} = 0b0000; 26586 let Inst{21-16} = 0b000011; 26587 let Inst{31-24} = 0b00011110; 26588 let hasNewValue = 1; 26589 let opNewValue = 0; 26590 let DecoderNamespace = "EXT_mmvec"; 26591 } 26592 def V6_shuffeqw : HInst< 26593 (outs HvxQR:$Qd4), 26594 (ins HvxQR:$Qs4, HvxQR:$Qt4), 26595 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)", 26596 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 26597 let Inst{7-2} = 0b000111; 26598 let Inst{13-10} = 0b0000; 26599 let Inst{21-16} = 0b000011; 26600 let Inst{31-24} = 0b00011110; 26601 let hasNewValue = 1; 26602 let opNewValue = 0; 26603 let DecoderNamespace = "EXT_mmvec"; 26604 } 26605 def V6_st0 : HInst< 26606 (outs), 26607 (ins IntRegs:$Rt32, HvxVR:$Vs32), 26608 "vmem($Rt32) = $Vs32", 26609 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26610 let isPseudo = 1; 26611 let isCodeGenOnly = 1; 26612 let DecoderNamespace = "EXT_mmvec"; 26613 } 26614 def V6_stn0 : HInst< 26615 (outs), 26616 (ins IntRegs:$Rt32, HvxVR:$Os8), 26617 "vmem($Rt32) = $Os8.new", 26618 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26619 let isPseudo = 1; 26620 let isCodeGenOnly = 1; 26621 let DecoderNamespace = "EXT_mmvec"; 26622 let opNewValue = 1; 26623 } 26624 def V6_stnnt0 : HInst< 26625 (outs), 26626 (ins IntRegs:$Rt32, HvxVR:$Os8), 26627 "vmem($Rt32):nt = $Os8.new", 26628 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26629 let isPseudo = 1; 26630 let isCodeGenOnly = 1; 26631 let DecoderNamespace = "EXT_mmvec"; 26632 let opNewValue = 1; 26633 } 26634 def V6_stnp0 : HInst< 26635 (outs), 26636 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26637 "if (!$Pv4) vmem($Rt32) = $Vs32", 26638 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26639 let isPseudo = 1; 26640 let isCodeGenOnly = 1; 26641 let DecoderNamespace = "EXT_mmvec"; 26642 } 26643 def V6_stnpnt0 : HInst< 26644 (outs), 26645 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26646 "if (!$Pv4) vmem($Rt32):nt = $Vs32", 26647 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26648 let isPseudo = 1; 26649 let isCodeGenOnly = 1; 26650 let DecoderNamespace = "EXT_mmvec"; 26651 } 26652 def V6_stnq0 : HInst< 26653 (outs), 26654 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 26655 "if (!$Qv4) vmem($Rt32) = $Vs32", 26656 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26657 let isPseudo = 1; 26658 let isCodeGenOnly = 1; 26659 let DecoderNamespace = "EXT_mmvec"; 26660 } 26661 def V6_stnqnt0 : HInst< 26662 (outs), 26663 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 26664 "if (!$Qv4) vmem($Rt32):nt = $Vs32", 26665 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26666 let isPseudo = 1; 26667 let isCodeGenOnly = 1; 26668 let DecoderNamespace = "EXT_mmvec"; 26669 } 26670 def V6_stnt0 : HInst< 26671 (outs), 26672 (ins IntRegs:$Rt32, HvxVR:$Vs32), 26673 "vmem($Rt32):nt = $Vs32", 26674 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26675 let isPseudo = 1; 26676 let isCodeGenOnly = 1; 26677 let DecoderNamespace = "EXT_mmvec"; 26678 } 26679 def V6_stp0 : HInst< 26680 (outs), 26681 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26682 "if ($Pv4) vmem($Rt32) = $Vs32", 26683 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26684 let isPseudo = 1; 26685 let isCodeGenOnly = 1; 26686 let DecoderNamespace = "EXT_mmvec"; 26687 } 26688 def V6_stpnt0 : HInst< 26689 (outs), 26690 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26691 "if ($Pv4) vmem($Rt32):nt = $Vs32", 26692 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26693 let isPseudo = 1; 26694 let isCodeGenOnly = 1; 26695 let DecoderNamespace = "EXT_mmvec"; 26696 } 26697 def V6_stq0 : HInst< 26698 (outs), 26699 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 26700 "if ($Qv4) vmem($Rt32) = $Vs32", 26701 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26702 let isPseudo = 1; 26703 let isCodeGenOnly = 1; 26704 let DecoderNamespace = "EXT_mmvec"; 26705 } 26706 def V6_stqnt0 : HInst< 26707 (outs), 26708 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 26709 "if ($Qv4) vmem($Rt32):nt = $Vs32", 26710 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26711 let isPseudo = 1; 26712 let isCodeGenOnly = 1; 26713 let DecoderNamespace = "EXT_mmvec"; 26714 } 26715 def V6_stu0 : HInst< 26716 (outs), 26717 (ins IntRegs:$Rt32, HvxVR:$Vs32), 26718 "vmemu($Rt32) = $Vs32", 26719 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26720 let isPseudo = 1; 26721 let isCodeGenOnly = 1; 26722 let DecoderNamespace = "EXT_mmvec"; 26723 } 26724 def V6_stunp0 : HInst< 26725 (outs), 26726 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26727 "if (!$Pv4) vmemu($Rt32) = $Vs32", 26728 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26729 let isPseudo = 1; 26730 let isCodeGenOnly = 1; 26731 let DecoderNamespace = "EXT_mmvec"; 26732 } 26733 def V6_stup0 : HInst< 26734 (outs), 26735 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 26736 "if ($Pv4) vmemu($Rt32) = $Vs32", 26737 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 26738 let isPseudo = 1; 26739 let isCodeGenOnly = 1; 26740 let DecoderNamespace = "EXT_mmvec"; 26741 } 26742 def V6_vL32Ub_ai : HInst< 26743 (outs HvxVR:$Vd32), 26744 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 26745 "$Vd32 = vmemu($Rt32+#$Ii)", 26746 tc_35e92f8e, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> { 26747 let Inst{7-5} = 0b111; 26748 let Inst{12-11} = 0b00; 26749 let Inst{31-21} = 0b00101000000; 26750 let hasNewValue = 1; 26751 let opNewValue = 0; 26752 let addrMode = BaseImmOffset; 26753 let accessSize = HVXVectorAccess; 26754 let isCVLoad = 1; 26755 let mayLoad = 1; 26756 let isRestrictNoSlot1Store = 1; 26757 let DecoderNamespace = "EXT_mmvec"; 26758 } 26759 def V6_vL32Ub_pi : HInst< 26760 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26761 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 26762 "$Vd32 = vmemu($Rx32++#$Ii)", 26763 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> { 26764 let Inst{7-5} = 0b111; 26765 let Inst{13-11} = 0b000; 26766 let Inst{31-21} = 0b00101001000; 26767 let hasNewValue = 1; 26768 let opNewValue = 0; 26769 let addrMode = PostInc; 26770 let accessSize = HVXVectorAccess; 26771 let isCVLoad = 1; 26772 let mayLoad = 1; 26773 let isRestrictNoSlot1Store = 1; 26774 let BaseOpcode = "V6_vL32b_pi"; 26775 let DecoderNamespace = "EXT_mmvec"; 26776 let Constraints = "$Rx32 = $Rx32in"; 26777 } 26778 def V6_vL32Ub_ppu : HInst< 26779 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26780 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 26781 "$Vd32 = vmemu($Rx32++$Mu2)", 26782 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> { 26783 let Inst{12-5} = 0b00000111; 26784 let Inst{31-21} = 0b00101011000; 26785 let hasNewValue = 1; 26786 let opNewValue = 0; 26787 let addrMode = PostInc; 26788 let accessSize = HVXVectorAccess; 26789 let isCVLoad = 1; 26790 let mayLoad = 1; 26791 let isRestrictNoSlot1Store = 1; 26792 let DecoderNamespace = "EXT_mmvec"; 26793 let Constraints = "$Rx32 = $Rx32in"; 26794 } 26795 def V6_vL32b_ai : HInst< 26796 (outs HvxVR:$Vd32), 26797 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 26798 "$Vd32 = vmem($Rt32+#$Ii)", 26799 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 26800 let Inst{7-5} = 0b000; 26801 let Inst{12-11} = 0b00; 26802 let Inst{31-21} = 0b00101000000; 26803 let hasNewValue = 1; 26804 let opNewValue = 0; 26805 let addrMode = BaseImmOffset; 26806 let accessSize = HVXVectorAccess; 26807 let isCVLoad = 1; 26808 let mayLoad = 1; 26809 let isRestrictNoSlot1Store = 1; 26810 let BaseOpcode = "V6_vL32b_ai"; 26811 let isCVLoadable = 1; 26812 let isPredicable = 1; 26813 let DecoderNamespace = "EXT_mmvec"; 26814 } 26815 def V6_vL32b_cur_ai : HInst< 26816 (outs HvxVR:$Vd32), 26817 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 26818 "$Vd32.cur = vmem($Rt32+#$Ii)", 26819 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 26820 let Inst{7-5} = 0b001; 26821 let Inst{12-11} = 0b00; 26822 let Inst{31-21} = 0b00101000000; 26823 let hasNewValue = 1; 26824 let opNewValue = 0; 26825 let addrMode = BaseImmOffset; 26826 let accessSize = HVXVectorAccess; 26827 let isCVLoad = 1; 26828 let CVINew = 1; 26829 let mayLoad = 1; 26830 let isRestrictNoSlot1Store = 1; 26831 let BaseOpcode = "V6_vL32b_cur_ai"; 26832 let isPredicable = 1; 26833 let DecoderNamespace = "EXT_mmvec"; 26834 } 26835 def V6_vL32b_cur_npred_ai : HInst< 26836 (outs HvxVR:$Vd32), 26837 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 26838 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 26839 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 26840 let Inst{7-5} = 0b101; 26841 let Inst{31-21} = 0b00101000100; 26842 let isPredicated = 1; 26843 let isPredicatedFalse = 1; 26844 let hasNewValue = 1; 26845 let opNewValue = 0; 26846 let addrMode = BaseImmOffset; 26847 let accessSize = HVXVectorAccess; 26848 let isCVLoad = 1; 26849 let CVINew = 1; 26850 let mayLoad = 1; 26851 let isRestrictNoSlot1Store = 1; 26852 let BaseOpcode = "V6_vL32b_cur_ai"; 26853 let DecoderNamespace = "EXT_mmvec"; 26854 } 26855 def V6_vL32b_cur_npred_pi : HInst< 26856 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26857 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 26858 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 26859 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 26860 let Inst{7-5} = 0b101; 26861 let Inst{13-13} = 0b0; 26862 let Inst{31-21} = 0b00101001100; 26863 let isPredicated = 1; 26864 let isPredicatedFalse = 1; 26865 let hasNewValue = 1; 26866 let opNewValue = 0; 26867 let addrMode = PostInc; 26868 let accessSize = HVXVectorAccess; 26869 let isCVLoad = 1; 26870 let CVINew = 1; 26871 let mayLoad = 1; 26872 let isRestrictNoSlot1Store = 1; 26873 let BaseOpcode = "V6_vL32b_cur_pi"; 26874 let DecoderNamespace = "EXT_mmvec"; 26875 let Constraints = "$Rx32 = $Rx32in"; 26876 } 26877 def V6_vL32b_cur_npred_ppu : HInst< 26878 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26879 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 26880 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 26881 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 26882 let Inst{10-5} = 0b000101; 26883 let Inst{31-21} = 0b00101011100; 26884 let isPredicated = 1; 26885 let isPredicatedFalse = 1; 26886 let hasNewValue = 1; 26887 let opNewValue = 0; 26888 let addrMode = PostInc; 26889 let accessSize = HVXVectorAccess; 26890 let isCVLoad = 1; 26891 let CVINew = 1; 26892 let mayLoad = 1; 26893 let isRestrictNoSlot1Store = 1; 26894 let BaseOpcode = "V6_vL32b_cur_ppu"; 26895 let DecoderNamespace = "EXT_mmvec"; 26896 let Constraints = "$Rx32 = $Rx32in"; 26897 } 26898 def V6_vL32b_cur_pi : HInst< 26899 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26900 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 26901 "$Vd32.cur = vmem($Rx32++#$Ii)", 26902 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 26903 let Inst{7-5} = 0b001; 26904 let Inst{13-11} = 0b000; 26905 let Inst{31-21} = 0b00101001000; 26906 let hasNewValue = 1; 26907 let opNewValue = 0; 26908 let addrMode = PostInc; 26909 let accessSize = HVXVectorAccess; 26910 let isCVLoad = 1; 26911 let CVINew = 1; 26912 let mayLoad = 1; 26913 let isRestrictNoSlot1Store = 1; 26914 let BaseOpcode = "V6_vL32b_cur_pi"; 26915 let isPredicable = 1; 26916 let DecoderNamespace = "EXT_mmvec"; 26917 let Constraints = "$Rx32 = $Rx32in"; 26918 } 26919 def V6_vL32b_cur_ppu : HInst< 26920 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26921 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 26922 "$Vd32.cur = vmem($Rx32++$Mu2)", 26923 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 26924 let Inst{12-5} = 0b00000001; 26925 let Inst{31-21} = 0b00101011000; 26926 let hasNewValue = 1; 26927 let opNewValue = 0; 26928 let addrMode = PostInc; 26929 let accessSize = HVXVectorAccess; 26930 let isCVLoad = 1; 26931 let CVINew = 1; 26932 let mayLoad = 1; 26933 let isRestrictNoSlot1Store = 1; 26934 let BaseOpcode = "V6_vL32b_cur_ppu"; 26935 let isPredicable = 1; 26936 let DecoderNamespace = "EXT_mmvec"; 26937 let Constraints = "$Rx32 = $Rx32in"; 26938 } 26939 def V6_vL32b_cur_pred_ai : HInst< 26940 (outs HvxVR:$Vd32), 26941 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 26942 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 26943 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 26944 let Inst{7-5} = 0b100; 26945 let Inst{31-21} = 0b00101000100; 26946 let isPredicated = 1; 26947 let hasNewValue = 1; 26948 let opNewValue = 0; 26949 let addrMode = BaseImmOffset; 26950 let accessSize = HVXVectorAccess; 26951 let isCVLoad = 1; 26952 let CVINew = 1; 26953 let mayLoad = 1; 26954 let isRestrictNoSlot1Store = 1; 26955 let BaseOpcode = "V6_vL32b_cur_ai"; 26956 let DecoderNamespace = "EXT_mmvec"; 26957 } 26958 def V6_vL32b_cur_pred_pi : HInst< 26959 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26960 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 26961 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 26962 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 26963 let Inst{7-5} = 0b100; 26964 let Inst{13-13} = 0b0; 26965 let Inst{31-21} = 0b00101001100; 26966 let isPredicated = 1; 26967 let hasNewValue = 1; 26968 let opNewValue = 0; 26969 let addrMode = PostInc; 26970 let accessSize = HVXVectorAccess; 26971 let isCVLoad = 1; 26972 let CVINew = 1; 26973 let mayLoad = 1; 26974 let isRestrictNoSlot1Store = 1; 26975 let BaseOpcode = "V6_vL32b_cur_pi"; 26976 let DecoderNamespace = "EXT_mmvec"; 26977 let Constraints = "$Rx32 = $Rx32in"; 26978 } 26979 def V6_vL32b_cur_pred_ppu : HInst< 26980 (outs HvxVR:$Vd32, IntRegs:$Rx32), 26981 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 26982 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 26983 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 26984 let Inst{10-5} = 0b000100; 26985 let Inst{31-21} = 0b00101011100; 26986 let isPredicated = 1; 26987 let hasNewValue = 1; 26988 let opNewValue = 0; 26989 let addrMode = PostInc; 26990 let accessSize = HVXVectorAccess; 26991 let isCVLoad = 1; 26992 let CVINew = 1; 26993 let mayLoad = 1; 26994 let isRestrictNoSlot1Store = 1; 26995 let BaseOpcode = "V6_vL32b_cur_ppu"; 26996 let DecoderNamespace = "EXT_mmvec"; 26997 let Constraints = "$Rx32 = $Rx32in"; 26998 } 26999 def V6_vL32b_npred_ai : HInst< 27000 (outs HvxVR:$Vd32), 27001 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27002 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)", 27003 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27004 let Inst{7-5} = 0b011; 27005 let Inst{31-21} = 0b00101000100; 27006 let isPredicated = 1; 27007 let isPredicatedFalse = 1; 27008 let hasNewValue = 1; 27009 let opNewValue = 0; 27010 let addrMode = BaseImmOffset; 27011 let accessSize = HVXVectorAccess; 27012 let isCVLoad = 1; 27013 let mayLoad = 1; 27014 let isRestrictNoSlot1Store = 1; 27015 let BaseOpcode = "V6_vL32b_ai"; 27016 let DecoderNamespace = "EXT_mmvec"; 27017 } 27018 def V6_vL32b_npred_pi : HInst< 27019 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27020 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27021 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)", 27022 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27023 let Inst{7-5} = 0b011; 27024 let Inst{13-13} = 0b0; 27025 let Inst{31-21} = 0b00101001100; 27026 let isPredicated = 1; 27027 let isPredicatedFalse = 1; 27028 let hasNewValue = 1; 27029 let opNewValue = 0; 27030 let addrMode = PostInc; 27031 let accessSize = HVXVectorAccess; 27032 let isCVLoad = 1; 27033 let mayLoad = 1; 27034 let isRestrictNoSlot1Store = 1; 27035 let BaseOpcode = "V6_vL32b_pi"; 27036 let DecoderNamespace = "EXT_mmvec"; 27037 let Constraints = "$Rx32 = $Rx32in"; 27038 } 27039 def V6_vL32b_npred_ppu : HInst< 27040 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27041 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27042 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)", 27043 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27044 let Inst{10-5} = 0b000011; 27045 let Inst{31-21} = 0b00101011100; 27046 let isPredicated = 1; 27047 let isPredicatedFalse = 1; 27048 let hasNewValue = 1; 27049 let opNewValue = 0; 27050 let addrMode = PostInc; 27051 let accessSize = HVXVectorAccess; 27052 let isCVLoad = 1; 27053 let mayLoad = 1; 27054 let isRestrictNoSlot1Store = 1; 27055 let BaseOpcode = "V6_vL32b_ppu"; 27056 let DecoderNamespace = "EXT_mmvec"; 27057 let Constraints = "$Rx32 = $Rx32in"; 27058 } 27059 def V6_vL32b_nt_ai : HInst< 27060 (outs HvxVR:$Vd32), 27061 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 27062 "$Vd32 = vmem($Rt32+#$Ii):nt", 27063 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27064 let Inst{7-5} = 0b000; 27065 let Inst{12-11} = 0b00; 27066 let Inst{31-21} = 0b00101000010; 27067 let hasNewValue = 1; 27068 let opNewValue = 0; 27069 let addrMode = BaseImmOffset; 27070 let accessSize = HVXVectorAccess; 27071 let isCVLoad = 1; 27072 let mayLoad = 1; 27073 let isNonTemporal = 1; 27074 let isRestrictNoSlot1Store = 1; 27075 let BaseOpcode = "V6_vL32b_nt_ai"; 27076 let isCVLoadable = 1; 27077 let isPredicable = 1; 27078 let DecoderNamespace = "EXT_mmvec"; 27079 } 27080 def V6_vL32b_nt_cur_ai : HInst< 27081 (outs HvxVR:$Vd32), 27082 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 27083 "$Vd32.cur = vmem($Rt32+#$Ii):nt", 27084 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27085 let Inst{7-5} = 0b001; 27086 let Inst{12-11} = 0b00; 27087 let Inst{31-21} = 0b00101000010; 27088 let hasNewValue = 1; 27089 let opNewValue = 0; 27090 let addrMode = BaseImmOffset; 27091 let accessSize = HVXVectorAccess; 27092 let isCVLoad = 1; 27093 let CVINew = 1; 27094 let mayLoad = 1; 27095 let isNonTemporal = 1; 27096 let isRestrictNoSlot1Store = 1; 27097 let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27098 let isPredicable = 1; 27099 let DecoderNamespace = "EXT_mmvec"; 27100 } 27101 def V6_vL32b_nt_cur_npred_ai : HInst< 27102 (outs HvxVR:$Vd32), 27103 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27104 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27105 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27106 let Inst{7-5} = 0b101; 27107 let Inst{31-21} = 0b00101000110; 27108 let isPredicated = 1; 27109 let isPredicatedFalse = 1; 27110 let hasNewValue = 1; 27111 let opNewValue = 0; 27112 let addrMode = BaseImmOffset; 27113 let accessSize = HVXVectorAccess; 27114 let isCVLoad = 1; 27115 let CVINew = 1; 27116 let mayLoad = 1; 27117 let isNonTemporal = 1; 27118 let isRestrictNoSlot1Store = 1; 27119 let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27120 let DecoderNamespace = "EXT_mmvec"; 27121 } 27122 def V6_vL32b_nt_cur_npred_pi : HInst< 27123 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27124 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27125 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27126 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27127 let Inst{7-5} = 0b101; 27128 let Inst{13-13} = 0b0; 27129 let Inst{31-21} = 0b00101001110; 27130 let isPredicated = 1; 27131 let isPredicatedFalse = 1; 27132 let hasNewValue = 1; 27133 let opNewValue = 0; 27134 let addrMode = PostInc; 27135 let accessSize = HVXVectorAccess; 27136 let isCVLoad = 1; 27137 let CVINew = 1; 27138 let mayLoad = 1; 27139 let isNonTemporal = 1; 27140 let isRestrictNoSlot1Store = 1; 27141 let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27142 let DecoderNamespace = "EXT_mmvec"; 27143 let Constraints = "$Rx32 = $Rx32in"; 27144 } 27145 def V6_vL32b_nt_cur_npred_ppu : HInst< 27146 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27147 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27148 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27149 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27150 let Inst{10-5} = 0b000101; 27151 let Inst{31-21} = 0b00101011110; 27152 let isPredicated = 1; 27153 let isPredicatedFalse = 1; 27154 let hasNewValue = 1; 27155 let opNewValue = 0; 27156 let addrMode = PostInc; 27157 let accessSize = HVXVectorAccess; 27158 let isCVLoad = 1; 27159 let CVINew = 1; 27160 let mayLoad = 1; 27161 let isNonTemporal = 1; 27162 let isRestrictNoSlot1Store = 1; 27163 let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27164 let DecoderNamespace = "EXT_mmvec"; 27165 let Constraints = "$Rx32 = $Rx32in"; 27166 } 27167 def V6_vL32b_nt_cur_pi : HInst< 27168 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27169 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27170 "$Vd32.cur = vmem($Rx32++#$Ii):nt", 27171 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27172 let Inst{7-5} = 0b001; 27173 let Inst{13-11} = 0b000; 27174 let Inst{31-21} = 0b00101001010; 27175 let hasNewValue = 1; 27176 let opNewValue = 0; 27177 let addrMode = PostInc; 27178 let accessSize = HVXVectorAccess; 27179 let isCVLoad = 1; 27180 let CVINew = 1; 27181 let mayLoad = 1; 27182 let isNonTemporal = 1; 27183 let isRestrictNoSlot1Store = 1; 27184 let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27185 let isPredicable = 1; 27186 let DecoderNamespace = "EXT_mmvec"; 27187 let Constraints = "$Rx32 = $Rx32in"; 27188 } 27189 def V6_vL32b_nt_cur_ppu : HInst< 27190 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27191 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 27192 "$Vd32.cur = vmem($Rx32++$Mu2):nt", 27193 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27194 let Inst{12-5} = 0b00000001; 27195 let Inst{31-21} = 0b00101011010; 27196 let hasNewValue = 1; 27197 let opNewValue = 0; 27198 let addrMode = PostInc; 27199 let accessSize = HVXVectorAccess; 27200 let isCVLoad = 1; 27201 let CVINew = 1; 27202 let mayLoad = 1; 27203 let isNonTemporal = 1; 27204 let isRestrictNoSlot1Store = 1; 27205 let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27206 let isPredicable = 1; 27207 let DecoderNamespace = "EXT_mmvec"; 27208 let Constraints = "$Rx32 = $Rx32in"; 27209 } 27210 def V6_vL32b_nt_cur_pred_ai : HInst< 27211 (outs HvxVR:$Vd32), 27212 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27213 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27214 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27215 let Inst{7-5} = 0b100; 27216 let Inst{31-21} = 0b00101000110; 27217 let isPredicated = 1; 27218 let hasNewValue = 1; 27219 let opNewValue = 0; 27220 let addrMode = BaseImmOffset; 27221 let accessSize = HVXVectorAccess; 27222 let isCVLoad = 1; 27223 let CVINew = 1; 27224 let mayLoad = 1; 27225 let isNonTemporal = 1; 27226 let isRestrictNoSlot1Store = 1; 27227 let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27228 let DecoderNamespace = "EXT_mmvec"; 27229 } 27230 def V6_vL32b_nt_cur_pred_pi : HInst< 27231 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27232 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27233 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27234 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27235 let Inst{7-5} = 0b100; 27236 let Inst{13-13} = 0b0; 27237 let Inst{31-21} = 0b00101001110; 27238 let isPredicated = 1; 27239 let hasNewValue = 1; 27240 let opNewValue = 0; 27241 let addrMode = PostInc; 27242 let accessSize = HVXVectorAccess; 27243 let isCVLoad = 1; 27244 let CVINew = 1; 27245 let mayLoad = 1; 27246 let isNonTemporal = 1; 27247 let isRestrictNoSlot1Store = 1; 27248 let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27249 let DecoderNamespace = "EXT_mmvec"; 27250 let Constraints = "$Rx32 = $Rx32in"; 27251 } 27252 def V6_vL32b_nt_cur_pred_ppu : HInst< 27253 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27254 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27255 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27256 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27257 let Inst{10-5} = 0b000100; 27258 let Inst{31-21} = 0b00101011110; 27259 let isPredicated = 1; 27260 let hasNewValue = 1; 27261 let opNewValue = 0; 27262 let addrMode = PostInc; 27263 let accessSize = HVXVectorAccess; 27264 let isCVLoad = 1; 27265 let CVINew = 1; 27266 let mayLoad = 1; 27267 let isNonTemporal = 1; 27268 let isRestrictNoSlot1Store = 1; 27269 let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27270 let DecoderNamespace = "EXT_mmvec"; 27271 let Constraints = "$Rx32 = $Rx32in"; 27272 } 27273 def V6_vL32b_nt_npred_ai : HInst< 27274 (outs HvxVR:$Vd32), 27275 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27276 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 27277 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27278 let Inst{7-5} = 0b011; 27279 let Inst{31-21} = 0b00101000110; 27280 let isPredicated = 1; 27281 let isPredicatedFalse = 1; 27282 let hasNewValue = 1; 27283 let opNewValue = 0; 27284 let addrMode = BaseImmOffset; 27285 let accessSize = HVXVectorAccess; 27286 let isCVLoad = 1; 27287 let mayLoad = 1; 27288 let isNonTemporal = 1; 27289 let isRestrictNoSlot1Store = 1; 27290 let BaseOpcode = "V6_vL32b_nt_ai"; 27291 let DecoderNamespace = "EXT_mmvec"; 27292 } 27293 def V6_vL32b_nt_npred_pi : HInst< 27294 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27295 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27296 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 27297 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27298 let Inst{7-5} = 0b011; 27299 let Inst{13-13} = 0b0; 27300 let Inst{31-21} = 0b00101001110; 27301 let isPredicated = 1; 27302 let isPredicatedFalse = 1; 27303 let hasNewValue = 1; 27304 let opNewValue = 0; 27305 let addrMode = PostInc; 27306 let accessSize = HVXVectorAccess; 27307 let isCVLoad = 1; 27308 let mayLoad = 1; 27309 let isNonTemporal = 1; 27310 let isRestrictNoSlot1Store = 1; 27311 let BaseOpcode = "V6_vL32b_nt_pi"; 27312 let DecoderNamespace = "EXT_mmvec"; 27313 let Constraints = "$Rx32 = $Rx32in"; 27314 } 27315 def V6_vL32b_nt_npred_ppu : HInst< 27316 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27317 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27318 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 27319 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27320 let Inst{10-5} = 0b000011; 27321 let Inst{31-21} = 0b00101011110; 27322 let isPredicated = 1; 27323 let isPredicatedFalse = 1; 27324 let hasNewValue = 1; 27325 let opNewValue = 0; 27326 let addrMode = PostInc; 27327 let accessSize = HVXVectorAccess; 27328 let isCVLoad = 1; 27329 let mayLoad = 1; 27330 let isNonTemporal = 1; 27331 let isRestrictNoSlot1Store = 1; 27332 let BaseOpcode = "V6_vL32b_nt_ppu"; 27333 let DecoderNamespace = "EXT_mmvec"; 27334 let Constraints = "$Rx32 = $Rx32in"; 27335 } 27336 def V6_vL32b_nt_pi : HInst< 27337 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27338 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27339 "$Vd32 = vmem($Rx32++#$Ii):nt", 27340 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27341 let Inst{7-5} = 0b000; 27342 let Inst{13-11} = 0b000; 27343 let Inst{31-21} = 0b00101001010; 27344 let hasNewValue = 1; 27345 let opNewValue = 0; 27346 let addrMode = PostInc; 27347 let accessSize = HVXVectorAccess; 27348 let isCVLoad = 1; 27349 let mayLoad = 1; 27350 let isNonTemporal = 1; 27351 let isRestrictNoSlot1Store = 1; 27352 let BaseOpcode = "V6_vL32b_nt_pi"; 27353 let isCVLoadable = 1; 27354 let isPredicable = 1; 27355 let DecoderNamespace = "EXT_mmvec"; 27356 let Constraints = "$Rx32 = $Rx32in"; 27357 } 27358 def V6_vL32b_nt_ppu : HInst< 27359 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27360 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 27361 "$Vd32 = vmem($Rx32++$Mu2):nt", 27362 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27363 let Inst{12-5} = 0b00000000; 27364 let Inst{31-21} = 0b00101011010; 27365 let hasNewValue = 1; 27366 let opNewValue = 0; 27367 let addrMode = PostInc; 27368 let accessSize = HVXVectorAccess; 27369 let isCVLoad = 1; 27370 let mayLoad = 1; 27371 let isNonTemporal = 1; 27372 let isRestrictNoSlot1Store = 1; 27373 let BaseOpcode = "V6_vL32b_nt_ppu"; 27374 let isCVLoadable = 1; 27375 let isPredicable = 1; 27376 let DecoderNamespace = "EXT_mmvec"; 27377 let Constraints = "$Rx32 = $Rx32in"; 27378 } 27379 def V6_vL32b_nt_pred_ai : HInst< 27380 (outs HvxVR:$Vd32), 27381 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27382 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 27383 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27384 let Inst{7-5} = 0b010; 27385 let Inst{31-21} = 0b00101000110; 27386 let isPredicated = 1; 27387 let hasNewValue = 1; 27388 let opNewValue = 0; 27389 let addrMode = BaseImmOffset; 27390 let accessSize = HVXVectorAccess; 27391 let isCVLoad = 1; 27392 let mayLoad = 1; 27393 let isNonTemporal = 1; 27394 let isRestrictNoSlot1Store = 1; 27395 let BaseOpcode = "V6_vL32b_nt_ai"; 27396 let DecoderNamespace = "EXT_mmvec"; 27397 } 27398 def V6_vL32b_nt_pred_pi : HInst< 27399 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27400 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27401 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 27402 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27403 let Inst{7-5} = 0b010; 27404 let Inst{13-13} = 0b0; 27405 let Inst{31-21} = 0b00101001110; 27406 let isPredicated = 1; 27407 let hasNewValue = 1; 27408 let opNewValue = 0; 27409 let addrMode = PostInc; 27410 let accessSize = HVXVectorAccess; 27411 let isCVLoad = 1; 27412 let mayLoad = 1; 27413 let isNonTemporal = 1; 27414 let isRestrictNoSlot1Store = 1; 27415 let BaseOpcode = "V6_vL32b_nt_pi"; 27416 let DecoderNamespace = "EXT_mmvec"; 27417 let Constraints = "$Rx32 = $Rx32in"; 27418 } 27419 def V6_vL32b_nt_pred_ppu : HInst< 27420 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27421 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27422 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 27423 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27424 let Inst{10-5} = 0b000010; 27425 let Inst{31-21} = 0b00101011110; 27426 let isPredicated = 1; 27427 let hasNewValue = 1; 27428 let opNewValue = 0; 27429 let addrMode = PostInc; 27430 let accessSize = HVXVectorAccess; 27431 let isCVLoad = 1; 27432 let mayLoad = 1; 27433 let isNonTemporal = 1; 27434 let isRestrictNoSlot1Store = 1; 27435 let BaseOpcode = "V6_vL32b_nt_ppu"; 27436 let DecoderNamespace = "EXT_mmvec"; 27437 let Constraints = "$Rx32 = $Rx32in"; 27438 } 27439 def V6_vL32b_nt_tmp_ai : HInst< 27440 (outs HvxVR:$Vd32), 27441 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 27442 "$Vd32.tmp = vmem($Rt32+#$Ii):nt", 27443 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27444 let Inst{7-5} = 0b010; 27445 let Inst{12-11} = 0b00; 27446 let Inst{31-21} = 0b00101000010; 27447 let hasNewValue = 1; 27448 let opNewValue = 0; 27449 let addrMode = BaseImmOffset; 27450 let accessSize = HVXVectorAccess; 27451 let isCVLoad = 1; 27452 let mayLoad = 1; 27453 let isNonTemporal = 1; 27454 let isRestrictNoSlot1Store = 1; 27455 let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 27456 let isPredicable = 1; 27457 let DecoderNamespace = "EXT_mmvec"; 27458 } 27459 def V6_vL32b_nt_tmp_npred_ai : HInst< 27460 (outs HvxVR:$Vd32), 27461 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27462 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 27463 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27464 let Inst{7-5} = 0b111; 27465 let Inst{31-21} = 0b00101000110; 27466 let isPredicated = 1; 27467 let isPredicatedFalse = 1; 27468 let hasNewValue = 1; 27469 let opNewValue = 0; 27470 let addrMode = BaseImmOffset; 27471 let accessSize = HVXVectorAccess; 27472 let isCVLoad = 1; 27473 let mayLoad = 1; 27474 let isNonTemporal = 1; 27475 let isRestrictNoSlot1Store = 1; 27476 let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 27477 let DecoderNamespace = "EXT_mmvec"; 27478 } 27479 def V6_vL32b_nt_tmp_npred_pi : HInst< 27480 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27481 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27482 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 27483 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27484 let Inst{7-5} = 0b111; 27485 let Inst{13-13} = 0b0; 27486 let Inst{31-21} = 0b00101001110; 27487 let isPredicated = 1; 27488 let isPredicatedFalse = 1; 27489 let hasNewValue = 1; 27490 let opNewValue = 0; 27491 let addrMode = PostInc; 27492 let accessSize = HVXVectorAccess; 27493 let isCVLoad = 1; 27494 let mayLoad = 1; 27495 let isNonTemporal = 1; 27496 let isRestrictNoSlot1Store = 1; 27497 let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 27498 let DecoderNamespace = "EXT_mmvec"; 27499 let Constraints = "$Rx32 = $Rx32in"; 27500 } 27501 def V6_vL32b_nt_tmp_npred_ppu : HInst< 27502 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27503 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27504 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 27505 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27506 let Inst{10-5} = 0b000111; 27507 let Inst{31-21} = 0b00101011110; 27508 let isPredicated = 1; 27509 let isPredicatedFalse = 1; 27510 let hasNewValue = 1; 27511 let opNewValue = 0; 27512 let addrMode = PostInc; 27513 let accessSize = HVXVectorAccess; 27514 let isCVLoad = 1; 27515 let mayLoad = 1; 27516 let isNonTemporal = 1; 27517 let isRestrictNoSlot1Store = 1; 27518 let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 27519 let DecoderNamespace = "EXT_mmvec"; 27520 let Constraints = "$Rx32 = $Rx32in"; 27521 } 27522 def V6_vL32b_nt_tmp_pi : HInst< 27523 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27524 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27525 "$Vd32.tmp = vmem($Rx32++#$Ii):nt", 27526 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27527 let Inst{7-5} = 0b010; 27528 let Inst{13-11} = 0b000; 27529 let Inst{31-21} = 0b00101001010; 27530 let hasNewValue = 1; 27531 let opNewValue = 0; 27532 let addrMode = PostInc; 27533 let accessSize = HVXVectorAccess; 27534 let isCVLoad = 1; 27535 let mayLoad = 1; 27536 let isNonTemporal = 1; 27537 let isRestrictNoSlot1Store = 1; 27538 let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 27539 let isPredicable = 1; 27540 let DecoderNamespace = "EXT_mmvec"; 27541 let Constraints = "$Rx32 = $Rx32in"; 27542 } 27543 def V6_vL32b_nt_tmp_ppu : HInst< 27544 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27545 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 27546 "$Vd32.tmp = vmem($Rx32++$Mu2):nt", 27547 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27548 let Inst{12-5} = 0b00000010; 27549 let Inst{31-21} = 0b00101011010; 27550 let hasNewValue = 1; 27551 let opNewValue = 0; 27552 let addrMode = PostInc; 27553 let accessSize = HVXVectorAccess; 27554 let isCVLoad = 1; 27555 let mayLoad = 1; 27556 let isNonTemporal = 1; 27557 let isRestrictNoSlot1Store = 1; 27558 let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 27559 let isPredicable = 1; 27560 let DecoderNamespace = "EXT_mmvec"; 27561 let Constraints = "$Rx32 = $Rx32in"; 27562 } 27563 def V6_vL32b_nt_tmp_pred_ai : HInst< 27564 (outs HvxVR:$Vd32), 27565 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27566 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 27567 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27568 let Inst{7-5} = 0b110; 27569 let Inst{31-21} = 0b00101000110; 27570 let isPredicated = 1; 27571 let hasNewValue = 1; 27572 let opNewValue = 0; 27573 let addrMode = BaseImmOffset; 27574 let accessSize = HVXVectorAccess; 27575 let isCVLoad = 1; 27576 let mayLoad = 1; 27577 let isNonTemporal = 1; 27578 let isRestrictNoSlot1Store = 1; 27579 let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 27580 let DecoderNamespace = "EXT_mmvec"; 27581 } 27582 def V6_vL32b_nt_tmp_pred_pi : HInst< 27583 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27584 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27585 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 27586 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27587 let Inst{7-5} = 0b110; 27588 let Inst{13-13} = 0b0; 27589 let Inst{31-21} = 0b00101001110; 27590 let isPredicated = 1; 27591 let hasNewValue = 1; 27592 let opNewValue = 0; 27593 let addrMode = PostInc; 27594 let accessSize = HVXVectorAccess; 27595 let isCVLoad = 1; 27596 let mayLoad = 1; 27597 let isNonTemporal = 1; 27598 let isRestrictNoSlot1Store = 1; 27599 let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 27600 let DecoderNamespace = "EXT_mmvec"; 27601 let Constraints = "$Rx32 = $Rx32in"; 27602 } 27603 def V6_vL32b_nt_tmp_pred_ppu : HInst< 27604 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27605 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27606 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 27607 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27608 let Inst{10-5} = 0b000110; 27609 let Inst{31-21} = 0b00101011110; 27610 let isPredicated = 1; 27611 let hasNewValue = 1; 27612 let opNewValue = 0; 27613 let addrMode = PostInc; 27614 let accessSize = HVXVectorAccess; 27615 let isCVLoad = 1; 27616 let mayLoad = 1; 27617 let isNonTemporal = 1; 27618 let isRestrictNoSlot1Store = 1; 27619 let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 27620 let DecoderNamespace = "EXT_mmvec"; 27621 let Constraints = "$Rx32 = $Rx32in"; 27622 } 27623 def V6_vL32b_pi : HInst< 27624 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27625 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27626 "$Vd32 = vmem($Rx32++#$Ii)", 27627 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27628 let Inst{7-5} = 0b000; 27629 let Inst{13-11} = 0b000; 27630 let Inst{31-21} = 0b00101001000; 27631 let hasNewValue = 1; 27632 let opNewValue = 0; 27633 let addrMode = PostInc; 27634 let accessSize = HVXVectorAccess; 27635 let isCVLoad = 1; 27636 let mayLoad = 1; 27637 let isRestrictNoSlot1Store = 1; 27638 let BaseOpcode = "V6_vL32b_pi"; 27639 let isCVLoadable = 1; 27640 let isPredicable = 1; 27641 let DecoderNamespace = "EXT_mmvec"; 27642 let Constraints = "$Rx32 = $Rx32in"; 27643 } 27644 def V6_vL32b_ppu : HInst< 27645 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27646 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 27647 "$Vd32 = vmem($Rx32++$Mu2)", 27648 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27649 let Inst{12-5} = 0b00000000; 27650 let Inst{31-21} = 0b00101011000; 27651 let hasNewValue = 1; 27652 let opNewValue = 0; 27653 let addrMode = PostInc; 27654 let accessSize = HVXVectorAccess; 27655 let isCVLoad = 1; 27656 let mayLoad = 1; 27657 let isRestrictNoSlot1Store = 1; 27658 let BaseOpcode = "V6_vL32b_ppu"; 27659 let isCVLoadable = 1; 27660 let isPredicable = 1; 27661 let DecoderNamespace = "EXT_mmvec"; 27662 let Constraints = "$Rx32 = $Rx32in"; 27663 } 27664 def V6_vL32b_pred_ai : HInst< 27665 (outs HvxVR:$Vd32), 27666 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27667 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)", 27668 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27669 let Inst{7-5} = 0b010; 27670 let Inst{31-21} = 0b00101000100; 27671 let isPredicated = 1; 27672 let hasNewValue = 1; 27673 let opNewValue = 0; 27674 let addrMode = BaseImmOffset; 27675 let accessSize = HVXVectorAccess; 27676 let isCVLoad = 1; 27677 let mayLoad = 1; 27678 let isRestrictNoSlot1Store = 1; 27679 let BaseOpcode = "V6_vL32b_ai"; 27680 let DecoderNamespace = "EXT_mmvec"; 27681 } 27682 def V6_vL32b_pred_pi : HInst< 27683 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27684 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27685 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)", 27686 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27687 let Inst{7-5} = 0b010; 27688 let Inst{13-13} = 0b0; 27689 let Inst{31-21} = 0b00101001100; 27690 let isPredicated = 1; 27691 let hasNewValue = 1; 27692 let opNewValue = 0; 27693 let addrMode = PostInc; 27694 let accessSize = HVXVectorAccess; 27695 let isCVLoad = 1; 27696 let mayLoad = 1; 27697 let isRestrictNoSlot1Store = 1; 27698 let BaseOpcode = "V6_vL32b_pi"; 27699 let DecoderNamespace = "EXT_mmvec"; 27700 let Constraints = "$Rx32 = $Rx32in"; 27701 } 27702 def V6_vL32b_pred_ppu : HInst< 27703 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27704 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27705 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)", 27706 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27707 let Inst{10-5} = 0b000010; 27708 let Inst{31-21} = 0b00101011100; 27709 let isPredicated = 1; 27710 let hasNewValue = 1; 27711 let opNewValue = 0; 27712 let addrMode = PostInc; 27713 let accessSize = HVXVectorAccess; 27714 let isCVLoad = 1; 27715 let mayLoad = 1; 27716 let isRestrictNoSlot1Store = 1; 27717 let BaseOpcode = "V6_vL32b_ppu"; 27718 let DecoderNamespace = "EXT_mmvec"; 27719 let Constraints = "$Rx32 = $Rx32in"; 27720 } 27721 def V6_vL32b_tmp_ai : HInst< 27722 (outs HvxVR:$Vd32), 27723 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 27724 "$Vd32.tmp = vmem($Rt32+#$Ii)", 27725 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27726 let Inst{7-5} = 0b010; 27727 let Inst{12-11} = 0b00; 27728 let Inst{31-21} = 0b00101000000; 27729 let hasNewValue = 1; 27730 let opNewValue = 0; 27731 let addrMode = BaseImmOffset; 27732 let accessSize = HVXVectorAccess; 27733 let isCVLoad = 1; 27734 let mayLoad = 1; 27735 let isRestrictNoSlot1Store = 1; 27736 let BaseOpcode = "V6_vL32b_tmp_ai"; 27737 let isPredicable = 1; 27738 let DecoderNamespace = "EXT_mmvec"; 27739 } 27740 def V6_vL32b_tmp_npred_ai : HInst< 27741 (outs HvxVR:$Vd32), 27742 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27743 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 27744 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27745 let Inst{7-5} = 0b111; 27746 let Inst{31-21} = 0b00101000100; 27747 let isPredicated = 1; 27748 let isPredicatedFalse = 1; 27749 let hasNewValue = 1; 27750 let opNewValue = 0; 27751 let addrMode = BaseImmOffset; 27752 let accessSize = HVXVectorAccess; 27753 let isCVLoad = 1; 27754 let mayLoad = 1; 27755 let isRestrictNoSlot1Store = 1; 27756 let BaseOpcode = "V6_vL32b_tmp_ai"; 27757 let DecoderNamespace = "EXT_mmvec"; 27758 } 27759 def V6_vL32b_tmp_npred_pi : HInst< 27760 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27761 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27762 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 27763 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27764 let Inst{7-5} = 0b111; 27765 let Inst{13-13} = 0b0; 27766 let Inst{31-21} = 0b00101001100; 27767 let isPredicated = 1; 27768 let isPredicatedFalse = 1; 27769 let hasNewValue = 1; 27770 let opNewValue = 0; 27771 let addrMode = PostInc; 27772 let accessSize = HVXVectorAccess; 27773 let isCVLoad = 1; 27774 let mayLoad = 1; 27775 let isRestrictNoSlot1Store = 1; 27776 let BaseOpcode = "V6_vL32b_tmp_pi"; 27777 let DecoderNamespace = "EXT_mmvec"; 27778 let Constraints = "$Rx32 = $Rx32in"; 27779 } 27780 def V6_vL32b_tmp_npred_ppu : HInst< 27781 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27782 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27783 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 27784 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27785 let Inst{10-5} = 0b000111; 27786 let Inst{31-21} = 0b00101011100; 27787 let isPredicated = 1; 27788 let isPredicatedFalse = 1; 27789 let hasNewValue = 1; 27790 let opNewValue = 0; 27791 let addrMode = PostInc; 27792 let accessSize = HVXVectorAccess; 27793 let isCVLoad = 1; 27794 let mayLoad = 1; 27795 let isRestrictNoSlot1Store = 1; 27796 let BaseOpcode = "V6_vL32b_tmp_ppu"; 27797 let DecoderNamespace = "EXT_mmvec"; 27798 let Constraints = "$Rx32 = $Rx32in"; 27799 } 27800 def V6_vL32b_tmp_pi : HInst< 27801 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27802 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27803 "$Vd32.tmp = vmem($Rx32++#$Ii)", 27804 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27805 let Inst{7-5} = 0b010; 27806 let Inst{13-11} = 0b000; 27807 let Inst{31-21} = 0b00101001000; 27808 let hasNewValue = 1; 27809 let opNewValue = 0; 27810 let addrMode = PostInc; 27811 let accessSize = HVXVectorAccess; 27812 let isCVLoad = 1; 27813 let mayLoad = 1; 27814 let isRestrictNoSlot1Store = 1; 27815 let BaseOpcode = "V6_vL32b_tmp_pi"; 27816 let isPredicable = 1; 27817 let DecoderNamespace = "EXT_mmvec"; 27818 let Constraints = "$Rx32 = $Rx32in"; 27819 } 27820 def V6_vL32b_tmp_ppu : HInst< 27821 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27822 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 27823 "$Vd32.tmp = vmem($Rx32++$Mu2)", 27824 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27825 let Inst{12-5} = 0b00000010; 27826 let Inst{31-21} = 0b00101011000; 27827 let hasNewValue = 1; 27828 let opNewValue = 0; 27829 let addrMode = PostInc; 27830 let accessSize = HVXVectorAccess; 27831 let isCVLoad = 1; 27832 let mayLoad = 1; 27833 let isRestrictNoSlot1Store = 1; 27834 let BaseOpcode = "V6_vL32b_tmp_ppu"; 27835 let isPredicable = 1; 27836 let DecoderNamespace = "EXT_mmvec"; 27837 let Constraints = "$Rx32 = $Rx32in"; 27838 } 27839 def V6_vL32b_tmp_pred_ai : HInst< 27840 (outs HvxVR:$Vd32), 27841 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27842 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 27843 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27844 let Inst{7-5} = 0b110; 27845 let Inst{31-21} = 0b00101000100; 27846 let isPredicated = 1; 27847 let hasNewValue = 1; 27848 let opNewValue = 0; 27849 let addrMode = BaseImmOffset; 27850 let accessSize = HVXVectorAccess; 27851 let isCVLoad = 1; 27852 let mayLoad = 1; 27853 let isRestrictNoSlot1Store = 1; 27854 let BaseOpcode = "V6_vL32b_tmp_ai"; 27855 let DecoderNamespace = "EXT_mmvec"; 27856 } 27857 def V6_vL32b_tmp_pred_pi : HInst< 27858 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27859 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27860 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 27861 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27862 let Inst{7-5} = 0b110; 27863 let Inst{13-13} = 0b0; 27864 let Inst{31-21} = 0b00101001100; 27865 let isPredicated = 1; 27866 let hasNewValue = 1; 27867 let opNewValue = 0; 27868 let addrMode = PostInc; 27869 let accessSize = HVXVectorAccess; 27870 let isCVLoad = 1; 27871 let mayLoad = 1; 27872 let isRestrictNoSlot1Store = 1; 27873 let BaseOpcode = "V6_vL32b_tmp_pi"; 27874 let DecoderNamespace = "EXT_mmvec"; 27875 let Constraints = "$Rx32 = $Rx32in"; 27876 } 27877 def V6_vL32b_tmp_pred_ppu : HInst< 27878 (outs HvxVR:$Vd32, IntRegs:$Rx32), 27879 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27880 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 27881 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27882 let Inst{10-5} = 0b000110; 27883 let Inst{31-21} = 0b00101011100; 27884 let isPredicated = 1; 27885 let hasNewValue = 1; 27886 let opNewValue = 0; 27887 let addrMode = PostInc; 27888 let accessSize = HVXVectorAccess; 27889 let isCVLoad = 1; 27890 let mayLoad = 1; 27891 let isRestrictNoSlot1Store = 1; 27892 let BaseOpcode = "V6_vL32b_tmp_ppu"; 27893 let DecoderNamespace = "EXT_mmvec"; 27894 let Constraints = "$Rx32 = $Rx32in"; 27895 } 27896 def V6_vS32Ub_ai : HInst< 27897 (outs), 27898 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 27899 "vmemu($Rt32+#$Ii) = $Vs32", 27900 tc_354299ad, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 27901 let Inst{7-5} = 0b111; 27902 let Inst{12-11} = 0b00; 27903 let Inst{31-21} = 0b00101000001; 27904 let addrMode = BaseImmOffset; 27905 let accessSize = HVXVectorAccess; 27906 let mayStore = 1; 27907 let BaseOpcode = "V6_vS32Ub_ai"; 27908 let isPredicable = 1; 27909 let DecoderNamespace = "EXT_mmvec"; 27910 } 27911 def V6_vS32Ub_npred_ai : HInst< 27912 (outs), 27913 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 27914 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32", 27915 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 27916 let Inst{7-5} = 0b111; 27917 let Inst{31-21} = 0b00101000101; 27918 let isPredicated = 1; 27919 let isPredicatedFalse = 1; 27920 let addrMode = BaseImmOffset; 27921 let accessSize = HVXVectorAccess; 27922 let mayStore = 1; 27923 let BaseOpcode = "V6_vS32Ub_ai"; 27924 let DecoderNamespace = "EXT_mmvec"; 27925 } 27926 def V6_vS32Ub_npred_pi : HInst< 27927 (outs IntRegs:$Rx32), 27928 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 27929 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32", 27930 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 27931 let Inst{7-5} = 0b111; 27932 let Inst{13-13} = 0b0; 27933 let Inst{31-21} = 0b00101001101; 27934 let isPredicated = 1; 27935 let isPredicatedFalse = 1; 27936 let addrMode = PostInc; 27937 let accessSize = HVXVectorAccess; 27938 let mayStore = 1; 27939 let BaseOpcode = "V6_vS32Ub_pi"; 27940 let DecoderNamespace = "EXT_mmvec"; 27941 let Constraints = "$Rx32 = $Rx32in"; 27942 } 27943 def V6_vS32Ub_npred_ppu : HInst< 27944 (outs IntRegs:$Rx32), 27945 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 27946 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32", 27947 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 27948 let Inst{10-5} = 0b000111; 27949 let Inst{31-21} = 0b00101011101; 27950 let isPredicated = 1; 27951 let isPredicatedFalse = 1; 27952 let addrMode = PostInc; 27953 let accessSize = HVXVectorAccess; 27954 let mayStore = 1; 27955 let BaseOpcode = "V6_vS32Ub_ppu"; 27956 let DecoderNamespace = "EXT_mmvec"; 27957 let Constraints = "$Rx32 = $Rx32in"; 27958 } 27959 def V6_vS32Ub_pi : HInst< 27960 (outs IntRegs:$Rx32), 27961 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 27962 "vmemu($Rx32++#$Ii) = $Vs32", 27963 tc_7fa82b08, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 27964 let Inst{7-5} = 0b111; 27965 let Inst{13-11} = 0b000; 27966 let Inst{31-21} = 0b00101001001; 27967 let addrMode = PostInc; 27968 let accessSize = HVXVectorAccess; 27969 let mayStore = 1; 27970 let BaseOpcode = "V6_vS32Ub_pi"; 27971 let isPredicable = 1; 27972 let DecoderNamespace = "EXT_mmvec"; 27973 let Constraints = "$Rx32 = $Rx32in"; 27974 } 27975 def V6_vS32Ub_ppu : HInst< 27976 (outs IntRegs:$Rx32), 27977 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 27978 "vmemu($Rx32++$Mu2) = $Vs32", 27979 tc_7fa82b08, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 27980 let Inst{12-5} = 0b00000111; 27981 let Inst{31-21} = 0b00101011001; 27982 let addrMode = PostInc; 27983 let accessSize = HVXVectorAccess; 27984 let mayStore = 1; 27985 let BaseOpcode = "V6_vS32Ub_ppu"; 27986 let isPredicable = 1; 27987 let DecoderNamespace = "EXT_mmvec"; 27988 let Constraints = "$Rx32 = $Rx32in"; 27989 } 27990 def V6_vS32Ub_pred_ai : HInst< 27991 (outs), 27992 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 27993 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32", 27994 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 27995 let Inst{7-5} = 0b110; 27996 let Inst{31-21} = 0b00101000101; 27997 let isPredicated = 1; 27998 let addrMode = BaseImmOffset; 27999 let accessSize = HVXVectorAccess; 28000 let mayStore = 1; 28001 let BaseOpcode = "V6_vS32Ub_ai"; 28002 let DecoderNamespace = "EXT_mmvec"; 28003 } 28004 def V6_vS32Ub_pred_pi : HInst< 28005 (outs IntRegs:$Rx32), 28006 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28007 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28008 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28009 let Inst{7-5} = 0b110; 28010 let Inst{13-13} = 0b0; 28011 let Inst{31-21} = 0b00101001101; 28012 let isPredicated = 1; 28013 let addrMode = PostInc; 28014 let accessSize = HVXVectorAccess; 28015 let mayStore = 1; 28016 let BaseOpcode = "V6_vS32Ub_pi"; 28017 let DecoderNamespace = "EXT_mmvec"; 28018 let Constraints = "$Rx32 = $Rx32in"; 28019 } 28020 def V6_vS32Ub_pred_ppu : HInst< 28021 (outs IntRegs:$Rx32), 28022 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28023 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28024 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28025 let Inst{10-5} = 0b000110; 28026 let Inst{31-21} = 0b00101011101; 28027 let isPredicated = 1; 28028 let addrMode = PostInc; 28029 let accessSize = HVXVectorAccess; 28030 let mayStore = 1; 28031 let BaseOpcode = "V6_vS32Ub_ppu"; 28032 let DecoderNamespace = "EXT_mmvec"; 28033 let Constraints = "$Rx32 = $Rx32in"; 28034 } 28035 def V6_vS32b_ai : HInst< 28036 (outs), 28037 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28038 "vmem($Rt32+#$Ii) = $Vs32", 28039 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28040 let Inst{7-5} = 0b000; 28041 let Inst{12-11} = 0b00; 28042 let Inst{31-21} = 0b00101000001; 28043 let addrMode = BaseImmOffset; 28044 let accessSize = HVXVectorAccess; 28045 let mayStore = 1; 28046 let BaseOpcode = "V6_vS32b_ai"; 28047 let isNVStorable = 1; 28048 let isPredicable = 1; 28049 let DecoderNamespace = "EXT_mmvec"; 28050 } 28051 def V6_vS32b_new_ai : HInst< 28052 (outs), 28053 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28054 "vmem($Rt32+#$Ii) = $Os8.new", 28055 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 28056 let Inst{7-3} = 0b00100; 28057 let Inst{12-11} = 0b00; 28058 let Inst{31-21} = 0b00101000001; 28059 let addrMode = BaseImmOffset; 28060 let accessSize = HVXVectorAccess; 28061 let isNVStore = 1; 28062 let CVINew = 1; 28063 let isNewValue = 1; 28064 let mayStore = 1; 28065 let BaseOpcode = "V6_vS32b_ai"; 28066 let isPredicable = 1; 28067 let DecoderNamespace = "EXT_mmvec"; 28068 let opNewValue = 2; 28069 } 28070 def V6_vS32b_new_npred_ai : HInst< 28071 (outs), 28072 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28073 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28074 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28075 let Inst{7-3} = 0b01101; 28076 let Inst{31-21} = 0b00101000101; 28077 let isPredicated = 1; 28078 let isPredicatedFalse = 1; 28079 let addrMode = BaseImmOffset; 28080 let accessSize = HVXVectorAccess; 28081 let isNVStore = 1; 28082 let CVINew = 1; 28083 let isNewValue = 1; 28084 let mayStore = 1; 28085 let BaseOpcode = "V6_vS32b_ai"; 28086 let DecoderNamespace = "EXT_mmvec"; 28087 let opNewValue = 3; 28088 } 28089 def V6_vS32b_new_npred_pi : HInst< 28090 (outs IntRegs:$Rx32), 28091 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28092 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28093 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28094 let Inst{7-3} = 0b01101; 28095 let Inst{13-13} = 0b0; 28096 let Inst{31-21} = 0b00101001101; 28097 let isPredicated = 1; 28098 let isPredicatedFalse = 1; 28099 let addrMode = PostInc; 28100 let accessSize = HVXVectorAccess; 28101 let isNVStore = 1; 28102 let CVINew = 1; 28103 let isNewValue = 1; 28104 let mayStore = 1; 28105 let BaseOpcode = "V6_vS32b_pi"; 28106 let DecoderNamespace = "EXT_mmvec"; 28107 let opNewValue = 4; 28108 let Constraints = "$Rx32 = $Rx32in"; 28109 } 28110 def V6_vS32b_new_npred_ppu : HInst< 28111 (outs IntRegs:$Rx32), 28112 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28113 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28114 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28115 let Inst{10-3} = 0b00001101; 28116 let Inst{31-21} = 0b00101011101; 28117 let isPredicated = 1; 28118 let isPredicatedFalse = 1; 28119 let addrMode = PostInc; 28120 let accessSize = HVXVectorAccess; 28121 let isNVStore = 1; 28122 let CVINew = 1; 28123 let isNewValue = 1; 28124 let mayStore = 1; 28125 let BaseOpcode = "V6_vS32b_ppu"; 28126 let DecoderNamespace = "EXT_mmvec"; 28127 let opNewValue = 4; 28128 let Constraints = "$Rx32 = $Rx32in"; 28129 } 28130 def V6_vS32b_new_pi : HInst< 28131 (outs IntRegs:$Rx32), 28132 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28133 "vmem($Rx32++#$Ii) = $Os8.new", 28134 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 28135 let Inst{7-3} = 0b00100; 28136 let Inst{13-11} = 0b000; 28137 let Inst{31-21} = 0b00101001001; 28138 let addrMode = PostInc; 28139 let accessSize = HVXVectorAccess; 28140 let isNVStore = 1; 28141 let CVINew = 1; 28142 let isNewValue = 1; 28143 let mayStore = 1; 28144 let BaseOpcode = "V6_vS32b_pi"; 28145 let isPredicable = 1; 28146 let DecoderNamespace = "EXT_mmvec"; 28147 let opNewValue = 3; 28148 let Constraints = "$Rx32 = $Rx32in"; 28149 } 28150 def V6_vS32b_new_ppu : HInst< 28151 (outs IntRegs:$Rx32), 28152 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28153 "vmem($Rx32++$Mu2) = $Os8.new", 28154 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 28155 let Inst{12-3} = 0b0000000100; 28156 let Inst{31-21} = 0b00101011001; 28157 let addrMode = PostInc; 28158 let accessSize = HVXVectorAccess; 28159 let isNVStore = 1; 28160 let CVINew = 1; 28161 let isNewValue = 1; 28162 let mayStore = 1; 28163 let BaseOpcode = "V6_vS32b_ppu"; 28164 let isPredicable = 1; 28165 let DecoderNamespace = "EXT_mmvec"; 28166 let opNewValue = 3; 28167 let Constraints = "$Rx32 = $Rx32in"; 28168 } 28169 def V6_vS32b_new_pred_ai : HInst< 28170 (outs), 28171 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28172 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28173 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28174 let Inst{7-3} = 0b01000; 28175 let Inst{31-21} = 0b00101000101; 28176 let isPredicated = 1; 28177 let addrMode = BaseImmOffset; 28178 let accessSize = HVXVectorAccess; 28179 let isNVStore = 1; 28180 let CVINew = 1; 28181 let isNewValue = 1; 28182 let mayStore = 1; 28183 let BaseOpcode = "V6_vS32b_ai"; 28184 let DecoderNamespace = "EXT_mmvec"; 28185 let opNewValue = 3; 28186 } 28187 def V6_vS32b_new_pred_pi : HInst< 28188 (outs IntRegs:$Rx32), 28189 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28190 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28191 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28192 let Inst{7-3} = 0b01000; 28193 let Inst{13-13} = 0b0; 28194 let Inst{31-21} = 0b00101001101; 28195 let isPredicated = 1; 28196 let addrMode = PostInc; 28197 let accessSize = HVXVectorAccess; 28198 let isNVStore = 1; 28199 let CVINew = 1; 28200 let isNewValue = 1; 28201 let mayStore = 1; 28202 let BaseOpcode = "V6_vS32b_pi"; 28203 let DecoderNamespace = "EXT_mmvec"; 28204 let opNewValue = 4; 28205 let Constraints = "$Rx32 = $Rx32in"; 28206 } 28207 def V6_vS32b_new_pred_ppu : HInst< 28208 (outs IntRegs:$Rx32), 28209 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28210 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28211 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28212 let Inst{10-3} = 0b00001000; 28213 let Inst{31-21} = 0b00101011101; 28214 let isPredicated = 1; 28215 let addrMode = PostInc; 28216 let accessSize = HVXVectorAccess; 28217 let isNVStore = 1; 28218 let CVINew = 1; 28219 let isNewValue = 1; 28220 let mayStore = 1; 28221 let BaseOpcode = "V6_vS32b_ppu"; 28222 let DecoderNamespace = "EXT_mmvec"; 28223 let opNewValue = 4; 28224 let Constraints = "$Rx32 = $Rx32in"; 28225 } 28226 def V6_vS32b_npred_ai : HInst< 28227 (outs), 28228 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28229 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32", 28230 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28231 let Inst{7-5} = 0b001; 28232 let Inst{31-21} = 0b00101000101; 28233 let isPredicated = 1; 28234 let isPredicatedFalse = 1; 28235 let addrMode = BaseImmOffset; 28236 let accessSize = HVXVectorAccess; 28237 let mayStore = 1; 28238 let BaseOpcode = "V6_vS32b_ai"; 28239 let isNVStorable = 1; 28240 let DecoderNamespace = "EXT_mmvec"; 28241 } 28242 def V6_vS32b_npred_pi : HInst< 28243 (outs IntRegs:$Rx32), 28244 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28245 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32", 28246 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28247 let Inst{7-5} = 0b001; 28248 let Inst{13-13} = 0b0; 28249 let Inst{31-21} = 0b00101001101; 28250 let isPredicated = 1; 28251 let isPredicatedFalse = 1; 28252 let addrMode = PostInc; 28253 let accessSize = HVXVectorAccess; 28254 let mayStore = 1; 28255 let BaseOpcode = "V6_vS32b_pi"; 28256 let isNVStorable = 1; 28257 let DecoderNamespace = "EXT_mmvec"; 28258 let Constraints = "$Rx32 = $Rx32in"; 28259 } 28260 def V6_vS32b_npred_ppu : HInst< 28261 (outs IntRegs:$Rx32), 28262 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28263 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32", 28264 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28265 let Inst{10-5} = 0b000001; 28266 let Inst{31-21} = 0b00101011101; 28267 let isPredicated = 1; 28268 let isPredicatedFalse = 1; 28269 let addrMode = PostInc; 28270 let accessSize = HVXVectorAccess; 28271 let mayStore = 1; 28272 let BaseOpcode = "V6_vS32b_ppu"; 28273 let isNVStorable = 1; 28274 let DecoderNamespace = "EXT_mmvec"; 28275 let Constraints = "$Rx32 = $Rx32in"; 28276 } 28277 def V6_vS32b_nqpred_ai : HInst< 28278 (outs), 28279 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28280 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32", 28281 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 28282 let Inst{7-5} = 0b001; 28283 let Inst{31-21} = 0b00101000100; 28284 let addrMode = BaseImmOffset; 28285 let accessSize = HVXVectorAccess; 28286 let mayStore = 1; 28287 let DecoderNamespace = "EXT_mmvec"; 28288 } 28289 def V6_vS32b_nqpred_pi : HInst< 28290 (outs IntRegs:$Rx32), 28291 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28292 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32", 28293 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 28294 let Inst{7-5} = 0b001; 28295 let Inst{13-13} = 0b0; 28296 let Inst{31-21} = 0b00101001100; 28297 let addrMode = PostInc; 28298 let accessSize = HVXVectorAccess; 28299 let mayStore = 1; 28300 let DecoderNamespace = "EXT_mmvec"; 28301 let Constraints = "$Rx32 = $Rx32in"; 28302 } 28303 def V6_vS32b_nqpred_ppu : HInst< 28304 (outs IntRegs:$Rx32), 28305 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28306 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32", 28307 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 28308 let Inst{10-5} = 0b000001; 28309 let Inst{31-21} = 0b00101011100; 28310 let addrMode = PostInc; 28311 let accessSize = HVXVectorAccess; 28312 let mayStore = 1; 28313 let DecoderNamespace = "EXT_mmvec"; 28314 let Constraints = "$Rx32 = $Rx32in"; 28315 } 28316 def V6_vS32b_nt_ai : HInst< 28317 (outs), 28318 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28319 "vmem($Rt32+#$Ii):nt = $Vs32", 28320 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28321 let Inst{7-5} = 0b000; 28322 let Inst{12-11} = 0b00; 28323 let Inst{31-21} = 0b00101000011; 28324 let addrMode = BaseImmOffset; 28325 let accessSize = HVXVectorAccess; 28326 let isNonTemporal = 1; 28327 let mayStore = 1; 28328 let BaseOpcode = "V6_vS32b_ai"; 28329 let isNVStorable = 1; 28330 let isPredicable = 1; 28331 let DecoderNamespace = "EXT_mmvec"; 28332 } 28333 def V6_vS32b_nt_new_ai : HInst< 28334 (outs), 28335 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28336 "vmem($Rt32+#$Ii):nt = $Os8.new", 28337 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 28338 let Inst{7-3} = 0b00100; 28339 let Inst{12-11} = 0b00; 28340 let Inst{31-21} = 0b00101000011; 28341 let addrMode = BaseImmOffset; 28342 let accessSize = HVXVectorAccess; 28343 let isNVStore = 1; 28344 let CVINew = 1; 28345 let isNewValue = 1; 28346 let isNonTemporal = 1; 28347 let mayStore = 1; 28348 let BaseOpcode = "V6_vS32b_ai"; 28349 let isPredicable = 1; 28350 let DecoderNamespace = "EXT_mmvec"; 28351 let opNewValue = 2; 28352 } 28353 def V6_vS32b_nt_new_npred_ai : HInst< 28354 (outs), 28355 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28356 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 28357 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28358 let Inst{7-3} = 0b01111; 28359 let Inst{31-21} = 0b00101000111; 28360 let isPredicated = 1; 28361 let isPredicatedFalse = 1; 28362 let addrMode = BaseImmOffset; 28363 let accessSize = HVXVectorAccess; 28364 let isNVStore = 1; 28365 let CVINew = 1; 28366 let isNewValue = 1; 28367 let isNonTemporal = 1; 28368 let mayStore = 1; 28369 let BaseOpcode = "V6_vS32b_ai"; 28370 let DecoderNamespace = "EXT_mmvec"; 28371 let opNewValue = 3; 28372 } 28373 def V6_vS32b_nt_new_npred_pi : HInst< 28374 (outs IntRegs:$Rx32), 28375 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28376 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 28377 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28378 let Inst{7-3} = 0b01111; 28379 let Inst{13-13} = 0b0; 28380 let Inst{31-21} = 0b00101001111; 28381 let isPredicated = 1; 28382 let isPredicatedFalse = 1; 28383 let addrMode = PostInc; 28384 let accessSize = HVXVectorAccess; 28385 let isNVStore = 1; 28386 let CVINew = 1; 28387 let isNewValue = 1; 28388 let isNonTemporal = 1; 28389 let mayStore = 1; 28390 let BaseOpcode = "V6_vS32b_pi"; 28391 let DecoderNamespace = "EXT_mmvec"; 28392 let opNewValue = 4; 28393 let Constraints = "$Rx32 = $Rx32in"; 28394 } 28395 def V6_vS32b_nt_new_npred_ppu : HInst< 28396 (outs IntRegs:$Rx32), 28397 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28398 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 28399 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28400 let Inst{10-3} = 0b00001111; 28401 let Inst{31-21} = 0b00101011111; 28402 let isPredicated = 1; 28403 let isPredicatedFalse = 1; 28404 let addrMode = PostInc; 28405 let accessSize = HVXVectorAccess; 28406 let isNVStore = 1; 28407 let CVINew = 1; 28408 let isNewValue = 1; 28409 let isNonTemporal = 1; 28410 let mayStore = 1; 28411 let BaseOpcode = "V6_vS32b_ppu"; 28412 let DecoderNamespace = "EXT_mmvec"; 28413 let opNewValue = 4; 28414 let Constraints = "$Rx32 = $Rx32in"; 28415 } 28416 def V6_vS32b_nt_new_pi : HInst< 28417 (outs IntRegs:$Rx32), 28418 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28419 "vmem($Rx32++#$Ii):nt = $Os8.new", 28420 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 28421 let Inst{7-3} = 0b00100; 28422 let Inst{13-11} = 0b000; 28423 let Inst{31-21} = 0b00101001011; 28424 let addrMode = PostInc; 28425 let accessSize = HVXVectorAccess; 28426 let isNVStore = 1; 28427 let CVINew = 1; 28428 let isNewValue = 1; 28429 let isNonTemporal = 1; 28430 let mayStore = 1; 28431 let BaseOpcode = "V6_vS32b_pi"; 28432 let isPredicable = 1; 28433 let DecoderNamespace = "EXT_mmvec"; 28434 let opNewValue = 3; 28435 let Constraints = "$Rx32 = $Rx32in"; 28436 } 28437 def V6_vS32b_nt_new_ppu : HInst< 28438 (outs IntRegs:$Rx32), 28439 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28440 "vmem($Rx32++$Mu2):nt = $Os8.new", 28441 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 28442 let Inst{12-3} = 0b0000000100; 28443 let Inst{31-21} = 0b00101011011; 28444 let addrMode = PostInc; 28445 let accessSize = HVXVectorAccess; 28446 let isNVStore = 1; 28447 let CVINew = 1; 28448 let isNewValue = 1; 28449 let isNonTemporal = 1; 28450 let mayStore = 1; 28451 let BaseOpcode = "V6_vS32b_ppu"; 28452 let isPredicable = 1; 28453 let DecoderNamespace = "EXT_mmvec"; 28454 let opNewValue = 3; 28455 let Constraints = "$Rx32 = $Rx32in"; 28456 } 28457 def V6_vS32b_nt_new_pred_ai : HInst< 28458 (outs), 28459 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28460 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 28461 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28462 let Inst{7-3} = 0b01010; 28463 let Inst{31-21} = 0b00101000111; 28464 let isPredicated = 1; 28465 let addrMode = BaseImmOffset; 28466 let accessSize = HVXVectorAccess; 28467 let isNVStore = 1; 28468 let CVINew = 1; 28469 let isNewValue = 1; 28470 let isNonTemporal = 1; 28471 let mayStore = 1; 28472 let BaseOpcode = "V6_vS32b_ai"; 28473 let DecoderNamespace = "EXT_mmvec"; 28474 let opNewValue = 3; 28475 } 28476 def V6_vS32b_nt_new_pred_pi : HInst< 28477 (outs IntRegs:$Rx32), 28478 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28479 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 28480 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28481 let Inst{7-3} = 0b01010; 28482 let Inst{13-13} = 0b0; 28483 let Inst{31-21} = 0b00101001111; 28484 let isPredicated = 1; 28485 let addrMode = PostInc; 28486 let accessSize = HVXVectorAccess; 28487 let isNVStore = 1; 28488 let CVINew = 1; 28489 let isNewValue = 1; 28490 let isNonTemporal = 1; 28491 let mayStore = 1; 28492 let BaseOpcode = "V6_vS32b_pi"; 28493 let DecoderNamespace = "EXT_mmvec"; 28494 let opNewValue = 4; 28495 let Constraints = "$Rx32 = $Rx32in"; 28496 } 28497 def V6_vS32b_nt_new_pred_ppu : HInst< 28498 (outs IntRegs:$Rx32), 28499 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28500 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 28501 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28502 let Inst{10-3} = 0b00001010; 28503 let Inst{31-21} = 0b00101011111; 28504 let isPredicated = 1; 28505 let addrMode = PostInc; 28506 let accessSize = HVXVectorAccess; 28507 let isNVStore = 1; 28508 let CVINew = 1; 28509 let isNewValue = 1; 28510 let isNonTemporal = 1; 28511 let mayStore = 1; 28512 let BaseOpcode = "V6_vS32b_ppu"; 28513 let DecoderNamespace = "EXT_mmvec"; 28514 let opNewValue = 4; 28515 let Constraints = "$Rx32 = $Rx32in"; 28516 } 28517 def V6_vS32b_nt_npred_ai : HInst< 28518 (outs), 28519 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28520 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 28521 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28522 let Inst{7-5} = 0b001; 28523 let Inst{31-21} = 0b00101000111; 28524 let isPredicated = 1; 28525 let isPredicatedFalse = 1; 28526 let addrMode = BaseImmOffset; 28527 let accessSize = HVXVectorAccess; 28528 let isNonTemporal = 1; 28529 let mayStore = 1; 28530 let BaseOpcode = "V6_vS32b_ai"; 28531 let isNVStorable = 1; 28532 let DecoderNamespace = "EXT_mmvec"; 28533 } 28534 def V6_vS32b_nt_npred_pi : HInst< 28535 (outs IntRegs:$Rx32), 28536 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28537 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 28538 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28539 let Inst{7-5} = 0b001; 28540 let Inst{13-13} = 0b0; 28541 let Inst{31-21} = 0b00101001111; 28542 let isPredicated = 1; 28543 let isPredicatedFalse = 1; 28544 let addrMode = PostInc; 28545 let accessSize = HVXVectorAccess; 28546 let isNonTemporal = 1; 28547 let mayStore = 1; 28548 let BaseOpcode = "V6_vS32b_pi"; 28549 let isNVStorable = 1; 28550 let DecoderNamespace = "EXT_mmvec"; 28551 let Constraints = "$Rx32 = $Rx32in"; 28552 } 28553 def V6_vS32b_nt_npred_ppu : HInst< 28554 (outs IntRegs:$Rx32), 28555 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28556 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 28557 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28558 let Inst{10-5} = 0b000001; 28559 let Inst{31-21} = 0b00101011111; 28560 let isPredicated = 1; 28561 let isPredicatedFalse = 1; 28562 let addrMode = PostInc; 28563 let accessSize = HVXVectorAccess; 28564 let isNonTemporal = 1; 28565 let mayStore = 1; 28566 let BaseOpcode = "V6_vS32b_ppu"; 28567 let isNVStorable = 1; 28568 let DecoderNamespace = "EXT_mmvec"; 28569 let Constraints = "$Rx32 = $Rx32in"; 28570 } 28571 def V6_vS32b_nt_nqpred_ai : HInst< 28572 (outs), 28573 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28574 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 28575 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 28576 let Inst{7-5} = 0b001; 28577 let Inst{31-21} = 0b00101000110; 28578 let addrMode = BaseImmOffset; 28579 let accessSize = HVXVectorAccess; 28580 let isNonTemporal = 1; 28581 let mayStore = 1; 28582 let DecoderNamespace = "EXT_mmvec"; 28583 } 28584 def V6_vS32b_nt_nqpred_pi : HInst< 28585 (outs IntRegs:$Rx32), 28586 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28587 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 28588 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 28589 let Inst{7-5} = 0b001; 28590 let Inst{13-13} = 0b0; 28591 let Inst{31-21} = 0b00101001110; 28592 let addrMode = PostInc; 28593 let accessSize = HVXVectorAccess; 28594 let isNonTemporal = 1; 28595 let mayStore = 1; 28596 let DecoderNamespace = "EXT_mmvec"; 28597 let Constraints = "$Rx32 = $Rx32in"; 28598 } 28599 def V6_vS32b_nt_nqpred_ppu : HInst< 28600 (outs IntRegs:$Rx32), 28601 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28602 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 28603 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 28604 let Inst{10-5} = 0b000001; 28605 let Inst{31-21} = 0b00101011110; 28606 let addrMode = PostInc; 28607 let accessSize = HVXVectorAccess; 28608 let isNonTemporal = 1; 28609 let mayStore = 1; 28610 let DecoderNamespace = "EXT_mmvec"; 28611 let Constraints = "$Rx32 = $Rx32in"; 28612 } 28613 def V6_vS32b_nt_pi : HInst< 28614 (outs IntRegs:$Rx32), 28615 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28616 "vmem($Rx32++#$Ii):nt = $Vs32", 28617 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 28618 let Inst{7-5} = 0b000; 28619 let Inst{13-11} = 0b000; 28620 let Inst{31-21} = 0b00101001011; 28621 let addrMode = PostInc; 28622 let accessSize = HVXVectorAccess; 28623 let isNonTemporal = 1; 28624 let mayStore = 1; 28625 let BaseOpcode = "V6_vS32b_pi"; 28626 let isNVStorable = 1; 28627 let isPredicable = 1; 28628 let DecoderNamespace = "EXT_mmvec"; 28629 let Constraints = "$Rx32 = $Rx32in"; 28630 } 28631 def V6_vS32b_nt_ppu : HInst< 28632 (outs IntRegs:$Rx32), 28633 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28634 "vmem($Rx32++$Mu2):nt = $Vs32", 28635 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 28636 let Inst{12-5} = 0b00000000; 28637 let Inst{31-21} = 0b00101011011; 28638 let addrMode = PostInc; 28639 let accessSize = HVXVectorAccess; 28640 let isNonTemporal = 1; 28641 let mayStore = 1; 28642 let BaseOpcode = "V6_vS32b_ppu"; 28643 let isNVStorable = 1; 28644 let isPredicable = 1; 28645 let DecoderNamespace = "EXT_mmvec"; 28646 let Constraints = "$Rx32 = $Rx32in"; 28647 } 28648 def V6_vS32b_nt_pred_ai : HInst< 28649 (outs), 28650 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28651 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 28652 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28653 let Inst{7-5} = 0b000; 28654 let Inst{31-21} = 0b00101000111; 28655 let isPredicated = 1; 28656 let addrMode = BaseImmOffset; 28657 let accessSize = HVXVectorAccess; 28658 let isNonTemporal = 1; 28659 let mayStore = 1; 28660 let BaseOpcode = "V6_vS32b_ai"; 28661 let isNVStorable = 1; 28662 let DecoderNamespace = "EXT_mmvec"; 28663 } 28664 def V6_vS32b_nt_pred_pi : HInst< 28665 (outs IntRegs:$Rx32), 28666 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28667 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 28668 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28669 let Inst{7-5} = 0b000; 28670 let Inst{13-13} = 0b0; 28671 let Inst{31-21} = 0b00101001111; 28672 let isPredicated = 1; 28673 let addrMode = PostInc; 28674 let accessSize = HVXVectorAccess; 28675 let isNonTemporal = 1; 28676 let mayStore = 1; 28677 let BaseOpcode = "V6_vS32b_pi"; 28678 let isNVStorable = 1; 28679 let DecoderNamespace = "EXT_mmvec"; 28680 let Constraints = "$Rx32 = $Rx32in"; 28681 } 28682 def V6_vS32b_nt_pred_ppu : HInst< 28683 (outs IntRegs:$Rx32), 28684 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28685 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 28686 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28687 let Inst{10-5} = 0b000000; 28688 let Inst{31-21} = 0b00101011111; 28689 let isPredicated = 1; 28690 let addrMode = PostInc; 28691 let accessSize = HVXVectorAccess; 28692 let isNonTemporal = 1; 28693 let mayStore = 1; 28694 let BaseOpcode = "V6_vS32b_ppu"; 28695 let isNVStorable = 1; 28696 let DecoderNamespace = "EXT_mmvec"; 28697 let Constraints = "$Rx32 = $Rx32in"; 28698 } 28699 def V6_vS32b_nt_qpred_ai : HInst< 28700 (outs), 28701 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28702 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 28703 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 28704 let Inst{7-5} = 0b000; 28705 let Inst{31-21} = 0b00101000110; 28706 let addrMode = BaseImmOffset; 28707 let accessSize = HVXVectorAccess; 28708 let isNonTemporal = 1; 28709 let mayStore = 1; 28710 let DecoderNamespace = "EXT_mmvec"; 28711 } 28712 def V6_vS32b_nt_qpred_pi : HInst< 28713 (outs IntRegs:$Rx32), 28714 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28715 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 28716 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 28717 let Inst{7-5} = 0b000; 28718 let Inst{13-13} = 0b0; 28719 let Inst{31-21} = 0b00101001110; 28720 let addrMode = PostInc; 28721 let accessSize = HVXVectorAccess; 28722 let isNonTemporal = 1; 28723 let mayStore = 1; 28724 let DecoderNamespace = "EXT_mmvec"; 28725 let Constraints = "$Rx32 = $Rx32in"; 28726 } 28727 def V6_vS32b_nt_qpred_ppu : HInst< 28728 (outs IntRegs:$Rx32), 28729 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28730 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 28731 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 28732 let Inst{10-5} = 0b000000; 28733 let Inst{31-21} = 0b00101011110; 28734 let addrMode = PostInc; 28735 let accessSize = HVXVectorAccess; 28736 let isNonTemporal = 1; 28737 let mayStore = 1; 28738 let DecoderNamespace = "EXT_mmvec"; 28739 let Constraints = "$Rx32 = $Rx32in"; 28740 } 28741 def V6_vS32b_pi : HInst< 28742 (outs IntRegs:$Rx32), 28743 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28744 "vmem($Rx32++#$Ii) = $Vs32", 28745 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 28746 let Inst{7-5} = 0b000; 28747 let Inst{13-11} = 0b000; 28748 let Inst{31-21} = 0b00101001001; 28749 let addrMode = PostInc; 28750 let accessSize = HVXVectorAccess; 28751 let mayStore = 1; 28752 let BaseOpcode = "V6_vS32b_pi"; 28753 let isNVStorable = 1; 28754 let isPredicable = 1; 28755 let DecoderNamespace = "EXT_mmvec"; 28756 let Constraints = "$Rx32 = $Rx32in"; 28757 } 28758 def V6_vS32b_ppu : HInst< 28759 (outs IntRegs:$Rx32), 28760 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28761 "vmem($Rx32++$Mu2) = $Vs32", 28762 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 28763 let Inst{12-5} = 0b00000000; 28764 let Inst{31-21} = 0b00101011001; 28765 let addrMode = PostInc; 28766 let accessSize = HVXVectorAccess; 28767 let mayStore = 1; 28768 let isNVStorable = 1; 28769 let isPredicable = 1; 28770 let DecoderNamespace = "EXT_mmvec"; 28771 let Constraints = "$Rx32 = $Rx32in"; 28772 } 28773 def V6_vS32b_pred_ai : HInst< 28774 (outs), 28775 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28776 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32", 28777 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28778 let Inst{7-5} = 0b000; 28779 let Inst{31-21} = 0b00101000101; 28780 let isPredicated = 1; 28781 let addrMode = BaseImmOffset; 28782 let accessSize = HVXVectorAccess; 28783 let mayStore = 1; 28784 let BaseOpcode = "V6_vS32b_ai"; 28785 let isNVStorable = 1; 28786 let DecoderNamespace = "EXT_mmvec"; 28787 } 28788 def V6_vS32b_pred_pi : HInst< 28789 (outs IntRegs:$Rx32), 28790 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28791 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32", 28792 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28793 let Inst{7-5} = 0b000; 28794 let Inst{13-13} = 0b0; 28795 let Inst{31-21} = 0b00101001101; 28796 let isPredicated = 1; 28797 let addrMode = PostInc; 28798 let accessSize = HVXVectorAccess; 28799 let mayStore = 1; 28800 let BaseOpcode = "V6_vS32b_pi"; 28801 let isNVStorable = 1; 28802 let DecoderNamespace = "EXT_mmvec"; 28803 let Constraints = "$Rx32 = $Rx32in"; 28804 } 28805 def V6_vS32b_pred_ppu : HInst< 28806 (outs IntRegs:$Rx32), 28807 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28808 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32", 28809 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28810 let Inst{10-5} = 0b000000; 28811 let Inst{31-21} = 0b00101011101; 28812 let isPredicated = 1; 28813 let addrMode = PostInc; 28814 let accessSize = HVXVectorAccess; 28815 let mayStore = 1; 28816 let BaseOpcode = "V6_vS32b_ppu"; 28817 let isNVStorable = 1; 28818 let DecoderNamespace = "EXT_mmvec"; 28819 let Constraints = "$Rx32 = $Rx32in"; 28820 } 28821 def V6_vS32b_qpred_ai : HInst< 28822 (outs), 28823 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28824 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32", 28825 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 28826 let Inst{7-5} = 0b000; 28827 let Inst{31-21} = 0b00101000100; 28828 let addrMode = BaseImmOffset; 28829 let accessSize = HVXVectorAccess; 28830 let mayStore = 1; 28831 let DecoderNamespace = "EXT_mmvec"; 28832 } 28833 def V6_vS32b_qpred_pi : HInst< 28834 (outs IntRegs:$Rx32), 28835 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28836 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32", 28837 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 28838 let Inst{7-5} = 0b000; 28839 let Inst{13-13} = 0b0; 28840 let Inst{31-21} = 0b00101001100; 28841 let addrMode = PostInc; 28842 let accessSize = HVXVectorAccess; 28843 let mayStore = 1; 28844 let DecoderNamespace = "EXT_mmvec"; 28845 let Constraints = "$Rx32 = $Rx32in"; 28846 } 28847 def V6_vS32b_qpred_ppu : HInst< 28848 (outs IntRegs:$Rx32), 28849 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28850 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32", 28851 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 28852 let Inst{10-5} = 0b000000; 28853 let Inst{31-21} = 0b00101011100; 28854 let addrMode = PostInc; 28855 let accessSize = HVXVectorAccess; 28856 let mayStore = 1; 28857 let DecoderNamespace = "EXT_mmvec"; 28858 let Constraints = "$Rx32 = $Rx32in"; 28859 } 28860 def V6_vS32b_srls_ai : HInst< 28861 (outs), 28862 (ins IntRegs:$Rt32, s4_0Imm:$Ii), 28863 "vmem($Rt32+#$Ii):scatter_release", 28864 tc_29841470, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> { 28865 let Inst{7-0} = 0b00101000; 28866 let Inst{12-11} = 0b00; 28867 let Inst{31-21} = 0b00101000001; 28868 let addrMode = BaseImmOffset; 28869 let accessSize = HVXVectorAccess; 28870 let CVINew = 1; 28871 let mayStore = 1; 28872 let DecoderNamespace = "EXT_mmvec"; 28873 } 28874 def V6_vS32b_srls_pi : HInst< 28875 (outs IntRegs:$Rx32), 28876 (ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28877 "vmem($Rx32++#$Ii):scatter_release", 28878 tc_5c03dc63, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> { 28879 let Inst{7-0} = 0b00101000; 28880 let Inst{13-11} = 0b000; 28881 let Inst{31-21} = 0b00101001001; 28882 let addrMode = PostInc; 28883 let accessSize = HVXVectorAccess; 28884 let CVINew = 1; 28885 let mayStore = 1; 28886 let DecoderNamespace = "EXT_mmvec"; 28887 let Constraints = "$Rx32 = $Rx32in"; 28888 } 28889 def V6_vS32b_srls_ppu : HInst< 28890 (outs IntRegs:$Rx32), 28891 (ins IntRegs:$Rx32in, ModRegs:$Mu2), 28892 "vmem($Rx32++$Mu2):scatter_release", 28893 tc_5c03dc63, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> { 28894 let Inst{12-0} = 0b0000000101000; 28895 let Inst{31-21} = 0b00101011001; 28896 let addrMode = PostInc; 28897 let accessSize = HVXVectorAccess; 28898 let CVINew = 1; 28899 let mayStore = 1; 28900 let DecoderNamespace = "EXT_mmvec"; 28901 let Constraints = "$Rx32 = $Rx32in"; 28902 } 28903 def V6_vabsb : HInst< 28904 (outs HvxVR:$Vd32), 28905 (ins HvxVR:$Vu32), 28906 "$Vd32.b = vabs($Vu32.b)", 28907 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 28908 let Inst{7-5} = 0b100; 28909 let Inst{13-13} = 0b0; 28910 let Inst{31-16} = 0b0001111000000001; 28911 let hasNewValue = 1; 28912 let opNewValue = 0; 28913 let DecoderNamespace = "EXT_mmvec"; 28914 } 28915 def V6_vabsb_alt : HInst< 28916 (outs HvxVR:$Vd32), 28917 (ins HvxVR:$Vu32), 28918 "$Vd32 = vabsb($Vu32)", 28919 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 28920 let hasNewValue = 1; 28921 let opNewValue = 0; 28922 let isPseudo = 1; 28923 let isCodeGenOnly = 1; 28924 let DecoderNamespace = "EXT_mmvec"; 28925 } 28926 def V6_vabsb_sat : HInst< 28927 (outs HvxVR:$Vd32), 28928 (ins HvxVR:$Vu32), 28929 "$Vd32.b = vabs($Vu32.b):sat", 28930 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 28931 let Inst{7-5} = 0b101; 28932 let Inst{13-13} = 0b0; 28933 let Inst{31-16} = 0b0001111000000001; 28934 let hasNewValue = 1; 28935 let opNewValue = 0; 28936 let DecoderNamespace = "EXT_mmvec"; 28937 } 28938 def V6_vabsb_sat_alt : HInst< 28939 (outs HvxVR:$Vd32), 28940 (ins HvxVR:$Vu32), 28941 "$Vd32 = vabsb($Vu32):sat", 28942 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 28943 let hasNewValue = 1; 28944 let opNewValue = 0; 28945 let isPseudo = 1; 28946 let isCodeGenOnly = 1; 28947 let DecoderNamespace = "EXT_mmvec"; 28948 } 28949 def V6_vabsdiffh : HInst< 28950 (outs HvxVR:$Vd32), 28951 (ins HvxVR:$Vu32, HvxVR:$Vv32), 28952 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)", 28953 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 28954 let Inst{7-5} = 0b001; 28955 let Inst{13-13} = 0b0; 28956 let Inst{31-21} = 0b00011100110; 28957 let hasNewValue = 1; 28958 let opNewValue = 0; 28959 let DecoderNamespace = "EXT_mmvec"; 28960 } 28961 def V6_vabsdiffh_alt : HInst< 28962 (outs HvxVR:$Vd32), 28963 (ins HvxVR:$Vu32, HvxVR:$Vv32), 28964 "$Vd32 = vabsdiffh($Vu32,$Vv32)", 28965 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 28966 let hasNewValue = 1; 28967 let opNewValue = 0; 28968 let isPseudo = 1; 28969 let isCodeGenOnly = 1; 28970 let DecoderNamespace = "EXT_mmvec"; 28971 } 28972 def V6_vabsdiffub : HInst< 28973 (outs HvxVR:$Vd32), 28974 (ins HvxVR:$Vu32, HvxVR:$Vv32), 28975 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)", 28976 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 28977 let Inst{7-5} = 0b000; 28978 let Inst{13-13} = 0b0; 28979 let Inst{31-21} = 0b00011100110; 28980 let hasNewValue = 1; 28981 let opNewValue = 0; 28982 let DecoderNamespace = "EXT_mmvec"; 28983 } 28984 def V6_vabsdiffub_alt : HInst< 28985 (outs HvxVR:$Vd32), 28986 (ins HvxVR:$Vu32, HvxVR:$Vv32), 28987 "$Vd32 = vabsdiffub($Vu32,$Vv32)", 28988 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 28989 let hasNewValue = 1; 28990 let opNewValue = 0; 28991 let isPseudo = 1; 28992 let isCodeGenOnly = 1; 28993 let DecoderNamespace = "EXT_mmvec"; 28994 } 28995 def V6_vabsdiffuh : HInst< 28996 (outs HvxVR:$Vd32), 28997 (ins HvxVR:$Vu32, HvxVR:$Vv32), 28998 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)", 28999 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29000 let Inst{7-5} = 0b010; 29001 let Inst{13-13} = 0b0; 29002 let Inst{31-21} = 0b00011100110; 29003 let hasNewValue = 1; 29004 let opNewValue = 0; 29005 let DecoderNamespace = "EXT_mmvec"; 29006 } 29007 def V6_vabsdiffuh_alt : HInst< 29008 (outs HvxVR:$Vd32), 29009 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29010 "$Vd32 = vabsdiffuh($Vu32,$Vv32)", 29011 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29012 let hasNewValue = 1; 29013 let opNewValue = 0; 29014 let isPseudo = 1; 29015 let isCodeGenOnly = 1; 29016 let DecoderNamespace = "EXT_mmvec"; 29017 } 29018 def V6_vabsdiffw : HInst< 29019 (outs HvxVR:$Vd32), 29020 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29021 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)", 29022 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29023 let Inst{7-5} = 0b011; 29024 let Inst{13-13} = 0b0; 29025 let Inst{31-21} = 0b00011100110; 29026 let hasNewValue = 1; 29027 let opNewValue = 0; 29028 let DecoderNamespace = "EXT_mmvec"; 29029 } 29030 def V6_vabsdiffw_alt : HInst< 29031 (outs HvxVR:$Vd32), 29032 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29033 "$Vd32 = vabsdiffw($Vu32,$Vv32)", 29034 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29035 let hasNewValue = 1; 29036 let opNewValue = 0; 29037 let isPseudo = 1; 29038 let isCodeGenOnly = 1; 29039 let DecoderNamespace = "EXT_mmvec"; 29040 } 29041 def V6_vabsh : HInst< 29042 (outs HvxVR:$Vd32), 29043 (ins HvxVR:$Vu32), 29044 "$Vd32.h = vabs($Vu32.h)", 29045 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29046 let Inst{7-5} = 0b000; 29047 let Inst{13-13} = 0b0; 29048 let Inst{31-16} = 0b0001111000000000; 29049 let hasNewValue = 1; 29050 let opNewValue = 0; 29051 let DecoderNamespace = "EXT_mmvec"; 29052 } 29053 def V6_vabsh_alt : HInst< 29054 (outs HvxVR:$Vd32), 29055 (ins HvxVR:$Vu32), 29056 "$Vd32 = vabsh($Vu32)", 29057 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29058 let hasNewValue = 1; 29059 let opNewValue = 0; 29060 let isPseudo = 1; 29061 let isCodeGenOnly = 1; 29062 let DecoderNamespace = "EXT_mmvec"; 29063 } 29064 def V6_vabsh_sat : HInst< 29065 (outs HvxVR:$Vd32), 29066 (ins HvxVR:$Vu32), 29067 "$Vd32.h = vabs($Vu32.h):sat", 29068 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29069 let Inst{7-5} = 0b001; 29070 let Inst{13-13} = 0b0; 29071 let Inst{31-16} = 0b0001111000000000; 29072 let hasNewValue = 1; 29073 let opNewValue = 0; 29074 let DecoderNamespace = "EXT_mmvec"; 29075 } 29076 def V6_vabsh_sat_alt : HInst< 29077 (outs HvxVR:$Vd32), 29078 (ins HvxVR:$Vu32), 29079 "$Vd32 = vabsh($Vu32):sat", 29080 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29081 let hasNewValue = 1; 29082 let opNewValue = 0; 29083 let isPseudo = 1; 29084 let isCodeGenOnly = 1; 29085 let DecoderNamespace = "EXT_mmvec"; 29086 } 29087 def V6_vabsub_alt : HInst< 29088 (outs HvxVR:$Vd32), 29089 (ins HvxVR:$Vu32), 29090 "$Vd32.ub = vabs($Vu32.b)", 29091 tc_71337255, TypeMAPPING>, Requires<[UseHVXV65]> { 29092 let hasNewValue = 1; 29093 let opNewValue = 0; 29094 let isPseudo = 1; 29095 let isCodeGenOnly = 1; 29096 let DecoderNamespace = "EXT_mmvec"; 29097 } 29098 def V6_vabsuh_alt : HInst< 29099 (outs HvxVR:$Vd32), 29100 (ins HvxVR:$Vu32), 29101 "$Vd32.uh = vabs($Vu32.h)", 29102 tc_71337255, TypeMAPPING>, Requires<[UseHVXV65]> { 29103 let hasNewValue = 1; 29104 let opNewValue = 0; 29105 let isPseudo = 1; 29106 let isCodeGenOnly = 1; 29107 let DecoderNamespace = "EXT_mmvec"; 29108 } 29109 def V6_vabsuw_alt : HInst< 29110 (outs HvxVR:$Vd32), 29111 (ins HvxVR:$Vu32), 29112 "$Vd32.uw = vabs($Vu32.w)", 29113 tc_71337255, TypeMAPPING>, Requires<[UseHVXV65]> { 29114 let hasNewValue = 1; 29115 let opNewValue = 0; 29116 let isPseudo = 1; 29117 let isCodeGenOnly = 1; 29118 let DecoderNamespace = "EXT_mmvec"; 29119 } 29120 def V6_vabsw : HInst< 29121 (outs HvxVR:$Vd32), 29122 (ins HvxVR:$Vu32), 29123 "$Vd32.w = vabs($Vu32.w)", 29124 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29125 let Inst{7-5} = 0b010; 29126 let Inst{13-13} = 0b0; 29127 let Inst{31-16} = 0b0001111000000000; 29128 let hasNewValue = 1; 29129 let opNewValue = 0; 29130 let DecoderNamespace = "EXT_mmvec"; 29131 } 29132 def V6_vabsw_alt : HInst< 29133 (outs HvxVR:$Vd32), 29134 (ins HvxVR:$Vu32), 29135 "$Vd32 = vabsw($Vu32)", 29136 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29137 let hasNewValue = 1; 29138 let opNewValue = 0; 29139 let isPseudo = 1; 29140 let isCodeGenOnly = 1; 29141 let DecoderNamespace = "EXT_mmvec"; 29142 } 29143 def V6_vabsw_sat : HInst< 29144 (outs HvxVR:$Vd32), 29145 (ins HvxVR:$Vu32), 29146 "$Vd32.w = vabs($Vu32.w):sat", 29147 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29148 let Inst{7-5} = 0b011; 29149 let Inst{13-13} = 0b0; 29150 let Inst{31-16} = 0b0001111000000000; 29151 let hasNewValue = 1; 29152 let opNewValue = 0; 29153 let DecoderNamespace = "EXT_mmvec"; 29154 } 29155 def V6_vabsw_sat_alt : HInst< 29156 (outs HvxVR:$Vd32), 29157 (ins HvxVR:$Vu32), 29158 "$Vd32 = vabsw($Vu32):sat", 29159 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29160 let hasNewValue = 1; 29161 let opNewValue = 0; 29162 let isPseudo = 1; 29163 let isCodeGenOnly = 1; 29164 let DecoderNamespace = "EXT_mmvec"; 29165 } 29166 def V6_vaddb : HInst< 29167 (outs HvxVR:$Vd32), 29168 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29169 "$Vd32.b = vadd($Vu32.b,$Vv32.b)", 29170 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29171 let Inst{7-5} = 0b110; 29172 let Inst{13-13} = 0b0; 29173 let Inst{31-21} = 0b00011111101; 29174 let hasNewValue = 1; 29175 let opNewValue = 0; 29176 let DecoderNamespace = "EXT_mmvec"; 29177 } 29178 def V6_vaddb_alt : HInst< 29179 (outs HvxVR:$Vd32), 29180 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29181 "$Vd32 = vaddb($Vu32,$Vv32)", 29182 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29183 let hasNewValue = 1; 29184 let opNewValue = 0; 29185 let isPseudo = 1; 29186 let isCodeGenOnly = 1; 29187 let DecoderNamespace = "EXT_mmvec"; 29188 } 29189 def V6_vaddb_dv : HInst< 29190 (outs HvxWR:$Vdd32), 29191 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29192 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)", 29193 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29194 let Inst{7-5} = 0b100; 29195 let Inst{13-13} = 0b0; 29196 let Inst{31-21} = 0b00011100011; 29197 let hasNewValue = 1; 29198 let opNewValue = 0; 29199 let DecoderNamespace = "EXT_mmvec"; 29200 } 29201 def V6_vaddb_dv_alt : HInst< 29202 (outs HvxWR:$Vdd32), 29203 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29204 "$Vdd32 = vaddb($Vuu32,$Vvv32)", 29205 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29206 let hasNewValue = 1; 29207 let opNewValue = 0; 29208 let isPseudo = 1; 29209 let isCodeGenOnly = 1; 29210 let DecoderNamespace = "EXT_mmvec"; 29211 } 29212 def V6_vaddbnq : HInst< 29213 (outs HvxVR:$Vx32), 29214 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29215 "if (!$Qv4) $Vx32.b += $Vu32.b", 29216 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29217 let Inst{7-5} = 0b011; 29218 let Inst{13-13} = 0b1; 29219 let Inst{21-16} = 0b000001; 29220 let Inst{31-24} = 0b00011110; 29221 let hasNewValue = 1; 29222 let opNewValue = 0; 29223 let isAccumulator = 1; 29224 let DecoderNamespace = "EXT_mmvec"; 29225 let Constraints = "$Vx32 = $Vx32in"; 29226 } 29227 def V6_vaddbnq_alt : HInst< 29228 (outs HvxVR:$Vx32), 29229 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29230 "if (!$Qv4.b) $Vx32.b += $Vu32.b", 29231 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29232 let hasNewValue = 1; 29233 let opNewValue = 0; 29234 let isAccumulator = 1; 29235 let isPseudo = 1; 29236 let isCodeGenOnly = 1; 29237 let DecoderNamespace = "EXT_mmvec"; 29238 let Constraints = "$Vx32 = $Vx32in"; 29239 } 29240 def V6_vaddbq : HInst< 29241 (outs HvxVR:$Vx32), 29242 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29243 "if ($Qv4) $Vx32.b += $Vu32.b", 29244 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29245 let Inst{7-5} = 0b000; 29246 let Inst{13-13} = 0b1; 29247 let Inst{21-16} = 0b000001; 29248 let Inst{31-24} = 0b00011110; 29249 let hasNewValue = 1; 29250 let opNewValue = 0; 29251 let isAccumulator = 1; 29252 let DecoderNamespace = "EXT_mmvec"; 29253 let Constraints = "$Vx32 = $Vx32in"; 29254 } 29255 def V6_vaddbq_alt : HInst< 29256 (outs HvxVR:$Vx32), 29257 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29258 "if ($Qv4.b) $Vx32.b += $Vu32.b", 29259 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29260 let hasNewValue = 1; 29261 let opNewValue = 0; 29262 let isAccumulator = 1; 29263 let isPseudo = 1; 29264 let isCodeGenOnly = 1; 29265 let DecoderNamespace = "EXT_mmvec"; 29266 let Constraints = "$Vx32 = $Vx32in"; 29267 } 29268 def V6_vaddbsat : HInst< 29269 (outs HvxVR:$Vd32), 29270 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29271 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat", 29272 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 29273 let Inst{7-5} = 0b000; 29274 let Inst{13-13} = 0b0; 29275 let Inst{31-21} = 0b00011111000; 29276 let hasNewValue = 1; 29277 let opNewValue = 0; 29278 let DecoderNamespace = "EXT_mmvec"; 29279 } 29280 def V6_vaddbsat_alt : HInst< 29281 (outs HvxVR:$Vd32), 29282 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29283 "$Vd32 = vaddb($Vu32,$Vv32):sat", 29284 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29285 let hasNewValue = 1; 29286 let opNewValue = 0; 29287 let isPseudo = 1; 29288 let isCodeGenOnly = 1; 29289 let DecoderNamespace = "EXT_mmvec"; 29290 } 29291 def V6_vaddbsat_dv : HInst< 29292 (outs HvxWR:$Vdd32), 29293 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29294 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat", 29295 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 29296 let Inst{7-5} = 0b000; 29297 let Inst{13-13} = 0b0; 29298 let Inst{31-21} = 0b00011110101; 29299 let hasNewValue = 1; 29300 let opNewValue = 0; 29301 let DecoderNamespace = "EXT_mmvec"; 29302 } 29303 def V6_vaddbsat_dv_alt : HInst< 29304 (outs HvxWR:$Vdd32), 29305 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29306 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat", 29307 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29308 let hasNewValue = 1; 29309 let opNewValue = 0; 29310 let isPseudo = 1; 29311 let isCodeGenOnly = 1; 29312 let DecoderNamespace = "EXT_mmvec"; 29313 } 29314 def V6_vaddcarry : HInst< 29315 (outs HvxVR:$Vd32, HvxQR:$Qx4), 29316 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 29317 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry", 29318 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 29319 let Inst{7-7} = 0b0; 29320 let Inst{13-13} = 0b1; 29321 let Inst{31-21} = 0b00011100101; 29322 let hasNewValue = 1; 29323 let opNewValue = 0; 29324 let DecoderNamespace = "EXT_mmvec"; 29325 let Constraints = "$Qx4 = $Qx4in"; 29326 } 29327 def V6_vaddclbh : HInst< 29328 (outs HvxVR:$Vd32), 29329 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29330 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)", 29331 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 29332 let Inst{7-5} = 0b000; 29333 let Inst{13-13} = 0b1; 29334 let Inst{31-21} = 0b00011111000; 29335 let hasNewValue = 1; 29336 let opNewValue = 0; 29337 let DecoderNamespace = "EXT_mmvec"; 29338 } 29339 def V6_vaddclbw : HInst< 29340 (outs HvxVR:$Vd32), 29341 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29342 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)", 29343 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 29344 let Inst{7-5} = 0b001; 29345 let Inst{13-13} = 0b1; 29346 let Inst{31-21} = 0b00011111000; 29347 let hasNewValue = 1; 29348 let opNewValue = 0; 29349 let DecoderNamespace = "EXT_mmvec"; 29350 } 29351 def V6_vaddh : HInst< 29352 (outs HvxVR:$Vd32), 29353 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29354 "$Vd32.h = vadd($Vu32.h,$Vv32.h)", 29355 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29356 let Inst{7-5} = 0b111; 29357 let Inst{13-13} = 0b0; 29358 let Inst{31-21} = 0b00011111101; 29359 let hasNewValue = 1; 29360 let opNewValue = 0; 29361 let DecoderNamespace = "EXT_mmvec"; 29362 } 29363 def V6_vaddh_alt : HInst< 29364 (outs HvxVR:$Vd32), 29365 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29366 "$Vd32 = vaddh($Vu32,$Vv32)", 29367 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29368 let hasNewValue = 1; 29369 let opNewValue = 0; 29370 let isPseudo = 1; 29371 let isCodeGenOnly = 1; 29372 let DecoderNamespace = "EXT_mmvec"; 29373 } 29374 def V6_vaddh_dv : HInst< 29375 (outs HvxWR:$Vdd32), 29376 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29377 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)", 29378 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29379 let Inst{7-5} = 0b101; 29380 let Inst{13-13} = 0b0; 29381 let Inst{31-21} = 0b00011100011; 29382 let hasNewValue = 1; 29383 let opNewValue = 0; 29384 let DecoderNamespace = "EXT_mmvec"; 29385 } 29386 def V6_vaddh_dv_alt : HInst< 29387 (outs HvxWR:$Vdd32), 29388 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29389 "$Vdd32 = vaddh($Vuu32,$Vvv32)", 29390 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29391 let hasNewValue = 1; 29392 let opNewValue = 0; 29393 let isPseudo = 1; 29394 let isCodeGenOnly = 1; 29395 let DecoderNamespace = "EXT_mmvec"; 29396 } 29397 def V6_vaddhnq : HInst< 29398 (outs HvxVR:$Vx32), 29399 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29400 "if (!$Qv4) $Vx32.h += $Vu32.h", 29401 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29402 let Inst{7-5} = 0b100; 29403 let Inst{13-13} = 0b1; 29404 let Inst{21-16} = 0b000001; 29405 let Inst{31-24} = 0b00011110; 29406 let hasNewValue = 1; 29407 let opNewValue = 0; 29408 let isAccumulator = 1; 29409 let DecoderNamespace = "EXT_mmvec"; 29410 let Constraints = "$Vx32 = $Vx32in"; 29411 } 29412 def V6_vaddhnq_alt : HInst< 29413 (outs HvxVR:$Vx32), 29414 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29415 "if (!$Qv4.h) $Vx32.h += $Vu32.h", 29416 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29417 let hasNewValue = 1; 29418 let opNewValue = 0; 29419 let isAccumulator = 1; 29420 let isPseudo = 1; 29421 let isCodeGenOnly = 1; 29422 let DecoderNamespace = "EXT_mmvec"; 29423 let Constraints = "$Vx32 = $Vx32in"; 29424 } 29425 def V6_vaddhq : HInst< 29426 (outs HvxVR:$Vx32), 29427 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29428 "if ($Qv4) $Vx32.h += $Vu32.h", 29429 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29430 let Inst{7-5} = 0b001; 29431 let Inst{13-13} = 0b1; 29432 let Inst{21-16} = 0b000001; 29433 let Inst{31-24} = 0b00011110; 29434 let hasNewValue = 1; 29435 let opNewValue = 0; 29436 let isAccumulator = 1; 29437 let DecoderNamespace = "EXT_mmvec"; 29438 let Constraints = "$Vx32 = $Vx32in"; 29439 } 29440 def V6_vaddhq_alt : HInst< 29441 (outs HvxVR:$Vx32), 29442 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29443 "if ($Qv4.h) $Vx32.h += $Vu32.h", 29444 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29445 let hasNewValue = 1; 29446 let opNewValue = 0; 29447 let isAccumulator = 1; 29448 let isPseudo = 1; 29449 let isCodeGenOnly = 1; 29450 let DecoderNamespace = "EXT_mmvec"; 29451 let Constraints = "$Vx32 = $Vx32in"; 29452 } 29453 def V6_vaddhsat : HInst< 29454 (outs HvxVR:$Vd32), 29455 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29456 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat", 29457 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29458 let Inst{7-5} = 0b011; 29459 let Inst{13-13} = 0b0; 29460 let Inst{31-21} = 0b00011100010; 29461 let hasNewValue = 1; 29462 let opNewValue = 0; 29463 let DecoderNamespace = "EXT_mmvec"; 29464 } 29465 def V6_vaddhsat_alt : HInst< 29466 (outs HvxVR:$Vd32), 29467 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29468 "$Vd32 = vaddh($Vu32,$Vv32):sat", 29469 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29470 let hasNewValue = 1; 29471 let opNewValue = 0; 29472 let isPseudo = 1; 29473 let isCodeGenOnly = 1; 29474 let DecoderNamespace = "EXT_mmvec"; 29475 } 29476 def V6_vaddhsat_dv : HInst< 29477 (outs HvxWR:$Vdd32), 29478 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29479 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat", 29480 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29481 let Inst{7-5} = 0b001; 29482 let Inst{13-13} = 0b0; 29483 let Inst{31-21} = 0b00011100100; 29484 let hasNewValue = 1; 29485 let opNewValue = 0; 29486 let DecoderNamespace = "EXT_mmvec"; 29487 } 29488 def V6_vaddhsat_dv_alt : HInst< 29489 (outs HvxWR:$Vdd32), 29490 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29491 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat", 29492 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29493 let hasNewValue = 1; 29494 let opNewValue = 0; 29495 let isPseudo = 1; 29496 let isCodeGenOnly = 1; 29497 let DecoderNamespace = "EXT_mmvec"; 29498 } 29499 def V6_vaddhw : HInst< 29500 (outs HvxWR:$Vdd32), 29501 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29502 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)", 29503 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 29504 let Inst{7-5} = 0b100; 29505 let Inst{13-13} = 0b0; 29506 let Inst{31-21} = 0b00011100101; 29507 let hasNewValue = 1; 29508 let opNewValue = 0; 29509 let DecoderNamespace = "EXT_mmvec"; 29510 } 29511 def V6_vaddhw_acc : HInst< 29512 (outs HvxWR:$Vxx32), 29513 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29514 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)", 29515 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 29516 let Inst{7-5} = 0b010; 29517 let Inst{13-13} = 0b1; 29518 let Inst{31-21} = 0b00011100001; 29519 let hasNewValue = 1; 29520 let opNewValue = 0; 29521 let isAccumulator = 1; 29522 let DecoderNamespace = "EXT_mmvec"; 29523 let Constraints = "$Vxx32 = $Vxx32in"; 29524 } 29525 def V6_vaddhw_acc_alt : HInst< 29526 (outs HvxWR:$Vxx32), 29527 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29528 "$Vxx32 += vaddh($Vu32,$Vv32)", 29529 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29530 let hasNewValue = 1; 29531 let opNewValue = 0; 29532 let isAccumulator = 1; 29533 let isPseudo = 1; 29534 let isCodeGenOnly = 1; 29535 let DecoderNamespace = "EXT_mmvec"; 29536 let Constraints = "$Vxx32 = $Vxx32in"; 29537 } 29538 def V6_vaddhw_alt : HInst< 29539 (outs HvxWR:$Vdd32), 29540 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29541 "$Vdd32 = vaddh($Vu32,$Vv32)", 29542 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29543 let hasNewValue = 1; 29544 let opNewValue = 0; 29545 let isPseudo = 1; 29546 let isCodeGenOnly = 1; 29547 let DecoderNamespace = "EXT_mmvec"; 29548 } 29549 def V6_vaddubh : HInst< 29550 (outs HvxWR:$Vdd32), 29551 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29552 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)", 29553 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 29554 let Inst{7-5} = 0b010; 29555 let Inst{13-13} = 0b0; 29556 let Inst{31-21} = 0b00011100101; 29557 let hasNewValue = 1; 29558 let opNewValue = 0; 29559 let DecoderNamespace = "EXT_mmvec"; 29560 } 29561 def V6_vaddubh_acc : HInst< 29562 (outs HvxWR:$Vxx32), 29563 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29564 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)", 29565 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 29566 let Inst{7-5} = 0b101; 29567 let Inst{13-13} = 0b1; 29568 let Inst{31-21} = 0b00011100010; 29569 let hasNewValue = 1; 29570 let opNewValue = 0; 29571 let isAccumulator = 1; 29572 let DecoderNamespace = "EXT_mmvec"; 29573 let Constraints = "$Vxx32 = $Vxx32in"; 29574 } 29575 def V6_vaddubh_acc_alt : HInst< 29576 (outs HvxWR:$Vxx32), 29577 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29578 "$Vxx32 += vaddub($Vu32,$Vv32)", 29579 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29580 let hasNewValue = 1; 29581 let opNewValue = 0; 29582 let isAccumulator = 1; 29583 let isPseudo = 1; 29584 let isCodeGenOnly = 1; 29585 let DecoderNamespace = "EXT_mmvec"; 29586 let Constraints = "$Vxx32 = $Vxx32in"; 29587 } 29588 def V6_vaddubh_alt : HInst< 29589 (outs HvxWR:$Vdd32), 29590 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29591 "$Vdd32 = vaddub($Vu32,$Vv32)", 29592 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29593 let hasNewValue = 1; 29594 let opNewValue = 0; 29595 let isPseudo = 1; 29596 let isCodeGenOnly = 1; 29597 let DecoderNamespace = "EXT_mmvec"; 29598 } 29599 def V6_vaddubsat : HInst< 29600 (outs HvxVR:$Vd32), 29601 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29602 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat", 29603 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29604 let Inst{7-5} = 0b001; 29605 let Inst{13-13} = 0b0; 29606 let Inst{31-21} = 0b00011100010; 29607 let hasNewValue = 1; 29608 let opNewValue = 0; 29609 let DecoderNamespace = "EXT_mmvec"; 29610 } 29611 def V6_vaddubsat_alt : HInst< 29612 (outs HvxVR:$Vd32), 29613 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29614 "$Vd32 = vaddub($Vu32,$Vv32):sat", 29615 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29616 let hasNewValue = 1; 29617 let opNewValue = 0; 29618 let isPseudo = 1; 29619 let isCodeGenOnly = 1; 29620 let DecoderNamespace = "EXT_mmvec"; 29621 } 29622 def V6_vaddubsat_dv : HInst< 29623 (outs HvxWR:$Vdd32), 29624 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29625 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat", 29626 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29627 let Inst{7-5} = 0b111; 29628 let Inst{13-13} = 0b0; 29629 let Inst{31-21} = 0b00011100011; 29630 let hasNewValue = 1; 29631 let opNewValue = 0; 29632 let DecoderNamespace = "EXT_mmvec"; 29633 } 29634 def V6_vaddubsat_dv_alt : HInst< 29635 (outs HvxWR:$Vdd32), 29636 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29637 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat", 29638 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29639 let hasNewValue = 1; 29640 let opNewValue = 0; 29641 let isPseudo = 1; 29642 let isCodeGenOnly = 1; 29643 let DecoderNamespace = "EXT_mmvec"; 29644 } 29645 def V6_vaddububb_sat : HInst< 29646 (outs HvxVR:$Vd32), 29647 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29648 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat", 29649 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 29650 let Inst{7-5} = 0b100; 29651 let Inst{13-13} = 0b0; 29652 let Inst{31-21} = 0b00011110101; 29653 let hasNewValue = 1; 29654 let opNewValue = 0; 29655 let DecoderNamespace = "EXT_mmvec"; 29656 } 29657 def V6_vadduhsat : HInst< 29658 (outs HvxVR:$Vd32), 29659 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29660 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat", 29661 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29662 let Inst{7-5} = 0b010; 29663 let Inst{13-13} = 0b0; 29664 let Inst{31-21} = 0b00011100010; 29665 let hasNewValue = 1; 29666 let opNewValue = 0; 29667 let DecoderNamespace = "EXT_mmvec"; 29668 } 29669 def V6_vadduhsat_alt : HInst< 29670 (outs HvxVR:$Vd32), 29671 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29672 "$Vd32 = vadduh($Vu32,$Vv32):sat", 29673 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29674 let hasNewValue = 1; 29675 let opNewValue = 0; 29676 let isPseudo = 1; 29677 let isCodeGenOnly = 1; 29678 let DecoderNamespace = "EXT_mmvec"; 29679 } 29680 def V6_vadduhsat_dv : HInst< 29681 (outs HvxWR:$Vdd32), 29682 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29683 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat", 29684 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29685 let Inst{7-5} = 0b000; 29686 let Inst{13-13} = 0b0; 29687 let Inst{31-21} = 0b00011100100; 29688 let hasNewValue = 1; 29689 let opNewValue = 0; 29690 let DecoderNamespace = "EXT_mmvec"; 29691 } 29692 def V6_vadduhsat_dv_alt : HInst< 29693 (outs HvxWR:$Vdd32), 29694 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29695 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat", 29696 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29697 let hasNewValue = 1; 29698 let opNewValue = 0; 29699 let isPseudo = 1; 29700 let isCodeGenOnly = 1; 29701 let DecoderNamespace = "EXT_mmvec"; 29702 } 29703 def V6_vadduhw : HInst< 29704 (outs HvxWR:$Vdd32), 29705 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29706 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)", 29707 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 29708 let Inst{7-5} = 0b011; 29709 let Inst{13-13} = 0b0; 29710 let Inst{31-21} = 0b00011100101; 29711 let hasNewValue = 1; 29712 let opNewValue = 0; 29713 let DecoderNamespace = "EXT_mmvec"; 29714 } 29715 def V6_vadduhw_acc : HInst< 29716 (outs HvxWR:$Vxx32), 29717 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29718 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)", 29719 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 29720 let Inst{7-5} = 0b100; 29721 let Inst{13-13} = 0b1; 29722 let Inst{31-21} = 0b00011100010; 29723 let hasNewValue = 1; 29724 let opNewValue = 0; 29725 let isAccumulator = 1; 29726 let DecoderNamespace = "EXT_mmvec"; 29727 let Constraints = "$Vxx32 = $Vxx32in"; 29728 } 29729 def V6_vadduhw_acc_alt : HInst< 29730 (outs HvxWR:$Vxx32), 29731 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 29732 "$Vxx32 += vadduh($Vu32,$Vv32)", 29733 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29734 let hasNewValue = 1; 29735 let opNewValue = 0; 29736 let isAccumulator = 1; 29737 let isPseudo = 1; 29738 let isCodeGenOnly = 1; 29739 let DecoderNamespace = "EXT_mmvec"; 29740 let Constraints = "$Vxx32 = $Vxx32in"; 29741 } 29742 def V6_vadduhw_alt : HInst< 29743 (outs HvxWR:$Vdd32), 29744 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29745 "$Vdd32 = vadduh($Vu32,$Vv32)", 29746 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29747 let hasNewValue = 1; 29748 let opNewValue = 0; 29749 let isPseudo = 1; 29750 let isCodeGenOnly = 1; 29751 let DecoderNamespace = "EXT_mmvec"; 29752 } 29753 def V6_vadduwsat : HInst< 29754 (outs HvxVR:$Vd32), 29755 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29756 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat", 29757 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 29758 let Inst{7-5} = 0b001; 29759 let Inst{13-13} = 0b0; 29760 let Inst{31-21} = 0b00011111011; 29761 let hasNewValue = 1; 29762 let opNewValue = 0; 29763 let DecoderNamespace = "EXT_mmvec"; 29764 } 29765 def V6_vadduwsat_alt : HInst< 29766 (outs HvxVR:$Vd32), 29767 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29768 "$Vd32 = vadduw($Vu32,$Vv32):sat", 29769 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29770 let hasNewValue = 1; 29771 let opNewValue = 0; 29772 let isPseudo = 1; 29773 let isCodeGenOnly = 1; 29774 let DecoderNamespace = "EXT_mmvec"; 29775 } 29776 def V6_vadduwsat_dv : HInst< 29777 (outs HvxWR:$Vdd32), 29778 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29779 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat", 29780 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 29781 let Inst{7-5} = 0b010; 29782 let Inst{13-13} = 0b0; 29783 let Inst{31-21} = 0b00011110101; 29784 let hasNewValue = 1; 29785 let opNewValue = 0; 29786 let DecoderNamespace = "EXT_mmvec"; 29787 } 29788 def V6_vadduwsat_dv_alt : HInst< 29789 (outs HvxWR:$Vdd32), 29790 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29791 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat", 29792 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29793 let hasNewValue = 1; 29794 let opNewValue = 0; 29795 let isPseudo = 1; 29796 let isCodeGenOnly = 1; 29797 let DecoderNamespace = "EXT_mmvec"; 29798 } 29799 def V6_vaddw : HInst< 29800 (outs HvxVR:$Vd32), 29801 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29802 "$Vd32.w = vadd($Vu32.w,$Vv32.w)", 29803 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29804 let Inst{7-5} = 0b000; 29805 let Inst{13-13} = 0b0; 29806 let Inst{31-21} = 0b00011100010; 29807 let hasNewValue = 1; 29808 let opNewValue = 0; 29809 let DecoderNamespace = "EXT_mmvec"; 29810 } 29811 def V6_vaddw_alt : HInst< 29812 (outs HvxVR:$Vd32), 29813 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29814 "$Vd32 = vaddw($Vu32,$Vv32)", 29815 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29816 let hasNewValue = 1; 29817 let opNewValue = 0; 29818 let isPseudo = 1; 29819 let isCodeGenOnly = 1; 29820 let DecoderNamespace = "EXT_mmvec"; 29821 } 29822 def V6_vaddw_dv : HInst< 29823 (outs HvxWR:$Vdd32), 29824 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29825 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)", 29826 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29827 let Inst{7-5} = 0b110; 29828 let Inst{13-13} = 0b0; 29829 let Inst{31-21} = 0b00011100011; 29830 let hasNewValue = 1; 29831 let opNewValue = 0; 29832 let DecoderNamespace = "EXT_mmvec"; 29833 } 29834 def V6_vaddw_dv_alt : HInst< 29835 (outs HvxWR:$Vdd32), 29836 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29837 "$Vdd32 = vaddw($Vuu32,$Vvv32)", 29838 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29839 let hasNewValue = 1; 29840 let opNewValue = 0; 29841 let isPseudo = 1; 29842 let isCodeGenOnly = 1; 29843 let DecoderNamespace = "EXT_mmvec"; 29844 } 29845 def V6_vaddwnq : HInst< 29846 (outs HvxVR:$Vx32), 29847 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29848 "if (!$Qv4) $Vx32.w += $Vu32.w", 29849 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29850 let Inst{7-5} = 0b101; 29851 let Inst{13-13} = 0b1; 29852 let Inst{21-16} = 0b000001; 29853 let Inst{31-24} = 0b00011110; 29854 let hasNewValue = 1; 29855 let opNewValue = 0; 29856 let isAccumulator = 1; 29857 let DecoderNamespace = "EXT_mmvec"; 29858 let Constraints = "$Vx32 = $Vx32in"; 29859 } 29860 def V6_vaddwnq_alt : HInst< 29861 (outs HvxVR:$Vx32), 29862 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29863 "if (!$Qv4.w) $Vx32.w += $Vu32.w", 29864 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29865 let hasNewValue = 1; 29866 let opNewValue = 0; 29867 let isAccumulator = 1; 29868 let isPseudo = 1; 29869 let isCodeGenOnly = 1; 29870 let DecoderNamespace = "EXT_mmvec"; 29871 let Constraints = "$Vx32 = $Vx32in"; 29872 } 29873 def V6_vaddwq : HInst< 29874 (outs HvxVR:$Vx32), 29875 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29876 "if ($Qv4) $Vx32.w += $Vu32.w", 29877 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29878 let Inst{7-5} = 0b010; 29879 let Inst{13-13} = 0b1; 29880 let Inst{21-16} = 0b000001; 29881 let Inst{31-24} = 0b00011110; 29882 let hasNewValue = 1; 29883 let opNewValue = 0; 29884 let isAccumulator = 1; 29885 let DecoderNamespace = "EXT_mmvec"; 29886 let Constraints = "$Vx32 = $Vx32in"; 29887 } 29888 def V6_vaddwq_alt : HInst< 29889 (outs HvxVR:$Vx32), 29890 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29891 "if ($Qv4.w) $Vx32.w += $Vu32.w", 29892 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29893 let hasNewValue = 1; 29894 let opNewValue = 0; 29895 let isAccumulator = 1; 29896 let isPseudo = 1; 29897 let isCodeGenOnly = 1; 29898 let DecoderNamespace = "EXT_mmvec"; 29899 let Constraints = "$Vx32 = $Vx32in"; 29900 } 29901 def V6_vaddwsat : HInst< 29902 (outs HvxVR:$Vd32), 29903 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29904 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat", 29905 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29906 let Inst{7-5} = 0b100; 29907 let Inst{13-13} = 0b0; 29908 let Inst{31-21} = 0b00011100010; 29909 let hasNewValue = 1; 29910 let opNewValue = 0; 29911 let DecoderNamespace = "EXT_mmvec"; 29912 } 29913 def V6_vaddwsat_alt : HInst< 29914 (outs HvxVR:$Vd32), 29915 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29916 "$Vd32 = vaddw($Vu32,$Vv32):sat", 29917 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29918 let hasNewValue = 1; 29919 let opNewValue = 0; 29920 let isPseudo = 1; 29921 let isCodeGenOnly = 1; 29922 let DecoderNamespace = "EXT_mmvec"; 29923 } 29924 def V6_vaddwsat_dv : HInst< 29925 (outs HvxWR:$Vdd32), 29926 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29927 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat", 29928 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29929 let Inst{7-5} = 0b010; 29930 let Inst{13-13} = 0b0; 29931 let Inst{31-21} = 0b00011100100; 29932 let hasNewValue = 1; 29933 let opNewValue = 0; 29934 let DecoderNamespace = "EXT_mmvec"; 29935 } 29936 def V6_vaddwsat_dv_alt : HInst< 29937 (outs HvxWR:$Vdd32), 29938 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29939 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat", 29940 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29941 let hasNewValue = 1; 29942 let opNewValue = 0; 29943 let isPseudo = 1; 29944 let isCodeGenOnly = 1; 29945 let DecoderNamespace = "EXT_mmvec"; 29946 } 29947 def V6_valignb : HInst< 29948 (outs HvxVR:$Vd32), 29949 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 29950 "$Vd32 = valign($Vu32,$Vv32,$Rt8)", 29951 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 29952 let Inst{7-5} = 0b000; 29953 let Inst{13-13} = 0b0; 29954 let Inst{31-24} = 0b00011011; 29955 let hasNewValue = 1; 29956 let opNewValue = 0; 29957 let DecoderNamespace = "EXT_mmvec"; 29958 } 29959 def V6_valignbi : HInst< 29960 (outs HvxVR:$Vd32), 29961 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 29962 "$Vd32 = valign($Vu32,$Vv32,#$Ii)", 29963 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 29964 let Inst{13-13} = 0b1; 29965 let Inst{31-21} = 0b00011110001; 29966 let hasNewValue = 1; 29967 let opNewValue = 0; 29968 let DecoderNamespace = "EXT_mmvec"; 29969 } 29970 def V6_vand : HInst< 29971 (outs HvxVR:$Vd32), 29972 (ins HvxVR:$Vu32, HvxVR:$Vv32), 29973 "$Vd32 = vand($Vu32,$Vv32)", 29974 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29975 let Inst{7-5} = 0b101; 29976 let Inst{13-13} = 0b0; 29977 let Inst{31-21} = 0b00011100001; 29978 let hasNewValue = 1; 29979 let opNewValue = 0; 29980 let DecoderNamespace = "EXT_mmvec"; 29981 } 29982 def V6_vandnqrt : HInst< 29983 (outs HvxVR:$Vd32), 29984 (ins HvxQR:$Qu4, IntRegs:$Rt32), 29985 "$Vd32 = vand(!$Qu4,$Rt32)", 29986 tc_e231aa4f, TypeCVI_VX>, Enc_7b7ba8, Requires<[UseHVXV62]> { 29987 let Inst{7-5} = 0b101; 29988 let Inst{13-10} = 0b0001; 29989 let Inst{31-21} = 0b00011001101; 29990 let hasNewValue = 1; 29991 let opNewValue = 0; 29992 let DecoderNamespace = "EXT_mmvec"; 29993 } 29994 def V6_vandnqrt_acc : HInst< 29995 (outs HvxVR:$Vx32), 29996 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 29997 "$Vx32 |= vand(!$Qu4,$Rt32)", 29998 tc_9311da3f, TypeCVI_VX>, Enc_895bd9, Requires<[UseHVXV62]> { 29999 let Inst{7-5} = 0b011; 30000 let Inst{13-10} = 0b1001; 30001 let Inst{31-21} = 0b00011001011; 30002 let hasNewValue = 1; 30003 let opNewValue = 0; 30004 let isAccumulator = 1; 30005 let DecoderNamespace = "EXT_mmvec"; 30006 let Constraints = "$Vx32 = $Vx32in"; 30007 } 30008 def V6_vandnqrt_acc_alt : HInst< 30009 (outs HvxVR:$Vx32), 30010 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30011 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)", 30012 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30013 let hasNewValue = 1; 30014 let opNewValue = 0; 30015 let isAccumulator = 1; 30016 let isPseudo = 1; 30017 let isCodeGenOnly = 1; 30018 let DecoderNamespace = "EXT_mmvec"; 30019 let Constraints = "$Vx32 = $Vx32in"; 30020 } 30021 def V6_vandnqrt_alt : HInst< 30022 (outs HvxVR:$Vd32), 30023 (ins HvxQR:$Qu4, IntRegs:$Rt32), 30024 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)", 30025 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30026 let hasNewValue = 1; 30027 let opNewValue = 0; 30028 let isPseudo = 1; 30029 let isCodeGenOnly = 1; 30030 let DecoderNamespace = "EXT_mmvec"; 30031 } 30032 def V6_vandqrt : HInst< 30033 (outs HvxVR:$Vd32), 30034 (ins HvxQR:$Qu4, IntRegs:$Rt32), 30035 "$Vd32 = vand($Qu4,$Rt32)", 30036 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> { 30037 let Inst{7-5} = 0b101; 30038 let Inst{13-10} = 0b0000; 30039 let Inst{31-21} = 0b00011001101; 30040 let hasNewValue = 1; 30041 let opNewValue = 0; 30042 let DecoderNamespace = "EXT_mmvec"; 30043 } 30044 def V6_vandqrt_acc : HInst< 30045 (outs HvxVR:$Vx32), 30046 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30047 "$Vx32 |= vand($Qu4,$Rt32)", 30048 tc_9311da3f, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> { 30049 let Inst{7-5} = 0b011; 30050 let Inst{13-10} = 0b1000; 30051 let Inst{31-21} = 0b00011001011; 30052 let hasNewValue = 1; 30053 let opNewValue = 0; 30054 let isAccumulator = 1; 30055 let DecoderNamespace = "EXT_mmvec"; 30056 let Constraints = "$Vx32 = $Vx32in"; 30057 } 30058 def V6_vandqrt_acc_alt : HInst< 30059 (outs HvxVR:$Vx32), 30060 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30061 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)", 30062 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30063 let hasNewValue = 1; 30064 let opNewValue = 0; 30065 let isAccumulator = 1; 30066 let isPseudo = 1; 30067 let isCodeGenOnly = 1; 30068 let DecoderNamespace = "EXT_mmvec"; 30069 let Constraints = "$Vx32 = $Vx32in"; 30070 } 30071 def V6_vandqrt_alt : HInst< 30072 (outs HvxVR:$Vd32), 30073 (ins HvxQR:$Qu4, IntRegs:$Rt32), 30074 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)", 30075 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30076 let hasNewValue = 1; 30077 let opNewValue = 0; 30078 let isPseudo = 1; 30079 let isCodeGenOnly = 1; 30080 let DecoderNamespace = "EXT_mmvec"; 30081 } 30082 def V6_vandvnqv : HInst< 30083 (outs HvxVR:$Vd32), 30084 (ins HvxQR:$Qv4, HvxVR:$Vu32), 30085 "$Vd32 = vand(!$Qv4,$Vu32)", 30086 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 30087 let Inst{7-5} = 0b001; 30088 let Inst{13-13} = 0b1; 30089 let Inst{21-16} = 0b000011; 30090 let Inst{31-24} = 0b00011110; 30091 let hasNewValue = 1; 30092 let opNewValue = 0; 30093 let DecoderNamespace = "EXT_mmvec"; 30094 } 30095 def V6_vandvqv : HInst< 30096 (outs HvxVR:$Vd32), 30097 (ins HvxQR:$Qv4, HvxVR:$Vu32), 30098 "$Vd32 = vand($Qv4,$Vu32)", 30099 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 30100 let Inst{7-5} = 0b000; 30101 let Inst{13-13} = 0b1; 30102 let Inst{21-16} = 0b000011; 30103 let Inst{31-24} = 0b00011110; 30104 let hasNewValue = 1; 30105 let opNewValue = 0; 30106 let DecoderNamespace = "EXT_mmvec"; 30107 } 30108 def V6_vandvrt : HInst< 30109 (outs HvxQR:$Qd4), 30110 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30111 "$Qd4 = vand($Vu32,$Rt32)", 30112 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> { 30113 let Inst{7-2} = 0b010010; 30114 let Inst{13-13} = 0b0; 30115 let Inst{31-21} = 0b00011001101; 30116 let hasNewValue = 1; 30117 let opNewValue = 0; 30118 let DecoderNamespace = "EXT_mmvec"; 30119 } 30120 def V6_vandvrt_acc : HInst< 30121 (outs HvxQR:$Qx4), 30122 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 30123 "$Qx4 |= vand($Vu32,$Rt32)", 30124 tc_9311da3f, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> { 30125 let Inst{7-2} = 0b100000; 30126 let Inst{13-13} = 0b1; 30127 let Inst{31-21} = 0b00011001011; 30128 let isAccumulator = 1; 30129 let DecoderNamespace = "EXT_mmvec"; 30130 let Constraints = "$Qx4 = $Qx4in"; 30131 } 30132 def V6_vandvrt_acc_alt : HInst< 30133 (outs HvxQR:$Qx4), 30134 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 30135 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)", 30136 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30137 let isAccumulator = 1; 30138 let isPseudo = 1; 30139 let isCodeGenOnly = 1; 30140 let DecoderNamespace = "EXT_mmvec"; 30141 let Constraints = "$Qx4 = $Qx4in"; 30142 } 30143 def V6_vandvrt_alt : HInst< 30144 (outs HvxQR:$Qd4), 30145 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30146 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)", 30147 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30148 let hasNewValue = 1; 30149 let opNewValue = 0; 30150 let isPseudo = 1; 30151 let isCodeGenOnly = 1; 30152 let DecoderNamespace = "EXT_mmvec"; 30153 } 30154 def V6_vaslh : HInst< 30155 (outs HvxVR:$Vd32), 30156 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30157 "$Vd32.h = vasl($Vu32.h,$Rt32)", 30158 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30159 let Inst{7-5} = 0b000; 30160 let Inst{13-13} = 0b0; 30161 let Inst{31-21} = 0b00011001100; 30162 let hasNewValue = 1; 30163 let opNewValue = 0; 30164 let DecoderNamespace = "EXT_mmvec"; 30165 } 30166 def V6_vaslh_acc : HInst< 30167 (outs HvxVR:$Vx32), 30168 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30169 "$Vx32.h += vasl($Vu32.h,$Rt32)", 30170 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 30171 let Inst{7-5} = 0b101; 30172 let Inst{13-13} = 0b1; 30173 let Inst{31-21} = 0b00011001101; 30174 let hasNewValue = 1; 30175 let opNewValue = 0; 30176 let isAccumulator = 1; 30177 let DecoderNamespace = "EXT_mmvec"; 30178 let Constraints = "$Vx32 = $Vx32in"; 30179 } 30180 def V6_vaslh_acc_alt : HInst< 30181 (outs HvxVR:$Vx32), 30182 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30183 "$Vx32 += vaslh($Vu32,$Rt32)", 30184 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30185 let hasNewValue = 1; 30186 let opNewValue = 0; 30187 let isAccumulator = 1; 30188 let isPseudo = 1; 30189 let isCodeGenOnly = 1; 30190 let DecoderNamespace = "EXT_mmvec"; 30191 let Constraints = "$Vx32 = $Vx32in"; 30192 } 30193 def V6_vaslh_alt : HInst< 30194 (outs HvxVR:$Vd32), 30195 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30196 "$Vd32 = vaslh($Vu32,$Rt32)", 30197 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30198 let hasNewValue = 1; 30199 let opNewValue = 0; 30200 let isPseudo = 1; 30201 let isCodeGenOnly = 1; 30202 let DecoderNamespace = "EXT_mmvec"; 30203 } 30204 def V6_vaslhv : HInst< 30205 (outs HvxVR:$Vd32), 30206 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30207 "$Vd32.h = vasl($Vu32.h,$Vv32.h)", 30208 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 30209 let Inst{7-5} = 0b101; 30210 let Inst{13-13} = 0b0; 30211 let Inst{31-21} = 0b00011111101; 30212 let hasNewValue = 1; 30213 let opNewValue = 0; 30214 let DecoderNamespace = "EXT_mmvec"; 30215 } 30216 def V6_vaslhv_alt : HInst< 30217 (outs HvxVR:$Vd32), 30218 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30219 "$Vd32 = vaslh($Vu32,$Vv32)", 30220 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30221 let hasNewValue = 1; 30222 let opNewValue = 0; 30223 let isPseudo = 1; 30224 let isCodeGenOnly = 1; 30225 let DecoderNamespace = "EXT_mmvec"; 30226 } 30227 def V6_vaslw : HInst< 30228 (outs HvxVR:$Vd32), 30229 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30230 "$Vd32.w = vasl($Vu32.w,$Rt32)", 30231 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30232 let Inst{7-5} = 0b111; 30233 let Inst{13-13} = 0b0; 30234 let Inst{31-21} = 0b00011001011; 30235 let hasNewValue = 1; 30236 let opNewValue = 0; 30237 let DecoderNamespace = "EXT_mmvec"; 30238 } 30239 def V6_vaslw_acc : HInst< 30240 (outs HvxVR:$Vx32), 30241 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30242 "$Vx32.w += vasl($Vu32.w,$Rt32)", 30243 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 30244 let Inst{7-5} = 0b010; 30245 let Inst{13-13} = 0b1; 30246 let Inst{31-21} = 0b00011001011; 30247 let hasNewValue = 1; 30248 let opNewValue = 0; 30249 let isAccumulator = 1; 30250 let DecoderNamespace = "EXT_mmvec"; 30251 let Constraints = "$Vx32 = $Vx32in"; 30252 } 30253 def V6_vaslw_acc_alt : HInst< 30254 (outs HvxVR:$Vx32), 30255 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30256 "$Vx32 += vaslw($Vu32,$Rt32)", 30257 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30258 let hasNewValue = 1; 30259 let opNewValue = 0; 30260 let isAccumulator = 1; 30261 let isPseudo = 1; 30262 let isCodeGenOnly = 1; 30263 let DecoderNamespace = "EXT_mmvec"; 30264 let Constraints = "$Vx32 = $Vx32in"; 30265 } 30266 def V6_vaslw_alt : HInst< 30267 (outs HvxVR:$Vd32), 30268 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30269 "$Vd32 = vaslw($Vu32,$Rt32)", 30270 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30271 let hasNewValue = 1; 30272 let opNewValue = 0; 30273 let isPseudo = 1; 30274 let isCodeGenOnly = 1; 30275 let DecoderNamespace = "EXT_mmvec"; 30276 } 30277 def V6_vaslwv : HInst< 30278 (outs HvxVR:$Vd32), 30279 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30280 "$Vd32.w = vasl($Vu32.w,$Vv32.w)", 30281 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 30282 let Inst{7-5} = 0b100; 30283 let Inst{13-13} = 0b0; 30284 let Inst{31-21} = 0b00011111101; 30285 let hasNewValue = 1; 30286 let opNewValue = 0; 30287 let DecoderNamespace = "EXT_mmvec"; 30288 } 30289 def V6_vaslwv_alt : HInst< 30290 (outs HvxVR:$Vd32), 30291 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30292 "$Vd32 = vaslw($Vu32,$Vv32)", 30293 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30294 let hasNewValue = 1; 30295 let opNewValue = 0; 30296 let isPseudo = 1; 30297 let isCodeGenOnly = 1; 30298 let DecoderNamespace = "EXT_mmvec"; 30299 } 30300 def V6_vasrh : HInst< 30301 (outs HvxVR:$Vd32), 30302 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30303 "$Vd32.h = vasr($Vu32.h,$Rt32)", 30304 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30305 let Inst{7-5} = 0b110; 30306 let Inst{13-13} = 0b0; 30307 let Inst{31-21} = 0b00011001011; 30308 let hasNewValue = 1; 30309 let opNewValue = 0; 30310 let DecoderNamespace = "EXT_mmvec"; 30311 } 30312 def V6_vasrh_acc : HInst< 30313 (outs HvxVR:$Vx32), 30314 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30315 "$Vx32.h += vasr($Vu32.h,$Rt32)", 30316 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 30317 let Inst{7-5} = 0b111; 30318 let Inst{13-13} = 0b1; 30319 let Inst{31-21} = 0b00011001100; 30320 let hasNewValue = 1; 30321 let opNewValue = 0; 30322 let isAccumulator = 1; 30323 let DecoderNamespace = "EXT_mmvec"; 30324 let Constraints = "$Vx32 = $Vx32in"; 30325 } 30326 def V6_vasrh_acc_alt : HInst< 30327 (outs HvxVR:$Vx32), 30328 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30329 "$Vx32 += vasrh($Vu32,$Rt32)", 30330 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30331 let hasNewValue = 1; 30332 let opNewValue = 0; 30333 let isAccumulator = 1; 30334 let isPseudo = 1; 30335 let isCodeGenOnly = 1; 30336 let DecoderNamespace = "EXT_mmvec"; 30337 let Constraints = "$Vx32 = $Vx32in"; 30338 } 30339 def V6_vasrh_alt : HInst< 30340 (outs HvxVR:$Vd32), 30341 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30342 "$Vd32 = vasrh($Vu32,$Rt32)", 30343 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30344 let hasNewValue = 1; 30345 let opNewValue = 0; 30346 let isPseudo = 1; 30347 let isCodeGenOnly = 1; 30348 let DecoderNamespace = "EXT_mmvec"; 30349 } 30350 def V6_vasrhbrndsat : HInst< 30351 (outs HvxVR:$Vd32), 30352 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30353 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 30354 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30355 let Inst{7-5} = 0b000; 30356 let Inst{13-13} = 0b1; 30357 let Inst{31-24} = 0b00011011; 30358 let hasNewValue = 1; 30359 let opNewValue = 0; 30360 let DecoderNamespace = "EXT_mmvec"; 30361 } 30362 def V6_vasrhbrndsat_alt : HInst< 30363 (outs HvxVR:$Vd32), 30364 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30365 "$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat", 30366 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30367 let hasNewValue = 1; 30368 let opNewValue = 0; 30369 let isPseudo = 1; 30370 let isCodeGenOnly = 1; 30371 } 30372 def V6_vasrhbsat : HInst< 30373 (outs HvxVR:$Vd32), 30374 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30375 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 30376 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 30377 let Inst{7-5} = 0b000; 30378 let Inst{13-13} = 0b0; 30379 let Inst{31-24} = 0b00011000; 30380 let hasNewValue = 1; 30381 let opNewValue = 0; 30382 let DecoderNamespace = "EXT_mmvec"; 30383 } 30384 def V6_vasrhubrndsat : HInst< 30385 (outs HvxVR:$Vd32), 30386 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30387 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 30388 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30389 let Inst{7-5} = 0b111; 30390 let Inst{13-13} = 0b0; 30391 let Inst{31-24} = 0b00011011; 30392 let hasNewValue = 1; 30393 let opNewValue = 0; 30394 let DecoderNamespace = "EXT_mmvec"; 30395 } 30396 def V6_vasrhubrndsat_alt : HInst< 30397 (outs HvxVR:$Vd32), 30398 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30399 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):rnd:sat", 30400 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30401 let hasNewValue = 1; 30402 let opNewValue = 0; 30403 let isPseudo = 1; 30404 let isCodeGenOnly = 1; 30405 } 30406 def V6_vasrhubsat : HInst< 30407 (outs HvxVR:$Vd32), 30408 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30409 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 30410 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30411 let Inst{7-5} = 0b110; 30412 let Inst{13-13} = 0b0; 30413 let Inst{31-24} = 0b00011011; 30414 let hasNewValue = 1; 30415 let opNewValue = 0; 30416 let DecoderNamespace = "EXT_mmvec"; 30417 } 30418 def V6_vasrhubsat_alt : HInst< 30419 (outs HvxVR:$Vd32), 30420 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30421 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):sat", 30422 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30423 let hasNewValue = 1; 30424 let opNewValue = 0; 30425 let isPseudo = 1; 30426 let isCodeGenOnly = 1; 30427 } 30428 def V6_vasrhv : HInst< 30429 (outs HvxVR:$Vd32), 30430 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30431 "$Vd32.h = vasr($Vu32.h,$Vv32.h)", 30432 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 30433 let Inst{7-5} = 0b011; 30434 let Inst{13-13} = 0b0; 30435 let Inst{31-21} = 0b00011111101; 30436 let hasNewValue = 1; 30437 let opNewValue = 0; 30438 let DecoderNamespace = "EXT_mmvec"; 30439 } 30440 def V6_vasrhv_alt : HInst< 30441 (outs HvxVR:$Vd32), 30442 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30443 "$Vd32 = vasrh($Vu32,$Vv32)", 30444 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30445 let hasNewValue = 1; 30446 let opNewValue = 0; 30447 let isPseudo = 1; 30448 let isCodeGenOnly = 1; 30449 let DecoderNamespace = "EXT_mmvec"; 30450 } 30451 def V6_vasruhubrndsat : HInst< 30452 (outs HvxVR:$Vd32), 30453 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30454 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat", 30455 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 30456 let Inst{7-5} = 0b111; 30457 let Inst{13-13} = 0b0; 30458 let Inst{31-24} = 0b00011000; 30459 let hasNewValue = 1; 30460 let opNewValue = 0; 30461 let DecoderNamespace = "EXT_mmvec"; 30462 } 30463 def V6_vasruhubsat : HInst< 30464 (outs HvxVR:$Vd32), 30465 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30466 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat", 30467 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 30468 let Inst{7-5} = 0b101; 30469 let Inst{13-13} = 0b1; 30470 let Inst{31-24} = 0b00011000; 30471 let hasNewValue = 1; 30472 let opNewValue = 0; 30473 let DecoderNamespace = "EXT_mmvec"; 30474 } 30475 def V6_vasruwuhrndsat : HInst< 30476 (outs HvxVR:$Vd32), 30477 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30478 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat", 30479 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 30480 let Inst{7-5} = 0b001; 30481 let Inst{13-13} = 0b0; 30482 let Inst{31-24} = 0b00011000; 30483 let hasNewValue = 1; 30484 let opNewValue = 0; 30485 let DecoderNamespace = "EXT_mmvec"; 30486 } 30487 def V6_vasruwuhsat : HInst< 30488 (outs HvxVR:$Vd32), 30489 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30490 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat", 30491 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 30492 let Inst{7-5} = 0b100; 30493 let Inst{13-13} = 0b1; 30494 let Inst{31-24} = 0b00011000; 30495 let hasNewValue = 1; 30496 let opNewValue = 0; 30497 let DecoderNamespace = "EXT_mmvec"; 30498 } 30499 def V6_vasrw : HInst< 30500 (outs HvxVR:$Vd32), 30501 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30502 "$Vd32.w = vasr($Vu32.w,$Rt32)", 30503 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30504 let Inst{7-5} = 0b101; 30505 let Inst{13-13} = 0b0; 30506 let Inst{31-21} = 0b00011001011; 30507 let hasNewValue = 1; 30508 let opNewValue = 0; 30509 let DecoderNamespace = "EXT_mmvec"; 30510 } 30511 def V6_vasrw_acc : HInst< 30512 (outs HvxVR:$Vx32), 30513 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30514 "$Vx32.w += vasr($Vu32.w,$Rt32)", 30515 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 30516 let Inst{7-5} = 0b101; 30517 let Inst{13-13} = 0b1; 30518 let Inst{31-21} = 0b00011001011; 30519 let hasNewValue = 1; 30520 let opNewValue = 0; 30521 let isAccumulator = 1; 30522 let DecoderNamespace = "EXT_mmvec"; 30523 let Constraints = "$Vx32 = $Vx32in"; 30524 } 30525 def V6_vasrw_acc_alt : HInst< 30526 (outs HvxVR:$Vx32), 30527 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30528 "$Vx32 += vasrw($Vu32,$Rt32)", 30529 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30530 let hasNewValue = 1; 30531 let opNewValue = 0; 30532 let isAccumulator = 1; 30533 let isPseudo = 1; 30534 let isCodeGenOnly = 1; 30535 let DecoderNamespace = "EXT_mmvec"; 30536 let Constraints = "$Vx32 = $Vx32in"; 30537 } 30538 def V6_vasrw_alt : HInst< 30539 (outs HvxVR:$Vd32), 30540 (ins HvxVR:$Vu32, IntRegs:$Rt32), 30541 "$Vd32 = vasrw($Vu32,$Rt32)", 30542 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30543 let hasNewValue = 1; 30544 let opNewValue = 0; 30545 let isPseudo = 1; 30546 let isCodeGenOnly = 1; 30547 let DecoderNamespace = "EXT_mmvec"; 30548 } 30549 def V6_vasrwh : HInst< 30550 (outs HvxVR:$Vd32), 30551 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30552 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)", 30553 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30554 let Inst{7-5} = 0b010; 30555 let Inst{13-13} = 0b0; 30556 let Inst{31-24} = 0b00011011; 30557 let hasNewValue = 1; 30558 let opNewValue = 0; 30559 let DecoderNamespace = "EXT_mmvec"; 30560 } 30561 def V6_vasrwh_alt : HInst< 30562 (outs HvxVR:$Vd32), 30563 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30564 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8)", 30565 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30566 let hasNewValue = 1; 30567 let opNewValue = 0; 30568 let isPseudo = 1; 30569 let isCodeGenOnly = 1; 30570 } 30571 def V6_vasrwhrndsat : HInst< 30572 (outs HvxVR:$Vd32), 30573 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30574 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 30575 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30576 let Inst{7-5} = 0b100; 30577 let Inst{13-13} = 0b0; 30578 let Inst{31-24} = 0b00011011; 30579 let hasNewValue = 1; 30580 let opNewValue = 0; 30581 let DecoderNamespace = "EXT_mmvec"; 30582 } 30583 def V6_vasrwhrndsat_alt : HInst< 30584 (outs HvxVR:$Vd32), 30585 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30586 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):rnd:sat", 30587 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30588 let hasNewValue = 1; 30589 let opNewValue = 0; 30590 let isPseudo = 1; 30591 let isCodeGenOnly = 1; 30592 } 30593 def V6_vasrwhsat : HInst< 30594 (outs HvxVR:$Vd32), 30595 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30596 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 30597 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30598 let Inst{7-5} = 0b011; 30599 let Inst{13-13} = 0b0; 30600 let Inst{31-24} = 0b00011011; 30601 let hasNewValue = 1; 30602 let opNewValue = 0; 30603 let DecoderNamespace = "EXT_mmvec"; 30604 } 30605 def V6_vasrwhsat_alt : HInst< 30606 (outs HvxVR:$Vd32), 30607 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30608 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):sat", 30609 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30610 let hasNewValue = 1; 30611 let opNewValue = 0; 30612 let isPseudo = 1; 30613 let isCodeGenOnly = 1; 30614 } 30615 def V6_vasrwuhrndsat : HInst< 30616 (outs HvxVR:$Vd32), 30617 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30618 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 30619 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 30620 let Inst{7-5} = 0b010; 30621 let Inst{13-13} = 0b0; 30622 let Inst{31-24} = 0b00011000; 30623 let hasNewValue = 1; 30624 let opNewValue = 0; 30625 let DecoderNamespace = "EXT_mmvec"; 30626 } 30627 def V6_vasrwuhsat : HInst< 30628 (outs HvxVR:$Vd32), 30629 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30630 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 30631 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 30632 let Inst{7-5} = 0b101; 30633 let Inst{13-13} = 0b0; 30634 let Inst{31-24} = 0b00011011; 30635 let hasNewValue = 1; 30636 let opNewValue = 0; 30637 let DecoderNamespace = "EXT_mmvec"; 30638 } 30639 def V6_vasrwuhsat_alt : HInst< 30640 (outs HvxVR:$Vd32), 30641 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30642 "$Vd32 = vasrwuh($Vu32,$Vv32,$Rt8):sat", 30643 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60]> { 30644 let hasNewValue = 1; 30645 let opNewValue = 0; 30646 let isPseudo = 1; 30647 let isCodeGenOnly = 1; 30648 } 30649 def V6_vasrwv : HInst< 30650 (outs HvxVR:$Vd32), 30651 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30652 "$Vd32.w = vasr($Vu32.w,$Vv32.w)", 30653 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 30654 let Inst{7-5} = 0b000; 30655 let Inst{13-13} = 0b0; 30656 let Inst{31-21} = 0b00011111101; 30657 let hasNewValue = 1; 30658 let opNewValue = 0; 30659 let DecoderNamespace = "EXT_mmvec"; 30660 } 30661 def V6_vasrwv_alt : HInst< 30662 (outs HvxVR:$Vd32), 30663 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30664 "$Vd32 = vasrw($Vu32,$Vv32)", 30665 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30666 let hasNewValue = 1; 30667 let opNewValue = 0; 30668 let isPseudo = 1; 30669 let isCodeGenOnly = 1; 30670 let DecoderNamespace = "EXT_mmvec"; 30671 } 30672 def V6_vassign : HInst< 30673 (outs HvxVR:$Vd32), 30674 (ins HvxVR:$Vu32), 30675 "$Vd32 = $Vu32", 30676 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 30677 let Inst{7-5} = 0b111; 30678 let Inst{13-13} = 0b1; 30679 let Inst{31-16} = 0b0001111000000011; 30680 let hasNewValue = 1; 30681 let opNewValue = 0; 30682 let DecoderNamespace = "EXT_mmvec"; 30683 } 30684 def V6_vassignp : HInst< 30685 (outs HvxWR:$Vdd32), 30686 (ins HvxWR:$Vuu32), 30687 "$Vdd32 = $Vuu32", 30688 CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> { 30689 let hasNewValue = 1; 30690 let opNewValue = 0; 30691 let isPseudo = 1; 30692 let DecoderNamespace = "EXT_mmvec"; 30693 } 30694 def V6_vavgb : HInst< 30695 (outs HvxVR:$Vd32), 30696 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30697 "$Vd32.b = vavg($Vu32.b,$Vv32.b)", 30698 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 30699 let Inst{7-5} = 0b100; 30700 let Inst{13-13} = 0b1; 30701 let Inst{31-21} = 0b00011111000; 30702 let hasNewValue = 1; 30703 let opNewValue = 0; 30704 let DecoderNamespace = "EXT_mmvec"; 30705 } 30706 def V6_vavgb_alt : HInst< 30707 (outs HvxVR:$Vd32), 30708 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30709 "$Vd32 = vavgb($Vu32,$Vv32)", 30710 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30711 let hasNewValue = 1; 30712 let opNewValue = 0; 30713 let isPseudo = 1; 30714 let isCodeGenOnly = 1; 30715 let DecoderNamespace = "EXT_mmvec"; 30716 } 30717 def V6_vavgbrnd : HInst< 30718 (outs HvxVR:$Vd32), 30719 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30720 "$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd", 30721 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 30722 let Inst{7-5} = 0b101; 30723 let Inst{13-13} = 0b1; 30724 let Inst{31-21} = 0b00011111000; 30725 let hasNewValue = 1; 30726 let opNewValue = 0; 30727 let DecoderNamespace = "EXT_mmvec"; 30728 } 30729 def V6_vavgbrnd_alt : HInst< 30730 (outs HvxVR:$Vd32), 30731 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30732 "$Vd32 = vavgb($Vu32,$Vv32):rnd", 30733 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30734 let hasNewValue = 1; 30735 let opNewValue = 0; 30736 let isPseudo = 1; 30737 let isCodeGenOnly = 1; 30738 let DecoderNamespace = "EXT_mmvec"; 30739 } 30740 def V6_vavgh : HInst< 30741 (outs HvxVR:$Vd32), 30742 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30743 "$Vd32.h = vavg($Vu32.h,$Vv32.h)", 30744 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30745 let Inst{7-5} = 0b110; 30746 let Inst{13-13} = 0b0; 30747 let Inst{31-21} = 0b00011100110; 30748 let hasNewValue = 1; 30749 let opNewValue = 0; 30750 let DecoderNamespace = "EXT_mmvec"; 30751 } 30752 def V6_vavgh_alt : HInst< 30753 (outs HvxVR:$Vd32), 30754 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30755 "$Vd32 = vavgh($Vu32,$Vv32)", 30756 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30757 let hasNewValue = 1; 30758 let opNewValue = 0; 30759 let isPseudo = 1; 30760 let isCodeGenOnly = 1; 30761 let DecoderNamespace = "EXT_mmvec"; 30762 } 30763 def V6_vavghrnd : HInst< 30764 (outs HvxVR:$Vd32), 30765 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30766 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd", 30767 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30768 let Inst{7-5} = 0b101; 30769 let Inst{13-13} = 0b0; 30770 let Inst{31-21} = 0b00011100111; 30771 let hasNewValue = 1; 30772 let opNewValue = 0; 30773 let DecoderNamespace = "EXT_mmvec"; 30774 } 30775 def V6_vavghrnd_alt : HInst< 30776 (outs HvxVR:$Vd32), 30777 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30778 "$Vd32 = vavgh($Vu32,$Vv32):rnd", 30779 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30780 let hasNewValue = 1; 30781 let opNewValue = 0; 30782 let isPseudo = 1; 30783 let isCodeGenOnly = 1; 30784 let DecoderNamespace = "EXT_mmvec"; 30785 } 30786 def V6_vavgub : HInst< 30787 (outs HvxVR:$Vd32), 30788 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30789 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)", 30790 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30791 let Inst{7-5} = 0b100; 30792 let Inst{13-13} = 0b0; 30793 let Inst{31-21} = 0b00011100110; 30794 let hasNewValue = 1; 30795 let opNewValue = 0; 30796 let DecoderNamespace = "EXT_mmvec"; 30797 } 30798 def V6_vavgub_alt : HInst< 30799 (outs HvxVR:$Vd32), 30800 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30801 "$Vd32 = vavgub($Vu32,$Vv32)", 30802 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30803 let hasNewValue = 1; 30804 let opNewValue = 0; 30805 let isPseudo = 1; 30806 let isCodeGenOnly = 1; 30807 let DecoderNamespace = "EXT_mmvec"; 30808 } 30809 def V6_vavgubrnd : HInst< 30810 (outs HvxVR:$Vd32), 30811 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30812 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd", 30813 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30814 let Inst{7-5} = 0b011; 30815 let Inst{13-13} = 0b0; 30816 let Inst{31-21} = 0b00011100111; 30817 let hasNewValue = 1; 30818 let opNewValue = 0; 30819 let DecoderNamespace = "EXT_mmvec"; 30820 } 30821 def V6_vavgubrnd_alt : HInst< 30822 (outs HvxVR:$Vd32), 30823 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30824 "$Vd32 = vavgub($Vu32,$Vv32):rnd", 30825 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30826 let hasNewValue = 1; 30827 let opNewValue = 0; 30828 let isPseudo = 1; 30829 let isCodeGenOnly = 1; 30830 let DecoderNamespace = "EXT_mmvec"; 30831 } 30832 def V6_vavguh : HInst< 30833 (outs HvxVR:$Vd32), 30834 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30835 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)", 30836 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30837 let Inst{7-5} = 0b101; 30838 let Inst{13-13} = 0b0; 30839 let Inst{31-21} = 0b00011100110; 30840 let hasNewValue = 1; 30841 let opNewValue = 0; 30842 let DecoderNamespace = "EXT_mmvec"; 30843 } 30844 def V6_vavguh_alt : HInst< 30845 (outs HvxVR:$Vd32), 30846 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30847 "$Vd32 = vavguh($Vu32,$Vv32)", 30848 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30849 let hasNewValue = 1; 30850 let opNewValue = 0; 30851 let isPseudo = 1; 30852 let isCodeGenOnly = 1; 30853 let DecoderNamespace = "EXT_mmvec"; 30854 } 30855 def V6_vavguhrnd : HInst< 30856 (outs HvxVR:$Vd32), 30857 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30858 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd", 30859 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30860 let Inst{7-5} = 0b100; 30861 let Inst{13-13} = 0b0; 30862 let Inst{31-21} = 0b00011100111; 30863 let hasNewValue = 1; 30864 let opNewValue = 0; 30865 let DecoderNamespace = "EXT_mmvec"; 30866 } 30867 def V6_vavguhrnd_alt : HInst< 30868 (outs HvxVR:$Vd32), 30869 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30870 "$Vd32 = vavguh($Vu32,$Vv32):rnd", 30871 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30872 let hasNewValue = 1; 30873 let opNewValue = 0; 30874 let isPseudo = 1; 30875 let isCodeGenOnly = 1; 30876 let DecoderNamespace = "EXT_mmvec"; 30877 } 30878 def V6_vavguw : HInst< 30879 (outs HvxVR:$Vd32), 30880 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30881 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)", 30882 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 30883 let Inst{7-5} = 0b010; 30884 let Inst{13-13} = 0b1; 30885 let Inst{31-21} = 0b00011111000; 30886 let hasNewValue = 1; 30887 let opNewValue = 0; 30888 let DecoderNamespace = "EXT_mmvec"; 30889 } 30890 def V6_vavguw_alt : HInst< 30891 (outs HvxVR:$Vd32), 30892 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30893 "$Vd32 = vavguw($Vu32,$Vv32)", 30894 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30895 let hasNewValue = 1; 30896 let opNewValue = 0; 30897 let isPseudo = 1; 30898 let isCodeGenOnly = 1; 30899 let DecoderNamespace = "EXT_mmvec"; 30900 } 30901 def V6_vavguwrnd : HInst< 30902 (outs HvxVR:$Vd32), 30903 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30904 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd", 30905 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 30906 let Inst{7-5} = 0b011; 30907 let Inst{13-13} = 0b1; 30908 let Inst{31-21} = 0b00011111000; 30909 let hasNewValue = 1; 30910 let opNewValue = 0; 30911 let DecoderNamespace = "EXT_mmvec"; 30912 } 30913 def V6_vavguwrnd_alt : HInst< 30914 (outs HvxVR:$Vd32), 30915 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30916 "$Vd32 = vavguw($Vu32,$Vv32):rnd", 30917 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30918 let hasNewValue = 1; 30919 let opNewValue = 0; 30920 let isPseudo = 1; 30921 let isCodeGenOnly = 1; 30922 let DecoderNamespace = "EXT_mmvec"; 30923 } 30924 def V6_vavgw : HInst< 30925 (outs HvxVR:$Vd32), 30926 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30927 "$Vd32.w = vavg($Vu32.w,$Vv32.w)", 30928 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30929 let Inst{7-5} = 0b111; 30930 let Inst{13-13} = 0b0; 30931 let Inst{31-21} = 0b00011100110; 30932 let hasNewValue = 1; 30933 let opNewValue = 0; 30934 let DecoderNamespace = "EXT_mmvec"; 30935 } 30936 def V6_vavgw_alt : HInst< 30937 (outs HvxVR:$Vd32), 30938 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30939 "$Vd32 = vavgw($Vu32,$Vv32)", 30940 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30941 let hasNewValue = 1; 30942 let opNewValue = 0; 30943 let isPseudo = 1; 30944 let isCodeGenOnly = 1; 30945 let DecoderNamespace = "EXT_mmvec"; 30946 } 30947 def V6_vavgwrnd : HInst< 30948 (outs HvxVR:$Vd32), 30949 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30950 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd", 30951 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30952 let Inst{7-5} = 0b110; 30953 let Inst{13-13} = 0b0; 30954 let Inst{31-21} = 0b00011100111; 30955 let hasNewValue = 1; 30956 let opNewValue = 0; 30957 let DecoderNamespace = "EXT_mmvec"; 30958 } 30959 def V6_vavgwrnd_alt : HInst< 30960 (outs HvxVR:$Vd32), 30961 (ins HvxVR:$Vu32, HvxVR:$Vv32), 30962 "$Vd32 = vavgw($Vu32,$Vv32):rnd", 30963 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30964 let hasNewValue = 1; 30965 let opNewValue = 0; 30966 let isPseudo = 1; 30967 let isCodeGenOnly = 1; 30968 let DecoderNamespace = "EXT_mmvec"; 30969 } 30970 def V6_vccombine : HInst< 30971 (outs HvxWR:$Vdd32), 30972 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 30973 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 30974 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 30975 let Inst{7-7} = 0b0; 30976 let Inst{13-13} = 0b0; 30977 let Inst{31-21} = 0b00011010011; 30978 let isPredicated = 1; 30979 let hasNewValue = 1; 30980 let opNewValue = 0; 30981 let DecoderNamespace = "EXT_mmvec"; 30982 } 30983 def V6_vcl0h : HInst< 30984 (outs HvxVR:$Vd32), 30985 (ins HvxVR:$Vu32), 30986 "$Vd32.uh = vcl0($Vu32.uh)", 30987 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 30988 let Inst{7-5} = 0b111; 30989 let Inst{13-13} = 0b0; 30990 let Inst{31-16} = 0b0001111000000010; 30991 let hasNewValue = 1; 30992 let opNewValue = 0; 30993 let DecoderNamespace = "EXT_mmvec"; 30994 } 30995 def V6_vcl0h_alt : HInst< 30996 (outs HvxVR:$Vd32), 30997 (ins HvxVR:$Vu32), 30998 "$Vd32 = vcl0h($Vu32)", 30999 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31000 let hasNewValue = 1; 31001 let opNewValue = 0; 31002 let isPseudo = 1; 31003 let isCodeGenOnly = 1; 31004 let DecoderNamespace = "EXT_mmvec"; 31005 } 31006 def V6_vcl0w : HInst< 31007 (outs HvxVR:$Vd32), 31008 (ins HvxVR:$Vu32), 31009 "$Vd32.uw = vcl0($Vu32.uw)", 31010 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 31011 let Inst{7-5} = 0b101; 31012 let Inst{13-13} = 0b0; 31013 let Inst{31-16} = 0b0001111000000010; 31014 let hasNewValue = 1; 31015 let opNewValue = 0; 31016 let DecoderNamespace = "EXT_mmvec"; 31017 } 31018 def V6_vcl0w_alt : HInst< 31019 (outs HvxVR:$Vd32), 31020 (ins HvxVR:$Vu32), 31021 "$Vd32 = vcl0w($Vu32)", 31022 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31023 let hasNewValue = 1; 31024 let opNewValue = 0; 31025 let isPseudo = 1; 31026 let isCodeGenOnly = 1; 31027 let DecoderNamespace = "EXT_mmvec"; 31028 } 31029 def V6_vcmov : HInst< 31030 (outs HvxVR:$Vd32), 31031 (ins PredRegs:$Ps4, HvxVR:$Vu32), 31032 "if ($Ps4) $Vd32 = $Vu32", 31033 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 31034 let Inst{7-7} = 0b0; 31035 let Inst{13-13} = 0b0; 31036 let Inst{31-16} = 0b0001101000000000; 31037 let isPredicated = 1; 31038 let hasNewValue = 1; 31039 let opNewValue = 0; 31040 let DecoderNamespace = "EXT_mmvec"; 31041 } 31042 def V6_vcombine : HInst< 31043 (outs HvxWR:$Vdd32), 31044 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31045 "$Vdd32 = vcombine($Vu32,$Vv32)", 31046 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 31047 let Inst{7-5} = 0b111; 31048 let Inst{13-13} = 0b0; 31049 let Inst{31-21} = 0b00011111010; 31050 let hasNewValue = 1; 31051 let opNewValue = 0; 31052 let isRegSequence = 1; 31053 let DecoderNamespace = "EXT_mmvec"; 31054 } 31055 def V6_vd0 : HInst< 31056 (outs HvxVR:$Vd32), 31057 (ins), 31058 "$Vd32 = #0", 31059 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 31060 let hasNewValue = 1; 31061 let opNewValue = 0; 31062 let isPseudo = 1; 31063 let isCodeGenOnly = 1; 31064 let DecoderNamespace = "EXT_mmvec"; 31065 } 31066 def V6_vdd0 : HInst< 31067 (outs HvxWR:$Vdd32), 31068 (ins), 31069 "$Vdd32 = #0", 31070 tc_8a6eb39a, TypeMAPPING>, Requires<[UseHVXV65]> { 31071 let hasNewValue = 1; 31072 let opNewValue = 0; 31073 let isPseudo = 1; 31074 let isCodeGenOnly = 1; 31075 let DecoderNamespace = "EXT_mmvec"; 31076 } 31077 def V6_vdeal : HInst< 31078 (outs HvxVR:$Vy32, HvxVR:$Vx32), 31079 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 31080 "vdeal($Vy32,$Vx32,$Rt32)", 31081 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 31082 let Inst{7-5} = 0b010; 31083 let Inst{13-13} = 0b1; 31084 let Inst{31-21} = 0b00011001111; 31085 let hasNewValue = 1; 31086 let opNewValue = 0; 31087 let hasNewValue2 = 1; 31088 let opNewValue2 = 1; 31089 let DecoderNamespace = "EXT_mmvec"; 31090 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 31091 } 31092 def V6_vdealb : HInst< 31093 (outs HvxVR:$Vd32), 31094 (ins HvxVR:$Vu32), 31095 "$Vd32.b = vdeal($Vu32.b)", 31096 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 31097 let Inst{7-5} = 0b111; 31098 let Inst{13-13} = 0b0; 31099 let Inst{31-16} = 0b0001111000000000; 31100 let hasNewValue = 1; 31101 let opNewValue = 0; 31102 let DecoderNamespace = "EXT_mmvec"; 31103 } 31104 def V6_vdealb4w : HInst< 31105 (outs HvxVR:$Vd32), 31106 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31107 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)", 31108 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 31109 let Inst{7-5} = 0b111; 31110 let Inst{13-13} = 0b0; 31111 let Inst{31-21} = 0b00011111001; 31112 let hasNewValue = 1; 31113 let opNewValue = 0; 31114 let DecoderNamespace = "EXT_mmvec"; 31115 } 31116 def V6_vdealb4w_alt : HInst< 31117 (outs HvxVR:$Vd32), 31118 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31119 "$Vd32 = vdealb4w($Vu32,$Vv32)", 31120 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31121 let hasNewValue = 1; 31122 let opNewValue = 0; 31123 let isPseudo = 1; 31124 let isCodeGenOnly = 1; 31125 let DecoderNamespace = "EXT_mmvec"; 31126 } 31127 def V6_vdealb_alt : HInst< 31128 (outs HvxVR:$Vd32), 31129 (ins HvxVR:$Vu32), 31130 "$Vd32 = vdealb($Vu32)", 31131 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31132 let hasNewValue = 1; 31133 let opNewValue = 0; 31134 let isPseudo = 1; 31135 let isCodeGenOnly = 1; 31136 let DecoderNamespace = "EXT_mmvec"; 31137 } 31138 def V6_vdealh : HInst< 31139 (outs HvxVR:$Vd32), 31140 (ins HvxVR:$Vu32), 31141 "$Vd32.h = vdeal($Vu32.h)", 31142 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 31143 let Inst{7-5} = 0b110; 31144 let Inst{13-13} = 0b0; 31145 let Inst{31-16} = 0b0001111000000000; 31146 let hasNewValue = 1; 31147 let opNewValue = 0; 31148 let DecoderNamespace = "EXT_mmvec"; 31149 } 31150 def V6_vdealh_alt : HInst< 31151 (outs HvxVR:$Vd32), 31152 (ins HvxVR:$Vu32), 31153 "$Vd32 = vdealh($Vu32)", 31154 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31155 let hasNewValue = 1; 31156 let opNewValue = 0; 31157 let isPseudo = 1; 31158 let isCodeGenOnly = 1; 31159 let DecoderNamespace = "EXT_mmvec"; 31160 } 31161 def V6_vdealvdd : HInst< 31162 (outs HvxWR:$Vdd32), 31163 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31164 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)", 31165 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 31166 let Inst{7-5} = 0b100; 31167 let Inst{13-13} = 0b1; 31168 let Inst{31-24} = 0b00011011; 31169 let hasNewValue = 1; 31170 let opNewValue = 0; 31171 let DecoderNamespace = "EXT_mmvec"; 31172 } 31173 def V6_vdelta : HInst< 31174 (outs HvxVR:$Vd32), 31175 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31176 "$Vd32 = vdelta($Vu32,$Vv32)", 31177 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 31178 let Inst{7-5} = 0b001; 31179 let Inst{13-13} = 0b0; 31180 let Inst{31-21} = 0b00011111001; 31181 let hasNewValue = 1; 31182 let opNewValue = 0; 31183 let DecoderNamespace = "EXT_mmvec"; 31184 } 31185 def V6_vdmpybus : HInst< 31186 (outs HvxVR:$Vd32), 31187 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31188 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)", 31189 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 31190 let Inst{7-5} = 0b110; 31191 let Inst{13-13} = 0b0; 31192 let Inst{31-21} = 0b00011001000; 31193 let hasNewValue = 1; 31194 let opNewValue = 0; 31195 let DecoderNamespace = "EXT_mmvec"; 31196 } 31197 def V6_vdmpybus_acc : HInst< 31198 (outs HvxVR:$Vx32), 31199 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31200 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)", 31201 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 31202 let Inst{7-5} = 0b110; 31203 let Inst{13-13} = 0b1; 31204 let Inst{31-21} = 0b00011001000; 31205 let hasNewValue = 1; 31206 let opNewValue = 0; 31207 let isAccumulator = 1; 31208 let DecoderNamespace = "EXT_mmvec"; 31209 let Constraints = "$Vx32 = $Vx32in"; 31210 } 31211 def V6_vdmpybus_acc_alt : HInst< 31212 (outs HvxVR:$Vx32), 31213 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31214 "$Vx32 += vdmpybus($Vu32,$Rt32)", 31215 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31216 let hasNewValue = 1; 31217 let opNewValue = 0; 31218 let isAccumulator = 1; 31219 let isPseudo = 1; 31220 let isCodeGenOnly = 1; 31221 let DecoderNamespace = "EXT_mmvec"; 31222 let Constraints = "$Vx32 = $Vx32in"; 31223 } 31224 def V6_vdmpybus_alt : HInst< 31225 (outs HvxVR:$Vd32), 31226 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31227 "$Vd32 = vdmpybus($Vu32,$Rt32)", 31228 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31229 let hasNewValue = 1; 31230 let opNewValue = 0; 31231 let isPseudo = 1; 31232 let isCodeGenOnly = 1; 31233 let DecoderNamespace = "EXT_mmvec"; 31234 } 31235 def V6_vdmpybus_dv : HInst< 31236 (outs HvxWR:$Vdd32), 31237 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31238 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)", 31239 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 31240 let Inst{7-5} = 0b111; 31241 let Inst{13-13} = 0b0; 31242 let Inst{31-21} = 0b00011001000; 31243 let hasNewValue = 1; 31244 let opNewValue = 0; 31245 let DecoderNamespace = "EXT_mmvec"; 31246 } 31247 def V6_vdmpybus_dv_acc : HInst< 31248 (outs HvxWR:$Vxx32), 31249 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31250 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)", 31251 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 31252 let Inst{7-5} = 0b111; 31253 let Inst{13-13} = 0b1; 31254 let Inst{31-21} = 0b00011001000; 31255 let hasNewValue = 1; 31256 let opNewValue = 0; 31257 let isAccumulator = 1; 31258 let DecoderNamespace = "EXT_mmvec"; 31259 let Constraints = "$Vxx32 = $Vxx32in"; 31260 } 31261 def V6_vdmpybus_dv_acc_alt : HInst< 31262 (outs HvxWR:$Vxx32), 31263 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31264 "$Vxx32 += vdmpybus($Vuu32,$Rt32)", 31265 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31266 let hasNewValue = 1; 31267 let opNewValue = 0; 31268 let isAccumulator = 1; 31269 let isPseudo = 1; 31270 let isCodeGenOnly = 1; 31271 let DecoderNamespace = "EXT_mmvec"; 31272 let Constraints = "$Vxx32 = $Vxx32in"; 31273 } 31274 def V6_vdmpybus_dv_alt : HInst< 31275 (outs HvxWR:$Vdd32), 31276 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31277 "$Vdd32 = vdmpybus($Vuu32,$Rt32)", 31278 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31279 let hasNewValue = 1; 31280 let opNewValue = 0; 31281 let isPseudo = 1; 31282 let isCodeGenOnly = 1; 31283 let DecoderNamespace = "EXT_mmvec"; 31284 } 31285 def V6_vdmpyhb : HInst< 31286 (outs HvxVR:$Vd32), 31287 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31288 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)", 31289 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 31290 let Inst{7-5} = 0b010; 31291 let Inst{13-13} = 0b0; 31292 let Inst{31-21} = 0b00011001000; 31293 let hasNewValue = 1; 31294 let opNewValue = 0; 31295 let DecoderNamespace = "EXT_mmvec"; 31296 } 31297 def V6_vdmpyhb_acc : HInst< 31298 (outs HvxVR:$Vx32), 31299 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31300 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)", 31301 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 31302 let Inst{7-5} = 0b011; 31303 let Inst{13-13} = 0b1; 31304 let Inst{31-21} = 0b00011001000; 31305 let hasNewValue = 1; 31306 let opNewValue = 0; 31307 let isAccumulator = 1; 31308 let DecoderNamespace = "EXT_mmvec"; 31309 let Constraints = "$Vx32 = $Vx32in"; 31310 } 31311 def V6_vdmpyhb_acc_alt : HInst< 31312 (outs HvxVR:$Vx32), 31313 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31314 "$Vx32 += vdmpyhb($Vu32,$Rt32)", 31315 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31316 let hasNewValue = 1; 31317 let opNewValue = 0; 31318 let isAccumulator = 1; 31319 let isPseudo = 1; 31320 let isCodeGenOnly = 1; 31321 let DecoderNamespace = "EXT_mmvec"; 31322 let Constraints = "$Vx32 = $Vx32in"; 31323 } 31324 def V6_vdmpyhb_alt : HInst< 31325 (outs HvxVR:$Vd32), 31326 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31327 "$Vd32 = vdmpyhb($Vu32,$Rt32)", 31328 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31329 let hasNewValue = 1; 31330 let opNewValue = 0; 31331 let isPseudo = 1; 31332 let isCodeGenOnly = 1; 31333 let DecoderNamespace = "EXT_mmvec"; 31334 } 31335 def V6_vdmpyhb_dv : HInst< 31336 (outs HvxWR:$Vdd32), 31337 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31338 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)", 31339 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 31340 let Inst{7-5} = 0b100; 31341 let Inst{13-13} = 0b0; 31342 let Inst{31-21} = 0b00011001001; 31343 let hasNewValue = 1; 31344 let opNewValue = 0; 31345 let DecoderNamespace = "EXT_mmvec"; 31346 } 31347 def V6_vdmpyhb_dv_acc : HInst< 31348 (outs HvxWR:$Vxx32), 31349 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31350 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)", 31351 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 31352 let Inst{7-5} = 0b100; 31353 let Inst{13-13} = 0b1; 31354 let Inst{31-21} = 0b00011001001; 31355 let hasNewValue = 1; 31356 let opNewValue = 0; 31357 let isAccumulator = 1; 31358 let DecoderNamespace = "EXT_mmvec"; 31359 let Constraints = "$Vxx32 = $Vxx32in"; 31360 } 31361 def V6_vdmpyhb_dv_acc_alt : HInst< 31362 (outs HvxWR:$Vxx32), 31363 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31364 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)", 31365 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31366 let hasNewValue = 1; 31367 let opNewValue = 0; 31368 let isAccumulator = 1; 31369 let isPseudo = 1; 31370 let isCodeGenOnly = 1; 31371 let DecoderNamespace = "EXT_mmvec"; 31372 let Constraints = "$Vxx32 = $Vxx32in"; 31373 } 31374 def V6_vdmpyhb_dv_alt : HInst< 31375 (outs HvxWR:$Vdd32), 31376 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31377 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)", 31378 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31379 let hasNewValue = 1; 31380 let opNewValue = 0; 31381 let isPseudo = 1; 31382 let isCodeGenOnly = 1; 31383 let DecoderNamespace = "EXT_mmvec"; 31384 } 31385 def V6_vdmpyhisat : HInst< 31386 (outs HvxVR:$Vd32), 31387 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31388 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat", 31389 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 31390 let Inst{7-5} = 0b011; 31391 let Inst{13-13} = 0b0; 31392 let Inst{31-21} = 0b00011001001; 31393 let hasNewValue = 1; 31394 let opNewValue = 0; 31395 let DecoderNamespace = "EXT_mmvec"; 31396 } 31397 def V6_vdmpyhisat_acc : HInst< 31398 (outs HvxVR:$Vx32), 31399 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31400 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat", 31401 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 31402 let Inst{7-5} = 0b010; 31403 let Inst{13-13} = 0b1; 31404 let Inst{31-21} = 0b00011001001; 31405 let hasNewValue = 1; 31406 let opNewValue = 0; 31407 let isAccumulator = 1; 31408 let DecoderNamespace = "EXT_mmvec"; 31409 let Constraints = "$Vx32 = $Vx32in"; 31410 } 31411 def V6_vdmpyhisat_acc_alt : HInst< 31412 (outs HvxVR:$Vx32), 31413 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31414 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat", 31415 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31416 let hasNewValue = 1; 31417 let opNewValue = 0; 31418 let isAccumulator = 1; 31419 let isPseudo = 1; 31420 let isCodeGenOnly = 1; 31421 let DecoderNamespace = "EXT_mmvec"; 31422 let Constraints = "$Vx32 = $Vx32in"; 31423 } 31424 def V6_vdmpyhisat_alt : HInst< 31425 (outs HvxVR:$Vd32), 31426 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31427 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat", 31428 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31429 let hasNewValue = 1; 31430 let opNewValue = 0; 31431 let isPseudo = 1; 31432 let isCodeGenOnly = 1; 31433 let DecoderNamespace = "EXT_mmvec"; 31434 } 31435 def V6_vdmpyhsat : HInst< 31436 (outs HvxVR:$Vd32), 31437 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31438 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat", 31439 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 31440 let Inst{7-5} = 0b010; 31441 let Inst{13-13} = 0b0; 31442 let Inst{31-21} = 0b00011001001; 31443 let hasNewValue = 1; 31444 let opNewValue = 0; 31445 let DecoderNamespace = "EXT_mmvec"; 31446 } 31447 def V6_vdmpyhsat_acc : HInst< 31448 (outs HvxVR:$Vx32), 31449 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31450 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat", 31451 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 31452 let Inst{7-5} = 0b011; 31453 let Inst{13-13} = 0b1; 31454 let Inst{31-21} = 0b00011001001; 31455 let hasNewValue = 1; 31456 let opNewValue = 0; 31457 let isAccumulator = 1; 31458 let DecoderNamespace = "EXT_mmvec"; 31459 let Constraints = "$Vx32 = $Vx32in"; 31460 } 31461 def V6_vdmpyhsat_acc_alt : HInst< 31462 (outs HvxVR:$Vx32), 31463 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31464 "$Vx32 += vdmpyh($Vu32,$Rt32):sat", 31465 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31466 let hasNewValue = 1; 31467 let opNewValue = 0; 31468 let isAccumulator = 1; 31469 let isPseudo = 1; 31470 let isCodeGenOnly = 1; 31471 let DecoderNamespace = "EXT_mmvec"; 31472 let Constraints = "$Vx32 = $Vx32in"; 31473 } 31474 def V6_vdmpyhsat_alt : HInst< 31475 (outs HvxVR:$Vd32), 31476 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31477 "$Vd32 = vdmpyh($Vu32,$Rt32):sat", 31478 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31479 let hasNewValue = 1; 31480 let opNewValue = 0; 31481 let isPseudo = 1; 31482 let isCodeGenOnly = 1; 31483 let DecoderNamespace = "EXT_mmvec"; 31484 } 31485 def V6_vdmpyhsuisat : HInst< 31486 (outs HvxVR:$Vd32), 31487 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31488 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 31489 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 31490 let Inst{7-5} = 0b001; 31491 let Inst{13-13} = 0b0; 31492 let Inst{31-21} = 0b00011001001; 31493 let hasNewValue = 1; 31494 let opNewValue = 0; 31495 let DecoderNamespace = "EXT_mmvec"; 31496 } 31497 def V6_vdmpyhsuisat_acc : HInst< 31498 (outs HvxVR:$Vx32), 31499 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31500 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 31501 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 31502 let Inst{7-5} = 0b001; 31503 let Inst{13-13} = 0b1; 31504 let Inst{31-21} = 0b00011001001; 31505 let hasNewValue = 1; 31506 let opNewValue = 0; 31507 let isAccumulator = 1; 31508 let DecoderNamespace = "EXT_mmvec"; 31509 let Constraints = "$Vx32 = $Vx32in"; 31510 } 31511 def V6_vdmpyhsuisat_acc_alt : HInst< 31512 (outs HvxVR:$Vx32), 31513 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31514 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat", 31515 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31516 let hasNewValue = 1; 31517 let opNewValue = 0; 31518 let isAccumulator = 1; 31519 let isPseudo = 1; 31520 let isCodeGenOnly = 1; 31521 let DecoderNamespace = "EXT_mmvec"; 31522 let Constraints = "$Vx32 = $Vx32in"; 31523 } 31524 def V6_vdmpyhsuisat_alt : HInst< 31525 (outs HvxVR:$Vd32), 31526 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31527 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat", 31528 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31529 let hasNewValue = 1; 31530 let opNewValue = 0; 31531 let isPseudo = 1; 31532 let isCodeGenOnly = 1; 31533 let DecoderNamespace = "EXT_mmvec"; 31534 } 31535 def V6_vdmpyhsusat : HInst< 31536 (outs HvxVR:$Vd32), 31537 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31538 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat", 31539 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 31540 let Inst{7-5} = 0b000; 31541 let Inst{13-13} = 0b0; 31542 let Inst{31-21} = 0b00011001001; 31543 let hasNewValue = 1; 31544 let opNewValue = 0; 31545 let DecoderNamespace = "EXT_mmvec"; 31546 } 31547 def V6_vdmpyhsusat_acc : HInst< 31548 (outs HvxVR:$Vx32), 31549 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31550 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat", 31551 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 31552 let Inst{7-5} = 0b000; 31553 let Inst{13-13} = 0b1; 31554 let Inst{31-21} = 0b00011001001; 31555 let hasNewValue = 1; 31556 let opNewValue = 0; 31557 let isAccumulator = 1; 31558 let DecoderNamespace = "EXT_mmvec"; 31559 let Constraints = "$Vx32 = $Vx32in"; 31560 } 31561 def V6_vdmpyhsusat_acc_alt : HInst< 31562 (outs HvxVR:$Vx32), 31563 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31564 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat", 31565 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31566 let hasNewValue = 1; 31567 let opNewValue = 0; 31568 let isAccumulator = 1; 31569 let isPseudo = 1; 31570 let isCodeGenOnly = 1; 31571 let DecoderNamespace = "EXT_mmvec"; 31572 let Constraints = "$Vx32 = $Vx32in"; 31573 } 31574 def V6_vdmpyhsusat_alt : HInst< 31575 (outs HvxVR:$Vd32), 31576 (ins HvxVR:$Vu32, IntRegs:$Rt32), 31577 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat", 31578 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31579 let hasNewValue = 1; 31580 let opNewValue = 0; 31581 let isPseudo = 1; 31582 let isCodeGenOnly = 1; 31583 let DecoderNamespace = "EXT_mmvec"; 31584 } 31585 def V6_vdmpyhvsat : HInst< 31586 (outs HvxVR:$Vd32), 31587 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31588 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat", 31589 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 31590 let Inst{7-5} = 0b011; 31591 let Inst{13-13} = 0b0; 31592 let Inst{31-21} = 0b00011100000; 31593 let hasNewValue = 1; 31594 let opNewValue = 0; 31595 let DecoderNamespace = "EXT_mmvec"; 31596 } 31597 def V6_vdmpyhvsat_acc : HInst< 31598 (outs HvxVR:$Vx32), 31599 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31600 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat", 31601 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 31602 let Inst{7-5} = 0b011; 31603 let Inst{13-13} = 0b1; 31604 let Inst{31-21} = 0b00011100000; 31605 let hasNewValue = 1; 31606 let opNewValue = 0; 31607 let isAccumulator = 1; 31608 let DecoderNamespace = "EXT_mmvec"; 31609 let Constraints = "$Vx32 = $Vx32in"; 31610 } 31611 def V6_vdmpyhvsat_acc_alt : HInst< 31612 (outs HvxVR:$Vx32), 31613 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31614 "$Vx32 += vdmpyh($Vu32,$Vv32):sat", 31615 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31616 let hasNewValue = 1; 31617 let opNewValue = 0; 31618 let isAccumulator = 1; 31619 let isPseudo = 1; 31620 let isCodeGenOnly = 1; 31621 let DecoderNamespace = "EXT_mmvec"; 31622 let Constraints = "$Vx32 = $Vx32in"; 31623 } 31624 def V6_vdmpyhvsat_alt : HInst< 31625 (outs HvxVR:$Vd32), 31626 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31627 "$Vd32 = vdmpyh($Vu32,$Vv32):sat", 31628 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31629 let hasNewValue = 1; 31630 let opNewValue = 0; 31631 let isPseudo = 1; 31632 let isCodeGenOnly = 1; 31633 let DecoderNamespace = "EXT_mmvec"; 31634 } 31635 def V6_vdsaduh : HInst< 31636 (outs HvxWR:$Vdd32), 31637 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31638 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)", 31639 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 31640 let Inst{7-5} = 0b101; 31641 let Inst{13-13} = 0b0; 31642 let Inst{31-21} = 0b00011001000; 31643 let hasNewValue = 1; 31644 let opNewValue = 0; 31645 let DecoderNamespace = "EXT_mmvec"; 31646 } 31647 def V6_vdsaduh_acc : HInst< 31648 (outs HvxWR:$Vxx32), 31649 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31650 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)", 31651 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 31652 let Inst{7-5} = 0b000; 31653 let Inst{13-13} = 0b1; 31654 let Inst{31-21} = 0b00011001011; 31655 let hasNewValue = 1; 31656 let opNewValue = 0; 31657 let isAccumulator = 1; 31658 let DecoderNamespace = "EXT_mmvec"; 31659 let Constraints = "$Vxx32 = $Vxx32in"; 31660 } 31661 def V6_vdsaduh_acc_alt : HInst< 31662 (outs HvxWR:$Vxx32), 31663 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 31664 "$Vxx32 += vdsaduh($Vuu32,$Rt32)", 31665 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31666 let hasNewValue = 1; 31667 let opNewValue = 0; 31668 let isAccumulator = 1; 31669 let isPseudo = 1; 31670 let isCodeGenOnly = 1; 31671 let DecoderNamespace = "EXT_mmvec"; 31672 let Constraints = "$Vxx32 = $Vxx32in"; 31673 } 31674 def V6_vdsaduh_alt : HInst< 31675 (outs HvxWR:$Vdd32), 31676 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 31677 "$Vdd32 = vdsaduh($Vuu32,$Rt32)", 31678 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31679 let hasNewValue = 1; 31680 let opNewValue = 0; 31681 let isPseudo = 1; 31682 let isCodeGenOnly = 1; 31683 let DecoderNamespace = "EXT_mmvec"; 31684 } 31685 def V6_veqb : HInst< 31686 (outs HvxQR:$Qd4), 31687 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31688 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)", 31689 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 31690 let Inst{7-2} = 0b000000; 31691 let Inst{13-13} = 0b0; 31692 let Inst{31-21} = 0b00011111100; 31693 let hasNewValue = 1; 31694 let opNewValue = 0; 31695 let DecoderNamespace = "EXT_mmvec"; 31696 } 31697 def V6_veqb_and : HInst< 31698 (outs HvxQR:$Qx4), 31699 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31700 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)", 31701 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31702 let Inst{7-2} = 0b000000; 31703 let Inst{13-13} = 0b1; 31704 let Inst{31-21} = 0b00011100100; 31705 let DecoderNamespace = "EXT_mmvec"; 31706 let Constraints = "$Qx4 = $Qx4in"; 31707 } 31708 def V6_veqb_or : HInst< 31709 (outs HvxQR:$Qx4), 31710 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31711 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)", 31712 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31713 let Inst{7-2} = 0b010000; 31714 let Inst{13-13} = 0b1; 31715 let Inst{31-21} = 0b00011100100; 31716 let isAccumulator = 1; 31717 let DecoderNamespace = "EXT_mmvec"; 31718 let Constraints = "$Qx4 = $Qx4in"; 31719 } 31720 def V6_veqb_xor : HInst< 31721 (outs HvxQR:$Qx4), 31722 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31723 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)", 31724 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31725 let Inst{7-2} = 0b100000; 31726 let Inst{13-13} = 0b1; 31727 let Inst{31-21} = 0b00011100100; 31728 let DecoderNamespace = "EXT_mmvec"; 31729 let Constraints = "$Qx4 = $Qx4in"; 31730 } 31731 def V6_veqh : HInst< 31732 (outs HvxQR:$Qd4), 31733 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31734 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)", 31735 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 31736 let Inst{7-2} = 0b000001; 31737 let Inst{13-13} = 0b0; 31738 let Inst{31-21} = 0b00011111100; 31739 let hasNewValue = 1; 31740 let opNewValue = 0; 31741 let DecoderNamespace = "EXT_mmvec"; 31742 } 31743 def V6_veqh_and : HInst< 31744 (outs HvxQR:$Qx4), 31745 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31746 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)", 31747 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31748 let Inst{7-2} = 0b000001; 31749 let Inst{13-13} = 0b1; 31750 let Inst{31-21} = 0b00011100100; 31751 let DecoderNamespace = "EXT_mmvec"; 31752 let Constraints = "$Qx4 = $Qx4in"; 31753 } 31754 def V6_veqh_or : HInst< 31755 (outs HvxQR:$Qx4), 31756 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31757 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)", 31758 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31759 let Inst{7-2} = 0b010001; 31760 let Inst{13-13} = 0b1; 31761 let Inst{31-21} = 0b00011100100; 31762 let isAccumulator = 1; 31763 let DecoderNamespace = "EXT_mmvec"; 31764 let Constraints = "$Qx4 = $Qx4in"; 31765 } 31766 def V6_veqh_xor : HInst< 31767 (outs HvxQR:$Qx4), 31768 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31769 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)", 31770 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31771 let Inst{7-2} = 0b100001; 31772 let Inst{13-13} = 0b1; 31773 let Inst{31-21} = 0b00011100100; 31774 let DecoderNamespace = "EXT_mmvec"; 31775 let Constraints = "$Qx4 = $Qx4in"; 31776 } 31777 def V6_veqw : HInst< 31778 (outs HvxQR:$Qd4), 31779 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31780 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)", 31781 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 31782 let Inst{7-2} = 0b000010; 31783 let Inst{13-13} = 0b0; 31784 let Inst{31-21} = 0b00011111100; 31785 let hasNewValue = 1; 31786 let opNewValue = 0; 31787 let DecoderNamespace = "EXT_mmvec"; 31788 } 31789 def V6_veqw_and : HInst< 31790 (outs HvxQR:$Qx4), 31791 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31792 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)", 31793 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31794 let Inst{7-2} = 0b000010; 31795 let Inst{13-13} = 0b1; 31796 let Inst{31-21} = 0b00011100100; 31797 let DecoderNamespace = "EXT_mmvec"; 31798 let Constraints = "$Qx4 = $Qx4in"; 31799 } 31800 def V6_veqw_or : HInst< 31801 (outs HvxQR:$Qx4), 31802 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31803 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)", 31804 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31805 let Inst{7-2} = 0b010010; 31806 let Inst{13-13} = 0b1; 31807 let Inst{31-21} = 0b00011100100; 31808 let isAccumulator = 1; 31809 let DecoderNamespace = "EXT_mmvec"; 31810 let Constraints = "$Qx4 = $Qx4in"; 31811 } 31812 def V6_veqw_xor : HInst< 31813 (outs HvxQR:$Qx4), 31814 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31815 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)", 31816 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31817 let Inst{7-2} = 0b100010; 31818 let Inst{13-13} = 0b1; 31819 let Inst{31-21} = 0b00011100100; 31820 let DecoderNamespace = "EXT_mmvec"; 31821 let Constraints = "$Qx4 = $Qx4in"; 31822 } 31823 def V6_vgathermh : HInst< 31824 (outs), 31825 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 31826 "vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 31827 tc_66bb62ea, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 31828 let Inst{12-5} = 0b00001000; 31829 let Inst{31-21} = 0b00101111000; 31830 let hasNewValue = 1; 31831 let opNewValue = 0; 31832 let accessSize = HalfWordAccess; 31833 let isCVLoad = 1; 31834 let hasTmpDst = 1; 31835 let mayLoad = 1; 31836 let Defs = [VTMP]; 31837 let DecoderNamespace = "EXT_mmvec"; 31838 } 31839 def V6_vgathermhq : HInst< 31840 (outs), 31841 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 31842 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 31843 tc_63e3d94c, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 31844 let Inst{12-7} = 0b001010; 31845 let Inst{31-21} = 0b00101111000; 31846 let hasNewValue = 1; 31847 let opNewValue = 0; 31848 let accessSize = HalfWordAccess; 31849 let isCVLoad = 1; 31850 let hasTmpDst = 1; 31851 let mayLoad = 1; 31852 let Defs = [VTMP]; 31853 let DecoderNamespace = "EXT_mmvec"; 31854 } 31855 def V6_vgathermhw : HInst< 31856 (outs), 31857 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 31858 "vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 31859 tc_bfe309d5, TypeCVI_GATHER>, Enc_28dcbb, Requires<[UseHVXV65]> { 31860 let Inst{12-5} = 0b00010000; 31861 let Inst{31-21} = 0b00101111000; 31862 let hasNewValue = 1; 31863 let opNewValue = 0; 31864 let accessSize = HalfWordAccess; 31865 let isCVLoad = 1; 31866 let hasTmpDst = 1; 31867 let mayLoad = 1; 31868 let Defs = [VTMP]; 31869 let DecoderNamespace = "EXT_mmvec"; 31870 } 31871 def V6_vgathermhwq : HInst< 31872 (outs), 31873 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 31874 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 31875 tc_98733e9d, TypeCVI_GATHER>, Enc_4e4a80, Requires<[UseHVXV65]> { 31876 let Inst{12-7} = 0b001100; 31877 let Inst{31-21} = 0b00101111000; 31878 let hasNewValue = 1; 31879 let opNewValue = 0; 31880 let accessSize = HalfWordAccess; 31881 let isCVLoad = 1; 31882 let hasTmpDst = 1; 31883 let mayLoad = 1; 31884 let Defs = [VTMP]; 31885 let DecoderNamespace = "EXT_mmvec"; 31886 } 31887 def V6_vgathermw : HInst< 31888 (outs), 31889 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 31890 "vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 31891 tc_66bb62ea, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 31892 let Inst{12-5} = 0b00000000; 31893 let Inst{31-21} = 0b00101111000; 31894 let hasNewValue = 1; 31895 let opNewValue = 0; 31896 let accessSize = WordAccess; 31897 let isCVLoad = 1; 31898 let hasTmpDst = 1; 31899 let mayLoad = 1; 31900 let Defs = [VTMP]; 31901 let DecoderNamespace = "EXT_mmvec"; 31902 } 31903 def V6_vgathermwq : HInst< 31904 (outs), 31905 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 31906 "if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 31907 tc_63e3d94c, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 31908 let Inst{12-7} = 0b001000; 31909 let Inst{31-21} = 0b00101111000; 31910 let hasNewValue = 1; 31911 let opNewValue = 0; 31912 let accessSize = WordAccess; 31913 let isCVLoad = 1; 31914 let hasTmpDst = 1; 31915 let mayLoad = 1; 31916 let Defs = [VTMP]; 31917 let DecoderNamespace = "EXT_mmvec"; 31918 } 31919 def V6_vgtb : HInst< 31920 (outs HvxQR:$Qd4), 31921 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31922 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)", 31923 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 31924 let Inst{7-2} = 0b000100; 31925 let Inst{13-13} = 0b0; 31926 let Inst{31-21} = 0b00011111100; 31927 let hasNewValue = 1; 31928 let opNewValue = 0; 31929 let DecoderNamespace = "EXT_mmvec"; 31930 } 31931 def V6_vgtb_and : HInst< 31932 (outs HvxQR:$Qx4), 31933 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31934 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)", 31935 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31936 let Inst{7-2} = 0b000100; 31937 let Inst{13-13} = 0b1; 31938 let Inst{31-21} = 0b00011100100; 31939 let DecoderNamespace = "EXT_mmvec"; 31940 let Constraints = "$Qx4 = $Qx4in"; 31941 } 31942 def V6_vgtb_or : HInst< 31943 (outs HvxQR:$Qx4), 31944 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31945 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)", 31946 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31947 let Inst{7-2} = 0b010100; 31948 let Inst{13-13} = 0b1; 31949 let Inst{31-21} = 0b00011100100; 31950 let isAccumulator = 1; 31951 let DecoderNamespace = "EXT_mmvec"; 31952 let Constraints = "$Qx4 = $Qx4in"; 31953 } 31954 def V6_vgtb_xor : HInst< 31955 (outs HvxQR:$Qx4), 31956 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31957 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)", 31958 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31959 let Inst{7-2} = 0b100100; 31960 let Inst{13-13} = 0b1; 31961 let Inst{31-21} = 0b00011100100; 31962 let DecoderNamespace = "EXT_mmvec"; 31963 let Constraints = "$Qx4 = $Qx4in"; 31964 } 31965 def V6_vgth : HInst< 31966 (outs HvxQR:$Qd4), 31967 (ins HvxVR:$Vu32, HvxVR:$Vv32), 31968 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)", 31969 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 31970 let Inst{7-2} = 0b000101; 31971 let Inst{13-13} = 0b0; 31972 let Inst{31-21} = 0b00011111100; 31973 let hasNewValue = 1; 31974 let opNewValue = 0; 31975 let DecoderNamespace = "EXT_mmvec"; 31976 } 31977 def V6_vgth_and : HInst< 31978 (outs HvxQR:$Qx4), 31979 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31980 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)", 31981 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31982 let Inst{7-2} = 0b000101; 31983 let Inst{13-13} = 0b1; 31984 let Inst{31-21} = 0b00011100100; 31985 let DecoderNamespace = "EXT_mmvec"; 31986 let Constraints = "$Qx4 = $Qx4in"; 31987 } 31988 def V6_vgth_or : HInst< 31989 (outs HvxQR:$Qx4), 31990 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 31991 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)", 31992 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 31993 let Inst{7-2} = 0b010101; 31994 let Inst{13-13} = 0b1; 31995 let Inst{31-21} = 0b00011100100; 31996 let isAccumulator = 1; 31997 let DecoderNamespace = "EXT_mmvec"; 31998 let Constraints = "$Qx4 = $Qx4in"; 31999 } 32000 def V6_vgth_xor : HInst< 32001 (outs HvxQR:$Qx4), 32002 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32003 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)", 32004 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32005 let Inst{7-2} = 0b100101; 32006 let Inst{13-13} = 0b1; 32007 let Inst{31-21} = 0b00011100100; 32008 let DecoderNamespace = "EXT_mmvec"; 32009 let Constraints = "$Qx4 = $Qx4in"; 32010 } 32011 def V6_vgtub : HInst< 32012 (outs HvxQR:$Qd4), 32013 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32014 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)", 32015 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32016 let Inst{7-2} = 0b001000; 32017 let Inst{13-13} = 0b0; 32018 let Inst{31-21} = 0b00011111100; 32019 let hasNewValue = 1; 32020 let opNewValue = 0; 32021 let DecoderNamespace = "EXT_mmvec"; 32022 } 32023 def V6_vgtub_and : HInst< 32024 (outs HvxQR:$Qx4), 32025 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32026 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)", 32027 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32028 let Inst{7-2} = 0b001000; 32029 let Inst{13-13} = 0b1; 32030 let Inst{31-21} = 0b00011100100; 32031 let DecoderNamespace = "EXT_mmvec"; 32032 let Constraints = "$Qx4 = $Qx4in"; 32033 } 32034 def V6_vgtub_or : HInst< 32035 (outs HvxQR:$Qx4), 32036 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32037 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)", 32038 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32039 let Inst{7-2} = 0b011000; 32040 let Inst{13-13} = 0b1; 32041 let Inst{31-21} = 0b00011100100; 32042 let isAccumulator = 1; 32043 let DecoderNamespace = "EXT_mmvec"; 32044 let Constraints = "$Qx4 = $Qx4in"; 32045 } 32046 def V6_vgtub_xor : HInst< 32047 (outs HvxQR:$Qx4), 32048 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32049 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)", 32050 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32051 let Inst{7-2} = 0b101000; 32052 let Inst{13-13} = 0b1; 32053 let Inst{31-21} = 0b00011100100; 32054 let DecoderNamespace = "EXT_mmvec"; 32055 let Constraints = "$Qx4 = $Qx4in"; 32056 } 32057 def V6_vgtuh : HInst< 32058 (outs HvxQR:$Qd4), 32059 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32060 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)", 32061 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32062 let Inst{7-2} = 0b001001; 32063 let Inst{13-13} = 0b0; 32064 let Inst{31-21} = 0b00011111100; 32065 let hasNewValue = 1; 32066 let opNewValue = 0; 32067 let DecoderNamespace = "EXT_mmvec"; 32068 } 32069 def V6_vgtuh_and : HInst< 32070 (outs HvxQR:$Qx4), 32071 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32072 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)", 32073 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32074 let Inst{7-2} = 0b001001; 32075 let Inst{13-13} = 0b1; 32076 let Inst{31-21} = 0b00011100100; 32077 let DecoderNamespace = "EXT_mmvec"; 32078 let Constraints = "$Qx4 = $Qx4in"; 32079 } 32080 def V6_vgtuh_or : HInst< 32081 (outs HvxQR:$Qx4), 32082 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32083 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)", 32084 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32085 let Inst{7-2} = 0b011001; 32086 let Inst{13-13} = 0b1; 32087 let Inst{31-21} = 0b00011100100; 32088 let isAccumulator = 1; 32089 let DecoderNamespace = "EXT_mmvec"; 32090 let Constraints = "$Qx4 = $Qx4in"; 32091 } 32092 def V6_vgtuh_xor : HInst< 32093 (outs HvxQR:$Qx4), 32094 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32095 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)", 32096 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32097 let Inst{7-2} = 0b101001; 32098 let Inst{13-13} = 0b1; 32099 let Inst{31-21} = 0b00011100100; 32100 let DecoderNamespace = "EXT_mmvec"; 32101 let Constraints = "$Qx4 = $Qx4in"; 32102 } 32103 def V6_vgtuw : HInst< 32104 (outs HvxQR:$Qd4), 32105 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32106 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)", 32107 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32108 let Inst{7-2} = 0b001010; 32109 let Inst{13-13} = 0b0; 32110 let Inst{31-21} = 0b00011111100; 32111 let hasNewValue = 1; 32112 let opNewValue = 0; 32113 let DecoderNamespace = "EXT_mmvec"; 32114 } 32115 def V6_vgtuw_and : HInst< 32116 (outs HvxQR:$Qx4), 32117 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32118 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)", 32119 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32120 let Inst{7-2} = 0b001010; 32121 let Inst{13-13} = 0b1; 32122 let Inst{31-21} = 0b00011100100; 32123 let DecoderNamespace = "EXT_mmvec"; 32124 let Constraints = "$Qx4 = $Qx4in"; 32125 } 32126 def V6_vgtuw_or : HInst< 32127 (outs HvxQR:$Qx4), 32128 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32129 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)", 32130 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32131 let Inst{7-2} = 0b011010; 32132 let Inst{13-13} = 0b1; 32133 let Inst{31-21} = 0b00011100100; 32134 let isAccumulator = 1; 32135 let DecoderNamespace = "EXT_mmvec"; 32136 let Constraints = "$Qx4 = $Qx4in"; 32137 } 32138 def V6_vgtuw_xor : HInst< 32139 (outs HvxQR:$Qx4), 32140 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32141 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)", 32142 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32143 let Inst{7-2} = 0b101010; 32144 let Inst{13-13} = 0b1; 32145 let Inst{31-21} = 0b00011100100; 32146 let DecoderNamespace = "EXT_mmvec"; 32147 let Constraints = "$Qx4 = $Qx4in"; 32148 } 32149 def V6_vgtw : HInst< 32150 (outs HvxQR:$Qd4), 32151 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32152 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)", 32153 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32154 let Inst{7-2} = 0b000110; 32155 let Inst{13-13} = 0b0; 32156 let Inst{31-21} = 0b00011111100; 32157 let hasNewValue = 1; 32158 let opNewValue = 0; 32159 let DecoderNamespace = "EXT_mmvec"; 32160 } 32161 def V6_vgtw_and : HInst< 32162 (outs HvxQR:$Qx4), 32163 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32164 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)", 32165 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32166 let Inst{7-2} = 0b000110; 32167 let Inst{13-13} = 0b1; 32168 let Inst{31-21} = 0b00011100100; 32169 let DecoderNamespace = "EXT_mmvec"; 32170 let Constraints = "$Qx4 = $Qx4in"; 32171 } 32172 def V6_vgtw_or : HInst< 32173 (outs HvxQR:$Qx4), 32174 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32175 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)", 32176 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32177 let Inst{7-2} = 0b010110; 32178 let Inst{13-13} = 0b1; 32179 let Inst{31-21} = 0b00011100100; 32180 let isAccumulator = 1; 32181 let DecoderNamespace = "EXT_mmvec"; 32182 let Constraints = "$Qx4 = $Qx4in"; 32183 } 32184 def V6_vgtw_xor : HInst< 32185 (outs HvxQR:$Qx4), 32186 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32187 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)", 32188 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32189 let Inst{7-2} = 0b100110; 32190 let Inst{13-13} = 0b1; 32191 let Inst{31-21} = 0b00011100100; 32192 let DecoderNamespace = "EXT_mmvec"; 32193 let Constraints = "$Qx4 = $Qx4in"; 32194 } 32195 def V6_vhist : HInst< 32196 (outs), 32197 (ins), 32198 "vhist", 32199 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> { 32200 let Inst{13-0} = 0b10000010000000; 32201 let Inst{31-16} = 0b0001111000000000; 32202 let DecoderNamespace = "EXT_mmvec"; 32203 } 32204 def V6_vhistq : HInst< 32205 (outs), 32206 (ins HvxQR:$Qv4), 32207 "vhist($Qv4)", 32208 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> { 32209 let Inst{13-0} = 0b10000010000000; 32210 let Inst{21-16} = 0b000010; 32211 let Inst{31-24} = 0b00011110; 32212 let DecoderNamespace = "EXT_mmvec"; 32213 } 32214 def V6_vinsertwr : HInst< 32215 (outs HvxVR:$Vx32), 32216 (ins HvxVR:$Vx32in, IntRegs:$Rt32), 32217 "$Vx32.w = vinsert($Rt32)", 32218 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> { 32219 let Inst{13-5} = 0b100000001; 32220 let Inst{31-21} = 0b00011001101; 32221 let hasNewValue = 1; 32222 let opNewValue = 0; 32223 let DecoderNamespace = "EXT_mmvec"; 32224 let Constraints = "$Vx32 = $Vx32in"; 32225 } 32226 def V6_vlalignb : HInst< 32227 (outs HvxVR:$Vd32), 32228 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32229 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)", 32230 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 32231 let Inst{7-5} = 0b001; 32232 let Inst{13-13} = 0b0; 32233 let Inst{31-24} = 0b00011011; 32234 let hasNewValue = 1; 32235 let opNewValue = 0; 32236 let DecoderNamespace = "EXT_mmvec"; 32237 } 32238 def V6_vlalignbi : HInst< 32239 (outs HvxVR:$Vd32), 32240 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 32241 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)", 32242 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 32243 let Inst{13-13} = 0b1; 32244 let Inst{31-21} = 0b00011110011; 32245 let hasNewValue = 1; 32246 let opNewValue = 0; 32247 let DecoderNamespace = "EXT_mmvec"; 32248 } 32249 def V6_vlsrb : HInst< 32250 (outs HvxVR:$Vd32), 32251 (ins HvxVR:$Vu32, IntRegs:$Rt32), 32252 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)", 32253 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> { 32254 let Inst{7-5} = 0b011; 32255 let Inst{13-13} = 0b0; 32256 let Inst{31-21} = 0b00011001100; 32257 let hasNewValue = 1; 32258 let opNewValue = 0; 32259 let DecoderNamespace = "EXT_mmvec"; 32260 } 32261 def V6_vlsrh : HInst< 32262 (outs HvxVR:$Vd32), 32263 (ins HvxVR:$Vu32, IntRegs:$Rt32), 32264 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)", 32265 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 32266 let Inst{7-5} = 0b010; 32267 let Inst{13-13} = 0b0; 32268 let Inst{31-21} = 0b00011001100; 32269 let hasNewValue = 1; 32270 let opNewValue = 0; 32271 let DecoderNamespace = "EXT_mmvec"; 32272 } 32273 def V6_vlsrh_alt : HInst< 32274 (outs HvxVR:$Vd32), 32275 (ins HvxVR:$Vu32, IntRegs:$Rt32), 32276 "$Vd32 = vlsrh($Vu32,$Rt32)", 32277 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32278 let hasNewValue = 1; 32279 let opNewValue = 0; 32280 let isPseudo = 1; 32281 let isCodeGenOnly = 1; 32282 let DecoderNamespace = "EXT_mmvec"; 32283 } 32284 def V6_vlsrhv : HInst< 32285 (outs HvxVR:$Vd32), 32286 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32287 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)", 32288 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 32289 let Inst{7-5} = 0b010; 32290 let Inst{13-13} = 0b0; 32291 let Inst{31-21} = 0b00011111101; 32292 let hasNewValue = 1; 32293 let opNewValue = 0; 32294 let DecoderNamespace = "EXT_mmvec"; 32295 } 32296 def V6_vlsrhv_alt : HInst< 32297 (outs HvxVR:$Vd32), 32298 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32299 "$Vd32 = vlsrh($Vu32,$Vv32)", 32300 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32301 let hasNewValue = 1; 32302 let opNewValue = 0; 32303 let isPseudo = 1; 32304 let isCodeGenOnly = 1; 32305 let DecoderNamespace = "EXT_mmvec"; 32306 } 32307 def V6_vlsrw : HInst< 32308 (outs HvxVR:$Vd32), 32309 (ins HvxVR:$Vu32, IntRegs:$Rt32), 32310 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)", 32311 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 32312 let Inst{7-5} = 0b001; 32313 let Inst{13-13} = 0b0; 32314 let Inst{31-21} = 0b00011001100; 32315 let hasNewValue = 1; 32316 let opNewValue = 0; 32317 let DecoderNamespace = "EXT_mmvec"; 32318 } 32319 def V6_vlsrw_alt : HInst< 32320 (outs HvxVR:$Vd32), 32321 (ins HvxVR:$Vu32, IntRegs:$Rt32), 32322 "$Vd32 = vlsrw($Vu32,$Rt32)", 32323 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32324 let hasNewValue = 1; 32325 let opNewValue = 0; 32326 let isPseudo = 1; 32327 let isCodeGenOnly = 1; 32328 let DecoderNamespace = "EXT_mmvec"; 32329 } 32330 def V6_vlsrwv : HInst< 32331 (outs HvxVR:$Vd32), 32332 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32333 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)", 32334 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 32335 let Inst{7-5} = 0b001; 32336 let Inst{13-13} = 0b0; 32337 let Inst{31-21} = 0b00011111101; 32338 let hasNewValue = 1; 32339 let opNewValue = 0; 32340 let DecoderNamespace = "EXT_mmvec"; 32341 } 32342 def V6_vlsrwv_alt : HInst< 32343 (outs HvxVR:$Vd32), 32344 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32345 "$Vd32 = vlsrw($Vu32,$Vv32)", 32346 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32347 let hasNewValue = 1; 32348 let opNewValue = 0; 32349 let isPseudo = 1; 32350 let isCodeGenOnly = 1; 32351 let DecoderNamespace = "EXT_mmvec"; 32352 } 32353 def V6_vlut4 : HInst< 32354 (outs HvxVR:$Vd32), 32355 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 32356 "$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)", 32357 tc_fa99dc24, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> { 32358 let Inst{7-5} = 0b100; 32359 let Inst{13-13} = 0b0; 32360 let Inst{31-21} = 0b00011001011; 32361 let hasNewValue = 1; 32362 let opNewValue = 0; 32363 let DecoderNamespace = "EXT_mmvec"; 32364 } 32365 def V6_vlutvvb : HInst< 32366 (outs HvxVR:$Vd32), 32367 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32368 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)", 32369 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 32370 let Inst{7-5} = 0b001; 32371 let Inst{13-13} = 0b1; 32372 let Inst{31-24} = 0b00011011; 32373 let hasNewValue = 1; 32374 let opNewValue = 0; 32375 let DecoderNamespace = "EXT_mmvec"; 32376 } 32377 def V6_vlutvvb_nm : HInst< 32378 (outs HvxVR:$Vd32), 32379 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32380 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch", 32381 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> { 32382 let Inst{7-5} = 0b011; 32383 let Inst{13-13} = 0b0; 32384 let Inst{31-24} = 0b00011000; 32385 let hasNewValue = 1; 32386 let opNewValue = 0; 32387 let DecoderNamespace = "EXT_mmvec"; 32388 } 32389 def V6_vlutvvb_oracc : HInst< 32390 (outs HvxVR:$Vx32), 32391 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32392 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)", 32393 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> { 32394 let Inst{7-5} = 0b101; 32395 let Inst{13-13} = 0b1; 32396 let Inst{31-24} = 0b00011011; 32397 let hasNewValue = 1; 32398 let opNewValue = 0; 32399 let isAccumulator = 1; 32400 let DecoderNamespace = "EXT_mmvec"; 32401 let Constraints = "$Vx32 = $Vx32in"; 32402 } 32403 def V6_vlutvvb_oracci : HInst< 32404 (outs HvxVR:$Vx32), 32405 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 32406 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)", 32407 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> { 32408 let Inst{13-13} = 0b1; 32409 let Inst{31-21} = 0b00011100110; 32410 let hasNewValue = 1; 32411 let opNewValue = 0; 32412 let isAccumulator = 1; 32413 let DecoderNamespace = "EXT_mmvec"; 32414 let Constraints = "$Vx32 = $Vx32in"; 32415 } 32416 def V6_vlutvvbi : HInst< 32417 (outs HvxVR:$Vd32), 32418 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 32419 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)", 32420 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> { 32421 let Inst{13-13} = 0b0; 32422 let Inst{31-21} = 0b00011110001; 32423 let hasNewValue = 1; 32424 let opNewValue = 0; 32425 let DecoderNamespace = "EXT_mmvec"; 32426 } 32427 def V6_vlutvwh : HInst< 32428 (outs HvxWR:$Vdd32), 32429 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32430 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)", 32431 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 32432 let Inst{7-5} = 0b110; 32433 let Inst{13-13} = 0b1; 32434 let Inst{31-24} = 0b00011011; 32435 let hasNewValue = 1; 32436 let opNewValue = 0; 32437 let DecoderNamespace = "EXT_mmvec"; 32438 } 32439 def V6_vlutvwh_nm : HInst< 32440 (outs HvxWR:$Vdd32), 32441 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32442 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch", 32443 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> { 32444 let Inst{7-5} = 0b100; 32445 let Inst{13-13} = 0b0; 32446 let Inst{31-24} = 0b00011000; 32447 let hasNewValue = 1; 32448 let opNewValue = 0; 32449 let DecoderNamespace = "EXT_mmvec"; 32450 } 32451 def V6_vlutvwh_oracc : HInst< 32452 (outs HvxWR:$Vxx32), 32453 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32454 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)", 32455 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> { 32456 let Inst{7-5} = 0b111; 32457 let Inst{13-13} = 0b1; 32458 let Inst{31-24} = 0b00011011; 32459 let hasNewValue = 1; 32460 let opNewValue = 0; 32461 let isAccumulator = 1; 32462 let DecoderNamespace = "EXT_mmvec"; 32463 let Constraints = "$Vxx32 = $Vxx32in"; 32464 } 32465 def V6_vlutvwh_oracci : HInst< 32466 (outs HvxWR:$Vxx32), 32467 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 32468 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)", 32469 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> { 32470 let Inst{13-13} = 0b1; 32471 let Inst{31-21} = 0b00011100111; 32472 let hasNewValue = 1; 32473 let opNewValue = 0; 32474 let isAccumulator = 1; 32475 let DecoderNamespace = "EXT_mmvec"; 32476 let Constraints = "$Vxx32 = $Vxx32in"; 32477 } 32478 def V6_vlutvwhi : HInst< 32479 (outs HvxWR:$Vdd32), 32480 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 32481 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)", 32482 tc_4e2a5159, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> { 32483 let Inst{13-13} = 0b0; 32484 let Inst{31-21} = 0b00011110011; 32485 let hasNewValue = 1; 32486 let opNewValue = 0; 32487 let DecoderNamespace = "EXT_mmvec"; 32488 } 32489 def V6_vmaxb : HInst< 32490 (outs HvxVR:$Vd32), 32491 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32492 "$Vd32.b = vmax($Vu32.b,$Vv32.b)", 32493 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 32494 let Inst{7-5} = 0b101; 32495 let Inst{13-13} = 0b0; 32496 let Inst{31-21} = 0b00011111001; 32497 let hasNewValue = 1; 32498 let opNewValue = 0; 32499 let DecoderNamespace = "EXT_mmvec"; 32500 } 32501 def V6_vmaxb_alt : HInst< 32502 (outs HvxVR:$Vd32), 32503 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32504 "$Vd32 = vmaxb($Vu32,$Vv32)", 32505 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 32506 let hasNewValue = 1; 32507 let opNewValue = 0; 32508 let isPseudo = 1; 32509 let isCodeGenOnly = 1; 32510 let DecoderNamespace = "EXT_mmvec"; 32511 } 32512 def V6_vmaxh : HInst< 32513 (outs HvxVR:$Vd32), 32514 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32515 "$Vd32.h = vmax($Vu32.h,$Vv32.h)", 32516 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32517 let Inst{7-5} = 0b111; 32518 let Inst{13-13} = 0b0; 32519 let Inst{31-21} = 0b00011111000; 32520 let hasNewValue = 1; 32521 let opNewValue = 0; 32522 let DecoderNamespace = "EXT_mmvec"; 32523 } 32524 def V6_vmaxh_alt : HInst< 32525 (outs HvxVR:$Vd32), 32526 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32527 "$Vd32 = vmaxh($Vu32,$Vv32)", 32528 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32529 let hasNewValue = 1; 32530 let opNewValue = 0; 32531 let isPseudo = 1; 32532 let isCodeGenOnly = 1; 32533 let DecoderNamespace = "EXT_mmvec"; 32534 } 32535 def V6_vmaxub : HInst< 32536 (outs HvxVR:$Vd32), 32537 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32538 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)", 32539 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32540 let Inst{7-5} = 0b101; 32541 let Inst{13-13} = 0b0; 32542 let Inst{31-21} = 0b00011111000; 32543 let hasNewValue = 1; 32544 let opNewValue = 0; 32545 let DecoderNamespace = "EXT_mmvec"; 32546 } 32547 def V6_vmaxub_alt : HInst< 32548 (outs HvxVR:$Vd32), 32549 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32550 "$Vd32 = vmaxub($Vu32,$Vv32)", 32551 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32552 let hasNewValue = 1; 32553 let opNewValue = 0; 32554 let isPseudo = 1; 32555 let isCodeGenOnly = 1; 32556 let DecoderNamespace = "EXT_mmvec"; 32557 } 32558 def V6_vmaxuh : HInst< 32559 (outs HvxVR:$Vd32), 32560 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32561 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)", 32562 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32563 let Inst{7-5} = 0b110; 32564 let Inst{13-13} = 0b0; 32565 let Inst{31-21} = 0b00011111000; 32566 let hasNewValue = 1; 32567 let opNewValue = 0; 32568 let DecoderNamespace = "EXT_mmvec"; 32569 } 32570 def V6_vmaxuh_alt : HInst< 32571 (outs HvxVR:$Vd32), 32572 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32573 "$Vd32 = vmaxuh($Vu32,$Vv32)", 32574 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32575 let hasNewValue = 1; 32576 let opNewValue = 0; 32577 let isPseudo = 1; 32578 let isCodeGenOnly = 1; 32579 let DecoderNamespace = "EXT_mmvec"; 32580 } 32581 def V6_vmaxw : HInst< 32582 (outs HvxVR:$Vd32), 32583 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32584 "$Vd32.w = vmax($Vu32.w,$Vv32.w)", 32585 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32586 let Inst{7-5} = 0b000; 32587 let Inst{13-13} = 0b0; 32588 let Inst{31-21} = 0b00011111001; 32589 let hasNewValue = 1; 32590 let opNewValue = 0; 32591 let DecoderNamespace = "EXT_mmvec"; 32592 } 32593 def V6_vmaxw_alt : HInst< 32594 (outs HvxVR:$Vd32), 32595 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32596 "$Vd32 = vmaxw($Vu32,$Vv32)", 32597 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32598 let hasNewValue = 1; 32599 let opNewValue = 0; 32600 let isPseudo = 1; 32601 let isCodeGenOnly = 1; 32602 let DecoderNamespace = "EXT_mmvec"; 32603 } 32604 def V6_vminb : HInst< 32605 (outs HvxVR:$Vd32), 32606 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32607 "$Vd32.b = vmin($Vu32.b,$Vv32.b)", 32608 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 32609 let Inst{7-5} = 0b100; 32610 let Inst{13-13} = 0b0; 32611 let Inst{31-21} = 0b00011111001; 32612 let hasNewValue = 1; 32613 let opNewValue = 0; 32614 let DecoderNamespace = "EXT_mmvec"; 32615 } 32616 def V6_vminb_alt : HInst< 32617 (outs HvxVR:$Vd32), 32618 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32619 "$Vd32 = vminb($Vu32,$Vv32)", 32620 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 32621 let hasNewValue = 1; 32622 let opNewValue = 0; 32623 let isPseudo = 1; 32624 let isCodeGenOnly = 1; 32625 let DecoderNamespace = "EXT_mmvec"; 32626 } 32627 def V6_vminh : HInst< 32628 (outs HvxVR:$Vd32), 32629 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32630 "$Vd32.h = vmin($Vu32.h,$Vv32.h)", 32631 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32632 let Inst{7-5} = 0b011; 32633 let Inst{13-13} = 0b0; 32634 let Inst{31-21} = 0b00011111000; 32635 let hasNewValue = 1; 32636 let opNewValue = 0; 32637 let DecoderNamespace = "EXT_mmvec"; 32638 } 32639 def V6_vminh_alt : HInst< 32640 (outs HvxVR:$Vd32), 32641 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32642 "$Vd32 = vminh($Vu32,$Vv32)", 32643 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32644 let hasNewValue = 1; 32645 let opNewValue = 0; 32646 let isPseudo = 1; 32647 let isCodeGenOnly = 1; 32648 let DecoderNamespace = "EXT_mmvec"; 32649 } 32650 def V6_vminub : HInst< 32651 (outs HvxVR:$Vd32), 32652 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32653 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)", 32654 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32655 let Inst{7-5} = 0b001; 32656 let Inst{13-13} = 0b0; 32657 let Inst{31-21} = 0b00011111000; 32658 let hasNewValue = 1; 32659 let opNewValue = 0; 32660 let DecoderNamespace = "EXT_mmvec"; 32661 } 32662 def V6_vminub_alt : HInst< 32663 (outs HvxVR:$Vd32), 32664 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32665 "$Vd32 = vminub($Vu32,$Vv32)", 32666 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32667 let hasNewValue = 1; 32668 let opNewValue = 0; 32669 let isPseudo = 1; 32670 let isCodeGenOnly = 1; 32671 let DecoderNamespace = "EXT_mmvec"; 32672 } 32673 def V6_vminuh : HInst< 32674 (outs HvxVR:$Vd32), 32675 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32676 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)", 32677 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32678 let Inst{7-5} = 0b010; 32679 let Inst{13-13} = 0b0; 32680 let Inst{31-21} = 0b00011111000; 32681 let hasNewValue = 1; 32682 let opNewValue = 0; 32683 let DecoderNamespace = "EXT_mmvec"; 32684 } 32685 def V6_vminuh_alt : HInst< 32686 (outs HvxVR:$Vd32), 32687 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32688 "$Vd32 = vminuh($Vu32,$Vv32)", 32689 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32690 let hasNewValue = 1; 32691 let opNewValue = 0; 32692 let isPseudo = 1; 32693 let isCodeGenOnly = 1; 32694 let DecoderNamespace = "EXT_mmvec"; 32695 } 32696 def V6_vminw : HInst< 32697 (outs HvxVR:$Vd32), 32698 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32699 "$Vd32.w = vmin($Vu32.w,$Vv32.w)", 32700 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32701 let Inst{7-5} = 0b100; 32702 let Inst{13-13} = 0b0; 32703 let Inst{31-21} = 0b00011111000; 32704 let hasNewValue = 1; 32705 let opNewValue = 0; 32706 let DecoderNamespace = "EXT_mmvec"; 32707 } 32708 def V6_vminw_alt : HInst< 32709 (outs HvxVR:$Vd32), 32710 (ins HvxVR:$Vu32, HvxVR:$Vv32), 32711 "$Vd32 = vminw($Vu32,$Vv32)", 32712 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32713 let hasNewValue = 1; 32714 let opNewValue = 0; 32715 let isPseudo = 1; 32716 let isCodeGenOnly = 1; 32717 let DecoderNamespace = "EXT_mmvec"; 32718 } 32719 def V6_vmpabus : HInst< 32720 (outs HvxWR:$Vdd32), 32721 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32722 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)", 32723 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32724 let Inst{7-5} = 0b110; 32725 let Inst{13-13} = 0b0; 32726 let Inst{31-21} = 0b00011001001; 32727 let hasNewValue = 1; 32728 let opNewValue = 0; 32729 let DecoderNamespace = "EXT_mmvec"; 32730 } 32731 def V6_vmpabus_acc : HInst< 32732 (outs HvxWR:$Vxx32), 32733 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32734 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)", 32735 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32736 let Inst{7-5} = 0b110; 32737 let Inst{13-13} = 0b1; 32738 let Inst{31-21} = 0b00011001001; 32739 let hasNewValue = 1; 32740 let opNewValue = 0; 32741 let isAccumulator = 1; 32742 let DecoderNamespace = "EXT_mmvec"; 32743 let Constraints = "$Vxx32 = $Vxx32in"; 32744 } 32745 def V6_vmpabus_acc_alt : HInst< 32746 (outs HvxWR:$Vxx32), 32747 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32748 "$Vxx32 += vmpabus($Vuu32,$Rt32)", 32749 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32750 let hasNewValue = 1; 32751 let opNewValue = 0; 32752 let isAccumulator = 1; 32753 let isPseudo = 1; 32754 let isCodeGenOnly = 1; 32755 let DecoderNamespace = "EXT_mmvec"; 32756 let Constraints = "$Vxx32 = $Vxx32in"; 32757 } 32758 def V6_vmpabus_alt : HInst< 32759 (outs HvxWR:$Vdd32), 32760 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32761 "$Vdd32 = vmpabus($Vuu32,$Rt32)", 32762 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32763 let hasNewValue = 1; 32764 let opNewValue = 0; 32765 let isPseudo = 1; 32766 let isCodeGenOnly = 1; 32767 let DecoderNamespace = "EXT_mmvec"; 32768 } 32769 def V6_vmpabusv : HInst< 32770 (outs HvxWR:$Vdd32), 32771 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 32772 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)", 32773 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 32774 let Inst{7-5} = 0b011; 32775 let Inst{13-13} = 0b0; 32776 let Inst{31-21} = 0b00011100001; 32777 let hasNewValue = 1; 32778 let opNewValue = 0; 32779 let DecoderNamespace = "EXT_mmvec"; 32780 } 32781 def V6_vmpabusv_alt : HInst< 32782 (outs HvxWR:$Vdd32), 32783 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 32784 "$Vdd32 = vmpabus($Vuu32,$Vvv32)", 32785 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32786 let hasNewValue = 1; 32787 let opNewValue = 0; 32788 let isPseudo = 1; 32789 let isCodeGenOnly = 1; 32790 let DecoderNamespace = "EXT_mmvec"; 32791 } 32792 def V6_vmpabuu : HInst< 32793 (outs HvxWR:$Vdd32), 32794 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32795 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)", 32796 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> { 32797 let Inst{7-5} = 0b011; 32798 let Inst{13-13} = 0b0; 32799 let Inst{31-21} = 0b00011001011; 32800 let hasNewValue = 1; 32801 let opNewValue = 0; 32802 let DecoderNamespace = "EXT_mmvec"; 32803 } 32804 def V6_vmpabuu_acc : HInst< 32805 (outs HvxWR:$Vxx32), 32806 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32807 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)", 32808 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> { 32809 let Inst{7-5} = 0b100; 32810 let Inst{13-13} = 0b1; 32811 let Inst{31-21} = 0b00011001101; 32812 let hasNewValue = 1; 32813 let opNewValue = 0; 32814 let isAccumulator = 1; 32815 let DecoderNamespace = "EXT_mmvec"; 32816 let Constraints = "$Vxx32 = $Vxx32in"; 32817 } 32818 def V6_vmpabuu_acc_alt : HInst< 32819 (outs HvxWR:$Vxx32), 32820 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32821 "$Vxx32 += vmpabuu($Vuu32,$Rt32)", 32822 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32823 let hasNewValue = 1; 32824 let opNewValue = 0; 32825 let isAccumulator = 1; 32826 let isPseudo = 1; 32827 let isCodeGenOnly = 1; 32828 let DecoderNamespace = "EXT_mmvec"; 32829 let Constraints = "$Vxx32 = $Vxx32in"; 32830 } 32831 def V6_vmpabuu_alt : HInst< 32832 (outs HvxWR:$Vdd32), 32833 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32834 "$Vdd32 = vmpabuu($Vuu32,$Rt32)", 32835 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32836 let hasNewValue = 1; 32837 let opNewValue = 0; 32838 let isPseudo = 1; 32839 let isCodeGenOnly = 1; 32840 let DecoderNamespace = "EXT_mmvec"; 32841 } 32842 def V6_vmpabuuv : HInst< 32843 (outs HvxWR:$Vdd32), 32844 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 32845 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)", 32846 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 32847 let Inst{7-5} = 0b111; 32848 let Inst{13-13} = 0b0; 32849 let Inst{31-21} = 0b00011100111; 32850 let hasNewValue = 1; 32851 let opNewValue = 0; 32852 let DecoderNamespace = "EXT_mmvec"; 32853 } 32854 def V6_vmpabuuv_alt : HInst< 32855 (outs HvxWR:$Vdd32), 32856 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 32857 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)", 32858 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32859 let hasNewValue = 1; 32860 let opNewValue = 0; 32861 let isPseudo = 1; 32862 let isCodeGenOnly = 1; 32863 let DecoderNamespace = "EXT_mmvec"; 32864 } 32865 def V6_vmpahb : HInst< 32866 (outs HvxWR:$Vdd32), 32867 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32868 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)", 32869 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32870 let Inst{7-5} = 0b111; 32871 let Inst{13-13} = 0b0; 32872 let Inst{31-21} = 0b00011001001; 32873 let hasNewValue = 1; 32874 let opNewValue = 0; 32875 let DecoderNamespace = "EXT_mmvec"; 32876 } 32877 def V6_vmpahb_acc : HInst< 32878 (outs HvxWR:$Vxx32), 32879 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32880 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)", 32881 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32882 let Inst{7-5} = 0b111; 32883 let Inst{13-13} = 0b1; 32884 let Inst{31-21} = 0b00011001001; 32885 let hasNewValue = 1; 32886 let opNewValue = 0; 32887 let isAccumulator = 1; 32888 let DecoderNamespace = "EXT_mmvec"; 32889 let Constraints = "$Vxx32 = $Vxx32in"; 32890 } 32891 def V6_vmpahb_acc_alt : HInst< 32892 (outs HvxWR:$Vxx32), 32893 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32894 "$Vxx32 += vmpahb($Vuu32,$Rt32)", 32895 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32896 let hasNewValue = 1; 32897 let opNewValue = 0; 32898 let isAccumulator = 1; 32899 let isPseudo = 1; 32900 let isCodeGenOnly = 1; 32901 let DecoderNamespace = "EXT_mmvec"; 32902 let Constraints = "$Vxx32 = $Vxx32in"; 32903 } 32904 def V6_vmpahb_alt : HInst< 32905 (outs HvxWR:$Vdd32), 32906 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32907 "$Vdd32 = vmpahb($Vuu32,$Rt32)", 32908 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32909 let hasNewValue = 1; 32910 let opNewValue = 0; 32911 let isPseudo = 1; 32912 let isCodeGenOnly = 1; 32913 let DecoderNamespace = "EXT_mmvec"; 32914 } 32915 def V6_vmpahhsat : HInst< 32916 (outs HvxVR:$Vx32), 32917 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 32918 "$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat", 32919 tc_7474003e, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 32920 let Inst{7-5} = 0b100; 32921 let Inst{13-13} = 0b1; 32922 let Inst{31-21} = 0b00011001100; 32923 let hasNewValue = 1; 32924 let opNewValue = 0; 32925 let DecoderNamespace = "EXT_mmvec"; 32926 let Constraints = "$Vx32 = $Vx32in"; 32927 } 32928 def V6_vmpauhb : HInst< 32929 (outs HvxWR:$Vdd32), 32930 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32931 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)", 32932 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> { 32933 let Inst{7-5} = 0b101; 32934 let Inst{13-13} = 0b0; 32935 let Inst{31-21} = 0b00011001100; 32936 let hasNewValue = 1; 32937 let opNewValue = 0; 32938 let DecoderNamespace = "EXT_mmvec"; 32939 } 32940 def V6_vmpauhb_acc : HInst< 32941 (outs HvxWR:$Vxx32), 32942 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32943 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)", 32944 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> { 32945 let Inst{7-5} = 0b010; 32946 let Inst{13-13} = 0b1; 32947 let Inst{31-21} = 0b00011001100; 32948 let hasNewValue = 1; 32949 let opNewValue = 0; 32950 let isAccumulator = 1; 32951 let DecoderNamespace = "EXT_mmvec"; 32952 let Constraints = "$Vxx32 = $Vxx32in"; 32953 } 32954 def V6_vmpauhb_acc_alt : HInst< 32955 (outs HvxWR:$Vxx32), 32956 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32957 "$Vxx32 += vmpauhb($Vuu32,$Rt32)", 32958 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 32959 let hasNewValue = 1; 32960 let opNewValue = 0; 32961 let isAccumulator = 1; 32962 let isPseudo = 1; 32963 let isCodeGenOnly = 1; 32964 let DecoderNamespace = "EXT_mmvec"; 32965 let Constraints = "$Vxx32 = $Vxx32in"; 32966 } 32967 def V6_vmpauhb_alt : HInst< 32968 (outs HvxWR:$Vdd32), 32969 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 32970 "$Vdd32 = vmpauhb($Vuu32,$Rt32)", 32971 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 32972 let hasNewValue = 1; 32973 let opNewValue = 0; 32974 let isPseudo = 1; 32975 let isCodeGenOnly = 1; 32976 let DecoderNamespace = "EXT_mmvec"; 32977 } 32978 def V6_vmpauhuhsat : HInst< 32979 (outs HvxVR:$Vx32), 32980 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 32981 "$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 32982 tc_7474003e, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 32983 let Inst{7-5} = 0b101; 32984 let Inst{13-13} = 0b1; 32985 let Inst{31-21} = 0b00011001100; 32986 let hasNewValue = 1; 32987 let opNewValue = 0; 32988 let DecoderNamespace = "EXT_mmvec"; 32989 let Constraints = "$Vx32 = $Vx32in"; 32990 } 32991 def V6_vmpsuhuhsat : HInst< 32992 (outs HvxVR:$Vx32), 32993 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 32994 "$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 32995 tc_7474003e, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 32996 let Inst{7-5} = 0b110; 32997 let Inst{13-13} = 0b1; 32998 let Inst{31-21} = 0b00011001100; 32999 let hasNewValue = 1; 33000 let opNewValue = 0; 33001 let DecoderNamespace = "EXT_mmvec"; 33002 let Constraints = "$Vx32 = $Vx32in"; 33003 } 33004 def V6_vmpybus : HInst< 33005 (outs HvxWR:$Vdd32), 33006 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33007 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)", 33008 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 33009 let Inst{7-5} = 0b101; 33010 let Inst{13-13} = 0b0; 33011 let Inst{31-21} = 0b00011001001; 33012 let hasNewValue = 1; 33013 let opNewValue = 0; 33014 let DecoderNamespace = "EXT_mmvec"; 33015 } 33016 def V6_vmpybus_acc : HInst< 33017 (outs HvxWR:$Vxx32), 33018 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33019 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)", 33020 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 33021 let Inst{7-5} = 0b101; 33022 let Inst{13-13} = 0b1; 33023 let Inst{31-21} = 0b00011001001; 33024 let hasNewValue = 1; 33025 let opNewValue = 0; 33026 let isAccumulator = 1; 33027 let DecoderNamespace = "EXT_mmvec"; 33028 let Constraints = "$Vxx32 = $Vxx32in"; 33029 } 33030 def V6_vmpybus_acc_alt : HInst< 33031 (outs HvxWR:$Vxx32), 33032 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33033 "$Vxx32 += vmpybus($Vu32,$Rt32)", 33034 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33035 let hasNewValue = 1; 33036 let opNewValue = 0; 33037 let isAccumulator = 1; 33038 let isPseudo = 1; 33039 let isCodeGenOnly = 1; 33040 let DecoderNamespace = "EXT_mmvec"; 33041 let Constraints = "$Vxx32 = $Vxx32in"; 33042 } 33043 def V6_vmpybus_alt : HInst< 33044 (outs HvxWR:$Vdd32), 33045 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33046 "$Vdd32 = vmpybus($Vu32,$Rt32)", 33047 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33048 let hasNewValue = 1; 33049 let opNewValue = 0; 33050 let isPseudo = 1; 33051 let isCodeGenOnly = 1; 33052 let DecoderNamespace = "EXT_mmvec"; 33053 } 33054 def V6_vmpybusv : HInst< 33055 (outs HvxWR:$Vdd32), 33056 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33057 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)", 33058 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33059 let Inst{7-5} = 0b110; 33060 let Inst{13-13} = 0b0; 33061 let Inst{31-21} = 0b00011100000; 33062 let hasNewValue = 1; 33063 let opNewValue = 0; 33064 let DecoderNamespace = "EXT_mmvec"; 33065 } 33066 def V6_vmpybusv_acc : HInst< 33067 (outs HvxWR:$Vxx32), 33068 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33069 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)", 33070 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33071 let Inst{7-5} = 0b110; 33072 let Inst{13-13} = 0b1; 33073 let Inst{31-21} = 0b00011100000; 33074 let hasNewValue = 1; 33075 let opNewValue = 0; 33076 let isAccumulator = 1; 33077 let DecoderNamespace = "EXT_mmvec"; 33078 let Constraints = "$Vxx32 = $Vxx32in"; 33079 } 33080 def V6_vmpybusv_acc_alt : HInst< 33081 (outs HvxWR:$Vxx32), 33082 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33083 "$Vxx32 += vmpybus($Vu32,$Vv32)", 33084 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33085 let hasNewValue = 1; 33086 let opNewValue = 0; 33087 let isAccumulator = 1; 33088 let isPseudo = 1; 33089 let isCodeGenOnly = 1; 33090 let DecoderNamespace = "EXT_mmvec"; 33091 let Constraints = "$Vxx32 = $Vxx32in"; 33092 } 33093 def V6_vmpybusv_alt : HInst< 33094 (outs HvxWR:$Vdd32), 33095 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33096 "$Vdd32 = vmpybus($Vu32,$Vv32)", 33097 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33098 let hasNewValue = 1; 33099 let opNewValue = 0; 33100 let isPseudo = 1; 33101 let isCodeGenOnly = 1; 33102 let DecoderNamespace = "EXT_mmvec"; 33103 } 33104 def V6_vmpybv : HInst< 33105 (outs HvxWR:$Vdd32), 33106 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33107 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)", 33108 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33109 let Inst{7-5} = 0b100; 33110 let Inst{13-13} = 0b0; 33111 let Inst{31-21} = 0b00011100000; 33112 let hasNewValue = 1; 33113 let opNewValue = 0; 33114 let DecoderNamespace = "EXT_mmvec"; 33115 } 33116 def V6_vmpybv_acc : HInst< 33117 (outs HvxWR:$Vxx32), 33118 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33119 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)", 33120 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33121 let Inst{7-5} = 0b100; 33122 let Inst{13-13} = 0b1; 33123 let Inst{31-21} = 0b00011100000; 33124 let hasNewValue = 1; 33125 let opNewValue = 0; 33126 let isAccumulator = 1; 33127 let DecoderNamespace = "EXT_mmvec"; 33128 let Constraints = "$Vxx32 = $Vxx32in"; 33129 } 33130 def V6_vmpybv_acc_alt : HInst< 33131 (outs HvxWR:$Vxx32), 33132 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33133 "$Vxx32 += vmpyb($Vu32,$Vv32)", 33134 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33135 let hasNewValue = 1; 33136 let opNewValue = 0; 33137 let isAccumulator = 1; 33138 let isPseudo = 1; 33139 let isCodeGenOnly = 1; 33140 let DecoderNamespace = "EXT_mmvec"; 33141 let Constraints = "$Vxx32 = $Vxx32in"; 33142 } 33143 def V6_vmpybv_alt : HInst< 33144 (outs HvxWR:$Vdd32), 33145 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33146 "$Vdd32 = vmpyb($Vu32,$Vv32)", 33147 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33148 let hasNewValue = 1; 33149 let opNewValue = 0; 33150 let isPseudo = 1; 33151 let isCodeGenOnly = 1; 33152 let DecoderNamespace = "EXT_mmvec"; 33153 } 33154 def V6_vmpyewuh : HInst< 33155 (outs HvxVR:$Vd32), 33156 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33157 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)", 33158 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33159 let Inst{7-5} = 0b101; 33160 let Inst{13-13} = 0b0; 33161 let Inst{31-21} = 0b00011111111; 33162 let hasNewValue = 1; 33163 let opNewValue = 0; 33164 let DecoderNamespace = "EXT_mmvec"; 33165 } 33166 def V6_vmpyewuh_64 : HInst< 33167 (outs HvxWR:$Vdd32), 33168 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33169 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)", 33170 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> { 33171 let Inst{7-5} = 0b110; 33172 let Inst{13-13} = 0b0; 33173 let Inst{31-21} = 0b00011110101; 33174 let hasNewValue = 1; 33175 let opNewValue = 0; 33176 let DecoderNamespace = "EXT_mmvec"; 33177 } 33178 def V6_vmpyewuh_alt : HInst< 33179 (outs HvxVR:$Vd32), 33180 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33181 "$Vd32 = vmpyewuh($Vu32,$Vv32)", 33182 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33183 let hasNewValue = 1; 33184 let opNewValue = 0; 33185 let isPseudo = 1; 33186 let isCodeGenOnly = 1; 33187 let DecoderNamespace = "EXT_mmvec"; 33188 } 33189 def V6_vmpyh : HInst< 33190 (outs HvxWR:$Vdd32), 33191 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33192 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)", 33193 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 33194 let Inst{7-5} = 0b000; 33195 let Inst{13-13} = 0b0; 33196 let Inst{31-21} = 0b00011001010; 33197 let hasNewValue = 1; 33198 let opNewValue = 0; 33199 let DecoderNamespace = "EXT_mmvec"; 33200 } 33201 def V6_vmpyh_acc : HInst< 33202 (outs HvxWR:$Vxx32), 33203 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33204 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h)", 33205 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> { 33206 let Inst{7-5} = 0b110; 33207 let Inst{13-13} = 0b1; 33208 let Inst{31-21} = 0b00011001101; 33209 let hasNewValue = 1; 33210 let opNewValue = 0; 33211 let isAccumulator = 1; 33212 let DecoderNamespace = "EXT_mmvec"; 33213 let Constraints = "$Vxx32 = $Vxx32in"; 33214 } 33215 def V6_vmpyh_acc_alt : HInst< 33216 (outs HvxWR:$Vxx32), 33217 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33218 "$Vxx32 += vmpyh($Vu32,$Rt32)", 33219 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 33220 let hasNewValue = 1; 33221 let opNewValue = 0; 33222 let isAccumulator = 1; 33223 let isPseudo = 1; 33224 let isCodeGenOnly = 1; 33225 let DecoderNamespace = "EXT_mmvec"; 33226 let Constraints = "$Vxx32 = $Vxx32in"; 33227 } 33228 def V6_vmpyh_alt : HInst< 33229 (outs HvxWR:$Vdd32), 33230 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33231 "$Vdd32 = vmpyh($Vu32,$Rt32)", 33232 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33233 let hasNewValue = 1; 33234 let opNewValue = 0; 33235 let isPseudo = 1; 33236 let isCodeGenOnly = 1; 33237 let DecoderNamespace = "EXT_mmvec"; 33238 } 33239 def V6_vmpyhsat_acc : HInst< 33240 (outs HvxWR:$Vxx32), 33241 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33242 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat", 33243 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 33244 let Inst{7-5} = 0b000; 33245 let Inst{13-13} = 0b1; 33246 let Inst{31-21} = 0b00011001010; 33247 let hasNewValue = 1; 33248 let opNewValue = 0; 33249 let isAccumulator = 1; 33250 let DecoderNamespace = "EXT_mmvec"; 33251 let Constraints = "$Vxx32 = $Vxx32in"; 33252 } 33253 def V6_vmpyhsat_acc_alt : HInst< 33254 (outs HvxWR:$Vxx32), 33255 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33256 "$Vxx32 += vmpyh($Vu32,$Rt32):sat", 33257 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33258 let hasNewValue = 1; 33259 let opNewValue = 0; 33260 let isAccumulator = 1; 33261 let isPseudo = 1; 33262 let isCodeGenOnly = 1; 33263 let DecoderNamespace = "EXT_mmvec"; 33264 let Constraints = "$Vxx32 = $Vxx32in"; 33265 } 33266 def V6_vmpyhsrs : HInst< 33267 (outs HvxVR:$Vd32), 33268 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33269 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat", 33270 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 33271 let Inst{7-5} = 0b010; 33272 let Inst{13-13} = 0b0; 33273 let Inst{31-21} = 0b00011001010; 33274 let hasNewValue = 1; 33275 let opNewValue = 0; 33276 let DecoderNamespace = "EXT_mmvec"; 33277 } 33278 def V6_vmpyhsrs_alt : HInst< 33279 (outs HvxVR:$Vd32), 33280 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33281 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat", 33282 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33283 let hasNewValue = 1; 33284 let opNewValue = 0; 33285 let isPseudo = 1; 33286 let isCodeGenOnly = 1; 33287 let DecoderNamespace = "EXT_mmvec"; 33288 } 33289 def V6_vmpyhss : HInst< 33290 (outs HvxVR:$Vd32), 33291 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33292 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat", 33293 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 33294 let Inst{7-5} = 0b001; 33295 let Inst{13-13} = 0b0; 33296 let Inst{31-21} = 0b00011001010; 33297 let hasNewValue = 1; 33298 let opNewValue = 0; 33299 let DecoderNamespace = "EXT_mmvec"; 33300 } 33301 def V6_vmpyhss_alt : HInst< 33302 (outs HvxVR:$Vd32), 33303 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33304 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat", 33305 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33306 let hasNewValue = 1; 33307 let opNewValue = 0; 33308 let isPseudo = 1; 33309 let isCodeGenOnly = 1; 33310 let DecoderNamespace = "EXT_mmvec"; 33311 } 33312 def V6_vmpyhus : HInst< 33313 (outs HvxWR:$Vdd32), 33314 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33315 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)", 33316 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33317 let Inst{7-5} = 0b010; 33318 let Inst{13-13} = 0b0; 33319 let Inst{31-21} = 0b00011100001; 33320 let hasNewValue = 1; 33321 let opNewValue = 0; 33322 let DecoderNamespace = "EXT_mmvec"; 33323 } 33324 def V6_vmpyhus_acc : HInst< 33325 (outs HvxWR:$Vxx32), 33326 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33327 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)", 33328 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33329 let Inst{7-5} = 0b001; 33330 let Inst{13-13} = 0b1; 33331 let Inst{31-21} = 0b00011100001; 33332 let hasNewValue = 1; 33333 let opNewValue = 0; 33334 let isAccumulator = 1; 33335 let DecoderNamespace = "EXT_mmvec"; 33336 let Constraints = "$Vxx32 = $Vxx32in"; 33337 } 33338 def V6_vmpyhus_acc_alt : HInst< 33339 (outs HvxWR:$Vxx32), 33340 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33341 "$Vxx32 += vmpyhus($Vu32,$Vv32)", 33342 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33343 let hasNewValue = 1; 33344 let opNewValue = 0; 33345 let isAccumulator = 1; 33346 let isPseudo = 1; 33347 let isCodeGenOnly = 1; 33348 let DecoderNamespace = "EXT_mmvec"; 33349 let Constraints = "$Vxx32 = $Vxx32in"; 33350 } 33351 def V6_vmpyhus_alt : HInst< 33352 (outs HvxWR:$Vdd32), 33353 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33354 "$Vdd32 = vmpyhus($Vu32,$Vv32)", 33355 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33356 let hasNewValue = 1; 33357 let opNewValue = 0; 33358 let isPseudo = 1; 33359 let isCodeGenOnly = 1; 33360 let DecoderNamespace = "EXT_mmvec"; 33361 } 33362 def V6_vmpyhv : HInst< 33363 (outs HvxWR:$Vdd32), 33364 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33365 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)", 33366 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33367 let Inst{7-5} = 0b111; 33368 let Inst{13-13} = 0b0; 33369 let Inst{31-21} = 0b00011100000; 33370 let hasNewValue = 1; 33371 let opNewValue = 0; 33372 let DecoderNamespace = "EXT_mmvec"; 33373 } 33374 def V6_vmpyhv_acc : HInst< 33375 (outs HvxWR:$Vxx32), 33376 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33377 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)", 33378 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33379 let Inst{7-5} = 0b111; 33380 let Inst{13-13} = 0b1; 33381 let Inst{31-21} = 0b00011100000; 33382 let hasNewValue = 1; 33383 let opNewValue = 0; 33384 let isAccumulator = 1; 33385 let DecoderNamespace = "EXT_mmvec"; 33386 let Constraints = "$Vxx32 = $Vxx32in"; 33387 } 33388 def V6_vmpyhv_acc_alt : HInst< 33389 (outs HvxWR:$Vxx32), 33390 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33391 "$Vxx32 += vmpyh($Vu32,$Vv32)", 33392 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33393 let hasNewValue = 1; 33394 let opNewValue = 0; 33395 let isAccumulator = 1; 33396 let isPseudo = 1; 33397 let isCodeGenOnly = 1; 33398 let DecoderNamespace = "EXT_mmvec"; 33399 let Constraints = "$Vxx32 = $Vxx32in"; 33400 } 33401 def V6_vmpyhv_alt : HInst< 33402 (outs HvxWR:$Vdd32), 33403 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33404 "$Vdd32 = vmpyh($Vu32,$Vv32)", 33405 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33406 let hasNewValue = 1; 33407 let opNewValue = 0; 33408 let isPseudo = 1; 33409 let isCodeGenOnly = 1; 33410 let DecoderNamespace = "EXT_mmvec"; 33411 } 33412 def V6_vmpyhvsrs : HInst< 33413 (outs HvxVR:$Vd32), 33414 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33415 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat", 33416 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33417 let Inst{7-5} = 0b001; 33418 let Inst{13-13} = 0b0; 33419 let Inst{31-21} = 0b00011100001; 33420 let hasNewValue = 1; 33421 let opNewValue = 0; 33422 let DecoderNamespace = "EXT_mmvec"; 33423 } 33424 def V6_vmpyhvsrs_alt : HInst< 33425 (outs HvxVR:$Vd32), 33426 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33427 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat", 33428 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33429 let hasNewValue = 1; 33430 let opNewValue = 0; 33431 let isPseudo = 1; 33432 let isCodeGenOnly = 1; 33433 let DecoderNamespace = "EXT_mmvec"; 33434 } 33435 def V6_vmpyieoh : HInst< 33436 (outs HvxVR:$Vd32), 33437 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33438 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)", 33439 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 33440 let Inst{7-5} = 0b000; 33441 let Inst{13-13} = 0b0; 33442 let Inst{31-21} = 0b00011111011; 33443 let hasNewValue = 1; 33444 let opNewValue = 0; 33445 let DecoderNamespace = "EXT_mmvec"; 33446 } 33447 def V6_vmpyiewh_acc : HInst< 33448 (outs HvxVR:$Vx32), 33449 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33450 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)", 33451 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33452 let Inst{7-5} = 0b000; 33453 let Inst{13-13} = 0b1; 33454 let Inst{31-21} = 0b00011100010; 33455 let hasNewValue = 1; 33456 let opNewValue = 0; 33457 let isAccumulator = 1; 33458 let DecoderNamespace = "EXT_mmvec"; 33459 let Constraints = "$Vx32 = $Vx32in"; 33460 } 33461 def V6_vmpyiewh_acc_alt : HInst< 33462 (outs HvxVR:$Vx32), 33463 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33464 "$Vx32 += vmpyiewh($Vu32,$Vv32)", 33465 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33466 let hasNewValue = 1; 33467 let opNewValue = 0; 33468 let isAccumulator = 1; 33469 let isPseudo = 1; 33470 let isCodeGenOnly = 1; 33471 let DecoderNamespace = "EXT_mmvec"; 33472 let Constraints = "$Vx32 = $Vx32in"; 33473 } 33474 def V6_vmpyiewuh : HInst< 33475 (outs HvxVR:$Vd32), 33476 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33477 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)", 33478 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33479 let Inst{7-5} = 0b000; 33480 let Inst{13-13} = 0b0; 33481 let Inst{31-21} = 0b00011111110; 33482 let hasNewValue = 1; 33483 let opNewValue = 0; 33484 let DecoderNamespace = "EXT_mmvec"; 33485 } 33486 def V6_vmpyiewuh_acc : HInst< 33487 (outs HvxVR:$Vx32), 33488 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33489 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)", 33490 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33491 let Inst{7-5} = 0b101; 33492 let Inst{13-13} = 0b1; 33493 let Inst{31-21} = 0b00011100001; 33494 let hasNewValue = 1; 33495 let opNewValue = 0; 33496 let isAccumulator = 1; 33497 let DecoderNamespace = "EXT_mmvec"; 33498 let Constraints = "$Vx32 = $Vx32in"; 33499 } 33500 def V6_vmpyiewuh_acc_alt : HInst< 33501 (outs HvxVR:$Vx32), 33502 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33503 "$Vx32 += vmpyiewuh($Vu32,$Vv32)", 33504 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33505 let hasNewValue = 1; 33506 let opNewValue = 0; 33507 let isAccumulator = 1; 33508 let isPseudo = 1; 33509 let isCodeGenOnly = 1; 33510 let DecoderNamespace = "EXT_mmvec"; 33511 let Constraints = "$Vx32 = $Vx32in"; 33512 } 33513 def V6_vmpyiewuh_alt : HInst< 33514 (outs HvxVR:$Vd32), 33515 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33516 "$Vd32 = vmpyiewuh($Vu32,$Vv32)", 33517 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33518 let hasNewValue = 1; 33519 let opNewValue = 0; 33520 let isPseudo = 1; 33521 let isCodeGenOnly = 1; 33522 let DecoderNamespace = "EXT_mmvec"; 33523 } 33524 def V6_vmpyih : HInst< 33525 (outs HvxVR:$Vd32), 33526 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33527 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)", 33528 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33529 let Inst{7-5} = 0b100; 33530 let Inst{13-13} = 0b0; 33531 let Inst{31-21} = 0b00011100001; 33532 let hasNewValue = 1; 33533 let opNewValue = 0; 33534 let DecoderNamespace = "EXT_mmvec"; 33535 } 33536 def V6_vmpyih_acc : HInst< 33537 (outs HvxVR:$Vx32), 33538 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33539 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)", 33540 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33541 let Inst{7-5} = 0b100; 33542 let Inst{13-13} = 0b1; 33543 let Inst{31-21} = 0b00011100001; 33544 let hasNewValue = 1; 33545 let opNewValue = 0; 33546 let isAccumulator = 1; 33547 let DecoderNamespace = "EXT_mmvec"; 33548 let Constraints = "$Vx32 = $Vx32in"; 33549 } 33550 def V6_vmpyih_acc_alt : HInst< 33551 (outs HvxVR:$Vx32), 33552 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33553 "$Vx32 += vmpyih($Vu32,$Vv32)", 33554 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33555 let hasNewValue = 1; 33556 let opNewValue = 0; 33557 let isAccumulator = 1; 33558 let isPseudo = 1; 33559 let isCodeGenOnly = 1; 33560 let DecoderNamespace = "EXT_mmvec"; 33561 let Constraints = "$Vx32 = $Vx32in"; 33562 } 33563 def V6_vmpyih_alt : HInst< 33564 (outs HvxVR:$Vd32), 33565 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33566 "$Vd32 = vmpyih($Vu32,$Vv32)", 33567 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33568 let hasNewValue = 1; 33569 let opNewValue = 0; 33570 let isPseudo = 1; 33571 let isCodeGenOnly = 1; 33572 let DecoderNamespace = "EXT_mmvec"; 33573 } 33574 def V6_vmpyihb : HInst< 33575 (outs HvxVR:$Vd32), 33576 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33577 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)", 33578 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 33579 let Inst{7-5} = 0b000; 33580 let Inst{13-13} = 0b0; 33581 let Inst{31-21} = 0b00011001011; 33582 let hasNewValue = 1; 33583 let opNewValue = 0; 33584 let DecoderNamespace = "EXT_mmvec"; 33585 } 33586 def V6_vmpyihb_acc : HInst< 33587 (outs HvxVR:$Vx32), 33588 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33589 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)", 33590 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 33591 let Inst{7-5} = 0b001; 33592 let Inst{13-13} = 0b1; 33593 let Inst{31-21} = 0b00011001011; 33594 let hasNewValue = 1; 33595 let opNewValue = 0; 33596 let isAccumulator = 1; 33597 let DecoderNamespace = "EXT_mmvec"; 33598 let Constraints = "$Vx32 = $Vx32in"; 33599 } 33600 def V6_vmpyihb_acc_alt : HInst< 33601 (outs HvxVR:$Vx32), 33602 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33603 "$Vx32 += vmpyihb($Vu32,$Rt32)", 33604 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33605 let hasNewValue = 1; 33606 let opNewValue = 0; 33607 let isAccumulator = 1; 33608 let isPseudo = 1; 33609 let isCodeGenOnly = 1; 33610 let DecoderNamespace = "EXT_mmvec"; 33611 let Constraints = "$Vx32 = $Vx32in"; 33612 } 33613 def V6_vmpyihb_alt : HInst< 33614 (outs HvxVR:$Vd32), 33615 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33616 "$Vd32 = vmpyihb($Vu32,$Rt32)", 33617 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33618 let hasNewValue = 1; 33619 let opNewValue = 0; 33620 let isPseudo = 1; 33621 let isCodeGenOnly = 1; 33622 let DecoderNamespace = "EXT_mmvec"; 33623 } 33624 def V6_vmpyiowh : HInst< 33625 (outs HvxVR:$Vd32), 33626 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33627 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)", 33628 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33629 let Inst{7-5} = 0b001; 33630 let Inst{13-13} = 0b0; 33631 let Inst{31-21} = 0b00011111110; 33632 let hasNewValue = 1; 33633 let opNewValue = 0; 33634 let DecoderNamespace = "EXT_mmvec"; 33635 } 33636 def V6_vmpyiowh_alt : HInst< 33637 (outs HvxVR:$Vd32), 33638 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33639 "$Vd32 = vmpyiowh($Vu32,$Vv32)", 33640 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33641 let hasNewValue = 1; 33642 let opNewValue = 0; 33643 let isPseudo = 1; 33644 let isCodeGenOnly = 1; 33645 let DecoderNamespace = "EXT_mmvec"; 33646 } 33647 def V6_vmpyiwb : HInst< 33648 (outs HvxVR:$Vd32), 33649 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33650 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)", 33651 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 33652 let Inst{7-5} = 0b000; 33653 let Inst{13-13} = 0b0; 33654 let Inst{31-21} = 0b00011001101; 33655 let hasNewValue = 1; 33656 let opNewValue = 0; 33657 let DecoderNamespace = "EXT_mmvec"; 33658 } 33659 def V6_vmpyiwb_acc : HInst< 33660 (outs HvxVR:$Vx32), 33661 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33662 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)", 33663 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 33664 let Inst{7-5} = 0b010; 33665 let Inst{13-13} = 0b1; 33666 let Inst{31-21} = 0b00011001010; 33667 let hasNewValue = 1; 33668 let opNewValue = 0; 33669 let isAccumulator = 1; 33670 let DecoderNamespace = "EXT_mmvec"; 33671 let Constraints = "$Vx32 = $Vx32in"; 33672 } 33673 def V6_vmpyiwb_acc_alt : HInst< 33674 (outs HvxVR:$Vx32), 33675 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33676 "$Vx32 += vmpyiwb($Vu32,$Rt32)", 33677 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33678 let hasNewValue = 1; 33679 let opNewValue = 0; 33680 let isAccumulator = 1; 33681 let isPseudo = 1; 33682 let isCodeGenOnly = 1; 33683 let DecoderNamespace = "EXT_mmvec"; 33684 let Constraints = "$Vx32 = $Vx32in"; 33685 } 33686 def V6_vmpyiwb_alt : HInst< 33687 (outs HvxVR:$Vd32), 33688 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33689 "$Vd32 = vmpyiwb($Vu32,$Rt32)", 33690 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33691 let hasNewValue = 1; 33692 let opNewValue = 0; 33693 let isPseudo = 1; 33694 let isCodeGenOnly = 1; 33695 let DecoderNamespace = "EXT_mmvec"; 33696 } 33697 def V6_vmpyiwh : HInst< 33698 (outs HvxVR:$Vd32), 33699 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33700 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)", 33701 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 33702 let Inst{7-5} = 0b111; 33703 let Inst{13-13} = 0b0; 33704 let Inst{31-21} = 0b00011001100; 33705 let hasNewValue = 1; 33706 let opNewValue = 0; 33707 let DecoderNamespace = "EXT_mmvec"; 33708 } 33709 def V6_vmpyiwh_acc : HInst< 33710 (outs HvxVR:$Vx32), 33711 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33712 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)", 33713 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 33714 let Inst{7-5} = 0b011; 33715 let Inst{13-13} = 0b1; 33716 let Inst{31-21} = 0b00011001010; 33717 let hasNewValue = 1; 33718 let opNewValue = 0; 33719 let isAccumulator = 1; 33720 let DecoderNamespace = "EXT_mmvec"; 33721 let Constraints = "$Vx32 = $Vx32in"; 33722 } 33723 def V6_vmpyiwh_acc_alt : HInst< 33724 (outs HvxVR:$Vx32), 33725 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33726 "$Vx32 += vmpyiwh($Vu32,$Rt32)", 33727 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33728 let hasNewValue = 1; 33729 let opNewValue = 0; 33730 let isAccumulator = 1; 33731 let isPseudo = 1; 33732 let isCodeGenOnly = 1; 33733 let DecoderNamespace = "EXT_mmvec"; 33734 let Constraints = "$Vx32 = $Vx32in"; 33735 } 33736 def V6_vmpyiwh_alt : HInst< 33737 (outs HvxVR:$Vd32), 33738 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33739 "$Vd32 = vmpyiwh($Vu32,$Rt32)", 33740 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33741 let hasNewValue = 1; 33742 let opNewValue = 0; 33743 let isPseudo = 1; 33744 let isCodeGenOnly = 1; 33745 let DecoderNamespace = "EXT_mmvec"; 33746 } 33747 def V6_vmpyiwub : HInst< 33748 (outs HvxVR:$Vd32), 33749 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33750 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)", 33751 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> { 33752 let Inst{7-5} = 0b110; 33753 let Inst{13-13} = 0b0; 33754 let Inst{31-21} = 0b00011001100; 33755 let hasNewValue = 1; 33756 let opNewValue = 0; 33757 let DecoderNamespace = "EXT_mmvec"; 33758 } 33759 def V6_vmpyiwub_acc : HInst< 33760 (outs HvxVR:$Vx32), 33761 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33762 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)", 33763 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> { 33764 let Inst{7-5} = 0b001; 33765 let Inst{13-13} = 0b1; 33766 let Inst{31-21} = 0b00011001100; 33767 let hasNewValue = 1; 33768 let opNewValue = 0; 33769 let isAccumulator = 1; 33770 let DecoderNamespace = "EXT_mmvec"; 33771 let Constraints = "$Vx32 = $Vx32in"; 33772 } 33773 def V6_vmpyiwub_acc_alt : HInst< 33774 (outs HvxVR:$Vx32), 33775 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33776 "$Vx32 += vmpyiwub($Vu32,$Rt32)", 33777 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33778 let hasNewValue = 1; 33779 let opNewValue = 0; 33780 let isAccumulator = 1; 33781 let isPseudo = 1; 33782 let isCodeGenOnly = 1; 33783 let DecoderNamespace = "EXT_mmvec"; 33784 let Constraints = "$Vx32 = $Vx32in"; 33785 } 33786 def V6_vmpyiwub_alt : HInst< 33787 (outs HvxVR:$Vd32), 33788 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33789 "$Vd32 = vmpyiwub($Vu32,$Rt32)", 33790 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33791 let hasNewValue = 1; 33792 let opNewValue = 0; 33793 let isPseudo = 1; 33794 let isCodeGenOnly = 1; 33795 let DecoderNamespace = "EXT_mmvec"; 33796 } 33797 def V6_vmpyowh : HInst< 33798 (outs HvxVR:$Vd32), 33799 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33800 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat", 33801 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33802 let Inst{7-5} = 0b111; 33803 let Inst{13-13} = 0b0; 33804 let Inst{31-21} = 0b00011111111; 33805 let hasNewValue = 1; 33806 let opNewValue = 0; 33807 let DecoderNamespace = "EXT_mmvec"; 33808 } 33809 def V6_vmpyowh_64_acc : HInst< 33810 (outs HvxWR:$Vxx32), 33811 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33812 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)", 33813 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 33814 let Inst{7-5} = 0b011; 33815 let Inst{13-13} = 0b1; 33816 let Inst{31-21} = 0b00011100001; 33817 let hasNewValue = 1; 33818 let opNewValue = 0; 33819 let isAccumulator = 1; 33820 let DecoderNamespace = "EXT_mmvec"; 33821 let Constraints = "$Vxx32 = $Vxx32in"; 33822 } 33823 def V6_vmpyowh_alt : HInst< 33824 (outs HvxVR:$Vd32), 33825 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33826 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat", 33827 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33828 let hasNewValue = 1; 33829 let opNewValue = 0; 33830 let isPseudo = 1; 33831 let isCodeGenOnly = 1; 33832 let DecoderNamespace = "EXT_mmvec"; 33833 } 33834 def V6_vmpyowh_rnd : HInst< 33835 (outs HvxVR:$Vd32), 33836 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33837 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat", 33838 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 33839 let Inst{7-5} = 0b000; 33840 let Inst{13-13} = 0b0; 33841 let Inst{31-21} = 0b00011111010; 33842 let hasNewValue = 1; 33843 let opNewValue = 0; 33844 let DecoderNamespace = "EXT_mmvec"; 33845 } 33846 def V6_vmpyowh_rnd_alt : HInst< 33847 (outs HvxVR:$Vd32), 33848 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33849 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat", 33850 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33851 let hasNewValue = 1; 33852 let opNewValue = 0; 33853 let isPseudo = 1; 33854 let isCodeGenOnly = 1; 33855 let DecoderNamespace = "EXT_mmvec"; 33856 } 33857 def V6_vmpyowh_rnd_sacc : HInst< 33858 (outs HvxVR:$Vx32), 33859 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33860 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift", 33861 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33862 let Inst{7-5} = 0b111; 33863 let Inst{13-13} = 0b1; 33864 let Inst{31-21} = 0b00011100001; 33865 let hasNewValue = 1; 33866 let opNewValue = 0; 33867 let isAccumulator = 1; 33868 let DecoderNamespace = "EXT_mmvec"; 33869 let Constraints = "$Vx32 = $Vx32in"; 33870 } 33871 def V6_vmpyowh_rnd_sacc_alt : HInst< 33872 (outs HvxVR:$Vx32), 33873 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33874 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift", 33875 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33876 let hasNewValue = 1; 33877 let opNewValue = 0; 33878 let isAccumulator = 1; 33879 let isPseudo = 1; 33880 let DecoderNamespace = "EXT_mmvec"; 33881 let Constraints = "$Vx32 = $Vx32in"; 33882 } 33883 def V6_vmpyowh_sacc : HInst< 33884 (outs HvxVR:$Vx32), 33885 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33886 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift", 33887 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33888 let Inst{7-5} = 0b110; 33889 let Inst{13-13} = 0b1; 33890 let Inst{31-21} = 0b00011100001; 33891 let hasNewValue = 1; 33892 let opNewValue = 0; 33893 let isAccumulator = 1; 33894 let DecoderNamespace = "EXT_mmvec"; 33895 let Constraints = "$Vx32 = $Vx32in"; 33896 } 33897 def V6_vmpyowh_sacc_alt : HInst< 33898 (outs HvxVR:$Vx32), 33899 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33900 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift", 33901 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33902 let hasNewValue = 1; 33903 let opNewValue = 0; 33904 let isAccumulator = 1; 33905 let isPseudo = 1; 33906 let DecoderNamespace = "EXT_mmvec"; 33907 let Constraints = "$Vx32 = $Vx32in"; 33908 } 33909 def V6_vmpyub : HInst< 33910 (outs HvxWR:$Vdd32), 33911 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33912 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)", 33913 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 33914 let Inst{7-5} = 0b000; 33915 let Inst{13-13} = 0b0; 33916 let Inst{31-21} = 0b00011001110; 33917 let hasNewValue = 1; 33918 let opNewValue = 0; 33919 let DecoderNamespace = "EXT_mmvec"; 33920 } 33921 def V6_vmpyub_acc : HInst< 33922 (outs HvxWR:$Vxx32), 33923 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33924 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)", 33925 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 33926 let Inst{7-5} = 0b000; 33927 let Inst{13-13} = 0b1; 33928 let Inst{31-21} = 0b00011001100; 33929 let hasNewValue = 1; 33930 let opNewValue = 0; 33931 let isAccumulator = 1; 33932 let DecoderNamespace = "EXT_mmvec"; 33933 let Constraints = "$Vxx32 = $Vxx32in"; 33934 } 33935 def V6_vmpyub_acc_alt : HInst< 33936 (outs HvxWR:$Vxx32), 33937 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33938 "$Vxx32 += vmpyub($Vu32,$Rt32)", 33939 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33940 let hasNewValue = 1; 33941 let opNewValue = 0; 33942 let isAccumulator = 1; 33943 let isPseudo = 1; 33944 let isCodeGenOnly = 1; 33945 let DecoderNamespace = "EXT_mmvec"; 33946 let Constraints = "$Vxx32 = $Vxx32in"; 33947 } 33948 def V6_vmpyub_alt : HInst< 33949 (outs HvxWR:$Vdd32), 33950 (ins HvxVR:$Vu32, IntRegs:$Rt32), 33951 "$Vdd32 = vmpyub($Vu32,$Rt32)", 33952 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33953 let hasNewValue = 1; 33954 let opNewValue = 0; 33955 let isPseudo = 1; 33956 let isCodeGenOnly = 1; 33957 let DecoderNamespace = "EXT_mmvec"; 33958 } 33959 def V6_vmpyubv : HInst< 33960 (outs HvxWR:$Vdd32), 33961 (ins HvxVR:$Vu32, HvxVR:$Vv32), 33962 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)", 33963 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33964 let Inst{7-5} = 0b101; 33965 let Inst{13-13} = 0b0; 33966 let Inst{31-21} = 0b00011100000; 33967 let hasNewValue = 1; 33968 let opNewValue = 0; 33969 let DecoderNamespace = "EXT_mmvec"; 33970 } 33971 def V6_vmpyubv_acc : HInst< 33972 (outs HvxWR:$Vxx32), 33973 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33974 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)", 33975 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33976 let Inst{7-5} = 0b101; 33977 let Inst{13-13} = 0b1; 33978 let Inst{31-21} = 0b00011100000; 33979 let hasNewValue = 1; 33980 let opNewValue = 0; 33981 let isAccumulator = 1; 33982 let DecoderNamespace = "EXT_mmvec"; 33983 let Constraints = "$Vxx32 = $Vxx32in"; 33984 } 33985 def V6_vmpyubv_acc_alt : HInst< 33986 (outs HvxWR:$Vxx32), 33987 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33988 "$Vxx32 += vmpyub($Vu32,$Vv32)", 33989 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33990 let hasNewValue = 1; 33991 let opNewValue = 0; 33992 let isAccumulator = 1; 33993 let isPseudo = 1; 33994 let isCodeGenOnly = 1; 33995 let DecoderNamespace = "EXT_mmvec"; 33996 let Constraints = "$Vxx32 = $Vxx32in"; 33997 } 33998 def V6_vmpyubv_alt : HInst< 33999 (outs HvxWR:$Vdd32), 34000 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34001 "$Vdd32 = vmpyub($Vu32,$Vv32)", 34002 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34003 let hasNewValue = 1; 34004 let opNewValue = 0; 34005 let isPseudo = 1; 34006 let isCodeGenOnly = 1; 34007 let DecoderNamespace = "EXT_mmvec"; 34008 } 34009 def V6_vmpyuh : HInst< 34010 (outs HvxWR:$Vdd32), 34011 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34012 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)", 34013 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 34014 let Inst{7-5} = 0b011; 34015 let Inst{13-13} = 0b0; 34016 let Inst{31-21} = 0b00011001010; 34017 let hasNewValue = 1; 34018 let opNewValue = 0; 34019 let DecoderNamespace = "EXT_mmvec"; 34020 } 34021 def V6_vmpyuh_acc : HInst< 34022 (outs HvxWR:$Vxx32), 34023 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34024 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)", 34025 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 34026 let Inst{7-5} = 0b001; 34027 let Inst{13-13} = 0b1; 34028 let Inst{31-21} = 0b00011001010; 34029 let hasNewValue = 1; 34030 let opNewValue = 0; 34031 let isAccumulator = 1; 34032 let DecoderNamespace = "EXT_mmvec"; 34033 let Constraints = "$Vxx32 = $Vxx32in"; 34034 } 34035 def V6_vmpyuh_acc_alt : HInst< 34036 (outs HvxWR:$Vxx32), 34037 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34038 "$Vxx32 += vmpyuh($Vu32,$Rt32)", 34039 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34040 let hasNewValue = 1; 34041 let opNewValue = 0; 34042 let isAccumulator = 1; 34043 let isPseudo = 1; 34044 let isCodeGenOnly = 1; 34045 let DecoderNamespace = "EXT_mmvec"; 34046 let Constraints = "$Vxx32 = $Vxx32in"; 34047 } 34048 def V6_vmpyuh_alt : HInst< 34049 (outs HvxWR:$Vdd32), 34050 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34051 "$Vdd32 = vmpyuh($Vu32,$Rt32)", 34052 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34053 let hasNewValue = 1; 34054 let opNewValue = 0; 34055 let isPseudo = 1; 34056 let isCodeGenOnly = 1; 34057 let DecoderNamespace = "EXT_mmvec"; 34058 } 34059 def V6_vmpyuhe : HInst< 34060 (outs HvxVR:$Vd32), 34061 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34062 "$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)", 34063 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> { 34064 let Inst{7-5} = 0b010; 34065 let Inst{13-13} = 0b0; 34066 let Inst{31-21} = 0b00011001011; 34067 let hasNewValue = 1; 34068 let opNewValue = 0; 34069 let DecoderNamespace = "EXT_mmvec"; 34070 } 34071 def V6_vmpyuhe_acc : HInst< 34072 (outs HvxVR:$Vx32), 34073 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34074 "$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)", 34075 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> { 34076 let Inst{7-5} = 0b011; 34077 let Inst{13-13} = 0b1; 34078 let Inst{31-21} = 0b00011001100; 34079 let hasNewValue = 1; 34080 let opNewValue = 0; 34081 let isAccumulator = 1; 34082 let DecoderNamespace = "EXT_mmvec"; 34083 let Constraints = "$Vx32 = $Vx32in"; 34084 } 34085 def V6_vmpyuhv : HInst< 34086 (outs HvxWR:$Vdd32), 34087 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34088 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)", 34089 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34090 let Inst{7-5} = 0b000; 34091 let Inst{13-13} = 0b0; 34092 let Inst{31-21} = 0b00011100001; 34093 let hasNewValue = 1; 34094 let opNewValue = 0; 34095 let DecoderNamespace = "EXT_mmvec"; 34096 } 34097 def V6_vmpyuhv_acc : HInst< 34098 (outs HvxWR:$Vxx32), 34099 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34100 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)", 34101 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34102 let Inst{7-5} = 0b000; 34103 let Inst{13-13} = 0b1; 34104 let Inst{31-21} = 0b00011100001; 34105 let hasNewValue = 1; 34106 let opNewValue = 0; 34107 let isAccumulator = 1; 34108 let DecoderNamespace = "EXT_mmvec"; 34109 let Constraints = "$Vxx32 = $Vxx32in"; 34110 } 34111 def V6_vmpyuhv_acc_alt : HInst< 34112 (outs HvxWR:$Vxx32), 34113 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34114 "$Vxx32 += vmpyuh($Vu32,$Vv32)", 34115 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34116 let hasNewValue = 1; 34117 let opNewValue = 0; 34118 let isAccumulator = 1; 34119 let isPseudo = 1; 34120 let isCodeGenOnly = 1; 34121 let DecoderNamespace = "EXT_mmvec"; 34122 let Constraints = "$Vxx32 = $Vxx32in"; 34123 } 34124 def V6_vmpyuhv_alt : HInst< 34125 (outs HvxWR:$Vdd32), 34126 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34127 "$Vdd32 = vmpyuh($Vu32,$Vv32)", 34128 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34129 let hasNewValue = 1; 34130 let opNewValue = 0; 34131 let isPseudo = 1; 34132 let isCodeGenOnly = 1; 34133 let DecoderNamespace = "EXT_mmvec"; 34134 } 34135 def V6_vmux : HInst< 34136 (outs HvxVR:$Vd32), 34137 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 34138 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)", 34139 tc_a3127e12, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> { 34140 let Inst{7-7} = 0b0; 34141 let Inst{13-13} = 0b1; 34142 let Inst{31-21} = 0b00011110111; 34143 let hasNewValue = 1; 34144 let opNewValue = 0; 34145 let DecoderNamespace = "EXT_mmvec"; 34146 } 34147 def V6_vnavgb : HInst< 34148 (outs HvxVR:$Vd32), 34149 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34150 "$Vd32.b = vnavg($Vu32.b,$Vv32.b)", 34151 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 34152 let Inst{7-5} = 0b110; 34153 let Inst{13-13} = 0b1; 34154 let Inst{31-21} = 0b00011111000; 34155 let hasNewValue = 1; 34156 let opNewValue = 0; 34157 let DecoderNamespace = "EXT_mmvec"; 34158 } 34159 def V6_vnavgb_alt : HInst< 34160 (outs HvxVR:$Vd32), 34161 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34162 "$Vd32 = vnavgb($Vu32,$Vv32)", 34163 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34164 let hasNewValue = 1; 34165 let opNewValue = 0; 34166 let isPseudo = 1; 34167 let isCodeGenOnly = 1; 34168 let DecoderNamespace = "EXT_mmvec"; 34169 } 34170 def V6_vnavgh : HInst< 34171 (outs HvxVR:$Vd32), 34172 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34173 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)", 34174 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34175 let Inst{7-5} = 0b001; 34176 let Inst{13-13} = 0b0; 34177 let Inst{31-21} = 0b00011100111; 34178 let hasNewValue = 1; 34179 let opNewValue = 0; 34180 let DecoderNamespace = "EXT_mmvec"; 34181 } 34182 def V6_vnavgh_alt : HInst< 34183 (outs HvxVR:$Vd32), 34184 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34185 "$Vd32 = vnavgh($Vu32,$Vv32)", 34186 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34187 let hasNewValue = 1; 34188 let opNewValue = 0; 34189 let isPseudo = 1; 34190 let isCodeGenOnly = 1; 34191 let DecoderNamespace = "EXT_mmvec"; 34192 } 34193 def V6_vnavgub : HInst< 34194 (outs HvxVR:$Vd32), 34195 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34196 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)", 34197 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34198 let Inst{7-5} = 0b000; 34199 let Inst{13-13} = 0b0; 34200 let Inst{31-21} = 0b00011100111; 34201 let hasNewValue = 1; 34202 let opNewValue = 0; 34203 let DecoderNamespace = "EXT_mmvec"; 34204 } 34205 def V6_vnavgub_alt : HInst< 34206 (outs HvxVR:$Vd32), 34207 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34208 "$Vd32 = vnavgub($Vu32,$Vv32)", 34209 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34210 let hasNewValue = 1; 34211 let opNewValue = 0; 34212 let isPseudo = 1; 34213 let isCodeGenOnly = 1; 34214 let DecoderNamespace = "EXT_mmvec"; 34215 } 34216 def V6_vnavgw : HInst< 34217 (outs HvxVR:$Vd32), 34218 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34219 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)", 34220 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34221 let Inst{7-5} = 0b010; 34222 let Inst{13-13} = 0b0; 34223 let Inst{31-21} = 0b00011100111; 34224 let hasNewValue = 1; 34225 let opNewValue = 0; 34226 let DecoderNamespace = "EXT_mmvec"; 34227 } 34228 def V6_vnavgw_alt : HInst< 34229 (outs HvxVR:$Vd32), 34230 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34231 "$Vd32 = vnavgw($Vu32,$Vv32)", 34232 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34233 let hasNewValue = 1; 34234 let opNewValue = 0; 34235 let isPseudo = 1; 34236 let isCodeGenOnly = 1; 34237 let DecoderNamespace = "EXT_mmvec"; 34238 } 34239 def V6_vnccombine : HInst< 34240 (outs HvxWR:$Vdd32), 34241 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 34242 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 34243 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 34244 let Inst{7-7} = 0b0; 34245 let Inst{13-13} = 0b0; 34246 let Inst{31-21} = 0b00011010010; 34247 let isPredicated = 1; 34248 let isPredicatedFalse = 1; 34249 let hasNewValue = 1; 34250 let opNewValue = 0; 34251 let DecoderNamespace = "EXT_mmvec"; 34252 } 34253 def V6_vncmov : HInst< 34254 (outs HvxVR:$Vd32), 34255 (ins PredRegs:$Ps4, HvxVR:$Vu32), 34256 "if (!$Ps4) $Vd32 = $Vu32", 34257 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 34258 let Inst{7-7} = 0b0; 34259 let Inst{13-13} = 0b0; 34260 let Inst{31-16} = 0b0001101000100000; 34261 let isPredicated = 1; 34262 let isPredicatedFalse = 1; 34263 let hasNewValue = 1; 34264 let opNewValue = 0; 34265 let DecoderNamespace = "EXT_mmvec"; 34266 } 34267 def V6_vnormamth : HInst< 34268 (outs HvxVR:$Vd32), 34269 (ins HvxVR:$Vu32), 34270 "$Vd32.h = vnormamt($Vu32.h)", 34271 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 34272 let Inst{7-5} = 0b101; 34273 let Inst{13-13} = 0b0; 34274 let Inst{31-16} = 0b0001111000000011; 34275 let hasNewValue = 1; 34276 let opNewValue = 0; 34277 let DecoderNamespace = "EXT_mmvec"; 34278 } 34279 def V6_vnormamth_alt : HInst< 34280 (outs HvxVR:$Vd32), 34281 (ins HvxVR:$Vu32), 34282 "$Vd32 = vnormamth($Vu32)", 34283 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34284 let hasNewValue = 1; 34285 let opNewValue = 0; 34286 let isPseudo = 1; 34287 let isCodeGenOnly = 1; 34288 let DecoderNamespace = "EXT_mmvec"; 34289 } 34290 def V6_vnormamtw : HInst< 34291 (outs HvxVR:$Vd32), 34292 (ins HvxVR:$Vu32), 34293 "$Vd32.w = vnormamt($Vu32.w)", 34294 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 34295 let Inst{7-5} = 0b100; 34296 let Inst{13-13} = 0b0; 34297 let Inst{31-16} = 0b0001111000000011; 34298 let hasNewValue = 1; 34299 let opNewValue = 0; 34300 let DecoderNamespace = "EXT_mmvec"; 34301 } 34302 def V6_vnormamtw_alt : HInst< 34303 (outs HvxVR:$Vd32), 34304 (ins HvxVR:$Vu32), 34305 "$Vd32 = vnormamtw($Vu32)", 34306 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34307 let hasNewValue = 1; 34308 let opNewValue = 0; 34309 let isPseudo = 1; 34310 let isCodeGenOnly = 1; 34311 let DecoderNamespace = "EXT_mmvec"; 34312 } 34313 def V6_vnot : HInst< 34314 (outs HvxVR:$Vd32), 34315 (ins HvxVR:$Vu32), 34316 "$Vd32 = vnot($Vu32)", 34317 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 34318 let Inst{7-5} = 0b100; 34319 let Inst{13-13} = 0b0; 34320 let Inst{31-16} = 0b0001111000000000; 34321 let hasNewValue = 1; 34322 let opNewValue = 0; 34323 let DecoderNamespace = "EXT_mmvec"; 34324 } 34325 def V6_vor : HInst< 34326 (outs HvxVR:$Vd32), 34327 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34328 "$Vd32 = vor($Vu32,$Vv32)", 34329 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34330 let Inst{7-5} = 0b110; 34331 let Inst{13-13} = 0b0; 34332 let Inst{31-21} = 0b00011100001; 34333 let hasNewValue = 1; 34334 let opNewValue = 0; 34335 let DecoderNamespace = "EXT_mmvec"; 34336 } 34337 def V6_vpackeb : HInst< 34338 (outs HvxVR:$Vd32), 34339 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34340 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)", 34341 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34342 let Inst{7-5} = 0b010; 34343 let Inst{13-13} = 0b0; 34344 let Inst{31-21} = 0b00011111110; 34345 let hasNewValue = 1; 34346 let opNewValue = 0; 34347 let DecoderNamespace = "EXT_mmvec"; 34348 } 34349 def V6_vpackeb_alt : HInst< 34350 (outs HvxVR:$Vd32), 34351 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34352 "$Vd32 = vpackeb($Vu32,$Vv32)", 34353 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34354 let hasNewValue = 1; 34355 let opNewValue = 0; 34356 let isPseudo = 1; 34357 let isCodeGenOnly = 1; 34358 let DecoderNamespace = "EXT_mmvec"; 34359 } 34360 def V6_vpackeh : HInst< 34361 (outs HvxVR:$Vd32), 34362 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34363 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)", 34364 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34365 let Inst{7-5} = 0b011; 34366 let Inst{13-13} = 0b0; 34367 let Inst{31-21} = 0b00011111110; 34368 let hasNewValue = 1; 34369 let opNewValue = 0; 34370 let DecoderNamespace = "EXT_mmvec"; 34371 } 34372 def V6_vpackeh_alt : HInst< 34373 (outs HvxVR:$Vd32), 34374 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34375 "$Vd32 = vpackeh($Vu32,$Vv32)", 34376 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34377 let hasNewValue = 1; 34378 let opNewValue = 0; 34379 let isPseudo = 1; 34380 let isCodeGenOnly = 1; 34381 let DecoderNamespace = "EXT_mmvec"; 34382 } 34383 def V6_vpackhb_sat : HInst< 34384 (outs HvxVR:$Vd32), 34385 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34386 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat", 34387 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34388 let Inst{7-5} = 0b110; 34389 let Inst{13-13} = 0b0; 34390 let Inst{31-21} = 0b00011111110; 34391 let hasNewValue = 1; 34392 let opNewValue = 0; 34393 let DecoderNamespace = "EXT_mmvec"; 34394 } 34395 def V6_vpackhb_sat_alt : HInst< 34396 (outs HvxVR:$Vd32), 34397 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34398 "$Vd32 = vpackhb($Vu32,$Vv32):sat", 34399 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34400 let hasNewValue = 1; 34401 let opNewValue = 0; 34402 let isPseudo = 1; 34403 let isCodeGenOnly = 1; 34404 let DecoderNamespace = "EXT_mmvec"; 34405 } 34406 def V6_vpackhub_sat : HInst< 34407 (outs HvxVR:$Vd32), 34408 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34409 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat", 34410 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34411 let Inst{7-5} = 0b101; 34412 let Inst{13-13} = 0b0; 34413 let Inst{31-21} = 0b00011111110; 34414 let hasNewValue = 1; 34415 let opNewValue = 0; 34416 let DecoderNamespace = "EXT_mmvec"; 34417 } 34418 def V6_vpackhub_sat_alt : HInst< 34419 (outs HvxVR:$Vd32), 34420 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34421 "$Vd32 = vpackhub($Vu32,$Vv32):sat", 34422 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34423 let hasNewValue = 1; 34424 let opNewValue = 0; 34425 let isPseudo = 1; 34426 let isCodeGenOnly = 1; 34427 let DecoderNamespace = "EXT_mmvec"; 34428 } 34429 def V6_vpackob : HInst< 34430 (outs HvxVR:$Vd32), 34431 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34432 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)", 34433 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34434 let Inst{7-5} = 0b001; 34435 let Inst{13-13} = 0b0; 34436 let Inst{31-21} = 0b00011111111; 34437 let hasNewValue = 1; 34438 let opNewValue = 0; 34439 let DecoderNamespace = "EXT_mmvec"; 34440 } 34441 def V6_vpackob_alt : HInst< 34442 (outs HvxVR:$Vd32), 34443 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34444 "$Vd32 = vpackob($Vu32,$Vv32)", 34445 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34446 let hasNewValue = 1; 34447 let opNewValue = 0; 34448 let isPseudo = 1; 34449 let isCodeGenOnly = 1; 34450 let DecoderNamespace = "EXT_mmvec"; 34451 } 34452 def V6_vpackoh : HInst< 34453 (outs HvxVR:$Vd32), 34454 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34455 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)", 34456 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34457 let Inst{7-5} = 0b010; 34458 let Inst{13-13} = 0b0; 34459 let Inst{31-21} = 0b00011111111; 34460 let hasNewValue = 1; 34461 let opNewValue = 0; 34462 let DecoderNamespace = "EXT_mmvec"; 34463 } 34464 def V6_vpackoh_alt : HInst< 34465 (outs HvxVR:$Vd32), 34466 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34467 "$Vd32 = vpackoh($Vu32,$Vv32)", 34468 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34469 let hasNewValue = 1; 34470 let opNewValue = 0; 34471 let isPseudo = 1; 34472 let isCodeGenOnly = 1; 34473 let DecoderNamespace = "EXT_mmvec"; 34474 } 34475 def V6_vpackwh_sat : HInst< 34476 (outs HvxVR:$Vd32), 34477 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34478 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat", 34479 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34480 let Inst{7-5} = 0b000; 34481 let Inst{13-13} = 0b0; 34482 let Inst{31-21} = 0b00011111111; 34483 let hasNewValue = 1; 34484 let opNewValue = 0; 34485 let DecoderNamespace = "EXT_mmvec"; 34486 } 34487 def V6_vpackwh_sat_alt : HInst< 34488 (outs HvxVR:$Vd32), 34489 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34490 "$Vd32 = vpackwh($Vu32,$Vv32):sat", 34491 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34492 let hasNewValue = 1; 34493 let opNewValue = 0; 34494 let isPseudo = 1; 34495 let isCodeGenOnly = 1; 34496 let DecoderNamespace = "EXT_mmvec"; 34497 } 34498 def V6_vpackwuh_sat : HInst< 34499 (outs HvxVR:$Vd32), 34500 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34501 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat", 34502 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34503 let Inst{7-5} = 0b111; 34504 let Inst{13-13} = 0b0; 34505 let Inst{31-21} = 0b00011111110; 34506 let hasNewValue = 1; 34507 let opNewValue = 0; 34508 let DecoderNamespace = "EXT_mmvec"; 34509 } 34510 def V6_vpackwuh_sat_alt : HInst< 34511 (outs HvxVR:$Vd32), 34512 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34513 "$Vd32 = vpackwuh($Vu32,$Vv32):sat", 34514 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34515 let hasNewValue = 1; 34516 let opNewValue = 0; 34517 let isPseudo = 1; 34518 let isCodeGenOnly = 1; 34519 let DecoderNamespace = "EXT_mmvec"; 34520 } 34521 def V6_vpopcounth : HInst< 34522 (outs HvxVR:$Vd32), 34523 (ins HvxVR:$Vu32), 34524 "$Vd32.h = vpopcount($Vu32.h)", 34525 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 34526 let Inst{7-5} = 0b110; 34527 let Inst{13-13} = 0b0; 34528 let Inst{31-16} = 0b0001111000000010; 34529 let hasNewValue = 1; 34530 let opNewValue = 0; 34531 let DecoderNamespace = "EXT_mmvec"; 34532 } 34533 def V6_vpopcounth_alt : HInst< 34534 (outs HvxVR:$Vd32), 34535 (ins HvxVR:$Vu32), 34536 "$Vd32 = vpopcounth($Vu32)", 34537 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34538 let hasNewValue = 1; 34539 let opNewValue = 0; 34540 let isPseudo = 1; 34541 let isCodeGenOnly = 1; 34542 let DecoderNamespace = "EXT_mmvec"; 34543 } 34544 def V6_vprefixqb : HInst< 34545 (outs HvxVR:$Vd32), 34546 (ins HvxQR:$Qv4), 34547 "$Vd32.b = prefixsum($Qv4)", 34548 tc_d2cb81ea, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 34549 let Inst{13-5} = 0b100000010; 34550 let Inst{21-16} = 0b000011; 34551 let Inst{31-24} = 0b00011110; 34552 let hasNewValue = 1; 34553 let opNewValue = 0; 34554 let DecoderNamespace = "EXT_mmvec"; 34555 } 34556 def V6_vprefixqh : HInst< 34557 (outs HvxVR:$Vd32), 34558 (ins HvxQR:$Qv4), 34559 "$Vd32.h = prefixsum($Qv4)", 34560 tc_d2cb81ea, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 34561 let Inst{13-5} = 0b100001010; 34562 let Inst{21-16} = 0b000011; 34563 let Inst{31-24} = 0b00011110; 34564 let hasNewValue = 1; 34565 let opNewValue = 0; 34566 let DecoderNamespace = "EXT_mmvec"; 34567 } 34568 def V6_vprefixqw : HInst< 34569 (outs HvxVR:$Vd32), 34570 (ins HvxQR:$Qv4), 34571 "$Vd32.w = prefixsum($Qv4)", 34572 tc_d2cb81ea, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 34573 let Inst{13-5} = 0b100010010; 34574 let Inst{21-16} = 0b000011; 34575 let Inst{31-24} = 0b00011110; 34576 let hasNewValue = 1; 34577 let opNewValue = 0; 34578 let DecoderNamespace = "EXT_mmvec"; 34579 } 34580 def V6_vrdelta : HInst< 34581 (outs HvxVR:$Vd32), 34582 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34583 "$Vd32 = vrdelta($Vu32,$Vv32)", 34584 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 34585 let Inst{7-5} = 0b011; 34586 let Inst{13-13} = 0b0; 34587 let Inst{31-21} = 0b00011111001; 34588 let hasNewValue = 1; 34589 let opNewValue = 0; 34590 let DecoderNamespace = "EXT_mmvec"; 34591 } 34592 def V6_vrmpybub_rtt : HInst< 34593 (outs HvxWR:$Vdd32), 34594 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 34595 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 34596 tc_a807365d, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 34597 let Inst{7-5} = 0b101; 34598 let Inst{13-13} = 0b0; 34599 let Inst{31-21} = 0b00011001110; 34600 let hasNewValue = 1; 34601 let opNewValue = 0; 34602 let DecoderNamespace = "EXT_mmvec"; 34603 } 34604 def V6_vrmpybub_rtt_acc : HInst< 34605 (outs HvxWR:$Vxx32), 34606 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34607 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 34608 tc_ee927c0e, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 34609 let Inst{7-5} = 0b000; 34610 let Inst{13-13} = 0b1; 34611 let Inst{31-21} = 0b00011001101; 34612 let hasNewValue = 1; 34613 let opNewValue = 0; 34614 let isAccumulator = 1; 34615 let DecoderNamespace = "EXT_mmvec"; 34616 let Constraints = "$Vxx32 = $Vxx32in"; 34617 } 34618 def V6_vrmpybub_rtt_acc_alt : HInst< 34619 (outs HvxWR:$Vxx32), 34620 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34621 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 34622 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34623 let hasNewValue = 1; 34624 let opNewValue = 0; 34625 let isAccumulator = 1; 34626 let isPseudo = 1; 34627 let isCodeGenOnly = 1; 34628 let DecoderNamespace = "EXT_mmvec"; 34629 let Constraints = "$Vxx32 = $Vxx32in"; 34630 } 34631 def V6_vrmpybub_rtt_alt : HInst< 34632 (outs HvxWR:$Vdd32), 34633 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 34634 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 34635 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34636 let hasNewValue = 1; 34637 let opNewValue = 0; 34638 let isPseudo = 1; 34639 let isCodeGenOnly = 1; 34640 let DecoderNamespace = "EXT_mmvec"; 34641 } 34642 def V6_vrmpybus : HInst< 34643 (outs HvxVR:$Vd32), 34644 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34645 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)", 34646 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34647 let Inst{7-5} = 0b100; 34648 let Inst{13-13} = 0b0; 34649 let Inst{31-21} = 0b00011001000; 34650 let hasNewValue = 1; 34651 let opNewValue = 0; 34652 let DecoderNamespace = "EXT_mmvec"; 34653 } 34654 def V6_vrmpybus_acc : HInst< 34655 (outs HvxVR:$Vx32), 34656 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34657 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)", 34658 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34659 let Inst{7-5} = 0b101; 34660 let Inst{13-13} = 0b1; 34661 let Inst{31-21} = 0b00011001000; 34662 let hasNewValue = 1; 34663 let opNewValue = 0; 34664 let isAccumulator = 1; 34665 let DecoderNamespace = "EXT_mmvec"; 34666 let Constraints = "$Vx32 = $Vx32in"; 34667 } 34668 def V6_vrmpybus_acc_alt : HInst< 34669 (outs HvxVR:$Vx32), 34670 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34671 "$Vx32 += vrmpybus($Vu32,$Rt32)", 34672 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34673 let hasNewValue = 1; 34674 let opNewValue = 0; 34675 let isAccumulator = 1; 34676 let isPseudo = 1; 34677 let isCodeGenOnly = 1; 34678 let DecoderNamespace = "EXT_mmvec"; 34679 let Constraints = "$Vx32 = $Vx32in"; 34680 } 34681 def V6_vrmpybus_alt : HInst< 34682 (outs HvxVR:$Vd32), 34683 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34684 "$Vd32 = vrmpybus($Vu32,$Rt32)", 34685 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34686 let hasNewValue = 1; 34687 let opNewValue = 0; 34688 let isPseudo = 1; 34689 let isCodeGenOnly = 1; 34690 let DecoderNamespace = "EXT_mmvec"; 34691 } 34692 def V6_vrmpybusi : HInst< 34693 (outs HvxWR:$Vdd32), 34694 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34695 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 34696 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 34697 let Inst{7-6} = 0b10; 34698 let Inst{13-13} = 0b0; 34699 let Inst{31-21} = 0b00011001010; 34700 let hasNewValue = 1; 34701 let opNewValue = 0; 34702 let DecoderNamespace = "EXT_mmvec"; 34703 } 34704 def V6_vrmpybusi_acc : HInst< 34705 (outs HvxWR:$Vxx32), 34706 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34707 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 34708 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 34709 let Inst{7-6} = 0b10; 34710 let Inst{13-13} = 0b1; 34711 let Inst{31-21} = 0b00011001010; 34712 let hasNewValue = 1; 34713 let opNewValue = 0; 34714 let isAccumulator = 1; 34715 let DecoderNamespace = "EXT_mmvec"; 34716 let Constraints = "$Vxx32 = $Vxx32in"; 34717 } 34718 def V6_vrmpybusi_acc_alt : HInst< 34719 (outs HvxWR:$Vxx32), 34720 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34721 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)", 34722 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34723 let hasNewValue = 1; 34724 let opNewValue = 0; 34725 let isAccumulator = 1; 34726 let isPseudo = 1; 34727 let isCodeGenOnly = 1; 34728 let DecoderNamespace = "EXT_mmvec"; 34729 let Constraints = "$Vxx32 = $Vxx32in"; 34730 } 34731 def V6_vrmpybusi_alt : HInst< 34732 (outs HvxWR:$Vdd32), 34733 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34734 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)", 34735 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34736 let hasNewValue = 1; 34737 let opNewValue = 0; 34738 let isPseudo = 1; 34739 let isCodeGenOnly = 1; 34740 let DecoderNamespace = "EXT_mmvec"; 34741 } 34742 def V6_vrmpybusv : HInst< 34743 (outs HvxVR:$Vd32), 34744 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34745 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)", 34746 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 34747 let Inst{7-5} = 0b010; 34748 let Inst{13-13} = 0b0; 34749 let Inst{31-21} = 0b00011100000; 34750 let hasNewValue = 1; 34751 let opNewValue = 0; 34752 let DecoderNamespace = "EXT_mmvec"; 34753 } 34754 def V6_vrmpybusv_acc : HInst< 34755 (outs HvxVR:$Vx32), 34756 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34757 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)", 34758 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34759 let Inst{7-5} = 0b010; 34760 let Inst{13-13} = 0b1; 34761 let Inst{31-21} = 0b00011100000; 34762 let hasNewValue = 1; 34763 let opNewValue = 0; 34764 let isAccumulator = 1; 34765 let DecoderNamespace = "EXT_mmvec"; 34766 let Constraints = "$Vx32 = $Vx32in"; 34767 } 34768 def V6_vrmpybusv_acc_alt : HInst< 34769 (outs HvxVR:$Vx32), 34770 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34771 "$Vx32 += vrmpybus($Vu32,$Vv32)", 34772 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34773 let hasNewValue = 1; 34774 let opNewValue = 0; 34775 let isAccumulator = 1; 34776 let isPseudo = 1; 34777 let isCodeGenOnly = 1; 34778 let DecoderNamespace = "EXT_mmvec"; 34779 let Constraints = "$Vx32 = $Vx32in"; 34780 } 34781 def V6_vrmpybusv_alt : HInst< 34782 (outs HvxVR:$Vd32), 34783 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34784 "$Vd32 = vrmpybus($Vu32,$Vv32)", 34785 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34786 let hasNewValue = 1; 34787 let opNewValue = 0; 34788 let isPseudo = 1; 34789 let isCodeGenOnly = 1; 34790 let DecoderNamespace = "EXT_mmvec"; 34791 } 34792 def V6_vrmpybv : HInst< 34793 (outs HvxVR:$Vd32), 34794 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34795 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)", 34796 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 34797 let Inst{7-5} = 0b001; 34798 let Inst{13-13} = 0b0; 34799 let Inst{31-21} = 0b00011100000; 34800 let hasNewValue = 1; 34801 let opNewValue = 0; 34802 let DecoderNamespace = "EXT_mmvec"; 34803 } 34804 def V6_vrmpybv_acc : HInst< 34805 (outs HvxVR:$Vx32), 34806 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34807 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)", 34808 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34809 let Inst{7-5} = 0b001; 34810 let Inst{13-13} = 0b1; 34811 let Inst{31-21} = 0b00011100000; 34812 let hasNewValue = 1; 34813 let opNewValue = 0; 34814 let isAccumulator = 1; 34815 let DecoderNamespace = "EXT_mmvec"; 34816 let Constraints = "$Vx32 = $Vx32in"; 34817 } 34818 def V6_vrmpybv_acc_alt : HInst< 34819 (outs HvxVR:$Vx32), 34820 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34821 "$Vx32 += vrmpyb($Vu32,$Vv32)", 34822 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34823 let hasNewValue = 1; 34824 let opNewValue = 0; 34825 let isAccumulator = 1; 34826 let isPseudo = 1; 34827 let isCodeGenOnly = 1; 34828 let DecoderNamespace = "EXT_mmvec"; 34829 let Constraints = "$Vx32 = $Vx32in"; 34830 } 34831 def V6_vrmpybv_alt : HInst< 34832 (outs HvxVR:$Vd32), 34833 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34834 "$Vd32 = vrmpyb($Vu32,$Vv32)", 34835 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34836 let hasNewValue = 1; 34837 let opNewValue = 0; 34838 let isPseudo = 1; 34839 let isCodeGenOnly = 1; 34840 let DecoderNamespace = "EXT_mmvec"; 34841 } 34842 def V6_vrmpyub : HInst< 34843 (outs HvxVR:$Vd32), 34844 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34845 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)", 34846 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34847 let Inst{7-5} = 0b011; 34848 let Inst{13-13} = 0b0; 34849 let Inst{31-21} = 0b00011001000; 34850 let hasNewValue = 1; 34851 let opNewValue = 0; 34852 let DecoderNamespace = "EXT_mmvec"; 34853 } 34854 def V6_vrmpyub_acc : HInst< 34855 (outs HvxVR:$Vx32), 34856 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34857 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)", 34858 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34859 let Inst{7-5} = 0b100; 34860 let Inst{13-13} = 0b1; 34861 let Inst{31-21} = 0b00011001000; 34862 let hasNewValue = 1; 34863 let opNewValue = 0; 34864 let isAccumulator = 1; 34865 let DecoderNamespace = "EXT_mmvec"; 34866 let Constraints = "$Vx32 = $Vx32in"; 34867 } 34868 def V6_vrmpyub_acc_alt : HInst< 34869 (outs HvxVR:$Vx32), 34870 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34871 "$Vx32 += vrmpyub($Vu32,$Rt32)", 34872 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34873 let hasNewValue = 1; 34874 let opNewValue = 0; 34875 let isAccumulator = 1; 34876 let isPseudo = 1; 34877 let isCodeGenOnly = 1; 34878 let DecoderNamespace = "EXT_mmvec"; 34879 let Constraints = "$Vx32 = $Vx32in"; 34880 } 34881 def V6_vrmpyub_alt : HInst< 34882 (outs HvxVR:$Vd32), 34883 (ins HvxVR:$Vu32, IntRegs:$Rt32), 34884 "$Vd32 = vrmpyub($Vu32,$Rt32)", 34885 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34886 let hasNewValue = 1; 34887 let opNewValue = 0; 34888 let isPseudo = 1; 34889 let isCodeGenOnly = 1; 34890 let DecoderNamespace = "EXT_mmvec"; 34891 } 34892 def V6_vrmpyub_rtt : HInst< 34893 (outs HvxWR:$Vdd32), 34894 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 34895 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 34896 tc_a807365d, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 34897 let Inst{7-5} = 0b100; 34898 let Inst{13-13} = 0b0; 34899 let Inst{31-21} = 0b00011001110; 34900 let hasNewValue = 1; 34901 let opNewValue = 0; 34902 let DecoderNamespace = "EXT_mmvec"; 34903 } 34904 def V6_vrmpyub_rtt_acc : HInst< 34905 (outs HvxWR:$Vxx32), 34906 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34907 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 34908 tc_ee927c0e, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 34909 let Inst{7-5} = 0b111; 34910 let Inst{13-13} = 0b1; 34911 let Inst{31-21} = 0b00011001101; 34912 let hasNewValue = 1; 34913 let opNewValue = 0; 34914 let isAccumulator = 1; 34915 let DecoderNamespace = "EXT_mmvec"; 34916 let Constraints = "$Vxx32 = $Vxx32in"; 34917 } 34918 def V6_vrmpyub_rtt_acc_alt : HInst< 34919 (outs HvxWR:$Vxx32), 34920 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34921 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 34922 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34923 let hasNewValue = 1; 34924 let opNewValue = 0; 34925 let isAccumulator = 1; 34926 let isPseudo = 1; 34927 let isCodeGenOnly = 1; 34928 let DecoderNamespace = "EXT_mmvec"; 34929 let Constraints = "$Vxx32 = $Vxx32in"; 34930 } 34931 def V6_vrmpyub_rtt_alt : HInst< 34932 (outs HvxWR:$Vdd32), 34933 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 34934 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 34935 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34936 let hasNewValue = 1; 34937 let opNewValue = 0; 34938 let isPseudo = 1; 34939 let isCodeGenOnly = 1; 34940 let DecoderNamespace = "EXT_mmvec"; 34941 } 34942 def V6_vrmpyubi : HInst< 34943 (outs HvxWR:$Vdd32), 34944 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34945 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 34946 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 34947 let Inst{7-6} = 0b11; 34948 let Inst{13-13} = 0b0; 34949 let Inst{31-21} = 0b00011001101; 34950 let hasNewValue = 1; 34951 let opNewValue = 0; 34952 let DecoderNamespace = "EXT_mmvec"; 34953 } 34954 def V6_vrmpyubi_acc : HInst< 34955 (outs HvxWR:$Vxx32), 34956 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34957 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 34958 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 34959 let Inst{7-6} = 0b11; 34960 let Inst{13-13} = 0b1; 34961 let Inst{31-21} = 0b00011001011; 34962 let hasNewValue = 1; 34963 let opNewValue = 0; 34964 let isAccumulator = 1; 34965 let DecoderNamespace = "EXT_mmvec"; 34966 let Constraints = "$Vxx32 = $Vxx32in"; 34967 } 34968 def V6_vrmpyubi_acc_alt : HInst< 34969 (outs HvxWR:$Vxx32), 34970 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34971 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)", 34972 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34973 let hasNewValue = 1; 34974 let opNewValue = 0; 34975 let isAccumulator = 1; 34976 let isPseudo = 1; 34977 let isCodeGenOnly = 1; 34978 let DecoderNamespace = "EXT_mmvec"; 34979 let Constraints = "$Vxx32 = $Vxx32in"; 34980 } 34981 def V6_vrmpyubi_alt : HInst< 34982 (outs HvxWR:$Vdd32), 34983 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 34984 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)", 34985 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34986 let hasNewValue = 1; 34987 let opNewValue = 0; 34988 let isPseudo = 1; 34989 let isCodeGenOnly = 1; 34990 let DecoderNamespace = "EXT_mmvec"; 34991 } 34992 def V6_vrmpyubv : HInst< 34993 (outs HvxVR:$Vd32), 34994 (ins HvxVR:$Vu32, HvxVR:$Vv32), 34995 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)", 34996 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 34997 let Inst{7-5} = 0b000; 34998 let Inst{13-13} = 0b0; 34999 let Inst{31-21} = 0b00011100000; 35000 let hasNewValue = 1; 35001 let opNewValue = 0; 35002 let DecoderNamespace = "EXT_mmvec"; 35003 } 35004 def V6_vrmpyubv_acc : HInst< 35005 (outs HvxVR:$Vx32), 35006 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35007 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)", 35008 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 35009 let Inst{7-5} = 0b000; 35010 let Inst{13-13} = 0b1; 35011 let Inst{31-21} = 0b00011100000; 35012 let hasNewValue = 1; 35013 let opNewValue = 0; 35014 let isAccumulator = 1; 35015 let DecoderNamespace = "EXT_mmvec"; 35016 let Constraints = "$Vx32 = $Vx32in"; 35017 } 35018 def V6_vrmpyubv_acc_alt : HInst< 35019 (outs HvxVR:$Vx32), 35020 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35021 "$Vx32 += vrmpyub($Vu32,$Vv32)", 35022 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35023 let hasNewValue = 1; 35024 let opNewValue = 0; 35025 let isAccumulator = 1; 35026 let isPseudo = 1; 35027 let isCodeGenOnly = 1; 35028 let DecoderNamespace = "EXT_mmvec"; 35029 let Constraints = "$Vx32 = $Vx32in"; 35030 } 35031 def V6_vrmpyubv_alt : HInst< 35032 (outs HvxVR:$Vd32), 35033 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35034 "$Vd32 = vrmpyub($Vu32,$Vv32)", 35035 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35036 let hasNewValue = 1; 35037 let opNewValue = 0; 35038 let isPseudo = 1; 35039 let isCodeGenOnly = 1; 35040 let DecoderNamespace = "EXT_mmvec"; 35041 } 35042 def V6_vror : HInst< 35043 (outs HvxVR:$Vd32), 35044 (ins HvxVR:$Vu32, IntRegs:$Rt32), 35045 "$Vd32 = vror($Vu32,$Rt32)", 35046 tc_bf142ae2, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> { 35047 let Inst{7-5} = 0b001; 35048 let Inst{13-13} = 0b0; 35049 let Inst{31-21} = 0b00011001011; 35050 let hasNewValue = 1; 35051 let opNewValue = 0; 35052 let DecoderNamespace = "EXT_mmvec"; 35053 } 35054 def V6_vroundhb : HInst< 35055 (outs HvxVR:$Vd32), 35056 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35057 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat", 35058 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 35059 let Inst{7-5} = 0b110; 35060 let Inst{13-13} = 0b0; 35061 let Inst{31-21} = 0b00011111011; 35062 let hasNewValue = 1; 35063 let opNewValue = 0; 35064 let DecoderNamespace = "EXT_mmvec"; 35065 } 35066 def V6_vroundhb_alt : HInst< 35067 (outs HvxVR:$Vd32), 35068 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35069 "$Vd32 = vroundhb($Vu32,$Vv32):sat", 35070 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35071 let hasNewValue = 1; 35072 let opNewValue = 0; 35073 let isPseudo = 1; 35074 let isCodeGenOnly = 1; 35075 let DecoderNamespace = "EXT_mmvec"; 35076 } 35077 def V6_vroundhub : HInst< 35078 (outs HvxVR:$Vd32), 35079 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35080 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat", 35081 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 35082 let Inst{7-5} = 0b111; 35083 let Inst{13-13} = 0b0; 35084 let Inst{31-21} = 0b00011111011; 35085 let hasNewValue = 1; 35086 let opNewValue = 0; 35087 let DecoderNamespace = "EXT_mmvec"; 35088 } 35089 def V6_vroundhub_alt : HInst< 35090 (outs HvxVR:$Vd32), 35091 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35092 "$Vd32 = vroundhub($Vu32,$Vv32):sat", 35093 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35094 let hasNewValue = 1; 35095 let opNewValue = 0; 35096 let isPseudo = 1; 35097 let isCodeGenOnly = 1; 35098 let DecoderNamespace = "EXT_mmvec"; 35099 } 35100 def V6_vrounduhub : HInst< 35101 (outs HvxVR:$Vd32), 35102 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35103 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat", 35104 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 35105 let Inst{7-5} = 0b011; 35106 let Inst{13-13} = 0b0; 35107 let Inst{31-21} = 0b00011111111; 35108 let hasNewValue = 1; 35109 let opNewValue = 0; 35110 let DecoderNamespace = "EXT_mmvec"; 35111 } 35112 def V6_vrounduhub_alt : HInst< 35113 (outs HvxVR:$Vd32), 35114 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35115 "$Vd32 = vrounduhub($Vu32,$Vv32):sat", 35116 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35117 let hasNewValue = 1; 35118 let opNewValue = 0; 35119 let isPseudo = 1; 35120 let isCodeGenOnly = 1; 35121 let DecoderNamespace = "EXT_mmvec"; 35122 } 35123 def V6_vrounduwuh : HInst< 35124 (outs HvxVR:$Vd32), 35125 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35126 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat", 35127 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 35128 let Inst{7-5} = 0b100; 35129 let Inst{13-13} = 0b0; 35130 let Inst{31-21} = 0b00011111111; 35131 let hasNewValue = 1; 35132 let opNewValue = 0; 35133 let DecoderNamespace = "EXT_mmvec"; 35134 } 35135 def V6_vrounduwuh_alt : HInst< 35136 (outs HvxVR:$Vd32), 35137 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35138 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat", 35139 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35140 let hasNewValue = 1; 35141 let opNewValue = 0; 35142 let isPseudo = 1; 35143 let isCodeGenOnly = 1; 35144 let DecoderNamespace = "EXT_mmvec"; 35145 } 35146 def V6_vroundwh : HInst< 35147 (outs HvxVR:$Vd32), 35148 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35149 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat", 35150 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 35151 let Inst{7-5} = 0b100; 35152 let Inst{13-13} = 0b0; 35153 let Inst{31-21} = 0b00011111011; 35154 let hasNewValue = 1; 35155 let opNewValue = 0; 35156 let DecoderNamespace = "EXT_mmvec"; 35157 } 35158 def V6_vroundwh_alt : HInst< 35159 (outs HvxVR:$Vd32), 35160 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35161 "$Vd32 = vroundwh($Vu32,$Vv32):sat", 35162 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35163 let hasNewValue = 1; 35164 let opNewValue = 0; 35165 let isPseudo = 1; 35166 let isCodeGenOnly = 1; 35167 let DecoderNamespace = "EXT_mmvec"; 35168 } 35169 def V6_vroundwuh : HInst< 35170 (outs HvxVR:$Vd32), 35171 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35172 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat", 35173 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 35174 let Inst{7-5} = 0b101; 35175 let Inst{13-13} = 0b0; 35176 let Inst{31-21} = 0b00011111011; 35177 let hasNewValue = 1; 35178 let opNewValue = 0; 35179 let DecoderNamespace = "EXT_mmvec"; 35180 } 35181 def V6_vroundwuh_alt : HInst< 35182 (outs HvxVR:$Vd32), 35183 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35184 "$Vd32 = vroundwuh($Vu32,$Vv32):sat", 35185 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35186 let hasNewValue = 1; 35187 let opNewValue = 0; 35188 let isPseudo = 1; 35189 let isCodeGenOnly = 1; 35190 let DecoderNamespace = "EXT_mmvec"; 35191 } 35192 def V6_vrsadubi : HInst< 35193 (outs HvxWR:$Vdd32), 35194 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35195 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 35196 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 35197 let Inst{7-6} = 0b11; 35198 let Inst{13-13} = 0b0; 35199 let Inst{31-21} = 0b00011001010; 35200 let hasNewValue = 1; 35201 let opNewValue = 0; 35202 let DecoderNamespace = "EXT_mmvec"; 35203 } 35204 def V6_vrsadubi_acc : HInst< 35205 (outs HvxWR:$Vxx32), 35206 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35207 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 35208 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 35209 let Inst{7-6} = 0b11; 35210 let Inst{13-13} = 0b1; 35211 let Inst{31-21} = 0b00011001010; 35212 let hasNewValue = 1; 35213 let opNewValue = 0; 35214 let isAccumulator = 1; 35215 let DecoderNamespace = "EXT_mmvec"; 35216 let Constraints = "$Vxx32 = $Vxx32in"; 35217 } 35218 def V6_vrsadubi_acc_alt : HInst< 35219 (outs HvxWR:$Vxx32), 35220 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35221 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)", 35222 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35223 let hasNewValue = 1; 35224 let opNewValue = 0; 35225 let isAccumulator = 1; 35226 let isPseudo = 1; 35227 let isCodeGenOnly = 1; 35228 let DecoderNamespace = "EXT_mmvec"; 35229 let Constraints = "$Vxx32 = $Vxx32in"; 35230 } 35231 def V6_vrsadubi_alt : HInst< 35232 (outs HvxWR:$Vdd32), 35233 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35234 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)", 35235 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35236 let hasNewValue = 1; 35237 let opNewValue = 0; 35238 let isPseudo = 1; 35239 let isCodeGenOnly = 1; 35240 let DecoderNamespace = "EXT_mmvec"; 35241 } 35242 def V6_vsathub : HInst< 35243 (outs HvxVR:$Vd32), 35244 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35245 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)", 35246 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> { 35247 let Inst{7-5} = 0b010; 35248 let Inst{13-13} = 0b0; 35249 let Inst{31-21} = 0b00011111011; 35250 let hasNewValue = 1; 35251 let opNewValue = 0; 35252 let DecoderNamespace = "EXT_mmvec"; 35253 } 35254 def V6_vsathub_alt : HInst< 35255 (outs HvxVR:$Vd32), 35256 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35257 "$Vd32 = vsathub($Vu32,$Vv32)", 35258 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35259 let hasNewValue = 1; 35260 let opNewValue = 0; 35261 let isPseudo = 1; 35262 let isCodeGenOnly = 1; 35263 let DecoderNamespace = "EXT_mmvec"; 35264 } 35265 def V6_vsatuwuh : HInst< 35266 (outs HvxVR:$Vd32), 35267 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35268 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)", 35269 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 35270 let Inst{7-5} = 0b110; 35271 let Inst{13-13} = 0b0; 35272 let Inst{31-21} = 0b00011111001; 35273 let hasNewValue = 1; 35274 let opNewValue = 0; 35275 let DecoderNamespace = "EXT_mmvec"; 35276 } 35277 def V6_vsatuwuh_alt : HInst< 35278 (outs HvxVR:$Vd32), 35279 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35280 "$Vd32 = vsatuwuh($Vu32,$Vv32)", 35281 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35282 let hasNewValue = 1; 35283 let opNewValue = 0; 35284 let isPseudo = 1; 35285 let isCodeGenOnly = 1; 35286 let DecoderNamespace = "EXT_mmvec"; 35287 } 35288 def V6_vsatwh : HInst< 35289 (outs HvxVR:$Vd32), 35290 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35291 "$Vd32.h = vsat($Vu32.w,$Vv32.w)", 35292 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> { 35293 let Inst{7-5} = 0b011; 35294 let Inst{13-13} = 0b0; 35295 let Inst{31-21} = 0b00011111011; 35296 let hasNewValue = 1; 35297 let opNewValue = 0; 35298 let DecoderNamespace = "EXT_mmvec"; 35299 } 35300 def V6_vsatwh_alt : HInst< 35301 (outs HvxVR:$Vd32), 35302 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35303 "$Vd32 = vsatwh($Vu32,$Vv32)", 35304 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35305 let hasNewValue = 1; 35306 let opNewValue = 0; 35307 let isPseudo = 1; 35308 let isCodeGenOnly = 1; 35309 let DecoderNamespace = "EXT_mmvec"; 35310 } 35311 def V6_vsb : HInst< 35312 (outs HvxWR:$Vdd32), 35313 (ins HvxVR:$Vu32), 35314 "$Vdd32.h = vsxt($Vu32.b)", 35315 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 35316 let Inst{7-5} = 0b011; 35317 let Inst{13-13} = 0b0; 35318 let Inst{31-16} = 0b0001111000000010; 35319 let hasNewValue = 1; 35320 let opNewValue = 0; 35321 let DecoderNamespace = "EXT_mmvec"; 35322 } 35323 def V6_vsb_alt : HInst< 35324 (outs HvxWR:$Vdd32), 35325 (ins HvxVR:$Vu32), 35326 "$Vdd32 = vsxtb($Vu32)", 35327 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35328 let hasNewValue = 1; 35329 let opNewValue = 0; 35330 let isPseudo = 1; 35331 let isCodeGenOnly = 1; 35332 let DecoderNamespace = "EXT_mmvec"; 35333 } 35334 def V6_vscattermh : HInst< 35335 (outs), 35336 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35337 "vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 35338 tc_4f190ba3, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 35339 let Inst{7-5} = 0b001; 35340 let Inst{31-21} = 0b00101111001; 35341 let accessSize = HalfWordAccess; 35342 let mayStore = 1; 35343 let DecoderNamespace = "EXT_mmvec"; 35344 } 35345 def V6_vscattermh_add : HInst< 35346 (outs), 35347 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35348 "vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32", 35349 tc_4f190ba3, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 35350 let Inst{7-5} = 0b101; 35351 let Inst{31-21} = 0b00101111001; 35352 let accessSize = HalfWordAccess; 35353 let isAccumulator = 1; 35354 let mayStore = 1; 35355 let DecoderNamespace = "EXT_mmvec"; 35356 } 35357 def V6_vscattermh_add_alt : HInst< 35358 (outs), 35359 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35360 "vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h", 35361 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35362 let isAccumulator = 1; 35363 let isPseudo = 1; 35364 let isCodeGenOnly = 1; 35365 let DecoderNamespace = "EXT_mmvec"; 35366 } 35367 def V6_vscattermh_alt : HInst< 35368 (outs), 35369 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35370 "vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 35371 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35372 let isPseudo = 1; 35373 let isCodeGenOnly = 1; 35374 let DecoderNamespace = "EXT_mmvec"; 35375 } 35376 def V6_vscattermhq : HInst< 35377 (outs), 35378 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35379 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 35380 tc_df54ad52, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 35381 let Inst{7-7} = 0b1; 35382 let Inst{31-21} = 0b00101111100; 35383 let accessSize = HalfWordAccess; 35384 let mayStore = 1; 35385 let DecoderNamespace = "EXT_mmvec"; 35386 } 35387 def V6_vscattermhq_alt : HInst< 35388 (outs), 35389 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35390 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 35391 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35392 let isPseudo = 1; 35393 let isCodeGenOnly = 1; 35394 let DecoderNamespace = "EXT_mmvec"; 35395 } 35396 def V6_vscattermhw : HInst< 35397 (outs), 35398 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35399 "vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 35400 tc_ec58f88a, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 35401 let Inst{7-5} = 0b010; 35402 let Inst{31-21} = 0b00101111001; 35403 let accessSize = HalfWordAccess; 35404 let mayStore = 1; 35405 let DecoderNamespace = "EXT_mmvec"; 35406 } 35407 def V6_vscattermhw_add : HInst< 35408 (outs), 35409 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35410 "vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32", 35411 tc_ec58f88a, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 35412 let Inst{7-5} = 0b110; 35413 let Inst{31-21} = 0b00101111001; 35414 let accessSize = HalfWordAccess; 35415 let isAccumulator = 1; 35416 let mayStore = 1; 35417 let DecoderNamespace = "EXT_mmvec"; 35418 } 35419 def V6_vscattermhwq : HInst< 35420 (outs), 35421 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35422 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 35423 tc_94f43c04, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> { 35424 let Inst{7-7} = 0b0; 35425 let Inst{31-21} = 0b00101111101; 35426 let accessSize = HalfWordAccess; 35427 let mayStore = 1; 35428 let DecoderNamespace = "EXT_mmvec"; 35429 } 35430 def V6_vscattermw : HInst< 35431 (outs), 35432 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35433 "vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 35434 tc_4f190ba3, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 35435 let Inst{7-5} = 0b000; 35436 let Inst{31-21} = 0b00101111001; 35437 let accessSize = WordAccess; 35438 let mayStore = 1; 35439 let DecoderNamespace = "EXT_mmvec"; 35440 } 35441 def V6_vscattermw_add : HInst< 35442 (outs), 35443 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35444 "vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32", 35445 tc_4f190ba3, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 35446 let Inst{7-5} = 0b100; 35447 let Inst{31-21} = 0b00101111001; 35448 let accessSize = WordAccess; 35449 let isAccumulator = 1; 35450 let mayStore = 1; 35451 let DecoderNamespace = "EXT_mmvec"; 35452 } 35453 def V6_vscattermw_add_alt : HInst< 35454 (outs), 35455 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35456 "vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w", 35457 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35458 let isAccumulator = 1; 35459 let isPseudo = 1; 35460 let isCodeGenOnly = 1; 35461 let DecoderNamespace = "EXT_mmvec"; 35462 } 35463 def V6_vscattermw_alt : HInst< 35464 (outs), 35465 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35466 "vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 35467 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35468 let isPseudo = 1; 35469 let isCodeGenOnly = 1; 35470 let DecoderNamespace = "EXT_mmvec"; 35471 } 35472 def V6_vscattermwh_add_alt : HInst< 35473 (outs), 35474 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35475 "vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h", 35476 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35477 let isAccumulator = 1; 35478 let isPseudo = 1; 35479 let isCodeGenOnly = 1; 35480 let DecoderNamespace = "EXT_mmvec"; 35481 } 35482 def V6_vscattermwh_alt : HInst< 35483 (outs), 35484 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35485 "vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 35486 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35487 let isPseudo = 1; 35488 let isCodeGenOnly = 1; 35489 let DecoderNamespace = "EXT_mmvec"; 35490 } 35491 def V6_vscattermwhq_alt : HInst< 35492 (outs), 35493 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 35494 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 35495 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35496 let isPseudo = 1; 35497 let isCodeGenOnly = 1; 35498 let DecoderNamespace = "EXT_mmvec"; 35499 } 35500 def V6_vscattermwq : HInst< 35501 (outs), 35502 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35503 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 35504 tc_df54ad52, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 35505 let Inst{7-7} = 0b0; 35506 let Inst{31-21} = 0b00101111100; 35507 let accessSize = WordAccess; 35508 let mayStore = 1; 35509 let DecoderNamespace = "EXT_mmvec"; 35510 } 35511 def V6_vscattermwq_alt : HInst< 35512 (outs), 35513 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 35514 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 35515 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35516 let isPseudo = 1; 35517 let isCodeGenOnly = 1; 35518 let DecoderNamespace = "EXT_mmvec"; 35519 } 35520 def V6_vsh : HInst< 35521 (outs HvxWR:$Vdd32), 35522 (ins HvxVR:$Vu32), 35523 "$Vdd32.w = vsxt($Vu32.h)", 35524 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 35525 let Inst{7-5} = 0b100; 35526 let Inst{13-13} = 0b0; 35527 let Inst{31-16} = 0b0001111000000010; 35528 let hasNewValue = 1; 35529 let opNewValue = 0; 35530 let DecoderNamespace = "EXT_mmvec"; 35531 } 35532 def V6_vsh_alt : HInst< 35533 (outs HvxWR:$Vdd32), 35534 (ins HvxVR:$Vu32), 35535 "$Vdd32 = vsxth($Vu32)", 35536 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35537 let hasNewValue = 1; 35538 let opNewValue = 0; 35539 let isPseudo = 1; 35540 let isCodeGenOnly = 1; 35541 let DecoderNamespace = "EXT_mmvec"; 35542 } 35543 def V6_vshufeh : HInst< 35544 (outs HvxVR:$Vd32), 35545 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35546 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)", 35547 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35548 let Inst{7-5} = 0b011; 35549 let Inst{13-13} = 0b0; 35550 let Inst{31-21} = 0b00011111010; 35551 let hasNewValue = 1; 35552 let opNewValue = 0; 35553 let DecoderNamespace = "EXT_mmvec"; 35554 } 35555 def V6_vshufeh_alt : HInst< 35556 (outs HvxVR:$Vd32), 35557 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35558 "$Vd32 = vshuffeh($Vu32,$Vv32)", 35559 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35560 let hasNewValue = 1; 35561 let opNewValue = 0; 35562 let isPseudo = 1; 35563 let isCodeGenOnly = 1; 35564 let DecoderNamespace = "EXT_mmvec"; 35565 } 35566 def V6_vshuff : HInst< 35567 (outs HvxVR:$Vy32, HvxVR:$Vx32), 35568 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 35569 "vshuff($Vy32,$Vx32,$Rt32)", 35570 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 35571 let Inst{7-5} = 0b001; 35572 let Inst{13-13} = 0b1; 35573 let Inst{31-21} = 0b00011001111; 35574 let hasNewValue = 1; 35575 let opNewValue = 0; 35576 let hasNewValue2 = 1; 35577 let opNewValue2 = 1; 35578 let DecoderNamespace = "EXT_mmvec"; 35579 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 35580 } 35581 def V6_vshuffb : HInst< 35582 (outs HvxVR:$Vd32), 35583 (ins HvxVR:$Vu32), 35584 "$Vd32.b = vshuff($Vu32.b)", 35585 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 35586 let Inst{7-5} = 0b000; 35587 let Inst{13-13} = 0b0; 35588 let Inst{31-16} = 0b0001111000000010; 35589 let hasNewValue = 1; 35590 let opNewValue = 0; 35591 let DecoderNamespace = "EXT_mmvec"; 35592 } 35593 def V6_vshuffb_alt : HInst< 35594 (outs HvxVR:$Vd32), 35595 (ins HvxVR:$Vu32), 35596 "$Vd32 = vshuffb($Vu32)", 35597 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35598 let hasNewValue = 1; 35599 let opNewValue = 0; 35600 let isPseudo = 1; 35601 let isCodeGenOnly = 1; 35602 let DecoderNamespace = "EXT_mmvec"; 35603 } 35604 def V6_vshuffeb : HInst< 35605 (outs HvxVR:$Vd32), 35606 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35607 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)", 35608 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35609 let Inst{7-5} = 0b001; 35610 let Inst{13-13} = 0b0; 35611 let Inst{31-21} = 0b00011111010; 35612 let hasNewValue = 1; 35613 let opNewValue = 0; 35614 let DecoderNamespace = "EXT_mmvec"; 35615 } 35616 def V6_vshuffeb_alt : HInst< 35617 (outs HvxVR:$Vd32), 35618 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35619 "$Vd32 = vshuffeb($Vu32,$Vv32)", 35620 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35621 let hasNewValue = 1; 35622 let opNewValue = 0; 35623 let isPseudo = 1; 35624 let isCodeGenOnly = 1; 35625 let DecoderNamespace = "EXT_mmvec"; 35626 } 35627 def V6_vshuffh : HInst< 35628 (outs HvxVR:$Vd32), 35629 (ins HvxVR:$Vu32), 35630 "$Vd32.h = vshuff($Vu32.h)", 35631 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 35632 let Inst{7-5} = 0b111; 35633 let Inst{13-13} = 0b0; 35634 let Inst{31-16} = 0b0001111000000001; 35635 let hasNewValue = 1; 35636 let opNewValue = 0; 35637 let DecoderNamespace = "EXT_mmvec"; 35638 } 35639 def V6_vshuffh_alt : HInst< 35640 (outs HvxVR:$Vd32), 35641 (ins HvxVR:$Vu32), 35642 "$Vd32 = vshuffh($Vu32)", 35643 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35644 let hasNewValue = 1; 35645 let opNewValue = 0; 35646 let isPseudo = 1; 35647 let isCodeGenOnly = 1; 35648 let DecoderNamespace = "EXT_mmvec"; 35649 } 35650 def V6_vshuffob : HInst< 35651 (outs HvxVR:$Vd32), 35652 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35653 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)", 35654 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35655 let Inst{7-5} = 0b010; 35656 let Inst{13-13} = 0b0; 35657 let Inst{31-21} = 0b00011111010; 35658 let hasNewValue = 1; 35659 let opNewValue = 0; 35660 let DecoderNamespace = "EXT_mmvec"; 35661 } 35662 def V6_vshuffob_alt : HInst< 35663 (outs HvxVR:$Vd32), 35664 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35665 "$Vd32 = vshuffob($Vu32,$Vv32)", 35666 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35667 let hasNewValue = 1; 35668 let opNewValue = 0; 35669 let isPseudo = 1; 35670 let isCodeGenOnly = 1; 35671 let DecoderNamespace = "EXT_mmvec"; 35672 } 35673 def V6_vshuffvdd : HInst< 35674 (outs HvxWR:$Vdd32), 35675 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 35676 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)", 35677 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 35678 let Inst{7-5} = 0b011; 35679 let Inst{13-13} = 0b1; 35680 let Inst{31-24} = 0b00011011; 35681 let hasNewValue = 1; 35682 let opNewValue = 0; 35683 let DecoderNamespace = "EXT_mmvec"; 35684 } 35685 def V6_vshufoeb : HInst< 35686 (outs HvxWR:$Vdd32), 35687 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35688 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)", 35689 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35690 let Inst{7-5} = 0b110; 35691 let Inst{13-13} = 0b0; 35692 let Inst{31-21} = 0b00011111010; 35693 let hasNewValue = 1; 35694 let opNewValue = 0; 35695 let DecoderNamespace = "EXT_mmvec"; 35696 } 35697 def V6_vshufoeb_alt : HInst< 35698 (outs HvxWR:$Vdd32), 35699 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35700 "$Vdd32 = vshuffoeb($Vu32,$Vv32)", 35701 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35702 let hasNewValue = 1; 35703 let opNewValue = 0; 35704 let isPseudo = 1; 35705 let isCodeGenOnly = 1; 35706 let DecoderNamespace = "EXT_mmvec"; 35707 } 35708 def V6_vshufoeh : HInst< 35709 (outs HvxWR:$Vdd32), 35710 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35711 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)", 35712 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35713 let Inst{7-5} = 0b101; 35714 let Inst{13-13} = 0b0; 35715 let Inst{31-21} = 0b00011111010; 35716 let hasNewValue = 1; 35717 let opNewValue = 0; 35718 let DecoderNamespace = "EXT_mmvec"; 35719 } 35720 def V6_vshufoeh_alt : HInst< 35721 (outs HvxWR:$Vdd32), 35722 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35723 "$Vdd32 = vshuffoeh($Vu32,$Vv32)", 35724 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35725 let hasNewValue = 1; 35726 let opNewValue = 0; 35727 let isPseudo = 1; 35728 let isCodeGenOnly = 1; 35729 let DecoderNamespace = "EXT_mmvec"; 35730 } 35731 def V6_vshufoh : HInst< 35732 (outs HvxVR:$Vd32), 35733 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35734 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)", 35735 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35736 let Inst{7-5} = 0b100; 35737 let Inst{13-13} = 0b0; 35738 let Inst{31-21} = 0b00011111010; 35739 let hasNewValue = 1; 35740 let opNewValue = 0; 35741 let DecoderNamespace = "EXT_mmvec"; 35742 } 35743 def V6_vshufoh_alt : HInst< 35744 (outs HvxVR:$Vd32), 35745 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35746 "$Vd32 = vshuffoh($Vu32,$Vv32)", 35747 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35748 let hasNewValue = 1; 35749 let opNewValue = 0; 35750 let isPseudo = 1; 35751 let isCodeGenOnly = 1; 35752 let DecoderNamespace = "EXT_mmvec"; 35753 } 35754 def V6_vsubb : HInst< 35755 (outs HvxVR:$Vd32), 35756 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35757 "$Vd32.b = vsub($Vu32.b,$Vv32.b)", 35758 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35759 let Inst{7-5} = 0b101; 35760 let Inst{13-13} = 0b0; 35761 let Inst{31-21} = 0b00011100010; 35762 let hasNewValue = 1; 35763 let opNewValue = 0; 35764 let DecoderNamespace = "EXT_mmvec"; 35765 } 35766 def V6_vsubb_alt : HInst< 35767 (outs HvxVR:$Vd32), 35768 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35769 "$Vd32 = vsubb($Vu32,$Vv32)", 35770 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35771 let hasNewValue = 1; 35772 let opNewValue = 0; 35773 let isPseudo = 1; 35774 let isCodeGenOnly = 1; 35775 let DecoderNamespace = "EXT_mmvec"; 35776 } 35777 def V6_vsubb_dv : HInst< 35778 (outs HvxWR:$Vdd32), 35779 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35780 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)", 35781 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 35782 let Inst{7-5} = 0b011; 35783 let Inst{13-13} = 0b0; 35784 let Inst{31-21} = 0b00011100100; 35785 let hasNewValue = 1; 35786 let opNewValue = 0; 35787 let DecoderNamespace = "EXT_mmvec"; 35788 } 35789 def V6_vsubb_dv_alt : HInst< 35790 (outs HvxWR:$Vdd32), 35791 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35792 "$Vdd32 = vsubb($Vuu32,$Vvv32)", 35793 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35794 let hasNewValue = 1; 35795 let opNewValue = 0; 35796 let isPseudo = 1; 35797 let isCodeGenOnly = 1; 35798 let DecoderNamespace = "EXT_mmvec"; 35799 } 35800 def V6_vsubbnq : HInst< 35801 (outs HvxVR:$Vx32), 35802 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35803 "if (!$Qv4) $Vx32.b -= $Vu32.b", 35804 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 35805 let Inst{7-5} = 0b001; 35806 let Inst{13-13} = 0b1; 35807 let Inst{21-16} = 0b000010; 35808 let Inst{31-24} = 0b00011110; 35809 let hasNewValue = 1; 35810 let opNewValue = 0; 35811 let DecoderNamespace = "EXT_mmvec"; 35812 let Constraints = "$Vx32 = $Vx32in"; 35813 } 35814 def V6_vsubbnq_alt : HInst< 35815 (outs HvxVR:$Vx32), 35816 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35817 "if (!$Qv4.b) $Vx32.b -= $Vu32.b", 35818 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35819 let hasNewValue = 1; 35820 let opNewValue = 0; 35821 let isPseudo = 1; 35822 let isCodeGenOnly = 1; 35823 let DecoderNamespace = "EXT_mmvec"; 35824 let Constraints = "$Vx32 = $Vx32in"; 35825 } 35826 def V6_vsubbq : HInst< 35827 (outs HvxVR:$Vx32), 35828 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35829 "if ($Qv4) $Vx32.b -= $Vu32.b", 35830 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 35831 let Inst{7-5} = 0b110; 35832 let Inst{13-13} = 0b1; 35833 let Inst{21-16} = 0b000001; 35834 let Inst{31-24} = 0b00011110; 35835 let hasNewValue = 1; 35836 let opNewValue = 0; 35837 let DecoderNamespace = "EXT_mmvec"; 35838 let Constraints = "$Vx32 = $Vx32in"; 35839 } 35840 def V6_vsubbq_alt : HInst< 35841 (outs HvxVR:$Vx32), 35842 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35843 "if ($Qv4.b) $Vx32.b -= $Vu32.b", 35844 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35845 let hasNewValue = 1; 35846 let opNewValue = 0; 35847 let isPseudo = 1; 35848 let isCodeGenOnly = 1; 35849 let DecoderNamespace = "EXT_mmvec"; 35850 let Constraints = "$Vx32 = $Vx32in"; 35851 } 35852 def V6_vsubbsat : HInst< 35853 (outs HvxVR:$Vd32), 35854 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35855 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat", 35856 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 35857 let Inst{7-5} = 0b010; 35858 let Inst{13-13} = 0b0; 35859 let Inst{31-21} = 0b00011111001; 35860 let hasNewValue = 1; 35861 let opNewValue = 0; 35862 let DecoderNamespace = "EXT_mmvec"; 35863 } 35864 def V6_vsubbsat_alt : HInst< 35865 (outs HvxVR:$Vd32), 35866 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35867 "$Vd32 = vsubb($Vu32,$Vv32):sat", 35868 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35869 let hasNewValue = 1; 35870 let opNewValue = 0; 35871 let isPseudo = 1; 35872 let isCodeGenOnly = 1; 35873 let DecoderNamespace = "EXT_mmvec"; 35874 } 35875 def V6_vsubbsat_dv : HInst< 35876 (outs HvxWR:$Vdd32), 35877 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35878 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat", 35879 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 35880 let Inst{7-5} = 0b001; 35881 let Inst{13-13} = 0b0; 35882 let Inst{31-21} = 0b00011110101; 35883 let hasNewValue = 1; 35884 let opNewValue = 0; 35885 let DecoderNamespace = "EXT_mmvec"; 35886 } 35887 def V6_vsubbsat_dv_alt : HInst< 35888 (outs HvxWR:$Vdd32), 35889 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35890 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat", 35891 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35892 let hasNewValue = 1; 35893 let opNewValue = 0; 35894 let isPseudo = 1; 35895 let isCodeGenOnly = 1; 35896 let DecoderNamespace = "EXT_mmvec"; 35897 } 35898 def V6_vsubcarry : HInst< 35899 (outs HvxVR:$Vd32, HvxQR:$Qx4), 35900 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 35901 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry", 35902 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 35903 let Inst{7-7} = 0b1; 35904 let Inst{13-13} = 0b1; 35905 let Inst{31-21} = 0b00011100101; 35906 let hasNewValue = 1; 35907 let opNewValue = 0; 35908 let DecoderNamespace = "EXT_mmvec"; 35909 let Constraints = "$Qx4 = $Qx4in"; 35910 } 35911 def V6_vsubh : HInst< 35912 (outs HvxVR:$Vd32), 35913 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35914 "$Vd32.h = vsub($Vu32.h,$Vv32.h)", 35915 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35916 let Inst{7-5} = 0b110; 35917 let Inst{13-13} = 0b0; 35918 let Inst{31-21} = 0b00011100010; 35919 let hasNewValue = 1; 35920 let opNewValue = 0; 35921 let DecoderNamespace = "EXT_mmvec"; 35922 } 35923 def V6_vsubh_alt : HInst< 35924 (outs HvxVR:$Vd32), 35925 (ins HvxVR:$Vu32, HvxVR:$Vv32), 35926 "$Vd32 = vsubh($Vu32,$Vv32)", 35927 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35928 let hasNewValue = 1; 35929 let opNewValue = 0; 35930 let isPseudo = 1; 35931 let isCodeGenOnly = 1; 35932 let DecoderNamespace = "EXT_mmvec"; 35933 } 35934 def V6_vsubh_dv : HInst< 35935 (outs HvxWR:$Vdd32), 35936 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35937 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)", 35938 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 35939 let Inst{7-5} = 0b100; 35940 let Inst{13-13} = 0b0; 35941 let Inst{31-21} = 0b00011100100; 35942 let hasNewValue = 1; 35943 let opNewValue = 0; 35944 let DecoderNamespace = "EXT_mmvec"; 35945 } 35946 def V6_vsubh_dv_alt : HInst< 35947 (outs HvxWR:$Vdd32), 35948 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35949 "$Vdd32 = vsubh($Vuu32,$Vvv32)", 35950 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35951 let hasNewValue = 1; 35952 let opNewValue = 0; 35953 let isPseudo = 1; 35954 let isCodeGenOnly = 1; 35955 let DecoderNamespace = "EXT_mmvec"; 35956 } 35957 def V6_vsubhnq : HInst< 35958 (outs HvxVR:$Vx32), 35959 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35960 "if (!$Qv4) $Vx32.h -= $Vu32.h", 35961 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 35962 let Inst{7-5} = 0b010; 35963 let Inst{13-13} = 0b1; 35964 let Inst{21-16} = 0b000010; 35965 let Inst{31-24} = 0b00011110; 35966 let hasNewValue = 1; 35967 let opNewValue = 0; 35968 let DecoderNamespace = "EXT_mmvec"; 35969 let Constraints = "$Vx32 = $Vx32in"; 35970 } 35971 def V6_vsubhnq_alt : HInst< 35972 (outs HvxVR:$Vx32), 35973 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35974 "if (!$Qv4.h) $Vx32.h -= $Vu32.h", 35975 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35976 let hasNewValue = 1; 35977 let opNewValue = 0; 35978 let isPseudo = 1; 35979 let isCodeGenOnly = 1; 35980 let DecoderNamespace = "EXT_mmvec"; 35981 let Constraints = "$Vx32 = $Vx32in"; 35982 } 35983 def V6_vsubhq : HInst< 35984 (outs HvxVR:$Vx32), 35985 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 35986 "if ($Qv4) $Vx32.h -= $Vu32.h", 35987 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 35988 let Inst{7-5} = 0b111; 35989 let Inst{13-13} = 0b1; 35990 let Inst{21-16} = 0b000001; 35991 let Inst{31-24} = 0b00011110; 35992 let hasNewValue = 1; 35993 let opNewValue = 0; 35994 let DecoderNamespace = "EXT_mmvec"; 35995 let Constraints = "$Vx32 = $Vx32in"; 35996 } 35997 def V6_vsubhq_alt : HInst< 35998 (outs HvxVR:$Vx32), 35999 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 36000 "if ($Qv4.h) $Vx32.h -= $Vu32.h", 36001 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36002 let hasNewValue = 1; 36003 let opNewValue = 0; 36004 let isPseudo = 1; 36005 let isCodeGenOnly = 1; 36006 let DecoderNamespace = "EXT_mmvec"; 36007 let Constraints = "$Vx32 = $Vx32in"; 36008 } 36009 def V6_vsubhsat : HInst< 36010 (outs HvxVR:$Vd32), 36011 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36012 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat", 36013 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36014 let Inst{7-5} = 0b010; 36015 let Inst{13-13} = 0b0; 36016 let Inst{31-21} = 0b00011100011; 36017 let hasNewValue = 1; 36018 let opNewValue = 0; 36019 let DecoderNamespace = "EXT_mmvec"; 36020 } 36021 def V6_vsubhsat_alt : HInst< 36022 (outs HvxVR:$Vd32), 36023 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36024 "$Vd32 = vsubh($Vu32,$Vv32):sat", 36025 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36026 let hasNewValue = 1; 36027 let opNewValue = 0; 36028 let isPseudo = 1; 36029 let isCodeGenOnly = 1; 36030 let DecoderNamespace = "EXT_mmvec"; 36031 } 36032 def V6_vsubhsat_dv : HInst< 36033 (outs HvxWR:$Vdd32), 36034 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36035 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat", 36036 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 36037 let Inst{7-5} = 0b000; 36038 let Inst{13-13} = 0b0; 36039 let Inst{31-21} = 0b00011100101; 36040 let hasNewValue = 1; 36041 let opNewValue = 0; 36042 let DecoderNamespace = "EXT_mmvec"; 36043 } 36044 def V6_vsubhsat_dv_alt : HInst< 36045 (outs HvxWR:$Vdd32), 36046 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36047 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat", 36048 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36049 let hasNewValue = 1; 36050 let opNewValue = 0; 36051 let isPseudo = 1; 36052 let isCodeGenOnly = 1; 36053 let DecoderNamespace = "EXT_mmvec"; 36054 } 36055 def V6_vsubhw : HInst< 36056 (outs HvxWR:$Vdd32), 36057 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36058 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)", 36059 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 36060 let Inst{7-5} = 0b111; 36061 let Inst{13-13} = 0b0; 36062 let Inst{31-21} = 0b00011100101; 36063 let hasNewValue = 1; 36064 let opNewValue = 0; 36065 let DecoderNamespace = "EXT_mmvec"; 36066 } 36067 def V6_vsubhw_alt : HInst< 36068 (outs HvxWR:$Vdd32), 36069 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36070 "$Vdd32 = vsubh($Vu32,$Vv32)", 36071 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36072 let hasNewValue = 1; 36073 let opNewValue = 0; 36074 let isPseudo = 1; 36075 let isCodeGenOnly = 1; 36076 let DecoderNamespace = "EXT_mmvec"; 36077 } 36078 def V6_vsububh : HInst< 36079 (outs HvxWR:$Vdd32), 36080 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36081 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)", 36082 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 36083 let Inst{7-5} = 0b101; 36084 let Inst{13-13} = 0b0; 36085 let Inst{31-21} = 0b00011100101; 36086 let hasNewValue = 1; 36087 let opNewValue = 0; 36088 let DecoderNamespace = "EXT_mmvec"; 36089 } 36090 def V6_vsububh_alt : HInst< 36091 (outs HvxWR:$Vdd32), 36092 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36093 "$Vdd32 = vsubub($Vu32,$Vv32)", 36094 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36095 let hasNewValue = 1; 36096 let opNewValue = 0; 36097 let isPseudo = 1; 36098 let isCodeGenOnly = 1; 36099 let DecoderNamespace = "EXT_mmvec"; 36100 } 36101 def V6_vsububsat : HInst< 36102 (outs HvxVR:$Vd32), 36103 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36104 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat", 36105 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36106 let Inst{7-5} = 0b000; 36107 let Inst{13-13} = 0b0; 36108 let Inst{31-21} = 0b00011100011; 36109 let hasNewValue = 1; 36110 let opNewValue = 0; 36111 let DecoderNamespace = "EXT_mmvec"; 36112 } 36113 def V6_vsububsat_alt : HInst< 36114 (outs HvxVR:$Vd32), 36115 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36116 "$Vd32 = vsubub($Vu32,$Vv32):sat", 36117 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36118 let hasNewValue = 1; 36119 let opNewValue = 0; 36120 let isPseudo = 1; 36121 let isCodeGenOnly = 1; 36122 let DecoderNamespace = "EXT_mmvec"; 36123 } 36124 def V6_vsububsat_dv : HInst< 36125 (outs HvxWR:$Vdd32), 36126 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36127 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat", 36128 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 36129 let Inst{7-5} = 0b110; 36130 let Inst{13-13} = 0b0; 36131 let Inst{31-21} = 0b00011100100; 36132 let hasNewValue = 1; 36133 let opNewValue = 0; 36134 let DecoderNamespace = "EXT_mmvec"; 36135 } 36136 def V6_vsububsat_dv_alt : HInst< 36137 (outs HvxWR:$Vdd32), 36138 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36139 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat", 36140 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36141 let hasNewValue = 1; 36142 let opNewValue = 0; 36143 let isPseudo = 1; 36144 let isCodeGenOnly = 1; 36145 let DecoderNamespace = "EXT_mmvec"; 36146 } 36147 def V6_vsubububb_sat : HInst< 36148 (outs HvxVR:$Vd32), 36149 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36150 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat", 36151 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 36152 let Inst{7-5} = 0b101; 36153 let Inst{13-13} = 0b0; 36154 let Inst{31-21} = 0b00011110101; 36155 let hasNewValue = 1; 36156 let opNewValue = 0; 36157 let DecoderNamespace = "EXT_mmvec"; 36158 } 36159 def V6_vsubuhsat : HInst< 36160 (outs HvxVR:$Vd32), 36161 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36162 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat", 36163 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36164 let Inst{7-5} = 0b001; 36165 let Inst{13-13} = 0b0; 36166 let Inst{31-21} = 0b00011100011; 36167 let hasNewValue = 1; 36168 let opNewValue = 0; 36169 let DecoderNamespace = "EXT_mmvec"; 36170 } 36171 def V6_vsubuhsat_alt : HInst< 36172 (outs HvxVR:$Vd32), 36173 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36174 "$Vd32 = vsubuh($Vu32,$Vv32):sat", 36175 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36176 let hasNewValue = 1; 36177 let opNewValue = 0; 36178 let isPseudo = 1; 36179 let isCodeGenOnly = 1; 36180 let DecoderNamespace = "EXT_mmvec"; 36181 } 36182 def V6_vsubuhsat_dv : HInst< 36183 (outs HvxWR:$Vdd32), 36184 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36185 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat", 36186 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 36187 let Inst{7-5} = 0b111; 36188 let Inst{13-13} = 0b0; 36189 let Inst{31-21} = 0b00011100100; 36190 let hasNewValue = 1; 36191 let opNewValue = 0; 36192 let DecoderNamespace = "EXT_mmvec"; 36193 } 36194 def V6_vsubuhsat_dv_alt : HInst< 36195 (outs HvxWR:$Vdd32), 36196 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36197 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat", 36198 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36199 let hasNewValue = 1; 36200 let opNewValue = 0; 36201 let isPseudo = 1; 36202 let isCodeGenOnly = 1; 36203 let DecoderNamespace = "EXT_mmvec"; 36204 } 36205 def V6_vsubuhw : HInst< 36206 (outs HvxWR:$Vdd32), 36207 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36208 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)", 36209 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 36210 let Inst{7-5} = 0b110; 36211 let Inst{13-13} = 0b0; 36212 let Inst{31-21} = 0b00011100101; 36213 let hasNewValue = 1; 36214 let opNewValue = 0; 36215 let DecoderNamespace = "EXT_mmvec"; 36216 } 36217 def V6_vsubuhw_alt : HInst< 36218 (outs HvxWR:$Vdd32), 36219 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36220 "$Vdd32 = vsubuh($Vu32,$Vv32)", 36221 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36222 let hasNewValue = 1; 36223 let opNewValue = 0; 36224 let isPseudo = 1; 36225 let isCodeGenOnly = 1; 36226 let DecoderNamespace = "EXT_mmvec"; 36227 } 36228 def V6_vsubuwsat : HInst< 36229 (outs HvxVR:$Vd32), 36230 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36231 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat", 36232 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 36233 let Inst{7-5} = 0b100; 36234 let Inst{13-13} = 0b0; 36235 let Inst{31-21} = 0b00011111110; 36236 let hasNewValue = 1; 36237 let opNewValue = 0; 36238 let DecoderNamespace = "EXT_mmvec"; 36239 } 36240 def V6_vsubuwsat_alt : HInst< 36241 (outs HvxVR:$Vd32), 36242 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36243 "$Vd32 = vsubuw($Vu32,$Vv32):sat", 36244 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36245 let hasNewValue = 1; 36246 let opNewValue = 0; 36247 let isPseudo = 1; 36248 let isCodeGenOnly = 1; 36249 let DecoderNamespace = "EXT_mmvec"; 36250 } 36251 def V6_vsubuwsat_dv : HInst< 36252 (outs HvxWR:$Vdd32), 36253 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36254 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat", 36255 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 36256 let Inst{7-5} = 0b011; 36257 let Inst{13-13} = 0b0; 36258 let Inst{31-21} = 0b00011110101; 36259 let hasNewValue = 1; 36260 let opNewValue = 0; 36261 let DecoderNamespace = "EXT_mmvec"; 36262 } 36263 def V6_vsubuwsat_dv_alt : HInst< 36264 (outs HvxWR:$Vdd32), 36265 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36266 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat", 36267 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36268 let hasNewValue = 1; 36269 let opNewValue = 0; 36270 let isPseudo = 1; 36271 let isCodeGenOnly = 1; 36272 let DecoderNamespace = "EXT_mmvec"; 36273 } 36274 def V6_vsubw : HInst< 36275 (outs HvxVR:$Vd32), 36276 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36277 "$Vd32.w = vsub($Vu32.w,$Vv32.w)", 36278 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36279 let Inst{7-5} = 0b111; 36280 let Inst{13-13} = 0b0; 36281 let Inst{31-21} = 0b00011100010; 36282 let hasNewValue = 1; 36283 let opNewValue = 0; 36284 let DecoderNamespace = "EXT_mmvec"; 36285 } 36286 def V6_vsubw_alt : HInst< 36287 (outs HvxVR:$Vd32), 36288 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36289 "$Vd32 = vsubw($Vu32,$Vv32)", 36290 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36291 let hasNewValue = 1; 36292 let opNewValue = 0; 36293 let isPseudo = 1; 36294 let isCodeGenOnly = 1; 36295 let DecoderNamespace = "EXT_mmvec"; 36296 } 36297 def V6_vsubw_dv : HInst< 36298 (outs HvxWR:$Vdd32), 36299 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36300 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)", 36301 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 36302 let Inst{7-5} = 0b101; 36303 let Inst{13-13} = 0b0; 36304 let Inst{31-21} = 0b00011100100; 36305 let hasNewValue = 1; 36306 let opNewValue = 0; 36307 let DecoderNamespace = "EXT_mmvec"; 36308 } 36309 def V6_vsubw_dv_alt : HInst< 36310 (outs HvxWR:$Vdd32), 36311 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36312 "$Vdd32 = vsubw($Vuu32,$Vvv32)", 36313 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36314 let hasNewValue = 1; 36315 let opNewValue = 0; 36316 let isPseudo = 1; 36317 let isCodeGenOnly = 1; 36318 let DecoderNamespace = "EXT_mmvec"; 36319 } 36320 def V6_vsubwnq : HInst< 36321 (outs HvxVR:$Vx32), 36322 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 36323 "if (!$Qv4) $Vx32.w -= $Vu32.w", 36324 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 36325 let Inst{7-5} = 0b011; 36326 let Inst{13-13} = 0b1; 36327 let Inst{21-16} = 0b000010; 36328 let Inst{31-24} = 0b00011110; 36329 let hasNewValue = 1; 36330 let opNewValue = 0; 36331 let DecoderNamespace = "EXT_mmvec"; 36332 let Constraints = "$Vx32 = $Vx32in"; 36333 } 36334 def V6_vsubwnq_alt : HInst< 36335 (outs HvxVR:$Vx32), 36336 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 36337 "if (!$Qv4.w) $Vx32.w -= $Vu32.w", 36338 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36339 let hasNewValue = 1; 36340 let opNewValue = 0; 36341 let isPseudo = 1; 36342 let isCodeGenOnly = 1; 36343 let DecoderNamespace = "EXT_mmvec"; 36344 let Constraints = "$Vx32 = $Vx32in"; 36345 } 36346 def V6_vsubwq : HInst< 36347 (outs HvxVR:$Vx32), 36348 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 36349 "if ($Qv4) $Vx32.w -= $Vu32.w", 36350 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 36351 let Inst{7-5} = 0b000; 36352 let Inst{13-13} = 0b1; 36353 let Inst{21-16} = 0b000010; 36354 let Inst{31-24} = 0b00011110; 36355 let hasNewValue = 1; 36356 let opNewValue = 0; 36357 let DecoderNamespace = "EXT_mmvec"; 36358 let Constraints = "$Vx32 = $Vx32in"; 36359 } 36360 def V6_vsubwq_alt : HInst< 36361 (outs HvxVR:$Vx32), 36362 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 36363 "if ($Qv4.w) $Vx32.w -= $Vu32.w", 36364 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36365 let hasNewValue = 1; 36366 let opNewValue = 0; 36367 let isPseudo = 1; 36368 let isCodeGenOnly = 1; 36369 let DecoderNamespace = "EXT_mmvec"; 36370 let Constraints = "$Vx32 = $Vx32in"; 36371 } 36372 def V6_vsubwsat : HInst< 36373 (outs HvxVR:$Vd32), 36374 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36375 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat", 36376 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36377 let Inst{7-5} = 0b011; 36378 let Inst{13-13} = 0b0; 36379 let Inst{31-21} = 0b00011100011; 36380 let hasNewValue = 1; 36381 let opNewValue = 0; 36382 let DecoderNamespace = "EXT_mmvec"; 36383 } 36384 def V6_vsubwsat_alt : HInst< 36385 (outs HvxVR:$Vd32), 36386 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36387 "$Vd32 = vsubw($Vu32,$Vv32):sat", 36388 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36389 let hasNewValue = 1; 36390 let opNewValue = 0; 36391 let isPseudo = 1; 36392 let isCodeGenOnly = 1; 36393 let DecoderNamespace = "EXT_mmvec"; 36394 } 36395 def V6_vsubwsat_dv : HInst< 36396 (outs HvxWR:$Vdd32), 36397 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36398 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat", 36399 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 36400 let Inst{7-5} = 0b001; 36401 let Inst{13-13} = 0b0; 36402 let Inst{31-21} = 0b00011100101; 36403 let hasNewValue = 1; 36404 let opNewValue = 0; 36405 let DecoderNamespace = "EXT_mmvec"; 36406 } 36407 def V6_vsubwsat_dv_alt : HInst< 36408 (outs HvxWR:$Vdd32), 36409 (ins HvxWR:$Vuu32, HvxWR:$Vvv32), 36410 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat", 36411 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36412 let hasNewValue = 1; 36413 let opNewValue = 0; 36414 let isPseudo = 1; 36415 let isCodeGenOnly = 1; 36416 let DecoderNamespace = "EXT_mmvec"; 36417 } 36418 def V6_vswap : HInst< 36419 (outs HvxWR:$Vdd32), 36420 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 36421 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)", 36422 tc_316c637c, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> { 36423 let Inst{7-7} = 0b0; 36424 let Inst{13-13} = 0b1; 36425 let Inst{31-21} = 0b00011110101; 36426 let hasNewValue = 1; 36427 let opNewValue = 0; 36428 let DecoderNamespace = "EXT_mmvec"; 36429 } 36430 def V6_vtmpyb : HInst< 36431 (outs HvxWR:$Vdd32), 36432 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36433 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)", 36434 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 36435 let Inst{7-5} = 0b000; 36436 let Inst{13-13} = 0b0; 36437 let Inst{31-21} = 0b00011001000; 36438 let hasNewValue = 1; 36439 let opNewValue = 0; 36440 let DecoderNamespace = "EXT_mmvec"; 36441 } 36442 def V6_vtmpyb_acc : HInst< 36443 (outs HvxWR:$Vxx32), 36444 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36445 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)", 36446 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 36447 let Inst{7-5} = 0b000; 36448 let Inst{13-13} = 0b1; 36449 let Inst{31-21} = 0b00011001000; 36450 let hasNewValue = 1; 36451 let opNewValue = 0; 36452 let isAccumulator = 1; 36453 let DecoderNamespace = "EXT_mmvec"; 36454 let Constraints = "$Vxx32 = $Vxx32in"; 36455 } 36456 def V6_vtmpyb_acc_alt : HInst< 36457 (outs HvxWR:$Vxx32), 36458 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36459 "$Vxx32 += vtmpyb($Vuu32,$Rt32)", 36460 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36461 let hasNewValue = 1; 36462 let opNewValue = 0; 36463 let isAccumulator = 1; 36464 let isPseudo = 1; 36465 let isCodeGenOnly = 1; 36466 let DecoderNamespace = "EXT_mmvec"; 36467 let Constraints = "$Vxx32 = $Vxx32in"; 36468 } 36469 def V6_vtmpyb_alt : HInst< 36470 (outs HvxWR:$Vdd32), 36471 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36472 "$Vdd32 = vtmpyb($Vuu32,$Rt32)", 36473 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36474 let hasNewValue = 1; 36475 let opNewValue = 0; 36476 let isPseudo = 1; 36477 let isCodeGenOnly = 1; 36478 let DecoderNamespace = "EXT_mmvec"; 36479 } 36480 def V6_vtmpybus : HInst< 36481 (outs HvxWR:$Vdd32), 36482 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36483 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)", 36484 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 36485 let Inst{7-5} = 0b001; 36486 let Inst{13-13} = 0b0; 36487 let Inst{31-21} = 0b00011001000; 36488 let hasNewValue = 1; 36489 let opNewValue = 0; 36490 let DecoderNamespace = "EXT_mmvec"; 36491 } 36492 def V6_vtmpybus_acc : HInst< 36493 (outs HvxWR:$Vxx32), 36494 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36495 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)", 36496 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 36497 let Inst{7-5} = 0b001; 36498 let Inst{13-13} = 0b1; 36499 let Inst{31-21} = 0b00011001000; 36500 let hasNewValue = 1; 36501 let opNewValue = 0; 36502 let isAccumulator = 1; 36503 let DecoderNamespace = "EXT_mmvec"; 36504 let Constraints = "$Vxx32 = $Vxx32in"; 36505 } 36506 def V6_vtmpybus_acc_alt : HInst< 36507 (outs HvxWR:$Vxx32), 36508 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36509 "$Vxx32 += vtmpybus($Vuu32,$Rt32)", 36510 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36511 let hasNewValue = 1; 36512 let opNewValue = 0; 36513 let isAccumulator = 1; 36514 let isPseudo = 1; 36515 let isCodeGenOnly = 1; 36516 let DecoderNamespace = "EXT_mmvec"; 36517 let Constraints = "$Vxx32 = $Vxx32in"; 36518 } 36519 def V6_vtmpybus_alt : HInst< 36520 (outs HvxWR:$Vdd32), 36521 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36522 "$Vdd32 = vtmpybus($Vuu32,$Rt32)", 36523 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36524 let hasNewValue = 1; 36525 let opNewValue = 0; 36526 let isPseudo = 1; 36527 let isCodeGenOnly = 1; 36528 let DecoderNamespace = "EXT_mmvec"; 36529 } 36530 def V6_vtmpyhb : HInst< 36531 (outs HvxWR:$Vdd32), 36532 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36533 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)", 36534 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 36535 let Inst{7-5} = 0b100; 36536 let Inst{13-13} = 0b0; 36537 let Inst{31-21} = 0b00011001101; 36538 let hasNewValue = 1; 36539 let opNewValue = 0; 36540 let DecoderNamespace = "EXT_mmvec"; 36541 } 36542 def V6_vtmpyhb_acc : HInst< 36543 (outs HvxWR:$Vxx32), 36544 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36545 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)", 36546 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 36547 let Inst{7-5} = 0b010; 36548 let Inst{13-13} = 0b1; 36549 let Inst{31-21} = 0b00011001000; 36550 let hasNewValue = 1; 36551 let opNewValue = 0; 36552 let isAccumulator = 1; 36553 let DecoderNamespace = "EXT_mmvec"; 36554 let Constraints = "$Vxx32 = $Vxx32in"; 36555 } 36556 def V6_vtmpyhb_acc_alt : HInst< 36557 (outs HvxWR:$Vxx32), 36558 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 36559 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)", 36560 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36561 let hasNewValue = 1; 36562 let opNewValue = 0; 36563 let isAccumulator = 1; 36564 let isPseudo = 1; 36565 let isCodeGenOnly = 1; 36566 let DecoderNamespace = "EXT_mmvec"; 36567 let Constraints = "$Vxx32 = $Vxx32in"; 36568 } 36569 def V6_vtmpyhb_alt : HInst< 36570 (outs HvxWR:$Vdd32), 36571 (ins HvxWR:$Vuu32, IntRegs:$Rt32), 36572 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)", 36573 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36574 let hasNewValue = 1; 36575 let opNewValue = 0; 36576 let isPseudo = 1; 36577 let isCodeGenOnly = 1; 36578 let DecoderNamespace = "EXT_mmvec"; 36579 } 36580 def V6_vtran2x2_map : HInst< 36581 (outs HvxVR:$Vy32, HvxVR:$Vx32), 36582 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 36583 "vtrans2x2($Vy32,$Vx32,$Rt32)", 36584 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36585 let hasNewValue = 1; 36586 let opNewValue = 0; 36587 let hasNewValue2 = 1; 36588 let opNewValue2 = 1; 36589 let isPseudo = 1; 36590 let isCodeGenOnly = 1; 36591 let DecoderNamespace = "EXT_mmvec"; 36592 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 36593 } 36594 def V6_vunpackb : HInst< 36595 (outs HvxWR:$Vdd32), 36596 (ins HvxVR:$Vu32), 36597 "$Vdd32.h = vunpack($Vu32.b)", 36598 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 36599 let Inst{7-5} = 0b010; 36600 let Inst{13-13} = 0b0; 36601 let Inst{31-16} = 0b0001111000000001; 36602 let hasNewValue = 1; 36603 let opNewValue = 0; 36604 let DecoderNamespace = "EXT_mmvec"; 36605 } 36606 def V6_vunpackb_alt : HInst< 36607 (outs HvxWR:$Vdd32), 36608 (ins HvxVR:$Vu32), 36609 "$Vdd32 = vunpackb($Vu32)", 36610 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36611 let hasNewValue = 1; 36612 let opNewValue = 0; 36613 let isPseudo = 1; 36614 let isCodeGenOnly = 1; 36615 let DecoderNamespace = "EXT_mmvec"; 36616 } 36617 def V6_vunpackh : HInst< 36618 (outs HvxWR:$Vdd32), 36619 (ins HvxVR:$Vu32), 36620 "$Vdd32.w = vunpack($Vu32.h)", 36621 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 36622 let Inst{7-5} = 0b011; 36623 let Inst{13-13} = 0b0; 36624 let Inst{31-16} = 0b0001111000000001; 36625 let hasNewValue = 1; 36626 let opNewValue = 0; 36627 let DecoderNamespace = "EXT_mmvec"; 36628 } 36629 def V6_vunpackh_alt : HInst< 36630 (outs HvxWR:$Vdd32), 36631 (ins HvxVR:$Vu32), 36632 "$Vdd32 = vunpackh($Vu32)", 36633 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36634 let hasNewValue = 1; 36635 let opNewValue = 0; 36636 let isPseudo = 1; 36637 let isCodeGenOnly = 1; 36638 let DecoderNamespace = "EXT_mmvec"; 36639 } 36640 def V6_vunpackob : HInst< 36641 (outs HvxWR:$Vxx32), 36642 (ins HvxWR:$Vxx32in, HvxVR:$Vu32), 36643 "$Vxx32.h |= vunpacko($Vu32.b)", 36644 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 36645 let Inst{7-5} = 0b000; 36646 let Inst{13-13} = 0b1; 36647 let Inst{31-16} = 0b0001111000000000; 36648 let hasNewValue = 1; 36649 let opNewValue = 0; 36650 let isAccumulator = 1; 36651 let DecoderNamespace = "EXT_mmvec"; 36652 let Constraints = "$Vxx32 = $Vxx32in"; 36653 } 36654 def V6_vunpackob_alt : HInst< 36655 (outs HvxWR:$Vxx32), 36656 (ins HvxWR:$Vxx32in, HvxVR:$Vu32), 36657 "$Vxx32 |= vunpackob($Vu32)", 36658 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36659 let hasNewValue = 1; 36660 let opNewValue = 0; 36661 let isAccumulator = 1; 36662 let isPseudo = 1; 36663 let DecoderNamespace = "EXT_mmvec"; 36664 let Constraints = "$Vxx32 = $Vxx32in"; 36665 } 36666 def V6_vunpackoh : HInst< 36667 (outs HvxWR:$Vxx32), 36668 (ins HvxWR:$Vxx32in, HvxVR:$Vu32), 36669 "$Vxx32.w |= vunpacko($Vu32.h)", 36670 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 36671 let Inst{7-5} = 0b001; 36672 let Inst{13-13} = 0b1; 36673 let Inst{31-16} = 0b0001111000000000; 36674 let hasNewValue = 1; 36675 let opNewValue = 0; 36676 let isAccumulator = 1; 36677 let DecoderNamespace = "EXT_mmvec"; 36678 let Constraints = "$Vxx32 = $Vxx32in"; 36679 } 36680 def V6_vunpackoh_alt : HInst< 36681 (outs HvxWR:$Vxx32), 36682 (ins HvxWR:$Vxx32in, HvxVR:$Vu32), 36683 "$Vxx32 |= vunpackoh($Vu32)", 36684 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36685 let hasNewValue = 1; 36686 let opNewValue = 0; 36687 let isAccumulator = 1; 36688 let isPseudo = 1; 36689 let isCodeGenOnly = 1; 36690 let DecoderNamespace = "EXT_mmvec"; 36691 let Constraints = "$Vxx32 = $Vxx32in"; 36692 } 36693 def V6_vunpackub : HInst< 36694 (outs HvxWR:$Vdd32), 36695 (ins HvxVR:$Vu32), 36696 "$Vdd32.uh = vunpack($Vu32.ub)", 36697 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 36698 let Inst{7-5} = 0b000; 36699 let Inst{13-13} = 0b0; 36700 let Inst{31-16} = 0b0001111000000001; 36701 let hasNewValue = 1; 36702 let opNewValue = 0; 36703 let DecoderNamespace = "EXT_mmvec"; 36704 } 36705 def V6_vunpackub_alt : HInst< 36706 (outs HvxWR:$Vdd32), 36707 (ins HvxVR:$Vu32), 36708 "$Vdd32 = vunpackub($Vu32)", 36709 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36710 let hasNewValue = 1; 36711 let opNewValue = 0; 36712 let isPseudo = 1; 36713 let isCodeGenOnly = 1; 36714 let DecoderNamespace = "EXT_mmvec"; 36715 } 36716 def V6_vunpackuh : HInst< 36717 (outs HvxWR:$Vdd32), 36718 (ins HvxVR:$Vu32), 36719 "$Vdd32.uw = vunpack($Vu32.uh)", 36720 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 36721 let Inst{7-5} = 0b001; 36722 let Inst{13-13} = 0b0; 36723 let Inst{31-16} = 0b0001111000000001; 36724 let hasNewValue = 1; 36725 let opNewValue = 0; 36726 let DecoderNamespace = "EXT_mmvec"; 36727 } 36728 def V6_vunpackuh_alt : HInst< 36729 (outs HvxWR:$Vdd32), 36730 (ins HvxVR:$Vu32), 36731 "$Vdd32 = vunpackuh($Vu32)", 36732 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36733 let hasNewValue = 1; 36734 let opNewValue = 0; 36735 let isPseudo = 1; 36736 let isCodeGenOnly = 1; 36737 let DecoderNamespace = "EXT_mmvec"; 36738 } 36739 def V6_vwhist128 : HInst< 36740 (outs), 36741 (ins), 36742 "vwhist128", 36743 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 36744 let Inst{13-0} = 0b10010010000000; 36745 let Inst{31-16} = 0b0001111000000000; 36746 let DecoderNamespace = "EXT_mmvec"; 36747 } 36748 def V6_vwhist128m : HInst< 36749 (outs), 36750 (ins u1_0Imm:$Ii), 36751 "vwhist128(#$Ii)", 36752 tc_b77635b4, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> { 36753 let Inst{7-0} = 0b10000000; 36754 let Inst{13-9} = 0b10011; 36755 let Inst{31-16} = 0b0001111000000000; 36756 let DecoderNamespace = "EXT_mmvec"; 36757 } 36758 def V6_vwhist128q : HInst< 36759 (outs), 36760 (ins HvxQR:$Qv4), 36761 "vwhist128($Qv4)", 36762 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 36763 let Inst{13-0} = 0b10010010000000; 36764 let Inst{21-16} = 0b000010; 36765 let Inst{31-24} = 0b00011110; 36766 let DecoderNamespace = "EXT_mmvec"; 36767 } 36768 def V6_vwhist128qm : HInst< 36769 (outs), 36770 (ins HvxQR:$Qv4, u1_0Imm:$Ii), 36771 "vwhist128($Qv4,#$Ii)", 36772 tc_28978789, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> { 36773 let Inst{7-0} = 0b10000000; 36774 let Inst{13-9} = 0b10011; 36775 let Inst{21-16} = 0b000010; 36776 let Inst{31-24} = 0b00011110; 36777 let DecoderNamespace = "EXT_mmvec"; 36778 } 36779 def V6_vwhist256 : HInst< 36780 (outs), 36781 (ins), 36782 "vwhist256", 36783 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 36784 let Inst{13-0} = 0b10001010000000; 36785 let Inst{31-16} = 0b0001111000000000; 36786 let DecoderNamespace = "EXT_mmvec"; 36787 } 36788 def V6_vwhist256_sat : HInst< 36789 (outs), 36790 (ins), 36791 "vwhist256:sat", 36792 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 36793 let Inst{13-0} = 0b10001110000000; 36794 let Inst{31-16} = 0b0001111000000000; 36795 let DecoderNamespace = "EXT_mmvec"; 36796 } 36797 def V6_vwhist256q : HInst< 36798 (outs), 36799 (ins HvxQR:$Qv4), 36800 "vwhist256($Qv4)", 36801 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 36802 let Inst{13-0} = 0b10001010000000; 36803 let Inst{21-16} = 0b000010; 36804 let Inst{31-24} = 0b00011110; 36805 let DecoderNamespace = "EXT_mmvec"; 36806 } 36807 def V6_vwhist256q_sat : HInst< 36808 (outs), 36809 (ins HvxQR:$Qv4), 36810 "vwhist256($Qv4):sat", 36811 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 36812 let Inst{13-0} = 0b10001110000000; 36813 let Inst{21-16} = 0b000010; 36814 let Inst{31-24} = 0b00011110; 36815 let DecoderNamespace = "EXT_mmvec"; 36816 } 36817 def V6_vxor : HInst< 36818 (outs HvxVR:$Vd32), 36819 (ins HvxVR:$Vu32, HvxVR:$Vv32), 36820 "$Vd32 = vxor($Vu32,$Vv32)", 36821 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36822 let Inst{7-5} = 0b111; 36823 let Inst{13-13} = 0b0; 36824 let Inst{31-21} = 0b00011100001; 36825 let hasNewValue = 1; 36826 let opNewValue = 0; 36827 let DecoderNamespace = "EXT_mmvec"; 36828 } 36829 def V6_vzb : HInst< 36830 (outs HvxWR:$Vdd32), 36831 (ins HvxVR:$Vu32), 36832 "$Vdd32.uh = vzxt($Vu32.ub)", 36833 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 36834 let Inst{7-5} = 0b001; 36835 let Inst{13-13} = 0b0; 36836 let Inst{31-16} = 0b0001111000000010; 36837 let hasNewValue = 1; 36838 let opNewValue = 0; 36839 let DecoderNamespace = "EXT_mmvec"; 36840 } 36841 def V6_vzb_alt : HInst< 36842 (outs HvxWR:$Vdd32), 36843 (ins HvxVR:$Vu32), 36844 "$Vdd32 = vzxtb($Vu32)", 36845 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36846 let hasNewValue = 1; 36847 let opNewValue = 0; 36848 let isPseudo = 1; 36849 let isCodeGenOnly = 1; 36850 let DecoderNamespace = "EXT_mmvec"; 36851 } 36852 def V6_vzh : HInst< 36853 (outs HvxWR:$Vdd32), 36854 (ins HvxVR:$Vu32), 36855 "$Vdd32.uw = vzxt($Vu32.uh)", 36856 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 36857 let Inst{7-5} = 0b010; 36858 let Inst{13-13} = 0b0; 36859 let Inst{31-16} = 0b0001111000000010; 36860 let hasNewValue = 1; 36861 let opNewValue = 0; 36862 let DecoderNamespace = "EXT_mmvec"; 36863 } 36864 def V6_vzh_alt : HInst< 36865 (outs HvxWR:$Vdd32), 36866 (ins HvxVR:$Vu32), 36867 "$Vdd32 = vzxth($Vu32)", 36868 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36869 let hasNewValue = 1; 36870 let opNewValue = 0; 36871 let isPseudo = 1; 36872 let isCodeGenOnly = 1; 36873 let DecoderNamespace = "EXT_mmvec"; 36874 } 36875 def Y2_barrier : HInst< 36876 (outs), 36877 (ins), 36878 "barrier", 36879 tc_367f7f3d, TypeST>, Enc_e3b0c4 { 36880 let Inst{13-0} = 0b00000000000000; 36881 let Inst{31-16} = 0b1010100000000000; 36882 let isSoloAX = 1; 36883 let hasSideEffects = 1; 36884 } 36885 def Y2_break : HInst< 36886 (outs), 36887 (ins), 36888 "brkpt", 36889 tc_4ca572d4, TypeCR>, Enc_e3b0c4 { 36890 let Inst{13-0} = 0b00000000000000; 36891 let Inst{31-16} = 0b0110110000100000; 36892 let isSolo = 1; 36893 } 36894 def Y2_dccleana : HInst< 36895 (outs), 36896 (ins IntRegs:$Rs32), 36897 "dccleana($Rs32)", 36898 tc_00e7c26e, TypeST>, Enc_ecbcc8 { 36899 let Inst{13-0} = 0b00000000000000; 36900 let Inst{31-21} = 0b10100000000; 36901 let isRestrictSlot1AOK = 1; 36902 let hasSideEffects = 1; 36903 } 36904 def Y2_dccleaninva : HInst< 36905 (outs), 36906 (ins IntRegs:$Rs32), 36907 "dccleaninva($Rs32)", 36908 tc_00e7c26e, TypeST>, Enc_ecbcc8 { 36909 let Inst{13-0} = 0b00000000000000; 36910 let Inst{31-21} = 0b10100000010; 36911 let isRestrictSlot1AOK = 1; 36912 let hasSideEffects = 1; 36913 } 36914 def Y2_dcfetch : HInst< 36915 (outs), 36916 (ins IntRegs:$Rs32), 36917 "dcfetch($Rs32)", 36918 tc_3da80ba5, TypeMAPPING> { 36919 let hasSideEffects = 1; 36920 let isPseudo = 1; 36921 let isCodeGenOnly = 1; 36922 } 36923 def Y2_dcfetchbo : HInst< 36924 (outs), 36925 (ins IntRegs:$Rs32, u11_3Imm:$Ii), 36926 "dcfetch($Rs32+#$Ii)", 36927 tc_4d9914c9, TypeLD>, Enc_2d829e { 36928 let Inst{13-11} = 0b000; 36929 let Inst{31-21} = 0b10010100000; 36930 let addrMode = BaseImmOffset; 36931 let isRestrictNoSlot1Store = 1; 36932 let hasSideEffects = 1; 36933 } 36934 def Y2_dcinva : HInst< 36935 (outs), 36936 (ins IntRegs:$Rs32), 36937 "dcinva($Rs32)", 36938 tc_00e7c26e, TypeST>, Enc_ecbcc8 { 36939 let Inst{13-0} = 0b00000000000000; 36940 let Inst{31-21} = 0b10100000001; 36941 let isRestrictSlot1AOK = 1; 36942 let hasSideEffects = 1; 36943 } 36944 def Y2_dczeroa : HInst< 36945 (outs), 36946 (ins IntRegs:$Rs32), 36947 "dczeroa($Rs32)", 36948 tc_00e7c26e, TypeST>, Enc_ecbcc8 { 36949 let Inst{13-0} = 0b00000000000000; 36950 let Inst{31-21} = 0b10100000110; 36951 let isRestrictSlot1AOK = 1; 36952 let mayStore = 1; 36953 let hasSideEffects = 1; 36954 } 36955 def Y2_icinva : HInst< 36956 (outs), 36957 (ins IntRegs:$Rs32), 36958 "icinva($Rs32)", 36959 tc_999d32db, TypeJ>, Enc_ecbcc8 { 36960 let Inst{13-0} = 0b00000000000000; 36961 let Inst{31-21} = 0b01010110110; 36962 let isSolo = 1; 36963 } 36964 def Y2_isync : HInst< 36965 (outs), 36966 (ins), 36967 "isync", 36968 tc_b13761ae, TypeJ>, Enc_e3b0c4 { 36969 let Inst{13-0} = 0b00000000000010; 36970 let Inst{31-16} = 0b0101011111000000; 36971 let isSolo = 1; 36972 } 36973 def Y2_syncht : HInst< 36974 (outs), 36975 (ins), 36976 "syncht", 36977 tc_367f7f3d, TypeST>, Enc_e3b0c4 { 36978 let Inst{13-0} = 0b00000000000000; 36979 let Inst{31-16} = 0b1010100001000000; 36980 let isSolo = 1; 36981 } 36982 def Y4_l2fetch : HInst< 36983 (outs), 36984 (ins IntRegs:$Rs32, IntRegs:$Rt32), 36985 "l2fetch($Rs32,$Rt32)", 36986 tc_daa058fa, TypeST>, Enc_ca3887 { 36987 let Inst{7-0} = 0b00000000; 36988 let Inst{13-13} = 0b0; 36989 let Inst{31-21} = 0b10100110000; 36990 let isSoloAX = 1; 36991 let mayStore = 1; 36992 let hasSideEffects = 1; 36993 } 36994 def Y4_trace : HInst< 36995 (outs), 36996 (ins IntRegs:$Rs32), 36997 "trace($Rs32)", 36998 tc_c82dc1ff, TypeCR>, Enc_ecbcc8 { 36999 let Inst{13-0} = 0b00000000000000; 37000 let Inst{31-21} = 0b01100010010; 37001 let isSoloAX = 1; 37002 } 37003 def Y5_l2fetch : HInst< 37004 (outs), 37005 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 37006 "l2fetch($Rs32,$Rtt32)", 37007 tc_daa058fa, TypeST>, Enc_e6abcf, Requires<[HasV5]> { 37008 let Inst{7-0} = 0b00000000; 37009 let Inst{13-13} = 0b0; 37010 let Inst{31-21} = 0b10100110100; 37011 let isSoloAX = 1; 37012 let mayStore = 1; 37013 let hasSideEffects = 1; 37014 } 37015 def dep_A2_addsat : HInst< 37016 (outs IntRegs:$Rd32), 37017 (ins IntRegs:$Rs32, IntRegs:$Rt32), 37018 "$Rd32 = add($Rs32,$Rt32):sat:deprecated", 37019 tc_b44c6e2a, TypeALU64>, Enc_5ab2be { 37020 let Inst{7-5} = 0b000; 37021 let Inst{13-13} = 0b0; 37022 let Inst{31-21} = 0b11010101100; 37023 let hasNewValue = 1; 37024 let opNewValue = 0; 37025 let prefersSlot3 = 1; 37026 let Defs = [USR_OVF]; 37027 } 37028 def dep_A2_subsat : HInst< 37029 (outs IntRegs:$Rd32), 37030 (ins IntRegs:$Rt32, IntRegs:$Rs32), 37031 "$Rd32 = sub($Rt32,$Rs32):sat:deprecated", 37032 tc_b44c6e2a, TypeALU64>, Enc_bd6011 { 37033 let Inst{7-5} = 0b100; 37034 let Inst{13-13} = 0b0; 37035 let Inst{31-21} = 0b11010101100; 37036 let hasNewValue = 1; 37037 let opNewValue = 0; 37038 let prefersSlot3 = 1; 37039 let Defs = [USR_OVF]; 37040 } 37041 def dep_S2_packhl : HInst< 37042 (outs DoubleRegs:$Rdd32), 37043 (ins IntRegs:$Rs32, IntRegs:$Rt32), 37044 "$Rdd32 = packhl($Rs32,$Rt32):deprecated", 37045 tc_540fdfbc, TypeALU64>, Enc_be32a5 { 37046 let Inst{7-5} = 0b000; 37047 let Inst{13-13} = 0b0; 37048 let Inst{31-21} = 0b11010100000; 37049 } 37050