1//===----------------------------------------------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// Automatically generated file, do not edit! 9//===----------------------------------------------------------------------===// 10 11def A2_abs : HInst< 12(outs IntRegs:$Rd32), 13(ins IntRegs:$Rs32), 14"$Rd32 = abs($Rs32)", 15tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 16let Inst{13-5} = 0b000000100; 17let Inst{31-21} = 0b10001100100; 18let hasNewValue = 1; 19let opNewValue = 0; 20let prefersSlot3 = 1; 21} 22def A2_absp : HInst< 23(outs DoubleRegs:$Rdd32), 24(ins DoubleRegs:$Rss32), 25"$Rdd32 = abs($Rss32)", 26tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 27let Inst{13-5} = 0b000000110; 28let Inst{31-21} = 0b10000000100; 29let prefersSlot3 = 1; 30} 31def A2_abssat : HInst< 32(outs IntRegs:$Rd32), 33(ins IntRegs:$Rs32), 34"$Rd32 = abs($Rs32):sat", 35tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 36let Inst{13-5} = 0b000000101; 37let Inst{31-21} = 0b10001100100; 38let hasNewValue = 1; 39let opNewValue = 0; 40let prefersSlot3 = 1; 41let Defs = [USR_OVF]; 42} 43def A2_add : HInst< 44(outs IntRegs:$Rd32), 45(ins IntRegs:$Rs32, IntRegs:$Rt32), 46"$Rd32 = add($Rs32,$Rt32)", 47tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 48let Inst{7-5} = 0b000; 49let Inst{13-13} = 0b0; 50let Inst{31-21} = 0b11110011000; 51let hasNewValue = 1; 52let opNewValue = 0; 53let BaseOpcode = "A2_add"; 54let CextOpcode = "A2_add"; 55let InputType = "reg"; 56let isCommutable = 1; 57let isPredicable = 1; 58} 59def A2_addh_h16_hh : HInst< 60(outs IntRegs:$Rd32), 61(ins IntRegs:$Rt32, IntRegs:$Rs32), 62"$Rd32 = add($Rt32.h,$Rs32.h):<<16", 63tc_01d44cb2, TypeALU64>, Enc_bd6011 { 64let Inst{7-5} = 0b011; 65let Inst{13-13} = 0b0; 66let Inst{31-21} = 0b11010101010; 67let hasNewValue = 1; 68let opNewValue = 0; 69let prefersSlot3 = 1; 70} 71def A2_addh_h16_hl : HInst< 72(outs IntRegs:$Rd32), 73(ins IntRegs:$Rt32, IntRegs:$Rs32), 74"$Rd32 = add($Rt32.h,$Rs32.l):<<16", 75tc_01d44cb2, TypeALU64>, Enc_bd6011 { 76let Inst{7-5} = 0b010; 77let Inst{13-13} = 0b0; 78let Inst{31-21} = 0b11010101010; 79let hasNewValue = 1; 80let opNewValue = 0; 81let prefersSlot3 = 1; 82} 83def A2_addh_h16_lh : HInst< 84(outs IntRegs:$Rd32), 85(ins IntRegs:$Rt32, IntRegs:$Rs32), 86"$Rd32 = add($Rt32.l,$Rs32.h):<<16", 87tc_01d44cb2, TypeALU64>, Enc_bd6011 { 88let Inst{7-5} = 0b001; 89let Inst{13-13} = 0b0; 90let Inst{31-21} = 0b11010101010; 91let hasNewValue = 1; 92let opNewValue = 0; 93let prefersSlot3 = 1; 94} 95def A2_addh_h16_ll : HInst< 96(outs IntRegs:$Rd32), 97(ins IntRegs:$Rt32, IntRegs:$Rs32), 98"$Rd32 = add($Rt32.l,$Rs32.l):<<16", 99tc_01d44cb2, TypeALU64>, Enc_bd6011 { 100let Inst{7-5} = 0b000; 101let Inst{13-13} = 0b0; 102let Inst{31-21} = 0b11010101010; 103let hasNewValue = 1; 104let opNewValue = 0; 105let prefersSlot3 = 1; 106} 107def A2_addh_h16_sat_hh : HInst< 108(outs IntRegs:$Rd32), 109(ins IntRegs:$Rt32, IntRegs:$Rs32), 110"$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16", 111tc_8a825db2, TypeALU64>, Enc_bd6011 { 112let Inst{7-5} = 0b111; 113let Inst{13-13} = 0b0; 114let Inst{31-21} = 0b11010101010; 115let hasNewValue = 1; 116let opNewValue = 0; 117let prefersSlot3 = 1; 118let Defs = [USR_OVF]; 119} 120def A2_addh_h16_sat_hl : HInst< 121(outs IntRegs:$Rd32), 122(ins IntRegs:$Rt32, IntRegs:$Rs32), 123"$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16", 124tc_8a825db2, TypeALU64>, Enc_bd6011 { 125let Inst{7-5} = 0b110; 126let Inst{13-13} = 0b0; 127let Inst{31-21} = 0b11010101010; 128let hasNewValue = 1; 129let opNewValue = 0; 130let prefersSlot3 = 1; 131let Defs = [USR_OVF]; 132} 133def A2_addh_h16_sat_lh : HInst< 134(outs IntRegs:$Rd32), 135(ins IntRegs:$Rt32, IntRegs:$Rs32), 136"$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16", 137tc_8a825db2, TypeALU64>, Enc_bd6011 { 138let Inst{7-5} = 0b101; 139let Inst{13-13} = 0b0; 140let Inst{31-21} = 0b11010101010; 141let hasNewValue = 1; 142let opNewValue = 0; 143let prefersSlot3 = 1; 144let Defs = [USR_OVF]; 145} 146def A2_addh_h16_sat_ll : HInst< 147(outs IntRegs:$Rd32), 148(ins IntRegs:$Rt32, IntRegs:$Rs32), 149"$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16", 150tc_8a825db2, TypeALU64>, Enc_bd6011 { 151let Inst{7-5} = 0b100; 152let Inst{13-13} = 0b0; 153let Inst{31-21} = 0b11010101010; 154let hasNewValue = 1; 155let opNewValue = 0; 156let prefersSlot3 = 1; 157let Defs = [USR_OVF]; 158} 159def A2_addh_l16_hl : HInst< 160(outs IntRegs:$Rd32), 161(ins IntRegs:$Rt32, IntRegs:$Rs32), 162"$Rd32 = add($Rt32.l,$Rs32.h)", 163tc_f34c1c21, TypeALU64>, Enc_bd6011 { 164let Inst{7-5} = 0b010; 165let Inst{13-13} = 0b0; 166let Inst{31-21} = 0b11010101000; 167let hasNewValue = 1; 168let opNewValue = 0; 169let prefersSlot3 = 1; 170} 171def A2_addh_l16_ll : HInst< 172(outs IntRegs:$Rd32), 173(ins IntRegs:$Rt32, IntRegs:$Rs32), 174"$Rd32 = add($Rt32.l,$Rs32.l)", 175tc_f34c1c21, TypeALU64>, Enc_bd6011 { 176let Inst{7-5} = 0b000; 177let Inst{13-13} = 0b0; 178let Inst{31-21} = 0b11010101000; 179let hasNewValue = 1; 180let opNewValue = 0; 181let prefersSlot3 = 1; 182} 183def A2_addh_l16_sat_hl : HInst< 184(outs IntRegs:$Rd32), 185(ins IntRegs:$Rt32, IntRegs:$Rs32), 186"$Rd32 = add($Rt32.l,$Rs32.h):sat", 187tc_8a825db2, TypeALU64>, Enc_bd6011 { 188let Inst{7-5} = 0b110; 189let Inst{13-13} = 0b0; 190let Inst{31-21} = 0b11010101000; 191let hasNewValue = 1; 192let opNewValue = 0; 193let prefersSlot3 = 1; 194let Defs = [USR_OVF]; 195} 196def A2_addh_l16_sat_ll : HInst< 197(outs IntRegs:$Rd32), 198(ins IntRegs:$Rt32, IntRegs:$Rs32), 199"$Rd32 = add($Rt32.l,$Rs32.l):sat", 200tc_8a825db2, TypeALU64>, Enc_bd6011 { 201let Inst{7-5} = 0b100; 202let Inst{13-13} = 0b0; 203let Inst{31-21} = 0b11010101000; 204let hasNewValue = 1; 205let opNewValue = 0; 206let prefersSlot3 = 1; 207let Defs = [USR_OVF]; 208} 209def A2_addi : HInst< 210(outs IntRegs:$Rd32), 211(ins IntRegs:$Rs32, s32_0Imm:$Ii), 212"$Rd32 = add($Rs32,#$Ii)", 213tc_713b66bf, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel { 214let Inst{31-28} = 0b1011; 215let hasNewValue = 1; 216let opNewValue = 0; 217let BaseOpcode = "A2_addi"; 218let CextOpcode = "A2_add"; 219let InputType = "imm"; 220let isAdd = 1; 221let isPredicable = 1; 222let isExtendable = 1; 223let opExtendable = 2; 224let isExtentSigned = 1; 225let opExtentBits = 16; 226let opExtentAlign = 0; 227} 228def A2_addp : HInst< 229(outs DoubleRegs:$Rdd32), 230(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 231"$Rdd32 = add($Rss32,$Rtt32)", 232tc_5da50c4b, TypeALU64>, Enc_a56825 { 233let Inst{7-5} = 0b111; 234let Inst{13-13} = 0b0; 235let Inst{31-21} = 0b11010011000; 236let isAdd = 1; 237let isCommutable = 1; 238} 239def A2_addpsat : HInst< 240(outs DoubleRegs:$Rdd32), 241(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 242"$Rdd32 = add($Rss32,$Rtt32):sat", 243tc_8a825db2, TypeALU64>, Enc_a56825 { 244let Inst{7-5} = 0b101; 245let Inst{13-13} = 0b0; 246let Inst{31-21} = 0b11010011011; 247let prefersSlot3 = 1; 248let Defs = [USR_OVF]; 249let isCommutable = 1; 250} 251def A2_addsat : HInst< 252(outs IntRegs:$Rd32), 253(ins IntRegs:$Rs32, IntRegs:$Rt32), 254"$Rd32 = add($Rs32,$Rt32):sat", 255tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 256let Inst{7-5} = 0b000; 257let Inst{13-13} = 0b0; 258let Inst{31-21} = 0b11110110010; 259let hasNewValue = 1; 260let opNewValue = 0; 261let prefersSlot3 = 1; 262let Defs = [USR_OVF]; 263let InputType = "reg"; 264let isCommutable = 1; 265} 266def A2_addsp : HInst< 267(outs DoubleRegs:$Rdd32), 268(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 269"$Rdd32 = add($Rs32,$Rtt32)", 270tc_01d44cb2, TypeALU64> { 271let isPseudo = 1; 272} 273def A2_addsph : HInst< 274(outs DoubleRegs:$Rdd32), 275(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 276"$Rdd32 = add($Rss32,$Rtt32):raw:hi", 277tc_01d44cb2, TypeALU64>, Enc_a56825 { 278let Inst{7-5} = 0b111; 279let Inst{13-13} = 0b0; 280let Inst{31-21} = 0b11010011011; 281let prefersSlot3 = 1; 282} 283def A2_addspl : HInst< 284(outs DoubleRegs:$Rdd32), 285(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 286"$Rdd32 = add($Rss32,$Rtt32):raw:lo", 287tc_01d44cb2, TypeALU64>, Enc_a56825 { 288let Inst{7-5} = 0b110; 289let Inst{13-13} = 0b0; 290let Inst{31-21} = 0b11010011011; 291let prefersSlot3 = 1; 292} 293def A2_and : HInst< 294(outs IntRegs:$Rd32), 295(ins IntRegs:$Rs32, IntRegs:$Rt32), 296"$Rd32 = and($Rs32,$Rt32)", 297tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 298let Inst{7-5} = 0b000; 299let Inst{13-13} = 0b0; 300let Inst{31-21} = 0b11110001000; 301let hasNewValue = 1; 302let opNewValue = 0; 303let BaseOpcode = "A2_and"; 304let CextOpcode = "A2_and"; 305let InputType = "reg"; 306let isCommutable = 1; 307let isPredicable = 1; 308} 309def A2_andir : HInst< 310(outs IntRegs:$Rd32), 311(ins IntRegs:$Rs32, s32_0Imm:$Ii), 312"$Rd32 = and($Rs32,#$Ii)", 313tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel { 314let Inst{31-22} = 0b0111011000; 315let hasNewValue = 1; 316let opNewValue = 0; 317let CextOpcode = "A2_and"; 318let InputType = "imm"; 319let isExtendable = 1; 320let opExtendable = 2; 321let isExtentSigned = 1; 322let opExtentBits = 10; 323let opExtentAlign = 0; 324} 325def A2_andp : HInst< 326(outs DoubleRegs:$Rdd32), 327(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 328"$Rdd32 = and($Rss32,$Rtt32)", 329tc_5da50c4b, TypeALU64>, Enc_a56825 { 330let Inst{7-5} = 0b000; 331let Inst{13-13} = 0b0; 332let Inst{31-21} = 0b11010011111; 333let isCommutable = 1; 334} 335def A2_aslh : HInst< 336(outs IntRegs:$Rd32), 337(ins IntRegs:$Rs32), 338"$Rd32 = aslh($Rs32)", 339tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 340let Inst{13-5} = 0b000000000; 341let Inst{31-21} = 0b01110000000; 342let hasNewValue = 1; 343let opNewValue = 0; 344let BaseOpcode = "A2_aslh"; 345let isPredicable = 1; 346} 347def A2_asrh : HInst< 348(outs IntRegs:$Rd32), 349(ins IntRegs:$Rs32), 350"$Rd32 = asrh($Rs32)", 351tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 352let Inst{13-5} = 0b000000000; 353let Inst{31-21} = 0b01110000001; 354let hasNewValue = 1; 355let opNewValue = 0; 356let BaseOpcode = "A2_asrh"; 357let isPredicable = 1; 358} 359def A2_combine_hh : HInst< 360(outs IntRegs:$Rd32), 361(ins IntRegs:$Rt32, IntRegs:$Rs32), 362"$Rd32 = combine($Rt32.h,$Rs32.h)", 363tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 364let Inst{7-5} = 0b000; 365let Inst{13-13} = 0b0; 366let Inst{31-21} = 0b11110011100; 367let hasNewValue = 1; 368let opNewValue = 0; 369let InputType = "reg"; 370} 371def A2_combine_hl : HInst< 372(outs IntRegs:$Rd32), 373(ins IntRegs:$Rt32, IntRegs:$Rs32), 374"$Rd32 = combine($Rt32.h,$Rs32.l)", 375tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 376let Inst{7-5} = 0b000; 377let Inst{13-13} = 0b0; 378let Inst{31-21} = 0b11110011101; 379let hasNewValue = 1; 380let opNewValue = 0; 381let InputType = "reg"; 382} 383def A2_combine_lh : HInst< 384(outs IntRegs:$Rd32), 385(ins IntRegs:$Rt32, IntRegs:$Rs32), 386"$Rd32 = combine($Rt32.l,$Rs32.h)", 387tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 388let Inst{7-5} = 0b000; 389let Inst{13-13} = 0b0; 390let Inst{31-21} = 0b11110011110; 391let hasNewValue = 1; 392let opNewValue = 0; 393let InputType = "reg"; 394} 395def A2_combine_ll : HInst< 396(outs IntRegs:$Rd32), 397(ins IntRegs:$Rt32, IntRegs:$Rs32), 398"$Rd32 = combine($Rt32.l,$Rs32.l)", 399tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 400let Inst{7-5} = 0b000; 401let Inst{13-13} = 0b0; 402let Inst{31-21} = 0b11110011111; 403let hasNewValue = 1; 404let opNewValue = 0; 405let InputType = "reg"; 406} 407def A2_combineii : HInst< 408(outs DoubleRegs:$Rdd32), 409(ins s32_0Imm:$Ii, s8_0Imm:$II), 410"$Rdd32 = combine(#$Ii,#$II)", 411tc_713b66bf, TypeALU32_2op>, Enc_18c338 { 412let Inst{31-23} = 0b011111000; 413let isAsCheapAsAMove = 1; 414let isMoveImm = 1; 415let isReMaterializable = 1; 416let isExtendable = 1; 417let opExtendable = 1; 418let isExtentSigned = 1; 419let opExtentBits = 8; 420let opExtentAlign = 0; 421} 422def A2_combinew : HInst< 423(outs DoubleRegs:$Rdd32), 424(ins IntRegs:$Rs32, IntRegs:$Rt32), 425"$Rdd32 = combine($Rs32,$Rt32)", 426tc_713b66bf, TypeALU32_3op>, Enc_be32a5, PredNewRel { 427let Inst{7-5} = 0b000; 428let Inst{13-13} = 0b0; 429let Inst{31-21} = 0b11110101000; 430let BaseOpcode = "A2_combinew"; 431let InputType = "reg"; 432let isPredicable = 1; 433} 434def A2_max : HInst< 435(outs IntRegs:$Rd32), 436(ins IntRegs:$Rs32, IntRegs:$Rt32), 437"$Rd32 = max($Rs32,$Rt32)", 438tc_8a825db2, TypeALU64>, Enc_5ab2be { 439let Inst{7-5} = 0b000; 440let Inst{13-13} = 0b0; 441let Inst{31-21} = 0b11010101110; 442let hasNewValue = 1; 443let opNewValue = 0; 444let prefersSlot3 = 1; 445} 446def A2_maxp : HInst< 447(outs DoubleRegs:$Rdd32), 448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 449"$Rdd32 = max($Rss32,$Rtt32)", 450tc_8a825db2, TypeALU64>, Enc_a56825 { 451let Inst{7-5} = 0b100; 452let Inst{13-13} = 0b0; 453let Inst{31-21} = 0b11010011110; 454let prefersSlot3 = 1; 455} 456def A2_maxu : HInst< 457(outs IntRegs:$Rd32), 458(ins IntRegs:$Rs32, IntRegs:$Rt32), 459"$Rd32 = maxu($Rs32,$Rt32)", 460tc_8a825db2, TypeALU64>, Enc_5ab2be { 461let Inst{7-5} = 0b100; 462let Inst{13-13} = 0b0; 463let Inst{31-21} = 0b11010101110; 464let hasNewValue = 1; 465let opNewValue = 0; 466let prefersSlot3 = 1; 467} 468def A2_maxup : HInst< 469(outs DoubleRegs:$Rdd32), 470(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 471"$Rdd32 = maxu($Rss32,$Rtt32)", 472tc_8a825db2, TypeALU64>, Enc_a56825 { 473let Inst{7-5} = 0b101; 474let Inst{13-13} = 0b0; 475let Inst{31-21} = 0b11010011110; 476let prefersSlot3 = 1; 477} 478def A2_min : HInst< 479(outs IntRegs:$Rd32), 480(ins IntRegs:$Rt32, IntRegs:$Rs32), 481"$Rd32 = min($Rt32,$Rs32)", 482tc_8a825db2, TypeALU64>, Enc_bd6011 { 483let Inst{7-5} = 0b000; 484let Inst{13-13} = 0b0; 485let Inst{31-21} = 0b11010101101; 486let hasNewValue = 1; 487let opNewValue = 0; 488let prefersSlot3 = 1; 489} 490def A2_minp : HInst< 491(outs DoubleRegs:$Rdd32), 492(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 493"$Rdd32 = min($Rtt32,$Rss32)", 494tc_8a825db2, TypeALU64>, Enc_ea23e4 { 495let Inst{7-5} = 0b110; 496let Inst{13-13} = 0b0; 497let Inst{31-21} = 0b11010011101; 498let prefersSlot3 = 1; 499} 500def A2_minu : HInst< 501(outs IntRegs:$Rd32), 502(ins IntRegs:$Rt32, IntRegs:$Rs32), 503"$Rd32 = minu($Rt32,$Rs32)", 504tc_8a825db2, TypeALU64>, Enc_bd6011 { 505let Inst{7-5} = 0b100; 506let Inst{13-13} = 0b0; 507let Inst{31-21} = 0b11010101101; 508let hasNewValue = 1; 509let opNewValue = 0; 510let prefersSlot3 = 1; 511} 512def A2_minup : HInst< 513(outs DoubleRegs:$Rdd32), 514(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 515"$Rdd32 = minu($Rtt32,$Rss32)", 516tc_8a825db2, TypeALU64>, Enc_ea23e4 { 517let Inst{7-5} = 0b111; 518let Inst{13-13} = 0b0; 519let Inst{31-21} = 0b11010011101; 520let prefersSlot3 = 1; 521} 522def A2_neg : HInst< 523(outs IntRegs:$Rd32), 524(ins IntRegs:$Rs32), 525"$Rd32 = neg($Rs32)", 526tc_c57d9f39, TypeALU32_2op> { 527let hasNewValue = 1; 528let opNewValue = 0; 529let isPseudo = 1; 530let isCodeGenOnly = 1; 531} 532def A2_negp : HInst< 533(outs DoubleRegs:$Rdd32), 534(ins DoubleRegs:$Rss32), 535"$Rdd32 = neg($Rss32)", 536tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 537let Inst{13-5} = 0b000000101; 538let Inst{31-21} = 0b10000000100; 539} 540def A2_negsat : HInst< 541(outs IntRegs:$Rd32), 542(ins IntRegs:$Rs32), 543"$Rd32 = neg($Rs32):sat", 544tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 545let Inst{13-5} = 0b000000110; 546let Inst{31-21} = 0b10001100100; 547let hasNewValue = 1; 548let opNewValue = 0; 549let prefersSlot3 = 1; 550let Defs = [USR_OVF]; 551} 552def A2_nop : HInst< 553(outs), 554(ins), 555"nop", 556tc_b837298f, TypeALU32_2op>, Enc_e3b0c4 { 557let Inst{13-0} = 0b00000000000000; 558let Inst{31-16} = 0b0111111100000000; 559} 560def A2_not : HInst< 561(outs IntRegs:$Rd32), 562(ins IntRegs:$Rs32), 563"$Rd32 = not($Rs32)", 564tc_c57d9f39, TypeALU32_2op> { 565let hasNewValue = 1; 566let opNewValue = 0; 567let isPseudo = 1; 568let isCodeGenOnly = 1; 569} 570def A2_notp : HInst< 571(outs DoubleRegs:$Rdd32), 572(ins DoubleRegs:$Rss32), 573"$Rdd32 = not($Rss32)", 574tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 575let Inst{13-5} = 0b000000100; 576let Inst{31-21} = 0b10000000100; 577} 578def A2_or : HInst< 579(outs IntRegs:$Rd32), 580(ins IntRegs:$Rs32, IntRegs:$Rt32), 581"$Rd32 = or($Rs32,$Rt32)", 582tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 583let Inst{7-5} = 0b000; 584let Inst{13-13} = 0b0; 585let Inst{31-21} = 0b11110001001; 586let hasNewValue = 1; 587let opNewValue = 0; 588let BaseOpcode = "A2_or"; 589let CextOpcode = "A2_or"; 590let InputType = "reg"; 591let isCommutable = 1; 592let isPredicable = 1; 593} 594def A2_orir : HInst< 595(outs IntRegs:$Rd32), 596(ins IntRegs:$Rs32, s32_0Imm:$Ii), 597"$Rd32 = or($Rs32,#$Ii)", 598tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel { 599let Inst{31-22} = 0b0111011010; 600let hasNewValue = 1; 601let opNewValue = 0; 602let CextOpcode = "A2_or"; 603let InputType = "imm"; 604let isExtendable = 1; 605let opExtendable = 2; 606let isExtentSigned = 1; 607let opExtentBits = 10; 608let opExtentAlign = 0; 609} 610def A2_orp : HInst< 611(outs DoubleRegs:$Rdd32), 612(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 613"$Rdd32 = or($Rss32,$Rtt32)", 614tc_5da50c4b, TypeALU64>, Enc_a56825 { 615let Inst{7-5} = 0b010; 616let Inst{13-13} = 0b0; 617let Inst{31-21} = 0b11010011111; 618let isCommutable = 1; 619} 620def A2_paddf : HInst< 621(outs IntRegs:$Rd32), 622(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 623"if (!$Pu4) $Rd32 = add($Rs32,$Rt32)", 624tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 625let Inst{7-7} = 0b1; 626let Inst{13-13} = 0b0; 627let Inst{31-21} = 0b11111011000; 628let isPredicated = 1; 629let isPredicatedFalse = 1; 630let hasNewValue = 1; 631let opNewValue = 0; 632let BaseOpcode = "A2_add"; 633let CextOpcode = "A2_add"; 634let InputType = "reg"; 635} 636def A2_paddfnew : HInst< 637(outs IntRegs:$Rd32), 638(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 639"if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)", 640tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 641let Inst{7-7} = 0b1; 642let Inst{13-13} = 0b1; 643let Inst{31-21} = 0b11111011000; 644let isPredicated = 1; 645let isPredicatedFalse = 1; 646let hasNewValue = 1; 647let opNewValue = 0; 648let isPredicatedNew = 1; 649let BaseOpcode = "A2_add"; 650let CextOpcode = "A2_add"; 651let InputType = "reg"; 652} 653def A2_paddif : HInst< 654(outs IntRegs:$Rd32), 655(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 656"if (!$Pu4) $Rd32 = add($Rs32,#$Ii)", 657tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 658let Inst{13-13} = 0b0; 659let Inst{31-23} = 0b011101001; 660let isPredicated = 1; 661let isPredicatedFalse = 1; 662let hasNewValue = 1; 663let opNewValue = 0; 664let BaseOpcode = "A2_addi"; 665let CextOpcode = "A2_add"; 666let InputType = "imm"; 667let isExtendable = 1; 668let opExtendable = 3; 669let isExtentSigned = 1; 670let opExtentBits = 8; 671let opExtentAlign = 0; 672} 673def A2_paddifnew : HInst< 674(outs IntRegs:$Rd32), 675(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 676"if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)", 677tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 678let Inst{13-13} = 0b1; 679let Inst{31-23} = 0b011101001; 680let isPredicated = 1; 681let isPredicatedFalse = 1; 682let hasNewValue = 1; 683let opNewValue = 0; 684let isPredicatedNew = 1; 685let BaseOpcode = "A2_addi"; 686let CextOpcode = "A2_add"; 687let InputType = "imm"; 688let isExtendable = 1; 689let opExtendable = 3; 690let isExtentSigned = 1; 691let opExtentBits = 8; 692let opExtentAlign = 0; 693} 694def A2_paddit : HInst< 695(outs IntRegs:$Rd32), 696(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 697"if ($Pu4) $Rd32 = add($Rs32,#$Ii)", 698tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 699let Inst{13-13} = 0b0; 700let Inst{31-23} = 0b011101000; 701let isPredicated = 1; 702let hasNewValue = 1; 703let opNewValue = 0; 704let BaseOpcode = "A2_addi"; 705let CextOpcode = "A2_add"; 706let InputType = "imm"; 707let isExtendable = 1; 708let opExtendable = 3; 709let isExtentSigned = 1; 710let opExtentBits = 8; 711let opExtentAlign = 0; 712} 713def A2_padditnew : HInst< 714(outs IntRegs:$Rd32), 715(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 716"if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)", 717tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 718let Inst{13-13} = 0b1; 719let Inst{31-23} = 0b011101000; 720let isPredicated = 1; 721let hasNewValue = 1; 722let opNewValue = 0; 723let isPredicatedNew = 1; 724let BaseOpcode = "A2_addi"; 725let CextOpcode = "A2_add"; 726let InputType = "imm"; 727let isExtendable = 1; 728let opExtendable = 3; 729let isExtentSigned = 1; 730let opExtentBits = 8; 731let opExtentAlign = 0; 732} 733def A2_paddt : HInst< 734(outs IntRegs:$Rd32), 735(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 736"if ($Pu4) $Rd32 = add($Rs32,$Rt32)", 737tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 738let Inst{7-7} = 0b0; 739let Inst{13-13} = 0b0; 740let Inst{31-21} = 0b11111011000; 741let isPredicated = 1; 742let hasNewValue = 1; 743let opNewValue = 0; 744let BaseOpcode = "A2_add"; 745let CextOpcode = "A2_add"; 746let InputType = "reg"; 747} 748def A2_paddtnew : HInst< 749(outs IntRegs:$Rd32), 750(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 751"if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)", 752tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 753let Inst{7-7} = 0b0; 754let Inst{13-13} = 0b1; 755let Inst{31-21} = 0b11111011000; 756let isPredicated = 1; 757let hasNewValue = 1; 758let opNewValue = 0; 759let isPredicatedNew = 1; 760let BaseOpcode = "A2_add"; 761let CextOpcode = "A2_add"; 762let InputType = "reg"; 763} 764def A2_pandf : HInst< 765(outs IntRegs:$Rd32), 766(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 767"if (!$Pu4) $Rd32 = and($Rs32,$Rt32)", 768tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 769let Inst{7-7} = 0b1; 770let Inst{13-13} = 0b0; 771let Inst{31-21} = 0b11111001000; 772let isPredicated = 1; 773let isPredicatedFalse = 1; 774let hasNewValue = 1; 775let opNewValue = 0; 776let BaseOpcode = "A2_and"; 777} 778def A2_pandfnew : HInst< 779(outs IntRegs:$Rd32), 780(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 781"if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)", 782tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 783let Inst{7-7} = 0b1; 784let Inst{13-13} = 0b1; 785let Inst{31-21} = 0b11111001000; 786let isPredicated = 1; 787let isPredicatedFalse = 1; 788let hasNewValue = 1; 789let opNewValue = 0; 790let isPredicatedNew = 1; 791let BaseOpcode = "A2_and"; 792} 793def A2_pandt : HInst< 794(outs IntRegs:$Rd32), 795(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 796"if ($Pu4) $Rd32 = and($Rs32,$Rt32)", 797tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 798let Inst{7-7} = 0b0; 799let Inst{13-13} = 0b0; 800let Inst{31-21} = 0b11111001000; 801let isPredicated = 1; 802let hasNewValue = 1; 803let opNewValue = 0; 804let BaseOpcode = "A2_and"; 805} 806def A2_pandtnew : HInst< 807(outs IntRegs:$Rd32), 808(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 809"if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)", 810tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 811let Inst{7-7} = 0b0; 812let Inst{13-13} = 0b1; 813let Inst{31-21} = 0b11111001000; 814let isPredicated = 1; 815let hasNewValue = 1; 816let opNewValue = 0; 817let isPredicatedNew = 1; 818let BaseOpcode = "A2_and"; 819} 820def A2_porf : HInst< 821(outs IntRegs:$Rd32), 822(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 823"if (!$Pu4) $Rd32 = or($Rs32,$Rt32)", 824tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 825let Inst{7-7} = 0b1; 826let Inst{13-13} = 0b0; 827let Inst{31-21} = 0b11111001001; 828let isPredicated = 1; 829let isPredicatedFalse = 1; 830let hasNewValue = 1; 831let opNewValue = 0; 832let BaseOpcode = "A2_or"; 833} 834def A2_porfnew : HInst< 835(outs IntRegs:$Rd32), 836(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 837"if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)", 838tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 839let Inst{7-7} = 0b1; 840let Inst{13-13} = 0b1; 841let Inst{31-21} = 0b11111001001; 842let isPredicated = 1; 843let isPredicatedFalse = 1; 844let hasNewValue = 1; 845let opNewValue = 0; 846let isPredicatedNew = 1; 847let BaseOpcode = "A2_or"; 848} 849def A2_port : HInst< 850(outs IntRegs:$Rd32), 851(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 852"if ($Pu4) $Rd32 = or($Rs32,$Rt32)", 853tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 854let Inst{7-7} = 0b0; 855let Inst{13-13} = 0b0; 856let Inst{31-21} = 0b11111001001; 857let isPredicated = 1; 858let hasNewValue = 1; 859let opNewValue = 0; 860let BaseOpcode = "A2_or"; 861} 862def A2_portnew : HInst< 863(outs IntRegs:$Rd32), 864(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 865"if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)", 866tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 867let Inst{7-7} = 0b0; 868let Inst{13-13} = 0b1; 869let Inst{31-21} = 0b11111001001; 870let isPredicated = 1; 871let hasNewValue = 1; 872let opNewValue = 0; 873let isPredicatedNew = 1; 874let BaseOpcode = "A2_or"; 875} 876def A2_psubf : HInst< 877(outs IntRegs:$Rd32), 878(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 879"if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)", 880tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 881let Inst{7-7} = 0b1; 882let Inst{13-13} = 0b0; 883let Inst{31-21} = 0b11111011001; 884let isPredicated = 1; 885let isPredicatedFalse = 1; 886let hasNewValue = 1; 887let opNewValue = 0; 888let BaseOpcode = "A2_sub"; 889} 890def A2_psubfnew : HInst< 891(outs IntRegs:$Rd32), 892(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 893"if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 894tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 895let Inst{7-7} = 0b1; 896let Inst{13-13} = 0b1; 897let Inst{31-21} = 0b11111011001; 898let isPredicated = 1; 899let isPredicatedFalse = 1; 900let hasNewValue = 1; 901let opNewValue = 0; 902let isPredicatedNew = 1; 903let BaseOpcode = "A2_sub"; 904} 905def A2_psubt : HInst< 906(outs IntRegs:$Rd32), 907(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 908"if ($Pu4) $Rd32 = sub($Rt32,$Rs32)", 909tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 910let Inst{7-7} = 0b0; 911let Inst{13-13} = 0b0; 912let Inst{31-21} = 0b11111011001; 913let isPredicated = 1; 914let hasNewValue = 1; 915let opNewValue = 0; 916let BaseOpcode = "A2_sub"; 917} 918def A2_psubtnew : HInst< 919(outs IntRegs:$Rd32), 920(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 921"if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 922tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 923let Inst{7-7} = 0b0; 924let Inst{13-13} = 0b1; 925let Inst{31-21} = 0b11111011001; 926let isPredicated = 1; 927let hasNewValue = 1; 928let opNewValue = 0; 929let isPredicatedNew = 1; 930let BaseOpcode = "A2_sub"; 931} 932def A2_pxorf : HInst< 933(outs IntRegs:$Rd32), 934(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 935"if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)", 936tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 937let Inst{7-7} = 0b1; 938let Inst{13-13} = 0b0; 939let Inst{31-21} = 0b11111001011; 940let isPredicated = 1; 941let isPredicatedFalse = 1; 942let hasNewValue = 1; 943let opNewValue = 0; 944let BaseOpcode = "A2_xor"; 945} 946def A2_pxorfnew : HInst< 947(outs IntRegs:$Rd32), 948(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 949"if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 950tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 951let Inst{7-7} = 0b1; 952let Inst{13-13} = 0b1; 953let Inst{31-21} = 0b11111001011; 954let isPredicated = 1; 955let isPredicatedFalse = 1; 956let hasNewValue = 1; 957let opNewValue = 0; 958let isPredicatedNew = 1; 959let BaseOpcode = "A2_xor"; 960} 961def A2_pxort : HInst< 962(outs IntRegs:$Rd32), 963(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 964"if ($Pu4) $Rd32 = xor($Rs32,$Rt32)", 965tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 966let Inst{7-7} = 0b0; 967let Inst{13-13} = 0b0; 968let Inst{31-21} = 0b11111001011; 969let isPredicated = 1; 970let hasNewValue = 1; 971let opNewValue = 0; 972let BaseOpcode = "A2_xor"; 973} 974def A2_pxortnew : HInst< 975(outs IntRegs:$Rd32), 976(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 977"if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 978tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 979let Inst{7-7} = 0b0; 980let Inst{13-13} = 0b1; 981let Inst{31-21} = 0b11111001011; 982let isPredicated = 1; 983let hasNewValue = 1; 984let opNewValue = 0; 985let isPredicatedNew = 1; 986let BaseOpcode = "A2_xor"; 987} 988def A2_roundsat : HInst< 989(outs IntRegs:$Rd32), 990(ins DoubleRegs:$Rss32), 991"$Rd32 = round($Rss32):sat", 992tc_d61dfdc3, TypeS_2op>, Enc_90cd8b { 993let Inst{13-5} = 0b000000001; 994let Inst{31-21} = 0b10001000110; 995let hasNewValue = 1; 996let opNewValue = 0; 997let prefersSlot3 = 1; 998let Defs = [USR_OVF]; 999} 1000def A2_sat : HInst< 1001(outs IntRegs:$Rd32), 1002(ins DoubleRegs:$Rss32), 1003"$Rd32 = sat($Rss32)", 1004tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 1005let Inst{13-5} = 0b000000000; 1006let Inst{31-21} = 0b10001000110; 1007let hasNewValue = 1; 1008let opNewValue = 0; 1009let Defs = [USR_OVF]; 1010} 1011def A2_satb : HInst< 1012(outs IntRegs:$Rd32), 1013(ins IntRegs:$Rs32), 1014"$Rd32 = satb($Rs32)", 1015tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1016let Inst{13-5} = 0b000000111; 1017let Inst{31-21} = 0b10001100110; 1018let hasNewValue = 1; 1019let opNewValue = 0; 1020let Defs = [USR_OVF]; 1021} 1022def A2_sath : HInst< 1023(outs IntRegs:$Rd32), 1024(ins IntRegs:$Rs32), 1025"$Rd32 = sath($Rs32)", 1026tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1027let Inst{13-5} = 0b000000100; 1028let Inst{31-21} = 0b10001100110; 1029let hasNewValue = 1; 1030let opNewValue = 0; 1031let Defs = [USR_OVF]; 1032} 1033def A2_satub : HInst< 1034(outs IntRegs:$Rd32), 1035(ins IntRegs:$Rs32), 1036"$Rd32 = satub($Rs32)", 1037tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1038let Inst{13-5} = 0b000000110; 1039let Inst{31-21} = 0b10001100110; 1040let hasNewValue = 1; 1041let opNewValue = 0; 1042let Defs = [USR_OVF]; 1043} 1044def A2_satuh : HInst< 1045(outs IntRegs:$Rd32), 1046(ins IntRegs:$Rs32), 1047"$Rd32 = satuh($Rs32)", 1048tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1049let Inst{13-5} = 0b000000101; 1050let Inst{31-21} = 0b10001100110; 1051let hasNewValue = 1; 1052let opNewValue = 0; 1053let Defs = [USR_OVF]; 1054} 1055def A2_sub : HInst< 1056(outs IntRegs:$Rd32), 1057(ins IntRegs:$Rt32, IntRegs:$Rs32), 1058"$Rd32 = sub($Rt32,$Rs32)", 1059tc_713b66bf, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel { 1060let Inst{7-5} = 0b000; 1061let Inst{13-13} = 0b0; 1062let Inst{31-21} = 0b11110011001; 1063let hasNewValue = 1; 1064let opNewValue = 0; 1065let BaseOpcode = "A2_sub"; 1066let CextOpcode = "A2_sub"; 1067let InputType = "reg"; 1068let isPredicable = 1; 1069} 1070def A2_subh_h16_hh : HInst< 1071(outs IntRegs:$Rd32), 1072(ins IntRegs:$Rt32, IntRegs:$Rs32), 1073"$Rd32 = sub($Rt32.h,$Rs32.h):<<16", 1074tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1075let Inst{7-5} = 0b011; 1076let Inst{13-13} = 0b0; 1077let Inst{31-21} = 0b11010101011; 1078let hasNewValue = 1; 1079let opNewValue = 0; 1080let prefersSlot3 = 1; 1081} 1082def A2_subh_h16_hl : HInst< 1083(outs IntRegs:$Rd32), 1084(ins IntRegs:$Rt32, IntRegs:$Rs32), 1085"$Rd32 = sub($Rt32.h,$Rs32.l):<<16", 1086tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1087let Inst{7-5} = 0b010; 1088let Inst{13-13} = 0b0; 1089let Inst{31-21} = 0b11010101011; 1090let hasNewValue = 1; 1091let opNewValue = 0; 1092let prefersSlot3 = 1; 1093} 1094def A2_subh_h16_lh : HInst< 1095(outs IntRegs:$Rd32), 1096(ins IntRegs:$Rt32, IntRegs:$Rs32), 1097"$Rd32 = sub($Rt32.l,$Rs32.h):<<16", 1098tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1099let Inst{7-5} = 0b001; 1100let Inst{13-13} = 0b0; 1101let Inst{31-21} = 0b11010101011; 1102let hasNewValue = 1; 1103let opNewValue = 0; 1104let prefersSlot3 = 1; 1105} 1106def A2_subh_h16_ll : HInst< 1107(outs IntRegs:$Rd32), 1108(ins IntRegs:$Rt32, IntRegs:$Rs32), 1109"$Rd32 = sub($Rt32.l,$Rs32.l):<<16", 1110tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1111let Inst{7-5} = 0b000; 1112let Inst{13-13} = 0b0; 1113let Inst{31-21} = 0b11010101011; 1114let hasNewValue = 1; 1115let opNewValue = 0; 1116let prefersSlot3 = 1; 1117} 1118def A2_subh_h16_sat_hh : HInst< 1119(outs IntRegs:$Rd32), 1120(ins IntRegs:$Rt32, IntRegs:$Rs32), 1121"$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16", 1122tc_8a825db2, TypeALU64>, Enc_bd6011 { 1123let Inst{7-5} = 0b111; 1124let Inst{13-13} = 0b0; 1125let Inst{31-21} = 0b11010101011; 1126let hasNewValue = 1; 1127let opNewValue = 0; 1128let prefersSlot3 = 1; 1129let Defs = [USR_OVF]; 1130} 1131def A2_subh_h16_sat_hl : HInst< 1132(outs IntRegs:$Rd32), 1133(ins IntRegs:$Rt32, IntRegs:$Rs32), 1134"$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16", 1135tc_8a825db2, TypeALU64>, Enc_bd6011 { 1136let Inst{7-5} = 0b110; 1137let Inst{13-13} = 0b0; 1138let Inst{31-21} = 0b11010101011; 1139let hasNewValue = 1; 1140let opNewValue = 0; 1141let prefersSlot3 = 1; 1142let Defs = [USR_OVF]; 1143} 1144def A2_subh_h16_sat_lh : HInst< 1145(outs IntRegs:$Rd32), 1146(ins IntRegs:$Rt32, IntRegs:$Rs32), 1147"$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16", 1148tc_8a825db2, TypeALU64>, Enc_bd6011 { 1149let Inst{7-5} = 0b101; 1150let Inst{13-13} = 0b0; 1151let Inst{31-21} = 0b11010101011; 1152let hasNewValue = 1; 1153let opNewValue = 0; 1154let prefersSlot3 = 1; 1155let Defs = [USR_OVF]; 1156} 1157def A2_subh_h16_sat_ll : HInst< 1158(outs IntRegs:$Rd32), 1159(ins IntRegs:$Rt32, IntRegs:$Rs32), 1160"$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16", 1161tc_8a825db2, TypeALU64>, Enc_bd6011 { 1162let Inst{7-5} = 0b100; 1163let Inst{13-13} = 0b0; 1164let Inst{31-21} = 0b11010101011; 1165let hasNewValue = 1; 1166let opNewValue = 0; 1167let prefersSlot3 = 1; 1168let Defs = [USR_OVF]; 1169} 1170def A2_subh_l16_hl : HInst< 1171(outs IntRegs:$Rd32), 1172(ins IntRegs:$Rt32, IntRegs:$Rs32), 1173"$Rd32 = sub($Rt32.l,$Rs32.h)", 1174tc_f34c1c21, TypeALU64>, Enc_bd6011 { 1175let Inst{7-5} = 0b010; 1176let Inst{13-13} = 0b0; 1177let Inst{31-21} = 0b11010101001; 1178let hasNewValue = 1; 1179let opNewValue = 0; 1180let prefersSlot3 = 1; 1181} 1182def A2_subh_l16_ll : HInst< 1183(outs IntRegs:$Rd32), 1184(ins IntRegs:$Rt32, IntRegs:$Rs32), 1185"$Rd32 = sub($Rt32.l,$Rs32.l)", 1186tc_f34c1c21, TypeALU64>, Enc_bd6011 { 1187let Inst{7-5} = 0b000; 1188let Inst{13-13} = 0b0; 1189let Inst{31-21} = 0b11010101001; 1190let hasNewValue = 1; 1191let opNewValue = 0; 1192let prefersSlot3 = 1; 1193} 1194def A2_subh_l16_sat_hl : HInst< 1195(outs IntRegs:$Rd32), 1196(ins IntRegs:$Rt32, IntRegs:$Rs32), 1197"$Rd32 = sub($Rt32.l,$Rs32.h):sat", 1198tc_8a825db2, TypeALU64>, Enc_bd6011 { 1199let Inst{7-5} = 0b110; 1200let Inst{13-13} = 0b0; 1201let Inst{31-21} = 0b11010101001; 1202let hasNewValue = 1; 1203let opNewValue = 0; 1204let prefersSlot3 = 1; 1205let Defs = [USR_OVF]; 1206} 1207def A2_subh_l16_sat_ll : HInst< 1208(outs IntRegs:$Rd32), 1209(ins IntRegs:$Rt32, IntRegs:$Rs32), 1210"$Rd32 = sub($Rt32.l,$Rs32.l):sat", 1211tc_8a825db2, TypeALU64>, Enc_bd6011 { 1212let Inst{7-5} = 0b100; 1213let Inst{13-13} = 0b0; 1214let Inst{31-21} = 0b11010101001; 1215let hasNewValue = 1; 1216let opNewValue = 0; 1217let prefersSlot3 = 1; 1218let Defs = [USR_OVF]; 1219} 1220def A2_subp : HInst< 1221(outs DoubleRegs:$Rdd32), 1222(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1223"$Rdd32 = sub($Rtt32,$Rss32)", 1224tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 1225let Inst{7-5} = 0b111; 1226let Inst{13-13} = 0b0; 1227let Inst{31-21} = 0b11010011001; 1228} 1229def A2_subri : HInst< 1230(outs IntRegs:$Rd32), 1231(ins s32_0Imm:$Ii, IntRegs:$Rs32), 1232"$Rd32 = sub(#$Ii,$Rs32)", 1233tc_713b66bf, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel { 1234let Inst{31-22} = 0b0111011001; 1235let hasNewValue = 1; 1236let opNewValue = 0; 1237let CextOpcode = "A2_sub"; 1238let InputType = "imm"; 1239let isExtendable = 1; 1240let opExtendable = 1; 1241let isExtentSigned = 1; 1242let opExtentBits = 10; 1243let opExtentAlign = 0; 1244} 1245def A2_subsat : HInst< 1246(outs IntRegs:$Rd32), 1247(ins IntRegs:$Rt32, IntRegs:$Rs32), 1248"$Rd32 = sub($Rt32,$Rs32):sat", 1249tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1250let Inst{7-5} = 0b000; 1251let Inst{13-13} = 0b0; 1252let Inst{31-21} = 0b11110110110; 1253let hasNewValue = 1; 1254let opNewValue = 0; 1255let prefersSlot3 = 1; 1256let Defs = [USR_OVF]; 1257let InputType = "reg"; 1258} 1259def A2_svaddh : HInst< 1260(outs IntRegs:$Rd32), 1261(ins IntRegs:$Rs32, IntRegs:$Rt32), 1262"$Rd32 = vaddh($Rs32,$Rt32)", 1263tc_713b66bf, TypeALU32_3op>, Enc_5ab2be { 1264let Inst{7-5} = 0b000; 1265let Inst{13-13} = 0b0; 1266let Inst{31-21} = 0b11110110000; 1267let hasNewValue = 1; 1268let opNewValue = 0; 1269let InputType = "reg"; 1270let isCommutable = 1; 1271} 1272def A2_svaddhs : HInst< 1273(outs IntRegs:$Rd32), 1274(ins IntRegs:$Rs32, IntRegs:$Rt32), 1275"$Rd32 = vaddh($Rs32,$Rt32):sat", 1276tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 1277let Inst{7-5} = 0b000; 1278let Inst{13-13} = 0b0; 1279let Inst{31-21} = 0b11110110001; 1280let hasNewValue = 1; 1281let opNewValue = 0; 1282let prefersSlot3 = 1; 1283let Defs = [USR_OVF]; 1284let InputType = "reg"; 1285let isCommutable = 1; 1286} 1287def A2_svadduhs : HInst< 1288(outs IntRegs:$Rd32), 1289(ins IntRegs:$Rs32, IntRegs:$Rt32), 1290"$Rd32 = vadduh($Rs32,$Rt32):sat", 1291tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 1292let Inst{7-5} = 0b000; 1293let Inst{13-13} = 0b0; 1294let Inst{31-21} = 0b11110110011; 1295let hasNewValue = 1; 1296let opNewValue = 0; 1297let prefersSlot3 = 1; 1298let Defs = [USR_OVF]; 1299let InputType = "reg"; 1300let isCommutable = 1; 1301} 1302def A2_svavgh : HInst< 1303(outs IntRegs:$Rd32), 1304(ins IntRegs:$Rs32, IntRegs:$Rt32), 1305"$Rd32 = vavgh($Rs32,$Rt32)", 1306tc_8b5bd4f5, TypeALU32_3op>, Enc_5ab2be { 1307let Inst{7-5} = 0b000; 1308let Inst{13-13} = 0b0; 1309let Inst{31-21} = 0b11110111000; 1310let hasNewValue = 1; 1311let opNewValue = 0; 1312let prefersSlot3 = 1; 1313let InputType = "reg"; 1314let isCommutable = 1; 1315} 1316def A2_svavghs : HInst< 1317(outs IntRegs:$Rd32), 1318(ins IntRegs:$Rs32, IntRegs:$Rt32), 1319"$Rd32 = vavgh($Rs32,$Rt32):rnd", 1320tc_84a7500d, TypeALU32_3op>, Enc_5ab2be { 1321let Inst{7-5} = 0b000; 1322let Inst{13-13} = 0b0; 1323let Inst{31-21} = 0b11110111001; 1324let hasNewValue = 1; 1325let opNewValue = 0; 1326let prefersSlot3 = 1; 1327let InputType = "reg"; 1328let isCommutable = 1; 1329} 1330def A2_svnavgh : HInst< 1331(outs IntRegs:$Rd32), 1332(ins IntRegs:$Rt32, IntRegs:$Rs32), 1333"$Rd32 = vnavgh($Rt32,$Rs32)", 1334tc_8b5bd4f5, TypeALU32_3op>, Enc_bd6011 { 1335let Inst{7-5} = 0b000; 1336let Inst{13-13} = 0b0; 1337let Inst{31-21} = 0b11110111011; 1338let hasNewValue = 1; 1339let opNewValue = 0; 1340let prefersSlot3 = 1; 1341let InputType = "reg"; 1342} 1343def A2_svsubh : HInst< 1344(outs IntRegs:$Rd32), 1345(ins IntRegs:$Rt32, IntRegs:$Rs32), 1346"$Rd32 = vsubh($Rt32,$Rs32)", 1347tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 1348let Inst{7-5} = 0b000; 1349let Inst{13-13} = 0b0; 1350let Inst{31-21} = 0b11110110100; 1351let hasNewValue = 1; 1352let opNewValue = 0; 1353let InputType = "reg"; 1354} 1355def A2_svsubhs : HInst< 1356(outs IntRegs:$Rd32), 1357(ins IntRegs:$Rt32, IntRegs:$Rs32), 1358"$Rd32 = vsubh($Rt32,$Rs32):sat", 1359tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1360let Inst{7-5} = 0b000; 1361let Inst{13-13} = 0b0; 1362let Inst{31-21} = 0b11110110101; 1363let hasNewValue = 1; 1364let opNewValue = 0; 1365let prefersSlot3 = 1; 1366let Defs = [USR_OVF]; 1367let InputType = "reg"; 1368} 1369def A2_svsubuhs : HInst< 1370(outs IntRegs:$Rd32), 1371(ins IntRegs:$Rt32, IntRegs:$Rs32), 1372"$Rd32 = vsubuh($Rt32,$Rs32):sat", 1373tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1374let Inst{7-5} = 0b000; 1375let Inst{13-13} = 0b0; 1376let Inst{31-21} = 0b11110110111; 1377let hasNewValue = 1; 1378let opNewValue = 0; 1379let prefersSlot3 = 1; 1380let Defs = [USR_OVF]; 1381let InputType = "reg"; 1382} 1383def A2_swiz : HInst< 1384(outs IntRegs:$Rd32), 1385(ins IntRegs:$Rs32), 1386"$Rd32 = swiz($Rs32)", 1387tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1388let Inst{13-5} = 0b000000111; 1389let Inst{31-21} = 0b10001100100; 1390let hasNewValue = 1; 1391let opNewValue = 0; 1392} 1393def A2_sxtb : HInst< 1394(outs IntRegs:$Rd32), 1395(ins IntRegs:$Rs32), 1396"$Rd32 = sxtb($Rs32)", 1397tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1398let Inst{13-5} = 0b000000000; 1399let Inst{31-21} = 0b01110000101; 1400let hasNewValue = 1; 1401let opNewValue = 0; 1402let BaseOpcode = "A2_sxtb"; 1403let isPredicable = 1; 1404} 1405def A2_sxth : HInst< 1406(outs IntRegs:$Rd32), 1407(ins IntRegs:$Rs32), 1408"$Rd32 = sxth($Rs32)", 1409tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1410let Inst{13-5} = 0b000000000; 1411let Inst{31-21} = 0b01110000111; 1412let hasNewValue = 1; 1413let opNewValue = 0; 1414let BaseOpcode = "A2_sxth"; 1415let isPredicable = 1; 1416} 1417def A2_sxtw : HInst< 1418(outs DoubleRegs:$Rdd32), 1419(ins IntRegs:$Rs32), 1420"$Rdd32 = sxtw($Rs32)", 1421tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 1422let Inst{13-5} = 0b000000000; 1423let Inst{31-21} = 0b10000100010; 1424} 1425def A2_tfr : HInst< 1426(outs IntRegs:$Rd32), 1427(ins IntRegs:$Rs32), 1428"$Rd32 = $Rs32", 1429tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1430let Inst{13-5} = 0b000000000; 1431let Inst{31-21} = 0b01110000011; 1432let hasNewValue = 1; 1433let opNewValue = 0; 1434let BaseOpcode = "A2_tfr"; 1435let InputType = "reg"; 1436let isPredicable = 1; 1437} 1438def A2_tfrcrr : HInst< 1439(outs IntRegs:$Rd32), 1440(ins CtrRegs:$Cs32), 1441"$Rd32 = $Cs32", 1442tc_7476d766, TypeCR>, Enc_0cb018 { 1443let Inst{13-5} = 0b000000000; 1444let Inst{31-21} = 0b01101010000; 1445let hasNewValue = 1; 1446let opNewValue = 0; 1447} 1448def A2_tfrf : HInst< 1449(outs IntRegs:$Rd32), 1450(ins PredRegs:$Pu4, IntRegs:$Rs32), 1451"if (!$Pu4) $Rd32 = $Rs32", 1452tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel { 1453let isPredicated = 1; 1454let isPredicatedFalse = 1; 1455let hasNewValue = 1; 1456let opNewValue = 0; 1457let BaseOpcode = "A2_tfr"; 1458let CextOpcode = "A2_tfr"; 1459let InputType = "reg"; 1460let isPseudo = 1; 1461let isCodeGenOnly = 1; 1462} 1463def A2_tfrfnew : HInst< 1464(outs IntRegs:$Rd32), 1465(ins PredRegs:$Pu4, IntRegs:$Rs32), 1466"if (!$Pu4.new) $Rd32 = $Rs32", 1467tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel { 1468let isPredicated = 1; 1469let isPredicatedFalse = 1; 1470let hasNewValue = 1; 1471let opNewValue = 0; 1472let isPredicatedNew = 1; 1473let BaseOpcode = "A2_tfr"; 1474let CextOpcode = "A2_tfr"; 1475let InputType = "reg"; 1476let isPseudo = 1; 1477let isCodeGenOnly = 1; 1478} 1479def A2_tfrih : HInst< 1480(outs IntRegs:$Rx32), 1481(ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1482"$Rx32.h = #$Ii", 1483tc_713b66bf, TypeALU32_2op>, Enc_51436c { 1484let Inst{21-21} = 0b1; 1485let Inst{31-24} = 0b01110010; 1486let hasNewValue = 1; 1487let opNewValue = 0; 1488let Constraints = "$Rx32 = $Rx32in"; 1489} 1490def A2_tfril : HInst< 1491(outs IntRegs:$Rx32), 1492(ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1493"$Rx32.l = #$Ii", 1494tc_713b66bf, TypeALU32_2op>, Enc_51436c { 1495let Inst{21-21} = 0b1; 1496let Inst{31-24} = 0b01110001; 1497let hasNewValue = 1; 1498let opNewValue = 0; 1499let Constraints = "$Rx32 = $Rx32in"; 1500} 1501def A2_tfrp : HInst< 1502(outs DoubleRegs:$Rdd32), 1503(ins DoubleRegs:$Rss32), 1504"$Rdd32 = $Rss32", 1505tc_713b66bf, TypeALU32_2op>, PredNewRel { 1506let BaseOpcode = "A2_tfrp"; 1507let isPredicable = 1; 1508let isPseudo = 1; 1509} 1510def A2_tfrpf : HInst< 1511(outs DoubleRegs:$Rdd32), 1512(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1513"if (!$Pu4) $Rdd32 = $Rss32", 1514tc_713b66bf, TypeALU32_2op>, PredNewRel { 1515let isPredicated = 1; 1516let isPredicatedFalse = 1; 1517let BaseOpcode = "A2_tfrp"; 1518let isPseudo = 1; 1519} 1520def A2_tfrpfnew : HInst< 1521(outs DoubleRegs:$Rdd32), 1522(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1523"if (!$Pu4.new) $Rdd32 = $Rss32", 1524tc_86173609, TypeALU32_2op>, PredNewRel { 1525let isPredicated = 1; 1526let isPredicatedFalse = 1; 1527let isPredicatedNew = 1; 1528let BaseOpcode = "A2_tfrp"; 1529let isPseudo = 1; 1530} 1531def A2_tfrpi : HInst< 1532(outs DoubleRegs:$Rdd32), 1533(ins s8_0Imm:$Ii), 1534"$Rdd32 = #$Ii", 1535tc_713b66bf, TypeALU64> { 1536let isAsCheapAsAMove = 1; 1537let isMoveImm = 1; 1538let isReMaterializable = 1; 1539let isPseudo = 1; 1540} 1541def A2_tfrpt : HInst< 1542(outs DoubleRegs:$Rdd32), 1543(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1544"if ($Pu4) $Rdd32 = $Rss32", 1545tc_713b66bf, TypeALU32_2op>, PredNewRel { 1546let isPredicated = 1; 1547let BaseOpcode = "A2_tfrp"; 1548let isPseudo = 1; 1549} 1550def A2_tfrptnew : HInst< 1551(outs DoubleRegs:$Rdd32), 1552(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1553"if ($Pu4.new) $Rdd32 = $Rss32", 1554tc_86173609, TypeALU32_2op>, PredNewRel { 1555let isPredicated = 1; 1556let isPredicatedNew = 1; 1557let BaseOpcode = "A2_tfrp"; 1558let isPseudo = 1; 1559} 1560def A2_tfrrcr : HInst< 1561(outs CtrRegs:$Cd32), 1562(ins IntRegs:$Rs32), 1563"$Cd32 = $Rs32", 1564tc_49fdfd4b, TypeCR>, Enc_bd811a { 1565let Inst{13-5} = 0b000000000; 1566let Inst{31-21} = 0b01100010001; 1567let hasNewValue = 1; 1568let opNewValue = 0; 1569} 1570def A2_tfrsi : HInst< 1571(outs IntRegs:$Rd32), 1572(ins s32_0Imm:$Ii), 1573"$Rd32 = #$Ii", 1574tc_c57d9f39, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel { 1575let Inst{21-21} = 0b0; 1576let Inst{31-24} = 0b01111000; 1577let hasNewValue = 1; 1578let opNewValue = 0; 1579let BaseOpcode = "A2_tfrsi"; 1580let CextOpcode = "A2_tfr"; 1581let InputType = "imm"; 1582let isAsCheapAsAMove = 1; 1583let isMoveImm = 1; 1584let isPredicable = 1; 1585let isReMaterializable = 1; 1586let isExtendable = 1; 1587let opExtendable = 1; 1588let isExtentSigned = 1; 1589let opExtentBits = 16; 1590let opExtentAlign = 0; 1591} 1592def A2_tfrt : HInst< 1593(outs IntRegs:$Rd32), 1594(ins PredRegs:$Pu4, IntRegs:$Rs32), 1595"if ($Pu4) $Rd32 = $Rs32", 1596tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel { 1597let isPredicated = 1; 1598let hasNewValue = 1; 1599let opNewValue = 0; 1600let BaseOpcode = "A2_tfr"; 1601let CextOpcode = "A2_tfr"; 1602let InputType = "reg"; 1603let isPseudo = 1; 1604let isCodeGenOnly = 1; 1605} 1606def A2_tfrtnew : HInst< 1607(outs IntRegs:$Rd32), 1608(ins PredRegs:$Pu4, IntRegs:$Rs32), 1609"if ($Pu4.new) $Rd32 = $Rs32", 1610tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel { 1611let isPredicated = 1; 1612let hasNewValue = 1; 1613let opNewValue = 0; 1614let isPredicatedNew = 1; 1615let BaseOpcode = "A2_tfr"; 1616let CextOpcode = "A2_tfr"; 1617let InputType = "reg"; 1618let isPseudo = 1; 1619let isCodeGenOnly = 1; 1620} 1621def A2_vabsh : HInst< 1622(outs DoubleRegs:$Rdd32), 1623(ins DoubleRegs:$Rss32), 1624"$Rdd32 = vabsh($Rss32)", 1625tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1626let Inst{13-5} = 0b000000100; 1627let Inst{31-21} = 0b10000000010; 1628let prefersSlot3 = 1; 1629} 1630def A2_vabshsat : HInst< 1631(outs DoubleRegs:$Rdd32), 1632(ins DoubleRegs:$Rss32), 1633"$Rdd32 = vabsh($Rss32):sat", 1634tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1635let Inst{13-5} = 0b000000101; 1636let Inst{31-21} = 0b10000000010; 1637let prefersSlot3 = 1; 1638let Defs = [USR_OVF]; 1639} 1640def A2_vabsw : HInst< 1641(outs DoubleRegs:$Rdd32), 1642(ins DoubleRegs:$Rss32), 1643"$Rdd32 = vabsw($Rss32)", 1644tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1645let Inst{13-5} = 0b000000110; 1646let Inst{31-21} = 0b10000000010; 1647let prefersSlot3 = 1; 1648} 1649def A2_vabswsat : HInst< 1650(outs DoubleRegs:$Rdd32), 1651(ins DoubleRegs:$Rss32), 1652"$Rdd32 = vabsw($Rss32):sat", 1653tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1654let Inst{13-5} = 0b000000111; 1655let Inst{31-21} = 0b10000000010; 1656let prefersSlot3 = 1; 1657let Defs = [USR_OVF]; 1658} 1659def A2_vaddb_map : HInst< 1660(outs DoubleRegs:$Rdd32), 1661(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1662"$Rdd32 = vaddb($Rss32,$Rtt32)", 1663tc_5da50c4b, TypeMAPPING> { 1664let isPseudo = 1; 1665let isCodeGenOnly = 1; 1666} 1667def A2_vaddh : HInst< 1668(outs DoubleRegs:$Rdd32), 1669(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1670"$Rdd32 = vaddh($Rss32,$Rtt32)", 1671tc_5da50c4b, TypeALU64>, Enc_a56825 { 1672let Inst{7-5} = 0b010; 1673let Inst{13-13} = 0b0; 1674let Inst{31-21} = 0b11010011000; 1675} 1676def A2_vaddhs : HInst< 1677(outs DoubleRegs:$Rdd32), 1678(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1679"$Rdd32 = vaddh($Rss32,$Rtt32):sat", 1680tc_8a825db2, TypeALU64>, Enc_a56825 { 1681let Inst{7-5} = 0b011; 1682let Inst{13-13} = 0b0; 1683let Inst{31-21} = 0b11010011000; 1684let prefersSlot3 = 1; 1685let Defs = [USR_OVF]; 1686} 1687def A2_vaddub : HInst< 1688(outs DoubleRegs:$Rdd32), 1689(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1690"$Rdd32 = vaddub($Rss32,$Rtt32)", 1691tc_5da50c4b, TypeALU64>, Enc_a56825 { 1692let Inst{7-5} = 0b000; 1693let Inst{13-13} = 0b0; 1694let Inst{31-21} = 0b11010011000; 1695} 1696def A2_vaddubs : HInst< 1697(outs DoubleRegs:$Rdd32), 1698(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1699"$Rdd32 = vaddub($Rss32,$Rtt32):sat", 1700tc_8a825db2, TypeALU64>, Enc_a56825 { 1701let Inst{7-5} = 0b001; 1702let Inst{13-13} = 0b0; 1703let Inst{31-21} = 0b11010011000; 1704let prefersSlot3 = 1; 1705let Defs = [USR_OVF]; 1706} 1707def A2_vadduhs : HInst< 1708(outs DoubleRegs:$Rdd32), 1709(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1710"$Rdd32 = vadduh($Rss32,$Rtt32):sat", 1711tc_8a825db2, TypeALU64>, Enc_a56825 { 1712let Inst{7-5} = 0b100; 1713let Inst{13-13} = 0b0; 1714let Inst{31-21} = 0b11010011000; 1715let prefersSlot3 = 1; 1716let Defs = [USR_OVF]; 1717} 1718def A2_vaddw : HInst< 1719(outs DoubleRegs:$Rdd32), 1720(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1721"$Rdd32 = vaddw($Rss32,$Rtt32)", 1722tc_5da50c4b, TypeALU64>, Enc_a56825 { 1723let Inst{7-5} = 0b101; 1724let Inst{13-13} = 0b0; 1725let Inst{31-21} = 0b11010011000; 1726} 1727def A2_vaddws : HInst< 1728(outs DoubleRegs:$Rdd32), 1729(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1730"$Rdd32 = vaddw($Rss32,$Rtt32):sat", 1731tc_8a825db2, TypeALU64>, Enc_a56825 { 1732let Inst{7-5} = 0b110; 1733let Inst{13-13} = 0b0; 1734let Inst{31-21} = 0b11010011000; 1735let prefersSlot3 = 1; 1736let Defs = [USR_OVF]; 1737} 1738def A2_vavgh : HInst< 1739(outs DoubleRegs:$Rdd32), 1740(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1741"$Rdd32 = vavgh($Rss32,$Rtt32)", 1742tc_f098b237, TypeALU64>, Enc_a56825 { 1743let Inst{7-5} = 0b010; 1744let Inst{13-13} = 0b0; 1745let Inst{31-21} = 0b11010011010; 1746let prefersSlot3 = 1; 1747} 1748def A2_vavghcr : HInst< 1749(outs DoubleRegs:$Rdd32), 1750(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1751"$Rdd32 = vavgh($Rss32,$Rtt32):crnd", 1752tc_0dfac0a7, TypeALU64>, Enc_a56825 { 1753let Inst{7-5} = 0b100; 1754let Inst{13-13} = 0b0; 1755let Inst{31-21} = 0b11010011010; 1756let prefersSlot3 = 1; 1757} 1758def A2_vavghr : HInst< 1759(outs DoubleRegs:$Rdd32), 1760(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1761"$Rdd32 = vavgh($Rss32,$Rtt32):rnd", 1762tc_20131976, TypeALU64>, Enc_a56825 { 1763let Inst{7-5} = 0b011; 1764let Inst{13-13} = 0b0; 1765let Inst{31-21} = 0b11010011010; 1766let prefersSlot3 = 1; 1767} 1768def A2_vavgub : HInst< 1769(outs DoubleRegs:$Rdd32), 1770(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1771"$Rdd32 = vavgub($Rss32,$Rtt32)", 1772tc_f098b237, TypeALU64>, Enc_a56825 { 1773let Inst{7-5} = 0b000; 1774let Inst{13-13} = 0b0; 1775let Inst{31-21} = 0b11010011010; 1776let prefersSlot3 = 1; 1777} 1778def A2_vavgubr : HInst< 1779(outs DoubleRegs:$Rdd32), 1780(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1781"$Rdd32 = vavgub($Rss32,$Rtt32):rnd", 1782tc_20131976, TypeALU64>, Enc_a56825 { 1783let Inst{7-5} = 0b001; 1784let Inst{13-13} = 0b0; 1785let Inst{31-21} = 0b11010011010; 1786let prefersSlot3 = 1; 1787} 1788def A2_vavguh : HInst< 1789(outs DoubleRegs:$Rdd32), 1790(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1791"$Rdd32 = vavguh($Rss32,$Rtt32)", 1792tc_f098b237, TypeALU64>, Enc_a56825 { 1793let Inst{7-5} = 0b101; 1794let Inst{13-13} = 0b0; 1795let Inst{31-21} = 0b11010011010; 1796let prefersSlot3 = 1; 1797} 1798def A2_vavguhr : HInst< 1799(outs DoubleRegs:$Rdd32), 1800(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1801"$Rdd32 = vavguh($Rss32,$Rtt32):rnd", 1802tc_20131976, TypeALU64>, Enc_a56825 { 1803let Inst{7-5} = 0b110; 1804let Inst{13-13} = 0b0; 1805let Inst{31-21} = 0b11010011010; 1806let prefersSlot3 = 1; 1807} 1808def A2_vavguw : HInst< 1809(outs DoubleRegs:$Rdd32), 1810(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1811"$Rdd32 = vavguw($Rss32,$Rtt32)", 1812tc_f098b237, TypeALU64>, Enc_a56825 { 1813let Inst{7-5} = 0b011; 1814let Inst{13-13} = 0b0; 1815let Inst{31-21} = 0b11010011011; 1816let prefersSlot3 = 1; 1817} 1818def A2_vavguwr : HInst< 1819(outs DoubleRegs:$Rdd32), 1820(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1821"$Rdd32 = vavguw($Rss32,$Rtt32):rnd", 1822tc_20131976, TypeALU64>, Enc_a56825 { 1823let Inst{7-5} = 0b100; 1824let Inst{13-13} = 0b0; 1825let Inst{31-21} = 0b11010011011; 1826let prefersSlot3 = 1; 1827} 1828def A2_vavgw : HInst< 1829(outs DoubleRegs:$Rdd32), 1830(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1831"$Rdd32 = vavgw($Rss32,$Rtt32)", 1832tc_f098b237, TypeALU64>, Enc_a56825 { 1833let Inst{7-5} = 0b000; 1834let Inst{13-13} = 0b0; 1835let Inst{31-21} = 0b11010011011; 1836let prefersSlot3 = 1; 1837} 1838def A2_vavgwcr : HInst< 1839(outs DoubleRegs:$Rdd32), 1840(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1841"$Rdd32 = vavgw($Rss32,$Rtt32):crnd", 1842tc_0dfac0a7, TypeALU64>, Enc_a56825 { 1843let Inst{7-5} = 0b010; 1844let Inst{13-13} = 0b0; 1845let Inst{31-21} = 0b11010011011; 1846let prefersSlot3 = 1; 1847} 1848def A2_vavgwr : HInst< 1849(outs DoubleRegs:$Rdd32), 1850(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1851"$Rdd32 = vavgw($Rss32,$Rtt32):rnd", 1852tc_20131976, TypeALU64>, Enc_a56825 { 1853let Inst{7-5} = 0b001; 1854let Inst{13-13} = 0b0; 1855let Inst{31-21} = 0b11010011011; 1856let prefersSlot3 = 1; 1857} 1858def A2_vcmpbeq : HInst< 1859(outs PredRegs:$Pd4), 1860(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1861"$Pd4 = vcmpb.eq($Rss32,$Rtt32)", 1862tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1863let Inst{7-2} = 0b110000; 1864let Inst{13-13} = 0b0; 1865let Inst{31-21} = 0b11010010000; 1866} 1867def A2_vcmpbgtu : HInst< 1868(outs PredRegs:$Pd4), 1869(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1870"$Pd4 = vcmpb.gtu($Rss32,$Rtt32)", 1871tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1872let Inst{7-2} = 0b111000; 1873let Inst{13-13} = 0b0; 1874let Inst{31-21} = 0b11010010000; 1875} 1876def A2_vcmpheq : HInst< 1877(outs PredRegs:$Pd4), 1878(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1879"$Pd4 = vcmph.eq($Rss32,$Rtt32)", 1880tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1881let Inst{7-2} = 0b011000; 1882let Inst{13-13} = 0b0; 1883let Inst{31-21} = 0b11010010000; 1884} 1885def A2_vcmphgt : HInst< 1886(outs PredRegs:$Pd4), 1887(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1888"$Pd4 = vcmph.gt($Rss32,$Rtt32)", 1889tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1890let Inst{7-2} = 0b100000; 1891let Inst{13-13} = 0b0; 1892let Inst{31-21} = 0b11010010000; 1893} 1894def A2_vcmphgtu : HInst< 1895(outs PredRegs:$Pd4), 1896(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1897"$Pd4 = vcmph.gtu($Rss32,$Rtt32)", 1898tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1899let Inst{7-2} = 0b101000; 1900let Inst{13-13} = 0b0; 1901let Inst{31-21} = 0b11010010000; 1902} 1903def A2_vcmpweq : HInst< 1904(outs PredRegs:$Pd4), 1905(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1906"$Pd4 = vcmpw.eq($Rss32,$Rtt32)", 1907tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1908let Inst{7-2} = 0b000000; 1909let Inst{13-13} = 0b0; 1910let Inst{31-21} = 0b11010010000; 1911} 1912def A2_vcmpwgt : HInst< 1913(outs PredRegs:$Pd4), 1914(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1915"$Pd4 = vcmpw.gt($Rss32,$Rtt32)", 1916tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1917let Inst{7-2} = 0b001000; 1918let Inst{13-13} = 0b0; 1919let Inst{31-21} = 0b11010010000; 1920} 1921def A2_vcmpwgtu : HInst< 1922(outs PredRegs:$Pd4), 1923(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1924"$Pd4 = vcmpw.gtu($Rss32,$Rtt32)", 1925tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1926let Inst{7-2} = 0b010000; 1927let Inst{13-13} = 0b0; 1928let Inst{31-21} = 0b11010010000; 1929} 1930def A2_vconj : HInst< 1931(outs DoubleRegs:$Rdd32), 1932(ins DoubleRegs:$Rss32), 1933"$Rdd32 = vconj($Rss32):sat", 1934tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1935let Inst{13-5} = 0b000000111; 1936let Inst{31-21} = 0b10000000100; 1937let prefersSlot3 = 1; 1938let Defs = [USR_OVF]; 1939} 1940def A2_vmaxb : HInst< 1941(outs DoubleRegs:$Rdd32), 1942(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1943"$Rdd32 = vmaxb($Rtt32,$Rss32)", 1944tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1945let Inst{7-5} = 0b110; 1946let Inst{13-13} = 0b0; 1947let Inst{31-21} = 0b11010011110; 1948let prefersSlot3 = 1; 1949} 1950def A2_vmaxh : HInst< 1951(outs DoubleRegs:$Rdd32), 1952(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1953"$Rdd32 = vmaxh($Rtt32,$Rss32)", 1954tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1955let Inst{7-5} = 0b001; 1956let Inst{13-13} = 0b0; 1957let Inst{31-21} = 0b11010011110; 1958let prefersSlot3 = 1; 1959} 1960def A2_vmaxub : HInst< 1961(outs DoubleRegs:$Rdd32), 1962(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1963"$Rdd32 = vmaxub($Rtt32,$Rss32)", 1964tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1965let Inst{7-5} = 0b000; 1966let Inst{13-13} = 0b0; 1967let Inst{31-21} = 0b11010011110; 1968let prefersSlot3 = 1; 1969} 1970def A2_vmaxuh : HInst< 1971(outs DoubleRegs:$Rdd32), 1972(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1973"$Rdd32 = vmaxuh($Rtt32,$Rss32)", 1974tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1975let Inst{7-5} = 0b010; 1976let Inst{13-13} = 0b0; 1977let Inst{31-21} = 0b11010011110; 1978let prefersSlot3 = 1; 1979} 1980def A2_vmaxuw : HInst< 1981(outs DoubleRegs:$Rdd32), 1982(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1983"$Rdd32 = vmaxuw($Rtt32,$Rss32)", 1984tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1985let Inst{7-5} = 0b101; 1986let Inst{13-13} = 0b0; 1987let Inst{31-21} = 0b11010011101; 1988let prefersSlot3 = 1; 1989} 1990def A2_vmaxw : HInst< 1991(outs DoubleRegs:$Rdd32), 1992(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1993"$Rdd32 = vmaxw($Rtt32,$Rss32)", 1994tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1995let Inst{7-5} = 0b011; 1996let Inst{13-13} = 0b0; 1997let Inst{31-21} = 0b11010011110; 1998let prefersSlot3 = 1; 1999} 2000def A2_vminb : HInst< 2001(outs DoubleRegs:$Rdd32), 2002(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2003"$Rdd32 = vminb($Rtt32,$Rss32)", 2004tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2005let Inst{7-5} = 0b111; 2006let Inst{13-13} = 0b0; 2007let Inst{31-21} = 0b11010011110; 2008let prefersSlot3 = 1; 2009} 2010def A2_vminh : HInst< 2011(outs DoubleRegs:$Rdd32), 2012(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2013"$Rdd32 = vminh($Rtt32,$Rss32)", 2014tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2015let Inst{7-5} = 0b001; 2016let Inst{13-13} = 0b0; 2017let Inst{31-21} = 0b11010011101; 2018let prefersSlot3 = 1; 2019} 2020def A2_vminub : HInst< 2021(outs DoubleRegs:$Rdd32), 2022(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2023"$Rdd32 = vminub($Rtt32,$Rss32)", 2024tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2025let Inst{7-5} = 0b000; 2026let Inst{13-13} = 0b0; 2027let Inst{31-21} = 0b11010011101; 2028let prefersSlot3 = 1; 2029} 2030def A2_vminuh : HInst< 2031(outs DoubleRegs:$Rdd32), 2032(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2033"$Rdd32 = vminuh($Rtt32,$Rss32)", 2034tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2035let Inst{7-5} = 0b010; 2036let Inst{13-13} = 0b0; 2037let Inst{31-21} = 0b11010011101; 2038let prefersSlot3 = 1; 2039} 2040def A2_vminuw : HInst< 2041(outs DoubleRegs:$Rdd32), 2042(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2043"$Rdd32 = vminuw($Rtt32,$Rss32)", 2044tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2045let Inst{7-5} = 0b100; 2046let Inst{13-13} = 0b0; 2047let Inst{31-21} = 0b11010011101; 2048let prefersSlot3 = 1; 2049} 2050def A2_vminw : HInst< 2051(outs DoubleRegs:$Rdd32), 2052(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2053"$Rdd32 = vminw($Rtt32,$Rss32)", 2054tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2055let Inst{7-5} = 0b011; 2056let Inst{13-13} = 0b0; 2057let Inst{31-21} = 0b11010011101; 2058let prefersSlot3 = 1; 2059} 2060def A2_vnavgh : HInst< 2061(outs DoubleRegs:$Rdd32), 2062(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2063"$Rdd32 = vnavgh($Rtt32,$Rss32)", 2064tc_f098b237, TypeALU64>, Enc_ea23e4 { 2065let Inst{7-5} = 0b000; 2066let Inst{13-13} = 0b0; 2067let Inst{31-21} = 0b11010011100; 2068let prefersSlot3 = 1; 2069} 2070def A2_vnavghcr : HInst< 2071(outs DoubleRegs:$Rdd32), 2072(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2073"$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat", 2074tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2075let Inst{7-5} = 0b010; 2076let Inst{13-13} = 0b0; 2077let Inst{31-21} = 0b11010011100; 2078let prefersSlot3 = 1; 2079let Defs = [USR_OVF]; 2080} 2081def A2_vnavghr : HInst< 2082(outs DoubleRegs:$Rdd32), 2083(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2084"$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat", 2085tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2086let Inst{7-5} = 0b001; 2087let Inst{13-13} = 0b0; 2088let Inst{31-21} = 0b11010011100; 2089let prefersSlot3 = 1; 2090let Defs = [USR_OVF]; 2091} 2092def A2_vnavgw : HInst< 2093(outs DoubleRegs:$Rdd32), 2094(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2095"$Rdd32 = vnavgw($Rtt32,$Rss32)", 2096tc_f098b237, TypeALU64>, Enc_ea23e4 { 2097let Inst{7-5} = 0b011; 2098let Inst{13-13} = 0b0; 2099let Inst{31-21} = 0b11010011100; 2100let prefersSlot3 = 1; 2101} 2102def A2_vnavgwcr : HInst< 2103(outs DoubleRegs:$Rdd32), 2104(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2105"$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat", 2106tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2107let Inst{7-5} = 0b110; 2108let Inst{13-13} = 0b0; 2109let Inst{31-21} = 0b11010011100; 2110let prefersSlot3 = 1; 2111let Defs = [USR_OVF]; 2112} 2113def A2_vnavgwr : HInst< 2114(outs DoubleRegs:$Rdd32), 2115(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2116"$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat", 2117tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2118let Inst{7-5} = 0b100; 2119let Inst{13-13} = 0b0; 2120let Inst{31-21} = 0b11010011100; 2121let prefersSlot3 = 1; 2122let Defs = [USR_OVF]; 2123} 2124def A2_vraddub : HInst< 2125(outs DoubleRegs:$Rdd32), 2126(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2127"$Rdd32 = vraddub($Rss32,$Rtt32)", 2128tc_c21d7447, TypeM>, Enc_a56825 { 2129let Inst{7-5} = 0b001; 2130let Inst{13-13} = 0b0; 2131let Inst{31-21} = 0b11101000010; 2132let prefersSlot3 = 1; 2133} 2134def A2_vraddub_acc : HInst< 2135(outs DoubleRegs:$Rxx32), 2136(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2137"$Rxx32 += vraddub($Rss32,$Rtt32)", 2138tc_7f8ae742, TypeM>, Enc_88c16c { 2139let Inst{7-5} = 0b001; 2140let Inst{13-13} = 0b0; 2141let Inst{31-21} = 0b11101010010; 2142let prefersSlot3 = 1; 2143let Constraints = "$Rxx32 = $Rxx32in"; 2144} 2145def A2_vrsadub : HInst< 2146(outs DoubleRegs:$Rdd32), 2147(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2148"$Rdd32 = vrsadub($Rss32,$Rtt32)", 2149tc_c21d7447, TypeM>, Enc_a56825 { 2150let Inst{7-5} = 0b010; 2151let Inst{13-13} = 0b0; 2152let Inst{31-21} = 0b11101000010; 2153let prefersSlot3 = 1; 2154} 2155def A2_vrsadub_acc : HInst< 2156(outs DoubleRegs:$Rxx32), 2157(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2158"$Rxx32 += vrsadub($Rss32,$Rtt32)", 2159tc_7f8ae742, TypeM>, Enc_88c16c { 2160let Inst{7-5} = 0b010; 2161let Inst{13-13} = 0b0; 2162let Inst{31-21} = 0b11101010010; 2163let prefersSlot3 = 1; 2164let Constraints = "$Rxx32 = $Rxx32in"; 2165} 2166def A2_vsubb_map : HInst< 2167(outs DoubleRegs:$Rdd32), 2168(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2169"$Rdd32 = vsubb($Rss32,$Rtt32)", 2170tc_5da50c4b, TypeMAPPING> { 2171let isPseudo = 1; 2172let isCodeGenOnly = 1; 2173} 2174def A2_vsubh : HInst< 2175(outs DoubleRegs:$Rdd32), 2176(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2177"$Rdd32 = vsubh($Rtt32,$Rss32)", 2178tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2179let Inst{7-5} = 0b010; 2180let Inst{13-13} = 0b0; 2181let Inst{31-21} = 0b11010011001; 2182} 2183def A2_vsubhs : HInst< 2184(outs DoubleRegs:$Rdd32), 2185(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2186"$Rdd32 = vsubh($Rtt32,$Rss32):sat", 2187tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2188let Inst{7-5} = 0b011; 2189let Inst{13-13} = 0b0; 2190let Inst{31-21} = 0b11010011001; 2191let prefersSlot3 = 1; 2192let Defs = [USR_OVF]; 2193} 2194def A2_vsubub : HInst< 2195(outs DoubleRegs:$Rdd32), 2196(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2197"$Rdd32 = vsubub($Rtt32,$Rss32)", 2198tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2199let Inst{7-5} = 0b000; 2200let Inst{13-13} = 0b0; 2201let Inst{31-21} = 0b11010011001; 2202} 2203def A2_vsububs : HInst< 2204(outs DoubleRegs:$Rdd32), 2205(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2206"$Rdd32 = vsubub($Rtt32,$Rss32):sat", 2207tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2208let Inst{7-5} = 0b001; 2209let Inst{13-13} = 0b0; 2210let Inst{31-21} = 0b11010011001; 2211let prefersSlot3 = 1; 2212let Defs = [USR_OVF]; 2213} 2214def A2_vsubuhs : HInst< 2215(outs DoubleRegs:$Rdd32), 2216(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2217"$Rdd32 = vsubuh($Rtt32,$Rss32):sat", 2218tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2219let Inst{7-5} = 0b100; 2220let Inst{13-13} = 0b0; 2221let Inst{31-21} = 0b11010011001; 2222let prefersSlot3 = 1; 2223let Defs = [USR_OVF]; 2224} 2225def A2_vsubw : HInst< 2226(outs DoubleRegs:$Rdd32), 2227(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2228"$Rdd32 = vsubw($Rtt32,$Rss32)", 2229tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2230let Inst{7-5} = 0b101; 2231let Inst{13-13} = 0b0; 2232let Inst{31-21} = 0b11010011001; 2233} 2234def A2_vsubws : HInst< 2235(outs DoubleRegs:$Rdd32), 2236(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2237"$Rdd32 = vsubw($Rtt32,$Rss32):sat", 2238tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2239let Inst{7-5} = 0b110; 2240let Inst{13-13} = 0b0; 2241let Inst{31-21} = 0b11010011001; 2242let prefersSlot3 = 1; 2243let Defs = [USR_OVF]; 2244} 2245def A2_xor : HInst< 2246(outs IntRegs:$Rd32), 2247(ins IntRegs:$Rs32, IntRegs:$Rt32), 2248"$Rd32 = xor($Rs32,$Rt32)", 2249tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel { 2250let Inst{7-5} = 0b000; 2251let Inst{13-13} = 0b0; 2252let Inst{31-21} = 0b11110001011; 2253let hasNewValue = 1; 2254let opNewValue = 0; 2255let BaseOpcode = "A2_xor"; 2256let InputType = "reg"; 2257let isCommutable = 1; 2258let isPredicable = 1; 2259} 2260def A2_xorp : HInst< 2261(outs DoubleRegs:$Rdd32), 2262(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2263"$Rdd32 = xor($Rss32,$Rtt32)", 2264tc_5da50c4b, TypeALU64>, Enc_a56825 { 2265let Inst{7-5} = 0b100; 2266let Inst{13-13} = 0b0; 2267let Inst{31-21} = 0b11010011111; 2268let isCommutable = 1; 2269} 2270def A2_zxtb : HInst< 2271(outs IntRegs:$Rd32), 2272(ins IntRegs:$Rs32), 2273"$Rd32 = zxtb($Rs32)", 2274tc_713b66bf, TypeALU32_2op>, PredNewRel { 2275let hasNewValue = 1; 2276let opNewValue = 0; 2277let BaseOpcode = "A2_zxtb"; 2278let isPredicable = 1; 2279let isPseudo = 1; 2280let isCodeGenOnly = 1; 2281} 2282def A2_zxth : HInst< 2283(outs IntRegs:$Rd32), 2284(ins IntRegs:$Rs32), 2285"$Rd32 = zxth($Rs32)", 2286tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 2287let Inst{13-5} = 0b000000000; 2288let Inst{31-21} = 0b01110000110; 2289let hasNewValue = 1; 2290let opNewValue = 0; 2291let BaseOpcode = "A2_zxth"; 2292let isPredicable = 1; 2293} 2294def A4_addp_c : HInst< 2295(outs DoubleRegs:$Rdd32, PredRegs:$Px4), 2296(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 2297"$Rdd32 = add($Rss32,$Rtt32,$Px4):carry", 2298tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 { 2299let Inst{7-7} = 0b0; 2300let Inst{13-13} = 0b0; 2301let Inst{31-21} = 0b11000010110; 2302let isPredicateLate = 1; 2303let Constraints = "$Px4 = $Px4in"; 2304} 2305def A4_andn : HInst< 2306(outs IntRegs:$Rd32), 2307(ins IntRegs:$Rt32, IntRegs:$Rs32), 2308"$Rd32 = and($Rt32,~$Rs32)", 2309tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 2310let Inst{7-5} = 0b000; 2311let Inst{13-13} = 0b0; 2312let Inst{31-21} = 0b11110001100; 2313let hasNewValue = 1; 2314let opNewValue = 0; 2315let InputType = "reg"; 2316} 2317def A4_andnp : HInst< 2318(outs DoubleRegs:$Rdd32), 2319(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2320"$Rdd32 = and($Rtt32,~$Rss32)", 2321tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2322let Inst{7-5} = 0b001; 2323let Inst{13-13} = 0b0; 2324let Inst{31-21} = 0b11010011111; 2325} 2326def A4_bitsplit : HInst< 2327(outs DoubleRegs:$Rdd32), 2328(ins IntRegs:$Rs32, IntRegs:$Rt32), 2329"$Rdd32 = bitsplit($Rs32,$Rt32)", 2330tc_f34c1c21, TypeALU64>, Enc_be32a5 { 2331let Inst{7-5} = 0b000; 2332let Inst{13-13} = 0b0; 2333let Inst{31-21} = 0b11010100001; 2334let prefersSlot3 = 1; 2335} 2336def A4_bitspliti : HInst< 2337(outs DoubleRegs:$Rdd32), 2338(ins IntRegs:$Rs32, u5_0Imm:$Ii), 2339"$Rdd32 = bitsplit($Rs32,#$Ii)", 2340tc_f34c1c21, TypeS_2op>, Enc_311abd { 2341let Inst{7-5} = 0b100; 2342let Inst{13-13} = 0b0; 2343let Inst{31-21} = 0b10001000110; 2344let prefersSlot3 = 1; 2345} 2346def A4_boundscheck : HInst< 2347(outs PredRegs:$Pd4), 2348(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 2349"$Pd4 = boundscheck($Rs32,$Rtt32)", 2350tc_4a55d03c, TypeALU64> { 2351let isPseudo = 1; 2352} 2353def A4_boundscheck_hi : HInst< 2354(outs PredRegs:$Pd4), 2355(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2356"$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi", 2357tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 2358let Inst{7-2} = 0b101000; 2359let Inst{13-13} = 0b1; 2360let Inst{31-21} = 0b11010010000; 2361} 2362def A4_boundscheck_lo : HInst< 2363(outs PredRegs:$Pd4), 2364(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2365"$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo", 2366tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 2367let Inst{7-2} = 0b100000; 2368let Inst{13-13} = 0b1; 2369let Inst{31-21} = 0b11010010000; 2370} 2371def A4_cmpbeq : HInst< 2372(outs PredRegs:$Pd4), 2373(ins IntRegs:$Rs32, IntRegs:$Rt32), 2374"$Pd4 = cmpb.eq($Rs32,$Rt32)", 2375tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2376let Inst{7-2} = 0b110000; 2377let Inst{13-13} = 0b0; 2378let Inst{31-21} = 0b11000111110; 2379let CextOpcode = "A4_cmpbeq"; 2380let InputType = "reg"; 2381let isCommutable = 1; 2382let isCompare = 1; 2383} 2384def A4_cmpbeqi : HInst< 2385(outs PredRegs:$Pd4), 2386(ins IntRegs:$Rs32, u8_0Imm:$Ii), 2387"$Pd4 = cmpb.eq($Rs32,#$Ii)", 2388tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2389let Inst{4-2} = 0b000; 2390let Inst{13-13} = 0b0; 2391let Inst{31-21} = 0b11011101000; 2392let CextOpcode = "A4_cmpbeq"; 2393let InputType = "imm"; 2394let isCommutable = 1; 2395let isCompare = 1; 2396} 2397def A4_cmpbgt : HInst< 2398(outs PredRegs:$Pd4), 2399(ins IntRegs:$Rs32, IntRegs:$Rt32), 2400"$Pd4 = cmpb.gt($Rs32,$Rt32)", 2401tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2402let Inst{7-2} = 0b010000; 2403let Inst{13-13} = 0b0; 2404let Inst{31-21} = 0b11000111110; 2405let CextOpcode = "A4_cmpbgt"; 2406let InputType = "reg"; 2407let isCompare = 1; 2408} 2409def A4_cmpbgti : HInst< 2410(outs PredRegs:$Pd4), 2411(ins IntRegs:$Rs32, s8_0Imm:$Ii), 2412"$Pd4 = cmpb.gt($Rs32,#$Ii)", 2413tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2414let Inst{4-2} = 0b000; 2415let Inst{13-13} = 0b0; 2416let Inst{31-21} = 0b11011101001; 2417let CextOpcode = "A4_cmpbgt"; 2418let InputType = "imm"; 2419let isCompare = 1; 2420} 2421def A4_cmpbgtu : HInst< 2422(outs PredRegs:$Pd4), 2423(ins IntRegs:$Rs32, IntRegs:$Rt32), 2424"$Pd4 = cmpb.gtu($Rs32,$Rt32)", 2425tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2426let Inst{7-2} = 0b111000; 2427let Inst{13-13} = 0b0; 2428let Inst{31-21} = 0b11000111110; 2429let CextOpcode = "A4_cmpbgtu"; 2430let InputType = "reg"; 2431let isCompare = 1; 2432} 2433def A4_cmpbgtui : HInst< 2434(outs PredRegs:$Pd4), 2435(ins IntRegs:$Rs32, u32_0Imm:$Ii), 2436"$Pd4 = cmpb.gtu($Rs32,#$Ii)", 2437tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel { 2438let Inst{4-2} = 0b000; 2439let Inst{13-12} = 0b00; 2440let Inst{31-21} = 0b11011101010; 2441let CextOpcode = "A4_cmpbgtu"; 2442let InputType = "imm"; 2443let isCompare = 1; 2444let isExtendable = 1; 2445let opExtendable = 2; 2446let isExtentSigned = 0; 2447let opExtentBits = 7; 2448let opExtentAlign = 0; 2449} 2450def A4_cmpheq : HInst< 2451(outs PredRegs:$Pd4), 2452(ins IntRegs:$Rs32, IntRegs:$Rt32), 2453"$Pd4 = cmph.eq($Rs32,$Rt32)", 2454tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2455let Inst{7-2} = 0b011000; 2456let Inst{13-13} = 0b0; 2457let Inst{31-21} = 0b11000111110; 2458let CextOpcode = "A4_cmpheq"; 2459let InputType = "reg"; 2460let isCommutable = 1; 2461let isCompare = 1; 2462} 2463def A4_cmpheqi : HInst< 2464(outs PredRegs:$Pd4), 2465(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2466"$Pd4 = cmph.eq($Rs32,#$Ii)", 2467tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2468let Inst{4-2} = 0b010; 2469let Inst{13-13} = 0b0; 2470let Inst{31-21} = 0b11011101000; 2471let CextOpcode = "A4_cmpheq"; 2472let InputType = "imm"; 2473let isCommutable = 1; 2474let isCompare = 1; 2475let isExtendable = 1; 2476let opExtendable = 2; 2477let isExtentSigned = 1; 2478let opExtentBits = 8; 2479let opExtentAlign = 0; 2480} 2481def A4_cmphgt : HInst< 2482(outs PredRegs:$Pd4), 2483(ins IntRegs:$Rs32, IntRegs:$Rt32), 2484"$Pd4 = cmph.gt($Rs32,$Rt32)", 2485tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2486let Inst{7-2} = 0b100000; 2487let Inst{13-13} = 0b0; 2488let Inst{31-21} = 0b11000111110; 2489let CextOpcode = "A4_cmphgt"; 2490let InputType = "reg"; 2491let isCompare = 1; 2492} 2493def A4_cmphgti : HInst< 2494(outs PredRegs:$Pd4), 2495(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2496"$Pd4 = cmph.gt($Rs32,#$Ii)", 2497tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2498let Inst{4-2} = 0b010; 2499let Inst{13-13} = 0b0; 2500let Inst{31-21} = 0b11011101001; 2501let CextOpcode = "A4_cmphgt"; 2502let InputType = "imm"; 2503let isCompare = 1; 2504let isExtendable = 1; 2505let opExtendable = 2; 2506let isExtentSigned = 1; 2507let opExtentBits = 8; 2508let opExtentAlign = 0; 2509} 2510def A4_cmphgtu : HInst< 2511(outs PredRegs:$Pd4), 2512(ins IntRegs:$Rs32, IntRegs:$Rt32), 2513"$Pd4 = cmph.gtu($Rs32,$Rt32)", 2514tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2515let Inst{7-2} = 0b101000; 2516let Inst{13-13} = 0b0; 2517let Inst{31-21} = 0b11000111110; 2518let CextOpcode = "A4_cmphgtu"; 2519let InputType = "reg"; 2520let isCompare = 1; 2521} 2522def A4_cmphgtui : HInst< 2523(outs PredRegs:$Pd4), 2524(ins IntRegs:$Rs32, u32_0Imm:$Ii), 2525"$Pd4 = cmph.gtu($Rs32,#$Ii)", 2526tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel { 2527let Inst{4-2} = 0b010; 2528let Inst{13-12} = 0b00; 2529let Inst{31-21} = 0b11011101010; 2530let CextOpcode = "A4_cmphgtu"; 2531let InputType = "imm"; 2532let isCompare = 1; 2533let isExtendable = 1; 2534let opExtendable = 2; 2535let isExtentSigned = 0; 2536let opExtentBits = 7; 2537let opExtentAlign = 0; 2538} 2539def A4_combineii : HInst< 2540(outs DoubleRegs:$Rdd32), 2541(ins s8_0Imm:$Ii, u32_0Imm:$II), 2542"$Rdd32 = combine(#$Ii,#$II)", 2543tc_713b66bf, TypeALU32_2op>, Enc_f0cca7 { 2544let Inst{31-21} = 0b01111100100; 2545let isExtendable = 1; 2546let opExtendable = 2; 2547let isExtentSigned = 0; 2548let opExtentBits = 6; 2549let opExtentAlign = 0; 2550} 2551def A4_combineir : HInst< 2552(outs DoubleRegs:$Rdd32), 2553(ins s32_0Imm:$Ii, IntRegs:$Rs32), 2554"$Rdd32 = combine(#$Ii,$Rs32)", 2555tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 { 2556let Inst{13-13} = 0b1; 2557let Inst{31-21} = 0b01110011001; 2558let isExtendable = 1; 2559let opExtendable = 1; 2560let isExtentSigned = 1; 2561let opExtentBits = 8; 2562let opExtentAlign = 0; 2563} 2564def A4_combineri : HInst< 2565(outs DoubleRegs:$Rdd32), 2566(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2567"$Rdd32 = combine($Rs32,#$Ii)", 2568tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 { 2569let Inst{13-13} = 0b1; 2570let Inst{31-21} = 0b01110011000; 2571let isExtendable = 1; 2572let opExtendable = 2; 2573let isExtentSigned = 1; 2574let opExtentBits = 8; 2575let opExtentAlign = 0; 2576} 2577def A4_cround_ri : HInst< 2578(outs IntRegs:$Rd32), 2579(ins IntRegs:$Rs32, u5_0Imm:$Ii), 2580"$Rd32 = cround($Rs32,#$Ii)", 2581tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 2582let Inst{7-5} = 0b000; 2583let Inst{13-13} = 0b0; 2584let Inst{31-21} = 0b10001100111; 2585let hasNewValue = 1; 2586let opNewValue = 0; 2587let prefersSlot3 = 1; 2588} 2589def A4_cround_rr : HInst< 2590(outs IntRegs:$Rd32), 2591(ins IntRegs:$Rs32, IntRegs:$Rt32), 2592"$Rd32 = cround($Rs32,$Rt32)", 2593tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 2594let Inst{7-5} = 0b000; 2595let Inst{13-13} = 0b0; 2596let Inst{31-21} = 0b11000110110; 2597let hasNewValue = 1; 2598let opNewValue = 0; 2599let prefersSlot3 = 1; 2600} 2601def A4_ext : HInst< 2602(outs), 2603(ins u26_6Imm:$Ii), 2604"immext(#$Ii)", 2605tc_112d30d6, TypeEXTENDER>, Enc_2b518f { 2606let Inst{31-28} = 0b0000; 2607} 2608def A4_modwrapu : HInst< 2609(outs IntRegs:$Rd32), 2610(ins IntRegs:$Rs32, IntRegs:$Rt32), 2611"$Rd32 = modwrap($Rs32,$Rt32)", 2612tc_8a825db2, TypeALU64>, Enc_5ab2be { 2613let Inst{7-5} = 0b111; 2614let Inst{13-13} = 0b0; 2615let Inst{31-21} = 0b11010011111; 2616let hasNewValue = 1; 2617let opNewValue = 0; 2618let prefersSlot3 = 1; 2619} 2620def A4_orn : HInst< 2621(outs IntRegs:$Rd32), 2622(ins IntRegs:$Rt32, IntRegs:$Rs32), 2623"$Rd32 = or($Rt32,~$Rs32)", 2624tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 2625let Inst{7-5} = 0b000; 2626let Inst{13-13} = 0b0; 2627let Inst{31-21} = 0b11110001101; 2628let hasNewValue = 1; 2629let opNewValue = 0; 2630let InputType = "reg"; 2631} 2632def A4_ornp : HInst< 2633(outs DoubleRegs:$Rdd32), 2634(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2635"$Rdd32 = or($Rtt32,~$Rss32)", 2636tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2637let Inst{7-5} = 0b011; 2638let Inst{13-13} = 0b0; 2639let Inst{31-21} = 0b11010011111; 2640} 2641def A4_paslhf : HInst< 2642(outs IntRegs:$Rd32), 2643(ins PredRegs:$Pu4, IntRegs:$Rs32), 2644"if (!$Pu4) $Rd32 = aslh($Rs32)", 2645tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2646let Inst{7-5} = 0b000; 2647let Inst{13-10} = 0b1010; 2648let Inst{31-21} = 0b01110000000; 2649let isPredicated = 1; 2650let isPredicatedFalse = 1; 2651let hasNewValue = 1; 2652let opNewValue = 0; 2653let BaseOpcode = "A2_aslh"; 2654} 2655def A4_paslhfnew : HInst< 2656(outs IntRegs:$Rd32), 2657(ins PredRegs:$Pu4, IntRegs:$Rs32), 2658"if (!$Pu4.new) $Rd32 = aslh($Rs32)", 2659tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2660let Inst{7-5} = 0b000; 2661let Inst{13-10} = 0b1011; 2662let Inst{31-21} = 0b01110000000; 2663let isPredicated = 1; 2664let isPredicatedFalse = 1; 2665let hasNewValue = 1; 2666let opNewValue = 0; 2667let isPredicatedNew = 1; 2668let BaseOpcode = "A2_aslh"; 2669} 2670def A4_paslht : HInst< 2671(outs IntRegs:$Rd32), 2672(ins PredRegs:$Pu4, IntRegs:$Rs32), 2673"if ($Pu4) $Rd32 = aslh($Rs32)", 2674tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2675let Inst{7-5} = 0b000; 2676let Inst{13-10} = 0b1000; 2677let Inst{31-21} = 0b01110000000; 2678let isPredicated = 1; 2679let hasNewValue = 1; 2680let opNewValue = 0; 2681let BaseOpcode = "A2_aslh"; 2682} 2683def A4_paslhtnew : HInst< 2684(outs IntRegs:$Rd32), 2685(ins PredRegs:$Pu4, IntRegs:$Rs32), 2686"if ($Pu4.new) $Rd32 = aslh($Rs32)", 2687tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2688let Inst{7-5} = 0b000; 2689let Inst{13-10} = 0b1001; 2690let Inst{31-21} = 0b01110000000; 2691let isPredicated = 1; 2692let hasNewValue = 1; 2693let opNewValue = 0; 2694let isPredicatedNew = 1; 2695let BaseOpcode = "A2_aslh"; 2696} 2697def A4_pasrhf : HInst< 2698(outs IntRegs:$Rd32), 2699(ins PredRegs:$Pu4, IntRegs:$Rs32), 2700"if (!$Pu4) $Rd32 = asrh($Rs32)", 2701tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2702let Inst{7-5} = 0b000; 2703let Inst{13-10} = 0b1010; 2704let Inst{31-21} = 0b01110000001; 2705let isPredicated = 1; 2706let isPredicatedFalse = 1; 2707let hasNewValue = 1; 2708let opNewValue = 0; 2709let BaseOpcode = "A2_asrh"; 2710} 2711def A4_pasrhfnew : HInst< 2712(outs IntRegs:$Rd32), 2713(ins PredRegs:$Pu4, IntRegs:$Rs32), 2714"if (!$Pu4.new) $Rd32 = asrh($Rs32)", 2715tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2716let Inst{7-5} = 0b000; 2717let Inst{13-10} = 0b1011; 2718let Inst{31-21} = 0b01110000001; 2719let isPredicated = 1; 2720let isPredicatedFalse = 1; 2721let hasNewValue = 1; 2722let opNewValue = 0; 2723let isPredicatedNew = 1; 2724let BaseOpcode = "A2_asrh"; 2725} 2726def A4_pasrht : HInst< 2727(outs IntRegs:$Rd32), 2728(ins PredRegs:$Pu4, IntRegs:$Rs32), 2729"if ($Pu4) $Rd32 = asrh($Rs32)", 2730tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2731let Inst{7-5} = 0b000; 2732let Inst{13-10} = 0b1000; 2733let Inst{31-21} = 0b01110000001; 2734let isPredicated = 1; 2735let hasNewValue = 1; 2736let opNewValue = 0; 2737let BaseOpcode = "A2_asrh"; 2738} 2739def A4_pasrhtnew : HInst< 2740(outs IntRegs:$Rd32), 2741(ins PredRegs:$Pu4, IntRegs:$Rs32), 2742"if ($Pu4.new) $Rd32 = asrh($Rs32)", 2743tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2744let Inst{7-5} = 0b000; 2745let Inst{13-10} = 0b1001; 2746let Inst{31-21} = 0b01110000001; 2747let isPredicated = 1; 2748let hasNewValue = 1; 2749let opNewValue = 0; 2750let isPredicatedNew = 1; 2751let BaseOpcode = "A2_asrh"; 2752} 2753def A4_psxtbf : HInst< 2754(outs IntRegs:$Rd32), 2755(ins PredRegs:$Pu4, IntRegs:$Rs32), 2756"if (!$Pu4) $Rd32 = sxtb($Rs32)", 2757tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2758let Inst{7-5} = 0b000; 2759let Inst{13-10} = 0b1010; 2760let Inst{31-21} = 0b01110000101; 2761let isPredicated = 1; 2762let isPredicatedFalse = 1; 2763let hasNewValue = 1; 2764let opNewValue = 0; 2765let BaseOpcode = "A2_sxtb"; 2766} 2767def A4_psxtbfnew : HInst< 2768(outs IntRegs:$Rd32), 2769(ins PredRegs:$Pu4, IntRegs:$Rs32), 2770"if (!$Pu4.new) $Rd32 = sxtb($Rs32)", 2771tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2772let Inst{7-5} = 0b000; 2773let Inst{13-10} = 0b1011; 2774let Inst{31-21} = 0b01110000101; 2775let isPredicated = 1; 2776let isPredicatedFalse = 1; 2777let hasNewValue = 1; 2778let opNewValue = 0; 2779let isPredicatedNew = 1; 2780let BaseOpcode = "A2_sxtb"; 2781} 2782def A4_psxtbt : HInst< 2783(outs IntRegs:$Rd32), 2784(ins PredRegs:$Pu4, IntRegs:$Rs32), 2785"if ($Pu4) $Rd32 = sxtb($Rs32)", 2786tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2787let Inst{7-5} = 0b000; 2788let Inst{13-10} = 0b1000; 2789let Inst{31-21} = 0b01110000101; 2790let isPredicated = 1; 2791let hasNewValue = 1; 2792let opNewValue = 0; 2793let BaseOpcode = "A2_sxtb"; 2794} 2795def A4_psxtbtnew : HInst< 2796(outs IntRegs:$Rd32), 2797(ins PredRegs:$Pu4, IntRegs:$Rs32), 2798"if ($Pu4.new) $Rd32 = sxtb($Rs32)", 2799tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2800let Inst{7-5} = 0b000; 2801let Inst{13-10} = 0b1001; 2802let Inst{31-21} = 0b01110000101; 2803let isPredicated = 1; 2804let hasNewValue = 1; 2805let opNewValue = 0; 2806let isPredicatedNew = 1; 2807let BaseOpcode = "A2_sxtb"; 2808} 2809def A4_psxthf : HInst< 2810(outs IntRegs:$Rd32), 2811(ins PredRegs:$Pu4, IntRegs:$Rs32), 2812"if (!$Pu4) $Rd32 = sxth($Rs32)", 2813tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2814let Inst{7-5} = 0b000; 2815let Inst{13-10} = 0b1010; 2816let Inst{31-21} = 0b01110000111; 2817let isPredicated = 1; 2818let isPredicatedFalse = 1; 2819let hasNewValue = 1; 2820let opNewValue = 0; 2821let BaseOpcode = "A2_sxth"; 2822} 2823def A4_psxthfnew : HInst< 2824(outs IntRegs:$Rd32), 2825(ins PredRegs:$Pu4, IntRegs:$Rs32), 2826"if (!$Pu4.new) $Rd32 = sxth($Rs32)", 2827tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2828let Inst{7-5} = 0b000; 2829let Inst{13-10} = 0b1011; 2830let Inst{31-21} = 0b01110000111; 2831let isPredicated = 1; 2832let isPredicatedFalse = 1; 2833let hasNewValue = 1; 2834let opNewValue = 0; 2835let isPredicatedNew = 1; 2836let BaseOpcode = "A2_sxth"; 2837} 2838def A4_psxtht : HInst< 2839(outs IntRegs:$Rd32), 2840(ins PredRegs:$Pu4, IntRegs:$Rs32), 2841"if ($Pu4) $Rd32 = sxth($Rs32)", 2842tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2843let Inst{7-5} = 0b000; 2844let Inst{13-10} = 0b1000; 2845let Inst{31-21} = 0b01110000111; 2846let isPredicated = 1; 2847let hasNewValue = 1; 2848let opNewValue = 0; 2849let BaseOpcode = "A2_sxth"; 2850} 2851def A4_psxthtnew : HInst< 2852(outs IntRegs:$Rd32), 2853(ins PredRegs:$Pu4, IntRegs:$Rs32), 2854"if ($Pu4.new) $Rd32 = sxth($Rs32)", 2855tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2856let Inst{7-5} = 0b000; 2857let Inst{13-10} = 0b1001; 2858let Inst{31-21} = 0b01110000111; 2859let isPredicated = 1; 2860let hasNewValue = 1; 2861let opNewValue = 0; 2862let isPredicatedNew = 1; 2863let BaseOpcode = "A2_sxth"; 2864} 2865def A4_pzxtbf : HInst< 2866(outs IntRegs:$Rd32), 2867(ins PredRegs:$Pu4, IntRegs:$Rs32), 2868"if (!$Pu4) $Rd32 = zxtb($Rs32)", 2869tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2870let Inst{7-5} = 0b000; 2871let Inst{13-10} = 0b1010; 2872let Inst{31-21} = 0b01110000100; 2873let isPredicated = 1; 2874let isPredicatedFalse = 1; 2875let hasNewValue = 1; 2876let opNewValue = 0; 2877let BaseOpcode = "A2_zxtb"; 2878} 2879def A4_pzxtbfnew : HInst< 2880(outs IntRegs:$Rd32), 2881(ins PredRegs:$Pu4, IntRegs:$Rs32), 2882"if (!$Pu4.new) $Rd32 = zxtb($Rs32)", 2883tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2884let Inst{7-5} = 0b000; 2885let Inst{13-10} = 0b1011; 2886let Inst{31-21} = 0b01110000100; 2887let isPredicated = 1; 2888let isPredicatedFalse = 1; 2889let hasNewValue = 1; 2890let opNewValue = 0; 2891let isPredicatedNew = 1; 2892let BaseOpcode = "A2_zxtb"; 2893} 2894def A4_pzxtbt : HInst< 2895(outs IntRegs:$Rd32), 2896(ins PredRegs:$Pu4, IntRegs:$Rs32), 2897"if ($Pu4) $Rd32 = zxtb($Rs32)", 2898tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2899let Inst{7-5} = 0b000; 2900let Inst{13-10} = 0b1000; 2901let Inst{31-21} = 0b01110000100; 2902let isPredicated = 1; 2903let hasNewValue = 1; 2904let opNewValue = 0; 2905let BaseOpcode = "A2_zxtb"; 2906} 2907def A4_pzxtbtnew : HInst< 2908(outs IntRegs:$Rd32), 2909(ins PredRegs:$Pu4, IntRegs:$Rs32), 2910"if ($Pu4.new) $Rd32 = zxtb($Rs32)", 2911tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2912let Inst{7-5} = 0b000; 2913let Inst{13-10} = 0b1001; 2914let Inst{31-21} = 0b01110000100; 2915let isPredicated = 1; 2916let hasNewValue = 1; 2917let opNewValue = 0; 2918let isPredicatedNew = 1; 2919let BaseOpcode = "A2_zxtb"; 2920} 2921def A4_pzxthf : HInst< 2922(outs IntRegs:$Rd32), 2923(ins PredRegs:$Pu4, IntRegs:$Rs32), 2924"if (!$Pu4) $Rd32 = zxth($Rs32)", 2925tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2926let Inst{7-5} = 0b000; 2927let Inst{13-10} = 0b1010; 2928let Inst{31-21} = 0b01110000110; 2929let isPredicated = 1; 2930let isPredicatedFalse = 1; 2931let hasNewValue = 1; 2932let opNewValue = 0; 2933let BaseOpcode = "A2_zxth"; 2934} 2935def A4_pzxthfnew : HInst< 2936(outs IntRegs:$Rd32), 2937(ins PredRegs:$Pu4, IntRegs:$Rs32), 2938"if (!$Pu4.new) $Rd32 = zxth($Rs32)", 2939tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2940let Inst{7-5} = 0b000; 2941let Inst{13-10} = 0b1011; 2942let Inst{31-21} = 0b01110000110; 2943let isPredicated = 1; 2944let isPredicatedFalse = 1; 2945let hasNewValue = 1; 2946let opNewValue = 0; 2947let isPredicatedNew = 1; 2948let BaseOpcode = "A2_zxth"; 2949} 2950def A4_pzxtht : HInst< 2951(outs IntRegs:$Rd32), 2952(ins PredRegs:$Pu4, IntRegs:$Rs32), 2953"if ($Pu4) $Rd32 = zxth($Rs32)", 2954tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2955let Inst{7-5} = 0b000; 2956let Inst{13-10} = 0b1000; 2957let Inst{31-21} = 0b01110000110; 2958let isPredicated = 1; 2959let hasNewValue = 1; 2960let opNewValue = 0; 2961let BaseOpcode = "A2_zxth"; 2962} 2963def A4_pzxthtnew : HInst< 2964(outs IntRegs:$Rd32), 2965(ins PredRegs:$Pu4, IntRegs:$Rs32), 2966"if ($Pu4.new) $Rd32 = zxth($Rs32)", 2967tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2968let Inst{7-5} = 0b000; 2969let Inst{13-10} = 0b1001; 2970let Inst{31-21} = 0b01110000110; 2971let isPredicated = 1; 2972let hasNewValue = 1; 2973let opNewValue = 0; 2974let isPredicatedNew = 1; 2975let BaseOpcode = "A2_zxth"; 2976} 2977def A4_rcmpeq : HInst< 2978(outs IntRegs:$Rd32), 2979(ins IntRegs:$Rs32, IntRegs:$Rt32), 2980"$Rd32 = cmp.eq($Rs32,$Rt32)", 2981tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 2982let Inst{7-5} = 0b000; 2983let Inst{13-13} = 0b0; 2984let Inst{31-21} = 0b11110011010; 2985let hasNewValue = 1; 2986let opNewValue = 0; 2987let CextOpcode = "A4_rcmpeq"; 2988let InputType = "reg"; 2989let isCommutable = 1; 2990} 2991def A4_rcmpeqi : HInst< 2992(outs IntRegs:$Rd32), 2993(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2994"$Rd32 = cmp.eq($Rs32,#$Ii)", 2995tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 2996let Inst{13-13} = 0b1; 2997let Inst{31-21} = 0b01110011010; 2998let hasNewValue = 1; 2999let opNewValue = 0; 3000let CextOpcode = "A4_rcmpeqi"; 3001let InputType = "imm"; 3002let isExtendable = 1; 3003let opExtendable = 2; 3004let isExtentSigned = 1; 3005let opExtentBits = 8; 3006let opExtentAlign = 0; 3007} 3008def A4_rcmpneq : HInst< 3009(outs IntRegs:$Rd32), 3010(ins IntRegs:$Rs32, IntRegs:$Rt32), 3011"$Rd32 = !cmp.eq($Rs32,$Rt32)", 3012tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 3013let Inst{7-5} = 0b000; 3014let Inst{13-13} = 0b0; 3015let Inst{31-21} = 0b11110011011; 3016let hasNewValue = 1; 3017let opNewValue = 0; 3018let CextOpcode = "A4_rcmpneq"; 3019let InputType = "reg"; 3020let isCommutable = 1; 3021} 3022def A4_rcmpneqi : HInst< 3023(outs IntRegs:$Rd32), 3024(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3025"$Rd32 = !cmp.eq($Rs32,#$Ii)", 3026tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 3027let Inst{13-13} = 0b1; 3028let Inst{31-21} = 0b01110011011; 3029let hasNewValue = 1; 3030let opNewValue = 0; 3031let CextOpcode = "A4_rcmpeqi"; 3032let InputType = "imm"; 3033let isExtendable = 1; 3034let opExtendable = 2; 3035let isExtentSigned = 1; 3036let opExtentBits = 8; 3037let opExtentAlign = 0; 3038} 3039def A4_round_ri : HInst< 3040(outs IntRegs:$Rd32), 3041(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3042"$Rd32 = round($Rs32,#$Ii)", 3043tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 3044let Inst{7-5} = 0b100; 3045let Inst{13-13} = 0b0; 3046let Inst{31-21} = 0b10001100111; 3047let hasNewValue = 1; 3048let opNewValue = 0; 3049let prefersSlot3 = 1; 3050} 3051def A4_round_ri_sat : HInst< 3052(outs IntRegs:$Rd32), 3053(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3054"$Rd32 = round($Rs32,#$Ii):sat", 3055tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 3056let Inst{7-5} = 0b110; 3057let Inst{13-13} = 0b0; 3058let Inst{31-21} = 0b10001100111; 3059let hasNewValue = 1; 3060let opNewValue = 0; 3061let prefersSlot3 = 1; 3062let Defs = [USR_OVF]; 3063} 3064def A4_round_rr : HInst< 3065(outs IntRegs:$Rd32), 3066(ins IntRegs:$Rs32, IntRegs:$Rt32), 3067"$Rd32 = round($Rs32,$Rt32)", 3068tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 3069let Inst{7-5} = 0b100; 3070let Inst{13-13} = 0b0; 3071let Inst{31-21} = 0b11000110110; 3072let hasNewValue = 1; 3073let opNewValue = 0; 3074let prefersSlot3 = 1; 3075} 3076def A4_round_rr_sat : HInst< 3077(outs IntRegs:$Rd32), 3078(ins IntRegs:$Rs32, IntRegs:$Rt32), 3079"$Rd32 = round($Rs32,$Rt32):sat", 3080tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 3081let Inst{7-5} = 0b110; 3082let Inst{13-13} = 0b0; 3083let Inst{31-21} = 0b11000110110; 3084let hasNewValue = 1; 3085let opNewValue = 0; 3086let prefersSlot3 = 1; 3087let Defs = [USR_OVF]; 3088} 3089def A4_subp_c : HInst< 3090(outs DoubleRegs:$Rdd32, PredRegs:$Px4), 3091(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 3092"$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry", 3093tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 { 3094let Inst{7-7} = 0b0; 3095let Inst{13-13} = 0b0; 3096let Inst{31-21} = 0b11000010111; 3097let isPredicateLate = 1; 3098let Constraints = "$Px4 = $Px4in"; 3099} 3100def A4_tfrcpp : HInst< 3101(outs DoubleRegs:$Rdd32), 3102(ins CtrRegs64:$Css32), 3103"$Rdd32 = $Css32", 3104tc_7476d766, TypeCR>, Enc_667b39 { 3105let Inst{13-5} = 0b000000000; 3106let Inst{31-21} = 0b01101000000; 3107} 3108def A4_tfrpcp : HInst< 3109(outs CtrRegs64:$Cdd32), 3110(ins DoubleRegs:$Rss32), 3111"$Cdd32 = $Rss32", 3112tc_49fdfd4b, TypeCR>, Enc_0ed752 { 3113let Inst{13-5} = 0b000000000; 3114let Inst{31-21} = 0b01100011001; 3115} 3116def A4_tlbmatch : HInst< 3117(outs PredRegs:$Pd4), 3118(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 3119"$Pd4 = tlbmatch($Rss32,$Rt32)", 3120tc_d68dca5c, TypeALU64>, Enc_03833b { 3121let Inst{7-2} = 0b011000; 3122let Inst{13-13} = 0b1; 3123let Inst{31-21} = 0b11010010000; 3124let isPredicateLate = 1; 3125} 3126def A4_vcmpbeq_any : HInst< 3127(outs PredRegs:$Pd4), 3128(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3129"$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))", 3130tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3131let Inst{7-2} = 0b000000; 3132let Inst{13-13} = 0b1; 3133let Inst{31-21} = 0b11010010000; 3134} 3135def A4_vcmpbeqi : HInst< 3136(outs PredRegs:$Pd4), 3137(ins DoubleRegs:$Rss32, u8_0Imm:$Ii), 3138"$Pd4 = vcmpb.eq($Rss32,#$Ii)", 3139tc_a1297125, TypeALU64>, Enc_0d8adb { 3140let Inst{4-2} = 0b000; 3141let Inst{13-13} = 0b0; 3142let Inst{31-21} = 0b11011100000; 3143} 3144def A4_vcmpbgt : HInst< 3145(outs PredRegs:$Pd4), 3146(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3147"$Pd4 = vcmpb.gt($Rss32,$Rtt32)", 3148tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3149let Inst{7-2} = 0b010000; 3150let Inst{13-13} = 0b1; 3151let Inst{31-21} = 0b11010010000; 3152} 3153def A4_vcmpbgti : HInst< 3154(outs PredRegs:$Pd4), 3155(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3156"$Pd4 = vcmpb.gt($Rss32,#$Ii)", 3157tc_a1297125, TypeALU64>, Enc_0d8adb { 3158let Inst{4-2} = 0b000; 3159let Inst{13-13} = 0b0; 3160let Inst{31-21} = 0b11011100001; 3161} 3162def A4_vcmpbgtui : HInst< 3163(outs PredRegs:$Pd4), 3164(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3165"$Pd4 = vcmpb.gtu($Rss32,#$Ii)", 3166tc_a1297125, TypeALU64>, Enc_3680c2 { 3167let Inst{4-2} = 0b000; 3168let Inst{13-12} = 0b00; 3169let Inst{31-21} = 0b11011100010; 3170} 3171def A4_vcmpheqi : HInst< 3172(outs PredRegs:$Pd4), 3173(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3174"$Pd4 = vcmph.eq($Rss32,#$Ii)", 3175tc_a1297125, TypeALU64>, Enc_0d8adb { 3176let Inst{4-2} = 0b010; 3177let Inst{13-13} = 0b0; 3178let Inst{31-21} = 0b11011100000; 3179} 3180def A4_vcmphgti : HInst< 3181(outs PredRegs:$Pd4), 3182(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3183"$Pd4 = vcmph.gt($Rss32,#$Ii)", 3184tc_a1297125, TypeALU64>, Enc_0d8adb { 3185let Inst{4-2} = 0b010; 3186let Inst{13-13} = 0b0; 3187let Inst{31-21} = 0b11011100001; 3188} 3189def A4_vcmphgtui : HInst< 3190(outs PredRegs:$Pd4), 3191(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3192"$Pd4 = vcmph.gtu($Rss32,#$Ii)", 3193tc_a1297125, TypeALU64>, Enc_3680c2 { 3194let Inst{4-2} = 0b010; 3195let Inst{13-12} = 0b00; 3196let Inst{31-21} = 0b11011100010; 3197} 3198def A4_vcmpweqi : HInst< 3199(outs PredRegs:$Pd4), 3200(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3201"$Pd4 = vcmpw.eq($Rss32,#$Ii)", 3202tc_a1297125, TypeALU64>, Enc_0d8adb { 3203let Inst{4-2} = 0b100; 3204let Inst{13-13} = 0b0; 3205let Inst{31-21} = 0b11011100000; 3206} 3207def A4_vcmpwgti : HInst< 3208(outs PredRegs:$Pd4), 3209(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3210"$Pd4 = vcmpw.gt($Rss32,#$Ii)", 3211tc_a1297125, TypeALU64>, Enc_0d8adb { 3212let Inst{4-2} = 0b100; 3213let Inst{13-13} = 0b0; 3214let Inst{31-21} = 0b11011100001; 3215} 3216def A4_vcmpwgtui : HInst< 3217(outs PredRegs:$Pd4), 3218(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3219"$Pd4 = vcmpw.gtu($Rss32,#$Ii)", 3220tc_a1297125, TypeALU64>, Enc_3680c2 { 3221let Inst{4-2} = 0b100; 3222let Inst{13-12} = 0b00; 3223let Inst{31-21} = 0b11011100010; 3224} 3225def A4_vrmaxh : HInst< 3226(outs DoubleRegs:$Rxx32), 3227(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3228"$Rxx32 = vrmaxh($Rss32,$Ru32)", 3229tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3230let Inst{7-5} = 0b001; 3231let Inst{13-13} = 0b0; 3232let Inst{31-21} = 0b11001011001; 3233let prefersSlot3 = 1; 3234let Constraints = "$Rxx32 = $Rxx32in"; 3235} 3236def A4_vrmaxuh : HInst< 3237(outs DoubleRegs:$Rxx32), 3238(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3239"$Rxx32 = vrmaxuh($Rss32,$Ru32)", 3240tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3241let Inst{7-5} = 0b001; 3242let Inst{13-13} = 0b1; 3243let Inst{31-21} = 0b11001011001; 3244let prefersSlot3 = 1; 3245let Constraints = "$Rxx32 = $Rxx32in"; 3246} 3247def A4_vrmaxuw : HInst< 3248(outs DoubleRegs:$Rxx32), 3249(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3250"$Rxx32 = vrmaxuw($Rss32,$Ru32)", 3251tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3252let Inst{7-5} = 0b010; 3253let Inst{13-13} = 0b1; 3254let Inst{31-21} = 0b11001011001; 3255let prefersSlot3 = 1; 3256let Constraints = "$Rxx32 = $Rxx32in"; 3257} 3258def A4_vrmaxw : HInst< 3259(outs DoubleRegs:$Rxx32), 3260(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3261"$Rxx32 = vrmaxw($Rss32,$Ru32)", 3262tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3263let Inst{7-5} = 0b010; 3264let Inst{13-13} = 0b0; 3265let Inst{31-21} = 0b11001011001; 3266let prefersSlot3 = 1; 3267let Constraints = "$Rxx32 = $Rxx32in"; 3268} 3269def A4_vrminh : HInst< 3270(outs DoubleRegs:$Rxx32), 3271(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3272"$Rxx32 = vrminh($Rss32,$Ru32)", 3273tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3274let Inst{7-5} = 0b101; 3275let Inst{13-13} = 0b0; 3276let Inst{31-21} = 0b11001011001; 3277let prefersSlot3 = 1; 3278let Constraints = "$Rxx32 = $Rxx32in"; 3279} 3280def A4_vrminuh : HInst< 3281(outs DoubleRegs:$Rxx32), 3282(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3283"$Rxx32 = vrminuh($Rss32,$Ru32)", 3284tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3285let Inst{7-5} = 0b101; 3286let Inst{13-13} = 0b1; 3287let Inst{31-21} = 0b11001011001; 3288let prefersSlot3 = 1; 3289let Constraints = "$Rxx32 = $Rxx32in"; 3290} 3291def A4_vrminuw : HInst< 3292(outs DoubleRegs:$Rxx32), 3293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3294"$Rxx32 = vrminuw($Rss32,$Ru32)", 3295tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3296let Inst{7-5} = 0b110; 3297let Inst{13-13} = 0b1; 3298let Inst{31-21} = 0b11001011001; 3299let prefersSlot3 = 1; 3300let Constraints = "$Rxx32 = $Rxx32in"; 3301} 3302def A4_vrminw : HInst< 3303(outs DoubleRegs:$Rxx32), 3304(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3305"$Rxx32 = vrminw($Rss32,$Ru32)", 3306tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3307let Inst{7-5} = 0b110; 3308let Inst{13-13} = 0b0; 3309let Inst{31-21} = 0b11001011001; 3310let prefersSlot3 = 1; 3311let Constraints = "$Rxx32 = $Rxx32in"; 3312} 3313def A5_ACS : HInst< 3314(outs DoubleRegs:$Rxx32, PredRegs:$Pe4), 3315(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3316"$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)", 3317tc_38e0bae9, TypeM>, Enc_831a7d, Requires<[HasV55]> { 3318let Inst{7-7} = 0b0; 3319let Inst{13-13} = 0b0; 3320let Inst{31-21} = 0b11101010101; 3321let isPredicateLate = 1; 3322let prefersSlot3 = 1; 3323let Defs = [USR_OVF]; 3324let Constraints = "$Rxx32 = $Rxx32in"; 3325} 3326def A5_vaddhubs : HInst< 3327(outs IntRegs:$Rd32), 3328(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3329"$Rd32 = vaddhub($Rss32,$Rtt32):sat", 3330tc_0dfac0a7, TypeS_3op>, Enc_d2216a { 3331let Inst{7-5} = 0b001; 3332let Inst{13-13} = 0b0; 3333let Inst{31-21} = 0b11000001010; 3334let hasNewValue = 1; 3335let opNewValue = 0; 3336let prefersSlot3 = 1; 3337let Defs = [USR_OVF]; 3338} 3339def A6_vcmpbeq_notany : HInst< 3340(outs PredRegs:$Pd4), 3341(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3342"$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))", 3343tc_407e96f9, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> { 3344let Inst{7-2} = 0b001000; 3345let Inst{13-13} = 0b1; 3346let Inst{31-21} = 0b11010010000; 3347} 3348def A6_vminub_RdP : HInst< 3349(outs DoubleRegs:$Rdd32, PredRegs:$Pe4), 3350(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 3351"$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)", 3352tc_7401744f, TypeM>, Enc_d2c7f1, Requires<[HasV62]> { 3353let Inst{7-7} = 0b0; 3354let Inst{13-13} = 0b0; 3355let Inst{31-21} = 0b11101010111; 3356let isPredicateLate = 1; 3357let prefersSlot3 = 1; 3358} 3359def A7_clip : HInst< 3360(outs IntRegs:$Rd32), 3361(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3362"$Rd32 = clip($Rs32,#$Ii)", 3363tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV67,UseAudio]> { 3364let Inst{7-5} = 0b101; 3365let Inst{13-13} = 0b0; 3366let Inst{31-21} = 0b10001000110; 3367let hasNewValue = 1; 3368let opNewValue = 0; 3369} 3370def A7_croundd_ri : HInst< 3371(outs DoubleRegs:$Rdd32), 3372(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 3373"$Rdd32 = cround($Rss32,#$Ii)", 3374tc_9b3c0462, TypeS_2op>, Enc_5eac98, Requires<[HasV67,UseAudio]> { 3375let Inst{7-5} = 0b010; 3376let Inst{31-21} = 0b10001100111; 3377let prefersSlot3 = 1; 3378} 3379def A7_croundd_rr : HInst< 3380(outs DoubleRegs:$Rdd32), 3381(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 3382"$Rdd32 = cround($Rss32,$Rt32)", 3383tc_9b3c0462, TypeS_3op>, Enc_927852, Requires<[HasV67,UseAudio]> { 3384let Inst{7-5} = 0b010; 3385let Inst{13-13} = 0b0; 3386let Inst{31-21} = 0b11000110110; 3387let prefersSlot3 = 1; 3388} 3389def A7_vclip : HInst< 3390(outs DoubleRegs:$Rdd32), 3391(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 3392"$Rdd32 = vclip($Rss32,#$Ii)", 3393tc_407e96f9, TypeS_2op>, Enc_7e5a82, Requires<[HasV67,UseAudio]> { 3394let Inst{7-5} = 0b110; 3395let Inst{13-13} = 0b0; 3396let Inst{31-21} = 0b10001000110; 3397} 3398def C2_all8 : HInst< 3399(outs PredRegs:$Pd4), 3400(ins PredRegs:$Ps4), 3401"$Pd4 = all8($Ps4)", 3402tc_151bf368, TypeCR>, Enc_65d691 { 3403let Inst{13-2} = 0b000000000000; 3404let Inst{31-18} = 0b01101011101000; 3405} 3406def C2_and : HInst< 3407(outs PredRegs:$Pd4), 3408(ins PredRegs:$Pt4, PredRegs:$Ps4), 3409"$Pd4 = and($Pt4,$Ps4)", 3410tc_651cbe02, TypeCR>, Enc_454a26 { 3411let Inst{7-2} = 0b000000; 3412let Inst{13-10} = 0b0000; 3413let Inst{31-18} = 0b01101011000000; 3414} 3415def C2_andn : HInst< 3416(outs PredRegs:$Pd4), 3417(ins PredRegs:$Pt4, PredRegs:$Ps4), 3418"$Pd4 = and($Pt4,!$Ps4)", 3419tc_651cbe02, TypeCR>, Enc_454a26 { 3420let Inst{7-2} = 0b000000; 3421let Inst{13-10} = 0b0000; 3422let Inst{31-18} = 0b01101011011000; 3423} 3424def C2_any8 : HInst< 3425(outs PredRegs:$Pd4), 3426(ins PredRegs:$Ps4), 3427"$Pd4 = any8($Ps4)", 3428tc_151bf368, TypeCR>, Enc_65d691 { 3429let Inst{13-2} = 0b000000000000; 3430let Inst{31-18} = 0b01101011100000; 3431} 3432def C2_bitsclr : HInst< 3433(outs PredRegs:$Pd4), 3434(ins IntRegs:$Rs32, IntRegs:$Rt32), 3435"$Pd4 = bitsclr($Rs32,$Rt32)", 3436tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 3437let Inst{7-2} = 0b000000; 3438let Inst{13-13} = 0b0; 3439let Inst{31-21} = 0b11000111100; 3440} 3441def C2_bitsclri : HInst< 3442(outs PredRegs:$Pd4), 3443(ins IntRegs:$Rs32, u6_0Imm:$Ii), 3444"$Pd4 = bitsclr($Rs32,#$Ii)", 3445tc_a1297125, TypeS_2op>, Enc_5d6c34 { 3446let Inst{7-2} = 0b000000; 3447let Inst{31-21} = 0b10000101100; 3448} 3449def C2_bitsset : HInst< 3450(outs PredRegs:$Pd4), 3451(ins IntRegs:$Rs32, IntRegs:$Rt32), 3452"$Pd4 = bitsset($Rs32,$Rt32)", 3453tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 3454let Inst{7-2} = 0b000000; 3455let Inst{13-13} = 0b0; 3456let Inst{31-21} = 0b11000111010; 3457} 3458def C2_ccombinewf : HInst< 3459(outs DoubleRegs:$Rdd32), 3460(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3461"if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3462tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3463let Inst{7-7} = 0b1; 3464let Inst{13-13} = 0b0; 3465let Inst{31-21} = 0b11111101000; 3466let isPredicated = 1; 3467let isPredicatedFalse = 1; 3468let BaseOpcode = "A2_combinew"; 3469} 3470def C2_ccombinewnewf : HInst< 3471(outs DoubleRegs:$Rdd32), 3472(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3473"if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3474tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3475let Inst{7-7} = 0b1; 3476let Inst{13-13} = 0b1; 3477let Inst{31-21} = 0b11111101000; 3478let isPredicated = 1; 3479let isPredicatedFalse = 1; 3480let isPredicatedNew = 1; 3481let BaseOpcode = "A2_combinew"; 3482} 3483def C2_ccombinewnewt : HInst< 3484(outs DoubleRegs:$Rdd32), 3485(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3486"if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3487tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3488let Inst{7-7} = 0b0; 3489let Inst{13-13} = 0b1; 3490let Inst{31-21} = 0b11111101000; 3491let isPredicated = 1; 3492let isPredicatedNew = 1; 3493let BaseOpcode = "A2_combinew"; 3494} 3495def C2_ccombinewt : HInst< 3496(outs DoubleRegs:$Rdd32), 3497(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3498"if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3499tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3500let Inst{7-7} = 0b0; 3501let Inst{13-13} = 0b0; 3502let Inst{31-21} = 0b11111101000; 3503let isPredicated = 1; 3504let BaseOpcode = "A2_combinew"; 3505} 3506def C2_cmoveif : HInst< 3507(outs IntRegs:$Rd32), 3508(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3509"if (!$Pu4) $Rd32 = #$Ii", 3510tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3511let Inst{13-13} = 0b0; 3512let Inst{20-20} = 0b0; 3513let Inst{31-23} = 0b011111101; 3514let isPredicated = 1; 3515let isPredicatedFalse = 1; 3516let hasNewValue = 1; 3517let opNewValue = 0; 3518let BaseOpcode = "A2_tfrsi"; 3519let CextOpcode = "A2_tfr"; 3520let InputType = "imm"; 3521let isMoveImm = 1; 3522let isExtendable = 1; 3523let opExtendable = 2; 3524let isExtentSigned = 1; 3525let opExtentBits = 12; 3526let opExtentAlign = 0; 3527} 3528def C2_cmoveit : HInst< 3529(outs IntRegs:$Rd32), 3530(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3531"if ($Pu4) $Rd32 = #$Ii", 3532tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3533let Inst{13-13} = 0b0; 3534let Inst{20-20} = 0b0; 3535let Inst{31-23} = 0b011111100; 3536let isPredicated = 1; 3537let hasNewValue = 1; 3538let opNewValue = 0; 3539let BaseOpcode = "A2_tfrsi"; 3540let CextOpcode = "A2_tfr"; 3541let InputType = "imm"; 3542let isMoveImm = 1; 3543let isExtendable = 1; 3544let opExtendable = 2; 3545let isExtentSigned = 1; 3546let opExtentBits = 12; 3547let opExtentAlign = 0; 3548} 3549def C2_cmovenewif : HInst< 3550(outs IntRegs:$Rd32), 3551(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3552"if (!$Pu4.new) $Rd32 = #$Ii", 3553tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3554let Inst{13-13} = 0b1; 3555let Inst{20-20} = 0b0; 3556let Inst{31-23} = 0b011111101; 3557let isPredicated = 1; 3558let isPredicatedFalse = 1; 3559let hasNewValue = 1; 3560let opNewValue = 0; 3561let isPredicatedNew = 1; 3562let BaseOpcode = "A2_tfrsi"; 3563let CextOpcode = "A2_tfr"; 3564let InputType = "imm"; 3565let isMoveImm = 1; 3566let isExtendable = 1; 3567let opExtendable = 2; 3568let isExtentSigned = 1; 3569let opExtentBits = 12; 3570let opExtentAlign = 0; 3571} 3572def C2_cmovenewit : HInst< 3573(outs IntRegs:$Rd32), 3574(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3575"if ($Pu4.new) $Rd32 = #$Ii", 3576tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3577let Inst{13-13} = 0b1; 3578let Inst{20-20} = 0b0; 3579let Inst{31-23} = 0b011111100; 3580let isPredicated = 1; 3581let hasNewValue = 1; 3582let opNewValue = 0; 3583let isPredicatedNew = 1; 3584let BaseOpcode = "A2_tfrsi"; 3585let CextOpcode = "A2_tfr"; 3586let InputType = "imm"; 3587let isMoveImm = 1; 3588let isExtendable = 1; 3589let opExtendable = 2; 3590let isExtentSigned = 1; 3591let opExtentBits = 12; 3592let opExtentAlign = 0; 3593} 3594def C2_cmpeq : HInst< 3595(outs PredRegs:$Pd4), 3596(ins IntRegs:$Rs32, IntRegs:$Rt32), 3597"$Pd4 = cmp.eq($Rs32,$Rt32)", 3598tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3599let Inst{7-2} = 0b000000; 3600let Inst{13-13} = 0b0; 3601let Inst{31-21} = 0b11110010000; 3602let CextOpcode = "C2_cmpeq"; 3603let InputType = "reg"; 3604let isCommutable = 1; 3605let isCompare = 1; 3606} 3607def C2_cmpeqi : HInst< 3608(outs PredRegs:$Pd4), 3609(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3610"$Pd4 = cmp.eq($Rs32,#$Ii)", 3611tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3612let Inst{4-2} = 0b000; 3613let Inst{31-22} = 0b0111010100; 3614let CextOpcode = "C2_cmpeq"; 3615let InputType = "imm"; 3616let isCompare = 1; 3617let isExtendable = 1; 3618let opExtendable = 2; 3619let isExtentSigned = 1; 3620let opExtentBits = 10; 3621let opExtentAlign = 0; 3622} 3623def C2_cmpeqp : HInst< 3624(outs PredRegs:$Pd4), 3625(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3626"$Pd4 = cmp.eq($Rss32,$Rtt32)", 3627tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3628let Inst{7-2} = 0b000000; 3629let Inst{13-13} = 0b0; 3630let Inst{31-21} = 0b11010010100; 3631let isCommutable = 1; 3632let isCompare = 1; 3633} 3634def C2_cmpgei : HInst< 3635(outs PredRegs:$Pd4), 3636(ins IntRegs:$Rs32, s8_0Imm:$Ii), 3637"$Pd4 = cmp.ge($Rs32,#$Ii)", 3638tc_d33e5eee, TypeALU32_2op> { 3639let isCompare = 1; 3640let isPseudo = 1; 3641} 3642def C2_cmpgeui : HInst< 3643(outs PredRegs:$Pd4), 3644(ins IntRegs:$Rs32, u8_0Imm:$Ii), 3645"$Pd4 = cmp.geu($Rs32,#$Ii)", 3646tc_d33e5eee, TypeALU32_2op> { 3647let isCompare = 1; 3648let isPseudo = 1; 3649} 3650def C2_cmpgt : HInst< 3651(outs PredRegs:$Pd4), 3652(ins IntRegs:$Rs32, IntRegs:$Rt32), 3653"$Pd4 = cmp.gt($Rs32,$Rt32)", 3654tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3655let Inst{7-2} = 0b000000; 3656let Inst{13-13} = 0b0; 3657let Inst{31-21} = 0b11110010010; 3658let CextOpcode = "C2_cmpgt"; 3659let InputType = "reg"; 3660let isCompare = 1; 3661} 3662def C2_cmpgti : HInst< 3663(outs PredRegs:$Pd4), 3664(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3665"$Pd4 = cmp.gt($Rs32,#$Ii)", 3666tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3667let Inst{4-2} = 0b000; 3668let Inst{31-22} = 0b0111010101; 3669let CextOpcode = "C2_cmpgt"; 3670let InputType = "imm"; 3671let isCompare = 1; 3672let isExtendable = 1; 3673let opExtendable = 2; 3674let isExtentSigned = 1; 3675let opExtentBits = 10; 3676let opExtentAlign = 0; 3677} 3678def C2_cmpgtp : HInst< 3679(outs PredRegs:$Pd4), 3680(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3681"$Pd4 = cmp.gt($Rss32,$Rtt32)", 3682tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3683let Inst{7-2} = 0b010000; 3684let Inst{13-13} = 0b0; 3685let Inst{31-21} = 0b11010010100; 3686let isCompare = 1; 3687} 3688def C2_cmpgtu : HInst< 3689(outs PredRegs:$Pd4), 3690(ins IntRegs:$Rs32, IntRegs:$Rt32), 3691"$Pd4 = cmp.gtu($Rs32,$Rt32)", 3692tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3693let Inst{7-2} = 0b000000; 3694let Inst{13-13} = 0b0; 3695let Inst{31-21} = 0b11110010011; 3696let CextOpcode = "C2_cmpgtu"; 3697let InputType = "reg"; 3698let isCompare = 1; 3699} 3700def C2_cmpgtui : HInst< 3701(outs PredRegs:$Pd4), 3702(ins IntRegs:$Rs32, u32_0Imm:$Ii), 3703"$Pd4 = cmp.gtu($Rs32,#$Ii)", 3704tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3705let Inst{4-2} = 0b000; 3706let Inst{31-21} = 0b01110101100; 3707let CextOpcode = "C2_cmpgtu"; 3708let InputType = "imm"; 3709let isCompare = 1; 3710let isExtendable = 1; 3711let opExtendable = 2; 3712let isExtentSigned = 0; 3713let opExtentBits = 9; 3714let opExtentAlign = 0; 3715} 3716def C2_cmpgtup : HInst< 3717(outs PredRegs:$Pd4), 3718(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3719"$Pd4 = cmp.gtu($Rss32,$Rtt32)", 3720tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3721let Inst{7-2} = 0b100000; 3722let Inst{13-13} = 0b0; 3723let Inst{31-21} = 0b11010010100; 3724let isCompare = 1; 3725} 3726def C2_cmplt : HInst< 3727(outs PredRegs:$Pd4), 3728(ins IntRegs:$Rs32, IntRegs:$Rt32), 3729"$Pd4 = cmp.lt($Rs32,$Rt32)", 3730tc_d33e5eee, TypeALU32_3op> { 3731let isCompare = 1; 3732let isPseudo = 1; 3733let isCodeGenOnly = 1; 3734} 3735def C2_cmpltu : HInst< 3736(outs PredRegs:$Pd4), 3737(ins IntRegs:$Rs32, IntRegs:$Rt32), 3738"$Pd4 = cmp.ltu($Rs32,$Rt32)", 3739tc_d33e5eee, TypeALU32_3op> { 3740let isCompare = 1; 3741let isPseudo = 1; 3742let isCodeGenOnly = 1; 3743} 3744def C2_mask : HInst< 3745(outs DoubleRegs:$Rdd32), 3746(ins PredRegs:$Pt4), 3747"$Rdd32 = mask($Pt4)", 3748tc_9f6cd987, TypeS_2op>, Enc_78e566 { 3749let Inst{7-5} = 0b000; 3750let Inst{13-10} = 0b0000; 3751let Inst{31-16} = 0b1000011000000000; 3752} 3753def C2_mux : HInst< 3754(outs IntRegs:$Rd32), 3755(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3756"$Rd32 = mux($Pu4,$Rs32,$Rt32)", 3757tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54 { 3758let Inst{7-7} = 0b0; 3759let Inst{13-13} = 0b0; 3760let Inst{31-21} = 0b11110100000; 3761let hasNewValue = 1; 3762let opNewValue = 0; 3763let InputType = "reg"; 3764} 3765def C2_muxii : HInst< 3766(outs IntRegs:$Rd32), 3767(ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II), 3768"$Rd32 = mux($Pu4,#$Ii,#$II)", 3769tc_1c2c7a4a, TypeALU32_2op>, Enc_830e5d { 3770let Inst{31-25} = 0b0111101; 3771let hasNewValue = 1; 3772let opNewValue = 0; 3773let isExtendable = 1; 3774let opExtendable = 2; 3775let isExtentSigned = 1; 3776let opExtentBits = 8; 3777let opExtentAlign = 0; 3778} 3779def C2_muxir : HInst< 3780(outs IntRegs:$Rd32), 3781(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 3782"$Rd32 = mux($Pu4,$Rs32,#$Ii)", 3783tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f { 3784let Inst{13-13} = 0b0; 3785let Inst{31-23} = 0b011100110; 3786let hasNewValue = 1; 3787let opNewValue = 0; 3788let InputType = "imm"; 3789let isExtendable = 1; 3790let opExtendable = 3; 3791let isExtentSigned = 1; 3792let opExtentBits = 8; 3793let opExtentAlign = 0; 3794} 3795def C2_muxri : HInst< 3796(outs IntRegs:$Rd32), 3797(ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32), 3798"$Rd32 = mux($Pu4,#$Ii,$Rs32)", 3799tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f { 3800let Inst{13-13} = 0b0; 3801let Inst{31-23} = 0b011100111; 3802let hasNewValue = 1; 3803let opNewValue = 0; 3804let InputType = "imm"; 3805let isExtendable = 1; 3806let opExtendable = 2; 3807let isExtentSigned = 1; 3808let opExtentBits = 8; 3809let opExtentAlign = 0; 3810} 3811def C2_not : HInst< 3812(outs PredRegs:$Pd4), 3813(ins PredRegs:$Ps4), 3814"$Pd4 = not($Ps4)", 3815tc_151bf368, TypeCR>, Enc_65d691 { 3816let Inst{13-2} = 0b000000000000; 3817let Inst{31-18} = 0b01101011110000; 3818} 3819def C2_or : HInst< 3820(outs PredRegs:$Pd4), 3821(ins PredRegs:$Pt4, PredRegs:$Ps4), 3822"$Pd4 = or($Pt4,$Ps4)", 3823tc_651cbe02, TypeCR>, Enc_454a26 { 3824let Inst{7-2} = 0b000000; 3825let Inst{13-10} = 0b0000; 3826let Inst{31-18} = 0b01101011001000; 3827} 3828def C2_orn : HInst< 3829(outs PredRegs:$Pd4), 3830(ins PredRegs:$Pt4, PredRegs:$Ps4), 3831"$Pd4 = or($Pt4,!$Ps4)", 3832tc_651cbe02, TypeCR>, Enc_454a26 { 3833let Inst{7-2} = 0b000000; 3834let Inst{13-10} = 0b0000; 3835let Inst{31-18} = 0b01101011111000; 3836} 3837def C2_pxfer_map : HInst< 3838(outs PredRegs:$Pd4), 3839(ins PredRegs:$Ps4), 3840"$Pd4 = $Ps4", 3841tc_651cbe02, TypeMAPPING> { 3842let isPseudo = 1; 3843let isCodeGenOnly = 1; 3844} 3845def C2_tfrpr : HInst< 3846(outs IntRegs:$Rd32), 3847(ins PredRegs:$Ps4), 3848"$Rd32 = $Ps4", 3849tc_9f6cd987, TypeS_2op>, Enc_f5e933 { 3850let Inst{13-5} = 0b000000000; 3851let Inst{31-18} = 0b10001001010000; 3852let hasNewValue = 1; 3853let opNewValue = 0; 3854} 3855def C2_tfrrp : HInst< 3856(outs PredRegs:$Pd4), 3857(ins IntRegs:$Rs32), 3858"$Pd4 = $Rs32", 3859tc_55b33fda, TypeS_2op>, Enc_48b75f { 3860let Inst{13-2} = 0b000000000000; 3861let Inst{31-21} = 0b10000101010; 3862} 3863def C2_vitpack : HInst< 3864(outs IntRegs:$Rd32), 3865(ins PredRegs:$Ps4, PredRegs:$Pt4), 3866"$Rd32 = vitpack($Ps4,$Pt4)", 3867tc_f34c1c21, TypeS_2op>, Enc_527412 { 3868let Inst{7-5} = 0b000; 3869let Inst{13-10} = 0b0000; 3870let Inst{31-18} = 0b10001001000000; 3871let hasNewValue = 1; 3872let opNewValue = 0; 3873let prefersSlot3 = 1; 3874} 3875def C2_vmux : HInst< 3876(outs DoubleRegs:$Rdd32), 3877(ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3878"$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)", 3879tc_6fc5dbea, TypeALU64>, Enc_329361 { 3880let Inst{7-7} = 0b0; 3881let Inst{13-13} = 0b0; 3882let Inst{31-21} = 0b11010001000; 3883} 3884def C2_xor : HInst< 3885(outs PredRegs:$Pd4), 3886(ins PredRegs:$Ps4, PredRegs:$Pt4), 3887"$Pd4 = xor($Ps4,$Pt4)", 3888tc_651cbe02, TypeCR>, Enc_284ebb { 3889let Inst{7-2} = 0b000000; 3890let Inst{13-10} = 0b0000; 3891let Inst{31-18} = 0b01101011010000; 3892} 3893def C4_addipc : HInst< 3894(outs IntRegs:$Rd32), 3895(ins u32_0Imm:$Ii), 3896"$Rd32 = add(pc,#$Ii)", 3897tc_3edca78f, TypeCR>, Enc_607661 { 3898let Inst{6-5} = 0b00; 3899let Inst{13-13} = 0b0; 3900let Inst{31-16} = 0b0110101001001001; 3901let hasNewValue = 1; 3902let opNewValue = 0; 3903let isExtendable = 1; 3904let opExtendable = 1; 3905let isExtentSigned = 0; 3906let opExtentBits = 6; 3907let opExtentAlign = 0; 3908} 3909def C4_and_and : HInst< 3910(outs PredRegs:$Pd4), 3911(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3912"$Pd4 = and($Ps4,and($Pt4,$Pu4))", 3913tc_a7a13fac, TypeCR>, Enc_9ac432 { 3914let Inst{5-2} = 0b0000; 3915let Inst{13-10} = 0b0000; 3916let Inst{31-18} = 0b01101011000100; 3917} 3918def C4_and_andn : HInst< 3919(outs PredRegs:$Pd4), 3920(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3921"$Pd4 = and($Ps4,and($Pt4,!$Pu4))", 3922tc_a7a13fac, TypeCR>, Enc_9ac432 { 3923let Inst{5-2} = 0b0000; 3924let Inst{13-10} = 0b0000; 3925let Inst{31-18} = 0b01101011100100; 3926} 3927def C4_and_or : HInst< 3928(outs PredRegs:$Pd4), 3929(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3930"$Pd4 = and($Ps4,or($Pt4,$Pu4))", 3931tc_a7a13fac, TypeCR>, Enc_9ac432 { 3932let Inst{5-2} = 0b0000; 3933let Inst{13-10} = 0b0000; 3934let Inst{31-18} = 0b01101011001100; 3935} 3936def C4_and_orn : HInst< 3937(outs PredRegs:$Pd4), 3938(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3939"$Pd4 = and($Ps4,or($Pt4,!$Pu4))", 3940tc_a7a13fac, TypeCR>, Enc_9ac432 { 3941let Inst{5-2} = 0b0000; 3942let Inst{13-10} = 0b0000; 3943let Inst{31-18} = 0b01101011101100; 3944} 3945def C4_cmplte : HInst< 3946(outs PredRegs:$Pd4), 3947(ins IntRegs:$Rs32, IntRegs:$Rt32), 3948"$Pd4 = !cmp.gt($Rs32,$Rt32)", 3949tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3950let Inst{7-2} = 0b000100; 3951let Inst{13-13} = 0b0; 3952let Inst{31-21} = 0b11110010010; 3953let CextOpcode = "C4_cmplte"; 3954let InputType = "reg"; 3955let isCompare = 1; 3956} 3957def C4_cmpltei : HInst< 3958(outs PredRegs:$Pd4), 3959(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3960"$Pd4 = !cmp.gt($Rs32,#$Ii)", 3961tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3962let Inst{4-2} = 0b100; 3963let Inst{31-22} = 0b0111010101; 3964let CextOpcode = "C4_cmplte"; 3965let InputType = "imm"; 3966let isCompare = 1; 3967let isExtendable = 1; 3968let opExtendable = 2; 3969let isExtentSigned = 1; 3970let opExtentBits = 10; 3971let opExtentAlign = 0; 3972} 3973def C4_cmplteu : HInst< 3974(outs PredRegs:$Pd4), 3975(ins IntRegs:$Rs32, IntRegs:$Rt32), 3976"$Pd4 = !cmp.gtu($Rs32,$Rt32)", 3977tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3978let Inst{7-2} = 0b000100; 3979let Inst{13-13} = 0b0; 3980let Inst{31-21} = 0b11110010011; 3981let CextOpcode = "C4_cmplteu"; 3982let InputType = "reg"; 3983let isCompare = 1; 3984} 3985def C4_cmplteui : HInst< 3986(outs PredRegs:$Pd4), 3987(ins IntRegs:$Rs32, u32_0Imm:$Ii), 3988"$Pd4 = !cmp.gtu($Rs32,#$Ii)", 3989tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3990let Inst{4-2} = 0b100; 3991let Inst{31-21} = 0b01110101100; 3992let CextOpcode = "C4_cmplteu"; 3993let InputType = "imm"; 3994let isCompare = 1; 3995let isExtendable = 1; 3996let opExtendable = 2; 3997let isExtentSigned = 0; 3998let opExtentBits = 9; 3999let opExtentAlign = 0; 4000} 4001def C4_cmpneq : HInst< 4002(outs PredRegs:$Pd4), 4003(ins IntRegs:$Rs32, IntRegs:$Rt32), 4004"$Pd4 = !cmp.eq($Rs32,$Rt32)", 4005tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 4006let Inst{7-2} = 0b000100; 4007let Inst{13-13} = 0b0; 4008let Inst{31-21} = 0b11110010000; 4009let CextOpcode = "C4_cmpneq"; 4010let InputType = "reg"; 4011let isCommutable = 1; 4012let isCompare = 1; 4013} 4014def C4_cmpneqi : HInst< 4015(outs PredRegs:$Pd4), 4016(ins IntRegs:$Rs32, s32_0Imm:$Ii), 4017"$Pd4 = !cmp.eq($Rs32,#$Ii)", 4018tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 4019let Inst{4-2} = 0b100; 4020let Inst{31-22} = 0b0111010100; 4021let CextOpcode = "C4_cmpneq"; 4022let InputType = "imm"; 4023let isCompare = 1; 4024let isExtendable = 1; 4025let opExtendable = 2; 4026let isExtentSigned = 1; 4027let opExtentBits = 10; 4028let opExtentAlign = 0; 4029} 4030def C4_fastcorner9 : HInst< 4031(outs PredRegs:$Pd4), 4032(ins PredRegs:$Ps4, PredRegs:$Pt4), 4033"$Pd4 = fastcorner9($Ps4,$Pt4)", 4034tc_651cbe02, TypeCR>, Enc_284ebb { 4035let Inst{7-2} = 0b100100; 4036let Inst{13-10} = 0b1000; 4037let Inst{31-18} = 0b01101011000000; 4038} 4039def C4_fastcorner9_not : HInst< 4040(outs PredRegs:$Pd4), 4041(ins PredRegs:$Ps4, PredRegs:$Pt4), 4042"$Pd4 = !fastcorner9($Ps4,$Pt4)", 4043tc_651cbe02, TypeCR>, Enc_284ebb { 4044let Inst{7-2} = 0b100100; 4045let Inst{13-10} = 0b1000; 4046let Inst{31-18} = 0b01101011000100; 4047} 4048def C4_nbitsclr : HInst< 4049(outs PredRegs:$Pd4), 4050(ins IntRegs:$Rs32, IntRegs:$Rt32), 4051"$Pd4 = !bitsclr($Rs32,$Rt32)", 4052tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4053let Inst{7-2} = 0b000000; 4054let Inst{13-13} = 0b0; 4055let Inst{31-21} = 0b11000111101; 4056} 4057def C4_nbitsclri : HInst< 4058(outs PredRegs:$Pd4), 4059(ins IntRegs:$Rs32, u6_0Imm:$Ii), 4060"$Pd4 = !bitsclr($Rs32,#$Ii)", 4061tc_a1297125, TypeS_2op>, Enc_5d6c34 { 4062let Inst{7-2} = 0b000000; 4063let Inst{31-21} = 0b10000101101; 4064} 4065def C4_nbitsset : HInst< 4066(outs PredRegs:$Pd4), 4067(ins IntRegs:$Rs32, IntRegs:$Rt32), 4068"$Pd4 = !bitsset($Rs32,$Rt32)", 4069tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4070let Inst{7-2} = 0b000000; 4071let Inst{13-13} = 0b0; 4072let Inst{31-21} = 0b11000111011; 4073} 4074def C4_or_and : HInst< 4075(outs PredRegs:$Pd4), 4076(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4077"$Pd4 = or($Ps4,and($Pt4,$Pu4))", 4078tc_a7a13fac, TypeCR>, Enc_9ac432 { 4079let Inst{5-2} = 0b0000; 4080let Inst{13-10} = 0b0000; 4081let Inst{31-18} = 0b01101011010100; 4082} 4083def C4_or_andn : HInst< 4084(outs PredRegs:$Pd4), 4085(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4086"$Pd4 = or($Ps4,and($Pt4,!$Pu4))", 4087tc_a7a13fac, TypeCR>, Enc_9ac432 { 4088let Inst{5-2} = 0b0000; 4089let Inst{13-10} = 0b0000; 4090let Inst{31-18} = 0b01101011110100; 4091} 4092def C4_or_or : HInst< 4093(outs PredRegs:$Pd4), 4094(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4095"$Pd4 = or($Ps4,or($Pt4,$Pu4))", 4096tc_a7a13fac, TypeCR>, Enc_9ac432 { 4097let Inst{5-2} = 0b0000; 4098let Inst{13-10} = 0b0000; 4099let Inst{31-18} = 0b01101011011100; 4100} 4101def C4_or_orn : HInst< 4102(outs PredRegs:$Pd4), 4103(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4104"$Pd4 = or($Ps4,or($Pt4,!$Pu4))", 4105tc_a7a13fac, TypeCR>, Enc_9ac432 { 4106let Inst{5-2} = 0b0000; 4107let Inst{13-10} = 0b0000; 4108let Inst{31-18} = 0b01101011111100; 4109} 4110def F2_conv_d2df : HInst< 4111(outs DoubleRegs:$Rdd32), 4112(ins DoubleRegs:$Rss32), 4113"$Rdd32 = convert_d2df($Rss32)", 4114tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4115let Inst{13-5} = 0b000000011; 4116let Inst{31-21} = 0b10000000111; 4117let isFP = 1; 4118let Uses = [USR]; 4119} 4120def F2_conv_d2sf : HInst< 4121(outs IntRegs:$Rd32), 4122(ins DoubleRegs:$Rss32), 4123"$Rd32 = convert_d2sf($Rss32)", 4124tc_9783714b, TypeS_2op>, Enc_90cd8b { 4125let Inst{13-5} = 0b000000001; 4126let Inst{31-21} = 0b10001000010; 4127let hasNewValue = 1; 4128let opNewValue = 0; 4129let isFP = 1; 4130let Uses = [USR]; 4131} 4132def F2_conv_df2d : HInst< 4133(outs DoubleRegs:$Rdd32), 4134(ins DoubleRegs:$Rss32), 4135"$Rdd32 = convert_df2d($Rss32)", 4136tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4137let Inst{13-5} = 0b000000000; 4138let Inst{31-21} = 0b10000000111; 4139let isFP = 1; 4140let Uses = [USR]; 4141} 4142def F2_conv_df2d_chop : HInst< 4143(outs DoubleRegs:$Rdd32), 4144(ins DoubleRegs:$Rss32), 4145"$Rdd32 = convert_df2d($Rss32):chop", 4146tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4147let Inst{13-5} = 0b000000110; 4148let Inst{31-21} = 0b10000000111; 4149let isFP = 1; 4150let Uses = [USR]; 4151} 4152def F2_conv_df2sf : HInst< 4153(outs IntRegs:$Rd32), 4154(ins DoubleRegs:$Rss32), 4155"$Rd32 = convert_df2sf($Rss32)", 4156tc_9783714b, TypeS_2op>, Enc_90cd8b { 4157let Inst{13-5} = 0b000000001; 4158let Inst{31-21} = 0b10001000000; 4159let hasNewValue = 1; 4160let opNewValue = 0; 4161let isFP = 1; 4162let Uses = [USR]; 4163} 4164def F2_conv_df2ud : HInst< 4165(outs DoubleRegs:$Rdd32), 4166(ins DoubleRegs:$Rss32), 4167"$Rdd32 = convert_df2ud($Rss32)", 4168tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4169let Inst{13-5} = 0b000000001; 4170let Inst{31-21} = 0b10000000111; 4171let isFP = 1; 4172let Uses = [USR]; 4173} 4174def F2_conv_df2ud_chop : HInst< 4175(outs DoubleRegs:$Rdd32), 4176(ins DoubleRegs:$Rss32), 4177"$Rdd32 = convert_df2ud($Rss32):chop", 4178tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4179let Inst{13-5} = 0b000000111; 4180let Inst{31-21} = 0b10000000111; 4181let isFP = 1; 4182let Uses = [USR]; 4183} 4184def F2_conv_df2uw : HInst< 4185(outs IntRegs:$Rd32), 4186(ins DoubleRegs:$Rss32), 4187"$Rd32 = convert_df2uw($Rss32)", 4188tc_9783714b, TypeS_2op>, Enc_90cd8b { 4189let Inst{13-5} = 0b000000001; 4190let Inst{31-21} = 0b10001000011; 4191let hasNewValue = 1; 4192let opNewValue = 0; 4193let isFP = 1; 4194let Uses = [USR]; 4195} 4196def F2_conv_df2uw_chop : HInst< 4197(outs IntRegs:$Rd32), 4198(ins DoubleRegs:$Rss32), 4199"$Rd32 = convert_df2uw($Rss32):chop", 4200tc_9783714b, TypeS_2op>, Enc_90cd8b { 4201let Inst{13-5} = 0b000000001; 4202let Inst{31-21} = 0b10001000101; 4203let hasNewValue = 1; 4204let opNewValue = 0; 4205let isFP = 1; 4206let Uses = [USR]; 4207} 4208def F2_conv_df2w : HInst< 4209(outs IntRegs:$Rd32), 4210(ins DoubleRegs:$Rss32), 4211"$Rd32 = convert_df2w($Rss32)", 4212tc_9783714b, TypeS_2op>, Enc_90cd8b { 4213let Inst{13-5} = 0b000000001; 4214let Inst{31-21} = 0b10001000100; 4215let hasNewValue = 1; 4216let opNewValue = 0; 4217let isFP = 1; 4218let Uses = [USR]; 4219} 4220def F2_conv_df2w_chop : HInst< 4221(outs IntRegs:$Rd32), 4222(ins DoubleRegs:$Rss32), 4223"$Rd32 = convert_df2w($Rss32):chop", 4224tc_9783714b, TypeS_2op>, Enc_90cd8b { 4225let Inst{13-5} = 0b000000001; 4226let Inst{31-21} = 0b10001000111; 4227let hasNewValue = 1; 4228let opNewValue = 0; 4229let isFP = 1; 4230let Uses = [USR]; 4231} 4232def F2_conv_sf2d : HInst< 4233(outs DoubleRegs:$Rdd32), 4234(ins IntRegs:$Rs32), 4235"$Rdd32 = convert_sf2d($Rs32)", 4236tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4237let Inst{13-5} = 0b000000100; 4238let Inst{31-21} = 0b10000100100; 4239let isFP = 1; 4240let Uses = [USR]; 4241} 4242def F2_conv_sf2d_chop : HInst< 4243(outs DoubleRegs:$Rdd32), 4244(ins IntRegs:$Rs32), 4245"$Rdd32 = convert_sf2d($Rs32):chop", 4246tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4247let Inst{13-5} = 0b000000110; 4248let Inst{31-21} = 0b10000100100; 4249let isFP = 1; 4250let Uses = [USR]; 4251} 4252def F2_conv_sf2df : HInst< 4253(outs DoubleRegs:$Rdd32), 4254(ins IntRegs:$Rs32), 4255"$Rdd32 = convert_sf2df($Rs32)", 4256tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4257let Inst{13-5} = 0b000000000; 4258let Inst{31-21} = 0b10000100100; 4259let isFP = 1; 4260let Uses = [USR]; 4261} 4262def F2_conv_sf2ud : HInst< 4263(outs DoubleRegs:$Rdd32), 4264(ins IntRegs:$Rs32), 4265"$Rdd32 = convert_sf2ud($Rs32)", 4266tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4267let Inst{13-5} = 0b000000011; 4268let Inst{31-21} = 0b10000100100; 4269let isFP = 1; 4270let Uses = [USR]; 4271} 4272def F2_conv_sf2ud_chop : HInst< 4273(outs DoubleRegs:$Rdd32), 4274(ins IntRegs:$Rs32), 4275"$Rdd32 = convert_sf2ud($Rs32):chop", 4276tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4277let Inst{13-5} = 0b000000101; 4278let Inst{31-21} = 0b10000100100; 4279let isFP = 1; 4280let Uses = [USR]; 4281} 4282def F2_conv_sf2uw : HInst< 4283(outs IntRegs:$Rd32), 4284(ins IntRegs:$Rs32), 4285"$Rd32 = convert_sf2uw($Rs32)", 4286tc_9783714b, TypeS_2op>, Enc_5e2823 { 4287let Inst{13-5} = 0b000000000; 4288let Inst{31-21} = 0b10001011011; 4289let hasNewValue = 1; 4290let opNewValue = 0; 4291let isFP = 1; 4292let Uses = [USR]; 4293} 4294def F2_conv_sf2uw_chop : HInst< 4295(outs IntRegs:$Rd32), 4296(ins IntRegs:$Rs32), 4297"$Rd32 = convert_sf2uw($Rs32):chop", 4298tc_9783714b, TypeS_2op>, Enc_5e2823 { 4299let Inst{13-5} = 0b000000001; 4300let Inst{31-21} = 0b10001011011; 4301let hasNewValue = 1; 4302let opNewValue = 0; 4303let isFP = 1; 4304let Uses = [USR]; 4305} 4306def F2_conv_sf2w : HInst< 4307(outs IntRegs:$Rd32), 4308(ins IntRegs:$Rs32), 4309"$Rd32 = convert_sf2w($Rs32)", 4310tc_9783714b, TypeS_2op>, Enc_5e2823 { 4311let Inst{13-5} = 0b000000000; 4312let Inst{31-21} = 0b10001011100; 4313let hasNewValue = 1; 4314let opNewValue = 0; 4315let isFP = 1; 4316let Uses = [USR]; 4317} 4318def F2_conv_sf2w_chop : HInst< 4319(outs IntRegs:$Rd32), 4320(ins IntRegs:$Rs32), 4321"$Rd32 = convert_sf2w($Rs32):chop", 4322tc_9783714b, TypeS_2op>, Enc_5e2823 { 4323let Inst{13-5} = 0b000000001; 4324let Inst{31-21} = 0b10001011100; 4325let hasNewValue = 1; 4326let opNewValue = 0; 4327let isFP = 1; 4328let Uses = [USR]; 4329} 4330def F2_conv_ud2df : HInst< 4331(outs DoubleRegs:$Rdd32), 4332(ins DoubleRegs:$Rss32), 4333"$Rdd32 = convert_ud2df($Rss32)", 4334tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4335let Inst{13-5} = 0b000000010; 4336let Inst{31-21} = 0b10000000111; 4337let isFP = 1; 4338let Uses = [USR]; 4339} 4340def F2_conv_ud2sf : HInst< 4341(outs IntRegs:$Rd32), 4342(ins DoubleRegs:$Rss32), 4343"$Rd32 = convert_ud2sf($Rss32)", 4344tc_9783714b, TypeS_2op>, Enc_90cd8b { 4345let Inst{13-5} = 0b000000001; 4346let Inst{31-21} = 0b10001000001; 4347let hasNewValue = 1; 4348let opNewValue = 0; 4349let isFP = 1; 4350let Uses = [USR]; 4351} 4352def F2_conv_uw2df : HInst< 4353(outs DoubleRegs:$Rdd32), 4354(ins IntRegs:$Rs32), 4355"$Rdd32 = convert_uw2df($Rs32)", 4356tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4357let Inst{13-5} = 0b000000001; 4358let Inst{31-21} = 0b10000100100; 4359let isFP = 1; 4360let Uses = [USR]; 4361} 4362def F2_conv_uw2sf : HInst< 4363(outs IntRegs:$Rd32), 4364(ins IntRegs:$Rs32), 4365"$Rd32 = convert_uw2sf($Rs32)", 4366tc_9783714b, TypeS_2op>, Enc_5e2823 { 4367let Inst{13-5} = 0b000000000; 4368let Inst{31-21} = 0b10001011001; 4369let hasNewValue = 1; 4370let opNewValue = 0; 4371let isFP = 1; 4372let Uses = [USR]; 4373} 4374def F2_conv_w2df : HInst< 4375(outs DoubleRegs:$Rdd32), 4376(ins IntRegs:$Rs32), 4377"$Rdd32 = convert_w2df($Rs32)", 4378tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4379let Inst{13-5} = 0b000000010; 4380let Inst{31-21} = 0b10000100100; 4381let isFP = 1; 4382let Uses = [USR]; 4383} 4384def F2_conv_w2sf : HInst< 4385(outs IntRegs:$Rd32), 4386(ins IntRegs:$Rs32), 4387"$Rd32 = convert_w2sf($Rs32)", 4388tc_9783714b, TypeS_2op>, Enc_5e2823 { 4389let Inst{13-5} = 0b000000000; 4390let Inst{31-21} = 0b10001011010; 4391let hasNewValue = 1; 4392let opNewValue = 0; 4393let isFP = 1; 4394let Uses = [USR]; 4395} 4396def F2_dfadd : HInst< 4397(outs DoubleRegs:$Rdd32), 4398(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4399"$Rdd32 = dfadd($Rss32,$Rtt32)", 4400tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> { 4401let Inst{7-5} = 0b011; 4402let Inst{13-13} = 0b0; 4403let Inst{31-21} = 0b11101000000; 4404let isFP = 1; 4405let Uses = [USR]; 4406} 4407def F2_dfclass : HInst< 4408(outs PredRegs:$Pd4), 4409(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 4410"$Pd4 = dfclass($Rss32,#$Ii)", 4411tc_a1297125, TypeALU64>, Enc_1f19b5 { 4412let Inst{4-2} = 0b100; 4413let Inst{13-10} = 0b0000; 4414let Inst{31-21} = 0b11011100100; 4415let isFP = 1; 4416let Uses = [USR]; 4417} 4418def F2_dfcmpeq : HInst< 4419(outs PredRegs:$Pd4), 4420(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4421"$Pd4 = dfcmp.eq($Rss32,$Rtt32)", 4422tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4423let Inst{7-2} = 0b000000; 4424let Inst{13-13} = 0b0; 4425let Inst{31-21} = 0b11010010111; 4426let isFP = 1; 4427let Uses = [USR]; 4428let isCompare = 1; 4429} 4430def F2_dfcmpge : HInst< 4431(outs PredRegs:$Pd4), 4432(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4433"$Pd4 = dfcmp.ge($Rss32,$Rtt32)", 4434tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4435let Inst{7-2} = 0b010000; 4436let Inst{13-13} = 0b0; 4437let Inst{31-21} = 0b11010010111; 4438let isFP = 1; 4439let Uses = [USR]; 4440let isCompare = 1; 4441} 4442def F2_dfcmpgt : HInst< 4443(outs PredRegs:$Pd4), 4444(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4445"$Pd4 = dfcmp.gt($Rss32,$Rtt32)", 4446tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4447let Inst{7-2} = 0b001000; 4448let Inst{13-13} = 0b0; 4449let Inst{31-21} = 0b11010010111; 4450let isFP = 1; 4451let Uses = [USR]; 4452let isCompare = 1; 4453} 4454def F2_dfcmpuo : HInst< 4455(outs PredRegs:$Pd4), 4456(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4457"$Pd4 = dfcmp.uo($Rss32,$Rtt32)", 4458tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4459let Inst{7-2} = 0b011000; 4460let Inst{13-13} = 0b0; 4461let Inst{31-21} = 0b11010010111; 4462let isFP = 1; 4463let Uses = [USR]; 4464let isCompare = 1; 4465} 4466def F2_dfimm_n : HInst< 4467(outs DoubleRegs:$Rdd32), 4468(ins u10_0Imm:$Ii), 4469"$Rdd32 = dfmake(#$Ii):neg", 4470tc_65279839, TypeALU64>, Enc_e6c957 { 4471let Inst{20-16} = 0b00000; 4472let Inst{31-22} = 0b1101100101; 4473let prefersSlot3 = 1; 4474} 4475def F2_dfimm_p : HInst< 4476(outs DoubleRegs:$Rdd32), 4477(ins u10_0Imm:$Ii), 4478"$Rdd32 = dfmake(#$Ii):pos", 4479tc_65279839, TypeALU64>, Enc_e6c957 { 4480let Inst{20-16} = 0b00000; 4481let Inst{31-22} = 0b1101100100; 4482let prefersSlot3 = 1; 4483} 4484def F2_dfmax : HInst< 4485(outs DoubleRegs:$Rdd32), 4486(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4487"$Rdd32 = dfmax($Rss32,$Rtt32)", 4488tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> { 4489let Inst{7-5} = 0b011; 4490let Inst{13-13} = 0b0; 4491let Inst{31-21} = 0b11101000001; 4492let isFP = 1; 4493let prefersSlot3 = 1; 4494let Uses = [USR]; 4495} 4496def F2_dfmin : HInst< 4497(outs DoubleRegs:$Rdd32), 4498(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4499"$Rdd32 = dfmin($Rss32,$Rtt32)", 4500tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> { 4501let Inst{7-5} = 0b011; 4502let Inst{13-13} = 0b0; 4503let Inst{31-21} = 0b11101000110; 4504let isFP = 1; 4505let prefersSlot3 = 1; 4506let Uses = [USR]; 4507} 4508def F2_dfmpyfix : HInst< 4509(outs DoubleRegs:$Rdd32), 4510(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4511"$Rdd32 = dfmpyfix($Rss32,$Rtt32)", 4512tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV67]> { 4513let Inst{7-5} = 0b011; 4514let Inst{13-13} = 0b0; 4515let Inst{31-21} = 0b11101000010; 4516let isFP = 1; 4517let Uses = [USR]; 4518} 4519def F2_dfmpyhh : HInst< 4520(outs DoubleRegs:$Rxx32), 4521(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4522"$Rxx32 += dfmpyhh($Rss32,$Rtt32)", 4523tc_0a195f2c, TypeM>, Enc_88c16c, Requires<[HasV67]> { 4524let Inst{7-5} = 0b011; 4525let Inst{13-13} = 0b0; 4526let Inst{31-21} = 0b11101010100; 4527let isFP = 1; 4528let Uses = [USR]; 4529let Constraints = "$Rxx32 = $Rxx32in"; 4530} 4531def F2_dfmpylh : HInst< 4532(outs DoubleRegs:$Rxx32), 4533(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4534"$Rxx32 += dfmpylh($Rss32,$Rtt32)", 4535tc_01e1be3b, TypeM>, Enc_88c16c, Requires<[HasV67]> { 4536let Inst{7-5} = 0b011; 4537let Inst{13-13} = 0b0; 4538let Inst{31-21} = 0b11101010000; 4539let prefersSlot3 = 1; 4540let Constraints = "$Rxx32 = $Rxx32in"; 4541} 4542def F2_dfmpyll : HInst< 4543(outs DoubleRegs:$Rdd32), 4544(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4545"$Rdd32 = dfmpyll($Rss32,$Rtt32)", 4546tc_556f6577, TypeM>, Enc_a56825, Requires<[HasV67]> { 4547let Inst{7-5} = 0b011; 4548let Inst{13-13} = 0b0; 4549let Inst{31-21} = 0b11101000101; 4550let prefersSlot3 = 1; 4551} 4552def F2_dfsub : HInst< 4553(outs DoubleRegs:$Rdd32), 4554(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4555"$Rdd32 = dfsub($Rss32,$Rtt32)", 4556tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> { 4557let Inst{7-5} = 0b011; 4558let Inst{13-13} = 0b0; 4559let Inst{31-21} = 0b11101000100; 4560let isFP = 1; 4561let Uses = [USR]; 4562} 4563def F2_sfadd : HInst< 4564(outs IntRegs:$Rd32), 4565(ins IntRegs:$Rs32, IntRegs:$Rt32), 4566"$Rd32 = sfadd($Rs32,$Rt32)", 4567tc_02fe1c65, TypeM>, Enc_5ab2be { 4568let Inst{7-5} = 0b000; 4569let Inst{13-13} = 0b0; 4570let Inst{31-21} = 0b11101011000; 4571let hasNewValue = 1; 4572let opNewValue = 0; 4573let isFP = 1; 4574let Uses = [USR]; 4575let isCommutable = 1; 4576} 4577def F2_sfclass : HInst< 4578(outs PredRegs:$Pd4), 4579(ins IntRegs:$Rs32, u5_0Imm:$Ii), 4580"$Pd4 = sfclass($Rs32,#$Ii)", 4581tc_a1297125, TypeS_2op>, Enc_83ee64 { 4582let Inst{7-2} = 0b000000; 4583let Inst{13-13} = 0b0; 4584let Inst{31-21} = 0b10000101111; 4585let isFP = 1; 4586let Uses = [USR]; 4587} 4588def F2_sfcmpeq : HInst< 4589(outs PredRegs:$Pd4), 4590(ins IntRegs:$Rs32, IntRegs:$Rt32), 4591"$Pd4 = sfcmp.eq($Rs32,$Rt32)", 4592tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4593let Inst{7-2} = 0b011000; 4594let Inst{13-13} = 0b0; 4595let Inst{31-21} = 0b11000111111; 4596let isFP = 1; 4597let Uses = [USR]; 4598let isCompare = 1; 4599} 4600def F2_sfcmpge : HInst< 4601(outs PredRegs:$Pd4), 4602(ins IntRegs:$Rs32, IntRegs:$Rt32), 4603"$Pd4 = sfcmp.ge($Rs32,$Rt32)", 4604tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4605let Inst{7-2} = 0b000000; 4606let Inst{13-13} = 0b0; 4607let Inst{31-21} = 0b11000111111; 4608let isFP = 1; 4609let Uses = [USR]; 4610let isCompare = 1; 4611} 4612def F2_sfcmpgt : HInst< 4613(outs PredRegs:$Pd4), 4614(ins IntRegs:$Rs32, IntRegs:$Rt32), 4615"$Pd4 = sfcmp.gt($Rs32,$Rt32)", 4616tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4617let Inst{7-2} = 0b100000; 4618let Inst{13-13} = 0b0; 4619let Inst{31-21} = 0b11000111111; 4620let isFP = 1; 4621let Uses = [USR]; 4622let isCompare = 1; 4623} 4624def F2_sfcmpuo : HInst< 4625(outs PredRegs:$Pd4), 4626(ins IntRegs:$Rs32, IntRegs:$Rt32), 4627"$Pd4 = sfcmp.uo($Rs32,$Rt32)", 4628tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4629let Inst{7-2} = 0b001000; 4630let Inst{13-13} = 0b0; 4631let Inst{31-21} = 0b11000111111; 4632let isFP = 1; 4633let Uses = [USR]; 4634let isCompare = 1; 4635} 4636def F2_sffixupd : HInst< 4637(outs IntRegs:$Rd32), 4638(ins IntRegs:$Rs32, IntRegs:$Rt32), 4639"$Rd32 = sffixupd($Rs32,$Rt32)", 4640tc_02fe1c65, TypeM>, Enc_5ab2be { 4641let Inst{7-5} = 0b001; 4642let Inst{13-13} = 0b0; 4643let Inst{31-21} = 0b11101011110; 4644let hasNewValue = 1; 4645let opNewValue = 0; 4646let isFP = 1; 4647} 4648def F2_sffixupn : HInst< 4649(outs IntRegs:$Rd32), 4650(ins IntRegs:$Rs32, IntRegs:$Rt32), 4651"$Rd32 = sffixupn($Rs32,$Rt32)", 4652tc_02fe1c65, TypeM>, Enc_5ab2be { 4653let Inst{7-5} = 0b000; 4654let Inst{13-13} = 0b0; 4655let Inst{31-21} = 0b11101011110; 4656let hasNewValue = 1; 4657let opNewValue = 0; 4658let isFP = 1; 4659} 4660def F2_sffixupr : HInst< 4661(outs IntRegs:$Rd32), 4662(ins IntRegs:$Rs32), 4663"$Rd32 = sffixupr($Rs32)", 4664tc_9783714b, TypeS_2op>, Enc_5e2823 { 4665let Inst{13-5} = 0b000000000; 4666let Inst{31-21} = 0b10001011101; 4667let hasNewValue = 1; 4668let opNewValue = 0; 4669let isFP = 1; 4670} 4671def F2_sffma : HInst< 4672(outs IntRegs:$Rx32), 4673(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4674"$Rx32 += sfmpy($Rs32,$Rt32)", 4675tc_9e72dc89, TypeM>, Enc_2ae154 { 4676let Inst{7-5} = 0b100; 4677let Inst{13-13} = 0b0; 4678let Inst{31-21} = 0b11101111000; 4679let hasNewValue = 1; 4680let opNewValue = 0; 4681let isFP = 1; 4682let Uses = [USR]; 4683let Constraints = "$Rx32 = $Rx32in"; 4684} 4685def F2_sffma_lib : HInst< 4686(outs IntRegs:$Rx32), 4687(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4688"$Rx32 += sfmpy($Rs32,$Rt32):lib", 4689tc_9e72dc89, TypeM>, Enc_2ae154 { 4690let Inst{7-5} = 0b110; 4691let Inst{13-13} = 0b0; 4692let Inst{31-21} = 0b11101111000; 4693let hasNewValue = 1; 4694let opNewValue = 0; 4695let isFP = 1; 4696let Uses = [USR]; 4697let Constraints = "$Rx32 = $Rx32in"; 4698} 4699def F2_sffma_sc : HInst< 4700(outs IntRegs:$Rx32), 4701(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4), 4702"$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale", 4703tc_9edb7c77, TypeM>, Enc_437f33 { 4704let Inst{7-7} = 0b1; 4705let Inst{13-13} = 0b0; 4706let Inst{31-21} = 0b11101111011; 4707let hasNewValue = 1; 4708let opNewValue = 0; 4709let isFP = 1; 4710let Uses = [USR]; 4711let Constraints = "$Rx32 = $Rx32in"; 4712} 4713def F2_sffms : HInst< 4714(outs IntRegs:$Rx32), 4715(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4716"$Rx32 -= sfmpy($Rs32,$Rt32)", 4717tc_9e72dc89, TypeM>, Enc_2ae154 { 4718let Inst{7-5} = 0b101; 4719let Inst{13-13} = 0b0; 4720let Inst{31-21} = 0b11101111000; 4721let hasNewValue = 1; 4722let opNewValue = 0; 4723let isFP = 1; 4724let Uses = [USR]; 4725let Constraints = "$Rx32 = $Rx32in"; 4726} 4727def F2_sffms_lib : HInst< 4728(outs IntRegs:$Rx32), 4729(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4730"$Rx32 -= sfmpy($Rs32,$Rt32):lib", 4731tc_9e72dc89, TypeM>, Enc_2ae154 { 4732let Inst{7-5} = 0b111; 4733let Inst{13-13} = 0b0; 4734let Inst{31-21} = 0b11101111000; 4735let hasNewValue = 1; 4736let opNewValue = 0; 4737let isFP = 1; 4738let Uses = [USR]; 4739let Constraints = "$Rx32 = $Rx32in"; 4740} 4741def F2_sfimm_n : HInst< 4742(outs IntRegs:$Rd32), 4743(ins u10_0Imm:$Ii), 4744"$Rd32 = sfmake(#$Ii):neg", 4745tc_65279839, TypeALU64>, Enc_6c9440 { 4746let Inst{20-16} = 0b00000; 4747let Inst{31-22} = 0b1101011001; 4748let hasNewValue = 1; 4749let opNewValue = 0; 4750let prefersSlot3 = 1; 4751} 4752def F2_sfimm_p : HInst< 4753(outs IntRegs:$Rd32), 4754(ins u10_0Imm:$Ii), 4755"$Rd32 = sfmake(#$Ii):pos", 4756tc_65279839, TypeALU64>, Enc_6c9440 { 4757let Inst{20-16} = 0b00000; 4758let Inst{31-22} = 0b1101011000; 4759let hasNewValue = 1; 4760let opNewValue = 0; 4761let prefersSlot3 = 1; 4762} 4763def F2_sfinvsqrta : HInst< 4764(outs IntRegs:$Rd32, PredRegs:$Pe4), 4765(ins IntRegs:$Rs32), 4766"$Rd32,$Pe4 = sfinvsqrta($Rs32)", 4767tc_7f7f45f5, TypeS_2op>, Enc_890909 { 4768let Inst{13-7} = 0b0000000; 4769let Inst{31-21} = 0b10001011111; 4770let hasNewValue = 1; 4771let opNewValue = 0; 4772let isFP = 1; 4773let isPredicateLate = 1; 4774} 4775def F2_sfmax : HInst< 4776(outs IntRegs:$Rd32), 4777(ins IntRegs:$Rs32, IntRegs:$Rt32), 4778"$Rd32 = sfmax($Rs32,$Rt32)", 4779tc_c20701f0, TypeM>, Enc_5ab2be { 4780let Inst{7-5} = 0b000; 4781let Inst{13-13} = 0b0; 4782let Inst{31-21} = 0b11101011100; 4783let hasNewValue = 1; 4784let opNewValue = 0; 4785let isFP = 1; 4786let prefersSlot3 = 1; 4787let Uses = [USR]; 4788} 4789def F2_sfmin : HInst< 4790(outs IntRegs:$Rd32), 4791(ins IntRegs:$Rs32, IntRegs:$Rt32), 4792"$Rd32 = sfmin($Rs32,$Rt32)", 4793tc_c20701f0, TypeM>, Enc_5ab2be { 4794let Inst{7-5} = 0b001; 4795let Inst{13-13} = 0b0; 4796let Inst{31-21} = 0b11101011100; 4797let hasNewValue = 1; 4798let opNewValue = 0; 4799let isFP = 1; 4800let prefersSlot3 = 1; 4801let Uses = [USR]; 4802} 4803def F2_sfmpy : HInst< 4804(outs IntRegs:$Rd32), 4805(ins IntRegs:$Rs32, IntRegs:$Rt32), 4806"$Rd32 = sfmpy($Rs32,$Rt32)", 4807tc_02fe1c65, TypeM>, Enc_5ab2be { 4808let Inst{7-5} = 0b000; 4809let Inst{13-13} = 0b0; 4810let Inst{31-21} = 0b11101011010; 4811let hasNewValue = 1; 4812let opNewValue = 0; 4813let isFP = 1; 4814let Uses = [USR]; 4815let isCommutable = 1; 4816} 4817def F2_sfrecipa : HInst< 4818(outs IntRegs:$Rd32, PredRegs:$Pe4), 4819(ins IntRegs:$Rs32, IntRegs:$Rt32), 4820"$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)", 4821tc_f7569068, TypeM>, Enc_a94f3b { 4822let Inst{7-7} = 0b1; 4823let Inst{13-13} = 0b0; 4824let Inst{31-21} = 0b11101011111; 4825let hasNewValue = 1; 4826let opNewValue = 0; 4827let isFP = 1; 4828let isPredicateLate = 1; 4829} 4830def F2_sfsub : HInst< 4831(outs IntRegs:$Rd32), 4832(ins IntRegs:$Rs32, IntRegs:$Rt32), 4833"$Rd32 = sfsub($Rs32,$Rt32)", 4834tc_02fe1c65, TypeM>, Enc_5ab2be { 4835let Inst{7-5} = 0b001; 4836let Inst{13-13} = 0b0; 4837let Inst{31-21} = 0b11101011000; 4838let hasNewValue = 1; 4839let opNewValue = 0; 4840let isFP = 1; 4841let Uses = [USR]; 4842} 4843def G4_tfrgcpp : HInst< 4844(outs DoubleRegs:$Rdd32), 4845(ins GuestRegs64:$Gss32), 4846"$Rdd32 = $Gss32", 4847tc_fae9dfa5, TypeCR>, Enc_0aa344 { 4848let Inst{13-5} = 0b000000000; 4849let Inst{31-21} = 0b01101000001; 4850} 4851def G4_tfrgcrr : HInst< 4852(outs IntRegs:$Rd32), 4853(ins GuestRegs:$Gs32), 4854"$Rd32 = $Gs32", 4855tc_fae9dfa5, TypeCR>, Enc_44271f { 4856let Inst{13-5} = 0b000000000; 4857let Inst{31-21} = 0b01101010001; 4858let hasNewValue = 1; 4859let opNewValue = 0; 4860} 4861def G4_tfrgpcp : HInst< 4862(outs GuestRegs64:$Gdd32), 4863(ins DoubleRegs:$Rss32), 4864"$Gdd32 = $Rss32", 4865tc_6ae3426b, TypeCR>, Enc_ed5027 { 4866let Inst{13-5} = 0b000000000; 4867let Inst{31-21} = 0b01100011000; 4868let hasNewValue = 1; 4869let opNewValue = 0; 4870} 4871def G4_tfrgrcr : HInst< 4872(outs GuestRegs:$Gd32), 4873(ins IntRegs:$Rs32), 4874"$Gd32 = $Rs32", 4875tc_6ae3426b, TypeCR>, Enc_621fba { 4876let Inst{13-5} = 0b000000000; 4877let Inst{31-21} = 0b01100010000; 4878let hasNewValue = 1; 4879let opNewValue = 0; 4880} 4881def J2_call : HInst< 4882(outs), 4883(ins a30_2Imm:$Ii), 4884"call $Ii", 4885tc_44fffc58, TypeJ>, Enc_81ac1d, PredRel { 4886let Inst{0-0} = 0b0; 4887let Inst{31-25} = 0b0101101; 4888let isCall = 1; 4889let prefersSlot3 = 1; 4890let cofRelax2 = 1; 4891let cofMax1 = 1; 4892let Uses = [R29]; 4893let Defs = [PC, R31]; 4894let BaseOpcode = "J2_call"; 4895let hasSideEffects = 1; 4896let isPredicable = 1; 4897let isExtendable = 1; 4898let opExtendable = 0; 4899let isExtentSigned = 1; 4900let opExtentBits = 24; 4901let opExtentAlign = 2; 4902} 4903def J2_callf : HInst< 4904(outs), 4905(ins PredRegs:$Pu4, a30_2Imm:$Ii), 4906"if (!$Pu4) call $Ii", 4907tc_69bfb303, TypeJ>, Enc_daea09, PredRel { 4908let Inst{0-0} = 0b0; 4909let Inst{12-10} = 0b000; 4910let Inst{21-21} = 0b1; 4911let Inst{31-24} = 0b01011101; 4912let isPredicated = 1; 4913let isPredicatedFalse = 1; 4914let isCall = 1; 4915let prefersSlot3 = 1; 4916let cofRelax1 = 1; 4917let cofRelax2 = 1; 4918let cofMax1 = 1; 4919let Uses = [R29]; 4920let Defs = [PC, R31]; 4921let BaseOpcode = "J2_call"; 4922let hasSideEffects = 1; 4923let isTaken = Inst{12}; 4924let isExtendable = 1; 4925let opExtendable = 1; 4926let isExtentSigned = 1; 4927let opExtentBits = 17; 4928let opExtentAlign = 2; 4929} 4930def J2_callr : HInst< 4931(outs), 4932(ins IntRegs:$Rs32), 4933"callr $Rs32", 4934tc_362b0be2, TypeJ>, Enc_ecbcc8 { 4935let Inst{13-0} = 0b00000000000000; 4936let Inst{31-21} = 0b01010000101; 4937let isCall = 1; 4938let prefersSlot3 = 1; 4939let cofMax1 = 1; 4940let Uses = [R29]; 4941let Defs = [PC, R31]; 4942let hasSideEffects = 1; 4943} 4944def J2_callrf : HInst< 4945(outs), 4946(ins PredRegs:$Pu4, IntRegs:$Rs32), 4947"if (!$Pu4) callr $Rs32", 4948tc_dc51281d, TypeJ>, Enc_88d4d9 { 4949let Inst{7-0} = 0b00000000; 4950let Inst{13-10} = 0b0000; 4951let Inst{31-21} = 0b01010001001; 4952let isPredicated = 1; 4953let isPredicatedFalse = 1; 4954let isCall = 1; 4955let prefersSlot3 = 1; 4956let cofMax1 = 1; 4957let Uses = [R29]; 4958let Defs = [PC, R31]; 4959let hasSideEffects = 1; 4960let isTaken = Inst{12}; 4961} 4962def J2_callrt : HInst< 4963(outs), 4964(ins PredRegs:$Pu4, IntRegs:$Rs32), 4965"if ($Pu4) callr $Rs32", 4966tc_dc51281d, TypeJ>, Enc_88d4d9 { 4967let Inst{7-0} = 0b00000000; 4968let Inst{13-10} = 0b0000; 4969let Inst{31-21} = 0b01010001000; 4970let isPredicated = 1; 4971let isCall = 1; 4972let prefersSlot3 = 1; 4973let cofMax1 = 1; 4974let Uses = [R29]; 4975let Defs = [PC, R31]; 4976let hasSideEffects = 1; 4977let isTaken = Inst{12}; 4978} 4979def J2_callt : HInst< 4980(outs), 4981(ins PredRegs:$Pu4, a30_2Imm:$Ii), 4982"if ($Pu4) call $Ii", 4983tc_69bfb303, TypeJ>, Enc_daea09, PredRel { 4984let Inst{0-0} = 0b0; 4985let Inst{12-10} = 0b000; 4986let Inst{21-21} = 0b0; 4987let Inst{31-24} = 0b01011101; 4988let isPredicated = 1; 4989let isCall = 1; 4990let prefersSlot3 = 1; 4991let cofRelax1 = 1; 4992let cofRelax2 = 1; 4993let cofMax1 = 1; 4994let Uses = [R29]; 4995let Defs = [PC, R31]; 4996let BaseOpcode = "J2_call"; 4997let hasSideEffects = 1; 4998let isTaken = Inst{12}; 4999let isExtendable = 1; 5000let opExtendable = 1; 5001let isExtentSigned = 1; 5002let opExtentBits = 17; 5003let opExtentAlign = 2; 5004} 5005def J2_endloop0 : HInst< 5006(outs), 5007(ins), 5008"endloop0", 5009tc_23708a21, TypeJ> { 5010let Uses = [LC0, SA0]; 5011let Defs = [LC0, P3, PC, USR]; 5012let isBranch = 1; 5013let isTerminator = 1; 5014let isPseudo = 1; 5015} 5016def J2_endloop01 : HInst< 5017(outs), 5018(ins), 5019"endloop01", 5020tc_23708a21, TypeJ> { 5021let Uses = [LC0, LC1, SA0, SA1]; 5022let Defs = [LC0, LC1, P3, PC, USR]; 5023let isPseudo = 1; 5024} 5025def J2_endloop1 : HInst< 5026(outs), 5027(ins), 5028"endloop1", 5029tc_23708a21, TypeJ> { 5030let Uses = [LC1, SA1]; 5031let Defs = [LC1, PC]; 5032let isBranch = 1; 5033let isTerminator = 1; 5034let isPseudo = 1; 5035} 5036def J2_jump : HInst< 5037(outs), 5038(ins b30_2Imm:$Ii), 5039"jump $Ii", 5040tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel { 5041let Inst{0-0} = 0b0; 5042let Inst{31-25} = 0b0101100; 5043let isTerminator = 1; 5044let isBranch = 1; 5045let cofRelax2 = 1; 5046let cofMax1 = 1; 5047let Defs = [PC]; 5048let BaseOpcode = "J2_jump"; 5049let InputType = "imm"; 5050let isBarrier = 1; 5051let isPredicable = 1; 5052let isExtendable = 1; 5053let opExtendable = 0; 5054let isExtentSigned = 1; 5055let opExtentBits = 24; 5056let opExtentAlign = 2; 5057} 5058def J2_jumpf : HInst< 5059(outs), 5060(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5061"if (!$Pu4) jump:nt $Ii", 5062tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel { 5063let Inst{0-0} = 0b0; 5064let Inst{12-10} = 0b000; 5065let Inst{21-21} = 0b1; 5066let Inst{31-24} = 0b01011100; 5067let isPredicated = 1; 5068let isPredicatedFalse = 1; 5069let isTerminator = 1; 5070let isBranch = 1; 5071let cofRelax1 = 1; 5072let cofRelax2 = 1; 5073let cofMax1 = 1; 5074let Defs = [PC]; 5075let BaseOpcode = "J2_jump"; 5076let InputType = "imm"; 5077let isTaken = Inst{12}; 5078let isExtendable = 1; 5079let opExtendable = 1; 5080let isExtentSigned = 1; 5081let opExtentBits = 17; 5082let opExtentAlign = 2; 5083} 5084def J2_jumpf_nopred_map : HInst< 5085(outs), 5086(ins PredRegs:$Pu4, b15_2Imm:$Ii), 5087"if (!$Pu4) jump $Ii", 5088tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> { 5089let isPseudo = 1; 5090let isCodeGenOnly = 1; 5091} 5092def J2_jumpfnew : HInst< 5093(outs), 5094(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5095"if (!$Pu4.new) jump:nt $Ii", 5096tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5097let Inst{0-0} = 0b0; 5098let Inst{12-10} = 0b010; 5099let Inst{21-21} = 0b1; 5100let Inst{31-24} = 0b01011100; 5101let isPredicated = 1; 5102let isPredicatedFalse = 1; 5103let isTerminator = 1; 5104let isBranch = 1; 5105let isPredicatedNew = 1; 5106let cofRelax1 = 1; 5107let cofRelax2 = 1; 5108let cofMax1 = 1; 5109let Defs = [PC]; 5110let BaseOpcode = "J2_jump"; 5111let InputType = "imm"; 5112let isTaken = Inst{12}; 5113let isExtendable = 1; 5114let opExtendable = 1; 5115let isExtentSigned = 1; 5116let opExtentBits = 17; 5117let opExtentAlign = 2; 5118} 5119def J2_jumpfnewpt : HInst< 5120(outs), 5121(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5122"if (!$Pu4.new) jump:t $Ii", 5123tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5124let Inst{0-0} = 0b0; 5125let Inst{12-10} = 0b110; 5126let Inst{21-21} = 0b1; 5127let Inst{31-24} = 0b01011100; 5128let isPredicated = 1; 5129let isPredicatedFalse = 1; 5130let isTerminator = 1; 5131let isBranch = 1; 5132let isPredicatedNew = 1; 5133let cofRelax1 = 1; 5134let cofRelax2 = 1; 5135let cofMax1 = 1; 5136let Defs = [PC]; 5137let BaseOpcode = "J2_jump"; 5138let InputType = "imm"; 5139let isTaken = Inst{12}; 5140let isExtendable = 1; 5141let opExtendable = 1; 5142let isExtentSigned = 1; 5143let opExtentBits = 17; 5144let opExtentAlign = 2; 5145} 5146def J2_jumpfpt : HInst< 5147(outs), 5148(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5149"if (!$Pu4) jump:t $Ii", 5150tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5151let Inst{0-0} = 0b0; 5152let Inst{12-10} = 0b100; 5153let Inst{21-21} = 0b1; 5154let Inst{31-24} = 0b01011100; 5155let isPredicated = 1; 5156let isPredicatedFalse = 1; 5157let isTerminator = 1; 5158let isBranch = 1; 5159let cofRelax1 = 1; 5160let cofRelax2 = 1; 5161let cofMax1 = 1; 5162let Defs = [PC]; 5163let BaseOpcode = "J2_jump"; 5164let InputType = "imm"; 5165let isTaken = Inst{12}; 5166let isExtendable = 1; 5167let opExtendable = 1; 5168let isExtentSigned = 1; 5169let opExtentBits = 17; 5170let opExtentAlign = 2; 5171} 5172def J2_jumpr : HInst< 5173(outs), 5174(ins IntRegs:$Rs32), 5175"jumpr $Rs32", 5176tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel { 5177let Inst{13-0} = 0b00000000000000; 5178let Inst{31-21} = 0b01010010100; 5179let isTerminator = 1; 5180let isIndirectBranch = 1; 5181let isBranch = 1; 5182let cofMax1 = 1; 5183let Defs = [PC]; 5184let BaseOpcode = "J2_jumpr"; 5185let InputType = "reg"; 5186let isBarrier = 1; 5187let isPredicable = 1; 5188} 5189def J2_jumprf : HInst< 5190(outs), 5191(ins PredRegs:$Pu4, IntRegs:$Rs32), 5192"if (!$Pu4) jumpr:nt $Rs32", 5193tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel { 5194let Inst{7-0} = 0b00000000; 5195let Inst{13-10} = 0b0000; 5196let Inst{31-21} = 0b01010011011; 5197let isPredicated = 1; 5198let isPredicatedFalse = 1; 5199let isTerminator = 1; 5200let isIndirectBranch = 1; 5201let isBranch = 1; 5202let cofMax1 = 1; 5203let Defs = [PC]; 5204let BaseOpcode = "J2_jumpr"; 5205let InputType = "reg"; 5206let isTaken = Inst{12}; 5207} 5208def J2_jumprf_nopred_map : HInst< 5209(outs), 5210(ins PredRegs:$Pu4, IntRegs:$Rs32), 5211"if (!$Pu4) jumpr $Rs32", 5212tc_2f573607, TypeMAPPING>, Requires<[HasV60]> { 5213let isPseudo = 1; 5214let isCodeGenOnly = 1; 5215} 5216def J2_jumprfnew : HInst< 5217(outs), 5218(ins PredRegs:$Pu4, IntRegs:$Rs32), 5219"if (!$Pu4.new) jumpr:nt $Rs32", 5220tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5221let Inst{7-0} = 0b00000000; 5222let Inst{13-10} = 0b0010; 5223let Inst{31-21} = 0b01010011011; 5224let isPredicated = 1; 5225let isPredicatedFalse = 1; 5226let isTerminator = 1; 5227let isIndirectBranch = 1; 5228let isBranch = 1; 5229let isPredicatedNew = 1; 5230let cofMax1 = 1; 5231let Defs = [PC]; 5232let BaseOpcode = "J2_jumpr"; 5233let InputType = "reg"; 5234let isTaken = Inst{12}; 5235} 5236def J2_jumprfnewpt : HInst< 5237(outs), 5238(ins PredRegs:$Pu4, IntRegs:$Rs32), 5239"if (!$Pu4.new) jumpr:t $Rs32", 5240tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5241let Inst{7-0} = 0b00000000; 5242let Inst{13-10} = 0b0110; 5243let Inst{31-21} = 0b01010011011; 5244let isPredicated = 1; 5245let isPredicatedFalse = 1; 5246let isTerminator = 1; 5247let isIndirectBranch = 1; 5248let isBranch = 1; 5249let isPredicatedNew = 1; 5250let cofMax1 = 1; 5251let Defs = [PC]; 5252let BaseOpcode = "J2_jumpr"; 5253let InputType = "reg"; 5254let isTaken = Inst{12}; 5255} 5256def J2_jumprfpt : HInst< 5257(outs), 5258(ins PredRegs:$Pu4, IntRegs:$Rs32), 5259"if (!$Pu4) jumpr:t $Rs32", 5260tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5261let Inst{7-0} = 0b00000000; 5262let Inst{13-10} = 0b0100; 5263let Inst{31-21} = 0b01010011011; 5264let isPredicated = 1; 5265let isPredicatedFalse = 1; 5266let isTerminator = 1; 5267let isIndirectBranch = 1; 5268let isBranch = 1; 5269let cofMax1 = 1; 5270let Defs = [PC]; 5271let BaseOpcode = "J2_jumpr"; 5272let InputType = "reg"; 5273let isTaken = Inst{12}; 5274} 5275def J2_jumprgtez : HInst< 5276(outs), 5277(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5278"if ($Rs32>=#0) jump:nt $Ii", 5279tc_57a55b54, TypeCR>, Enc_0fa531 { 5280let Inst{0-0} = 0b0; 5281let Inst{12-12} = 0b0; 5282let Inst{31-22} = 0b0110000101; 5283let isPredicated = 1; 5284let isTerminator = 1; 5285let isBranch = 1; 5286let isPredicatedNew = 1; 5287let cofRelax1 = 1; 5288let cofRelax2 = 1; 5289let cofMax1 = 1; 5290let Defs = [PC]; 5291let isTaken = Inst{12}; 5292} 5293def J2_jumprgtezpt : HInst< 5294(outs), 5295(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5296"if ($Rs32>=#0) jump:t $Ii", 5297tc_57a55b54, TypeCR>, Enc_0fa531 { 5298let Inst{0-0} = 0b0; 5299let Inst{12-12} = 0b1; 5300let Inst{31-22} = 0b0110000101; 5301let isPredicated = 1; 5302let isTerminator = 1; 5303let isBranch = 1; 5304let isPredicatedNew = 1; 5305let cofRelax1 = 1; 5306let cofRelax2 = 1; 5307let cofMax1 = 1; 5308let Defs = [PC]; 5309let isTaken = Inst{12}; 5310} 5311def J2_jumprltez : HInst< 5312(outs), 5313(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5314"if ($Rs32<=#0) jump:nt $Ii", 5315tc_57a55b54, TypeCR>, Enc_0fa531 { 5316let Inst{0-0} = 0b0; 5317let Inst{12-12} = 0b0; 5318let Inst{31-22} = 0b0110000111; 5319let isPredicated = 1; 5320let isTerminator = 1; 5321let isBranch = 1; 5322let isPredicatedNew = 1; 5323let cofRelax1 = 1; 5324let cofRelax2 = 1; 5325let cofMax1 = 1; 5326let Defs = [PC]; 5327let isTaken = Inst{12}; 5328} 5329def J2_jumprltezpt : HInst< 5330(outs), 5331(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5332"if ($Rs32<=#0) jump:t $Ii", 5333tc_57a55b54, TypeCR>, Enc_0fa531 { 5334let Inst{0-0} = 0b0; 5335let Inst{12-12} = 0b1; 5336let Inst{31-22} = 0b0110000111; 5337let isPredicated = 1; 5338let isTerminator = 1; 5339let isBranch = 1; 5340let isPredicatedNew = 1; 5341let cofRelax1 = 1; 5342let cofRelax2 = 1; 5343let cofMax1 = 1; 5344let Defs = [PC]; 5345let isTaken = Inst{12}; 5346} 5347def J2_jumprnz : HInst< 5348(outs), 5349(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5350"if ($Rs32==#0) jump:nt $Ii", 5351tc_57a55b54, TypeCR>, Enc_0fa531 { 5352let Inst{0-0} = 0b0; 5353let Inst{12-12} = 0b0; 5354let Inst{31-22} = 0b0110000110; 5355let isPredicated = 1; 5356let isTerminator = 1; 5357let isBranch = 1; 5358let isPredicatedNew = 1; 5359let cofRelax1 = 1; 5360let cofRelax2 = 1; 5361let cofMax1 = 1; 5362let Defs = [PC]; 5363let isTaken = Inst{12}; 5364} 5365def J2_jumprnzpt : HInst< 5366(outs), 5367(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5368"if ($Rs32==#0) jump:t $Ii", 5369tc_57a55b54, TypeCR>, Enc_0fa531 { 5370let Inst{0-0} = 0b0; 5371let Inst{12-12} = 0b1; 5372let Inst{31-22} = 0b0110000110; 5373let isPredicated = 1; 5374let isTerminator = 1; 5375let isBranch = 1; 5376let isPredicatedNew = 1; 5377let cofRelax1 = 1; 5378let cofRelax2 = 1; 5379let cofMax1 = 1; 5380let Defs = [PC]; 5381let isTaken = Inst{12}; 5382} 5383def J2_jumprt : HInst< 5384(outs), 5385(ins PredRegs:$Pu4, IntRegs:$Rs32), 5386"if ($Pu4) jumpr:nt $Rs32", 5387tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel { 5388let Inst{7-0} = 0b00000000; 5389let Inst{13-10} = 0b0000; 5390let Inst{31-21} = 0b01010011010; 5391let isPredicated = 1; 5392let isTerminator = 1; 5393let isIndirectBranch = 1; 5394let isBranch = 1; 5395let cofMax1 = 1; 5396let Defs = [PC]; 5397let BaseOpcode = "J2_jumpr"; 5398let InputType = "reg"; 5399let isTaken = Inst{12}; 5400} 5401def J2_jumprt_nopred_map : HInst< 5402(outs), 5403(ins PredRegs:$Pu4, IntRegs:$Rs32), 5404"if ($Pu4) jumpr $Rs32", 5405tc_2f573607, TypeMAPPING>, Requires<[HasV60]> { 5406let isPseudo = 1; 5407let isCodeGenOnly = 1; 5408} 5409def J2_jumprtnew : HInst< 5410(outs), 5411(ins PredRegs:$Pu4, IntRegs:$Rs32), 5412"if ($Pu4.new) jumpr:nt $Rs32", 5413tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5414let Inst{7-0} = 0b00000000; 5415let Inst{13-10} = 0b0010; 5416let Inst{31-21} = 0b01010011010; 5417let isPredicated = 1; 5418let isTerminator = 1; 5419let isIndirectBranch = 1; 5420let isBranch = 1; 5421let isPredicatedNew = 1; 5422let cofMax1 = 1; 5423let Defs = [PC]; 5424let BaseOpcode = "J2_jumpr"; 5425let InputType = "reg"; 5426let isTaken = Inst{12}; 5427} 5428def J2_jumprtnewpt : HInst< 5429(outs), 5430(ins PredRegs:$Pu4, IntRegs:$Rs32), 5431"if ($Pu4.new) jumpr:t $Rs32", 5432tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5433let Inst{7-0} = 0b00000000; 5434let Inst{13-10} = 0b0110; 5435let Inst{31-21} = 0b01010011010; 5436let isPredicated = 1; 5437let isTerminator = 1; 5438let isIndirectBranch = 1; 5439let isBranch = 1; 5440let isPredicatedNew = 1; 5441let cofMax1 = 1; 5442let Defs = [PC]; 5443let BaseOpcode = "J2_jumpr"; 5444let InputType = "reg"; 5445let isTaken = Inst{12}; 5446} 5447def J2_jumprtpt : HInst< 5448(outs), 5449(ins PredRegs:$Pu4, IntRegs:$Rs32), 5450"if ($Pu4) jumpr:t $Rs32", 5451tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5452let Inst{7-0} = 0b00000000; 5453let Inst{13-10} = 0b0100; 5454let Inst{31-21} = 0b01010011010; 5455let isPredicated = 1; 5456let isTerminator = 1; 5457let isIndirectBranch = 1; 5458let isBranch = 1; 5459let cofMax1 = 1; 5460let Defs = [PC]; 5461let BaseOpcode = "J2_jumpr"; 5462let InputType = "reg"; 5463let isTaken = Inst{12}; 5464} 5465def J2_jumprz : HInst< 5466(outs), 5467(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5468"if ($Rs32!=#0) jump:nt $Ii", 5469tc_57a55b54, TypeCR>, Enc_0fa531 { 5470let Inst{0-0} = 0b0; 5471let Inst{12-12} = 0b0; 5472let Inst{31-22} = 0b0110000100; 5473let isPredicated = 1; 5474let isTerminator = 1; 5475let isBranch = 1; 5476let isPredicatedNew = 1; 5477let cofRelax1 = 1; 5478let cofRelax2 = 1; 5479let cofMax1 = 1; 5480let Defs = [PC]; 5481let isTaken = Inst{12}; 5482} 5483def J2_jumprzpt : HInst< 5484(outs), 5485(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5486"if ($Rs32!=#0) jump:t $Ii", 5487tc_57a55b54, TypeCR>, Enc_0fa531 { 5488let Inst{0-0} = 0b0; 5489let Inst{12-12} = 0b1; 5490let Inst{31-22} = 0b0110000100; 5491let isPredicated = 1; 5492let isTerminator = 1; 5493let isBranch = 1; 5494let isPredicatedNew = 1; 5495let cofRelax1 = 1; 5496let cofRelax2 = 1; 5497let cofMax1 = 1; 5498let Defs = [PC]; 5499let isTaken = Inst{12}; 5500} 5501def J2_jumpt : HInst< 5502(outs), 5503(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5504"if ($Pu4) jump:nt $Ii", 5505tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel { 5506let Inst{0-0} = 0b0; 5507let Inst{12-10} = 0b000; 5508let Inst{21-21} = 0b0; 5509let Inst{31-24} = 0b01011100; 5510let isPredicated = 1; 5511let isTerminator = 1; 5512let isBranch = 1; 5513let cofRelax1 = 1; 5514let cofRelax2 = 1; 5515let cofMax1 = 1; 5516let Defs = [PC]; 5517let BaseOpcode = "J2_jump"; 5518let InputType = "imm"; 5519let isTaken = Inst{12}; 5520let isExtendable = 1; 5521let opExtendable = 1; 5522let isExtentSigned = 1; 5523let opExtentBits = 17; 5524let opExtentAlign = 2; 5525} 5526def J2_jumpt_nopred_map : HInst< 5527(outs), 5528(ins PredRegs:$Pu4, b15_2Imm:$Ii), 5529"if ($Pu4) jump $Ii", 5530tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> { 5531let isPseudo = 1; 5532let isCodeGenOnly = 1; 5533} 5534def J2_jumptnew : HInst< 5535(outs), 5536(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5537"if ($Pu4.new) jump:nt $Ii", 5538tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5539let Inst{0-0} = 0b0; 5540let Inst{12-10} = 0b010; 5541let Inst{21-21} = 0b0; 5542let Inst{31-24} = 0b01011100; 5543let isPredicated = 1; 5544let isTerminator = 1; 5545let isBranch = 1; 5546let isPredicatedNew = 1; 5547let cofRelax1 = 1; 5548let cofRelax2 = 1; 5549let cofMax1 = 1; 5550let Defs = [PC]; 5551let BaseOpcode = "J2_jump"; 5552let InputType = "imm"; 5553let isTaken = Inst{12}; 5554let isExtendable = 1; 5555let opExtendable = 1; 5556let isExtentSigned = 1; 5557let opExtentBits = 17; 5558let opExtentAlign = 2; 5559} 5560def J2_jumptnewpt : HInst< 5561(outs), 5562(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5563"if ($Pu4.new) jump:t $Ii", 5564tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5565let Inst{0-0} = 0b0; 5566let Inst{12-10} = 0b110; 5567let Inst{21-21} = 0b0; 5568let Inst{31-24} = 0b01011100; 5569let isPredicated = 1; 5570let isTerminator = 1; 5571let isBranch = 1; 5572let isPredicatedNew = 1; 5573let cofRelax1 = 1; 5574let cofRelax2 = 1; 5575let cofMax1 = 1; 5576let Defs = [PC]; 5577let BaseOpcode = "J2_jump"; 5578let InputType = "imm"; 5579let isTaken = Inst{12}; 5580let isExtendable = 1; 5581let opExtendable = 1; 5582let isExtentSigned = 1; 5583let opExtentBits = 17; 5584let opExtentAlign = 2; 5585} 5586def J2_jumptpt : HInst< 5587(outs), 5588(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5589"if ($Pu4) jump:t $Ii", 5590tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5591let Inst{0-0} = 0b0; 5592let Inst{12-10} = 0b100; 5593let Inst{21-21} = 0b0; 5594let Inst{31-24} = 0b01011100; 5595let isPredicated = 1; 5596let isTerminator = 1; 5597let isBranch = 1; 5598let cofRelax1 = 1; 5599let cofRelax2 = 1; 5600let cofMax1 = 1; 5601let Defs = [PC]; 5602let BaseOpcode = "J2_jump"; 5603let InputType = "imm"; 5604let isTaken = Inst{12}; 5605let isExtendable = 1; 5606let opExtendable = 1; 5607let isExtentSigned = 1; 5608let opExtentBits = 17; 5609let opExtentAlign = 2; 5610} 5611def J2_loop0i : HInst< 5612(outs), 5613(ins b30_2Imm:$Ii, u10_0Imm:$II), 5614"loop0($Ii,#$II)", 5615tc_1248597c, TypeCR>, Enc_4dc228 { 5616let Inst{2-2} = 0b0; 5617let Inst{13-13} = 0b0; 5618let Inst{31-21} = 0b01101001000; 5619let cofRelax1 = 1; 5620let cofRelax2 = 1; 5621let Defs = [LC0, SA0, USR]; 5622let isExtendable = 1; 5623let opExtendable = 0; 5624let isExtentSigned = 1; 5625let opExtentBits = 9; 5626let opExtentAlign = 2; 5627} 5628def J2_loop0r : HInst< 5629(outs), 5630(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5631"loop0($Ii,$Rs32)", 5632tc_9406230a, TypeCR>, Enc_864a5a { 5633let Inst{2-0} = 0b000; 5634let Inst{7-5} = 0b000; 5635let Inst{13-13} = 0b0; 5636let Inst{31-21} = 0b01100000000; 5637let cofRelax1 = 1; 5638let cofRelax2 = 1; 5639let Defs = [LC0, SA0, USR]; 5640let isExtendable = 1; 5641let opExtendable = 0; 5642let isExtentSigned = 1; 5643let opExtentBits = 9; 5644let opExtentAlign = 2; 5645} 5646def J2_loop1i : HInst< 5647(outs), 5648(ins b30_2Imm:$Ii, u10_0Imm:$II), 5649"loop1($Ii,#$II)", 5650tc_1248597c, TypeCR>, Enc_4dc228 { 5651let Inst{2-2} = 0b0; 5652let Inst{13-13} = 0b0; 5653let Inst{31-21} = 0b01101001001; 5654let cofRelax1 = 1; 5655let cofRelax2 = 1; 5656let Defs = [LC1, SA1]; 5657let isExtendable = 1; 5658let opExtendable = 0; 5659let isExtentSigned = 1; 5660let opExtentBits = 9; 5661let opExtentAlign = 2; 5662} 5663def J2_loop1r : HInst< 5664(outs), 5665(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5666"loop1($Ii,$Rs32)", 5667tc_9406230a, TypeCR>, Enc_864a5a { 5668let Inst{2-0} = 0b000; 5669let Inst{7-5} = 0b000; 5670let Inst{13-13} = 0b0; 5671let Inst{31-21} = 0b01100000001; 5672let cofRelax1 = 1; 5673let cofRelax2 = 1; 5674let Defs = [LC1, SA1]; 5675let isExtendable = 1; 5676let opExtendable = 0; 5677let isExtentSigned = 1; 5678let opExtentBits = 9; 5679let opExtentAlign = 2; 5680} 5681def J2_pause : HInst< 5682(outs), 5683(ins u8_0Imm:$Ii), 5684"pause(#$Ii)", 5685tc_d57d649c, TypeJ>, Enc_a51a9a { 5686let Inst{1-0} = 0b00; 5687let Inst{7-5} = 0b000; 5688let Inst{13-13} = 0b0; 5689let Inst{31-16} = 0b0101010001000000; 5690let isSolo = 1; 5691} 5692def J2_ploop1si : HInst< 5693(outs), 5694(ins b30_2Imm:$Ii, u10_0Imm:$II), 5695"p3 = sp1loop0($Ii,#$II)", 5696tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5697let Inst{2-2} = 0b0; 5698let Inst{13-13} = 0b0; 5699let Inst{31-21} = 0b01101001101; 5700let isPredicateLate = 1; 5701let cofRelax1 = 1; 5702let cofRelax2 = 1; 5703let Defs = [LC0, P3, SA0, USR]; 5704let isExtendable = 1; 5705let opExtendable = 0; 5706let isExtentSigned = 1; 5707let opExtentBits = 9; 5708let opExtentAlign = 2; 5709} 5710def J2_ploop1sr : HInst< 5711(outs), 5712(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5713"p3 = sp1loop0($Ii,$Rs32)", 5714tc_6d861a95, TypeCR>, Enc_864a5a { 5715let Inst{2-0} = 0b000; 5716let Inst{7-5} = 0b000; 5717let Inst{13-13} = 0b0; 5718let Inst{31-21} = 0b01100000101; 5719let isPredicateLate = 1; 5720let cofRelax1 = 1; 5721let cofRelax2 = 1; 5722let Defs = [LC0, P3, SA0, USR]; 5723let isExtendable = 1; 5724let opExtendable = 0; 5725let isExtentSigned = 1; 5726let opExtentBits = 9; 5727let opExtentAlign = 2; 5728} 5729def J2_ploop2si : HInst< 5730(outs), 5731(ins b30_2Imm:$Ii, u10_0Imm:$II), 5732"p3 = sp2loop0($Ii,#$II)", 5733tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5734let Inst{2-2} = 0b0; 5735let Inst{13-13} = 0b0; 5736let Inst{31-21} = 0b01101001110; 5737let isPredicateLate = 1; 5738let cofRelax1 = 1; 5739let cofRelax2 = 1; 5740let Defs = [LC0, P3, SA0, USR]; 5741let isExtendable = 1; 5742let opExtendable = 0; 5743let isExtentSigned = 1; 5744let opExtentBits = 9; 5745let opExtentAlign = 2; 5746} 5747def J2_ploop2sr : HInst< 5748(outs), 5749(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5750"p3 = sp2loop0($Ii,$Rs32)", 5751tc_6d861a95, TypeCR>, Enc_864a5a { 5752let Inst{2-0} = 0b000; 5753let Inst{7-5} = 0b000; 5754let Inst{13-13} = 0b0; 5755let Inst{31-21} = 0b01100000110; 5756let isPredicateLate = 1; 5757let cofRelax1 = 1; 5758let cofRelax2 = 1; 5759let Defs = [LC0, P3, SA0, USR]; 5760let isExtendable = 1; 5761let opExtendable = 0; 5762let isExtentSigned = 1; 5763let opExtentBits = 9; 5764let opExtentAlign = 2; 5765} 5766def J2_ploop3si : HInst< 5767(outs), 5768(ins b30_2Imm:$Ii, u10_0Imm:$II), 5769"p3 = sp3loop0($Ii,#$II)", 5770tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5771let Inst{2-2} = 0b0; 5772let Inst{13-13} = 0b0; 5773let Inst{31-21} = 0b01101001111; 5774let isPredicateLate = 1; 5775let cofRelax1 = 1; 5776let cofRelax2 = 1; 5777let Defs = [LC0, P3, SA0, USR]; 5778let isExtendable = 1; 5779let opExtendable = 0; 5780let isExtentSigned = 1; 5781let opExtentBits = 9; 5782let opExtentAlign = 2; 5783} 5784def J2_ploop3sr : HInst< 5785(outs), 5786(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5787"p3 = sp3loop0($Ii,$Rs32)", 5788tc_6d861a95, TypeCR>, Enc_864a5a { 5789let Inst{2-0} = 0b000; 5790let Inst{7-5} = 0b000; 5791let Inst{13-13} = 0b0; 5792let Inst{31-21} = 0b01100000111; 5793let isPredicateLate = 1; 5794let cofRelax1 = 1; 5795let cofRelax2 = 1; 5796let Defs = [LC0, P3, SA0, USR]; 5797let isExtendable = 1; 5798let opExtendable = 0; 5799let isExtentSigned = 1; 5800let opExtentBits = 9; 5801let opExtentAlign = 2; 5802} 5803def J2_trap0 : HInst< 5804(outs), 5805(ins u8_0Imm:$Ii), 5806"trap0(#$Ii)", 5807tc_45f9d1be, TypeJ>, Enc_a51a9a { 5808let Inst{1-0} = 0b00; 5809let Inst{7-5} = 0b000; 5810let Inst{13-13} = 0b0; 5811let Inst{31-16} = 0b0101010000000000; 5812let isSolo = 1; 5813let hasSideEffects = 1; 5814} 5815def J2_trap1 : HInst< 5816(outs IntRegs:$Rx32), 5817(ins IntRegs:$Rx32in, u8_0Imm:$Ii), 5818"trap1($Rx32,#$Ii)", 5819tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> { 5820let Inst{1-0} = 0b00; 5821let Inst{7-5} = 0b000; 5822let Inst{13-13} = 0b0; 5823let Inst{31-21} = 0b01010100100; 5824let hasNewValue = 1; 5825let opNewValue = 0; 5826let isSolo = 1; 5827let Uses = [GOSP]; 5828let Defs = [GOSP, PC]; 5829let hasSideEffects = 1; 5830let Constraints = "$Rx32 = $Rx32in"; 5831} 5832def J2_trap1_noregmap : HInst< 5833(outs), 5834(ins u8_0Imm:$Ii), 5835"trap1(#$Ii)", 5836tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> { 5837let hasSideEffects = 1; 5838let isPseudo = 1; 5839let isCodeGenOnly = 1; 5840} 5841def J4_cmpeq_f_jumpnv_nt : HInst< 5842(outs), 5843(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5844"if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 5845tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 5846let Inst{0-0} = 0b0; 5847let Inst{13-13} = 0b0; 5848let Inst{19-19} = 0b0; 5849let Inst{31-22} = 0b0010000001; 5850let isPredicated = 1; 5851let isPredicatedFalse = 1; 5852let isTerminator = 1; 5853let isBranch = 1; 5854let isNewValue = 1; 5855let cofMax1 = 1; 5856let isRestrictNoSlot1Store = 1; 5857let Defs = [PC]; 5858let BaseOpcode = "J4_cmpeqr"; 5859let isTaken = Inst{13}; 5860let isExtendable = 1; 5861let opExtendable = 2; 5862let isExtentSigned = 1; 5863let opExtentBits = 11; 5864let opExtentAlign = 2; 5865let opNewValue = 0; 5866} 5867def J4_cmpeq_f_jumpnv_t : HInst< 5868(outs), 5869(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5870"if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 5871tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 5872let Inst{0-0} = 0b0; 5873let Inst{13-13} = 0b1; 5874let Inst{19-19} = 0b0; 5875let Inst{31-22} = 0b0010000001; 5876let isPredicated = 1; 5877let isPredicatedFalse = 1; 5878let isTerminator = 1; 5879let isBranch = 1; 5880let isNewValue = 1; 5881let cofMax1 = 1; 5882let isRestrictNoSlot1Store = 1; 5883let Defs = [PC]; 5884let BaseOpcode = "J4_cmpeqr"; 5885let isTaken = Inst{13}; 5886let isExtendable = 1; 5887let opExtendable = 2; 5888let isExtentSigned = 1; 5889let opExtentBits = 11; 5890let opExtentAlign = 2; 5891let opNewValue = 0; 5892} 5893def J4_cmpeq_fp0_jump_nt : HInst< 5894(outs), 5895(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5896"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 5897tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5898let Inst{0-0} = 0b0; 5899let Inst{13-12} = 0b00; 5900let Inst{31-22} = 0b0001010001; 5901let isPredicated = 1; 5902let isPredicatedFalse = 1; 5903let isTerminator = 1; 5904let isBranch = 1; 5905let isPredicatedNew = 1; 5906let cofRelax1 = 1; 5907let cofRelax2 = 1; 5908let cofMax1 = 1; 5909let Uses = [P0]; 5910let Defs = [P0, PC]; 5911let BaseOpcode = "J4_cmpeqp0"; 5912let isTaken = Inst{13}; 5913let isExtendable = 1; 5914let opExtendable = 2; 5915let isExtentSigned = 1; 5916let opExtentBits = 11; 5917let opExtentAlign = 2; 5918} 5919def J4_cmpeq_fp0_jump_t : HInst< 5920(outs), 5921(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5922"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 5923tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5924let Inst{0-0} = 0b0; 5925let Inst{13-12} = 0b10; 5926let Inst{31-22} = 0b0001010001; 5927let isPredicated = 1; 5928let isPredicatedFalse = 1; 5929let isTerminator = 1; 5930let isBranch = 1; 5931let isPredicatedNew = 1; 5932let cofRelax1 = 1; 5933let cofRelax2 = 1; 5934let cofMax1 = 1; 5935let Uses = [P0]; 5936let Defs = [P0, PC]; 5937let BaseOpcode = "J4_cmpeqp0"; 5938let isTaken = Inst{13}; 5939let isExtendable = 1; 5940let opExtendable = 2; 5941let isExtentSigned = 1; 5942let opExtentBits = 11; 5943let opExtentAlign = 2; 5944} 5945def J4_cmpeq_fp1_jump_nt : HInst< 5946(outs), 5947(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5948"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 5949tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5950let Inst{0-0} = 0b0; 5951let Inst{13-12} = 0b01; 5952let Inst{31-22} = 0b0001010001; 5953let isPredicated = 1; 5954let isPredicatedFalse = 1; 5955let isTerminator = 1; 5956let isBranch = 1; 5957let isPredicatedNew = 1; 5958let cofRelax1 = 1; 5959let cofRelax2 = 1; 5960let cofMax1 = 1; 5961let Uses = [P1]; 5962let Defs = [P1, PC]; 5963let BaseOpcode = "J4_cmpeqp1"; 5964let isTaken = Inst{13}; 5965let isExtendable = 1; 5966let opExtendable = 2; 5967let isExtentSigned = 1; 5968let opExtentBits = 11; 5969let opExtentAlign = 2; 5970} 5971def J4_cmpeq_fp1_jump_t : HInst< 5972(outs), 5973(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5974"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 5975tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5976let Inst{0-0} = 0b0; 5977let Inst{13-12} = 0b11; 5978let Inst{31-22} = 0b0001010001; 5979let isPredicated = 1; 5980let isPredicatedFalse = 1; 5981let isTerminator = 1; 5982let isBranch = 1; 5983let isPredicatedNew = 1; 5984let cofRelax1 = 1; 5985let cofRelax2 = 1; 5986let cofMax1 = 1; 5987let Uses = [P1]; 5988let Defs = [P1, PC]; 5989let BaseOpcode = "J4_cmpeqp1"; 5990let isTaken = Inst{13}; 5991let isExtendable = 1; 5992let opExtendable = 2; 5993let isExtentSigned = 1; 5994let opExtentBits = 11; 5995let opExtentAlign = 2; 5996} 5997def J4_cmpeq_t_jumpnv_nt : HInst< 5998(outs), 5999(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6000"if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 6001tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6002let Inst{0-0} = 0b0; 6003let Inst{13-13} = 0b0; 6004let Inst{19-19} = 0b0; 6005let Inst{31-22} = 0b0010000000; 6006let isPredicated = 1; 6007let isTerminator = 1; 6008let isBranch = 1; 6009let isNewValue = 1; 6010let cofMax1 = 1; 6011let isRestrictNoSlot1Store = 1; 6012let Defs = [PC]; 6013let BaseOpcode = "J4_cmpeqr"; 6014let isTaken = Inst{13}; 6015let isExtendable = 1; 6016let opExtendable = 2; 6017let isExtentSigned = 1; 6018let opExtentBits = 11; 6019let opExtentAlign = 2; 6020let opNewValue = 0; 6021} 6022def J4_cmpeq_t_jumpnv_t : HInst< 6023(outs), 6024(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6025"if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 6026tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6027let Inst{0-0} = 0b0; 6028let Inst{13-13} = 0b1; 6029let Inst{19-19} = 0b0; 6030let Inst{31-22} = 0b0010000000; 6031let isPredicated = 1; 6032let isTerminator = 1; 6033let isBranch = 1; 6034let isNewValue = 1; 6035let cofMax1 = 1; 6036let isRestrictNoSlot1Store = 1; 6037let Defs = [PC]; 6038let BaseOpcode = "J4_cmpeqr"; 6039let isTaken = Inst{13}; 6040let isExtendable = 1; 6041let opExtendable = 2; 6042let isExtentSigned = 1; 6043let opExtentBits = 11; 6044let opExtentAlign = 2; 6045let opNewValue = 0; 6046} 6047def J4_cmpeq_tp0_jump_nt : HInst< 6048(outs), 6049(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6050"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 6051tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6052let Inst{0-0} = 0b0; 6053let Inst{13-12} = 0b00; 6054let Inst{31-22} = 0b0001010000; 6055let isPredicated = 1; 6056let isTerminator = 1; 6057let isBranch = 1; 6058let isPredicatedNew = 1; 6059let cofRelax1 = 1; 6060let cofRelax2 = 1; 6061let cofMax1 = 1; 6062let Uses = [P0]; 6063let Defs = [P0, PC]; 6064let BaseOpcode = "J4_cmpeqp0"; 6065let isTaken = Inst{13}; 6066let isExtendable = 1; 6067let opExtendable = 2; 6068let isExtentSigned = 1; 6069let opExtentBits = 11; 6070let opExtentAlign = 2; 6071} 6072def J4_cmpeq_tp0_jump_t : HInst< 6073(outs), 6074(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6075"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii", 6076tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6077let Inst{0-0} = 0b0; 6078let Inst{13-12} = 0b10; 6079let Inst{31-22} = 0b0001010000; 6080let isPredicated = 1; 6081let isTerminator = 1; 6082let isBranch = 1; 6083let isPredicatedNew = 1; 6084let cofRelax1 = 1; 6085let cofRelax2 = 1; 6086let cofMax1 = 1; 6087let Uses = [P0]; 6088let Defs = [P0, PC]; 6089let BaseOpcode = "J4_cmpeqp0"; 6090let isTaken = Inst{13}; 6091let isExtendable = 1; 6092let opExtendable = 2; 6093let isExtentSigned = 1; 6094let opExtentBits = 11; 6095let opExtentAlign = 2; 6096} 6097def J4_cmpeq_tp1_jump_nt : HInst< 6098(outs), 6099(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6100"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 6101tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6102let Inst{0-0} = 0b0; 6103let Inst{13-12} = 0b01; 6104let Inst{31-22} = 0b0001010000; 6105let isPredicated = 1; 6106let isTerminator = 1; 6107let isBranch = 1; 6108let isPredicatedNew = 1; 6109let cofRelax1 = 1; 6110let cofRelax2 = 1; 6111let cofMax1 = 1; 6112let Uses = [P1]; 6113let Defs = [P1, PC]; 6114let BaseOpcode = "J4_cmpeqp1"; 6115let isTaken = Inst{13}; 6116let isExtendable = 1; 6117let opExtendable = 2; 6118let isExtentSigned = 1; 6119let opExtentBits = 11; 6120let opExtentAlign = 2; 6121} 6122def J4_cmpeq_tp1_jump_t : HInst< 6123(outs), 6124(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6125"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii", 6126tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6127let Inst{0-0} = 0b0; 6128let Inst{13-12} = 0b11; 6129let Inst{31-22} = 0b0001010000; 6130let isPredicated = 1; 6131let isTerminator = 1; 6132let isBranch = 1; 6133let isPredicatedNew = 1; 6134let cofRelax1 = 1; 6135let cofRelax2 = 1; 6136let cofMax1 = 1; 6137let Uses = [P1]; 6138let Defs = [P1, PC]; 6139let BaseOpcode = "J4_cmpeqp1"; 6140let isTaken = Inst{13}; 6141let isExtendable = 1; 6142let opExtendable = 2; 6143let isExtentSigned = 1; 6144let opExtentBits = 11; 6145let opExtentAlign = 2; 6146} 6147def J4_cmpeqi_f_jumpnv_nt : HInst< 6148(outs), 6149(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6150"if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6151tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6152let Inst{0-0} = 0b0; 6153let Inst{13-13} = 0b0; 6154let Inst{19-19} = 0b0; 6155let Inst{31-22} = 0b0010010001; 6156let isPredicated = 1; 6157let isPredicatedFalse = 1; 6158let isTerminator = 1; 6159let isBranch = 1; 6160let isNewValue = 1; 6161let cofMax1 = 1; 6162let isRestrictNoSlot1Store = 1; 6163let Defs = [PC]; 6164let BaseOpcode = "J4_cmpeqi"; 6165let isTaken = Inst{13}; 6166let isExtendable = 1; 6167let opExtendable = 2; 6168let isExtentSigned = 1; 6169let opExtentBits = 11; 6170let opExtentAlign = 2; 6171let opNewValue = 0; 6172} 6173def J4_cmpeqi_f_jumpnv_t : HInst< 6174(outs), 6175(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6176"if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6177tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6178let Inst{0-0} = 0b0; 6179let Inst{13-13} = 0b1; 6180let Inst{19-19} = 0b0; 6181let Inst{31-22} = 0b0010010001; 6182let isPredicated = 1; 6183let isPredicatedFalse = 1; 6184let isTerminator = 1; 6185let isBranch = 1; 6186let isNewValue = 1; 6187let cofMax1 = 1; 6188let isRestrictNoSlot1Store = 1; 6189let Defs = [PC]; 6190let BaseOpcode = "J4_cmpeqi"; 6191let isTaken = Inst{13}; 6192let isExtendable = 1; 6193let opExtendable = 2; 6194let isExtentSigned = 1; 6195let opExtentBits = 11; 6196let opExtentAlign = 2; 6197let opNewValue = 0; 6198} 6199def J4_cmpeqi_fp0_jump_nt : HInst< 6200(outs), 6201(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6202"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii", 6203tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6204let Inst{0-0} = 0b0; 6205let Inst{13-13} = 0b0; 6206let Inst{31-22} = 0b0001000001; 6207let isPredicated = 1; 6208let isPredicatedFalse = 1; 6209let isTerminator = 1; 6210let isBranch = 1; 6211let isPredicatedNew = 1; 6212let cofRelax1 = 1; 6213let cofRelax2 = 1; 6214let cofMax1 = 1; 6215let Uses = [P0]; 6216let Defs = [P0, PC]; 6217let BaseOpcode = "J4_cmpeqip0"; 6218let isTaken = Inst{13}; 6219let isExtendable = 1; 6220let opExtendable = 2; 6221let isExtentSigned = 1; 6222let opExtentBits = 11; 6223let opExtentAlign = 2; 6224} 6225def J4_cmpeqi_fp0_jump_t : HInst< 6226(outs), 6227(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6228"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii", 6229tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6230let Inst{0-0} = 0b0; 6231let Inst{13-13} = 0b1; 6232let Inst{31-22} = 0b0001000001; 6233let isPredicated = 1; 6234let isPredicatedFalse = 1; 6235let isTerminator = 1; 6236let isBranch = 1; 6237let isPredicatedNew = 1; 6238let cofRelax1 = 1; 6239let cofRelax2 = 1; 6240let cofMax1 = 1; 6241let Uses = [P0]; 6242let Defs = [P0, PC]; 6243let BaseOpcode = "J4_cmpeqip0"; 6244let isTaken = Inst{13}; 6245let isExtendable = 1; 6246let opExtendable = 2; 6247let isExtentSigned = 1; 6248let opExtentBits = 11; 6249let opExtentAlign = 2; 6250} 6251def J4_cmpeqi_fp1_jump_nt : HInst< 6252(outs), 6253(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6254"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii", 6255tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6256let Inst{0-0} = 0b0; 6257let Inst{13-13} = 0b0; 6258let Inst{31-22} = 0b0001001001; 6259let isPredicated = 1; 6260let isPredicatedFalse = 1; 6261let isTerminator = 1; 6262let isBranch = 1; 6263let isPredicatedNew = 1; 6264let cofRelax1 = 1; 6265let cofRelax2 = 1; 6266let cofMax1 = 1; 6267let Uses = [P1]; 6268let Defs = [P1, PC]; 6269let BaseOpcode = "J4_cmpeqip1"; 6270let isTaken = Inst{13}; 6271let isExtendable = 1; 6272let opExtendable = 2; 6273let isExtentSigned = 1; 6274let opExtentBits = 11; 6275let opExtentAlign = 2; 6276} 6277def J4_cmpeqi_fp1_jump_t : HInst< 6278(outs), 6279(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6280"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii", 6281tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6282let Inst{0-0} = 0b0; 6283let Inst{13-13} = 0b1; 6284let Inst{31-22} = 0b0001001001; 6285let isPredicated = 1; 6286let isPredicatedFalse = 1; 6287let isTerminator = 1; 6288let isBranch = 1; 6289let isPredicatedNew = 1; 6290let cofRelax1 = 1; 6291let cofRelax2 = 1; 6292let cofMax1 = 1; 6293let Uses = [P1]; 6294let Defs = [P1, PC]; 6295let BaseOpcode = "J4_cmpeqip1"; 6296let isTaken = Inst{13}; 6297let isExtendable = 1; 6298let opExtendable = 2; 6299let isExtentSigned = 1; 6300let opExtentBits = 11; 6301let opExtentAlign = 2; 6302} 6303def J4_cmpeqi_t_jumpnv_nt : HInst< 6304(outs), 6305(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6306"if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6307tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6308let Inst{0-0} = 0b0; 6309let Inst{13-13} = 0b0; 6310let Inst{19-19} = 0b0; 6311let Inst{31-22} = 0b0010010000; 6312let isPredicated = 1; 6313let isTerminator = 1; 6314let isBranch = 1; 6315let isNewValue = 1; 6316let cofMax1 = 1; 6317let isRestrictNoSlot1Store = 1; 6318let Defs = [PC]; 6319let BaseOpcode = "J4_cmpeqi"; 6320let isTaken = Inst{13}; 6321let isExtendable = 1; 6322let opExtendable = 2; 6323let isExtentSigned = 1; 6324let opExtentBits = 11; 6325let opExtentAlign = 2; 6326let opNewValue = 0; 6327} 6328def J4_cmpeqi_t_jumpnv_t : HInst< 6329(outs), 6330(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6331"if (cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6332tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6333let Inst{0-0} = 0b0; 6334let Inst{13-13} = 0b1; 6335let Inst{19-19} = 0b0; 6336let Inst{31-22} = 0b0010010000; 6337let isPredicated = 1; 6338let isTerminator = 1; 6339let isBranch = 1; 6340let isNewValue = 1; 6341let cofMax1 = 1; 6342let isRestrictNoSlot1Store = 1; 6343let Defs = [PC]; 6344let BaseOpcode = "J4_cmpeqi"; 6345let isTaken = Inst{13}; 6346let isExtendable = 1; 6347let opExtendable = 2; 6348let isExtentSigned = 1; 6349let opExtentBits = 11; 6350let opExtentAlign = 2; 6351let opNewValue = 0; 6352} 6353def J4_cmpeqi_tp0_jump_nt : HInst< 6354(outs), 6355(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6356"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii", 6357tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6358let Inst{0-0} = 0b0; 6359let Inst{13-13} = 0b0; 6360let Inst{31-22} = 0b0001000000; 6361let isPredicated = 1; 6362let isTerminator = 1; 6363let isBranch = 1; 6364let isPredicatedNew = 1; 6365let cofRelax1 = 1; 6366let cofRelax2 = 1; 6367let cofMax1 = 1; 6368let Uses = [P0]; 6369let Defs = [P0, PC]; 6370let BaseOpcode = "J4_cmpeqip0"; 6371let isTaken = Inst{13}; 6372let isExtendable = 1; 6373let opExtendable = 2; 6374let isExtentSigned = 1; 6375let opExtentBits = 11; 6376let opExtentAlign = 2; 6377} 6378def J4_cmpeqi_tp0_jump_t : HInst< 6379(outs), 6380(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6381"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii", 6382tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6383let Inst{0-0} = 0b0; 6384let Inst{13-13} = 0b1; 6385let Inst{31-22} = 0b0001000000; 6386let isPredicated = 1; 6387let isTerminator = 1; 6388let isBranch = 1; 6389let isPredicatedNew = 1; 6390let cofRelax1 = 1; 6391let cofRelax2 = 1; 6392let cofMax1 = 1; 6393let Uses = [P0]; 6394let Defs = [P0, PC]; 6395let BaseOpcode = "J4_cmpeqip0"; 6396let isTaken = Inst{13}; 6397let isExtendable = 1; 6398let opExtendable = 2; 6399let isExtentSigned = 1; 6400let opExtentBits = 11; 6401let opExtentAlign = 2; 6402} 6403def J4_cmpeqi_tp1_jump_nt : HInst< 6404(outs), 6405(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6406"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii", 6407tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6408let Inst{0-0} = 0b0; 6409let Inst{13-13} = 0b0; 6410let Inst{31-22} = 0b0001001000; 6411let isPredicated = 1; 6412let isTerminator = 1; 6413let isBranch = 1; 6414let isPredicatedNew = 1; 6415let cofRelax1 = 1; 6416let cofRelax2 = 1; 6417let cofMax1 = 1; 6418let Uses = [P1]; 6419let Defs = [P1, PC]; 6420let BaseOpcode = "J4_cmpeqip1"; 6421let isTaken = Inst{13}; 6422let isExtendable = 1; 6423let opExtendable = 2; 6424let isExtentSigned = 1; 6425let opExtentBits = 11; 6426let opExtentAlign = 2; 6427} 6428def J4_cmpeqi_tp1_jump_t : HInst< 6429(outs), 6430(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6431"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii", 6432tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6433let Inst{0-0} = 0b0; 6434let Inst{13-13} = 0b1; 6435let Inst{31-22} = 0b0001001000; 6436let isPredicated = 1; 6437let isTerminator = 1; 6438let isBranch = 1; 6439let isPredicatedNew = 1; 6440let cofRelax1 = 1; 6441let cofRelax2 = 1; 6442let cofMax1 = 1; 6443let Uses = [P1]; 6444let Defs = [P1, PC]; 6445let BaseOpcode = "J4_cmpeqip1"; 6446let isTaken = Inst{13}; 6447let isExtendable = 1; 6448let opExtendable = 2; 6449let isExtentSigned = 1; 6450let opExtentBits = 11; 6451let opExtentAlign = 2; 6452} 6453def J4_cmpeqn1_f_jumpnv_nt : HInst< 6454(outs), 6455(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6456"if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6457tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel { 6458let Inst{0-0} = 0b0; 6459let Inst{13-8} = 0b000000; 6460let Inst{19-19} = 0b0; 6461let Inst{31-22} = 0b0010011001; 6462let isPredicated = 1; 6463let isPredicatedFalse = 1; 6464let isTerminator = 1; 6465let isBranch = 1; 6466let isNewValue = 1; 6467let cofMax1 = 1; 6468let isRestrictNoSlot1Store = 1; 6469let Defs = [PC]; 6470let BaseOpcode = "J4_cmpeqn1r"; 6471let isTaken = Inst{13}; 6472let isExtendable = 1; 6473let opExtendable = 2; 6474let isExtentSigned = 1; 6475let opExtentBits = 11; 6476let opExtentAlign = 2; 6477let opNewValue = 0; 6478} 6479def J4_cmpeqn1_f_jumpnv_t : HInst< 6480(outs), 6481(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6482"if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6483tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel { 6484let Inst{0-0} = 0b0; 6485let Inst{13-8} = 0b100000; 6486let Inst{19-19} = 0b0; 6487let Inst{31-22} = 0b0010011001; 6488let isPredicated = 1; 6489let isPredicatedFalse = 1; 6490let isTerminator = 1; 6491let isBranch = 1; 6492let isNewValue = 1; 6493let cofMax1 = 1; 6494let isRestrictNoSlot1Store = 1; 6495let Defs = [PC]; 6496let BaseOpcode = "J4_cmpeqn1r"; 6497let isTaken = Inst{13}; 6498let isExtendable = 1; 6499let opExtendable = 2; 6500let isExtentSigned = 1; 6501let opExtentBits = 11; 6502let opExtentAlign = 2; 6503let opNewValue = 0; 6504} 6505def J4_cmpeqn1_fp0_jump_nt : HInst< 6506(outs), 6507(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6508"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 6509tc_24f426ab, TypeCJ>, Enc_1de724, PredRel { 6510let Inst{0-0} = 0b0; 6511let Inst{13-8} = 0b000000; 6512let Inst{31-22} = 0b0001000111; 6513let isPredicated = 1; 6514let isPredicatedFalse = 1; 6515let isTerminator = 1; 6516let isBranch = 1; 6517let isPredicatedNew = 1; 6518let cofRelax1 = 1; 6519let cofRelax2 = 1; 6520let cofMax1 = 1; 6521let Uses = [P0]; 6522let Defs = [P0, PC]; 6523let BaseOpcode = "J4_cmpeqn1p0"; 6524let isTaken = Inst{13}; 6525let isExtendable = 1; 6526let opExtendable = 2; 6527let isExtentSigned = 1; 6528let opExtentBits = 11; 6529let opExtentAlign = 2; 6530} 6531def J4_cmpeqn1_fp0_jump_t : HInst< 6532(outs), 6533(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6534"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii", 6535tc_24f426ab, TypeCJ>, Enc_14640c, PredRel { 6536let Inst{0-0} = 0b0; 6537let Inst{13-8} = 0b100000; 6538let Inst{31-22} = 0b0001000111; 6539let isPredicated = 1; 6540let isPredicatedFalse = 1; 6541let isTerminator = 1; 6542let isBranch = 1; 6543let isPredicatedNew = 1; 6544let cofRelax1 = 1; 6545let cofRelax2 = 1; 6546let cofMax1 = 1; 6547let Uses = [P0]; 6548let Defs = [P0, PC]; 6549let BaseOpcode = "J4_cmpeqn1p0"; 6550let isTaken = Inst{13}; 6551let isExtendable = 1; 6552let opExtendable = 2; 6553let isExtentSigned = 1; 6554let opExtentBits = 11; 6555let opExtentAlign = 2; 6556} 6557def J4_cmpeqn1_fp1_jump_nt : HInst< 6558(outs), 6559(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6560"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 6561tc_24f426ab, TypeCJ>, Enc_668704, PredRel { 6562let Inst{0-0} = 0b0; 6563let Inst{13-8} = 0b000000; 6564let Inst{31-22} = 0b0001001111; 6565let isPredicated = 1; 6566let isPredicatedFalse = 1; 6567let isTerminator = 1; 6568let isBranch = 1; 6569let isPredicatedNew = 1; 6570let cofRelax1 = 1; 6571let cofRelax2 = 1; 6572let cofMax1 = 1; 6573let Uses = [P1]; 6574let Defs = [P1, PC]; 6575let BaseOpcode = "J4_cmpeqn1p1"; 6576let isTaken = Inst{13}; 6577let isExtendable = 1; 6578let opExtendable = 2; 6579let isExtentSigned = 1; 6580let opExtentBits = 11; 6581let opExtentAlign = 2; 6582} 6583def J4_cmpeqn1_fp1_jump_t : HInst< 6584(outs), 6585(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6586"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii", 6587tc_24f426ab, TypeCJ>, Enc_800e04, PredRel { 6588let Inst{0-0} = 0b0; 6589let Inst{13-8} = 0b100000; 6590let Inst{31-22} = 0b0001001111; 6591let isPredicated = 1; 6592let isPredicatedFalse = 1; 6593let isTerminator = 1; 6594let isBranch = 1; 6595let isPredicatedNew = 1; 6596let cofRelax1 = 1; 6597let cofRelax2 = 1; 6598let cofMax1 = 1; 6599let Uses = [P1]; 6600let Defs = [P1, PC]; 6601let BaseOpcode = "J4_cmpeqn1p1"; 6602let isTaken = Inst{13}; 6603let isExtendable = 1; 6604let opExtendable = 2; 6605let isExtentSigned = 1; 6606let opExtentBits = 11; 6607let opExtentAlign = 2; 6608} 6609def J4_cmpeqn1_t_jumpnv_nt : HInst< 6610(outs), 6611(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6612"if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6613tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel { 6614let Inst{0-0} = 0b0; 6615let Inst{13-8} = 0b000000; 6616let Inst{19-19} = 0b0; 6617let Inst{31-22} = 0b0010011000; 6618let isPredicated = 1; 6619let isTerminator = 1; 6620let isBranch = 1; 6621let isNewValue = 1; 6622let cofMax1 = 1; 6623let isRestrictNoSlot1Store = 1; 6624let Defs = [PC]; 6625let BaseOpcode = "J4_cmpeqn1r"; 6626let isTaken = Inst{13}; 6627let isExtendable = 1; 6628let opExtendable = 2; 6629let isExtentSigned = 1; 6630let opExtentBits = 11; 6631let opExtentAlign = 2; 6632let opNewValue = 0; 6633} 6634def J4_cmpeqn1_t_jumpnv_t : HInst< 6635(outs), 6636(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6637"if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6638tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel { 6639let Inst{0-0} = 0b0; 6640let Inst{13-8} = 0b100000; 6641let Inst{19-19} = 0b0; 6642let Inst{31-22} = 0b0010011000; 6643let isPredicated = 1; 6644let isTerminator = 1; 6645let isBranch = 1; 6646let isNewValue = 1; 6647let cofMax1 = 1; 6648let isRestrictNoSlot1Store = 1; 6649let Defs = [PC]; 6650let BaseOpcode = "J4_cmpeqn1r"; 6651let isTaken = Inst{13}; 6652let isExtendable = 1; 6653let opExtendable = 2; 6654let isExtentSigned = 1; 6655let opExtentBits = 11; 6656let opExtentAlign = 2; 6657let opNewValue = 0; 6658} 6659def J4_cmpeqn1_tp0_jump_nt : HInst< 6660(outs), 6661(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6662"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii", 6663tc_24f426ab, TypeCJ>, Enc_405228, PredRel { 6664let Inst{0-0} = 0b0; 6665let Inst{13-8} = 0b000000; 6666let Inst{31-22} = 0b0001000110; 6667let isPredicated = 1; 6668let isTerminator = 1; 6669let isBranch = 1; 6670let isPredicatedNew = 1; 6671let cofRelax1 = 1; 6672let cofRelax2 = 1; 6673let cofMax1 = 1; 6674let Uses = [P0]; 6675let Defs = [P0, PC]; 6676let BaseOpcode = "J4_cmpeqn1p0"; 6677let isTaken = Inst{13}; 6678let isExtendable = 1; 6679let opExtendable = 2; 6680let isExtentSigned = 1; 6681let opExtentBits = 11; 6682let opExtentAlign = 2; 6683} 6684def J4_cmpeqn1_tp0_jump_t : HInst< 6685(outs), 6686(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6687"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii", 6688tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel { 6689let Inst{0-0} = 0b0; 6690let Inst{13-8} = 0b100000; 6691let Inst{31-22} = 0b0001000110; 6692let isPredicated = 1; 6693let isTerminator = 1; 6694let isBranch = 1; 6695let isPredicatedNew = 1; 6696let cofRelax1 = 1; 6697let cofRelax2 = 1; 6698let cofMax1 = 1; 6699let Uses = [P0]; 6700let Defs = [P0, PC]; 6701let BaseOpcode = "J4_cmpeqn1p0"; 6702let isTaken = Inst{13}; 6703let isExtendable = 1; 6704let opExtendable = 2; 6705let isExtentSigned = 1; 6706let opExtentBits = 11; 6707let opExtentAlign = 2; 6708} 6709def J4_cmpeqn1_tp1_jump_nt : HInst< 6710(outs), 6711(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6712"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii", 6713tc_24f426ab, TypeCJ>, Enc_736575, PredRel { 6714let Inst{0-0} = 0b0; 6715let Inst{13-8} = 0b000000; 6716let Inst{31-22} = 0b0001001110; 6717let isPredicated = 1; 6718let isTerminator = 1; 6719let isBranch = 1; 6720let isPredicatedNew = 1; 6721let cofRelax1 = 1; 6722let cofRelax2 = 1; 6723let cofMax1 = 1; 6724let Uses = [P1]; 6725let Defs = [P1, PC]; 6726let BaseOpcode = "J4_cmpeqn1p1"; 6727let isTaken = Inst{13}; 6728let isExtendable = 1; 6729let opExtendable = 2; 6730let isExtentSigned = 1; 6731let opExtentBits = 11; 6732let opExtentAlign = 2; 6733} 6734def J4_cmpeqn1_tp1_jump_t : HInst< 6735(outs), 6736(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6737"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii", 6738tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel { 6739let Inst{0-0} = 0b0; 6740let Inst{13-8} = 0b100000; 6741let Inst{31-22} = 0b0001001110; 6742let isPredicated = 1; 6743let isTerminator = 1; 6744let isBranch = 1; 6745let isPredicatedNew = 1; 6746let cofRelax1 = 1; 6747let cofRelax2 = 1; 6748let cofMax1 = 1; 6749let Uses = [P1]; 6750let Defs = [P1, PC]; 6751let BaseOpcode = "J4_cmpeqn1p1"; 6752let isTaken = Inst{13}; 6753let isExtendable = 1; 6754let opExtendable = 2; 6755let isExtentSigned = 1; 6756let opExtentBits = 11; 6757let opExtentAlign = 2; 6758} 6759def J4_cmpgt_f_jumpnv_nt : HInst< 6760(outs), 6761(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6762"if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6763tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6764let Inst{0-0} = 0b0; 6765let Inst{13-13} = 0b0; 6766let Inst{19-19} = 0b0; 6767let Inst{31-22} = 0b0010000011; 6768let isPredicated = 1; 6769let isPredicatedFalse = 1; 6770let isTerminator = 1; 6771let isBranch = 1; 6772let isNewValue = 1; 6773let cofMax1 = 1; 6774let isRestrictNoSlot1Store = 1; 6775let Defs = [PC]; 6776let BaseOpcode = "J4_cmpgtr"; 6777let isTaken = Inst{13}; 6778let isExtendable = 1; 6779let opExtendable = 2; 6780let isExtentSigned = 1; 6781let opExtentBits = 11; 6782let opExtentAlign = 2; 6783let opNewValue = 0; 6784} 6785def J4_cmpgt_f_jumpnv_t : HInst< 6786(outs), 6787(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6788"if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6789tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6790let Inst{0-0} = 0b0; 6791let Inst{13-13} = 0b1; 6792let Inst{19-19} = 0b0; 6793let Inst{31-22} = 0b0010000011; 6794let isPredicated = 1; 6795let isPredicatedFalse = 1; 6796let isTerminator = 1; 6797let isBranch = 1; 6798let isNewValue = 1; 6799let cofMax1 = 1; 6800let isRestrictNoSlot1Store = 1; 6801let Defs = [PC]; 6802let BaseOpcode = "J4_cmpgtr"; 6803let isTaken = Inst{13}; 6804let isExtendable = 1; 6805let opExtendable = 2; 6806let isExtentSigned = 1; 6807let opExtentBits = 11; 6808let opExtentAlign = 2; 6809let opNewValue = 0; 6810} 6811def J4_cmpgt_fp0_jump_nt : HInst< 6812(outs), 6813(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6814"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 6815tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6816let Inst{0-0} = 0b0; 6817let Inst{13-12} = 0b00; 6818let Inst{31-22} = 0b0001010011; 6819let isPredicated = 1; 6820let isPredicatedFalse = 1; 6821let isTerminator = 1; 6822let isBranch = 1; 6823let isPredicatedNew = 1; 6824let cofRelax1 = 1; 6825let cofRelax2 = 1; 6826let cofMax1 = 1; 6827let Uses = [P0]; 6828let Defs = [P0, PC]; 6829let BaseOpcode = "J4_cmpgtp0"; 6830let isTaken = Inst{13}; 6831let isExtendable = 1; 6832let opExtendable = 2; 6833let isExtentSigned = 1; 6834let opExtentBits = 11; 6835let opExtentAlign = 2; 6836} 6837def J4_cmpgt_fp0_jump_t : HInst< 6838(outs), 6839(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6840"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 6841tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6842let Inst{0-0} = 0b0; 6843let Inst{13-12} = 0b10; 6844let Inst{31-22} = 0b0001010011; 6845let isPredicated = 1; 6846let isPredicatedFalse = 1; 6847let isTerminator = 1; 6848let isBranch = 1; 6849let isPredicatedNew = 1; 6850let cofRelax1 = 1; 6851let cofRelax2 = 1; 6852let cofMax1 = 1; 6853let Uses = [P0]; 6854let Defs = [P0, PC]; 6855let BaseOpcode = "J4_cmpgtp0"; 6856let isTaken = Inst{13}; 6857let isExtendable = 1; 6858let opExtendable = 2; 6859let isExtentSigned = 1; 6860let opExtentBits = 11; 6861let opExtentAlign = 2; 6862} 6863def J4_cmpgt_fp1_jump_nt : HInst< 6864(outs), 6865(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6866"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 6867tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6868let Inst{0-0} = 0b0; 6869let Inst{13-12} = 0b01; 6870let Inst{31-22} = 0b0001010011; 6871let isPredicated = 1; 6872let isPredicatedFalse = 1; 6873let isTerminator = 1; 6874let isBranch = 1; 6875let isPredicatedNew = 1; 6876let cofRelax1 = 1; 6877let cofRelax2 = 1; 6878let cofMax1 = 1; 6879let Uses = [P1]; 6880let Defs = [P1, PC]; 6881let BaseOpcode = "J4_cmpgtp1"; 6882let isTaken = Inst{13}; 6883let isExtendable = 1; 6884let opExtendable = 2; 6885let isExtentSigned = 1; 6886let opExtentBits = 11; 6887let opExtentAlign = 2; 6888} 6889def J4_cmpgt_fp1_jump_t : HInst< 6890(outs), 6891(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6892"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 6893tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6894let Inst{0-0} = 0b0; 6895let Inst{13-12} = 0b11; 6896let Inst{31-22} = 0b0001010011; 6897let isPredicated = 1; 6898let isPredicatedFalse = 1; 6899let isTerminator = 1; 6900let isBranch = 1; 6901let isPredicatedNew = 1; 6902let cofRelax1 = 1; 6903let cofRelax2 = 1; 6904let cofMax1 = 1; 6905let Uses = [P1]; 6906let Defs = [P1, PC]; 6907let BaseOpcode = "J4_cmpgtp1"; 6908let isTaken = Inst{13}; 6909let isExtendable = 1; 6910let opExtendable = 2; 6911let isExtentSigned = 1; 6912let opExtentBits = 11; 6913let opExtentAlign = 2; 6914} 6915def J4_cmpgt_t_jumpnv_nt : HInst< 6916(outs), 6917(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6918"if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6919tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6920let Inst{0-0} = 0b0; 6921let Inst{13-13} = 0b0; 6922let Inst{19-19} = 0b0; 6923let Inst{31-22} = 0b0010000010; 6924let isPredicated = 1; 6925let isTerminator = 1; 6926let isBranch = 1; 6927let isNewValue = 1; 6928let cofMax1 = 1; 6929let isRestrictNoSlot1Store = 1; 6930let Defs = [PC]; 6931let BaseOpcode = "J4_cmpgtr"; 6932let isTaken = Inst{13}; 6933let isExtendable = 1; 6934let opExtendable = 2; 6935let isExtentSigned = 1; 6936let opExtentBits = 11; 6937let opExtentAlign = 2; 6938let opNewValue = 0; 6939} 6940def J4_cmpgt_t_jumpnv_t : HInst< 6941(outs), 6942(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6943"if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6944tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6945let Inst{0-0} = 0b0; 6946let Inst{13-13} = 0b1; 6947let Inst{19-19} = 0b0; 6948let Inst{31-22} = 0b0010000010; 6949let isPredicated = 1; 6950let isTerminator = 1; 6951let isBranch = 1; 6952let isNewValue = 1; 6953let cofMax1 = 1; 6954let isRestrictNoSlot1Store = 1; 6955let Defs = [PC]; 6956let BaseOpcode = "J4_cmpgtr"; 6957let isTaken = Inst{13}; 6958let isExtendable = 1; 6959let opExtendable = 2; 6960let isExtentSigned = 1; 6961let opExtentBits = 11; 6962let opExtentAlign = 2; 6963let opNewValue = 0; 6964} 6965def J4_cmpgt_tp0_jump_nt : HInst< 6966(outs), 6967(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6968"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 6969tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6970let Inst{0-0} = 0b0; 6971let Inst{13-12} = 0b00; 6972let Inst{31-22} = 0b0001010010; 6973let isPredicated = 1; 6974let isTerminator = 1; 6975let isBranch = 1; 6976let isPredicatedNew = 1; 6977let cofRelax1 = 1; 6978let cofRelax2 = 1; 6979let cofMax1 = 1; 6980let Uses = [P0]; 6981let Defs = [P0, PC]; 6982let BaseOpcode = "J4_cmpgtp0"; 6983let isTaken = Inst{13}; 6984let isExtendable = 1; 6985let opExtendable = 2; 6986let isExtentSigned = 1; 6987let opExtentBits = 11; 6988let opExtentAlign = 2; 6989} 6990def J4_cmpgt_tp0_jump_t : HInst< 6991(outs), 6992(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6993"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii", 6994tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6995let Inst{0-0} = 0b0; 6996let Inst{13-12} = 0b10; 6997let Inst{31-22} = 0b0001010010; 6998let isPredicated = 1; 6999let isTerminator = 1; 7000let isBranch = 1; 7001let isPredicatedNew = 1; 7002let cofRelax1 = 1; 7003let cofRelax2 = 1; 7004let cofMax1 = 1; 7005let Uses = [P0]; 7006let Defs = [P0, PC]; 7007let BaseOpcode = "J4_cmpgtp0"; 7008let isTaken = Inst{13}; 7009let isExtendable = 1; 7010let opExtendable = 2; 7011let isExtentSigned = 1; 7012let opExtentBits = 11; 7013let opExtentAlign = 2; 7014} 7015def J4_cmpgt_tp1_jump_nt : HInst< 7016(outs), 7017(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7018"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 7019tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7020let Inst{0-0} = 0b0; 7021let Inst{13-12} = 0b01; 7022let Inst{31-22} = 0b0001010010; 7023let isPredicated = 1; 7024let isTerminator = 1; 7025let isBranch = 1; 7026let isPredicatedNew = 1; 7027let cofRelax1 = 1; 7028let cofRelax2 = 1; 7029let cofMax1 = 1; 7030let Uses = [P1]; 7031let Defs = [P1, PC]; 7032let BaseOpcode = "J4_cmpgtp1"; 7033let isTaken = Inst{13}; 7034let isExtendable = 1; 7035let opExtendable = 2; 7036let isExtentSigned = 1; 7037let opExtentBits = 11; 7038let opExtentAlign = 2; 7039} 7040def J4_cmpgt_tp1_jump_t : HInst< 7041(outs), 7042(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7043"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii", 7044tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7045let Inst{0-0} = 0b0; 7046let Inst{13-12} = 0b11; 7047let Inst{31-22} = 0b0001010010; 7048let isPredicated = 1; 7049let isTerminator = 1; 7050let isBranch = 1; 7051let isPredicatedNew = 1; 7052let cofRelax1 = 1; 7053let cofRelax2 = 1; 7054let cofMax1 = 1; 7055let Uses = [P1]; 7056let Defs = [P1, PC]; 7057let BaseOpcode = "J4_cmpgtp1"; 7058let isTaken = Inst{13}; 7059let isExtendable = 1; 7060let opExtendable = 2; 7061let isExtentSigned = 1; 7062let opExtentBits = 11; 7063let opExtentAlign = 2; 7064} 7065def J4_cmpgti_f_jumpnv_nt : HInst< 7066(outs), 7067(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7068"if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 7069tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7070let Inst{0-0} = 0b0; 7071let Inst{13-13} = 0b0; 7072let Inst{19-19} = 0b0; 7073let Inst{31-22} = 0b0010010011; 7074let isPredicated = 1; 7075let isPredicatedFalse = 1; 7076let isTerminator = 1; 7077let isBranch = 1; 7078let isNewValue = 1; 7079let cofMax1 = 1; 7080let isRestrictNoSlot1Store = 1; 7081let Defs = [PC]; 7082let BaseOpcode = "J4_cmpgtir"; 7083let isTaken = Inst{13}; 7084let isExtendable = 1; 7085let opExtendable = 2; 7086let isExtentSigned = 1; 7087let opExtentBits = 11; 7088let opExtentAlign = 2; 7089let opNewValue = 0; 7090} 7091def J4_cmpgti_f_jumpnv_t : HInst< 7092(outs), 7093(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7094"if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii", 7095tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7096let Inst{0-0} = 0b0; 7097let Inst{13-13} = 0b1; 7098let Inst{19-19} = 0b0; 7099let Inst{31-22} = 0b0010010011; 7100let isPredicated = 1; 7101let isPredicatedFalse = 1; 7102let isTerminator = 1; 7103let isBranch = 1; 7104let isNewValue = 1; 7105let cofMax1 = 1; 7106let isRestrictNoSlot1Store = 1; 7107let Defs = [PC]; 7108let BaseOpcode = "J4_cmpgtir"; 7109let isTaken = Inst{13}; 7110let isExtendable = 1; 7111let opExtendable = 2; 7112let isExtentSigned = 1; 7113let opExtentBits = 11; 7114let opExtentAlign = 2; 7115let opNewValue = 0; 7116} 7117def J4_cmpgti_fp0_jump_nt : HInst< 7118(outs), 7119(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7120"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii", 7121tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7122let Inst{0-0} = 0b0; 7123let Inst{13-13} = 0b0; 7124let Inst{31-22} = 0b0001000011; 7125let isPredicated = 1; 7126let isPredicatedFalse = 1; 7127let isTerminator = 1; 7128let isBranch = 1; 7129let isPredicatedNew = 1; 7130let cofRelax1 = 1; 7131let cofRelax2 = 1; 7132let cofMax1 = 1; 7133let Uses = [P0]; 7134let Defs = [P0, PC]; 7135let BaseOpcode = "J4_cmpgtip0"; 7136let isTaken = Inst{13}; 7137let isExtendable = 1; 7138let opExtendable = 2; 7139let isExtentSigned = 1; 7140let opExtentBits = 11; 7141let opExtentAlign = 2; 7142} 7143def J4_cmpgti_fp0_jump_t : HInst< 7144(outs), 7145(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7146"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii", 7147tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7148let Inst{0-0} = 0b0; 7149let Inst{13-13} = 0b1; 7150let Inst{31-22} = 0b0001000011; 7151let isPredicated = 1; 7152let isPredicatedFalse = 1; 7153let isTerminator = 1; 7154let isBranch = 1; 7155let isPredicatedNew = 1; 7156let cofRelax1 = 1; 7157let cofRelax2 = 1; 7158let cofMax1 = 1; 7159let Uses = [P0]; 7160let Defs = [P0, PC]; 7161let BaseOpcode = "J4_cmpgtip0"; 7162let isTaken = Inst{13}; 7163let isExtendable = 1; 7164let opExtendable = 2; 7165let isExtentSigned = 1; 7166let opExtentBits = 11; 7167let opExtentAlign = 2; 7168} 7169def J4_cmpgti_fp1_jump_nt : HInst< 7170(outs), 7171(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7172"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii", 7173tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7174let Inst{0-0} = 0b0; 7175let Inst{13-13} = 0b0; 7176let Inst{31-22} = 0b0001001011; 7177let isPredicated = 1; 7178let isPredicatedFalse = 1; 7179let isTerminator = 1; 7180let isBranch = 1; 7181let isPredicatedNew = 1; 7182let cofRelax1 = 1; 7183let cofRelax2 = 1; 7184let cofMax1 = 1; 7185let Uses = [P1]; 7186let Defs = [P1, PC]; 7187let BaseOpcode = "J4_cmpgtip1"; 7188let isTaken = Inst{13}; 7189let isExtendable = 1; 7190let opExtendable = 2; 7191let isExtentSigned = 1; 7192let opExtentBits = 11; 7193let opExtentAlign = 2; 7194} 7195def J4_cmpgti_fp1_jump_t : HInst< 7196(outs), 7197(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7198"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii", 7199tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7200let Inst{0-0} = 0b0; 7201let Inst{13-13} = 0b1; 7202let Inst{31-22} = 0b0001001011; 7203let isPredicated = 1; 7204let isPredicatedFalse = 1; 7205let isTerminator = 1; 7206let isBranch = 1; 7207let isPredicatedNew = 1; 7208let cofRelax1 = 1; 7209let cofRelax2 = 1; 7210let cofMax1 = 1; 7211let Uses = [P1]; 7212let Defs = [P1, PC]; 7213let BaseOpcode = "J4_cmpgtip1"; 7214let isTaken = Inst{13}; 7215let isExtendable = 1; 7216let opExtendable = 2; 7217let isExtentSigned = 1; 7218let opExtentBits = 11; 7219let opExtentAlign = 2; 7220} 7221def J4_cmpgti_t_jumpnv_nt : HInst< 7222(outs), 7223(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7224"if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 7225tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7226let Inst{0-0} = 0b0; 7227let Inst{13-13} = 0b0; 7228let Inst{19-19} = 0b0; 7229let Inst{31-22} = 0b0010010010; 7230let isPredicated = 1; 7231let isTerminator = 1; 7232let isBranch = 1; 7233let isNewValue = 1; 7234let cofMax1 = 1; 7235let isRestrictNoSlot1Store = 1; 7236let Defs = [PC]; 7237let BaseOpcode = "J4_cmpgtir"; 7238let isTaken = Inst{13}; 7239let isExtendable = 1; 7240let opExtendable = 2; 7241let isExtentSigned = 1; 7242let opExtentBits = 11; 7243let opExtentAlign = 2; 7244let opNewValue = 0; 7245} 7246def J4_cmpgti_t_jumpnv_t : HInst< 7247(outs), 7248(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7249"if (cmp.gt($Ns8.new,#$II)) jump:t $Ii", 7250tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7251let Inst{0-0} = 0b0; 7252let Inst{13-13} = 0b1; 7253let Inst{19-19} = 0b0; 7254let Inst{31-22} = 0b0010010010; 7255let isPredicated = 1; 7256let isTerminator = 1; 7257let isBranch = 1; 7258let isNewValue = 1; 7259let cofMax1 = 1; 7260let isRestrictNoSlot1Store = 1; 7261let Defs = [PC]; 7262let BaseOpcode = "J4_cmpgtir"; 7263let isTaken = Inst{13}; 7264let isExtendable = 1; 7265let opExtendable = 2; 7266let isExtentSigned = 1; 7267let opExtentBits = 11; 7268let opExtentAlign = 2; 7269let opNewValue = 0; 7270} 7271def J4_cmpgti_tp0_jump_nt : HInst< 7272(outs), 7273(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7274"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii", 7275tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7276let Inst{0-0} = 0b0; 7277let Inst{13-13} = 0b0; 7278let Inst{31-22} = 0b0001000010; 7279let isPredicated = 1; 7280let isTerminator = 1; 7281let isBranch = 1; 7282let isPredicatedNew = 1; 7283let cofRelax1 = 1; 7284let cofRelax2 = 1; 7285let cofMax1 = 1; 7286let Uses = [P0]; 7287let Defs = [P0, PC]; 7288let BaseOpcode = "J4_cmpgtip0"; 7289let isTaken = Inst{13}; 7290let isExtendable = 1; 7291let opExtendable = 2; 7292let isExtentSigned = 1; 7293let opExtentBits = 11; 7294let opExtentAlign = 2; 7295} 7296def J4_cmpgti_tp0_jump_t : HInst< 7297(outs), 7298(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7299"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii", 7300tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7301let Inst{0-0} = 0b0; 7302let Inst{13-13} = 0b1; 7303let Inst{31-22} = 0b0001000010; 7304let isPredicated = 1; 7305let isTerminator = 1; 7306let isBranch = 1; 7307let isPredicatedNew = 1; 7308let cofRelax1 = 1; 7309let cofRelax2 = 1; 7310let cofMax1 = 1; 7311let Uses = [P0]; 7312let Defs = [P0, PC]; 7313let BaseOpcode = "J4_cmpgtip0"; 7314let isTaken = Inst{13}; 7315let isExtendable = 1; 7316let opExtendable = 2; 7317let isExtentSigned = 1; 7318let opExtentBits = 11; 7319let opExtentAlign = 2; 7320} 7321def J4_cmpgti_tp1_jump_nt : HInst< 7322(outs), 7323(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7324"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii", 7325tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7326let Inst{0-0} = 0b0; 7327let Inst{13-13} = 0b0; 7328let Inst{31-22} = 0b0001001010; 7329let isPredicated = 1; 7330let isTerminator = 1; 7331let isBranch = 1; 7332let isPredicatedNew = 1; 7333let cofRelax1 = 1; 7334let cofRelax2 = 1; 7335let cofMax1 = 1; 7336let Uses = [P1]; 7337let Defs = [P1, PC]; 7338let BaseOpcode = "J4_cmpgtip1"; 7339let isTaken = Inst{13}; 7340let isExtendable = 1; 7341let opExtendable = 2; 7342let isExtentSigned = 1; 7343let opExtentBits = 11; 7344let opExtentAlign = 2; 7345} 7346def J4_cmpgti_tp1_jump_t : HInst< 7347(outs), 7348(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7349"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii", 7350tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7351let Inst{0-0} = 0b0; 7352let Inst{13-13} = 0b1; 7353let Inst{31-22} = 0b0001001010; 7354let isPredicated = 1; 7355let isTerminator = 1; 7356let isBranch = 1; 7357let isPredicatedNew = 1; 7358let cofRelax1 = 1; 7359let cofRelax2 = 1; 7360let cofMax1 = 1; 7361let Uses = [P1]; 7362let Defs = [P1, PC]; 7363let BaseOpcode = "J4_cmpgtip1"; 7364let isTaken = Inst{13}; 7365let isExtendable = 1; 7366let opExtendable = 2; 7367let isExtentSigned = 1; 7368let opExtentBits = 11; 7369let opExtentAlign = 2; 7370} 7371def J4_cmpgtn1_f_jumpnv_nt : HInst< 7372(outs), 7373(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7374"if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7375tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel { 7376let Inst{0-0} = 0b0; 7377let Inst{13-8} = 0b000000; 7378let Inst{19-19} = 0b0; 7379let Inst{31-22} = 0b0010011011; 7380let isPredicated = 1; 7381let isPredicatedFalse = 1; 7382let isTerminator = 1; 7383let isBranch = 1; 7384let isNewValue = 1; 7385let cofMax1 = 1; 7386let isRestrictNoSlot1Store = 1; 7387let Defs = [PC]; 7388let BaseOpcode = "J4_cmpgtn1r"; 7389let isTaken = Inst{13}; 7390let isExtendable = 1; 7391let opExtendable = 2; 7392let isExtentSigned = 1; 7393let opExtentBits = 11; 7394let opExtentAlign = 2; 7395let opNewValue = 0; 7396} 7397def J4_cmpgtn1_f_jumpnv_t : HInst< 7398(outs), 7399(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7400"if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7401tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel { 7402let Inst{0-0} = 0b0; 7403let Inst{13-8} = 0b100000; 7404let Inst{19-19} = 0b0; 7405let Inst{31-22} = 0b0010011011; 7406let isPredicated = 1; 7407let isPredicatedFalse = 1; 7408let isTerminator = 1; 7409let isBranch = 1; 7410let isNewValue = 1; 7411let cofMax1 = 1; 7412let isRestrictNoSlot1Store = 1; 7413let Defs = [PC]; 7414let BaseOpcode = "J4_cmpgtn1r"; 7415let isTaken = Inst{13}; 7416let isExtendable = 1; 7417let opExtendable = 2; 7418let isExtentSigned = 1; 7419let opExtentBits = 11; 7420let opExtentAlign = 2; 7421let opNewValue = 0; 7422} 7423def J4_cmpgtn1_fp0_jump_nt : HInst< 7424(outs), 7425(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7426"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 7427tc_24f426ab, TypeCJ>, Enc_a42857, PredRel { 7428let Inst{0-0} = 0b0; 7429let Inst{13-8} = 0b000001; 7430let Inst{31-22} = 0b0001000111; 7431let isPredicated = 1; 7432let isPredicatedFalse = 1; 7433let isTerminator = 1; 7434let isBranch = 1; 7435let isPredicatedNew = 1; 7436let cofRelax1 = 1; 7437let cofRelax2 = 1; 7438let cofMax1 = 1; 7439let Uses = [P0]; 7440let Defs = [P0, PC]; 7441let BaseOpcode = "J4_cmpgtn1p0"; 7442let isTaken = Inst{13}; 7443let isExtendable = 1; 7444let opExtendable = 2; 7445let isExtentSigned = 1; 7446let opExtentBits = 11; 7447let opExtentAlign = 2; 7448} 7449def J4_cmpgtn1_fp0_jump_t : HInst< 7450(outs), 7451(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7452"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii", 7453tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel { 7454let Inst{0-0} = 0b0; 7455let Inst{13-8} = 0b100001; 7456let Inst{31-22} = 0b0001000111; 7457let isPredicated = 1; 7458let isPredicatedFalse = 1; 7459let isTerminator = 1; 7460let isBranch = 1; 7461let isPredicatedNew = 1; 7462let cofRelax1 = 1; 7463let cofRelax2 = 1; 7464let cofMax1 = 1; 7465let Uses = [P0]; 7466let Defs = [P0, PC]; 7467let BaseOpcode = "J4_cmpgtn1p0"; 7468let isTaken = Inst{13}; 7469let isExtendable = 1; 7470let opExtendable = 2; 7471let isExtentSigned = 1; 7472let opExtentBits = 11; 7473let opExtentAlign = 2; 7474} 7475def J4_cmpgtn1_fp1_jump_nt : HInst< 7476(outs), 7477(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7478"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 7479tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel { 7480let Inst{0-0} = 0b0; 7481let Inst{13-8} = 0b000001; 7482let Inst{31-22} = 0b0001001111; 7483let isPredicated = 1; 7484let isPredicatedFalse = 1; 7485let isTerminator = 1; 7486let isBranch = 1; 7487let isPredicatedNew = 1; 7488let cofRelax1 = 1; 7489let cofRelax2 = 1; 7490let cofMax1 = 1; 7491let Uses = [P1]; 7492let Defs = [P1, PC]; 7493let BaseOpcode = "J4_cmpgtn1p1"; 7494let isTaken = Inst{13}; 7495let isExtendable = 1; 7496let opExtendable = 2; 7497let isExtentSigned = 1; 7498let opExtentBits = 11; 7499let opExtentAlign = 2; 7500} 7501def J4_cmpgtn1_fp1_jump_t : HInst< 7502(outs), 7503(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7504"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii", 7505tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel { 7506let Inst{0-0} = 0b0; 7507let Inst{13-8} = 0b100001; 7508let Inst{31-22} = 0b0001001111; 7509let isPredicated = 1; 7510let isPredicatedFalse = 1; 7511let isTerminator = 1; 7512let isBranch = 1; 7513let isPredicatedNew = 1; 7514let cofRelax1 = 1; 7515let cofRelax2 = 1; 7516let cofMax1 = 1; 7517let Uses = [P1]; 7518let Defs = [P1, PC]; 7519let BaseOpcode = "J4_cmpgtn1p1"; 7520let isTaken = Inst{13}; 7521let isExtendable = 1; 7522let opExtendable = 2; 7523let isExtentSigned = 1; 7524let opExtentBits = 11; 7525let opExtentAlign = 2; 7526} 7527def J4_cmpgtn1_t_jumpnv_nt : HInst< 7528(outs), 7529(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7530"if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7531tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel { 7532let Inst{0-0} = 0b0; 7533let Inst{13-8} = 0b000000; 7534let Inst{19-19} = 0b0; 7535let Inst{31-22} = 0b0010011010; 7536let isPredicated = 1; 7537let isTerminator = 1; 7538let isBranch = 1; 7539let isNewValue = 1; 7540let cofMax1 = 1; 7541let isRestrictNoSlot1Store = 1; 7542let Defs = [PC]; 7543let BaseOpcode = "J4_cmpgtn1r"; 7544let isTaken = Inst{13}; 7545let isExtendable = 1; 7546let opExtendable = 2; 7547let isExtentSigned = 1; 7548let opExtentBits = 11; 7549let opExtentAlign = 2; 7550let opNewValue = 0; 7551} 7552def J4_cmpgtn1_t_jumpnv_t : HInst< 7553(outs), 7554(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7555"if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7556tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel { 7557let Inst{0-0} = 0b0; 7558let Inst{13-8} = 0b100000; 7559let Inst{19-19} = 0b0; 7560let Inst{31-22} = 0b0010011010; 7561let isPredicated = 1; 7562let isTerminator = 1; 7563let isBranch = 1; 7564let isNewValue = 1; 7565let cofMax1 = 1; 7566let isRestrictNoSlot1Store = 1; 7567let Defs = [PC]; 7568let BaseOpcode = "J4_cmpgtn1r"; 7569let isTaken = Inst{13}; 7570let isExtendable = 1; 7571let opExtendable = 2; 7572let isExtentSigned = 1; 7573let opExtentBits = 11; 7574let opExtentAlign = 2; 7575let opNewValue = 0; 7576} 7577def J4_cmpgtn1_tp0_jump_nt : HInst< 7578(outs), 7579(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7580"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii", 7581tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel { 7582let Inst{0-0} = 0b0; 7583let Inst{13-8} = 0b000001; 7584let Inst{31-22} = 0b0001000110; 7585let isPredicated = 1; 7586let isTerminator = 1; 7587let isBranch = 1; 7588let isPredicatedNew = 1; 7589let cofRelax1 = 1; 7590let cofRelax2 = 1; 7591let cofMax1 = 1; 7592let Uses = [P0]; 7593let Defs = [P0, PC]; 7594let BaseOpcode = "J4_cmpgtn1p0"; 7595let isTaken = Inst{13}; 7596let isExtendable = 1; 7597let opExtendable = 2; 7598let isExtentSigned = 1; 7599let opExtentBits = 11; 7600let opExtentAlign = 2; 7601} 7602def J4_cmpgtn1_tp0_jump_t : HInst< 7603(outs), 7604(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7605"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii", 7606tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel { 7607let Inst{0-0} = 0b0; 7608let Inst{13-8} = 0b100001; 7609let Inst{31-22} = 0b0001000110; 7610let isPredicated = 1; 7611let isTerminator = 1; 7612let isBranch = 1; 7613let isPredicatedNew = 1; 7614let cofRelax1 = 1; 7615let cofRelax2 = 1; 7616let cofMax1 = 1; 7617let Uses = [P0]; 7618let Defs = [P0, PC]; 7619let BaseOpcode = "J4_cmpgtn1p0"; 7620let isTaken = Inst{13}; 7621let isExtendable = 1; 7622let opExtendable = 2; 7623let isExtentSigned = 1; 7624let opExtentBits = 11; 7625let opExtentAlign = 2; 7626} 7627def J4_cmpgtn1_tp1_jump_nt : HInst< 7628(outs), 7629(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7630"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii", 7631tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel { 7632let Inst{0-0} = 0b0; 7633let Inst{13-8} = 0b000001; 7634let Inst{31-22} = 0b0001001110; 7635let isPredicated = 1; 7636let isTerminator = 1; 7637let isBranch = 1; 7638let isPredicatedNew = 1; 7639let cofRelax1 = 1; 7640let cofRelax2 = 1; 7641let cofMax1 = 1; 7642let Uses = [P1]; 7643let Defs = [P1, PC]; 7644let BaseOpcode = "J4_cmpgtn1p1"; 7645let isTaken = Inst{13}; 7646let isExtendable = 1; 7647let opExtendable = 2; 7648let isExtentSigned = 1; 7649let opExtentBits = 11; 7650let opExtentAlign = 2; 7651} 7652def J4_cmpgtn1_tp1_jump_t : HInst< 7653(outs), 7654(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7655"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii", 7656tc_24f426ab, TypeCJ>, Enc_178717, PredRel { 7657let Inst{0-0} = 0b0; 7658let Inst{13-8} = 0b100001; 7659let Inst{31-22} = 0b0001001110; 7660let isPredicated = 1; 7661let isTerminator = 1; 7662let isBranch = 1; 7663let isPredicatedNew = 1; 7664let cofRelax1 = 1; 7665let cofRelax2 = 1; 7666let cofMax1 = 1; 7667let Uses = [P1]; 7668let Defs = [P1, PC]; 7669let BaseOpcode = "J4_cmpgtn1p1"; 7670let isTaken = Inst{13}; 7671let isExtendable = 1; 7672let opExtendable = 2; 7673let isExtentSigned = 1; 7674let opExtentBits = 11; 7675let opExtentAlign = 2; 7676} 7677def J4_cmpgtu_f_jumpnv_nt : HInst< 7678(outs), 7679(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7680"if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7681tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7682let Inst{0-0} = 0b0; 7683let Inst{13-13} = 0b0; 7684let Inst{19-19} = 0b0; 7685let Inst{31-22} = 0b0010000101; 7686let isPredicated = 1; 7687let isPredicatedFalse = 1; 7688let isTerminator = 1; 7689let isBranch = 1; 7690let isNewValue = 1; 7691let cofMax1 = 1; 7692let isRestrictNoSlot1Store = 1; 7693let Defs = [PC]; 7694let BaseOpcode = "J4_cmpgtur"; 7695let isTaken = Inst{13}; 7696let isExtendable = 1; 7697let opExtendable = 2; 7698let isExtentSigned = 1; 7699let opExtentBits = 11; 7700let opExtentAlign = 2; 7701let opNewValue = 0; 7702} 7703def J4_cmpgtu_f_jumpnv_t : HInst< 7704(outs), 7705(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7706"if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7707tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7708let Inst{0-0} = 0b0; 7709let Inst{13-13} = 0b1; 7710let Inst{19-19} = 0b0; 7711let Inst{31-22} = 0b0010000101; 7712let isPredicated = 1; 7713let isPredicatedFalse = 1; 7714let isTerminator = 1; 7715let isBranch = 1; 7716let isNewValue = 1; 7717let cofMax1 = 1; 7718let isRestrictNoSlot1Store = 1; 7719let Defs = [PC]; 7720let BaseOpcode = "J4_cmpgtur"; 7721let isTaken = Inst{13}; 7722let isExtendable = 1; 7723let opExtendable = 2; 7724let isExtentSigned = 1; 7725let opExtentBits = 11; 7726let opExtentAlign = 2; 7727let opNewValue = 0; 7728} 7729def J4_cmpgtu_fp0_jump_nt : HInst< 7730(outs), 7731(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7732"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 7733tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7734let Inst{0-0} = 0b0; 7735let Inst{13-12} = 0b00; 7736let Inst{31-22} = 0b0001010101; 7737let isPredicated = 1; 7738let isPredicatedFalse = 1; 7739let isTerminator = 1; 7740let isBranch = 1; 7741let isPredicatedNew = 1; 7742let cofRelax1 = 1; 7743let cofRelax2 = 1; 7744let cofMax1 = 1; 7745let Uses = [P0]; 7746let Defs = [P0, PC]; 7747let BaseOpcode = "J4_cmpgtup0"; 7748let isTaken = Inst{13}; 7749let isExtendable = 1; 7750let opExtendable = 2; 7751let isExtentSigned = 1; 7752let opExtentBits = 11; 7753let opExtentAlign = 2; 7754} 7755def J4_cmpgtu_fp0_jump_t : HInst< 7756(outs), 7757(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7758"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 7759tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7760let Inst{0-0} = 0b0; 7761let Inst{13-12} = 0b10; 7762let Inst{31-22} = 0b0001010101; 7763let isPredicated = 1; 7764let isPredicatedFalse = 1; 7765let isTerminator = 1; 7766let isBranch = 1; 7767let isPredicatedNew = 1; 7768let cofRelax1 = 1; 7769let cofRelax2 = 1; 7770let cofMax1 = 1; 7771let Uses = [P0]; 7772let Defs = [P0, PC]; 7773let BaseOpcode = "J4_cmpgtup0"; 7774let isTaken = Inst{13}; 7775let isExtendable = 1; 7776let opExtendable = 2; 7777let isExtentSigned = 1; 7778let opExtentBits = 11; 7779let opExtentAlign = 2; 7780} 7781def J4_cmpgtu_fp1_jump_nt : HInst< 7782(outs), 7783(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7784"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 7785tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7786let Inst{0-0} = 0b0; 7787let Inst{13-12} = 0b01; 7788let Inst{31-22} = 0b0001010101; 7789let isPredicated = 1; 7790let isPredicatedFalse = 1; 7791let isTerminator = 1; 7792let isBranch = 1; 7793let isPredicatedNew = 1; 7794let cofRelax1 = 1; 7795let cofRelax2 = 1; 7796let cofMax1 = 1; 7797let Uses = [P1]; 7798let Defs = [P1, PC]; 7799let BaseOpcode = "J4_cmpgtup1"; 7800let isTaken = Inst{13}; 7801let isExtendable = 1; 7802let opExtendable = 2; 7803let isExtentSigned = 1; 7804let opExtentBits = 11; 7805let opExtentAlign = 2; 7806} 7807def J4_cmpgtu_fp1_jump_t : HInst< 7808(outs), 7809(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7810"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 7811tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7812let Inst{0-0} = 0b0; 7813let Inst{13-12} = 0b11; 7814let Inst{31-22} = 0b0001010101; 7815let isPredicated = 1; 7816let isPredicatedFalse = 1; 7817let isTerminator = 1; 7818let isBranch = 1; 7819let isPredicatedNew = 1; 7820let cofRelax1 = 1; 7821let cofRelax2 = 1; 7822let cofMax1 = 1; 7823let Uses = [P1]; 7824let Defs = [P1, PC]; 7825let BaseOpcode = "J4_cmpgtup1"; 7826let isTaken = Inst{13}; 7827let isExtendable = 1; 7828let opExtendable = 2; 7829let isExtentSigned = 1; 7830let opExtentBits = 11; 7831let opExtentAlign = 2; 7832} 7833def J4_cmpgtu_t_jumpnv_nt : HInst< 7834(outs), 7835(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7836"if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7837tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7838let Inst{0-0} = 0b0; 7839let Inst{13-13} = 0b0; 7840let Inst{19-19} = 0b0; 7841let Inst{31-22} = 0b0010000100; 7842let isPredicated = 1; 7843let isTerminator = 1; 7844let isBranch = 1; 7845let isNewValue = 1; 7846let cofMax1 = 1; 7847let isRestrictNoSlot1Store = 1; 7848let Defs = [PC]; 7849let BaseOpcode = "J4_cmpgtur"; 7850let isTaken = Inst{13}; 7851let isExtendable = 1; 7852let opExtendable = 2; 7853let isExtentSigned = 1; 7854let opExtentBits = 11; 7855let opExtentAlign = 2; 7856let opNewValue = 0; 7857} 7858def J4_cmpgtu_t_jumpnv_t : HInst< 7859(outs), 7860(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7861"if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7862tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7863let Inst{0-0} = 0b0; 7864let Inst{13-13} = 0b1; 7865let Inst{19-19} = 0b0; 7866let Inst{31-22} = 0b0010000100; 7867let isPredicated = 1; 7868let isTerminator = 1; 7869let isBranch = 1; 7870let isNewValue = 1; 7871let cofMax1 = 1; 7872let isRestrictNoSlot1Store = 1; 7873let Defs = [PC]; 7874let BaseOpcode = "J4_cmpgtur"; 7875let isTaken = Inst{13}; 7876let isExtendable = 1; 7877let opExtendable = 2; 7878let isExtentSigned = 1; 7879let opExtentBits = 11; 7880let opExtentAlign = 2; 7881let opNewValue = 0; 7882} 7883def J4_cmpgtu_tp0_jump_nt : HInst< 7884(outs), 7885(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7886"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 7887tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7888let Inst{0-0} = 0b0; 7889let Inst{13-12} = 0b00; 7890let Inst{31-22} = 0b0001010100; 7891let isPredicated = 1; 7892let isTerminator = 1; 7893let isBranch = 1; 7894let isPredicatedNew = 1; 7895let cofRelax1 = 1; 7896let cofRelax2 = 1; 7897let cofMax1 = 1; 7898let Uses = [P0]; 7899let Defs = [P0, PC]; 7900let BaseOpcode = "J4_cmpgtup0"; 7901let isTaken = Inst{13}; 7902let isExtendable = 1; 7903let opExtendable = 2; 7904let isExtentSigned = 1; 7905let opExtentBits = 11; 7906let opExtentAlign = 2; 7907} 7908def J4_cmpgtu_tp0_jump_t : HInst< 7909(outs), 7910(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7911"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii", 7912tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7913let Inst{0-0} = 0b0; 7914let Inst{13-12} = 0b10; 7915let Inst{31-22} = 0b0001010100; 7916let isPredicated = 1; 7917let isTerminator = 1; 7918let isBranch = 1; 7919let isPredicatedNew = 1; 7920let cofRelax1 = 1; 7921let cofRelax2 = 1; 7922let cofMax1 = 1; 7923let Uses = [P0]; 7924let Defs = [P0, PC]; 7925let BaseOpcode = "J4_cmpgtup0"; 7926let isTaken = Inst{13}; 7927let isExtendable = 1; 7928let opExtendable = 2; 7929let isExtentSigned = 1; 7930let opExtentBits = 11; 7931let opExtentAlign = 2; 7932} 7933def J4_cmpgtu_tp1_jump_nt : HInst< 7934(outs), 7935(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7936"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 7937tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7938let Inst{0-0} = 0b0; 7939let Inst{13-12} = 0b01; 7940let Inst{31-22} = 0b0001010100; 7941let isPredicated = 1; 7942let isTerminator = 1; 7943let isBranch = 1; 7944let isPredicatedNew = 1; 7945let cofRelax1 = 1; 7946let cofRelax2 = 1; 7947let cofMax1 = 1; 7948let Uses = [P1]; 7949let Defs = [P1, PC]; 7950let BaseOpcode = "J4_cmpgtup1"; 7951let isTaken = Inst{13}; 7952let isExtendable = 1; 7953let opExtendable = 2; 7954let isExtentSigned = 1; 7955let opExtentBits = 11; 7956let opExtentAlign = 2; 7957} 7958def J4_cmpgtu_tp1_jump_t : HInst< 7959(outs), 7960(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7961"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii", 7962tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7963let Inst{0-0} = 0b0; 7964let Inst{13-12} = 0b11; 7965let Inst{31-22} = 0b0001010100; 7966let isPredicated = 1; 7967let isTerminator = 1; 7968let isBranch = 1; 7969let isPredicatedNew = 1; 7970let cofRelax1 = 1; 7971let cofRelax2 = 1; 7972let cofMax1 = 1; 7973let Uses = [P1]; 7974let Defs = [P1, PC]; 7975let BaseOpcode = "J4_cmpgtup1"; 7976let isTaken = Inst{13}; 7977let isExtendable = 1; 7978let opExtendable = 2; 7979let isExtentSigned = 1; 7980let opExtentBits = 11; 7981let opExtentAlign = 2; 7982} 7983def J4_cmpgtui_f_jumpnv_nt : HInst< 7984(outs), 7985(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7986"if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 7987tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7988let Inst{0-0} = 0b0; 7989let Inst{13-13} = 0b0; 7990let Inst{19-19} = 0b0; 7991let Inst{31-22} = 0b0010010101; 7992let isPredicated = 1; 7993let isPredicatedFalse = 1; 7994let isTerminator = 1; 7995let isBranch = 1; 7996let isNewValue = 1; 7997let cofMax1 = 1; 7998let isRestrictNoSlot1Store = 1; 7999let Defs = [PC]; 8000let BaseOpcode = "J4_cmpgtuir"; 8001let isTaken = Inst{13}; 8002let isExtendable = 1; 8003let opExtendable = 2; 8004let isExtentSigned = 1; 8005let opExtentBits = 11; 8006let opExtentAlign = 2; 8007let opNewValue = 0; 8008} 8009def J4_cmpgtui_f_jumpnv_t : HInst< 8010(outs), 8011(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8012"if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 8013tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8014let Inst{0-0} = 0b0; 8015let Inst{13-13} = 0b1; 8016let Inst{19-19} = 0b0; 8017let Inst{31-22} = 0b0010010101; 8018let isPredicated = 1; 8019let isPredicatedFalse = 1; 8020let isTerminator = 1; 8021let isBranch = 1; 8022let isNewValue = 1; 8023let cofMax1 = 1; 8024let isRestrictNoSlot1Store = 1; 8025let Defs = [PC]; 8026let BaseOpcode = "J4_cmpgtuir"; 8027let isTaken = Inst{13}; 8028let isExtendable = 1; 8029let opExtendable = 2; 8030let isExtentSigned = 1; 8031let opExtentBits = 11; 8032let opExtentAlign = 2; 8033let opNewValue = 0; 8034} 8035def J4_cmpgtui_fp0_jump_nt : HInst< 8036(outs), 8037(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8038"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii", 8039tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8040let Inst{0-0} = 0b0; 8041let Inst{13-13} = 0b0; 8042let Inst{31-22} = 0b0001000101; 8043let isPredicated = 1; 8044let isPredicatedFalse = 1; 8045let isTerminator = 1; 8046let isBranch = 1; 8047let isPredicatedNew = 1; 8048let cofRelax1 = 1; 8049let cofRelax2 = 1; 8050let cofMax1 = 1; 8051let Uses = [P0]; 8052let Defs = [P0, PC]; 8053let BaseOpcode = "J4_cmpgtuip0"; 8054let isTaken = Inst{13}; 8055let isExtendable = 1; 8056let opExtendable = 2; 8057let isExtentSigned = 1; 8058let opExtentBits = 11; 8059let opExtentAlign = 2; 8060} 8061def J4_cmpgtui_fp0_jump_t : HInst< 8062(outs), 8063(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8064"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii", 8065tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8066let Inst{0-0} = 0b0; 8067let Inst{13-13} = 0b1; 8068let Inst{31-22} = 0b0001000101; 8069let isPredicated = 1; 8070let isPredicatedFalse = 1; 8071let isTerminator = 1; 8072let isBranch = 1; 8073let isPredicatedNew = 1; 8074let cofRelax1 = 1; 8075let cofRelax2 = 1; 8076let cofMax1 = 1; 8077let Uses = [P0]; 8078let Defs = [P0, PC]; 8079let BaseOpcode = "J4_cmpgtuip0"; 8080let isTaken = Inst{13}; 8081let isExtendable = 1; 8082let opExtendable = 2; 8083let isExtentSigned = 1; 8084let opExtentBits = 11; 8085let opExtentAlign = 2; 8086} 8087def J4_cmpgtui_fp1_jump_nt : HInst< 8088(outs), 8089(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8090"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii", 8091tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8092let Inst{0-0} = 0b0; 8093let Inst{13-13} = 0b0; 8094let Inst{31-22} = 0b0001001101; 8095let isPredicated = 1; 8096let isPredicatedFalse = 1; 8097let isTerminator = 1; 8098let isBranch = 1; 8099let isPredicatedNew = 1; 8100let cofRelax1 = 1; 8101let cofRelax2 = 1; 8102let cofMax1 = 1; 8103let Uses = [P1]; 8104let Defs = [P1, PC]; 8105let BaseOpcode = "J4_cmpgtuip1"; 8106let isTaken = Inst{13}; 8107let isExtendable = 1; 8108let opExtendable = 2; 8109let isExtentSigned = 1; 8110let opExtentBits = 11; 8111let opExtentAlign = 2; 8112} 8113def J4_cmpgtui_fp1_jump_t : HInst< 8114(outs), 8115(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8116"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii", 8117tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8118let Inst{0-0} = 0b0; 8119let Inst{13-13} = 0b1; 8120let Inst{31-22} = 0b0001001101; 8121let isPredicated = 1; 8122let isPredicatedFalse = 1; 8123let isTerminator = 1; 8124let isBranch = 1; 8125let isPredicatedNew = 1; 8126let cofRelax1 = 1; 8127let cofRelax2 = 1; 8128let cofMax1 = 1; 8129let Uses = [P1]; 8130let Defs = [P1, PC]; 8131let BaseOpcode = "J4_cmpgtuip1"; 8132let isTaken = Inst{13}; 8133let isExtendable = 1; 8134let opExtendable = 2; 8135let isExtentSigned = 1; 8136let opExtentBits = 11; 8137let opExtentAlign = 2; 8138} 8139def J4_cmpgtui_t_jumpnv_nt : HInst< 8140(outs), 8141(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8142"if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 8143tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8144let Inst{0-0} = 0b0; 8145let Inst{13-13} = 0b0; 8146let Inst{19-19} = 0b0; 8147let Inst{31-22} = 0b0010010100; 8148let isPredicated = 1; 8149let isTerminator = 1; 8150let isBranch = 1; 8151let isNewValue = 1; 8152let cofMax1 = 1; 8153let isRestrictNoSlot1Store = 1; 8154let Defs = [PC]; 8155let BaseOpcode = "J4_cmpgtuir"; 8156let isTaken = Inst{13}; 8157let isExtendable = 1; 8158let opExtendable = 2; 8159let isExtentSigned = 1; 8160let opExtentBits = 11; 8161let opExtentAlign = 2; 8162let opNewValue = 0; 8163} 8164def J4_cmpgtui_t_jumpnv_t : HInst< 8165(outs), 8166(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8167"if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 8168tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8169let Inst{0-0} = 0b0; 8170let Inst{13-13} = 0b1; 8171let Inst{19-19} = 0b0; 8172let Inst{31-22} = 0b0010010100; 8173let isPredicated = 1; 8174let isTerminator = 1; 8175let isBranch = 1; 8176let isNewValue = 1; 8177let cofMax1 = 1; 8178let isRestrictNoSlot1Store = 1; 8179let Defs = [PC]; 8180let BaseOpcode = "J4_cmpgtuir"; 8181let isTaken = Inst{13}; 8182let isExtendable = 1; 8183let opExtendable = 2; 8184let isExtentSigned = 1; 8185let opExtentBits = 11; 8186let opExtentAlign = 2; 8187let opNewValue = 0; 8188} 8189def J4_cmpgtui_tp0_jump_nt : HInst< 8190(outs), 8191(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8192"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii", 8193tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8194let Inst{0-0} = 0b0; 8195let Inst{13-13} = 0b0; 8196let Inst{31-22} = 0b0001000100; 8197let isPredicated = 1; 8198let isTerminator = 1; 8199let isBranch = 1; 8200let isPredicatedNew = 1; 8201let cofRelax1 = 1; 8202let cofRelax2 = 1; 8203let cofMax1 = 1; 8204let Uses = [P0]; 8205let Defs = [P0, PC]; 8206let BaseOpcode = "J4_cmpgtuip0"; 8207let isTaken = Inst{13}; 8208let isExtendable = 1; 8209let opExtendable = 2; 8210let isExtentSigned = 1; 8211let opExtentBits = 11; 8212let opExtentAlign = 2; 8213} 8214def J4_cmpgtui_tp0_jump_t : HInst< 8215(outs), 8216(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8217"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii", 8218tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8219let Inst{0-0} = 0b0; 8220let Inst{13-13} = 0b1; 8221let Inst{31-22} = 0b0001000100; 8222let isPredicated = 1; 8223let isTerminator = 1; 8224let isBranch = 1; 8225let isPredicatedNew = 1; 8226let cofRelax1 = 1; 8227let cofRelax2 = 1; 8228let cofMax1 = 1; 8229let Uses = [P0]; 8230let Defs = [P0, PC]; 8231let BaseOpcode = "J4_cmpgtuip0"; 8232let isTaken = Inst{13}; 8233let isExtendable = 1; 8234let opExtendable = 2; 8235let isExtentSigned = 1; 8236let opExtentBits = 11; 8237let opExtentAlign = 2; 8238} 8239def J4_cmpgtui_tp1_jump_nt : HInst< 8240(outs), 8241(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8242"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii", 8243tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8244let Inst{0-0} = 0b0; 8245let Inst{13-13} = 0b0; 8246let Inst{31-22} = 0b0001001100; 8247let isPredicated = 1; 8248let isTerminator = 1; 8249let isBranch = 1; 8250let isPredicatedNew = 1; 8251let cofRelax1 = 1; 8252let cofRelax2 = 1; 8253let cofMax1 = 1; 8254let Uses = [P1]; 8255let Defs = [P1, PC]; 8256let BaseOpcode = "J4_cmpgtuip1"; 8257let isTaken = Inst{13}; 8258let isExtendable = 1; 8259let opExtendable = 2; 8260let isExtentSigned = 1; 8261let opExtentBits = 11; 8262let opExtentAlign = 2; 8263} 8264def J4_cmpgtui_tp1_jump_t : HInst< 8265(outs), 8266(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8267"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii", 8268tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8269let Inst{0-0} = 0b0; 8270let Inst{13-13} = 0b1; 8271let Inst{31-22} = 0b0001001100; 8272let isPredicated = 1; 8273let isTerminator = 1; 8274let isBranch = 1; 8275let isPredicatedNew = 1; 8276let cofRelax1 = 1; 8277let cofRelax2 = 1; 8278let cofMax1 = 1; 8279let Uses = [P1]; 8280let Defs = [P1, PC]; 8281let BaseOpcode = "J4_cmpgtuip1"; 8282let isTaken = Inst{13}; 8283let isExtendable = 1; 8284let opExtendable = 2; 8285let isExtentSigned = 1; 8286let opExtentBits = 11; 8287let opExtentAlign = 2; 8288} 8289def J4_cmplt_f_jumpnv_nt : HInst< 8290(outs), 8291(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8292"if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8293tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8294let Inst{0-0} = 0b0; 8295let Inst{13-13} = 0b0; 8296let Inst{19-19} = 0b0; 8297let Inst{31-22} = 0b0010000111; 8298let isPredicated = 1; 8299let isPredicatedFalse = 1; 8300let isTerminator = 1; 8301let isBranch = 1; 8302let isNewValue = 1; 8303let cofMax1 = 1; 8304let isRestrictNoSlot1Store = 1; 8305let Defs = [PC]; 8306let BaseOpcode = "J4_cmpltr"; 8307let isTaken = Inst{13}; 8308let isExtendable = 1; 8309let opExtendable = 2; 8310let isExtentSigned = 1; 8311let opExtentBits = 11; 8312let opExtentAlign = 2; 8313let opNewValue = 1; 8314} 8315def J4_cmplt_f_jumpnv_t : HInst< 8316(outs), 8317(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8318"if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8319tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8320let Inst{0-0} = 0b0; 8321let Inst{13-13} = 0b1; 8322let Inst{19-19} = 0b0; 8323let Inst{31-22} = 0b0010000111; 8324let isPredicated = 1; 8325let isPredicatedFalse = 1; 8326let isTerminator = 1; 8327let isBranch = 1; 8328let isNewValue = 1; 8329let cofMax1 = 1; 8330let isRestrictNoSlot1Store = 1; 8331let Defs = [PC]; 8332let BaseOpcode = "J4_cmpltr"; 8333let isTaken = Inst{13}; 8334let isExtendable = 1; 8335let opExtendable = 2; 8336let isExtentSigned = 1; 8337let opExtentBits = 11; 8338let opExtentAlign = 2; 8339let opNewValue = 1; 8340} 8341def J4_cmplt_t_jumpnv_nt : HInst< 8342(outs), 8343(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8344"if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8345tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8346let Inst{0-0} = 0b0; 8347let Inst{13-13} = 0b0; 8348let Inst{19-19} = 0b0; 8349let Inst{31-22} = 0b0010000110; 8350let isPredicated = 1; 8351let isTerminator = 1; 8352let isBranch = 1; 8353let isNewValue = 1; 8354let cofMax1 = 1; 8355let isRestrictNoSlot1Store = 1; 8356let Defs = [PC]; 8357let BaseOpcode = "J4_cmpltr"; 8358let isTaken = Inst{13}; 8359let isExtendable = 1; 8360let opExtendable = 2; 8361let isExtentSigned = 1; 8362let opExtentBits = 11; 8363let opExtentAlign = 2; 8364let opNewValue = 1; 8365} 8366def J4_cmplt_t_jumpnv_t : HInst< 8367(outs), 8368(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8369"if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8370tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8371let Inst{0-0} = 0b0; 8372let Inst{13-13} = 0b1; 8373let Inst{19-19} = 0b0; 8374let Inst{31-22} = 0b0010000110; 8375let isPredicated = 1; 8376let isTerminator = 1; 8377let isBranch = 1; 8378let isNewValue = 1; 8379let cofMax1 = 1; 8380let isRestrictNoSlot1Store = 1; 8381let Defs = [PC]; 8382let BaseOpcode = "J4_cmpltr"; 8383let isTaken = Inst{13}; 8384let isExtendable = 1; 8385let opExtendable = 2; 8386let isExtentSigned = 1; 8387let opExtentBits = 11; 8388let opExtentAlign = 2; 8389let opNewValue = 1; 8390} 8391def J4_cmpltu_f_jumpnv_nt : HInst< 8392(outs), 8393(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8394"if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8395tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8396let Inst{0-0} = 0b0; 8397let Inst{13-13} = 0b0; 8398let Inst{19-19} = 0b0; 8399let Inst{31-22} = 0b0010001001; 8400let isPredicated = 1; 8401let isPredicatedFalse = 1; 8402let isTerminator = 1; 8403let isBranch = 1; 8404let isNewValue = 1; 8405let cofMax1 = 1; 8406let isRestrictNoSlot1Store = 1; 8407let Defs = [PC]; 8408let BaseOpcode = "J4_cmpltur"; 8409let isTaken = Inst{13}; 8410let isExtendable = 1; 8411let opExtendable = 2; 8412let isExtentSigned = 1; 8413let opExtentBits = 11; 8414let opExtentAlign = 2; 8415let opNewValue = 1; 8416} 8417def J4_cmpltu_f_jumpnv_t : HInst< 8418(outs), 8419(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8420"if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8421tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8422let Inst{0-0} = 0b0; 8423let Inst{13-13} = 0b1; 8424let Inst{19-19} = 0b0; 8425let Inst{31-22} = 0b0010001001; 8426let isPredicated = 1; 8427let isPredicatedFalse = 1; 8428let isTerminator = 1; 8429let isBranch = 1; 8430let isNewValue = 1; 8431let cofMax1 = 1; 8432let isRestrictNoSlot1Store = 1; 8433let Defs = [PC]; 8434let BaseOpcode = "J4_cmpltur"; 8435let isTaken = Inst{13}; 8436let isExtendable = 1; 8437let opExtendable = 2; 8438let isExtentSigned = 1; 8439let opExtentBits = 11; 8440let opExtentAlign = 2; 8441let opNewValue = 1; 8442} 8443def J4_cmpltu_t_jumpnv_nt : HInst< 8444(outs), 8445(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8446"if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8447tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8448let Inst{0-0} = 0b0; 8449let Inst{13-13} = 0b0; 8450let Inst{19-19} = 0b0; 8451let Inst{31-22} = 0b0010001000; 8452let isPredicated = 1; 8453let isTerminator = 1; 8454let isBranch = 1; 8455let isNewValue = 1; 8456let cofMax1 = 1; 8457let isRestrictNoSlot1Store = 1; 8458let Defs = [PC]; 8459let BaseOpcode = "J4_cmpltur"; 8460let isTaken = Inst{13}; 8461let isExtendable = 1; 8462let opExtendable = 2; 8463let isExtentSigned = 1; 8464let opExtentBits = 11; 8465let opExtentAlign = 2; 8466let opNewValue = 1; 8467} 8468def J4_cmpltu_t_jumpnv_t : HInst< 8469(outs), 8470(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8471"if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8472tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8473let Inst{0-0} = 0b0; 8474let Inst{13-13} = 0b1; 8475let Inst{19-19} = 0b0; 8476let Inst{31-22} = 0b0010001000; 8477let isPredicated = 1; 8478let isTerminator = 1; 8479let isBranch = 1; 8480let isNewValue = 1; 8481let cofMax1 = 1; 8482let isRestrictNoSlot1Store = 1; 8483let Defs = [PC]; 8484let BaseOpcode = "J4_cmpltur"; 8485let isTaken = Inst{13}; 8486let isExtendable = 1; 8487let opExtendable = 2; 8488let isExtentSigned = 1; 8489let opExtentBits = 11; 8490let opExtentAlign = 2; 8491let opNewValue = 1; 8492} 8493def J4_hintjumpr : HInst< 8494(outs), 8495(ins IntRegs:$Rs32), 8496"hintjr($Rs32)", 8497tc_60e324ff, TypeJ>, Enc_ecbcc8 { 8498let Inst{13-0} = 0b00000000000000; 8499let Inst{31-21} = 0b01010010101; 8500let isTerminator = 1; 8501let isIndirectBranch = 1; 8502let isBranch = 1; 8503let cofMax1 = 1; 8504} 8505def J4_jumpseti : HInst< 8506(outs GeneralSubRegs:$Rd16), 8507(ins u6_0Imm:$II, b30_2Imm:$Ii), 8508"$Rd16 = #$II ; jump $Ii", 8509tc_5502c366, TypeCJ>, Enc_9e4c3f { 8510let Inst{0-0} = 0b0; 8511let Inst{31-22} = 0b0001011000; 8512let hasNewValue = 1; 8513let opNewValue = 0; 8514let isTerminator = 1; 8515let isBranch = 1; 8516let cofRelax2 = 1; 8517let cofMax1 = 1; 8518let Defs = [PC]; 8519let isExtendable = 1; 8520let opExtendable = 2; 8521let isExtentSigned = 1; 8522let opExtentBits = 11; 8523let opExtentAlign = 2; 8524} 8525def J4_jumpsetr : HInst< 8526(outs GeneralSubRegs:$Rd16), 8527(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8528"$Rd16 = $Rs16 ; jump $Ii", 8529tc_5502c366, TypeCJ>, Enc_66bce1 { 8530let Inst{0-0} = 0b0; 8531let Inst{13-12} = 0b00; 8532let Inst{31-22} = 0b0001011100; 8533let hasNewValue = 1; 8534let opNewValue = 0; 8535let isTerminator = 1; 8536let isBranch = 1; 8537let cofRelax2 = 1; 8538let cofMax1 = 1; 8539let Defs = [PC]; 8540let isExtendable = 1; 8541let opExtendable = 2; 8542let isExtentSigned = 1; 8543let opExtentBits = 11; 8544let opExtentAlign = 2; 8545} 8546def J4_tstbit0_f_jumpnv_nt : HInst< 8547(outs), 8548(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8549"if (!tstbit($Ns8.new,#0)) jump:nt $Ii", 8550tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8551let Inst{0-0} = 0b0; 8552let Inst{13-8} = 0b000000; 8553let Inst{19-19} = 0b0; 8554let Inst{31-22} = 0b0010010111; 8555let isPredicated = 1; 8556let isPredicatedFalse = 1; 8557let isTerminator = 1; 8558let isBranch = 1; 8559let isNewValue = 1; 8560let cofMax1 = 1; 8561let isRestrictNoSlot1Store = 1; 8562let Defs = [PC]; 8563let isTaken = Inst{13}; 8564let isExtendable = 1; 8565let opExtendable = 1; 8566let isExtentSigned = 1; 8567let opExtentBits = 11; 8568let opExtentAlign = 2; 8569let opNewValue = 0; 8570} 8571def J4_tstbit0_f_jumpnv_t : HInst< 8572(outs), 8573(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8574"if (!tstbit($Ns8.new,#0)) jump:t $Ii", 8575tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8576let Inst{0-0} = 0b0; 8577let Inst{13-8} = 0b100000; 8578let Inst{19-19} = 0b0; 8579let Inst{31-22} = 0b0010010111; 8580let isPredicated = 1; 8581let isPredicatedFalse = 1; 8582let isTerminator = 1; 8583let isBranch = 1; 8584let isNewValue = 1; 8585let cofMax1 = 1; 8586let isRestrictNoSlot1Store = 1; 8587let Defs = [PC]; 8588let isTaken = Inst{13}; 8589let isExtendable = 1; 8590let opExtendable = 1; 8591let isExtentSigned = 1; 8592let opExtentBits = 11; 8593let opExtentAlign = 2; 8594let opNewValue = 0; 8595} 8596def J4_tstbit0_fp0_jump_nt : HInst< 8597(outs), 8598(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8599"p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii", 8600tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8601let Inst{0-0} = 0b0; 8602let Inst{13-8} = 0b000011; 8603let Inst{31-22} = 0b0001000111; 8604let isPredicated = 1; 8605let isPredicatedFalse = 1; 8606let isTerminator = 1; 8607let isBranch = 1; 8608let isPredicatedNew = 1; 8609let cofRelax1 = 1; 8610let cofRelax2 = 1; 8611let cofMax1 = 1; 8612let Uses = [P0]; 8613let Defs = [P0, PC]; 8614let isTaken = Inst{13}; 8615let isExtendable = 1; 8616let opExtendable = 1; 8617let isExtentSigned = 1; 8618let opExtentBits = 11; 8619let opExtentAlign = 2; 8620} 8621def J4_tstbit0_fp0_jump_t : HInst< 8622(outs), 8623(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8624"p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii", 8625tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8626let Inst{0-0} = 0b0; 8627let Inst{13-8} = 0b100011; 8628let Inst{31-22} = 0b0001000111; 8629let isPredicated = 1; 8630let isPredicatedFalse = 1; 8631let isTerminator = 1; 8632let isBranch = 1; 8633let isPredicatedNew = 1; 8634let cofRelax1 = 1; 8635let cofRelax2 = 1; 8636let cofMax1 = 1; 8637let Uses = [P0]; 8638let Defs = [P0, PC]; 8639let isTaken = Inst{13}; 8640let isExtendable = 1; 8641let opExtendable = 1; 8642let isExtentSigned = 1; 8643let opExtentBits = 11; 8644let opExtentAlign = 2; 8645} 8646def J4_tstbit0_fp1_jump_nt : HInst< 8647(outs), 8648(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8649"p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii", 8650tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8651let Inst{0-0} = 0b0; 8652let Inst{13-8} = 0b000011; 8653let Inst{31-22} = 0b0001001111; 8654let isPredicated = 1; 8655let isPredicatedFalse = 1; 8656let isTerminator = 1; 8657let isBranch = 1; 8658let isPredicatedNew = 1; 8659let cofRelax1 = 1; 8660let cofRelax2 = 1; 8661let cofMax1 = 1; 8662let Uses = [P1]; 8663let Defs = [P1, PC]; 8664let isTaken = Inst{13}; 8665let isExtendable = 1; 8666let opExtendable = 1; 8667let isExtentSigned = 1; 8668let opExtentBits = 11; 8669let opExtentAlign = 2; 8670} 8671def J4_tstbit0_fp1_jump_t : HInst< 8672(outs), 8673(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8674"p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii", 8675tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8676let Inst{0-0} = 0b0; 8677let Inst{13-8} = 0b100011; 8678let Inst{31-22} = 0b0001001111; 8679let isPredicated = 1; 8680let isPredicatedFalse = 1; 8681let isTerminator = 1; 8682let isBranch = 1; 8683let isPredicatedNew = 1; 8684let cofRelax1 = 1; 8685let cofRelax2 = 1; 8686let cofMax1 = 1; 8687let Uses = [P1]; 8688let Defs = [P1, PC]; 8689let isTaken = Inst{13}; 8690let isExtendable = 1; 8691let opExtendable = 1; 8692let isExtentSigned = 1; 8693let opExtentBits = 11; 8694let opExtentAlign = 2; 8695} 8696def J4_tstbit0_t_jumpnv_nt : HInst< 8697(outs), 8698(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8699"if (tstbit($Ns8.new,#0)) jump:nt $Ii", 8700tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8701let Inst{0-0} = 0b0; 8702let Inst{13-8} = 0b000000; 8703let Inst{19-19} = 0b0; 8704let Inst{31-22} = 0b0010010110; 8705let isPredicated = 1; 8706let isTerminator = 1; 8707let isBranch = 1; 8708let isNewValue = 1; 8709let cofMax1 = 1; 8710let isRestrictNoSlot1Store = 1; 8711let Defs = [PC]; 8712let isTaken = Inst{13}; 8713let isExtendable = 1; 8714let opExtendable = 1; 8715let isExtentSigned = 1; 8716let opExtentBits = 11; 8717let opExtentAlign = 2; 8718let opNewValue = 0; 8719} 8720def J4_tstbit0_t_jumpnv_t : HInst< 8721(outs), 8722(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8723"if (tstbit($Ns8.new,#0)) jump:t $Ii", 8724tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8725let Inst{0-0} = 0b0; 8726let Inst{13-8} = 0b100000; 8727let Inst{19-19} = 0b0; 8728let Inst{31-22} = 0b0010010110; 8729let isPredicated = 1; 8730let isTerminator = 1; 8731let isBranch = 1; 8732let isNewValue = 1; 8733let cofMax1 = 1; 8734let isRestrictNoSlot1Store = 1; 8735let Defs = [PC]; 8736let isTaken = Inst{13}; 8737let isExtendable = 1; 8738let opExtendable = 1; 8739let isExtentSigned = 1; 8740let opExtentBits = 11; 8741let opExtentAlign = 2; 8742let opNewValue = 0; 8743} 8744def J4_tstbit0_tp0_jump_nt : HInst< 8745(outs), 8746(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8747"p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii", 8748tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8749let Inst{0-0} = 0b0; 8750let Inst{13-8} = 0b000011; 8751let Inst{31-22} = 0b0001000110; 8752let isPredicated = 1; 8753let isTerminator = 1; 8754let isBranch = 1; 8755let isPredicatedNew = 1; 8756let cofRelax1 = 1; 8757let cofRelax2 = 1; 8758let cofMax1 = 1; 8759let Uses = [P0]; 8760let Defs = [P0, PC]; 8761let isTaken = Inst{13}; 8762let isExtendable = 1; 8763let opExtendable = 1; 8764let isExtentSigned = 1; 8765let opExtentBits = 11; 8766let opExtentAlign = 2; 8767} 8768def J4_tstbit0_tp0_jump_t : HInst< 8769(outs), 8770(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8771"p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii", 8772tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8773let Inst{0-0} = 0b0; 8774let Inst{13-8} = 0b100011; 8775let Inst{31-22} = 0b0001000110; 8776let isPredicated = 1; 8777let isTerminator = 1; 8778let isBranch = 1; 8779let isPredicatedNew = 1; 8780let cofRelax1 = 1; 8781let cofRelax2 = 1; 8782let cofMax1 = 1; 8783let Uses = [P0]; 8784let Defs = [P0, PC]; 8785let isTaken = Inst{13}; 8786let isExtendable = 1; 8787let opExtendable = 1; 8788let isExtentSigned = 1; 8789let opExtentBits = 11; 8790let opExtentAlign = 2; 8791} 8792def J4_tstbit0_tp1_jump_nt : HInst< 8793(outs), 8794(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8795"p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii", 8796tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8797let Inst{0-0} = 0b0; 8798let Inst{13-8} = 0b000011; 8799let Inst{31-22} = 0b0001001110; 8800let isPredicated = 1; 8801let isTerminator = 1; 8802let isBranch = 1; 8803let isPredicatedNew = 1; 8804let cofRelax1 = 1; 8805let cofRelax2 = 1; 8806let cofMax1 = 1; 8807let Uses = [P1]; 8808let Defs = [P1, PC]; 8809let isTaken = Inst{13}; 8810let isExtendable = 1; 8811let opExtendable = 1; 8812let isExtentSigned = 1; 8813let opExtentBits = 11; 8814let opExtentAlign = 2; 8815} 8816def J4_tstbit0_tp1_jump_t : HInst< 8817(outs), 8818(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8819"p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii", 8820tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8821let Inst{0-0} = 0b0; 8822let Inst{13-8} = 0b100011; 8823let Inst{31-22} = 0b0001001110; 8824let isPredicated = 1; 8825let isTerminator = 1; 8826let isBranch = 1; 8827let isPredicatedNew = 1; 8828let cofRelax1 = 1; 8829let cofRelax2 = 1; 8830let cofMax1 = 1; 8831let Uses = [P1]; 8832let Defs = [P1, PC]; 8833let isTaken = Inst{13}; 8834let isExtendable = 1; 8835let opExtendable = 1; 8836let isExtentSigned = 1; 8837let opExtentBits = 11; 8838let opExtentAlign = 2; 8839} 8840def L2_deallocframe : HInst< 8841(outs DoubleRegs:$Rdd32), 8842(ins IntRegs:$Rs32), 8843"$Rdd32 = deallocframe($Rs32):raw", 8844tc_e9170fb7, TypeLD>, Enc_3a3d62 { 8845let Inst{13-5} = 0b000000000; 8846let Inst{31-21} = 0b10010000000; 8847let accessSize = DoubleWordAccess; 8848let mayLoad = 1; 8849let Uses = [FRAMEKEY]; 8850let Defs = [R29]; 8851} 8852def L2_loadalignb_io : HInst< 8853(outs DoubleRegs:$Ryy32), 8854(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii), 8855"$Ryy32 = memb_fifo($Rs32+#$Ii)", 8856tc_fedb7e19, TypeLD>, Enc_a27588 { 8857let Inst{24-21} = 0b0100; 8858let Inst{31-27} = 0b10010; 8859let addrMode = BaseImmOffset; 8860let accessSize = ByteAccess; 8861let mayLoad = 1; 8862let isExtendable = 1; 8863let opExtendable = 3; 8864let isExtentSigned = 1; 8865let opExtentBits = 11; 8866let opExtentAlign = 0; 8867let Constraints = "$Ryy32 = $Ryy32in"; 8868} 8869def L2_loadalignb_pbr : HInst< 8870(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8871(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8872"$Ryy32 = memb_fifo($Rx32++$Mu2:brev)", 8873tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8874let Inst{12-5} = 0b00000000; 8875let Inst{31-21} = 0b10011110100; 8876let addrMode = PostInc; 8877let accessSize = ByteAccess; 8878let mayLoad = 1; 8879let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8880} 8881def L2_loadalignb_pci : HInst< 8882(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8883(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 8884"$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))", 8885tc_76bb5435, TypeLD>, Enc_74aef2 { 8886let Inst{12-9} = 0b0000; 8887let Inst{31-21} = 0b10011000100; 8888let addrMode = PostInc; 8889let accessSize = ByteAccess; 8890let mayLoad = 1; 8891let Uses = [CS]; 8892let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8893} 8894def L2_loadalignb_pcr : HInst< 8895(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8896(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8897"$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))", 8898tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8899let Inst{12-5} = 0b00010000; 8900let Inst{31-21} = 0b10011000100; 8901let addrMode = PostInc; 8902let accessSize = ByteAccess; 8903let mayLoad = 1; 8904let Uses = [CS]; 8905let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8906} 8907def L2_loadalignb_pi : HInst< 8908(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8909(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii), 8910"$Ryy32 = memb_fifo($Rx32++#$Ii)", 8911tc_1c7522a8, TypeLD>, Enc_6b197f { 8912let Inst{13-9} = 0b00000; 8913let Inst{31-21} = 0b10011010100; 8914let addrMode = PostInc; 8915let accessSize = ByteAccess; 8916let mayLoad = 1; 8917let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8918} 8919def L2_loadalignb_pr : HInst< 8920(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8921(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8922"$Ryy32 = memb_fifo($Rx32++$Mu2)", 8923tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8924let Inst{12-5} = 0b00000000; 8925let Inst{31-21} = 0b10011100100; 8926let addrMode = PostInc; 8927let accessSize = ByteAccess; 8928let mayLoad = 1; 8929let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8930} 8931def L2_loadalignb_zomap : HInst< 8932(outs DoubleRegs:$Ryy32), 8933(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 8934"$Ryy32 = memb_fifo($Rs32)", 8935tc_fedb7e19, TypeMAPPING> { 8936let isPseudo = 1; 8937let isCodeGenOnly = 1; 8938let Constraints = "$Ryy32 = $Ryy32in"; 8939} 8940def L2_loadalignh_io : HInst< 8941(outs DoubleRegs:$Ryy32), 8942(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii), 8943"$Ryy32 = memh_fifo($Rs32+#$Ii)", 8944tc_fedb7e19, TypeLD>, Enc_5cd7e9 { 8945let Inst{24-21} = 0b0010; 8946let Inst{31-27} = 0b10010; 8947let addrMode = BaseImmOffset; 8948let accessSize = HalfWordAccess; 8949let mayLoad = 1; 8950let isExtendable = 1; 8951let opExtendable = 3; 8952let isExtentSigned = 1; 8953let opExtentBits = 12; 8954let opExtentAlign = 1; 8955let Constraints = "$Ryy32 = $Ryy32in"; 8956} 8957def L2_loadalignh_pbr : HInst< 8958(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8959(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8960"$Ryy32 = memh_fifo($Rx32++$Mu2:brev)", 8961tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8962let Inst{12-5} = 0b00000000; 8963let Inst{31-21} = 0b10011110010; 8964let addrMode = PostInc; 8965let accessSize = HalfWordAccess; 8966let mayLoad = 1; 8967let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8968} 8969def L2_loadalignh_pci : HInst< 8970(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8971(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 8972"$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))", 8973tc_76bb5435, TypeLD>, Enc_9e2e1c { 8974let Inst{12-9} = 0b0000; 8975let Inst{31-21} = 0b10011000010; 8976let addrMode = PostInc; 8977let accessSize = HalfWordAccess; 8978let mayLoad = 1; 8979let Uses = [CS]; 8980let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8981} 8982def L2_loadalignh_pcr : HInst< 8983(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8984(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8985"$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))", 8986tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8987let Inst{12-5} = 0b00010000; 8988let Inst{31-21} = 0b10011000010; 8989let addrMode = PostInc; 8990let accessSize = HalfWordAccess; 8991let mayLoad = 1; 8992let Uses = [CS]; 8993let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8994} 8995def L2_loadalignh_pi : HInst< 8996(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8997(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii), 8998"$Ryy32 = memh_fifo($Rx32++#$Ii)", 8999tc_1c7522a8, TypeLD>, Enc_bd1cbc { 9000let Inst{13-9} = 0b00000; 9001let Inst{31-21} = 0b10011010010; 9002let addrMode = PostInc; 9003let accessSize = HalfWordAccess; 9004let mayLoad = 1; 9005let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9006} 9007def L2_loadalignh_pr : HInst< 9008(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9009(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 9010"$Ryy32 = memh_fifo($Rx32++$Mu2)", 9011tc_1c7522a8, TypeLD>, Enc_1f5d8f { 9012let Inst{12-5} = 0b00000000; 9013let Inst{31-21} = 0b10011100010; 9014let addrMode = PostInc; 9015let accessSize = HalfWordAccess; 9016let mayLoad = 1; 9017let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9018} 9019def L2_loadalignh_zomap : HInst< 9020(outs DoubleRegs:$Ryy32), 9021(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 9022"$Ryy32 = memh_fifo($Rs32)", 9023tc_fedb7e19, TypeMAPPING> { 9024let isPseudo = 1; 9025let isCodeGenOnly = 1; 9026let Constraints = "$Ryy32 = $Ryy32in"; 9027} 9028def L2_loadbsw2_io : HInst< 9029(outs IntRegs:$Rd32), 9030(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9031"$Rd32 = membh($Rs32+#$Ii)", 9032tc_4222e6bf, TypeLD>, Enc_de0214 { 9033let Inst{24-21} = 0b0001; 9034let Inst{31-27} = 0b10010; 9035let hasNewValue = 1; 9036let opNewValue = 0; 9037let addrMode = BaseImmOffset; 9038let accessSize = HalfWordAccess; 9039let mayLoad = 1; 9040let isExtendable = 1; 9041let opExtendable = 2; 9042let isExtentSigned = 1; 9043let opExtentBits = 12; 9044let opExtentAlign = 1; 9045} 9046def L2_loadbsw2_pbr : HInst< 9047(outs IntRegs:$Rd32, IntRegs:$Rx32), 9048(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9049"$Rd32 = membh($Rx32++$Mu2:brev)", 9050tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9051let Inst{12-5} = 0b00000000; 9052let Inst{31-21} = 0b10011110001; 9053let hasNewValue = 1; 9054let opNewValue = 0; 9055let addrMode = PostInc; 9056let accessSize = HalfWordAccess; 9057let mayLoad = 1; 9058let Constraints = "$Rx32 = $Rx32in"; 9059} 9060def L2_loadbsw2_pci : HInst< 9061(outs IntRegs:$Rd32, IntRegs:$Rx32), 9062(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9063"$Rd32 = membh($Rx32++#$Ii:circ($Mu2))", 9064tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9065let Inst{12-9} = 0b0000; 9066let Inst{31-21} = 0b10011000001; 9067let hasNewValue = 1; 9068let opNewValue = 0; 9069let addrMode = PostInc; 9070let accessSize = HalfWordAccess; 9071let mayLoad = 1; 9072let Uses = [CS]; 9073let Constraints = "$Rx32 = $Rx32in"; 9074} 9075def L2_loadbsw2_pcr : HInst< 9076(outs IntRegs:$Rd32, IntRegs:$Rx32), 9077(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9078"$Rd32 = membh($Rx32++I:circ($Mu2))", 9079tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9080let Inst{12-5} = 0b00010000; 9081let Inst{31-21} = 0b10011000001; 9082let hasNewValue = 1; 9083let opNewValue = 0; 9084let addrMode = PostInc; 9085let accessSize = HalfWordAccess; 9086let mayLoad = 1; 9087let Uses = [CS]; 9088let Constraints = "$Rx32 = $Rx32in"; 9089} 9090def L2_loadbsw2_pi : HInst< 9091(outs IntRegs:$Rd32, IntRegs:$Rx32), 9092(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9093"$Rd32 = membh($Rx32++#$Ii)", 9094tc_075c8dd8, TypeLD>, Enc_152467 { 9095let Inst{13-9} = 0b00000; 9096let Inst{31-21} = 0b10011010001; 9097let hasNewValue = 1; 9098let opNewValue = 0; 9099let addrMode = PostInc; 9100let accessSize = HalfWordAccess; 9101let mayLoad = 1; 9102let Constraints = "$Rx32 = $Rx32in"; 9103} 9104def L2_loadbsw2_pr : HInst< 9105(outs IntRegs:$Rd32, IntRegs:$Rx32), 9106(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9107"$Rd32 = membh($Rx32++$Mu2)", 9108tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9109let Inst{12-5} = 0b00000000; 9110let Inst{31-21} = 0b10011100001; 9111let hasNewValue = 1; 9112let opNewValue = 0; 9113let addrMode = PostInc; 9114let accessSize = HalfWordAccess; 9115let mayLoad = 1; 9116let Constraints = "$Rx32 = $Rx32in"; 9117} 9118def L2_loadbsw2_zomap : HInst< 9119(outs IntRegs:$Rd32), 9120(ins IntRegs:$Rs32), 9121"$Rd32 = membh($Rs32)", 9122tc_4222e6bf, TypeMAPPING> { 9123let hasNewValue = 1; 9124let opNewValue = 0; 9125let isPseudo = 1; 9126let isCodeGenOnly = 1; 9127} 9128def L2_loadbsw4_io : HInst< 9129(outs DoubleRegs:$Rdd32), 9130(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9131"$Rdd32 = membh($Rs32+#$Ii)", 9132tc_4222e6bf, TypeLD>, Enc_2d7491 { 9133let Inst{24-21} = 0b0111; 9134let Inst{31-27} = 0b10010; 9135let addrMode = BaseImmOffset; 9136let accessSize = WordAccess; 9137let mayLoad = 1; 9138let isExtendable = 1; 9139let opExtendable = 2; 9140let isExtentSigned = 1; 9141let opExtentBits = 13; 9142let opExtentAlign = 2; 9143} 9144def L2_loadbsw4_pbr : HInst< 9145(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9146(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9147"$Rdd32 = membh($Rx32++$Mu2:brev)", 9148tc_075c8dd8, TypeLD>, Enc_7eee72 { 9149let Inst{12-5} = 0b00000000; 9150let Inst{31-21} = 0b10011110111; 9151let addrMode = PostInc; 9152let accessSize = WordAccess; 9153let mayLoad = 1; 9154let Constraints = "$Rx32 = $Rx32in"; 9155} 9156def L2_loadbsw4_pci : HInst< 9157(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9158(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9159"$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))", 9160tc_5ceb2f9e, TypeLD>, Enc_70b24b { 9161let Inst{12-9} = 0b0000; 9162let Inst{31-21} = 0b10011000111; 9163let addrMode = PostInc; 9164let accessSize = WordAccess; 9165let mayLoad = 1; 9166let Uses = [CS]; 9167let Constraints = "$Rx32 = $Rx32in"; 9168} 9169def L2_loadbsw4_pcr : HInst< 9170(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9171(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9172"$Rdd32 = membh($Rx32++I:circ($Mu2))", 9173tc_075c8dd8, TypeLD>, Enc_7eee72 { 9174let Inst{12-5} = 0b00010000; 9175let Inst{31-21} = 0b10011000111; 9176let addrMode = PostInc; 9177let accessSize = WordAccess; 9178let mayLoad = 1; 9179let Uses = [CS]; 9180let Constraints = "$Rx32 = $Rx32in"; 9181} 9182def L2_loadbsw4_pi : HInst< 9183(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9184(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9185"$Rdd32 = membh($Rx32++#$Ii)", 9186tc_075c8dd8, TypeLD>, Enc_71f1b4 { 9187let Inst{13-9} = 0b00000; 9188let Inst{31-21} = 0b10011010111; 9189let addrMode = PostInc; 9190let accessSize = WordAccess; 9191let mayLoad = 1; 9192let Constraints = "$Rx32 = $Rx32in"; 9193} 9194def L2_loadbsw4_pr : HInst< 9195(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9196(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9197"$Rdd32 = membh($Rx32++$Mu2)", 9198tc_075c8dd8, TypeLD>, Enc_7eee72 { 9199let Inst{12-5} = 0b00000000; 9200let Inst{31-21} = 0b10011100111; 9201let addrMode = PostInc; 9202let accessSize = WordAccess; 9203let mayLoad = 1; 9204let Constraints = "$Rx32 = $Rx32in"; 9205} 9206def L2_loadbsw4_zomap : HInst< 9207(outs DoubleRegs:$Rdd32), 9208(ins IntRegs:$Rs32), 9209"$Rdd32 = membh($Rs32)", 9210tc_4222e6bf, TypeMAPPING> { 9211let isPseudo = 1; 9212let isCodeGenOnly = 1; 9213} 9214def L2_loadbzw2_io : HInst< 9215(outs IntRegs:$Rd32), 9216(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9217"$Rd32 = memubh($Rs32+#$Ii)", 9218tc_4222e6bf, TypeLD>, Enc_de0214 { 9219let Inst{24-21} = 0b0011; 9220let Inst{31-27} = 0b10010; 9221let hasNewValue = 1; 9222let opNewValue = 0; 9223let addrMode = BaseImmOffset; 9224let accessSize = HalfWordAccess; 9225let mayLoad = 1; 9226let isExtendable = 1; 9227let opExtendable = 2; 9228let isExtentSigned = 1; 9229let opExtentBits = 12; 9230let opExtentAlign = 1; 9231} 9232def L2_loadbzw2_pbr : HInst< 9233(outs IntRegs:$Rd32, IntRegs:$Rx32), 9234(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9235"$Rd32 = memubh($Rx32++$Mu2:brev)", 9236tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9237let Inst{12-5} = 0b00000000; 9238let Inst{31-21} = 0b10011110011; 9239let hasNewValue = 1; 9240let opNewValue = 0; 9241let addrMode = PostInc; 9242let accessSize = HalfWordAccess; 9243let mayLoad = 1; 9244let Constraints = "$Rx32 = $Rx32in"; 9245} 9246def L2_loadbzw2_pci : HInst< 9247(outs IntRegs:$Rd32, IntRegs:$Rx32), 9248(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9249"$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9250tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9251let Inst{12-9} = 0b0000; 9252let Inst{31-21} = 0b10011000011; 9253let hasNewValue = 1; 9254let opNewValue = 0; 9255let addrMode = PostInc; 9256let accessSize = HalfWordAccess; 9257let mayLoad = 1; 9258let Uses = [CS]; 9259let Constraints = "$Rx32 = $Rx32in"; 9260} 9261def L2_loadbzw2_pcr : HInst< 9262(outs IntRegs:$Rd32, IntRegs:$Rx32), 9263(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9264"$Rd32 = memubh($Rx32++I:circ($Mu2))", 9265tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9266let Inst{12-5} = 0b00010000; 9267let Inst{31-21} = 0b10011000011; 9268let hasNewValue = 1; 9269let opNewValue = 0; 9270let addrMode = PostInc; 9271let accessSize = HalfWordAccess; 9272let mayLoad = 1; 9273let Uses = [CS]; 9274let Constraints = "$Rx32 = $Rx32in"; 9275} 9276def L2_loadbzw2_pi : HInst< 9277(outs IntRegs:$Rd32, IntRegs:$Rx32), 9278(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9279"$Rd32 = memubh($Rx32++#$Ii)", 9280tc_075c8dd8, TypeLD>, Enc_152467 { 9281let Inst{13-9} = 0b00000; 9282let Inst{31-21} = 0b10011010011; 9283let hasNewValue = 1; 9284let opNewValue = 0; 9285let addrMode = PostInc; 9286let accessSize = HalfWordAccess; 9287let mayLoad = 1; 9288let Constraints = "$Rx32 = $Rx32in"; 9289} 9290def L2_loadbzw2_pr : HInst< 9291(outs IntRegs:$Rd32, IntRegs:$Rx32), 9292(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9293"$Rd32 = memubh($Rx32++$Mu2)", 9294tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9295let Inst{12-5} = 0b00000000; 9296let Inst{31-21} = 0b10011100011; 9297let hasNewValue = 1; 9298let opNewValue = 0; 9299let addrMode = PostInc; 9300let accessSize = HalfWordAccess; 9301let mayLoad = 1; 9302let Constraints = "$Rx32 = $Rx32in"; 9303} 9304def L2_loadbzw2_zomap : HInst< 9305(outs IntRegs:$Rd32), 9306(ins IntRegs:$Rs32), 9307"$Rd32 = memubh($Rs32)", 9308tc_4222e6bf, TypeMAPPING> { 9309let hasNewValue = 1; 9310let opNewValue = 0; 9311let isPseudo = 1; 9312let isCodeGenOnly = 1; 9313} 9314def L2_loadbzw4_io : HInst< 9315(outs DoubleRegs:$Rdd32), 9316(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9317"$Rdd32 = memubh($Rs32+#$Ii)", 9318tc_4222e6bf, TypeLD>, Enc_2d7491 { 9319let Inst{24-21} = 0b0101; 9320let Inst{31-27} = 0b10010; 9321let addrMode = BaseImmOffset; 9322let accessSize = WordAccess; 9323let mayLoad = 1; 9324let isExtendable = 1; 9325let opExtendable = 2; 9326let isExtentSigned = 1; 9327let opExtentBits = 13; 9328let opExtentAlign = 2; 9329} 9330def L2_loadbzw4_pbr : HInst< 9331(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9332(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9333"$Rdd32 = memubh($Rx32++$Mu2:brev)", 9334tc_075c8dd8, TypeLD>, Enc_7eee72 { 9335let Inst{12-5} = 0b00000000; 9336let Inst{31-21} = 0b10011110101; 9337let addrMode = PostInc; 9338let accessSize = WordAccess; 9339let mayLoad = 1; 9340let Constraints = "$Rx32 = $Rx32in"; 9341} 9342def L2_loadbzw4_pci : HInst< 9343(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9344(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9345"$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9346tc_5ceb2f9e, TypeLD>, Enc_70b24b { 9347let Inst{12-9} = 0b0000; 9348let Inst{31-21} = 0b10011000101; 9349let addrMode = PostInc; 9350let accessSize = WordAccess; 9351let mayLoad = 1; 9352let Uses = [CS]; 9353let Constraints = "$Rx32 = $Rx32in"; 9354} 9355def L2_loadbzw4_pcr : HInst< 9356(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9357(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9358"$Rdd32 = memubh($Rx32++I:circ($Mu2))", 9359tc_075c8dd8, TypeLD>, Enc_7eee72 { 9360let Inst{12-5} = 0b00010000; 9361let Inst{31-21} = 0b10011000101; 9362let addrMode = PostInc; 9363let accessSize = WordAccess; 9364let mayLoad = 1; 9365let Uses = [CS]; 9366let Constraints = "$Rx32 = $Rx32in"; 9367} 9368def L2_loadbzw4_pi : HInst< 9369(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9370(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9371"$Rdd32 = memubh($Rx32++#$Ii)", 9372tc_075c8dd8, TypeLD>, Enc_71f1b4 { 9373let Inst{13-9} = 0b00000; 9374let Inst{31-21} = 0b10011010101; 9375let addrMode = PostInc; 9376let accessSize = WordAccess; 9377let mayLoad = 1; 9378let Constraints = "$Rx32 = $Rx32in"; 9379} 9380def L2_loadbzw4_pr : HInst< 9381(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9382(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9383"$Rdd32 = memubh($Rx32++$Mu2)", 9384tc_075c8dd8, TypeLD>, Enc_7eee72 { 9385let Inst{12-5} = 0b00000000; 9386let Inst{31-21} = 0b10011100101; 9387let addrMode = PostInc; 9388let accessSize = WordAccess; 9389let mayLoad = 1; 9390let Constraints = "$Rx32 = $Rx32in"; 9391} 9392def L2_loadbzw4_zomap : HInst< 9393(outs DoubleRegs:$Rdd32), 9394(ins IntRegs:$Rs32), 9395"$Rdd32 = memubh($Rs32)", 9396tc_4222e6bf, TypeMAPPING> { 9397let isPseudo = 1; 9398let isCodeGenOnly = 1; 9399} 9400def L2_loadrb_io : HInst< 9401(outs IntRegs:$Rd32), 9402(ins IntRegs:$Rs32, s32_0Imm:$Ii), 9403"$Rd32 = memb($Rs32+#$Ii)", 9404tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9405let Inst{24-21} = 0b1000; 9406let Inst{31-27} = 0b10010; 9407let hasNewValue = 1; 9408let opNewValue = 0; 9409let addrMode = BaseImmOffset; 9410let accessSize = ByteAccess; 9411let mayLoad = 1; 9412let BaseOpcode = "L2_loadrb_io"; 9413let CextOpcode = "L2_loadrb"; 9414let isPredicable = 1; 9415let isExtendable = 1; 9416let opExtendable = 2; 9417let isExtentSigned = 1; 9418let opExtentBits = 11; 9419let opExtentAlign = 0; 9420} 9421def L2_loadrb_pbr : HInst< 9422(outs IntRegs:$Rd32, IntRegs:$Rx32), 9423(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9424"$Rd32 = memb($Rx32++$Mu2:brev)", 9425tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9426let Inst{12-5} = 0b00000000; 9427let Inst{31-21} = 0b10011111000; 9428let hasNewValue = 1; 9429let opNewValue = 0; 9430let addrMode = PostInc; 9431let accessSize = ByteAccess; 9432let mayLoad = 1; 9433let Constraints = "$Rx32 = $Rx32in"; 9434} 9435def L2_loadrb_pci : HInst< 9436(outs IntRegs:$Rd32, IntRegs:$Rx32), 9437(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9438"$Rd32 = memb($Rx32++#$Ii:circ($Mu2))", 9439tc_5ceb2f9e, TypeLD>, Enc_e0a47a { 9440let Inst{12-9} = 0b0000; 9441let Inst{31-21} = 0b10011001000; 9442let hasNewValue = 1; 9443let opNewValue = 0; 9444let addrMode = PostInc; 9445let accessSize = ByteAccess; 9446let mayLoad = 1; 9447let Uses = [CS]; 9448let Constraints = "$Rx32 = $Rx32in"; 9449} 9450def L2_loadrb_pcr : HInst< 9451(outs IntRegs:$Rd32, IntRegs:$Rx32), 9452(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9453"$Rd32 = memb($Rx32++I:circ($Mu2))", 9454tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9455let Inst{12-5} = 0b00010000; 9456let Inst{31-21} = 0b10011001000; 9457let hasNewValue = 1; 9458let opNewValue = 0; 9459let addrMode = PostInc; 9460let accessSize = ByteAccess; 9461let mayLoad = 1; 9462let Uses = [CS]; 9463let Constraints = "$Rx32 = $Rx32in"; 9464} 9465def L2_loadrb_pi : HInst< 9466(outs IntRegs:$Rd32, IntRegs:$Rx32), 9467(ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9468"$Rd32 = memb($Rx32++#$Ii)", 9469tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 9470let Inst{13-9} = 0b00000; 9471let Inst{31-21} = 0b10011011000; 9472let hasNewValue = 1; 9473let opNewValue = 0; 9474let addrMode = PostInc; 9475let accessSize = ByteAccess; 9476let mayLoad = 1; 9477let BaseOpcode = "L2_loadrb_pi"; 9478let CextOpcode = "L2_loadrb"; 9479let isPredicable = 1; 9480let Constraints = "$Rx32 = $Rx32in"; 9481} 9482def L2_loadrb_pr : HInst< 9483(outs IntRegs:$Rd32, IntRegs:$Rx32), 9484(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9485"$Rd32 = memb($Rx32++$Mu2)", 9486tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9487let Inst{12-5} = 0b00000000; 9488let Inst{31-21} = 0b10011101000; 9489let hasNewValue = 1; 9490let opNewValue = 0; 9491let addrMode = PostInc; 9492let accessSize = ByteAccess; 9493let mayLoad = 1; 9494let Constraints = "$Rx32 = $Rx32in"; 9495} 9496def L2_loadrb_zomap : HInst< 9497(outs IntRegs:$Rd32), 9498(ins IntRegs:$Rs32), 9499"$Rd32 = memb($Rs32)", 9500tc_4222e6bf, TypeMAPPING> { 9501let hasNewValue = 1; 9502let opNewValue = 0; 9503let isPseudo = 1; 9504let isCodeGenOnly = 1; 9505} 9506def L2_loadrbgp : HInst< 9507(outs IntRegs:$Rd32), 9508(ins u32_0Imm:$Ii), 9509"$Rd32 = memb(gp+#$Ii)", 9510tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 9511let Inst{24-21} = 0b1000; 9512let Inst{31-27} = 0b01001; 9513let hasNewValue = 1; 9514let opNewValue = 0; 9515let accessSize = ByteAccess; 9516let mayLoad = 1; 9517let Uses = [GP]; 9518let BaseOpcode = "L4_loadrb_abs"; 9519let isPredicable = 1; 9520let opExtendable = 1; 9521let isExtentSigned = 0; 9522let opExtentBits = 16; 9523let opExtentAlign = 0; 9524} 9525def L2_loadrd_io : HInst< 9526(outs DoubleRegs:$Rdd32), 9527(ins IntRegs:$Rs32, s29_3Imm:$Ii), 9528"$Rdd32 = memd($Rs32+#$Ii)", 9529tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm { 9530let Inst{24-21} = 0b1110; 9531let Inst{31-27} = 0b10010; 9532let addrMode = BaseImmOffset; 9533let accessSize = DoubleWordAccess; 9534let mayLoad = 1; 9535let BaseOpcode = "L2_loadrd_io"; 9536let CextOpcode = "L2_loadrd"; 9537let isPredicable = 1; 9538let isExtendable = 1; 9539let opExtendable = 2; 9540let isExtentSigned = 1; 9541let opExtentBits = 14; 9542let opExtentAlign = 3; 9543} 9544def L2_loadrd_pbr : HInst< 9545(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9546(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9547"$Rdd32 = memd($Rx32++$Mu2:brev)", 9548tc_075c8dd8, TypeLD>, Enc_7eee72 { 9549let Inst{12-5} = 0b00000000; 9550let Inst{31-21} = 0b10011111110; 9551let addrMode = PostInc; 9552let accessSize = DoubleWordAccess; 9553let mayLoad = 1; 9554let Constraints = "$Rx32 = $Rx32in"; 9555} 9556def L2_loadrd_pci : HInst< 9557(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9558(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2), 9559"$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))", 9560tc_5ceb2f9e, TypeLD>, Enc_b05839 { 9561let Inst{12-9} = 0b0000; 9562let Inst{31-21} = 0b10011001110; 9563let addrMode = PostInc; 9564let accessSize = DoubleWordAccess; 9565let mayLoad = 1; 9566let Uses = [CS]; 9567let Constraints = "$Rx32 = $Rx32in"; 9568} 9569def L2_loadrd_pcr : HInst< 9570(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9571(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9572"$Rdd32 = memd($Rx32++I:circ($Mu2))", 9573tc_075c8dd8, TypeLD>, Enc_7eee72 { 9574let Inst{12-5} = 0b00010000; 9575let Inst{31-21} = 0b10011001110; 9576let addrMode = PostInc; 9577let accessSize = DoubleWordAccess; 9578let mayLoad = 1; 9579let Uses = [CS]; 9580let Constraints = "$Rx32 = $Rx32in"; 9581} 9582def L2_loadrd_pi : HInst< 9583(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9584(ins IntRegs:$Rx32in, s4_3Imm:$Ii), 9585"$Rdd32 = memd($Rx32++#$Ii)", 9586tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm { 9587let Inst{13-9} = 0b00000; 9588let Inst{31-21} = 0b10011011110; 9589let addrMode = PostInc; 9590let accessSize = DoubleWordAccess; 9591let mayLoad = 1; 9592let BaseOpcode = "L2_loadrd_pi"; 9593let CextOpcode = "L2_loadrd"; 9594let isPredicable = 1; 9595let Constraints = "$Rx32 = $Rx32in"; 9596} 9597def L2_loadrd_pr : HInst< 9598(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9599(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9600"$Rdd32 = memd($Rx32++$Mu2)", 9601tc_075c8dd8, TypeLD>, Enc_7eee72 { 9602let Inst{12-5} = 0b00000000; 9603let Inst{31-21} = 0b10011101110; 9604let addrMode = PostInc; 9605let accessSize = DoubleWordAccess; 9606let mayLoad = 1; 9607let Constraints = "$Rx32 = $Rx32in"; 9608} 9609def L2_loadrd_zomap : HInst< 9610(outs DoubleRegs:$Rdd32), 9611(ins IntRegs:$Rs32), 9612"$Rdd32 = memd($Rs32)", 9613tc_4222e6bf, TypeMAPPING> { 9614let isPseudo = 1; 9615let isCodeGenOnly = 1; 9616} 9617def L2_loadrdgp : HInst< 9618(outs DoubleRegs:$Rdd32), 9619(ins u29_3Imm:$Ii), 9620"$Rdd32 = memd(gp+#$Ii)", 9621tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel { 9622let Inst{24-21} = 0b1110; 9623let Inst{31-27} = 0b01001; 9624let accessSize = DoubleWordAccess; 9625let mayLoad = 1; 9626let Uses = [GP]; 9627let BaseOpcode = "L4_loadrd_abs"; 9628let isPredicable = 1; 9629let opExtendable = 1; 9630let isExtentSigned = 0; 9631let opExtentBits = 19; 9632let opExtentAlign = 3; 9633} 9634def L2_loadrh_io : HInst< 9635(outs IntRegs:$Rd32), 9636(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9637"$Rd32 = memh($Rs32+#$Ii)", 9638tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 9639let Inst{24-21} = 0b1010; 9640let Inst{31-27} = 0b10010; 9641let hasNewValue = 1; 9642let opNewValue = 0; 9643let addrMode = BaseImmOffset; 9644let accessSize = HalfWordAccess; 9645let mayLoad = 1; 9646let BaseOpcode = "L2_loadrh_io"; 9647let CextOpcode = "L2_loadrh"; 9648let isPredicable = 1; 9649let isExtendable = 1; 9650let opExtendable = 2; 9651let isExtentSigned = 1; 9652let opExtentBits = 12; 9653let opExtentAlign = 1; 9654} 9655def L2_loadrh_pbr : HInst< 9656(outs IntRegs:$Rd32, IntRegs:$Rx32), 9657(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9658"$Rd32 = memh($Rx32++$Mu2:brev)", 9659tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9660let Inst{12-5} = 0b00000000; 9661let Inst{31-21} = 0b10011111010; 9662let hasNewValue = 1; 9663let opNewValue = 0; 9664let addrMode = PostInc; 9665let accessSize = HalfWordAccess; 9666let mayLoad = 1; 9667let Constraints = "$Rx32 = $Rx32in"; 9668} 9669def L2_loadrh_pci : HInst< 9670(outs IntRegs:$Rd32, IntRegs:$Rx32), 9671(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9672"$Rd32 = memh($Rx32++#$Ii:circ($Mu2))", 9673tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9674let Inst{12-9} = 0b0000; 9675let Inst{31-21} = 0b10011001010; 9676let hasNewValue = 1; 9677let opNewValue = 0; 9678let addrMode = PostInc; 9679let accessSize = HalfWordAccess; 9680let mayLoad = 1; 9681let Uses = [CS]; 9682let Constraints = "$Rx32 = $Rx32in"; 9683} 9684def L2_loadrh_pcr : HInst< 9685(outs IntRegs:$Rd32, IntRegs:$Rx32), 9686(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9687"$Rd32 = memh($Rx32++I:circ($Mu2))", 9688tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9689let Inst{12-5} = 0b00010000; 9690let Inst{31-21} = 0b10011001010; 9691let hasNewValue = 1; 9692let opNewValue = 0; 9693let addrMode = PostInc; 9694let accessSize = HalfWordAccess; 9695let mayLoad = 1; 9696let Uses = [CS]; 9697let Constraints = "$Rx32 = $Rx32in"; 9698} 9699def L2_loadrh_pi : HInst< 9700(outs IntRegs:$Rd32, IntRegs:$Rx32), 9701(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9702"$Rd32 = memh($Rx32++#$Ii)", 9703tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 9704let Inst{13-9} = 0b00000; 9705let Inst{31-21} = 0b10011011010; 9706let hasNewValue = 1; 9707let opNewValue = 0; 9708let addrMode = PostInc; 9709let accessSize = HalfWordAccess; 9710let mayLoad = 1; 9711let BaseOpcode = "L2_loadrh_pi"; 9712let CextOpcode = "L2_loadrh"; 9713let isPredicable = 1; 9714let Constraints = "$Rx32 = $Rx32in"; 9715} 9716def L2_loadrh_pr : HInst< 9717(outs IntRegs:$Rd32, IntRegs:$Rx32), 9718(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9719"$Rd32 = memh($Rx32++$Mu2)", 9720tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9721let Inst{12-5} = 0b00000000; 9722let Inst{31-21} = 0b10011101010; 9723let hasNewValue = 1; 9724let opNewValue = 0; 9725let addrMode = PostInc; 9726let accessSize = HalfWordAccess; 9727let mayLoad = 1; 9728let Constraints = "$Rx32 = $Rx32in"; 9729} 9730def L2_loadrh_zomap : HInst< 9731(outs IntRegs:$Rd32), 9732(ins IntRegs:$Rs32), 9733"$Rd32 = memh($Rs32)", 9734tc_4222e6bf, TypeMAPPING> { 9735let hasNewValue = 1; 9736let opNewValue = 0; 9737let isPseudo = 1; 9738let isCodeGenOnly = 1; 9739} 9740def L2_loadrhgp : HInst< 9741(outs IntRegs:$Rd32), 9742(ins u31_1Imm:$Ii), 9743"$Rd32 = memh(gp+#$Ii)", 9744tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 9745let Inst{24-21} = 0b1010; 9746let Inst{31-27} = 0b01001; 9747let hasNewValue = 1; 9748let opNewValue = 0; 9749let accessSize = HalfWordAccess; 9750let mayLoad = 1; 9751let Uses = [GP]; 9752let BaseOpcode = "L4_loadrh_abs"; 9753let isPredicable = 1; 9754let opExtendable = 1; 9755let isExtentSigned = 0; 9756let opExtentBits = 17; 9757let opExtentAlign = 1; 9758} 9759def L2_loadri_io : HInst< 9760(outs IntRegs:$Rd32), 9761(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9762"$Rd32 = memw($Rs32+#$Ii)", 9763tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm { 9764let Inst{24-21} = 0b1100; 9765let Inst{31-27} = 0b10010; 9766let hasNewValue = 1; 9767let opNewValue = 0; 9768let addrMode = BaseImmOffset; 9769let accessSize = WordAccess; 9770let mayLoad = 1; 9771let BaseOpcode = "L2_loadri_io"; 9772let CextOpcode = "L2_loadri"; 9773let isPredicable = 1; 9774let isExtendable = 1; 9775let opExtendable = 2; 9776let isExtentSigned = 1; 9777let opExtentBits = 13; 9778let opExtentAlign = 2; 9779} 9780def L2_loadri_pbr : HInst< 9781(outs IntRegs:$Rd32, IntRegs:$Rx32), 9782(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9783"$Rd32 = memw($Rx32++$Mu2:brev)", 9784tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9785let Inst{12-5} = 0b00000000; 9786let Inst{31-21} = 0b10011111100; 9787let hasNewValue = 1; 9788let opNewValue = 0; 9789let addrMode = PostInc; 9790let accessSize = WordAccess; 9791let mayLoad = 1; 9792let Constraints = "$Rx32 = $Rx32in"; 9793} 9794def L2_loadri_pci : HInst< 9795(outs IntRegs:$Rd32, IntRegs:$Rx32), 9796(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9797"$Rd32 = memw($Rx32++#$Ii:circ($Mu2))", 9798tc_5ceb2f9e, TypeLD>, Enc_27fd0e { 9799let Inst{12-9} = 0b0000; 9800let Inst{31-21} = 0b10011001100; 9801let hasNewValue = 1; 9802let opNewValue = 0; 9803let addrMode = PostInc; 9804let accessSize = WordAccess; 9805let mayLoad = 1; 9806let Uses = [CS]; 9807let Constraints = "$Rx32 = $Rx32in"; 9808} 9809def L2_loadri_pcr : HInst< 9810(outs IntRegs:$Rd32, IntRegs:$Rx32), 9811(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9812"$Rd32 = memw($Rx32++I:circ($Mu2))", 9813tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9814let Inst{12-5} = 0b00010000; 9815let Inst{31-21} = 0b10011001100; 9816let hasNewValue = 1; 9817let opNewValue = 0; 9818let addrMode = PostInc; 9819let accessSize = WordAccess; 9820let mayLoad = 1; 9821let Uses = [CS]; 9822let Constraints = "$Rx32 = $Rx32in"; 9823} 9824def L2_loadri_pi : HInst< 9825(outs IntRegs:$Rd32, IntRegs:$Rx32), 9826(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9827"$Rd32 = memw($Rx32++#$Ii)", 9828tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm { 9829let Inst{13-9} = 0b00000; 9830let Inst{31-21} = 0b10011011100; 9831let hasNewValue = 1; 9832let opNewValue = 0; 9833let addrMode = PostInc; 9834let accessSize = WordAccess; 9835let mayLoad = 1; 9836let BaseOpcode = "L2_loadri_pi"; 9837let CextOpcode = "L2_loadri"; 9838let isPredicable = 1; 9839let Constraints = "$Rx32 = $Rx32in"; 9840} 9841def L2_loadri_pr : HInst< 9842(outs IntRegs:$Rd32, IntRegs:$Rx32), 9843(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9844"$Rd32 = memw($Rx32++$Mu2)", 9845tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9846let Inst{12-5} = 0b00000000; 9847let Inst{31-21} = 0b10011101100; 9848let hasNewValue = 1; 9849let opNewValue = 0; 9850let addrMode = PostInc; 9851let accessSize = WordAccess; 9852let mayLoad = 1; 9853let Constraints = "$Rx32 = $Rx32in"; 9854} 9855def L2_loadri_zomap : HInst< 9856(outs IntRegs:$Rd32), 9857(ins IntRegs:$Rs32), 9858"$Rd32 = memw($Rs32)", 9859tc_4222e6bf, TypeMAPPING> { 9860let hasNewValue = 1; 9861let opNewValue = 0; 9862let isPseudo = 1; 9863let isCodeGenOnly = 1; 9864} 9865def L2_loadrigp : HInst< 9866(outs IntRegs:$Rd32), 9867(ins u30_2Imm:$Ii), 9868"$Rd32 = memw(gp+#$Ii)", 9869tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 9870let Inst{24-21} = 0b1100; 9871let Inst{31-27} = 0b01001; 9872let hasNewValue = 1; 9873let opNewValue = 0; 9874let accessSize = WordAccess; 9875let mayLoad = 1; 9876let Uses = [GP]; 9877let BaseOpcode = "L4_loadri_abs"; 9878let isPredicable = 1; 9879let opExtendable = 1; 9880let isExtentSigned = 0; 9881let opExtentBits = 18; 9882let opExtentAlign = 2; 9883} 9884def L2_loadrub_io : HInst< 9885(outs IntRegs:$Rd32), 9886(ins IntRegs:$Rs32, s32_0Imm:$Ii), 9887"$Rd32 = memub($Rs32+#$Ii)", 9888tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9889let Inst{24-21} = 0b1001; 9890let Inst{31-27} = 0b10010; 9891let hasNewValue = 1; 9892let opNewValue = 0; 9893let addrMode = BaseImmOffset; 9894let accessSize = ByteAccess; 9895let mayLoad = 1; 9896let BaseOpcode = "L2_loadrub_io"; 9897let CextOpcode = "L2_loadrub"; 9898let isPredicable = 1; 9899let isExtendable = 1; 9900let opExtendable = 2; 9901let isExtentSigned = 1; 9902let opExtentBits = 11; 9903let opExtentAlign = 0; 9904} 9905def L2_loadrub_pbr : HInst< 9906(outs IntRegs:$Rd32, IntRegs:$Rx32), 9907(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9908"$Rd32 = memub($Rx32++$Mu2:brev)", 9909tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9910let Inst{12-5} = 0b00000000; 9911let Inst{31-21} = 0b10011111001; 9912let hasNewValue = 1; 9913let opNewValue = 0; 9914let addrMode = PostInc; 9915let accessSize = ByteAccess; 9916let mayLoad = 1; 9917let Constraints = "$Rx32 = $Rx32in"; 9918} 9919def L2_loadrub_pci : HInst< 9920(outs IntRegs:$Rd32, IntRegs:$Rx32), 9921(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9922"$Rd32 = memub($Rx32++#$Ii:circ($Mu2))", 9923tc_5ceb2f9e, TypeLD>, Enc_e0a47a { 9924let Inst{12-9} = 0b0000; 9925let Inst{31-21} = 0b10011001001; 9926let hasNewValue = 1; 9927let opNewValue = 0; 9928let addrMode = PostInc; 9929let accessSize = ByteAccess; 9930let mayLoad = 1; 9931let Uses = [CS]; 9932let Constraints = "$Rx32 = $Rx32in"; 9933} 9934def L2_loadrub_pcr : HInst< 9935(outs IntRegs:$Rd32, IntRegs:$Rx32), 9936(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9937"$Rd32 = memub($Rx32++I:circ($Mu2))", 9938tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9939let Inst{12-5} = 0b00010000; 9940let Inst{31-21} = 0b10011001001; 9941let hasNewValue = 1; 9942let opNewValue = 0; 9943let addrMode = PostInc; 9944let accessSize = ByteAccess; 9945let mayLoad = 1; 9946let Uses = [CS]; 9947let Constraints = "$Rx32 = $Rx32in"; 9948} 9949def L2_loadrub_pi : HInst< 9950(outs IntRegs:$Rd32, IntRegs:$Rx32), 9951(ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9952"$Rd32 = memub($Rx32++#$Ii)", 9953tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 9954let Inst{13-9} = 0b00000; 9955let Inst{31-21} = 0b10011011001; 9956let hasNewValue = 1; 9957let opNewValue = 0; 9958let addrMode = PostInc; 9959let accessSize = ByteAccess; 9960let mayLoad = 1; 9961let BaseOpcode = "L2_loadrub_pi"; 9962let CextOpcode = "L2_loadrub"; 9963let isPredicable = 1; 9964let Constraints = "$Rx32 = $Rx32in"; 9965} 9966def L2_loadrub_pr : HInst< 9967(outs IntRegs:$Rd32, IntRegs:$Rx32), 9968(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9969"$Rd32 = memub($Rx32++$Mu2)", 9970tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9971let Inst{12-5} = 0b00000000; 9972let Inst{31-21} = 0b10011101001; 9973let hasNewValue = 1; 9974let opNewValue = 0; 9975let addrMode = PostInc; 9976let accessSize = ByteAccess; 9977let mayLoad = 1; 9978let Constraints = "$Rx32 = $Rx32in"; 9979} 9980def L2_loadrub_zomap : HInst< 9981(outs IntRegs:$Rd32), 9982(ins IntRegs:$Rs32), 9983"$Rd32 = memub($Rs32)", 9984tc_4222e6bf, TypeMAPPING> { 9985let hasNewValue = 1; 9986let opNewValue = 0; 9987let isPseudo = 1; 9988let isCodeGenOnly = 1; 9989} 9990def L2_loadrubgp : HInst< 9991(outs IntRegs:$Rd32), 9992(ins u32_0Imm:$Ii), 9993"$Rd32 = memub(gp+#$Ii)", 9994tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 9995let Inst{24-21} = 0b1001; 9996let Inst{31-27} = 0b01001; 9997let hasNewValue = 1; 9998let opNewValue = 0; 9999let accessSize = ByteAccess; 10000let mayLoad = 1; 10001let Uses = [GP]; 10002let BaseOpcode = "L4_loadrub_abs"; 10003let isPredicable = 1; 10004let opExtendable = 1; 10005let isExtentSigned = 0; 10006let opExtentBits = 16; 10007let opExtentAlign = 0; 10008} 10009def L2_loadruh_io : HInst< 10010(outs IntRegs:$Rd32), 10011(ins IntRegs:$Rs32, s31_1Imm:$Ii), 10012"$Rd32 = memuh($Rs32+#$Ii)", 10013tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 10014let Inst{24-21} = 0b1011; 10015let Inst{31-27} = 0b10010; 10016let hasNewValue = 1; 10017let opNewValue = 0; 10018let addrMode = BaseImmOffset; 10019let accessSize = HalfWordAccess; 10020let mayLoad = 1; 10021let BaseOpcode = "L2_loadruh_io"; 10022let CextOpcode = "L2_loadruh"; 10023let isPredicable = 1; 10024let isExtendable = 1; 10025let opExtendable = 2; 10026let isExtentSigned = 1; 10027let opExtentBits = 12; 10028let opExtentAlign = 1; 10029} 10030def L2_loadruh_pbr : HInst< 10031(outs IntRegs:$Rd32, IntRegs:$Rx32), 10032(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10033"$Rd32 = memuh($Rx32++$Mu2:brev)", 10034tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10035let Inst{12-5} = 0b00000000; 10036let Inst{31-21} = 0b10011111011; 10037let hasNewValue = 1; 10038let opNewValue = 0; 10039let addrMode = PostInc; 10040let accessSize = HalfWordAccess; 10041let mayLoad = 1; 10042let Constraints = "$Rx32 = $Rx32in"; 10043} 10044def L2_loadruh_pci : HInst< 10045(outs IntRegs:$Rd32, IntRegs:$Rx32), 10046(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 10047"$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))", 10048tc_5ceb2f9e, TypeLD>, Enc_e83554 { 10049let Inst{12-9} = 0b0000; 10050let Inst{31-21} = 0b10011001011; 10051let hasNewValue = 1; 10052let opNewValue = 0; 10053let addrMode = PostInc; 10054let accessSize = HalfWordAccess; 10055let mayLoad = 1; 10056let Uses = [CS]; 10057let Constraints = "$Rx32 = $Rx32in"; 10058} 10059def L2_loadruh_pcr : HInst< 10060(outs IntRegs:$Rd32, IntRegs:$Rx32), 10061(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10062"$Rd32 = memuh($Rx32++I:circ($Mu2))", 10063tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10064let Inst{12-5} = 0b00010000; 10065let Inst{31-21} = 0b10011001011; 10066let hasNewValue = 1; 10067let opNewValue = 0; 10068let addrMode = PostInc; 10069let accessSize = HalfWordAccess; 10070let mayLoad = 1; 10071let Uses = [CS]; 10072let Constraints = "$Rx32 = $Rx32in"; 10073} 10074def L2_loadruh_pi : HInst< 10075(outs IntRegs:$Rd32, IntRegs:$Rx32), 10076(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 10077"$Rd32 = memuh($Rx32++#$Ii)", 10078tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 10079let Inst{13-9} = 0b00000; 10080let Inst{31-21} = 0b10011011011; 10081let hasNewValue = 1; 10082let opNewValue = 0; 10083let addrMode = PostInc; 10084let accessSize = HalfWordAccess; 10085let mayLoad = 1; 10086let BaseOpcode = "L2_loadruh_pi"; 10087let CextOpcode = "L2_loadruh"; 10088let isPredicable = 1; 10089let Constraints = "$Rx32 = $Rx32in"; 10090} 10091def L2_loadruh_pr : HInst< 10092(outs IntRegs:$Rd32, IntRegs:$Rx32), 10093(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10094"$Rd32 = memuh($Rx32++$Mu2)", 10095tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10096let Inst{12-5} = 0b00000000; 10097let Inst{31-21} = 0b10011101011; 10098let hasNewValue = 1; 10099let opNewValue = 0; 10100let addrMode = PostInc; 10101let accessSize = HalfWordAccess; 10102let mayLoad = 1; 10103let Constraints = "$Rx32 = $Rx32in"; 10104} 10105def L2_loadruh_zomap : HInst< 10106(outs IntRegs:$Rd32), 10107(ins IntRegs:$Rs32), 10108"$Rd32 = memuh($Rs32)", 10109tc_4222e6bf, TypeMAPPING> { 10110let hasNewValue = 1; 10111let opNewValue = 0; 10112let isPseudo = 1; 10113let isCodeGenOnly = 1; 10114} 10115def L2_loadruhgp : HInst< 10116(outs IntRegs:$Rd32), 10117(ins u31_1Imm:$Ii), 10118"$Rd32 = memuh(gp+#$Ii)", 10119tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 10120let Inst{24-21} = 0b1011; 10121let Inst{31-27} = 0b01001; 10122let hasNewValue = 1; 10123let opNewValue = 0; 10124let accessSize = HalfWordAccess; 10125let mayLoad = 1; 10126let Uses = [GP]; 10127let BaseOpcode = "L4_loadruh_abs"; 10128let isPredicable = 1; 10129let opExtendable = 1; 10130let isExtentSigned = 0; 10131let opExtentBits = 17; 10132let opExtentAlign = 1; 10133} 10134def L2_loadw_aq : HInst< 10135(outs IntRegs:$Rd32), 10136(ins IntRegs:$Rs32), 10137"$Rd32 = memw_aq($Rs32)", 10138tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> { 10139let Inst{13-5} = 0b001000000; 10140let Inst{31-21} = 0b10010010000; 10141let hasNewValue = 1; 10142let opNewValue = 0; 10143let accessSize = WordAccess; 10144let mayLoad = 1; 10145} 10146def L2_loadw_locked : HInst< 10147(outs IntRegs:$Rd32), 10148(ins IntRegs:$Rs32), 10149"$Rd32 = memw_locked($Rs32)", 10150tc_64b00d8a, TypeLD>, Enc_5e2823 { 10151let Inst{13-5} = 0b000000000; 10152let Inst{31-21} = 0b10010010000; 10153let hasNewValue = 1; 10154let opNewValue = 0; 10155let accessSize = WordAccess; 10156let mayLoad = 1; 10157let isSoloAX = 1; 10158} 10159def L2_ploadrbf_io : HInst< 10160(outs IntRegs:$Rd32), 10161(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10162"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)", 10163tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10164let Inst{13-13} = 0b0; 10165let Inst{31-21} = 0b01000101000; 10166let isPredicated = 1; 10167let isPredicatedFalse = 1; 10168let hasNewValue = 1; 10169let opNewValue = 0; 10170let addrMode = BaseImmOffset; 10171let accessSize = ByteAccess; 10172let mayLoad = 1; 10173let BaseOpcode = "L2_loadrb_io"; 10174let CextOpcode = "L2_loadrb"; 10175let isExtendable = 1; 10176let opExtendable = 3; 10177let isExtentSigned = 0; 10178let opExtentBits = 6; 10179let opExtentAlign = 0; 10180} 10181def L2_ploadrbf_pi : HInst< 10182(outs IntRegs:$Rd32, IntRegs:$Rx32), 10183(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10184"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)", 10185tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10186let Inst{13-11} = 0b101; 10187let Inst{31-21} = 0b10011011000; 10188let isPredicated = 1; 10189let isPredicatedFalse = 1; 10190let hasNewValue = 1; 10191let opNewValue = 0; 10192let addrMode = PostInc; 10193let accessSize = ByteAccess; 10194let mayLoad = 1; 10195let BaseOpcode = "L2_loadrb_pi"; 10196let Constraints = "$Rx32 = $Rx32in"; 10197} 10198def L2_ploadrbf_zomap : HInst< 10199(outs IntRegs:$Rd32), 10200(ins PredRegs:$Pt4, IntRegs:$Rs32), 10201"if (!$Pt4) $Rd32 = memb($Rs32)", 10202tc_fedb7e19, TypeMAPPING> { 10203let hasNewValue = 1; 10204let opNewValue = 0; 10205let isPseudo = 1; 10206let isCodeGenOnly = 1; 10207} 10208def L2_ploadrbfnew_io : HInst< 10209(outs IntRegs:$Rd32), 10210(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10211"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10212tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10213let Inst{13-13} = 0b0; 10214let Inst{31-21} = 0b01000111000; 10215let isPredicated = 1; 10216let isPredicatedFalse = 1; 10217let hasNewValue = 1; 10218let opNewValue = 0; 10219let addrMode = BaseImmOffset; 10220let accessSize = ByteAccess; 10221let isPredicatedNew = 1; 10222let mayLoad = 1; 10223let BaseOpcode = "L2_loadrb_io"; 10224let CextOpcode = "L2_loadrb"; 10225let isExtendable = 1; 10226let opExtendable = 3; 10227let isExtentSigned = 0; 10228let opExtentBits = 6; 10229let opExtentAlign = 0; 10230} 10231def L2_ploadrbfnew_pi : HInst< 10232(outs IntRegs:$Rd32, IntRegs:$Rx32), 10233(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10234"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10235tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10236let Inst{13-11} = 0b111; 10237let Inst{31-21} = 0b10011011000; 10238let isPredicated = 1; 10239let isPredicatedFalse = 1; 10240let hasNewValue = 1; 10241let opNewValue = 0; 10242let addrMode = PostInc; 10243let accessSize = ByteAccess; 10244let isPredicatedNew = 1; 10245let mayLoad = 1; 10246let BaseOpcode = "L2_loadrb_pi"; 10247let Constraints = "$Rx32 = $Rx32in"; 10248} 10249def L2_ploadrbfnew_zomap : HInst< 10250(outs IntRegs:$Rd32), 10251(ins PredRegs:$Pt4, IntRegs:$Rs32), 10252"if (!$Pt4.new) $Rd32 = memb($Rs32)", 10253tc_075c8dd8, TypeMAPPING> { 10254let hasNewValue = 1; 10255let opNewValue = 0; 10256let isPseudo = 1; 10257let isCodeGenOnly = 1; 10258} 10259def L2_ploadrbt_io : HInst< 10260(outs IntRegs:$Rd32), 10261(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10262"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)", 10263tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10264let Inst{13-13} = 0b0; 10265let Inst{31-21} = 0b01000001000; 10266let isPredicated = 1; 10267let hasNewValue = 1; 10268let opNewValue = 0; 10269let addrMode = BaseImmOffset; 10270let accessSize = ByteAccess; 10271let mayLoad = 1; 10272let BaseOpcode = "L2_loadrb_io"; 10273let CextOpcode = "L2_loadrb"; 10274let isExtendable = 1; 10275let opExtendable = 3; 10276let isExtentSigned = 0; 10277let opExtentBits = 6; 10278let opExtentAlign = 0; 10279} 10280def L2_ploadrbt_pi : HInst< 10281(outs IntRegs:$Rd32, IntRegs:$Rx32), 10282(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10283"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)", 10284tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10285let Inst{13-11} = 0b100; 10286let Inst{31-21} = 0b10011011000; 10287let isPredicated = 1; 10288let hasNewValue = 1; 10289let opNewValue = 0; 10290let addrMode = PostInc; 10291let accessSize = ByteAccess; 10292let mayLoad = 1; 10293let BaseOpcode = "L2_loadrb_pi"; 10294let Constraints = "$Rx32 = $Rx32in"; 10295} 10296def L2_ploadrbt_zomap : HInst< 10297(outs IntRegs:$Rd32), 10298(ins PredRegs:$Pt4, IntRegs:$Rs32), 10299"if ($Pt4) $Rd32 = memb($Rs32)", 10300tc_fedb7e19, TypeMAPPING> { 10301let hasNewValue = 1; 10302let opNewValue = 0; 10303let isPseudo = 1; 10304let isCodeGenOnly = 1; 10305} 10306def L2_ploadrbtnew_io : HInst< 10307(outs IntRegs:$Rd32), 10308(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10309"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10310tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10311let Inst{13-13} = 0b0; 10312let Inst{31-21} = 0b01000011000; 10313let isPredicated = 1; 10314let hasNewValue = 1; 10315let opNewValue = 0; 10316let addrMode = BaseImmOffset; 10317let accessSize = ByteAccess; 10318let isPredicatedNew = 1; 10319let mayLoad = 1; 10320let BaseOpcode = "L2_loadrb_io"; 10321let CextOpcode = "L2_loadrb"; 10322let isExtendable = 1; 10323let opExtendable = 3; 10324let isExtentSigned = 0; 10325let opExtentBits = 6; 10326let opExtentAlign = 0; 10327} 10328def L2_ploadrbtnew_pi : HInst< 10329(outs IntRegs:$Rd32, IntRegs:$Rx32), 10330(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10331"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10332tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10333let Inst{13-11} = 0b110; 10334let Inst{31-21} = 0b10011011000; 10335let isPredicated = 1; 10336let hasNewValue = 1; 10337let opNewValue = 0; 10338let addrMode = PostInc; 10339let accessSize = ByteAccess; 10340let isPredicatedNew = 1; 10341let mayLoad = 1; 10342let BaseOpcode = "L2_loadrb_pi"; 10343let Constraints = "$Rx32 = $Rx32in"; 10344} 10345def L2_ploadrbtnew_zomap : HInst< 10346(outs IntRegs:$Rd32), 10347(ins PredRegs:$Pt4, IntRegs:$Rs32), 10348"if ($Pt4.new) $Rd32 = memb($Rs32)", 10349tc_075c8dd8, TypeMAPPING> { 10350let hasNewValue = 1; 10351let opNewValue = 0; 10352let isPseudo = 1; 10353let isCodeGenOnly = 1; 10354} 10355def L2_ploadrdf_io : HInst< 10356(outs DoubleRegs:$Rdd32), 10357(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10358"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10359tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10360let Inst{13-13} = 0b0; 10361let Inst{31-21} = 0b01000101110; 10362let isPredicated = 1; 10363let isPredicatedFalse = 1; 10364let addrMode = BaseImmOffset; 10365let accessSize = DoubleWordAccess; 10366let mayLoad = 1; 10367let BaseOpcode = "L2_loadrd_io"; 10368let CextOpcode = "L2_loadrd"; 10369let isExtendable = 1; 10370let opExtendable = 3; 10371let isExtentSigned = 0; 10372let opExtentBits = 9; 10373let opExtentAlign = 3; 10374} 10375def L2_ploadrdf_pi : HInst< 10376(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10377(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10378"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10379tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10380let Inst{13-11} = 0b101; 10381let Inst{31-21} = 0b10011011110; 10382let isPredicated = 1; 10383let isPredicatedFalse = 1; 10384let addrMode = PostInc; 10385let accessSize = DoubleWordAccess; 10386let mayLoad = 1; 10387let BaseOpcode = "L2_loadrd_pi"; 10388let Constraints = "$Rx32 = $Rx32in"; 10389} 10390def L2_ploadrdf_zomap : HInst< 10391(outs DoubleRegs:$Rdd32), 10392(ins PredRegs:$Pt4, IntRegs:$Rs32), 10393"if (!$Pt4) $Rdd32 = memd($Rs32)", 10394tc_fedb7e19, TypeMAPPING> { 10395let isPseudo = 1; 10396let isCodeGenOnly = 1; 10397} 10398def L2_ploadrdfnew_io : HInst< 10399(outs DoubleRegs:$Rdd32), 10400(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10401"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10402tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10403let Inst{13-13} = 0b0; 10404let Inst{31-21} = 0b01000111110; 10405let isPredicated = 1; 10406let isPredicatedFalse = 1; 10407let addrMode = BaseImmOffset; 10408let accessSize = DoubleWordAccess; 10409let isPredicatedNew = 1; 10410let mayLoad = 1; 10411let BaseOpcode = "L2_loadrd_io"; 10412let CextOpcode = "L2_loadrd"; 10413let isExtendable = 1; 10414let opExtendable = 3; 10415let isExtentSigned = 0; 10416let opExtentBits = 9; 10417let opExtentAlign = 3; 10418} 10419def L2_ploadrdfnew_pi : HInst< 10420(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10421(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10422"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10423tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10424let Inst{13-11} = 0b111; 10425let Inst{31-21} = 0b10011011110; 10426let isPredicated = 1; 10427let isPredicatedFalse = 1; 10428let addrMode = PostInc; 10429let accessSize = DoubleWordAccess; 10430let isPredicatedNew = 1; 10431let mayLoad = 1; 10432let BaseOpcode = "L2_loadrd_pi"; 10433let Constraints = "$Rx32 = $Rx32in"; 10434} 10435def L2_ploadrdfnew_zomap : HInst< 10436(outs DoubleRegs:$Rdd32), 10437(ins PredRegs:$Pt4, IntRegs:$Rs32), 10438"if (!$Pt4.new) $Rdd32 = memd($Rs32)", 10439tc_075c8dd8, TypeMAPPING> { 10440let isPseudo = 1; 10441let isCodeGenOnly = 1; 10442} 10443def L2_ploadrdt_io : HInst< 10444(outs DoubleRegs:$Rdd32), 10445(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10446"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10447tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10448let Inst{13-13} = 0b0; 10449let Inst{31-21} = 0b01000001110; 10450let isPredicated = 1; 10451let addrMode = BaseImmOffset; 10452let accessSize = DoubleWordAccess; 10453let mayLoad = 1; 10454let BaseOpcode = "L2_loadrd_io"; 10455let CextOpcode = "L2_loadrd"; 10456let isExtendable = 1; 10457let opExtendable = 3; 10458let isExtentSigned = 0; 10459let opExtentBits = 9; 10460let opExtentAlign = 3; 10461} 10462def L2_ploadrdt_pi : HInst< 10463(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10464(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10465"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10466tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10467let Inst{13-11} = 0b100; 10468let Inst{31-21} = 0b10011011110; 10469let isPredicated = 1; 10470let addrMode = PostInc; 10471let accessSize = DoubleWordAccess; 10472let mayLoad = 1; 10473let BaseOpcode = "L2_loadrd_pi"; 10474let Constraints = "$Rx32 = $Rx32in"; 10475} 10476def L2_ploadrdt_zomap : HInst< 10477(outs DoubleRegs:$Rdd32), 10478(ins PredRegs:$Pt4, IntRegs:$Rs32), 10479"if ($Pt4) $Rdd32 = memd($Rs32)", 10480tc_fedb7e19, TypeMAPPING> { 10481let isPseudo = 1; 10482let isCodeGenOnly = 1; 10483} 10484def L2_ploadrdtnew_io : HInst< 10485(outs DoubleRegs:$Rdd32), 10486(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10487"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10488tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10489let Inst{13-13} = 0b0; 10490let Inst{31-21} = 0b01000011110; 10491let isPredicated = 1; 10492let addrMode = BaseImmOffset; 10493let accessSize = DoubleWordAccess; 10494let isPredicatedNew = 1; 10495let mayLoad = 1; 10496let BaseOpcode = "L2_loadrd_io"; 10497let CextOpcode = "L2_loadrd"; 10498let isExtendable = 1; 10499let opExtendable = 3; 10500let isExtentSigned = 0; 10501let opExtentBits = 9; 10502let opExtentAlign = 3; 10503} 10504def L2_ploadrdtnew_pi : HInst< 10505(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10506(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10507"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10508tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10509let Inst{13-11} = 0b110; 10510let Inst{31-21} = 0b10011011110; 10511let isPredicated = 1; 10512let addrMode = PostInc; 10513let accessSize = DoubleWordAccess; 10514let isPredicatedNew = 1; 10515let mayLoad = 1; 10516let BaseOpcode = "L2_loadrd_pi"; 10517let Constraints = "$Rx32 = $Rx32in"; 10518} 10519def L2_ploadrdtnew_zomap : HInst< 10520(outs DoubleRegs:$Rdd32), 10521(ins PredRegs:$Pt4, IntRegs:$Rs32), 10522"if ($Pt4.new) $Rdd32 = memd($Rs32)", 10523tc_075c8dd8, TypeMAPPING> { 10524let isPseudo = 1; 10525let isCodeGenOnly = 1; 10526} 10527def L2_ploadrhf_io : HInst< 10528(outs IntRegs:$Rd32), 10529(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10530"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)", 10531tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10532let Inst{13-13} = 0b0; 10533let Inst{31-21} = 0b01000101010; 10534let isPredicated = 1; 10535let isPredicatedFalse = 1; 10536let hasNewValue = 1; 10537let opNewValue = 0; 10538let addrMode = BaseImmOffset; 10539let accessSize = HalfWordAccess; 10540let mayLoad = 1; 10541let BaseOpcode = "L2_loadrh_io"; 10542let CextOpcode = "L2_loadrh"; 10543let isExtendable = 1; 10544let opExtendable = 3; 10545let isExtentSigned = 0; 10546let opExtentBits = 7; 10547let opExtentAlign = 1; 10548} 10549def L2_ploadrhf_pi : HInst< 10550(outs IntRegs:$Rd32, IntRegs:$Rx32), 10551(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10552"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)", 10553tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10554let Inst{13-11} = 0b101; 10555let Inst{31-21} = 0b10011011010; 10556let isPredicated = 1; 10557let isPredicatedFalse = 1; 10558let hasNewValue = 1; 10559let opNewValue = 0; 10560let addrMode = PostInc; 10561let accessSize = HalfWordAccess; 10562let mayLoad = 1; 10563let BaseOpcode = "L2_loadrh_pi"; 10564let Constraints = "$Rx32 = $Rx32in"; 10565} 10566def L2_ploadrhf_zomap : HInst< 10567(outs IntRegs:$Rd32), 10568(ins PredRegs:$Pt4, IntRegs:$Rs32), 10569"if (!$Pt4) $Rd32 = memh($Rs32)", 10570tc_fedb7e19, TypeMAPPING> { 10571let hasNewValue = 1; 10572let opNewValue = 0; 10573let isPseudo = 1; 10574let isCodeGenOnly = 1; 10575} 10576def L2_ploadrhfnew_io : HInst< 10577(outs IntRegs:$Rd32), 10578(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10579"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10580tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10581let Inst{13-13} = 0b0; 10582let Inst{31-21} = 0b01000111010; 10583let isPredicated = 1; 10584let isPredicatedFalse = 1; 10585let hasNewValue = 1; 10586let opNewValue = 0; 10587let addrMode = BaseImmOffset; 10588let accessSize = HalfWordAccess; 10589let isPredicatedNew = 1; 10590let mayLoad = 1; 10591let BaseOpcode = "L2_loadrh_io"; 10592let CextOpcode = "L2_loadrh"; 10593let isExtendable = 1; 10594let opExtendable = 3; 10595let isExtentSigned = 0; 10596let opExtentBits = 7; 10597let opExtentAlign = 1; 10598} 10599def L2_ploadrhfnew_pi : HInst< 10600(outs IntRegs:$Rd32, IntRegs:$Rx32), 10601(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10602"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10603tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10604let Inst{13-11} = 0b111; 10605let Inst{31-21} = 0b10011011010; 10606let isPredicated = 1; 10607let isPredicatedFalse = 1; 10608let hasNewValue = 1; 10609let opNewValue = 0; 10610let addrMode = PostInc; 10611let accessSize = HalfWordAccess; 10612let isPredicatedNew = 1; 10613let mayLoad = 1; 10614let BaseOpcode = "L2_loadrh_pi"; 10615let Constraints = "$Rx32 = $Rx32in"; 10616} 10617def L2_ploadrhfnew_zomap : HInst< 10618(outs IntRegs:$Rd32), 10619(ins PredRegs:$Pt4, IntRegs:$Rs32), 10620"if (!$Pt4.new) $Rd32 = memh($Rs32)", 10621tc_075c8dd8, TypeMAPPING> { 10622let hasNewValue = 1; 10623let opNewValue = 0; 10624let isPseudo = 1; 10625let isCodeGenOnly = 1; 10626} 10627def L2_ploadrht_io : HInst< 10628(outs IntRegs:$Rd32), 10629(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10630"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)", 10631tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10632let Inst{13-13} = 0b0; 10633let Inst{31-21} = 0b01000001010; 10634let isPredicated = 1; 10635let hasNewValue = 1; 10636let opNewValue = 0; 10637let addrMode = BaseImmOffset; 10638let accessSize = HalfWordAccess; 10639let mayLoad = 1; 10640let BaseOpcode = "L2_loadrh_io"; 10641let CextOpcode = "L2_loadrh"; 10642let isExtendable = 1; 10643let opExtendable = 3; 10644let isExtentSigned = 0; 10645let opExtentBits = 7; 10646let opExtentAlign = 1; 10647} 10648def L2_ploadrht_pi : HInst< 10649(outs IntRegs:$Rd32, IntRegs:$Rx32), 10650(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10651"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)", 10652tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10653let Inst{13-11} = 0b100; 10654let Inst{31-21} = 0b10011011010; 10655let isPredicated = 1; 10656let hasNewValue = 1; 10657let opNewValue = 0; 10658let addrMode = PostInc; 10659let accessSize = HalfWordAccess; 10660let mayLoad = 1; 10661let BaseOpcode = "L2_loadrh_pi"; 10662let Constraints = "$Rx32 = $Rx32in"; 10663} 10664def L2_ploadrht_zomap : HInst< 10665(outs IntRegs:$Rd32), 10666(ins PredRegs:$Pt4, IntRegs:$Rs32), 10667"if ($Pt4) $Rd32 = memh($Rs32)", 10668tc_fedb7e19, TypeMAPPING> { 10669let hasNewValue = 1; 10670let opNewValue = 0; 10671let isPseudo = 1; 10672let isCodeGenOnly = 1; 10673} 10674def L2_ploadrhtnew_io : HInst< 10675(outs IntRegs:$Rd32), 10676(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10677"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10678tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10679let Inst{13-13} = 0b0; 10680let Inst{31-21} = 0b01000011010; 10681let isPredicated = 1; 10682let hasNewValue = 1; 10683let opNewValue = 0; 10684let addrMode = BaseImmOffset; 10685let accessSize = HalfWordAccess; 10686let isPredicatedNew = 1; 10687let mayLoad = 1; 10688let BaseOpcode = "L2_loadrh_io"; 10689let CextOpcode = "L2_loadrh"; 10690let isExtendable = 1; 10691let opExtendable = 3; 10692let isExtentSigned = 0; 10693let opExtentBits = 7; 10694let opExtentAlign = 1; 10695} 10696def L2_ploadrhtnew_pi : HInst< 10697(outs IntRegs:$Rd32, IntRegs:$Rx32), 10698(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10699"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10700tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10701let Inst{13-11} = 0b110; 10702let Inst{31-21} = 0b10011011010; 10703let isPredicated = 1; 10704let hasNewValue = 1; 10705let opNewValue = 0; 10706let addrMode = PostInc; 10707let accessSize = HalfWordAccess; 10708let isPredicatedNew = 1; 10709let mayLoad = 1; 10710let BaseOpcode = "L2_loadrh_pi"; 10711let Constraints = "$Rx32 = $Rx32in"; 10712} 10713def L2_ploadrhtnew_zomap : HInst< 10714(outs IntRegs:$Rd32), 10715(ins PredRegs:$Pt4, IntRegs:$Rs32), 10716"if ($Pt4.new) $Rd32 = memh($Rs32)", 10717tc_075c8dd8, TypeMAPPING> { 10718let hasNewValue = 1; 10719let opNewValue = 0; 10720let isPseudo = 1; 10721let isCodeGenOnly = 1; 10722} 10723def L2_ploadrif_io : HInst< 10724(outs IntRegs:$Rd32), 10725(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10726"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)", 10727tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10728let Inst{13-13} = 0b0; 10729let Inst{31-21} = 0b01000101100; 10730let isPredicated = 1; 10731let isPredicatedFalse = 1; 10732let hasNewValue = 1; 10733let opNewValue = 0; 10734let addrMode = BaseImmOffset; 10735let accessSize = WordAccess; 10736let mayLoad = 1; 10737let BaseOpcode = "L2_loadri_io"; 10738let CextOpcode = "L2_loadri"; 10739let isExtendable = 1; 10740let opExtendable = 3; 10741let isExtentSigned = 0; 10742let opExtentBits = 8; 10743let opExtentAlign = 2; 10744} 10745def L2_ploadrif_pi : HInst< 10746(outs IntRegs:$Rd32, IntRegs:$Rx32), 10747(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10748"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)", 10749tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10750let Inst{13-11} = 0b101; 10751let Inst{31-21} = 0b10011011100; 10752let isPredicated = 1; 10753let isPredicatedFalse = 1; 10754let hasNewValue = 1; 10755let opNewValue = 0; 10756let addrMode = PostInc; 10757let accessSize = WordAccess; 10758let mayLoad = 1; 10759let BaseOpcode = "L2_loadri_pi"; 10760let Constraints = "$Rx32 = $Rx32in"; 10761} 10762def L2_ploadrif_zomap : HInst< 10763(outs IntRegs:$Rd32), 10764(ins PredRegs:$Pt4, IntRegs:$Rs32), 10765"if (!$Pt4) $Rd32 = memw($Rs32)", 10766tc_fedb7e19, TypeMAPPING> { 10767let hasNewValue = 1; 10768let opNewValue = 0; 10769let isPseudo = 1; 10770let isCodeGenOnly = 1; 10771} 10772def L2_ploadrifnew_io : HInst< 10773(outs IntRegs:$Rd32), 10774(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10775"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10776tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10777let Inst{13-13} = 0b0; 10778let Inst{31-21} = 0b01000111100; 10779let isPredicated = 1; 10780let isPredicatedFalse = 1; 10781let hasNewValue = 1; 10782let opNewValue = 0; 10783let addrMode = BaseImmOffset; 10784let accessSize = WordAccess; 10785let isPredicatedNew = 1; 10786let mayLoad = 1; 10787let BaseOpcode = "L2_loadri_io"; 10788let CextOpcode = "L2_loadri"; 10789let isExtendable = 1; 10790let opExtendable = 3; 10791let isExtentSigned = 0; 10792let opExtentBits = 8; 10793let opExtentAlign = 2; 10794} 10795def L2_ploadrifnew_pi : HInst< 10796(outs IntRegs:$Rd32, IntRegs:$Rx32), 10797(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10798"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10799tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10800let Inst{13-11} = 0b111; 10801let Inst{31-21} = 0b10011011100; 10802let isPredicated = 1; 10803let isPredicatedFalse = 1; 10804let hasNewValue = 1; 10805let opNewValue = 0; 10806let addrMode = PostInc; 10807let accessSize = WordAccess; 10808let isPredicatedNew = 1; 10809let mayLoad = 1; 10810let BaseOpcode = "L2_loadri_pi"; 10811let Constraints = "$Rx32 = $Rx32in"; 10812} 10813def L2_ploadrifnew_zomap : HInst< 10814(outs IntRegs:$Rd32), 10815(ins PredRegs:$Pt4, IntRegs:$Rs32), 10816"if (!$Pt4.new) $Rd32 = memw($Rs32)", 10817tc_075c8dd8, TypeMAPPING> { 10818let hasNewValue = 1; 10819let opNewValue = 0; 10820let isPseudo = 1; 10821let isCodeGenOnly = 1; 10822} 10823def L2_ploadrit_io : HInst< 10824(outs IntRegs:$Rd32), 10825(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10826"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)", 10827tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10828let Inst{13-13} = 0b0; 10829let Inst{31-21} = 0b01000001100; 10830let isPredicated = 1; 10831let hasNewValue = 1; 10832let opNewValue = 0; 10833let addrMode = BaseImmOffset; 10834let accessSize = WordAccess; 10835let mayLoad = 1; 10836let BaseOpcode = "L2_loadri_io"; 10837let CextOpcode = "L2_loadri"; 10838let isExtendable = 1; 10839let opExtendable = 3; 10840let isExtentSigned = 0; 10841let opExtentBits = 8; 10842let opExtentAlign = 2; 10843} 10844def L2_ploadrit_pi : HInst< 10845(outs IntRegs:$Rd32, IntRegs:$Rx32), 10846(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10847"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)", 10848tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10849let Inst{13-11} = 0b100; 10850let Inst{31-21} = 0b10011011100; 10851let isPredicated = 1; 10852let hasNewValue = 1; 10853let opNewValue = 0; 10854let addrMode = PostInc; 10855let accessSize = WordAccess; 10856let mayLoad = 1; 10857let BaseOpcode = "L2_loadri_pi"; 10858let Constraints = "$Rx32 = $Rx32in"; 10859} 10860def L2_ploadrit_zomap : HInst< 10861(outs IntRegs:$Rd32), 10862(ins PredRegs:$Pt4, IntRegs:$Rs32), 10863"if ($Pt4) $Rd32 = memw($Rs32)", 10864tc_fedb7e19, TypeMAPPING> { 10865let hasNewValue = 1; 10866let opNewValue = 0; 10867let isPseudo = 1; 10868let isCodeGenOnly = 1; 10869} 10870def L2_ploadritnew_io : HInst< 10871(outs IntRegs:$Rd32), 10872(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10873"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10874tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10875let Inst{13-13} = 0b0; 10876let Inst{31-21} = 0b01000011100; 10877let isPredicated = 1; 10878let hasNewValue = 1; 10879let opNewValue = 0; 10880let addrMode = BaseImmOffset; 10881let accessSize = WordAccess; 10882let isPredicatedNew = 1; 10883let mayLoad = 1; 10884let BaseOpcode = "L2_loadri_io"; 10885let CextOpcode = "L2_loadri"; 10886let isExtendable = 1; 10887let opExtendable = 3; 10888let isExtentSigned = 0; 10889let opExtentBits = 8; 10890let opExtentAlign = 2; 10891} 10892def L2_ploadritnew_pi : HInst< 10893(outs IntRegs:$Rd32, IntRegs:$Rx32), 10894(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10895"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10896tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10897let Inst{13-11} = 0b110; 10898let Inst{31-21} = 0b10011011100; 10899let isPredicated = 1; 10900let hasNewValue = 1; 10901let opNewValue = 0; 10902let addrMode = PostInc; 10903let accessSize = WordAccess; 10904let isPredicatedNew = 1; 10905let mayLoad = 1; 10906let BaseOpcode = "L2_loadri_pi"; 10907let Constraints = "$Rx32 = $Rx32in"; 10908} 10909def L2_ploadritnew_zomap : HInst< 10910(outs IntRegs:$Rd32), 10911(ins PredRegs:$Pt4, IntRegs:$Rs32), 10912"if ($Pt4.new) $Rd32 = memw($Rs32)", 10913tc_075c8dd8, TypeMAPPING> { 10914let hasNewValue = 1; 10915let opNewValue = 0; 10916let isPseudo = 1; 10917let isCodeGenOnly = 1; 10918} 10919def L2_ploadrubf_io : HInst< 10920(outs IntRegs:$Rd32), 10921(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10922"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)", 10923tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10924let Inst{13-13} = 0b0; 10925let Inst{31-21} = 0b01000101001; 10926let isPredicated = 1; 10927let isPredicatedFalse = 1; 10928let hasNewValue = 1; 10929let opNewValue = 0; 10930let addrMode = BaseImmOffset; 10931let accessSize = ByteAccess; 10932let mayLoad = 1; 10933let BaseOpcode = "L2_loadrub_io"; 10934let CextOpcode = "L2_loadrub"; 10935let isExtendable = 1; 10936let opExtendable = 3; 10937let isExtentSigned = 0; 10938let opExtentBits = 6; 10939let opExtentAlign = 0; 10940} 10941def L2_ploadrubf_pi : HInst< 10942(outs IntRegs:$Rd32, IntRegs:$Rx32), 10943(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10944"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)", 10945tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10946let Inst{13-11} = 0b101; 10947let Inst{31-21} = 0b10011011001; 10948let isPredicated = 1; 10949let isPredicatedFalse = 1; 10950let hasNewValue = 1; 10951let opNewValue = 0; 10952let addrMode = PostInc; 10953let accessSize = ByteAccess; 10954let mayLoad = 1; 10955let BaseOpcode = "L2_loadrub_pi"; 10956let Constraints = "$Rx32 = $Rx32in"; 10957} 10958def L2_ploadrubf_zomap : HInst< 10959(outs IntRegs:$Rd32), 10960(ins PredRegs:$Pt4, IntRegs:$Rs32), 10961"if (!$Pt4) $Rd32 = memub($Rs32)", 10962tc_fedb7e19, TypeMAPPING> { 10963let hasNewValue = 1; 10964let opNewValue = 0; 10965let isPseudo = 1; 10966let isCodeGenOnly = 1; 10967} 10968def L2_ploadrubfnew_io : HInst< 10969(outs IntRegs:$Rd32), 10970(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10971"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 10972tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10973let Inst{13-13} = 0b0; 10974let Inst{31-21} = 0b01000111001; 10975let isPredicated = 1; 10976let isPredicatedFalse = 1; 10977let hasNewValue = 1; 10978let opNewValue = 0; 10979let addrMode = BaseImmOffset; 10980let accessSize = ByteAccess; 10981let isPredicatedNew = 1; 10982let mayLoad = 1; 10983let BaseOpcode = "L2_loadrub_io"; 10984let CextOpcode = "L2_loadrub"; 10985let isExtendable = 1; 10986let opExtendable = 3; 10987let isExtentSigned = 0; 10988let opExtentBits = 6; 10989let opExtentAlign = 0; 10990} 10991def L2_ploadrubfnew_pi : HInst< 10992(outs IntRegs:$Rd32, IntRegs:$Rx32), 10993(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10994"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 10995tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10996let Inst{13-11} = 0b111; 10997let Inst{31-21} = 0b10011011001; 10998let isPredicated = 1; 10999let isPredicatedFalse = 1; 11000let hasNewValue = 1; 11001let opNewValue = 0; 11002let addrMode = PostInc; 11003let accessSize = ByteAccess; 11004let isPredicatedNew = 1; 11005let mayLoad = 1; 11006let BaseOpcode = "L2_loadrub_pi"; 11007let Constraints = "$Rx32 = $Rx32in"; 11008} 11009def L2_ploadrubfnew_zomap : HInst< 11010(outs IntRegs:$Rd32), 11011(ins PredRegs:$Pt4, IntRegs:$Rs32), 11012"if (!$Pt4.new) $Rd32 = memub($Rs32)", 11013tc_075c8dd8, TypeMAPPING> { 11014let hasNewValue = 1; 11015let opNewValue = 0; 11016let isPseudo = 1; 11017let isCodeGenOnly = 1; 11018} 11019def L2_ploadrubt_io : HInst< 11020(outs IntRegs:$Rd32), 11021(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11022"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)", 11023tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11024let Inst{13-13} = 0b0; 11025let Inst{31-21} = 0b01000001001; 11026let isPredicated = 1; 11027let hasNewValue = 1; 11028let opNewValue = 0; 11029let addrMode = BaseImmOffset; 11030let accessSize = ByteAccess; 11031let mayLoad = 1; 11032let BaseOpcode = "L2_loadrub_io"; 11033let CextOpcode = "L2_loadrub"; 11034let isExtendable = 1; 11035let opExtendable = 3; 11036let isExtentSigned = 0; 11037let opExtentBits = 6; 11038let opExtentAlign = 0; 11039} 11040def L2_ploadrubt_pi : HInst< 11041(outs IntRegs:$Rd32, IntRegs:$Rx32), 11042(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11043"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)", 11044tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 11045let Inst{13-11} = 0b100; 11046let Inst{31-21} = 0b10011011001; 11047let isPredicated = 1; 11048let hasNewValue = 1; 11049let opNewValue = 0; 11050let addrMode = PostInc; 11051let accessSize = ByteAccess; 11052let mayLoad = 1; 11053let BaseOpcode = "L2_loadrub_pi"; 11054let Constraints = "$Rx32 = $Rx32in"; 11055} 11056def L2_ploadrubt_zomap : HInst< 11057(outs IntRegs:$Rd32), 11058(ins PredRegs:$Pt4, IntRegs:$Rs32), 11059"if ($Pt4) $Rd32 = memub($Rs32)", 11060tc_fedb7e19, TypeMAPPING> { 11061let hasNewValue = 1; 11062let opNewValue = 0; 11063let isPseudo = 1; 11064let isCodeGenOnly = 1; 11065} 11066def L2_ploadrubtnew_io : HInst< 11067(outs IntRegs:$Rd32), 11068(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11069"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 11070tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11071let Inst{13-13} = 0b0; 11072let Inst{31-21} = 0b01000011001; 11073let isPredicated = 1; 11074let hasNewValue = 1; 11075let opNewValue = 0; 11076let addrMode = BaseImmOffset; 11077let accessSize = ByteAccess; 11078let isPredicatedNew = 1; 11079let mayLoad = 1; 11080let BaseOpcode = "L2_loadrub_io"; 11081let CextOpcode = "L2_loadrub"; 11082let isExtendable = 1; 11083let opExtendable = 3; 11084let isExtentSigned = 0; 11085let opExtentBits = 6; 11086let opExtentAlign = 0; 11087} 11088def L2_ploadrubtnew_pi : HInst< 11089(outs IntRegs:$Rd32, IntRegs:$Rx32), 11090(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11091"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 11092tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 11093let Inst{13-11} = 0b110; 11094let Inst{31-21} = 0b10011011001; 11095let isPredicated = 1; 11096let hasNewValue = 1; 11097let opNewValue = 0; 11098let addrMode = PostInc; 11099let accessSize = ByteAccess; 11100let isPredicatedNew = 1; 11101let mayLoad = 1; 11102let BaseOpcode = "L2_loadrub_pi"; 11103let Constraints = "$Rx32 = $Rx32in"; 11104} 11105def L2_ploadrubtnew_zomap : HInst< 11106(outs IntRegs:$Rd32), 11107(ins PredRegs:$Pt4, IntRegs:$Rs32), 11108"if ($Pt4.new) $Rd32 = memub($Rs32)", 11109tc_075c8dd8, TypeMAPPING> { 11110let hasNewValue = 1; 11111let opNewValue = 0; 11112let isPseudo = 1; 11113let isCodeGenOnly = 1; 11114} 11115def L2_ploadruhf_io : HInst< 11116(outs IntRegs:$Rd32), 11117(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11118"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11119tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11120let Inst{13-13} = 0b0; 11121let Inst{31-21} = 0b01000101011; 11122let isPredicated = 1; 11123let isPredicatedFalse = 1; 11124let hasNewValue = 1; 11125let opNewValue = 0; 11126let addrMode = BaseImmOffset; 11127let accessSize = HalfWordAccess; 11128let mayLoad = 1; 11129let BaseOpcode = "L2_loadruh_io"; 11130let CextOpcode = "L2_loadruh"; 11131let isExtendable = 1; 11132let opExtendable = 3; 11133let isExtentSigned = 0; 11134let opExtentBits = 7; 11135let opExtentAlign = 1; 11136} 11137def L2_ploadruhf_pi : HInst< 11138(outs IntRegs:$Rd32, IntRegs:$Rx32), 11139(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11140"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11141tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11142let Inst{13-11} = 0b101; 11143let Inst{31-21} = 0b10011011011; 11144let isPredicated = 1; 11145let isPredicatedFalse = 1; 11146let hasNewValue = 1; 11147let opNewValue = 0; 11148let addrMode = PostInc; 11149let accessSize = HalfWordAccess; 11150let mayLoad = 1; 11151let BaseOpcode = "L2_loadruh_pi"; 11152let Constraints = "$Rx32 = $Rx32in"; 11153} 11154def L2_ploadruhf_zomap : HInst< 11155(outs IntRegs:$Rd32), 11156(ins PredRegs:$Pt4, IntRegs:$Rs32), 11157"if (!$Pt4) $Rd32 = memuh($Rs32)", 11158tc_fedb7e19, TypeMAPPING> { 11159let hasNewValue = 1; 11160let opNewValue = 0; 11161let isPseudo = 1; 11162let isCodeGenOnly = 1; 11163} 11164def L2_ploadruhfnew_io : HInst< 11165(outs IntRegs:$Rd32), 11166(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11167"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11168tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11169let Inst{13-13} = 0b0; 11170let Inst{31-21} = 0b01000111011; 11171let isPredicated = 1; 11172let isPredicatedFalse = 1; 11173let hasNewValue = 1; 11174let opNewValue = 0; 11175let addrMode = BaseImmOffset; 11176let accessSize = HalfWordAccess; 11177let isPredicatedNew = 1; 11178let mayLoad = 1; 11179let BaseOpcode = "L2_loadruh_io"; 11180let CextOpcode = "L2_loadruh"; 11181let isExtendable = 1; 11182let opExtendable = 3; 11183let isExtentSigned = 0; 11184let opExtentBits = 7; 11185let opExtentAlign = 1; 11186} 11187def L2_ploadruhfnew_pi : HInst< 11188(outs IntRegs:$Rd32, IntRegs:$Rx32), 11189(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11190"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11191tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11192let Inst{13-11} = 0b111; 11193let Inst{31-21} = 0b10011011011; 11194let isPredicated = 1; 11195let isPredicatedFalse = 1; 11196let hasNewValue = 1; 11197let opNewValue = 0; 11198let addrMode = PostInc; 11199let accessSize = HalfWordAccess; 11200let isPredicatedNew = 1; 11201let mayLoad = 1; 11202let BaseOpcode = "L2_loadruh_pi"; 11203let Constraints = "$Rx32 = $Rx32in"; 11204} 11205def L2_ploadruhfnew_zomap : HInst< 11206(outs IntRegs:$Rd32), 11207(ins PredRegs:$Pt4, IntRegs:$Rs32), 11208"if (!$Pt4.new) $Rd32 = memuh($Rs32)", 11209tc_075c8dd8, TypeMAPPING> { 11210let hasNewValue = 1; 11211let opNewValue = 0; 11212let isPseudo = 1; 11213let isCodeGenOnly = 1; 11214} 11215def L2_ploadruht_io : HInst< 11216(outs IntRegs:$Rd32), 11217(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11218"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11219tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11220let Inst{13-13} = 0b0; 11221let Inst{31-21} = 0b01000001011; 11222let isPredicated = 1; 11223let hasNewValue = 1; 11224let opNewValue = 0; 11225let addrMode = BaseImmOffset; 11226let accessSize = HalfWordAccess; 11227let mayLoad = 1; 11228let BaseOpcode = "L2_loadruh_io"; 11229let CextOpcode = "L2_loadruh"; 11230let isExtendable = 1; 11231let opExtendable = 3; 11232let isExtentSigned = 0; 11233let opExtentBits = 7; 11234let opExtentAlign = 1; 11235} 11236def L2_ploadruht_pi : HInst< 11237(outs IntRegs:$Rd32, IntRegs:$Rx32), 11238(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11239"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11240tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11241let Inst{13-11} = 0b100; 11242let Inst{31-21} = 0b10011011011; 11243let isPredicated = 1; 11244let hasNewValue = 1; 11245let opNewValue = 0; 11246let addrMode = PostInc; 11247let accessSize = HalfWordAccess; 11248let mayLoad = 1; 11249let BaseOpcode = "L2_loadruh_pi"; 11250let Constraints = "$Rx32 = $Rx32in"; 11251} 11252def L2_ploadruht_zomap : HInst< 11253(outs IntRegs:$Rd32), 11254(ins PredRegs:$Pt4, IntRegs:$Rs32), 11255"if ($Pt4) $Rd32 = memuh($Rs32)", 11256tc_fedb7e19, TypeMAPPING> { 11257let hasNewValue = 1; 11258let opNewValue = 0; 11259let isPseudo = 1; 11260let isCodeGenOnly = 1; 11261} 11262def L2_ploadruhtnew_io : HInst< 11263(outs IntRegs:$Rd32), 11264(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11265"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11266tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11267let Inst{13-13} = 0b0; 11268let Inst{31-21} = 0b01000011011; 11269let isPredicated = 1; 11270let hasNewValue = 1; 11271let opNewValue = 0; 11272let addrMode = BaseImmOffset; 11273let accessSize = HalfWordAccess; 11274let isPredicatedNew = 1; 11275let mayLoad = 1; 11276let BaseOpcode = "L2_loadruh_io"; 11277let CextOpcode = "L2_loadruh"; 11278let isExtendable = 1; 11279let opExtendable = 3; 11280let isExtentSigned = 0; 11281let opExtentBits = 7; 11282let opExtentAlign = 1; 11283} 11284def L2_ploadruhtnew_pi : HInst< 11285(outs IntRegs:$Rd32, IntRegs:$Rx32), 11286(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11287"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11288tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11289let Inst{13-11} = 0b110; 11290let Inst{31-21} = 0b10011011011; 11291let isPredicated = 1; 11292let hasNewValue = 1; 11293let opNewValue = 0; 11294let addrMode = PostInc; 11295let accessSize = HalfWordAccess; 11296let isPredicatedNew = 1; 11297let mayLoad = 1; 11298let BaseOpcode = "L2_loadruh_pi"; 11299let Constraints = "$Rx32 = $Rx32in"; 11300} 11301def L2_ploadruhtnew_zomap : HInst< 11302(outs IntRegs:$Rd32), 11303(ins PredRegs:$Pt4, IntRegs:$Rs32), 11304"if ($Pt4.new) $Rd32 = memuh($Rs32)", 11305tc_075c8dd8, TypeMAPPING> { 11306let hasNewValue = 1; 11307let opNewValue = 0; 11308let isPseudo = 1; 11309let isCodeGenOnly = 1; 11310} 11311def L4_add_memopb_io : HInst< 11312(outs), 11313(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11314"memb($Rs32+#$Ii) += $Rt32", 11315tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11316let Inst{6-5} = 0b00; 11317let Inst{13-13} = 0b0; 11318let Inst{31-21} = 0b00111110000; 11319let addrMode = BaseImmOffset; 11320let accessSize = ByteAccess; 11321let mayLoad = 1; 11322let isRestrictNoSlot1Store = 1; 11323let mayStore = 1; 11324let isExtendable = 1; 11325let opExtendable = 1; 11326let isExtentSigned = 0; 11327let opExtentBits = 6; 11328let opExtentAlign = 0; 11329} 11330def L4_add_memopb_zomap : HInst< 11331(outs), 11332(ins IntRegs:$Rs32, IntRegs:$Rt32), 11333"memb($Rs32) += $Rt32", 11334tc_9bcfb2ee, TypeMAPPING> { 11335let isPseudo = 1; 11336let isCodeGenOnly = 1; 11337} 11338def L4_add_memoph_io : HInst< 11339(outs), 11340(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11341"memh($Rs32+#$Ii) += $Rt32", 11342tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11343let Inst{6-5} = 0b00; 11344let Inst{13-13} = 0b0; 11345let Inst{31-21} = 0b00111110001; 11346let addrMode = BaseImmOffset; 11347let accessSize = HalfWordAccess; 11348let mayLoad = 1; 11349let isRestrictNoSlot1Store = 1; 11350let mayStore = 1; 11351let isExtendable = 1; 11352let opExtendable = 1; 11353let isExtentSigned = 0; 11354let opExtentBits = 7; 11355let opExtentAlign = 1; 11356} 11357def L4_add_memoph_zomap : HInst< 11358(outs), 11359(ins IntRegs:$Rs32, IntRegs:$Rt32), 11360"memh($Rs32) += $Rt32", 11361tc_9bcfb2ee, TypeMAPPING> { 11362let isPseudo = 1; 11363let isCodeGenOnly = 1; 11364} 11365def L4_add_memopw_io : HInst< 11366(outs), 11367(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11368"memw($Rs32+#$Ii) += $Rt32", 11369tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11370let Inst{6-5} = 0b00; 11371let Inst{13-13} = 0b0; 11372let Inst{31-21} = 0b00111110010; 11373let addrMode = BaseImmOffset; 11374let accessSize = WordAccess; 11375let mayLoad = 1; 11376let isRestrictNoSlot1Store = 1; 11377let mayStore = 1; 11378let isExtendable = 1; 11379let opExtendable = 1; 11380let isExtentSigned = 0; 11381let opExtentBits = 8; 11382let opExtentAlign = 2; 11383} 11384def L4_add_memopw_zomap : HInst< 11385(outs), 11386(ins IntRegs:$Rs32, IntRegs:$Rt32), 11387"memw($Rs32) += $Rt32", 11388tc_9bcfb2ee, TypeMAPPING> { 11389let isPseudo = 1; 11390let isCodeGenOnly = 1; 11391} 11392def L4_and_memopb_io : HInst< 11393(outs), 11394(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11395"memb($Rs32+#$Ii) &= $Rt32", 11396tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11397let Inst{6-5} = 0b10; 11398let Inst{13-13} = 0b0; 11399let Inst{31-21} = 0b00111110000; 11400let addrMode = BaseImmOffset; 11401let accessSize = ByteAccess; 11402let mayLoad = 1; 11403let isRestrictNoSlot1Store = 1; 11404let mayStore = 1; 11405let isExtendable = 1; 11406let opExtendable = 1; 11407let isExtentSigned = 0; 11408let opExtentBits = 6; 11409let opExtentAlign = 0; 11410} 11411def L4_and_memopb_zomap : HInst< 11412(outs), 11413(ins IntRegs:$Rs32, IntRegs:$Rt32), 11414"memb($Rs32) &= $Rt32", 11415tc_9bcfb2ee, TypeMAPPING> { 11416let isPseudo = 1; 11417let isCodeGenOnly = 1; 11418} 11419def L4_and_memoph_io : HInst< 11420(outs), 11421(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11422"memh($Rs32+#$Ii) &= $Rt32", 11423tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11424let Inst{6-5} = 0b10; 11425let Inst{13-13} = 0b0; 11426let Inst{31-21} = 0b00111110001; 11427let addrMode = BaseImmOffset; 11428let accessSize = HalfWordAccess; 11429let mayLoad = 1; 11430let isRestrictNoSlot1Store = 1; 11431let mayStore = 1; 11432let isExtendable = 1; 11433let opExtendable = 1; 11434let isExtentSigned = 0; 11435let opExtentBits = 7; 11436let opExtentAlign = 1; 11437} 11438def L4_and_memoph_zomap : HInst< 11439(outs), 11440(ins IntRegs:$Rs32, IntRegs:$Rt32), 11441"memh($Rs32) &= $Rt32", 11442tc_9bcfb2ee, TypeMAPPING> { 11443let isPseudo = 1; 11444let isCodeGenOnly = 1; 11445} 11446def L4_and_memopw_io : HInst< 11447(outs), 11448(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11449"memw($Rs32+#$Ii) &= $Rt32", 11450tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11451let Inst{6-5} = 0b10; 11452let Inst{13-13} = 0b0; 11453let Inst{31-21} = 0b00111110010; 11454let addrMode = BaseImmOffset; 11455let accessSize = WordAccess; 11456let mayLoad = 1; 11457let isRestrictNoSlot1Store = 1; 11458let mayStore = 1; 11459let isExtendable = 1; 11460let opExtendable = 1; 11461let isExtentSigned = 0; 11462let opExtentBits = 8; 11463let opExtentAlign = 2; 11464} 11465def L4_and_memopw_zomap : HInst< 11466(outs), 11467(ins IntRegs:$Rs32, IntRegs:$Rt32), 11468"memw($Rs32) &= $Rt32", 11469tc_9bcfb2ee, TypeMAPPING> { 11470let isPseudo = 1; 11471let isCodeGenOnly = 1; 11472} 11473def L4_iadd_memopb_io : HInst< 11474(outs), 11475(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11476"memb($Rs32+#$Ii) += #$II", 11477tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11478let Inst{6-5} = 0b00; 11479let Inst{13-13} = 0b0; 11480let Inst{31-21} = 0b00111111000; 11481let addrMode = BaseImmOffset; 11482let accessSize = ByteAccess; 11483let mayLoad = 1; 11484let isRestrictNoSlot1Store = 1; 11485let mayStore = 1; 11486let isExtendable = 1; 11487let opExtendable = 1; 11488let isExtentSigned = 0; 11489let opExtentBits = 6; 11490let opExtentAlign = 0; 11491} 11492def L4_iadd_memopb_zomap : HInst< 11493(outs), 11494(ins IntRegs:$Rs32, u5_0Imm:$II), 11495"memb($Rs32) += #$II", 11496tc_158aa3f7, TypeMAPPING> { 11497let isPseudo = 1; 11498let isCodeGenOnly = 1; 11499} 11500def L4_iadd_memoph_io : HInst< 11501(outs), 11502(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11503"memh($Rs32+#$Ii) += #$II", 11504tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11505let Inst{6-5} = 0b00; 11506let Inst{13-13} = 0b0; 11507let Inst{31-21} = 0b00111111001; 11508let addrMode = BaseImmOffset; 11509let accessSize = HalfWordAccess; 11510let mayLoad = 1; 11511let isRestrictNoSlot1Store = 1; 11512let mayStore = 1; 11513let isExtendable = 1; 11514let opExtendable = 1; 11515let isExtentSigned = 0; 11516let opExtentBits = 7; 11517let opExtentAlign = 1; 11518} 11519def L4_iadd_memoph_zomap : HInst< 11520(outs), 11521(ins IntRegs:$Rs32, u5_0Imm:$II), 11522"memh($Rs32) += #$II", 11523tc_158aa3f7, TypeMAPPING> { 11524let isPseudo = 1; 11525let isCodeGenOnly = 1; 11526} 11527def L4_iadd_memopw_io : HInst< 11528(outs), 11529(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11530"memw($Rs32+#$Ii) += #$II", 11531tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11532let Inst{6-5} = 0b00; 11533let Inst{13-13} = 0b0; 11534let Inst{31-21} = 0b00111111010; 11535let addrMode = BaseImmOffset; 11536let accessSize = WordAccess; 11537let mayLoad = 1; 11538let isRestrictNoSlot1Store = 1; 11539let mayStore = 1; 11540let isExtendable = 1; 11541let opExtendable = 1; 11542let isExtentSigned = 0; 11543let opExtentBits = 8; 11544let opExtentAlign = 2; 11545} 11546def L4_iadd_memopw_zomap : HInst< 11547(outs), 11548(ins IntRegs:$Rs32, u5_0Imm:$II), 11549"memw($Rs32) += #$II", 11550tc_158aa3f7, TypeMAPPING> { 11551let isPseudo = 1; 11552let isCodeGenOnly = 1; 11553} 11554def L4_iand_memopb_io : HInst< 11555(outs), 11556(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11557"memb($Rs32+#$Ii) = clrbit(#$II)", 11558tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11559let Inst{6-5} = 0b10; 11560let Inst{13-13} = 0b0; 11561let Inst{31-21} = 0b00111111000; 11562let addrMode = BaseImmOffset; 11563let accessSize = ByteAccess; 11564let mayLoad = 1; 11565let isRestrictNoSlot1Store = 1; 11566let mayStore = 1; 11567let isExtendable = 1; 11568let opExtendable = 1; 11569let isExtentSigned = 0; 11570let opExtentBits = 6; 11571let opExtentAlign = 0; 11572} 11573def L4_iand_memopb_zomap : HInst< 11574(outs), 11575(ins IntRegs:$Rs32, u5_0Imm:$II), 11576"memb($Rs32) = clrbit(#$II)", 11577tc_158aa3f7, TypeMAPPING> { 11578let isPseudo = 1; 11579let isCodeGenOnly = 1; 11580} 11581def L4_iand_memoph_io : HInst< 11582(outs), 11583(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11584"memh($Rs32+#$Ii) = clrbit(#$II)", 11585tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11586let Inst{6-5} = 0b10; 11587let Inst{13-13} = 0b0; 11588let Inst{31-21} = 0b00111111001; 11589let addrMode = BaseImmOffset; 11590let accessSize = HalfWordAccess; 11591let mayLoad = 1; 11592let isRestrictNoSlot1Store = 1; 11593let mayStore = 1; 11594let isExtendable = 1; 11595let opExtendable = 1; 11596let isExtentSigned = 0; 11597let opExtentBits = 7; 11598let opExtentAlign = 1; 11599} 11600def L4_iand_memoph_zomap : HInst< 11601(outs), 11602(ins IntRegs:$Rs32, u5_0Imm:$II), 11603"memh($Rs32) = clrbit(#$II)", 11604tc_158aa3f7, TypeMAPPING> { 11605let isPseudo = 1; 11606let isCodeGenOnly = 1; 11607} 11608def L4_iand_memopw_io : HInst< 11609(outs), 11610(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11611"memw($Rs32+#$Ii) = clrbit(#$II)", 11612tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11613let Inst{6-5} = 0b10; 11614let Inst{13-13} = 0b0; 11615let Inst{31-21} = 0b00111111010; 11616let addrMode = BaseImmOffset; 11617let accessSize = WordAccess; 11618let mayLoad = 1; 11619let isRestrictNoSlot1Store = 1; 11620let mayStore = 1; 11621let isExtendable = 1; 11622let opExtendable = 1; 11623let isExtentSigned = 0; 11624let opExtentBits = 8; 11625let opExtentAlign = 2; 11626} 11627def L4_iand_memopw_zomap : HInst< 11628(outs), 11629(ins IntRegs:$Rs32, u5_0Imm:$II), 11630"memw($Rs32) = clrbit(#$II)", 11631tc_158aa3f7, TypeMAPPING> { 11632let isPseudo = 1; 11633let isCodeGenOnly = 1; 11634} 11635def L4_ior_memopb_io : HInst< 11636(outs), 11637(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11638"memb($Rs32+#$Ii) = setbit(#$II)", 11639tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11640let Inst{6-5} = 0b11; 11641let Inst{13-13} = 0b0; 11642let Inst{31-21} = 0b00111111000; 11643let addrMode = BaseImmOffset; 11644let accessSize = ByteAccess; 11645let mayLoad = 1; 11646let isRestrictNoSlot1Store = 1; 11647let mayStore = 1; 11648let isExtendable = 1; 11649let opExtendable = 1; 11650let isExtentSigned = 0; 11651let opExtentBits = 6; 11652let opExtentAlign = 0; 11653} 11654def L4_ior_memopb_zomap : HInst< 11655(outs), 11656(ins IntRegs:$Rs32, u5_0Imm:$II), 11657"memb($Rs32) = setbit(#$II)", 11658tc_158aa3f7, TypeMAPPING> { 11659let isPseudo = 1; 11660let isCodeGenOnly = 1; 11661} 11662def L4_ior_memoph_io : HInst< 11663(outs), 11664(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11665"memh($Rs32+#$Ii) = setbit(#$II)", 11666tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11667let Inst{6-5} = 0b11; 11668let Inst{13-13} = 0b0; 11669let Inst{31-21} = 0b00111111001; 11670let addrMode = BaseImmOffset; 11671let accessSize = HalfWordAccess; 11672let mayLoad = 1; 11673let isRestrictNoSlot1Store = 1; 11674let mayStore = 1; 11675let isExtendable = 1; 11676let opExtendable = 1; 11677let isExtentSigned = 0; 11678let opExtentBits = 7; 11679let opExtentAlign = 1; 11680} 11681def L4_ior_memoph_zomap : HInst< 11682(outs), 11683(ins IntRegs:$Rs32, u5_0Imm:$II), 11684"memh($Rs32) = setbit(#$II)", 11685tc_158aa3f7, TypeMAPPING> { 11686let isPseudo = 1; 11687let isCodeGenOnly = 1; 11688} 11689def L4_ior_memopw_io : HInst< 11690(outs), 11691(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11692"memw($Rs32+#$Ii) = setbit(#$II)", 11693tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11694let Inst{6-5} = 0b11; 11695let Inst{13-13} = 0b0; 11696let Inst{31-21} = 0b00111111010; 11697let addrMode = BaseImmOffset; 11698let accessSize = WordAccess; 11699let mayLoad = 1; 11700let isRestrictNoSlot1Store = 1; 11701let mayStore = 1; 11702let isExtendable = 1; 11703let opExtendable = 1; 11704let isExtentSigned = 0; 11705let opExtentBits = 8; 11706let opExtentAlign = 2; 11707} 11708def L4_ior_memopw_zomap : HInst< 11709(outs), 11710(ins IntRegs:$Rs32, u5_0Imm:$II), 11711"memw($Rs32) = setbit(#$II)", 11712tc_158aa3f7, TypeMAPPING> { 11713let isPseudo = 1; 11714let isCodeGenOnly = 1; 11715} 11716def L4_isub_memopb_io : HInst< 11717(outs), 11718(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11719"memb($Rs32+#$Ii) -= #$II", 11720tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11721let Inst{6-5} = 0b01; 11722let Inst{13-13} = 0b0; 11723let Inst{31-21} = 0b00111111000; 11724let addrMode = BaseImmOffset; 11725let accessSize = ByteAccess; 11726let mayLoad = 1; 11727let isRestrictNoSlot1Store = 1; 11728let mayStore = 1; 11729let isExtendable = 1; 11730let opExtendable = 1; 11731let isExtentSigned = 0; 11732let opExtentBits = 6; 11733let opExtentAlign = 0; 11734} 11735def L4_isub_memopb_zomap : HInst< 11736(outs), 11737(ins IntRegs:$Rs32, u5_0Imm:$II), 11738"memb($Rs32) -= #$II", 11739tc_158aa3f7, TypeMAPPING> { 11740let isPseudo = 1; 11741let isCodeGenOnly = 1; 11742} 11743def L4_isub_memoph_io : HInst< 11744(outs), 11745(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11746"memh($Rs32+#$Ii) -= #$II", 11747tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11748let Inst{6-5} = 0b01; 11749let Inst{13-13} = 0b0; 11750let Inst{31-21} = 0b00111111001; 11751let addrMode = BaseImmOffset; 11752let accessSize = HalfWordAccess; 11753let mayLoad = 1; 11754let isRestrictNoSlot1Store = 1; 11755let mayStore = 1; 11756let isExtendable = 1; 11757let opExtendable = 1; 11758let isExtentSigned = 0; 11759let opExtentBits = 7; 11760let opExtentAlign = 1; 11761} 11762def L4_isub_memoph_zomap : HInst< 11763(outs), 11764(ins IntRegs:$Rs32, u5_0Imm:$II), 11765"memh($Rs32) -= #$II", 11766tc_158aa3f7, TypeMAPPING> { 11767let isPseudo = 1; 11768let isCodeGenOnly = 1; 11769} 11770def L4_isub_memopw_io : HInst< 11771(outs), 11772(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11773"memw($Rs32+#$Ii) -= #$II", 11774tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11775let Inst{6-5} = 0b01; 11776let Inst{13-13} = 0b0; 11777let Inst{31-21} = 0b00111111010; 11778let addrMode = BaseImmOffset; 11779let accessSize = WordAccess; 11780let mayLoad = 1; 11781let isRestrictNoSlot1Store = 1; 11782let mayStore = 1; 11783let isExtendable = 1; 11784let opExtendable = 1; 11785let isExtentSigned = 0; 11786let opExtentBits = 8; 11787let opExtentAlign = 2; 11788} 11789def L4_isub_memopw_zomap : HInst< 11790(outs), 11791(ins IntRegs:$Rs32, u5_0Imm:$II), 11792"memw($Rs32) -= #$II", 11793tc_158aa3f7, TypeMAPPING> { 11794let isPseudo = 1; 11795let isCodeGenOnly = 1; 11796} 11797def L4_loadalignb_ap : HInst< 11798(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11799(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11800"$Ryy32 = memb_fifo($Re32=#$II)", 11801tc_ac65613f, TypeLD>, Enc_f394d3 { 11802let Inst{7-7} = 0b0; 11803let Inst{13-12} = 0b01; 11804let Inst{31-21} = 0b10011010100; 11805let addrMode = AbsoluteSet; 11806let accessSize = ByteAccess; 11807let mayLoad = 1; 11808let isExtended = 1; 11809let DecoderNamespace = "MustExtend"; 11810let isExtendable = 1; 11811let opExtendable = 3; 11812let isExtentSigned = 0; 11813let opExtentBits = 6; 11814let opExtentAlign = 0; 11815let Constraints = "$Ryy32 = $Ryy32in"; 11816} 11817def L4_loadalignb_ur : HInst< 11818(outs DoubleRegs:$Ryy32), 11819(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11820"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)", 11821tc_a32e03e7, TypeLD>, Enc_04c959 { 11822let Inst{12-12} = 0b1; 11823let Inst{31-21} = 0b10011100100; 11824let addrMode = BaseLongOffset; 11825let accessSize = ByteAccess; 11826let mayLoad = 1; 11827let isExtended = 1; 11828let InputType = "imm"; 11829let DecoderNamespace = "MustExtend"; 11830let isExtendable = 1; 11831let opExtendable = 4; 11832let isExtentSigned = 0; 11833let opExtentBits = 6; 11834let opExtentAlign = 0; 11835let Constraints = "$Ryy32 = $Ryy32in"; 11836} 11837def L4_loadalignh_ap : HInst< 11838(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11839(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11840"$Ryy32 = memh_fifo($Re32=#$II)", 11841tc_ac65613f, TypeLD>, Enc_f394d3 { 11842let Inst{7-7} = 0b0; 11843let Inst{13-12} = 0b01; 11844let Inst{31-21} = 0b10011010010; 11845let addrMode = AbsoluteSet; 11846let accessSize = HalfWordAccess; 11847let mayLoad = 1; 11848let isExtended = 1; 11849let DecoderNamespace = "MustExtend"; 11850let isExtendable = 1; 11851let opExtendable = 3; 11852let isExtentSigned = 0; 11853let opExtentBits = 6; 11854let opExtentAlign = 0; 11855let Constraints = "$Ryy32 = $Ryy32in"; 11856} 11857def L4_loadalignh_ur : HInst< 11858(outs DoubleRegs:$Ryy32), 11859(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11860"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)", 11861tc_a32e03e7, TypeLD>, Enc_04c959 { 11862let Inst{12-12} = 0b1; 11863let Inst{31-21} = 0b10011100010; 11864let addrMode = BaseLongOffset; 11865let accessSize = HalfWordAccess; 11866let mayLoad = 1; 11867let isExtended = 1; 11868let InputType = "imm"; 11869let DecoderNamespace = "MustExtend"; 11870let isExtendable = 1; 11871let opExtendable = 4; 11872let isExtentSigned = 0; 11873let opExtentBits = 6; 11874let opExtentAlign = 0; 11875let Constraints = "$Ryy32 = $Ryy32in"; 11876} 11877def L4_loadbsw2_ap : HInst< 11878(outs IntRegs:$Rd32, IntRegs:$Re32), 11879(ins u32_0Imm:$II), 11880"$Rd32 = membh($Re32=#$II)", 11881tc_822c3c68, TypeLD>, Enc_323f2d { 11882let Inst{7-7} = 0b0; 11883let Inst{13-12} = 0b01; 11884let Inst{31-21} = 0b10011010001; 11885let hasNewValue = 1; 11886let opNewValue = 0; 11887let addrMode = AbsoluteSet; 11888let accessSize = HalfWordAccess; 11889let mayLoad = 1; 11890let isExtended = 1; 11891let DecoderNamespace = "MustExtend"; 11892let isExtendable = 1; 11893let opExtendable = 2; 11894let isExtentSigned = 0; 11895let opExtentBits = 6; 11896let opExtentAlign = 0; 11897} 11898def L4_loadbsw2_ur : HInst< 11899(outs IntRegs:$Rd32), 11900(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11901"$Rd32 = membh($Rt32<<#$Ii+#$II)", 11902tc_abfd9a6d, TypeLD>, Enc_4f677b { 11903let Inst{12-12} = 0b1; 11904let Inst{31-21} = 0b10011100001; 11905let hasNewValue = 1; 11906let opNewValue = 0; 11907let addrMode = BaseLongOffset; 11908let accessSize = HalfWordAccess; 11909let mayLoad = 1; 11910let isExtended = 1; 11911let InputType = "imm"; 11912let DecoderNamespace = "MustExtend"; 11913let isExtendable = 1; 11914let opExtendable = 3; 11915let isExtentSigned = 0; 11916let opExtentBits = 6; 11917let opExtentAlign = 0; 11918} 11919def L4_loadbsw4_ap : HInst< 11920(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11921(ins u32_0Imm:$II), 11922"$Rdd32 = membh($Re32=#$II)", 11923tc_822c3c68, TypeLD>, Enc_7fa7f6 { 11924let Inst{7-7} = 0b0; 11925let Inst{13-12} = 0b01; 11926let Inst{31-21} = 0b10011010111; 11927let addrMode = AbsoluteSet; 11928let accessSize = WordAccess; 11929let mayLoad = 1; 11930let isExtended = 1; 11931let DecoderNamespace = "MustExtend"; 11932let isExtendable = 1; 11933let opExtendable = 2; 11934let isExtentSigned = 0; 11935let opExtentBits = 6; 11936let opExtentAlign = 0; 11937} 11938def L4_loadbsw4_ur : HInst< 11939(outs DoubleRegs:$Rdd32), 11940(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11941"$Rdd32 = membh($Rt32<<#$Ii+#$II)", 11942tc_abfd9a6d, TypeLD>, Enc_6185fe { 11943let Inst{12-12} = 0b1; 11944let Inst{31-21} = 0b10011100111; 11945let addrMode = BaseLongOffset; 11946let accessSize = WordAccess; 11947let mayLoad = 1; 11948let isExtended = 1; 11949let InputType = "imm"; 11950let DecoderNamespace = "MustExtend"; 11951let isExtendable = 1; 11952let opExtendable = 3; 11953let isExtentSigned = 0; 11954let opExtentBits = 6; 11955let opExtentAlign = 0; 11956} 11957def L4_loadbzw2_ap : HInst< 11958(outs IntRegs:$Rd32, IntRegs:$Re32), 11959(ins u32_0Imm:$II), 11960"$Rd32 = memubh($Re32=#$II)", 11961tc_822c3c68, TypeLD>, Enc_323f2d { 11962let Inst{7-7} = 0b0; 11963let Inst{13-12} = 0b01; 11964let Inst{31-21} = 0b10011010011; 11965let hasNewValue = 1; 11966let opNewValue = 0; 11967let addrMode = AbsoluteSet; 11968let accessSize = HalfWordAccess; 11969let mayLoad = 1; 11970let isExtended = 1; 11971let DecoderNamespace = "MustExtend"; 11972let isExtendable = 1; 11973let opExtendable = 2; 11974let isExtentSigned = 0; 11975let opExtentBits = 6; 11976let opExtentAlign = 0; 11977} 11978def L4_loadbzw2_ur : HInst< 11979(outs IntRegs:$Rd32), 11980(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11981"$Rd32 = memubh($Rt32<<#$Ii+#$II)", 11982tc_abfd9a6d, TypeLD>, Enc_4f677b { 11983let Inst{12-12} = 0b1; 11984let Inst{31-21} = 0b10011100011; 11985let hasNewValue = 1; 11986let opNewValue = 0; 11987let addrMode = BaseLongOffset; 11988let accessSize = HalfWordAccess; 11989let mayLoad = 1; 11990let isExtended = 1; 11991let InputType = "imm"; 11992let DecoderNamespace = "MustExtend"; 11993let isExtendable = 1; 11994let opExtendable = 3; 11995let isExtentSigned = 0; 11996let opExtentBits = 6; 11997let opExtentAlign = 0; 11998} 11999def L4_loadbzw4_ap : HInst< 12000(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 12001(ins u32_0Imm:$II), 12002"$Rdd32 = memubh($Re32=#$II)", 12003tc_822c3c68, TypeLD>, Enc_7fa7f6 { 12004let Inst{7-7} = 0b0; 12005let Inst{13-12} = 0b01; 12006let Inst{31-21} = 0b10011010101; 12007let addrMode = AbsoluteSet; 12008let accessSize = WordAccess; 12009let mayLoad = 1; 12010let isExtended = 1; 12011let DecoderNamespace = "MustExtend"; 12012let isExtendable = 1; 12013let opExtendable = 2; 12014let isExtentSigned = 0; 12015let opExtentBits = 6; 12016let opExtentAlign = 0; 12017} 12018def L4_loadbzw4_ur : HInst< 12019(outs DoubleRegs:$Rdd32), 12020(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12021"$Rdd32 = memubh($Rt32<<#$Ii+#$II)", 12022tc_abfd9a6d, TypeLD>, Enc_6185fe { 12023let Inst{12-12} = 0b1; 12024let Inst{31-21} = 0b10011100101; 12025let addrMode = BaseLongOffset; 12026let accessSize = WordAccess; 12027let mayLoad = 1; 12028let isExtended = 1; 12029let InputType = "imm"; 12030let DecoderNamespace = "MustExtend"; 12031let isExtendable = 1; 12032let opExtendable = 3; 12033let isExtentSigned = 0; 12034let opExtentBits = 6; 12035let opExtentAlign = 0; 12036} 12037def L4_loadd_aq : HInst< 12038(outs DoubleRegs:$Rdd32), 12039(ins IntRegs:$Rs32), 12040"$Rdd32 = memd_aq($Rs32)", 12041tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> { 12042let Inst{13-5} = 0b011000000; 12043let Inst{31-21} = 0b10010010000; 12044let accessSize = DoubleWordAccess; 12045let mayLoad = 1; 12046} 12047def L4_loadd_locked : HInst< 12048(outs DoubleRegs:$Rdd32), 12049(ins IntRegs:$Rs32), 12050"$Rdd32 = memd_locked($Rs32)", 12051tc_64b00d8a, TypeLD>, Enc_3a3d62 { 12052let Inst{13-5} = 0b010000000; 12053let Inst{31-21} = 0b10010010000; 12054let accessSize = DoubleWordAccess; 12055let mayLoad = 1; 12056let isSoloAX = 1; 12057} 12058def L4_loadrb_ap : HInst< 12059(outs IntRegs:$Rd32, IntRegs:$Re32), 12060(ins u32_0Imm:$II), 12061"$Rd32 = memb($Re32=#$II)", 12062tc_822c3c68, TypeLD>, Enc_323f2d { 12063let Inst{7-7} = 0b0; 12064let Inst{13-12} = 0b01; 12065let Inst{31-21} = 0b10011011000; 12066let hasNewValue = 1; 12067let opNewValue = 0; 12068let addrMode = AbsoluteSet; 12069let accessSize = ByteAccess; 12070let mayLoad = 1; 12071let isExtended = 1; 12072let DecoderNamespace = "MustExtend"; 12073let isExtendable = 1; 12074let opExtendable = 2; 12075let isExtentSigned = 0; 12076let opExtentBits = 6; 12077let opExtentAlign = 0; 12078} 12079def L4_loadrb_rr : HInst< 12080(outs IntRegs:$Rd32), 12081(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12082"$Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12083tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12084let Inst{6-5} = 0b00; 12085let Inst{31-21} = 0b00111010000; 12086let hasNewValue = 1; 12087let opNewValue = 0; 12088let addrMode = BaseRegOffset; 12089let accessSize = ByteAccess; 12090let mayLoad = 1; 12091let BaseOpcode = "L4_loadrb_rr"; 12092let CextOpcode = "L2_loadrb"; 12093let InputType = "reg"; 12094let isPredicable = 1; 12095} 12096def L4_loadrb_ur : HInst< 12097(outs IntRegs:$Rd32), 12098(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12099"$Rd32 = memb($Rt32<<#$Ii+#$II)", 12100tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12101let Inst{12-12} = 0b1; 12102let Inst{31-21} = 0b10011101000; 12103let hasNewValue = 1; 12104let opNewValue = 0; 12105let addrMode = BaseLongOffset; 12106let accessSize = ByteAccess; 12107let mayLoad = 1; 12108let isExtended = 1; 12109let CextOpcode = "L2_loadrb"; 12110let InputType = "imm"; 12111let DecoderNamespace = "MustExtend"; 12112let isExtendable = 1; 12113let opExtendable = 3; 12114let isExtentSigned = 0; 12115let opExtentBits = 6; 12116let opExtentAlign = 0; 12117} 12118def L4_loadrd_ap : HInst< 12119(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 12120(ins u32_0Imm:$II), 12121"$Rdd32 = memd($Re32=#$II)", 12122tc_822c3c68, TypeLD>, Enc_7fa7f6 { 12123let Inst{7-7} = 0b0; 12124let Inst{13-12} = 0b01; 12125let Inst{31-21} = 0b10011011110; 12126let addrMode = AbsoluteSet; 12127let accessSize = DoubleWordAccess; 12128let mayLoad = 1; 12129let isExtended = 1; 12130let DecoderNamespace = "MustExtend"; 12131let isExtendable = 1; 12132let opExtendable = 2; 12133let isExtentSigned = 0; 12134let opExtentBits = 6; 12135let opExtentAlign = 0; 12136} 12137def L4_loadrd_rr : HInst< 12138(outs DoubleRegs:$Rdd32), 12139(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12140"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12141tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl { 12142let Inst{6-5} = 0b00; 12143let Inst{31-21} = 0b00111010110; 12144let addrMode = BaseRegOffset; 12145let accessSize = DoubleWordAccess; 12146let mayLoad = 1; 12147let BaseOpcode = "L4_loadrd_rr"; 12148let CextOpcode = "L2_loadrd"; 12149let InputType = "reg"; 12150let isPredicable = 1; 12151} 12152def L4_loadrd_ur : HInst< 12153(outs DoubleRegs:$Rdd32), 12154(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12155"$Rdd32 = memd($Rt32<<#$Ii+#$II)", 12156tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl { 12157let Inst{12-12} = 0b1; 12158let Inst{31-21} = 0b10011101110; 12159let addrMode = BaseLongOffset; 12160let accessSize = DoubleWordAccess; 12161let mayLoad = 1; 12162let isExtended = 1; 12163let CextOpcode = "L2_loadrd"; 12164let InputType = "imm"; 12165let DecoderNamespace = "MustExtend"; 12166let isExtendable = 1; 12167let opExtendable = 3; 12168let isExtentSigned = 0; 12169let opExtentBits = 6; 12170let opExtentAlign = 0; 12171} 12172def L4_loadrh_ap : HInst< 12173(outs IntRegs:$Rd32, IntRegs:$Re32), 12174(ins u32_0Imm:$II), 12175"$Rd32 = memh($Re32=#$II)", 12176tc_822c3c68, TypeLD>, Enc_323f2d { 12177let Inst{7-7} = 0b0; 12178let Inst{13-12} = 0b01; 12179let Inst{31-21} = 0b10011011010; 12180let hasNewValue = 1; 12181let opNewValue = 0; 12182let addrMode = AbsoluteSet; 12183let accessSize = HalfWordAccess; 12184let mayLoad = 1; 12185let isExtended = 1; 12186let DecoderNamespace = "MustExtend"; 12187let isExtendable = 1; 12188let opExtendable = 2; 12189let isExtentSigned = 0; 12190let opExtentBits = 6; 12191let opExtentAlign = 0; 12192} 12193def L4_loadrh_rr : HInst< 12194(outs IntRegs:$Rd32), 12195(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12196"$Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12197tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12198let Inst{6-5} = 0b00; 12199let Inst{31-21} = 0b00111010010; 12200let hasNewValue = 1; 12201let opNewValue = 0; 12202let addrMode = BaseRegOffset; 12203let accessSize = HalfWordAccess; 12204let mayLoad = 1; 12205let BaseOpcode = "L4_loadrh_rr"; 12206let CextOpcode = "L2_loadrh"; 12207let InputType = "reg"; 12208let isPredicable = 1; 12209} 12210def L4_loadrh_ur : HInst< 12211(outs IntRegs:$Rd32), 12212(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12213"$Rd32 = memh($Rt32<<#$Ii+#$II)", 12214tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12215let Inst{12-12} = 0b1; 12216let Inst{31-21} = 0b10011101010; 12217let hasNewValue = 1; 12218let opNewValue = 0; 12219let addrMode = BaseLongOffset; 12220let accessSize = HalfWordAccess; 12221let mayLoad = 1; 12222let isExtended = 1; 12223let CextOpcode = "L2_loadrh"; 12224let InputType = "imm"; 12225let DecoderNamespace = "MustExtend"; 12226let isExtendable = 1; 12227let opExtendable = 3; 12228let isExtentSigned = 0; 12229let opExtentBits = 6; 12230let opExtentAlign = 0; 12231} 12232def L4_loadri_ap : HInst< 12233(outs IntRegs:$Rd32, IntRegs:$Re32), 12234(ins u32_0Imm:$II), 12235"$Rd32 = memw($Re32=#$II)", 12236tc_822c3c68, TypeLD>, Enc_323f2d { 12237let Inst{7-7} = 0b0; 12238let Inst{13-12} = 0b01; 12239let Inst{31-21} = 0b10011011100; 12240let hasNewValue = 1; 12241let opNewValue = 0; 12242let addrMode = AbsoluteSet; 12243let accessSize = WordAccess; 12244let mayLoad = 1; 12245let isExtended = 1; 12246let DecoderNamespace = "MustExtend"; 12247let isExtendable = 1; 12248let opExtendable = 2; 12249let isExtentSigned = 0; 12250let opExtentBits = 6; 12251let opExtentAlign = 0; 12252} 12253def L4_loadri_rr : HInst< 12254(outs IntRegs:$Rd32), 12255(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12256"$Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12257tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12258let Inst{6-5} = 0b00; 12259let Inst{31-21} = 0b00111010100; 12260let hasNewValue = 1; 12261let opNewValue = 0; 12262let addrMode = BaseRegOffset; 12263let accessSize = WordAccess; 12264let mayLoad = 1; 12265let BaseOpcode = "L4_loadri_rr"; 12266let CextOpcode = "L2_loadri"; 12267let InputType = "reg"; 12268let isPredicable = 1; 12269} 12270def L4_loadri_ur : HInst< 12271(outs IntRegs:$Rd32), 12272(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12273"$Rd32 = memw($Rt32<<#$Ii+#$II)", 12274tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12275let Inst{12-12} = 0b1; 12276let Inst{31-21} = 0b10011101100; 12277let hasNewValue = 1; 12278let opNewValue = 0; 12279let addrMode = BaseLongOffset; 12280let accessSize = WordAccess; 12281let mayLoad = 1; 12282let isExtended = 1; 12283let CextOpcode = "L2_loadri"; 12284let InputType = "imm"; 12285let DecoderNamespace = "MustExtend"; 12286let isExtendable = 1; 12287let opExtendable = 3; 12288let isExtentSigned = 0; 12289let opExtentBits = 6; 12290let opExtentAlign = 0; 12291} 12292def L4_loadrub_ap : HInst< 12293(outs IntRegs:$Rd32, IntRegs:$Re32), 12294(ins u32_0Imm:$II), 12295"$Rd32 = memub($Re32=#$II)", 12296tc_822c3c68, TypeLD>, Enc_323f2d { 12297let Inst{7-7} = 0b0; 12298let Inst{13-12} = 0b01; 12299let Inst{31-21} = 0b10011011001; 12300let hasNewValue = 1; 12301let opNewValue = 0; 12302let addrMode = AbsoluteSet; 12303let accessSize = ByteAccess; 12304let mayLoad = 1; 12305let isExtended = 1; 12306let DecoderNamespace = "MustExtend"; 12307let isExtendable = 1; 12308let opExtendable = 2; 12309let isExtentSigned = 0; 12310let opExtentBits = 6; 12311let opExtentAlign = 0; 12312} 12313def L4_loadrub_rr : HInst< 12314(outs IntRegs:$Rd32), 12315(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12316"$Rd32 = memub($Rs32+$Rt32<<#$Ii)", 12317tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12318let Inst{6-5} = 0b00; 12319let Inst{31-21} = 0b00111010001; 12320let hasNewValue = 1; 12321let opNewValue = 0; 12322let addrMode = BaseRegOffset; 12323let accessSize = ByteAccess; 12324let mayLoad = 1; 12325let BaseOpcode = "L4_loadrub_rr"; 12326let CextOpcode = "L2_loadrub"; 12327let InputType = "reg"; 12328let isPredicable = 1; 12329} 12330def L4_loadrub_ur : HInst< 12331(outs IntRegs:$Rd32), 12332(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12333"$Rd32 = memub($Rt32<<#$Ii+#$II)", 12334tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12335let Inst{12-12} = 0b1; 12336let Inst{31-21} = 0b10011101001; 12337let hasNewValue = 1; 12338let opNewValue = 0; 12339let addrMode = BaseLongOffset; 12340let accessSize = ByteAccess; 12341let mayLoad = 1; 12342let isExtended = 1; 12343let CextOpcode = "L2_loadrub"; 12344let InputType = "imm"; 12345let DecoderNamespace = "MustExtend"; 12346let isExtendable = 1; 12347let opExtendable = 3; 12348let isExtentSigned = 0; 12349let opExtentBits = 6; 12350let opExtentAlign = 0; 12351} 12352def L4_loadruh_ap : HInst< 12353(outs IntRegs:$Rd32, IntRegs:$Re32), 12354(ins u32_0Imm:$II), 12355"$Rd32 = memuh($Re32=#$II)", 12356tc_822c3c68, TypeLD>, Enc_323f2d { 12357let Inst{7-7} = 0b0; 12358let Inst{13-12} = 0b01; 12359let Inst{31-21} = 0b10011011011; 12360let hasNewValue = 1; 12361let opNewValue = 0; 12362let addrMode = AbsoluteSet; 12363let accessSize = HalfWordAccess; 12364let mayLoad = 1; 12365let isExtended = 1; 12366let DecoderNamespace = "MustExtend"; 12367let isExtendable = 1; 12368let opExtendable = 2; 12369let isExtentSigned = 0; 12370let opExtentBits = 6; 12371let opExtentAlign = 0; 12372} 12373def L4_loadruh_rr : HInst< 12374(outs IntRegs:$Rd32), 12375(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12376"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 12377tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12378let Inst{6-5} = 0b00; 12379let Inst{31-21} = 0b00111010011; 12380let hasNewValue = 1; 12381let opNewValue = 0; 12382let addrMode = BaseRegOffset; 12383let accessSize = HalfWordAccess; 12384let mayLoad = 1; 12385let BaseOpcode = "L4_loadruh_rr"; 12386let CextOpcode = "L2_loadruh"; 12387let InputType = "reg"; 12388let isPredicable = 1; 12389} 12390def L4_loadruh_ur : HInst< 12391(outs IntRegs:$Rd32), 12392(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12393"$Rd32 = memuh($Rt32<<#$Ii+#$II)", 12394tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12395let Inst{12-12} = 0b1; 12396let Inst{31-21} = 0b10011101011; 12397let hasNewValue = 1; 12398let opNewValue = 0; 12399let addrMode = BaseLongOffset; 12400let accessSize = HalfWordAccess; 12401let mayLoad = 1; 12402let isExtended = 1; 12403let CextOpcode = "L2_loadruh"; 12404let InputType = "imm"; 12405let DecoderNamespace = "MustExtend"; 12406let isExtendable = 1; 12407let opExtendable = 3; 12408let isExtentSigned = 0; 12409let opExtentBits = 6; 12410let opExtentAlign = 0; 12411} 12412def L4_or_memopb_io : HInst< 12413(outs), 12414(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 12415"memb($Rs32+#$Ii) |= $Rt32", 12416tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 12417let Inst{6-5} = 0b11; 12418let Inst{13-13} = 0b0; 12419let Inst{31-21} = 0b00111110000; 12420let addrMode = BaseImmOffset; 12421let accessSize = ByteAccess; 12422let mayLoad = 1; 12423let isRestrictNoSlot1Store = 1; 12424let mayStore = 1; 12425let isExtendable = 1; 12426let opExtendable = 1; 12427let isExtentSigned = 0; 12428let opExtentBits = 6; 12429let opExtentAlign = 0; 12430} 12431def L4_or_memopb_zomap : HInst< 12432(outs), 12433(ins IntRegs:$Rs32, IntRegs:$Rt32), 12434"memb($Rs32) |= $Rt32", 12435tc_9bcfb2ee, TypeMAPPING> { 12436let isPseudo = 1; 12437let isCodeGenOnly = 1; 12438} 12439def L4_or_memoph_io : HInst< 12440(outs), 12441(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 12442"memh($Rs32+#$Ii) |= $Rt32", 12443tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 12444let Inst{6-5} = 0b11; 12445let Inst{13-13} = 0b0; 12446let Inst{31-21} = 0b00111110001; 12447let addrMode = BaseImmOffset; 12448let accessSize = HalfWordAccess; 12449let mayLoad = 1; 12450let isRestrictNoSlot1Store = 1; 12451let mayStore = 1; 12452let isExtendable = 1; 12453let opExtendable = 1; 12454let isExtentSigned = 0; 12455let opExtentBits = 7; 12456let opExtentAlign = 1; 12457} 12458def L4_or_memoph_zomap : HInst< 12459(outs), 12460(ins IntRegs:$Rs32, IntRegs:$Rt32), 12461"memh($Rs32) |= $Rt32", 12462tc_9bcfb2ee, TypeMAPPING> { 12463let isPseudo = 1; 12464let isCodeGenOnly = 1; 12465} 12466def L4_or_memopw_io : HInst< 12467(outs), 12468(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 12469"memw($Rs32+#$Ii) |= $Rt32", 12470tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 12471let Inst{6-5} = 0b11; 12472let Inst{13-13} = 0b0; 12473let Inst{31-21} = 0b00111110010; 12474let addrMode = BaseImmOffset; 12475let accessSize = WordAccess; 12476let mayLoad = 1; 12477let isRestrictNoSlot1Store = 1; 12478let mayStore = 1; 12479let isExtendable = 1; 12480let opExtendable = 1; 12481let isExtentSigned = 0; 12482let opExtentBits = 8; 12483let opExtentAlign = 2; 12484} 12485def L4_or_memopw_zomap : HInst< 12486(outs), 12487(ins IntRegs:$Rs32, IntRegs:$Rt32), 12488"memw($Rs32) |= $Rt32", 12489tc_9bcfb2ee, TypeMAPPING> { 12490let isPseudo = 1; 12491let isCodeGenOnly = 1; 12492} 12493def L4_ploadrbf_abs : HInst< 12494(outs IntRegs:$Rd32), 12495(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12496"if (!$Pt4) $Rd32 = memb(#$Ii)", 12497tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12498let Inst{7-5} = 0b100; 12499let Inst{13-11} = 0b101; 12500let Inst{31-21} = 0b10011111000; 12501let isPredicated = 1; 12502let isPredicatedFalse = 1; 12503let hasNewValue = 1; 12504let opNewValue = 0; 12505let addrMode = Absolute; 12506let accessSize = ByteAccess; 12507let mayLoad = 1; 12508let isExtended = 1; 12509let BaseOpcode = "L4_loadrb_abs"; 12510let CextOpcode = "L2_loadrb"; 12511let DecoderNamespace = "MustExtend"; 12512let isExtendable = 1; 12513let opExtendable = 2; 12514let isExtentSigned = 0; 12515let opExtentBits = 6; 12516let opExtentAlign = 0; 12517} 12518def L4_ploadrbf_rr : HInst< 12519(outs IntRegs:$Rd32), 12520(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12521"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12522tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12523let Inst{31-21} = 0b00110001000; 12524let isPredicated = 1; 12525let isPredicatedFalse = 1; 12526let hasNewValue = 1; 12527let opNewValue = 0; 12528let addrMode = BaseRegOffset; 12529let accessSize = ByteAccess; 12530let mayLoad = 1; 12531let BaseOpcode = "L4_loadrb_rr"; 12532let CextOpcode = "L2_loadrb"; 12533let InputType = "reg"; 12534} 12535def L4_ploadrbfnew_abs : HInst< 12536(outs IntRegs:$Rd32), 12537(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12538"if (!$Pt4.new) $Rd32 = memb(#$Ii)", 12539tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12540let Inst{7-5} = 0b100; 12541let Inst{13-11} = 0b111; 12542let Inst{31-21} = 0b10011111000; 12543let isPredicated = 1; 12544let isPredicatedFalse = 1; 12545let hasNewValue = 1; 12546let opNewValue = 0; 12547let addrMode = Absolute; 12548let accessSize = ByteAccess; 12549let isPredicatedNew = 1; 12550let mayLoad = 1; 12551let isExtended = 1; 12552let BaseOpcode = "L4_loadrb_abs"; 12553let CextOpcode = "L2_loadrb"; 12554let DecoderNamespace = "MustExtend"; 12555let isExtendable = 1; 12556let opExtendable = 2; 12557let isExtentSigned = 0; 12558let opExtentBits = 6; 12559let opExtentAlign = 0; 12560} 12561def L4_ploadrbfnew_rr : HInst< 12562(outs IntRegs:$Rd32), 12563(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12564"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12565tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12566let Inst{31-21} = 0b00110011000; 12567let isPredicated = 1; 12568let isPredicatedFalse = 1; 12569let hasNewValue = 1; 12570let opNewValue = 0; 12571let addrMode = BaseRegOffset; 12572let accessSize = ByteAccess; 12573let isPredicatedNew = 1; 12574let mayLoad = 1; 12575let BaseOpcode = "L4_loadrb_rr"; 12576let CextOpcode = "L2_loadrb"; 12577let InputType = "reg"; 12578} 12579def L4_ploadrbt_abs : HInst< 12580(outs IntRegs:$Rd32), 12581(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12582"if ($Pt4) $Rd32 = memb(#$Ii)", 12583tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12584let Inst{7-5} = 0b100; 12585let Inst{13-11} = 0b100; 12586let Inst{31-21} = 0b10011111000; 12587let isPredicated = 1; 12588let hasNewValue = 1; 12589let opNewValue = 0; 12590let addrMode = Absolute; 12591let accessSize = ByteAccess; 12592let mayLoad = 1; 12593let isExtended = 1; 12594let BaseOpcode = "L4_loadrb_abs"; 12595let CextOpcode = "L2_loadrb"; 12596let DecoderNamespace = "MustExtend"; 12597let isExtendable = 1; 12598let opExtendable = 2; 12599let isExtentSigned = 0; 12600let opExtentBits = 6; 12601let opExtentAlign = 0; 12602} 12603def L4_ploadrbt_rr : HInst< 12604(outs IntRegs:$Rd32), 12605(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12606"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12607tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12608let Inst{31-21} = 0b00110000000; 12609let isPredicated = 1; 12610let hasNewValue = 1; 12611let opNewValue = 0; 12612let addrMode = BaseRegOffset; 12613let accessSize = ByteAccess; 12614let mayLoad = 1; 12615let BaseOpcode = "L4_loadrb_rr"; 12616let CextOpcode = "L2_loadrb"; 12617let InputType = "reg"; 12618} 12619def L4_ploadrbtnew_abs : HInst< 12620(outs IntRegs:$Rd32), 12621(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12622"if ($Pt4.new) $Rd32 = memb(#$Ii)", 12623tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12624let Inst{7-5} = 0b100; 12625let Inst{13-11} = 0b110; 12626let Inst{31-21} = 0b10011111000; 12627let isPredicated = 1; 12628let hasNewValue = 1; 12629let opNewValue = 0; 12630let addrMode = Absolute; 12631let accessSize = ByteAccess; 12632let isPredicatedNew = 1; 12633let mayLoad = 1; 12634let isExtended = 1; 12635let BaseOpcode = "L4_loadrb_abs"; 12636let CextOpcode = "L2_loadrb"; 12637let DecoderNamespace = "MustExtend"; 12638let isExtendable = 1; 12639let opExtendable = 2; 12640let isExtentSigned = 0; 12641let opExtentBits = 6; 12642let opExtentAlign = 0; 12643} 12644def L4_ploadrbtnew_rr : HInst< 12645(outs IntRegs:$Rd32), 12646(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12647"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12648tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12649let Inst{31-21} = 0b00110010000; 12650let isPredicated = 1; 12651let hasNewValue = 1; 12652let opNewValue = 0; 12653let addrMode = BaseRegOffset; 12654let accessSize = ByteAccess; 12655let isPredicatedNew = 1; 12656let mayLoad = 1; 12657let BaseOpcode = "L4_loadrb_rr"; 12658let CextOpcode = "L2_loadrb"; 12659let InputType = "reg"; 12660} 12661def L4_ploadrdf_abs : HInst< 12662(outs DoubleRegs:$Rdd32), 12663(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12664"if (!$Pt4) $Rdd32 = memd(#$Ii)", 12665tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12666let Inst{7-5} = 0b100; 12667let Inst{13-11} = 0b101; 12668let Inst{31-21} = 0b10011111110; 12669let isPredicated = 1; 12670let isPredicatedFalse = 1; 12671let addrMode = Absolute; 12672let accessSize = DoubleWordAccess; 12673let mayLoad = 1; 12674let isExtended = 1; 12675let BaseOpcode = "L4_loadrd_abs"; 12676let CextOpcode = "L2_loadrd"; 12677let DecoderNamespace = "MustExtend"; 12678let isExtendable = 1; 12679let opExtendable = 2; 12680let isExtentSigned = 0; 12681let opExtentBits = 6; 12682let opExtentAlign = 0; 12683} 12684def L4_ploadrdf_rr : HInst< 12685(outs DoubleRegs:$Rdd32), 12686(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12687"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12688tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12689let Inst{31-21} = 0b00110001110; 12690let isPredicated = 1; 12691let isPredicatedFalse = 1; 12692let addrMode = BaseRegOffset; 12693let accessSize = DoubleWordAccess; 12694let mayLoad = 1; 12695let BaseOpcode = "L4_loadrd_rr"; 12696let CextOpcode = "L2_loadrd"; 12697let InputType = "reg"; 12698} 12699def L4_ploadrdfnew_abs : HInst< 12700(outs DoubleRegs:$Rdd32), 12701(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12702"if (!$Pt4.new) $Rdd32 = memd(#$Ii)", 12703tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12704let Inst{7-5} = 0b100; 12705let Inst{13-11} = 0b111; 12706let Inst{31-21} = 0b10011111110; 12707let isPredicated = 1; 12708let isPredicatedFalse = 1; 12709let addrMode = Absolute; 12710let accessSize = DoubleWordAccess; 12711let isPredicatedNew = 1; 12712let mayLoad = 1; 12713let isExtended = 1; 12714let BaseOpcode = "L4_loadrd_abs"; 12715let CextOpcode = "L2_loadrd"; 12716let DecoderNamespace = "MustExtend"; 12717let isExtendable = 1; 12718let opExtendable = 2; 12719let isExtentSigned = 0; 12720let opExtentBits = 6; 12721let opExtentAlign = 0; 12722} 12723def L4_ploadrdfnew_rr : HInst< 12724(outs DoubleRegs:$Rdd32), 12725(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12726"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12727tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12728let Inst{31-21} = 0b00110011110; 12729let isPredicated = 1; 12730let isPredicatedFalse = 1; 12731let addrMode = BaseRegOffset; 12732let accessSize = DoubleWordAccess; 12733let isPredicatedNew = 1; 12734let mayLoad = 1; 12735let BaseOpcode = "L4_loadrd_rr"; 12736let CextOpcode = "L2_loadrd"; 12737let InputType = "reg"; 12738} 12739def L4_ploadrdt_abs : HInst< 12740(outs DoubleRegs:$Rdd32), 12741(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12742"if ($Pt4) $Rdd32 = memd(#$Ii)", 12743tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12744let Inst{7-5} = 0b100; 12745let Inst{13-11} = 0b100; 12746let Inst{31-21} = 0b10011111110; 12747let isPredicated = 1; 12748let addrMode = Absolute; 12749let accessSize = DoubleWordAccess; 12750let mayLoad = 1; 12751let isExtended = 1; 12752let BaseOpcode = "L4_loadrd_abs"; 12753let CextOpcode = "L2_loadrd"; 12754let DecoderNamespace = "MustExtend"; 12755let isExtendable = 1; 12756let opExtendable = 2; 12757let isExtentSigned = 0; 12758let opExtentBits = 6; 12759let opExtentAlign = 0; 12760} 12761def L4_ploadrdt_rr : HInst< 12762(outs DoubleRegs:$Rdd32), 12763(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12764"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12765tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12766let Inst{31-21} = 0b00110000110; 12767let isPredicated = 1; 12768let addrMode = BaseRegOffset; 12769let accessSize = DoubleWordAccess; 12770let mayLoad = 1; 12771let BaseOpcode = "L4_loadrd_rr"; 12772let CextOpcode = "L2_loadrd"; 12773let InputType = "reg"; 12774} 12775def L4_ploadrdtnew_abs : HInst< 12776(outs DoubleRegs:$Rdd32), 12777(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12778"if ($Pt4.new) $Rdd32 = memd(#$Ii)", 12779tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12780let Inst{7-5} = 0b100; 12781let Inst{13-11} = 0b110; 12782let Inst{31-21} = 0b10011111110; 12783let isPredicated = 1; 12784let addrMode = Absolute; 12785let accessSize = DoubleWordAccess; 12786let isPredicatedNew = 1; 12787let mayLoad = 1; 12788let isExtended = 1; 12789let BaseOpcode = "L4_loadrd_abs"; 12790let CextOpcode = "L2_loadrd"; 12791let DecoderNamespace = "MustExtend"; 12792let isExtendable = 1; 12793let opExtendable = 2; 12794let isExtentSigned = 0; 12795let opExtentBits = 6; 12796let opExtentAlign = 0; 12797} 12798def L4_ploadrdtnew_rr : HInst< 12799(outs DoubleRegs:$Rdd32), 12800(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12801"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12802tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12803let Inst{31-21} = 0b00110010110; 12804let isPredicated = 1; 12805let addrMode = BaseRegOffset; 12806let accessSize = DoubleWordAccess; 12807let isPredicatedNew = 1; 12808let mayLoad = 1; 12809let BaseOpcode = "L4_loadrd_rr"; 12810let CextOpcode = "L2_loadrd"; 12811let InputType = "reg"; 12812} 12813def L4_ploadrhf_abs : HInst< 12814(outs IntRegs:$Rd32), 12815(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12816"if (!$Pt4) $Rd32 = memh(#$Ii)", 12817tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12818let Inst{7-5} = 0b100; 12819let Inst{13-11} = 0b101; 12820let Inst{31-21} = 0b10011111010; 12821let isPredicated = 1; 12822let isPredicatedFalse = 1; 12823let hasNewValue = 1; 12824let opNewValue = 0; 12825let addrMode = Absolute; 12826let accessSize = HalfWordAccess; 12827let mayLoad = 1; 12828let isExtended = 1; 12829let BaseOpcode = "L4_loadrh_abs"; 12830let CextOpcode = "L2_loadrh"; 12831let DecoderNamespace = "MustExtend"; 12832let isExtendable = 1; 12833let opExtendable = 2; 12834let isExtentSigned = 0; 12835let opExtentBits = 6; 12836let opExtentAlign = 0; 12837} 12838def L4_ploadrhf_rr : HInst< 12839(outs IntRegs:$Rd32), 12840(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12841"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12842tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12843let Inst{31-21} = 0b00110001010; 12844let isPredicated = 1; 12845let isPredicatedFalse = 1; 12846let hasNewValue = 1; 12847let opNewValue = 0; 12848let addrMode = BaseRegOffset; 12849let accessSize = HalfWordAccess; 12850let mayLoad = 1; 12851let BaseOpcode = "L4_loadrh_rr"; 12852let CextOpcode = "L2_loadrh"; 12853let InputType = "reg"; 12854} 12855def L4_ploadrhfnew_abs : HInst< 12856(outs IntRegs:$Rd32), 12857(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12858"if (!$Pt4.new) $Rd32 = memh(#$Ii)", 12859tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12860let Inst{7-5} = 0b100; 12861let Inst{13-11} = 0b111; 12862let Inst{31-21} = 0b10011111010; 12863let isPredicated = 1; 12864let isPredicatedFalse = 1; 12865let hasNewValue = 1; 12866let opNewValue = 0; 12867let addrMode = Absolute; 12868let accessSize = HalfWordAccess; 12869let isPredicatedNew = 1; 12870let mayLoad = 1; 12871let isExtended = 1; 12872let BaseOpcode = "L4_loadrh_abs"; 12873let CextOpcode = "L2_loadrh"; 12874let DecoderNamespace = "MustExtend"; 12875let isExtendable = 1; 12876let opExtendable = 2; 12877let isExtentSigned = 0; 12878let opExtentBits = 6; 12879let opExtentAlign = 0; 12880} 12881def L4_ploadrhfnew_rr : HInst< 12882(outs IntRegs:$Rd32), 12883(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12884"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12885tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12886let Inst{31-21} = 0b00110011010; 12887let isPredicated = 1; 12888let isPredicatedFalse = 1; 12889let hasNewValue = 1; 12890let opNewValue = 0; 12891let addrMode = BaseRegOffset; 12892let accessSize = HalfWordAccess; 12893let isPredicatedNew = 1; 12894let mayLoad = 1; 12895let BaseOpcode = "L4_loadrh_rr"; 12896let CextOpcode = "L2_loadrh"; 12897let InputType = "reg"; 12898} 12899def L4_ploadrht_abs : HInst< 12900(outs IntRegs:$Rd32), 12901(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12902"if ($Pt4) $Rd32 = memh(#$Ii)", 12903tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12904let Inst{7-5} = 0b100; 12905let Inst{13-11} = 0b100; 12906let Inst{31-21} = 0b10011111010; 12907let isPredicated = 1; 12908let hasNewValue = 1; 12909let opNewValue = 0; 12910let addrMode = Absolute; 12911let accessSize = HalfWordAccess; 12912let mayLoad = 1; 12913let isExtended = 1; 12914let BaseOpcode = "L4_loadrh_abs"; 12915let CextOpcode = "L2_loadrh"; 12916let DecoderNamespace = "MustExtend"; 12917let isExtendable = 1; 12918let opExtendable = 2; 12919let isExtentSigned = 0; 12920let opExtentBits = 6; 12921let opExtentAlign = 0; 12922} 12923def L4_ploadrht_rr : HInst< 12924(outs IntRegs:$Rd32), 12925(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12926"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12927tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12928let Inst{31-21} = 0b00110000010; 12929let isPredicated = 1; 12930let hasNewValue = 1; 12931let opNewValue = 0; 12932let addrMode = BaseRegOffset; 12933let accessSize = HalfWordAccess; 12934let mayLoad = 1; 12935let BaseOpcode = "L4_loadrh_rr"; 12936let CextOpcode = "L2_loadrh"; 12937let InputType = "reg"; 12938} 12939def L4_ploadrhtnew_abs : HInst< 12940(outs IntRegs:$Rd32), 12941(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12942"if ($Pt4.new) $Rd32 = memh(#$Ii)", 12943tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12944let Inst{7-5} = 0b100; 12945let Inst{13-11} = 0b110; 12946let Inst{31-21} = 0b10011111010; 12947let isPredicated = 1; 12948let hasNewValue = 1; 12949let opNewValue = 0; 12950let addrMode = Absolute; 12951let accessSize = HalfWordAccess; 12952let isPredicatedNew = 1; 12953let mayLoad = 1; 12954let isExtended = 1; 12955let BaseOpcode = "L4_loadrh_abs"; 12956let CextOpcode = "L2_loadrh"; 12957let DecoderNamespace = "MustExtend"; 12958let isExtendable = 1; 12959let opExtendable = 2; 12960let isExtentSigned = 0; 12961let opExtentBits = 6; 12962let opExtentAlign = 0; 12963} 12964def L4_ploadrhtnew_rr : HInst< 12965(outs IntRegs:$Rd32), 12966(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12967"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12968tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12969let Inst{31-21} = 0b00110010010; 12970let isPredicated = 1; 12971let hasNewValue = 1; 12972let opNewValue = 0; 12973let addrMode = BaseRegOffset; 12974let accessSize = HalfWordAccess; 12975let isPredicatedNew = 1; 12976let mayLoad = 1; 12977let BaseOpcode = "L4_loadrh_rr"; 12978let CextOpcode = "L2_loadrh"; 12979let InputType = "reg"; 12980} 12981def L4_ploadrif_abs : HInst< 12982(outs IntRegs:$Rd32), 12983(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12984"if (!$Pt4) $Rd32 = memw(#$Ii)", 12985tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12986let Inst{7-5} = 0b100; 12987let Inst{13-11} = 0b101; 12988let Inst{31-21} = 0b10011111100; 12989let isPredicated = 1; 12990let isPredicatedFalse = 1; 12991let hasNewValue = 1; 12992let opNewValue = 0; 12993let addrMode = Absolute; 12994let accessSize = WordAccess; 12995let mayLoad = 1; 12996let isExtended = 1; 12997let BaseOpcode = "L4_loadri_abs"; 12998let CextOpcode = "L2_loadri"; 12999let DecoderNamespace = "MustExtend"; 13000let isExtendable = 1; 13001let opExtendable = 2; 13002let isExtentSigned = 0; 13003let opExtentBits = 6; 13004let opExtentAlign = 0; 13005} 13006def L4_ploadrif_rr : HInst< 13007(outs IntRegs:$Rd32), 13008(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13009"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13010tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13011let Inst{31-21} = 0b00110001100; 13012let isPredicated = 1; 13013let isPredicatedFalse = 1; 13014let hasNewValue = 1; 13015let opNewValue = 0; 13016let addrMode = BaseRegOffset; 13017let accessSize = WordAccess; 13018let mayLoad = 1; 13019let BaseOpcode = "L4_loadri_rr"; 13020let CextOpcode = "L2_loadri"; 13021let InputType = "reg"; 13022} 13023def L4_ploadrifnew_abs : HInst< 13024(outs IntRegs:$Rd32), 13025(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13026"if (!$Pt4.new) $Rd32 = memw(#$Ii)", 13027tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13028let Inst{7-5} = 0b100; 13029let Inst{13-11} = 0b111; 13030let Inst{31-21} = 0b10011111100; 13031let isPredicated = 1; 13032let isPredicatedFalse = 1; 13033let hasNewValue = 1; 13034let opNewValue = 0; 13035let addrMode = Absolute; 13036let accessSize = WordAccess; 13037let isPredicatedNew = 1; 13038let mayLoad = 1; 13039let isExtended = 1; 13040let BaseOpcode = "L4_loadri_abs"; 13041let CextOpcode = "L2_loadri"; 13042let DecoderNamespace = "MustExtend"; 13043let isExtendable = 1; 13044let opExtendable = 2; 13045let isExtentSigned = 0; 13046let opExtentBits = 6; 13047let opExtentAlign = 0; 13048} 13049def L4_ploadrifnew_rr : HInst< 13050(outs IntRegs:$Rd32), 13051(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13052"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13053tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13054let Inst{31-21} = 0b00110011100; 13055let isPredicated = 1; 13056let isPredicatedFalse = 1; 13057let hasNewValue = 1; 13058let opNewValue = 0; 13059let addrMode = BaseRegOffset; 13060let accessSize = WordAccess; 13061let isPredicatedNew = 1; 13062let mayLoad = 1; 13063let BaseOpcode = "L4_loadri_rr"; 13064let CextOpcode = "L2_loadri"; 13065let InputType = "reg"; 13066} 13067def L4_ploadrit_abs : HInst< 13068(outs IntRegs:$Rd32), 13069(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13070"if ($Pt4) $Rd32 = memw(#$Ii)", 13071tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13072let Inst{7-5} = 0b100; 13073let Inst{13-11} = 0b100; 13074let Inst{31-21} = 0b10011111100; 13075let isPredicated = 1; 13076let hasNewValue = 1; 13077let opNewValue = 0; 13078let addrMode = Absolute; 13079let accessSize = WordAccess; 13080let mayLoad = 1; 13081let isExtended = 1; 13082let BaseOpcode = "L4_loadri_abs"; 13083let CextOpcode = "L2_loadri"; 13084let DecoderNamespace = "MustExtend"; 13085let isExtendable = 1; 13086let opExtendable = 2; 13087let isExtentSigned = 0; 13088let opExtentBits = 6; 13089let opExtentAlign = 0; 13090} 13091def L4_ploadrit_rr : HInst< 13092(outs IntRegs:$Rd32), 13093(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13094"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13095tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13096let Inst{31-21} = 0b00110000100; 13097let isPredicated = 1; 13098let hasNewValue = 1; 13099let opNewValue = 0; 13100let addrMode = BaseRegOffset; 13101let accessSize = WordAccess; 13102let mayLoad = 1; 13103let BaseOpcode = "L4_loadri_rr"; 13104let CextOpcode = "L2_loadri"; 13105let InputType = "reg"; 13106} 13107def L4_ploadritnew_abs : HInst< 13108(outs IntRegs:$Rd32), 13109(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13110"if ($Pt4.new) $Rd32 = memw(#$Ii)", 13111tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13112let Inst{7-5} = 0b100; 13113let Inst{13-11} = 0b110; 13114let Inst{31-21} = 0b10011111100; 13115let isPredicated = 1; 13116let hasNewValue = 1; 13117let opNewValue = 0; 13118let addrMode = Absolute; 13119let accessSize = WordAccess; 13120let isPredicatedNew = 1; 13121let mayLoad = 1; 13122let isExtended = 1; 13123let BaseOpcode = "L4_loadri_abs"; 13124let CextOpcode = "L2_loadri"; 13125let DecoderNamespace = "MustExtend"; 13126let isExtendable = 1; 13127let opExtendable = 2; 13128let isExtentSigned = 0; 13129let opExtentBits = 6; 13130let opExtentAlign = 0; 13131} 13132def L4_ploadritnew_rr : HInst< 13133(outs IntRegs:$Rd32), 13134(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13135"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13136tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13137let Inst{31-21} = 0b00110010100; 13138let isPredicated = 1; 13139let hasNewValue = 1; 13140let opNewValue = 0; 13141let addrMode = BaseRegOffset; 13142let accessSize = WordAccess; 13143let isPredicatedNew = 1; 13144let mayLoad = 1; 13145let BaseOpcode = "L4_loadri_rr"; 13146let CextOpcode = "L2_loadri"; 13147let InputType = "reg"; 13148} 13149def L4_ploadrubf_abs : HInst< 13150(outs IntRegs:$Rd32), 13151(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13152"if (!$Pt4) $Rd32 = memub(#$Ii)", 13153tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13154let Inst{7-5} = 0b100; 13155let Inst{13-11} = 0b101; 13156let Inst{31-21} = 0b10011111001; 13157let isPredicated = 1; 13158let isPredicatedFalse = 1; 13159let hasNewValue = 1; 13160let opNewValue = 0; 13161let addrMode = Absolute; 13162let accessSize = ByteAccess; 13163let mayLoad = 1; 13164let isExtended = 1; 13165let BaseOpcode = "L4_loadrub_abs"; 13166let CextOpcode = "L2_loadrub"; 13167let DecoderNamespace = "MustExtend"; 13168let isExtendable = 1; 13169let opExtendable = 2; 13170let isExtentSigned = 0; 13171let opExtentBits = 6; 13172let opExtentAlign = 0; 13173} 13174def L4_ploadrubf_rr : HInst< 13175(outs IntRegs:$Rd32), 13176(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13177"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13178tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13179let Inst{31-21} = 0b00110001001; 13180let isPredicated = 1; 13181let isPredicatedFalse = 1; 13182let hasNewValue = 1; 13183let opNewValue = 0; 13184let addrMode = BaseRegOffset; 13185let accessSize = ByteAccess; 13186let mayLoad = 1; 13187let BaseOpcode = "L4_loadrub_rr"; 13188let CextOpcode = "L2_loadrub"; 13189let InputType = "reg"; 13190} 13191def L4_ploadrubfnew_abs : HInst< 13192(outs IntRegs:$Rd32), 13193(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13194"if (!$Pt4.new) $Rd32 = memub(#$Ii)", 13195tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13196let Inst{7-5} = 0b100; 13197let Inst{13-11} = 0b111; 13198let Inst{31-21} = 0b10011111001; 13199let isPredicated = 1; 13200let isPredicatedFalse = 1; 13201let hasNewValue = 1; 13202let opNewValue = 0; 13203let addrMode = Absolute; 13204let accessSize = ByteAccess; 13205let isPredicatedNew = 1; 13206let mayLoad = 1; 13207let isExtended = 1; 13208let BaseOpcode = "L4_loadrub_abs"; 13209let CextOpcode = "L2_loadrub"; 13210let DecoderNamespace = "MustExtend"; 13211let isExtendable = 1; 13212let opExtendable = 2; 13213let isExtentSigned = 0; 13214let opExtentBits = 6; 13215let opExtentAlign = 0; 13216} 13217def L4_ploadrubfnew_rr : HInst< 13218(outs IntRegs:$Rd32), 13219(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13220"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13221tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13222let Inst{31-21} = 0b00110011001; 13223let isPredicated = 1; 13224let isPredicatedFalse = 1; 13225let hasNewValue = 1; 13226let opNewValue = 0; 13227let addrMode = BaseRegOffset; 13228let accessSize = ByteAccess; 13229let isPredicatedNew = 1; 13230let mayLoad = 1; 13231let BaseOpcode = "L4_loadrub_rr"; 13232let CextOpcode = "L2_loadrub"; 13233let InputType = "reg"; 13234} 13235def L4_ploadrubt_abs : HInst< 13236(outs IntRegs:$Rd32), 13237(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13238"if ($Pt4) $Rd32 = memub(#$Ii)", 13239tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13240let Inst{7-5} = 0b100; 13241let Inst{13-11} = 0b100; 13242let Inst{31-21} = 0b10011111001; 13243let isPredicated = 1; 13244let hasNewValue = 1; 13245let opNewValue = 0; 13246let addrMode = Absolute; 13247let accessSize = ByteAccess; 13248let mayLoad = 1; 13249let isExtended = 1; 13250let BaseOpcode = "L4_loadrub_abs"; 13251let CextOpcode = "L2_loadrub"; 13252let DecoderNamespace = "MustExtend"; 13253let isExtendable = 1; 13254let opExtendable = 2; 13255let isExtentSigned = 0; 13256let opExtentBits = 6; 13257let opExtentAlign = 0; 13258} 13259def L4_ploadrubt_rr : HInst< 13260(outs IntRegs:$Rd32), 13261(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13262"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13263tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13264let Inst{31-21} = 0b00110000001; 13265let isPredicated = 1; 13266let hasNewValue = 1; 13267let opNewValue = 0; 13268let addrMode = BaseRegOffset; 13269let accessSize = ByteAccess; 13270let mayLoad = 1; 13271let BaseOpcode = "L4_loadrub_rr"; 13272let CextOpcode = "L2_loadrub"; 13273let InputType = "reg"; 13274} 13275def L4_ploadrubtnew_abs : HInst< 13276(outs IntRegs:$Rd32), 13277(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13278"if ($Pt4.new) $Rd32 = memub(#$Ii)", 13279tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13280let Inst{7-5} = 0b100; 13281let Inst{13-11} = 0b110; 13282let Inst{31-21} = 0b10011111001; 13283let isPredicated = 1; 13284let hasNewValue = 1; 13285let opNewValue = 0; 13286let addrMode = Absolute; 13287let accessSize = ByteAccess; 13288let isPredicatedNew = 1; 13289let mayLoad = 1; 13290let isExtended = 1; 13291let BaseOpcode = "L4_loadrub_abs"; 13292let CextOpcode = "L2_loadrub"; 13293let DecoderNamespace = "MustExtend"; 13294let isExtendable = 1; 13295let opExtendable = 2; 13296let isExtentSigned = 0; 13297let opExtentBits = 6; 13298let opExtentAlign = 0; 13299} 13300def L4_ploadrubtnew_rr : HInst< 13301(outs IntRegs:$Rd32), 13302(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13303"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13304tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13305let Inst{31-21} = 0b00110010001; 13306let isPredicated = 1; 13307let hasNewValue = 1; 13308let opNewValue = 0; 13309let addrMode = BaseRegOffset; 13310let accessSize = ByteAccess; 13311let isPredicatedNew = 1; 13312let mayLoad = 1; 13313let BaseOpcode = "L4_loadrub_rr"; 13314let CextOpcode = "L2_loadrub"; 13315let InputType = "reg"; 13316} 13317def L4_ploadruhf_abs : HInst< 13318(outs IntRegs:$Rd32), 13319(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13320"if (!$Pt4) $Rd32 = memuh(#$Ii)", 13321tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13322let Inst{7-5} = 0b100; 13323let Inst{13-11} = 0b101; 13324let Inst{31-21} = 0b10011111011; 13325let isPredicated = 1; 13326let isPredicatedFalse = 1; 13327let hasNewValue = 1; 13328let opNewValue = 0; 13329let addrMode = Absolute; 13330let accessSize = HalfWordAccess; 13331let mayLoad = 1; 13332let isExtended = 1; 13333let BaseOpcode = "L4_loadruh_abs"; 13334let CextOpcode = "L2_loadruh"; 13335let DecoderNamespace = "MustExtend"; 13336let isExtendable = 1; 13337let opExtendable = 2; 13338let isExtentSigned = 0; 13339let opExtentBits = 6; 13340let opExtentAlign = 0; 13341} 13342def L4_ploadruhf_rr : HInst< 13343(outs IntRegs:$Rd32), 13344(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13345"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13346tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13347let Inst{31-21} = 0b00110001011; 13348let isPredicated = 1; 13349let isPredicatedFalse = 1; 13350let hasNewValue = 1; 13351let opNewValue = 0; 13352let addrMode = BaseRegOffset; 13353let accessSize = HalfWordAccess; 13354let mayLoad = 1; 13355let BaseOpcode = "L4_loadruh_rr"; 13356let CextOpcode = "L2_loadruh"; 13357let InputType = "reg"; 13358} 13359def L4_ploadruhfnew_abs : HInst< 13360(outs IntRegs:$Rd32), 13361(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13362"if (!$Pt4.new) $Rd32 = memuh(#$Ii)", 13363tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13364let Inst{7-5} = 0b100; 13365let Inst{13-11} = 0b111; 13366let Inst{31-21} = 0b10011111011; 13367let isPredicated = 1; 13368let isPredicatedFalse = 1; 13369let hasNewValue = 1; 13370let opNewValue = 0; 13371let addrMode = Absolute; 13372let accessSize = HalfWordAccess; 13373let isPredicatedNew = 1; 13374let mayLoad = 1; 13375let isExtended = 1; 13376let BaseOpcode = "L4_loadruh_abs"; 13377let CextOpcode = "L2_loadruh"; 13378let DecoderNamespace = "MustExtend"; 13379let isExtendable = 1; 13380let opExtendable = 2; 13381let isExtentSigned = 0; 13382let opExtentBits = 6; 13383let opExtentAlign = 0; 13384} 13385def L4_ploadruhfnew_rr : HInst< 13386(outs IntRegs:$Rd32), 13387(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13388"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13389tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13390let Inst{31-21} = 0b00110011011; 13391let isPredicated = 1; 13392let isPredicatedFalse = 1; 13393let hasNewValue = 1; 13394let opNewValue = 0; 13395let addrMode = BaseRegOffset; 13396let accessSize = HalfWordAccess; 13397let isPredicatedNew = 1; 13398let mayLoad = 1; 13399let BaseOpcode = "L4_loadruh_rr"; 13400let CextOpcode = "L2_loadruh"; 13401let InputType = "reg"; 13402} 13403def L4_ploadruht_abs : HInst< 13404(outs IntRegs:$Rd32), 13405(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13406"if ($Pt4) $Rd32 = memuh(#$Ii)", 13407tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13408let Inst{7-5} = 0b100; 13409let Inst{13-11} = 0b100; 13410let Inst{31-21} = 0b10011111011; 13411let isPredicated = 1; 13412let hasNewValue = 1; 13413let opNewValue = 0; 13414let addrMode = Absolute; 13415let accessSize = HalfWordAccess; 13416let mayLoad = 1; 13417let isExtended = 1; 13418let BaseOpcode = "L4_loadruh_abs"; 13419let CextOpcode = "L2_loadruh"; 13420let DecoderNamespace = "MustExtend"; 13421let isExtendable = 1; 13422let opExtendable = 2; 13423let isExtentSigned = 0; 13424let opExtentBits = 6; 13425let opExtentAlign = 0; 13426} 13427def L4_ploadruht_rr : HInst< 13428(outs IntRegs:$Rd32), 13429(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13430"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13431tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13432let Inst{31-21} = 0b00110000011; 13433let isPredicated = 1; 13434let hasNewValue = 1; 13435let opNewValue = 0; 13436let addrMode = BaseRegOffset; 13437let accessSize = HalfWordAccess; 13438let mayLoad = 1; 13439let BaseOpcode = "L4_loadruh_rr"; 13440let CextOpcode = "L2_loadruh"; 13441let InputType = "reg"; 13442} 13443def L4_ploadruhtnew_abs : HInst< 13444(outs IntRegs:$Rd32), 13445(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13446"if ($Pt4.new) $Rd32 = memuh(#$Ii)", 13447tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13448let Inst{7-5} = 0b100; 13449let Inst{13-11} = 0b110; 13450let Inst{31-21} = 0b10011111011; 13451let isPredicated = 1; 13452let hasNewValue = 1; 13453let opNewValue = 0; 13454let addrMode = Absolute; 13455let accessSize = HalfWordAccess; 13456let isPredicatedNew = 1; 13457let mayLoad = 1; 13458let isExtended = 1; 13459let BaseOpcode = "L4_loadruh_abs"; 13460let CextOpcode = "L2_loadruh"; 13461let DecoderNamespace = "MustExtend"; 13462let isExtendable = 1; 13463let opExtendable = 2; 13464let isExtentSigned = 0; 13465let opExtentBits = 6; 13466let opExtentAlign = 0; 13467} 13468def L4_ploadruhtnew_rr : HInst< 13469(outs IntRegs:$Rd32), 13470(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13471"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13472tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13473let Inst{31-21} = 0b00110010011; 13474let isPredicated = 1; 13475let hasNewValue = 1; 13476let opNewValue = 0; 13477let addrMode = BaseRegOffset; 13478let accessSize = HalfWordAccess; 13479let isPredicatedNew = 1; 13480let mayLoad = 1; 13481let BaseOpcode = "L4_loadruh_rr"; 13482let CextOpcode = "L2_loadruh"; 13483let InputType = "reg"; 13484} 13485def L4_return : HInst< 13486(outs DoubleRegs:$Rdd32), 13487(ins IntRegs:$Rs32), 13488"$Rdd32 = dealloc_return($Rs32):raw", 13489tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel { 13490let Inst{13-5} = 0b000000000; 13491let Inst{31-21} = 0b10010110000; 13492let isTerminator = 1; 13493let isIndirectBranch = 1; 13494let accessSize = DoubleWordAccess; 13495let mayLoad = 1; 13496let cofMax1 = 1; 13497let isRestrictNoSlot1Store = 1; 13498let isReturn = 1; 13499let Uses = [FRAMEKEY]; 13500let Defs = [PC, R29]; 13501let BaseOpcode = "L4_return"; 13502let isBarrier = 1; 13503let isPredicable = 1; 13504let isTaken = 1; 13505} 13506def L4_return_f : HInst< 13507(outs DoubleRegs:$Rdd32), 13508(ins PredRegs:$Pv4, IntRegs:$Rs32), 13509"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13510tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13511let Inst{7-5} = 0b000; 13512let Inst{13-10} = 0b1100; 13513let Inst{31-21} = 0b10010110000; 13514let isPredicated = 1; 13515let isPredicatedFalse = 1; 13516let isTerminator = 1; 13517let isIndirectBranch = 1; 13518let accessSize = DoubleWordAccess; 13519let mayLoad = 1; 13520let cofMax1 = 1; 13521let isRestrictNoSlot1Store = 1; 13522let isReturn = 1; 13523let Uses = [FRAMEKEY]; 13524let Defs = [PC, R29]; 13525let BaseOpcode = "L4_return"; 13526let isTaken = Inst{12}; 13527} 13528def L4_return_fnew_pnt : HInst< 13529(outs DoubleRegs:$Rdd32), 13530(ins PredRegs:$Pv4, IntRegs:$Rs32), 13531"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13532tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13533let Inst{7-5} = 0b000; 13534let Inst{13-10} = 0b1010; 13535let Inst{31-21} = 0b10010110000; 13536let isPredicated = 1; 13537let isPredicatedFalse = 1; 13538let isTerminator = 1; 13539let isIndirectBranch = 1; 13540let accessSize = DoubleWordAccess; 13541let isPredicatedNew = 1; 13542let mayLoad = 1; 13543let cofMax1 = 1; 13544let isRestrictNoSlot1Store = 1; 13545let isReturn = 1; 13546let Uses = [FRAMEKEY]; 13547let Defs = [PC, R29]; 13548let BaseOpcode = "L4_return"; 13549let isTaken = Inst{12}; 13550} 13551def L4_return_fnew_pt : HInst< 13552(outs DoubleRegs:$Rdd32), 13553(ins PredRegs:$Pv4, IntRegs:$Rs32), 13554"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13555tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13556let Inst{7-5} = 0b000; 13557let Inst{13-10} = 0b1110; 13558let Inst{31-21} = 0b10010110000; 13559let isPredicated = 1; 13560let isPredicatedFalse = 1; 13561let isTerminator = 1; 13562let isIndirectBranch = 1; 13563let accessSize = DoubleWordAccess; 13564let isPredicatedNew = 1; 13565let mayLoad = 1; 13566let cofMax1 = 1; 13567let isRestrictNoSlot1Store = 1; 13568let isReturn = 1; 13569let Uses = [FRAMEKEY]; 13570let Defs = [PC, R29]; 13571let BaseOpcode = "L4_return"; 13572let isTaken = Inst{12}; 13573} 13574def L4_return_map_to_raw_f : HInst< 13575(outs), 13576(ins PredRegs:$Pv4), 13577"if (!$Pv4) dealloc_return", 13578tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> { 13579let isPseudo = 1; 13580let isCodeGenOnly = 1; 13581} 13582def L4_return_map_to_raw_fnew_pnt : HInst< 13583(outs), 13584(ins PredRegs:$Pv4), 13585"if (!$Pv4.new) dealloc_return:nt", 13586tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13587let isPseudo = 1; 13588let isCodeGenOnly = 1; 13589} 13590def L4_return_map_to_raw_fnew_pt : HInst< 13591(outs), 13592(ins PredRegs:$Pv4), 13593"if (!$Pv4.new) dealloc_return:t", 13594tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13595let isPseudo = 1; 13596let isCodeGenOnly = 1; 13597} 13598def L4_return_map_to_raw_t : HInst< 13599(outs), 13600(ins PredRegs:$Pv4), 13601"if ($Pv4) dealloc_return", 13602tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> { 13603let isPseudo = 1; 13604let isCodeGenOnly = 1; 13605} 13606def L4_return_map_to_raw_tnew_pnt : HInst< 13607(outs), 13608(ins PredRegs:$Pv4), 13609"if ($Pv4.new) dealloc_return:nt", 13610tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13611let isPseudo = 1; 13612let isCodeGenOnly = 1; 13613} 13614def L4_return_map_to_raw_tnew_pt : HInst< 13615(outs), 13616(ins PredRegs:$Pv4), 13617"if ($Pv4.new) dealloc_return:t", 13618tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13619let isPseudo = 1; 13620let isCodeGenOnly = 1; 13621} 13622def L4_return_t : HInst< 13623(outs DoubleRegs:$Rdd32), 13624(ins PredRegs:$Pv4, IntRegs:$Rs32), 13625"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13626tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13627let Inst{7-5} = 0b000; 13628let Inst{13-10} = 0b0100; 13629let Inst{31-21} = 0b10010110000; 13630let isPredicated = 1; 13631let isTerminator = 1; 13632let isIndirectBranch = 1; 13633let accessSize = DoubleWordAccess; 13634let mayLoad = 1; 13635let cofMax1 = 1; 13636let isRestrictNoSlot1Store = 1; 13637let isReturn = 1; 13638let Uses = [FRAMEKEY]; 13639let Defs = [PC, R29]; 13640let BaseOpcode = "L4_return"; 13641let isTaken = Inst{12}; 13642} 13643def L4_return_tnew_pnt : HInst< 13644(outs DoubleRegs:$Rdd32), 13645(ins PredRegs:$Pv4, IntRegs:$Rs32), 13646"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13647tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13648let Inst{7-5} = 0b000; 13649let Inst{13-10} = 0b0010; 13650let Inst{31-21} = 0b10010110000; 13651let isPredicated = 1; 13652let isTerminator = 1; 13653let isIndirectBranch = 1; 13654let accessSize = DoubleWordAccess; 13655let isPredicatedNew = 1; 13656let mayLoad = 1; 13657let cofMax1 = 1; 13658let isRestrictNoSlot1Store = 1; 13659let isReturn = 1; 13660let Uses = [FRAMEKEY]; 13661let Defs = [PC, R29]; 13662let BaseOpcode = "L4_return"; 13663let isTaken = Inst{12}; 13664} 13665def L4_return_tnew_pt : HInst< 13666(outs DoubleRegs:$Rdd32), 13667(ins PredRegs:$Pv4, IntRegs:$Rs32), 13668"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13669tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13670let Inst{7-5} = 0b000; 13671let Inst{13-10} = 0b0110; 13672let Inst{31-21} = 0b10010110000; 13673let isPredicated = 1; 13674let isTerminator = 1; 13675let isIndirectBranch = 1; 13676let accessSize = DoubleWordAccess; 13677let isPredicatedNew = 1; 13678let mayLoad = 1; 13679let cofMax1 = 1; 13680let isRestrictNoSlot1Store = 1; 13681let isReturn = 1; 13682let Uses = [FRAMEKEY]; 13683let Defs = [PC, R29]; 13684let BaseOpcode = "L4_return"; 13685let isTaken = Inst{12}; 13686} 13687def L4_sub_memopb_io : HInst< 13688(outs), 13689(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 13690"memb($Rs32+#$Ii) -= $Rt32", 13691tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 13692let Inst{6-5} = 0b01; 13693let Inst{13-13} = 0b0; 13694let Inst{31-21} = 0b00111110000; 13695let addrMode = BaseImmOffset; 13696let accessSize = ByteAccess; 13697let mayLoad = 1; 13698let isRestrictNoSlot1Store = 1; 13699let mayStore = 1; 13700let isExtendable = 1; 13701let opExtendable = 1; 13702let isExtentSigned = 0; 13703let opExtentBits = 6; 13704let opExtentAlign = 0; 13705} 13706def L4_sub_memopb_zomap : HInst< 13707(outs), 13708(ins IntRegs:$Rs32, IntRegs:$Rt32), 13709"memb($Rs32) -= $Rt32", 13710tc_9bcfb2ee, TypeMAPPING> { 13711let isPseudo = 1; 13712let isCodeGenOnly = 1; 13713} 13714def L4_sub_memoph_io : HInst< 13715(outs), 13716(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 13717"memh($Rs32+#$Ii) -= $Rt32", 13718tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 13719let Inst{6-5} = 0b01; 13720let Inst{13-13} = 0b0; 13721let Inst{31-21} = 0b00111110001; 13722let addrMode = BaseImmOffset; 13723let accessSize = HalfWordAccess; 13724let mayLoad = 1; 13725let isRestrictNoSlot1Store = 1; 13726let mayStore = 1; 13727let isExtendable = 1; 13728let opExtendable = 1; 13729let isExtentSigned = 0; 13730let opExtentBits = 7; 13731let opExtentAlign = 1; 13732} 13733def L4_sub_memoph_zomap : HInst< 13734(outs), 13735(ins IntRegs:$Rs32, IntRegs:$Rt32), 13736"memh($Rs32) -= $Rt32", 13737tc_9bcfb2ee, TypeMAPPING> { 13738let isPseudo = 1; 13739let isCodeGenOnly = 1; 13740} 13741def L4_sub_memopw_io : HInst< 13742(outs), 13743(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 13744"memw($Rs32+#$Ii) -= $Rt32", 13745tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 13746let Inst{6-5} = 0b01; 13747let Inst{13-13} = 0b0; 13748let Inst{31-21} = 0b00111110010; 13749let addrMode = BaseImmOffset; 13750let accessSize = WordAccess; 13751let mayLoad = 1; 13752let isRestrictNoSlot1Store = 1; 13753let mayStore = 1; 13754let isExtendable = 1; 13755let opExtendable = 1; 13756let isExtentSigned = 0; 13757let opExtentBits = 8; 13758let opExtentAlign = 2; 13759} 13760def L4_sub_memopw_zomap : HInst< 13761(outs), 13762(ins IntRegs:$Rs32, IntRegs:$Rt32), 13763"memw($Rs32) -= $Rt32", 13764tc_9bcfb2ee, TypeMAPPING> { 13765let isPseudo = 1; 13766let isCodeGenOnly = 1; 13767} 13768def L6_deallocframe_map_to_raw : HInst< 13769(outs), 13770(ins), 13771"deallocframe", 13772tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> { 13773let isPseudo = 1; 13774let isCodeGenOnly = 1; 13775} 13776def L6_memcpy : HInst< 13777(outs), 13778(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2), 13779"memcpy($Rs32,$Rt32,$Mu2)", 13780tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> { 13781let Inst{7-0} = 0b01000000; 13782let Inst{31-21} = 0b10010010000; 13783let mayLoad = 1; 13784let isSolo = 1; 13785let mayStore = 1; 13786} 13787def L6_return_map_to_raw : HInst< 13788(outs), 13789(ins), 13790"dealloc_return", 13791tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> { 13792let isPseudo = 1; 13793let isCodeGenOnly = 1; 13794} 13795def M2_acci : HInst< 13796(outs IntRegs:$Rx32), 13797(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13798"$Rx32 += add($Rs32,$Rt32)", 13799tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel { 13800let Inst{7-5} = 0b001; 13801let Inst{13-13} = 0b0; 13802let Inst{31-21} = 0b11101111000; 13803let hasNewValue = 1; 13804let opNewValue = 0; 13805let prefersSlot3 = 1; 13806let CextOpcode = "M2_acci"; 13807let InputType = "reg"; 13808let Constraints = "$Rx32 = $Rx32in"; 13809} 13810def M2_accii : HInst< 13811(outs IntRegs:$Rx32), 13812(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 13813"$Rx32 += add($Rs32,#$Ii)", 13814tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel { 13815let Inst{13-13} = 0b0; 13816let Inst{31-21} = 0b11100010000; 13817let hasNewValue = 1; 13818let opNewValue = 0; 13819let prefersSlot3 = 1; 13820let CextOpcode = "M2_acci"; 13821let InputType = "imm"; 13822let isExtendable = 1; 13823let opExtendable = 3; 13824let isExtentSigned = 1; 13825let opExtentBits = 8; 13826let opExtentAlign = 0; 13827let Constraints = "$Rx32 = $Rx32in"; 13828} 13829def M2_cmaci_s0 : HInst< 13830(outs DoubleRegs:$Rxx32), 13831(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13832"$Rxx32 += cmpyi($Rs32,$Rt32)", 13833tc_7f8ae742, TypeM>, Enc_61f0b0 { 13834let Inst{7-5} = 0b001; 13835let Inst{13-13} = 0b0; 13836let Inst{31-21} = 0b11100111000; 13837let prefersSlot3 = 1; 13838let Constraints = "$Rxx32 = $Rxx32in"; 13839} 13840def M2_cmacr_s0 : HInst< 13841(outs DoubleRegs:$Rxx32), 13842(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13843"$Rxx32 += cmpyr($Rs32,$Rt32)", 13844tc_7f8ae742, TypeM>, Enc_61f0b0 { 13845let Inst{7-5} = 0b010; 13846let Inst{13-13} = 0b0; 13847let Inst{31-21} = 0b11100111000; 13848let prefersSlot3 = 1; 13849let Constraints = "$Rxx32 = $Rxx32in"; 13850} 13851def M2_cmacs_s0 : HInst< 13852(outs DoubleRegs:$Rxx32), 13853(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13854"$Rxx32 += cmpy($Rs32,$Rt32):sat", 13855tc_7f8ae742, TypeM>, Enc_61f0b0 { 13856let Inst{7-5} = 0b110; 13857let Inst{13-13} = 0b0; 13858let Inst{31-21} = 0b11100111000; 13859let prefersSlot3 = 1; 13860let Defs = [USR_OVF]; 13861let Constraints = "$Rxx32 = $Rxx32in"; 13862} 13863def M2_cmacs_s1 : HInst< 13864(outs DoubleRegs:$Rxx32), 13865(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13866"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat", 13867tc_7f8ae742, TypeM>, Enc_61f0b0 { 13868let Inst{7-5} = 0b110; 13869let Inst{13-13} = 0b0; 13870let Inst{31-21} = 0b11100111100; 13871let prefersSlot3 = 1; 13872let Defs = [USR_OVF]; 13873let Constraints = "$Rxx32 = $Rxx32in"; 13874} 13875def M2_cmacsc_s0 : HInst< 13876(outs DoubleRegs:$Rxx32), 13877(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13878"$Rxx32 += cmpy($Rs32,$Rt32*):sat", 13879tc_7f8ae742, TypeM>, Enc_61f0b0 { 13880let Inst{7-5} = 0b110; 13881let Inst{13-13} = 0b0; 13882let Inst{31-21} = 0b11100111010; 13883let prefersSlot3 = 1; 13884let Defs = [USR_OVF]; 13885let Constraints = "$Rxx32 = $Rxx32in"; 13886} 13887def M2_cmacsc_s1 : HInst< 13888(outs DoubleRegs:$Rxx32), 13889(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13890"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat", 13891tc_7f8ae742, TypeM>, Enc_61f0b0 { 13892let Inst{7-5} = 0b110; 13893let Inst{13-13} = 0b0; 13894let Inst{31-21} = 0b11100111110; 13895let prefersSlot3 = 1; 13896let Defs = [USR_OVF]; 13897let Constraints = "$Rxx32 = $Rxx32in"; 13898} 13899def M2_cmpyi_s0 : HInst< 13900(outs DoubleRegs:$Rdd32), 13901(ins IntRegs:$Rs32, IntRegs:$Rt32), 13902"$Rdd32 = cmpyi($Rs32,$Rt32)", 13903tc_c21d7447, TypeM>, Enc_be32a5 { 13904let Inst{7-5} = 0b001; 13905let Inst{13-13} = 0b0; 13906let Inst{31-21} = 0b11100101000; 13907let prefersSlot3 = 1; 13908} 13909def M2_cmpyr_s0 : HInst< 13910(outs DoubleRegs:$Rdd32), 13911(ins IntRegs:$Rs32, IntRegs:$Rt32), 13912"$Rdd32 = cmpyr($Rs32,$Rt32)", 13913tc_c21d7447, TypeM>, Enc_be32a5 { 13914let Inst{7-5} = 0b010; 13915let Inst{13-13} = 0b0; 13916let Inst{31-21} = 0b11100101000; 13917let prefersSlot3 = 1; 13918} 13919def M2_cmpyrs_s0 : HInst< 13920(outs IntRegs:$Rd32), 13921(ins IntRegs:$Rs32, IntRegs:$Rt32), 13922"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat", 13923tc_c21d7447, TypeM>, Enc_5ab2be { 13924let Inst{7-5} = 0b110; 13925let Inst{13-13} = 0b0; 13926let Inst{31-21} = 0b11101101001; 13927let hasNewValue = 1; 13928let opNewValue = 0; 13929let prefersSlot3 = 1; 13930let Defs = [USR_OVF]; 13931} 13932def M2_cmpyrs_s1 : HInst< 13933(outs IntRegs:$Rd32), 13934(ins IntRegs:$Rs32, IntRegs:$Rt32), 13935"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat", 13936tc_c21d7447, TypeM>, Enc_5ab2be { 13937let Inst{7-5} = 0b110; 13938let Inst{13-13} = 0b0; 13939let Inst{31-21} = 0b11101101101; 13940let hasNewValue = 1; 13941let opNewValue = 0; 13942let prefersSlot3 = 1; 13943let Defs = [USR_OVF]; 13944} 13945def M2_cmpyrsc_s0 : HInst< 13946(outs IntRegs:$Rd32), 13947(ins IntRegs:$Rs32, IntRegs:$Rt32), 13948"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat", 13949tc_c21d7447, TypeM>, Enc_5ab2be { 13950let Inst{7-5} = 0b110; 13951let Inst{13-13} = 0b0; 13952let Inst{31-21} = 0b11101101011; 13953let hasNewValue = 1; 13954let opNewValue = 0; 13955let prefersSlot3 = 1; 13956let Defs = [USR_OVF]; 13957} 13958def M2_cmpyrsc_s1 : HInst< 13959(outs IntRegs:$Rd32), 13960(ins IntRegs:$Rs32, IntRegs:$Rt32), 13961"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat", 13962tc_c21d7447, TypeM>, Enc_5ab2be { 13963let Inst{7-5} = 0b110; 13964let Inst{13-13} = 0b0; 13965let Inst{31-21} = 0b11101101111; 13966let hasNewValue = 1; 13967let opNewValue = 0; 13968let prefersSlot3 = 1; 13969let Defs = [USR_OVF]; 13970} 13971def M2_cmpys_s0 : HInst< 13972(outs DoubleRegs:$Rdd32), 13973(ins IntRegs:$Rs32, IntRegs:$Rt32), 13974"$Rdd32 = cmpy($Rs32,$Rt32):sat", 13975tc_c21d7447, TypeM>, Enc_be32a5 { 13976let Inst{7-5} = 0b110; 13977let Inst{13-13} = 0b0; 13978let Inst{31-21} = 0b11100101000; 13979let prefersSlot3 = 1; 13980let Defs = [USR_OVF]; 13981} 13982def M2_cmpys_s1 : HInst< 13983(outs DoubleRegs:$Rdd32), 13984(ins IntRegs:$Rs32, IntRegs:$Rt32), 13985"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat", 13986tc_c21d7447, TypeM>, Enc_be32a5 { 13987let Inst{7-5} = 0b110; 13988let Inst{13-13} = 0b0; 13989let Inst{31-21} = 0b11100101100; 13990let prefersSlot3 = 1; 13991let Defs = [USR_OVF]; 13992} 13993def M2_cmpysc_s0 : HInst< 13994(outs DoubleRegs:$Rdd32), 13995(ins IntRegs:$Rs32, IntRegs:$Rt32), 13996"$Rdd32 = cmpy($Rs32,$Rt32*):sat", 13997tc_c21d7447, TypeM>, Enc_be32a5 { 13998let Inst{7-5} = 0b110; 13999let Inst{13-13} = 0b0; 14000let Inst{31-21} = 0b11100101010; 14001let prefersSlot3 = 1; 14002let Defs = [USR_OVF]; 14003} 14004def M2_cmpysc_s1 : HInst< 14005(outs DoubleRegs:$Rdd32), 14006(ins IntRegs:$Rs32, IntRegs:$Rt32), 14007"$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat", 14008tc_c21d7447, TypeM>, Enc_be32a5 { 14009let Inst{7-5} = 0b110; 14010let Inst{13-13} = 0b0; 14011let Inst{31-21} = 0b11100101110; 14012let prefersSlot3 = 1; 14013let Defs = [USR_OVF]; 14014} 14015def M2_cnacs_s0 : HInst< 14016(outs DoubleRegs:$Rxx32), 14017(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14018"$Rxx32 -= cmpy($Rs32,$Rt32):sat", 14019tc_7f8ae742, TypeM>, Enc_61f0b0 { 14020let Inst{7-5} = 0b111; 14021let Inst{13-13} = 0b0; 14022let Inst{31-21} = 0b11100111000; 14023let prefersSlot3 = 1; 14024let Defs = [USR_OVF]; 14025let Constraints = "$Rxx32 = $Rxx32in"; 14026} 14027def M2_cnacs_s1 : HInst< 14028(outs DoubleRegs:$Rxx32), 14029(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14030"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat", 14031tc_7f8ae742, TypeM>, Enc_61f0b0 { 14032let Inst{7-5} = 0b111; 14033let Inst{13-13} = 0b0; 14034let Inst{31-21} = 0b11100111100; 14035let prefersSlot3 = 1; 14036let Defs = [USR_OVF]; 14037let Constraints = "$Rxx32 = $Rxx32in"; 14038} 14039def M2_cnacsc_s0 : HInst< 14040(outs DoubleRegs:$Rxx32), 14041(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14042"$Rxx32 -= cmpy($Rs32,$Rt32*):sat", 14043tc_7f8ae742, TypeM>, Enc_61f0b0 { 14044let Inst{7-5} = 0b111; 14045let Inst{13-13} = 0b0; 14046let Inst{31-21} = 0b11100111010; 14047let prefersSlot3 = 1; 14048let Defs = [USR_OVF]; 14049let Constraints = "$Rxx32 = $Rxx32in"; 14050} 14051def M2_cnacsc_s1 : HInst< 14052(outs DoubleRegs:$Rxx32), 14053(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14054"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat", 14055tc_7f8ae742, TypeM>, Enc_61f0b0 { 14056let Inst{7-5} = 0b111; 14057let Inst{13-13} = 0b0; 14058let Inst{31-21} = 0b11100111110; 14059let prefersSlot3 = 1; 14060let Defs = [USR_OVF]; 14061let Constraints = "$Rxx32 = $Rxx32in"; 14062} 14063def M2_dpmpyss_acc_s0 : HInst< 14064(outs DoubleRegs:$Rxx32), 14065(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14066"$Rxx32 += mpy($Rs32,$Rt32)", 14067tc_7f8ae742, TypeM>, Enc_61f0b0 { 14068let Inst{7-5} = 0b000; 14069let Inst{13-13} = 0b0; 14070let Inst{31-21} = 0b11100111000; 14071let prefersSlot3 = 1; 14072let Constraints = "$Rxx32 = $Rxx32in"; 14073} 14074def M2_dpmpyss_nac_s0 : HInst< 14075(outs DoubleRegs:$Rxx32), 14076(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14077"$Rxx32 -= mpy($Rs32,$Rt32)", 14078tc_7f8ae742, TypeM>, Enc_61f0b0 { 14079let Inst{7-5} = 0b000; 14080let Inst{13-13} = 0b0; 14081let Inst{31-21} = 0b11100111001; 14082let prefersSlot3 = 1; 14083let Constraints = "$Rxx32 = $Rxx32in"; 14084} 14085def M2_dpmpyss_rnd_s0 : HInst< 14086(outs IntRegs:$Rd32), 14087(ins IntRegs:$Rs32, IntRegs:$Rt32), 14088"$Rd32 = mpy($Rs32,$Rt32):rnd", 14089tc_c21d7447, TypeM>, Enc_5ab2be { 14090let Inst{7-5} = 0b001; 14091let Inst{13-13} = 0b0; 14092let Inst{31-21} = 0b11101101001; 14093let hasNewValue = 1; 14094let opNewValue = 0; 14095let prefersSlot3 = 1; 14096} 14097def M2_dpmpyss_s0 : HInst< 14098(outs DoubleRegs:$Rdd32), 14099(ins IntRegs:$Rs32, IntRegs:$Rt32), 14100"$Rdd32 = mpy($Rs32,$Rt32)", 14101tc_c21d7447, TypeM>, Enc_be32a5 { 14102let Inst{7-5} = 0b000; 14103let Inst{13-13} = 0b0; 14104let Inst{31-21} = 0b11100101000; 14105let prefersSlot3 = 1; 14106} 14107def M2_dpmpyuu_acc_s0 : HInst< 14108(outs DoubleRegs:$Rxx32), 14109(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14110"$Rxx32 += mpyu($Rs32,$Rt32)", 14111tc_7f8ae742, TypeM>, Enc_61f0b0 { 14112let Inst{7-5} = 0b000; 14113let Inst{13-13} = 0b0; 14114let Inst{31-21} = 0b11100111010; 14115let prefersSlot3 = 1; 14116let Constraints = "$Rxx32 = $Rxx32in"; 14117} 14118def M2_dpmpyuu_nac_s0 : HInst< 14119(outs DoubleRegs:$Rxx32), 14120(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14121"$Rxx32 -= mpyu($Rs32,$Rt32)", 14122tc_7f8ae742, TypeM>, Enc_61f0b0 { 14123let Inst{7-5} = 0b000; 14124let Inst{13-13} = 0b0; 14125let Inst{31-21} = 0b11100111011; 14126let prefersSlot3 = 1; 14127let Constraints = "$Rxx32 = $Rxx32in"; 14128} 14129def M2_dpmpyuu_s0 : HInst< 14130(outs DoubleRegs:$Rdd32), 14131(ins IntRegs:$Rs32, IntRegs:$Rt32), 14132"$Rdd32 = mpyu($Rs32,$Rt32)", 14133tc_c21d7447, TypeM>, Enc_be32a5 { 14134let Inst{7-5} = 0b000; 14135let Inst{13-13} = 0b0; 14136let Inst{31-21} = 0b11100101010; 14137let prefersSlot3 = 1; 14138} 14139def M2_hmmpyh_rs1 : HInst< 14140(outs IntRegs:$Rd32), 14141(ins IntRegs:$Rs32, IntRegs:$Rt32), 14142"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat", 14143tc_c21d7447, TypeM>, Enc_5ab2be { 14144let Inst{7-5} = 0b100; 14145let Inst{13-13} = 0b0; 14146let Inst{31-21} = 0b11101101101; 14147let hasNewValue = 1; 14148let opNewValue = 0; 14149let prefersSlot3 = 1; 14150let Defs = [USR_OVF]; 14151} 14152def M2_hmmpyh_s1 : HInst< 14153(outs IntRegs:$Rd32), 14154(ins IntRegs:$Rs32, IntRegs:$Rt32), 14155"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat", 14156tc_c21d7447, TypeM>, Enc_5ab2be { 14157let Inst{7-5} = 0b000; 14158let Inst{13-13} = 0b0; 14159let Inst{31-21} = 0b11101101101; 14160let hasNewValue = 1; 14161let opNewValue = 0; 14162let prefersSlot3 = 1; 14163let Defs = [USR_OVF]; 14164} 14165def M2_hmmpyl_rs1 : HInst< 14166(outs IntRegs:$Rd32), 14167(ins IntRegs:$Rs32, IntRegs:$Rt32), 14168"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat", 14169tc_c21d7447, TypeM>, Enc_5ab2be { 14170let Inst{7-5} = 0b100; 14171let Inst{13-13} = 0b0; 14172let Inst{31-21} = 0b11101101111; 14173let hasNewValue = 1; 14174let opNewValue = 0; 14175let prefersSlot3 = 1; 14176let Defs = [USR_OVF]; 14177} 14178def M2_hmmpyl_s1 : HInst< 14179(outs IntRegs:$Rd32), 14180(ins IntRegs:$Rs32, IntRegs:$Rt32), 14181"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat", 14182tc_c21d7447, TypeM>, Enc_5ab2be { 14183let Inst{7-5} = 0b001; 14184let Inst{13-13} = 0b0; 14185let Inst{31-21} = 0b11101101101; 14186let hasNewValue = 1; 14187let opNewValue = 0; 14188let prefersSlot3 = 1; 14189let Defs = [USR_OVF]; 14190} 14191def M2_maci : HInst< 14192(outs IntRegs:$Rx32), 14193(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14194"$Rx32 += mpyi($Rs32,$Rt32)", 14195tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel { 14196let Inst{7-5} = 0b000; 14197let Inst{13-13} = 0b0; 14198let Inst{31-21} = 0b11101111000; 14199let hasNewValue = 1; 14200let opNewValue = 0; 14201let prefersSlot3 = 1; 14202let CextOpcode = "M2_maci"; 14203let InputType = "reg"; 14204let Constraints = "$Rx32 = $Rx32in"; 14205} 14206def M2_macsin : HInst< 14207(outs IntRegs:$Rx32), 14208(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14209"$Rx32 -= mpyi($Rs32,#$Ii)", 14210tc_a154b476, TypeM>, Enc_c90aca { 14211let Inst{13-13} = 0b0; 14212let Inst{31-21} = 0b11100001100; 14213let hasNewValue = 1; 14214let opNewValue = 0; 14215let prefersSlot3 = 1; 14216let InputType = "imm"; 14217let isExtendable = 1; 14218let opExtendable = 3; 14219let isExtentSigned = 0; 14220let opExtentBits = 8; 14221let opExtentAlign = 0; 14222let Constraints = "$Rx32 = $Rx32in"; 14223} 14224def M2_macsip : HInst< 14225(outs IntRegs:$Rx32), 14226(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14227"$Rx32 += mpyi($Rs32,#$Ii)", 14228tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel { 14229let Inst{13-13} = 0b0; 14230let Inst{31-21} = 0b11100001000; 14231let hasNewValue = 1; 14232let opNewValue = 0; 14233let prefersSlot3 = 1; 14234let CextOpcode = "M2_maci"; 14235let InputType = "imm"; 14236let isExtendable = 1; 14237let opExtendable = 3; 14238let isExtentSigned = 0; 14239let opExtentBits = 8; 14240let opExtentAlign = 0; 14241let Constraints = "$Rx32 = $Rx32in"; 14242} 14243def M2_mmachs_rs0 : HInst< 14244(outs DoubleRegs:$Rxx32), 14245(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14246"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat", 14247tc_7f8ae742, TypeM>, Enc_88c16c { 14248let Inst{7-5} = 0b111; 14249let Inst{13-13} = 0b0; 14250let Inst{31-21} = 0b11101010001; 14251let prefersSlot3 = 1; 14252let Defs = [USR_OVF]; 14253let Constraints = "$Rxx32 = $Rxx32in"; 14254} 14255def M2_mmachs_rs1 : HInst< 14256(outs DoubleRegs:$Rxx32), 14257(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14258"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14259tc_7f8ae742, TypeM>, Enc_88c16c { 14260let Inst{7-5} = 0b111; 14261let Inst{13-13} = 0b0; 14262let Inst{31-21} = 0b11101010101; 14263let prefersSlot3 = 1; 14264let Defs = [USR_OVF]; 14265let Constraints = "$Rxx32 = $Rxx32in"; 14266} 14267def M2_mmachs_s0 : HInst< 14268(outs DoubleRegs:$Rxx32), 14269(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14270"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat", 14271tc_7f8ae742, TypeM>, Enc_88c16c { 14272let Inst{7-5} = 0b111; 14273let Inst{13-13} = 0b0; 14274let Inst{31-21} = 0b11101010000; 14275let prefersSlot3 = 1; 14276let Defs = [USR_OVF]; 14277let Constraints = "$Rxx32 = $Rxx32in"; 14278} 14279def M2_mmachs_s1 : HInst< 14280(outs DoubleRegs:$Rxx32), 14281(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14282"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat", 14283tc_7f8ae742, TypeM>, Enc_88c16c { 14284let Inst{7-5} = 0b111; 14285let Inst{13-13} = 0b0; 14286let Inst{31-21} = 0b11101010100; 14287let prefersSlot3 = 1; 14288let Defs = [USR_OVF]; 14289let Constraints = "$Rxx32 = $Rxx32in"; 14290} 14291def M2_mmacls_rs0 : HInst< 14292(outs DoubleRegs:$Rxx32), 14293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14294"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat", 14295tc_7f8ae742, TypeM>, Enc_88c16c { 14296let Inst{7-5} = 0b101; 14297let Inst{13-13} = 0b0; 14298let Inst{31-21} = 0b11101010001; 14299let prefersSlot3 = 1; 14300let Defs = [USR_OVF]; 14301let Constraints = "$Rxx32 = $Rxx32in"; 14302} 14303def M2_mmacls_rs1 : HInst< 14304(outs DoubleRegs:$Rxx32), 14305(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14306"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14307tc_7f8ae742, TypeM>, Enc_88c16c { 14308let Inst{7-5} = 0b101; 14309let Inst{13-13} = 0b0; 14310let Inst{31-21} = 0b11101010101; 14311let prefersSlot3 = 1; 14312let Defs = [USR_OVF]; 14313let Constraints = "$Rxx32 = $Rxx32in"; 14314} 14315def M2_mmacls_s0 : HInst< 14316(outs DoubleRegs:$Rxx32), 14317(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14318"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat", 14319tc_7f8ae742, TypeM>, Enc_88c16c { 14320let Inst{7-5} = 0b101; 14321let Inst{13-13} = 0b0; 14322let Inst{31-21} = 0b11101010000; 14323let prefersSlot3 = 1; 14324let Defs = [USR_OVF]; 14325let Constraints = "$Rxx32 = $Rxx32in"; 14326} 14327def M2_mmacls_s1 : HInst< 14328(outs DoubleRegs:$Rxx32), 14329(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14330"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat", 14331tc_7f8ae742, TypeM>, Enc_88c16c { 14332let Inst{7-5} = 0b101; 14333let Inst{13-13} = 0b0; 14334let Inst{31-21} = 0b11101010100; 14335let prefersSlot3 = 1; 14336let Defs = [USR_OVF]; 14337let Constraints = "$Rxx32 = $Rxx32in"; 14338} 14339def M2_mmacuhs_rs0 : HInst< 14340(outs DoubleRegs:$Rxx32), 14341(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14342"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat", 14343tc_7f8ae742, TypeM>, Enc_88c16c { 14344let Inst{7-5} = 0b111; 14345let Inst{13-13} = 0b0; 14346let Inst{31-21} = 0b11101010011; 14347let prefersSlot3 = 1; 14348let Defs = [USR_OVF]; 14349let Constraints = "$Rxx32 = $Rxx32in"; 14350} 14351def M2_mmacuhs_rs1 : HInst< 14352(outs DoubleRegs:$Rxx32), 14353(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14354"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14355tc_7f8ae742, TypeM>, Enc_88c16c { 14356let Inst{7-5} = 0b111; 14357let Inst{13-13} = 0b0; 14358let Inst{31-21} = 0b11101010111; 14359let prefersSlot3 = 1; 14360let Defs = [USR_OVF]; 14361let Constraints = "$Rxx32 = $Rxx32in"; 14362} 14363def M2_mmacuhs_s0 : HInst< 14364(outs DoubleRegs:$Rxx32), 14365(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14366"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat", 14367tc_7f8ae742, TypeM>, Enc_88c16c { 14368let Inst{7-5} = 0b111; 14369let Inst{13-13} = 0b0; 14370let Inst{31-21} = 0b11101010010; 14371let prefersSlot3 = 1; 14372let Defs = [USR_OVF]; 14373let Constraints = "$Rxx32 = $Rxx32in"; 14374} 14375def M2_mmacuhs_s1 : HInst< 14376(outs DoubleRegs:$Rxx32), 14377(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14378"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat", 14379tc_7f8ae742, TypeM>, Enc_88c16c { 14380let Inst{7-5} = 0b111; 14381let Inst{13-13} = 0b0; 14382let Inst{31-21} = 0b11101010110; 14383let prefersSlot3 = 1; 14384let Defs = [USR_OVF]; 14385let Constraints = "$Rxx32 = $Rxx32in"; 14386} 14387def M2_mmaculs_rs0 : HInst< 14388(outs DoubleRegs:$Rxx32), 14389(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14390"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat", 14391tc_7f8ae742, TypeM>, Enc_88c16c { 14392let Inst{7-5} = 0b101; 14393let Inst{13-13} = 0b0; 14394let Inst{31-21} = 0b11101010011; 14395let prefersSlot3 = 1; 14396let Defs = [USR_OVF]; 14397let Constraints = "$Rxx32 = $Rxx32in"; 14398} 14399def M2_mmaculs_rs1 : HInst< 14400(outs DoubleRegs:$Rxx32), 14401(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14402"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14403tc_7f8ae742, TypeM>, Enc_88c16c { 14404let Inst{7-5} = 0b101; 14405let Inst{13-13} = 0b0; 14406let Inst{31-21} = 0b11101010111; 14407let prefersSlot3 = 1; 14408let Defs = [USR_OVF]; 14409let Constraints = "$Rxx32 = $Rxx32in"; 14410} 14411def M2_mmaculs_s0 : HInst< 14412(outs DoubleRegs:$Rxx32), 14413(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14414"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat", 14415tc_7f8ae742, TypeM>, Enc_88c16c { 14416let Inst{7-5} = 0b101; 14417let Inst{13-13} = 0b0; 14418let Inst{31-21} = 0b11101010010; 14419let prefersSlot3 = 1; 14420let Defs = [USR_OVF]; 14421let Constraints = "$Rxx32 = $Rxx32in"; 14422} 14423def M2_mmaculs_s1 : HInst< 14424(outs DoubleRegs:$Rxx32), 14425(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14426"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat", 14427tc_7f8ae742, TypeM>, Enc_88c16c { 14428let Inst{7-5} = 0b101; 14429let Inst{13-13} = 0b0; 14430let Inst{31-21} = 0b11101010110; 14431let prefersSlot3 = 1; 14432let Defs = [USR_OVF]; 14433let Constraints = "$Rxx32 = $Rxx32in"; 14434} 14435def M2_mmpyh_rs0 : HInst< 14436(outs DoubleRegs:$Rdd32), 14437(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14438"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat", 14439tc_c21d7447, TypeM>, Enc_a56825 { 14440let Inst{7-5} = 0b111; 14441let Inst{13-13} = 0b0; 14442let Inst{31-21} = 0b11101000001; 14443let prefersSlot3 = 1; 14444let Defs = [USR_OVF]; 14445} 14446def M2_mmpyh_rs1 : HInst< 14447(outs DoubleRegs:$Rdd32), 14448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14449"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14450tc_c21d7447, TypeM>, Enc_a56825 { 14451let Inst{7-5} = 0b111; 14452let Inst{13-13} = 0b0; 14453let Inst{31-21} = 0b11101000101; 14454let prefersSlot3 = 1; 14455let Defs = [USR_OVF]; 14456} 14457def M2_mmpyh_s0 : HInst< 14458(outs DoubleRegs:$Rdd32), 14459(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14460"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat", 14461tc_c21d7447, TypeM>, Enc_a56825 { 14462let Inst{7-5} = 0b111; 14463let Inst{13-13} = 0b0; 14464let Inst{31-21} = 0b11101000000; 14465let prefersSlot3 = 1; 14466let Defs = [USR_OVF]; 14467} 14468def M2_mmpyh_s1 : HInst< 14469(outs DoubleRegs:$Rdd32), 14470(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14471"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat", 14472tc_c21d7447, TypeM>, Enc_a56825 { 14473let Inst{7-5} = 0b111; 14474let Inst{13-13} = 0b0; 14475let Inst{31-21} = 0b11101000100; 14476let prefersSlot3 = 1; 14477let Defs = [USR_OVF]; 14478} 14479def M2_mmpyl_rs0 : HInst< 14480(outs DoubleRegs:$Rdd32), 14481(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14482"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat", 14483tc_c21d7447, TypeM>, Enc_a56825 { 14484let Inst{7-5} = 0b101; 14485let Inst{13-13} = 0b0; 14486let Inst{31-21} = 0b11101000001; 14487let prefersSlot3 = 1; 14488let Defs = [USR_OVF]; 14489} 14490def M2_mmpyl_rs1 : HInst< 14491(outs DoubleRegs:$Rdd32), 14492(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14493"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14494tc_c21d7447, TypeM>, Enc_a56825 { 14495let Inst{7-5} = 0b101; 14496let Inst{13-13} = 0b0; 14497let Inst{31-21} = 0b11101000101; 14498let prefersSlot3 = 1; 14499let Defs = [USR_OVF]; 14500} 14501def M2_mmpyl_s0 : HInst< 14502(outs DoubleRegs:$Rdd32), 14503(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14504"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat", 14505tc_c21d7447, TypeM>, Enc_a56825 { 14506let Inst{7-5} = 0b101; 14507let Inst{13-13} = 0b0; 14508let Inst{31-21} = 0b11101000000; 14509let prefersSlot3 = 1; 14510let Defs = [USR_OVF]; 14511} 14512def M2_mmpyl_s1 : HInst< 14513(outs DoubleRegs:$Rdd32), 14514(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14515"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat", 14516tc_c21d7447, TypeM>, Enc_a56825 { 14517let Inst{7-5} = 0b101; 14518let Inst{13-13} = 0b0; 14519let Inst{31-21} = 0b11101000100; 14520let prefersSlot3 = 1; 14521let Defs = [USR_OVF]; 14522} 14523def M2_mmpyuh_rs0 : HInst< 14524(outs DoubleRegs:$Rdd32), 14525(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14526"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat", 14527tc_c21d7447, TypeM>, Enc_a56825 { 14528let Inst{7-5} = 0b111; 14529let Inst{13-13} = 0b0; 14530let Inst{31-21} = 0b11101000011; 14531let prefersSlot3 = 1; 14532let Defs = [USR_OVF]; 14533} 14534def M2_mmpyuh_rs1 : HInst< 14535(outs DoubleRegs:$Rdd32), 14536(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14537"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14538tc_c21d7447, TypeM>, Enc_a56825 { 14539let Inst{7-5} = 0b111; 14540let Inst{13-13} = 0b0; 14541let Inst{31-21} = 0b11101000111; 14542let prefersSlot3 = 1; 14543let Defs = [USR_OVF]; 14544} 14545def M2_mmpyuh_s0 : HInst< 14546(outs DoubleRegs:$Rdd32), 14547(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14548"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat", 14549tc_c21d7447, TypeM>, Enc_a56825 { 14550let Inst{7-5} = 0b111; 14551let Inst{13-13} = 0b0; 14552let Inst{31-21} = 0b11101000010; 14553let prefersSlot3 = 1; 14554let Defs = [USR_OVF]; 14555} 14556def M2_mmpyuh_s1 : HInst< 14557(outs DoubleRegs:$Rdd32), 14558(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14559"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat", 14560tc_c21d7447, TypeM>, Enc_a56825 { 14561let Inst{7-5} = 0b111; 14562let Inst{13-13} = 0b0; 14563let Inst{31-21} = 0b11101000110; 14564let prefersSlot3 = 1; 14565let Defs = [USR_OVF]; 14566} 14567def M2_mmpyul_rs0 : HInst< 14568(outs DoubleRegs:$Rdd32), 14569(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14570"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat", 14571tc_c21d7447, TypeM>, Enc_a56825 { 14572let Inst{7-5} = 0b101; 14573let Inst{13-13} = 0b0; 14574let Inst{31-21} = 0b11101000011; 14575let prefersSlot3 = 1; 14576let Defs = [USR_OVF]; 14577} 14578def M2_mmpyul_rs1 : HInst< 14579(outs DoubleRegs:$Rdd32), 14580(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14581"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14582tc_c21d7447, TypeM>, Enc_a56825 { 14583let Inst{7-5} = 0b101; 14584let Inst{13-13} = 0b0; 14585let Inst{31-21} = 0b11101000111; 14586let prefersSlot3 = 1; 14587let Defs = [USR_OVF]; 14588} 14589def M2_mmpyul_s0 : HInst< 14590(outs DoubleRegs:$Rdd32), 14591(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14592"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat", 14593tc_c21d7447, TypeM>, Enc_a56825 { 14594let Inst{7-5} = 0b101; 14595let Inst{13-13} = 0b0; 14596let Inst{31-21} = 0b11101000010; 14597let prefersSlot3 = 1; 14598let Defs = [USR_OVF]; 14599} 14600def M2_mmpyul_s1 : HInst< 14601(outs DoubleRegs:$Rdd32), 14602(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14603"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat", 14604tc_c21d7447, TypeM>, Enc_a56825 { 14605let Inst{7-5} = 0b101; 14606let Inst{13-13} = 0b0; 14607let Inst{31-21} = 0b11101000110; 14608let prefersSlot3 = 1; 14609let Defs = [USR_OVF]; 14610} 14611def M2_mnaci : HInst< 14612(outs IntRegs:$Rx32), 14613(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14614"$Rx32 -= mpyi($Rs32,$Rt32)", 14615tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> { 14616let Inst{7-5} = 0b000; 14617let Inst{13-13} = 0b0; 14618let Inst{31-21} = 0b11101111100; 14619let hasNewValue = 1; 14620let opNewValue = 0; 14621let prefersSlot3 = 1; 14622let Constraints = "$Rx32 = $Rx32in"; 14623} 14624def M2_mpy_acc_hh_s0 : HInst< 14625(outs IntRegs:$Rx32), 14626(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14627"$Rx32 += mpy($Rs32.h,$Rt32.h)", 14628tc_7f8ae742, TypeM>, Enc_2ae154 { 14629let Inst{7-5} = 0b011; 14630let Inst{13-13} = 0b0; 14631let Inst{31-21} = 0b11101110000; 14632let hasNewValue = 1; 14633let opNewValue = 0; 14634let prefersSlot3 = 1; 14635let Constraints = "$Rx32 = $Rx32in"; 14636} 14637def M2_mpy_acc_hh_s1 : HInst< 14638(outs IntRegs:$Rx32), 14639(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14640"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1", 14641tc_7f8ae742, TypeM>, Enc_2ae154 { 14642let Inst{7-5} = 0b011; 14643let Inst{13-13} = 0b0; 14644let Inst{31-21} = 0b11101110100; 14645let hasNewValue = 1; 14646let opNewValue = 0; 14647let prefersSlot3 = 1; 14648let Constraints = "$Rx32 = $Rx32in"; 14649} 14650def M2_mpy_acc_hl_s0 : HInst< 14651(outs IntRegs:$Rx32), 14652(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14653"$Rx32 += mpy($Rs32.h,$Rt32.l)", 14654tc_7f8ae742, TypeM>, Enc_2ae154 { 14655let Inst{7-5} = 0b010; 14656let Inst{13-13} = 0b0; 14657let Inst{31-21} = 0b11101110000; 14658let hasNewValue = 1; 14659let opNewValue = 0; 14660let prefersSlot3 = 1; 14661let Constraints = "$Rx32 = $Rx32in"; 14662} 14663def M2_mpy_acc_hl_s1 : HInst< 14664(outs IntRegs:$Rx32), 14665(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14666"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1", 14667tc_7f8ae742, TypeM>, Enc_2ae154 { 14668let Inst{7-5} = 0b010; 14669let Inst{13-13} = 0b0; 14670let Inst{31-21} = 0b11101110100; 14671let hasNewValue = 1; 14672let opNewValue = 0; 14673let prefersSlot3 = 1; 14674let Constraints = "$Rx32 = $Rx32in"; 14675} 14676def M2_mpy_acc_lh_s0 : HInst< 14677(outs IntRegs:$Rx32), 14678(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14679"$Rx32 += mpy($Rs32.l,$Rt32.h)", 14680tc_7f8ae742, TypeM>, Enc_2ae154 { 14681let Inst{7-5} = 0b001; 14682let Inst{13-13} = 0b0; 14683let Inst{31-21} = 0b11101110000; 14684let hasNewValue = 1; 14685let opNewValue = 0; 14686let prefersSlot3 = 1; 14687let Constraints = "$Rx32 = $Rx32in"; 14688} 14689def M2_mpy_acc_lh_s1 : HInst< 14690(outs IntRegs:$Rx32), 14691(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14692"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1", 14693tc_7f8ae742, TypeM>, Enc_2ae154 { 14694let Inst{7-5} = 0b001; 14695let Inst{13-13} = 0b0; 14696let Inst{31-21} = 0b11101110100; 14697let hasNewValue = 1; 14698let opNewValue = 0; 14699let prefersSlot3 = 1; 14700let Constraints = "$Rx32 = $Rx32in"; 14701} 14702def M2_mpy_acc_ll_s0 : HInst< 14703(outs IntRegs:$Rx32), 14704(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14705"$Rx32 += mpy($Rs32.l,$Rt32.l)", 14706tc_7f8ae742, TypeM>, Enc_2ae154 { 14707let Inst{7-5} = 0b000; 14708let Inst{13-13} = 0b0; 14709let Inst{31-21} = 0b11101110000; 14710let hasNewValue = 1; 14711let opNewValue = 0; 14712let prefersSlot3 = 1; 14713let Constraints = "$Rx32 = $Rx32in"; 14714} 14715def M2_mpy_acc_ll_s1 : HInst< 14716(outs IntRegs:$Rx32), 14717(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14718"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1", 14719tc_7f8ae742, TypeM>, Enc_2ae154 { 14720let Inst{7-5} = 0b000; 14721let Inst{13-13} = 0b0; 14722let Inst{31-21} = 0b11101110100; 14723let hasNewValue = 1; 14724let opNewValue = 0; 14725let prefersSlot3 = 1; 14726let Constraints = "$Rx32 = $Rx32in"; 14727} 14728def M2_mpy_acc_sat_hh_s0 : HInst< 14729(outs IntRegs:$Rx32), 14730(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14731"$Rx32 += mpy($Rs32.h,$Rt32.h):sat", 14732tc_7f8ae742, TypeM>, Enc_2ae154 { 14733let Inst{7-5} = 0b111; 14734let Inst{13-13} = 0b0; 14735let Inst{31-21} = 0b11101110000; 14736let hasNewValue = 1; 14737let opNewValue = 0; 14738let prefersSlot3 = 1; 14739let Defs = [USR_OVF]; 14740let Constraints = "$Rx32 = $Rx32in"; 14741} 14742def M2_mpy_acc_sat_hh_s1 : HInst< 14743(outs IntRegs:$Rx32), 14744(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14745"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat", 14746tc_7f8ae742, TypeM>, Enc_2ae154 { 14747let Inst{7-5} = 0b111; 14748let Inst{13-13} = 0b0; 14749let Inst{31-21} = 0b11101110100; 14750let hasNewValue = 1; 14751let opNewValue = 0; 14752let prefersSlot3 = 1; 14753let Defs = [USR_OVF]; 14754let Constraints = "$Rx32 = $Rx32in"; 14755} 14756def M2_mpy_acc_sat_hl_s0 : HInst< 14757(outs IntRegs:$Rx32), 14758(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14759"$Rx32 += mpy($Rs32.h,$Rt32.l):sat", 14760tc_7f8ae742, TypeM>, Enc_2ae154 { 14761let Inst{7-5} = 0b110; 14762let Inst{13-13} = 0b0; 14763let Inst{31-21} = 0b11101110000; 14764let hasNewValue = 1; 14765let opNewValue = 0; 14766let prefersSlot3 = 1; 14767let Defs = [USR_OVF]; 14768let Constraints = "$Rx32 = $Rx32in"; 14769} 14770def M2_mpy_acc_sat_hl_s1 : HInst< 14771(outs IntRegs:$Rx32), 14772(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14773"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat", 14774tc_7f8ae742, TypeM>, Enc_2ae154 { 14775let Inst{7-5} = 0b110; 14776let Inst{13-13} = 0b0; 14777let Inst{31-21} = 0b11101110100; 14778let hasNewValue = 1; 14779let opNewValue = 0; 14780let prefersSlot3 = 1; 14781let Defs = [USR_OVF]; 14782let Constraints = "$Rx32 = $Rx32in"; 14783} 14784def M2_mpy_acc_sat_lh_s0 : HInst< 14785(outs IntRegs:$Rx32), 14786(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14787"$Rx32 += mpy($Rs32.l,$Rt32.h):sat", 14788tc_7f8ae742, TypeM>, Enc_2ae154 { 14789let Inst{7-5} = 0b101; 14790let Inst{13-13} = 0b0; 14791let Inst{31-21} = 0b11101110000; 14792let hasNewValue = 1; 14793let opNewValue = 0; 14794let prefersSlot3 = 1; 14795let Defs = [USR_OVF]; 14796let Constraints = "$Rx32 = $Rx32in"; 14797} 14798def M2_mpy_acc_sat_lh_s1 : HInst< 14799(outs IntRegs:$Rx32), 14800(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14801"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat", 14802tc_7f8ae742, TypeM>, Enc_2ae154 { 14803let Inst{7-5} = 0b101; 14804let Inst{13-13} = 0b0; 14805let Inst{31-21} = 0b11101110100; 14806let hasNewValue = 1; 14807let opNewValue = 0; 14808let prefersSlot3 = 1; 14809let Defs = [USR_OVF]; 14810let Constraints = "$Rx32 = $Rx32in"; 14811} 14812def M2_mpy_acc_sat_ll_s0 : HInst< 14813(outs IntRegs:$Rx32), 14814(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14815"$Rx32 += mpy($Rs32.l,$Rt32.l):sat", 14816tc_7f8ae742, TypeM>, Enc_2ae154 { 14817let Inst{7-5} = 0b100; 14818let Inst{13-13} = 0b0; 14819let Inst{31-21} = 0b11101110000; 14820let hasNewValue = 1; 14821let opNewValue = 0; 14822let prefersSlot3 = 1; 14823let Defs = [USR_OVF]; 14824let Constraints = "$Rx32 = $Rx32in"; 14825} 14826def M2_mpy_acc_sat_ll_s1 : HInst< 14827(outs IntRegs:$Rx32), 14828(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14829"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat", 14830tc_7f8ae742, TypeM>, Enc_2ae154 { 14831let Inst{7-5} = 0b100; 14832let Inst{13-13} = 0b0; 14833let Inst{31-21} = 0b11101110100; 14834let hasNewValue = 1; 14835let opNewValue = 0; 14836let prefersSlot3 = 1; 14837let Defs = [USR_OVF]; 14838let Constraints = "$Rx32 = $Rx32in"; 14839} 14840def M2_mpy_hh_s0 : HInst< 14841(outs IntRegs:$Rd32), 14842(ins IntRegs:$Rs32, IntRegs:$Rt32), 14843"$Rd32 = mpy($Rs32.h,$Rt32.h)", 14844tc_c21d7447, TypeM>, Enc_5ab2be { 14845let Inst{7-5} = 0b011; 14846let Inst{13-13} = 0b0; 14847let Inst{31-21} = 0b11101100000; 14848let hasNewValue = 1; 14849let opNewValue = 0; 14850let prefersSlot3 = 1; 14851} 14852def M2_mpy_hh_s1 : HInst< 14853(outs IntRegs:$Rd32), 14854(ins IntRegs:$Rs32, IntRegs:$Rt32), 14855"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1", 14856tc_c21d7447, TypeM>, Enc_5ab2be { 14857let Inst{7-5} = 0b011; 14858let Inst{13-13} = 0b0; 14859let Inst{31-21} = 0b11101100100; 14860let hasNewValue = 1; 14861let opNewValue = 0; 14862let prefersSlot3 = 1; 14863} 14864def M2_mpy_hl_s0 : HInst< 14865(outs IntRegs:$Rd32), 14866(ins IntRegs:$Rs32, IntRegs:$Rt32), 14867"$Rd32 = mpy($Rs32.h,$Rt32.l)", 14868tc_c21d7447, TypeM>, Enc_5ab2be { 14869let Inst{7-5} = 0b010; 14870let Inst{13-13} = 0b0; 14871let Inst{31-21} = 0b11101100000; 14872let hasNewValue = 1; 14873let opNewValue = 0; 14874let prefersSlot3 = 1; 14875} 14876def M2_mpy_hl_s1 : HInst< 14877(outs IntRegs:$Rd32), 14878(ins IntRegs:$Rs32, IntRegs:$Rt32), 14879"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1", 14880tc_c21d7447, TypeM>, Enc_5ab2be { 14881let Inst{7-5} = 0b010; 14882let Inst{13-13} = 0b0; 14883let Inst{31-21} = 0b11101100100; 14884let hasNewValue = 1; 14885let opNewValue = 0; 14886let prefersSlot3 = 1; 14887} 14888def M2_mpy_lh_s0 : HInst< 14889(outs IntRegs:$Rd32), 14890(ins IntRegs:$Rs32, IntRegs:$Rt32), 14891"$Rd32 = mpy($Rs32.l,$Rt32.h)", 14892tc_c21d7447, TypeM>, Enc_5ab2be { 14893let Inst{7-5} = 0b001; 14894let Inst{13-13} = 0b0; 14895let Inst{31-21} = 0b11101100000; 14896let hasNewValue = 1; 14897let opNewValue = 0; 14898let prefersSlot3 = 1; 14899} 14900def M2_mpy_lh_s1 : HInst< 14901(outs IntRegs:$Rd32), 14902(ins IntRegs:$Rs32, IntRegs:$Rt32), 14903"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1", 14904tc_c21d7447, TypeM>, Enc_5ab2be { 14905let Inst{7-5} = 0b001; 14906let Inst{13-13} = 0b0; 14907let Inst{31-21} = 0b11101100100; 14908let hasNewValue = 1; 14909let opNewValue = 0; 14910let prefersSlot3 = 1; 14911} 14912def M2_mpy_ll_s0 : HInst< 14913(outs IntRegs:$Rd32), 14914(ins IntRegs:$Rs32, IntRegs:$Rt32), 14915"$Rd32 = mpy($Rs32.l,$Rt32.l)", 14916tc_c21d7447, TypeM>, Enc_5ab2be { 14917let Inst{7-5} = 0b000; 14918let Inst{13-13} = 0b0; 14919let Inst{31-21} = 0b11101100000; 14920let hasNewValue = 1; 14921let opNewValue = 0; 14922let prefersSlot3 = 1; 14923} 14924def M2_mpy_ll_s1 : HInst< 14925(outs IntRegs:$Rd32), 14926(ins IntRegs:$Rs32, IntRegs:$Rt32), 14927"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1", 14928tc_c21d7447, TypeM>, Enc_5ab2be { 14929let Inst{7-5} = 0b000; 14930let Inst{13-13} = 0b0; 14931let Inst{31-21} = 0b11101100100; 14932let hasNewValue = 1; 14933let opNewValue = 0; 14934let prefersSlot3 = 1; 14935} 14936def M2_mpy_nac_hh_s0 : HInst< 14937(outs IntRegs:$Rx32), 14938(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14939"$Rx32 -= mpy($Rs32.h,$Rt32.h)", 14940tc_7f8ae742, TypeM>, Enc_2ae154 { 14941let Inst{7-5} = 0b011; 14942let Inst{13-13} = 0b0; 14943let Inst{31-21} = 0b11101110001; 14944let hasNewValue = 1; 14945let opNewValue = 0; 14946let prefersSlot3 = 1; 14947let Constraints = "$Rx32 = $Rx32in"; 14948} 14949def M2_mpy_nac_hh_s1 : HInst< 14950(outs IntRegs:$Rx32), 14951(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14952"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1", 14953tc_7f8ae742, TypeM>, Enc_2ae154 { 14954let Inst{7-5} = 0b011; 14955let Inst{13-13} = 0b0; 14956let Inst{31-21} = 0b11101110101; 14957let hasNewValue = 1; 14958let opNewValue = 0; 14959let prefersSlot3 = 1; 14960let Constraints = "$Rx32 = $Rx32in"; 14961} 14962def M2_mpy_nac_hl_s0 : HInst< 14963(outs IntRegs:$Rx32), 14964(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14965"$Rx32 -= mpy($Rs32.h,$Rt32.l)", 14966tc_7f8ae742, TypeM>, Enc_2ae154 { 14967let Inst{7-5} = 0b010; 14968let Inst{13-13} = 0b0; 14969let Inst{31-21} = 0b11101110001; 14970let hasNewValue = 1; 14971let opNewValue = 0; 14972let prefersSlot3 = 1; 14973let Constraints = "$Rx32 = $Rx32in"; 14974} 14975def M2_mpy_nac_hl_s1 : HInst< 14976(outs IntRegs:$Rx32), 14977(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14978"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1", 14979tc_7f8ae742, TypeM>, Enc_2ae154 { 14980let Inst{7-5} = 0b010; 14981let Inst{13-13} = 0b0; 14982let Inst{31-21} = 0b11101110101; 14983let hasNewValue = 1; 14984let opNewValue = 0; 14985let prefersSlot3 = 1; 14986let Constraints = "$Rx32 = $Rx32in"; 14987} 14988def M2_mpy_nac_lh_s0 : HInst< 14989(outs IntRegs:$Rx32), 14990(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14991"$Rx32 -= mpy($Rs32.l,$Rt32.h)", 14992tc_7f8ae742, TypeM>, Enc_2ae154 { 14993let Inst{7-5} = 0b001; 14994let Inst{13-13} = 0b0; 14995let Inst{31-21} = 0b11101110001; 14996let hasNewValue = 1; 14997let opNewValue = 0; 14998let prefersSlot3 = 1; 14999let Constraints = "$Rx32 = $Rx32in"; 15000} 15001def M2_mpy_nac_lh_s1 : HInst< 15002(outs IntRegs:$Rx32), 15003(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15004"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15005tc_7f8ae742, TypeM>, Enc_2ae154 { 15006let Inst{7-5} = 0b001; 15007let Inst{13-13} = 0b0; 15008let Inst{31-21} = 0b11101110101; 15009let hasNewValue = 1; 15010let opNewValue = 0; 15011let prefersSlot3 = 1; 15012let Constraints = "$Rx32 = $Rx32in"; 15013} 15014def M2_mpy_nac_ll_s0 : HInst< 15015(outs IntRegs:$Rx32), 15016(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15017"$Rx32 -= mpy($Rs32.l,$Rt32.l)", 15018tc_7f8ae742, TypeM>, Enc_2ae154 { 15019let Inst{7-5} = 0b000; 15020let Inst{13-13} = 0b0; 15021let Inst{31-21} = 0b11101110001; 15022let hasNewValue = 1; 15023let opNewValue = 0; 15024let prefersSlot3 = 1; 15025let Constraints = "$Rx32 = $Rx32in"; 15026} 15027def M2_mpy_nac_ll_s1 : HInst< 15028(outs IntRegs:$Rx32), 15029(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15030"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15031tc_7f8ae742, TypeM>, Enc_2ae154 { 15032let Inst{7-5} = 0b000; 15033let Inst{13-13} = 0b0; 15034let Inst{31-21} = 0b11101110101; 15035let hasNewValue = 1; 15036let opNewValue = 0; 15037let prefersSlot3 = 1; 15038let Constraints = "$Rx32 = $Rx32in"; 15039} 15040def M2_mpy_nac_sat_hh_s0 : HInst< 15041(outs IntRegs:$Rx32), 15042(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15043"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat", 15044tc_7f8ae742, TypeM>, Enc_2ae154 { 15045let Inst{7-5} = 0b111; 15046let Inst{13-13} = 0b0; 15047let Inst{31-21} = 0b11101110001; 15048let hasNewValue = 1; 15049let opNewValue = 0; 15050let prefersSlot3 = 1; 15051let Defs = [USR_OVF]; 15052let Constraints = "$Rx32 = $Rx32in"; 15053} 15054def M2_mpy_nac_sat_hh_s1 : HInst< 15055(outs IntRegs:$Rx32), 15056(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15057"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat", 15058tc_7f8ae742, TypeM>, Enc_2ae154 { 15059let Inst{7-5} = 0b111; 15060let Inst{13-13} = 0b0; 15061let Inst{31-21} = 0b11101110101; 15062let hasNewValue = 1; 15063let opNewValue = 0; 15064let prefersSlot3 = 1; 15065let Defs = [USR_OVF]; 15066let Constraints = "$Rx32 = $Rx32in"; 15067} 15068def M2_mpy_nac_sat_hl_s0 : HInst< 15069(outs IntRegs:$Rx32), 15070(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15071"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat", 15072tc_7f8ae742, TypeM>, Enc_2ae154 { 15073let Inst{7-5} = 0b110; 15074let Inst{13-13} = 0b0; 15075let Inst{31-21} = 0b11101110001; 15076let hasNewValue = 1; 15077let opNewValue = 0; 15078let prefersSlot3 = 1; 15079let Defs = [USR_OVF]; 15080let Constraints = "$Rx32 = $Rx32in"; 15081} 15082def M2_mpy_nac_sat_hl_s1 : HInst< 15083(outs IntRegs:$Rx32), 15084(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15085"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat", 15086tc_7f8ae742, TypeM>, Enc_2ae154 { 15087let Inst{7-5} = 0b110; 15088let Inst{13-13} = 0b0; 15089let Inst{31-21} = 0b11101110101; 15090let hasNewValue = 1; 15091let opNewValue = 0; 15092let prefersSlot3 = 1; 15093let Defs = [USR_OVF]; 15094let Constraints = "$Rx32 = $Rx32in"; 15095} 15096def M2_mpy_nac_sat_lh_s0 : HInst< 15097(outs IntRegs:$Rx32), 15098(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15099"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat", 15100tc_7f8ae742, TypeM>, Enc_2ae154 { 15101let Inst{7-5} = 0b101; 15102let Inst{13-13} = 0b0; 15103let Inst{31-21} = 0b11101110001; 15104let hasNewValue = 1; 15105let opNewValue = 0; 15106let prefersSlot3 = 1; 15107let Defs = [USR_OVF]; 15108let Constraints = "$Rx32 = $Rx32in"; 15109} 15110def M2_mpy_nac_sat_lh_s1 : HInst< 15111(outs IntRegs:$Rx32), 15112(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15113"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat", 15114tc_7f8ae742, TypeM>, Enc_2ae154 { 15115let Inst{7-5} = 0b101; 15116let Inst{13-13} = 0b0; 15117let Inst{31-21} = 0b11101110101; 15118let hasNewValue = 1; 15119let opNewValue = 0; 15120let prefersSlot3 = 1; 15121let Defs = [USR_OVF]; 15122let Constraints = "$Rx32 = $Rx32in"; 15123} 15124def M2_mpy_nac_sat_ll_s0 : HInst< 15125(outs IntRegs:$Rx32), 15126(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15127"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat", 15128tc_7f8ae742, TypeM>, Enc_2ae154 { 15129let Inst{7-5} = 0b100; 15130let Inst{13-13} = 0b0; 15131let Inst{31-21} = 0b11101110001; 15132let hasNewValue = 1; 15133let opNewValue = 0; 15134let prefersSlot3 = 1; 15135let Defs = [USR_OVF]; 15136let Constraints = "$Rx32 = $Rx32in"; 15137} 15138def M2_mpy_nac_sat_ll_s1 : HInst< 15139(outs IntRegs:$Rx32), 15140(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15141"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat", 15142tc_7f8ae742, TypeM>, Enc_2ae154 { 15143let Inst{7-5} = 0b100; 15144let Inst{13-13} = 0b0; 15145let Inst{31-21} = 0b11101110101; 15146let hasNewValue = 1; 15147let opNewValue = 0; 15148let prefersSlot3 = 1; 15149let Defs = [USR_OVF]; 15150let Constraints = "$Rx32 = $Rx32in"; 15151} 15152def M2_mpy_rnd_hh_s0 : HInst< 15153(outs IntRegs:$Rd32), 15154(ins IntRegs:$Rs32, IntRegs:$Rt32), 15155"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd", 15156tc_c21d7447, TypeM>, Enc_5ab2be { 15157let Inst{7-5} = 0b011; 15158let Inst{13-13} = 0b0; 15159let Inst{31-21} = 0b11101100001; 15160let hasNewValue = 1; 15161let opNewValue = 0; 15162let prefersSlot3 = 1; 15163} 15164def M2_mpy_rnd_hh_s1 : HInst< 15165(outs IntRegs:$Rd32), 15166(ins IntRegs:$Rs32, IntRegs:$Rt32), 15167"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15168tc_c21d7447, TypeM>, Enc_5ab2be { 15169let Inst{7-5} = 0b011; 15170let Inst{13-13} = 0b0; 15171let Inst{31-21} = 0b11101100101; 15172let hasNewValue = 1; 15173let opNewValue = 0; 15174let prefersSlot3 = 1; 15175} 15176def M2_mpy_rnd_hl_s0 : HInst< 15177(outs IntRegs:$Rd32), 15178(ins IntRegs:$Rs32, IntRegs:$Rt32), 15179"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd", 15180tc_c21d7447, TypeM>, Enc_5ab2be { 15181let Inst{7-5} = 0b010; 15182let Inst{13-13} = 0b0; 15183let Inst{31-21} = 0b11101100001; 15184let hasNewValue = 1; 15185let opNewValue = 0; 15186let prefersSlot3 = 1; 15187} 15188def M2_mpy_rnd_hl_s1 : HInst< 15189(outs IntRegs:$Rd32), 15190(ins IntRegs:$Rs32, IntRegs:$Rt32), 15191"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15192tc_c21d7447, TypeM>, Enc_5ab2be { 15193let Inst{7-5} = 0b010; 15194let Inst{13-13} = 0b0; 15195let Inst{31-21} = 0b11101100101; 15196let hasNewValue = 1; 15197let opNewValue = 0; 15198let prefersSlot3 = 1; 15199} 15200def M2_mpy_rnd_lh_s0 : HInst< 15201(outs IntRegs:$Rd32), 15202(ins IntRegs:$Rs32, IntRegs:$Rt32), 15203"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd", 15204tc_c21d7447, TypeM>, Enc_5ab2be { 15205let Inst{7-5} = 0b001; 15206let Inst{13-13} = 0b0; 15207let Inst{31-21} = 0b11101100001; 15208let hasNewValue = 1; 15209let opNewValue = 0; 15210let prefersSlot3 = 1; 15211} 15212def M2_mpy_rnd_lh_s1 : HInst< 15213(outs IntRegs:$Rd32), 15214(ins IntRegs:$Rs32, IntRegs:$Rt32), 15215"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15216tc_c21d7447, TypeM>, Enc_5ab2be { 15217let Inst{7-5} = 0b001; 15218let Inst{13-13} = 0b0; 15219let Inst{31-21} = 0b11101100101; 15220let hasNewValue = 1; 15221let opNewValue = 0; 15222let prefersSlot3 = 1; 15223} 15224def M2_mpy_rnd_ll_s0 : HInst< 15225(outs IntRegs:$Rd32), 15226(ins IntRegs:$Rs32, IntRegs:$Rt32), 15227"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd", 15228tc_c21d7447, TypeM>, Enc_5ab2be { 15229let Inst{7-5} = 0b000; 15230let Inst{13-13} = 0b0; 15231let Inst{31-21} = 0b11101100001; 15232let hasNewValue = 1; 15233let opNewValue = 0; 15234let prefersSlot3 = 1; 15235} 15236def M2_mpy_rnd_ll_s1 : HInst< 15237(outs IntRegs:$Rd32), 15238(ins IntRegs:$Rs32, IntRegs:$Rt32), 15239"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15240tc_c21d7447, TypeM>, Enc_5ab2be { 15241let Inst{7-5} = 0b000; 15242let Inst{13-13} = 0b0; 15243let Inst{31-21} = 0b11101100101; 15244let hasNewValue = 1; 15245let opNewValue = 0; 15246let prefersSlot3 = 1; 15247} 15248def M2_mpy_sat_hh_s0 : HInst< 15249(outs IntRegs:$Rd32), 15250(ins IntRegs:$Rs32, IntRegs:$Rt32), 15251"$Rd32 = mpy($Rs32.h,$Rt32.h):sat", 15252tc_c21d7447, TypeM>, Enc_5ab2be { 15253let Inst{7-5} = 0b111; 15254let Inst{13-13} = 0b0; 15255let Inst{31-21} = 0b11101100000; 15256let hasNewValue = 1; 15257let opNewValue = 0; 15258let prefersSlot3 = 1; 15259let Defs = [USR_OVF]; 15260} 15261def M2_mpy_sat_hh_s1 : HInst< 15262(outs IntRegs:$Rd32), 15263(ins IntRegs:$Rs32, IntRegs:$Rt32), 15264"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat", 15265tc_c21d7447, TypeM>, Enc_5ab2be { 15266let Inst{7-5} = 0b111; 15267let Inst{13-13} = 0b0; 15268let Inst{31-21} = 0b11101100100; 15269let hasNewValue = 1; 15270let opNewValue = 0; 15271let prefersSlot3 = 1; 15272let Defs = [USR_OVF]; 15273} 15274def M2_mpy_sat_hl_s0 : HInst< 15275(outs IntRegs:$Rd32), 15276(ins IntRegs:$Rs32, IntRegs:$Rt32), 15277"$Rd32 = mpy($Rs32.h,$Rt32.l):sat", 15278tc_c21d7447, TypeM>, Enc_5ab2be { 15279let Inst{7-5} = 0b110; 15280let Inst{13-13} = 0b0; 15281let Inst{31-21} = 0b11101100000; 15282let hasNewValue = 1; 15283let opNewValue = 0; 15284let prefersSlot3 = 1; 15285let Defs = [USR_OVF]; 15286} 15287def M2_mpy_sat_hl_s1 : HInst< 15288(outs IntRegs:$Rd32), 15289(ins IntRegs:$Rs32, IntRegs:$Rt32), 15290"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat", 15291tc_c21d7447, TypeM>, Enc_5ab2be { 15292let Inst{7-5} = 0b110; 15293let Inst{13-13} = 0b0; 15294let Inst{31-21} = 0b11101100100; 15295let hasNewValue = 1; 15296let opNewValue = 0; 15297let prefersSlot3 = 1; 15298let Defs = [USR_OVF]; 15299} 15300def M2_mpy_sat_lh_s0 : HInst< 15301(outs IntRegs:$Rd32), 15302(ins IntRegs:$Rs32, IntRegs:$Rt32), 15303"$Rd32 = mpy($Rs32.l,$Rt32.h):sat", 15304tc_c21d7447, TypeM>, Enc_5ab2be { 15305let Inst{7-5} = 0b101; 15306let Inst{13-13} = 0b0; 15307let Inst{31-21} = 0b11101100000; 15308let hasNewValue = 1; 15309let opNewValue = 0; 15310let prefersSlot3 = 1; 15311let Defs = [USR_OVF]; 15312} 15313def M2_mpy_sat_lh_s1 : HInst< 15314(outs IntRegs:$Rd32), 15315(ins IntRegs:$Rs32, IntRegs:$Rt32), 15316"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat", 15317tc_c21d7447, TypeM>, Enc_5ab2be { 15318let Inst{7-5} = 0b101; 15319let Inst{13-13} = 0b0; 15320let Inst{31-21} = 0b11101100100; 15321let hasNewValue = 1; 15322let opNewValue = 0; 15323let prefersSlot3 = 1; 15324let Defs = [USR_OVF]; 15325} 15326def M2_mpy_sat_ll_s0 : HInst< 15327(outs IntRegs:$Rd32), 15328(ins IntRegs:$Rs32, IntRegs:$Rt32), 15329"$Rd32 = mpy($Rs32.l,$Rt32.l):sat", 15330tc_c21d7447, TypeM>, Enc_5ab2be { 15331let Inst{7-5} = 0b100; 15332let Inst{13-13} = 0b0; 15333let Inst{31-21} = 0b11101100000; 15334let hasNewValue = 1; 15335let opNewValue = 0; 15336let prefersSlot3 = 1; 15337let Defs = [USR_OVF]; 15338} 15339def M2_mpy_sat_ll_s1 : HInst< 15340(outs IntRegs:$Rd32), 15341(ins IntRegs:$Rs32, IntRegs:$Rt32), 15342"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat", 15343tc_c21d7447, TypeM>, Enc_5ab2be { 15344let Inst{7-5} = 0b100; 15345let Inst{13-13} = 0b0; 15346let Inst{31-21} = 0b11101100100; 15347let hasNewValue = 1; 15348let opNewValue = 0; 15349let prefersSlot3 = 1; 15350let Defs = [USR_OVF]; 15351} 15352def M2_mpy_sat_rnd_hh_s0 : HInst< 15353(outs IntRegs:$Rd32), 15354(ins IntRegs:$Rs32, IntRegs:$Rt32), 15355"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat", 15356tc_c21d7447, TypeM>, Enc_5ab2be { 15357let Inst{7-5} = 0b111; 15358let Inst{13-13} = 0b0; 15359let Inst{31-21} = 0b11101100001; 15360let hasNewValue = 1; 15361let opNewValue = 0; 15362let prefersSlot3 = 1; 15363let Defs = [USR_OVF]; 15364} 15365def M2_mpy_sat_rnd_hh_s1 : HInst< 15366(outs IntRegs:$Rd32), 15367(ins IntRegs:$Rs32, IntRegs:$Rt32), 15368"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat", 15369tc_c21d7447, TypeM>, Enc_5ab2be { 15370let Inst{7-5} = 0b111; 15371let Inst{13-13} = 0b0; 15372let Inst{31-21} = 0b11101100101; 15373let hasNewValue = 1; 15374let opNewValue = 0; 15375let prefersSlot3 = 1; 15376let Defs = [USR_OVF]; 15377} 15378def M2_mpy_sat_rnd_hl_s0 : HInst< 15379(outs IntRegs:$Rd32), 15380(ins IntRegs:$Rs32, IntRegs:$Rt32), 15381"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat", 15382tc_c21d7447, TypeM>, Enc_5ab2be { 15383let Inst{7-5} = 0b110; 15384let Inst{13-13} = 0b0; 15385let Inst{31-21} = 0b11101100001; 15386let hasNewValue = 1; 15387let opNewValue = 0; 15388let prefersSlot3 = 1; 15389let Defs = [USR_OVF]; 15390} 15391def M2_mpy_sat_rnd_hl_s1 : HInst< 15392(outs IntRegs:$Rd32), 15393(ins IntRegs:$Rs32, IntRegs:$Rt32), 15394"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat", 15395tc_c21d7447, TypeM>, Enc_5ab2be { 15396let Inst{7-5} = 0b110; 15397let Inst{13-13} = 0b0; 15398let Inst{31-21} = 0b11101100101; 15399let hasNewValue = 1; 15400let opNewValue = 0; 15401let prefersSlot3 = 1; 15402let Defs = [USR_OVF]; 15403} 15404def M2_mpy_sat_rnd_lh_s0 : HInst< 15405(outs IntRegs:$Rd32), 15406(ins IntRegs:$Rs32, IntRegs:$Rt32), 15407"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat", 15408tc_c21d7447, TypeM>, Enc_5ab2be { 15409let Inst{7-5} = 0b101; 15410let Inst{13-13} = 0b0; 15411let Inst{31-21} = 0b11101100001; 15412let hasNewValue = 1; 15413let opNewValue = 0; 15414let prefersSlot3 = 1; 15415let Defs = [USR_OVF]; 15416} 15417def M2_mpy_sat_rnd_lh_s1 : HInst< 15418(outs IntRegs:$Rd32), 15419(ins IntRegs:$Rs32, IntRegs:$Rt32), 15420"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat", 15421tc_c21d7447, TypeM>, Enc_5ab2be { 15422let Inst{7-5} = 0b101; 15423let Inst{13-13} = 0b0; 15424let Inst{31-21} = 0b11101100101; 15425let hasNewValue = 1; 15426let opNewValue = 0; 15427let prefersSlot3 = 1; 15428let Defs = [USR_OVF]; 15429} 15430def M2_mpy_sat_rnd_ll_s0 : HInst< 15431(outs IntRegs:$Rd32), 15432(ins IntRegs:$Rs32, IntRegs:$Rt32), 15433"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat", 15434tc_c21d7447, TypeM>, Enc_5ab2be { 15435let Inst{7-5} = 0b100; 15436let Inst{13-13} = 0b0; 15437let Inst{31-21} = 0b11101100001; 15438let hasNewValue = 1; 15439let opNewValue = 0; 15440let prefersSlot3 = 1; 15441let Defs = [USR_OVF]; 15442} 15443def M2_mpy_sat_rnd_ll_s1 : HInst< 15444(outs IntRegs:$Rd32), 15445(ins IntRegs:$Rs32, IntRegs:$Rt32), 15446"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat", 15447tc_c21d7447, TypeM>, Enc_5ab2be { 15448let Inst{7-5} = 0b100; 15449let Inst{13-13} = 0b0; 15450let Inst{31-21} = 0b11101100101; 15451let hasNewValue = 1; 15452let opNewValue = 0; 15453let prefersSlot3 = 1; 15454let Defs = [USR_OVF]; 15455} 15456def M2_mpy_up : HInst< 15457(outs IntRegs:$Rd32), 15458(ins IntRegs:$Rs32, IntRegs:$Rt32), 15459"$Rd32 = mpy($Rs32,$Rt32)", 15460tc_c21d7447, TypeM>, Enc_5ab2be { 15461let Inst{7-5} = 0b001; 15462let Inst{13-13} = 0b0; 15463let Inst{31-21} = 0b11101101000; 15464let hasNewValue = 1; 15465let opNewValue = 0; 15466let prefersSlot3 = 1; 15467} 15468def M2_mpy_up_s1 : HInst< 15469(outs IntRegs:$Rd32), 15470(ins IntRegs:$Rs32, IntRegs:$Rt32), 15471"$Rd32 = mpy($Rs32,$Rt32):<<1", 15472tc_c21d7447, TypeM>, Enc_5ab2be { 15473let Inst{7-5} = 0b010; 15474let Inst{13-13} = 0b0; 15475let Inst{31-21} = 0b11101101101; 15476let hasNewValue = 1; 15477let opNewValue = 0; 15478let prefersSlot3 = 1; 15479} 15480def M2_mpy_up_s1_sat : HInst< 15481(outs IntRegs:$Rd32), 15482(ins IntRegs:$Rs32, IntRegs:$Rt32), 15483"$Rd32 = mpy($Rs32,$Rt32):<<1:sat", 15484tc_c21d7447, TypeM>, Enc_5ab2be { 15485let Inst{7-5} = 0b000; 15486let Inst{13-13} = 0b0; 15487let Inst{31-21} = 0b11101101111; 15488let hasNewValue = 1; 15489let opNewValue = 0; 15490let prefersSlot3 = 1; 15491let Defs = [USR_OVF]; 15492} 15493def M2_mpyd_acc_hh_s0 : HInst< 15494(outs DoubleRegs:$Rxx32), 15495(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15496"$Rxx32 += mpy($Rs32.h,$Rt32.h)", 15497tc_7f8ae742, TypeM>, Enc_61f0b0 { 15498let Inst{7-5} = 0b011; 15499let Inst{13-13} = 0b0; 15500let Inst{31-21} = 0b11100110000; 15501let prefersSlot3 = 1; 15502let Constraints = "$Rxx32 = $Rxx32in"; 15503} 15504def M2_mpyd_acc_hh_s1 : HInst< 15505(outs DoubleRegs:$Rxx32), 15506(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15507"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1", 15508tc_7f8ae742, TypeM>, Enc_61f0b0 { 15509let Inst{7-5} = 0b011; 15510let Inst{13-13} = 0b0; 15511let Inst{31-21} = 0b11100110100; 15512let prefersSlot3 = 1; 15513let Constraints = "$Rxx32 = $Rxx32in"; 15514} 15515def M2_mpyd_acc_hl_s0 : HInst< 15516(outs DoubleRegs:$Rxx32), 15517(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15518"$Rxx32 += mpy($Rs32.h,$Rt32.l)", 15519tc_7f8ae742, TypeM>, Enc_61f0b0 { 15520let Inst{7-5} = 0b010; 15521let Inst{13-13} = 0b0; 15522let Inst{31-21} = 0b11100110000; 15523let prefersSlot3 = 1; 15524let Constraints = "$Rxx32 = $Rxx32in"; 15525} 15526def M2_mpyd_acc_hl_s1 : HInst< 15527(outs DoubleRegs:$Rxx32), 15528(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15529"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1", 15530tc_7f8ae742, TypeM>, Enc_61f0b0 { 15531let Inst{7-5} = 0b010; 15532let Inst{13-13} = 0b0; 15533let Inst{31-21} = 0b11100110100; 15534let prefersSlot3 = 1; 15535let Constraints = "$Rxx32 = $Rxx32in"; 15536} 15537def M2_mpyd_acc_lh_s0 : HInst< 15538(outs DoubleRegs:$Rxx32), 15539(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15540"$Rxx32 += mpy($Rs32.l,$Rt32.h)", 15541tc_7f8ae742, TypeM>, Enc_61f0b0 { 15542let Inst{7-5} = 0b001; 15543let Inst{13-13} = 0b0; 15544let Inst{31-21} = 0b11100110000; 15545let prefersSlot3 = 1; 15546let Constraints = "$Rxx32 = $Rxx32in"; 15547} 15548def M2_mpyd_acc_lh_s1 : HInst< 15549(outs DoubleRegs:$Rxx32), 15550(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15551"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1", 15552tc_7f8ae742, TypeM>, Enc_61f0b0 { 15553let Inst{7-5} = 0b001; 15554let Inst{13-13} = 0b0; 15555let Inst{31-21} = 0b11100110100; 15556let prefersSlot3 = 1; 15557let Constraints = "$Rxx32 = $Rxx32in"; 15558} 15559def M2_mpyd_acc_ll_s0 : HInst< 15560(outs DoubleRegs:$Rxx32), 15561(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15562"$Rxx32 += mpy($Rs32.l,$Rt32.l)", 15563tc_7f8ae742, TypeM>, Enc_61f0b0 { 15564let Inst{7-5} = 0b000; 15565let Inst{13-13} = 0b0; 15566let Inst{31-21} = 0b11100110000; 15567let prefersSlot3 = 1; 15568let Constraints = "$Rxx32 = $Rxx32in"; 15569} 15570def M2_mpyd_acc_ll_s1 : HInst< 15571(outs DoubleRegs:$Rxx32), 15572(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15573"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1", 15574tc_7f8ae742, TypeM>, Enc_61f0b0 { 15575let Inst{7-5} = 0b000; 15576let Inst{13-13} = 0b0; 15577let Inst{31-21} = 0b11100110100; 15578let prefersSlot3 = 1; 15579let Constraints = "$Rxx32 = $Rxx32in"; 15580} 15581def M2_mpyd_hh_s0 : HInst< 15582(outs DoubleRegs:$Rdd32), 15583(ins IntRegs:$Rs32, IntRegs:$Rt32), 15584"$Rdd32 = mpy($Rs32.h,$Rt32.h)", 15585tc_c21d7447, TypeM>, Enc_be32a5 { 15586let Inst{7-5} = 0b011; 15587let Inst{13-13} = 0b0; 15588let Inst{31-21} = 0b11100100000; 15589let prefersSlot3 = 1; 15590} 15591def M2_mpyd_hh_s1 : HInst< 15592(outs DoubleRegs:$Rdd32), 15593(ins IntRegs:$Rs32, IntRegs:$Rt32), 15594"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1", 15595tc_c21d7447, TypeM>, Enc_be32a5 { 15596let Inst{7-5} = 0b011; 15597let Inst{13-13} = 0b0; 15598let Inst{31-21} = 0b11100100100; 15599let prefersSlot3 = 1; 15600} 15601def M2_mpyd_hl_s0 : HInst< 15602(outs DoubleRegs:$Rdd32), 15603(ins IntRegs:$Rs32, IntRegs:$Rt32), 15604"$Rdd32 = mpy($Rs32.h,$Rt32.l)", 15605tc_c21d7447, TypeM>, Enc_be32a5 { 15606let Inst{7-5} = 0b010; 15607let Inst{13-13} = 0b0; 15608let Inst{31-21} = 0b11100100000; 15609let prefersSlot3 = 1; 15610} 15611def M2_mpyd_hl_s1 : HInst< 15612(outs DoubleRegs:$Rdd32), 15613(ins IntRegs:$Rs32, IntRegs:$Rt32), 15614"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1", 15615tc_c21d7447, TypeM>, Enc_be32a5 { 15616let Inst{7-5} = 0b010; 15617let Inst{13-13} = 0b0; 15618let Inst{31-21} = 0b11100100100; 15619let prefersSlot3 = 1; 15620} 15621def M2_mpyd_lh_s0 : HInst< 15622(outs DoubleRegs:$Rdd32), 15623(ins IntRegs:$Rs32, IntRegs:$Rt32), 15624"$Rdd32 = mpy($Rs32.l,$Rt32.h)", 15625tc_c21d7447, TypeM>, Enc_be32a5 { 15626let Inst{7-5} = 0b001; 15627let Inst{13-13} = 0b0; 15628let Inst{31-21} = 0b11100100000; 15629let prefersSlot3 = 1; 15630} 15631def M2_mpyd_lh_s1 : HInst< 15632(outs DoubleRegs:$Rdd32), 15633(ins IntRegs:$Rs32, IntRegs:$Rt32), 15634"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1", 15635tc_c21d7447, TypeM>, Enc_be32a5 { 15636let Inst{7-5} = 0b001; 15637let Inst{13-13} = 0b0; 15638let Inst{31-21} = 0b11100100100; 15639let prefersSlot3 = 1; 15640} 15641def M2_mpyd_ll_s0 : HInst< 15642(outs DoubleRegs:$Rdd32), 15643(ins IntRegs:$Rs32, IntRegs:$Rt32), 15644"$Rdd32 = mpy($Rs32.l,$Rt32.l)", 15645tc_c21d7447, TypeM>, Enc_be32a5 { 15646let Inst{7-5} = 0b000; 15647let Inst{13-13} = 0b0; 15648let Inst{31-21} = 0b11100100000; 15649let prefersSlot3 = 1; 15650} 15651def M2_mpyd_ll_s1 : HInst< 15652(outs DoubleRegs:$Rdd32), 15653(ins IntRegs:$Rs32, IntRegs:$Rt32), 15654"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1", 15655tc_c21d7447, TypeM>, Enc_be32a5 { 15656let Inst{7-5} = 0b000; 15657let Inst{13-13} = 0b0; 15658let Inst{31-21} = 0b11100100100; 15659let prefersSlot3 = 1; 15660} 15661def M2_mpyd_nac_hh_s0 : HInst< 15662(outs DoubleRegs:$Rxx32), 15663(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15664"$Rxx32 -= mpy($Rs32.h,$Rt32.h)", 15665tc_7f8ae742, TypeM>, Enc_61f0b0 { 15666let Inst{7-5} = 0b011; 15667let Inst{13-13} = 0b0; 15668let Inst{31-21} = 0b11100110001; 15669let prefersSlot3 = 1; 15670let Constraints = "$Rxx32 = $Rxx32in"; 15671} 15672def M2_mpyd_nac_hh_s1 : HInst< 15673(outs DoubleRegs:$Rxx32), 15674(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15675"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1", 15676tc_7f8ae742, TypeM>, Enc_61f0b0 { 15677let Inst{7-5} = 0b011; 15678let Inst{13-13} = 0b0; 15679let Inst{31-21} = 0b11100110101; 15680let prefersSlot3 = 1; 15681let Constraints = "$Rxx32 = $Rxx32in"; 15682} 15683def M2_mpyd_nac_hl_s0 : HInst< 15684(outs DoubleRegs:$Rxx32), 15685(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15686"$Rxx32 -= mpy($Rs32.h,$Rt32.l)", 15687tc_7f8ae742, TypeM>, Enc_61f0b0 { 15688let Inst{7-5} = 0b010; 15689let Inst{13-13} = 0b0; 15690let Inst{31-21} = 0b11100110001; 15691let prefersSlot3 = 1; 15692let Constraints = "$Rxx32 = $Rxx32in"; 15693} 15694def M2_mpyd_nac_hl_s1 : HInst< 15695(outs DoubleRegs:$Rxx32), 15696(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15697"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1", 15698tc_7f8ae742, TypeM>, Enc_61f0b0 { 15699let Inst{7-5} = 0b010; 15700let Inst{13-13} = 0b0; 15701let Inst{31-21} = 0b11100110101; 15702let prefersSlot3 = 1; 15703let Constraints = "$Rxx32 = $Rxx32in"; 15704} 15705def M2_mpyd_nac_lh_s0 : HInst< 15706(outs DoubleRegs:$Rxx32), 15707(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15708"$Rxx32 -= mpy($Rs32.l,$Rt32.h)", 15709tc_7f8ae742, TypeM>, Enc_61f0b0 { 15710let Inst{7-5} = 0b001; 15711let Inst{13-13} = 0b0; 15712let Inst{31-21} = 0b11100110001; 15713let prefersSlot3 = 1; 15714let Constraints = "$Rxx32 = $Rxx32in"; 15715} 15716def M2_mpyd_nac_lh_s1 : HInst< 15717(outs DoubleRegs:$Rxx32), 15718(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15719"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15720tc_7f8ae742, TypeM>, Enc_61f0b0 { 15721let Inst{7-5} = 0b001; 15722let Inst{13-13} = 0b0; 15723let Inst{31-21} = 0b11100110101; 15724let prefersSlot3 = 1; 15725let Constraints = "$Rxx32 = $Rxx32in"; 15726} 15727def M2_mpyd_nac_ll_s0 : HInst< 15728(outs DoubleRegs:$Rxx32), 15729(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15730"$Rxx32 -= mpy($Rs32.l,$Rt32.l)", 15731tc_7f8ae742, TypeM>, Enc_61f0b0 { 15732let Inst{7-5} = 0b000; 15733let Inst{13-13} = 0b0; 15734let Inst{31-21} = 0b11100110001; 15735let prefersSlot3 = 1; 15736let Constraints = "$Rxx32 = $Rxx32in"; 15737} 15738def M2_mpyd_nac_ll_s1 : HInst< 15739(outs DoubleRegs:$Rxx32), 15740(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15741"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15742tc_7f8ae742, TypeM>, Enc_61f0b0 { 15743let Inst{7-5} = 0b000; 15744let Inst{13-13} = 0b0; 15745let Inst{31-21} = 0b11100110101; 15746let prefersSlot3 = 1; 15747let Constraints = "$Rxx32 = $Rxx32in"; 15748} 15749def M2_mpyd_rnd_hh_s0 : HInst< 15750(outs DoubleRegs:$Rdd32), 15751(ins IntRegs:$Rs32, IntRegs:$Rt32), 15752"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd", 15753tc_c21d7447, TypeM>, Enc_be32a5 { 15754let Inst{7-5} = 0b011; 15755let Inst{13-13} = 0b0; 15756let Inst{31-21} = 0b11100100001; 15757let prefersSlot3 = 1; 15758} 15759def M2_mpyd_rnd_hh_s1 : HInst< 15760(outs DoubleRegs:$Rdd32), 15761(ins IntRegs:$Rs32, IntRegs:$Rt32), 15762"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15763tc_c21d7447, TypeM>, Enc_be32a5 { 15764let Inst{7-5} = 0b011; 15765let Inst{13-13} = 0b0; 15766let Inst{31-21} = 0b11100100101; 15767let prefersSlot3 = 1; 15768} 15769def M2_mpyd_rnd_hl_s0 : HInst< 15770(outs DoubleRegs:$Rdd32), 15771(ins IntRegs:$Rs32, IntRegs:$Rt32), 15772"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd", 15773tc_c21d7447, TypeM>, Enc_be32a5 { 15774let Inst{7-5} = 0b010; 15775let Inst{13-13} = 0b0; 15776let Inst{31-21} = 0b11100100001; 15777let prefersSlot3 = 1; 15778} 15779def M2_mpyd_rnd_hl_s1 : HInst< 15780(outs DoubleRegs:$Rdd32), 15781(ins IntRegs:$Rs32, IntRegs:$Rt32), 15782"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15783tc_c21d7447, TypeM>, Enc_be32a5 { 15784let Inst{7-5} = 0b010; 15785let Inst{13-13} = 0b0; 15786let Inst{31-21} = 0b11100100101; 15787let prefersSlot3 = 1; 15788} 15789def M2_mpyd_rnd_lh_s0 : HInst< 15790(outs DoubleRegs:$Rdd32), 15791(ins IntRegs:$Rs32, IntRegs:$Rt32), 15792"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd", 15793tc_c21d7447, TypeM>, Enc_be32a5 { 15794let Inst{7-5} = 0b001; 15795let Inst{13-13} = 0b0; 15796let Inst{31-21} = 0b11100100001; 15797let prefersSlot3 = 1; 15798} 15799def M2_mpyd_rnd_lh_s1 : HInst< 15800(outs DoubleRegs:$Rdd32), 15801(ins IntRegs:$Rs32, IntRegs:$Rt32), 15802"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15803tc_c21d7447, TypeM>, Enc_be32a5 { 15804let Inst{7-5} = 0b001; 15805let Inst{13-13} = 0b0; 15806let Inst{31-21} = 0b11100100101; 15807let prefersSlot3 = 1; 15808} 15809def M2_mpyd_rnd_ll_s0 : HInst< 15810(outs DoubleRegs:$Rdd32), 15811(ins IntRegs:$Rs32, IntRegs:$Rt32), 15812"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd", 15813tc_c21d7447, TypeM>, Enc_be32a5 { 15814let Inst{7-5} = 0b000; 15815let Inst{13-13} = 0b0; 15816let Inst{31-21} = 0b11100100001; 15817let prefersSlot3 = 1; 15818} 15819def M2_mpyd_rnd_ll_s1 : HInst< 15820(outs DoubleRegs:$Rdd32), 15821(ins IntRegs:$Rs32, IntRegs:$Rt32), 15822"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15823tc_c21d7447, TypeM>, Enc_be32a5 { 15824let Inst{7-5} = 0b000; 15825let Inst{13-13} = 0b0; 15826let Inst{31-21} = 0b11100100101; 15827let prefersSlot3 = 1; 15828} 15829def M2_mpyi : HInst< 15830(outs IntRegs:$Rd32), 15831(ins IntRegs:$Rs32, IntRegs:$Rt32), 15832"$Rd32 = mpyi($Rs32,$Rt32)", 15833tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel { 15834let Inst{7-5} = 0b000; 15835let Inst{13-13} = 0b0; 15836let Inst{31-21} = 0b11101101000; 15837let hasNewValue = 1; 15838let opNewValue = 0; 15839let prefersSlot3 = 1; 15840let CextOpcode = "M2_mpyi"; 15841let InputType = "reg"; 15842} 15843def M2_mpysin : HInst< 15844(outs IntRegs:$Rd32), 15845(ins IntRegs:$Rs32, u8_0Imm:$Ii), 15846"$Rd32 = -mpyi($Rs32,#$Ii)", 15847tc_38382228, TypeM>, Enc_b8c967 { 15848let Inst{13-13} = 0b0; 15849let Inst{31-21} = 0b11100000100; 15850let hasNewValue = 1; 15851let opNewValue = 0; 15852let prefersSlot3 = 1; 15853} 15854def M2_mpysip : HInst< 15855(outs IntRegs:$Rd32), 15856(ins IntRegs:$Rs32, u32_0Imm:$Ii), 15857"$Rd32 = +mpyi($Rs32,#$Ii)", 15858tc_38382228, TypeM>, Enc_b8c967 { 15859let Inst{13-13} = 0b0; 15860let Inst{31-21} = 0b11100000000; 15861let hasNewValue = 1; 15862let opNewValue = 0; 15863let prefersSlot3 = 1; 15864let isExtendable = 1; 15865let opExtendable = 2; 15866let isExtentSigned = 0; 15867let opExtentBits = 8; 15868let opExtentAlign = 0; 15869} 15870def M2_mpysmi : HInst< 15871(outs IntRegs:$Rd32), 15872(ins IntRegs:$Rs32, m32_0Imm:$Ii), 15873"$Rd32 = mpyi($Rs32,#$Ii)", 15874tc_38382228, TypeM>, ImmRegRel { 15875let hasNewValue = 1; 15876let opNewValue = 0; 15877let CextOpcode = "M2_mpyi"; 15878let InputType = "imm"; 15879let isPseudo = 1; 15880let isExtendable = 1; 15881let opExtendable = 2; 15882let isExtentSigned = 1; 15883let opExtentBits = 9; 15884let opExtentAlign = 0; 15885} 15886def M2_mpysu_up : HInst< 15887(outs IntRegs:$Rd32), 15888(ins IntRegs:$Rs32, IntRegs:$Rt32), 15889"$Rd32 = mpysu($Rs32,$Rt32)", 15890tc_c21d7447, TypeM>, Enc_5ab2be { 15891let Inst{7-5} = 0b001; 15892let Inst{13-13} = 0b0; 15893let Inst{31-21} = 0b11101101011; 15894let hasNewValue = 1; 15895let opNewValue = 0; 15896let prefersSlot3 = 1; 15897} 15898def M2_mpyu_acc_hh_s0 : HInst< 15899(outs IntRegs:$Rx32), 15900(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15901"$Rx32 += mpyu($Rs32.h,$Rt32.h)", 15902tc_7f8ae742, TypeM>, Enc_2ae154 { 15903let Inst{7-5} = 0b011; 15904let Inst{13-13} = 0b0; 15905let Inst{31-21} = 0b11101110010; 15906let hasNewValue = 1; 15907let opNewValue = 0; 15908let prefersSlot3 = 1; 15909let Constraints = "$Rx32 = $Rx32in"; 15910} 15911def M2_mpyu_acc_hh_s1 : HInst< 15912(outs IntRegs:$Rx32), 15913(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15914"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1", 15915tc_7f8ae742, TypeM>, Enc_2ae154 { 15916let Inst{7-5} = 0b011; 15917let Inst{13-13} = 0b0; 15918let Inst{31-21} = 0b11101110110; 15919let hasNewValue = 1; 15920let opNewValue = 0; 15921let prefersSlot3 = 1; 15922let Constraints = "$Rx32 = $Rx32in"; 15923} 15924def M2_mpyu_acc_hl_s0 : HInst< 15925(outs IntRegs:$Rx32), 15926(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15927"$Rx32 += mpyu($Rs32.h,$Rt32.l)", 15928tc_7f8ae742, TypeM>, Enc_2ae154 { 15929let Inst{7-5} = 0b010; 15930let Inst{13-13} = 0b0; 15931let Inst{31-21} = 0b11101110010; 15932let hasNewValue = 1; 15933let opNewValue = 0; 15934let prefersSlot3 = 1; 15935let Constraints = "$Rx32 = $Rx32in"; 15936} 15937def M2_mpyu_acc_hl_s1 : HInst< 15938(outs IntRegs:$Rx32), 15939(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15940"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1", 15941tc_7f8ae742, TypeM>, Enc_2ae154 { 15942let Inst{7-5} = 0b010; 15943let Inst{13-13} = 0b0; 15944let Inst{31-21} = 0b11101110110; 15945let hasNewValue = 1; 15946let opNewValue = 0; 15947let prefersSlot3 = 1; 15948let Constraints = "$Rx32 = $Rx32in"; 15949} 15950def M2_mpyu_acc_lh_s0 : HInst< 15951(outs IntRegs:$Rx32), 15952(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15953"$Rx32 += mpyu($Rs32.l,$Rt32.h)", 15954tc_7f8ae742, TypeM>, Enc_2ae154 { 15955let Inst{7-5} = 0b001; 15956let Inst{13-13} = 0b0; 15957let Inst{31-21} = 0b11101110010; 15958let hasNewValue = 1; 15959let opNewValue = 0; 15960let prefersSlot3 = 1; 15961let Constraints = "$Rx32 = $Rx32in"; 15962} 15963def M2_mpyu_acc_lh_s1 : HInst< 15964(outs IntRegs:$Rx32), 15965(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15966"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1", 15967tc_7f8ae742, TypeM>, Enc_2ae154 { 15968let Inst{7-5} = 0b001; 15969let Inst{13-13} = 0b0; 15970let Inst{31-21} = 0b11101110110; 15971let hasNewValue = 1; 15972let opNewValue = 0; 15973let prefersSlot3 = 1; 15974let Constraints = "$Rx32 = $Rx32in"; 15975} 15976def M2_mpyu_acc_ll_s0 : HInst< 15977(outs IntRegs:$Rx32), 15978(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15979"$Rx32 += mpyu($Rs32.l,$Rt32.l)", 15980tc_7f8ae742, TypeM>, Enc_2ae154 { 15981let Inst{7-5} = 0b000; 15982let Inst{13-13} = 0b0; 15983let Inst{31-21} = 0b11101110010; 15984let hasNewValue = 1; 15985let opNewValue = 0; 15986let prefersSlot3 = 1; 15987let Constraints = "$Rx32 = $Rx32in"; 15988} 15989def M2_mpyu_acc_ll_s1 : HInst< 15990(outs IntRegs:$Rx32), 15991(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15992"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1", 15993tc_7f8ae742, TypeM>, Enc_2ae154 { 15994let Inst{7-5} = 0b000; 15995let Inst{13-13} = 0b0; 15996let Inst{31-21} = 0b11101110110; 15997let hasNewValue = 1; 15998let opNewValue = 0; 15999let prefersSlot3 = 1; 16000let Constraints = "$Rx32 = $Rx32in"; 16001} 16002def M2_mpyu_hh_s0 : HInst< 16003(outs IntRegs:$Rd32), 16004(ins IntRegs:$Rs32, IntRegs:$Rt32), 16005"$Rd32 = mpyu($Rs32.h,$Rt32.h)", 16006tc_c21d7447, TypeM>, Enc_5ab2be { 16007let Inst{7-5} = 0b011; 16008let Inst{13-13} = 0b0; 16009let Inst{31-21} = 0b11101100010; 16010let hasNewValue = 1; 16011let opNewValue = 0; 16012let prefersSlot3 = 1; 16013} 16014def M2_mpyu_hh_s1 : HInst< 16015(outs IntRegs:$Rd32), 16016(ins IntRegs:$Rs32, IntRegs:$Rt32), 16017"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16018tc_c21d7447, TypeM>, Enc_5ab2be { 16019let Inst{7-5} = 0b011; 16020let Inst{13-13} = 0b0; 16021let Inst{31-21} = 0b11101100110; 16022let hasNewValue = 1; 16023let opNewValue = 0; 16024let prefersSlot3 = 1; 16025} 16026def M2_mpyu_hl_s0 : HInst< 16027(outs IntRegs:$Rd32), 16028(ins IntRegs:$Rs32, IntRegs:$Rt32), 16029"$Rd32 = mpyu($Rs32.h,$Rt32.l)", 16030tc_c21d7447, TypeM>, Enc_5ab2be { 16031let Inst{7-5} = 0b010; 16032let Inst{13-13} = 0b0; 16033let Inst{31-21} = 0b11101100010; 16034let hasNewValue = 1; 16035let opNewValue = 0; 16036let prefersSlot3 = 1; 16037} 16038def M2_mpyu_hl_s1 : HInst< 16039(outs IntRegs:$Rd32), 16040(ins IntRegs:$Rs32, IntRegs:$Rt32), 16041"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16042tc_c21d7447, TypeM>, Enc_5ab2be { 16043let Inst{7-5} = 0b010; 16044let Inst{13-13} = 0b0; 16045let Inst{31-21} = 0b11101100110; 16046let hasNewValue = 1; 16047let opNewValue = 0; 16048let prefersSlot3 = 1; 16049} 16050def M2_mpyu_lh_s0 : HInst< 16051(outs IntRegs:$Rd32), 16052(ins IntRegs:$Rs32, IntRegs:$Rt32), 16053"$Rd32 = mpyu($Rs32.l,$Rt32.h)", 16054tc_c21d7447, TypeM>, Enc_5ab2be { 16055let Inst{7-5} = 0b001; 16056let Inst{13-13} = 0b0; 16057let Inst{31-21} = 0b11101100010; 16058let hasNewValue = 1; 16059let opNewValue = 0; 16060let prefersSlot3 = 1; 16061} 16062def M2_mpyu_lh_s1 : HInst< 16063(outs IntRegs:$Rd32), 16064(ins IntRegs:$Rs32, IntRegs:$Rt32), 16065"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16066tc_c21d7447, TypeM>, Enc_5ab2be { 16067let Inst{7-5} = 0b001; 16068let Inst{13-13} = 0b0; 16069let Inst{31-21} = 0b11101100110; 16070let hasNewValue = 1; 16071let opNewValue = 0; 16072let prefersSlot3 = 1; 16073} 16074def M2_mpyu_ll_s0 : HInst< 16075(outs IntRegs:$Rd32), 16076(ins IntRegs:$Rs32, IntRegs:$Rt32), 16077"$Rd32 = mpyu($Rs32.l,$Rt32.l)", 16078tc_c21d7447, TypeM>, Enc_5ab2be { 16079let Inst{7-5} = 0b000; 16080let Inst{13-13} = 0b0; 16081let Inst{31-21} = 0b11101100010; 16082let hasNewValue = 1; 16083let opNewValue = 0; 16084let prefersSlot3 = 1; 16085} 16086def M2_mpyu_ll_s1 : HInst< 16087(outs IntRegs:$Rd32), 16088(ins IntRegs:$Rs32, IntRegs:$Rt32), 16089"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16090tc_c21d7447, TypeM>, Enc_5ab2be { 16091let Inst{7-5} = 0b000; 16092let Inst{13-13} = 0b0; 16093let Inst{31-21} = 0b11101100110; 16094let hasNewValue = 1; 16095let opNewValue = 0; 16096let prefersSlot3 = 1; 16097} 16098def M2_mpyu_nac_hh_s0 : HInst< 16099(outs IntRegs:$Rx32), 16100(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16101"$Rx32 -= mpyu($Rs32.h,$Rt32.h)", 16102tc_7f8ae742, TypeM>, Enc_2ae154 { 16103let Inst{7-5} = 0b011; 16104let Inst{13-13} = 0b0; 16105let Inst{31-21} = 0b11101110011; 16106let hasNewValue = 1; 16107let opNewValue = 0; 16108let prefersSlot3 = 1; 16109let Constraints = "$Rx32 = $Rx32in"; 16110} 16111def M2_mpyu_nac_hh_s1 : HInst< 16112(outs IntRegs:$Rx32), 16113(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16114"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16115tc_7f8ae742, TypeM>, Enc_2ae154 { 16116let Inst{7-5} = 0b011; 16117let Inst{13-13} = 0b0; 16118let Inst{31-21} = 0b11101110111; 16119let hasNewValue = 1; 16120let opNewValue = 0; 16121let prefersSlot3 = 1; 16122let Constraints = "$Rx32 = $Rx32in"; 16123} 16124def M2_mpyu_nac_hl_s0 : HInst< 16125(outs IntRegs:$Rx32), 16126(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16127"$Rx32 -= mpyu($Rs32.h,$Rt32.l)", 16128tc_7f8ae742, TypeM>, Enc_2ae154 { 16129let Inst{7-5} = 0b010; 16130let Inst{13-13} = 0b0; 16131let Inst{31-21} = 0b11101110011; 16132let hasNewValue = 1; 16133let opNewValue = 0; 16134let prefersSlot3 = 1; 16135let Constraints = "$Rx32 = $Rx32in"; 16136} 16137def M2_mpyu_nac_hl_s1 : HInst< 16138(outs IntRegs:$Rx32), 16139(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16140"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16141tc_7f8ae742, TypeM>, Enc_2ae154 { 16142let Inst{7-5} = 0b010; 16143let Inst{13-13} = 0b0; 16144let Inst{31-21} = 0b11101110111; 16145let hasNewValue = 1; 16146let opNewValue = 0; 16147let prefersSlot3 = 1; 16148let Constraints = "$Rx32 = $Rx32in"; 16149} 16150def M2_mpyu_nac_lh_s0 : HInst< 16151(outs IntRegs:$Rx32), 16152(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16153"$Rx32 -= mpyu($Rs32.l,$Rt32.h)", 16154tc_7f8ae742, TypeM>, Enc_2ae154 { 16155let Inst{7-5} = 0b001; 16156let Inst{13-13} = 0b0; 16157let Inst{31-21} = 0b11101110011; 16158let hasNewValue = 1; 16159let opNewValue = 0; 16160let prefersSlot3 = 1; 16161let Constraints = "$Rx32 = $Rx32in"; 16162} 16163def M2_mpyu_nac_lh_s1 : HInst< 16164(outs IntRegs:$Rx32), 16165(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16166"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16167tc_7f8ae742, TypeM>, Enc_2ae154 { 16168let Inst{7-5} = 0b001; 16169let Inst{13-13} = 0b0; 16170let Inst{31-21} = 0b11101110111; 16171let hasNewValue = 1; 16172let opNewValue = 0; 16173let prefersSlot3 = 1; 16174let Constraints = "$Rx32 = $Rx32in"; 16175} 16176def M2_mpyu_nac_ll_s0 : HInst< 16177(outs IntRegs:$Rx32), 16178(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16179"$Rx32 -= mpyu($Rs32.l,$Rt32.l)", 16180tc_7f8ae742, TypeM>, Enc_2ae154 { 16181let Inst{7-5} = 0b000; 16182let Inst{13-13} = 0b0; 16183let Inst{31-21} = 0b11101110011; 16184let hasNewValue = 1; 16185let opNewValue = 0; 16186let prefersSlot3 = 1; 16187let Constraints = "$Rx32 = $Rx32in"; 16188} 16189def M2_mpyu_nac_ll_s1 : HInst< 16190(outs IntRegs:$Rx32), 16191(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16192"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16193tc_7f8ae742, TypeM>, Enc_2ae154 { 16194let Inst{7-5} = 0b000; 16195let Inst{13-13} = 0b0; 16196let Inst{31-21} = 0b11101110111; 16197let hasNewValue = 1; 16198let opNewValue = 0; 16199let prefersSlot3 = 1; 16200let Constraints = "$Rx32 = $Rx32in"; 16201} 16202def M2_mpyu_up : HInst< 16203(outs IntRegs:$Rd32), 16204(ins IntRegs:$Rs32, IntRegs:$Rt32), 16205"$Rd32 = mpyu($Rs32,$Rt32)", 16206tc_c21d7447, TypeM>, Enc_5ab2be { 16207let Inst{7-5} = 0b001; 16208let Inst{13-13} = 0b0; 16209let Inst{31-21} = 0b11101101010; 16210let hasNewValue = 1; 16211let opNewValue = 0; 16212let prefersSlot3 = 1; 16213} 16214def M2_mpyud_acc_hh_s0 : HInst< 16215(outs DoubleRegs:$Rxx32), 16216(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16217"$Rxx32 += mpyu($Rs32.h,$Rt32.h)", 16218tc_7f8ae742, TypeM>, Enc_61f0b0 { 16219let Inst{7-5} = 0b011; 16220let Inst{13-13} = 0b0; 16221let Inst{31-21} = 0b11100110010; 16222let prefersSlot3 = 1; 16223let Constraints = "$Rxx32 = $Rxx32in"; 16224} 16225def M2_mpyud_acc_hh_s1 : HInst< 16226(outs DoubleRegs:$Rxx32), 16227(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16228"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1", 16229tc_7f8ae742, TypeM>, Enc_61f0b0 { 16230let Inst{7-5} = 0b011; 16231let Inst{13-13} = 0b0; 16232let Inst{31-21} = 0b11100110110; 16233let prefersSlot3 = 1; 16234let Constraints = "$Rxx32 = $Rxx32in"; 16235} 16236def M2_mpyud_acc_hl_s0 : HInst< 16237(outs DoubleRegs:$Rxx32), 16238(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16239"$Rxx32 += mpyu($Rs32.h,$Rt32.l)", 16240tc_7f8ae742, TypeM>, Enc_61f0b0 { 16241let Inst{7-5} = 0b010; 16242let Inst{13-13} = 0b0; 16243let Inst{31-21} = 0b11100110010; 16244let prefersSlot3 = 1; 16245let Constraints = "$Rxx32 = $Rxx32in"; 16246} 16247def M2_mpyud_acc_hl_s1 : HInst< 16248(outs DoubleRegs:$Rxx32), 16249(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16250"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1", 16251tc_7f8ae742, TypeM>, Enc_61f0b0 { 16252let Inst{7-5} = 0b010; 16253let Inst{13-13} = 0b0; 16254let Inst{31-21} = 0b11100110110; 16255let prefersSlot3 = 1; 16256let Constraints = "$Rxx32 = $Rxx32in"; 16257} 16258def M2_mpyud_acc_lh_s0 : HInst< 16259(outs DoubleRegs:$Rxx32), 16260(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16261"$Rxx32 += mpyu($Rs32.l,$Rt32.h)", 16262tc_7f8ae742, TypeM>, Enc_61f0b0 { 16263let Inst{7-5} = 0b001; 16264let Inst{13-13} = 0b0; 16265let Inst{31-21} = 0b11100110010; 16266let prefersSlot3 = 1; 16267let Constraints = "$Rxx32 = $Rxx32in"; 16268} 16269def M2_mpyud_acc_lh_s1 : HInst< 16270(outs DoubleRegs:$Rxx32), 16271(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16272"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1", 16273tc_7f8ae742, TypeM>, Enc_61f0b0 { 16274let Inst{7-5} = 0b001; 16275let Inst{13-13} = 0b0; 16276let Inst{31-21} = 0b11100110110; 16277let prefersSlot3 = 1; 16278let Constraints = "$Rxx32 = $Rxx32in"; 16279} 16280def M2_mpyud_acc_ll_s0 : HInst< 16281(outs DoubleRegs:$Rxx32), 16282(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16283"$Rxx32 += mpyu($Rs32.l,$Rt32.l)", 16284tc_7f8ae742, TypeM>, Enc_61f0b0 { 16285let Inst{7-5} = 0b000; 16286let Inst{13-13} = 0b0; 16287let Inst{31-21} = 0b11100110010; 16288let prefersSlot3 = 1; 16289let Constraints = "$Rxx32 = $Rxx32in"; 16290} 16291def M2_mpyud_acc_ll_s1 : HInst< 16292(outs DoubleRegs:$Rxx32), 16293(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16294"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1", 16295tc_7f8ae742, TypeM>, Enc_61f0b0 { 16296let Inst{7-5} = 0b000; 16297let Inst{13-13} = 0b0; 16298let Inst{31-21} = 0b11100110110; 16299let prefersSlot3 = 1; 16300let Constraints = "$Rxx32 = $Rxx32in"; 16301} 16302def M2_mpyud_hh_s0 : HInst< 16303(outs DoubleRegs:$Rdd32), 16304(ins IntRegs:$Rs32, IntRegs:$Rt32), 16305"$Rdd32 = mpyu($Rs32.h,$Rt32.h)", 16306tc_c21d7447, TypeM>, Enc_be32a5 { 16307let Inst{7-5} = 0b011; 16308let Inst{13-13} = 0b0; 16309let Inst{31-21} = 0b11100100010; 16310let prefersSlot3 = 1; 16311} 16312def M2_mpyud_hh_s1 : HInst< 16313(outs DoubleRegs:$Rdd32), 16314(ins IntRegs:$Rs32, IntRegs:$Rt32), 16315"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16316tc_c21d7447, TypeM>, Enc_be32a5 { 16317let Inst{7-5} = 0b011; 16318let Inst{13-13} = 0b0; 16319let Inst{31-21} = 0b11100100110; 16320let prefersSlot3 = 1; 16321} 16322def M2_mpyud_hl_s0 : HInst< 16323(outs DoubleRegs:$Rdd32), 16324(ins IntRegs:$Rs32, IntRegs:$Rt32), 16325"$Rdd32 = mpyu($Rs32.h,$Rt32.l)", 16326tc_c21d7447, TypeM>, Enc_be32a5 { 16327let Inst{7-5} = 0b010; 16328let Inst{13-13} = 0b0; 16329let Inst{31-21} = 0b11100100010; 16330let prefersSlot3 = 1; 16331} 16332def M2_mpyud_hl_s1 : HInst< 16333(outs DoubleRegs:$Rdd32), 16334(ins IntRegs:$Rs32, IntRegs:$Rt32), 16335"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16336tc_c21d7447, TypeM>, Enc_be32a5 { 16337let Inst{7-5} = 0b010; 16338let Inst{13-13} = 0b0; 16339let Inst{31-21} = 0b11100100110; 16340let prefersSlot3 = 1; 16341} 16342def M2_mpyud_lh_s0 : HInst< 16343(outs DoubleRegs:$Rdd32), 16344(ins IntRegs:$Rs32, IntRegs:$Rt32), 16345"$Rdd32 = mpyu($Rs32.l,$Rt32.h)", 16346tc_c21d7447, TypeM>, Enc_be32a5 { 16347let Inst{7-5} = 0b001; 16348let Inst{13-13} = 0b0; 16349let Inst{31-21} = 0b11100100010; 16350let prefersSlot3 = 1; 16351} 16352def M2_mpyud_lh_s1 : HInst< 16353(outs DoubleRegs:$Rdd32), 16354(ins IntRegs:$Rs32, IntRegs:$Rt32), 16355"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16356tc_c21d7447, TypeM>, Enc_be32a5 { 16357let Inst{7-5} = 0b001; 16358let Inst{13-13} = 0b0; 16359let Inst{31-21} = 0b11100100110; 16360let prefersSlot3 = 1; 16361} 16362def M2_mpyud_ll_s0 : HInst< 16363(outs DoubleRegs:$Rdd32), 16364(ins IntRegs:$Rs32, IntRegs:$Rt32), 16365"$Rdd32 = mpyu($Rs32.l,$Rt32.l)", 16366tc_c21d7447, TypeM>, Enc_be32a5 { 16367let Inst{7-5} = 0b000; 16368let Inst{13-13} = 0b0; 16369let Inst{31-21} = 0b11100100010; 16370let prefersSlot3 = 1; 16371} 16372def M2_mpyud_ll_s1 : HInst< 16373(outs DoubleRegs:$Rdd32), 16374(ins IntRegs:$Rs32, IntRegs:$Rt32), 16375"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16376tc_c21d7447, TypeM>, Enc_be32a5 { 16377let Inst{7-5} = 0b000; 16378let Inst{13-13} = 0b0; 16379let Inst{31-21} = 0b11100100110; 16380let prefersSlot3 = 1; 16381} 16382def M2_mpyud_nac_hh_s0 : HInst< 16383(outs DoubleRegs:$Rxx32), 16384(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16385"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)", 16386tc_7f8ae742, TypeM>, Enc_61f0b0 { 16387let Inst{7-5} = 0b011; 16388let Inst{13-13} = 0b0; 16389let Inst{31-21} = 0b11100110011; 16390let prefersSlot3 = 1; 16391let Constraints = "$Rxx32 = $Rxx32in"; 16392} 16393def M2_mpyud_nac_hh_s1 : HInst< 16394(outs DoubleRegs:$Rxx32), 16395(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16396"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16397tc_7f8ae742, TypeM>, Enc_61f0b0 { 16398let Inst{7-5} = 0b011; 16399let Inst{13-13} = 0b0; 16400let Inst{31-21} = 0b11100110111; 16401let prefersSlot3 = 1; 16402let Constraints = "$Rxx32 = $Rxx32in"; 16403} 16404def M2_mpyud_nac_hl_s0 : HInst< 16405(outs DoubleRegs:$Rxx32), 16406(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16407"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)", 16408tc_7f8ae742, TypeM>, Enc_61f0b0 { 16409let Inst{7-5} = 0b010; 16410let Inst{13-13} = 0b0; 16411let Inst{31-21} = 0b11100110011; 16412let prefersSlot3 = 1; 16413let Constraints = "$Rxx32 = $Rxx32in"; 16414} 16415def M2_mpyud_nac_hl_s1 : HInst< 16416(outs DoubleRegs:$Rxx32), 16417(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16418"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16419tc_7f8ae742, TypeM>, Enc_61f0b0 { 16420let Inst{7-5} = 0b010; 16421let Inst{13-13} = 0b0; 16422let Inst{31-21} = 0b11100110111; 16423let prefersSlot3 = 1; 16424let Constraints = "$Rxx32 = $Rxx32in"; 16425} 16426def M2_mpyud_nac_lh_s0 : HInst< 16427(outs DoubleRegs:$Rxx32), 16428(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16429"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)", 16430tc_7f8ae742, TypeM>, Enc_61f0b0 { 16431let Inst{7-5} = 0b001; 16432let Inst{13-13} = 0b0; 16433let Inst{31-21} = 0b11100110011; 16434let prefersSlot3 = 1; 16435let Constraints = "$Rxx32 = $Rxx32in"; 16436} 16437def M2_mpyud_nac_lh_s1 : HInst< 16438(outs DoubleRegs:$Rxx32), 16439(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16440"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16441tc_7f8ae742, TypeM>, Enc_61f0b0 { 16442let Inst{7-5} = 0b001; 16443let Inst{13-13} = 0b0; 16444let Inst{31-21} = 0b11100110111; 16445let prefersSlot3 = 1; 16446let Constraints = "$Rxx32 = $Rxx32in"; 16447} 16448def M2_mpyud_nac_ll_s0 : HInst< 16449(outs DoubleRegs:$Rxx32), 16450(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16451"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)", 16452tc_7f8ae742, TypeM>, Enc_61f0b0 { 16453let Inst{7-5} = 0b000; 16454let Inst{13-13} = 0b0; 16455let Inst{31-21} = 0b11100110011; 16456let prefersSlot3 = 1; 16457let Constraints = "$Rxx32 = $Rxx32in"; 16458} 16459def M2_mpyud_nac_ll_s1 : HInst< 16460(outs DoubleRegs:$Rxx32), 16461(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16462"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16463tc_7f8ae742, TypeM>, Enc_61f0b0 { 16464let Inst{7-5} = 0b000; 16465let Inst{13-13} = 0b0; 16466let Inst{31-21} = 0b11100110111; 16467let prefersSlot3 = 1; 16468let Constraints = "$Rxx32 = $Rxx32in"; 16469} 16470def M2_mpyui : HInst< 16471(outs IntRegs:$Rd32), 16472(ins IntRegs:$Rs32, IntRegs:$Rt32), 16473"$Rd32 = mpyui($Rs32,$Rt32)", 16474tc_c21d7447, TypeM> { 16475let hasNewValue = 1; 16476let opNewValue = 0; 16477let isPseudo = 1; 16478let isCodeGenOnly = 1; 16479} 16480def M2_nacci : HInst< 16481(outs IntRegs:$Rx32), 16482(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16483"$Rx32 -= add($Rs32,$Rt32)", 16484tc_2c13e7f5, TypeM>, Enc_2ae154 { 16485let Inst{7-5} = 0b001; 16486let Inst{13-13} = 0b0; 16487let Inst{31-21} = 0b11101111100; 16488let hasNewValue = 1; 16489let opNewValue = 0; 16490let prefersSlot3 = 1; 16491let InputType = "reg"; 16492let Constraints = "$Rx32 = $Rx32in"; 16493} 16494def M2_naccii : HInst< 16495(outs IntRegs:$Rx32), 16496(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 16497"$Rx32 -= add($Rs32,#$Ii)", 16498tc_2c13e7f5, TypeM>, Enc_c90aca { 16499let Inst{13-13} = 0b0; 16500let Inst{31-21} = 0b11100010100; 16501let hasNewValue = 1; 16502let opNewValue = 0; 16503let prefersSlot3 = 1; 16504let InputType = "imm"; 16505let isExtendable = 1; 16506let opExtendable = 3; 16507let isExtentSigned = 1; 16508let opExtentBits = 8; 16509let opExtentAlign = 0; 16510let Constraints = "$Rx32 = $Rx32in"; 16511} 16512def M2_subacc : HInst< 16513(outs IntRegs:$Rx32), 16514(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32), 16515"$Rx32 += sub($Rt32,$Rs32)", 16516tc_2c13e7f5, TypeM>, Enc_a568d4 { 16517let Inst{7-5} = 0b011; 16518let Inst{13-13} = 0b0; 16519let Inst{31-21} = 0b11101111000; 16520let hasNewValue = 1; 16521let opNewValue = 0; 16522let prefersSlot3 = 1; 16523let InputType = "reg"; 16524let Constraints = "$Rx32 = $Rx32in"; 16525} 16526def M2_vabsdiffh : HInst< 16527(outs DoubleRegs:$Rdd32), 16528(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16529"$Rdd32 = vabsdiffh($Rtt32,$Rss32)", 16530tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16531let Inst{7-5} = 0b000; 16532let Inst{13-13} = 0b0; 16533let Inst{31-21} = 0b11101000011; 16534let prefersSlot3 = 1; 16535} 16536def M2_vabsdiffw : HInst< 16537(outs DoubleRegs:$Rdd32), 16538(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16539"$Rdd32 = vabsdiffw($Rtt32,$Rss32)", 16540tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16541let Inst{7-5} = 0b000; 16542let Inst{13-13} = 0b0; 16543let Inst{31-21} = 0b11101000001; 16544let prefersSlot3 = 1; 16545} 16546def M2_vcmac_s0_sat_i : HInst< 16547(outs DoubleRegs:$Rxx32), 16548(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16549"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat", 16550tc_7f8ae742, TypeM>, Enc_88c16c { 16551let Inst{7-5} = 0b100; 16552let Inst{13-13} = 0b0; 16553let Inst{31-21} = 0b11101010010; 16554let prefersSlot3 = 1; 16555let Defs = [USR_OVF]; 16556let Constraints = "$Rxx32 = $Rxx32in"; 16557} 16558def M2_vcmac_s0_sat_r : HInst< 16559(outs DoubleRegs:$Rxx32), 16560(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16561"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat", 16562tc_7f8ae742, TypeM>, Enc_88c16c { 16563let Inst{7-5} = 0b100; 16564let Inst{13-13} = 0b0; 16565let Inst{31-21} = 0b11101010001; 16566let prefersSlot3 = 1; 16567let Defs = [USR_OVF]; 16568let Constraints = "$Rxx32 = $Rxx32in"; 16569} 16570def M2_vcmpy_s0_sat_i : HInst< 16571(outs DoubleRegs:$Rdd32), 16572(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16573"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat", 16574tc_c21d7447, TypeM>, Enc_a56825 { 16575let Inst{7-5} = 0b110; 16576let Inst{13-13} = 0b0; 16577let Inst{31-21} = 0b11101000010; 16578let prefersSlot3 = 1; 16579let Defs = [USR_OVF]; 16580} 16581def M2_vcmpy_s0_sat_r : HInst< 16582(outs DoubleRegs:$Rdd32), 16583(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16584"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat", 16585tc_c21d7447, TypeM>, Enc_a56825 { 16586let Inst{7-5} = 0b110; 16587let Inst{13-13} = 0b0; 16588let Inst{31-21} = 0b11101000001; 16589let prefersSlot3 = 1; 16590let Defs = [USR_OVF]; 16591} 16592def M2_vcmpy_s1_sat_i : HInst< 16593(outs DoubleRegs:$Rdd32), 16594(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16595"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat", 16596tc_c21d7447, TypeM>, Enc_a56825 { 16597let Inst{7-5} = 0b110; 16598let Inst{13-13} = 0b0; 16599let Inst{31-21} = 0b11101000110; 16600let prefersSlot3 = 1; 16601let Defs = [USR_OVF]; 16602} 16603def M2_vcmpy_s1_sat_r : HInst< 16604(outs DoubleRegs:$Rdd32), 16605(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16606"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat", 16607tc_c21d7447, TypeM>, Enc_a56825 { 16608let Inst{7-5} = 0b110; 16609let Inst{13-13} = 0b0; 16610let Inst{31-21} = 0b11101000101; 16611let prefersSlot3 = 1; 16612let Defs = [USR_OVF]; 16613} 16614def M2_vdmacs_s0 : HInst< 16615(outs DoubleRegs:$Rxx32), 16616(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16617"$Rxx32 += vdmpy($Rss32,$Rtt32):sat", 16618tc_7f8ae742, TypeM>, Enc_88c16c { 16619let Inst{7-5} = 0b100; 16620let Inst{13-13} = 0b0; 16621let Inst{31-21} = 0b11101010000; 16622let prefersSlot3 = 1; 16623let Defs = [USR_OVF]; 16624let Constraints = "$Rxx32 = $Rxx32in"; 16625} 16626def M2_vdmacs_s1 : HInst< 16627(outs DoubleRegs:$Rxx32), 16628(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16629"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat", 16630tc_7f8ae742, TypeM>, Enc_88c16c { 16631let Inst{7-5} = 0b100; 16632let Inst{13-13} = 0b0; 16633let Inst{31-21} = 0b11101010100; 16634let prefersSlot3 = 1; 16635let Defs = [USR_OVF]; 16636let Constraints = "$Rxx32 = $Rxx32in"; 16637} 16638def M2_vdmpyrs_s0 : HInst< 16639(outs IntRegs:$Rd32), 16640(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16641"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat", 16642tc_c21d7447, TypeM>, Enc_d2216a { 16643let Inst{7-5} = 0b000; 16644let Inst{13-13} = 0b0; 16645let Inst{31-21} = 0b11101001000; 16646let hasNewValue = 1; 16647let opNewValue = 0; 16648let prefersSlot3 = 1; 16649let Defs = [USR_OVF]; 16650} 16651def M2_vdmpyrs_s1 : HInst< 16652(outs IntRegs:$Rd32), 16653(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16654"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat", 16655tc_c21d7447, TypeM>, Enc_d2216a { 16656let Inst{7-5} = 0b000; 16657let Inst{13-13} = 0b0; 16658let Inst{31-21} = 0b11101001100; 16659let hasNewValue = 1; 16660let opNewValue = 0; 16661let prefersSlot3 = 1; 16662let Defs = [USR_OVF]; 16663} 16664def M2_vdmpys_s0 : HInst< 16665(outs DoubleRegs:$Rdd32), 16666(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16667"$Rdd32 = vdmpy($Rss32,$Rtt32):sat", 16668tc_c21d7447, TypeM>, Enc_a56825 { 16669let Inst{7-5} = 0b100; 16670let Inst{13-13} = 0b0; 16671let Inst{31-21} = 0b11101000000; 16672let prefersSlot3 = 1; 16673let Defs = [USR_OVF]; 16674} 16675def M2_vdmpys_s1 : HInst< 16676(outs DoubleRegs:$Rdd32), 16677(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16678"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat", 16679tc_c21d7447, TypeM>, Enc_a56825 { 16680let Inst{7-5} = 0b100; 16681let Inst{13-13} = 0b0; 16682let Inst{31-21} = 0b11101000100; 16683let prefersSlot3 = 1; 16684let Defs = [USR_OVF]; 16685} 16686def M2_vmac2 : HInst< 16687(outs DoubleRegs:$Rxx32), 16688(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16689"$Rxx32 += vmpyh($Rs32,$Rt32)", 16690tc_7f8ae742, TypeM>, Enc_61f0b0 { 16691let Inst{7-5} = 0b001; 16692let Inst{13-13} = 0b0; 16693let Inst{31-21} = 0b11100111001; 16694let prefersSlot3 = 1; 16695let Constraints = "$Rxx32 = $Rxx32in"; 16696} 16697def M2_vmac2es : HInst< 16698(outs DoubleRegs:$Rxx32), 16699(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16700"$Rxx32 += vmpyeh($Rss32,$Rtt32)", 16701tc_7f8ae742, TypeM>, Enc_88c16c { 16702let Inst{7-5} = 0b010; 16703let Inst{13-13} = 0b0; 16704let Inst{31-21} = 0b11101010001; 16705let prefersSlot3 = 1; 16706let Constraints = "$Rxx32 = $Rxx32in"; 16707} 16708def M2_vmac2es_s0 : HInst< 16709(outs DoubleRegs:$Rxx32), 16710(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16711"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat", 16712tc_7f8ae742, TypeM>, Enc_88c16c { 16713let Inst{7-5} = 0b110; 16714let Inst{13-13} = 0b0; 16715let Inst{31-21} = 0b11101010000; 16716let prefersSlot3 = 1; 16717let Defs = [USR_OVF]; 16718let Constraints = "$Rxx32 = $Rxx32in"; 16719} 16720def M2_vmac2es_s1 : HInst< 16721(outs DoubleRegs:$Rxx32), 16722(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16723"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat", 16724tc_7f8ae742, TypeM>, Enc_88c16c { 16725let Inst{7-5} = 0b110; 16726let Inst{13-13} = 0b0; 16727let Inst{31-21} = 0b11101010100; 16728let prefersSlot3 = 1; 16729let Defs = [USR_OVF]; 16730let Constraints = "$Rxx32 = $Rxx32in"; 16731} 16732def M2_vmac2s_s0 : HInst< 16733(outs DoubleRegs:$Rxx32), 16734(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16735"$Rxx32 += vmpyh($Rs32,$Rt32):sat", 16736tc_7f8ae742, TypeM>, Enc_61f0b0 { 16737let Inst{7-5} = 0b101; 16738let Inst{13-13} = 0b0; 16739let Inst{31-21} = 0b11100111000; 16740let prefersSlot3 = 1; 16741let Defs = [USR_OVF]; 16742let Constraints = "$Rxx32 = $Rxx32in"; 16743} 16744def M2_vmac2s_s1 : HInst< 16745(outs DoubleRegs:$Rxx32), 16746(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16747"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat", 16748tc_7f8ae742, TypeM>, Enc_61f0b0 { 16749let Inst{7-5} = 0b101; 16750let Inst{13-13} = 0b0; 16751let Inst{31-21} = 0b11100111100; 16752let prefersSlot3 = 1; 16753let Defs = [USR_OVF]; 16754let Constraints = "$Rxx32 = $Rxx32in"; 16755} 16756def M2_vmac2su_s0 : HInst< 16757(outs DoubleRegs:$Rxx32), 16758(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16759"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat", 16760tc_7f8ae742, TypeM>, Enc_61f0b0 { 16761let Inst{7-5} = 0b101; 16762let Inst{13-13} = 0b0; 16763let Inst{31-21} = 0b11100111011; 16764let prefersSlot3 = 1; 16765let Defs = [USR_OVF]; 16766let Constraints = "$Rxx32 = $Rxx32in"; 16767} 16768def M2_vmac2su_s1 : HInst< 16769(outs DoubleRegs:$Rxx32), 16770(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16771"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat", 16772tc_7f8ae742, TypeM>, Enc_61f0b0 { 16773let Inst{7-5} = 0b101; 16774let Inst{13-13} = 0b0; 16775let Inst{31-21} = 0b11100111111; 16776let prefersSlot3 = 1; 16777let Defs = [USR_OVF]; 16778let Constraints = "$Rxx32 = $Rxx32in"; 16779} 16780def M2_vmpy2es_s0 : HInst< 16781(outs DoubleRegs:$Rdd32), 16782(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16783"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat", 16784tc_c21d7447, TypeM>, Enc_a56825 { 16785let Inst{7-5} = 0b110; 16786let Inst{13-13} = 0b0; 16787let Inst{31-21} = 0b11101000000; 16788let prefersSlot3 = 1; 16789let Defs = [USR_OVF]; 16790} 16791def M2_vmpy2es_s1 : HInst< 16792(outs DoubleRegs:$Rdd32), 16793(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16794"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat", 16795tc_c21d7447, TypeM>, Enc_a56825 { 16796let Inst{7-5} = 0b110; 16797let Inst{13-13} = 0b0; 16798let Inst{31-21} = 0b11101000100; 16799let prefersSlot3 = 1; 16800let Defs = [USR_OVF]; 16801} 16802def M2_vmpy2s_s0 : HInst< 16803(outs DoubleRegs:$Rdd32), 16804(ins IntRegs:$Rs32, IntRegs:$Rt32), 16805"$Rdd32 = vmpyh($Rs32,$Rt32):sat", 16806tc_c21d7447, TypeM>, Enc_be32a5 { 16807let Inst{7-5} = 0b101; 16808let Inst{13-13} = 0b0; 16809let Inst{31-21} = 0b11100101000; 16810let prefersSlot3 = 1; 16811let Defs = [USR_OVF]; 16812} 16813def M2_vmpy2s_s0pack : HInst< 16814(outs IntRegs:$Rd32), 16815(ins IntRegs:$Rs32, IntRegs:$Rt32), 16816"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat", 16817tc_c21d7447, TypeM>, Enc_5ab2be { 16818let Inst{7-5} = 0b111; 16819let Inst{13-13} = 0b0; 16820let Inst{31-21} = 0b11101101001; 16821let hasNewValue = 1; 16822let opNewValue = 0; 16823let prefersSlot3 = 1; 16824let Defs = [USR_OVF]; 16825} 16826def M2_vmpy2s_s1 : HInst< 16827(outs DoubleRegs:$Rdd32), 16828(ins IntRegs:$Rs32, IntRegs:$Rt32), 16829"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat", 16830tc_c21d7447, TypeM>, Enc_be32a5 { 16831let Inst{7-5} = 0b101; 16832let Inst{13-13} = 0b0; 16833let Inst{31-21} = 0b11100101100; 16834let prefersSlot3 = 1; 16835let Defs = [USR_OVF]; 16836} 16837def M2_vmpy2s_s1pack : HInst< 16838(outs IntRegs:$Rd32), 16839(ins IntRegs:$Rs32, IntRegs:$Rt32), 16840"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat", 16841tc_c21d7447, TypeM>, Enc_5ab2be { 16842let Inst{7-5} = 0b111; 16843let Inst{13-13} = 0b0; 16844let Inst{31-21} = 0b11101101101; 16845let hasNewValue = 1; 16846let opNewValue = 0; 16847let prefersSlot3 = 1; 16848let Defs = [USR_OVF]; 16849} 16850def M2_vmpy2su_s0 : HInst< 16851(outs DoubleRegs:$Rdd32), 16852(ins IntRegs:$Rs32, IntRegs:$Rt32), 16853"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat", 16854tc_c21d7447, TypeM>, Enc_be32a5 { 16855let Inst{7-5} = 0b111; 16856let Inst{13-13} = 0b0; 16857let Inst{31-21} = 0b11100101000; 16858let prefersSlot3 = 1; 16859let Defs = [USR_OVF]; 16860} 16861def M2_vmpy2su_s1 : HInst< 16862(outs DoubleRegs:$Rdd32), 16863(ins IntRegs:$Rs32, IntRegs:$Rt32), 16864"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat", 16865tc_c21d7447, TypeM>, Enc_be32a5 { 16866let Inst{7-5} = 0b111; 16867let Inst{13-13} = 0b0; 16868let Inst{31-21} = 0b11100101100; 16869let prefersSlot3 = 1; 16870let Defs = [USR_OVF]; 16871} 16872def M2_vraddh : HInst< 16873(outs IntRegs:$Rd32), 16874(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16875"$Rd32 = vraddh($Rss32,$Rtt32)", 16876tc_c21d7447, TypeM>, Enc_d2216a { 16877let Inst{7-5} = 0b111; 16878let Inst{13-13} = 0b0; 16879let Inst{31-21} = 0b11101001001; 16880let hasNewValue = 1; 16881let opNewValue = 0; 16882let prefersSlot3 = 1; 16883} 16884def M2_vradduh : HInst< 16885(outs IntRegs:$Rd32), 16886(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16887"$Rd32 = vradduh($Rss32,$Rtt32)", 16888tc_c21d7447, TypeM>, Enc_d2216a { 16889let Inst{7-5} = 0b001; 16890let Inst{13-13} = 0b0; 16891let Inst{31-21} = 0b11101001000; 16892let hasNewValue = 1; 16893let opNewValue = 0; 16894let prefersSlot3 = 1; 16895} 16896def M2_vrcmaci_s0 : HInst< 16897(outs DoubleRegs:$Rxx32), 16898(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16899"$Rxx32 += vrcmpyi($Rss32,$Rtt32)", 16900tc_7f8ae742, TypeM>, Enc_88c16c { 16901let Inst{7-5} = 0b000; 16902let Inst{13-13} = 0b0; 16903let Inst{31-21} = 0b11101010000; 16904let prefersSlot3 = 1; 16905let Constraints = "$Rxx32 = $Rxx32in"; 16906} 16907def M2_vrcmaci_s0c : HInst< 16908(outs DoubleRegs:$Rxx32), 16909(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16910"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)", 16911tc_7f8ae742, TypeM>, Enc_88c16c { 16912let Inst{7-5} = 0b000; 16913let Inst{13-13} = 0b0; 16914let Inst{31-21} = 0b11101010010; 16915let prefersSlot3 = 1; 16916let Constraints = "$Rxx32 = $Rxx32in"; 16917} 16918def M2_vrcmacr_s0 : HInst< 16919(outs DoubleRegs:$Rxx32), 16920(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16921"$Rxx32 += vrcmpyr($Rss32,$Rtt32)", 16922tc_7f8ae742, TypeM>, Enc_88c16c { 16923let Inst{7-5} = 0b001; 16924let Inst{13-13} = 0b0; 16925let Inst{31-21} = 0b11101010000; 16926let prefersSlot3 = 1; 16927let Constraints = "$Rxx32 = $Rxx32in"; 16928} 16929def M2_vrcmacr_s0c : HInst< 16930(outs DoubleRegs:$Rxx32), 16931(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16932"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)", 16933tc_7f8ae742, TypeM>, Enc_88c16c { 16934let Inst{7-5} = 0b001; 16935let Inst{13-13} = 0b0; 16936let Inst{31-21} = 0b11101010011; 16937let prefersSlot3 = 1; 16938let Constraints = "$Rxx32 = $Rxx32in"; 16939} 16940def M2_vrcmpyi_s0 : HInst< 16941(outs DoubleRegs:$Rdd32), 16942(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16943"$Rdd32 = vrcmpyi($Rss32,$Rtt32)", 16944tc_c21d7447, TypeM>, Enc_a56825 { 16945let Inst{7-5} = 0b000; 16946let Inst{13-13} = 0b0; 16947let Inst{31-21} = 0b11101000000; 16948let prefersSlot3 = 1; 16949} 16950def M2_vrcmpyi_s0c : HInst< 16951(outs DoubleRegs:$Rdd32), 16952(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16953"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)", 16954tc_c21d7447, TypeM>, Enc_a56825 { 16955let Inst{7-5} = 0b000; 16956let Inst{13-13} = 0b0; 16957let Inst{31-21} = 0b11101000010; 16958let prefersSlot3 = 1; 16959} 16960def M2_vrcmpyr_s0 : HInst< 16961(outs DoubleRegs:$Rdd32), 16962(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16963"$Rdd32 = vrcmpyr($Rss32,$Rtt32)", 16964tc_c21d7447, TypeM>, Enc_a56825 { 16965let Inst{7-5} = 0b001; 16966let Inst{13-13} = 0b0; 16967let Inst{31-21} = 0b11101000000; 16968let prefersSlot3 = 1; 16969} 16970def M2_vrcmpyr_s0c : HInst< 16971(outs DoubleRegs:$Rdd32), 16972(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16973"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)", 16974tc_c21d7447, TypeM>, Enc_a56825 { 16975let Inst{7-5} = 0b001; 16976let Inst{13-13} = 0b0; 16977let Inst{31-21} = 0b11101000011; 16978let prefersSlot3 = 1; 16979} 16980def M2_vrcmpys_acc_s1 : HInst< 16981(outs DoubleRegs:$Rxx32), 16982(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 16983"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat", 16984tc_7f8ae742, TypeM> { 16985let isPseudo = 1; 16986let Constraints = "$Rxx32 = $Rxx32in"; 16987} 16988def M2_vrcmpys_acc_s1_h : HInst< 16989(outs DoubleRegs:$Rxx32), 16990(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16991"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 16992tc_7f8ae742, TypeM>, Enc_88c16c { 16993let Inst{7-5} = 0b100; 16994let Inst{13-13} = 0b0; 16995let Inst{31-21} = 0b11101010101; 16996let prefersSlot3 = 1; 16997let Defs = [USR_OVF]; 16998let Constraints = "$Rxx32 = $Rxx32in"; 16999} 17000def M2_vrcmpys_acc_s1_l : HInst< 17001(outs DoubleRegs:$Rxx32), 17002(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17003"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 17004tc_7f8ae742, TypeM>, Enc_88c16c { 17005let Inst{7-5} = 0b100; 17006let Inst{13-13} = 0b0; 17007let Inst{31-21} = 0b11101010111; 17008let prefersSlot3 = 1; 17009let Defs = [USR_OVF]; 17010let Constraints = "$Rxx32 = $Rxx32in"; 17011} 17012def M2_vrcmpys_s1 : HInst< 17013(outs DoubleRegs:$Rdd32), 17014(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17015"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat", 17016tc_c21d7447, TypeM> { 17017let isPseudo = 1; 17018} 17019def M2_vrcmpys_s1_h : HInst< 17020(outs DoubleRegs:$Rdd32), 17021(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17022"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 17023tc_c21d7447, TypeM>, Enc_a56825 { 17024let Inst{7-5} = 0b100; 17025let Inst{13-13} = 0b0; 17026let Inst{31-21} = 0b11101000101; 17027let prefersSlot3 = 1; 17028let Defs = [USR_OVF]; 17029} 17030def M2_vrcmpys_s1_l : HInst< 17031(outs DoubleRegs:$Rdd32), 17032(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17033"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 17034tc_c21d7447, TypeM>, Enc_a56825 { 17035let Inst{7-5} = 0b100; 17036let Inst{13-13} = 0b0; 17037let Inst{31-21} = 0b11101000111; 17038let prefersSlot3 = 1; 17039let Defs = [USR_OVF]; 17040} 17041def M2_vrcmpys_s1rp : HInst< 17042(outs IntRegs:$Rd32), 17043(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17044"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat", 17045tc_c21d7447, TypeM> { 17046let hasNewValue = 1; 17047let opNewValue = 0; 17048let isPseudo = 1; 17049} 17050def M2_vrcmpys_s1rp_h : HInst< 17051(outs IntRegs:$Rd32), 17052(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17053"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi", 17054tc_c21d7447, TypeM>, Enc_d2216a { 17055let Inst{7-5} = 0b110; 17056let Inst{13-13} = 0b0; 17057let Inst{31-21} = 0b11101001101; 17058let hasNewValue = 1; 17059let opNewValue = 0; 17060let prefersSlot3 = 1; 17061let Defs = [USR_OVF]; 17062} 17063def M2_vrcmpys_s1rp_l : HInst< 17064(outs IntRegs:$Rd32), 17065(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17066"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo", 17067tc_c21d7447, TypeM>, Enc_d2216a { 17068let Inst{7-5} = 0b111; 17069let Inst{13-13} = 0b0; 17070let Inst{31-21} = 0b11101001101; 17071let hasNewValue = 1; 17072let opNewValue = 0; 17073let prefersSlot3 = 1; 17074let Defs = [USR_OVF]; 17075} 17076def M2_vrmac_s0 : HInst< 17077(outs DoubleRegs:$Rxx32), 17078(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17079"$Rxx32 += vrmpyh($Rss32,$Rtt32)", 17080tc_7f8ae742, TypeM>, Enc_88c16c { 17081let Inst{7-5} = 0b010; 17082let Inst{13-13} = 0b0; 17083let Inst{31-21} = 0b11101010000; 17084let prefersSlot3 = 1; 17085let Constraints = "$Rxx32 = $Rxx32in"; 17086} 17087def M2_vrmpy_s0 : HInst< 17088(outs DoubleRegs:$Rdd32), 17089(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17090"$Rdd32 = vrmpyh($Rss32,$Rtt32)", 17091tc_c21d7447, TypeM>, Enc_a56825 { 17092let Inst{7-5} = 0b010; 17093let Inst{13-13} = 0b0; 17094let Inst{31-21} = 0b11101000000; 17095let prefersSlot3 = 1; 17096} 17097def M2_xor_xacc : HInst< 17098(outs IntRegs:$Rx32), 17099(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17100"$Rx32 ^= xor($Rs32,$Rt32)", 17101tc_a4e22bbd, TypeM>, Enc_2ae154 { 17102let Inst{7-5} = 0b011; 17103let Inst{13-13} = 0b0; 17104let Inst{31-21} = 0b11101111100; 17105let hasNewValue = 1; 17106let opNewValue = 0; 17107let prefersSlot3 = 1; 17108let InputType = "reg"; 17109let Constraints = "$Rx32 = $Rx32in"; 17110} 17111def M4_and_and : HInst< 17112(outs IntRegs:$Rx32), 17113(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17114"$Rx32 &= and($Rs32,$Rt32)", 17115tc_a4e22bbd, TypeM>, Enc_2ae154 { 17116let Inst{7-5} = 0b000; 17117let Inst{13-13} = 0b0; 17118let Inst{31-21} = 0b11101111010; 17119let hasNewValue = 1; 17120let opNewValue = 0; 17121let prefersSlot3 = 1; 17122let InputType = "reg"; 17123let Constraints = "$Rx32 = $Rx32in"; 17124} 17125def M4_and_andn : HInst< 17126(outs IntRegs:$Rx32), 17127(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17128"$Rx32 &= and($Rs32,~$Rt32)", 17129tc_a4e22bbd, TypeM>, Enc_2ae154 { 17130let Inst{7-5} = 0b001; 17131let Inst{13-13} = 0b0; 17132let Inst{31-21} = 0b11101111001; 17133let hasNewValue = 1; 17134let opNewValue = 0; 17135let prefersSlot3 = 1; 17136let InputType = "reg"; 17137let Constraints = "$Rx32 = $Rx32in"; 17138} 17139def M4_and_or : HInst< 17140(outs IntRegs:$Rx32), 17141(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17142"$Rx32 &= or($Rs32,$Rt32)", 17143tc_a4e22bbd, TypeM>, Enc_2ae154 { 17144let Inst{7-5} = 0b001; 17145let Inst{13-13} = 0b0; 17146let Inst{31-21} = 0b11101111010; 17147let hasNewValue = 1; 17148let opNewValue = 0; 17149let prefersSlot3 = 1; 17150let InputType = "reg"; 17151let Constraints = "$Rx32 = $Rx32in"; 17152} 17153def M4_and_xor : HInst< 17154(outs IntRegs:$Rx32), 17155(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17156"$Rx32 &= xor($Rs32,$Rt32)", 17157tc_a4e22bbd, TypeM>, Enc_2ae154 { 17158let Inst{7-5} = 0b010; 17159let Inst{13-13} = 0b0; 17160let Inst{31-21} = 0b11101111010; 17161let hasNewValue = 1; 17162let opNewValue = 0; 17163let prefersSlot3 = 1; 17164let InputType = "reg"; 17165let Constraints = "$Rx32 = $Rx32in"; 17166} 17167def M4_cmpyi_wh : HInst< 17168(outs IntRegs:$Rd32), 17169(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17170"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat", 17171tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17172let Inst{7-5} = 0b100; 17173let Inst{13-13} = 0b0; 17174let Inst{31-21} = 0b11000101000; 17175let hasNewValue = 1; 17176let opNewValue = 0; 17177let prefersSlot3 = 1; 17178let Defs = [USR_OVF]; 17179} 17180def M4_cmpyi_whc : HInst< 17181(outs IntRegs:$Rd32), 17182(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17183"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat", 17184tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17185let Inst{7-5} = 0b101; 17186let Inst{13-13} = 0b0; 17187let Inst{31-21} = 0b11000101000; 17188let hasNewValue = 1; 17189let opNewValue = 0; 17190let prefersSlot3 = 1; 17191let Defs = [USR_OVF]; 17192} 17193def M4_cmpyr_wh : HInst< 17194(outs IntRegs:$Rd32), 17195(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17196"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat", 17197tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17198let Inst{7-5} = 0b110; 17199let Inst{13-13} = 0b0; 17200let Inst{31-21} = 0b11000101000; 17201let hasNewValue = 1; 17202let opNewValue = 0; 17203let prefersSlot3 = 1; 17204let Defs = [USR_OVF]; 17205} 17206def M4_cmpyr_whc : HInst< 17207(outs IntRegs:$Rd32), 17208(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17209"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat", 17210tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17211let Inst{7-5} = 0b111; 17212let Inst{13-13} = 0b0; 17213let Inst{31-21} = 0b11000101000; 17214let hasNewValue = 1; 17215let opNewValue = 0; 17216let prefersSlot3 = 1; 17217let Defs = [USR_OVF]; 17218} 17219def M4_mac_up_s1_sat : HInst< 17220(outs IntRegs:$Rx32), 17221(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17222"$Rx32 += mpy($Rs32,$Rt32):<<1:sat", 17223tc_7f8ae742, TypeM>, Enc_2ae154 { 17224let Inst{7-5} = 0b000; 17225let Inst{13-13} = 0b0; 17226let Inst{31-21} = 0b11101111011; 17227let hasNewValue = 1; 17228let opNewValue = 0; 17229let prefersSlot3 = 1; 17230let Defs = [USR_OVF]; 17231let InputType = "reg"; 17232let Constraints = "$Rx32 = $Rx32in"; 17233} 17234def M4_mpyri_addi : HInst< 17235(outs IntRegs:$Rd32), 17236(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II), 17237"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))", 17238tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel { 17239let Inst{31-24} = 0b11011000; 17240let hasNewValue = 1; 17241let opNewValue = 0; 17242let prefersSlot3 = 1; 17243let CextOpcode = "M4_mpyri_addr"; 17244let isExtendable = 1; 17245let opExtendable = 1; 17246let isExtentSigned = 0; 17247let opExtentBits = 6; 17248let opExtentAlign = 0; 17249} 17250def M4_mpyri_addr : HInst< 17251(outs IntRegs:$Rd32), 17252(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii), 17253"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))", 17254tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel { 17255let Inst{31-23} = 0b110111111; 17256let hasNewValue = 1; 17257let opNewValue = 0; 17258let prefersSlot3 = 1; 17259let CextOpcode = "M4_mpyri_addr"; 17260let InputType = "imm"; 17261let isExtendable = 1; 17262let opExtendable = 3; 17263let isExtentSigned = 0; 17264let opExtentBits = 6; 17265let opExtentAlign = 0; 17266} 17267def M4_mpyri_addr_u2 : HInst< 17268(outs IntRegs:$Rd32), 17269(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32), 17270"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))", 17271tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> { 17272let Inst{31-23} = 0b110111110; 17273let hasNewValue = 1; 17274let opNewValue = 0; 17275let prefersSlot3 = 1; 17276} 17277def M4_mpyrr_addi : HInst< 17278(outs IntRegs:$Rd32), 17279(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32), 17280"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))", 17281tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel { 17282let Inst{31-23} = 0b110101110; 17283let hasNewValue = 1; 17284let opNewValue = 0; 17285let prefersSlot3 = 1; 17286let CextOpcode = "M4_mpyrr_addr"; 17287let InputType = "imm"; 17288let isExtendable = 1; 17289let opExtendable = 1; 17290let isExtentSigned = 0; 17291let opExtentBits = 6; 17292let opExtentAlign = 0; 17293} 17294def M4_mpyrr_addr : HInst< 17295(outs IntRegs:$Ry32), 17296(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32), 17297"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))", 17298tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel { 17299let Inst{7-5} = 0b000; 17300let Inst{13-13} = 0b0; 17301let Inst{31-21} = 0b11100011000; 17302let hasNewValue = 1; 17303let opNewValue = 0; 17304let prefersSlot3 = 1; 17305let CextOpcode = "M4_mpyrr_addr"; 17306let InputType = "reg"; 17307let Constraints = "$Ry32 = $Ry32in"; 17308} 17309def M4_nac_up_s1_sat : HInst< 17310(outs IntRegs:$Rx32), 17311(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17312"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat", 17313tc_7f8ae742, TypeM>, Enc_2ae154 { 17314let Inst{7-5} = 0b001; 17315let Inst{13-13} = 0b0; 17316let Inst{31-21} = 0b11101111011; 17317let hasNewValue = 1; 17318let opNewValue = 0; 17319let prefersSlot3 = 1; 17320let Defs = [USR_OVF]; 17321let InputType = "reg"; 17322let Constraints = "$Rx32 = $Rx32in"; 17323} 17324def M4_or_and : HInst< 17325(outs IntRegs:$Rx32), 17326(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17327"$Rx32 |= and($Rs32,$Rt32)", 17328tc_a4e22bbd, TypeM>, Enc_2ae154 { 17329let Inst{7-5} = 0b011; 17330let Inst{13-13} = 0b0; 17331let Inst{31-21} = 0b11101111010; 17332let hasNewValue = 1; 17333let opNewValue = 0; 17334let prefersSlot3 = 1; 17335let InputType = "reg"; 17336let Constraints = "$Rx32 = $Rx32in"; 17337} 17338def M4_or_andn : HInst< 17339(outs IntRegs:$Rx32), 17340(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17341"$Rx32 |= and($Rs32,~$Rt32)", 17342tc_a4e22bbd, TypeM>, Enc_2ae154 { 17343let Inst{7-5} = 0b000; 17344let Inst{13-13} = 0b0; 17345let Inst{31-21} = 0b11101111001; 17346let hasNewValue = 1; 17347let opNewValue = 0; 17348let prefersSlot3 = 1; 17349let InputType = "reg"; 17350let Constraints = "$Rx32 = $Rx32in"; 17351} 17352def M4_or_or : HInst< 17353(outs IntRegs:$Rx32), 17354(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17355"$Rx32 |= or($Rs32,$Rt32)", 17356tc_a4e22bbd, TypeM>, Enc_2ae154 { 17357let Inst{7-5} = 0b000; 17358let Inst{13-13} = 0b0; 17359let Inst{31-21} = 0b11101111110; 17360let hasNewValue = 1; 17361let opNewValue = 0; 17362let prefersSlot3 = 1; 17363let InputType = "reg"; 17364let Constraints = "$Rx32 = $Rx32in"; 17365} 17366def M4_or_xor : HInst< 17367(outs IntRegs:$Rx32), 17368(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17369"$Rx32 |= xor($Rs32,$Rt32)", 17370tc_a4e22bbd, TypeM>, Enc_2ae154 { 17371let Inst{7-5} = 0b001; 17372let Inst{13-13} = 0b0; 17373let Inst{31-21} = 0b11101111110; 17374let hasNewValue = 1; 17375let opNewValue = 0; 17376let prefersSlot3 = 1; 17377let InputType = "reg"; 17378let Constraints = "$Rx32 = $Rx32in"; 17379} 17380def M4_pmpyw : HInst< 17381(outs DoubleRegs:$Rdd32), 17382(ins IntRegs:$Rs32, IntRegs:$Rt32), 17383"$Rdd32 = pmpyw($Rs32,$Rt32)", 17384tc_c21d7447, TypeM>, Enc_be32a5 { 17385let Inst{7-5} = 0b111; 17386let Inst{13-13} = 0b0; 17387let Inst{31-21} = 0b11100101010; 17388let prefersSlot3 = 1; 17389} 17390def M4_pmpyw_acc : HInst< 17391(outs DoubleRegs:$Rxx32), 17392(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17393"$Rxx32 ^= pmpyw($Rs32,$Rt32)", 17394tc_7f8ae742, TypeM>, Enc_61f0b0 { 17395let Inst{7-5} = 0b111; 17396let Inst{13-13} = 0b0; 17397let Inst{31-21} = 0b11100111001; 17398let prefersSlot3 = 1; 17399let Constraints = "$Rxx32 = $Rxx32in"; 17400} 17401def M4_vpmpyh : HInst< 17402(outs DoubleRegs:$Rdd32), 17403(ins IntRegs:$Rs32, IntRegs:$Rt32), 17404"$Rdd32 = vpmpyh($Rs32,$Rt32)", 17405tc_c21d7447, TypeM>, Enc_be32a5 { 17406let Inst{7-5} = 0b111; 17407let Inst{13-13} = 0b0; 17408let Inst{31-21} = 0b11100101110; 17409let prefersSlot3 = 1; 17410} 17411def M4_vpmpyh_acc : HInst< 17412(outs DoubleRegs:$Rxx32), 17413(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17414"$Rxx32 ^= vpmpyh($Rs32,$Rt32)", 17415tc_7f8ae742, TypeM>, Enc_61f0b0 { 17416let Inst{7-5} = 0b111; 17417let Inst{13-13} = 0b0; 17418let Inst{31-21} = 0b11100111101; 17419let prefersSlot3 = 1; 17420let Constraints = "$Rxx32 = $Rxx32in"; 17421} 17422def M4_vrmpyeh_acc_s0 : HInst< 17423(outs DoubleRegs:$Rxx32), 17424(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17425"$Rxx32 += vrmpyweh($Rss32,$Rtt32)", 17426tc_7f8ae742, TypeM>, Enc_88c16c { 17427let Inst{7-5} = 0b110; 17428let Inst{13-13} = 0b0; 17429let Inst{31-21} = 0b11101010001; 17430let prefersSlot3 = 1; 17431let Constraints = "$Rxx32 = $Rxx32in"; 17432} 17433def M4_vrmpyeh_acc_s1 : HInst< 17434(outs DoubleRegs:$Rxx32), 17435(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17436"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1", 17437tc_7f8ae742, TypeM>, Enc_88c16c { 17438let Inst{7-5} = 0b110; 17439let Inst{13-13} = 0b0; 17440let Inst{31-21} = 0b11101010101; 17441let prefersSlot3 = 1; 17442let Constraints = "$Rxx32 = $Rxx32in"; 17443} 17444def M4_vrmpyeh_s0 : HInst< 17445(outs DoubleRegs:$Rdd32), 17446(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17447"$Rdd32 = vrmpyweh($Rss32,$Rtt32)", 17448tc_c21d7447, TypeM>, Enc_a56825 { 17449let Inst{7-5} = 0b100; 17450let Inst{13-13} = 0b0; 17451let Inst{31-21} = 0b11101000010; 17452let prefersSlot3 = 1; 17453} 17454def M4_vrmpyeh_s1 : HInst< 17455(outs DoubleRegs:$Rdd32), 17456(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17457"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1", 17458tc_c21d7447, TypeM>, Enc_a56825 { 17459let Inst{7-5} = 0b100; 17460let Inst{13-13} = 0b0; 17461let Inst{31-21} = 0b11101000110; 17462let prefersSlot3 = 1; 17463} 17464def M4_vrmpyoh_acc_s0 : HInst< 17465(outs DoubleRegs:$Rxx32), 17466(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17467"$Rxx32 += vrmpywoh($Rss32,$Rtt32)", 17468tc_7f8ae742, TypeM>, Enc_88c16c { 17469let Inst{7-5} = 0b110; 17470let Inst{13-13} = 0b0; 17471let Inst{31-21} = 0b11101010011; 17472let prefersSlot3 = 1; 17473let Constraints = "$Rxx32 = $Rxx32in"; 17474} 17475def M4_vrmpyoh_acc_s1 : HInst< 17476(outs DoubleRegs:$Rxx32), 17477(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17478"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1", 17479tc_7f8ae742, TypeM>, Enc_88c16c { 17480let Inst{7-5} = 0b110; 17481let Inst{13-13} = 0b0; 17482let Inst{31-21} = 0b11101010111; 17483let prefersSlot3 = 1; 17484let Constraints = "$Rxx32 = $Rxx32in"; 17485} 17486def M4_vrmpyoh_s0 : HInst< 17487(outs DoubleRegs:$Rdd32), 17488(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17489"$Rdd32 = vrmpywoh($Rss32,$Rtt32)", 17490tc_c21d7447, TypeM>, Enc_a56825 { 17491let Inst{7-5} = 0b010; 17492let Inst{13-13} = 0b0; 17493let Inst{31-21} = 0b11101000001; 17494let prefersSlot3 = 1; 17495} 17496def M4_vrmpyoh_s1 : HInst< 17497(outs DoubleRegs:$Rdd32), 17498(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17499"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1", 17500tc_c21d7447, TypeM>, Enc_a56825 { 17501let Inst{7-5} = 0b010; 17502let Inst{13-13} = 0b0; 17503let Inst{31-21} = 0b11101000101; 17504let prefersSlot3 = 1; 17505} 17506def M4_xor_and : HInst< 17507(outs IntRegs:$Rx32), 17508(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17509"$Rx32 ^= and($Rs32,$Rt32)", 17510tc_a4e22bbd, TypeM>, Enc_2ae154 { 17511let Inst{7-5} = 0b010; 17512let Inst{13-13} = 0b0; 17513let Inst{31-21} = 0b11101111110; 17514let hasNewValue = 1; 17515let opNewValue = 0; 17516let prefersSlot3 = 1; 17517let InputType = "reg"; 17518let Constraints = "$Rx32 = $Rx32in"; 17519} 17520def M4_xor_andn : HInst< 17521(outs IntRegs:$Rx32), 17522(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17523"$Rx32 ^= and($Rs32,~$Rt32)", 17524tc_a4e22bbd, TypeM>, Enc_2ae154 { 17525let Inst{7-5} = 0b010; 17526let Inst{13-13} = 0b0; 17527let Inst{31-21} = 0b11101111001; 17528let hasNewValue = 1; 17529let opNewValue = 0; 17530let prefersSlot3 = 1; 17531let InputType = "reg"; 17532let Constraints = "$Rx32 = $Rx32in"; 17533} 17534def M4_xor_or : HInst< 17535(outs IntRegs:$Rx32), 17536(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17537"$Rx32 ^= or($Rs32,$Rt32)", 17538tc_a4e22bbd, TypeM>, Enc_2ae154 { 17539let Inst{7-5} = 0b011; 17540let Inst{13-13} = 0b0; 17541let Inst{31-21} = 0b11101111110; 17542let hasNewValue = 1; 17543let opNewValue = 0; 17544let prefersSlot3 = 1; 17545let InputType = "reg"; 17546let Constraints = "$Rx32 = $Rx32in"; 17547} 17548def M4_xor_xacc : HInst< 17549(outs DoubleRegs:$Rxx32), 17550(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17551"$Rxx32 ^= xor($Rss32,$Rtt32)", 17552tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 17553let Inst{7-5} = 0b000; 17554let Inst{13-13} = 0b0; 17555let Inst{31-21} = 0b11001010100; 17556let prefersSlot3 = 1; 17557let Constraints = "$Rxx32 = $Rxx32in"; 17558} 17559def M5_vdmacbsu : HInst< 17560(outs DoubleRegs:$Rxx32), 17561(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17562"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat", 17563tc_7f8ae742, TypeM>, Enc_88c16c { 17564let Inst{7-5} = 0b001; 17565let Inst{13-13} = 0b0; 17566let Inst{31-21} = 0b11101010001; 17567let prefersSlot3 = 1; 17568let Defs = [USR_OVF]; 17569let Constraints = "$Rxx32 = $Rxx32in"; 17570} 17571def M5_vdmpybsu : HInst< 17572(outs DoubleRegs:$Rdd32), 17573(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17574"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat", 17575tc_c21d7447, TypeM>, Enc_a56825 { 17576let Inst{7-5} = 0b001; 17577let Inst{13-13} = 0b0; 17578let Inst{31-21} = 0b11101000101; 17579let prefersSlot3 = 1; 17580let Defs = [USR_OVF]; 17581} 17582def M5_vmacbsu : HInst< 17583(outs DoubleRegs:$Rxx32), 17584(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17585"$Rxx32 += vmpybsu($Rs32,$Rt32)", 17586tc_7f8ae742, TypeM>, Enc_61f0b0 { 17587let Inst{7-5} = 0b001; 17588let Inst{13-13} = 0b0; 17589let Inst{31-21} = 0b11100111110; 17590let prefersSlot3 = 1; 17591let Constraints = "$Rxx32 = $Rxx32in"; 17592} 17593def M5_vmacbuu : HInst< 17594(outs DoubleRegs:$Rxx32), 17595(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17596"$Rxx32 += vmpybu($Rs32,$Rt32)", 17597tc_7f8ae742, TypeM>, Enc_61f0b0 { 17598let Inst{7-5} = 0b001; 17599let Inst{13-13} = 0b0; 17600let Inst{31-21} = 0b11100111100; 17601let prefersSlot3 = 1; 17602let Constraints = "$Rxx32 = $Rxx32in"; 17603} 17604def M5_vmpybsu : HInst< 17605(outs DoubleRegs:$Rdd32), 17606(ins IntRegs:$Rs32, IntRegs:$Rt32), 17607"$Rdd32 = vmpybsu($Rs32,$Rt32)", 17608tc_c21d7447, TypeM>, Enc_be32a5 { 17609let Inst{7-5} = 0b001; 17610let Inst{13-13} = 0b0; 17611let Inst{31-21} = 0b11100101010; 17612let prefersSlot3 = 1; 17613} 17614def M5_vmpybuu : HInst< 17615(outs DoubleRegs:$Rdd32), 17616(ins IntRegs:$Rs32, IntRegs:$Rt32), 17617"$Rdd32 = vmpybu($Rs32,$Rt32)", 17618tc_c21d7447, TypeM>, Enc_be32a5 { 17619let Inst{7-5} = 0b001; 17620let Inst{13-13} = 0b0; 17621let Inst{31-21} = 0b11100101100; 17622let prefersSlot3 = 1; 17623} 17624def M5_vrmacbsu : HInst< 17625(outs DoubleRegs:$Rxx32), 17626(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17627"$Rxx32 += vrmpybsu($Rss32,$Rtt32)", 17628tc_7f8ae742, TypeM>, Enc_88c16c { 17629let Inst{7-5} = 0b001; 17630let Inst{13-13} = 0b0; 17631let Inst{31-21} = 0b11101010110; 17632let prefersSlot3 = 1; 17633let Constraints = "$Rxx32 = $Rxx32in"; 17634} 17635def M5_vrmacbuu : HInst< 17636(outs DoubleRegs:$Rxx32), 17637(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17638"$Rxx32 += vrmpybu($Rss32,$Rtt32)", 17639tc_7f8ae742, TypeM>, Enc_88c16c { 17640let Inst{7-5} = 0b001; 17641let Inst{13-13} = 0b0; 17642let Inst{31-21} = 0b11101010100; 17643let prefersSlot3 = 1; 17644let Constraints = "$Rxx32 = $Rxx32in"; 17645} 17646def M5_vrmpybsu : HInst< 17647(outs DoubleRegs:$Rdd32), 17648(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17649"$Rdd32 = vrmpybsu($Rss32,$Rtt32)", 17650tc_c21d7447, TypeM>, Enc_a56825 { 17651let Inst{7-5} = 0b001; 17652let Inst{13-13} = 0b0; 17653let Inst{31-21} = 0b11101000110; 17654let prefersSlot3 = 1; 17655} 17656def M5_vrmpybuu : HInst< 17657(outs DoubleRegs:$Rdd32), 17658(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17659"$Rdd32 = vrmpybu($Rss32,$Rtt32)", 17660tc_c21d7447, TypeM>, Enc_a56825 { 17661let Inst{7-5} = 0b001; 17662let Inst{13-13} = 0b0; 17663let Inst{31-21} = 0b11101000100; 17664let prefersSlot3 = 1; 17665} 17666def M6_vabsdiffb : HInst< 17667(outs DoubleRegs:$Rdd32), 17668(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17669"$Rdd32 = vabsdiffb($Rtt32,$Rss32)", 17670tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17671let Inst{7-5} = 0b000; 17672let Inst{13-13} = 0b0; 17673let Inst{31-21} = 0b11101000111; 17674let prefersSlot3 = 1; 17675} 17676def M6_vabsdiffub : HInst< 17677(outs DoubleRegs:$Rdd32), 17678(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17679"$Rdd32 = vabsdiffub($Rtt32,$Rss32)", 17680tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17681let Inst{7-5} = 0b000; 17682let Inst{13-13} = 0b0; 17683let Inst{31-21} = 0b11101000101; 17684let prefersSlot3 = 1; 17685} 17686def M7_dcmpyiw : HInst< 17687(outs DoubleRegs:$Rdd32), 17688(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17689"$Rdd32 = cmpyiw($Rss32,$Rtt32)", 17690tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17691let Inst{7-5} = 0b010; 17692let Inst{13-13} = 0b0; 17693let Inst{31-21} = 0b11101000011; 17694let prefersSlot3 = 1; 17695} 17696def M7_dcmpyiw_acc : HInst< 17697(outs DoubleRegs:$Rxx32), 17698(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17699"$Rxx32 += cmpyiw($Rss32,$Rtt32)", 17700tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17701let Inst{7-5} = 0b010; 17702let Inst{13-13} = 0b0; 17703let Inst{31-21} = 0b11101010011; 17704let prefersSlot3 = 1; 17705let Constraints = "$Rxx32 = $Rxx32in"; 17706} 17707def M7_dcmpyiwc : HInst< 17708(outs DoubleRegs:$Rdd32), 17709(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17710"$Rdd32 = cmpyiw($Rss32,$Rtt32*)", 17711tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17712let Inst{7-5} = 0b010; 17713let Inst{13-13} = 0b0; 17714let Inst{31-21} = 0b11101000111; 17715let prefersSlot3 = 1; 17716} 17717def M7_dcmpyiwc_acc : HInst< 17718(outs DoubleRegs:$Rxx32), 17719(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17720"$Rxx32 += cmpyiw($Rss32,$Rtt32*)", 17721tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17722let Inst{7-5} = 0b110; 17723let Inst{13-13} = 0b0; 17724let Inst{31-21} = 0b11101010010; 17725let prefersSlot3 = 1; 17726let Constraints = "$Rxx32 = $Rxx32in"; 17727} 17728def M7_dcmpyrw : HInst< 17729(outs DoubleRegs:$Rdd32), 17730(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17731"$Rdd32 = cmpyrw($Rss32,$Rtt32)", 17732tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17733let Inst{7-5} = 0b010; 17734let Inst{13-13} = 0b0; 17735let Inst{31-21} = 0b11101000100; 17736let prefersSlot3 = 1; 17737} 17738def M7_dcmpyrw_acc : HInst< 17739(outs DoubleRegs:$Rxx32), 17740(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17741"$Rxx32 += cmpyrw($Rss32,$Rtt32)", 17742tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17743let Inst{7-5} = 0b010; 17744let Inst{13-13} = 0b0; 17745let Inst{31-21} = 0b11101010100; 17746let prefersSlot3 = 1; 17747let Constraints = "$Rxx32 = $Rxx32in"; 17748} 17749def M7_dcmpyrwc : HInst< 17750(outs DoubleRegs:$Rdd32), 17751(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17752"$Rdd32 = cmpyrw($Rss32,$Rtt32*)", 17753tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17754let Inst{7-5} = 0b010; 17755let Inst{13-13} = 0b0; 17756let Inst{31-21} = 0b11101000110; 17757let prefersSlot3 = 1; 17758} 17759def M7_dcmpyrwc_acc : HInst< 17760(outs DoubleRegs:$Rxx32), 17761(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17762"$Rxx32 += cmpyrw($Rss32,$Rtt32*)", 17763tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17764let Inst{7-5} = 0b010; 17765let Inst{13-13} = 0b0; 17766let Inst{31-21} = 0b11101010110; 17767let prefersSlot3 = 1; 17768let Constraints = "$Rxx32 = $Rxx32in"; 17769} 17770def M7_vdmpy : HInst< 17771(outs DoubleRegs:$Rdd32), 17772(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17773"$Rdd32 = vdmpyw($Rss32,$Rtt32)", 17774tc_5a4b5e58, TypeM>, Requires<[HasV67]> { 17775let isPseudo = 1; 17776let isCodeGenOnly = 1; 17777} 17778def M7_vdmpy_acc : HInst< 17779(outs DoubleRegs:$Rxx32), 17780(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17781"$Rxx32 += vdmpyw($Rss32,$Rtt32)", 17782tc_197dce51, TypeM>, Requires<[HasV67]> { 17783let isPseudo = 1; 17784let isCodeGenOnly = 1; 17785let Constraints = "$Rxx32 = $Rxx32in"; 17786} 17787def M7_wcmpyiw : HInst< 17788(outs IntRegs:$Rd32), 17789(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17790"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat", 17791tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17792let Inst{7-5} = 0b000; 17793let Inst{13-13} = 0b0; 17794let Inst{31-21} = 0b11101001001; 17795let hasNewValue = 1; 17796let opNewValue = 0; 17797let prefersSlot3 = 1; 17798let Defs = [USR_OVF]; 17799} 17800def M7_wcmpyiw_rnd : HInst< 17801(outs IntRegs:$Rd32), 17802(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17803"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat", 17804tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17805let Inst{7-5} = 0b000; 17806let Inst{13-13} = 0b0; 17807let Inst{31-21} = 0b11101001101; 17808let hasNewValue = 1; 17809let opNewValue = 0; 17810let prefersSlot3 = 1; 17811let Defs = [USR_OVF]; 17812} 17813def M7_wcmpyiwc : HInst< 17814(outs IntRegs:$Rd32), 17815(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17816"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat", 17817tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17818let Inst{7-5} = 0b100; 17819let Inst{13-13} = 0b0; 17820let Inst{31-21} = 0b11101001000; 17821let hasNewValue = 1; 17822let opNewValue = 0; 17823let prefersSlot3 = 1; 17824let Defs = [USR_OVF]; 17825} 17826def M7_wcmpyiwc_rnd : HInst< 17827(outs IntRegs:$Rd32), 17828(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17829"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat", 17830tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17831let Inst{7-5} = 0b100; 17832let Inst{13-13} = 0b0; 17833let Inst{31-21} = 0b11101001100; 17834let hasNewValue = 1; 17835let opNewValue = 0; 17836let prefersSlot3 = 1; 17837let Defs = [USR_OVF]; 17838} 17839def M7_wcmpyrw : HInst< 17840(outs IntRegs:$Rd32), 17841(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17842"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat", 17843tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17844let Inst{7-5} = 0b000; 17845let Inst{13-13} = 0b0; 17846let Inst{31-21} = 0b11101001010; 17847let hasNewValue = 1; 17848let opNewValue = 0; 17849let prefersSlot3 = 1; 17850let Defs = [USR_OVF]; 17851} 17852def M7_wcmpyrw_rnd : HInst< 17853(outs IntRegs:$Rd32), 17854(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17855"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat", 17856tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17857let Inst{7-5} = 0b000; 17858let Inst{13-13} = 0b0; 17859let Inst{31-21} = 0b11101001110; 17860let hasNewValue = 1; 17861let opNewValue = 0; 17862let prefersSlot3 = 1; 17863let Defs = [USR_OVF]; 17864} 17865def M7_wcmpyrwc : HInst< 17866(outs IntRegs:$Rd32), 17867(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17868"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat", 17869tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17870let Inst{7-5} = 0b000; 17871let Inst{13-13} = 0b0; 17872let Inst{31-21} = 0b11101001011; 17873let hasNewValue = 1; 17874let opNewValue = 0; 17875let prefersSlot3 = 1; 17876let Defs = [USR_OVF]; 17877} 17878def M7_wcmpyrwc_rnd : HInst< 17879(outs IntRegs:$Rd32), 17880(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17881"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat", 17882tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17883let Inst{7-5} = 0b000; 17884let Inst{13-13} = 0b0; 17885let Inst{31-21} = 0b11101001111; 17886let hasNewValue = 1; 17887let opNewValue = 0; 17888let prefersSlot3 = 1; 17889let Defs = [USR_OVF]; 17890} 17891def PS_loadrbabs : HInst< 17892(outs IntRegs:$Rd32), 17893(ins u32_0Imm:$Ii), 17894"$Rd32 = memb(#$Ii)", 17895tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17896let Inst{24-21} = 0b1000; 17897let Inst{31-27} = 0b01001; 17898let hasNewValue = 1; 17899let opNewValue = 0; 17900let addrMode = Absolute; 17901let accessSize = ByteAccess; 17902let mayLoad = 1; 17903let isExtended = 1; 17904let BaseOpcode = "L4_loadrb_abs"; 17905let CextOpcode = "L2_loadrb"; 17906let isPredicable = 1; 17907let DecoderNamespace = "MustExtend"; 17908let isExtended = 1; 17909let opExtendable = 1; 17910let isExtentSigned = 0; 17911let opExtentBits = 16; 17912let opExtentAlign = 0; 17913} 17914def PS_loadrdabs : HInst< 17915(outs DoubleRegs:$Rdd32), 17916(ins u29_3Imm:$Ii), 17917"$Rdd32 = memd(#$Ii)", 17918tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel { 17919let Inst{24-21} = 0b1110; 17920let Inst{31-27} = 0b01001; 17921let addrMode = Absolute; 17922let accessSize = DoubleWordAccess; 17923let mayLoad = 1; 17924let isExtended = 1; 17925let BaseOpcode = "L4_loadrd_abs"; 17926let CextOpcode = "L2_loadrd"; 17927let isPredicable = 1; 17928let DecoderNamespace = "MustExtend"; 17929let isExtended = 1; 17930let opExtendable = 1; 17931let isExtentSigned = 0; 17932let opExtentBits = 19; 17933let opExtentAlign = 3; 17934} 17935def PS_loadrhabs : HInst< 17936(outs IntRegs:$Rd32), 17937(ins u31_1Imm:$Ii), 17938"$Rd32 = memh(#$Ii)", 17939tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 17940let Inst{24-21} = 0b1010; 17941let Inst{31-27} = 0b01001; 17942let hasNewValue = 1; 17943let opNewValue = 0; 17944let addrMode = Absolute; 17945let accessSize = HalfWordAccess; 17946let mayLoad = 1; 17947let isExtended = 1; 17948let BaseOpcode = "L4_loadrh_abs"; 17949let CextOpcode = "L2_loadrh"; 17950let isPredicable = 1; 17951let DecoderNamespace = "MustExtend"; 17952let isExtended = 1; 17953let opExtendable = 1; 17954let isExtentSigned = 0; 17955let opExtentBits = 17; 17956let opExtentAlign = 1; 17957} 17958def PS_loadriabs : HInst< 17959(outs IntRegs:$Rd32), 17960(ins u30_2Imm:$Ii), 17961"$Rd32 = memw(#$Ii)", 17962tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 17963let Inst{24-21} = 0b1100; 17964let Inst{31-27} = 0b01001; 17965let hasNewValue = 1; 17966let opNewValue = 0; 17967let addrMode = Absolute; 17968let accessSize = WordAccess; 17969let mayLoad = 1; 17970let isExtended = 1; 17971let BaseOpcode = "L4_loadri_abs"; 17972let CextOpcode = "L2_loadri"; 17973let isPredicable = 1; 17974let DecoderNamespace = "MustExtend"; 17975let isExtended = 1; 17976let opExtendable = 1; 17977let isExtentSigned = 0; 17978let opExtentBits = 18; 17979let opExtentAlign = 2; 17980} 17981def PS_loadrubabs : HInst< 17982(outs IntRegs:$Rd32), 17983(ins u32_0Imm:$Ii), 17984"$Rd32 = memub(#$Ii)", 17985tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17986let Inst{24-21} = 0b1001; 17987let Inst{31-27} = 0b01001; 17988let hasNewValue = 1; 17989let opNewValue = 0; 17990let addrMode = Absolute; 17991let accessSize = ByteAccess; 17992let mayLoad = 1; 17993let isExtended = 1; 17994let BaseOpcode = "L4_loadrub_abs"; 17995let CextOpcode = "L2_loadrub"; 17996let isPredicable = 1; 17997let DecoderNamespace = "MustExtend"; 17998let isExtended = 1; 17999let opExtendable = 1; 18000let isExtentSigned = 0; 18001let opExtentBits = 16; 18002let opExtentAlign = 0; 18003} 18004def PS_loadruhabs : HInst< 18005(outs IntRegs:$Rd32), 18006(ins u31_1Imm:$Ii), 18007"$Rd32 = memuh(#$Ii)", 18008tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 18009let Inst{24-21} = 0b1011; 18010let Inst{31-27} = 0b01001; 18011let hasNewValue = 1; 18012let opNewValue = 0; 18013let addrMode = Absolute; 18014let accessSize = HalfWordAccess; 18015let mayLoad = 1; 18016let isExtended = 1; 18017let BaseOpcode = "L4_loadruh_abs"; 18018let CextOpcode = "L2_loadruh"; 18019let isPredicable = 1; 18020let DecoderNamespace = "MustExtend"; 18021let isExtended = 1; 18022let opExtendable = 1; 18023let isExtentSigned = 0; 18024let opExtentBits = 17; 18025let opExtentAlign = 1; 18026} 18027def PS_storerbabs : HInst< 18028(outs), 18029(ins u32_0Imm:$Ii, IntRegs:$Rt32), 18030"memb(#$Ii) = $Rt32", 18031tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 18032let Inst{24-21} = 0b0000; 18033let Inst{31-27} = 0b01001; 18034let addrMode = Absolute; 18035let accessSize = ByteAccess; 18036let isExtended = 1; 18037let mayStore = 1; 18038let BaseOpcode = "S2_storerbabs"; 18039let CextOpcode = "S2_storerb"; 18040let isNVStorable = 1; 18041let isPredicable = 1; 18042let DecoderNamespace = "MustExtend"; 18043let isExtended = 1; 18044let opExtendable = 0; 18045let isExtentSigned = 0; 18046let opExtentBits = 16; 18047let opExtentAlign = 0; 18048} 18049def PS_storerbnewabs : HInst< 18050(outs), 18051(ins u32_0Imm:$Ii, IntRegs:$Nt8), 18052"memb(#$Ii) = $Nt8.new", 18053tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 18054let Inst{12-11} = 0b00; 18055let Inst{24-21} = 0b0101; 18056let Inst{31-27} = 0b01001; 18057let addrMode = Absolute; 18058let accessSize = ByteAccess; 18059let isNVStore = 1; 18060let isNewValue = 1; 18061let isExtended = 1; 18062let isRestrictNoSlot1Store = 1; 18063let mayStore = 1; 18064let BaseOpcode = "S2_storerbabs"; 18065let CextOpcode = "S2_storerb"; 18066let isPredicable = 1; 18067let DecoderNamespace = "MustExtend"; 18068let isExtended = 1; 18069let opExtendable = 0; 18070let isExtentSigned = 0; 18071let opExtentBits = 16; 18072let opExtentAlign = 0; 18073let opNewValue = 1; 18074} 18075def PS_storerdabs : HInst< 18076(outs), 18077(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 18078"memd(#$Ii) = $Rtt32", 18079tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 18080let Inst{24-21} = 0b0110; 18081let Inst{31-27} = 0b01001; 18082let addrMode = Absolute; 18083let accessSize = DoubleWordAccess; 18084let isExtended = 1; 18085let mayStore = 1; 18086let BaseOpcode = "S2_storerdabs"; 18087let CextOpcode = "S2_storerd"; 18088let isPredicable = 1; 18089let DecoderNamespace = "MustExtend"; 18090let isExtended = 1; 18091let opExtendable = 0; 18092let isExtentSigned = 0; 18093let opExtentBits = 19; 18094let opExtentAlign = 3; 18095} 18096def PS_storerfabs : HInst< 18097(outs), 18098(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18099"memh(#$Ii) = $Rt32.h", 18100tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18101let Inst{24-21} = 0b0011; 18102let Inst{31-27} = 0b01001; 18103let addrMode = Absolute; 18104let accessSize = HalfWordAccess; 18105let isExtended = 1; 18106let mayStore = 1; 18107let BaseOpcode = "S2_storerfabs"; 18108let CextOpcode = "S2_storerf"; 18109let isPredicable = 1; 18110let DecoderNamespace = "MustExtend"; 18111let isExtended = 1; 18112let opExtendable = 0; 18113let isExtentSigned = 0; 18114let opExtentBits = 17; 18115let opExtentAlign = 1; 18116} 18117def PS_storerhabs : HInst< 18118(outs), 18119(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18120"memh(#$Ii) = $Rt32", 18121tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18122let Inst{24-21} = 0b0010; 18123let Inst{31-27} = 0b01001; 18124let addrMode = Absolute; 18125let accessSize = HalfWordAccess; 18126let isExtended = 1; 18127let mayStore = 1; 18128let BaseOpcode = "S2_storerhabs"; 18129let CextOpcode = "S2_storerh"; 18130let isNVStorable = 1; 18131let isPredicable = 1; 18132let DecoderNamespace = "MustExtend"; 18133let isExtended = 1; 18134let opExtendable = 0; 18135let isExtentSigned = 0; 18136let opExtentBits = 17; 18137let opExtentAlign = 1; 18138} 18139def PS_storerhnewabs : HInst< 18140(outs), 18141(ins u31_1Imm:$Ii, IntRegs:$Nt8), 18142"memh(#$Ii) = $Nt8.new", 18143tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 18144let Inst{12-11} = 0b01; 18145let Inst{24-21} = 0b0101; 18146let Inst{31-27} = 0b01001; 18147let addrMode = Absolute; 18148let accessSize = HalfWordAccess; 18149let isNVStore = 1; 18150let isNewValue = 1; 18151let isExtended = 1; 18152let isRestrictNoSlot1Store = 1; 18153let mayStore = 1; 18154let BaseOpcode = "S2_storerhabs"; 18155let CextOpcode = "S2_storerh"; 18156let isPredicable = 1; 18157let DecoderNamespace = "MustExtend"; 18158let isExtended = 1; 18159let opExtendable = 0; 18160let isExtentSigned = 0; 18161let opExtentBits = 17; 18162let opExtentAlign = 1; 18163let opNewValue = 1; 18164} 18165def PS_storeriabs : HInst< 18166(outs), 18167(ins u30_2Imm:$Ii, IntRegs:$Rt32), 18168"memw(#$Ii) = $Rt32", 18169tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 18170let Inst{24-21} = 0b0100; 18171let Inst{31-27} = 0b01001; 18172let addrMode = Absolute; 18173let accessSize = WordAccess; 18174let isExtended = 1; 18175let mayStore = 1; 18176let BaseOpcode = "S2_storeriabs"; 18177let CextOpcode = "S2_storeri"; 18178let isNVStorable = 1; 18179let isPredicable = 1; 18180let DecoderNamespace = "MustExtend"; 18181let isExtended = 1; 18182let opExtendable = 0; 18183let isExtentSigned = 0; 18184let opExtentBits = 18; 18185let opExtentAlign = 2; 18186} 18187def PS_storerinewabs : HInst< 18188(outs), 18189(ins u30_2Imm:$Ii, IntRegs:$Nt8), 18190"memw(#$Ii) = $Nt8.new", 18191tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 18192let Inst{12-11} = 0b10; 18193let Inst{24-21} = 0b0101; 18194let Inst{31-27} = 0b01001; 18195let addrMode = Absolute; 18196let accessSize = WordAccess; 18197let isNVStore = 1; 18198let isNewValue = 1; 18199let isExtended = 1; 18200let isRestrictNoSlot1Store = 1; 18201let mayStore = 1; 18202let BaseOpcode = "S2_storeriabs"; 18203let CextOpcode = "S2_storeri"; 18204let isPredicable = 1; 18205let DecoderNamespace = "MustExtend"; 18206let isExtended = 1; 18207let opExtendable = 0; 18208let isExtentSigned = 0; 18209let opExtentBits = 18; 18210let opExtentAlign = 2; 18211let opNewValue = 1; 18212} 18213def PS_trap1 : HInst< 18214(outs), 18215(ins u8_0Imm:$Ii), 18216"trap1(#$Ii)", 18217tc_53c851ab, TypeJ>, Enc_a51a9a, Requires<[HasPreV65]> { 18218let Inst{1-0} = 0b00; 18219let Inst{7-5} = 0b000; 18220let Inst{13-13} = 0b0; 18221let Inst{31-16} = 0b0101010010000000; 18222} 18223def R6_release_at_vi : HInst< 18224(outs), 18225(ins IntRegs:$Rs32), 18226"release($Rs32):at", 18227tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 18228let Inst{7-2} = 0b000011; 18229let Inst{13-13} = 0b0; 18230let Inst{31-21} = 0b10100000111; 18231let isSolo = 1; 18232let mayStore = 1; 18233} 18234def R6_release_st_vi : HInst< 18235(outs), 18236(ins IntRegs:$Rs32), 18237"release($Rs32):st", 18238tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 18239let Inst{7-2} = 0b001011; 18240let Inst{13-13} = 0b0; 18241let Inst{31-21} = 0b10100000111; 18242let isSolo = 1; 18243let mayStore = 1; 18244} 18245def S2_addasl_rrri : HInst< 18246(outs IntRegs:$Rd32), 18247(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii), 18248"$Rd32 = addasl($Rt32,$Rs32,#$Ii)", 18249tc_2c13e7f5, TypeS_3op>, Enc_47ef61 { 18250let Inst{13-13} = 0b0; 18251let Inst{31-21} = 0b11000100000; 18252let hasNewValue = 1; 18253let opNewValue = 0; 18254let prefersSlot3 = 1; 18255} 18256def S2_allocframe : HInst< 18257(outs IntRegs:$Rx32), 18258(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 18259"allocframe($Rx32,#$Ii):raw", 18260tc_934753bb, TypeST>, Enc_22c845 { 18261let Inst{13-11} = 0b000; 18262let Inst{31-21} = 0b10100000100; 18263let hasNewValue = 1; 18264let opNewValue = 0; 18265let addrMode = BaseImmOffset; 18266let accessSize = DoubleWordAccess; 18267let mayStore = 1; 18268let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 18269let Defs = [R30]; 18270let Constraints = "$Rx32 = $Rx32in"; 18271} 18272def S2_asl_i_p : HInst< 18273(outs DoubleRegs:$Rdd32), 18274(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18275"$Rdd32 = asl($Rss32,#$Ii)", 18276tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18277let Inst{7-5} = 0b010; 18278let Inst{31-21} = 0b10000000000; 18279} 18280def S2_asl_i_p_acc : HInst< 18281(outs DoubleRegs:$Rxx32), 18282(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18283"$Rxx32 += asl($Rss32,#$Ii)", 18284tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18285let Inst{7-5} = 0b110; 18286let Inst{31-21} = 0b10000010000; 18287let prefersSlot3 = 1; 18288let Constraints = "$Rxx32 = $Rxx32in"; 18289} 18290def S2_asl_i_p_and : HInst< 18291(outs DoubleRegs:$Rxx32), 18292(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18293"$Rxx32 &= asl($Rss32,#$Ii)", 18294tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18295let Inst{7-5} = 0b010; 18296let Inst{31-21} = 0b10000010010; 18297let prefersSlot3 = 1; 18298let Constraints = "$Rxx32 = $Rxx32in"; 18299} 18300def S2_asl_i_p_nac : HInst< 18301(outs DoubleRegs:$Rxx32), 18302(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18303"$Rxx32 -= asl($Rss32,#$Ii)", 18304tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18305let Inst{7-5} = 0b010; 18306let Inst{31-21} = 0b10000010000; 18307let prefersSlot3 = 1; 18308let Constraints = "$Rxx32 = $Rxx32in"; 18309} 18310def S2_asl_i_p_or : HInst< 18311(outs DoubleRegs:$Rxx32), 18312(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18313"$Rxx32 |= asl($Rss32,#$Ii)", 18314tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18315let Inst{7-5} = 0b110; 18316let Inst{31-21} = 0b10000010010; 18317let prefersSlot3 = 1; 18318let Constraints = "$Rxx32 = $Rxx32in"; 18319} 18320def S2_asl_i_p_xacc : HInst< 18321(outs DoubleRegs:$Rxx32), 18322(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18323"$Rxx32 ^= asl($Rss32,#$Ii)", 18324tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18325let Inst{7-5} = 0b010; 18326let Inst{31-21} = 0b10000010100; 18327let prefersSlot3 = 1; 18328let Constraints = "$Rxx32 = $Rxx32in"; 18329} 18330def S2_asl_i_r : HInst< 18331(outs IntRegs:$Rd32), 18332(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18333"$Rd32 = asl($Rs32,#$Ii)", 18334tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18335let Inst{7-5} = 0b010; 18336let Inst{13-13} = 0b0; 18337let Inst{31-21} = 0b10001100000; 18338let hasNewValue = 1; 18339let opNewValue = 0; 18340} 18341def S2_asl_i_r_acc : HInst< 18342(outs IntRegs:$Rx32), 18343(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18344"$Rx32 += asl($Rs32,#$Ii)", 18345tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18346let Inst{7-5} = 0b110; 18347let Inst{13-13} = 0b0; 18348let Inst{31-21} = 0b10001110000; 18349let hasNewValue = 1; 18350let opNewValue = 0; 18351let prefersSlot3 = 1; 18352let Constraints = "$Rx32 = $Rx32in"; 18353} 18354def S2_asl_i_r_and : HInst< 18355(outs IntRegs:$Rx32), 18356(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18357"$Rx32 &= asl($Rs32,#$Ii)", 18358tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18359let Inst{7-5} = 0b010; 18360let Inst{13-13} = 0b0; 18361let Inst{31-21} = 0b10001110010; 18362let hasNewValue = 1; 18363let opNewValue = 0; 18364let prefersSlot3 = 1; 18365let Constraints = "$Rx32 = $Rx32in"; 18366} 18367def S2_asl_i_r_nac : HInst< 18368(outs IntRegs:$Rx32), 18369(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18370"$Rx32 -= asl($Rs32,#$Ii)", 18371tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18372let Inst{7-5} = 0b010; 18373let Inst{13-13} = 0b0; 18374let Inst{31-21} = 0b10001110000; 18375let hasNewValue = 1; 18376let opNewValue = 0; 18377let prefersSlot3 = 1; 18378let Constraints = "$Rx32 = $Rx32in"; 18379} 18380def S2_asl_i_r_or : HInst< 18381(outs IntRegs:$Rx32), 18382(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18383"$Rx32 |= asl($Rs32,#$Ii)", 18384tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18385let Inst{7-5} = 0b110; 18386let Inst{13-13} = 0b0; 18387let Inst{31-21} = 0b10001110010; 18388let hasNewValue = 1; 18389let opNewValue = 0; 18390let prefersSlot3 = 1; 18391let Constraints = "$Rx32 = $Rx32in"; 18392} 18393def S2_asl_i_r_sat : HInst< 18394(outs IntRegs:$Rd32), 18395(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18396"$Rd32 = asl($Rs32,#$Ii):sat", 18397tc_8a825db2, TypeS_2op>, Enc_a05677 { 18398let Inst{7-5} = 0b010; 18399let Inst{13-13} = 0b0; 18400let Inst{31-21} = 0b10001100010; 18401let hasNewValue = 1; 18402let opNewValue = 0; 18403let prefersSlot3 = 1; 18404let Defs = [USR_OVF]; 18405} 18406def S2_asl_i_r_xacc : HInst< 18407(outs IntRegs:$Rx32), 18408(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18409"$Rx32 ^= asl($Rs32,#$Ii)", 18410tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18411let Inst{7-5} = 0b010; 18412let Inst{13-13} = 0b0; 18413let Inst{31-21} = 0b10001110100; 18414let hasNewValue = 1; 18415let opNewValue = 0; 18416let prefersSlot3 = 1; 18417let Constraints = "$Rx32 = $Rx32in"; 18418} 18419def S2_asl_i_vh : HInst< 18420(outs DoubleRegs:$Rdd32), 18421(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18422"$Rdd32 = vaslh($Rss32,#$Ii)", 18423tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18424let Inst{7-5} = 0b010; 18425let Inst{13-12} = 0b00; 18426let Inst{31-21} = 0b10000000100; 18427} 18428def S2_asl_i_vw : HInst< 18429(outs DoubleRegs:$Rdd32), 18430(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18431"$Rdd32 = vaslw($Rss32,#$Ii)", 18432tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18433let Inst{7-5} = 0b010; 18434let Inst{13-13} = 0b0; 18435let Inst{31-21} = 0b10000000010; 18436} 18437def S2_asl_r_p : HInst< 18438(outs DoubleRegs:$Rdd32), 18439(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18440"$Rdd32 = asl($Rss32,$Rt32)", 18441tc_5da50c4b, TypeS_3op>, Enc_927852 { 18442let Inst{7-5} = 0b100; 18443let Inst{13-13} = 0b0; 18444let Inst{31-21} = 0b11000011100; 18445} 18446def S2_asl_r_p_acc : HInst< 18447(outs DoubleRegs:$Rxx32), 18448(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18449"$Rxx32 += asl($Rss32,$Rt32)", 18450tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18451let Inst{7-5} = 0b100; 18452let Inst{13-13} = 0b0; 18453let Inst{31-21} = 0b11001011110; 18454let prefersSlot3 = 1; 18455let Constraints = "$Rxx32 = $Rxx32in"; 18456} 18457def S2_asl_r_p_and : HInst< 18458(outs DoubleRegs:$Rxx32), 18459(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18460"$Rxx32 &= asl($Rss32,$Rt32)", 18461tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18462let Inst{7-5} = 0b100; 18463let Inst{13-13} = 0b0; 18464let Inst{31-21} = 0b11001011010; 18465let prefersSlot3 = 1; 18466let Constraints = "$Rxx32 = $Rxx32in"; 18467} 18468def S2_asl_r_p_nac : HInst< 18469(outs DoubleRegs:$Rxx32), 18470(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18471"$Rxx32 -= asl($Rss32,$Rt32)", 18472tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18473let Inst{7-5} = 0b100; 18474let Inst{13-13} = 0b0; 18475let Inst{31-21} = 0b11001011100; 18476let prefersSlot3 = 1; 18477let Constraints = "$Rxx32 = $Rxx32in"; 18478} 18479def S2_asl_r_p_or : HInst< 18480(outs DoubleRegs:$Rxx32), 18481(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18482"$Rxx32 |= asl($Rss32,$Rt32)", 18483tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18484let Inst{7-5} = 0b100; 18485let Inst{13-13} = 0b0; 18486let Inst{31-21} = 0b11001011000; 18487let prefersSlot3 = 1; 18488let Constraints = "$Rxx32 = $Rxx32in"; 18489} 18490def S2_asl_r_p_xor : HInst< 18491(outs DoubleRegs:$Rxx32), 18492(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18493"$Rxx32 ^= asl($Rss32,$Rt32)", 18494tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18495let Inst{7-5} = 0b100; 18496let Inst{13-13} = 0b0; 18497let Inst{31-21} = 0b11001011011; 18498let prefersSlot3 = 1; 18499let Constraints = "$Rxx32 = $Rxx32in"; 18500} 18501def S2_asl_r_r : HInst< 18502(outs IntRegs:$Rd32), 18503(ins IntRegs:$Rs32, IntRegs:$Rt32), 18504"$Rd32 = asl($Rs32,$Rt32)", 18505tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18506let Inst{7-5} = 0b100; 18507let Inst{13-13} = 0b0; 18508let Inst{31-21} = 0b11000110010; 18509let hasNewValue = 1; 18510let opNewValue = 0; 18511} 18512def S2_asl_r_r_acc : HInst< 18513(outs IntRegs:$Rx32), 18514(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18515"$Rx32 += asl($Rs32,$Rt32)", 18516tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18517let Inst{7-5} = 0b100; 18518let Inst{13-13} = 0b0; 18519let Inst{31-21} = 0b11001100110; 18520let hasNewValue = 1; 18521let opNewValue = 0; 18522let prefersSlot3 = 1; 18523let Constraints = "$Rx32 = $Rx32in"; 18524} 18525def S2_asl_r_r_and : HInst< 18526(outs IntRegs:$Rx32), 18527(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18528"$Rx32 &= asl($Rs32,$Rt32)", 18529tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18530let Inst{7-5} = 0b100; 18531let Inst{13-13} = 0b0; 18532let Inst{31-21} = 0b11001100010; 18533let hasNewValue = 1; 18534let opNewValue = 0; 18535let prefersSlot3 = 1; 18536let Constraints = "$Rx32 = $Rx32in"; 18537} 18538def S2_asl_r_r_nac : HInst< 18539(outs IntRegs:$Rx32), 18540(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18541"$Rx32 -= asl($Rs32,$Rt32)", 18542tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18543let Inst{7-5} = 0b100; 18544let Inst{13-13} = 0b0; 18545let Inst{31-21} = 0b11001100100; 18546let hasNewValue = 1; 18547let opNewValue = 0; 18548let prefersSlot3 = 1; 18549let Constraints = "$Rx32 = $Rx32in"; 18550} 18551def S2_asl_r_r_or : HInst< 18552(outs IntRegs:$Rx32), 18553(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18554"$Rx32 |= asl($Rs32,$Rt32)", 18555tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18556let Inst{7-5} = 0b100; 18557let Inst{13-13} = 0b0; 18558let Inst{31-21} = 0b11001100000; 18559let hasNewValue = 1; 18560let opNewValue = 0; 18561let prefersSlot3 = 1; 18562let Constraints = "$Rx32 = $Rx32in"; 18563} 18564def S2_asl_r_r_sat : HInst< 18565(outs IntRegs:$Rd32), 18566(ins IntRegs:$Rs32, IntRegs:$Rt32), 18567"$Rd32 = asl($Rs32,$Rt32):sat", 18568tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18569let Inst{7-5} = 0b100; 18570let Inst{13-13} = 0b0; 18571let Inst{31-21} = 0b11000110000; 18572let hasNewValue = 1; 18573let opNewValue = 0; 18574let prefersSlot3 = 1; 18575let Defs = [USR_OVF]; 18576} 18577def S2_asl_r_vh : HInst< 18578(outs DoubleRegs:$Rdd32), 18579(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18580"$Rdd32 = vaslh($Rss32,$Rt32)", 18581tc_5da50c4b, TypeS_3op>, Enc_927852 { 18582let Inst{7-5} = 0b100; 18583let Inst{13-13} = 0b0; 18584let Inst{31-21} = 0b11000011010; 18585} 18586def S2_asl_r_vw : HInst< 18587(outs DoubleRegs:$Rdd32), 18588(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18589"$Rdd32 = vaslw($Rss32,$Rt32)", 18590tc_5da50c4b, TypeS_3op>, Enc_927852 { 18591let Inst{7-5} = 0b100; 18592let Inst{13-13} = 0b0; 18593let Inst{31-21} = 0b11000011000; 18594} 18595def S2_asr_i_p : HInst< 18596(outs DoubleRegs:$Rdd32), 18597(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18598"$Rdd32 = asr($Rss32,#$Ii)", 18599tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18600let Inst{7-5} = 0b000; 18601let Inst{31-21} = 0b10000000000; 18602} 18603def S2_asr_i_p_acc : HInst< 18604(outs DoubleRegs:$Rxx32), 18605(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18606"$Rxx32 += asr($Rss32,#$Ii)", 18607tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18608let Inst{7-5} = 0b100; 18609let Inst{31-21} = 0b10000010000; 18610let prefersSlot3 = 1; 18611let Constraints = "$Rxx32 = $Rxx32in"; 18612} 18613def S2_asr_i_p_and : HInst< 18614(outs DoubleRegs:$Rxx32), 18615(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18616"$Rxx32 &= asr($Rss32,#$Ii)", 18617tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18618let Inst{7-5} = 0b000; 18619let Inst{31-21} = 0b10000010010; 18620let prefersSlot3 = 1; 18621let Constraints = "$Rxx32 = $Rxx32in"; 18622} 18623def S2_asr_i_p_nac : HInst< 18624(outs DoubleRegs:$Rxx32), 18625(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18626"$Rxx32 -= asr($Rss32,#$Ii)", 18627tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18628let Inst{7-5} = 0b000; 18629let Inst{31-21} = 0b10000010000; 18630let prefersSlot3 = 1; 18631let Constraints = "$Rxx32 = $Rxx32in"; 18632} 18633def S2_asr_i_p_or : HInst< 18634(outs DoubleRegs:$Rxx32), 18635(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18636"$Rxx32 |= asr($Rss32,#$Ii)", 18637tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18638let Inst{7-5} = 0b100; 18639let Inst{31-21} = 0b10000010010; 18640let prefersSlot3 = 1; 18641let Constraints = "$Rxx32 = $Rxx32in"; 18642} 18643def S2_asr_i_p_rnd : HInst< 18644(outs DoubleRegs:$Rdd32), 18645(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18646"$Rdd32 = asr($Rss32,#$Ii):rnd", 18647tc_0dfac0a7, TypeS_2op>, Enc_5eac98 { 18648let Inst{7-5} = 0b111; 18649let Inst{31-21} = 0b10000000110; 18650let prefersSlot3 = 1; 18651} 18652def S2_asr_i_p_rnd_goodsyntax : HInst< 18653(outs DoubleRegs:$Rdd32), 18654(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18655"$Rdd32 = asrrnd($Rss32,#$Ii)", 18656tc_0dfac0a7, TypeS_2op> { 18657let isPseudo = 1; 18658} 18659def S2_asr_i_r : HInst< 18660(outs IntRegs:$Rd32), 18661(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18662"$Rd32 = asr($Rs32,#$Ii)", 18663tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18664let Inst{7-5} = 0b000; 18665let Inst{13-13} = 0b0; 18666let Inst{31-21} = 0b10001100000; 18667let hasNewValue = 1; 18668let opNewValue = 0; 18669} 18670def S2_asr_i_r_acc : HInst< 18671(outs IntRegs:$Rx32), 18672(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18673"$Rx32 += asr($Rs32,#$Ii)", 18674tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18675let Inst{7-5} = 0b100; 18676let Inst{13-13} = 0b0; 18677let Inst{31-21} = 0b10001110000; 18678let hasNewValue = 1; 18679let opNewValue = 0; 18680let prefersSlot3 = 1; 18681let Constraints = "$Rx32 = $Rx32in"; 18682} 18683def S2_asr_i_r_and : HInst< 18684(outs IntRegs:$Rx32), 18685(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18686"$Rx32 &= asr($Rs32,#$Ii)", 18687tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18688let Inst{7-5} = 0b000; 18689let Inst{13-13} = 0b0; 18690let Inst{31-21} = 0b10001110010; 18691let hasNewValue = 1; 18692let opNewValue = 0; 18693let prefersSlot3 = 1; 18694let Constraints = "$Rx32 = $Rx32in"; 18695} 18696def S2_asr_i_r_nac : HInst< 18697(outs IntRegs:$Rx32), 18698(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18699"$Rx32 -= asr($Rs32,#$Ii)", 18700tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18701let Inst{7-5} = 0b000; 18702let Inst{13-13} = 0b0; 18703let Inst{31-21} = 0b10001110000; 18704let hasNewValue = 1; 18705let opNewValue = 0; 18706let prefersSlot3 = 1; 18707let Constraints = "$Rx32 = $Rx32in"; 18708} 18709def S2_asr_i_r_or : HInst< 18710(outs IntRegs:$Rx32), 18711(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18712"$Rx32 |= asr($Rs32,#$Ii)", 18713tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18714let Inst{7-5} = 0b100; 18715let Inst{13-13} = 0b0; 18716let Inst{31-21} = 0b10001110010; 18717let hasNewValue = 1; 18718let opNewValue = 0; 18719let prefersSlot3 = 1; 18720let Constraints = "$Rx32 = $Rx32in"; 18721} 18722def S2_asr_i_r_rnd : HInst< 18723(outs IntRegs:$Rd32), 18724(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18725"$Rd32 = asr($Rs32,#$Ii):rnd", 18726tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 18727let Inst{7-5} = 0b000; 18728let Inst{13-13} = 0b0; 18729let Inst{31-21} = 0b10001100010; 18730let hasNewValue = 1; 18731let opNewValue = 0; 18732let prefersSlot3 = 1; 18733} 18734def S2_asr_i_r_rnd_goodsyntax : HInst< 18735(outs IntRegs:$Rd32), 18736(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18737"$Rd32 = asrrnd($Rs32,#$Ii)", 18738tc_0dfac0a7, TypeS_2op> { 18739let hasNewValue = 1; 18740let opNewValue = 0; 18741let isPseudo = 1; 18742} 18743def S2_asr_i_svw_trun : HInst< 18744(outs IntRegs:$Rd32), 18745(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18746"$Rd32 = vasrw($Rss32,#$Ii)", 18747tc_f34c1c21, TypeS_2op>, Enc_8dec2e { 18748let Inst{7-5} = 0b010; 18749let Inst{13-13} = 0b0; 18750let Inst{31-21} = 0b10001000110; 18751let hasNewValue = 1; 18752let opNewValue = 0; 18753let prefersSlot3 = 1; 18754} 18755def S2_asr_i_vh : HInst< 18756(outs DoubleRegs:$Rdd32), 18757(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18758"$Rdd32 = vasrh($Rss32,#$Ii)", 18759tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18760let Inst{7-5} = 0b000; 18761let Inst{13-12} = 0b00; 18762let Inst{31-21} = 0b10000000100; 18763} 18764def S2_asr_i_vw : HInst< 18765(outs DoubleRegs:$Rdd32), 18766(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18767"$Rdd32 = vasrw($Rss32,#$Ii)", 18768tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18769let Inst{7-5} = 0b000; 18770let Inst{13-13} = 0b0; 18771let Inst{31-21} = 0b10000000010; 18772} 18773def S2_asr_r_p : HInst< 18774(outs DoubleRegs:$Rdd32), 18775(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18776"$Rdd32 = asr($Rss32,$Rt32)", 18777tc_5da50c4b, TypeS_3op>, Enc_927852 { 18778let Inst{7-5} = 0b000; 18779let Inst{13-13} = 0b0; 18780let Inst{31-21} = 0b11000011100; 18781} 18782def S2_asr_r_p_acc : HInst< 18783(outs DoubleRegs:$Rxx32), 18784(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18785"$Rxx32 += asr($Rss32,$Rt32)", 18786tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18787let Inst{7-5} = 0b000; 18788let Inst{13-13} = 0b0; 18789let Inst{31-21} = 0b11001011110; 18790let prefersSlot3 = 1; 18791let Constraints = "$Rxx32 = $Rxx32in"; 18792} 18793def S2_asr_r_p_and : HInst< 18794(outs DoubleRegs:$Rxx32), 18795(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18796"$Rxx32 &= asr($Rss32,$Rt32)", 18797tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18798let Inst{7-5} = 0b000; 18799let Inst{13-13} = 0b0; 18800let Inst{31-21} = 0b11001011010; 18801let prefersSlot3 = 1; 18802let Constraints = "$Rxx32 = $Rxx32in"; 18803} 18804def S2_asr_r_p_nac : HInst< 18805(outs DoubleRegs:$Rxx32), 18806(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18807"$Rxx32 -= asr($Rss32,$Rt32)", 18808tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18809let Inst{7-5} = 0b000; 18810let Inst{13-13} = 0b0; 18811let Inst{31-21} = 0b11001011100; 18812let prefersSlot3 = 1; 18813let Constraints = "$Rxx32 = $Rxx32in"; 18814} 18815def S2_asr_r_p_or : HInst< 18816(outs DoubleRegs:$Rxx32), 18817(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18818"$Rxx32 |= asr($Rss32,$Rt32)", 18819tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18820let Inst{7-5} = 0b000; 18821let Inst{13-13} = 0b0; 18822let Inst{31-21} = 0b11001011000; 18823let prefersSlot3 = 1; 18824let Constraints = "$Rxx32 = $Rxx32in"; 18825} 18826def S2_asr_r_p_xor : HInst< 18827(outs DoubleRegs:$Rxx32), 18828(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18829"$Rxx32 ^= asr($Rss32,$Rt32)", 18830tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18831let Inst{7-5} = 0b000; 18832let Inst{13-13} = 0b0; 18833let Inst{31-21} = 0b11001011011; 18834let prefersSlot3 = 1; 18835let Constraints = "$Rxx32 = $Rxx32in"; 18836} 18837def S2_asr_r_r : HInst< 18838(outs IntRegs:$Rd32), 18839(ins IntRegs:$Rs32, IntRegs:$Rt32), 18840"$Rd32 = asr($Rs32,$Rt32)", 18841tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18842let Inst{7-5} = 0b000; 18843let Inst{13-13} = 0b0; 18844let Inst{31-21} = 0b11000110010; 18845let hasNewValue = 1; 18846let opNewValue = 0; 18847} 18848def S2_asr_r_r_acc : HInst< 18849(outs IntRegs:$Rx32), 18850(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18851"$Rx32 += asr($Rs32,$Rt32)", 18852tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18853let Inst{7-5} = 0b000; 18854let Inst{13-13} = 0b0; 18855let Inst{31-21} = 0b11001100110; 18856let hasNewValue = 1; 18857let opNewValue = 0; 18858let prefersSlot3 = 1; 18859let Constraints = "$Rx32 = $Rx32in"; 18860} 18861def S2_asr_r_r_and : HInst< 18862(outs IntRegs:$Rx32), 18863(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18864"$Rx32 &= asr($Rs32,$Rt32)", 18865tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18866let Inst{7-5} = 0b000; 18867let Inst{13-13} = 0b0; 18868let Inst{31-21} = 0b11001100010; 18869let hasNewValue = 1; 18870let opNewValue = 0; 18871let prefersSlot3 = 1; 18872let Constraints = "$Rx32 = $Rx32in"; 18873} 18874def S2_asr_r_r_nac : HInst< 18875(outs IntRegs:$Rx32), 18876(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18877"$Rx32 -= asr($Rs32,$Rt32)", 18878tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18879let Inst{7-5} = 0b000; 18880let Inst{13-13} = 0b0; 18881let Inst{31-21} = 0b11001100100; 18882let hasNewValue = 1; 18883let opNewValue = 0; 18884let prefersSlot3 = 1; 18885let Constraints = "$Rx32 = $Rx32in"; 18886} 18887def S2_asr_r_r_or : HInst< 18888(outs IntRegs:$Rx32), 18889(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18890"$Rx32 |= asr($Rs32,$Rt32)", 18891tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18892let Inst{7-5} = 0b000; 18893let Inst{13-13} = 0b0; 18894let Inst{31-21} = 0b11001100000; 18895let hasNewValue = 1; 18896let opNewValue = 0; 18897let prefersSlot3 = 1; 18898let Constraints = "$Rx32 = $Rx32in"; 18899} 18900def S2_asr_r_r_sat : HInst< 18901(outs IntRegs:$Rd32), 18902(ins IntRegs:$Rs32, IntRegs:$Rt32), 18903"$Rd32 = asr($Rs32,$Rt32):sat", 18904tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18905let Inst{7-5} = 0b000; 18906let Inst{13-13} = 0b0; 18907let Inst{31-21} = 0b11000110000; 18908let hasNewValue = 1; 18909let opNewValue = 0; 18910let prefersSlot3 = 1; 18911let Defs = [USR_OVF]; 18912} 18913def S2_asr_r_svw_trun : HInst< 18914(outs IntRegs:$Rd32), 18915(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18916"$Rd32 = vasrw($Rss32,$Rt32)", 18917tc_f34c1c21, TypeS_3op>, Enc_3d5b28 { 18918let Inst{7-5} = 0b010; 18919let Inst{13-13} = 0b0; 18920let Inst{31-21} = 0b11000101000; 18921let hasNewValue = 1; 18922let opNewValue = 0; 18923let prefersSlot3 = 1; 18924} 18925def S2_asr_r_vh : HInst< 18926(outs DoubleRegs:$Rdd32), 18927(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18928"$Rdd32 = vasrh($Rss32,$Rt32)", 18929tc_5da50c4b, TypeS_3op>, Enc_927852 { 18930let Inst{7-5} = 0b000; 18931let Inst{13-13} = 0b0; 18932let Inst{31-21} = 0b11000011010; 18933} 18934def S2_asr_r_vw : HInst< 18935(outs DoubleRegs:$Rdd32), 18936(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18937"$Rdd32 = vasrw($Rss32,$Rt32)", 18938tc_5da50c4b, TypeS_3op>, Enc_927852 { 18939let Inst{7-5} = 0b000; 18940let Inst{13-13} = 0b0; 18941let Inst{31-21} = 0b11000011000; 18942} 18943def S2_brev : HInst< 18944(outs IntRegs:$Rd32), 18945(ins IntRegs:$Rs32), 18946"$Rd32 = brev($Rs32)", 18947tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18948let Inst{13-5} = 0b000000110; 18949let Inst{31-21} = 0b10001100010; 18950let hasNewValue = 1; 18951let opNewValue = 0; 18952let prefersSlot3 = 1; 18953} 18954def S2_brevp : HInst< 18955(outs DoubleRegs:$Rdd32), 18956(ins DoubleRegs:$Rss32), 18957"$Rdd32 = brev($Rss32)", 18958tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 18959let Inst{13-5} = 0b000000110; 18960let Inst{31-21} = 0b10000000110; 18961let prefersSlot3 = 1; 18962} 18963def S2_cabacdecbin : HInst< 18964(outs DoubleRegs:$Rdd32), 18965(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18966"$Rdd32 = decbin($Rss32,$Rtt32)", 18967tc_db596beb, TypeS_3op>, Enc_a56825 { 18968let Inst{7-5} = 0b110; 18969let Inst{13-13} = 0b0; 18970let Inst{31-21} = 0b11000001110; 18971let isPredicateLate = 1; 18972let prefersSlot3 = 1; 18973let Defs = [P0]; 18974} 18975def S2_cl0 : HInst< 18976(outs IntRegs:$Rd32), 18977(ins IntRegs:$Rs32), 18978"$Rd32 = cl0($Rs32)", 18979tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18980let Inst{13-5} = 0b000000101; 18981let Inst{31-21} = 0b10001100000; 18982let hasNewValue = 1; 18983let opNewValue = 0; 18984let prefersSlot3 = 1; 18985} 18986def S2_cl0p : HInst< 18987(outs IntRegs:$Rd32), 18988(ins DoubleRegs:$Rss32), 18989"$Rd32 = cl0($Rss32)", 18990tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 18991let Inst{13-5} = 0b000000010; 18992let Inst{31-21} = 0b10001000010; 18993let hasNewValue = 1; 18994let opNewValue = 0; 18995let prefersSlot3 = 1; 18996} 18997def S2_cl1 : HInst< 18998(outs IntRegs:$Rd32), 18999(ins IntRegs:$Rs32), 19000"$Rd32 = cl1($Rs32)", 19001tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19002let Inst{13-5} = 0b000000110; 19003let Inst{31-21} = 0b10001100000; 19004let hasNewValue = 1; 19005let opNewValue = 0; 19006let prefersSlot3 = 1; 19007} 19008def S2_cl1p : HInst< 19009(outs IntRegs:$Rd32), 19010(ins DoubleRegs:$Rss32), 19011"$Rd32 = cl1($Rss32)", 19012tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19013let Inst{13-5} = 0b000000100; 19014let Inst{31-21} = 0b10001000010; 19015let hasNewValue = 1; 19016let opNewValue = 0; 19017let prefersSlot3 = 1; 19018} 19019def S2_clb : HInst< 19020(outs IntRegs:$Rd32), 19021(ins IntRegs:$Rs32), 19022"$Rd32 = clb($Rs32)", 19023tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19024let Inst{13-5} = 0b000000100; 19025let Inst{31-21} = 0b10001100000; 19026let hasNewValue = 1; 19027let opNewValue = 0; 19028let prefersSlot3 = 1; 19029} 19030def S2_clbnorm : HInst< 19031(outs IntRegs:$Rd32), 19032(ins IntRegs:$Rs32), 19033"$Rd32 = normamt($Rs32)", 19034tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19035let Inst{13-5} = 0b000000111; 19036let Inst{31-21} = 0b10001100000; 19037let hasNewValue = 1; 19038let opNewValue = 0; 19039let prefersSlot3 = 1; 19040} 19041def S2_clbp : HInst< 19042(outs IntRegs:$Rd32), 19043(ins DoubleRegs:$Rss32), 19044"$Rd32 = clb($Rss32)", 19045tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19046let Inst{13-5} = 0b000000000; 19047let Inst{31-21} = 0b10001000010; 19048let hasNewValue = 1; 19049let opNewValue = 0; 19050let prefersSlot3 = 1; 19051} 19052def S2_clrbit_i : HInst< 19053(outs IntRegs:$Rd32), 19054(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19055"$Rd32 = clrbit($Rs32,#$Ii)", 19056tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19057let Inst{7-5} = 0b001; 19058let Inst{13-13} = 0b0; 19059let Inst{31-21} = 0b10001100110; 19060let hasNewValue = 1; 19061let opNewValue = 0; 19062} 19063def S2_clrbit_r : HInst< 19064(outs IntRegs:$Rd32), 19065(ins IntRegs:$Rs32, IntRegs:$Rt32), 19066"$Rd32 = clrbit($Rs32,$Rt32)", 19067tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19068let Inst{7-5} = 0b010; 19069let Inst{13-13} = 0b0; 19070let Inst{31-21} = 0b11000110100; 19071let hasNewValue = 1; 19072let opNewValue = 0; 19073} 19074def S2_ct0 : HInst< 19075(outs IntRegs:$Rd32), 19076(ins IntRegs:$Rs32), 19077"$Rd32 = ct0($Rs32)", 19078tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19079let Inst{13-5} = 0b000000100; 19080let Inst{31-21} = 0b10001100010; 19081let hasNewValue = 1; 19082let opNewValue = 0; 19083let prefersSlot3 = 1; 19084} 19085def S2_ct0p : HInst< 19086(outs IntRegs:$Rd32), 19087(ins DoubleRegs:$Rss32), 19088"$Rd32 = ct0($Rss32)", 19089tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19090let Inst{13-5} = 0b000000010; 19091let Inst{31-21} = 0b10001000111; 19092let hasNewValue = 1; 19093let opNewValue = 0; 19094let prefersSlot3 = 1; 19095} 19096def S2_ct1 : HInst< 19097(outs IntRegs:$Rd32), 19098(ins IntRegs:$Rs32), 19099"$Rd32 = ct1($Rs32)", 19100tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19101let Inst{13-5} = 0b000000101; 19102let Inst{31-21} = 0b10001100010; 19103let hasNewValue = 1; 19104let opNewValue = 0; 19105let prefersSlot3 = 1; 19106} 19107def S2_ct1p : HInst< 19108(outs IntRegs:$Rd32), 19109(ins DoubleRegs:$Rss32), 19110"$Rd32 = ct1($Rss32)", 19111tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19112let Inst{13-5} = 0b000000100; 19113let Inst{31-21} = 0b10001000111; 19114let hasNewValue = 1; 19115let opNewValue = 0; 19116let prefersSlot3 = 1; 19117} 19118def S2_deinterleave : HInst< 19119(outs DoubleRegs:$Rdd32), 19120(ins DoubleRegs:$Rss32), 19121"$Rdd32 = deinterleave($Rss32)", 19122tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19123let Inst{13-5} = 0b000000100; 19124let Inst{31-21} = 0b10000000110; 19125let prefersSlot3 = 1; 19126} 19127def S2_extractu : HInst< 19128(outs IntRegs:$Rd32), 19129(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19130"$Rd32 = extractu($Rs32,#$Ii,#$II)", 19131tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 19132let Inst{13-13} = 0b0; 19133let Inst{31-23} = 0b100011010; 19134let hasNewValue = 1; 19135let opNewValue = 0; 19136let prefersSlot3 = 1; 19137} 19138def S2_extractu_rp : HInst< 19139(outs IntRegs:$Rd32), 19140(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 19141"$Rd32 = extractu($Rs32,$Rtt32)", 19142tc_a08b630b, TypeS_3op>, Enc_e07374 { 19143let Inst{7-5} = 0b000; 19144let Inst{13-13} = 0b0; 19145let Inst{31-21} = 0b11001001000; 19146let hasNewValue = 1; 19147let opNewValue = 0; 19148let prefersSlot3 = 1; 19149} 19150def S2_extractup : HInst< 19151(outs DoubleRegs:$Rdd32), 19152(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19153"$Rdd32 = extractu($Rss32,#$Ii,#$II)", 19154tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 19155let Inst{31-24} = 0b10000001; 19156let prefersSlot3 = 1; 19157} 19158def S2_extractup_rp : HInst< 19159(outs DoubleRegs:$Rdd32), 19160(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19161"$Rdd32 = extractu($Rss32,$Rtt32)", 19162tc_a08b630b, TypeS_3op>, Enc_a56825 { 19163let Inst{7-5} = 0b000; 19164let Inst{13-13} = 0b0; 19165let Inst{31-21} = 0b11000001000; 19166let prefersSlot3 = 1; 19167} 19168def S2_insert : HInst< 19169(outs IntRegs:$Rx32), 19170(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19171"$Rx32 = insert($Rs32,#$Ii,#$II)", 19172tc_bb831a7c, TypeS_2op>, Enc_a1e29d { 19173let Inst{13-13} = 0b0; 19174let Inst{31-23} = 0b100011110; 19175let hasNewValue = 1; 19176let opNewValue = 0; 19177let prefersSlot3 = 1; 19178let Constraints = "$Rx32 = $Rx32in"; 19179} 19180def S2_insert_rp : HInst< 19181(outs IntRegs:$Rx32), 19182(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19183"$Rx32 = insert($Rs32,$Rtt32)", 19184tc_a4e22bbd, TypeS_3op>, Enc_179b35 { 19185let Inst{7-5} = 0b000; 19186let Inst{13-13} = 0b0; 19187let Inst{31-21} = 0b11001000000; 19188let hasNewValue = 1; 19189let opNewValue = 0; 19190let prefersSlot3 = 1; 19191let Constraints = "$Rx32 = $Rx32in"; 19192} 19193def S2_insertp : HInst< 19194(outs DoubleRegs:$Rxx32), 19195(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19196"$Rxx32 = insert($Rss32,#$Ii,#$II)", 19197tc_bb831a7c, TypeS_2op>, Enc_143a3c { 19198let Inst{31-24} = 0b10000011; 19199let prefersSlot3 = 1; 19200let Constraints = "$Rxx32 = $Rxx32in"; 19201} 19202def S2_insertp_rp : HInst< 19203(outs DoubleRegs:$Rxx32), 19204(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19205"$Rxx32 = insert($Rss32,$Rtt32)", 19206tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 19207let Inst{7-5} = 0b000; 19208let Inst{13-13} = 0b0; 19209let Inst{31-21} = 0b11001010000; 19210let prefersSlot3 = 1; 19211let Constraints = "$Rxx32 = $Rxx32in"; 19212} 19213def S2_interleave : HInst< 19214(outs DoubleRegs:$Rdd32), 19215(ins DoubleRegs:$Rss32), 19216"$Rdd32 = interleave($Rss32)", 19217tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19218let Inst{13-5} = 0b000000101; 19219let Inst{31-21} = 0b10000000110; 19220let prefersSlot3 = 1; 19221} 19222def S2_lfsp : HInst< 19223(outs DoubleRegs:$Rdd32), 19224(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19225"$Rdd32 = lfs($Rss32,$Rtt32)", 19226tc_a08b630b, TypeS_3op>, Enc_a56825 { 19227let Inst{7-5} = 0b110; 19228let Inst{13-13} = 0b0; 19229let Inst{31-21} = 0b11000001100; 19230let prefersSlot3 = 1; 19231} 19232def S2_lsl_r_p : HInst< 19233(outs DoubleRegs:$Rdd32), 19234(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19235"$Rdd32 = lsl($Rss32,$Rt32)", 19236tc_5da50c4b, TypeS_3op>, Enc_927852 { 19237let Inst{7-5} = 0b110; 19238let Inst{13-13} = 0b0; 19239let Inst{31-21} = 0b11000011100; 19240} 19241def S2_lsl_r_p_acc : HInst< 19242(outs DoubleRegs:$Rxx32), 19243(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19244"$Rxx32 += lsl($Rss32,$Rt32)", 19245tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19246let Inst{7-5} = 0b110; 19247let Inst{13-13} = 0b0; 19248let Inst{31-21} = 0b11001011110; 19249let prefersSlot3 = 1; 19250let Constraints = "$Rxx32 = $Rxx32in"; 19251} 19252def S2_lsl_r_p_and : HInst< 19253(outs DoubleRegs:$Rxx32), 19254(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19255"$Rxx32 &= lsl($Rss32,$Rt32)", 19256tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19257let Inst{7-5} = 0b110; 19258let Inst{13-13} = 0b0; 19259let Inst{31-21} = 0b11001011010; 19260let prefersSlot3 = 1; 19261let Constraints = "$Rxx32 = $Rxx32in"; 19262} 19263def S2_lsl_r_p_nac : HInst< 19264(outs DoubleRegs:$Rxx32), 19265(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19266"$Rxx32 -= lsl($Rss32,$Rt32)", 19267tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19268let Inst{7-5} = 0b110; 19269let Inst{13-13} = 0b0; 19270let Inst{31-21} = 0b11001011100; 19271let prefersSlot3 = 1; 19272let Constraints = "$Rxx32 = $Rxx32in"; 19273} 19274def S2_lsl_r_p_or : HInst< 19275(outs DoubleRegs:$Rxx32), 19276(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19277"$Rxx32 |= lsl($Rss32,$Rt32)", 19278tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19279let Inst{7-5} = 0b110; 19280let Inst{13-13} = 0b0; 19281let Inst{31-21} = 0b11001011000; 19282let prefersSlot3 = 1; 19283let Constraints = "$Rxx32 = $Rxx32in"; 19284} 19285def S2_lsl_r_p_xor : HInst< 19286(outs DoubleRegs:$Rxx32), 19287(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19288"$Rxx32 ^= lsl($Rss32,$Rt32)", 19289tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19290let Inst{7-5} = 0b110; 19291let Inst{13-13} = 0b0; 19292let Inst{31-21} = 0b11001011011; 19293let prefersSlot3 = 1; 19294let Constraints = "$Rxx32 = $Rxx32in"; 19295} 19296def S2_lsl_r_r : HInst< 19297(outs IntRegs:$Rd32), 19298(ins IntRegs:$Rs32, IntRegs:$Rt32), 19299"$Rd32 = lsl($Rs32,$Rt32)", 19300tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19301let Inst{7-5} = 0b110; 19302let Inst{13-13} = 0b0; 19303let Inst{31-21} = 0b11000110010; 19304let hasNewValue = 1; 19305let opNewValue = 0; 19306} 19307def S2_lsl_r_r_acc : HInst< 19308(outs IntRegs:$Rx32), 19309(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19310"$Rx32 += lsl($Rs32,$Rt32)", 19311tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19312let Inst{7-5} = 0b110; 19313let Inst{13-13} = 0b0; 19314let Inst{31-21} = 0b11001100110; 19315let hasNewValue = 1; 19316let opNewValue = 0; 19317let prefersSlot3 = 1; 19318let Constraints = "$Rx32 = $Rx32in"; 19319} 19320def S2_lsl_r_r_and : HInst< 19321(outs IntRegs:$Rx32), 19322(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19323"$Rx32 &= lsl($Rs32,$Rt32)", 19324tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19325let Inst{7-5} = 0b110; 19326let Inst{13-13} = 0b0; 19327let Inst{31-21} = 0b11001100010; 19328let hasNewValue = 1; 19329let opNewValue = 0; 19330let prefersSlot3 = 1; 19331let Constraints = "$Rx32 = $Rx32in"; 19332} 19333def S2_lsl_r_r_nac : HInst< 19334(outs IntRegs:$Rx32), 19335(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19336"$Rx32 -= lsl($Rs32,$Rt32)", 19337tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19338let Inst{7-5} = 0b110; 19339let Inst{13-13} = 0b0; 19340let Inst{31-21} = 0b11001100100; 19341let hasNewValue = 1; 19342let opNewValue = 0; 19343let prefersSlot3 = 1; 19344let Constraints = "$Rx32 = $Rx32in"; 19345} 19346def S2_lsl_r_r_or : HInst< 19347(outs IntRegs:$Rx32), 19348(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19349"$Rx32 |= lsl($Rs32,$Rt32)", 19350tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19351let Inst{7-5} = 0b110; 19352let Inst{13-13} = 0b0; 19353let Inst{31-21} = 0b11001100000; 19354let hasNewValue = 1; 19355let opNewValue = 0; 19356let prefersSlot3 = 1; 19357let Constraints = "$Rx32 = $Rx32in"; 19358} 19359def S2_lsl_r_vh : HInst< 19360(outs DoubleRegs:$Rdd32), 19361(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19362"$Rdd32 = vlslh($Rss32,$Rt32)", 19363tc_5da50c4b, TypeS_3op>, Enc_927852 { 19364let Inst{7-5} = 0b110; 19365let Inst{13-13} = 0b0; 19366let Inst{31-21} = 0b11000011010; 19367} 19368def S2_lsl_r_vw : HInst< 19369(outs DoubleRegs:$Rdd32), 19370(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19371"$Rdd32 = vlslw($Rss32,$Rt32)", 19372tc_5da50c4b, TypeS_3op>, Enc_927852 { 19373let Inst{7-5} = 0b110; 19374let Inst{13-13} = 0b0; 19375let Inst{31-21} = 0b11000011000; 19376} 19377def S2_lsr_i_p : HInst< 19378(outs DoubleRegs:$Rdd32), 19379(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 19380"$Rdd32 = lsr($Rss32,#$Ii)", 19381tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 19382let Inst{7-5} = 0b001; 19383let Inst{31-21} = 0b10000000000; 19384} 19385def S2_lsr_i_p_acc : HInst< 19386(outs DoubleRegs:$Rxx32), 19387(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19388"$Rxx32 += lsr($Rss32,#$Ii)", 19389tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19390let Inst{7-5} = 0b101; 19391let Inst{31-21} = 0b10000010000; 19392let prefersSlot3 = 1; 19393let Constraints = "$Rxx32 = $Rxx32in"; 19394} 19395def S2_lsr_i_p_and : HInst< 19396(outs DoubleRegs:$Rxx32), 19397(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19398"$Rxx32 &= lsr($Rss32,#$Ii)", 19399tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19400let Inst{7-5} = 0b001; 19401let Inst{31-21} = 0b10000010010; 19402let prefersSlot3 = 1; 19403let Constraints = "$Rxx32 = $Rxx32in"; 19404} 19405def S2_lsr_i_p_nac : HInst< 19406(outs DoubleRegs:$Rxx32), 19407(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19408"$Rxx32 -= lsr($Rss32,#$Ii)", 19409tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19410let Inst{7-5} = 0b001; 19411let Inst{31-21} = 0b10000010000; 19412let prefersSlot3 = 1; 19413let Constraints = "$Rxx32 = $Rxx32in"; 19414} 19415def S2_lsr_i_p_or : HInst< 19416(outs DoubleRegs:$Rxx32), 19417(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19418"$Rxx32 |= lsr($Rss32,#$Ii)", 19419tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19420let Inst{7-5} = 0b101; 19421let Inst{31-21} = 0b10000010010; 19422let prefersSlot3 = 1; 19423let Constraints = "$Rxx32 = $Rxx32in"; 19424} 19425def S2_lsr_i_p_xacc : HInst< 19426(outs DoubleRegs:$Rxx32), 19427(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19428"$Rxx32 ^= lsr($Rss32,#$Ii)", 19429tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19430let Inst{7-5} = 0b001; 19431let Inst{31-21} = 0b10000010100; 19432let prefersSlot3 = 1; 19433let Constraints = "$Rxx32 = $Rxx32in"; 19434} 19435def S2_lsr_i_r : HInst< 19436(outs IntRegs:$Rd32), 19437(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19438"$Rd32 = lsr($Rs32,#$Ii)", 19439tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19440let Inst{7-5} = 0b001; 19441let Inst{13-13} = 0b0; 19442let Inst{31-21} = 0b10001100000; 19443let hasNewValue = 1; 19444let opNewValue = 0; 19445} 19446def S2_lsr_i_r_acc : HInst< 19447(outs IntRegs:$Rx32), 19448(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19449"$Rx32 += lsr($Rs32,#$Ii)", 19450tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19451let Inst{7-5} = 0b101; 19452let Inst{13-13} = 0b0; 19453let Inst{31-21} = 0b10001110000; 19454let hasNewValue = 1; 19455let opNewValue = 0; 19456let prefersSlot3 = 1; 19457let Constraints = "$Rx32 = $Rx32in"; 19458} 19459def S2_lsr_i_r_and : HInst< 19460(outs IntRegs:$Rx32), 19461(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19462"$Rx32 &= lsr($Rs32,#$Ii)", 19463tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19464let Inst{7-5} = 0b001; 19465let Inst{13-13} = 0b0; 19466let Inst{31-21} = 0b10001110010; 19467let hasNewValue = 1; 19468let opNewValue = 0; 19469let prefersSlot3 = 1; 19470let Constraints = "$Rx32 = $Rx32in"; 19471} 19472def S2_lsr_i_r_nac : HInst< 19473(outs IntRegs:$Rx32), 19474(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19475"$Rx32 -= lsr($Rs32,#$Ii)", 19476tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19477let Inst{7-5} = 0b001; 19478let Inst{13-13} = 0b0; 19479let Inst{31-21} = 0b10001110000; 19480let hasNewValue = 1; 19481let opNewValue = 0; 19482let prefersSlot3 = 1; 19483let Constraints = "$Rx32 = $Rx32in"; 19484} 19485def S2_lsr_i_r_or : HInst< 19486(outs IntRegs:$Rx32), 19487(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19488"$Rx32 |= lsr($Rs32,#$Ii)", 19489tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19490let Inst{7-5} = 0b101; 19491let Inst{13-13} = 0b0; 19492let Inst{31-21} = 0b10001110010; 19493let hasNewValue = 1; 19494let opNewValue = 0; 19495let prefersSlot3 = 1; 19496let Constraints = "$Rx32 = $Rx32in"; 19497} 19498def S2_lsr_i_r_xacc : HInst< 19499(outs IntRegs:$Rx32), 19500(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19501"$Rx32 ^= lsr($Rs32,#$Ii)", 19502tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19503let Inst{7-5} = 0b001; 19504let Inst{13-13} = 0b0; 19505let Inst{31-21} = 0b10001110100; 19506let hasNewValue = 1; 19507let opNewValue = 0; 19508let prefersSlot3 = 1; 19509let Constraints = "$Rx32 = $Rx32in"; 19510} 19511def S2_lsr_i_vh : HInst< 19512(outs DoubleRegs:$Rdd32), 19513(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 19514"$Rdd32 = vlsrh($Rss32,#$Ii)", 19515tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 19516let Inst{7-5} = 0b001; 19517let Inst{13-12} = 0b00; 19518let Inst{31-21} = 0b10000000100; 19519} 19520def S2_lsr_i_vw : HInst< 19521(outs DoubleRegs:$Rdd32), 19522(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 19523"$Rdd32 = vlsrw($Rss32,#$Ii)", 19524tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 19525let Inst{7-5} = 0b001; 19526let Inst{13-13} = 0b0; 19527let Inst{31-21} = 0b10000000010; 19528} 19529def S2_lsr_r_p : HInst< 19530(outs DoubleRegs:$Rdd32), 19531(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19532"$Rdd32 = lsr($Rss32,$Rt32)", 19533tc_5da50c4b, TypeS_3op>, Enc_927852 { 19534let Inst{7-5} = 0b010; 19535let Inst{13-13} = 0b0; 19536let Inst{31-21} = 0b11000011100; 19537} 19538def S2_lsr_r_p_acc : HInst< 19539(outs DoubleRegs:$Rxx32), 19540(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19541"$Rxx32 += lsr($Rss32,$Rt32)", 19542tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19543let Inst{7-5} = 0b010; 19544let Inst{13-13} = 0b0; 19545let Inst{31-21} = 0b11001011110; 19546let prefersSlot3 = 1; 19547let Constraints = "$Rxx32 = $Rxx32in"; 19548} 19549def S2_lsr_r_p_and : HInst< 19550(outs DoubleRegs:$Rxx32), 19551(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19552"$Rxx32 &= lsr($Rss32,$Rt32)", 19553tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19554let Inst{7-5} = 0b010; 19555let Inst{13-13} = 0b0; 19556let Inst{31-21} = 0b11001011010; 19557let prefersSlot3 = 1; 19558let Constraints = "$Rxx32 = $Rxx32in"; 19559} 19560def S2_lsr_r_p_nac : HInst< 19561(outs DoubleRegs:$Rxx32), 19562(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19563"$Rxx32 -= lsr($Rss32,$Rt32)", 19564tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19565let Inst{7-5} = 0b010; 19566let Inst{13-13} = 0b0; 19567let Inst{31-21} = 0b11001011100; 19568let prefersSlot3 = 1; 19569let Constraints = "$Rxx32 = $Rxx32in"; 19570} 19571def S2_lsr_r_p_or : HInst< 19572(outs DoubleRegs:$Rxx32), 19573(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19574"$Rxx32 |= lsr($Rss32,$Rt32)", 19575tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19576let Inst{7-5} = 0b010; 19577let Inst{13-13} = 0b0; 19578let Inst{31-21} = 0b11001011000; 19579let prefersSlot3 = 1; 19580let Constraints = "$Rxx32 = $Rxx32in"; 19581} 19582def S2_lsr_r_p_xor : HInst< 19583(outs DoubleRegs:$Rxx32), 19584(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19585"$Rxx32 ^= lsr($Rss32,$Rt32)", 19586tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19587let Inst{7-5} = 0b010; 19588let Inst{13-13} = 0b0; 19589let Inst{31-21} = 0b11001011011; 19590let prefersSlot3 = 1; 19591let Constraints = "$Rxx32 = $Rxx32in"; 19592} 19593def S2_lsr_r_r : HInst< 19594(outs IntRegs:$Rd32), 19595(ins IntRegs:$Rs32, IntRegs:$Rt32), 19596"$Rd32 = lsr($Rs32,$Rt32)", 19597tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19598let Inst{7-5} = 0b010; 19599let Inst{13-13} = 0b0; 19600let Inst{31-21} = 0b11000110010; 19601let hasNewValue = 1; 19602let opNewValue = 0; 19603} 19604def S2_lsr_r_r_acc : HInst< 19605(outs IntRegs:$Rx32), 19606(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19607"$Rx32 += lsr($Rs32,$Rt32)", 19608tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19609let Inst{7-5} = 0b010; 19610let Inst{13-13} = 0b0; 19611let Inst{31-21} = 0b11001100110; 19612let hasNewValue = 1; 19613let opNewValue = 0; 19614let prefersSlot3 = 1; 19615let Constraints = "$Rx32 = $Rx32in"; 19616} 19617def S2_lsr_r_r_and : HInst< 19618(outs IntRegs:$Rx32), 19619(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19620"$Rx32 &= lsr($Rs32,$Rt32)", 19621tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19622let Inst{7-5} = 0b010; 19623let Inst{13-13} = 0b0; 19624let Inst{31-21} = 0b11001100010; 19625let hasNewValue = 1; 19626let opNewValue = 0; 19627let prefersSlot3 = 1; 19628let Constraints = "$Rx32 = $Rx32in"; 19629} 19630def S2_lsr_r_r_nac : HInst< 19631(outs IntRegs:$Rx32), 19632(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19633"$Rx32 -= lsr($Rs32,$Rt32)", 19634tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19635let Inst{7-5} = 0b010; 19636let Inst{13-13} = 0b0; 19637let Inst{31-21} = 0b11001100100; 19638let hasNewValue = 1; 19639let opNewValue = 0; 19640let prefersSlot3 = 1; 19641let Constraints = "$Rx32 = $Rx32in"; 19642} 19643def S2_lsr_r_r_or : HInst< 19644(outs IntRegs:$Rx32), 19645(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19646"$Rx32 |= lsr($Rs32,$Rt32)", 19647tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19648let Inst{7-5} = 0b010; 19649let Inst{13-13} = 0b0; 19650let Inst{31-21} = 0b11001100000; 19651let hasNewValue = 1; 19652let opNewValue = 0; 19653let prefersSlot3 = 1; 19654let Constraints = "$Rx32 = $Rx32in"; 19655} 19656def S2_lsr_r_vh : HInst< 19657(outs DoubleRegs:$Rdd32), 19658(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19659"$Rdd32 = vlsrh($Rss32,$Rt32)", 19660tc_5da50c4b, TypeS_3op>, Enc_927852 { 19661let Inst{7-5} = 0b010; 19662let Inst{13-13} = 0b0; 19663let Inst{31-21} = 0b11000011010; 19664} 19665def S2_lsr_r_vw : HInst< 19666(outs DoubleRegs:$Rdd32), 19667(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19668"$Rdd32 = vlsrw($Rss32,$Rt32)", 19669tc_5da50c4b, TypeS_3op>, Enc_927852 { 19670let Inst{7-5} = 0b010; 19671let Inst{13-13} = 0b0; 19672let Inst{31-21} = 0b11000011000; 19673} 19674def S2_mask : HInst< 19675(outs IntRegs:$Rd32), 19676(ins u5_0Imm:$Ii, u5_0Imm:$II), 19677"$Rd32 = mask(#$Ii,#$II)", 19678tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> { 19679let Inst{13-13} = 0b1; 19680let Inst{20-16} = 0b00000; 19681let Inst{31-23} = 0b100011010; 19682let hasNewValue = 1; 19683let opNewValue = 0; 19684let prefersSlot3 = 1; 19685} 19686def S2_packhl : HInst< 19687(outs DoubleRegs:$Rdd32), 19688(ins IntRegs:$Rs32, IntRegs:$Rt32), 19689"$Rdd32 = packhl($Rs32,$Rt32)", 19690tc_713b66bf, TypeALU32_3op>, Enc_be32a5 { 19691let Inst{7-5} = 0b000; 19692let Inst{13-13} = 0b0; 19693let Inst{31-21} = 0b11110101100; 19694let InputType = "reg"; 19695} 19696def S2_parityp : HInst< 19697(outs IntRegs:$Rd32), 19698(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19699"$Rd32 = parity($Rss32,$Rtt32)", 19700tc_a08b630b, TypeALU64>, Enc_d2216a { 19701let Inst{7-5} = 0b000; 19702let Inst{13-13} = 0b0; 19703let Inst{31-21} = 0b11010000000; 19704let hasNewValue = 1; 19705let opNewValue = 0; 19706let prefersSlot3 = 1; 19707} 19708def S2_pstorerbf_io : HInst< 19709(outs), 19710(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19711"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32", 19712tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19713let Inst{2-2} = 0b0; 19714let Inst{31-21} = 0b01000100000; 19715let isPredicated = 1; 19716let isPredicatedFalse = 1; 19717let addrMode = BaseImmOffset; 19718let accessSize = ByteAccess; 19719let mayStore = 1; 19720let BaseOpcode = "S2_storerb_io"; 19721let CextOpcode = "S2_storerb"; 19722let InputType = "imm"; 19723let isNVStorable = 1; 19724let isExtendable = 1; 19725let opExtendable = 2; 19726let isExtentSigned = 0; 19727let opExtentBits = 6; 19728let opExtentAlign = 0; 19729} 19730def S2_pstorerbf_pi : HInst< 19731(outs IntRegs:$Rx32), 19732(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19733"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32", 19734tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 19735let Inst{2-2} = 0b1; 19736let Inst{7-7} = 0b0; 19737let Inst{13-13} = 0b1; 19738let Inst{31-21} = 0b10101011000; 19739let isPredicated = 1; 19740let isPredicatedFalse = 1; 19741let addrMode = PostInc; 19742let accessSize = ByteAccess; 19743let mayStore = 1; 19744let BaseOpcode = "S2_storerb_pi"; 19745let isNVStorable = 1; 19746let Constraints = "$Rx32 = $Rx32in"; 19747} 19748def S2_pstorerbf_zomap : HInst< 19749(outs), 19750(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19751"if (!$Pv4) memb($Rs32) = $Rt32", 19752tc_8035e91f, TypeMAPPING> { 19753let isPseudo = 1; 19754let isCodeGenOnly = 1; 19755} 19756def S2_pstorerbfnew_pi : HInst< 19757(outs IntRegs:$Rx32), 19758(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19759"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19760tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 19761let Inst{2-2} = 0b1; 19762let Inst{7-7} = 0b1; 19763let Inst{13-13} = 0b1; 19764let Inst{31-21} = 0b10101011000; 19765let isPredicated = 1; 19766let isPredicatedFalse = 1; 19767let addrMode = PostInc; 19768let accessSize = ByteAccess; 19769let isPredicatedNew = 1; 19770let mayStore = 1; 19771let BaseOpcode = "S2_storerb_pi"; 19772let isNVStorable = 1; 19773let Constraints = "$Rx32 = $Rx32in"; 19774} 19775def S2_pstorerbnewf_io : HInst< 19776(outs), 19777(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19778"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19779tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19780let Inst{2-2} = 0b0; 19781let Inst{12-11} = 0b00; 19782let Inst{31-21} = 0b01000100101; 19783let isPredicated = 1; 19784let isPredicatedFalse = 1; 19785let addrMode = BaseImmOffset; 19786let accessSize = ByteAccess; 19787let isNVStore = 1; 19788let isNewValue = 1; 19789let isRestrictNoSlot1Store = 1; 19790let mayStore = 1; 19791let BaseOpcode = "S2_storerb_io"; 19792let CextOpcode = "S2_storerb"; 19793let InputType = "imm"; 19794let isExtendable = 1; 19795let opExtendable = 2; 19796let isExtentSigned = 0; 19797let opExtentBits = 6; 19798let opExtentAlign = 0; 19799let opNewValue = 3; 19800} 19801def S2_pstorerbnewf_pi : HInst< 19802(outs IntRegs:$Rx32), 19803(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19804"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19805tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19806let Inst{2-2} = 0b1; 19807let Inst{7-7} = 0b0; 19808let Inst{13-11} = 0b100; 19809let Inst{31-21} = 0b10101011101; 19810let isPredicated = 1; 19811let isPredicatedFalse = 1; 19812let addrMode = PostInc; 19813let accessSize = ByteAccess; 19814let isNVStore = 1; 19815let isNewValue = 1; 19816let isRestrictNoSlot1Store = 1; 19817let mayStore = 1; 19818let BaseOpcode = "S2_storerb_pi"; 19819let CextOpcode = "S2_storerb"; 19820let opNewValue = 4; 19821let Constraints = "$Rx32 = $Rx32in"; 19822} 19823def S2_pstorerbnewf_zomap : HInst< 19824(outs), 19825(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19826"if (!$Pv4) memb($Rs32) = $Nt8.new", 19827tc_011e0e9d, TypeMAPPING> { 19828let isPseudo = 1; 19829let isCodeGenOnly = 1; 19830let opNewValue = 2; 19831} 19832def S2_pstorerbnewfnew_pi : HInst< 19833(outs IntRegs:$Rx32), 19834(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19835"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19836tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19837let Inst{2-2} = 0b1; 19838let Inst{7-7} = 0b1; 19839let Inst{13-11} = 0b100; 19840let Inst{31-21} = 0b10101011101; 19841let isPredicated = 1; 19842let isPredicatedFalse = 1; 19843let addrMode = PostInc; 19844let accessSize = ByteAccess; 19845let isNVStore = 1; 19846let isPredicatedNew = 1; 19847let isNewValue = 1; 19848let isRestrictNoSlot1Store = 1; 19849let mayStore = 1; 19850let BaseOpcode = "S2_storerb_pi"; 19851let CextOpcode = "S2_storerb"; 19852let opNewValue = 4; 19853let Constraints = "$Rx32 = $Rx32in"; 19854} 19855def S2_pstorerbnewt_io : HInst< 19856(outs), 19857(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19858"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19859tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19860let Inst{2-2} = 0b0; 19861let Inst{12-11} = 0b00; 19862let Inst{31-21} = 0b01000000101; 19863let isPredicated = 1; 19864let addrMode = BaseImmOffset; 19865let accessSize = ByteAccess; 19866let isNVStore = 1; 19867let isNewValue = 1; 19868let isRestrictNoSlot1Store = 1; 19869let mayStore = 1; 19870let BaseOpcode = "S2_storerb_io"; 19871let CextOpcode = "S2_storerb"; 19872let InputType = "imm"; 19873let isExtendable = 1; 19874let opExtendable = 2; 19875let isExtentSigned = 0; 19876let opExtentBits = 6; 19877let opExtentAlign = 0; 19878let opNewValue = 3; 19879} 19880def S2_pstorerbnewt_pi : HInst< 19881(outs IntRegs:$Rx32), 19882(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19883"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19884tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19885let Inst{2-2} = 0b0; 19886let Inst{7-7} = 0b0; 19887let Inst{13-11} = 0b100; 19888let Inst{31-21} = 0b10101011101; 19889let isPredicated = 1; 19890let addrMode = PostInc; 19891let accessSize = ByteAccess; 19892let isNVStore = 1; 19893let isNewValue = 1; 19894let isRestrictNoSlot1Store = 1; 19895let mayStore = 1; 19896let BaseOpcode = "S2_storerb_pi"; 19897let CextOpcode = "S2_storerb"; 19898let opNewValue = 4; 19899let Constraints = "$Rx32 = $Rx32in"; 19900} 19901def S2_pstorerbnewt_zomap : HInst< 19902(outs), 19903(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19904"if ($Pv4) memb($Rs32) = $Nt8.new", 19905tc_011e0e9d, TypeMAPPING> { 19906let isPseudo = 1; 19907let isCodeGenOnly = 1; 19908let opNewValue = 2; 19909} 19910def S2_pstorerbnewtnew_pi : HInst< 19911(outs IntRegs:$Rx32), 19912(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19913"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19914tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19915let Inst{2-2} = 0b0; 19916let Inst{7-7} = 0b1; 19917let Inst{13-11} = 0b100; 19918let Inst{31-21} = 0b10101011101; 19919let isPredicated = 1; 19920let addrMode = PostInc; 19921let accessSize = ByteAccess; 19922let isNVStore = 1; 19923let isPredicatedNew = 1; 19924let isNewValue = 1; 19925let isRestrictNoSlot1Store = 1; 19926let mayStore = 1; 19927let BaseOpcode = "S2_storerb_pi"; 19928let CextOpcode = "S2_storerb"; 19929let opNewValue = 4; 19930let Constraints = "$Rx32 = $Rx32in"; 19931} 19932def S2_pstorerbt_io : HInst< 19933(outs), 19934(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19935"if ($Pv4) memb($Rs32+#$Ii) = $Rt32", 19936tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19937let Inst{2-2} = 0b0; 19938let Inst{31-21} = 0b01000000000; 19939let isPredicated = 1; 19940let addrMode = BaseImmOffset; 19941let accessSize = ByteAccess; 19942let mayStore = 1; 19943let BaseOpcode = "S2_storerb_io"; 19944let CextOpcode = "S2_storerb"; 19945let InputType = "imm"; 19946let isNVStorable = 1; 19947let isExtendable = 1; 19948let opExtendable = 2; 19949let isExtentSigned = 0; 19950let opExtentBits = 6; 19951let opExtentAlign = 0; 19952} 19953def S2_pstorerbt_pi : HInst< 19954(outs IntRegs:$Rx32), 19955(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19956"if ($Pv4) memb($Rx32++#$Ii) = $Rt32", 19957tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 19958let Inst{2-2} = 0b0; 19959let Inst{7-7} = 0b0; 19960let Inst{13-13} = 0b1; 19961let Inst{31-21} = 0b10101011000; 19962let isPredicated = 1; 19963let addrMode = PostInc; 19964let accessSize = ByteAccess; 19965let mayStore = 1; 19966let BaseOpcode = "S2_storerb_pi"; 19967let isNVStorable = 1; 19968let Constraints = "$Rx32 = $Rx32in"; 19969} 19970def S2_pstorerbt_zomap : HInst< 19971(outs), 19972(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19973"if ($Pv4) memb($Rs32) = $Rt32", 19974tc_8035e91f, TypeMAPPING> { 19975let isPseudo = 1; 19976let isCodeGenOnly = 1; 19977} 19978def S2_pstorerbtnew_pi : HInst< 19979(outs IntRegs:$Rx32), 19980(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19981"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19982tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 19983let Inst{2-2} = 0b0; 19984let Inst{7-7} = 0b1; 19985let Inst{13-13} = 0b1; 19986let Inst{31-21} = 0b10101011000; 19987let isPredicated = 1; 19988let addrMode = PostInc; 19989let accessSize = ByteAccess; 19990let isPredicatedNew = 1; 19991let mayStore = 1; 19992let BaseOpcode = "S2_storerb_pi"; 19993let isNVStorable = 1; 19994let Constraints = "$Rx32 = $Rx32in"; 19995} 19996def S2_pstorerdf_io : HInst< 19997(outs), 19998(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 19999"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32", 20000tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 20001let Inst{2-2} = 0b0; 20002let Inst{31-21} = 0b01000100110; 20003let isPredicated = 1; 20004let isPredicatedFalse = 1; 20005let addrMode = BaseImmOffset; 20006let accessSize = DoubleWordAccess; 20007let mayStore = 1; 20008let BaseOpcode = "S2_storerd_io"; 20009let CextOpcode = "S2_storerd"; 20010let InputType = "imm"; 20011let isExtendable = 1; 20012let opExtendable = 2; 20013let isExtentSigned = 0; 20014let opExtentBits = 9; 20015let opExtentAlign = 3; 20016} 20017def S2_pstorerdf_pi : HInst< 20018(outs IntRegs:$Rx32), 20019(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20020"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32", 20021tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 20022let Inst{2-2} = 0b1; 20023let Inst{7-7} = 0b0; 20024let Inst{13-13} = 0b1; 20025let Inst{31-21} = 0b10101011110; 20026let isPredicated = 1; 20027let isPredicatedFalse = 1; 20028let addrMode = PostInc; 20029let accessSize = DoubleWordAccess; 20030let mayStore = 1; 20031let BaseOpcode = "S2_storerd_pi"; 20032let CextOpcode = "S2_storerd"; 20033let Constraints = "$Rx32 = $Rx32in"; 20034} 20035def S2_pstorerdf_zomap : HInst< 20036(outs), 20037(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 20038"if (!$Pv4) memd($Rs32) = $Rtt32", 20039tc_8035e91f, TypeMAPPING> { 20040let isPseudo = 1; 20041let isCodeGenOnly = 1; 20042} 20043def S2_pstorerdfnew_pi : HInst< 20044(outs IntRegs:$Rx32), 20045(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20046"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20047tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20048let Inst{2-2} = 0b1; 20049let Inst{7-7} = 0b1; 20050let Inst{13-13} = 0b1; 20051let Inst{31-21} = 0b10101011110; 20052let isPredicated = 1; 20053let isPredicatedFalse = 1; 20054let addrMode = PostInc; 20055let accessSize = DoubleWordAccess; 20056let isPredicatedNew = 1; 20057let mayStore = 1; 20058let BaseOpcode = "S2_storerd_pi"; 20059let CextOpcode = "S2_storerd"; 20060let Constraints = "$Rx32 = $Rx32in"; 20061} 20062def S2_pstorerdt_io : HInst< 20063(outs), 20064(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 20065"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32", 20066tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 20067let Inst{2-2} = 0b0; 20068let Inst{31-21} = 0b01000000110; 20069let isPredicated = 1; 20070let addrMode = BaseImmOffset; 20071let accessSize = DoubleWordAccess; 20072let mayStore = 1; 20073let BaseOpcode = "S2_storerd_io"; 20074let CextOpcode = "S2_storerd"; 20075let InputType = "imm"; 20076let isExtendable = 1; 20077let opExtendable = 2; 20078let isExtentSigned = 0; 20079let opExtentBits = 9; 20080let opExtentAlign = 3; 20081} 20082def S2_pstorerdt_pi : HInst< 20083(outs IntRegs:$Rx32), 20084(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20085"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32", 20086tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 20087let Inst{2-2} = 0b0; 20088let Inst{7-7} = 0b0; 20089let Inst{13-13} = 0b1; 20090let Inst{31-21} = 0b10101011110; 20091let isPredicated = 1; 20092let addrMode = PostInc; 20093let accessSize = DoubleWordAccess; 20094let mayStore = 1; 20095let BaseOpcode = "S2_storerd_pi"; 20096let CextOpcode = "S2_storerd"; 20097let Constraints = "$Rx32 = $Rx32in"; 20098} 20099def S2_pstorerdt_zomap : HInst< 20100(outs), 20101(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 20102"if ($Pv4) memd($Rs32) = $Rtt32", 20103tc_8035e91f, TypeMAPPING> { 20104let isPseudo = 1; 20105let isCodeGenOnly = 1; 20106} 20107def S2_pstorerdtnew_pi : HInst< 20108(outs IntRegs:$Rx32), 20109(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20110"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20111tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20112let Inst{2-2} = 0b0; 20113let Inst{7-7} = 0b1; 20114let Inst{13-13} = 0b1; 20115let Inst{31-21} = 0b10101011110; 20116let isPredicated = 1; 20117let addrMode = PostInc; 20118let accessSize = DoubleWordAccess; 20119let isPredicatedNew = 1; 20120let mayStore = 1; 20121let BaseOpcode = "S2_storerd_pi"; 20122let CextOpcode = "S2_storerd"; 20123let Constraints = "$Rx32 = $Rx32in"; 20124} 20125def S2_pstorerff_io : HInst< 20126(outs), 20127(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20128"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20129tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20130let Inst{2-2} = 0b0; 20131let Inst{31-21} = 0b01000100011; 20132let isPredicated = 1; 20133let isPredicatedFalse = 1; 20134let addrMode = BaseImmOffset; 20135let accessSize = HalfWordAccess; 20136let mayStore = 1; 20137let BaseOpcode = "S2_storerf_io"; 20138let CextOpcode = "S2_storerf"; 20139let InputType = "imm"; 20140let isExtendable = 1; 20141let opExtendable = 2; 20142let isExtentSigned = 0; 20143let opExtentBits = 7; 20144let opExtentAlign = 1; 20145} 20146def S2_pstorerff_pi : HInst< 20147(outs IntRegs:$Rx32), 20148(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20149"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20150tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20151let Inst{2-2} = 0b1; 20152let Inst{7-7} = 0b0; 20153let Inst{13-13} = 0b1; 20154let Inst{31-21} = 0b10101011011; 20155let isPredicated = 1; 20156let isPredicatedFalse = 1; 20157let addrMode = PostInc; 20158let accessSize = HalfWordAccess; 20159let mayStore = 1; 20160let BaseOpcode = "S2_storerf_pi"; 20161let CextOpcode = "S2_storerf"; 20162let Constraints = "$Rx32 = $Rx32in"; 20163} 20164def S2_pstorerff_zomap : HInst< 20165(outs), 20166(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20167"if (!$Pv4) memh($Rs32) = $Rt32.h", 20168tc_8035e91f, TypeMAPPING> { 20169let isPseudo = 1; 20170let isCodeGenOnly = 1; 20171} 20172def S2_pstorerffnew_pi : HInst< 20173(outs IntRegs:$Rx32), 20174(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20175"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20176tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20177let Inst{2-2} = 0b1; 20178let Inst{7-7} = 0b1; 20179let Inst{13-13} = 0b1; 20180let Inst{31-21} = 0b10101011011; 20181let isPredicated = 1; 20182let isPredicatedFalse = 1; 20183let addrMode = PostInc; 20184let accessSize = HalfWordAccess; 20185let isPredicatedNew = 1; 20186let mayStore = 1; 20187let BaseOpcode = "S2_storerf_pi"; 20188let CextOpcode = "S2_storerf"; 20189let Constraints = "$Rx32 = $Rx32in"; 20190} 20191def S2_pstorerft_io : HInst< 20192(outs), 20193(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20194"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20195tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20196let Inst{2-2} = 0b0; 20197let Inst{31-21} = 0b01000000011; 20198let isPredicated = 1; 20199let addrMode = BaseImmOffset; 20200let accessSize = HalfWordAccess; 20201let mayStore = 1; 20202let BaseOpcode = "S2_storerf_io"; 20203let CextOpcode = "S2_storerf"; 20204let InputType = "imm"; 20205let isExtendable = 1; 20206let opExtendable = 2; 20207let isExtentSigned = 0; 20208let opExtentBits = 7; 20209let opExtentAlign = 1; 20210} 20211def S2_pstorerft_pi : HInst< 20212(outs IntRegs:$Rx32), 20213(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20214"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20215tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20216let Inst{2-2} = 0b0; 20217let Inst{7-7} = 0b0; 20218let Inst{13-13} = 0b1; 20219let Inst{31-21} = 0b10101011011; 20220let isPredicated = 1; 20221let addrMode = PostInc; 20222let accessSize = HalfWordAccess; 20223let mayStore = 1; 20224let BaseOpcode = "S2_storerf_pi"; 20225let CextOpcode = "S2_storerf"; 20226let Constraints = "$Rx32 = $Rx32in"; 20227} 20228def S2_pstorerft_zomap : HInst< 20229(outs), 20230(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20231"if ($Pv4) memh($Rs32) = $Rt32.h", 20232tc_8035e91f, TypeMAPPING> { 20233let isPseudo = 1; 20234let isCodeGenOnly = 1; 20235} 20236def S2_pstorerftnew_pi : HInst< 20237(outs IntRegs:$Rx32), 20238(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20239"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20240tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20241let Inst{2-2} = 0b0; 20242let Inst{7-7} = 0b1; 20243let Inst{13-13} = 0b1; 20244let Inst{31-21} = 0b10101011011; 20245let isPredicated = 1; 20246let addrMode = PostInc; 20247let accessSize = HalfWordAccess; 20248let isPredicatedNew = 1; 20249let mayStore = 1; 20250let BaseOpcode = "S2_storerf_pi"; 20251let CextOpcode = "S2_storerf"; 20252let Constraints = "$Rx32 = $Rx32in"; 20253} 20254def S2_pstorerhf_io : HInst< 20255(outs), 20256(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20257"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32", 20258tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20259let Inst{2-2} = 0b0; 20260let Inst{31-21} = 0b01000100010; 20261let isPredicated = 1; 20262let isPredicatedFalse = 1; 20263let addrMode = BaseImmOffset; 20264let accessSize = HalfWordAccess; 20265let mayStore = 1; 20266let BaseOpcode = "S2_storerh_io"; 20267let CextOpcode = "S2_storerh"; 20268let InputType = "imm"; 20269let isNVStorable = 1; 20270let isExtendable = 1; 20271let opExtendable = 2; 20272let isExtentSigned = 0; 20273let opExtentBits = 7; 20274let opExtentAlign = 1; 20275} 20276def S2_pstorerhf_pi : HInst< 20277(outs IntRegs:$Rx32), 20278(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20279"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32", 20280tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20281let Inst{2-2} = 0b1; 20282let Inst{7-7} = 0b0; 20283let Inst{13-13} = 0b1; 20284let Inst{31-21} = 0b10101011010; 20285let isPredicated = 1; 20286let isPredicatedFalse = 1; 20287let addrMode = PostInc; 20288let accessSize = HalfWordAccess; 20289let mayStore = 1; 20290let BaseOpcode = "S2_storerh_pi"; 20291let isNVStorable = 1; 20292let Constraints = "$Rx32 = $Rx32in"; 20293} 20294def S2_pstorerhf_zomap : HInst< 20295(outs), 20296(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20297"if (!$Pv4) memh($Rs32) = $Rt32", 20298tc_8035e91f, TypeMAPPING> { 20299let isPseudo = 1; 20300let isCodeGenOnly = 1; 20301} 20302def S2_pstorerhfnew_pi : HInst< 20303(outs IntRegs:$Rx32), 20304(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20305"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20306tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20307let Inst{2-2} = 0b1; 20308let Inst{7-7} = 0b1; 20309let Inst{13-13} = 0b1; 20310let Inst{31-21} = 0b10101011010; 20311let isPredicated = 1; 20312let isPredicatedFalse = 1; 20313let addrMode = PostInc; 20314let accessSize = HalfWordAccess; 20315let isPredicatedNew = 1; 20316let mayStore = 1; 20317let BaseOpcode = "S2_storerh_pi"; 20318let isNVStorable = 1; 20319let Constraints = "$Rx32 = $Rx32in"; 20320} 20321def S2_pstorerhnewf_io : HInst< 20322(outs), 20323(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20324"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20325tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20326let Inst{2-2} = 0b0; 20327let Inst{12-11} = 0b01; 20328let Inst{31-21} = 0b01000100101; 20329let isPredicated = 1; 20330let isPredicatedFalse = 1; 20331let addrMode = BaseImmOffset; 20332let accessSize = HalfWordAccess; 20333let isNVStore = 1; 20334let isNewValue = 1; 20335let isRestrictNoSlot1Store = 1; 20336let mayStore = 1; 20337let BaseOpcode = "S2_storerh_io"; 20338let CextOpcode = "S2_storerh"; 20339let InputType = "imm"; 20340let isExtendable = 1; 20341let opExtendable = 2; 20342let isExtentSigned = 0; 20343let opExtentBits = 7; 20344let opExtentAlign = 1; 20345let opNewValue = 3; 20346} 20347def S2_pstorerhnewf_pi : HInst< 20348(outs IntRegs:$Rx32), 20349(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20350"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20351tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20352let Inst{2-2} = 0b1; 20353let Inst{7-7} = 0b0; 20354let Inst{13-11} = 0b101; 20355let Inst{31-21} = 0b10101011101; 20356let isPredicated = 1; 20357let isPredicatedFalse = 1; 20358let addrMode = PostInc; 20359let accessSize = HalfWordAccess; 20360let isNVStore = 1; 20361let isNewValue = 1; 20362let isRestrictNoSlot1Store = 1; 20363let mayStore = 1; 20364let BaseOpcode = "S2_storerh_pi"; 20365let CextOpcode = "S2_storerh"; 20366let opNewValue = 4; 20367let Constraints = "$Rx32 = $Rx32in"; 20368} 20369def S2_pstorerhnewf_zomap : HInst< 20370(outs), 20371(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20372"if (!$Pv4) memh($Rs32) = $Nt8.new", 20373tc_011e0e9d, TypeMAPPING> { 20374let isPseudo = 1; 20375let isCodeGenOnly = 1; 20376let opNewValue = 2; 20377} 20378def S2_pstorerhnewfnew_pi : HInst< 20379(outs IntRegs:$Rx32), 20380(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20381"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20382tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20383let Inst{2-2} = 0b1; 20384let Inst{7-7} = 0b1; 20385let Inst{13-11} = 0b101; 20386let Inst{31-21} = 0b10101011101; 20387let isPredicated = 1; 20388let isPredicatedFalse = 1; 20389let addrMode = PostInc; 20390let accessSize = HalfWordAccess; 20391let isNVStore = 1; 20392let isPredicatedNew = 1; 20393let isNewValue = 1; 20394let isRestrictNoSlot1Store = 1; 20395let mayStore = 1; 20396let BaseOpcode = "S2_storerh_pi"; 20397let CextOpcode = "S2_storerh"; 20398let opNewValue = 4; 20399let Constraints = "$Rx32 = $Rx32in"; 20400} 20401def S2_pstorerhnewt_io : HInst< 20402(outs), 20403(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20404"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20405tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20406let Inst{2-2} = 0b0; 20407let Inst{12-11} = 0b01; 20408let Inst{31-21} = 0b01000000101; 20409let isPredicated = 1; 20410let addrMode = BaseImmOffset; 20411let accessSize = HalfWordAccess; 20412let isNVStore = 1; 20413let isNewValue = 1; 20414let isRestrictNoSlot1Store = 1; 20415let mayStore = 1; 20416let BaseOpcode = "S2_storerh_io"; 20417let CextOpcode = "S2_storerh"; 20418let InputType = "imm"; 20419let isExtendable = 1; 20420let opExtendable = 2; 20421let isExtentSigned = 0; 20422let opExtentBits = 7; 20423let opExtentAlign = 1; 20424let opNewValue = 3; 20425} 20426def S2_pstorerhnewt_pi : HInst< 20427(outs IntRegs:$Rx32), 20428(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20429"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20430tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20431let Inst{2-2} = 0b0; 20432let Inst{7-7} = 0b0; 20433let Inst{13-11} = 0b101; 20434let Inst{31-21} = 0b10101011101; 20435let isPredicated = 1; 20436let addrMode = PostInc; 20437let accessSize = HalfWordAccess; 20438let isNVStore = 1; 20439let isNewValue = 1; 20440let isRestrictNoSlot1Store = 1; 20441let mayStore = 1; 20442let BaseOpcode = "S2_storerh_pi"; 20443let CextOpcode = "S2_storerh"; 20444let opNewValue = 4; 20445let Constraints = "$Rx32 = $Rx32in"; 20446} 20447def S2_pstorerhnewt_zomap : HInst< 20448(outs), 20449(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20450"if ($Pv4) memh($Rs32) = $Nt8.new", 20451tc_011e0e9d, TypeMAPPING> { 20452let isPseudo = 1; 20453let isCodeGenOnly = 1; 20454let opNewValue = 2; 20455} 20456def S2_pstorerhnewtnew_pi : HInst< 20457(outs IntRegs:$Rx32), 20458(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20459"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20460tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20461let Inst{2-2} = 0b0; 20462let Inst{7-7} = 0b1; 20463let Inst{13-11} = 0b101; 20464let Inst{31-21} = 0b10101011101; 20465let isPredicated = 1; 20466let addrMode = PostInc; 20467let accessSize = HalfWordAccess; 20468let isNVStore = 1; 20469let isPredicatedNew = 1; 20470let isNewValue = 1; 20471let isRestrictNoSlot1Store = 1; 20472let mayStore = 1; 20473let BaseOpcode = "S2_storerh_pi"; 20474let CextOpcode = "S2_storerh"; 20475let opNewValue = 4; 20476let Constraints = "$Rx32 = $Rx32in"; 20477} 20478def S2_pstorerht_io : HInst< 20479(outs), 20480(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20481"if ($Pv4) memh($Rs32+#$Ii) = $Rt32", 20482tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20483let Inst{2-2} = 0b0; 20484let Inst{31-21} = 0b01000000010; 20485let isPredicated = 1; 20486let addrMode = BaseImmOffset; 20487let accessSize = HalfWordAccess; 20488let mayStore = 1; 20489let BaseOpcode = "S2_storerh_io"; 20490let CextOpcode = "S2_storerh"; 20491let InputType = "imm"; 20492let isNVStorable = 1; 20493let isExtendable = 1; 20494let opExtendable = 2; 20495let isExtentSigned = 0; 20496let opExtentBits = 7; 20497let opExtentAlign = 1; 20498} 20499def S2_pstorerht_pi : HInst< 20500(outs IntRegs:$Rx32), 20501(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20502"if ($Pv4) memh($Rx32++#$Ii) = $Rt32", 20503tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20504let Inst{2-2} = 0b0; 20505let Inst{7-7} = 0b0; 20506let Inst{13-13} = 0b1; 20507let Inst{31-21} = 0b10101011010; 20508let isPredicated = 1; 20509let addrMode = PostInc; 20510let accessSize = HalfWordAccess; 20511let mayStore = 1; 20512let BaseOpcode = "S2_storerh_pi"; 20513let isNVStorable = 1; 20514let Constraints = "$Rx32 = $Rx32in"; 20515} 20516def S2_pstorerht_zomap : HInst< 20517(outs), 20518(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20519"if ($Pv4) memh($Rs32) = $Rt32", 20520tc_8035e91f, TypeMAPPING> { 20521let isPseudo = 1; 20522let isCodeGenOnly = 1; 20523} 20524def S2_pstorerhtnew_pi : HInst< 20525(outs IntRegs:$Rx32), 20526(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20527"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20528tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20529let Inst{2-2} = 0b0; 20530let Inst{7-7} = 0b1; 20531let Inst{13-13} = 0b1; 20532let Inst{31-21} = 0b10101011010; 20533let isPredicated = 1; 20534let addrMode = PostInc; 20535let accessSize = HalfWordAccess; 20536let isPredicatedNew = 1; 20537let mayStore = 1; 20538let BaseOpcode = "S2_storerh_pi"; 20539let isNVStorable = 1; 20540let Constraints = "$Rx32 = $Rx32in"; 20541} 20542def S2_pstorerif_io : HInst< 20543(outs), 20544(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20545"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32", 20546tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20547let Inst{2-2} = 0b0; 20548let Inst{31-21} = 0b01000100100; 20549let isPredicated = 1; 20550let isPredicatedFalse = 1; 20551let addrMode = BaseImmOffset; 20552let accessSize = WordAccess; 20553let mayStore = 1; 20554let BaseOpcode = "S2_storeri_io"; 20555let CextOpcode = "S2_storeri"; 20556let InputType = "imm"; 20557let isNVStorable = 1; 20558let isExtendable = 1; 20559let opExtendable = 2; 20560let isExtentSigned = 0; 20561let opExtentBits = 8; 20562let opExtentAlign = 2; 20563} 20564def S2_pstorerif_pi : HInst< 20565(outs IntRegs:$Rx32), 20566(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20567"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32", 20568tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20569let Inst{2-2} = 0b1; 20570let Inst{7-7} = 0b0; 20571let Inst{13-13} = 0b1; 20572let Inst{31-21} = 0b10101011100; 20573let isPredicated = 1; 20574let isPredicatedFalse = 1; 20575let addrMode = PostInc; 20576let accessSize = WordAccess; 20577let mayStore = 1; 20578let BaseOpcode = "S2_storeri_pi"; 20579let isNVStorable = 1; 20580let Constraints = "$Rx32 = $Rx32in"; 20581} 20582def S2_pstorerif_zomap : HInst< 20583(outs), 20584(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20585"if (!$Pv4) memw($Rs32) = $Rt32", 20586tc_8035e91f, TypeMAPPING> { 20587let isPseudo = 1; 20588let isCodeGenOnly = 1; 20589} 20590def S2_pstorerifnew_pi : HInst< 20591(outs IntRegs:$Rx32), 20592(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20593"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20594tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20595let Inst{2-2} = 0b1; 20596let Inst{7-7} = 0b1; 20597let Inst{13-13} = 0b1; 20598let Inst{31-21} = 0b10101011100; 20599let isPredicated = 1; 20600let isPredicatedFalse = 1; 20601let addrMode = PostInc; 20602let accessSize = WordAccess; 20603let isPredicatedNew = 1; 20604let mayStore = 1; 20605let BaseOpcode = "S2_storeri_pi"; 20606let CextOpcode = "S2_storeri"; 20607let isNVStorable = 1; 20608let Constraints = "$Rx32 = $Rx32in"; 20609} 20610def S2_pstorerinewf_io : HInst< 20611(outs), 20612(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20613"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20614tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20615let Inst{2-2} = 0b0; 20616let Inst{12-11} = 0b10; 20617let Inst{31-21} = 0b01000100101; 20618let isPredicated = 1; 20619let isPredicatedFalse = 1; 20620let addrMode = BaseImmOffset; 20621let accessSize = WordAccess; 20622let isNVStore = 1; 20623let isNewValue = 1; 20624let isRestrictNoSlot1Store = 1; 20625let mayStore = 1; 20626let BaseOpcode = "S2_storeri_io"; 20627let CextOpcode = "S2_storeri"; 20628let InputType = "imm"; 20629let isExtendable = 1; 20630let opExtendable = 2; 20631let isExtentSigned = 0; 20632let opExtentBits = 8; 20633let opExtentAlign = 2; 20634let opNewValue = 3; 20635} 20636def S2_pstorerinewf_pi : HInst< 20637(outs IntRegs:$Rx32), 20638(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20639"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20640tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20641let Inst{2-2} = 0b1; 20642let Inst{7-7} = 0b0; 20643let Inst{13-11} = 0b110; 20644let Inst{31-21} = 0b10101011101; 20645let isPredicated = 1; 20646let isPredicatedFalse = 1; 20647let addrMode = PostInc; 20648let accessSize = WordAccess; 20649let isNVStore = 1; 20650let isNewValue = 1; 20651let isRestrictNoSlot1Store = 1; 20652let mayStore = 1; 20653let BaseOpcode = "S2_storeri_pi"; 20654let CextOpcode = "S2_storeri"; 20655let opNewValue = 4; 20656let Constraints = "$Rx32 = $Rx32in"; 20657} 20658def S2_pstorerinewf_zomap : HInst< 20659(outs), 20660(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20661"if (!$Pv4) memw($Rs32) = $Nt8.new", 20662tc_011e0e9d, TypeMAPPING> { 20663let isPseudo = 1; 20664let isCodeGenOnly = 1; 20665let opNewValue = 2; 20666} 20667def S2_pstorerinewfnew_pi : HInst< 20668(outs IntRegs:$Rx32), 20669(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20670"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20671tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20672let Inst{2-2} = 0b1; 20673let Inst{7-7} = 0b1; 20674let Inst{13-11} = 0b110; 20675let Inst{31-21} = 0b10101011101; 20676let isPredicated = 1; 20677let isPredicatedFalse = 1; 20678let addrMode = PostInc; 20679let accessSize = WordAccess; 20680let isNVStore = 1; 20681let isPredicatedNew = 1; 20682let isNewValue = 1; 20683let isRestrictNoSlot1Store = 1; 20684let mayStore = 1; 20685let BaseOpcode = "S2_storeri_pi"; 20686let CextOpcode = "S2_storeri"; 20687let opNewValue = 4; 20688let Constraints = "$Rx32 = $Rx32in"; 20689} 20690def S2_pstorerinewt_io : HInst< 20691(outs), 20692(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20693"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20694tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20695let Inst{2-2} = 0b0; 20696let Inst{12-11} = 0b10; 20697let Inst{31-21} = 0b01000000101; 20698let isPredicated = 1; 20699let addrMode = BaseImmOffset; 20700let accessSize = WordAccess; 20701let isNVStore = 1; 20702let isNewValue = 1; 20703let isRestrictNoSlot1Store = 1; 20704let mayStore = 1; 20705let BaseOpcode = "S2_storeri_io"; 20706let CextOpcode = "S2_storeri"; 20707let InputType = "imm"; 20708let isExtendable = 1; 20709let opExtendable = 2; 20710let isExtentSigned = 0; 20711let opExtentBits = 8; 20712let opExtentAlign = 2; 20713let opNewValue = 3; 20714} 20715def S2_pstorerinewt_pi : HInst< 20716(outs IntRegs:$Rx32), 20717(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20718"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20719tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20720let Inst{2-2} = 0b0; 20721let Inst{7-7} = 0b0; 20722let Inst{13-11} = 0b110; 20723let Inst{31-21} = 0b10101011101; 20724let isPredicated = 1; 20725let addrMode = PostInc; 20726let accessSize = WordAccess; 20727let isNVStore = 1; 20728let isNewValue = 1; 20729let isRestrictNoSlot1Store = 1; 20730let mayStore = 1; 20731let BaseOpcode = "S2_storeri_pi"; 20732let CextOpcode = "S2_storeri"; 20733let opNewValue = 4; 20734let Constraints = "$Rx32 = $Rx32in"; 20735} 20736def S2_pstorerinewt_zomap : HInst< 20737(outs), 20738(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20739"if ($Pv4) memw($Rs32) = $Nt8.new", 20740tc_011e0e9d, TypeMAPPING> { 20741let isPseudo = 1; 20742let isCodeGenOnly = 1; 20743let opNewValue = 2; 20744} 20745def S2_pstorerinewtnew_pi : HInst< 20746(outs IntRegs:$Rx32), 20747(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20748"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20749tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20750let Inst{2-2} = 0b0; 20751let Inst{7-7} = 0b1; 20752let Inst{13-11} = 0b110; 20753let Inst{31-21} = 0b10101011101; 20754let isPredicated = 1; 20755let addrMode = PostInc; 20756let accessSize = WordAccess; 20757let isNVStore = 1; 20758let isPredicatedNew = 1; 20759let isNewValue = 1; 20760let isRestrictNoSlot1Store = 1; 20761let mayStore = 1; 20762let BaseOpcode = "S2_storeri_pi"; 20763let CextOpcode = "S2_storeri"; 20764let opNewValue = 4; 20765let Constraints = "$Rx32 = $Rx32in"; 20766} 20767def S2_pstorerit_io : HInst< 20768(outs), 20769(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20770"if ($Pv4) memw($Rs32+#$Ii) = $Rt32", 20771tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20772let Inst{2-2} = 0b0; 20773let Inst{31-21} = 0b01000000100; 20774let isPredicated = 1; 20775let addrMode = BaseImmOffset; 20776let accessSize = WordAccess; 20777let mayStore = 1; 20778let BaseOpcode = "S2_storeri_io"; 20779let CextOpcode = "S2_storeri"; 20780let InputType = "imm"; 20781let isNVStorable = 1; 20782let isExtendable = 1; 20783let opExtendable = 2; 20784let isExtentSigned = 0; 20785let opExtentBits = 8; 20786let opExtentAlign = 2; 20787} 20788def S2_pstorerit_pi : HInst< 20789(outs IntRegs:$Rx32), 20790(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20791"if ($Pv4) memw($Rx32++#$Ii) = $Rt32", 20792tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20793let Inst{2-2} = 0b0; 20794let Inst{7-7} = 0b0; 20795let Inst{13-13} = 0b1; 20796let Inst{31-21} = 0b10101011100; 20797let isPredicated = 1; 20798let addrMode = PostInc; 20799let accessSize = WordAccess; 20800let mayStore = 1; 20801let BaseOpcode = "S2_storeri_pi"; 20802let isNVStorable = 1; 20803let Constraints = "$Rx32 = $Rx32in"; 20804} 20805def S2_pstorerit_zomap : HInst< 20806(outs), 20807(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20808"if ($Pv4) memw($Rs32) = $Rt32", 20809tc_8035e91f, TypeMAPPING> { 20810let isPseudo = 1; 20811let isCodeGenOnly = 1; 20812} 20813def S2_pstoreritnew_pi : HInst< 20814(outs IntRegs:$Rx32), 20815(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20816"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20817tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20818let Inst{2-2} = 0b0; 20819let Inst{7-7} = 0b1; 20820let Inst{13-13} = 0b1; 20821let Inst{31-21} = 0b10101011100; 20822let isPredicated = 1; 20823let addrMode = PostInc; 20824let accessSize = WordAccess; 20825let isPredicatedNew = 1; 20826let mayStore = 1; 20827let BaseOpcode = "S2_storeri_pi"; 20828let isNVStorable = 1; 20829let Constraints = "$Rx32 = $Rx32in"; 20830} 20831def S2_setbit_i : HInst< 20832(outs IntRegs:$Rd32), 20833(ins IntRegs:$Rs32, u5_0Imm:$Ii), 20834"$Rd32 = setbit($Rs32,#$Ii)", 20835tc_5da50c4b, TypeS_2op>, Enc_a05677 { 20836let Inst{7-5} = 0b000; 20837let Inst{13-13} = 0b0; 20838let Inst{31-21} = 0b10001100110; 20839let hasNewValue = 1; 20840let opNewValue = 0; 20841} 20842def S2_setbit_r : HInst< 20843(outs IntRegs:$Rd32), 20844(ins IntRegs:$Rs32, IntRegs:$Rt32), 20845"$Rd32 = setbit($Rs32,$Rt32)", 20846tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 20847let Inst{7-5} = 0b000; 20848let Inst{13-13} = 0b0; 20849let Inst{31-21} = 0b11000110100; 20850let hasNewValue = 1; 20851let opNewValue = 0; 20852} 20853def S2_shuffeb : HInst< 20854(outs DoubleRegs:$Rdd32), 20855(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20856"$Rdd32 = shuffeb($Rss32,$Rtt32)", 20857tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20858let Inst{7-5} = 0b010; 20859let Inst{13-13} = 0b0; 20860let Inst{31-21} = 0b11000001000; 20861} 20862def S2_shuffeh : HInst< 20863(outs DoubleRegs:$Rdd32), 20864(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20865"$Rdd32 = shuffeh($Rss32,$Rtt32)", 20866tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20867let Inst{7-5} = 0b110; 20868let Inst{13-13} = 0b0; 20869let Inst{31-21} = 0b11000001000; 20870} 20871def S2_shuffob : HInst< 20872(outs DoubleRegs:$Rdd32), 20873(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20874"$Rdd32 = shuffob($Rtt32,$Rss32)", 20875tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20876let Inst{7-5} = 0b100; 20877let Inst{13-13} = 0b0; 20878let Inst{31-21} = 0b11000001000; 20879} 20880def S2_shuffoh : HInst< 20881(outs DoubleRegs:$Rdd32), 20882(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20883"$Rdd32 = shuffoh($Rtt32,$Rss32)", 20884tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20885let Inst{7-5} = 0b000; 20886let Inst{13-13} = 0b0; 20887let Inst{31-21} = 0b11000001100; 20888} 20889def S2_storerb_io : HInst< 20890(outs), 20891(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 20892"memb($Rs32+#$Ii) = $Rt32", 20893tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { 20894let Inst{24-21} = 0b1000; 20895let Inst{31-27} = 0b10100; 20896let addrMode = BaseImmOffset; 20897let accessSize = ByteAccess; 20898let mayStore = 1; 20899let BaseOpcode = "S2_storerb_io"; 20900let CextOpcode = "S2_storerb"; 20901let InputType = "imm"; 20902let isNVStorable = 1; 20903let isPredicable = 1; 20904let isExtendable = 1; 20905let opExtendable = 1; 20906let isExtentSigned = 1; 20907let opExtentBits = 11; 20908let opExtentAlign = 0; 20909} 20910def S2_storerb_pbr : HInst< 20911(outs IntRegs:$Rx32), 20912(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20913"memb($Rx32++$Mu2:brev) = $Rt32", 20914tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20915let Inst{7-0} = 0b00000000; 20916let Inst{31-21} = 0b10101111000; 20917let addrMode = PostInc; 20918let accessSize = ByteAccess; 20919let mayStore = 1; 20920let BaseOpcode = "S2_storerb_pbr"; 20921let isNVStorable = 1; 20922let Constraints = "$Rx32 = $Rx32in"; 20923} 20924def S2_storerb_pci : HInst< 20925(outs IntRegs:$Rx32), 20926(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20927"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32", 20928tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel { 20929let Inst{2-0} = 0b000; 20930let Inst{7-7} = 0b0; 20931let Inst{31-21} = 0b10101001000; 20932let addrMode = PostInc; 20933let accessSize = ByteAccess; 20934let mayStore = 1; 20935let Uses = [CS]; 20936let BaseOpcode = "S2_storerb_pci"; 20937let isNVStorable = 1; 20938let Constraints = "$Rx32 = $Rx32in"; 20939} 20940def S2_storerb_pcr : HInst< 20941(outs IntRegs:$Rx32), 20942(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20943"memb($Rx32++I:circ($Mu2)) = $Rt32", 20944tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20945let Inst{7-0} = 0b00000010; 20946let Inst{31-21} = 0b10101001000; 20947let addrMode = PostInc; 20948let accessSize = ByteAccess; 20949let mayStore = 1; 20950let Uses = [CS]; 20951let BaseOpcode = "S2_storerb_pcr"; 20952let isNVStorable = 1; 20953let Constraints = "$Rx32 = $Rx32in"; 20954} 20955def S2_storerb_pi : HInst< 20956(outs IntRegs:$Rx32), 20957(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 20958"memb($Rx32++#$Ii) = $Rt32", 20959tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { 20960let Inst{2-0} = 0b000; 20961let Inst{7-7} = 0b0; 20962let Inst{13-13} = 0b0; 20963let Inst{31-21} = 0b10101011000; 20964let addrMode = PostInc; 20965let accessSize = ByteAccess; 20966let mayStore = 1; 20967let BaseOpcode = "S2_storerb_pi"; 20968let CextOpcode = "S2_storerb"; 20969let isNVStorable = 1; 20970let isPredicable = 1; 20971let Constraints = "$Rx32 = $Rx32in"; 20972} 20973def S2_storerb_pr : HInst< 20974(outs IntRegs:$Rx32), 20975(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20976"memb($Rx32++$Mu2) = $Rt32", 20977tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20978let Inst{7-0} = 0b00000000; 20979let Inst{31-21} = 0b10101101000; 20980let addrMode = PostInc; 20981let accessSize = ByteAccess; 20982let mayStore = 1; 20983let BaseOpcode = "S2_storerb_pr"; 20984let isNVStorable = 1; 20985let Constraints = "$Rx32 = $Rx32in"; 20986} 20987def S2_storerb_zomap : HInst< 20988(outs), 20989(ins IntRegs:$Rs32, IntRegs:$Rt32), 20990"memb($Rs32) = $Rt32", 20991tc_ae5babd7, TypeMAPPING> { 20992let isPseudo = 1; 20993let isCodeGenOnly = 1; 20994} 20995def S2_storerbgp : HInst< 20996(outs), 20997(ins u32_0Imm:$Ii, IntRegs:$Rt32), 20998"memb(gp+#$Ii) = $Rt32", 20999tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 21000let Inst{24-21} = 0b0000; 21001let Inst{31-27} = 0b01001; 21002let accessSize = ByteAccess; 21003let mayStore = 1; 21004let Uses = [GP]; 21005let BaseOpcode = "S2_storerbabs"; 21006let isNVStorable = 1; 21007let isPredicable = 1; 21008let opExtendable = 0; 21009let isExtentSigned = 0; 21010let opExtentBits = 16; 21011let opExtentAlign = 0; 21012} 21013def S2_storerbnew_io : HInst< 21014(outs), 21015(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8), 21016"memb($Rs32+#$Ii) = $Nt8.new", 21017tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel { 21018let Inst{12-11} = 0b00; 21019let Inst{24-21} = 0b1101; 21020let Inst{31-27} = 0b10100; 21021let addrMode = BaseImmOffset; 21022let accessSize = ByteAccess; 21023let isNVStore = 1; 21024let isNewValue = 1; 21025let isRestrictNoSlot1Store = 1; 21026let mayStore = 1; 21027let BaseOpcode = "S2_storerb_io"; 21028let CextOpcode = "S2_storerb"; 21029let InputType = "imm"; 21030let isPredicable = 1; 21031let isExtendable = 1; 21032let opExtendable = 1; 21033let isExtentSigned = 1; 21034let opExtentBits = 11; 21035let opExtentAlign = 0; 21036let opNewValue = 2; 21037} 21038def S2_storerbnew_pbr : HInst< 21039(outs IntRegs:$Rx32), 21040(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21041"memb($Rx32++$Mu2:brev) = $Nt8.new", 21042tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21043let Inst{7-0} = 0b00000000; 21044let Inst{12-11} = 0b00; 21045let Inst{31-21} = 0b10101111101; 21046let addrMode = PostInc; 21047let accessSize = ByteAccess; 21048let isNVStore = 1; 21049let isNewValue = 1; 21050let isRestrictNoSlot1Store = 1; 21051let mayStore = 1; 21052let BaseOpcode = "S2_storerb_pbr"; 21053let opNewValue = 3; 21054let Constraints = "$Rx32 = $Rx32in"; 21055} 21056def S2_storerbnew_pci : HInst< 21057(outs IntRegs:$Rx32), 21058(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21059"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21060tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel { 21061let Inst{2-0} = 0b000; 21062let Inst{7-7} = 0b0; 21063let Inst{12-11} = 0b00; 21064let Inst{31-21} = 0b10101001101; 21065let addrMode = PostInc; 21066let accessSize = ByteAccess; 21067let isNVStore = 1; 21068let isNewValue = 1; 21069let isRestrictNoSlot1Store = 1; 21070let mayStore = 1; 21071let Uses = [CS]; 21072let BaseOpcode = "S2_storerb_pci"; 21073let opNewValue = 4; 21074let Constraints = "$Rx32 = $Rx32in"; 21075} 21076def S2_storerbnew_pcr : HInst< 21077(outs IntRegs:$Rx32), 21078(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21079"memb($Rx32++I:circ($Mu2)) = $Nt8.new", 21080tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21081let Inst{7-0} = 0b00000010; 21082let Inst{12-11} = 0b00; 21083let Inst{31-21} = 0b10101001101; 21084let addrMode = PostInc; 21085let accessSize = ByteAccess; 21086let isNVStore = 1; 21087let isNewValue = 1; 21088let isRestrictNoSlot1Store = 1; 21089let mayStore = 1; 21090let Uses = [CS]; 21091let BaseOpcode = "S2_storerb_pcr"; 21092let opNewValue = 3; 21093let Constraints = "$Rx32 = $Rx32in"; 21094} 21095def S2_storerbnew_pi : HInst< 21096(outs IntRegs:$Rx32), 21097(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 21098"memb($Rx32++#$Ii) = $Nt8.new", 21099tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel { 21100let Inst{2-0} = 0b000; 21101let Inst{7-7} = 0b0; 21102let Inst{13-11} = 0b000; 21103let Inst{31-21} = 0b10101011101; 21104let addrMode = PostInc; 21105let accessSize = ByteAccess; 21106let isNVStore = 1; 21107let isNewValue = 1; 21108let isRestrictNoSlot1Store = 1; 21109let mayStore = 1; 21110let BaseOpcode = "S2_storerb_pi"; 21111let isNVStorable = 1; 21112let isPredicable = 1; 21113let opNewValue = 3; 21114let Constraints = "$Rx32 = $Rx32in"; 21115} 21116def S2_storerbnew_pr : HInst< 21117(outs IntRegs:$Rx32), 21118(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21119"memb($Rx32++$Mu2) = $Nt8.new", 21120tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21121let Inst{7-0} = 0b00000000; 21122let Inst{12-11} = 0b00; 21123let Inst{31-21} = 0b10101101101; 21124let addrMode = PostInc; 21125let accessSize = ByteAccess; 21126let isNVStore = 1; 21127let isNewValue = 1; 21128let isRestrictNoSlot1Store = 1; 21129let mayStore = 1; 21130let BaseOpcode = "S2_storerb_pr"; 21131let opNewValue = 3; 21132let Constraints = "$Rx32 = $Rx32in"; 21133} 21134def S2_storerbnew_zomap : HInst< 21135(outs), 21136(ins IntRegs:$Rs32, IntRegs:$Nt8), 21137"memb($Rs32) = $Nt8.new", 21138tc_5deb5e47, TypeMAPPING> { 21139let isPseudo = 1; 21140let isCodeGenOnly = 1; 21141let opNewValue = 1; 21142} 21143def S2_storerbnewgp : HInst< 21144(outs), 21145(ins u32_0Imm:$Ii, IntRegs:$Nt8), 21146"memb(gp+#$Ii) = $Nt8.new", 21147tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 21148let Inst{12-11} = 0b00; 21149let Inst{24-21} = 0b0101; 21150let Inst{31-27} = 0b01001; 21151let accessSize = ByteAccess; 21152let isNVStore = 1; 21153let isNewValue = 1; 21154let isRestrictNoSlot1Store = 1; 21155let mayStore = 1; 21156let Uses = [GP]; 21157let BaseOpcode = "S2_storerbabs"; 21158let isPredicable = 1; 21159let opExtendable = 0; 21160let isExtentSigned = 0; 21161let opExtentBits = 16; 21162let opExtentAlign = 0; 21163let opNewValue = 1; 21164} 21165def S2_storerd_io : HInst< 21166(outs), 21167(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 21168"memd($Rs32+#$Ii) = $Rtt32", 21169tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { 21170let Inst{24-21} = 0b1110; 21171let Inst{31-27} = 0b10100; 21172let addrMode = BaseImmOffset; 21173let accessSize = DoubleWordAccess; 21174let mayStore = 1; 21175let BaseOpcode = "S2_storerd_io"; 21176let CextOpcode = "S2_storerd"; 21177let InputType = "imm"; 21178let isPredicable = 1; 21179let isExtendable = 1; 21180let opExtendable = 1; 21181let isExtentSigned = 1; 21182let opExtentBits = 14; 21183let opExtentAlign = 3; 21184} 21185def S2_storerd_pbr : HInst< 21186(outs IntRegs:$Rx32), 21187(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21188"memd($Rx32++$Mu2:brev) = $Rtt32", 21189tc_a2b365d2, TypeST>, Enc_928ca1 { 21190let Inst{7-0} = 0b00000000; 21191let Inst{31-21} = 0b10101111110; 21192let addrMode = PostInc; 21193let accessSize = DoubleWordAccess; 21194let mayStore = 1; 21195let Constraints = "$Rx32 = $Rx32in"; 21196} 21197def S2_storerd_pci : HInst< 21198(outs IntRegs:$Rx32), 21199(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21200"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32", 21201tc_b4dc7630, TypeST>, Enc_395cc4 { 21202let Inst{2-0} = 0b000; 21203let Inst{7-7} = 0b0; 21204let Inst{31-21} = 0b10101001110; 21205let addrMode = PostInc; 21206let accessSize = DoubleWordAccess; 21207let mayStore = 1; 21208let Uses = [CS]; 21209let Constraints = "$Rx32 = $Rx32in"; 21210} 21211def S2_storerd_pcr : HInst< 21212(outs IntRegs:$Rx32), 21213(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21214"memd($Rx32++I:circ($Mu2)) = $Rtt32", 21215tc_a2b365d2, TypeST>, Enc_928ca1 { 21216let Inst{7-0} = 0b00000010; 21217let Inst{31-21} = 0b10101001110; 21218let addrMode = PostInc; 21219let accessSize = DoubleWordAccess; 21220let mayStore = 1; 21221let Uses = [CS]; 21222let Constraints = "$Rx32 = $Rx32in"; 21223} 21224def S2_storerd_pi : HInst< 21225(outs IntRegs:$Rx32), 21226(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 21227"memd($Rx32++#$Ii) = $Rtt32", 21228tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { 21229let Inst{2-0} = 0b000; 21230let Inst{7-7} = 0b0; 21231let Inst{13-13} = 0b0; 21232let Inst{31-21} = 0b10101011110; 21233let addrMode = PostInc; 21234let accessSize = DoubleWordAccess; 21235let mayStore = 1; 21236let BaseOpcode = "S2_storerd_pi"; 21237let CextOpcode = "S2_storerd"; 21238let isPredicable = 1; 21239let Constraints = "$Rx32 = $Rx32in"; 21240} 21241def S2_storerd_pr : HInst< 21242(outs IntRegs:$Rx32), 21243(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21244"memd($Rx32++$Mu2) = $Rtt32", 21245tc_a2b365d2, TypeST>, Enc_928ca1 { 21246let Inst{7-0} = 0b00000000; 21247let Inst{31-21} = 0b10101101110; 21248let addrMode = PostInc; 21249let accessSize = DoubleWordAccess; 21250let mayStore = 1; 21251let Constraints = "$Rx32 = $Rx32in"; 21252} 21253def S2_storerd_zomap : HInst< 21254(outs), 21255(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 21256"memd($Rs32) = $Rtt32", 21257tc_ae5babd7, TypeMAPPING> { 21258let isPseudo = 1; 21259let isCodeGenOnly = 1; 21260} 21261def S2_storerdgp : HInst< 21262(outs), 21263(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 21264"memd(gp+#$Ii) = $Rtt32", 21265tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 21266let Inst{24-21} = 0b0110; 21267let Inst{31-27} = 0b01001; 21268let accessSize = DoubleWordAccess; 21269let mayStore = 1; 21270let Uses = [GP]; 21271let BaseOpcode = "S2_storerdabs"; 21272let isPredicable = 1; 21273let opExtendable = 0; 21274let isExtentSigned = 0; 21275let opExtentBits = 19; 21276let opExtentAlign = 3; 21277} 21278def S2_storerf_io : HInst< 21279(outs), 21280(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21281"memh($Rs32+#$Ii) = $Rt32.h", 21282tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21283let Inst{24-21} = 0b1011; 21284let Inst{31-27} = 0b10100; 21285let addrMode = BaseImmOffset; 21286let accessSize = HalfWordAccess; 21287let mayStore = 1; 21288let BaseOpcode = "S2_storerf_io"; 21289let CextOpcode = "S2_storerf"; 21290let InputType = "imm"; 21291let isPredicable = 1; 21292let isExtendable = 1; 21293let opExtendable = 1; 21294let isExtentSigned = 1; 21295let opExtentBits = 12; 21296let opExtentAlign = 1; 21297} 21298def S2_storerf_pbr : HInst< 21299(outs IntRegs:$Rx32), 21300(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21301"memh($Rx32++$Mu2:brev) = $Rt32.h", 21302tc_a2b365d2, TypeST>, Enc_d5c73f { 21303let Inst{7-0} = 0b00000000; 21304let Inst{31-21} = 0b10101111011; 21305let addrMode = PostInc; 21306let accessSize = HalfWordAccess; 21307let mayStore = 1; 21308let Constraints = "$Rx32 = $Rx32in"; 21309} 21310def S2_storerf_pci : HInst< 21311(outs IntRegs:$Rx32), 21312(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21313"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h", 21314tc_b4dc7630, TypeST>, Enc_935d9b { 21315let Inst{2-0} = 0b000; 21316let Inst{7-7} = 0b0; 21317let Inst{31-21} = 0b10101001011; 21318let addrMode = PostInc; 21319let accessSize = HalfWordAccess; 21320let mayStore = 1; 21321let Uses = [CS]; 21322let Constraints = "$Rx32 = $Rx32in"; 21323} 21324def S2_storerf_pcr : HInst< 21325(outs IntRegs:$Rx32), 21326(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21327"memh($Rx32++I:circ($Mu2)) = $Rt32.h", 21328tc_a2b365d2, TypeST>, Enc_d5c73f { 21329let Inst{7-0} = 0b00000010; 21330let Inst{31-21} = 0b10101001011; 21331let addrMode = PostInc; 21332let accessSize = HalfWordAccess; 21333let mayStore = 1; 21334let Uses = [CS]; 21335let Constraints = "$Rx32 = $Rx32in"; 21336} 21337def S2_storerf_pi : HInst< 21338(outs IntRegs:$Rx32), 21339(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21340"memh($Rx32++#$Ii) = $Rt32.h", 21341tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21342let Inst{2-0} = 0b000; 21343let Inst{7-7} = 0b0; 21344let Inst{13-13} = 0b0; 21345let Inst{31-21} = 0b10101011011; 21346let addrMode = PostInc; 21347let accessSize = HalfWordAccess; 21348let mayStore = 1; 21349let BaseOpcode = "S2_storerf_pi"; 21350let CextOpcode = "S2_storerf"; 21351let isPredicable = 1; 21352let Constraints = "$Rx32 = $Rx32in"; 21353} 21354def S2_storerf_pr : HInst< 21355(outs IntRegs:$Rx32), 21356(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21357"memh($Rx32++$Mu2) = $Rt32.h", 21358tc_a2b365d2, TypeST>, Enc_d5c73f { 21359let Inst{7-0} = 0b00000000; 21360let Inst{31-21} = 0b10101101011; 21361let addrMode = PostInc; 21362let accessSize = HalfWordAccess; 21363let mayStore = 1; 21364let Constraints = "$Rx32 = $Rx32in"; 21365} 21366def S2_storerf_zomap : HInst< 21367(outs), 21368(ins IntRegs:$Rs32, IntRegs:$Rt32), 21369"memh($Rs32) = $Rt32.h", 21370tc_ae5babd7, TypeMAPPING> { 21371let isPseudo = 1; 21372let isCodeGenOnly = 1; 21373} 21374def S2_storerfgp : HInst< 21375(outs), 21376(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21377"memh(gp+#$Ii) = $Rt32.h", 21378tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21379let Inst{24-21} = 0b0011; 21380let Inst{31-27} = 0b01001; 21381let accessSize = HalfWordAccess; 21382let mayStore = 1; 21383let Uses = [GP]; 21384let BaseOpcode = "S2_storerfabs"; 21385let isPredicable = 1; 21386let opExtendable = 0; 21387let isExtentSigned = 0; 21388let opExtentBits = 17; 21389let opExtentAlign = 1; 21390} 21391def S2_storerh_io : HInst< 21392(outs), 21393(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21394"memh($Rs32+#$Ii) = $Rt32", 21395tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21396let Inst{24-21} = 0b1010; 21397let Inst{31-27} = 0b10100; 21398let addrMode = BaseImmOffset; 21399let accessSize = HalfWordAccess; 21400let mayStore = 1; 21401let BaseOpcode = "S2_storerh_io"; 21402let CextOpcode = "S2_storerh"; 21403let InputType = "imm"; 21404let isNVStorable = 1; 21405let isPredicable = 1; 21406let isExtendable = 1; 21407let opExtendable = 1; 21408let isExtentSigned = 1; 21409let opExtentBits = 12; 21410let opExtentAlign = 1; 21411} 21412def S2_storerh_pbr : HInst< 21413(outs IntRegs:$Rx32), 21414(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21415"memh($Rx32++$Mu2:brev) = $Rt32", 21416tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21417let Inst{7-0} = 0b00000000; 21418let Inst{31-21} = 0b10101111010; 21419let addrMode = PostInc; 21420let accessSize = HalfWordAccess; 21421let mayStore = 1; 21422let BaseOpcode = "S2_storerh_pbr"; 21423let isNVStorable = 1; 21424let Constraints = "$Rx32 = $Rx32in"; 21425} 21426def S2_storerh_pci : HInst< 21427(outs IntRegs:$Rx32), 21428(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21429"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21430tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel { 21431let Inst{2-0} = 0b000; 21432let Inst{7-7} = 0b0; 21433let Inst{31-21} = 0b10101001010; 21434let addrMode = PostInc; 21435let accessSize = HalfWordAccess; 21436let mayStore = 1; 21437let Uses = [CS]; 21438let BaseOpcode = "S2_storerh_pci"; 21439let isNVStorable = 1; 21440let Constraints = "$Rx32 = $Rx32in"; 21441} 21442def S2_storerh_pcr : HInst< 21443(outs IntRegs:$Rx32), 21444(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21445"memh($Rx32++I:circ($Mu2)) = $Rt32", 21446tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21447let Inst{7-0} = 0b00000010; 21448let Inst{31-21} = 0b10101001010; 21449let addrMode = PostInc; 21450let accessSize = HalfWordAccess; 21451let mayStore = 1; 21452let Uses = [CS]; 21453let BaseOpcode = "S2_storerh_pcr"; 21454let isNVStorable = 1; 21455let Constraints = "$Rx32 = $Rx32in"; 21456} 21457def S2_storerh_pi : HInst< 21458(outs IntRegs:$Rx32), 21459(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21460"memh($Rx32++#$Ii) = $Rt32", 21461tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21462let Inst{2-0} = 0b000; 21463let Inst{7-7} = 0b0; 21464let Inst{13-13} = 0b0; 21465let Inst{31-21} = 0b10101011010; 21466let addrMode = PostInc; 21467let accessSize = HalfWordAccess; 21468let mayStore = 1; 21469let BaseOpcode = "S2_storerh_pi"; 21470let CextOpcode = "S2_storerh"; 21471let isNVStorable = 1; 21472let isPredicable = 1; 21473let Constraints = "$Rx32 = $Rx32in"; 21474} 21475def S2_storerh_pr : HInst< 21476(outs IntRegs:$Rx32), 21477(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21478"memh($Rx32++$Mu2) = $Rt32", 21479tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21480let Inst{7-0} = 0b00000000; 21481let Inst{31-21} = 0b10101101010; 21482let addrMode = PostInc; 21483let accessSize = HalfWordAccess; 21484let mayStore = 1; 21485let BaseOpcode = "S2_storerh_pr"; 21486let isNVStorable = 1; 21487let Constraints = "$Rx32 = $Rx32in"; 21488} 21489def S2_storerh_zomap : HInst< 21490(outs), 21491(ins IntRegs:$Rs32, IntRegs:$Rt32), 21492"memh($Rs32) = $Rt32", 21493tc_ae5babd7, TypeMAPPING> { 21494let isPseudo = 1; 21495let isCodeGenOnly = 1; 21496} 21497def S2_storerhgp : HInst< 21498(outs), 21499(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21500"memh(gp+#$Ii) = $Rt32", 21501tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21502let Inst{24-21} = 0b0010; 21503let Inst{31-27} = 0b01001; 21504let accessSize = HalfWordAccess; 21505let mayStore = 1; 21506let Uses = [GP]; 21507let BaseOpcode = "S2_storerhabs"; 21508let isNVStorable = 1; 21509let isPredicable = 1; 21510let opExtendable = 0; 21511let isExtentSigned = 0; 21512let opExtentBits = 17; 21513let opExtentAlign = 1; 21514} 21515def S2_storerhnew_io : HInst< 21516(outs), 21517(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8), 21518"memh($Rs32+#$Ii) = $Nt8.new", 21519tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel { 21520let Inst{12-11} = 0b01; 21521let Inst{24-21} = 0b1101; 21522let Inst{31-27} = 0b10100; 21523let addrMode = BaseImmOffset; 21524let accessSize = HalfWordAccess; 21525let isNVStore = 1; 21526let isNewValue = 1; 21527let isRestrictNoSlot1Store = 1; 21528let mayStore = 1; 21529let BaseOpcode = "S2_storerh_io"; 21530let CextOpcode = "S2_storerh"; 21531let InputType = "imm"; 21532let isPredicable = 1; 21533let isExtendable = 1; 21534let opExtendable = 1; 21535let isExtentSigned = 1; 21536let opExtentBits = 12; 21537let opExtentAlign = 1; 21538let opNewValue = 2; 21539} 21540def S2_storerhnew_pbr : HInst< 21541(outs IntRegs:$Rx32), 21542(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21543"memh($Rx32++$Mu2:brev) = $Nt8.new", 21544tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21545let Inst{7-0} = 0b00000000; 21546let Inst{12-11} = 0b01; 21547let Inst{31-21} = 0b10101111101; 21548let addrMode = PostInc; 21549let accessSize = HalfWordAccess; 21550let isNVStore = 1; 21551let isNewValue = 1; 21552let isRestrictNoSlot1Store = 1; 21553let mayStore = 1; 21554let BaseOpcode = "S2_storerh_pbr"; 21555let opNewValue = 3; 21556let Constraints = "$Rx32 = $Rx32in"; 21557} 21558def S2_storerhnew_pci : HInst< 21559(outs IntRegs:$Rx32), 21560(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21561"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21562tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel { 21563let Inst{2-0} = 0b000; 21564let Inst{7-7} = 0b0; 21565let Inst{12-11} = 0b01; 21566let Inst{31-21} = 0b10101001101; 21567let addrMode = PostInc; 21568let accessSize = HalfWordAccess; 21569let isNVStore = 1; 21570let isNewValue = 1; 21571let isRestrictNoSlot1Store = 1; 21572let mayStore = 1; 21573let Uses = [CS]; 21574let BaseOpcode = "S2_storerh_pci"; 21575let opNewValue = 4; 21576let Constraints = "$Rx32 = $Rx32in"; 21577} 21578def S2_storerhnew_pcr : HInst< 21579(outs IntRegs:$Rx32), 21580(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21581"memh($Rx32++I:circ($Mu2)) = $Nt8.new", 21582tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21583let Inst{7-0} = 0b00000010; 21584let Inst{12-11} = 0b01; 21585let Inst{31-21} = 0b10101001101; 21586let addrMode = PostInc; 21587let accessSize = HalfWordAccess; 21588let isNVStore = 1; 21589let isNewValue = 1; 21590let isRestrictNoSlot1Store = 1; 21591let mayStore = 1; 21592let Uses = [CS]; 21593let BaseOpcode = "S2_storerh_pcr"; 21594let opNewValue = 3; 21595let Constraints = "$Rx32 = $Rx32in"; 21596} 21597def S2_storerhnew_pi : HInst< 21598(outs IntRegs:$Rx32), 21599(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 21600"memh($Rx32++#$Ii) = $Nt8.new", 21601tc_92240447, TypeST>, Enc_e26546, AddrModeRel { 21602let Inst{2-0} = 0b000; 21603let Inst{7-7} = 0b0; 21604let Inst{13-11} = 0b001; 21605let Inst{31-21} = 0b10101011101; 21606let addrMode = PostInc; 21607let accessSize = HalfWordAccess; 21608let isNVStore = 1; 21609let isNewValue = 1; 21610let isRestrictNoSlot1Store = 1; 21611let mayStore = 1; 21612let BaseOpcode = "S2_storerh_pi"; 21613let isNVStorable = 1; 21614let isPredicable = 1; 21615let opNewValue = 3; 21616let Constraints = "$Rx32 = $Rx32in"; 21617} 21618def S2_storerhnew_pr : HInst< 21619(outs IntRegs:$Rx32), 21620(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21621"memh($Rx32++$Mu2) = $Nt8.new", 21622tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21623let Inst{7-0} = 0b00000000; 21624let Inst{12-11} = 0b01; 21625let Inst{31-21} = 0b10101101101; 21626let addrMode = PostInc; 21627let accessSize = HalfWordAccess; 21628let isNVStore = 1; 21629let isNewValue = 1; 21630let isRestrictNoSlot1Store = 1; 21631let mayStore = 1; 21632let BaseOpcode = "S2_storerh_pr"; 21633let opNewValue = 3; 21634let Constraints = "$Rx32 = $Rx32in"; 21635} 21636def S2_storerhnew_zomap : HInst< 21637(outs), 21638(ins IntRegs:$Rs32, IntRegs:$Nt8), 21639"memh($Rs32) = $Nt8.new", 21640tc_5deb5e47, TypeMAPPING> { 21641let isPseudo = 1; 21642let isCodeGenOnly = 1; 21643let opNewValue = 1; 21644} 21645def S2_storerhnewgp : HInst< 21646(outs), 21647(ins u31_1Imm:$Ii, IntRegs:$Nt8), 21648"memh(gp+#$Ii) = $Nt8.new", 21649tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 21650let Inst{12-11} = 0b01; 21651let Inst{24-21} = 0b0101; 21652let Inst{31-27} = 0b01001; 21653let accessSize = HalfWordAccess; 21654let isNVStore = 1; 21655let isNewValue = 1; 21656let isRestrictNoSlot1Store = 1; 21657let mayStore = 1; 21658let Uses = [GP]; 21659let BaseOpcode = "S2_storerhabs"; 21660let isPredicable = 1; 21661let opExtendable = 0; 21662let isExtentSigned = 0; 21663let opExtentBits = 17; 21664let opExtentAlign = 1; 21665let opNewValue = 1; 21666} 21667def S2_storeri_io : HInst< 21668(outs), 21669(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 21670"memw($Rs32+#$Ii) = $Rt32", 21671tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { 21672let Inst{24-21} = 0b1100; 21673let Inst{31-27} = 0b10100; 21674let addrMode = BaseImmOffset; 21675let accessSize = WordAccess; 21676let mayStore = 1; 21677let BaseOpcode = "S2_storeri_io"; 21678let CextOpcode = "S2_storeri"; 21679let InputType = "imm"; 21680let isNVStorable = 1; 21681let isPredicable = 1; 21682let isExtendable = 1; 21683let opExtendable = 1; 21684let isExtentSigned = 1; 21685let opExtentBits = 13; 21686let opExtentAlign = 2; 21687} 21688def S2_storeri_pbr : HInst< 21689(outs IntRegs:$Rx32), 21690(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21691"memw($Rx32++$Mu2:brev) = $Rt32", 21692tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21693let Inst{7-0} = 0b00000000; 21694let Inst{31-21} = 0b10101111100; 21695let addrMode = PostInc; 21696let accessSize = WordAccess; 21697let mayStore = 1; 21698let BaseOpcode = "S2_storeri_pbr"; 21699let isNVStorable = 1; 21700let Constraints = "$Rx32 = $Rx32in"; 21701} 21702def S2_storeri_pci : HInst< 21703(outs IntRegs:$Rx32), 21704(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21705"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21706tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel { 21707let Inst{2-0} = 0b000; 21708let Inst{7-7} = 0b0; 21709let Inst{31-21} = 0b10101001100; 21710let addrMode = PostInc; 21711let accessSize = WordAccess; 21712let mayStore = 1; 21713let Uses = [CS]; 21714let BaseOpcode = "S2_storeri_pci"; 21715let isNVStorable = 1; 21716let Constraints = "$Rx32 = $Rx32in"; 21717} 21718def S2_storeri_pcr : HInst< 21719(outs IntRegs:$Rx32), 21720(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21721"memw($Rx32++I:circ($Mu2)) = $Rt32", 21722tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21723let Inst{7-0} = 0b00000010; 21724let Inst{31-21} = 0b10101001100; 21725let addrMode = PostInc; 21726let accessSize = WordAccess; 21727let mayStore = 1; 21728let Uses = [CS]; 21729let BaseOpcode = "S2_storeri_pcr"; 21730let isNVStorable = 1; 21731let Constraints = "$Rx32 = $Rx32in"; 21732} 21733def S2_storeri_pi : HInst< 21734(outs IntRegs:$Rx32), 21735(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 21736"memw($Rx32++#$Ii) = $Rt32", 21737tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { 21738let Inst{2-0} = 0b000; 21739let Inst{7-7} = 0b0; 21740let Inst{13-13} = 0b0; 21741let Inst{31-21} = 0b10101011100; 21742let addrMode = PostInc; 21743let accessSize = WordAccess; 21744let mayStore = 1; 21745let BaseOpcode = "S2_storeri_pi"; 21746let CextOpcode = "S2_storeri"; 21747let isNVStorable = 1; 21748let isPredicable = 1; 21749let Constraints = "$Rx32 = $Rx32in"; 21750} 21751def S2_storeri_pr : HInst< 21752(outs IntRegs:$Rx32), 21753(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21754"memw($Rx32++$Mu2) = $Rt32", 21755tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21756let Inst{7-0} = 0b00000000; 21757let Inst{31-21} = 0b10101101100; 21758let addrMode = PostInc; 21759let accessSize = WordAccess; 21760let mayStore = 1; 21761let BaseOpcode = "S2_storeri_pr"; 21762let isNVStorable = 1; 21763let Constraints = "$Rx32 = $Rx32in"; 21764} 21765def S2_storeri_zomap : HInst< 21766(outs), 21767(ins IntRegs:$Rs32, IntRegs:$Rt32), 21768"memw($Rs32) = $Rt32", 21769tc_ae5babd7, TypeMAPPING> { 21770let isPseudo = 1; 21771let isCodeGenOnly = 1; 21772} 21773def S2_storerigp : HInst< 21774(outs), 21775(ins u30_2Imm:$Ii, IntRegs:$Rt32), 21776"memw(gp+#$Ii) = $Rt32", 21777tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 21778let Inst{24-21} = 0b0100; 21779let Inst{31-27} = 0b01001; 21780let accessSize = WordAccess; 21781let mayStore = 1; 21782let Uses = [GP]; 21783let BaseOpcode = "S2_storeriabs"; 21784let isNVStorable = 1; 21785let isPredicable = 1; 21786let opExtendable = 0; 21787let isExtentSigned = 0; 21788let opExtentBits = 18; 21789let opExtentAlign = 2; 21790} 21791def S2_storerinew_io : HInst< 21792(outs), 21793(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8), 21794"memw($Rs32+#$Ii) = $Nt8.new", 21795tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel { 21796let Inst{12-11} = 0b10; 21797let Inst{24-21} = 0b1101; 21798let Inst{31-27} = 0b10100; 21799let addrMode = BaseImmOffset; 21800let accessSize = WordAccess; 21801let isNVStore = 1; 21802let isNewValue = 1; 21803let isRestrictNoSlot1Store = 1; 21804let mayStore = 1; 21805let BaseOpcode = "S2_storeri_io"; 21806let CextOpcode = "S2_storeri"; 21807let InputType = "imm"; 21808let isPredicable = 1; 21809let isExtendable = 1; 21810let opExtendable = 1; 21811let isExtentSigned = 1; 21812let opExtentBits = 13; 21813let opExtentAlign = 2; 21814let opNewValue = 2; 21815} 21816def S2_storerinew_pbr : HInst< 21817(outs IntRegs:$Rx32), 21818(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21819"memw($Rx32++$Mu2:brev) = $Nt8.new", 21820tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21821let Inst{7-0} = 0b00000000; 21822let Inst{12-11} = 0b10; 21823let Inst{31-21} = 0b10101111101; 21824let addrMode = PostInc; 21825let accessSize = WordAccess; 21826let isNVStore = 1; 21827let isNewValue = 1; 21828let isRestrictNoSlot1Store = 1; 21829let mayStore = 1; 21830let BaseOpcode = "S2_storeri_pbr"; 21831let opNewValue = 3; 21832let Constraints = "$Rx32 = $Rx32in"; 21833} 21834def S2_storerinew_pci : HInst< 21835(outs IntRegs:$Rx32), 21836(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21837"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21838tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel { 21839let Inst{2-0} = 0b000; 21840let Inst{7-7} = 0b0; 21841let Inst{12-11} = 0b10; 21842let Inst{31-21} = 0b10101001101; 21843let addrMode = PostInc; 21844let accessSize = WordAccess; 21845let isNVStore = 1; 21846let isNewValue = 1; 21847let isRestrictNoSlot1Store = 1; 21848let mayStore = 1; 21849let Uses = [CS]; 21850let BaseOpcode = "S2_storeri_pci"; 21851let opNewValue = 4; 21852let Constraints = "$Rx32 = $Rx32in"; 21853} 21854def S2_storerinew_pcr : HInst< 21855(outs IntRegs:$Rx32), 21856(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21857"memw($Rx32++I:circ($Mu2)) = $Nt8.new", 21858tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21859let Inst{7-0} = 0b00000010; 21860let Inst{12-11} = 0b10; 21861let Inst{31-21} = 0b10101001101; 21862let addrMode = PostInc; 21863let accessSize = WordAccess; 21864let isNVStore = 1; 21865let isNewValue = 1; 21866let isRestrictNoSlot1Store = 1; 21867let mayStore = 1; 21868let Uses = [CS]; 21869let BaseOpcode = "S2_storeri_pcr"; 21870let opNewValue = 3; 21871let Constraints = "$Rx32 = $Rx32in"; 21872} 21873def S2_storerinew_pi : HInst< 21874(outs IntRegs:$Rx32), 21875(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 21876"memw($Rx32++#$Ii) = $Nt8.new", 21877tc_92240447, TypeST>, Enc_223005, AddrModeRel { 21878let Inst{2-0} = 0b000; 21879let Inst{7-7} = 0b0; 21880let Inst{13-11} = 0b010; 21881let Inst{31-21} = 0b10101011101; 21882let addrMode = PostInc; 21883let accessSize = WordAccess; 21884let isNVStore = 1; 21885let isNewValue = 1; 21886let isRestrictNoSlot1Store = 1; 21887let mayStore = 1; 21888let BaseOpcode = "S2_storeri_pi"; 21889let isPredicable = 1; 21890let opNewValue = 3; 21891let Constraints = "$Rx32 = $Rx32in"; 21892} 21893def S2_storerinew_pr : HInst< 21894(outs IntRegs:$Rx32), 21895(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21896"memw($Rx32++$Mu2) = $Nt8.new", 21897tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21898let Inst{7-0} = 0b00000000; 21899let Inst{12-11} = 0b10; 21900let Inst{31-21} = 0b10101101101; 21901let addrMode = PostInc; 21902let accessSize = WordAccess; 21903let isNVStore = 1; 21904let isNewValue = 1; 21905let isRestrictNoSlot1Store = 1; 21906let mayStore = 1; 21907let BaseOpcode = "S2_storeri_pr"; 21908let opNewValue = 3; 21909let Constraints = "$Rx32 = $Rx32in"; 21910} 21911def S2_storerinew_zomap : HInst< 21912(outs), 21913(ins IntRegs:$Rs32, IntRegs:$Nt8), 21914"memw($Rs32) = $Nt8.new", 21915tc_5deb5e47, TypeMAPPING> { 21916let isPseudo = 1; 21917let isCodeGenOnly = 1; 21918let opNewValue = 1; 21919} 21920def S2_storerinewgp : HInst< 21921(outs), 21922(ins u30_2Imm:$Ii, IntRegs:$Nt8), 21923"memw(gp+#$Ii) = $Nt8.new", 21924tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 21925let Inst{12-11} = 0b10; 21926let Inst{24-21} = 0b0101; 21927let Inst{31-27} = 0b01001; 21928let accessSize = WordAccess; 21929let isNVStore = 1; 21930let isNewValue = 1; 21931let isRestrictNoSlot1Store = 1; 21932let mayStore = 1; 21933let Uses = [GP]; 21934let BaseOpcode = "S2_storeriabs"; 21935let isPredicable = 1; 21936let opExtendable = 0; 21937let isExtentSigned = 0; 21938let opExtentBits = 18; 21939let opExtentAlign = 2; 21940let opNewValue = 1; 21941} 21942def S2_storew_locked : HInst< 21943(outs PredRegs:$Pd4), 21944(ins IntRegs:$Rs32, IntRegs:$Rt32), 21945"memw_locked($Rs32,$Pd4) = $Rt32", 21946tc_6f42bc60, TypeST>, Enc_c2b48e { 21947let Inst{7-2} = 0b000000; 21948let Inst{13-13} = 0b0; 21949let Inst{31-21} = 0b10100000101; 21950let accessSize = WordAccess; 21951let isPredicateLate = 1; 21952let isSoloAX = 1; 21953let mayStore = 1; 21954} 21955def S2_storew_rl_at_vi : HInst< 21956(outs), 21957(ins IntRegs:$Rs32, IntRegs:$Rt32), 21958"memw_rl($Rs32):at = $Rt32", 21959tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 21960let Inst{7-2} = 0b000010; 21961let Inst{13-13} = 0b0; 21962let Inst{31-21} = 0b10100000101; 21963let accessSize = WordAccess; 21964let isSolo = 1; 21965let mayStore = 1; 21966} 21967def S2_storew_rl_st_vi : HInst< 21968(outs), 21969(ins IntRegs:$Rs32, IntRegs:$Rt32), 21970"memw_rl($Rs32):st = $Rt32", 21971tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 21972let Inst{7-2} = 0b001010; 21973let Inst{13-13} = 0b0; 21974let Inst{31-21} = 0b10100000101; 21975let accessSize = WordAccess; 21976let isSolo = 1; 21977let mayStore = 1; 21978} 21979def S2_svsathb : HInst< 21980(outs IntRegs:$Rd32), 21981(ins IntRegs:$Rs32), 21982"$Rd32 = vsathb($Rs32)", 21983tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 21984let Inst{13-5} = 0b000000000; 21985let Inst{31-21} = 0b10001100100; 21986let hasNewValue = 1; 21987let opNewValue = 0; 21988let Defs = [USR_OVF]; 21989} 21990def S2_svsathub : HInst< 21991(outs IntRegs:$Rd32), 21992(ins IntRegs:$Rs32), 21993"$Rd32 = vsathub($Rs32)", 21994tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 21995let Inst{13-5} = 0b000000010; 21996let Inst{31-21} = 0b10001100100; 21997let hasNewValue = 1; 21998let opNewValue = 0; 21999let Defs = [USR_OVF]; 22000} 22001def S2_tableidxb : HInst< 22002(outs IntRegs:$Rx32), 22003(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22004"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw", 22005tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22006let Inst{31-22} = 0b1000011100; 22007let hasNewValue = 1; 22008let opNewValue = 0; 22009let prefersSlot3 = 1; 22010let Constraints = "$Rx32 = $Rx32in"; 22011} 22012def S2_tableidxb_goodsyntax : HInst< 22013(outs IntRegs:$Rx32), 22014(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22015"$Rx32 = tableidxb($Rs32,#$Ii,#$II)", 22016tc_bb831a7c, TypeS_2op> { 22017let hasNewValue = 1; 22018let opNewValue = 0; 22019let isPseudo = 1; 22020let isCodeGenOnly = 1; 22021let Constraints = "$Rx32 = $Rx32in"; 22022} 22023def S2_tableidxd : HInst< 22024(outs IntRegs:$Rx32), 22025(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22026"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw", 22027tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22028let Inst{31-22} = 0b1000011111; 22029let hasNewValue = 1; 22030let opNewValue = 0; 22031let prefersSlot3 = 1; 22032let Constraints = "$Rx32 = $Rx32in"; 22033} 22034def S2_tableidxd_goodsyntax : HInst< 22035(outs IntRegs:$Rx32), 22036(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22037"$Rx32 = tableidxd($Rs32,#$Ii,#$II)", 22038tc_bb831a7c, TypeS_2op> { 22039let hasNewValue = 1; 22040let opNewValue = 0; 22041let isPseudo = 1; 22042let Constraints = "$Rx32 = $Rx32in"; 22043} 22044def S2_tableidxh : HInst< 22045(outs IntRegs:$Rx32), 22046(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22047"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw", 22048tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22049let Inst{31-22} = 0b1000011101; 22050let hasNewValue = 1; 22051let opNewValue = 0; 22052let prefersSlot3 = 1; 22053let Constraints = "$Rx32 = $Rx32in"; 22054} 22055def S2_tableidxh_goodsyntax : HInst< 22056(outs IntRegs:$Rx32), 22057(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22058"$Rx32 = tableidxh($Rs32,#$Ii,#$II)", 22059tc_bb831a7c, TypeS_2op> { 22060let hasNewValue = 1; 22061let opNewValue = 0; 22062let isPseudo = 1; 22063let Constraints = "$Rx32 = $Rx32in"; 22064} 22065def S2_tableidxw : HInst< 22066(outs IntRegs:$Rx32), 22067(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22068"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw", 22069tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22070let Inst{31-22} = 0b1000011110; 22071let hasNewValue = 1; 22072let opNewValue = 0; 22073let prefersSlot3 = 1; 22074let Constraints = "$Rx32 = $Rx32in"; 22075} 22076def S2_tableidxw_goodsyntax : HInst< 22077(outs IntRegs:$Rx32), 22078(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22079"$Rx32 = tableidxw($Rs32,#$Ii,#$II)", 22080tc_bb831a7c, TypeS_2op> { 22081let hasNewValue = 1; 22082let opNewValue = 0; 22083let isPseudo = 1; 22084let Constraints = "$Rx32 = $Rx32in"; 22085} 22086def S2_togglebit_i : HInst< 22087(outs IntRegs:$Rd32), 22088(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22089"$Rd32 = togglebit($Rs32,#$Ii)", 22090tc_5da50c4b, TypeS_2op>, Enc_a05677 { 22091let Inst{7-5} = 0b010; 22092let Inst{13-13} = 0b0; 22093let Inst{31-21} = 0b10001100110; 22094let hasNewValue = 1; 22095let opNewValue = 0; 22096} 22097def S2_togglebit_r : HInst< 22098(outs IntRegs:$Rd32), 22099(ins IntRegs:$Rs32, IntRegs:$Rt32), 22100"$Rd32 = togglebit($Rs32,$Rt32)", 22101tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 22102let Inst{7-5} = 0b100; 22103let Inst{13-13} = 0b0; 22104let Inst{31-21} = 0b11000110100; 22105let hasNewValue = 1; 22106let opNewValue = 0; 22107} 22108def S2_tstbit_i : HInst< 22109(outs PredRegs:$Pd4), 22110(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22111"$Pd4 = tstbit($Rs32,#$Ii)", 22112tc_a1297125, TypeS_2op>, Enc_83ee64 { 22113let Inst{7-2} = 0b000000; 22114let Inst{13-13} = 0b0; 22115let Inst{31-21} = 0b10000101000; 22116} 22117def S2_tstbit_r : HInst< 22118(outs PredRegs:$Pd4), 22119(ins IntRegs:$Rs32, IntRegs:$Rt32), 22120"$Pd4 = tstbit($Rs32,$Rt32)", 22121tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22122let Inst{7-2} = 0b000000; 22123let Inst{13-13} = 0b0; 22124let Inst{31-21} = 0b11000111000; 22125} 22126def S2_valignib : HInst< 22127(outs DoubleRegs:$Rdd32), 22128(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii), 22129"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)", 22130tc_6fc5dbea, TypeS_3op>, Enc_729ff7 { 22131let Inst{13-13} = 0b0; 22132let Inst{31-21} = 0b11000000000; 22133} 22134def S2_valignrb : HInst< 22135(outs DoubleRegs:$Rdd32), 22136(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4), 22137"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)", 22138tc_6fc5dbea, TypeS_3op>, Enc_8c6530 { 22139let Inst{7-7} = 0b0; 22140let Inst{13-13} = 0b0; 22141let Inst{31-21} = 0b11000010000; 22142} 22143def S2_vcnegh : HInst< 22144(outs DoubleRegs:$Rdd32), 22145(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22146"$Rdd32 = vcnegh($Rss32,$Rt32)", 22147tc_8a825db2, TypeS_3op>, Enc_927852 { 22148let Inst{7-5} = 0b010; 22149let Inst{13-13} = 0b0; 22150let Inst{31-21} = 0b11000011110; 22151let prefersSlot3 = 1; 22152let Defs = [USR_OVF]; 22153} 22154def S2_vcrotate : HInst< 22155(outs DoubleRegs:$Rdd32), 22156(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22157"$Rdd32 = vcrotate($Rss32,$Rt32)", 22158tc_0dfac0a7, TypeS_3op>, Enc_927852 { 22159let Inst{7-5} = 0b000; 22160let Inst{13-13} = 0b0; 22161let Inst{31-21} = 0b11000011110; 22162let prefersSlot3 = 1; 22163let Defs = [USR_OVF]; 22164} 22165def S2_vrcnegh : HInst< 22166(outs DoubleRegs:$Rxx32), 22167(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 22168"$Rxx32 += vrcnegh($Rss32,$Rt32)", 22169tc_7f8ae742, TypeS_3op>, Enc_1aa186 { 22170let Inst{7-5} = 0b111; 22171let Inst{13-13} = 0b1; 22172let Inst{31-21} = 0b11001011001; 22173let prefersSlot3 = 1; 22174let Constraints = "$Rxx32 = $Rxx32in"; 22175} 22176def S2_vrndpackwh : HInst< 22177(outs IntRegs:$Rd32), 22178(ins DoubleRegs:$Rss32), 22179"$Rd32 = vrndwh($Rss32)", 22180tc_e3d699e3, TypeS_2op>, Enc_90cd8b { 22181let Inst{13-5} = 0b000000100; 22182let Inst{31-21} = 0b10001000100; 22183let hasNewValue = 1; 22184let opNewValue = 0; 22185let prefersSlot3 = 1; 22186} 22187def S2_vrndpackwhs : HInst< 22188(outs IntRegs:$Rd32), 22189(ins DoubleRegs:$Rss32), 22190"$Rd32 = vrndwh($Rss32):sat", 22191tc_d61dfdc3, TypeS_2op>, Enc_90cd8b { 22192let Inst{13-5} = 0b000000110; 22193let Inst{31-21} = 0b10001000100; 22194let hasNewValue = 1; 22195let opNewValue = 0; 22196let prefersSlot3 = 1; 22197let Defs = [USR_OVF]; 22198} 22199def S2_vsathb : HInst< 22200(outs IntRegs:$Rd32), 22201(ins DoubleRegs:$Rss32), 22202"$Rd32 = vsathb($Rss32)", 22203tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22204let Inst{13-5} = 0b000000110; 22205let Inst{31-21} = 0b10001000000; 22206let hasNewValue = 1; 22207let opNewValue = 0; 22208let Defs = [USR_OVF]; 22209} 22210def S2_vsathb_nopack : HInst< 22211(outs DoubleRegs:$Rdd32), 22212(ins DoubleRegs:$Rss32), 22213"$Rdd32 = vsathb($Rss32)", 22214tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22215let Inst{13-5} = 0b000000111; 22216let Inst{31-21} = 0b10000000000; 22217let Defs = [USR_OVF]; 22218} 22219def S2_vsathub : HInst< 22220(outs IntRegs:$Rd32), 22221(ins DoubleRegs:$Rss32), 22222"$Rd32 = vsathub($Rss32)", 22223tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22224let Inst{13-5} = 0b000000000; 22225let Inst{31-21} = 0b10001000000; 22226let hasNewValue = 1; 22227let opNewValue = 0; 22228let Defs = [USR_OVF]; 22229} 22230def S2_vsathub_nopack : HInst< 22231(outs DoubleRegs:$Rdd32), 22232(ins DoubleRegs:$Rss32), 22233"$Rdd32 = vsathub($Rss32)", 22234tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22235let Inst{13-5} = 0b000000100; 22236let Inst{31-21} = 0b10000000000; 22237let Defs = [USR_OVF]; 22238} 22239def S2_vsatwh : HInst< 22240(outs IntRegs:$Rd32), 22241(ins DoubleRegs:$Rss32), 22242"$Rd32 = vsatwh($Rss32)", 22243tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22244let Inst{13-5} = 0b000000010; 22245let Inst{31-21} = 0b10001000000; 22246let hasNewValue = 1; 22247let opNewValue = 0; 22248let Defs = [USR_OVF]; 22249} 22250def S2_vsatwh_nopack : HInst< 22251(outs DoubleRegs:$Rdd32), 22252(ins DoubleRegs:$Rss32), 22253"$Rdd32 = vsatwh($Rss32)", 22254tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22255let Inst{13-5} = 0b000000110; 22256let Inst{31-21} = 0b10000000000; 22257let Defs = [USR_OVF]; 22258} 22259def S2_vsatwuh : HInst< 22260(outs IntRegs:$Rd32), 22261(ins DoubleRegs:$Rss32), 22262"$Rd32 = vsatwuh($Rss32)", 22263tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22264let Inst{13-5} = 0b000000100; 22265let Inst{31-21} = 0b10001000000; 22266let hasNewValue = 1; 22267let opNewValue = 0; 22268let Defs = [USR_OVF]; 22269} 22270def S2_vsatwuh_nopack : HInst< 22271(outs DoubleRegs:$Rdd32), 22272(ins DoubleRegs:$Rss32), 22273"$Rdd32 = vsatwuh($Rss32)", 22274tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22275let Inst{13-5} = 0b000000101; 22276let Inst{31-21} = 0b10000000000; 22277let Defs = [USR_OVF]; 22278} 22279def S2_vsplatrb : HInst< 22280(outs IntRegs:$Rd32), 22281(ins IntRegs:$Rs32), 22282"$Rd32 = vsplatb($Rs32)", 22283tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 22284let Inst{13-5} = 0b000000111; 22285let Inst{31-21} = 0b10001100010; 22286let hasNewValue = 1; 22287let opNewValue = 0; 22288let isAsCheapAsAMove = 1; 22289let isReMaterializable = 1; 22290} 22291def S2_vsplatrh : HInst< 22292(outs DoubleRegs:$Rdd32), 22293(ins IntRegs:$Rs32), 22294"$Rdd32 = vsplath($Rs32)", 22295tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22296let Inst{13-5} = 0b000000010; 22297let Inst{31-21} = 0b10000100010; 22298let isAsCheapAsAMove = 1; 22299let isReMaterializable = 1; 22300} 22301def S2_vspliceib : HInst< 22302(outs DoubleRegs:$Rdd32), 22303(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii), 22304"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)", 22305tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 { 22306let Inst{13-13} = 0b0; 22307let Inst{31-21} = 0b11000000100; 22308} 22309def S2_vsplicerb : HInst< 22310(outs DoubleRegs:$Rdd32), 22311(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4), 22312"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)", 22313tc_6fc5dbea, TypeS_3op>, Enc_dbd70c { 22314let Inst{7-7} = 0b0; 22315let Inst{13-13} = 0b0; 22316let Inst{31-21} = 0b11000010100; 22317} 22318def S2_vsxtbh : HInst< 22319(outs DoubleRegs:$Rdd32), 22320(ins IntRegs:$Rs32), 22321"$Rdd32 = vsxtbh($Rs32)", 22322tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22323let Inst{13-5} = 0b000000000; 22324let Inst{31-21} = 0b10000100000; 22325let isAsCheapAsAMove = 1; 22326let isReMaterializable = 1; 22327} 22328def S2_vsxthw : HInst< 22329(outs DoubleRegs:$Rdd32), 22330(ins IntRegs:$Rs32), 22331"$Rdd32 = vsxthw($Rs32)", 22332tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22333let Inst{13-5} = 0b000000100; 22334let Inst{31-21} = 0b10000100000; 22335let isAsCheapAsAMove = 1; 22336let isReMaterializable = 1; 22337} 22338def S2_vtrunehb : HInst< 22339(outs IntRegs:$Rd32), 22340(ins DoubleRegs:$Rss32), 22341"$Rd32 = vtrunehb($Rss32)", 22342tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22343let Inst{13-5} = 0b000000010; 22344let Inst{31-21} = 0b10001000100; 22345let hasNewValue = 1; 22346let opNewValue = 0; 22347} 22348def S2_vtrunewh : HInst< 22349(outs DoubleRegs:$Rdd32), 22350(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22351"$Rdd32 = vtrunewh($Rss32,$Rtt32)", 22352tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22353let Inst{7-5} = 0b010; 22354let Inst{13-13} = 0b0; 22355let Inst{31-21} = 0b11000001100; 22356} 22357def S2_vtrunohb : HInst< 22358(outs IntRegs:$Rd32), 22359(ins DoubleRegs:$Rss32), 22360"$Rd32 = vtrunohb($Rss32)", 22361tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22362let Inst{13-5} = 0b000000000; 22363let Inst{31-21} = 0b10001000100; 22364let hasNewValue = 1; 22365let opNewValue = 0; 22366} 22367def S2_vtrunowh : HInst< 22368(outs DoubleRegs:$Rdd32), 22369(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22370"$Rdd32 = vtrunowh($Rss32,$Rtt32)", 22371tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22372let Inst{7-5} = 0b100; 22373let Inst{13-13} = 0b0; 22374let Inst{31-21} = 0b11000001100; 22375} 22376def S2_vzxtbh : HInst< 22377(outs DoubleRegs:$Rdd32), 22378(ins IntRegs:$Rs32), 22379"$Rdd32 = vzxtbh($Rs32)", 22380tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22381let Inst{13-5} = 0b000000010; 22382let Inst{31-21} = 0b10000100000; 22383let isAsCheapAsAMove = 1; 22384let isReMaterializable = 1; 22385} 22386def S2_vzxthw : HInst< 22387(outs DoubleRegs:$Rdd32), 22388(ins IntRegs:$Rs32), 22389"$Rdd32 = vzxthw($Rs32)", 22390tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22391let Inst{13-5} = 0b000000110; 22392let Inst{31-21} = 0b10000100000; 22393let isAsCheapAsAMove = 1; 22394let isReMaterializable = 1; 22395} 22396def S4_addaddi : HInst< 22397(outs IntRegs:$Rd32), 22398(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii), 22399"$Rd32 = add($Rs32,add($Ru32,#$Ii))", 22400tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 22401let Inst{31-23} = 0b110110110; 22402let hasNewValue = 1; 22403let opNewValue = 0; 22404let prefersSlot3 = 1; 22405let isExtendable = 1; 22406let opExtendable = 3; 22407let isExtentSigned = 1; 22408let opExtentBits = 6; 22409let opExtentAlign = 0; 22410} 22411def S4_addi_asl_ri : HInst< 22412(outs IntRegs:$Rx32), 22413(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22414"$Rx32 = add(#$Ii,asl($Rx32in,#$II))", 22415tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22416let Inst{2-0} = 0b100; 22417let Inst{4-4} = 0b0; 22418let Inst{31-24} = 0b11011110; 22419let hasNewValue = 1; 22420let opNewValue = 0; 22421let prefersSlot3 = 1; 22422let isExtendable = 1; 22423let opExtendable = 1; 22424let isExtentSigned = 0; 22425let opExtentBits = 8; 22426let opExtentAlign = 0; 22427let Constraints = "$Rx32 = $Rx32in"; 22428} 22429def S4_addi_lsr_ri : HInst< 22430(outs IntRegs:$Rx32), 22431(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22432"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))", 22433tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22434let Inst{2-0} = 0b100; 22435let Inst{4-4} = 0b1; 22436let Inst{31-24} = 0b11011110; 22437let hasNewValue = 1; 22438let opNewValue = 0; 22439let prefersSlot3 = 1; 22440let isExtendable = 1; 22441let opExtendable = 1; 22442let isExtentSigned = 0; 22443let opExtentBits = 8; 22444let opExtentAlign = 0; 22445let Constraints = "$Rx32 = $Rx32in"; 22446} 22447def S4_andi_asl_ri : HInst< 22448(outs IntRegs:$Rx32), 22449(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22450"$Rx32 = and(#$Ii,asl($Rx32in,#$II))", 22451tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22452let Inst{2-0} = 0b000; 22453let Inst{4-4} = 0b0; 22454let Inst{31-24} = 0b11011110; 22455let hasNewValue = 1; 22456let opNewValue = 0; 22457let prefersSlot3 = 1; 22458let isExtendable = 1; 22459let opExtendable = 1; 22460let isExtentSigned = 0; 22461let opExtentBits = 8; 22462let opExtentAlign = 0; 22463let Constraints = "$Rx32 = $Rx32in"; 22464} 22465def S4_andi_lsr_ri : HInst< 22466(outs IntRegs:$Rx32), 22467(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22468"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))", 22469tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22470let Inst{2-0} = 0b000; 22471let Inst{4-4} = 0b1; 22472let Inst{31-24} = 0b11011110; 22473let hasNewValue = 1; 22474let opNewValue = 0; 22475let prefersSlot3 = 1; 22476let isExtendable = 1; 22477let opExtendable = 1; 22478let isExtentSigned = 0; 22479let opExtentBits = 8; 22480let opExtentAlign = 0; 22481let Constraints = "$Rx32 = $Rx32in"; 22482} 22483def S4_clbaddi : HInst< 22484(outs IntRegs:$Rd32), 22485(ins IntRegs:$Rs32, s6_0Imm:$Ii), 22486"$Rd32 = add(clb($Rs32),#$Ii)", 22487tc_a08b630b, TypeS_2op>, Enc_9fae8a { 22488let Inst{7-5} = 0b000; 22489let Inst{31-21} = 0b10001100001; 22490let hasNewValue = 1; 22491let opNewValue = 0; 22492let prefersSlot3 = 1; 22493} 22494def S4_clbpaddi : HInst< 22495(outs IntRegs:$Rd32), 22496(ins DoubleRegs:$Rss32, s6_0Imm:$Ii), 22497"$Rd32 = add(clb($Rss32),#$Ii)", 22498tc_a08b630b, TypeS_2op>, Enc_a1640c { 22499let Inst{7-5} = 0b010; 22500let Inst{31-21} = 0b10001000011; 22501let hasNewValue = 1; 22502let opNewValue = 0; 22503let prefersSlot3 = 1; 22504} 22505def S4_clbpnorm : HInst< 22506(outs IntRegs:$Rd32), 22507(ins DoubleRegs:$Rss32), 22508"$Rd32 = normamt($Rss32)", 22509tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 22510let Inst{13-5} = 0b000000000; 22511let Inst{31-21} = 0b10001000011; 22512let hasNewValue = 1; 22513let opNewValue = 0; 22514let prefersSlot3 = 1; 22515} 22516def S4_extract : HInst< 22517(outs IntRegs:$Rd32), 22518(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 22519"$Rd32 = extract($Rs32,#$Ii,#$II)", 22520tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 22521let Inst{13-13} = 0b0; 22522let Inst{31-23} = 0b100011011; 22523let hasNewValue = 1; 22524let opNewValue = 0; 22525let prefersSlot3 = 1; 22526} 22527def S4_extract_rp : HInst< 22528(outs IntRegs:$Rd32), 22529(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 22530"$Rd32 = extract($Rs32,$Rtt32)", 22531tc_a08b630b, TypeS_3op>, Enc_e07374 { 22532let Inst{7-5} = 0b010; 22533let Inst{13-13} = 0b0; 22534let Inst{31-21} = 0b11001001000; 22535let hasNewValue = 1; 22536let opNewValue = 0; 22537let prefersSlot3 = 1; 22538} 22539def S4_extractp : HInst< 22540(outs DoubleRegs:$Rdd32), 22541(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 22542"$Rdd32 = extract($Rss32,#$Ii,#$II)", 22543tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 22544let Inst{31-24} = 0b10001010; 22545let prefersSlot3 = 1; 22546} 22547def S4_extractp_rp : HInst< 22548(outs DoubleRegs:$Rdd32), 22549(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22550"$Rdd32 = extract($Rss32,$Rtt32)", 22551tc_a08b630b, TypeS_3op>, Enc_a56825 { 22552let Inst{7-5} = 0b100; 22553let Inst{13-13} = 0b0; 22554let Inst{31-21} = 0b11000001110; 22555let prefersSlot3 = 1; 22556} 22557def S4_lsli : HInst< 22558(outs IntRegs:$Rd32), 22559(ins s6_0Imm:$Ii, IntRegs:$Rt32), 22560"$Rd32 = lsl(#$Ii,$Rt32)", 22561tc_5da50c4b, TypeS_3op>, Enc_fef969 { 22562let Inst{7-6} = 0b11; 22563let Inst{13-13} = 0b0; 22564let Inst{31-21} = 0b11000110100; 22565let hasNewValue = 1; 22566let opNewValue = 0; 22567} 22568def S4_ntstbit_i : HInst< 22569(outs PredRegs:$Pd4), 22570(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22571"$Pd4 = !tstbit($Rs32,#$Ii)", 22572tc_a1297125, TypeS_2op>, Enc_83ee64 { 22573let Inst{7-2} = 0b000000; 22574let Inst{13-13} = 0b0; 22575let Inst{31-21} = 0b10000101001; 22576} 22577def S4_ntstbit_r : HInst< 22578(outs PredRegs:$Pd4), 22579(ins IntRegs:$Rs32, IntRegs:$Rt32), 22580"$Pd4 = !tstbit($Rs32,$Rt32)", 22581tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22582let Inst{7-2} = 0b000000; 22583let Inst{13-13} = 0b0; 22584let Inst{31-21} = 0b11000111001; 22585} 22586def S4_or_andi : HInst< 22587(outs IntRegs:$Rx32), 22588(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22589"$Rx32 |= and($Rs32,#$Ii)", 22590tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22591let Inst{31-22} = 0b1101101000; 22592let hasNewValue = 1; 22593let opNewValue = 0; 22594let prefersSlot3 = 1; 22595let InputType = "imm"; 22596let isExtendable = 1; 22597let opExtendable = 3; 22598let isExtentSigned = 1; 22599let opExtentBits = 10; 22600let opExtentAlign = 0; 22601let Constraints = "$Rx32 = $Rx32in"; 22602} 22603def S4_or_andix : HInst< 22604(outs IntRegs:$Rx32), 22605(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii), 22606"$Rx32 = or($Ru32,and($Rx32in,#$Ii))", 22607tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> { 22608let Inst{31-22} = 0b1101101001; 22609let hasNewValue = 1; 22610let opNewValue = 0; 22611let prefersSlot3 = 1; 22612let isExtendable = 1; 22613let opExtendable = 3; 22614let isExtentSigned = 1; 22615let opExtentBits = 10; 22616let opExtentAlign = 0; 22617let Constraints = "$Rx32 = $Rx32in"; 22618} 22619def S4_or_ori : HInst< 22620(outs IntRegs:$Rx32), 22621(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22622"$Rx32 |= or($Rs32,#$Ii)", 22623tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22624let Inst{31-22} = 0b1101101010; 22625let hasNewValue = 1; 22626let opNewValue = 0; 22627let prefersSlot3 = 1; 22628let InputType = "imm"; 22629let isExtendable = 1; 22630let opExtendable = 3; 22631let isExtentSigned = 1; 22632let opExtentBits = 10; 22633let opExtentAlign = 0; 22634let Constraints = "$Rx32 = $Rx32in"; 22635} 22636def S4_ori_asl_ri : HInst< 22637(outs IntRegs:$Rx32), 22638(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22639"$Rx32 = or(#$Ii,asl($Rx32in,#$II))", 22640tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22641let Inst{2-0} = 0b010; 22642let Inst{4-4} = 0b0; 22643let Inst{31-24} = 0b11011110; 22644let hasNewValue = 1; 22645let opNewValue = 0; 22646let prefersSlot3 = 1; 22647let isExtendable = 1; 22648let opExtendable = 1; 22649let isExtentSigned = 0; 22650let opExtentBits = 8; 22651let opExtentAlign = 0; 22652let Constraints = "$Rx32 = $Rx32in"; 22653} 22654def S4_ori_lsr_ri : HInst< 22655(outs IntRegs:$Rx32), 22656(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22657"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))", 22658tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22659let Inst{2-0} = 0b010; 22660let Inst{4-4} = 0b1; 22661let Inst{31-24} = 0b11011110; 22662let hasNewValue = 1; 22663let opNewValue = 0; 22664let prefersSlot3 = 1; 22665let isExtendable = 1; 22666let opExtendable = 1; 22667let isExtentSigned = 0; 22668let opExtentBits = 8; 22669let opExtentAlign = 0; 22670let Constraints = "$Rx32 = $Rx32in"; 22671} 22672def S4_parity : HInst< 22673(outs IntRegs:$Rd32), 22674(ins IntRegs:$Rs32, IntRegs:$Rt32), 22675"$Rd32 = parity($Rs32,$Rt32)", 22676tc_a08b630b, TypeALU64>, Enc_5ab2be { 22677let Inst{7-5} = 0b000; 22678let Inst{13-13} = 0b0; 22679let Inst{31-21} = 0b11010101111; 22680let hasNewValue = 1; 22681let opNewValue = 0; 22682let prefersSlot3 = 1; 22683} 22684def S4_pstorerbf_abs : HInst< 22685(outs), 22686(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22687"if (!$Pv4) memb(#$Ii) = $Rt32", 22688tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 22689let Inst{2-2} = 0b1; 22690let Inst{7-7} = 0b1; 22691let Inst{13-13} = 0b0; 22692let Inst{31-18} = 0b10101111000000; 22693let isPredicated = 1; 22694let isPredicatedFalse = 1; 22695let addrMode = Absolute; 22696let accessSize = ByteAccess; 22697let isExtended = 1; 22698let mayStore = 1; 22699let BaseOpcode = "S2_storerbabs"; 22700let CextOpcode = "S2_storerb"; 22701let isNVStorable = 1; 22702let DecoderNamespace = "MustExtend"; 22703let isExtendable = 1; 22704let opExtendable = 1; 22705let isExtentSigned = 0; 22706let opExtentBits = 6; 22707let opExtentAlign = 0; 22708} 22709def S4_pstorerbf_rr : HInst< 22710(outs), 22711(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22712"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22713tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 22714let Inst{31-21} = 0b00110101000; 22715let isPredicated = 1; 22716let isPredicatedFalse = 1; 22717let addrMode = BaseRegOffset; 22718let accessSize = ByteAccess; 22719let mayStore = 1; 22720let BaseOpcode = "S4_storerb_rr"; 22721let CextOpcode = "S2_storerb"; 22722let InputType = "reg"; 22723let isNVStorable = 1; 22724} 22725def S4_pstorerbfnew_abs : HInst< 22726(outs), 22727(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22728"if (!$Pv4.new) memb(#$Ii) = $Rt32", 22729tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 22730let Inst{2-2} = 0b1; 22731let Inst{7-7} = 0b1; 22732let Inst{13-13} = 0b1; 22733let Inst{31-18} = 0b10101111000000; 22734let isPredicated = 1; 22735let isPredicatedFalse = 1; 22736let addrMode = Absolute; 22737let accessSize = ByteAccess; 22738let isPredicatedNew = 1; 22739let isExtended = 1; 22740let mayStore = 1; 22741let BaseOpcode = "S2_storerbabs"; 22742let CextOpcode = "S2_storerb"; 22743let isNVStorable = 1; 22744let DecoderNamespace = "MustExtend"; 22745let isExtendable = 1; 22746let opExtendable = 1; 22747let isExtentSigned = 0; 22748let opExtentBits = 6; 22749let opExtentAlign = 0; 22750} 22751def S4_pstorerbfnew_io : HInst< 22752(outs), 22753(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 22754"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32", 22755tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 22756let Inst{2-2} = 0b0; 22757let Inst{31-21} = 0b01000110000; 22758let isPredicated = 1; 22759let isPredicatedFalse = 1; 22760let addrMode = BaseImmOffset; 22761let accessSize = ByteAccess; 22762let isPredicatedNew = 1; 22763let mayStore = 1; 22764let BaseOpcode = "S2_storerb_io"; 22765let CextOpcode = "S2_storerb"; 22766let InputType = "imm"; 22767let isNVStorable = 1; 22768let isExtendable = 1; 22769let opExtendable = 2; 22770let isExtentSigned = 0; 22771let opExtentBits = 6; 22772let opExtentAlign = 0; 22773} 22774def S4_pstorerbfnew_rr : HInst< 22775(outs), 22776(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22777"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22778tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 22779let Inst{31-21} = 0b00110111000; 22780let isPredicated = 1; 22781let isPredicatedFalse = 1; 22782let addrMode = BaseRegOffset; 22783let accessSize = ByteAccess; 22784let isPredicatedNew = 1; 22785let mayStore = 1; 22786let BaseOpcode = "S4_storerb_rr"; 22787let CextOpcode = "S2_storerb"; 22788let InputType = "reg"; 22789let isNVStorable = 1; 22790} 22791def S4_pstorerbfnew_zomap : HInst< 22792(outs), 22793(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 22794"if (!$Pv4.new) memb($Rs32) = $Rt32", 22795tc_a2b365d2, TypeMAPPING> { 22796let isPseudo = 1; 22797let isCodeGenOnly = 1; 22798} 22799def S4_pstorerbnewf_abs : HInst< 22800(outs), 22801(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22802"if (!$Pv4) memb(#$Ii) = $Nt8.new", 22803tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22804let Inst{2-2} = 0b1; 22805let Inst{7-7} = 0b1; 22806let Inst{13-11} = 0b000; 22807let Inst{31-18} = 0b10101111101000; 22808let isPredicated = 1; 22809let isPredicatedFalse = 1; 22810let addrMode = Absolute; 22811let accessSize = ByteAccess; 22812let isNVStore = 1; 22813let isNewValue = 1; 22814let isExtended = 1; 22815let isRestrictNoSlot1Store = 1; 22816let mayStore = 1; 22817let BaseOpcode = "S2_storerbabs"; 22818let CextOpcode = "S2_storerb"; 22819let DecoderNamespace = "MustExtend"; 22820let isExtendable = 1; 22821let opExtendable = 1; 22822let isExtentSigned = 0; 22823let opExtentBits = 6; 22824let opExtentAlign = 0; 22825let opNewValue = 2; 22826} 22827def S4_pstorerbnewf_rr : HInst< 22828(outs), 22829(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22830"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22831tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 22832let Inst{4-3} = 0b00; 22833let Inst{31-21} = 0b00110101101; 22834let isPredicated = 1; 22835let isPredicatedFalse = 1; 22836let addrMode = BaseRegOffset; 22837let accessSize = ByteAccess; 22838let isNVStore = 1; 22839let isNewValue = 1; 22840let isRestrictNoSlot1Store = 1; 22841let mayStore = 1; 22842let BaseOpcode = "S4_storerb_rr"; 22843let CextOpcode = "S2_storerb"; 22844let InputType = "reg"; 22845let opNewValue = 4; 22846} 22847def S4_pstorerbnewfnew_abs : HInst< 22848(outs), 22849(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22850"if (!$Pv4.new) memb(#$Ii) = $Nt8.new", 22851tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 22852let Inst{2-2} = 0b1; 22853let Inst{7-7} = 0b1; 22854let Inst{13-11} = 0b100; 22855let Inst{31-18} = 0b10101111101000; 22856let isPredicated = 1; 22857let isPredicatedFalse = 1; 22858let addrMode = Absolute; 22859let accessSize = ByteAccess; 22860let isNVStore = 1; 22861let isPredicatedNew = 1; 22862let isNewValue = 1; 22863let isExtended = 1; 22864let isRestrictNoSlot1Store = 1; 22865let mayStore = 1; 22866let BaseOpcode = "S2_storerbabs"; 22867let CextOpcode = "S2_storerb"; 22868let DecoderNamespace = "MustExtend"; 22869let isExtendable = 1; 22870let opExtendable = 1; 22871let isExtentSigned = 0; 22872let opExtentBits = 6; 22873let opExtentAlign = 0; 22874let opNewValue = 2; 22875} 22876def S4_pstorerbnewfnew_io : HInst< 22877(outs), 22878(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22879"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22880tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 22881let Inst{2-2} = 0b0; 22882let Inst{12-11} = 0b00; 22883let Inst{31-21} = 0b01000110101; 22884let isPredicated = 1; 22885let isPredicatedFalse = 1; 22886let addrMode = BaseImmOffset; 22887let accessSize = ByteAccess; 22888let isNVStore = 1; 22889let isPredicatedNew = 1; 22890let isNewValue = 1; 22891let isRestrictNoSlot1Store = 1; 22892let mayStore = 1; 22893let BaseOpcode = "S2_storerb_io"; 22894let CextOpcode = "S2_storerb"; 22895let InputType = "imm"; 22896let isExtendable = 1; 22897let opExtendable = 2; 22898let isExtentSigned = 0; 22899let opExtentBits = 6; 22900let opExtentAlign = 0; 22901let opNewValue = 3; 22902} 22903def S4_pstorerbnewfnew_rr : HInst< 22904(outs), 22905(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22906"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22907tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 22908let Inst{4-3} = 0b00; 22909let Inst{31-21} = 0b00110111101; 22910let isPredicated = 1; 22911let isPredicatedFalse = 1; 22912let addrMode = BaseRegOffset; 22913let accessSize = ByteAccess; 22914let isNVStore = 1; 22915let isPredicatedNew = 1; 22916let isNewValue = 1; 22917let isRestrictNoSlot1Store = 1; 22918let mayStore = 1; 22919let BaseOpcode = "S4_storerb_rr"; 22920let CextOpcode = "S2_storerb"; 22921let InputType = "reg"; 22922let opNewValue = 4; 22923} 22924def S4_pstorerbnewfnew_zomap : HInst< 22925(outs), 22926(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22927"if (!$Pv4.new) memb($Rs32) = $Nt8.new", 22928tc_92240447, TypeMAPPING> { 22929let isPseudo = 1; 22930let isCodeGenOnly = 1; 22931let opNewValue = 2; 22932} 22933def S4_pstorerbnewt_abs : HInst< 22934(outs), 22935(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22936"if ($Pv4) memb(#$Ii) = $Nt8.new", 22937tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22938let Inst{2-2} = 0b0; 22939let Inst{7-7} = 0b1; 22940let Inst{13-11} = 0b000; 22941let Inst{31-18} = 0b10101111101000; 22942let isPredicated = 1; 22943let addrMode = Absolute; 22944let accessSize = ByteAccess; 22945let isNVStore = 1; 22946let isNewValue = 1; 22947let isExtended = 1; 22948let isRestrictNoSlot1Store = 1; 22949let mayStore = 1; 22950let BaseOpcode = "S2_storerbabs"; 22951let CextOpcode = "S2_storerb"; 22952let DecoderNamespace = "MustExtend"; 22953let isExtendable = 1; 22954let opExtendable = 1; 22955let isExtentSigned = 0; 22956let opExtentBits = 6; 22957let opExtentAlign = 0; 22958let opNewValue = 2; 22959} 22960def S4_pstorerbnewt_rr : HInst< 22961(outs), 22962(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22963"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22964tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 22965let Inst{4-3} = 0b00; 22966let Inst{31-21} = 0b00110100101; 22967let isPredicated = 1; 22968let addrMode = BaseRegOffset; 22969let accessSize = ByteAccess; 22970let isNVStore = 1; 22971let isNewValue = 1; 22972let isRestrictNoSlot1Store = 1; 22973let mayStore = 1; 22974let BaseOpcode = "S4_storerb_rr"; 22975let CextOpcode = "S2_storerb"; 22976let InputType = "reg"; 22977let opNewValue = 4; 22978} 22979def S4_pstorerbnewtnew_abs : HInst< 22980(outs), 22981(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22982"if ($Pv4.new) memb(#$Ii) = $Nt8.new", 22983tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 22984let Inst{2-2} = 0b0; 22985let Inst{7-7} = 0b1; 22986let Inst{13-11} = 0b100; 22987let Inst{31-18} = 0b10101111101000; 22988let isPredicated = 1; 22989let addrMode = Absolute; 22990let accessSize = ByteAccess; 22991let isNVStore = 1; 22992let isPredicatedNew = 1; 22993let isNewValue = 1; 22994let isExtended = 1; 22995let isRestrictNoSlot1Store = 1; 22996let mayStore = 1; 22997let BaseOpcode = "S2_storerbabs"; 22998let CextOpcode = "S2_storerb"; 22999let DecoderNamespace = "MustExtend"; 23000let isExtendable = 1; 23001let opExtendable = 1; 23002let isExtentSigned = 0; 23003let opExtentBits = 6; 23004let opExtentAlign = 0; 23005let opNewValue = 2; 23006} 23007def S4_pstorerbnewtnew_io : HInst< 23008(outs), 23009(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 23010"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 23011tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 23012let Inst{2-2} = 0b0; 23013let Inst{12-11} = 0b00; 23014let Inst{31-21} = 0b01000010101; 23015let isPredicated = 1; 23016let addrMode = BaseImmOffset; 23017let accessSize = ByteAccess; 23018let isNVStore = 1; 23019let isPredicatedNew = 1; 23020let isNewValue = 1; 23021let isRestrictNoSlot1Store = 1; 23022let mayStore = 1; 23023let BaseOpcode = "S2_storerb_io"; 23024let CextOpcode = "S2_storerb"; 23025let InputType = "imm"; 23026let isExtendable = 1; 23027let opExtendable = 2; 23028let isExtentSigned = 0; 23029let opExtentBits = 6; 23030let opExtentAlign = 0; 23031let opNewValue = 3; 23032} 23033def S4_pstorerbnewtnew_rr : HInst< 23034(outs), 23035(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23036"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23037tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23038let Inst{4-3} = 0b00; 23039let Inst{31-21} = 0b00110110101; 23040let isPredicated = 1; 23041let addrMode = BaseRegOffset; 23042let accessSize = ByteAccess; 23043let isNVStore = 1; 23044let isPredicatedNew = 1; 23045let isNewValue = 1; 23046let isRestrictNoSlot1Store = 1; 23047let mayStore = 1; 23048let BaseOpcode = "S4_storerb_rr"; 23049let CextOpcode = "S2_storerb"; 23050let InputType = "reg"; 23051let opNewValue = 4; 23052} 23053def S4_pstorerbnewtnew_zomap : HInst< 23054(outs), 23055(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23056"if ($Pv4.new) memb($Rs32) = $Nt8.new", 23057tc_92240447, TypeMAPPING> { 23058let isPseudo = 1; 23059let isCodeGenOnly = 1; 23060let opNewValue = 2; 23061} 23062def S4_pstorerbt_abs : HInst< 23063(outs), 23064(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23065"if ($Pv4) memb(#$Ii) = $Rt32", 23066tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23067let Inst{2-2} = 0b0; 23068let Inst{7-7} = 0b1; 23069let Inst{13-13} = 0b0; 23070let Inst{31-18} = 0b10101111000000; 23071let isPredicated = 1; 23072let addrMode = Absolute; 23073let accessSize = ByteAccess; 23074let isExtended = 1; 23075let mayStore = 1; 23076let BaseOpcode = "S2_storerbabs"; 23077let CextOpcode = "S2_storerb"; 23078let isNVStorable = 1; 23079let DecoderNamespace = "MustExtend"; 23080let isExtendable = 1; 23081let opExtendable = 1; 23082let isExtentSigned = 0; 23083let opExtentBits = 6; 23084let opExtentAlign = 0; 23085} 23086def S4_pstorerbt_rr : HInst< 23087(outs), 23088(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23089"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23090tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23091let Inst{31-21} = 0b00110100000; 23092let isPredicated = 1; 23093let addrMode = BaseRegOffset; 23094let accessSize = ByteAccess; 23095let mayStore = 1; 23096let BaseOpcode = "S4_storerb_rr"; 23097let CextOpcode = "S2_storerb"; 23098let InputType = "reg"; 23099let isNVStorable = 1; 23100} 23101def S4_pstorerbtnew_abs : HInst< 23102(outs), 23103(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23104"if ($Pv4.new) memb(#$Ii) = $Rt32", 23105tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23106let Inst{2-2} = 0b0; 23107let Inst{7-7} = 0b1; 23108let Inst{13-13} = 0b1; 23109let Inst{31-18} = 0b10101111000000; 23110let isPredicated = 1; 23111let addrMode = Absolute; 23112let accessSize = ByteAccess; 23113let isPredicatedNew = 1; 23114let isExtended = 1; 23115let mayStore = 1; 23116let BaseOpcode = "S2_storerbabs"; 23117let CextOpcode = "S2_storerb"; 23118let isNVStorable = 1; 23119let DecoderNamespace = "MustExtend"; 23120let isExtendable = 1; 23121let opExtendable = 1; 23122let isExtentSigned = 0; 23123let opExtentBits = 6; 23124let opExtentAlign = 0; 23125} 23126def S4_pstorerbtnew_io : HInst< 23127(outs), 23128(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 23129"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32", 23130tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 23131let Inst{2-2} = 0b0; 23132let Inst{31-21} = 0b01000010000; 23133let isPredicated = 1; 23134let addrMode = BaseImmOffset; 23135let accessSize = ByteAccess; 23136let isPredicatedNew = 1; 23137let mayStore = 1; 23138let BaseOpcode = "S2_storerb_io"; 23139let CextOpcode = "S2_storerb"; 23140let InputType = "imm"; 23141let isNVStorable = 1; 23142let isExtendable = 1; 23143let opExtendable = 2; 23144let isExtentSigned = 0; 23145let opExtentBits = 6; 23146let opExtentAlign = 0; 23147} 23148def S4_pstorerbtnew_rr : HInst< 23149(outs), 23150(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23151"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23152tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23153let Inst{31-21} = 0b00110110000; 23154let isPredicated = 1; 23155let addrMode = BaseRegOffset; 23156let accessSize = ByteAccess; 23157let isPredicatedNew = 1; 23158let mayStore = 1; 23159let BaseOpcode = "S4_storerb_rr"; 23160let CextOpcode = "S2_storerb"; 23161let InputType = "reg"; 23162let isNVStorable = 1; 23163} 23164def S4_pstorerbtnew_zomap : HInst< 23165(outs), 23166(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23167"if ($Pv4.new) memb($Rs32) = $Rt32", 23168tc_a2b365d2, TypeMAPPING> { 23169let isPseudo = 1; 23170let isCodeGenOnly = 1; 23171} 23172def S4_pstorerdf_abs : HInst< 23173(outs), 23174(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23175"if (!$Pv4) memd(#$Ii) = $Rtt32", 23176tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23177let Inst{2-2} = 0b1; 23178let Inst{7-7} = 0b1; 23179let Inst{13-13} = 0b0; 23180let Inst{31-18} = 0b10101111110000; 23181let isPredicated = 1; 23182let isPredicatedFalse = 1; 23183let addrMode = Absolute; 23184let accessSize = DoubleWordAccess; 23185let isExtended = 1; 23186let mayStore = 1; 23187let BaseOpcode = "S2_storerdabs"; 23188let CextOpcode = "S2_storerd"; 23189let DecoderNamespace = "MustExtend"; 23190let isExtendable = 1; 23191let opExtendable = 1; 23192let isExtentSigned = 0; 23193let opExtentBits = 6; 23194let opExtentAlign = 0; 23195} 23196def S4_pstorerdf_rr : HInst< 23197(outs), 23198(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23199"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23200tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23201let Inst{31-21} = 0b00110101110; 23202let isPredicated = 1; 23203let isPredicatedFalse = 1; 23204let addrMode = BaseRegOffset; 23205let accessSize = DoubleWordAccess; 23206let mayStore = 1; 23207let BaseOpcode = "S2_storerd_rr"; 23208let CextOpcode = "S2_storerd"; 23209let InputType = "reg"; 23210} 23211def S4_pstorerdfnew_abs : HInst< 23212(outs), 23213(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23214"if (!$Pv4.new) memd(#$Ii) = $Rtt32", 23215tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23216let Inst{2-2} = 0b1; 23217let Inst{7-7} = 0b1; 23218let Inst{13-13} = 0b1; 23219let Inst{31-18} = 0b10101111110000; 23220let isPredicated = 1; 23221let isPredicatedFalse = 1; 23222let addrMode = Absolute; 23223let accessSize = DoubleWordAccess; 23224let isPredicatedNew = 1; 23225let isExtended = 1; 23226let mayStore = 1; 23227let BaseOpcode = "S2_storerdabs"; 23228let CextOpcode = "S2_storerd"; 23229let DecoderNamespace = "MustExtend"; 23230let isExtendable = 1; 23231let opExtendable = 1; 23232let isExtentSigned = 0; 23233let opExtentBits = 6; 23234let opExtentAlign = 0; 23235} 23236def S4_pstorerdfnew_io : HInst< 23237(outs), 23238(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23239"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23240tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23241let Inst{2-2} = 0b0; 23242let Inst{31-21} = 0b01000110110; 23243let isPredicated = 1; 23244let isPredicatedFalse = 1; 23245let addrMode = BaseImmOffset; 23246let accessSize = DoubleWordAccess; 23247let isPredicatedNew = 1; 23248let mayStore = 1; 23249let BaseOpcode = "S2_storerd_io"; 23250let CextOpcode = "S2_storerd"; 23251let InputType = "imm"; 23252let isExtendable = 1; 23253let opExtendable = 2; 23254let isExtentSigned = 0; 23255let opExtentBits = 9; 23256let opExtentAlign = 3; 23257} 23258def S4_pstorerdfnew_rr : HInst< 23259(outs), 23260(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23261"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23262tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23263let Inst{31-21} = 0b00110111110; 23264let isPredicated = 1; 23265let isPredicatedFalse = 1; 23266let addrMode = BaseRegOffset; 23267let accessSize = DoubleWordAccess; 23268let isPredicatedNew = 1; 23269let mayStore = 1; 23270let BaseOpcode = "S2_storerd_rr"; 23271let CextOpcode = "S2_storerd"; 23272let InputType = "reg"; 23273} 23274def S4_pstorerdfnew_zomap : HInst< 23275(outs), 23276(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23277"if (!$Pv4.new) memd($Rs32) = $Rtt32", 23278tc_a2b365d2, TypeMAPPING> { 23279let isPseudo = 1; 23280let isCodeGenOnly = 1; 23281} 23282def S4_pstorerdt_abs : HInst< 23283(outs), 23284(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23285"if ($Pv4) memd(#$Ii) = $Rtt32", 23286tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23287let Inst{2-2} = 0b0; 23288let Inst{7-7} = 0b1; 23289let Inst{13-13} = 0b0; 23290let Inst{31-18} = 0b10101111110000; 23291let isPredicated = 1; 23292let addrMode = Absolute; 23293let accessSize = DoubleWordAccess; 23294let isExtended = 1; 23295let mayStore = 1; 23296let BaseOpcode = "S2_storerdabs"; 23297let CextOpcode = "S2_storerd"; 23298let DecoderNamespace = "MustExtend"; 23299let isExtendable = 1; 23300let opExtendable = 1; 23301let isExtentSigned = 0; 23302let opExtentBits = 6; 23303let opExtentAlign = 0; 23304} 23305def S4_pstorerdt_rr : HInst< 23306(outs), 23307(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23308"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23309tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23310let Inst{31-21} = 0b00110100110; 23311let isPredicated = 1; 23312let addrMode = BaseRegOffset; 23313let accessSize = DoubleWordAccess; 23314let mayStore = 1; 23315let BaseOpcode = "S2_storerd_rr"; 23316let CextOpcode = "S2_storerd"; 23317let InputType = "reg"; 23318} 23319def S4_pstorerdtnew_abs : HInst< 23320(outs), 23321(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23322"if ($Pv4.new) memd(#$Ii) = $Rtt32", 23323tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23324let Inst{2-2} = 0b0; 23325let Inst{7-7} = 0b1; 23326let Inst{13-13} = 0b1; 23327let Inst{31-18} = 0b10101111110000; 23328let isPredicated = 1; 23329let addrMode = Absolute; 23330let accessSize = DoubleWordAccess; 23331let isPredicatedNew = 1; 23332let isExtended = 1; 23333let mayStore = 1; 23334let BaseOpcode = "S2_storerdabs"; 23335let CextOpcode = "S2_storerd"; 23336let DecoderNamespace = "MustExtend"; 23337let isExtendable = 1; 23338let opExtendable = 1; 23339let isExtentSigned = 0; 23340let opExtentBits = 6; 23341let opExtentAlign = 0; 23342} 23343def S4_pstorerdtnew_io : HInst< 23344(outs), 23345(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23346"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23347tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23348let Inst{2-2} = 0b0; 23349let Inst{31-21} = 0b01000010110; 23350let isPredicated = 1; 23351let addrMode = BaseImmOffset; 23352let accessSize = DoubleWordAccess; 23353let isPredicatedNew = 1; 23354let mayStore = 1; 23355let BaseOpcode = "S2_storerd_io"; 23356let CextOpcode = "S2_storerd"; 23357let InputType = "imm"; 23358let isExtendable = 1; 23359let opExtendable = 2; 23360let isExtentSigned = 0; 23361let opExtentBits = 9; 23362let opExtentAlign = 3; 23363} 23364def S4_pstorerdtnew_rr : HInst< 23365(outs), 23366(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23367"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23368tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23369let Inst{31-21} = 0b00110110110; 23370let isPredicated = 1; 23371let addrMode = BaseRegOffset; 23372let accessSize = DoubleWordAccess; 23373let isPredicatedNew = 1; 23374let mayStore = 1; 23375let BaseOpcode = "S2_storerd_rr"; 23376let CextOpcode = "S2_storerd"; 23377let InputType = "reg"; 23378} 23379def S4_pstorerdtnew_zomap : HInst< 23380(outs), 23381(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23382"if ($Pv4.new) memd($Rs32) = $Rtt32", 23383tc_a2b365d2, TypeMAPPING> { 23384let isPseudo = 1; 23385let isCodeGenOnly = 1; 23386} 23387def S4_pstorerff_abs : HInst< 23388(outs), 23389(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23390"if (!$Pv4) memh(#$Ii) = $Rt32.h", 23391tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23392let Inst{2-2} = 0b1; 23393let Inst{7-7} = 0b1; 23394let Inst{13-13} = 0b0; 23395let Inst{31-18} = 0b10101111011000; 23396let isPredicated = 1; 23397let isPredicatedFalse = 1; 23398let addrMode = Absolute; 23399let accessSize = HalfWordAccess; 23400let isExtended = 1; 23401let mayStore = 1; 23402let BaseOpcode = "S2_storerfabs"; 23403let CextOpcode = "S2_storerf"; 23404let DecoderNamespace = "MustExtend"; 23405let isExtendable = 1; 23406let opExtendable = 1; 23407let isExtentSigned = 0; 23408let opExtentBits = 6; 23409let opExtentAlign = 0; 23410} 23411def S4_pstorerff_rr : HInst< 23412(outs), 23413(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23414"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23415tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23416let Inst{31-21} = 0b00110101011; 23417let isPredicated = 1; 23418let isPredicatedFalse = 1; 23419let addrMode = BaseRegOffset; 23420let accessSize = HalfWordAccess; 23421let mayStore = 1; 23422let BaseOpcode = "S4_storerf_rr"; 23423let CextOpcode = "S2_storerf"; 23424let InputType = "reg"; 23425} 23426def S4_pstorerffnew_abs : HInst< 23427(outs), 23428(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23429"if (!$Pv4.new) memh(#$Ii) = $Rt32.h", 23430tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23431let Inst{2-2} = 0b1; 23432let Inst{7-7} = 0b1; 23433let Inst{13-13} = 0b1; 23434let Inst{31-18} = 0b10101111011000; 23435let isPredicated = 1; 23436let isPredicatedFalse = 1; 23437let addrMode = Absolute; 23438let accessSize = HalfWordAccess; 23439let isPredicatedNew = 1; 23440let isExtended = 1; 23441let mayStore = 1; 23442let BaseOpcode = "S2_storerfabs"; 23443let CextOpcode = "S2_storerf"; 23444let DecoderNamespace = "MustExtend"; 23445let isExtendable = 1; 23446let opExtendable = 1; 23447let isExtentSigned = 0; 23448let opExtentBits = 6; 23449let opExtentAlign = 0; 23450} 23451def S4_pstorerffnew_io : HInst< 23452(outs), 23453(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23454"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23455tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23456let Inst{2-2} = 0b0; 23457let Inst{31-21} = 0b01000110011; 23458let isPredicated = 1; 23459let isPredicatedFalse = 1; 23460let addrMode = BaseImmOffset; 23461let accessSize = HalfWordAccess; 23462let isPredicatedNew = 1; 23463let mayStore = 1; 23464let BaseOpcode = "S2_storerf_io"; 23465let CextOpcode = "S2_storerf"; 23466let InputType = "imm"; 23467let isExtendable = 1; 23468let opExtendable = 2; 23469let isExtentSigned = 0; 23470let opExtentBits = 7; 23471let opExtentAlign = 1; 23472} 23473def S4_pstorerffnew_rr : HInst< 23474(outs), 23475(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23476"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23477tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23478let Inst{31-21} = 0b00110111011; 23479let isPredicated = 1; 23480let isPredicatedFalse = 1; 23481let addrMode = BaseRegOffset; 23482let accessSize = HalfWordAccess; 23483let isPredicatedNew = 1; 23484let mayStore = 1; 23485let BaseOpcode = "S4_storerf_rr"; 23486let CextOpcode = "S2_storerf"; 23487let InputType = "reg"; 23488} 23489def S4_pstorerffnew_zomap : HInst< 23490(outs), 23491(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23492"if (!$Pv4.new) memh($Rs32) = $Rt32.h", 23493tc_a2b365d2, TypeMAPPING> { 23494let isPseudo = 1; 23495let isCodeGenOnly = 1; 23496} 23497def S4_pstorerft_abs : HInst< 23498(outs), 23499(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23500"if ($Pv4) memh(#$Ii) = $Rt32.h", 23501tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23502let Inst{2-2} = 0b0; 23503let Inst{7-7} = 0b1; 23504let Inst{13-13} = 0b0; 23505let Inst{31-18} = 0b10101111011000; 23506let isPredicated = 1; 23507let addrMode = Absolute; 23508let accessSize = HalfWordAccess; 23509let isExtended = 1; 23510let mayStore = 1; 23511let BaseOpcode = "S2_storerfabs"; 23512let CextOpcode = "S2_storerf"; 23513let DecoderNamespace = "MustExtend"; 23514let isExtendable = 1; 23515let opExtendable = 1; 23516let isExtentSigned = 0; 23517let opExtentBits = 6; 23518let opExtentAlign = 0; 23519} 23520def S4_pstorerft_rr : HInst< 23521(outs), 23522(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23523"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23524tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23525let Inst{31-21} = 0b00110100011; 23526let isPredicated = 1; 23527let addrMode = BaseRegOffset; 23528let accessSize = HalfWordAccess; 23529let mayStore = 1; 23530let BaseOpcode = "S4_storerf_rr"; 23531let CextOpcode = "S2_storerf"; 23532let InputType = "reg"; 23533} 23534def S4_pstorerftnew_abs : HInst< 23535(outs), 23536(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23537"if ($Pv4.new) memh(#$Ii) = $Rt32.h", 23538tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23539let Inst{2-2} = 0b0; 23540let Inst{7-7} = 0b1; 23541let Inst{13-13} = 0b1; 23542let Inst{31-18} = 0b10101111011000; 23543let isPredicated = 1; 23544let addrMode = Absolute; 23545let accessSize = HalfWordAccess; 23546let isPredicatedNew = 1; 23547let isExtended = 1; 23548let mayStore = 1; 23549let BaseOpcode = "S2_storerfabs"; 23550let CextOpcode = "S2_storerf"; 23551let DecoderNamespace = "MustExtend"; 23552let isExtendable = 1; 23553let opExtendable = 1; 23554let isExtentSigned = 0; 23555let opExtentBits = 6; 23556let opExtentAlign = 0; 23557} 23558def S4_pstorerftnew_io : HInst< 23559(outs), 23560(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23561"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23562tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23563let Inst{2-2} = 0b0; 23564let Inst{31-21} = 0b01000010011; 23565let isPredicated = 1; 23566let addrMode = BaseImmOffset; 23567let accessSize = HalfWordAccess; 23568let isPredicatedNew = 1; 23569let mayStore = 1; 23570let BaseOpcode = "S2_storerf_io"; 23571let CextOpcode = "S2_storerf"; 23572let InputType = "imm"; 23573let isExtendable = 1; 23574let opExtendable = 2; 23575let isExtentSigned = 0; 23576let opExtentBits = 7; 23577let opExtentAlign = 1; 23578} 23579def S4_pstorerftnew_rr : HInst< 23580(outs), 23581(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23582"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23583tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23584let Inst{31-21} = 0b00110110011; 23585let isPredicated = 1; 23586let addrMode = BaseRegOffset; 23587let accessSize = HalfWordAccess; 23588let isPredicatedNew = 1; 23589let mayStore = 1; 23590let BaseOpcode = "S4_storerf_rr"; 23591let CextOpcode = "S2_storerf"; 23592let InputType = "reg"; 23593} 23594def S4_pstorerftnew_zomap : HInst< 23595(outs), 23596(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23597"if ($Pv4.new) memh($Rs32) = $Rt32.h", 23598tc_a2b365d2, TypeMAPPING> { 23599let isPseudo = 1; 23600let isCodeGenOnly = 1; 23601} 23602def S4_pstorerhf_abs : HInst< 23603(outs), 23604(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23605"if (!$Pv4) memh(#$Ii) = $Rt32", 23606tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23607let Inst{2-2} = 0b1; 23608let Inst{7-7} = 0b1; 23609let Inst{13-13} = 0b0; 23610let Inst{31-18} = 0b10101111010000; 23611let isPredicated = 1; 23612let isPredicatedFalse = 1; 23613let addrMode = Absolute; 23614let accessSize = HalfWordAccess; 23615let isExtended = 1; 23616let mayStore = 1; 23617let BaseOpcode = "S2_storerhabs"; 23618let CextOpcode = "S2_storerh"; 23619let isNVStorable = 1; 23620let DecoderNamespace = "MustExtend"; 23621let isExtendable = 1; 23622let opExtendable = 1; 23623let isExtentSigned = 0; 23624let opExtentBits = 6; 23625let opExtentAlign = 0; 23626} 23627def S4_pstorerhf_rr : HInst< 23628(outs), 23629(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23630"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23631tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23632let Inst{31-21} = 0b00110101010; 23633let isPredicated = 1; 23634let isPredicatedFalse = 1; 23635let addrMode = BaseRegOffset; 23636let accessSize = HalfWordAccess; 23637let mayStore = 1; 23638let BaseOpcode = "S2_storerh_rr"; 23639let CextOpcode = "S2_storerh"; 23640let InputType = "reg"; 23641let isNVStorable = 1; 23642} 23643def S4_pstorerhfnew_abs : HInst< 23644(outs), 23645(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23646"if (!$Pv4.new) memh(#$Ii) = $Rt32", 23647tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23648let Inst{2-2} = 0b1; 23649let Inst{7-7} = 0b1; 23650let Inst{13-13} = 0b1; 23651let Inst{31-18} = 0b10101111010000; 23652let isPredicated = 1; 23653let isPredicatedFalse = 1; 23654let addrMode = Absolute; 23655let accessSize = HalfWordAccess; 23656let isPredicatedNew = 1; 23657let isExtended = 1; 23658let mayStore = 1; 23659let BaseOpcode = "S2_storerhabs"; 23660let CextOpcode = "S2_storerh"; 23661let isNVStorable = 1; 23662let DecoderNamespace = "MustExtend"; 23663let isExtendable = 1; 23664let opExtendable = 1; 23665let isExtentSigned = 0; 23666let opExtentBits = 6; 23667let opExtentAlign = 0; 23668} 23669def S4_pstorerhfnew_io : HInst< 23670(outs), 23671(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23672"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23673tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23674let Inst{2-2} = 0b0; 23675let Inst{31-21} = 0b01000110010; 23676let isPredicated = 1; 23677let isPredicatedFalse = 1; 23678let addrMode = BaseImmOffset; 23679let accessSize = HalfWordAccess; 23680let isPredicatedNew = 1; 23681let mayStore = 1; 23682let BaseOpcode = "S2_storerh_io"; 23683let CextOpcode = "S2_storerh"; 23684let InputType = "imm"; 23685let isNVStorable = 1; 23686let isExtendable = 1; 23687let opExtendable = 2; 23688let isExtentSigned = 0; 23689let opExtentBits = 7; 23690let opExtentAlign = 1; 23691} 23692def S4_pstorerhfnew_rr : HInst< 23693(outs), 23694(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23695"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23696tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23697let Inst{31-21} = 0b00110111010; 23698let isPredicated = 1; 23699let isPredicatedFalse = 1; 23700let addrMode = BaseRegOffset; 23701let accessSize = HalfWordAccess; 23702let isPredicatedNew = 1; 23703let mayStore = 1; 23704let BaseOpcode = "S2_storerh_rr"; 23705let CextOpcode = "S2_storerh"; 23706let InputType = "reg"; 23707let isNVStorable = 1; 23708} 23709def S4_pstorerhfnew_zomap : HInst< 23710(outs), 23711(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23712"if (!$Pv4.new) memh($Rs32) = $Rt32", 23713tc_a2b365d2, TypeMAPPING> { 23714let isPseudo = 1; 23715let isCodeGenOnly = 1; 23716} 23717def S4_pstorerhnewf_abs : HInst< 23718(outs), 23719(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23720"if (!$Pv4) memh(#$Ii) = $Nt8.new", 23721tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23722let Inst{2-2} = 0b1; 23723let Inst{7-7} = 0b1; 23724let Inst{13-11} = 0b001; 23725let Inst{31-18} = 0b10101111101000; 23726let isPredicated = 1; 23727let isPredicatedFalse = 1; 23728let addrMode = Absolute; 23729let accessSize = HalfWordAccess; 23730let isNVStore = 1; 23731let isNewValue = 1; 23732let isExtended = 1; 23733let isRestrictNoSlot1Store = 1; 23734let mayStore = 1; 23735let BaseOpcode = "S2_storerhabs"; 23736let CextOpcode = "S2_storerh"; 23737let DecoderNamespace = "MustExtend"; 23738let isExtendable = 1; 23739let opExtendable = 1; 23740let isExtentSigned = 0; 23741let opExtentBits = 6; 23742let opExtentAlign = 0; 23743let opNewValue = 2; 23744} 23745def S4_pstorerhnewf_rr : HInst< 23746(outs), 23747(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23748"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23749tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23750let Inst{4-3} = 0b01; 23751let Inst{31-21} = 0b00110101101; 23752let isPredicated = 1; 23753let isPredicatedFalse = 1; 23754let addrMode = BaseRegOffset; 23755let accessSize = HalfWordAccess; 23756let isNVStore = 1; 23757let isNewValue = 1; 23758let isRestrictNoSlot1Store = 1; 23759let mayStore = 1; 23760let BaseOpcode = "S2_storerh_rr"; 23761let CextOpcode = "S2_storerh"; 23762let InputType = "reg"; 23763let opNewValue = 4; 23764} 23765def S4_pstorerhnewfnew_abs : HInst< 23766(outs), 23767(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23768"if (!$Pv4.new) memh(#$Ii) = $Nt8.new", 23769tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23770let Inst{2-2} = 0b1; 23771let Inst{7-7} = 0b1; 23772let Inst{13-11} = 0b101; 23773let Inst{31-18} = 0b10101111101000; 23774let isPredicated = 1; 23775let isPredicatedFalse = 1; 23776let addrMode = Absolute; 23777let accessSize = HalfWordAccess; 23778let isNVStore = 1; 23779let isPredicatedNew = 1; 23780let isNewValue = 1; 23781let isExtended = 1; 23782let isRestrictNoSlot1Store = 1; 23783let mayStore = 1; 23784let BaseOpcode = "S2_storerhabs"; 23785let CextOpcode = "S2_storerh"; 23786let DecoderNamespace = "MustExtend"; 23787let isExtendable = 1; 23788let opExtendable = 1; 23789let isExtentSigned = 0; 23790let opExtentBits = 6; 23791let opExtentAlign = 0; 23792let opNewValue = 2; 23793} 23794def S4_pstorerhnewfnew_io : HInst< 23795(outs), 23796(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23797"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23798tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23799let Inst{2-2} = 0b0; 23800let Inst{12-11} = 0b01; 23801let Inst{31-21} = 0b01000110101; 23802let isPredicated = 1; 23803let isPredicatedFalse = 1; 23804let addrMode = BaseImmOffset; 23805let accessSize = HalfWordAccess; 23806let isNVStore = 1; 23807let isPredicatedNew = 1; 23808let isNewValue = 1; 23809let isRestrictNoSlot1Store = 1; 23810let mayStore = 1; 23811let BaseOpcode = "S2_storerh_io"; 23812let CextOpcode = "S2_storerh"; 23813let InputType = "imm"; 23814let isExtendable = 1; 23815let opExtendable = 2; 23816let isExtentSigned = 0; 23817let opExtentBits = 7; 23818let opExtentAlign = 1; 23819let opNewValue = 3; 23820} 23821def S4_pstorerhnewfnew_rr : HInst< 23822(outs), 23823(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23824"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23825tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23826let Inst{4-3} = 0b01; 23827let Inst{31-21} = 0b00110111101; 23828let isPredicated = 1; 23829let isPredicatedFalse = 1; 23830let addrMode = BaseRegOffset; 23831let accessSize = HalfWordAccess; 23832let isNVStore = 1; 23833let isPredicatedNew = 1; 23834let isNewValue = 1; 23835let isRestrictNoSlot1Store = 1; 23836let mayStore = 1; 23837let BaseOpcode = "S2_storerh_rr"; 23838let CextOpcode = "S2_storerh"; 23839let InputType = "reg"; 23840let opNewValue = 4; 23841} 23842def S4_pstorerhnewfnew_zomap : HInst< 23843(outs), 23844(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23845"if (!$Pv4.new) memh($Rs32) = $Nt8.new", 23846tc_92240447, TypeMAPPING> { 23847let isPseudo = 1; 23848let isCodeGenOnly = 1; 23849let opNewValue = 2; 23850} 23851def S4_pstorerhnewt_abs : HInst< 23852(outs), 23853(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23854"if ($Pv4) memh(#$Ii) = $Nt8.new", 23855tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23856let Inst{2-2} = 0b0; 23857let Inst{7-7} = 0b1; 23858let Inst{13-11} = 0b001; 23859let Inst{31-18} = 0b10101111101000; 23860let isPredicated = 1; 23861let addrMode = Absolute; 23862let accessSize = HalfWordAccess; 23863let isNVStore = 1; 23864let isNewValue = 1; 23865let isExtended = 1; 23866let isRestrictNoSlot1Store = 1; 23867let mayStore = 1; 23868let BaseOpcode = "S2_storerhabs"; 23869let CextOpcode = "S2_storerh"; 23870let DecoderNamespace = "MustExtend"; 23871let isExtendable = 1; 23872let opExtendable = 1; 23873let isExtentSigned = 0; 23874let opExtentBits = 6; 23875let opExtentAlign = 0; 23876let opNewValue = 2; 23877} 23878def S4_pstorerhnewt_rr : HInst< 23879(outs), 23880(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23881"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23882tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23883let Inst{4-3} = 0b01; 23884let Inst{31-21} = 0b00110100101; 23885let isPredicated = 1; 23886let addrMode = BaseRegOffset; 23887let accessSize = HalfWordAccess; 23888let isNVStore = 1; 23889let isNewValue = 1; 23890let isRestrictNoSlot1Store = 1; 23891let mayStore = 1; 23892let BaseOpcode = "S2_storerh_rr"; 23893let CextOpcode = "S2_storerh"; 23894let InputType = "reg"; 23895let opNewValue = 4; 23896} 23897def S4_pstorerhnewtnew_abs : HInst< 23898(outs), 23899(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23900"if ($Pv4.new) memh(#$Ii) = $Nt8.new", 23901tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23902let Inst{2-2} = 0b0; 23903let Inst{7-7} = 0b1; 23904let Inst{13-11} = 0b101; 23905let Inst{31-18} = 0b10101111101000; 23906let isPredicated = 1; 23907let addrMode = Absolute; 23908let accessSize = HalfWordAccess; 23909let isNVStore = 1; 23910let isPredicatedNew = 1; 23911let isNewValue = 1; 23912let isExtended = 1; 23913let isRestrictNoSlot1Store = 1; 23914let mayStore = 1; 23915let BaseOpcode = "S2_storerhabs"; 23916let CextOpcode = "S2_storerh"; 23917let DecoderNamespace = "MustExtend"; 23918let isExtendable = 1; 23919let opExtendable = 1; 23920let isExtentSigned = 0; 23921let opExtentBits = 6; 23922let opExtentAlign = 0; 23923let opNewValue = 2; 23924} 23925def S4_pstorerhnewtnew_io : HInst< 23926(outs), 23927(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23928"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23929tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23930let Inst{2-2} = 0b0; 23931let Inst{12-11} = 0b01; 23932let Inst{31-21} = 0b01000010101; 23933let isPredicated = 1; 23934let addrMode = BaseImmOffset; 23935let accessSize = HalfWordAccess; 23936let isNVStore = 1; 23937let isPredicatedNew = 1; 23938let isNewValue = 1; 23939let isRestrictNoSlot1Store = 1; 23940let mayStore = 1; 23941let BaseOpcode = "S2_storerh_io"; 23942let CextOpcode = "S2_storerh"; 23943let InputType = "imm"; 23944let isExtendable = 1; 23945let opExtendable = 2; 23946let isExtentSigned = 0; 23947let opExtentBits = 7; 23948let opExtentAlign = 1; 23949let opNewValue = 3; 23950} 23951def S4_pstorerhnewtnew_rr : HInst< 23952(outs), 23953(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23954"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23955tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23956let Inst{4-3} = 0b01; 23957let Inst{31-21} = 0b00110110101; 23958let isPredicated = 1; 23959let addrMode = BaseRegOffset; 23960let accessSize = HalfWordAccess; 23961let isNVStore = 1; 23962let isPredicatedNew = 1; 23963let isNewValue = 1; 23964let isRestrictNoSlot1Store = 1; 23965let mayStore = 1; 23966let BaseOpcode = "S2_storerh_rr"; 23967let CextOpcode = "S2_storerh"; 23968let InputType = "reg"; 23969let opNewValue = 4; 23970} 23971def S4_pstorerhnewtnew_zomap : HInst< 23972(outs), 23973(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23974"if ($Pv4.new) memh($Rs32) = $Nt8.new", 23975tc_92240447, TypeMAPPING> { 23976let isPseudo = 1; 23977let isCodeGenOnly = 1; 23978let opNewValue = 2; 23979} 23980def S4_pstorerht_abs : HInst< 23981(outs), 23982(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23983"if ($Pv4) memh(#$Ii) = $Rt32", 23984tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23985let Inst{2-2} = 0b0; 23986let Inst{7-7} = 0b1; 23987let Inst{13-13} = 0b0; 23988let Inst{31-18} = 0b10101111010000; 23989let isPredicated = 1; 23990let addrMode = Absolute; 23991let accessSize = HalfWordAccess; 23992let isExtended = 1; 23993let mayStore = 1; 23994let BaseOpcode = "S2_storerhabs"; 23995let CextOpcode = "S2_storerh"; 23996let isNVStorable = 1; 23997let DecoderNamespace = "MustExtend"; 23998let isExtendable = 1; 23999let opExtendable = 1; 24000let isExtentSigned = 0; 24001let opExtentBits = 6; 24002let opExtentAlign = 0; 24003} 24004def S4_pstorerht_rr : HInst< 24005(outs), 24006(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24007"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24008tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24009let Inst{31-21} = 0b00110100010; 24010let isPredicated = 1; 24011let addrMode = BaseRegOffset; 24012let accessSize = HalfWordAccess; 24013let mayStore = 1; 24014let BaseOpcode = "S2_storerh_rr"; 24015let CextOpcode = "S2_storerh"; 24016let InputType = "reg"; 24017let isNVStorable = 1; 24018} 24019def S4_pstorerhtnew_abs : HInst< 24020(outs), 24021(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24022"if ($Pv4.new) memh(#$Ii) = $Rt32", 24023tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24024let Inst{2-2} = 0b0; 24025let Inst{7-7} = 0b1; 24026let Inst{13-13} = 0b1; 24027let Inst{31-18} = 0b10101111010000; 24028let isPredicated = 1; 24029let addrMode = Absolute; 24030let accessSize = HalfWordAccess; 24031let isPredicatedNew = 1; 24032let isExtended = 1; 24033let mayStore = 1; 24034let BaseOpcode = "S2_storerhabs"; 24035let CextOpcode = "S2_storerh"; 24036let isNVStorable = 1; 24037let DecoderNamespace = "MustExtend"; 24038let isExtendable = 1; 24039let opExtendable = 1; 24040let isExtentSigned = 0; 24041let opExtentBits = 6; 24042let opExtentAlign = 0; 24043} 24044def S4_pstorerhtnew_io : HInst< 24045(outs), 24046(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 24047"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32", 24048tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 24049let Inst{2-2} = 0b0; 24050let Inst{31-21} = 0b01000010010; 24051let isPredicated = 1; 24052let addrMode = BaseImmOffset; 24053let accessSize = HalfWordAccess; 24054let isPredicatedNew = 1; 24055let mayStore = 1; 24056let BaseOpcode = "S2_storerh_io"; 24057let CextOpcode = "S2_storerh"; 24058let InputType = "imm"; 24059let isNVStorable = 1; 24060let isExtendable = 1; 24061let opExtendable = 2; 24062let isExtentSigned = 0; 24063let opExtentBits = 7; 24064let opExtentAlign = 1; 24065} 24066def S4_pstorerhtnew_rr : HInst< 24067(outs), 24068(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24069"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24070tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24071let Inst{31-21} = 0b00110110010; 24072let isPredicated = 1; 24073let addrMode = BaseRegOffset; 24074let accessSize = HalfWordAccess; 24075let isPredicatedNew = 1; 24076let mayStore = 1; 24077let BaseOpcode = "S2_storerh_rr"; 24078let CextOpcode = "S2_storerh"; 24079let InputType = "reg"; 24080let isNVStorable = 1; 24081} 24082def S4_pstorerhtnew_zomap : HInst< 24083(outs), 24084(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24085"if ($Pv4.new) memh($Rs32) = $Rt32", 24086tc_a2b365d2, TypeMAPPING> { 24087let isPseudo = 1; 24088let isCodeGenOnly = 1; 24089} 24090def S4_pstorerif_abs : HInst< 24091(outs), 24092(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24093"if (!$Pv4) memw(#$Ii) = $Rt32", 24094tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24095let Inst{2-2} = 0b1; 24096let Inst{7-7} = 0b1; 24097let Inst{13-13} = 0b0; 24098let Inst{31-18} = 0b10101111100000; 24099let isPredicated = 1; 24100let isPredicatedFalse = 1; 24101let addrMode = Absolute; 24102let accessSize = WordAccess; 24103let isExtended = 1; 24104let mayStore = 1; 24105let BaseOpcode = "S2_storeriabs"; 24106let CextOpcode = "S2_storeri"; 24107let isNVStorable = 1; 24108let DecoderNamespace = "MustExtend"; 24109let isExtendable = 1; 24110let opExtendable = 1; 24111let isExtentSigned = 0; 24112let opExtentBits = 6; 24113let opExtentAlign = 0; 24114} 24115def S4_pstorerif_rr : HInst< 24116(outs), 24117(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24118"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24119tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24120let Inst{31-21} = 0b00110101100; 24121let isPredicated = 1; 24122let isPredicatedFalse = 1; 24123let addrMode = BaseRegOffset; 24124let accessSize = WordAccess; 24125let mayStore = 1; 24126let BaseOpcode = "S2_storeri_rr"; 24127let CextOpcode = "S2_storeri"; 24128let InputType = "reg"; 24129let isNVStorable = 1; 24130} 24131def S4_pstorerifnew_abs : HInst< 24132(outs), 24133(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24134"if (!$Pv4.new) memw(#$Ii) = $Rt32", 24135tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24136let Inst{2-2} = 0b1; 24137let Inst{7-7} = 0b1; 24138let Inst{13-13} = 0b1; 24139let Inst{31-18} = 0b10101111100000; 24140let isPredicated = 1; 24141let isPredicatedFalse = 1; 24142let addrMode = Absolute; 24143let accessSize = WordAccess; 24144let isPredicatedNew = 1; 24145let isExtended = 1; 24146let mayStore = 1; 24147let BaseOpcode = "S2_storeriabs"; 24148let CextOpcode = "S2_storeri"; 24149let isNVStorable = 1; 24150let DecoderNamespace = "MustExtend"; 24151let isExtendable = 1; 24152let opExtendable = 1; 24153let isExtentSigned = 0; 24154let opExtentBits = 6; 24155let opExtentAlign = 0; 24156} 24157def S4_pstorerifnew_io : HInst< 24158(outs), 24159(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24160"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24161tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24162let Inst{2-2} = 0b0; 24163let Inst{31-21} = 0b01000110100; 24164let isPredicated = 1; 24165let isPredicatedFalse = 1; 24166let addrMode = BaseImmOffset; 24167let accessSize = WordAccess; 24168let isPredicatedNew = 1; 24169let mayStore = 1; 24170let BaseOpcode = "S2_storeri_io"; 24171let CextOpcode = "S2_storeri"; 24172let InputType = "imm"; 24173let isNVStorable = 1; 24174let isExtendable = 1; 24175let opExtendable = 2; 24176let isExtentSigned = 0; 24177let opExtentBits = 8; 24178let opExtentAlign = 2; 24179} 24180def S4_pstorerifnew_rr : HInst< 24181(outs), 24182(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24183"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24184tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24185let Inst{31-21} = 0b00110111100; 24186let isPredicated = 1; 24187let isPredicatedFalse = 1; 24188let addrMode = BaseRegOffset; 24189let accessSize = WordAccess; 24190let isPredicatedNew = 1; 24191let mayStore = 1; 24192let BaseOpcode = "S2_storeri_rr"; 24193let CextOpcode = "S2_storeri"; 24194let InputType = "reg"; 24195let isNVStorable = 1; 24196} 24197def S4_pstorerifnew_zomap : HInst< 24198(outs), 24199(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24200"if (!$Pv4.new) memw($Rs32) = $Rt32", 24201tc_a2b365d2, TypeMAPPING> { 24202let isPseudo = 1; 24203let isCodeGenOnly = 1; 24204} 24205def S4_pstorerinewf_abs : HInst< 24206(outs), 24207(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24208"if (!$Pv4) memw(#$Ii) = $Nt8.new", 24209tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24210let Inst{2-2} = 0b1; 24211let Inst{7-7} = 0b1; 24212let Inst{13-11} = 0b010; 24213let Inst{31-18} = 0b10101111101000; 24214let isPredicated = 1; 24215let isPredicatedFalse = 1; 24216let addrMode = Absolute; 24217let accessSize = WordAccess; 24218let isNVStore = 1; 24219let isNewValue = 1; 24220let isExtended = 1; 24221let isRestrictNoSlot1Store = 1; 24222let mayStore = 1; 24223let BaseOpcode = "S2_storeriabs"; 24224let CextOpcode = "S2_storeri"; 24225let DecoderNamespace = "MustExtend"; 24226let isExtendable = 1; 24227let opExtendable = 1; 24228let isExtentSigned = 0; 24229let opExtentBits = 6; 24230let opExtentAlign = 0; 24231let opNewValue = 2; 24232} 24233def S4_pstorerinewf_rr : HInst< 24234(outs), 24235(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24236"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24237tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24238let Inst{4-3} = 0b10; 24239let Inst{31-21} = 0b00110101101; 24240let isPredicated = 1; 24241let isPredicatedFalse = 1; 24242let addrMode = BaseRegOffset; 24243let accessSize = WordAccess; 24244let isNVStore = 1; 24245let isNewValue = 1; 24246let isRestrictNoSlot1Store = 1; 24247let mayStore = 1; 24248let BaseOpcode = "S2_storeri_rr"; 24249let CextOpcode = "S2_storeri"; 24250let InputType = "reg"; 24251let opNewValue = 4; 24252} 24253def S4_pstorerinewfnew_abs : HInst< 24254(outs), 24255(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24256"if (!$Pv4.new) memw(#$Ii) = $Nt8.new", 24257tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24258let Inst{2-2} = 0b1; 24259let Inst{7-7} = 0b1; 24260let Inst{13-11} = 0b110; 24261let Inst{31-18} = 0b10101111101000; 24262let isPredicated = 1; 24263let isPredicatedFalse = 1; 24264let addrMode = Absolute; 24265let accessSize = WordAccess; 24266let isNVStore = 1; 24267let isPredicatedNew = 1; 24268let isNewValue = 1; 24269let isExtended = 1; 24270let isRestrictNoSlot1Store = 1; 24271let mayStore = 1; 24272let BaseOpcode = "S2_storeriabs"; 24273let CextOpcode = "S2_storeri"; 24274let DecoderNamespace = "MustExtend"; 24275let isExtendable = 1; 24276let opExtendable = 1; 24277let isExtentSigned = 0; 24278let opExtentBits = 6; 24279let opExtentAlign = 0; 24280let opNewValue = 2; 24281} 24282def S4_pstorerinewfnew_io : HInst< 24283(outs), 24284(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24285"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24286tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24287let Inst{2-2} = 0b0; 24288let Inst{12-11} = 0b10; 24289let Inst{31-21} = 0b01000110101; 24290let isPredicated = 1; 24291let isPredicatedFalse = 1; 24292let addrMode = BaseImmOffset; 24293let accessSize = WordAccess; 24294let isNVStore = 1; 24295let isPredicatedNew = 1; 24296let isNewValue = 1; 24297let isRestrictNoSlot1Store = 1; 24298let mayStore = 1; 24299let BaseOpcode = "S2_storeri_io"; 24300let CextOpcode = "S2_storeri"; 24301let InputType = "imm"; 24302let isExtendable = 1; 24303let opExtendable = 2; 24304let isExtentSigned = 0; 24305let opExtentBits = 8; 24306let opExtentAlign = 2; 24307let opNewValue = 3; 24308} 24309def S4_pstorerinewfnew_rr : HInst< 24310(outs), 24311(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24312"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24313tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24314let Inst{4-3} = 0b10; 24315let Inst{31-21} = 0b00110111101; 24316let isPredicated = 1; 24317let isPredicatedFalse = 1; 24318let addrMode = BaseRegOffset; 24319let accessSize = WordAccess; 24320let isNVStore = 1; 24321let isPredicatedNew = 1; 24322let isNewValue = 1; 24323let isRestrictNoSlot1Store = 1; 24324let mayStore = 1; 24325let BaseOpcode = "S2_storeri_rr"; 24326let CextOpcode = "S2_storeri"; 24327let InputType = "reg"; 24328let opNewValue = 4; 24329} 24330def S4_pstorerinewfnew_zomap : HInst< 24331(outs), 24332(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24333"if (!$Pv4.new) memw($Rs32) = $Nt8.new", 24334tc_92240447, TypeMAPPING> { 24335let isPseudo = 1; 24336let isCodeGenOnly = 1; 24337let opNewValue = 2; 24338} 24339def S4_pstorerinewt_abs : HInst< 24340(outs), 24341(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24342"if ($Pv4) memw(#$Ii) = $Nt8.new", 24343tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24344let Inst{2-2} = 0b0; 24345let Inst{7-7} = 0b1; 24346let Inst{13-11} = 0b010; 24347let Inst{31-18} = 0b10101111101000; 24348let isPredicated = 1; 24349let addrMode = Absolute; 24350let accessSize = WordAccess; 24351let isNVStore = 1; 24352let isNewValue = 1; 24353let isExtended = 1; 24354let isRestrictNoSlot1Store = 1; 24355let mayStore = 1; 24356let BaseOpcode = "S2_storeriabs"; 24357let CextOpcode = "S2_storeri"; 24358let DecoderNamespace = "MustExtend"; 24359let isExtendable = 1; 24360let opExtendable = 1; 24361let isExtentSigned = 0; 24362let opExtentBits = 6; 24363let opExtentAlign = 0; 24364let opNewValue = 2; 24365} 24366def S4_pstorerinewt_rr : HInst< 24367(outs), 24368(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24369"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24370tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24371let Inst{4-3} = 0b10; 24372let Inst{31-21} = 0b00110100101; 24373let isPredicated = 1; 24374let addrMode = BaseRegOffset; 24375let accessSize = WordAccess; 24376let isNVStore = 1; 24377let isNewValue = 1; 24378let isRestrictNoSlot1Store = 1; 24379let mayStore = 1; 24380let BaseOpcode = "S2_storeri_rr"; 24381let CextOpcode = "S2_storeri"; 24382let InputType = "reg"; 24383let opNewValue = 4; 24384} 24385def S4_pstorerinewtnew_abs : HInst< 24386(outs), 24387(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24388"if ($Pv4.new) memw(#$Ii) = $Nt8.new", 24389tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24390let Inst{2-2} = 0b0; 24391let Inst{7-7} = 0b1; 24392let Inst{13-11} = 0b110; 24393let Inst{31-18} = 0b10101111101000; 24394let isPredicated = 1; 24395let addrMode = Absolute; 24396let accessSize = WordAccess; 24397let isNVStore = 1; 24398let isPredicatedNew = 1; 24399let isNewValue = 1; 24400let isExtended = 1; 24401let isRestrictNoSlot1Store = 1; 24402let mayStore = 1; 24403let BaseOpcode = "S2_storeriabs"; 24404let CextOpcode = "S2_storeri"; 24405let DecoderNamespace = "MustExtend"; 24406let isExtendable = 1; 24407let opExtendable = 1; 24408let isExtentSigned = 0; 24409let opExtentBits = 6; 24410let opExtentAlign = 0; 24411let opNewValue = 2; 24412} 24413def S4_pstorerinewtnew_io : HInst< 24414(outs), 24415(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24416"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24417tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24418let Inst{2-2} = 0b0; 24419let Inst{12-11} = 0b10; 24420let Inst{31-21} = 0b01000010101; 24421let isPredicated = 1; 24422let addrMode = BaseImmOffset; 24423let accessSize = WordAccess; 24424let isNVStore = 1; 24425let isPredicatedNew = 1; 24426let isNewValue = 1; 24427let isRestrictNoSlot1Store = 1; 24428let mayStore = 1; 24429let BaseOpcode = "S2_storeri_io"; 24430let CextOpcode = "S2_storeri"; 24431let InputType = "imm"; 24432let isExtendable = 1; 24433let opExtendable = 2; 24434let isExtentSigned = 0; 24435let opExtentBits = 8; 24436let opExtentAlign = 2; 24437let opNewValue = 3; 24438} 24439def S4_pstorerinewtnew_rr : HInst< 24440(outs), 24441(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24442"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24443tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24444let Inst{4-3} = 0b10; 24445let Inst{31-21} = 0b00110110101; 24446let isPredicated = 1; 24447let addrMode = BaseRegOffset; 24448let accessSize = WordAccess; 24449let isNVStore = 1; 24450let isPredicatedNew = 1; 24451let isNewValue = 1; 24452let isRestrictNoSlot1Store = 1; 24453let mayStore = 1; 24454let BaseOpcode = "S2_storeri_rr"; 24455let CextOpcode = "S2_storeri"; 24456let InputType = "reg"; 24457let opNewValue = 4; 24458} 24459def S4_pstorerinewtnew_zomap : HInst< 24460(outs), 24461(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24462"if ($Pv4.new) memw($Rs32) = $Nt8.new", 24463tc_92240447, TypeMAPPING> { 24464let isPseudo = 1; 24465let isCodeGenOnly = 1; 24466let opNewValue = 2; 24467} 24468def S4_pstorerit_abs : HInst< 24469(outs), 24470(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24471"if ($Pv4) memw(#$Ii) = $Rt32", 24472tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24473let Inst{2-2} = 0b0; 24474let Inst{7-7} = 0b1; 24475let Inst{13-13} = 0b0; 24476let Inst{31-18} = 0b10101111100000; 24477let isPredicated = 1; 24478let addrMode = Absolute; 24479let accessSize = WordAccess; 24480let isExtended = 1; 24481let mayStore = 1; 24482let BaseOpcode = "S2_storeriabs"; 24483let CextOpcode = "S2_storeri"; 24484let isNVStorable = 1; 24485let DecoderNamespace = "MustExtend"; 24486let isExtendable = 1; 24487let opExtendable = 1; 24488let isExtentSigned = 0; 24489let opExtentBits = 6; 24490let opExtentAlign = 0; 24491} 24492def S4_pstorerit_rr : HInst< 24493(outs), 24494(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24495"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24496tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24497let Inst{31-21} = 0b00110100100; 24498let isPredicated = 1; 24499let addrMode = BaseRegOffset; 24500let accessSize = WordAccess; 24501let mayStore = 1; 24502let BaseOpcode = "S2_storeri_rr"; 24503let CextOpcode = "S2_storeri"; 24504let InputType = "reg"; 24505let isNVStorable = 1; 24506} 24507def S4_pstoreritnew_abs : HInst< 24508(outs), 24509(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24510"if ($Pv4.new) memw(#$Ii) = $Rt32", 24511tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24512let Inst{2-2} = 0b0; 24513let Inst{7-7} = 0b1; 24514let Inst{13-13} = 0b1; 24515let Inst{31-18} = 0b10101111100000; 24516let isPredicated = 1; 24517let addrMode = Absolute; 24518let accessSize = WordAccess; 24519let isPredicatedNew = 1; 24520let isExtended = 1; 24521let mayStore = 1; 24522let BaseOpcode = "S2_storeriabs"; 24523let CextOpcode = "S2_storeri"; 24524let isNVStorable = 1; 24525let DecoderNamespace = "MustExtend"; 24526let isExtendable = 1; 24527let opExtendable = 1; 24528let isExtentSigned = 0; 24529let opExtentBits = 6; 24530let opExtentAlign = 0; 24531} 24532def S4_pstoreritnew_io : HInst< 24533(outs), 24534(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24535"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24536tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24537let Inst{2-2} = 0b0; 24538let Inst{31-21} = 0b01000010100; 24539let isPredicated = 1; 24540let addrMode = BaseImmOffset; 24541let accessSize = WordAccess; 24542let isPredicatedNew = 1; 24543let mayStore = 1; 24544let BaseOpcode = "S2_storeri_io"; 24545let CextOpcode = "S2_storeri"; 24546let InputType = "imm"; 24547let isNVStorable = 1; 24548let isExtendable = 1; 24549let opExtendable = 2; 24550let isExtentSigned = 0; 24551let opExtentBits = 8; 24552let opExtentAlign = 2; 24553} 24554def S4_pstoreritnew_rr : HInst< 24555(outs), 24556(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24557"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24558tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24559let Inst{31-21} = 0b00110110100; 24560let isPredicated = 1; 24561let addrMode = BaseRegOffset; 24562let accessSize = WordAccess; 24563let isPredicatedNew = 1; 24564let mayStore = 1; 24565let BaseOpcode = "S2_storeri_rr"; 24566let CextOpcode = "S2_storeri"; 24567let InputType = "reg"; 24568let isNVStorable = 1; 24569} 24570def S4_pstoreritnew_zomap : HInst< 24571(outs), 24572(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24573"if ($Pv4.new) memw($Rs32) = $Rt32", 24574tc_a2b365d2, TypeMAPPING> { 24575let isPseudo = 1; 24576let isCodeGenOnly = 1; 24577} 24578def S4_stored_locked : HInst< 24579(outs PredRegs:$Pd4), 24580(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24581"memd_locked($Rs32,$Pd4) = $Rtt32", 24582tc_6f42bc60, TypeST>, Enc_d7dc10 { 24583let Inst{7-2} = 0b000000; 24584let Inst{13-13} = 0b0; 24585let Inst{31-21} = 0b10100000111; 24586let accessSize = DoubleWordAccess; 24587let isPredicateLate = 1; 24588let isSoloAX = 1; 24589let mayStore = 1; 24590} 24591def S4_stored_rl_at_vi : HInst< 24592(outs), 24593(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24594"memd_rl($Rs32):at = $Rtt32", 24595tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> { 24596let Inst{7-2} = 0b000010; 24597let Inst{13-13} = 0b0; 24598let Inst{31-21} = 0b10100000111; 24599let accessSize = DoubleWordAccess; 24600let isSolo = 1; 24601let mayStore = 1; 24602} 24603def S4_stored_rl_st_vi : HInst< 24604(outs), 24605(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24606"memd_rl($Rs32):st = $Rtt32", 24607tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> { 24608let Inst{7-2} = 0b001010; 24609let Inst{13-13} = 0b0; 24610let Inst{31-21} = 0b10100000111; 24611let accessSize = DoubleWordAccess; 24612let isSolo = 1; 24613let mayStore = 1; 24614} 24615def S4_storeirb_io : HInst< 24616(outs), 24617(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24618"memb($Rs32+#$Ii) = #$II", 24619tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel { 24620let Inst{31-21} = 0b00111100000; 24621let addrMode = BaseImmOffset; 24622let accessSize = ByteAccess; 24623let mayStore = 1; 24624let BaseOpcode = "S4_storeirb_io"; 24625let CextOpcode = "S2_storerb"; 24626let InputType = "imm"; 24627let isPredicable = 1; 24628let isExtendable = 1; 24629let opExtendable = 2; 24630let isExtentSigned = 1; 24631let opExtentBits = 8; 24632let opExtentAlign = 0; 24633} 24634def S4_storeirb_zomap : HInst< 24635(outs), 24636(ins IntRegs:$Rs32, s8_0Imm:$II), 24637"memb($Rs32) = #$II", 24638tc_7c31e19a, TypeMAPPING> { 24639let isPseudo = 1; 24640let isCodeGenOnly = 1; 24641} 24642def S4_storeirbf_io : HInst< 24643(outs), 24644(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24645"if (!$Pv4) memb($Rs32+#$Ii) = #$II", 24646tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24647let Inst{31-21} = 0b00111000100; 24648let isPredicated = 1; 24649let isPredicatedFalse = 1; 24650let addrMode = BaseImmOffset; 24651let accessSize = ByteAccess; 24652let mayStore = 1; 24653let BaseOpcode = "S4_storeirb_io"; 24654let CextOpcode = "S2_storerb"; 24655let InputType = "imm"; 24656let isExtendable = 1; 24657let opExtendable = 3; 24658let isExtentSigned = 1; 24659let opExtentBits = 6; 24660let opExtentAlign = 0; 24661} 24662def S4_storeirbf_zomap : HInst< 24663(outs), 24664(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24665"if (!$Pv4) memb($Rs32) = #$II", 24666tc_d03278fd, TypeMAPPING> { 24667let isPseudo = 1; 24668let isCodeGenOnly = 1; 24669} 24670def S4_storeirbfnew_io : HInst< 24671(outs), 24672(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24673"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II", 24674tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24675let Inst{31-21} = 0b00111001100; 24676let isPredicated = 1; 24677let isPredicatedFalse = 1; 24678let addrMode = BaseImmOffset; 24679let accessSize = ByteAccess; 24680let isPredicatedNew = 1; 24681let mayStore = 1; 24682let BaseOpcode = "S4_storeirb_io"; 24683let CextOpcode = "S2_storerb"; 24684let InputType = "imm"; 24685let isExtendable = 1; 24686let opExtendable = 3; 24687let isExtentSigned = 1; 24688let opExtentBits = 6; 24689let opExtentAlign = 0; 24690} 24691def S4_storeirbfnew_zomap : HInst< 24692(outs), 24693(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24694"if (!$Pv4.new) memb($Rs32) = #$II", 24695tc_65cbd974, TypeMAPPING> { 24696let isPseudo = 1; 24697let isCodeGenOnly = 1; 24698} 24699def S4_storeirbt_io : HInst< 24700(outs), 24701(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24702"if ($Pv4) memb($Rs32+#$Ii) = #$II", 24703tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24704let Inst{31-21} = 0b00111000000; 24705let isPredicated = 1; 24706let addrMode = BaseImmOffset; 24707let accessSize = ByteAccess; 24708let mayStore = 1; 24709let BaseOpcode = "S4_storeirb_io"; 24710let CextOpcode = "S2_storerb"; 24711let InputType = "imm"; 24712let isExtendable = 1; 24713let opExtendable = 3; 24714let isExtentSigned = 1; 24715let opExtentBits = 6; 24716let opExtentAlign = 0; 24717} 24718def S4_storeirbt_zomap : HInst< 24719(outs), 24720(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24721"if ($Pv4) memb($Rs32) = #$II", 24722tc_d03278fd, TypeMAPPING> { 24723let isPseudo = 1; 24724let isCodeGenOnly = 1; 24725} 24726def S4_storeirbtnew_io : HInst< 24727(outs), 24728(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24729"if ($Pv4.new) memb($Rs32+#$Ii) = #$II", 24730tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24731let Inst{31-21} = 0b00111001000; 24732let isPredicated = 1; 24733let addrMode = BaseImmOffset; 24734let accessSize = ByteAccess; 24735let isPredicatedNew = 1; 24736let mayStore = 1; 24737let BaseOpcode = "S4_storeirb_io"; 24738let CextOpcode = "S2_storerb"; 24739let InputType = "imm"; 24740let isExtendable = 1; 24741let opExtendable = 3; 24742let isExtentSigned = 1; 24743let opExtentBits = 6; 24744let opExtentAlign = 0; 24745} 24746def S4_storeirbtnew_zomap : HInst< 24747(outs), 24748(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24749"if ($Pv4.new) memb($Rs32) = #$II", 24750tc_65cbd974, TypeMAPPING> { 24751let isPseudo = 1; 24752let isCodeGenOnly = 1; 24753} 24754def S4_storeirh_io : HInst< 24755(outs), 24756(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24757"memh($Rs32+#$Ii) = #$II", 24758tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel { 24759let Inst{31-21} = 0b00111100001; 24760let addrMode = BaseImmOffset; 24761let accessSize = HalfWordAccess; 24762let mayStore = 1; 24763let BaseOpcode = "S4_storeirh_io"; 24764let CextOpcode = "S2_storerh"; 24765let InputType = "imm"; 24766let isPredicable = 1; 24767let isExtendable = 1; 24768let opExtendable = 2; 24769let isExtentSigned = 1; 24770let opExtentBits = 8; 24771let opExtentAlign = 0; 24772} 24773def S4_storeirh_zomap : HInst< 24774(outs), 24775(ins IntRegs:$Rs32, s8_0Imm:$II), 24776"memh($Rs32) = #$II", 24777tc_7c31e19a, TypeMAPPING> { 24778let isPseudo = 1; 24779let isCodeGenOnly = 1; 24780} 24781def S4_storeirhf_io : HInst< 24782(outs), 24783(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24784"if (!$Pv4) memh($Rs32+#$Ii) = #$II", 24785tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24786let Inst{31-21} = 0b00111000101; 24787let isPredicated = 1; 24788let isPredicatedFalse = 1; 24789let addrMode = BaseImmOffset; 24790let accessSize = HalfWordAccess; 24791let mayStore = 1; 24792let BaseOpcode = "S4_storeirh_io"; 24793let CextOpcode = "S2_storerh"; 24794let InputType = "imm"; 24795let isExtendable = 1; 24796let opExtendable = 3; 24797let isExtentSigned = 1; 24798let opExtentBits = 6; 24799let opExtentAlign = 0; 24800} 24801def S4_storeirhf_zomap : HInst< 24802(outs), 24803(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24804"if (!$Pv4) memh($Rs32) = #$II", 24805tc_d03278fd, TypeMAPPING> { 24806let isPseudo = 1; 24807let isCodeGenOnly = 1; 24808} 24809def S4_storeirhfnew_io : HInst< 24810(outs), 24811(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24812"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II", 24813tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24814let Inst{31-21} = 0b00111001101; 24815let isPredicated = 1; 24816let isPredicatedFalse = 1; 24817let addrMode = BaseImmOffset; 24818let accessSize = HalfWordAccess; 24819let isPredicatedNew = 1; 24820let mayStore = 1; 24821let BaseOpcode = "S4_storeirh_io"; 24822let CextOpcode = "S2_storerh"; 24823let InputType = "imm"; 24824let isExtendable = 1; 24825let opExtendable = 3; 24826let isExtentSigned = 1; 24827let opExtentBits = 6; 24828let opExtentAlign = 0; 24829} 24830def S4_storeirhfnew_zomap : HInst< 24831(outs), 24832(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24833"if (!$Pv4.new) memh($Rs32) = #$II", 24834tc_65cbd974, TypeMAPPING> { 24835let isPseudo = 1; 24836let isCodeGenOnly = 1; 24837} 24838def S4_storeirht_io : HInst< 24839(outs), 24840(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24841"if ($Pv4) memh($Rs32+#$Ii) = #$II", 24842tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24843let Inst{31-21} = 0b00111000001; 24844let isPredicated = 1; 24845let addrMode = BaseImmOffset; 24846let accessSize = HalfWordAccess; 24847let mayStore = 1; 24848let BaseOpcode = "S4_storeirh_io"; 24849let CextOpcode = "S2_storerh"; 24850let InputType = "imm"; 24851let isExtendable = 1; 24852let opExtendable = 3; 24853let isExtentSigned = 1; 24854let opExtentBits = 6; 24855let opExtentAlign = 0; 24856} 24857def S4_storeirht_zomap : HInst< 24858(outs), 24859(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24860"if ($Pv4) memh($Rs32) = #$II", 24861tc_d03278fd, TypeMAPPING> { 24862let isPseudo = 1; 24863let isCodeGenOnly = 1; 24864} 24865def S4_storeirhtnew_io : HInst< 24866(outs), 24867(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24868"if ($Pv4.new) memh($Rs32+#$Ii) = #$II", 24869tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24870let Inst{31-21} = 0b00111001001; 24871let isPredicated = 1; 24872let addrMode = BaseImmOffset; 24873let accessSize = HalfWordAccess; 24874let isPredicatedNew = 1; 24875let mayStore = 1; 24876let BaseOpcode = "S4_storeirh_io"; 24877let CextOpcode = "S2_storerh"; 24878let InputType = "imm"; 24879let isExtendable = 1; 24880let opExtendable = 3; 24881let isExtentSigned = 1; 24882let opExtentBits = 6; 24883let opExtentAlign = 0; 24884} 24885def S4_storeirhtnew_zomap : HInst< 24886(outs), 24887(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24888"if ($Pv4.new) memh($Rs32) = #$II", 24889tc_65cbd974, TypeMAPPING> { 24890let isPseudo = 1; 24891let isCodeGenOnly = 1; 24892} 24893def S4_storeiri_io : HInst< 24894(outs), 24895(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24896"memw($Rs32+#$Ii) = #$II", 24897tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel { 24898let Inst{31-21} = 0b00111100010; 24899let addrMode = BaseImmOffset; 24900let accessSize = WordAccess; 24901let mayStore = 1; 24902let BaseOpcode = "S4_storeiri_io"; 24903let CextOpcode = "S2_storeri"; 24904let InputType = "imm"; 24905let isPredicable = 1; 24906let isExtendable = 1; 24907let opExtendable = 2; 24908let isExtentSigned = 1; 24909let opExtentBits = 8; 24910let opExtentAlign = 0; 24911} 24912def S4_storeiri_zomap : HInst< 24913(outs), 24914(ins IntRegs:$Rs32, s8_0Imm:$II), 24915"memw($Rs32) = #$II", 24916tc_7c31e19a, TypeMAPPING> { 24917let isPseudo = 1; 24918let isCodeGenOnly = 1; 24919} 24920def S4_storeirif_io : HInst< 24921(outs), 24922(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24923"if (!$Pv4) memw($Rs32+#$Ii) = #$II", 24924tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 24925let Inst{31-21} = 0b00111000110; 24926let isPredicated = 1; 24927let isPredicatedFalse = 1; 24928let addrMode = BaseImmOffset; 24929let accessSize = WordAccess; 24930let mayStore = 1; 24931let BaseOpcode = "S4_storeiri_io"; 24932let CextOpcode = "S2_storeri"; 24933let InputType = "imm"; 24934let isExtendable = 1; 24935let opExtendable = 3; 24936let isExtentSigned = 1; 24937let opExtentBits = 6; 24938let opExtentAlign = 0; 24939} 24940def S4_storeirif_zomap : HInst< 24941(outs), 24942(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24943"if (!$Pv4) memw($Rs32) = #$II", 24944tc_d03278fd, TypeMAPPING> { 24945let isPseudo = 1; 24946let isCodeGenOnly = 1; 24947} 24948def S4_storeirifnew_io : HInst< 24949(outs), 24950(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24951"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II", 24952tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 24953let Inst{31-21} = 0b00111001110; 24954let isPredicated = 1; 24955let isPredicatedFalse = 1; 24956let addrMode = BaseImmOffset; 24957let accessSize = WordAccess; 24958let isPredicatedNew = 1; 24959let mayStore = 1; 24960let BaseOpcode = "S4_storeiri_io"; 24961let CextOpcode = "S2_storeri"; 24962let InputType = "imm"; 24963let isExtendable = 1; 24964let opExtendable = 3; 24965let isExtentSigned = 1; 24966let opExtentBits = 6; 24967let opExtentAlign = 0; 24968} 24969def S4_storeirifnew_zomap : HInst< 24970(outs), 24971(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24972"if (!$Pv4.new) memw($Rs32) = #$II", 24973tc_65cbd974, TypeMAPPING> { 24974let isPseudo = 1; 24975let isCodeGenOnly = 1; 24976} 24977def S4_storeirit_io : HInst< 24978(outs), 24979(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24980"if ($Pv4) memw($Rs32+#$Ii) = #$II", 24981tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 24982let Inst{31-21} = 0b00111000010; 24983let isPredicated = 1; 24984let addrMode = BaseImmOffset; 24985let accessSize = WordAccess; 24986let mayStore = 1; 24987let BaseOpcode = "S4_storeiri_io"; 24988let CextOpcode = "S2_storeri"; 24989let InputType = "imm"; 24990let isExtendable = 1; 24991let opExtendable = 3; 24992let isExtentSigned = 1; 24993let opExtentBits = 6; 24994let opExtentAlign = 0; 24995} 24996def S4_storeirit_zomap : HInst< 24997(outs), 24998(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24999"if ($Pv4) memw($Rs32) = #$II", 25000tc_d03278fd, TypeMAPPING> { 25001let isPseudo = 1; 25002let isCodeGenOnly = 1; 25003} 25004def S4_storeiritnew_io : HInst< 25005(outs), 25006(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 25007"if ($Pv4.new) memw($Rs32+#$Ii) = #$II", 25008tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 25009let Inst{31-21} = 0b00111001010; 25010let isPredicated = 1; 25011let addrMode = BaseImmOffset; 25012let accessSize = WordAccess; 25013let isPredicatedNew = 1; 25014let mayStore = 1; 25015let BaseOpcode = "S4_storeiri_io"; 25016let CextOpcode = "S2_storeri"; 25017let InputType = "imm"; 25018let isExtendable = 1; 25019let opExtendable = 3; 25020let isExtentSigned = 1; 25021let opExtentBits = 6; 25022let opExtentAlign = 0; 25023} 25024def S4_storeiritnew_zomap : HInst< 25025(outs), 25026(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 25027"if ($Pv4.new) memw($Rs32) = #$II", 25028tc_65cbd974, TypeMAPPING> { 25029let isPseudo = 1; 25030let isCodeGenOnly = 1; 25031} 25032def S4_storerb_ap : HInst< 25033(outs IntRegs:$Re32), 25034(ins u32_0Imm:$II, IntRegs:$Rt32), 25035"memb($Re32=#$II) = $Rt32", 25036tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25037let Inst{7-6} = 0b10; 25038let Inst{13-13} = 0b0; 25039let Inst{31-21} = 0b10101011000; 25040let addrMode = AbsoluteSet; 25041let accessSize = ByteAccess; 25042let isExtended = 1; 25043let mayStore = 1; 25044let BaseOpcode = "S2_storerb_ap"; 25045let isNVStorable = 1; 25046let DecoderNamespace = "MustExtend"; 25047let isExtendable = 1; 25048let opExtendable = 1; 25049let isExtentSigned = 0; 25050let opExtentBits = 6; 25051let opExtentAlign = 0; 25052} 25053def S4_storerb_rr : HInst< 25054(outs), 25055(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25056"memb($Rs32+$Ru32<<#$Ii) = $Rt32", 25057tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25058let Inst{6-5} = 0b00; 25059let Inst{31-21} = 0b00111011000; 25060let addrMode = BaseRegOffset; 25061let accessSize = ByteAccess; 25062let mayStore = 1; 25063let BaseOpcode = "S4_storerb_rr"; 25064let CextOpcode = "S2_storerb"; 25065let InputType = "reg"; 25066let isNVStorable = 1; 25067let isPredicable = 1; 25068} 25069def S4_storerb_ur : HInst< 25070(outs), 25071(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25072"memb($Ru32<<#$Ii+#$II) = $Rt32", 25073tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25074let Inst{7-7} = 0b1; 25075let Inst{31-21} = 0b10101101000; 25076let addrMode = BaseLongOffset; 25077let accessSize = ByteAccess; 25078let isExtended = 1; 25079let mayStore = 1; 25080let BaseOpcode = "S4_storerb_ur"; 25081let CextOpcode = "S2_storerb"; 25082let InputType = "imm"; 25083let isNVStorable = 1; 25084let DecoderNamespace = "MustExtend"; 25085let isExtendable = 1; 25086let opExtendable = 2; 25087let isExtentSigned = 0; 25088let opExtentBits = 6; 25089let opExtentAlign = 0; 25090} 25091def S4_storerbnew_ap : HInst< 25092(outs IntRegs:$Re32), 25093(ins u32_0Imm:$II, IntRegs:$Nt8), 25094"memb($Re32=#$II) = $Nt8.new", 25095tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25096let Inst{7-6} = 0b10; 25097let Inst{13-11} = 0b000; 25098let Inst{31-21} = 0b10101011101; 25099let addrMode = AbsoluteSet; 25100let accessSize = ByteAccess; 25101let isNVStore = 1; 25102let isNewValue = 1; 25103let isExtended = 1; 25104let isRestrictNoSlot1Store = 1; 25105let mayStore = 1; 25106let BaseOpcode = "S2_storerb_ap"; 25107let DecoderNamespace = "MustExtend"; 25108let isExtendable = 1; 25109let opExtendable = 1; 25110let isExtentSigned = 0; 25111let opExtentBits = 6; 25112let opExtentAlign = 0; 25113let opNewValue = 2; 25114} 25115def S4_storerbnew_rr : HInst< 25116(outs), 25117(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25118"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25119tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25120let Inst{6-3} = 0b0000; 25121let Inst{31-21} = 0b00111011101; 25122let addrMode = BaseRegOffset; 25123let accessSize = ByteAccess; 25124let isNVStore = 1; 25125let isNewValue = 1; 25126let isRestrictNoSlot1Store = 1; 25127let mayStore = 1; 25128let BaseOpcode = "S4_storerb_rr"; 25129let CextOpcode = "S2_storerb"; 25130let InputType = "reg"; 25131let isPredicable = 1; 25132let opNewValue = 3; 25133} 25134def S4_storerbnew_ur : HInst< 25135(outs), 25136(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25137"memb($Ru32<<#$Ii+#$II) = $Nt8.new", 25138tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25139let Inst{7-7} = 0b1; 25140let Inst{12-11} = 0b00; 25141let Inst{31-21} = 0b10101101101; 25142let addrMode = BaseLongOffset; 25143let accessSize = ByteAccess; 25144let isNVStore = 1; 25145let isNewValue = 1; 25146let isExtended = 1; 25147let isRestrictNoSlot1Store = 1; 25148let mayStore = 1; 25149let BaseOpcode = "S4_storerb_ur"; 25150let CextOpcode = "S2_storerb"; 25151let DecoderNamespace = "MustExtend"; 25152let isExtendable = 1; 25153let opExtendable = 2; 25154let isExtentSigned = 0; 25155let opExtentBits = 6; 25156let opExtentAlign = 0; 25157let opNewValue = 3; 25158} 25159def S4_storerd_ap : HInst< 25160(outs IntRegs:$Re32), 25161(ins u32_0Imm:$II, DoubleRegs:$Rtt32), 25162"memd($Re32=#$II) = $Rtt32", 25163tc_bb07f2c5, TypeST>, Enc_c7a204 { 25164let Inst{7-6} = 0b10; 25165let Inst{13-13} = 0b0; 25166let Inst{31-21} = 0b10101011110; 25167let addrMode = AbsoluteSet; 25168let accessSize = DoubleWordAccess; 25169let isExtended = 1; 25170let mayStore = 1; 25171let BaseOpcode = "S4_storerd_ap"; 25172let DecoderNamespace = "MustExtend"; 25173let isExtendable = 1; 25174let opExtendable = 1; 25175let isExtentSigned = 0; 25176let opExtentBits = 6; 25177let opExtentAlign = 0; 25178} 25179def S4_storerd_rr : HInst< 25180(outs), 25181(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 25182"memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 25183tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { 25184let Inst{6-5} = 0b00; 25185let Inst{31-21} = 0b00111011110; 25186let addrMode = BaseRegOffset; 25187let accessSize = DoubleWordAccess; 25188let mayStore = 1; 25189let BaseOpcode = "S2_storerd_rr"; 25190let CextOpcode = "S2_storerd"; 25191let InputType = "reg"; 25192let isPredicable = 1; 25193} 25194def S4_storerd_ur : HInst< 25195(outs), 25196(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32), 25197"memd($Ru32<<#$Ii+#$II) = $Rtt32", 25198tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { 25199let Inst{7-7} = 0b1; 25200let Inst{31-21} = 0b10101101110; 25201let addrMode = BaseLongOffset; 25202let accessSize = DoubleWordAccess; 25203let isExtended = 1; 25204let mayStore = 1; 25205let BaseOpcode = "S2_storerd_ur"; 25206let CextOpcode = "S2_storerd"; 25207let InputType = "imm"; 25208let DecoderNamespace = "MustExtend"; 25209let isExtendable = 1; 25210let opExtendable = 2; 25211let isExtentSigned = 0; 25212let opExtentBits = 6; 25213let opExtentAlign = 0; 25214} 25215def S4_storerf_ap : HInst< 25216(outs IntRegs:$Re32), 25217(ins u32_0Imm:$II, IntRegs:$Rt32), 25218"memh($Re32=#$II) = $Rt32.h", 25219tc_bb07f2c5, TypeST>, Enc_8bcba4 { 25220let Inst{7-6} = 0b10; 25221let Inst{13-13} = 0b0; 25222let Inst{31-21} = 0b10101011011; 25223let addrMode = AbsoluteSet; 25224let accessSize = HalfWordAccess; 25225let isExtended = 1; 25226let mayStore = 1; 25227let BaseOpcode = "S4_storerf_ap"; 25228let DecoderNamespace = "MustExtend"; 25229let isExtendable = 1; 25230let opExtendable = 1; 25231let isExtentSigned = 0; 25232let opExtentBits = 6; 25233let opExtentAlign = 0; 25234} 25235def S4_storerf_rr : HInst< 25236(outs), 25237(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25238"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 25239tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25240let Inst{6-5} = 0b00; 25241let Inst{31-21} = 0b00111011011; 25242let addrMode = BaseRegOffset; 25243let accessSize = HalfWordAccess; 25244let mayStore = 1; 25245let BaseOpcode = "S4_storerf_rr"; 25246let CextOpcode = "S2_storerf"; 25247let InputType = "reg"; 25248let isPredicable = 1; 25249} 25250def S4_storerf_ur : HInst< 25251(outs), 25252(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25253"memh($Ru32<<#$Ii+#$II) = $Rt32.h", 25254tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25255let Inst{7-7} = 0b1; 25256let Inst{31-21} = 0b10101101011; 25257let addrMode = BaseLongOffset; 25258let accessSize = HalfWordAccess; 25259let isExtended = 1; 25260let mayStore = 1; 25261let BaseOpcode = "S4_storerf_rr"; 25262let CextOpcode = "S2_storerf"; 25263let InputType = "imm"; 25264let DecoderNamespace = "MustExtend"; 25265let isExtendable = 1; 25266let opExtendable = 2; 25267let isExtentSigned = 0; 25268let opExtentBits = 6; 25269let opExtentAlign = 0; 25270} 25271def S4_storerh_ap : HInst< 25272(outs IntRegs:$Re32), 25273(ins u32_0Imm:$II, IntRegs:$Rt32), 25274"memh($Re32=#$II) = $Rt32", 25275tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25276let Inst{7-6} = 0b10; 25277let Inst{13-13} = 0b0; 25278let Inst{31-21} = 0b10101011010; 25279let addrMode = AbsoluteSet; 25280let accessSize = HalfWordAccess; 25281let isExtended = 1; 25282let mayStore = 1; 25283let BaseOpcode = "S2_storerh_ap"; 25284let isNVStorable = 1; 25285let DecoderNamespace = "MustExtend"; 25286let isExtendable = 1; 25287let opExtendable = 1; 25288let isExtentSigned = 0; 25289let opExtentBits = 6; 25290let opExtentAlign = 0; 25291} 25292def S4_storerh_rr : HInst< 25293(outs), 25294(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25295"memh($Rs32+$Ru32<<#$Ii) = $Rt32", 25296tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25297let Inst{6-5} = 0b00; 25298let Inst{31-21} = 0b00111011010; 25299let addrMode = BaseRegOffset; 25300let accessSize = HalfWordAccess; 25301let mayStore = 1; 25302let BaseOpcode = "S2_storerh_rr"; 25303let CextOpcode = "S2_storerh"; 25304let InputType = "reg"; 25305let isNVStorable = 1; 25306let isPredicable = 1; 25307} 25308def S4_storerh_ur : HInst< 25309(outs), 25310(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25311"memh($Ru32<<#$Ii+#$II) = $Rt32", 25312tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25313let Inst{7-7} = 0b1; 25314let Inst{31-21} = 0b10101101010; 25315let addrMode = BaseLongOffset; 25316let accessSize = HalfWordAccess; 25317let isExtended = 1; 25318let mayStore = 1; 25319let BaseOpcode = "S2_storerh_ur"; 25320let CextOpcode = "S2_storerh"; 25321let InputType = "imm"; 25322let isNVStorable = 1; 25323let DecoderNamespace = "MustExtend"; 25324let isExtendable = 1; 25325let opExtendable = 2; 25326let isExtentSigned = 0; 25327let opExtentBits = 6; 25328let opExtentAlign = 0; 25329} 25330def S4_storerhnew_ap : HInst< 25331(outs IntRegs:$Re32), 25332(ins u32_0Imm:$II, IntRegs:$Nt8), 25333"memh($Re32=#$II) = $Nt8.new", 25334tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25335let Inst{7-6} = 0b10; 25336let Inst{13-11} = 0b001; 25337let Inst{31-21} = 0b10101011101; 25338let addrMode = AbsoluteSet; 25339let accessSize = HalfWordAccess; 25340let isNVStore = 1; 25341let isNewValue = 1; 25342let isExtended = 1; 25343let isRestrictNoSlot1Store = 1; 25344let mayStore = 1; 25345let BaseOpcode = "S2_storerh_ap"; 25346let DecoderNamespace = "MustExtend"; 25347let isExtendable = 1; 25348let opExtendable = 1; 25349let isExtentSigned = 0; 25350let opExtentBits = 6; 25351let opExtentAlign = 0; 25352let opNewValue = 2; 25353} 25354def S4_storerhnew_rr : HInst< 25355(outs), 25356(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25357"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25358tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25359let Inst{6-3} = 0b0001; 25360let Inst{31-21} = 0b00111011101; 25361let addrMode = BaseRegOffset; 25362let accessSize = HalfWordAccess; 25363let isNVStore = 1; 25364let isNewValue = 1; 25365let isRestrictNoSlot1Store = 1; 25366let mayStore = 1; 25367let BaseOpcode = "S2_storerh_rr"; 25368let CextOpcode = "S2_storerh"; 25369let InputType = "reg"; 25370let isPredicable = 1; 25371let opNewValue = 3; 25372} 25373def S4_storerhnew_ur : HInst< 25374(outs), 25375(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25376"memh($Ru32<<#$Ii+#$II) = $Nt8.new", 25377tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25378let Inst{7-7} = 0b1; 25379let Inst{12-11} = 0b01; 25380let Inst{31-21} = 0b10101101101; 25381let addrMode = BaseLongOffset; 25382let accessSize = HalfWordAccess; 25383let isNVStore = 1; 25384let isNewValue = 1; 25385let isExtended = 1; 25386let isRestrictNoSlot1Store = 1; 25387let mayStore = 1; 25388let BaseOpcode = "S2_storerh_ur"; 25389let CextOpcode = "S2_storerh"; 25390let DecoderNamespace = "MustExtend"; 25391let isExtendable = 1; 25392let opExtendable = 2; 25393let isExtentSigned = 0; 25394let opExtentBits = 6; 25395let opExtentAlign = 0; 25396let opNewValue = 3; 25397} 25398def S4_storeri_ap : HInst< 25399(outs IntRegs:$Re32), 25400(ins u32_0Imm:$II, IntRegs:$Rt32), 25401"memw($Re32=#$II) = $Rt32", 25402tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25403let Inst{7-6} = 0b10; 25404let Inst{13-13} = 0b0; 25405let Inst{31-21} = 0b10101011100; 25406let addrMode = AbsoluteSet; 25407let accessSize = WordAccess; 25408let isExtended = 1; 25409let mayStore = 1; 25410let BaseOpcode = "S2_storeri_ap"; 25411let isNVStorable = 1; 25412let DecoderNamespace = "MustExtend"; 25413let isExtendable = 1; 25414let opExtendable = 1; 25415let isExtentSigned = 0; 25416let opExtentBits = 6; 25417let opExtentAlign = 0; 25418} 25419def S4_storeri_rr : HInst< 25420(outs), 25421(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25422"memw($Rs32+$Ru32<<#$Ii) = $Rt32", 25423tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25424let Inst{6-5} = 0b00; 25425let Inst{31-21} = 0b00111011100; 25426let addrMode = BaseRegOffset; 25427let accessSize = WordAccess; 25428let mayStore = 1; 25429let BaseOpcode = "S2_storeri_rr"; 25430let CextOpcode = "S2_storeri"; 25431let InputType = "reg"; 25432let isNVStorable = 1; 25433let isPredicable = 1; 25434} 25435def S4_storeri_ur : HInst< 25436(outs), 25437(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25438"memw($Ru32<<#$Ii+#$II) = $Rt32", 25439tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25440let Inst{7-7} = 0b1; 25441let Inst{31-21} = 0b10101101100; 25442let addrMode = BaseLongOffset; 25443let accessSize = WordAccess; 25444let isExtended = 1; 25445let mayStore = 1; 25446let BaseOpcode = "S2_storeri_ur"; 25447let CextOpcode = "S2_storeri"; 25448let InputType = "imm"; 25449let isNVStorable = 1; 25450let DecoderNamespace = "MustExtend"; 25451let isExtendable = 1; 25452let opExtendable = 2; 25453let isExtentSigned = 0; 25454let opExtentBits = 6; 25455let opExtentAlign = 0; 25456} 25457def S4_storerinew_ap : HInst< 25458(outs IntRegs:$Re32), 25459(ins u32_0Imm:$II, IntRegs:$Nt8), 25460"memw($Re32=#$II) = $Nt8.new", 25461tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25462let Inst{7-6} = 0b10; 25463let Inst{13-11} = 0b010; 25464let Inst{31-21} = 0b10101011101; 25465let addrMode = AbsoluteSet; 25466let accessSize = WordAccess; 25467let isNVStore = 1; 25468let isNewValue = 1; 25469let isExtended = 1; 25470let isRestrictNoSlot1Store = 1; 25471let mayStore = 1; 25472let BaseOpcode = "S2_storeri_ap"; 25473let DecoderNamespace = "MustExtend"; 25474let isExtendable = 1; 25475let opExtendable = 1; 25476let isExtentSigned = 0; 25477let opExtentBits = 6; 25478let opExtentAlign = 0; 25479let opNewValue = 2; 25480} 25481def S4_storerinew_rr : HInst< 25482(outs), 25483(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25484"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25485tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25486let Inst{6-3} = 0b0010; 25487let Inst{31-21} = 0b00111011101; 25488let addrMode = BaseRegOffset; 25489let accessSize = WordAccess; 25490let isNVStore = 1; 25491let isNewValue = 1; 25492let isRestrictNoSlot1Store = 1; 25493let mayStore = 1; 25494let BaseOpcode = "S2_storeri_rr"; 25495let CextOpcode = "S2_storeri"; 25496let InputType = "reg"; 25497let isPredicable = 1; 25498let opNewValue = 3; 25499} 25500def S4_storerinew_ur : HInst< 25501(outs), 25502(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25503"memw($Ru32<<#$Ii+#$II) = $Nt8.new", 25504tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25505let Inst{7-7} = 0b1; 25506let Inst{12-11} = 0b10; 25507let Inst{31-21} = 0b10101101101; 25508let addrMode = BaseLongOffset; 25509let accessSize = WordAccess; 25510let isNVStore = 1; 25511let isNewValue = 1; 25512let isExtended = 1; 25513let isRestrictNoSlot1Store = 1; 25514let mayStore = 1; 25515let BaseOpcode = "S2_storeri_ur"; 25516let CextOpcode = "S2_storeri"; 25517let DecoderNamespace = "MustExtend"; 25518let isExtendable = 1; 25519let opExtendable = 2; 25520let isExtentSigned = 0; 25521let opExtentBits = 6; 25522let opExtentAlign = 0; 25523let opNewValue = 3; 25524} 25525def S4_subaddi : HInst< 25526(outs IntRegs:$Rd32), 25527(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32), 25528"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))", 25529tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 25530let Inst{31-23} = 0b110110111; 25531let hasNewValue = 1; 25532let opNewValue = 0; 25533let prefersSlot3 = 1; 25534let isExtendable = 1; 25535let opExtendable = 2; 25536let isExtentSigned = 1; 25537let opExtentBits = 6; 25538let opExtentAlign = 0; 25539} 25540def S4_subi_asl_ri : HInst< 25541(outs IntRegs:$Rx32), 25542(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25543"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))", 25544tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25545let Inst{2-0} = 0b110; 25546let Inst{4-4} = 0b0; 25547let Inst{31-24} = 0b11011110; 25548let hasNewValue = 1; 25549let opNewValue = 0; 25550let prefersSlot3 = 1; 25551let isExtendable = 1; 25552let opExtendable = 1; 25553let isExtentSigned = 0; 25554let opExtentBits = 8; 25555let opExtentAlign = 0; 25556let Constraints = "$Rx32 = $Rx32in"; 25557} 25558def S4_subi_lsr_ri : HInst< 25559(outs IntRegs:$Rx32), 25560(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25561"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))", 25562tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25563let Inst{2-0} = 0b110; 25564let Inst{4-4} = 0b1; 25565let Inst{31-24} = 0b11011110; 25566let hasNewValue = 1; 25567let opNewValue = 0; 25568let prefersSlot3 = 1; 25569let isExtendable = 1; 25570let opExtendable = 1; 25571let isExtentSigned = 0; 25572let opExtentBits = 8; 25573let opExtentAlign = 0; 25574let Constraints = "$Rx32 = $Rx32in"; 25575} 25576def S4_vrcrotate : HInst< 25577(outs DoubleRegs:$Rdd32), 25578(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25579"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)", 25580tc_f0cdeccf, TypeS_3op>, Enc_645d54 { 25581let Inst{7-6} = 0b11; 25582let Inst{31-21} = 0b11000011110; 25583let prefersSlot3 = 1; 25584} 25585def S4_vrcrotate_acc : HInst< 25586(outs DoubleRegs:$Rxx32), 25587(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25588"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)", 25589tc_a38c45dc, TypeS_3op>, Enc_b72622 { 25590let Inst{7-6} = 0b00; 25591let Inst{31-21} = 0b11001011101; 25592let prefersSlot3 = 1; 25593let Constraints = "$Rxx32 = $Rxx32in"; 25594} 25595def S4_vxaddsubh : HInst< 25596(outs DoubleRegs:$Rdd32), 25597(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25598"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat", 25599tc_8a825db2, TypeS_3op>, Enc_a56825 { 25600let Inst{7-5} = 0b100; 25601let Inst{13-13} = 0b0; 25602let Inst{31-21} = 0b11000001010; 25603let prefersSlot3 = 1; 25604let Defs = [USR_OVF]; 25605} 25606def S4_vxaddsubhr : HInst< 25607(outs DoubleRegs:$Rdd32), 25608(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25609"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat", 25610tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25611let Inst{7-5} = 0b000; 25612let Inst{13-13} = 0b0; 25613let Inst{31-21} = 0b11000001110; 25614let prefersSlot3 = 1; 25615let Defs = [USR_OVF]; 25616} 25617def S4_vxaddsubw : HInst< 25618(outs DoubleRegs:$Rdd32), 25619(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25620"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat", 25621tc_8a825db2, TypeS_3op>, Enc_a56825 { 25622let Inst{7-5} = 0b000; 25623let Inst{13-13} = 0b0; 25624let Inst{31-21} = 0b11000001010; 25625let prefersSlot3 = 1; 25626let Defs = [USR_OVF]; 25627} 25628def S4_vxsubaddh : HInst< 25629(outs DoubleRegs:$Rdd32), 25630(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25631"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat", 25632tc_8a825db2, TypeS_3op>, Enc_a56825 { 25633let Inst{7-5} = 0b110; 25634let Inst{13-13} = 0b0; 25635let Inst{31-21} = 0b11000001010; 25636let prefersSlot3 = 1; 25637let Defs = [USR_OVF]; 25638} 25639def S4_vxsubaddhr : HInst< 25640(outs DoubleRegs:$Rdd32), 25641(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25642"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat", 25643tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25644let Inst{7-5} = 0b010; 25645let Inst{13-13} = 0b0; 25646let Inst{31-21} = 0b11000001110; 25647let prefersSlot3 = 1; 25648let Defs = [USR_OVF]; 25649} 25650def S4_vxsubaddw : HInst< 25651(outs DoubleRegs:$Rdd32), 25652(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25653"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat", 25654tc_8a825db2, TypeS_3op>, Enc_a56825 { 25655let Inst{7-5} = 0b010; 25656let Inst{13-13} = 0b0; 25657let Inst{31-21} = 0b11000001010; 25658let prefersSlot3 = 1; 25659let Defs = [USR_OVF]; 25660} 25661def S5_asrhub_rnd_sat : HInst< 25662(outs IntRegs:$Rd32), 25663(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25664"$Rd32 = vasrhub($Rss32,#$Ii):raw", 25665tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25666let Inst{7-5} = 0b100; 25667let Inst{13-12} = 0b00; 25668let Inst{31-21} = 0b10001000011; 25669let hasNewValue = 1; 25670let opNewValue = 0; 25671let prefersSlot3 = 1; 25672let Defs = [USR_OVF]; 25673} 25674def S5_asrhub_rnd_sat_goodsyntax : HInst< 25675(outs IntRegs:$Rd32), 25676(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25677"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat", 25678tc_0dfac0a7, TypeS_2op> { 25679let hasNewValue = 1; 25680let opNewValue = 0; 25681let isPseudo = 1; 25682} 25683def S5_asrhub_sat : HInst< 25684(outs IntRegs:$Rd32), 25685(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25686"$Rd32 = vasrhub($Rss32,#$Ii):sat", 25687tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25688let Inst{7-5} = 0b101; 25689let Inst{13-12} = 0b00; 25690let Inst{31-21} = 0b10001000011; 25691let hasNewValue = 1; 25692let opNewValue = 0; 25693let prefersSlot3 = 1; 25694let Defs = [USR_OVF]; 25695} 25696def S5_popcountp : HInst< 25697(outs IntRegs:$Rd32), 25698(ins DoubleRegs:$Rss32), 25699"$Rd32 = popcount($Rss32)", 25700tc_d3632d88, TypeS_2op>, Enc_90cd8b { 25701let Inst{13-5} = 0b000000011; 25702let Inst{31-21} = 0b10001000011; 25703let hasNewValue = 1; 25704let opNewValue = 0; 25705let prefersSlot3 = 1; 25706} 25707def S5_vasrhrnd : HInst< 25708(outs DoubleRegs:$Rdd32), 25709(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25710"$Rdd32 = vasrh($Rss32,#$Ii):raw", 25711tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 { 25712let Inst{7-5} = 0b000; 25713let Inst{13-12} = 0b00; 25714let Inst{31-21} = 0b10000000001; 25715let prefersSlot3 = 1; 25716} 25717def S5_vasrhrnd_goodsyntax : HInst< 25718(outs DoubleRegs:$Rdd32), 25719(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25720"$Rdd32 = vasrh($Rss32,#$Ii):rnd", 25721tc_0dfac0a7, TypeS_2op> { 25722let isPseudo = 1; 25723} 25724def S6_allocframe_to_raw : HInst< 25725(outs), 25726(ins u11_3Imm:$Ii), 25727"allocframe(#$Ii)", 25728tc_934753bb, TypeMAPPING>, Requires<[HasV65]> { 25729let isPseudo = 1; 25730let isCodeGenOnly = 1; 25731} 25732def S6_rol_i_p : HInst< 25733(outs DoubleRegs:$Rdd32), 25734(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 25735"$Rdd32 = rol($Rss32,#$Ii)", 25736tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> { 25737let Inst{7-5} = 0b011; 25738let Inst{31-21} = 0b10000000000; 25739} 25740def S6_rol_i_p_acc : HInst< 25741(outs DoubleRegs:$Rxx32), 25742(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25743"$Rxx32 += rol($Rss32,#$Ii)", 25744tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25745let Inst{7-5} = 0b111; 25746let Inst{31-21} = 0b10000010000; 25747let prefersSlot3 = 1; 25748let Constraints = "$Rxx32 = $Rxx32in"; 25749} 25750def S6_rol_i_p_and : HInst< 25751(outs DoubleRegs:$Rxx32), 25752(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25753"$Rxx32 &= rol($Rss32,#$Ii)", 25754tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25755let Inst{7-5} = 0b011; 25756let Inst{31-21} = 0b10000010010; 25757let prefersSlot3 = 1; 25758let Constraints = "$Rxx32 = $Rxx32in"; 25759} 25760def S6_rol_i_p_nac : HInst< 25761(outs DoubleRegs:$Rxx32), 25762(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25763"$Rxx32 -= rol($Rss32,#$Ii)", 25764tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25765let Inst{7-5} = 0b011; 25766let Inst{31-21} = 0b10000010000; 25767let prefersSlot3 = 1; 25768let Constraints = "$Rxx32 = $Rxx32in"; 25769} 25770def S6_rol_i_p_or : HInst< 25771(outs DoubleRegs:$Rxx32), 25772(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25773"$Rxx32 |= rol($Rss32,#$Ii)", 25774tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25775let Inst{7-5} = 0b111; 25776let Inst{31-21} = 0b10000010010; 25777let prefersSlot3 = 1; 25778let Constraints = "$Rxx32 = $Rxx32in"; 25779} 25780def S6_rol_i_p_xacc : HInst< 25781(outs DoubleRegs:$Rxx32), 25782(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25783"$Rxx32 ^= rol($Rss32,#$Ii)", 25784tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25785let Inst{7-5} = 0b011; 25786let Inst{31-21} = 0b10000010100; 25787let prefersSlot3 = 1; 25788let Constraints = "$Rxx32 = $Rxx32in"; 25789} 25790def S6_rol_i_r : HInst< 25791(outs IntRegs:$Rd32), 25792(ins IntRegs:$Rs32, u5_0Imm:$Ii), 25793"$Rd32 = rol($Rs32,#$Ii)", 25794tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> { 25795let Inst{7-5} = 0b011; 25796let Inst{13-13} = 0b0; 25797let Inst{31-21} = 0b10001100000; 25798let hasNewValue = 1; 25799let opNewValue = 0; 25800} 25801def S6_rol_i_r_acc : HInst< 25802(outs IntRegs:$Rx32), 25803(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25804"$Rx32 += rol($Rs32,#$Ii)", 25805tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25806let Inst{7-5} = 0b111; 25807let Inst{13-13} = 0b0; 25808let Inst{31-21} = 0b10001110000; 25809let hasNewValue = 1; 25810let opNewValue = 0; 25811let prefersSlot3 = 1; 25812let Constraints = "$Rx32 = $Rx32in"; 25813} 25814def S6_rol_i_r_and : HInst< 25815(outs IntRegs:$Rx32), 25816(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25817"$Rx32 &= rol($Rs32,#$Ii)", 25818tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25819let Inst{7-5} = 0b011; 25820let Inst{13-13} = 0b0; 25821let Inst{31-21} = 0b10001110010; 25822let hasNewValue = 1; 25823let opNewValue = 0; 25824let prefersSlot3 = 1; 25825let Constraints = "$Rx32 = $Rx32in"; 25826} 25827def S6_rol_i_r_nac : HInst< 25828(outs IntRegs:$Rx32), 25829(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25830"$Rx32 -= rol($Rs32,#$Ii)", 25831tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25832let Inst{7-5} = 0b011; 25833let Inst{13-13} = 0b0; 25834let Inst{31-21} = 0b10001110000; 25835let hasNewValue = 1; 25836let opNewValue = 0; 25837let prefersSlot3 = 1; 25838let Constraints = "$Rx32 = $Rx32in"; 25839} 25840def S6_rol_i_r_or : HInst< 25841(outs IntRegs:$Rx32), 25842(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25843"$Rx32 |= rol($Rs32,#$Ii)", 25844tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25845let Inst{7-5} = 0b111; 25846let Inst{13-13} = 0b0; 25847let Inst{31-21} = 0b10001110010; 25848let hasNewValue = 1; 25849let opNewValue = 0; 25850let prefersSlot3 = 1; 25851let Constraints = "$Rx32 = $Rx32in"; 25852} 25853def S6_rol_i_r_xacc : HInst< 25854(outs IntRegs:$Rx32), 25855(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25856"$Rx32 ^= rol($Rs32,#$Ii)", 25857tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25858let Inst{7-5} = 0b011; 25859let Inst{13-13} = 0b0; 25860let Inst{31-21} = 0b10001110100; 25861let hasNewValue = 1; 25862let opNewValue = 0; 25863let prefersSlot3 = 1; 25864let Constraints = "$Rx32 = $Rx32in"; 25865} 25866def S6_vsplatrbp : HInst< 25867(outs DoubleRegs:$Rdd32), 25868(ins IntRegs:$Rs32), 25869"$Rdd32 = vsplatb($Rs32)", 25870tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> { 25871let Inst{13-5} = 0b000000100; 25872let Inst{31-21} = 0b10000100010; 25873} 25874def S6_vtrunehb_ppp : HInst< 25875(outs DoubleRegs:$Rdd32), 25876(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25877"$Rdd32 = vtrunehb($Rss32,$Rtt32)", 25878tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25879let Inst{7-5} = 0b011; 25880let Inst{13-13} = 0b0; 25881let Inst{31-21} = 0b11000001100; 25882} 25883def S6_vtrunohb_ppp : HInst< 25884(outs DoubleRegs:$Rdd32), 25885(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25886"$Rdd32 = vtrunohb($Rss32,$Rtt32)", 25887tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25888let Inst{7-5} = 0b101; 25889let Inst{13-13} = 0b0; 25890let Inst{31-21} = 0b11000001100; 25891} 25892def SA1_addi : HInst< 25893(outs GeneralSubRegs:$Rx16), 25894(ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii), 25895"$Rx16 = add($Rx16in,#$Ii)", 25896tc_5b347363, TypeSUBINSN>, Enc_93af4c { 25897let Inst{12-11} = 0b00; 25898let hasNewValue = 1; 25899let opNewValue = 0; 25900let AsmVariantName = "NonParsable"; 25901let DecoderNamespace = "SUBINSN_A"; 25902let isExtendable = 1; 25903let opExtendable = 2; 25904let isExtentSigned = 1; 25905let opExtentBits = 7; 25906let opExtentAlign = 0; 25907let Constraints = "$Rx16 = $Rx16in"; 25908} 25909def SA1_addrx : HInst< 25910(outs GeneralSubRegs:$Rx16), 25911(ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16), 25912"$Rx16 = add($Rx16in,$Rs16)", 25913tc_5b347363, TypeSUBINSN>, Enc_0527db { 25914let Inst{12-8} = 0b11000; 25915let hasNewValue = 1; 25916let opNewValue = 0; 25917let AsmVariantName = "NonParsable"; 25918let DecoderNamespace = "SUBINSN_A"; 25919let Constraints = "$Rx16 = $Rx16in"; 25920} 25921def SA1_addsp : HInst< 25922(outs GeneralSubRegs:$Rd16), 25923(ins u6_2Imm:$Ii), 25924"$Rd16 = add(r29,#$Ii)", 25925tc_3d14a17b, TypeSUBINSN>, Enc_2df31d { 25926let Inst{12-10} = 0b011; 25927let hasNewValue = 1; 25928let opNewValue = 0; 25929let AsmVariantName = "NonParsable"; 25930let Uses = [R29]; 25931let DecoderNamespace = "SUBINSN_A"; 25932} 25933def SA1_and1 : HInst< 25934(outs GeneralSubRegs:$Rd16), 25935(ins GeneralSubRegs:$Rs16), 25936"$Rd16 = and($Rs16,#1)", 25937tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 25938let Inst{12-8} = 0b10010; 25939let hasNewValue = 1; 25940let opNewValue = 0; 25941let AsmVariantName = "NonParsable"; 25942let DecoderNamespace = "SUBINSN_A"; 25943} 25944def SA1_clrf : HInst< 25945(outs GeneralSubRegs:$Rd16), 25946(ins), 25947"if (!p0) $Rd16 = #0", 25948tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 25949let Inst{12-4} = 0b110100111; 25950let isPredicated = 1; 25951let isPredicatedFalse = 1; 25952let hasNewValue = 1; 25953let opNewValue = 0; 25954let AsmVariantName = "NonParsable"; 25955let Uses = [P0]; 25956let DecoderNamespace = "SUBINSN_A"; 25957} 25958def SA1_clrfnew : HInst< 25959(outs GeneralSubRegs:$Rd16), 25960(ins), 25961"if (!p0.new) $Rd16 = #0", 25962tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 25963let Inst{12-4} = 0b110100101; 25964let isPredicated = 1; 25965let isPredicatedFalse = 1; 25966let hasNewValue = 1; 25967let opNewValue = 0; 25968let AsmVariantName = "NonParsable"; 25969let isPredicatedNew = 1; 25970let Uses = [P0]; 25971let DecoderNamespace = "SUBINSN_A"; 25972} 25973def SA1_clrt : HInst< 25974(outs GeneralSubRegs:$Rd16), 25975(ins), 25976"if (p0) $Rd16 = #0", 25977tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 25978let Inst{12-4} = 0b110100110; 25979let isPredicated = 1; 25980let hasNewValue = 1; 25981let opNewValue = 0; 25982let AsmVariantName = "NonParsable"; 25983let Uses = [P0]; 25984let DecoderNamespace = "SUBINSN_A"; 25985} 25986def SA1_clrtnew : HInst< 25987(outs GeneralSubRegs:$Rd16), 25988(ins), 25989"if (p0.new) $Rd16 = #0", 25990tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 25991let Inst{12-4} = 0b110100100; 25992let isPredicated = 1; 25993let hasNewValue = 1; 25994let opNewValue = 0; 25995let AsmVariantName = "NonParsable"; 25996let isPredicatedNew = 1; 25997let Uses = [P0]; 25998let DecoderNamespace = "SUBINSN_A"; 25999} 26000def SA1_cmpeqi : HInst< 26001(outs), 26002(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii), 26003"p0 = cmp.eq($Rs16,#$Ii)", 26004tc_59a7822c, TypeSUBINSN>, Enc_63eaeb { 26005let Inst{3-2} = 0b00; 26006let Inst{12-8} = 0b11001; 26007let AsmVariantName = "NonParsable"; 26008let Defs = [P0]; 26009let DecoderNamespace = "SUBINSN_A"; 26010} 26011def SA1_combine0i : HInst< 26012(outs GeneralDoubleLow8Regs:$Rdd8), 26013(ins u2_0Imm:$Ii), 26014"$Rdd8 = combine(#0,#$Ii)", 26015tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26016let Inst{4-3} = 0b00; 26017let Inst{12-7} = 0b111000; 26018let hasNewValue = 1; 26019let opNewValue = 0; 26020let AsmVariantName = "NonParsable"; 26021let DecoderNamespace = "SUBINSN_A"; 26022} 26023def SA1_combine1i : HInst< 26024(outs GeneralDoubleLow8Regs:$Rdd8), 26025(ins u2_0Imm:$Ii), 26026"$Rdd8 = combine(#1,#$Ii)", 26027tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26028let Inst{4-3} = 0b01; 26029let Inst{12-7} = 0b111000; 26030let hasNewValue = 1; 26031let opNewValue = 0; 26032let AsmVariantName = "NonParsable"; 26033let DecoderNamespace = "SUBINSN_A"; 26034} 26035def SA1_combine2i : HInst< 26036(outs GeneralDoubleLow8Regs:$Rdd8), 26037(ins u2_0Imm:$Ii), 26038"$Rdd8 = combine(#2,#$Ii)", 26039tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26040let Inst{4-3} = 0b10; 26041let Inst{12-7} = 0b111000; 26042let hasNewValue = 1; 26043let opNewValue = 0; 26044let AsmVariantName = "NonParsable"; 26045let DecoderNamespace = "SUBINSN_A"; 26046} 26047def SA1_combine3i : HInst< 26048(outs GeneralDoubleLow8Regs:$Rdd8), 26049(ins u2_0Imm:$Ii), 26050"$Rdd8 = combine(#3,#$Ii)", 26051tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26052let Inst{4-3} = 0b11; 26053let Inst{12-7} = 0b111000; 26054let hasNewValue = 1; 26055let opNewValue = 0; 26056let AsmVariantName = "NonParsable"; 26057let DecoderNamespace = "SUBINSN_A"; 26058} 26059def SA1_combinerz : HInst< 26060(outs GeneralDoubleLow8Regs:$Rdd8), 26061(ins GeneralSubRegs:$Rs16), 26062"$Rdd8 = combine($Rs16,#0)", 26063tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 26064let Inst{3-3} = 0b1; 26065let Inst{12-8} = 0b11101; 26066let hasNewValue = 1; 26067let opNewValue = 0; 26068let AsmVariantName = "NonParsable"; 26069let DecoderNamespace = "SUBINSN_A"; 26070} 26071def SA1_combinezr : HInst< 26072(outs GeneralDoubleLow8Regs:$Rdd8), 26073(ins GeneralSubRegs:$Rs16), 26074"$Rdd8 = combine(#0,$Rs16)", 26075tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 26076let Inst{3-3} = 0b0; 26077let Inst{12-8} = 0b11101; 26078let hasNewValue = 1; 26079let opNewValue = 0; 26080let AsmVariantName = "NonParsable"; 26081let DecoderNamespace = "SUBINSN_A"; 26082} 26083def SA1_dec : HInst< 26084(outs GeneralSubRegs:$Rd16), 26085(ins GeneralSubRegs:$Rs16, n1Const:$n1), 26086"$Rd16 = add($Rs16,#$n1)", 26087tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 { 26088let Inst{12-8} = 0b10011; 26089let hasNewValue = 1; 26090let opNewValue = 0; 26091let AsmVariantName = "NonParsable"; 26092let DecoderNamespace = "SUBINSN_A"; 26093} 26094def SA1_inc : HInst< 26095(outs GeneralSubRegs:$Rd16), 26096(ins GeneralSubRegs:$Rs16), 26097"$Rd16 = add($Rs16,#1)", 26098tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26099let Inst{12-8} = 0b10001; 26100let hasNewValue = 1; 26101let opNewValue = 0; 26102let AsmVariantName = "NonParsable"; 26103let DecoderNamespace = "SUBINSN_A"; 26104} 26105def SA1_seti : HInst< 26106(outs GeneralSubRegs:$Rd16), 26107(ins u32_0Imm:$Ii), 26108"$Rd16 = #$Ii", 26109tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 { 26110let Inst{12-10} = 0b010; 26111let hasNewValue = 1; 26112let opNewValue = 0; 26113let AsmVariantName = "NonParsable"; 26114let DecoderNamespace = "SUBINSN_A"; 26115let isExtendable = 1; 26116let opExtendable = 1; 26117let isExtentSigned = 0; 26118let opExtentBits = 6; 26119let opExtentAlign = 0; 26120} 26121def SA1_setin1 : HInst< 26122(outs GeneralSubRegs:$Rd16), 26123(ins n1Const:$n1), 26124"$Rd16 = #$n1", 26125tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 { 26126let Inst{12-4} = 0b110100000; 26127let hasNewValue = 1; 26128let opNewValue = 0; 26129let AsmVariantName = "NonParsable"; 26130let DecoderNamespace = "SUBINSN_A"; 26131} 26132def SA1_sxtb : HInst< 26133(outs GeneralSubRegs:$Rd16), 26134(ins GeneralSubRegs:$Rs16), 26135"$Rd16 = sxtb($Rs16)", 26136tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26137let Inst{12-8} = 0b10101; 26138let hasNewValue = 1; 26139let opNewValue = 0; 26140let AsmVariantName = "NonParsable"; 26141let DecoderNamespace = "SUBINSN_A"; 26142} 26143def SA1_sxth : HInst< 26144(outs GeneralSubRegs:$Rd16), 26145(ins GeneralSubRegs:$Rs16), 26146"$Rd16 = sxth($Rs16)", 26147tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26148let Inst{12-8} = 0b10100; 26149let hasNewValue = 1; 26150let opNewValue = 0; 26151let AsmVariantName = "NonParsable"; 26152let DecoderNamespace = "SUBINSN_A"; 26153} 26154def SA1_tfr : HInst< 26155(outs GeneralSubRegs:$Rd16), 26156(ins GeneralSubRegs:$Rs16), 26157"$Rd16 = $Rs16", 26158tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26159let Inst{12-8} = 0b10000; 26160let hasNewValue = 1; 26161let opNewValue = 0; 26162let AsmVariantName = "NonParsable"; 26163let DecoderNamespace = "SUBINSN_A"; 26164} 26165def SA1_zxtb : HInst< 26166(outs GeneralSubRegs:$Rd16), 26167(ins GeneralSubRegs:$Rs16), 26168"$Rd16 = and($Rs16,#255)", 26169tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26170let Inst{12-8} = 0b10111; 26171let hasNewValue = 1; 26172let opNewValue = 0; 26173let AsmVariantName = "NonParsable"; 26174let DecoderNamespace = "SUBINSN_A"; 26175} 26176def SA1_zxth : HInst< 26177(outs GeneralSubRegs:$Rd16), 26178(ins GeneralSubRegs:$Rs16), 26179"$Rd16 = zxth($Rs16)", 26180tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26181let Inst{12-8} = 0b10110; 26182let hasNewValue = 1; 26183let opNewValue = 0; 26184let AsmVariantName = "NonParsable"; 26185let DecoderNamespace = "SUBINSN_A"; 26186} 26187def SL1_loadri_io : HInst< 26188(outs GeneralSubRegs:$Rd16), 26189(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26190"$Rd16 = memw($Rs16+#$Ii)", 26191tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 { 26192let Inst{12-12} = 0b0; 26193let hasNewValue = 1; 26194let opNewValue = 0; 26195let addrMode = BaseImmOffset; 26196let accessSize = WordAccess; 26197let AsmVariantName = "NonParsable"; 26198let mayLoad = 1; 26199let DecoderNamespace = "SUBINSN_L1"; 26200} 26201def SL1_loadrub_io : HInst< 26202(outs GeneralSubRegs:$Rd16), 26203(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26204"$Rd16 = memub($Rs16+#$Ii)", 26205tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 { 26206let Inst{12-12} = 0b1; 26207let hasNewValue = 1; 26208let opNewValue = 0; 26209let addrMode = BaseImmOffset; 26210let accessSize = ByteAccess; 26211let AsmVariantName = "NonParsable"; 26212let mayLoad = 1; 26213let DecoderNamespace = "SUBINSN_L1"; 26214} 26215def SL2_deallocframe : HInst< 26216(outs), 26217(ins), 26218"deallocframe", 26219tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 { 26220let Inst{12-0} = 0b1111100000000; 26221let accessSize = DoubleWordAccess; 26222let AsmVariantName = "NonParsable"; 26223let mayLoad = 1; 26224let Uses = [FRAMEKEY, R30]; 26225let Defs = [R29, R30, R31]; 26226let DecoderNamespace = "SUBINSN_L2"; 26227} 26228def SL2_jumpr31 : HInst< 26229(outs), 26230(ins), 26231"jumpr r31", 26232tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26233let Inst{12-0} = 0b1111111000000; 26234let isTerminator = 1; 26235let isIndirectBranch = 1; 26236let AsmVariantName = "NonParsable"; 26237let cofMax1 = 1; 26238let isReturn = 1; 26239let Uses = [R31]; 26240let Defs = [PC]; 26241let DecoderNamespace = "SUBINSN_L2"; 26242} 26243def SL2_jumpr31_f : HInst< 26244(outs), 26245(ins), 26246"if (!p0) jumpr r31", 26247tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26248let Inst{12-0} = 0b1111111000101; 26249let isPredicated = 1; 26250let isPredicatedFalse = 1; 26251let isTerminator = 1; 26252let isIndirectBranch = 1; 26253let AsmVariantName = "NonParsable"; 26254let cofMax1 = 1; 26255let isReturn = 1; 26256let Uses = [P0, R31]; 26257let Defs = [PC]; 26258let isTaken = Inst{4}; 26259let DecoderNamespace = "SUBINSN_L2"; 26260} 26261def SL2_jumpr31_fnew : HInst< 26262(outs), 26263(ins), 26264"if (!p0.new) jumpr:nt r31", 26265tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26266let Inst{12-0} = 0b1111111000111; 26267let isPredicated = 1; 26268let isPredicatedFalse = 1; 26269let isTerminator = 1; 26270let isIndirectBranch = 1; 26271let AsmVariantName = "NonParsable"; 26272let isPredicatedNew = 1; 26273let cofMax1 = 1; 26274let isReturn = 1; 26275let Uses = [P0, R31]; 26276let Defs = [PC]; 26277let isTaken = Inst{4}; 26278let DecoderNamespace = "SUBINSN_L2"; 26279} 26280def SL2_jumpr31_t : HInst< 26281(outs), 26282(ins), 26283"if (p0) jumpr r31", 26284tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26285let Inst{12-0} = 0b1111111000100; 26286let isPredicated = 1; 26287let isTerminator = 1; 26288let isIndirectBranch = 1; 26289let AsmVariantName = "NonParsable"; 26290let cofMax1 = 1; 26291let isReturn = 1; 26292let Uses = [P0, R31]; 26293let Defs = [PC]; 26294let isTaken = Inst{4}; 26295let DecoderNamespace = "SUBINSN_L2"; 26296} 26297def SL2_jumpr31_tnew : HInst< 26298(outs), 26299(ins), 26300"if (p0.new) jumpr:nt r31", 26301tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26302let Inst{12-0} = 0b1111111000110; 26303let isPredicated = 1; 26304let isTerminator = 1; 26305let isIndirectBranch = 1; 26306let AsmVariantName = "NonParsable"; 26307let isPredicatedNew = 1; 26308let cofMax1 = 1; 26309let isReturn = 1; 26310let Uses = [P0, R31]; 26311let Defs = [PC]; 26312let isTaken = Inst{4}; 26313let DecoderNamespace = "SUBINSN_L2"; 26314} 26315def SL2_loadrb_io : HInst< 26316(outs GeneralSubRegs:$Rd16), 26317(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii), 26318"$Rd16 = memb($Rs16+#$Ii)", 26319tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c { 26320let Inst{12-11} = 0b10; 26321let hasNewValue = 1; 26322let opNewValue = 0; 26323let addrMode = BaseImmOffset; 26324let accessSize = ByteAccess; 26325let AsmVariantName = "NonParsable"; 26326let mayLoad = 1; 26327let DecoderNamespace = "SUBINSN_L2"; 26328} 26329def SL2_loadrd_sp : HInst< 26330(outs GeneralDoubleLow8Regs:$Rdd8), 26331(ins u5_3Imm:$Ii), 26332"$Rdd8 = memd(r29+#$Ii)", 26333tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b { 26334let Inst{12-8} = 0b11110; 26335let hasNewValue = 1; 26336let opNewValue = 0; 26337let addrMode = BaseImmOffset; 26338let accessSize = DoubleWordAccess; 26339let AsmVariantName = "NonParsable"; 26340let mayLoad = 1; 26341let Uses = [R29]; 26342let DecoderNamespace = "SUBINSN_L2"; 26343} 26344def SL2_loadrh_io : HInst< 26345(outs GeneralSubRegs:$Rd16), 26346(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26347"$Rd16 = memh($Rs16+#$Ii)", 26348tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26349let Inst{12-11} = 0b00; 26350let hasNewValue = 1; 26351let opNewValue = 0; 26352let addrMode = BaseImmOffset; 26353let accessSize = HalfWordAccess; 26354let AsmVariantName = "NonParsable"; 26355let mayLoad = 1; 26356let DecoderNamespace = "SUBINSN_L2"; 26357} 26358def SL2_loadri_sp : HInst< 26359(outs GeneralSubRegs:$Rd16), 26360(ins u5_2Imm:$Ii), 26361"$Rd16 = memw(r29+#$Ii)", 26362tc_8a6d0d94, TypeSUBINSN>, Enc_51635c { 26363let Inst{12-9} = 0b1110; 26364let hasNewValue = 1; 26365let opNewValue = 0; 26366let addrMode = BaseImmOffset; 26367let accessSize = WordAccess; 26368let AsmVariantName = "NonParsable"; 26369let mayLoad = 1; 26370let Uses = [R29]; 26371let DecoderNamespace = "SUBINSN_L2"; 26372} 26373def SL2_loadruh_io : HInst< 26374(outs GeneralSubRegs:$Rd16), 26375(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26376"$Rd16 = memuh($Rs16+#$Ii)", 26377tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26378let Inst{12-11} = 0b01; 26379let hasNewValue = 1; 26380let opNewValue = 0; 26381let addrMode = BaseImmOffset; 26382let accessSize = HalfWordAccess; 26383let AsmVariantName = "NonParsable"; 26384let mayLoad = 1; 26385let DecoderNamespace = "SUBINSN_L2"; 26386} 26387def SL2_return : HInst< 26388(outs), 26389(ins), 26390"dealloc_return", 26391tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26392let Inst{12-0} = 0b1111101000000; 26393let isTerminator = 1; 26394let isIndirectBranch = 1; 26395let accessSize = DoubleWordAccess; 26396let AsmVariantName = "NonParsable"; 26397let mayLoad = 1; 26398let cofMax1 = 1; 26399let isRestrictNoSlot1Store = 1; 26400let isReturn = 1; 26401let Uses = [FRAMEKEY, R30]; 26402let Defs = [PC, R29, R30, R31]; 26403let DecoderNamespace = "SUBINSN_L2"; 26404} 26405def SL2_return_f : HInst< 26406(outs), 26407(ins), 26408"if (!p0) dealloc_return", 26409tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26410let Inst{12-0} = 0b1111101000101; 26411let isPredicated = 1; 26412let isPredicatedFalse = 1; 26413let isTerminator = 1; 26414let isIndirectBranch = 1; 26415let accessSize = DoubleWordAccess; 26416let AsmVariantName = "NonParsable"; 26417let mayLoad = 1; 26418let cofMax1 = 1; 26419let isRestrictNoSlot1Store = 1; 26420let isReturn = 1; 26421let Uses = [FRAMEKEY, P0, R30]; 26422let Defs = [PC, R29, R30, R31]; 26423let isTaken = Inst{4}; 26424let DecoderNamespace = "SUBINSN_L2"; 26425} 26426def SL2_return_fnew : HInst< 26427(outs), 26428(ins), 26429"if (!p0.new) dealloc_return:nt", 26430tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26431let Inst{12-0} = 0b1111101000111; 26432let isPredicated = 1; 26433let isPredicatedFalse = 1; 26434let isTerminator = 1; 26435let isIndirectBranch = 1; 26436let accessSize = DoubleWordAccess; 26437let AsmVariantName = "NonParsable"; 26438let isPredicatedNew = 1; 26439let mayLoad = 1; 26440let cofMax1 = 1; 26441let isRestrictNoSlot1Store = 1; 26442let isReturn = 1; 26443let Uses = [FRAMEKEY, P0, R30]; 26444let Defs = [PC, R29, R30, R31]; 26445let isTaken = Inst{4}; 26446let DecoderNamespace = "SUBINSN_L2"; 26447} 26448def SL2_return_t : HInst< 26449(outs), 26450(ins), 26451"if (p0) dealloc_return", 26452tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26453let Inst{12-0} = 0b1111101000100; 26454let isPredicated = 1; 26455let isTerminator = 1; 26456let isIndirectBranch = 1; 26457let accessSize = DoubleWordAccess; 26458let AsmVariantName = "NonParsable"; 26459let mayLoad = 1; 26460let cofMax1 = 1; 26461let isRestrictNoSlot1Store = 1; 26462let isReturn = 1; 26463let Uses = [FRAMEKEY, P0, R30]; 26464let Defs = [PC, R29, R30, R31]; 26465let isTaken = Inst{4}; 26466let DecoderNamespace = "SUBINSN_L2"; 26467} 26468def SL2_return_tnew : HInst< 26469(outs), 26470(ins), 26471"if (p0.new) dealloc_return:nt", 26472tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26473let Inst{12-0} = 0b1111101000110; 26474let isPredicated = 1; 26475let isTerminator = 1; 26476let isIndirectBranch = 1; 26477let accessSize = DoubleWordAccess; 26478let AsmVariantName = "NonParsable"; 26479let isPredicatedNew = 1; 26480let mayLoad = 1; 26481let cofMax1 = 1; 26482let isRestrictNoSlot1Store = 1; 26483let isReturn = 1; 26484let Uses = [FRAMEKEY, P0, R30]; 26485let Defs = [PC, R29, R30, R31]; 26486let isTaken = Inst{4}; 26487let DecoderNamespace = "SUBINSN_L2"; 26488} 26489def SS1_storeb_io : HInst< 26490(outs), 26491(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16), 26492"memb($Rs16+#$Ii) = $Rt16", 26493tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc { 26494let Inst{12-12} = 0b1; 26495let addrMode = BaseImmOffset; 26496let accessSize = ByteAccess; 26497let AsmVariantName = "NonParsable"; 26498let mayStore = 1; 26499let DecoderNamespace = "SUBINSN_S1"; 26500} 26501def SS1_storew_io : HInst< 26502(outs), 26503(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16), 26504"memw($Rs16+#$Ii) = $Rt16", 26505tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c { 26506let Inst{12-12} = 0b0; 26507let addrMode = BaseImmOffset; 26508let accessSize = WordAccess; 26509let AsmVariantName = "NonParsable"; 26510let mayStore = 1; 26511let DecoderNamespace = "SUBINSN_S1"; 26512} 26513def SS2_allocframe : HInst< 26514(outs), 26515(ins u5_3Imm:$Ii), 26516"allocframe(#$Ii)", 26517tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca { 26518let Inst{3-0} = 0b0000; 26519let Inst{12-9} = 0b1110; 26520let addrMode = BaseImmOffset; 26521let accessSize = DoubleWordAccess; 26522let AsmVariantName = "NonParsable"; 26523let mayStore = 1; 26524let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31]; 26525let Defs = [R29, R30]; 26526let DecoderNamespace = "SUBINSN_S2"; 26527} 26528def SS2_storebi0 : HInst< 26529(outs), 26530(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26531"memb($Rs16+#$Ii) = #0", 26532tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26533let Inst{12-8} = 0b10010; 26534let addrMode = BaseImmOffset; 26535let accessSize = ByteAccess; 26536let AsmVariantName = "NonParsable"; 26537let mayStore = 1; 26538let DecoderNamespace = "SUBINSN_S2"; 26539} 26540def SS2_storebi1 : HInst< 26541(outs), 26542(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26543"memb($Rs16+#$Ii) = #1", 26544tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26545let Inst{12-8} = 0b10011; 26546let addrMode = BaseImmOffset; 26547let accessSize = ByteAccess; 26548let AsmVariantName = "NonParsable"; 26549let mayStore = 1; 26550let DecoderNamespace = "SUBINSN_S2"; 26551} 26552def SS2_stored_sp : HInst< 26553(outs), 26554(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8), 26555"memd(r29+#$Ii) = $Rtt8", 26556tc_0655b949, TypeSUBINSN>, Enc_b8309d { 26557let Inst{12-9} = 0b0101; 26558let addrMode = BaseImmOffset; 26559let accessSize = DoubleWordAccess; 26560let AsmVariantName = "NonParsable"; 26561let mayStore = 1; 26562let Uses = [R29]; 26563let DecoderNamespace = "SUBINSN_S2"; 26564} 26565def SS2_storeh_io : HInst< 26566(outs), 26567(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16), 26568"memh($Rs16+#$Ii) = $Rt16", 26569tc_ae5babd7, TypeSUBINSN>, Enc_625deb { 26570let Inst{12-11} = 0b00; 26571let addrMode = BaseImmOffset; 26572let accessSize = HalfWordAccess; 26573let AsmVariantName = "NonParsable"; 26574let mayStore = 1; 26575let DecoderNamespace = "SUBINSN_S2"; 26576} 26577def SS2_storew_sp : HInst< 26578(outs), 26579(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16), 26580"memw(r29+#$Ii) = $Rt16", 26581tc_0655b949, TypeSUBINSN>, Enc_87c142 { 26582let Inst{12-9} = 0b0100; 26583let addrMode = BaseImmOffset; 26584let accessSize = WordAccess; 26585let AsmVariantName = "NonParsable"; 26586let mayStore = 1; 26587let Uses = [R29]; 26588let DecoderNamespace = "SUBINSN_S2"; 26589} 26590def SS2_storewi0 : HInst< 26591(outs), 26592(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26593"memw($Rs16+#$Ii) = #0", 26594tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26595let Inst{12-8} = 0b10000; 26596let addrMode = BaseImmOffset; 26597let accessSize = WordAccess; 26598let AsmVariantName = "NonParsable"; 26599let mayStore = 1; 26600let DecoderNamespace = "SUBINSN_S2"; 26601} 26602def SS2_storewi1 : HInst< 26603(outs), 26604(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26605"memw($Rs16+#$Ii) = #1", 26606tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26607let Inst{12-8} = 0b10001; 26608let addrMode = BaseImmOffset; 26609let accessSize = WordAccess; 26610let AsmVariantName = "NonParsable"; 26611let mayStore = 1; 26612let DecoderNamespace = "SUBINSN_S2"; 26613} 26614def V6_MAP_equb : HInst< 26615(outs HvxQR:$Qd4), 26616(ins HvxVR:$Vu32, HvxVR:$Vv32), 26617"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)", 26618PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26619let hasNewValue = 1; 26620let opNewValue = 0; 26621let isCVI = 1; 26622let isPseudo = 1; 26623let isCodeGenOnly = 1; 26624let DecoderNamespace = "EXT_mmvec"; 26625} 26626def V6_MAP_equb_and : HInst< 26627(outs HvxQR:$Qx4), 26628(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26629"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)", 26630PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26631let isCVI = 1; 26632let isPseudo = 1; 26633let isCodeGenOnly = 1; 26634let DecoderNamespace = "EXT_mmvec"; 26635let Constraints = "$Qx4 = $Qx4in"; 26636} 26637def V6_MAP_equb_ior : HInst< 26638(outs HvxQR:$Qx4), 26639(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26640"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)", 26641PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26642let isAccumulator = 1; 26643let isCVI = 1; 26644let isPseudo = 1; 26645let isCodeGenOnly = 1; 26646let DecoderNamespace = "EXT_mmvec"; 26647let Constraints = "$Qx4 = $Qx4in"; 26648} 26649def V6_MAP_equb_xor : HInst< 26650(outs HvxQR:$Qx4), 26651(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26652"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)", 26653PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26654let isCVI = 1; 26655let isPseudo = 1; 26656let isCodeGenOnly = 1; 26657let DecoderNamespace = "EXT_mmvec"; 26658let Constraints = "$Qx4 = $Qx4in"; 26659} 26660def V6_MAP_equh : HInst< 26661(outs HvxQR:$Qd4), 26662(ins HvxVR:$Vu32, HvxVR:$Vv32), 26663"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)", 26664PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26665let hasNewValue = 1; 26666let opNewValue = 0; 26667let isCVI = 1; 26668let isPseudo = 1; 26669let isCodeGenOnly = 1; 26670let DecoderNamespace = "EXT_mmvec"; 26671} 26672def V6_MAP_equh_and : HInst< 26673(outs HvxQR:$Qx4), 26674(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26675"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)", 26676PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26677let isCVI = 1; 26678let isPseudo = 1; 26679let isCodeGenOnly = 1; 26680let DecoderNamespace = "EXT_mmvec"; 26681let Constraints = "$Qx4 = $Qx4in"; 26682} 26683def V6_MAP_equh_ior : HInst< 26684(outs HvxQR:$Qx4), 26685(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26686"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)", 26687PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26688let isAccumulator = 1; 26689let isCVI = 1; 26690let isPseudo = 1; 26691let isCodeGenOnly = 1; 26692let DecoderNamespace = "EXT_mmvec"; 26693let Constraints = "$Qx4 = $Qx4in"; 26694} 26695def V6_MAP_equh_xor : HInst< 26696(outs HvxQR:$Qx4), 26697(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26698"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)", 26699PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26700let isCVI = 1; 26701let isPseudo = 1; 26702let isCodeGenOnly = 1; 26703let DecoderNamespace = "EXT_mmvec"; 26704let Constraints = "$Qx4 = $Qx4in"; 26705} 26706def V6_MAP_equw : HInst< 26707(outs HvxQR:$Qd4), 26708(ins HvxVR:$Vu32, HvxVR:$Vv32), 26709"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)", 26710PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26711let hasNewValue = 1; 26712let opNewValue = 0; 26713let isCVI = 1; 26714let isPseudo = 1; 26715let isCodeGenOnly = 1; 26716let DecoderNamespace = "EXT_mmvec"; 26717} 26718def V6_MAP_equw_and : HInst< 26719(outs HvxQR:$Qx4), 26720(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26721"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)", 26722PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26723let isCVI = 1; 26724let isPseudo = 1; 26725let isCodeGenOnly = 1; 26726let DecoderNamespace = "EXT_mmvec"; 26727let Constraints = "$Qx4 = $Qx4in"; 26728} 26729def V6_MAP_equw_ior : HInst< 26730(outs HvxQR:$Qx4), 26731(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26732"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)", 26733PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26734let isAccumulator = 1; 26735let isCVI = 1; 26736let isPseudo = 1; 26737let isCodeGenOnly = 1; 26738let DecoderNamespace = "EXT_mmvec"; 26739let Constraints = "$Qx4 = $Qx4in"; 26740} 26741def V6_MAP_equw_xor : HInst< 26742(outs HvxQR:$Qx4), 26743(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26744"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)", 26745PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26746let isCVI = 1; 26747let isPseudo = 1; 26748let isCodeGenOnly = 1; 26749let DecoderNamespace = "EXT_mmvec"; 26750let Constraints = "$Qx4 = $Qx4in"; 26751} 26752def V6_extractw : HInst< 26753(outs IntRegs:$Rd32), 26754(ins HvxVR:$Vu32, IntRegs:$Rs32), 26755"$Rd32 = vextract($Vu32,$Rs32)", 26756tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> { 26757let Inst{7-5} = 0b001; 26758let Inst{13-13} = 0b0; 26759let Inst{31-21} = 0b10010010000; 26760let hasNewValue = 1; 26761let opNewValue = 0; 26762let isCVI = 1; 26763let isSolo = 1; 26764let mayLoad = 1; 26765let DecoderNamespace = "EXT_mmvec"; 26766} 26767def V6_extractw_alt : HInst< 26768(outs IntRegs:$Rd32), 26769(ins HvxVR:$Vu32, IntRegs:$Rs32), 26770"$Rd32.w = vextract($Vu32,$Rs32)", 26771PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26772let hasNewValue = 1; 26773let opNewValue = 0; 26774let isCVI = 1; 26775let isPseudo = 1; 26776let isCodeGenOnly = 1; 26777let DecoderNamespace = "EXT_mmvec"; 26778} 26779def V6_hi : HInst< 26780(outs HvxVR:$Vd32), 26781(ins HvxWR:$Vss32), 26782"$Vd32 = hi($Vss32)", 26783CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26784let hasNewValue = 1; 26785let opNewValue = 0; 26786let isCVI = 1; 26787let isPseudo = 1; 26788let DecoderNamespace = "EXT_mmvec"; 26789} 26790def V6_ld0 : HInst< 26791(outs HvxVR:$Vd32), 26792(ins IntRegs:$Rt32), 26793"$Vd32 = vmem($Rt32)", 26794PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26795let hasNewValue = 1; 26796let opNewValue = 0; 26797let isCVI = 1; 26798let isPseudo = 1; 26799let isCodeGenOnly = 1; 26800let DecoderNamespace = "EXT_mmvec"; 26801} 26802def V6_ldcnp0 : HInst< 26803(outs HvxVR:$Vd32), 26804(ins PredRegs:$Pv4, IntRegs:$Rt32), 26805"if (!$Pv4) $Vd32.cur = vmem($Rt32)", 26806PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26807let hasNewValue = 1; 26808let opNewValue = 0; 26809let isCVI = 1; 26810let isPseudo = 1; 26811let isCodeGenOnly = 1; 26812let DecoderNamespace = "EXT_mmvec"; 26813} 26814def V6_ldcnpnt0 : HInst< 26815(outs HvxVR:$Vd32), 26816(ins PredRegs:$Pv4, IntRegs:$Rt32), 26817"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt", 26818PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26819let hasNewValue = 1; 26820let opNewValue = 0; 26821let isCVI = 1; 26822let isPseudo = 1; 26823let isCodeGenOnly = 1; 26824let DecoderNamespace = "EXT_mmvec"; 26825} 26826def V6_ldcp0 : HInst< 26827(outs HvxVR:$Vd32), 26828(ins PredRegs:$Pv4, IntRegs:$Rt32), 26829"if ($Pv4) $Vd32.cur = vmem($Rt32)", 26830PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26831let hasNewValue = 1; 26832let opNewValue = 0; 26833let isCVI = 1; 26834let isPseudo = 1; 26835let isCodeGenOnly = 1; 26836let DecoderNamespace = "EXT_mmvec"; 26837} 26838def V6_ldcpnt0 : HInst< 26839(outs HvxVR:$Vd32), 26840(ins PredRegs:$Pv4, IntRegs:$Rt32), 26841"if ($Pv4) $Vd32.cur = vmem($Rt32):nt", 26842PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26843let hasNewValue = 1; 26844let opNewValue = 0; 26845let isCVI = 1; 26846let isPseudo = 1; 26847let isCodeGenOnly = 1; 26848let DecoderNamespace = "EXT_mmvec"; 26849} 26850def V6_ldnp0 : HInst< 26851(outs HvxVR:$Vd32), 26852(ins PredRegs:$Pv4, IntRegs:$Rt32), 26853"if (!$Pv4) $Vd32 = vmem($Rt32)", 26854PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26855let hasNewValue = 1; 26856let opNewValue = 0; 26857let isCVI = 1; 26858let isPseudo = 1; 26859let isCodeGenOnly = 1; 26860let DecoderNamespace = "EXT_mmvec"; 26861} 26862def V6_ldnpnt0 : HInst< 26863(outs HvxVR:$Vd32), 26864(ins PredRegs:$Pv4, IntRegs:$Rt32), 26865"if (!$Pv4) $Vd32 = vmem($Rt32):nt", 26866PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26867let hasNewValue = 1; 26868let opNewValue = 0; 26869let isCVI = 1; 26870let isPseudo = 1; 26871let isCodeGenOnly = 1; 26872let DecoderNamespace = "EXT_mmvec"; 26873} 26874def V6_ldnt0 : HInst< 26875(outs HvxVR:$Vd32), 26876(ins IntRegs:$Rt32), 26877"$Vd32 = vmem($Rt32):nt", 26878PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26879let hasNewValue = 1; 26880let opNewValue = 0; 26881let isCVI = 1; 26882let isPseudo = 1; 26883let isCodeGenOnly = 1; 26884let DecoderNamespace = "EXT_mmvec"; 26885} 26886def V6_ldntnt0 : HInst< 26887(outs HvxVR:$Vd32), 26888(ins IntRegs:$Rt32), 26889"$Vd32 = vmem($Rt32):nt", 26890PSEUDO, TypeMAPPING>, Requires<[HasV62]> { 26891let hasNewValue = 1; 26892let opNewValue = 0; 26893let isPseudo = 1; 26894let isCodeGenOnly = 1; 26895let DecoderNamespace = "EXT_mmvec"; 26896} 26897def V6_ldp0 : HInst< 26898(outs HvxVR:$Vd32), 26899(ins PredRegs:$Pv4, IntRegs:$Rt32), 26900"if ($Pv4) $Vd32 = vmem($Rt32)", 26901PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26902let hasNewValue = 1; 26903let opNewValue = 0; 26904let isCVI = 1; 26905let isPseudo = 1; 26906let isCodeGenOnly = 1; 26907let DecoderNamespace = "EXT_mmvec"; 26908} 26909def V6_ldpnt0 : HInst< 26910(outs HvxVR:$Vd32), 26911(ins PredRegs:$Pv4, IntRegs:$Rt32), 26912"if ($Pv4) $Vd32 = vmem($Rt32):nt", 26913PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26914let hasNewValue = 1; 26915let opNewValue = 0; 26916let isCVI = 1; 26917let isPseudo = 1; 26918let isCodeGenOnly = 1; 26919let DecoderNamespace = "EXT_mmvec"; 26920} 26921def V6_ldtnp0 : HInst< 26922(outs HvxVR:$Vd32), 26923(ins PredRegs:$Pv4, IntRegs:$Rt32), 26924"if (!$Pv4) $Vd32.tmp = vmem($Rt32)", 26925PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26926let hasNewValue = 1; 26927let opNewValue = 0; 26928let isCVI = 1; 26929let isPseudo = 1; 26930let isCodeGenOnly = 1; 26931let DecoderNamespace = "EXT_mmvec"; 26932} 26933def V6_ldtnpnt0 : HInst< 26934(outs HvxVR:$Vd32), 26935(ins PredRegs:$Pv4, IntRegs:$Rt32), 26936"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt", 26937PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26938let hasNewValue = 1; 26939let opNewValue = 0; 26940let isCVI = 1; 26941let isPseudo = 1; 26942let isCodeGenOnly = 1; 26943let DecoderNamespace = "EXT_mmvec"; 26944} 26945def V6_ldtp0 : HInst< 26946(outs HvxVR:$Vd32), 26947(ins PredRegs:$Pv4, IntRegs:$Rt32), 26948"if ($Pv4) $Vd32.tmp = vmem($Rt32)", 26949PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26950let hasNewValue = 1; 26951let opNewValue = 0; 26952let isCVI = 1; 26953let isPseudo = 1; 26954let isCodeGenOnly = 1; 26955let DecoderNamespace = "EXT_mmvec"; 26956} 26957def V6_ldtpnt0 : HInst< 26958(outs HvxVR:$Vd32), 26959(ins PredRegs:$Pv4, IntRegs:$Rt32), 26960"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt", 26961PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26962let hasNewValue = 1; 26963let opNewValue = 0; 26964let isCVI = 1; 26965let isPseudo = 1; 26966let isCodeGenOnly = 1; 26967let DecoderNamespace = "EXT_mmvec"; 26968} 26969def V6_ldu0 : HInst< 26970(outs HvxVR:$Vd32), 26971(ins IntRegs:$Rt32), 26972"$Vd32 = vmemu($Rt32)", 26973PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26974let hasNewValue = 1; 26975let opNewValue = 0; 26976let isCVI = 1; 26977let isPseudo = 1; 26978let isCodeGenOnly = 1; 26979let DecoderNamespace = "EXT_mmvec"; 26980} 26981def V6_lo : HInst< 26982(outs HvxVR:$Vd32), 26983(ins HvxWR:$Vss32), 26984"$Vd32 = lo($Vss32)", 26985CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26986let hasNewValue = 1; 26987let opNewValue = 0; 26988let isCVI = 1; 26989let isPseudo = 1; 26990let DecoderNamespace = "EXT_mmvec"; 26991} 26992def V6_lvsplatb : HInst< 26993(outs HvxVR:$Vd32), 26994(ins IntRegs:$Rt32), 26995"$Vd32.b = vsplat($Rt32)", 26996tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 26997let Inst{13-5} = 0b000000010; 26998let Inst{31-21} = 0b00011001110; 26999let hasNewValue = 1; 27000let opNewValue = 0; 27001let isCVI = 1; 27002let DecoderNamespace = "EXT_mmvec"; 27003} 27004def V6_lvsplath : HInst< 27005(outs HvxVR:$Vd32), 27006(ins IntRegs:$Rt32), 27007"$Vd32.h = vsplat($Rt32)", 27008tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 27009let Inst{13-5} = 0b000000001; 27010let Inst{31-21} = 0b00011001110; 27011let hasNewValue = 1; 27012let opNewValue = 0; 27013let isCVI = 1; 27014let DecoderNamespace = "EXT_mmvec"; 27015} 27016def V6_lvsplatw : HInst< 27017(outs HvxVR:$Vd32), 27018(ins IntRegs:$Rt32), 27019"$Vd32 = vsplat($Rt32)", 27020tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> { 27021let Inst{13-5} = 0b000000001; 27022let Inst{31-21} = 0b00011001101; 27023let hasNewValue = 1; 27024let opNewValue = 0; 27025let isCVI = 1; 27026let DecoderNamespace = "EXT_mmvec"; 27027} 27028def V6_pred_and : HInst< 27029(outs HvxQR:$Qd4), 27030(ins HvxQR:$Qs4, HvxQR:$Qt4), 27031"$Qd4 = and($Qs4,$Qt4)", 27032tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27033let Inst{7-2} = 0b000000; 27034let Inst{13-10} = 0b0000; 27035let Inst{21-16} = 0b000011; 27036let Inst{31-24} = 0b00011110; 27037let hasNewValue = 1; 27038let opNewValue = 0; 27039let isCVI = 1; 27040let DecoderNamespace = "EXT_mmvec"; 27041} 27042def V6_pred_and_n : HInst< 27043(outs HvxQR:$Qd4), 27044(ins HvxQR:$Qs4, HvxQR:$Qt4), 27045"$Qd4 = and($Qs4,!$Qt4)", 27046tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27047let Inst{7-2} = 0b000101; 27048let Inst{13-10} = 0b0000; 27049let Inst{21-16} = 0b000011; 27050let Inst{31-24} = 0b00011110; 27051let hasNewValue = 1; 27052let opNewValue = 0; 27053let isCVI = 1; 27054let DecoderNamespace = "EXT_mmvec"; 27055} 27056def V6_pred_not : HInst< 27057(outs HvxQR:$Qd4), 27058(ins HvxQR:$Qs4), 27059"$Qd4 = not($Qs4)", 27060tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> { 27061let Inst{7-2} = 0b000010; 27062let Inst{13-10} = 0b0000; 27063let Inst{31-16} = 0b0001111000000011; 27064let hasNewValue = 1; 27065let opNewValue = 0; 27066let isCVI = 1; 27067let DecoderNamespace = "EXT_mmvec"; 27068} 27069def V6_pred_or : HInst< 27070(outs HvxQR:$Qd4), 27071(ins HvxQR:$Qs4, HvxQR:$Qt4), 27072"$Qd4 = or($Qs4,$Qt4)", 27073tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27074let Inst{7-2} = 0b000001; 27075let Inst{13-10} = 0b0000; 27076let Inst{21-16} = 0b000011; 27077let Inst{31-24} = 0b00011110; 27078let hasNewValue = 1; 27079let opNewValue = 0; 27080let isCVI = 1; 27081let DecoderNamespace = "EXT_mmvec"; 27082} 27083def V6_pred_or_n : HInst< 27084(outs HvxQR:$Qd4), 27085(ins HvxQR:$Qs4, HvxQR:$Qt4), 27086"$Qd4 = or($Qs4,!$Qt4)", 27087tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27088let Inst{7-2} = 0b000100; 27089let Inst{13-10} = 0b0000; 27090let Inst{21-16} = 0b000011; 27091let Inst{31-24} = 0b00011110; 27092let hasNewValue = 1; 27093let opNewValue = 0; 27094let isCVI = 1; 27095let DecoderNamespace = "EXT_mmvec"; 27096} 27097def V6_pred_scalar2 : HInst< 27098(outs HvxQR:$Qd4), 27099(ins IntRegs:$Rt32), 27100"$Qd4 = vsetq($Rt32)", 27101tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> { 27102let Inst{13-2} = 0b000000010001; 27103let Inst{31-21} = 0b00011001101; 27104let hasNewValue = 1; 27105let opNewValue = 0; 27106let isCVI = 1; 27107let DecoderNamespace = "EXT_mmvec"; 27108} 27109def V6_pred_scalar2v2 : HInst< 27110(outs HvxQR:$Qd4), 27111(ins IntRegs:$Rt32), 27112"$Qd4 = vsetq2($Rt32)", 27113tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> { 27114let Inst{13-2} = 0b000000010011; 27115let Inst{31-21} = 0b00011001101; 27116let hasNewValue = 1; 27117let opNewValue = 0; 27118let isCVI = 1; 27119let DecoderNamespace = "EXT_mmvec"; 27120} 27121def V6_pred_xor : HInst< 27122(outs HvxQR:$Qd4), 27123(ins HvxQR:$Qs4, HvxQR:$Qt4), 27124"$Qd4 = xor($Qs4,$Qt4)", 27125tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27126let Inst{7-2} = 0b000011; 27127let Inst{13-10} = 0b0000; 27128let Inst{21-16} = 0b000011; 27129let Inst{31-24} = 0b00011110; 27130let hasNewValue = 1; 27131let opNewValue = 0; 27132let isCVI = 1; 27133let DecoderNamespace = "EXT_mmvec"; 27134} 27135def V6_shuffeqh : HInst< 27136(outs HvxQR:$Qd4), 27137(ins HvxQR:$Qs4, HvxQR:$Qt4), 27138"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)", 27139tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27140let Inst{7-2} = 0b000110; 27141let Inst{13-10} = 0b0000; 27142let Inst{21-16} = 0b000011; 27143let Inst{31-24} = 0b00011110; 27144let hasNewValue = 1; 27145let opNewValue = 0; 27146let isCVI = 1; 27147let DecoderNamespace = "EXT_mmvec"; 27148} 27149def V6_shuffeqw : HInst< 27150(outs HvxQR:$Qd4), 27151(ins HvxQR:$Qs4, HvxQR:$Qt4), 27152"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)", 27153tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27154let Inst{7-2} = 0b000111; 27155let Inst{13-10} = 0b0000; 27156let Inst{21-16} = 0b000011; 27157let Inst{31-24} = 0b00011110; 27158let hasNewValue = 1; 27159let opNewValue = 0; 27160let isCVI = 1; 27161let DecoderNamespace = "EXT_mmvec"; 27162} 27163def V6_st0 : HInst< 27164(outs), 27165(ins IntRegs:$Rt32, HvxVR:$Vs32), 27166"vmem($Rt32) = $Vs32", 27167PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27168let isCVI = 1; 27169let isPseudo = 1; 27170let isCodeGenOnly = 1; 27171let DecoderNamespace = "EXT_mmvec"; 27172} 27173def V6_stn0 : HInst< 27174(outs), 27175(ins IntRegs:$Rt32, HvxVR:$Os8), 27176"vmem($Rt32) = $Os8.new", 27177PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27178let isCVI = 1; 27179let isPseudo = 1; 27180let isCodeGenOnly = 1; 27181let DecoderNamespace = "EXT_mmvec"; 27182let opNewValue = 1; 27183} 27184def V6_stnnt0 : HInst< 27185(outs), 27186(ins IntRegs:$Rt32, HvxVR:$Os8), 27187"vmem($Rt32):nt = $Os8.new", 27188PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27189let isCVI = 1; 27190let isPseudo = 1; 27191let isCodeGenOnly = 1; 27192let DecoderNamespace = "EXT_mmvec"; 27193let opNewValue = 1; 27194} 27195def V6_stnp0 : HInst< 27196(outs), 27197(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27198"if (!$Pv4) vmem($Rt32) = $Vs32", 27199PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27200let isCVI = 1; 27201let isPseudo = 1; 27202let isCodeGenOnly = 1; 27203let DecoderNamespace = "EXT_mmvec"; 27204} 27205def V6_stnpnt0 : HInst< 27206(outs), 27207(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27208"if (!$Pv4) vmem($Rt32):nt = $Vs32", 27209PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27210let isCVI = 1; 27211let isPseudo = 1; 27212let isCodeGenOnly = 1; 27213let DecoderNamespace = "EXT_mmvec"; 27214} 27215def V6_stnq0 : HInst< 27216(outs), 27217(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27218"if (!$Qv4) vmem($Rt32) = $Vs32", 27219PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27220let isCVI = 1; 27221let isPseudo = 1; 27222let isCodeGenOnly = 1; 27223let DecoderNamespace = "EXT_mmvec"; 27224} 27225def V6_stnqnt0 : HInst< 27226(outs), 27227(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27228"if (!$Qv4) vmem($Rt32):nt = $Vs32", 27229PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27230let isCVI = 1; 27231let isPseudo = 1; 27232let isCodeGenOnly = 1; 27233let DecoderNamespace = "EXT_mmvec"; 27234} 27235def V6_stnt0 : HInst< 27236(outs), 27237(ins IntRegs:$Rt32, HvxVR:$Vs32), 27238"vmem($Rt32):nt = $Vs32", 27239PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27240let isCVI = 1; 27241let isPseudo = 1; 27242let isCodeGenOnly = 1; 27243let DecoderNamespace = "EXT_mmvec"; 27244} 27245def V6_stp0 : HInst< 27246(outs), 27247(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27248"if ($Pv4) vmem($Rt32) = $Vs32", 27249PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27250let isCVI = 1; 27251let isPseudo = 1; 27252let isCodeGenOnly = 1; 27253let DecoderNamespace = "EXT_mmvec"; 27254} 27255def V6_stpnt0 : HInst< 27256(outs), 27257(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27258"if ($Pv4) vmem($Rt32):nt = $Vs32", 27259PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27260let isCVI = 1; 27261let isPseudo = 1; 27262let isCodeGenOnly = 1; 27263let DecoderNamespace = "EXT_mmvec"; 27264} 27265def V6_stq0 : HInst< 27266(outs), 27267(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27268"if ($Qv4) vmem($Rt32) = $Vs32", 27269PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27270let isCVI = 1; 27271let isPseudo = 1; 27272let isCodeGenOnly = 1; 27273let DecoderNamespace = "EXT_mmvec"; 27274} 27275def V6_stqnt0 : HInst< 27276(outs), 27277(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27278"if ($Qv4) vmem($Rt32):nt = $Vs32", 27279PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27280let isCVI = 1; 27281let isPseudo = 1; 27282let isCodeGenOnly = 1; 27283let DecoderNamespace = "EXT_mmvec"; 27284} 27285def V6_stu0 : HInst< 27286(outs), 27287(ins IntRegs:$Rt32, HvxVR:$Vs32), 27288"vmemu($Rt32) = $Vs32", 27289PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27290let isCVI = 1; 27291let isPseudo = 1; 27292let isCodeGenOnly = 1; 27293let DecoderNamespace = "EXT_mmvec"; 27294} 27295def V6_stunp0 : HInst< 27296(outs), 27297(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27298"if (!$Pv4) vmemu($Rt32) = $Vs32", 27299PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27300let isCVI = 1; 27301let isPseudo = 1; 27302let isCodeGenOnly = 1; 27303let DecoderNamespace = "EXT_mmvec"; 27304} 27305def V6_stup0 : HInst< 27306(outs), 27307(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27308"if ($Pv4) vmemu($Rt32) = $Vs32", 27309PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27310let isCVI = 1; 27311let isPseudo = 1; 27312let isCodeGenOnly = 1; 27313let DecoderNamespace = "EXT_mmvec"; 27314} 27315def V6_v6mpyhubs10 : HInst< 27316(outs HvxWR:$Vdd32), 27317(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27318"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h", 27319tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> { 27320let Inst{7-7} = 0b1; 27321let Inst{13-13} = 0b1; 27322let Inst{31-21} = 0b00011111010; 27323let hasNewValue = 1; 27324let opNewValue = 0; 27325let isCVI = 1; 27326let DecoderNamespace = "EXT_mmvec"; 27327} 27328def V6_v6mpyhubs10_alt : HInst< 27329(outs HvxWR:$Vdd32), 27330(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27331"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h", 27332PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> { 27333let hasNewValue = 1; 27334let opNewValue = 0; 27335let isCVI = 1; 27336let isPseudo = 1; 27337let isCodeGenOnly = 1; 27338let DecoderNamespace = "EXT_mmvec"; 27339} 27340def V6_v6mpyhubs10_vxx : HInst< 27341(outs HvxWR:$Vxx32), 27342(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27343"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h", 27344tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> { 27345let Inst{7-7} = 0b1; 27346let Inst{13-13} = 0b1; 27347let Inst{31-21} = 0b00011111001; 27348let hasNewValue = 1; 27349let opNewValue = 0; 27350let isAccumulator = 1; 27351let isCVI = 1; 27352let DecoderNamespace = "EXT_mmvec"; 27353let Constraints = "$Vxx32 = $Vxx32in"; 27354} 27355def V6_v6mpyvubs10 : HInst< 27356(outs HvxWR:$Vdd32), 27357(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27358"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v", 27359tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> { 27360let Inst{7-7} = 0b0; 27361let Inst{13-13} = 0b1; 27362let Inst{31-21} = 0b00011111010; 27363let hasNewValue = 1; 27364let opNewValue = 0; 27365let isCVI = 1; 27366let DecoderNamespace = "EXT_mmvec"; 27367} 27368def V6_v6mpyvubs10_alt : HInst< 27369(outs HvxWR:$Vdd32), 27370(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27371"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v", 27372PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> { 27373let hasNewValue = 1; 27374let opNewValue = 0; 27375let isCVI = 1; 27376let isPseudo = 1; 27377let isCodeGenOnly = 1; 27378let DecoderNamespace = "EXT_mmvec"; 27379} 27380def V6_v6mpyvubs10_vxx : HInst< 27381(outs HvxWR:$Vxx32), 27382(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27383"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v", 27384tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> { 27385let Inst{7-7} = 0b0; 27386let Inst{13-13} = 0b1; 27387let Inst{31-21} = 0b00011111001; 27388let hasNewValue = 1; 27389let opNewValue = 0; 27390let isAccumulator = 1; 27391let isCVI = 1; 27392let DecoderNamespace = "EXT_mmvec"; 27393let Constraints = "$Vxx32 = $Vxx32in"; 27394} 27395def V6_vL32Ub_ai : HInst< 27396(outs HvxVR:$Vd32), 27397(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27398"$Vd32 = vmemu($Rt32+#$Ii)", 27399tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> { 27400let Inst{7-5} = 0b111; 27401let Inst{12-11} = 0b00; 27402let Inst{31-21} = 0b00101000000; 27403let hasNewValue = 1; 27404let opNewValue = 0; 27405let addrMode = BaseImmOffset; 27406let accessSize = HVXVectorAccess; 27407let isCVLoad = 1; 27408let isCVI = 1; 27409let mayLoad = 1; 27410let isRestrictNoSlot1Store = 1; 27411let DecoderNamespace = "EXT_mmvec"; 27412} 27413def V6_vL32Ub_pi : HInst< 27414(outs HvxVR:$Vd32, IntRegs:$Rx32), 27415(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27416"$Vd32 = vmemu($Rx32++#$Ii)", 27417tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> { 27418let Inst{7-5} = 0b111; 27419let Inst{13-11} = 0b000; 27420let Inst{31-21} = 0b00101001000; 27421let hasNewValue = 1; 27422let opNewValue = 0; 27423let addrMode = PostInc; 27424let accessSize = HVXVectorAccess; 27425let isCVLoad = 1; 27426let isCVI = 1; 27427let mayLoad = 1; 27428let isRestrictNoSlot1Store = 1; 27429let BaseOpcode = "V6_vL32b_pi"; 27430let DecoderNamespace = "EXT_mmvec"; 27431let Constraints = "$Rx32 = $Rx32in"; 27432} 27433def V6_vL32Ub_ppu : HInst< 27434(outs HvxVR:$Vd32, IntRegs:$Rx32), 27435(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27436"$Vd32 = vmemu($Rx32++$Mu2)", 27437tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> { 27438let Inst{12-5} = 0b00000111; 27439let Inst{31-21} = 0b00101011000; 27440let hasNewValue = 1; 27441let opNewValue = 0; 27442let addrMode = PostInc; 27443let accessSize = HVXVectorAccess; 27444let isCVLoad = 1; 27445let isCVI = 1; 27446let mayLoad = 1; 27447let isRestrictNoSlot1Store = 1; 27448let DecoderNamespace = "EXT_mmvec"; 27449let Constraints = "$Rx32 = $Rx32in"; 27450} 27451def V6_vL32b_ai : HInst< 27452(outs HvxVR:$Vd32), 27453(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27454"$Vd32 = vmem($Rt32+#$Ii)", 27455tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27456let Inst{7-5} = 0b000; 27457let Inst{12-11} = 0b00; 27458let Inst{31-21} = 0b00101000000; 27459let hasNewValue = 1; 27460let opNewValue = 0; 27461let addrMode = BaseImmOffset; 27462let accessSize = HVXVectorAccess; 27463let isCVLoad = 1; 27464let isCVI = 1; 27465let mayLoad = 1; 27466let isRestrictNoSlot1Store = 1; 27467let BaseOpcode = "V6_vL32b_ai"; 27468let isCVLoadable = 1; 27469let isPredicable = 1; 27470let DecoderNamespace = "EXT_mmvec"; 27471} 27472def V6_vL32b_cur_ai : HInst< 27473(outs HvxVR:$Vd32), 27474(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27475"$Vd32.cur = vmem($Rt32+#$Ii)", 27476tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27477let Inst{7-5} = 0b001; 27478let Inst{12-11} = 0b00; 27479let Inst{31-21} = 0b00101000000; 27480let hasNewValue = 1; 27481let opNewValue = 0; 27482let addrMode = BaseImmOffset; 27483let accessSize = HVXVectorAccess; 27484let isCVLoad = 1; 27485let isCVI = 1; 27486let CVINew = 1; 27487let mayLoad = 1; 27488let isRestrictNoSlot1Store = 1; 27489let BaseOpcode = "V6_vL32b_cur_ai"; 27490let isPredicable = 1; 27491let DecoderNamespace = "EXT_mmvec"; 27492} 27493def V6_vL32b_cur_npred_ai : HInst< 27494(outs HvxVR:$Vd32), 27495(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27496"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27497tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27498let Inst{7-5} = 0b101; 27499let Inst{31-21} = 0b00101000100; 27500let isPredicated = 1; 27501let isPredicatedFalse = 1; 27502let hasNewValue = 1; 27503let opNewValue = 0; 27504let addrMode = BaseImmOffset; 27505let accessSize = HVXVectorAccess; 27506let isCVLoad = 1; 27507let isCVI = 1; 27508let CVINew = 1; 27509let mayLoad = 1; 27510let isRestrictNoSlot1Store = 1; 27511let BaseOpcode = "V6_vL32b_cur_ai"; 27512let DecoderNamespace = "EXT_mmvec"; 27513} 27514def V6_vL32b_cur_npred_pi : HInst< 27515(outs HvxVR:$Vd32, IntRegs:$Rx32), 27516(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27517"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27518tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27519let Inst{7-5} = 0b101; 27520let Inst{13-13} = 0b0; 27521let Inst{31-21} = 0b00101001100; 27522let isPredicated = 1; 27523let isPredicatedFalse = 1; 27524let hasNewValue = 1; 27525let opNewValue = 0; 27526let addrMode = PostInc; 27527let accessSize = HVXVectorAccess; 27528let isCVLoad = 1; 27529let isCVI = 1; 27530let CVINew = 1; 27531let mayLoad = 1; 27532let isRestrictNoSlot1Store = 1; 27533let BaseOpcode = "V6_vL32b_cur_pi"; 27534let DecoderNamespace = "EXT_mmvec"; 27535let Constraints = "$Rx32 = $Rx32in"; 27536} 27537def V6_vL32b_cur_npred_ppu : HInst< 27538(outs HvxVR:$Vd32, IntRegs:$Rx32), 27539(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27540"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27541tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27542let Inst{10-5} = 0b000101; 27543let Inst{31-21} = 0b00101011100; 27544let isPredicated = 1; 27545let isPredicatedFalse = 1; 27546let hasNewValue = 1; 27547let opNewValue = 0; 27548let addrMode = PostInc; 27549let accessSize = HVXVectorAccess; 27550let isCVLoad = 1; 27551let isCVI = 1; 27552let CVINew = 1; 27553let mayLoad = 1; 27554let isRestrictNoSlot1Store = 1; 27555let BaseOpcode = "V6_vL32b_cur_ppu"; 27556let DecoderNamespace = "EXT_mmvec"; 27557let Constraints = "$Rx32 = $Rx32in"; 27558} 27559def V6_vL32b_cur_pi : HInst< 27560(outs HvxVR:$Vd32, IntRegs:$Rx32), 27561(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27562"$Vd32.cur = vmem($Rx32++#$Ii)", 27563tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27564let Inst{7-5} = 0b001; 27565let Inst{13-11} = 0b000; 27566let Inst{31-21} = 0b00101001000; 27567let hasNewValue = 1; 27568let opNewValue = 0; 27569let addrMode = PostInc; 27570let accessSize = HVXVectorAccess; 27571let isCVLoad = 1; 27572let isCVI = 1; 27573let CVINew = 1; 27574let mayLoad = 1; 27575let isRestrictNoSlot1Store = 1; 27576let BaseOpcode = "V6_vL32b_cur_pi"; 27577let isPredicable = 1; 27578let DecoderNamespace = "EXT_mmvec"; 27579let Constraints = "$Rx32 = $Rx32in"; 27580} 27581def V6_vL32b_cur_ppu : HInst< 27582(outs HvxVR:$Vd32, IntRegs:$Rx32), 27583(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27584"$Vd32.cur = vmem($Rx32++$Mu2)", 27585tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27586let Inst{12-5} = 0b00000001; 27587let Inst{31-21} = 0b00101011000; 27588let hasNewValue = 1; 27589let opNewValue = 0; 27590let addrMode = PostInc; 27591let accessSize = HVXVectorAccess; 27592let isCVLoad = 1; 27593let isCVI = 1; 27594let CVINew = 1; 27595let mayLoad = 1; 27596let isRestrictNoSlot1Store = 1; 27597let BaseOpcode = "V6_vL32b_cur_ppu"; 27598let isPredicable = 1; 27599let DecoderNamespace = "EXT_mmvec"; 27600let Constraints = "$Rx32 = $Rx32in"; 27601} 27602def V6_vL32b_cur_pred_ai : HInst< 27603(outs HvxVR:$Vd32), 27604(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27605"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27606tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27607let Inst{7-5} = 0b100; 27608let Inst{31-21} = 0b00101000100; 27609let isPredicated = 1; 27610let hasNewValue = 1; 27611let opNewValue = 0; 27612let addrMode = BaseImmOffset; 27613let accessSize = HVXVectorAccess; 27614let isCVLoad = 1; 27615let isCVI = 1; 27616let CVINew = 1; 27617let mayLoad = 1; 27618let isRestrictNoSlot1Store = 1; 27619let BaseOpcode = "V6_vL32b_cur_ai"; 27620let DecoderNamespace = "EXT_mmvec"; 27621} 27622def V6_vL32b_cur_pred_pi : HInst< 27623(outs HvxVR:$Vd32, IntRegs:$Rx32), 27624(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27625"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27626tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27627let Inst{7-5} = 0b100; 27628let Inst{13-13} = 0b0; 27629let Inst{31-21} = 0b00101001100; 27630let isPredicated = 1; 27631let hasNewValue = 1; 27632let opNewValue = 0; 27633let addrMode = PostInc; 27634let accessSize = HVXVectorAccess; 27635let isCVLoad = 1; 27636let isCVI = 1; 27637let CVINew = 1; 27638let mayLoad = 1; 27639let isRestrictNoSlot1Store = 1; 27640let BaseOpcode = "V6_vL32b_cur_pi"; 27641let DecoderNamespace = "EXT_mmvec"; 27642let Constraints = "$Rx32 = $Rx32in"; 27643} 27644def V6_vL32b_cur_pred_ppu : HInst< 27645(outs HvxVR:$Vd32, IntRegs:$Rx32), 27646(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27647"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27648tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27649let Inst{10-5} = 0b000100; 27650let Inst{31-21} = 0b00101011100; 27651let isPredicated = 1; 27652let hasNewValue = 1; 27653let opNewValue = 0; 27654let addrMode = PostInc; 27655let accessSize = HVXVectorAccess; 27656let isCVLoad = 1; 27657let isCVI = 1; 27658let CVINew = 1; 27659let mayLoad = 1; 27660let isRestrictNoSlot1Store = 1; 27661let BaseOpcode = "V6_vL32b_cur_ppu"; 27662let DecoderNamespace = "EXT_mmvec"; 27663let Constraints = "$Rx32 = $Rx32in"; 27664} 27665def V6_vL32b_npred_ai : HInst< 27666(outs HvxVR:$Vd32), 27667(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27668"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)", 27669tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27670let Inst{7-5} = 0b011; 27671let Inst{31-21} = 0b00101000100; 27672let isPredicated = 1; 27673let isPredicatedFalse = 1; 27674let hasNewValue = 1; 27675let opNewValue = 0; 27676let addrMode = BaseImmOffset; 27677let accessSize = HVXVectorAccess; 27678let isCVLoad = 1; 27679let isCVI = 1; 27680let mayLoad = 1; 27681let isRestrictNoSlot1Store = 1; 27682let BaseOpcode = "V6_vL32b_ai"; 27683let DecoderNamespace = "EXT_mmvec"; 27684} 27685def V6_vL32b_npred_pi : HInst< 27686(outs HvxVR:$Vd32, IntRegs:$Rx32), 27687(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27688"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)", 27689tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27690let Inst{7-5} = 0b011; 27691let Inst{13-13} = 0b0; 27692let Inst{31-21} = 0b00101001100; 27693let isPredicated = 1; 27694let isPredicatedFalse = 1; 27695let hasNewValue = 1; 27696let opNewValue = 0; 27697let addrMode = PostInc; 27698let accessSize = HVXVectorAccess; 27699let isCVLoad = 1; 27700let isCVI = 1; 27701let mayLoad = 1; 27702let isRestrictNoSlot1Store = 1; 27703let BaseOpcode = "V6_vL32b_pi"; 27704let DecoderNamespace = "EXT_mmvec"; 27705let Constraints = "$Rx32 = $Rx32in"; 27706} 27707def V6_vL32b_npred_ppu : HInst< 27708(outs HvxVR:$Vd32, IntRegs:$Rx32), 27709(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27710"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)", 27711tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27712let Inst{10-5} = 0b000011; 27713let Inst{31-21} = 0b00101011100; 27714let isPredicated = 1; 27715let isPredicatedFalse = 1; 27716let hasNewValue = 1; 27717let opNewValue = 0; 27718let addrMode = PostInc; 27719let accessSize = HVXVectorAccess; 27720let isCVLoad = 1; 27721let isCVI = 1; 27722let mayLoad = 1; 27723let isRestrictNoSlot1Store = 1; 27724let BaseOpcode = "V6_vL32b_ppu"; 27725let DecoderNamespace = "EXT_mmvec"; 27726let Constraints = "$Rx32 = $Rx32in"; 27727} 27728def V6_vL32b_nt_ai : HInst< 27729(outs HvxVR:$Vd32), 27730(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27731"$Vd32 = vmem($Rt32+#$Ii):nt", 27732tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27733let Inst{7-5} = 0b000; 27734let Inst{12-11} = 0b00; 27735let Inst{31-21} = 0b00101000010; 27736let hasNewValue = 1; 27737let opNewValue = 0; 27738let addrMode = BaseImmOffset; 27739let accessSize = HVXVectorAccess; 27740let isCVLoad = 1; 27741let isCVI = 1; 27742let mayLoad = 1; 27743let isNonTemporal = 1; 27744let isRestrictNoSlot1Store = 1; 27745let BaseOpcode = "V6_vL32b_nt_ai"; 27746let isCVLoadable = 1; 27747let isPredicable = 1; 27748let DecoderNamespace = "EXT_mmvec"; 27749} 27750def V6_vL32b_nt_cur_ai : HInst< 27751(outs HvxVR:$Vd32), 27752(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27753"$Vd32.cur = vmem($Rt32+#$Ii):nt", 27754tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27755let Inst{7-5} = 0b001; 27756let Inst{12-11} = 0b00; 27757let Inst{31-21} = 0b00101000010; 27758let hasNewValue = 1; 27759let opNewValue = 0; 27760let addrMode = BaseImmOffset; 27761let accessSize = HVXVectorAccess; 27762let isCVLoad = 1; 27763let isCVI = 1; 27764let CVINew = 1; 27765let mayLoad = 1; 27766let isNonTemporal = 1; 27767let isRestrictNoSlot1Store = 1; 27768let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27769let isPredicable = 1; 27770let DecoderNamespace = "EXT_mmvec"; 27771} 27772def V6_vL32b_nt_cur_npred_ai : HInst< 27773(outs HvxVR:$Vd32), 27774(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27775"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27776tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27777let Inst{7-5} = 0b101; 27778let Inst{31-21} = 0b00101000110; 27779let isPredicated = 1; 27780let isPredicatedFalse = 1; 27781let hasNewValue = 1; 27782let opNewValue = 0; 27783let addrMode = BaseImmOffset; 27784let accessSize = HVXVectorAccess; 27785let isCVLoad = 1; 27786let isCVI = 1; 27787let CVINew = 1; 27788let mayLoad = 1; 27789let isNonTemporal = 1; 27790let isRestrictNoSlot1Store = 1; 27791let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27792let DecoderNamespace = "EXT_mmvec"; 27793} 27794def V6_vL32b_nt_cur_npred_pi : HInst< 27795(outs HvxVR:$Vd32, IntRegs:$Rx32), 27796(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27797"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27798tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27799let Inst{7-5} = 0b101; 27800let Inst{13-13} = 0b0; 27801let Inst{31-21} = 0b00101001110; 27802let isPredicated = 1; 27803let isPredicatedFalse = 1; 27804let hasNewValue = 1; 27805let opNewValue = 0; 27806let addrMode = PostInc; 27807let accessSize = HVXVectorAccess; 27808let isCVLoad = 1; 27809let isCVI = 1; 27810let CVINew = 1; 27811let mayLoad = 1; 27812let isNonTemporal = 1; 27813let isRestrictNoSlot1Store = 1; 27814let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27815let DecoderNamespace = "EXT_mmvec"; 27816let Constraints = "$Rx32 = $Rx32in"; 27817} 27818def V6_vL32b_nt_cur_npred_ppu : HInst< 27819(outs HvxVR:$Vd32, IntRegs:$Rx32), 27820(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27821"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27822tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27823let Inst{10-5} = 0b000101; 27824let Inst{31-21} = 0b00101011110; 27825let isPredicated = 1; 27826let isPredicatedFalse = 1; 27827let hasNewValue = 1; 27828let opNewValue = 0; 27829let addrMode = PostInc; 27830let accessSize = HVXVectorAccess; 27831let isCVLoad = 1; 27832let isCVI = 1; 27833let CVINew = 1; 27834let mayLoad = 1; 27835let isNonTemporal = 1; 27836let isRestrictNoSlot1Store = 1; 27837let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27838let DecoderNamespace = "EXT_mmvec"; 27839let Constraints = "$Rx32 = $Rx32in"; 27840} 27841def V6_vL32b_nt_cur_pi : HInst< 27842(outs HvxVR:$Vd32, IntRegs:$Rx32), 27843(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27844"$Vd32.cur = vmem($Rx32++#$Ii):nt", 27845tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27846let Inst{7-5} = 0b001; 27847let Inst{13-11} = 0b000; 27848let Inst{31-21} = 0b00101001010; 27849let hasNewValue = 1; 27850let opNewValue = 0; 27851let addrMode = PostInc; 27852let accessSize = HVXVectorAccess; 27853let isCVLoad = 1; 27854let isCVI = 1; 27855let CVINew = 1; 27856let mayLoad = 1; 27857let isNonTemporal = 1; 27858let isRestrictNoSlot1Store = 1; 27859let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27860let isPredicable = 1; 27861let DecoderNamespace = "EXT_mmvec"; 27862let Constraints = "$Rx32 = $Rx32in"; 27863} 27864def V6_vL32b_nt_cur_ppu : HInst< 27865(outs HvxVR:$Vd32, IntRegs:$Rx32), 27866(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27867"$Vd32.cur = vmem($Rx32++$Mu2):nt", 27868tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27869let Inst{12-5} = 0b00000001; 27870let Inst{31-21} = 0b00101011010; 27871let hasNewValue = 1; 27872let opNewValue = 0; 27873let addrMode = PostInc; 27874let accessSize = HVXVectorAccess; 27875let isCVLoad = 1; 27876let isCVI = 1; 27877let CVINew = 1; 27878let mayLoad = 1; 27879let isNonTemporal = 1; 27880let isRestrictNoSlot1Store = 1; 27881let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27882let isPredicable = 1; 27883let DecoderNamespace = "EXT_mmvec"; 27884let Constraints = "$Rx32 = $Rx32in"; 27885} 27886def V6_vL32b_nt_cur_pred_ai : HInst< 27887(outs HvxVR:$Vd32), 27888(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27889"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27890tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27891let Inst{7-5} = 0b100; 27892let Inst{31-21} = 0b00101000110; 27893let isPredicated = 1; 27894let hasNewValue = 1; 27895let opNewValue = 0; 27896let addrMode = BaseImmOffset; 27897let accessSize = HVXVectorAccess; 27898let isCVLoad = 1; 27899let isCVI = 1; 27900let CVINew = 1; 27901let mayLoad = 1; 27902let isNonTemporal = 1; 27903let isRestrictNoSlot1Store = 1; 27904let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27905let DecoderNamespace = "EXT_mmvec"; 27906} 27907def V6_vL32b_nt_cur_pred_pi : HInst< 27908(outs HvxVR:$Vd32, IntRegs:$Rx32), 27909(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27910"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27911tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27912let Inst{7-5} = 0b100; 27913let Inst{13-13} = 0b0; 27914let Inst{31-21} = 0b00101001110; 27915let isPredicated = 1; 27916let hasNewValue = 1; 27917let opNewValue = 0; 27918let addrMode = PostInc; 27919let accessSize = HVXVectorAccess; 27920let isCVLoad = 1; 27921let isCVI = 1; 27922let CVINew = 1; 27923let mayLoad = 1; 27924let isNonTemporal = 1; 27925let isRestrictNoSlot1Store = 1; 27926let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27927let DecoderNamespace = "EXT_mmvec"; 27928let Constraints = "$Rx32 = $Rx32in"; 27929} 27930def V6_vL32b_nt_cur_pred_ppu : HInst< 27931(outs HvxVR:$Vd32, IntRegs:$Rx32), 27932(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27933"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27934tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27935let Inst{10-5} = 0b000100; 27936let Inst{31-21} = 0b00101011110; 27937let isPredicated = 1; 27938let hasNewValue = 1; 27939let opNewValue = 0; 27940let addrMode = PostInc; 27941let accessSize = HVXVectorAccess; 27942let isCVLoad = 1; 27943let isCVI = 1; 27944let CVINew = 1; 27945let mayLoad = 1; 27946let isNonTemporal = 1; 27947let isRestrictNoSlot1Store = 1; 27948let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27949let DecoderNamespace = "EXT_mmvec"; 27950let Constraints = "$Rx32 = $Rx32in"; 27951} 27952def V6_vL32b_nt_npred_ai : HInst< 27953(outs HvxVR:$Vd32), 27954(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27955"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 27956tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27957let Inst{7-5} = 0b011; 27958let Inst{31-21} = 0b00101000110; 27959let isPredicated = 1; 27960let isPredicatedFalse = 1; 27961let hasNewValue = 1; 27962let opNewValue = 0; 27963let addrMode = BaseImmOffset; 27964let accessSize = HVXVectorAccess; 27965let isCVLoad = 1; 27966let isCVI = 1; 27967let mayLoad = 1; 27968let isNonTemporal = 1; 27969let isRestrictNoSlot1Store = 1; 27970let BaseOpcode = "V6_vL32b_nt_ai"; 27971let DecoderNamespace = "EXT_mmvec"; 27972} 27973def V6_vL32b_nt_npred_pi : HInst< 27974(outs HvxVR:$Vd32, IntRegs:$Rx32), 27975(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27976"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 27977tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27978let Inst{7-5} = 0b011; 27979let Inst{13-13} = 0b0; 27980let Inst{31-21} = 0b00101001110; 27981let isPredicated = 1; 27982let isPredicatedFalse = 1; 27983let hasNewValue = 1; 27984let opNewValue = 0; 27985let addrMode = PostInc; 27986let accessSize = HVXVectorAccess; 27987let isCVLoad = 1; 27988let isCVI = 1; 27989let mayLoad = 1; 27990let isNonTemporal = 1; 27991let isRestrictNoSlot1Store = 1; 27992let BaseOpcode = "V6_vL32b_nt_pi"; 27993let DecoderNamespace = "EXT_mmvec"; 27994let Constraints = "$Rx32 = $Rx32in"; 27995} 27996def V6_vL32b_nt_npred_ppu : HInst< 27997(outs HvxVR:$Vd32, IntRegs:$Rx32), 27998(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27999"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 28000tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28001let Inst{10-5} = 0b000011; 28002let Inst{31-21} = 0b00101011110; 28003let isPredicated = 1; 28004let isPredicatedFalse = 1; 28005let hasNewValue = 1; 28006let opNewValue = 0; 28007let addrMode = PostInc; 28008let accessSize = HVXVectorAccess; 28009let isCVLoad = 1; 28010let isCVI = 1; 28011let mayLoad = 1; 28012let isNonTemporal = 1; 28013let isRestrictNoSlot1Store = 1; 28014let BaseOpcode = "V6_vL32b_nt_ppu"; 28015let DecoderNamespace = "EXT_mmvec"; 28016let Constraints = "$Rx32 = $Rx32in"; 28017} 28018def V6_vL32b_nt_pi : HInst< 28019(outs HvxVR:$Vd32, IntRegs:$Rx32), 28020(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28021"$Vd32 = vmem($Rx32++#$Ii):nt", 28022tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28023let Inst{7-5} = 0b000; 28024let Inst{13-11} = 0b000; 28025let Inst{31-21} = 0b00101001010; 28026let hasNewValue = 1; 28027let opNewValue = 0; 28028let addrMode = PostInc; 28029let accessSize = HVXVectorAccess; 28030let isCVLoad = 1; 28031let isCVI = 1; 28032let mayLoad = 1; 28033let isNonTemporal = 1; 28034let isRestrictNoSlot1Store = 1; 28035let BaseOpcode = "V6_vL32b_nt_pi"; 28036let isCVLoadable = 1; 28037let isPredicable = 1; 28038let DecoderNamespace = "EXT_mmvec"; 28039let Constraints = "$Rx32 = $Rx32in"; 28040} 28041def V6_vL32b_nt_ppu : HInst< 28042(outs HvxVR:$Vd32, IntRegs:$Rx32), 28043(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28044"$Vd32 = vmem($Rx32++$Mu2):nt", 28045tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28046let Inst{12-5} = 0b00000000; 28047let Inst{31-21} = 0b00101011010; 28048let hasNewValue = 1; 28049let opNewValue = 0; 28050let addrMode = PostInc; 28051let accessSize = HVXVectorAccess; 28052let isCVLoad = 1; 28053let isCVI = 1; 28054let mayLoad = 1; 28055let isNonTemporal = 1; 28056let isRestrictNoSlot1Store = 1; 28057let BaseOpcode = "V6_vL32b_nt_ppu"; 28058let isCVLoadable = 1; 28059let isPredicable = 1; 28060let DecoderNamespace = "EXT_mmvec"; 28061let Constraints = "$Rx32 = $Rx32in"; 28062} 28063def V6_vL32b_nt_pred_ai : HInst< 28064(outs HvxVR:$Vd32), 28065(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28066"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 28067tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28068let Inst{7-5} = 0b010; 28069let Inst{31-21} = 0b00101000110; 28070let isPredicated = 1; 28071let hasNewValue = 1; 28072let opNewValue = 0; 28073let addrMode = BaseImmOffset; 28074let accessSize = HVXVectorAccess; 28075let isCVLoad = 1; 28076let isCVI = 1; 28077let mayLoad = 1; 28078let isNonTemporal = 1; 28079let isRestrictNoSlot1Store = 1; 28080let BaseOpcode = "V6_vL32b_nt_ai"; 28081let DecoderNamespace = "EXT_mmvec"; 28082} 28083def V6_vL32b_nt_pred_pi : HInst< 28084(outs HvxVR:$Vd32, IntRegs:$Rx32), 28085(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28086"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 28087tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28088let Inst{7-5} = 0b010; 28089let Inst{13-13} = 0b0; 28090let Inst{31-21} = 0b00101001110; 28091let isPredicated = 1; 28092let hasNewValue = 1; 28093let opNewValue = 0; 28094let addrMode = PostInc; 28095let accessSize = HVXVectorAccess; 28096let isCVLoad = 1; 28097let isCVI = 1; 28098let mayLoad = 1; 28099let isNonTemporal = 1; 28100let isRestrictNoSlot1Store = 1; 28101let BaseOpcode = "V6_vL32b_nt_pi"; 28102let DecoderNamespace = "EXT_mmvec"; 28103let Constraints = "$Rx32 = $Rx32in"; 28104} 28105def V6_vL32b_nt_pred_ppu : HInst< 28106(outs HvxVR:$Vd32, IntRegs:$Rx32), 28107(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28108"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 28109tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28110let Inst{10-5} = 0b000010; 28111let Inst{31-21} = 0b00101011110; 28112let isPredicated = 1; 28113let hasNewValue = 1; 28114let opNewValue = 0; 28115let addrMode = PostInc; 28116let accessSize = HVXVectorAccess; 28117let isCVLoad = 1; 28118let isCVI = 1; 28119let mayLoad = 1; 28120let isNonTemporal = 1; 28121let isRestrictNoSlot1Store = 1; 28122let BaseOpcode = "V6_vL32b_nt_ppu"; 28123let DecoderNamespace = "EXT_mmvec"; 28124let Constraints = "$Rx32 = $Rx32in"; 28125} 28126def V6_vL32b_nt_tmp_ai : HInst< 28127(outs HvxVR:$Vd32), 28128(ins IntRegs:$Rt32, s4_0Imm:$Ii), 28129"$Vd32.tmp = vmem($Rt32+#$Ii):nt", 28130tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 28131let Inst{7-5} = 0b010; 28132let Inst{12-11} = 0b00; 28133let Inst{31-21} = 0b00101000010; 28134let hasNewValue = 1; 28135let opNewValue = 0; 28136let addrMode = BaseImmOffset; 28137let accessSize = HVXVectorAccess; 28138let isCVLoad = 1; 28139let isCVI = 1; 28140let hasTmpDst = 1; 28141let mayLoad = 1; 28142let isNonTemporal = 1; 28143let isRestrictNoSlot1Store = 1; 28144let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28145let isPredicable = 1; 28146let DecoderNamespace = "EXT_mmvec"; 28147} 28148def V6_vL32b_nt_tmp_npred_ai : HInst< 28149(outs HvxVR:$Vd32), 28150(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28151"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 28152tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28153let Inst{7-5} = 0b111; 28154let Inst{31-21} = 0b00101000110; 28155let isPredicated = 1; 28156let isPredicatedFalse = 1; 28157let hasNewValue = 1; 28158let opNewValue = 0; 28159let addrMode = BaseImmOffset; 28160let accessSize = HVXVectorAccess; 28161let isCVLoad = 1; 28162let isCVI = 1; 28163let hasTmpDst = 1; 28164let mayLoad = 1; 28165let isNonTemporal = 1; 28166let isRestrictNoSlot1Store = 1; 28167let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28168let DecoderNamespace = "EXT_mmvec"; 28169} 28170def V6_vL32b_nt_tmp_npred_pi : HInst< 28171(outs HvxVR:$Vd32, IntRegs:$Rx32), 28172(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28173"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28174tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28175let Inst{7-5} = 0b111; 28176let Inst{13-13} = 0b0; 28177let Inst{31-21} = 0b00101001110; 28178let isPredicated = 1; 28179let isPredicatedFalse = 1; 28180let hasNewValue = 1; 28181let opNewValue = 0; 28182let addrMode = PostInc; 28183let accessSize = HVXVectorAccess; 28184let isCVLoad = 1; 28185let isCVI = 1; 28186let hasTmpDst = 1; 28187let mayLoad = 1; 28188let isNonTemporal = 1; 28189let isRestrictNoSlot1Store = 1; 28190let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28191let DecoderNamespace = "EXT_mmvec"; 28192let Constraints = "$Rx32 = $Rx32in"; 28193} 28194def V6_vL32b_nt_tmp_npred_ppu : HInst< 28195(outs HvxVR:$Vd32, IntRegs:$Rx32), 28196(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28197"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28198tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28199let Inst{10-5} = 0b000111; 28200let Inst{31-21} = 0b00101011110; 28201let isPredicated = 1; 28202let isPredicatedFalse = 1; 28203let hasNewValue = 1; 28204let opNewValue = 0; 28205let addrMode = PostInc; 28206let accessSize = HVXVectorAccess; 28207let isCVLoad = 1; 28208let isCVI = 1; 28209let hasTmpDst = 1; 28210let mayLoad = 1; 28211let isNonTemporal = 1; 28212let isRestrictNoSlot1Store = 1; 28213let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28214let DecoderNamespace = "EXT_mmvec"; 28215let Constraints = "$Rx32 = $Rx32in"; 28216} 28217def V6_vL32b_nt_tmp_pi : HInst< 28218(outs HvxVR:$Vd32, IntRegs:$Rx32), 28219(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28220"$Vd32.tmp = vmem($Rx32++#$Ii):nt", 28221tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28222let Inst{7-5} = 0b010; 28223let Inst{13-11} = 0b000; 28224let Inst{31-21} = 0b00101001010; 28225let hasNewValue = 1; 28226let opNewValue = 0; 28227let addrMode = PostInc; 28228let accessSize = HVXVectorAccess; 28229let isCVLoad = 1; 28230let isCVI = 1; 28231let hasTmpDst = 1; 28232let mayLoad = 1; 28233let isNonTemporal = 1; 28234let isRestrictNoSlot1Store = 1; 28235let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28236let isPredicable = 1; 28237let DecoderNamespace = "EXT_mmvec"; 28238let Constraints = "$Rx32 = $Rx32in"; 28239} 28240def V6_vL32b_nt_tmp_ppu : HInst< 28241(outs HvxVR:$Vd32, IntRegs:$Rx32), 28242(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28243"$Vd32.tmp = vmem($Rx32++$Mu2):nt", 28244tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28245let Inst{12-5} = 0b00000010; 28246let Inst{31-21} = 0b00101011010; 28247let hasNewValue = 1; 28248let opNewValue = 0; 28249let addrMode = PostInc; 28250let accessSize = HVXVectorAccess; 28251let isCVLoad = 1; 28252let isCVI = 1; 28253let hasTmpDst = 1; 28254let mayLoad = 1; 28255let isNonTemporal = 1; 28256let isRestrictNoSlot1Store = 1; 28257let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28258let isPredicable = 1; 28259let DecoderNamespace = "EXT_mmvec"; 28260let Constraints = "$Rx32 = $Rx32in"; 28261} 28262def V6_vL32b_nt_tmp_pred_ai : HInst< 28263(outs HvxVR:$Vd32), 28264(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28265"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 28266tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28267let Inst{7-5} = 0b110; 28268let Inst{31-21} = 0b00101000110; 28269let isPredicated = 1; 28270let hasNewValue = 1; 28271let opNewValue = 0; 28272let addrMode = BaseImmOffset; 28273let accessSize = HVXVectorAccess; 28274let isCVLoad = 1; 28275let isCVI = 1; 28276let hasTmpDst = 1; 28277let mayLoad = 1; 28278let isNonTemporal = 1; 28279let isRestrictNoSlot1Store = 1; 28280let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28281let DecoderNamespace = "EXT_mmvec"; 28282} 28283def V6_vL32b_nt_tmp_pred_pi : HInst< 28284(outs HvxVR:$Vd32, IntRegs:$Rx32), 28285(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28286"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28287tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28288let Inst{7-5} = 0b110; 28289let Inst{13-13} = 0b0; 28290let Inst{31-21} = 0b00101001110; 28291let isPredicated = 1; 28292let hasNewValue = 1; 28293let opNewValue = 0; 28294let addrMode = PostInc; 28295let accessSize = HVXVectorAccess; 28296let isCVLoad = 1; 28297let isCVI = 1; 28298let hasTmpDst = 1; 28299let mayLoad = 1; 28300let isNonTemporal = 1; 28301let isRestrictNoSlot1Store = 1; 28302let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28303let DecoderNamespace = "EXT_mmvec"; 28304let Constraints = "$Rx32 = $Rx32in"; 28305} 28306def V6_vL32b_nt_tmp_pred_ppu : HInst< 28307(outs HvxVR:$Vd32, IntRegs:$Rx32), 28308(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28309"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28310tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28311let Inst{10-5} = 0b000110; 28312let Inst{31-21} = 0b00101011110; 28313let isPredicated = 1; 28314let hasNewValue = 1; 28315let opNewValue = 0; 28316let addrMode = PostInc; 28317let accessSize = HVXVectorAccess; 28318let isCVLoad = 1; 28319let isCVI = 1; 28320let hasTmpDst = 1; 28321let mayLoad = 1; 28322let isNonTemporal = 1; 28323let isRestrictNoSlot1Store = 1; 28324let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28325let DecoderNamespace = "EXT_mmvec"; 28326let Constraints = "$Rx32 = $Rx32in"; 28327} 28328def V6_vL32b_pi : HInst< 28329(outs HvxVR:$Vd32, IntRegs:$Rx32), 28330(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28331"$Vd32 = vmem($Rx32++#$Ii)", 28332tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28333let Inst{7-5} = 0b000; 28334let Inst{13-11} = 0b000; 28335let Inst{31-21} = 0b00101001000; 28336let hasNewValue = 1; 28337let opNewValue = 0; 28338let addrMode = PostInc; 28339let accessSize = HVXVectorAccess; 28340let isCVLoad = 1; 28341let isCVI = 1; 28342let mayLoad = 1; 28343let isRestrictNoSlot1Store = 1; 28344let BaseOpcode = "V6_vL32b_pi"; 28345let isCVLoadable = 1; 28346let isPredicable = 1; 28347let DecoderNamespace = "EXT_mmvec"; 28348let Constraints = "$Rx32 = $Rx32in"; 28349} 28350def V6_vL32b_ppu : HInst< 28351(outs HvxVR:$Vd32, IntRegs:$Rx32), 28352(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28353"$Vd32 = vmem($Rx32++$Mu2)", 28354tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28355let Inst{12-5} = 0b00000000; 28356let Inst{31-21} = 0b00101011000; 28357let hasNewValue = 1; 28358let opNewValue = 0; 28359let addrMode = PostInc; 28360let accessSize = HVXVectorAccess; 28361let isCVLoad = 1; 28362let isCVI = 1; 28363let mayLoad = 1; 28364let isRestrictNoSlot1Store = 1; 28365let BaseOpcode = "V6_vL32b_ppu"; 28366let isCVLoadable = 1; 28367let isPredicable = 1; 28368let DecoderNamespace = "EXT_mmvec"; 28369let Constraints = "$Rx32 = $Rx32in"; 28370} 28371def V6_vL32b_pred_ai : HInst< 28372(outs HvxVR:$Vd32), 28373(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28374"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)", 28375tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28376let Inst{7-5} = 0b010; 28377let Inst{31-21} = 0b00101000100; 28378let isPredicated = 1; 28379let hasNewValue = 1; 28380let opNewValue = 0; 28381let addrMode = BaseImmOffset; 28382let accessSize = HVXVectorAccess; 28383let isCVLoad = 1; 28384let isCVI = 1; 28385let mayLoad = 1; 28386let isRestrictNoSlot1Store = 1; 28387let BaseOpcode = "V6_vL32b_ai"; 28388let DecoderNamespace = "EXT_mmvec"; 28389} 28390def V6_vL32b_pred_pi : HInst< 28391(outs HvxVR:$Vd32, IntRegs:$Rx32), 28392(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28393"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)", 28394tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28395let Inst{7-5} = 0b010; 28396let Inst{13-13} = 0b0; 28397let Inst{31-21} = 0b00101001100; 28398let isPredicated = 1; 28399let hasNewValue = 1; 28400let opNewValue = 0; 28401let addrMode = PostInc; 28402let accessSize = HVXVectorAccess; 28403let isCVLoad = 1; 28404let isCVI = 1; 28405let mayLoad = 1; 28406let isRestrictNoSlot1Store = 1; 28407let BaseOpcode = "V6_vL32b_pi"; 28408let DecoderNamespace = "EXT_mmvec"; 28409let Constraints = "$Rx32 = $Rx32in"; 28410} 28411def V6_vL32b_pred_ppu : HInst< 28412(outs HvxVR:$Vd32, IntRegs:$Rx32), 28413(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28414"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)", 28415tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28416let Inst{10-5} = 0b000010; 28417let Inst{31-21} = 0b00101011100; 28418let isPredicated = 1; 28419let hasNewValue = 1; 28420let opNewValue = 0; 28421let addrMode = PostInc; 28422let accessSize = HVXVectorAccess; 28423let isCVLoad = 1; 28424let isCVI = 1; 28425let mayLoad = 1; 28426let isRestrictNoSlot1Store = 1; 28427let BaseOpcode = "V6_vL32b_ppu"; 28428let DecoderNamespace = "EXT_mmvec"; 28429let Constraints = "$Rx32 = $Rx32in"; 28430} 28431def V6_vL32b_tmp_ai : HInst< 28432(outs HvxVR:$Vd32), 28433(ins IntRegs:$Rt32, s4_0Imm:$Ii), 28434"$Vd32.tmp = vmem($Rt32+#$Ii)", 28435tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 28436let Inst{7-5} = 0b010; 28437let Inst{12-11} = 0b00; 28438let Inst{31-21} = 0b00101000000; 28439let hasNewValue = 1; 28440let opNewValue = 0; 28441let addrMode = BaseImmOffset; 28442let accessSize = HVXVectorAccess; 28443let isCVLoad = 1; 28444let isCVI = 1; 28445let hasTmpDst = 1; 28446let mayLoad = 1; 28447let isRestrictNoSlot1Store = 1; 28448let BaseOpcode = "V6_vL32b_tmp_ai"; 28449let isPredicable = 1; 28450let DecoderNamespace = "EXT_mmvec"; 28451} 28452def V6_vL32b_tmp_npred_ai : HInst< 28453(outs HvxVR:$Vd32), 28454(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28455"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28456tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28457let Inst{7-5} = 0b111; 28458let Inst{31-21} = 0b00101000100; 28459let isPredicated = 1; 28460let isPredicatedFalse = 1; 28461let hasNewValue = 1; 28462let opNewValue = 0; 28463let addrMode = BaseImmOffset; 28464let accessSize = HVXVectorAccess; 28465let isCVLoad = 1; 28466let isCVI = 1; 28467let hasTmpDst = 1; 28468let mayLoad = 1; 28469let isRestrictNoSlot1Store = 1; 28470let BaseOpcode = "V6_vL32b_tmp_ai"; 28471let DecoderNamespace = "EXT_mmvec"; 28472} 28473def V6_vL32b_tmp_npred_pi : HInst< 28474(outs HvxVR:$Vd32, IntRegs:$Rx32), 28475(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28476"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28477tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28478let Inst{7-5} = 0b111; 28479let Inst{13-13} = 0b0; 28480let Inst{31-21} = 0b00101001100; 28481let isPredicated = 1; 28482let isPredicatedFalse = 1; 28483let hasNewValue = 1; 28484let opNewValue = 0; 28485let addrMode = PostInc; 28486let accessSize = HVXVectorAccess; 28487let isCVLoad = 1; 28488let isCVI = 1; 28489let hasTmpDst = 1; 28490let mayLoad = 1; 28491let isRestrictNoSlot1Store = 1; 28492let BaseOpcode = "V6_vL32b_tmp_pi"; 28493let DecoderNamespace = "EXT_mmvec"; 28494let Constraints = "$Rx32 = $Rx32in"; 28495} 28496def V6_vL32b_tmp_npred_ppu : HInst< 28497(outs HvxVR:$Vd32, IntRegs:$Rx32), 28498(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28499"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28500tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28501let Inst{10-5} = 0b000111; 28502let Inst{31-21} = 0b00101011100; 28503let isPredicated = 1; 28504let isPredicatedFalse = 1; 28505let hasNewValue = 1; 28506let opNewValue = 0; 28507let addrMode = PostInc; 28508let accessSize = HVXVectorAccess; 28509let isCVLoad = 1; 28510let isCVI = 1; 28511let hasTmpDst = 1; 28512let mayLoad = 1; 28513let isRestrictNoSlot1Store = 1; 28514let BaseOpcode = "V6_vL32b_tmp_ppu"; 28515let DecoderNamespace = "EXT_mmvec"; 28516let Constraints = "$Rx32 = $Rx32in"; 28517} 28518def V6_vL32b_tmp_pi : HInst< 28519(outs HvxVR:$Vd32, IntRegs:$Rx32), 28520(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28521"$Vd32.tmp = vmem($Rx32++#$Ii)", 28522tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28523let Inst{7-5} = 0b010; 28524let Inst{13-11} = 0b000; 28525let Inst{31-21} = 0b00101001000; 28526let hasNewValue = 1; 28527let opNewValue = 0; 28528let addrMode = PostInc; 28529let accessSize = HVXVectorAccess; 28530let isCVLoad = 1; 28531let isCVI = 1; 28532let hasTmpDst = 1; 28533let mayLoad = 1; 28534let isRestrictNoSlot1Store = 1; 28535let BaseOpcode = "V6_vL32b_tmp_pi"; 28536let isPredicable = 1; 28537let DecoderNamespace = "EXT_mmvec"; 28538let Constraints = "$Rx32 = $Rx32in"; 28539} 28540def V6_vL32b_tmp_ppu : HInst< 28541(outs HvxVR:$Vd32, IntRegs:$Rx32), 28542(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28543"$Vd32.tmp = vmem($Rx32++$Mu2)", 28544tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28545let Inst{12-5} = 0b00000010; 28546let Inst{31-21} = 0b00101011000; 28547let hasNewValue = 1; 28548let opNewValue = 0; 28549let addrMode = PostInc; 28550let accessSize = HVXVectorAccess; 28551let isCVLoad = 1; 28552let isCVI = 1; 28553let hasTmpDst = 1; 28554let mayLoad = 1; 28555let isRestrictNoSlot1Store = 1; 28556let BaseOpcode = "V6_vL32b_tmp_ppu"; 28557let isPredicable = 1; 28558let DecoderNamespace = "EXT_mmvec"; 28559let Constraints = "$Rx32 = $Rx32in"; 28560} 28561def V6_vL32b_tmp_pred_ai : HInst< 28562(outs HvxVR:$Vd32), 28563(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28564"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28565tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28566let Inst{7-5} = 0b110; 28567let Inst{31-21} = 0b00101000100; 28568let isPredicated = 1; 28569let hasNewValue = 1; 28570let opNewValue = 0; 28571let addrMode = BaseImmOffset; 28572let accessSize = HVXVectorAccess; 28573let isCVLoad = 1; 28574let isCVI = 1; 28575let hasTmpDst = 1; 28576let mayLoad = 1; 28577let isRestrictNoSlot1Store = 1; 28578let BaseOpcode = "V6_vL32b_tmp_ai"; 28579let DecoderNamespace = "EXT_mmvec"; 28580} 28581def V6_vL32b_tmp_pred_pi : HInst< 28582(outs HvxVR:$Vd32, IntRegs:$Rx32), 28583(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28584"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28585tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28586let Inst{7-5} = 0b110; 28587let Inst{13-13} = 0b0; 28588let Inst{31-21} = 0b00101001100; 28589let isPredicated = 1; 28590let hasNewValue = 1; 28591let opNewValue = 0; 28592let addrMode = PostInc; 28593let accessSize = HVXVectorAccess; 28594let isCVLoad = 1; 28595let isCVI = 1; 28596let hasTmpDst = 1; 28597let mayLoad = 1; 28598let isRestrictNoSlot1Store = 1; 28599let BaseOpcode = "V6_vL32b_tmp_pi"; 28600let DecoderNamespace = "EXT_mmvec"; 28601let Constraints = "$Rx32 = $Rx32in"; 28602} 28603def V6_vL32b_tmp_pred_ppu : HInst< 28604(outs HvxVR:$Vd32, IntRegs:$Rx32), 28605(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28606"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28607tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28608let Inst{10-5} = 0b000110; 28609let Inst{31-21} = 0b00101011100; 28610let isPredicated = 1; 28611let hasNewValue = 1; 28612let opNewValue = 0; 28613let addrMode = PostInc; 28614let accessSize = HVXVectorAccess; 28615let isCVLoad = 1; 28616let isCVI = 1; 28617let hasTmpDst = 1; 28618let mayLoad = 1; 28619let isRestrictNoSlot1Store = 1; 28620let BaseOpcode = "V6_vL32b_tmp_ppu"; 28621let DecoderNamespace = "EXT_mmvec"; 28622let Constraints = "$Rx32 = $Rx32in"; 28623} 28624def V6_vS32Ub_ai : HInst< 28625(outs), 28626(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28627"vmemu($Rt32+#$Ii) = $Vs32", 28628tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28629let Inst{7-5} = 0b111; 28630let Inst{12-11} = 0b00; 28631let Inst{31-21} = 0b00101000001; 28632let addrMode = BaseImmOffset; 28633let accessSize = HVXVectorAccess; 28634let isCVI = 1; 28635let mayStore = 1; 28636let BaseOpcode = "V6_vS32Ub_ai"; 28637let isPredicable = 1; 28638let DecoderNamespace = "EXT_mmvec"; 28639} 28640def V6_vS32Ub_npred_ai : HInst< 28641(outs), 28642(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28643"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28644tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28645let Inst{7-5} = 0b111; 28646let Inst{31-21} = 0b00101000101; 28647let isPredicated = 1; 28648let isPredicatedFalse = 1; 28649let addrMode = BaseImmOffset; 28650let accessSize = HVXVectorAccess; 28651let isCVI = 1; 28652let mayStore = 1; 28653let BaseOpcode = "V6_vS32Ub_ai"; 28654let DecoderNamespace = "EXT_mmvec"; 28655} 28656def V6_vS32Ub_npred_pi : HInst< 28657(outs IntRegs:$Rx32), 28658(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28659"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28660tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28661let Inst{7-5} = 0b111; 28662let Inst{13-13} = 0b0; 28663let Inst{31-21} = 0b00101001101; 28664let isPredicated = 1; 28665let isPredicatedFalse = 1; 28666let addrMode = PostInc; 28667let accessSize = HVXVectorAccess; 28668let isCVI = 1; 28669let mayStore = 1; 28670let BaseOpcode = "V6_vS32Ub_pi"; 28671let DecoderNamespace = "EXT_mmvec"; 28672let Constraints = "$Rx32 = $Rx32in"; 28673} 28674def V6_vS32Ub_npred_ppu : HInst< 28675(outs IntRegs:$Rx32), 28676(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28677"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28678tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28679let Inst{10-5} = 0b000111; 28680let Inst{31-21} = 0b00101011101; 28681let isPredicated = 1; 28682let isPredicatedFalse = 1; 28683let addrMode = PostInc; 28684let accessSize = HVXVectorAccess; 28685let isCVI = 1; 28686let mayStore = 1; 28687let BaseOpcode = "V6_vS32Ub_ppu"; 28688let DecoderNamespace = "EXT_mmvec"; 28689let Constraints = "$Rx32 = $Rx32in"; 28690} 28691def V6_vS32Ub_pi : HInst< 28692(outs IntRegs:$Rx32), 28693(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28694"vmemu($Rx32++#$Ii) = $Vs32", 28695tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 28696let Inst{7-5} = 0b111; 28697let Inst{13-11} = 0b000; 28698let Inst{31-21} = 0b00101001001; 28699let addrMode = PostInc; 28700let accessSize = HVXVectorAccess; 28701let isCVI = 1; 28702let mayStore = 1; 28703let BaseOpcode = "V6_vS32Ub_pi"; 28704let isPredicable = 1; 28705let DecoderNamespace = "EXT_mmvec"; 28706let Constraints = "$Rx32 = $Rx32in"; 28707} 28708def V6_vS32Ub_ppu : HInst< 28709(outs IntRegs:$Rx32), 28710(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28711"vmemu($Rx32++$Mu2) = $Vs32", 28712tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 28713let Inst{12-5} = 0b00000111; 28714let Inst{31-21} = 0b00101011001; 28715let addrMode = PostInc; 28716let accessSize = HVXVectorAccess; 28717let isCVI = 1; 28718let mayStore = 1; 28719let BaseOpcode = "V6_vS32Ub_ppu"; 28720let isPredicable = 1; 28721let DecoderNamespace = "EXT_mmvec"; 28722let Constraints = "$Rx32 = $Rx32in"; 28723} 28724def V6_vS32Ub_pred_ai : HInst< 28725(outs), 28726(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28727"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28728tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28729let Inst{7-5} = 0b110; 28730let Inst{31-21} = 0b00101000101; 28731let isPredicated = 1; 28732let addrMode = BaseImmOffset; 28733let accessSize = HVXVectorAccess; 28734let isCVI = 1; 28735let mayStore = 1; 28736let BaseOpcode = "V6_vS32Ub_ai"; 28737let DecoderNamespace = "EXT_mmvec"; 28738} 28739def V6_vS32Ub_pred_pi : HInst< 28740(outs IntRegs:$Rx32), 28741(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28742"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28743tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28744let Inst{7-5} = 0b110; 28745let Inst{13-13} = 0b0; 28746let Inst{31-21} = 0b00101001101; 28747let isPredicated = 1; 28748let addrMode = PostInc; 28749let accessSize = HVXVectorAccess; 28750let isCVI = 1; 28751let mayStore = 1; 28752let BaseOpcode = "V6_vS32Ub_pi"; 28753let DecoderNamespace = "EXT_mmvec"; 28754let Constraints = "$Rx32 = $Rx32in"; 28755} 28756def V6_vS32Ub_pred_ppu : HInst< 28757(outs IntRegs:$Rx32), 28758(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28759"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28760tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28761let Inst{10-5} = 0b000110; 28762let Inst{31-21} = 0b00101011101; 28763let isPredicated = 1; 28764let addrMode = PostInc; 28765let accessSize = HVXVectorAccess; 28766let isCVI = 1; 28767let mayStore = 1; 28768let BaseOpcode = "V6_vS32Ub_ppu"; 28769let DecoderNamespace = "EXT_mmvec"; 28770let Constraints = "$Rx32 = $Rx32in"; 28771} 28772def V6_vS32b_ai : HInst< 28773(outs), 28774(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28775"vmem($Rt32+#$Ii) = $Vs32", 28776tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28777let Inst{7-5} = 0b000; 28778let Inst{12-11} = 0b00; 28779let Inst{31-21} = 0b00101000001; 28780let addrMode = BaseImmOffset; 28781let accessSize = HVXVectorAccess; 28782let isCVI = 1; 28783let mayStore = 1; 28784let BaseOpcode = "V6_vS32b_ai"; 28785let isNVStorable = 1; 28786let isPredicable = 1; 28787let DecoderNamespace = "EXT_mmvec"; 28788} 28789def V6_vS32b_new_ai : HInst< 28790(outs), 28791(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28792"vmem($Rt32+#$Ii) = $Os8.new", 28793tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 28794let Inst{7-3} = 0b00100; 28795let Inst{12-11} = 0b00; 28796let Inst{31-21} = 0b00101000001; 28797let addrMode = BaseImmOffset; 28798let accessSize = HVXVectorAccess; 28799let isNVStore = 1; 28800let isCVI = 1; 28801let CVINew = 1; 28802let isNewValue = 1; 28803let mayStore = 1; 28804let BaseOpcode = "V6_vS32b_ai"; 28805let isPredicable = 1; 28806let DecoderNamespace = "EXT_mmvec"; 28807let opNewValue = 2; 28808} 28809def V6_vS32b_new_npred_ai : HInst< 28810(outs), 28811(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28812"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28813tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28814let Inst{7-3} = 0b01101; 28815let Inst{31-21} = 0b00101000101; 28816let isPredicated = 1; 28817let isPredicatedFalse = 1; 28818let addrMode = BaseImmOffset; 28819let accessSize = HVXVectorAccess; 28820let isNVStore = 1; 28821let isCVI = 1; 28822let CVINew = 1; 28823let isNewValue = 1; 28824let mayStore = 1; 28825let BaseOpcode = "V6_vS32b_ai"; 28826let DecoderNamespace = "EXT_mmvec"; 28827let opNewValue = 3; 28828} 28829def V6_vS32b_new_npred_pi : HInst< 28830(outs IntRegs:$Rx32), 28831(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28832"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28833tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28834let Inst{7-3} = 0b01101; 28835let Inst{13-13} = 0b0; 28836let Inst{31-21} = 0b00101001101; 28837let isPredicated = 1; 28838let isPredicatedFalse = 1; 28839let addrMode = PostInc; 28840let accessSize = HVXVectorAccess; 28841let isNVStore = 1; 28842let isCVI = 1; 28843let CVINew = 1; 28844let isNewValue = 1; 28845let mayStore = 1; 28846let BaseOpcode = "V6_vS32b_pi"; 28847let DecoderNamespace = "EXT_mmvec"; 28848let opNewValue = 4; 28849let Constraints = "$Rx32 = $Rx32in"; 28850} 28851def V6_vS32b_new_npred_ppu : HInst< 28852(outs IntRegs:$Rx32), 28853(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28854"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28855tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28856let Inst{10-3} = 0b00001101; 28857let Inst{31-21} = 0b00101011101; 28858let isPredicated = 1; 28859let isPredicatedFalse = 1; 28860let addrMode = PostInc; 28861let accessSize = HVXVectorAccess; 28862let isNVStore = 1; 28863let isCVI = 1; 28864let CVINew = 1; 28865let isNewValue = 1; 28866let mayStore = 1; 28867let BaseOpcode = "V6_vS32b_ppu"; 28868let DecoderNamespace = "EXT_mmvec"; 28869let opNewValue = 4; 28870let Constraints = "$Rx32 = $Rx32in"; 28871} 28872def V6_vS32b_new_pi : HInst< 28873(outs IntRegs:$Rx32), 28874(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28875"vmem($Rx32++#$Ii) = $Os8.new", 28876tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 28877let Inst{7-3} = 0b00100; 28878let Inst{13-11} = 0b000; 28879let Inst{31-21} = 0b00101001001; 28880let addrMode = PostInc; 28881let accessSize = HVXVectorAccess; 28882let isNVStore = 1; 28883let isCVI = 1; 28884let CVINew = 1; 28885let isNewValue = 1; 28886let mayStore = 1; 28887let BaseOpcode = "V6_vS32b_pi"; 28888let isPredicable = 1; 28889let DecoderNamespace = "EXT_mmvec"; 28890let opNewValue = 3; 28891let Constraints = "$Rx32 = $Rx32in"; 28892} 28893def V6_vS32b_new_ppu : HInst< 28894(outs IntRegs:$Rx32), 28895(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28896"vmem($Rx32++$Mu2) = $Os8.new", 28897tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 28898let Inst{12-3} = 0b0000000100; 28899let Inst{31-21} = 0b00101011001; 28900let addrMode = PostInc; 28901let accessSize = HVXVectorAccess; 28902let isNVStore = 1; 28903let isCVI = 1; 28904let CVINew = 1; 28905let isNewValue = 1; 28906let mayStore = 1; 28907let BaseOpcode = "V6_vS32b_ppu"; 28908let isPredicable = 1; 28909let DecoderNamespace = "EXT_mmvec"; 28910let opNewValue = 3; 28911let Constraints = "$Rx32 = $Rx32in"; 28912} 28913def V6_vS32b_new_pred_ai : HInst< 28914(outs), 28915(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28916"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28917tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28918let Inst{7-3} = 0b01000; 28919let Inst{31-21} = 0b00101000101; 28920let isPredicated = 1; 28921let addrMode = BaseImmOffset; 28922let accessSize = HVXVectorAccess; 28923let isNVStore = 1; 28924let isCVI = 1; 28925let CVINew = 1; 28926let isNewValue = 1; 28927let mayStore = 1; 28928let BaseOpcode = "V6_vS32b_ai"; 28929let DecoderNamespace = "EXT_mmvec"; 28930let opNewValue = 3; 28931} 28932def V6_vS32b_new_pred_pi : HInst< 28933(outs IntRegs:$Rx32), 28934(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28935"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28936tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28937let Inst{7-3} = 0b01000; 28938let Inst{13-13} = 0b0; 28939let Inst{31-21} = 0b00101001101; 28940let isPredicated = 1; 28941let addrMode = PostInc; 28942let accessSize = HVXVectorAccess; 28943let isNVStore = 1; 28944let isCVI = 1; 28945let CVINew = 1; 28946let isNewValue = 1; 28947let mayStore = 1; 28948let BaseOpcode = "V6_vS32b_pi"; 28949let DecoderNamespace = "EXT_mmvec"; 28950let opNewValue = 4; 28951let Constraints = "$Rx32 = $Rx32in"; 28952} 28953def V6_vS32b_new_pred_ppu : HInst< 28954(outs IntRegs:$Rx32), 28955(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28956"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28957tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28958let Inst{10-3} = 0b00001000; 28959let Inst{31-21} = 0b00101011101; 28960let isPredicated = 1; 28961let addrMode = PostInc; 28962let accessSize = HVXVectorAccess; 28963let isNVStore = 1; 28964let isCVI = 1; 28965let CVINew = 1; 28966let isNewValue = 1; 28967let mayStore = 1; 28968let BaseOpcode = "V6_vS32b_ppu"; 28969let DecoderNamespace = "EXT_mmvec"; 28970let opNewValue = 4; 28971let Constraints = "$Rx32 = $Rx32in"; 28972} 28973def V6_vS32b_npred_ai : HInst< 28974(outs), 28975(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28976"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32", 28977tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28978let Inst{7-5} = 0b001; 28979let Inst{31-21} = 0b00101000101; 28980let isPredicated = 1; 28981let isPredicatedFalse = 1; 28982let addrMode = BaseImmOffset; 28983let accessSize = HVXVectorAccess; 28984let isCVI = 1; 28985let mayStore = 1; 28986let BaseOpcode = "V6_vS32b_ai"; 28987let isNVStorable = 1; 28988let DecoderNamespace = "EXT_mmvec"; 28989} 28990def V6_vS32b_npred_pi : HInst< 28991(outs IntRegs:$Rx32), 28992(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28993"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32", 28994tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28995let Inst{7-5} = 0b001; 28996let Inst{13-13} = 0b0; 28997let Inst{31-21} = 0b00101001101; 28998let isPredicated = 1; 28999let isPredicatedFalse = 1; 29000let addrMode = PostInc; 29001let accessSize = HVXVectorAccess; 29002let isCVI = 1; 29003let mayStore = 1; 29004let BaseOpcode = "V6_vS32b_pi"; 29005let isNVStorable = 1; 29006let DecoderNamespace = "EXT_mmvec"; 29007let Constraints = "$Rx32 = $Rx32in"; 29008} 29009def V6_vS32b_npred_ppu : HInst< 29010(outs IntRegs:$Rx32), 29011(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29012"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32", 29013tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29014let Inst{10-5} = 0b000001; 29015let Inst{31-21} = 0b00101011101; 29016let isPredicated = 1; 29017let isPredicatedFalse = 1; 29018let addrMode = PostInc; 29019let accessSize = HVXVectorAccess; 29020let isCVI = 1; 29021let mayStore = 1; 29022let BaseOpcode = "V6_vS32b_ppu"; 29023let isNVStorable = 1; 29024let DecoderNamespace = "EXT_mmvec"; 29025let Constraints = "$Rx32 = $Rx32in"; 29026} 29027def V6_vS32b_nqpred_ai : HInst< 29028(outs), 29029(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29030"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32", 29031tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29032let Inst{7-5} = 0b001; 29033let Inst{31-21} = 0b00101000100; 29034let addrMode = BaseImmOffset; 29035let accessSize = HVXVectorAccess; 29036let isCVI = 1; 29037let mayStore = 1; 29038let DecoderNamespace = "EXT_mmvec"; 29039} 29040def V6_vS32b_nqpred_pi : HInst< 29041(outs IntRegs:$Rx32), 29042(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29043"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32", 29044tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29045let Inst{7-5} = 0b001; 29046let Inst{13-13} = 0b0; 29047let Inst{31-21} = 0b00101001100; 29048let addrMode = PostInc; 29049let accessSize = HVXVectorAccess; 29050let isCVI = 1; 29051let mayStore = 1; 29052let DecoderNamespace = "EXT_mmvec"; 29053let Constraints = "$Rx32 = $Rx32in"; 29054} 29055def V6_vS32b_nqpred_ppu : HInst< 29056(outs IntRegs:$Rx32), 29057(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29058"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32", 29059tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29060let Inst{10-5} = 0b000001; 29061let Inst{31-21} = 0b00101011100; 29062let addrMode = PostInc; 29063let accessSize = HVXVectorAccess; 29064let isCVI = 1; 29065let mayStore = 1; 29066let DecoderNamespace = "EXT_mmvec"; 29067let Constraints = "$Rx32 = $Rx32in"; 29068} 29069def V6_vS32b_nt_ai : HInst< 29070(outs), 29071(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29072"vmem($Rt32+#$Ii):nt = $Vs32", 29073tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 29074let Inst{7-5} = 0b000; 29075let Inst{12-11} = 0b00; 29076let Inst{31-21} = 0b00101000011; 29077let addrMode = BaseImmOffset; 29078let accessSize = HVXVectorAccess; 29079let isCVI = 1; 29080let isNonTemporal = 1; 29081let mayStore = 1; 29082let BaseOpcode = "V6_vS32b_ai"; 29083let isNVStorable = 1; 29084let isPredicable = 1; 29085let DecoderNamespace = "EXT_mmvec"; 29086} 29087def V6_vS32b_nt_new_ai : HInst< 29088(outs), 29089(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29090"vmem($Rt32+#$Ii):nt = $Os8.new", 29091tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 29092let Inst{7-3} = 0b00100; 29093let Inst{12-11} = 0b00; 29094let Inst{31-21} = 0b00101000011; 29095let addrMode = BaseImmOffset; 29096let accessSize = HVXVectorAccess; 29097let isNVStore = 1; 29098let isCVI = 1; 29099let CVINew = 1; 29100let isNewValue = 1; 29101let isNonTemporal = 1; 29102let mayStore = 1; 29103let BaseOpcode = "V6_vS32b_ai"; 29104let isPredicable = 1; 29105let DecoderNamespace = "EXT_mmvec"; 29106let opNewValue = 2; 29107} 29108def V6_vS32b_nt_new_npred_ai : HInst< 29109(outs), 29110(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29111"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 29112tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29113let Inst{7-3} = 0b01111; 29114let Inst{31-21} = 0b00101000111; 29115let isPredicated = 1; 29116let isPredicatedFalse = 1; 29117let addrMode = BaseImmOffset; 29118let accessSize = HVXVectorAccess; 29119let isNVStore = 1; 29120let isCVI = 1; 29121let CVINew = 1; 29122let isNewValue = 1; 29123let isNonTemporal = 1; 29124let mayStore = 1; 29125let BaseOpcode = "V6_vS32b_ai"; 29126let DecoderNamespace = "EXT_mmvec"; 29127let opNewValue = 3; 29128} 29129def V6_vS32b_nt_new_npred_pi : HInst< 29130(outs IntRegs:$Rx32), 29131(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29132"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 29133tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29134let Inst{7-3} = 0b01111; 29135let Inst{13-13} = 0b0; 29136let Inst{31-21} = 0b00101001111; 29137let isPredicated = 1; 29138let isPredicatedFalse = 1; 29139let addrMode = PostInc; 29140let accessSize = HVXVectorAccess; 29141let isNVStore = 1; 29142let isCVI = 1; 29143let CVINew = 1; 29144let isNewValue = 1; 29145let isNonTemporal = 1; 29146let mayStore = 1; 29147let BaseOpcode = "V6_vS32b_pi"; 29148let DecoderNamespace = "EXT_mmvec"; 29149let opNewValue = 4; 29150let Constraints = "$Rx32 = $Rx32in"; 29151} 29152def V6_vS32b_nt_new_npred_ppu : HInst< 29153(outs IntRegs:$Rx32), 29154(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29155"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 29156tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29157let Inst{10-3} = 0b00001111; 29158let Inst{31-21} = 0b00101011111; 29159let isPredicated = 1; 29160let isPredicatedFalse = 1; 29161let addrMode = PostInc; 29162let accessSize = HVXVectorAccess; 29163let isNVStore = 1; 29164let isCVI = 1; 29165let CVINew = 1; 29166let isNewValue = 1; 29167let isNonTemporal = 1; 29168let mayStore = 1; 29169let BaseOpcode = "V6_vS32b_ppu"; 29170let DecoderNamespace = "EXT_mmvec"; 29171let opNewValue = 4; 29172let Constraints = "$Rx32 = $Rx32in"; 29173} 29174def V6_vS32b_nt_new_pi : HInst< 29175(outs IntRegs:$Rx32), 29176(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29177"vmem($Rx32++#$Ii):nt = $Os8.new", 29178tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 29179let Inst{7-3} = 0b00100; 29180let Inst{13-11} = 0b000; 29181let Inst{31-21} = 0b00101001011; 29182let addrMode = PostInc; 29183let accessSize = HVXVectorAccess; 29184let isNVStore = 1; 29185let isCVI = 1; 29186let CVINew = 1; 29187let isNewValue = 1; 29188let isNonTemporal = 1; 29189let mayStore = 1; 29190let BaseOpcode = "V6_vS32b_pi"; 29191let isPredicable = 1; 29192let DecoderNamespace = "EXT_mmvec"; 29193let opNewValue = 3; 29194let Constraints = "$Rx32 = $Rx32in"; 29195} 29196def V6_vS32b_nt_new_ppu : HInst< 29197(outs IntRegs:$Rx32), 29198(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29199"vmem($Rx32++$Mu2):nt = $Os8.new", 29200tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 29201let Inst{12-3} = 0b0000000100; 29202let Inst{31-21} = 0b00101011011; 29203let addrMode = PostInc; 29204let accessSize = HVXVectorAccess; 29205let isNVStore = 1; 29206let isCVI = 1; 29207let CVINew = 1; 29208let isNewValue = 1; 29209let isNonTemporal = 1; 29210let mayStore = 1; 29211let BaseOpcode = "V6_vS32b_ppu"; 29212let isPredicable = 1; 29213let DecoderNamespace = "EXT_mmvec"; 29214let opNewValue = 3; 29215let Constraints = "$Rx32 = $Rx32in"; 29216} 29217def V6_vS32b_nt_new_pred_ai : HInst< 29218(outs), 29219(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29220"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 29221tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29222let Inst{7-3} = 0b01010; 29223let Inst{31-21} = 0b00101000111; 29224let isPredicated = 1; 29225let addrMode = BaseImmOffset; 29226let accessSize = HVXVectorAccess; 29227let isNVStore = 1; 29228let isCVI = 1; 29229let CVINew = 1; 29230let isNewValue = 1; 29231let isNonTemporal = 1; 29232let mayStore = 1; 29233let BaseOpcode = "V6_vS32b_ai"; 29234let DecoderNamespace = "EXT_mmvec"; 29235let opNewValue = 3; 29236} 29237def V6_vS32b_nt_new_pred_pi : HInst< 29238(outs IntRegs:$Rx32), 29239(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29240"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 29241tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29242let Inst{7-3} = 0b01010; 29243let Inst{13-13} = 0b0; 29244let Inst{31-21} = 0b00101001111; 29245let isPredicated = 1; 29246let addrMode = PostInc; 29247let accessSize = HVXVectorAccess; 29248let isNVStore = 1; 29249let isCVI = 1; 29250let CVINew = 1; 29251let isNewValue = 1; 29252let isNonTemporal = 1; 29253let mayStore = 1; 29254let BaseOpcode = "V6_vS32b_pi"; 29255let DecoderNamespace = "EXT_mmvec"; 29256let opNewValue = 4; 29257let Constraints = "$Rx32 = $Rx32in"; 29258} 29259def V6_vS32b_nt_new_pred_ppu : HInst< 29260(outs IntRegs:$Rx32), 29261(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29262"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 29263tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29264let Inst{10-3} = 0b00001010; 29265let Inst{31-21} = 0b00101011111; 29266let isPredicated = 1; 29267let addrMode = PostInc; 29268let accessSize = HVXVectorAccess; 29269let isNVStore = 1; 29270let isCVI = 1; 29271let CVINew = 1; 29272let isNewValue = 1; 29273let isNonTemporal = 1; 29274let mayStore = 1; 29275let BaseOpcode = "V6_vS32b_ppu"; 29276let DecoderNamespace = "EXT_mmvec"; 29277let opNewValue = 4; 29278let Constraints = "$Rx32 = $Rx32in"; 29279} 29280def V6_vS32b_nt_npred_ai : HInst< 29281(outs), 29282(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29283"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29284tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29285let Inst{7-5} = 0b001; 29286let Inst{31-21} = 0b00101000111; 29287let isPredicated = 1; 29288let isPredicatedFalse = 1; 29289let addrMode = BaseImmOffset; 29290let accessSize = HVXVectorAccess; 29291let isCVI = 1; 29292let isNonTemporal = 1; 29293let mayStore = 1; 29294let BaseOpcode = "V6_vS32b_ai"; 29295let isNVStorable = 1; 29296let DecoderNamespace = "EXT_mmvec"; 29297} 29298def V6_vS32b_nt_npred_pi : HInst< 29299(outs IntRegs:$Rx32), 29300(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29301"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29302tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29303let Inst{7-5} = 0b001; 29304let Inst{13-13} = 0b0; 29305let Inst{31-21} = 0b00101001111; 29306let isPredicated = 1; 29307let isPredicatedFalse = 1; 29308let addrMode = PostInc; 29309let accessSize = HVXVectorAccess; 29310let isCVI = 1; 29311let isNonTemporal = 1; 29312let mayStore = 1; 29313let BaseOpcode = "V6_vS32b_pi"; 29314let isNVStorable = 1; 29315let DecoderNamespace = "EXT_mmvec"; 29316let Constraints = "$Rx32 = $Rx32in"; 29317} 29318def V6_vS32b_nt_npred_ppu : HInst< 29319(outs IntRegs:$Rx32), 29320(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29321"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29322tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29323let Inst{10-5} = 0b000001; 29324let Inst{31-21} = 0b00101011111; 29325let isPredicated = 1; 29326let isPredicatedFalse = 1; 29327let addrMode = PostInc; 29328let accessSize = HVXVectorAccess; 29329let isCVI = 1; 29330let isNonTemporal = 1; 29331let mayStore = 1; 29332let BaseOpcode = "V6_vS32b_ppu"; 29333let isNVStorable = 1; 29334let DecoderNamespace = "EXT_mmvec"; 29335let Constraints = "$Rx32 = $Rx32in"; 29336} 29337def V6_vS32b_nt_nqpred_ai : HInst< 29338(outs), 29339(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29340"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29341tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29342let Inst{7-5} = 0b001; 29343let Inst{31-21} = 0b00101000110; 29344let addrMode = BaseImmOffset; 29345let accessSize = HVXVectorAccess; 29346let isCVI = 1; 29347let isNonTemporal = 1; 29348let mayStore = 1; 29349let DecoderNamespace = "EXT_mmvec"; 29350} 29351def V6_vS32b_nt_nqpred_pi : HInst< 29352(outs IntRegs:$Rx32), 29353(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29354"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29355tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29356let Inst{7-5} = 0b001; 29357let Inst{13-13} = 0b0; 29358let Inst{31-21} = 0b00101001110; 29359let addrMode = PostInc; 29360let accessSize = HVXVectorAccess; 29361let isCVI = 1; 29362let isNonTemporal = 1; 29363let mayStore = 1; 29364let DecoderNamespace = "EXT_mmvec"; 29365let Constraints = "$Rx32 = $Rx32in"; 29366} 29367def V6_vS32b_nt_nqpred_ppu : HInst< 29368(outs IntRegs:$Rx32), 29369(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29370"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29371tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29372let Inst{10-5} = 0b000001; 29373let Inst{31-21} = 0b00101011110; 29374let addrMode = PostInc; 29375let accessSize = HVXVectorAccess; 29376let isCVI = 1; 29377let isNonTemporal = 1; 29378let mayStore = 1; 29379let DecoderNamespace = "EXT_mmvec"; 29380let Constraints = "$Rx32 = $Rx32in"; 29381} 29382def V6_vS32b_nt_pi : HInst< 29383(outs IntRegs:$Rx32), 29384(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29385"vmem($Rx32++#$Ii):nt = $Vs32", 29386tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 29387let Inst{7-5} = 0b000; 29388let Inst{13-11} = 0b000; 29389let Inst{31-21} = 0b00101001011; 29390let addrMode = PostInc; 29391let accessSize = HVXVectorAccess; 29392let isCVI = 1; 29393let isNonTemporal = 1; 29394let mayStore = 1; 29395let BaseOpcode = "V6_vS32b_pi"; 29396let isNVStorable = 1; 29397let isPredicable = 1; 29398let DecoderNamespace = "EXT_mmvec"; 29399let Constraints = "$Rx32 = $Rx32in"; 29400} 29401def V6_vS32b_nt_ppu : HInst< 29402(outs IntRegs:$Rx32), 29403(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29404"vmem($Rx32++$Mu2):nt = $Vs32", 29405tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29406let Inst{12-5} = 0b00000000; 29407let Inst{31-21} = 0b00101011011; 29408let addrMode = PostInc; 29409let accessSize = HVXVectorAccess; 29410let isCVI = 1; 29411let isNonTemporal = 1; 29412let mayStore = 1; 29413let BaseOpcode = "V6_vS32b_ppu"; 29414let isNVStorable = 1; 29415let isPredicable = 1; 29416let DecoderNamespace = "EXT_mmvec"; 29417let Constraints = "$Rx32 = $Rx32in"; 29418} 29419def V6_vS32b_nt_pred_ai : HInst< 29420(outs), 29421(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29422"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29423tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29424let Inst{7-5} = 0b000; 29425let Inst{31-21} = 0b00101000111; 29426let isPredicated = 1; 29427let addrMode = BaseImmOffset; 29428let accessSize = HVXVectorAccess; 29429let isCVI = 1; 29430let isNonTemporal = 1; 29431let mayStore = 1; 29432let BaseOpcode = "V6_vS32b_ai"; 29433let isNVStorable = 1; 29434let DecoderNamespace = "EXT_mmvec"; 29435} 29436def V6_vS32b_nt_pred_pi : HInst< 29437(outs IntRegs:$Rx32), 29438(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29439"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29440tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29441let Inst{7-5} = 0b000; 29442let Inst{13-13} = 0b0; 29443let Inst{31-21} = 0b00101001111; 29444let isPredicated = 1; 29445let addrMode = PostInc; 29446let accessSize = HVXVectorAccess; 29447let isCVI = 1; 29448let isNonTemporal = 1; 29449let mayStore = 1; 29450let BaseOpcode = "V6_vS32b_pi"; 29451let isNVStorable = 1; 29452let DecoderNamespace = "EXT_mmvec"; 29453let Constraints = "$Rx32 = $Rx32in"; 29454} 29455def V6_vS32b_nt_pred_ppu : HInst< 29456(outs IntRegs:$Rx32), 29457(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29458"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29459tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29460let Inst{10-5} = 0b000000; 29461let Inst{31-21} = 0b00101011111; 29462let isPredicated = 1; 29463let addrMode = PostInc; 29464let accessSize = HVXVectorAccess; 29465let isCVI = 1; 29466let isNonTemporal = 1; 29467let mayStore = 1; 29468let BaseOpcode = "V6_vS32b_ppu"; 29469let isNVStorable = 1; 29470let DecoderNamespace = "EXT_mmvec"; 29471let Constraints = "$Rx32 = $Rx32in"; 29472} 29473def V6_vS32b_nt_qpred_ai : HInst< 29474(outs), 29475(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29476"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29477tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29478let Inst{7-5} = 0b000; 29479let Inst{31-21} = 0b00101000110; 29480let addrMode = BaseImmOffset; 29481let accessSize = HVXVectorAccess; 29482let isCVI = 1; 29483let isNonTemporal = 1; 29484let mayStore = 1; 29485let DecoderNamespace = "EXT_mmvec"; 29486} 29487def V6_vS32b_nt_qpred_pi : HInst< 29488(outs IntRegs:$Rx32), 29489(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29490"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29491tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29492let Inst{7-5} = 0b000; 29493let Inst{13-13} = 0b0; 29494let Inst{31-21} = 0b00101001110; 29495let addrMode = PostInc; 29496let accessSize = HVXVectorAccess; 29497let isCVI = 1; 29498let isNonTemporal = 1; 29499let mayStore = 1; 29500let DecoderNamespace = "EXT_mmvec"; 29501let Constraints = "$Rx32 = $Rx32in"; 29502} 29503def V6_vS32b_nt_qpred_ppu : HInst< 29504(outs IntRegs:$Rx32), 29505(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29506"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29507tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29508let Inst{10-5} = 0b000000; 29509let Inst{31-21} = 0b00101011110; 29510let addrMode = PostInc; 29511let accessSize = HVXVectorAccess; 29512let isCVI = 1; 29513let isNonTemporal = 1; 29514let mayStore = 1; 29515let DecoderNamespace = "EXT_mmvec"; 29516let Constraints = "$Rx32 = $Rx32in"; 29517} 29518def V6_vS32b_pi : HInst< 29519(outs IntRegs:$Rx32), 29520(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29521"vmem($Rx32++#$Ii) = $Vs32", 29522tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 29523let Inst{7-5} = 0b000; 29524let Inst{13-11} = 0b000; 29525let Inst{31-21} = 0b00101001001; 29526let addrMode = PostInc; 29527let accessSize = HVXVectorAccess; 29528let isCVI = 1; 29529let mayStore = 1; 29530let BaseOpcode = "V6_vS32b_pi"; 29531let isNVStorable = 1; 29532let isPredicable = 1; 29533let DecoderNamespace = "EXT_mmvec"; 29534let Constraints = "$Rx32 = $Rx32in"; 29535} 29536def V6_vS32b_ppu : HInst< 29537(outs IntRegs:$Rx32), 29538(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29539"vmem($Rx32++$Mu2) = $Vs32", 29540tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29541let Inst{12-5} = 0b00000000; 29542let Inst{31-21} = 0b00101011001; 29543let addrMode = PostInc; 29544let accessSize = HVXVectorAccess; 29545let isCVI = 1; 29546let mayStore = 1; 29547let BaseOpcode = "V6_vS32b_ppu"; 29548let isNVStorable = 1; 29549let isPredicable = 1; 29550let DecoderNamespace = "EXT_mmvec"; 29551let Constraints = "$Rx32 = $Rx32in"; 29552} 29553def V6_vS32b_pred_ai : HInst< 29554(outs), 29555(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29556"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32", 29557tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29558let Inst{7-5} = 0b000; 29559let Inst{31-21} = 0b00101000101; 29560let isPredicated = 1; 29561let addrMode = BaseImmOffset; 29562let accessSize = HVXVectorAccess; 29563let isCVI = 1; 29564let mayStore = 1; 29565let BaseOpcode = "V6_vS32b_ai"; 29566let isNVStorable = 1; 29567let DecoderNamespace = "EXT_mmvec"; 29568} 29569def V6_vS32b_pred_pi : HInst< 29570(outs IntRegs:$Rx32), 29571(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29572"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32", 29573tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29574let Inst{7-5} = 0b000; 29575let Inst{13-13} = 0b0; 29576let Inst{31-21} = 0b00101001101; 29577let isPredicated = 1; 29578let addrMode = PostInc; 29579let accessSize = HVXVectorAccess; 29580let isCVI = 1; 29581let mayStore = 1; 29582let BaseOpcode = "V6_vS32b_pi"; 29583let isNVStorable = 1; 29584let DecoderNamespace = "EXT_mmvec"; 29585let Constraints = "$Rx32 = $Rx32in"; 29586} 29587def V6_vS32b_pred_ppu : HInst< 29588(outs IntRegs:$Rx32), 29589(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29590"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32", 29591tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29592let Inst{10-5} = 0b000000; 29593let Inst{31-21} = 0b00101011101; 29594let isPredicated = 1; 29595let addrMode = PostInc; 29596let accessSize = HVXVectorAccess; 29597let isCVI = 1; 29598let mayStore = 1; 29599let BaseOpcode = "V6_vS32b_ppu"; 29600let isNVStorable = 1; 29601let DecoderNamespace = "EXT_mmvec"; 29602let Constraints = "$Rx32 = $Rx32in"; 29603} 29604def V6_vS32b_qpred_ai : HInst< 29605(outs), 29606(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29607"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32", 29608tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29609let Inst{7-5} = 0b000; 29610let Inst{31-21} = 0b00101000100; 29611let addrMode = BaseImmOffset; 29612let accessSize = HVXVectorAccess; 29613let isCVI = 1; 29614let mayStore = 1; 29615let DecoderNamespace = "EXT_mmvec"; 29616} 29617def V6_vS32b_qpred_pi : HInst< 29618(outs IntRegs:$Rx32), 29619(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29620"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32", 29621tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29622let Inst{7-5} = 0b000; 29623let Inst{13-13} = 0b0; 29624let Inst{31-21} = 0b00101001100; 29625let addrMode = PostInc; 29626let accessSize = HVXVectorAccess; 29627let isCVI = 1; 29628let mayStore = 1; 29629let DecoderNamespace = "EXT_mmvec"; 29630let Constraints = "$Rx32 = $Rx32in"; 29631} 29632def V6_vS32b_qpred_ppu : HInst< 29633(outs IntRegs:$Rx32), 29634(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29635"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32", 29636tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29637let Inst{10-5} = 0b000000; 29638let Inst{31-21} = 0b00101011100; 29639let addrMode = PostInc; 29640let accessSize = HVXVectorAccess; 29641let isCVI = 1; 29642let mayStore = 1; 29643let DecoderNamespace = "EXT_mmvec"; 29644let Constraints = "$Rx32 = $Rx32in"; 29645} 29646def V6_vS32b_srls_ai : HInst< 29647(outs), 29648(ins IntRegs:$Rt32, s4_0Imm:$Ii), 29649"vmem($Rt32+#$Ii):scatter_release", 29650tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> { 29651let Inst{7-0} = 0b00101000; 29652let Inst{12-11} = 0b00; 29653let Inst{31-21} = 0b00101000001; 29654let addrMode = BaseImmOffset; 29655let accessSize = HVXVectorAccess; 29656let isCVI = 1; 29657let CVINew = 1; 29658let mayStore = 1; 29659let DecoderNamespace = "EXT_mmvec"; 29660} 29661def V6_vS32b_srls_pi : HInst< 29662(outs IntRegs:$Rx32), 29663(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 29664"vmem($Rx32++#$Ii):scatter_release", 29665tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> { 29666let Inst{7-0} = 0b00101000; 29667let Inst{13-11} = 0b000; 29668let Inst{31-21} = 0b00101001001; 29669let addrMode = PostInc; 29670let accessSize = HVXVectorAccess; 29671let isCVI = 1; 29672let CVINew = 1; 29673let mayStore = 1; 29674let DecoderNamespace = "EXT_mmvec"; 29675let Constraints = "$Rx32 = $Rx32in"; 29676} 29677def V6_vS32b_srls_ppu : HInst< 29678(outs IntRegs:$Rx32), 29679(ins IntRegs:$Rx32in, ModRegs:$Mu2), 29680"vmem($Rx32++$Mu2):scatter_release", 29681tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> { 29682let Inst{12-0} = 0b0000000101000; 29683let Inst{31-21} = 0b00101011001; 29684let addrMode = PostInc; 29685let accessSize = HVXVectorAccess; 29686let isCVI = 1; 29687let CVINew = 1; 29688let mayStore = 1; 29689let DecoderNamespace = "EXT_mmvec"; 29690let Constraints = "$Rx32 = $Rx32in"; 29691} 29692def V6_vabsb : HInst< 29693(outs HvxVR:$Vd32), 29694(ins HvxVR:$Vu32), 29695"$Vd32.b = vabs($Vu32.b)", 29696tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29697let Inst{7-5} = 0b100; 29698let Inst{13-13} = 0b0; 29699let Inst{31-16} = 0b0001111000000001; 29700let hasNewValue = 1; 29701let opNewValue = 0; 29702let isCVI = 1; 29703let DecoderNamespace = "EXT_mmvec"; 29704} 29705def V6_vabsb_alt : HInst< 29706(outs HvxVR:$Vd32), 29707(ins HvxVR:$Vu32), 29708"$Vd32 = vabsb($Vu32)", 29709PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29710let hasNewValue = 1; 29711let opNewValue = 0; 29712let isCVI = 1; 29713let isPseudo = 1; 29714let isCodeGenOnly = 1; 29715let DecoderNamespace = "EXT_mmvec"; 29716} 29717def V6_vabsb_sat : HInst< 29718(outs HvxVR:$Vd32), 29719(ins HvxVR:$Vu32), 29720"$Vd32.b = vabs($Vu32.b):sat", 29721tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29722let Inst{7-5} = 0b101; 29723let Inst{13-13} = 0b0; 29724let Inst{31-16} = 0b0001111000000001; 29725let hasNewValue = 1; 29726let opNewValue = 0; 29727let isCVI = 1; 29728let DecoderNamespace = "EXT_mmvec"; 29729} 29730def V6_vabsb_sat_alt : HInst< 29731(outs HvxVR:$Vd32), 29732(ins HvxVR:$Vu32), 29733"$Vd32 = vabsb($Vu32):sat", 29734PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29735let hasNewValue = 1; 29736let opNewValue = 0; 29737let isCVI = 1; 29738let isPseudo = 1; 29739let isCodeGenOnly = 1; 29740let DecoderNamespace = "EXT_mmvec"; 29741} 29742def V6_vabsdiffh : HInst< 29743(outs HvxVR:$Vd32), 29744(ins HvxVR:$Vu32, HvxVR:$Vv32), 29745"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)", 29746tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29747let Inst{7-5} = 0b001; 29748let Inst{13-13} = 0b0; 29749let Inst{31-21} = 0b00011100110; 29750let hasNewValue = 1; 29751let opNewValue = 0; 29752let isCVI = 1; 29753let DecoderNamespace = "EXT_mmvec"; 29754} 29755def V6_vabsdiffh_alt : HInst< 29756(outs HvxVR:$Vd32), 29757(ins HvxVR:$Vu32, HvxVR:$Vv32), 29758"$Vd32 = vabsdiffh($Vu32,$Vv32)", 29759PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29760let hasNewValue = 1; 29761let opNewValue = 0; 29762let isCVI = 1; 29763let isPseudo = 1; 29764let isCodeGenOnly = 1; 29765let DecoderNamespace = "EXT_mmvec"; 29766} 29767def V6_vabsdiffub : HInst< 29768(outs HvxVR:$Vd32), 29769(ins HvxVR:$Vu32, HvxVR:$Vv32), 29770"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)", 29771tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29772let Inst{7-5} = 0b000; 29773let Inst{13-13} = 0b0; 29774let Inst{31-21} = 0b00011100110; 29775let hasNewValue = 1; 29776let opNewValue = 0; 29777let isCVI = 1; 29778let DecoderNamespace = "EXT_mmvec"; 29779} 29780def V6_vabsdiffub_alt : HInst< 29781(outs HvxVR:$Vd32), 29782(ins HvxVR:$Vu32, HvxVR:$Vv32), 29783"$Vd32 = vabsdiffub($Vu32,$Vv32)", 29784PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29785let hasNewValue = 1; 29786let opNewValue = 0; 29787let isCVI = 1; 29788let isPseudo = 1; 29789let isCodeGenOnly = 1; 29790let DecoderNamespace = "EXT_mmvec"; 29791} 29792def V6_vabsdiffuh : HInst< 29793(outs HvxVR:$Vd32), 29794(ins HvxVR:$Vu32, HvxVR:$Vv32), 29795"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)", 29796tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29797let Inst{7-5} = 0b010; 29798let Inst{13-13} = 0b0; 29799let Inst{31-21} = 0b00011100110; 29800let hasNewValue = 1; 29801let opNewValue = 0; 29802let isCVI = 1; 29803let DecoderNamespace = "EXT_mmvec"; 29804} 29805def V6_vabsdiffuh_alt : HInst< 29806(outs HvxVR:$Vd32), 29807(ins HvxVR:$Vu32, HvxVR:$Vv32), 29808"$Vd32 = vabsdiffuh($Vu32,$Vv32)", 29809PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29810let hasNewValue = 1; 29811let opNewValue = 0; 29812let isCVI = 1; 29813let isPseudo = 1; 29814let isCodeGenOnly = 1; 29815let DecoderNamespace = "EXT_mmvec"; 29816} 29817def V6_vabsdiffw : HInst< 29818(outs HvxVR:$Vd32), 29819(ins HvxVR:$Vu32, HvxVR:$Vv32), 29820"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)", 29821tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29822let Inst{7-5} = 0b011; 29823let Inst{13-13} = 0b0; 29824let Inst{31-21} = 0b00011100110; 29825let hasNewValue = 1; 29826let opNewValue = 0; 29827let isCVI = 1; 29828let DecoderNamespace = "EXT_mmvec"; 29829} 29830def V6_vabsdiffw_alt : HInst< 29831(outs HvxVR:$Vd32), 29832(ins HvxVR:$Vu32, HvxVR:$Vv32), 29833"$Vd32 = vabsdiffw($Vu32,$Vv32)", 29834PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29835let hasNewValue = 1; 29836let opNewValue = 0; 29837let isCVI = 1; 29838let isPseudo = 1; 29839let isCodeGenOnly = 1; 29840let DecoderNamespace = "EXT_mmvec"; 29841} 29842def V6_vabsh : HInst< 29843(outs HvxVR:$Vd32), 29844(ins HvxVR:$Vu32), 29845"$Vd32.h = vabs($Vu32.h)", 29846tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29847let Inst{7-5} = 0b000; 29848let Inst{13-13} = 0b0; 29849let Inst{31-16} = 0b0001111000000000; 29850let hasNewValue = 1; 29851let opNewValue = 0; 29852let isCVI = 1; 29853let DecoderNamespace = "EXT_mmvec"; 29854} 29855def V6_vabsh_alt : HInst< 29856(outs HvxVR:$Vd32), 29857(ins HvxVR:$Vu32), 29858"$Vd32 = vabsh($Vu32)", 29859PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29860let hasNewValue = 1; 29861let opNewValue = 0; 29862let isCVI = 1; 29863let isPseudo = 1; 29864let isCodeGenOnly = 1; 29865let DecoderNamespace = "EXT_mmvec"; 29866} 29867def V6_vabsh_sat : HInst< 29868(outs HvxVR:$Vd32), 29869(ins HvxVR:$Vu32), 29870"$Vd32.h = vabs($Vu32.h):sat", 29871tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29872let Inst{7-5} = 0b001; 29873let Inst{13-13} = 0b0; 29874let Inst{31-16} = 0b0001111000000000; 29875let hasNewValue = 1; 29876let opNewValue = 0; 29877let isCVI = 1; 29878let DecoderNamespace = "EXT_mmvec"; 29879} 29880def V6_vabsh_sat_alt : HInst< 29881(outs HvxVR:$Vd32), 29882(ins HvxVR:$Vu32), 29883"$Vd32 = vabsh($Vu32):sat", 29884PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29885let hasNewValue = 1; 29886let opNewValue = 0; 29887let isCVI = 1; 29888let isPseudo = 1; 29889let isCodeGenOnly = 1; 29890let DecoderNamespace = "EXT_mmvec"; 29891} 29892def V6_vabsub_alt : HInst< 29893(outs HvxVR:$Vd32), 29894(ins HvxVR:$Vu32), 29895"$Vd32.ub = vabs($Vu32.b)", 29896tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29897let hasNewValue = 1; 29898let opNewValue = 0; 29899let isCVI = 1; 29900let isPseudo = 1; 29901let isCodeGenOnly = 1; 29902let DecoderNamespace = "EXT_mmvec"; 29903} 29904def V6_vabsuh_alt : HInst< 29905(outs HvxVR:$Vd32), 29906(ins HvxVR:$Vu32), 29907"$Vd32.uh = vabs($Vu32.h)", 29908tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29909let hasNewValue = 1; 29910let opNewValue = 0; 29911let isCVI = 1; 29912let isPseudo = 1; 29913let isCodeGenOnly = 1; 29914let DecoderNamespace = "EXT_mmvec"; 29915} 29916def V6_vabsuw_alt : HInst< 29917(outs HvxVR:$Vd32), 29918(ins HvxVR:$Vu32), 29919"$Vd32.uw = vabs($Vu32.w)", 29920tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29921let hasNewValue = 1; 29922let opNewValue = 0; 29923let isCVI = 1; 29924let isPseudo = 1; 29925let isCodeGenOnly = 1; 29926let DecoderNamespace = "EXT_mmvec"; 29927} 29928def V6_vabsw : HInst< 29929(outs HvxVR:$Vd32), 29930(ins HvxVR:$Vu32), 29931"$Vd32.w = vabs($Vu32.w)", 29932tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29933let Inst{7-5} = 0b010; 29934let Inst{13-13} = 0b0; 29935let Inst{31-16} = 0b0001111000000000; 29936let hasNewValue = 1; 29937let opNewValue = 0; 29938let isCVI = 1; 29939let DecoderNamespace = "EXT_mmvec"; 29940} 29941def V6_vabsw_alt : HInst< 29942(outs HvxVR:$Vd32), 29943(ins HvxVR:$Vu32), 29944"$Vd32 = vabsw($Vu32)", 29945PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29946let hasNewValue = 1; 29947let opNewValue = 0; 29948let isCVI = 1; 29949let isPseudo = 1; 29950let isCodeGenOnly = 1; 29951let DecoderNamespace = "EXT_mmvec"; 29952} 29953def V6_vabsw_sat : HInst< 29954(outs HvxVR:$Vd32), 29955(ins HvxVR:$Vu32), 29956"$Vd32.w = vabs($Vu32.w):sat", 29957tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29958let Inst{7-5} = 0b011; 29959let Inst{13-13} = 0b0; 29960let Inst{31-16} = 0b0001111000000000; 29961let hasNewValue = 1; 29962let opNewValue = 0; 29963let isCVI = 1; 29964let DecoderNamespace = "EXT_mmvec"; 29965} 29966def V6_vabsw_sat_alt : HInst< 29967(outs HvxVR:$Vd32), 29968(ins HvxVR:$Vu32), 29969"$Vd32 = vabsw($Vu32):sat", 29970PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29971let hasNewValue = 1; 29972let opNewValue = 0; 29973let isCVI = 1; 29974let isPseudo = 1; 29975let isCodeGenOnly = 1; 29976let DecoderNamespace = "EXT_mmvec"; 29977} 29978def V6_vaddb : HInst< 29979(outs HvxVR:$Vd32), 29980(ins HvxVR:$Vu32, HvxVR:$Vv32), 29981"$Vd32.b = vadd($Vu32.b,$Vv32.b)", 29982tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29983let Inst{7-5} = 0b110; 29984let Inst{13-13} = 0b0; 29985let Inst{31-21} = 0b00011111101; 29986let hasNewValue = 1; 29987let opNewValue = 0; 29988let isCVI = 1; 29989let DecoderNamespace = "EXT_mmvec"; 29990} 29991def V6_vaddb_alt : HInst< 29992(outs HvxVR:$Vd32), 29993(ins HvxVR:$Vu32, HvxVR:$Vv32), 29994"$Vd32 = vaddb($Vu32,$Vv32)", 29995PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29996let hasNewValue = 1; 29997let opNewValue = 0; 29998let isCVI = 1; 29999let isPseudo = 1; 30000let isCodeGenOnly = 1; 30001let DecoderNamespace = "EXT_mmvec"; 30002} 30003def V6_vaddb_dv : HInst< 30004(outs HvxWR:$Vdd32), 30005(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30006"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)", 30007tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30008let Inst{7-5} = 0b100; 30009let Inst{13-13} = 0b0; 30010let Inst{31-21} = 0b00011100011; 30011let hasNewValue = 1; 30012let opNewValue = 0; 30013let isCVI = 1; 30014let DecoderNamespace = "EXT_mmvec"; 30015} 30016def V6_vaddb_dv_alt : HInst< 30017(outs HvxWR:$Vdd32), 30018(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30019"$Vdd32 = vaddb($Vuu32,$Vvv32)", 30020PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30021let hasNewValue = 1; 30022let opNewValue = 0; 30023let isCVI = 1; 30024let isPseudo = 1; 30025let isCodeGenOnly = 1; 30026let DecoderNamespace = "EXT_mmvec"; 30027} 30028def V6_vaddbnq : HInst< 30029(outs HvxVR:$Vx32), 30030(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30031"if (!$Qv4) $Vx32.b += $Vu32.b", 30032tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30033let Inst{7-5} = 0b011; 30034let Inst{13-13} = 0b1; 30035let Inst{21-16} = 0b000001; 30036let Inst{31-24} = 0b00011110; 30037let hasNewValue = 1; 30038let opNewValue = 0; 30039let isAccumulator = 1; 30040let isCVI = 1; 30041let DecoderNamespace = "EXT_mmvec"; 30042let Constraints = "$Vx32 = $Vx32in"; 30043} 30044def V6_vaddbnq_alt : HInst< 30045(outs HvxVR:$Vx32), 30046(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30047"if (!$Qv4.b) $Vx32.b += $Vu32.b", 30048PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30049let hasNewValue = 1; 30050let opNewValue = 0; 30051let isAccumulator = 1; 30052let isCVI = 1; 30053let isPseudo = 1; 30054let isCodeGenOnly = 1; 30055let DecoderNamespace = "EXT_mmvec"; 30056let Constraints = "$Vx32 = $Vx32in"; 30057} 30058def V6_vaddbq : HInst< 30059(outs HvxVR:$Vx32), 30060(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30061"if ($Qv4) $Vx32.b += $Vu32.b", 30062tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30063let Inst{7-5} = 0b000; 30064let Inst{13-13} = 0b1; 30065let Inst{21-16} = 0b000001; 30066let Inst{31-24} = 0b00011110; 30067let hasNewValue = 1; 30068let opNewValue = 0; 30069let isAccumulator = 1; 30070let isCVI = 1; 30071let DecoderNamespace = "EXT_mmvec"; 30072let Constraints = "$Vx32 = $Vx32in"; 30073} 30074def V6_vaddbq_alt : HInst< 30075(outs HvxVR:$Vx32), 30076(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30077"if ($Qv4.b) $Vx32.b += $Vu32.b", 30078PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30079let hasNewValue = 1; 30080let opNewValue = 0; 30081let isAccumulator = 1; 30082let isCVI = 1; 30083let isPseudo = 1; 30084let isCodeGenOnly = 1; 30085let DecoderNamespace = "EXT_mmvec"; 30086let Constraints = "$Vx32 = $Vx32in"; 30087} 30088def V6_vaddbsat : HInst< 30089(outs HvxVR:$Vd32), 30090(ins HvxVR:$Vu32, HvxVR:$Vv32), 30091"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat", 30092tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30093let Inst{7-5} = 0b000; 30094let Inst{13-13} = 0b0; 30095let Inst{31-21} = 0b00011111000; 30096let hasNewValue = 1; 30097let opNewValue = 0; 30098let isCVI = 1; 30099let DecoderNamespace = "EXT_mmvec"; 30100} 30101def V6_vaddbsat_alt : HInst< 30102(outs HvxVR:$Vd32), 30103(ins HvxVR:$Vu32, HvxVR:$Vv32), 30104"$Vd32 = vaddb($Vu32,$Vv32):sat", 30105PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30106let hasNewValue = 1; 30107let opNewValue = 0; 30108let isCVI = 1; 30109let isPseudo = 1; 30110let isCodeGenOnly = 1; 30111let DecoderNamespace = "EXT_mmvec"; 30112} 30113def V6_vaddbsat_dv : HInst< 30114(outs HvxWR:$Vdd32), 30115(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30116"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat", 30117tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 30118let Inst{7-5} = 0b000; 30119let Inst{13-13} = 0b0; 30120let Inst{31-21} = 0b00011110101; 30121let hasNewValue = 1; 30122let opNewValue = 0; 30123let isCVI = 1; 30124let DecoderNamespace = "EXT_mmvec"; 30125} 30126def V6_vaddbsat_dv_alt : HInst< 30127(outs HvxWR:$Vdd32), 30128(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30129"$Vdd32 = vaddb($Vuu32,$Vvv32):sat", 30130PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30131let hasNewValue = 1; 30132let opNewValue = 0; 30133let isCVI = 1; 30134let isPseudo = 1; 30135let isCodeGenOnly = 1; 30136let DecoderNamespace = "EXT_mmvec"; 30137} 30138def V6_vaddcarry : HInst< 30139(outs HvxVR:$Vd32, HvxQR:$Qx4), 30140(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 30141"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry", 30142tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 30143let Inst{7-7} = 0b0; 30144let Inst{13-13} = 0b1; 30145let Inst{31-21} = 0b00011100101; 30146let hasNewValue = 1; 30147let opNewValue = 0; 30148let isCVI = 1; 30149let DecoderNamespace = "EXT_mmvec"; 30150let Constraints = "$Qx4 = $Qx4in"; 30151} 30152def V6_vaddcarryo : HInst< 30153(outs HvxVR:$Vd32, HvxQR:$Qe4), 30154(ins HvxVR:$Vu32, HvxVR:$Vv32), 30155"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry", 30156tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 30157let Inst{7-7} = 0b0; 30158let Inst{13-13} = 0b1; 30159let Inst{31-21} = 0b00011101101; 30160let hasNewValue = 1; 30161let opNewValue = 0; 30162let hasNewValue2 = 1; 30163let opNewValue2 = 1; 30164let isCVI = 1; 30165let DecoderNamespace = "EXT_mmvec"; 30166} 30167def V6_vaddcarrysat : HInst< 30168(outs HvxVR:$Vd32), 30169(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4), 30170"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat", 30171tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> { 30172let Inst{7-7} = 0b0; 30173let Inst{13-13} = 0b1; 30174let Inst{31-21} = 0b00011101100; 30175let hasNewValue = 1; 30176let opNewValue = 0; 30177let isCVI = 1; 30178let DecoderNamespace = "EXT_mmvec"; 30179} 30180def V6_vaddclbh : HInst< 30181(outs HvxVR:$Vd32), 30182(ins HvxVR:$Vu32, HvxVR:$Vv32), 30183"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)", 30184tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 30185let Inst{7-5} = 0b000; 30186let Inst{13-13} = 0b1; 30187let Inst{31-21} = 0b00011111000; 30188let hasNewValue = 1; 30189let opNewValue = 0; 30190let isCVI = 1; 30191let DecoderNamespace = "EXT_mmvec"; 30192} 30193def V6_vaddclbw : HInst< 30194(outs HvxVR:$Vd32), 30195(ins HvxVR:$Vu32, HvxVR:$Vv32), 30196"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)", 30197tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 30198let Inst{7-5} = 0b001; 30199let Inst{13-13} = 0b1; 30200let Inst{31-21} = 0b00011111000; 30201let hasNewValue = 1; 30202let opNewValue = 0; 30203let isCVI = 1; 30204let DecoderNamespace = "EXT_mmvec"; 30205} 30206def V6_vaddh : HInst< 30207(outs HvxVR:$Vd32), 30208(ins HvxVR:$Vu32, HvxVR:$Vv32), 30209"$Vd32.h = vadd($Vu32.h,$Vv32.h)", 30210tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30211let Inst{7-5} = 0b111; 30212let Inst{13-13} = 0b0; 30213let Inst{31-21} = 0b00011111101; 30214let hasNewValue = 1; 30215let opNewValue = 0; 30216let isCVI = 1; 30217let DecoderNamespace = "EXT_mmvec"; 30218} 30219def V6_vaddh_alt : HInst< 30220(outs HvxVR:$Vd32), 30221(ins HvxVR:$Vu32, HvxVR:$Vv32), 30222"$Vd32 = vaddh($Vu32,$Vv32)", 30223PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30224let hasNewValue = 1; 30225let opNewValue = 0; 30226let isCVI = 1; 30227let isPseudo = 1; 30228let isCodeGenOnly = 1; 30229let DecoderNamespace = "EXT_mmvec"; 30230} 30231def V6_vaddh_dv : HInst< 30232(outs HvxWR:$Vdd32), 30233(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30234"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)", 30235tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30236let Inst{7-5} = 0b101; 30237let Inst{13-13} = 0b0; 30238let Inst{31-21} = 0b00011100011; 30239let hasNewValue = 1; 30240let opNewValue = 0; 30241let isCVI = 1; 30242let DecoderNamespace = "EXT_mmvec"; 30243} 30244def V6_vaddh_dv_alt : HInst< 30245(outs HvxWR:$Vdd32), 30246(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30247"$Vdd32 = vaddh($Vuu32,$Vvv32)", 30248PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30249let hasNewValue = 1; 30250let opNewValue = 0; 30251let isCVI = 1; 30252let isPseudo = 1; 30253let isCodeGenOnly = 1; 30254let DecoderNamespace = "EXT_mmvec"; 30255} 30256def V6_vaddhnq : HInst< 30257(outs HvxVR:$Vx32), 30258(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30259"if (!$Qv4) $Vx32.h += $Vu32.h", 30260tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30261let Inst{7-5} = 0b100; 30262let Inst{13-13} = 0b1; 30263let Inst{21-16} = 0b000001; 30264let Inst{31-24} = 0b00011110; 30265let hasNewValue = 1; 30266let opNewValue = 0; 30267let isAccumulator = 1; 30268let isCVI = 1; 30269let DecoderNamespace = "EXT_mmvec"; 30270let Constraints = "$Vx32 = $Vx32in"; 30271} 30272def V6_vaddhnq_alt : HInst< 30273(outs HvxVR:$Vx32), 30274(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30275"if (!$Qv4.h) $Vx32.h += $Vu32.h", 30276PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30277let hasNewValue = 1; 30278let opNewValue = 0; 30279let isAccumulator = 1; 30280let isCVI = 1; 30281let isPseudo = 1; 30282let isCodeGenOnly = 1; 30283let DecoderNamespace = "EXT_mmvec"; 30284let Constraints = "$Vx32 = $Vx32in"; 30285} 30286def V6_vaddhq : HInst< 30287(outs HvxVR:$Vx32), 30288(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30289"if ($Qv4) $Vx32.h += $Vu32.h", 30290tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30291let Inst{7-5} = 0b001; 30292let Inst{13-13} = 0b1; 30293let Inst{21-16} = 0b000001; 30294let Inst{31-24} = 0b00011110; 30295let hasNewValue = 1; 30296let opNewValue = 0; 30297let isAccumulator = 1; 30298let isCVI = 1; 30299let DecoderNamespace = "EXT_mmvec"; 30300let Constraints = "$Vx32 = $Vx32in"; 30301} 30302def V6_vaddhq_alt : HInst< 30303(outs HvxVR:$Vx32), 30304(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30305"if ($Qv4.h) $Vx32.h += $Vu32.h", 30306PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30307let hasNewValue = 1; 30308let opNewValue = 0; 30309let isAccumulator = 1; 30310let isCVI = 1; 30311let isPseudo = 1; 30312let isCodeGenOnly = 1; 30313let DecoderNamespace = "EXT_mmvec"; 30314let Constraints = "$Vx32 = $Vx32in"; 30315} 30316def V6_vaddhsat : HInst< 30317(outs HvxVR:$Vd32), 30318(ins HvxVR:$Vu32, HvxVR:$Vv32), 30319"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat", 30320tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30321let Inst{7-5} = 0b011; 30322let Inst{13-13} = 0b0; 30323let Inst{31-21} = 0b00011100010; 30324let hasNewValue = 1; 30325let opNewValue = 0; 30326let isCVI = 1; 30327let DecoderNamespace = "EXT_mmvec"; 30328} 30329def V6_vaddhsat_alt : HInst< 30330(outs HvxVR:$Vd32), 30331(ins HvxVR:$Vu32, HvxVR:$Vv32), 30332"$Vd32 = vaddh($Vu32,$Vv32):sat", 30333PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30334let hasNewValue = 1; 30335let opNewValue = 0; 30336let isCVI = 1; 30337let isPseudo = 1; 30338let isCodeGenOnly = 1; 30339let DecoderNamespace = "EXT_mmvec"; 30340} 30341def V6_vaddhsat_dv : HInst< 30342(outs HvxWR:$Vdd32), 30343(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30344"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat", 30345tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30346let Inst{7-5} = 0b001; 30347let Inst{13-13} = 0b0; 30348let Inst{31-21} = 0b00011100100; 30349let hasNewValue = 1; 30350let opNewValue = 0; 30351let isCVI = 1; 30352let DecoderNamespace = "EXT_mmvec"; 30353} 30354def V6_vaddhsat_dv_alt : HInst< 30355(outs HvxWR:$Vdd32), 30356(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30357"$Vdd32 = vaddh($Vuu32,$Vvv32):sat", 30358PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30359let hasNewValue = 1; 30360let opNewValue = 0; 30361let isCVI = 1; 30362let isPseudo = 1; 30363let isCodeGenOnly = 1; 30364let DecoderNamespace = "EXT_mmvec"; 30365} 30366def V6_vaddhw : HInst< 30367(outs HvxWR:$Vdd32), 30368(ins HvxVR:$Vu32, HvxVR:$Vv32), 30369"$Vdd32.w = vadd($Vu32.h,$Vv32.h)", 30370tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30371let Inst{7-5} = 0b100; 30372let Inst{13-13} = 0b0; 30373let Inst{31-21} = 0b00011100101; 30374let hasNewValue = 1; 30375let opNewValue = 0; 30376let isCVI = 1; 30377let DecoderNamespace = "EXT_mmvec"; 30378} 30379def V6_vaddhw_acc : HInst< 30380(outs HvxWR:$Vxx32), 30381(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30382"$Vxx32.w += vadd($Vu32.h,$Vv32.h)", 30383tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30384let Inst{7-5} = 0b010; 30385let Inst{13-13} = 0b1; 30386let Inst{31-21} = 0b00011100001; 30387let hasNewValue = 1; 30388let opNewValue = 0; 30389let isAccumulator = 1; 30390let isCVI = 1; 30391let DecoderNamespace = "EXT_mmvec"; 30392let Constraints = "$Vxx32 = $Vxx32in"; 30393} 30394def V6_vaddhw_acc_alt : HInst< 30395(outs HvxWR:$Vxx32), 30396(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30397"$Vxx32 += vaddh($Vu32,$Vv32)", 30398PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30399let hasNewValue = 1; 30400let opNewValue = 0; 30401let isAccumulator = 1; 30402let isCVI = 1; 30403let isPseudo = 1; 30404let isCodeGenOnly = 1; 30405let DecoderNamespace = "EXT_mmvec"; 30406let Constraints = "$Vxx32 = $Vxx32in"; 30407} 30408def V6_vaddhw_alt : HInst< 30409(outs HvxWR:$Vdd32), 30410(ins HvxVR:$Vu32, HvxVR:$Vv32), 30411"$Vdd32 = vaddh($Vu32,$Vv32)", 30412PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30413let hasNewValue = 1; 30414let opNewValue = 0; 30415let isCVI = 1; 30416let isPseudo = 1; 30417let isCodeGenOnly = 1; 30418let DecoderNamespace = "EXT_mmvec"; 30419} 30420def V6_vaddubh : HInst< 30421(outs HvxWR:$Vdd32), 30422(ins HvxVR:$Vu32, HvxVR:$Vv32), 30423"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)", 30424tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30425let Inst{7-5} = 0b010; 30426let Inst{13-13} = 0b0; 30427let Inst{31-21} = 0b00011100101; 30428let hasNewValue = 1; 30429let opNewValue = 0; 30430let isCVI = 1; 30431let DecoderNamespace = "EXT_mmvec"; 30432} 30433def V6_vaddubh_acc : HInst< 30434(outs HvxWR:$Vxx32), 30435(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30436"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)", 30437tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30438let Inst{7-5} = 0b101; 30439let Inst{13-13} = 0b1; 30440let Inst{31-21} = 0b00011100010; 30441let hasNewValue = 1; 30442let opNewValue = 0; 30443let isAccumulator = 1; 30444let isCVI = 1; 30445let DecoderNamespace = "EXT_mmvec"; 30446let Constraints = "$Vxx32 = $Vxx32in"; 30447} 30448def V6_vaddubh_acc_alt : HInst< 30449(outs HvxWR:$Vxx32), 30450(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30451"$Vxx32 += vaddub($Vu32,$Vv32)", 30452PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30453let hasNewValue = 1; 30454let opNewValue = 0; 30455let isAccumulator = 1; 30456let isCVI = 1; 30457let isPseudo = 1; 30458let isCodeGenOnly = 1; 30459let DecoderNamespace = "EXT_mmvec"; 30460let Constraints = "$Vxx32 = $Vxx32in"; 30461} 30462def V6_vaddubh_alt : HInst< 30463(outs HvxWR:$Vdd32), 30464(ins HvxVR:$Vu32, HvxVR:$Vv32), 30465"$Vdd32 = vaddub($Vu32,$Vv32)", 30466PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30467let hasNewValue = 1; 30468let opNewValue = 0; 30469let isCVI = 1; 30470let isPseudo = 1; 30471let isCodeGenOnly = 1; 30472let DecoderNamespace = "EXT_mmvec"; 30473} 30474def V6_vaddubsat : HInst< 30475(outs HvxVR:$Vd32), 30476(ins HvxVR:$Vu32, HvxVR:$Vv32), 30477"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat", 30478tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30479let Inst{7-5} = 0b001; 30480let Inst{13-13} = 0b0; 30481let Inst{31-21} = 0b00011100010; 30482let hasNewValue = 1; 30483let opNewValue = 0; 30484let isCVI = 1; 30485let DecoderNamespace = "EXT_mmvec"; 30486} 30487def V6_vaddubsat_alt : HInst< 30488(outs HvxVR:$Vd32), 30489(ins HvxVR:$Vu32, HvxVR:$Vv32), 30490"$Vd32 = vaddub($Vu32,$Vv32):sat", 30491PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30492let hasNewValue = 1; 30493let opNewValue = 0; 30494let isCVI = 1; 30495let isPseudo = 1; 30496let isCodeGenOnly = 1; 30497let DecoderNamespace = "EXT_mmvec"; 30498} 30499def V6_vaddubsat_dv : HInst< 30500(outs HvxWR:$Vdd32), 30501(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30502"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat", 30503tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30504let Inst{7-5} = 0b111; 30505let Inst{13-13} = 0b0; 30506let Inst{31-21} = 0b00011100011; 30507let hasNewValue = 1; 30508let opNewValue = 0; 30509let isCVI = 1; 30510let DecoderNamespace = "EXT_mmvec"; 30511} 30512def V6_vaddubsat_dv_alt : HInst< 30513(outs HvxWR:$Vdd32), 30514(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30515"$Vdd32 = vaddub($Vuu32,$Vvv32):sat", 30516PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30517let hasNewValue = 1; 30518let opNewValue = 0; 30519let isCVI = 1; 30520let isPseudo = 1; 30521let isCodeGenOnly = 1; 30522let DecoderNamespace = "EXT_mmvec"; 30523} 30524def V6_vaddububb_sat : HInst< 30525(outs HvxVR:$Vd32), 30526(ins HvxVR:$Vu32, HvxVR:$Vv32), 30527"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat", 30528tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30529let Inst{7-5} = 0b100; 30530let Inst{13-13} = 0b0; 30531let Inst{31-21} = 0b00011110101; 30532let hasNewValue = 1; 30533let opNewValue = 0; 30534let isCVI = 1; 30535let DecoderNamespace = "EXT_mmvec"; 30536} 30537def V6_vadduhsat : HInst< 30538(outs HvxVR:$Vd32), 30539(ins HvxVR:$Vu32, HvxVR:$Vv32), 30540"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat", 30541tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30542let Inst{7-5} = 0b010; 30543let Inst{13-13} = 0b0; 30544let Inst{31-21} = 0b00011100010; 30545let hasNewValue = 1; 30546let opNewValue = 0; 30547let isCVI = 1; 30548let DecoderNamespace = "EXT_mmvec"; 30549} 30550def V6_vadduhsat_alt : HInst< 30551(outs HvxVR:$Vd32), 30552(ins HvxVR:$Vu32, HvxVR:$Vv32), 30553"$Vd32 = vadduh($Vu32,$Vv32):sat", 30554PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30555let hasNewValue = 1; 30556let opNewValue = 0; 30557let isCVI = 1; 30558let isPseudo = 1; 30559let isCodeGenOnly = 1; 30560let DecoderNamespace = "EXT_mmvec"; 30561} 30562def V6_vadduhsat_dv : HInst< 30563(outs HvxWR:$Vdd32), 30564(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30565"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat", 30566tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30567let Inst{7-5} = 0b000; 30568let Inst{13-13} = 0b0; 30569let Inst{31-21} = 0b00011100100; 30570let hasNewValue = 1; 30571let opNewValue = 0; 30572let isCVI = 1; 30573let DecoderNamespace = "EXT_mmvec"; 30574} 30575def V6_vadduhsat_dv_alt : HInst< 30576(outs HvxWR:$Vdd32), 30577(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30578"$Vdd32 = vadduh($Vuu32,$Vvv32):sat", 30579PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30580let hasNewValue = 1; 30581let opNewValue = 0; 30582let isCVI = 1; 30583let isPseudo = 1; 30584let isCodeGenOnly = 1; 30585let DecoderNamespace = "EXT_mmvec"; 30586} 30587def V6_vadduhw : HInst< 30588(outs HvxWR:$Vdd32), 30589(ins HvxVR:$Vu32, HvxVR:$Vv32), 30590"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)", 30591tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30592let Inst{7-5} = 0b011; 30593let Inst{13-13} = 0b0; 30594let Inst{31-21} = 0b00011100101; 30595let hasNewValue = 1; 30596let opNewValue = 0; 30597let isCVI = 1; 30598let DecoderNamespace = "EXT_mmvec"; 30599} 30600def V6_vadduhw_acc : HInst< 30601(outs HvxWR:$Vxx32), 30602(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30603"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)", 30604tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30605let Inst{7-5} = 0b100; 30606let Inst{13-13} = 0b1; 30607let Inst{31-21} = 0b00011100010; 30608let hasNewValue = 1; 30609let opNewValue = 0; 30610let isAccumulator = 1; 30611let isCVI = 1; 30612let DecoderNamespace = "EXT_mmvec"; 30613let Constraints = "$Vxx32 = $Vxx32in"; 30614} 30615def V6_vadduhw_acc_alt : HInst< 30616(outs HvxWR:$Vxx32), 30617(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30618"$Vxx32 += vadduh($Vu32,$Vv32)", 30619PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30620let hasNewValue = 1; 30621let opNewValue = 0; 30622let isAccumulator = 1; 30623let isCVI = 1; 30624let isPseudo = 1; 30625let isCodeGenOnly = 1; 30626let DecoderNamespace = "EXT_mmvec"; 30627let Constraints = "$Vxx32 = $Vxx32in"; 30628} 30629def V6_vadduhw_alt : HInst< 30630(outs HvxWR:$Vdd32), 30631(ins HvxVR:$Vu32, HvxVR:$Vv32), 30632"$Vdd32 = vadduh($Vu32,$Vv32)", 30633PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30634let hasNewValue = 1; 30635let opNewValue = 0; 30636let isCVI = 1; 30637let isPseudo = 1; 30638let isCodeGenOnly = 1; 30639let DecoderNamespace = "EXT_mmvec"; 30640} 30641def V6_vadduwsat : HInst< 30642(outs HvxVR:$Vd32), 30643(ins HvxVR:$Vu32, HvxVR:$Vv32), 30644"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat", 30645tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30646let Inst{7-5} = 0b001; 30647let Inst{13-13} = 0b0; 30648let Inst{31-21} = 0b00011111011; 30649let hasNewValue = 1; 30650let opNewValue = 0; 30651let isCVI = 1; 30652let DecoderNamespace = "EXT_mmvec"; 30653} 30654def V6_vadduwsat_alt : HInst< 30655(outs HvxVR:$Vd32), 30656(ins HvxVR:$Vu32, HvxVR:$Vv32), 30657"$Vd32 = vadduw($Vu32,$Vv32):sat", 30658PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30659let hasNewValue = 1; 30660let opNewValue = 0; 30661let isCVI = 1; 30662let isPseudo = 1; 30663let isCodeGenOnly = 1; 30664let DecoderNamespace = "EXT_mmvec"; 30665} 30666def V6_vadduwsat_dv : HInst< 30667(outs HvxWR:$Vdd32), 30668(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30669"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat", 30670tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 30671let Inst{7-5} = 0b010; 30672let Inst{13-13} = 0b0; 30673let Inst{31-21} = 0b00011110101; 30674let hasNewValue = 1; 30675let opNewValue = 0; 30676let isCVI = 1; 30677let DecoderNamespace = "EXT_mmvec"; 30678} 30679def V6_vadduwsat_dv_alt : HInst< 30680(outs HvxWR:$Vdd32), 30681(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30682"$Vdd32 = vadduw($Vuu32,$Vvv32):sat", 30683PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30684let hasNewValue = 1; 30685let opNewValue = 0; 30686let isCVI = 1; 30687let isPseudo = 1; 30688let isCodeGenOnly = 1; 30689let DecoderNamespace = "EXT_mmvec"; 30690} 30691def V6_vaddw : HInst< 30692(outs HvxVR:$Vd32), 30693(ins HvxVR:$Vu32, HvxVR:$Vv32), 30694"$Vd32.w = vadd($Vu32.w,$Vv32.w)", 30695tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30696let Inst{7-5} = 0b000; 30697let Inst{13-13} = 0b0; 30698let Inst{31-21} = 0b00011100010; 30699let hasNewValue = 1; 30700let opNewValue = 0; 30701let isCVI = 1; 30702let DecoderNamespace = "EXT_mmvec"; 30703} 30704def V6_vaddw_alt : HInst< 30705(outs HvxVR:$Vd32), 30706(ins HvxVR:$Vu32, HvxVR:$Vv32), 30707"$Vd32 = vaddw($Vu32,$Vv32)", 30708PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30709let hasNewValue = 1; 30710let opNewValue = 0; 30711let isCVI = 1; 30712let isPseudo = 1; 30713let isCodeGenOnly = 1; 30714let DecoderNamespace = "EXT_mmvec"; 30715} 30716def V6_vaddw_dv : HInst< 30717(outs HvxWR:$Vdd32), 30718(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30719"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)", 30720tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30721let Inst{7-5} = 0b110; 30722let Inst{13-13} = 0b0; 30723let Inst{31-21} = 0b00011100011; 30724let hasNewValue = 1; 30725let opNewValue = 0; 30726let isCVI = 1; 30727let DecoderNamespace = "EXT_mmvec"; 30728} 30729def V6_vaddw_dv_alt : HInst< 30730(outs HvxWR:$Vdd32), 30731(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30732"$Vdd32 = vaddw($Vuu32,$Vvv32)", 30733PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30734let hasNewValue = 1; 30735let opNewValue = 0; 30736let isCVI = 1; 30737let isPseudo = 1; 30738let isCodeGenOnly = 1; 30739let DecoderNamespace = "EXT_mmvec"; 30740} 30741def V6_vaddwnq : HInst< 30742(outs HvxVR:$Vx32), 30743(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30744"if (!$Qv4) $Vx32.w += $Vu32.w", 30745tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30746let Inst{7-5} = 0b101; 30747let Inst{13-13} = 0b1; 30748let Inst{21-16} = 0b000001; 30749let Inst{31-24} = 0b00011110; 30750let hasNewValue = 1; 30751let opNewValue = 0; 30752let isAccumulator = 1; 30753let isCVI = 1; 30754let DecoderNamespace = "EXT_mmvec"; 30755let Constraints = "$Vx32 = $Vx32in"; 30756} 30757def V6_vaddwnq_alt : HInst< 30758(outs HvxVR:$Vx32), 30759(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30760"if (!$Qv4.w) $Vx32.w += $Vu32.w", 30761PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30762let hasNewValue = 1; 30763let opNewValue = 0; 30764let isAccumulator = 1; 30765let isCVI = 1; 30766let isPseudo = 1; 30767let isCodeGenOnly = 1; 30768let DecoderNamespace = "EXT_mmvec"; 30769let Constraints = "$Vx32 = $Vx32in"; 30770} 30771def V6_vaddwq : HInst< 30772(outs HvxVR:$Vx32), 30773(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30774"if ($Qv4) $Vx32.w += $Vu32.w", 30775tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30776let Inst{7-5} = 0b010; 30777let Inst{13-13} = 0b1; 30778let Inst{21-16} = 0b000001; 30779let Inst{31-24} = 0b00011110; 30780let hasNewValue = 1; 30781let opNewValue = 0; 30782let isAccumulator = 1; 30783let isCVI = 1; 30784let DecoderNamespace = "EXT_mmvec"; 30785let Constraints = "$Vx32 = $Vx32in"; 30786} 30787def V6_vaddwq_alt : HInst< 30788(outs HvxVR:$Vx32), 30789(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30790"if ($Qv4.w) $Vx32.w += $Vu32.w", 30791PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30792let hasNewValue = 1; 30793let opNewValue = 0; 30794let isAccumulator = 1; 30795let isCVI = 1; 30796let isPseudo = 1; 30797let isCodeGenOnly = 1; 30798let DecoderNamespace = "EXT_mmvec"; 30799let Constraints = "$Vx32 = $Vx32in"; 30800} 30801def V6_vaddwsat : HInst< 30802(outs HvxVR:$Vd32), 30803(ins HvxVR:$Vu32, HvxVR:$Vv32), 30804"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat", 30805tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30806let Inst{7-5} = 0b100; 30807let Inst{13-13} = 0b0; 30808let Inst{31-21} = 0b00011100010; 30809let hasNewValue = 1; 30810let opNewValue = 0; 30811let isCVI = 1; 30812let DecoderNamespace = "EXT_mmvec"; 30813} 30814def V6_vaddwsat_alt : HInst< 30815(outs HvxVR:$Vd32), 30816(ins HvxVR:$Vu32, HvxVR:$Vv32), 30817"$Vd32 = vaddw($Vu32,$Vv32):sat", 30818PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30819let hasNewValue = 1; 30820let opNewValue = 0; 30821let isCVI = 1; 30822let isPseudo = 1; 30823let isCodeGenOnly = 1; 30824let DecoderNamespace = "EXT_mmvec"; 30825} 30826def V6_vaddwsat_dv : HInst< 30827(outs HvxWR:$Vdd32), 30828(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30829"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat", 30830tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30831let Inst{7-5} = 0b010; 30832let Inst{13-13} = 0b0; 30833let Inst{31-21} = 0b00011100100; 30834let hasNewValue = 1; 30835let opNewValue = 0; 30836let isCVI = 1; 30837let DecoderNamespace = "EXT_mmvec"; 30838} 30839def V6_vaddwsat_dv_alt : HInst< 30840(outs HvxWR:$Vdd32), 30841(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30842"$Vdd32 = vaddw($Vuu32,$Vvv32):sat", 30843PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30844let hasNewValue = 1; 30845let opNewValue = 0; 30846let isCVI = 1; 30847let isPseudo = 1; 30848let isCodeGenOnly = 1; 30849let DecoderNamespace = "EXT_mmvec"; 30850} 30851def V6_valignb : HInst< 30852(outs HvxVR:$Vd32), 30853(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30854"$Vd32 = valign($Vu32,$Vv32,$Rt8)", 30855tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 30856let Inst{7-5} = 0b000; 30857let Inst{13-13} = 0b0; 30858let Inst{31-24} = 0b00011011; 30859let hasNewValue = 1; 30860let opNewValue = 0; 30861let isCVI = 1; 30862let DecoderNamespace = "EXT_mmvec"; 30863} 30864def V6_valignbi : HInst< 30865(outs HvxVR:$Vd32), 30866(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 30867"$Vd32 = valign($Vu32,$Vv32,#$Ii)", 30868tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 30869let Inst{13-13} = 0b1; 30870let Inst{31-21} = 0b00011110001; 30871let hasNewValue = 1; 30872let opNewValue = 0; 30873let isCVI = 1; 30874let DecoderNamespace = "EXT_mmvec"; 30875} 30876def V6_vand : HInst< 30877(outs HvxVR:$Vd32), 30878(ins HvxVR:$Vu32, HvxVR:$Vv32), 30879"$Vd32 = vand($Vu32,$Vv32)", 30880tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30881let Inst{7-5} = 0b101; 30882let Inst{13-13} = 0b0; 30883let Inst{31-21} = 0b00011100001; 30884let hasNewValue = 1; 30885let opNewValue = 0; 30886let isCVI = 1; 30887let DecoderNamespace = "EXT_mmvec"; 30888} 30889def V6_vandnqrt : HInst< 30890(outs HvxVR:$Vd32), 30891(ins HvxQR:$Qu4, IntRegs:$Rt32), 30892"$Vd32 = vand(!$Qu4,$Rt32)", 30893tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> { 30894let Inst{7-5} = 0b101; 30895let Inst{13-10} = 0b0001; 30896let Inst{31-21} = 0b00011001101; 30897let hasNewValue = 1; 30898let opNewValue = 0; 30899let isCVI = 1; 30900let DecoderNamespace = "EXT_mmvec"; 30901} 30902def V6_vandnqrt_acc : HInst< 30903(outs HvxVR:$Vx32), 30904(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30905"$Vx32 |= vand(!$Qu4,$Rt32)", 30906tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> { 30907let Inst{7-5} = 0b011; 30908let Inst{13-10} = 0b1001; 30909let Inst{31-21} = 0b00011001011; 30910let hasNewValue = 1; 30911let opNewValue = 0; 30912let isAccumulator = 1; 30913let isCVI = 1; 30914let DecoderNamespace = "EXT_mmvec"; 30915let Constraints = "$Vx32 = $Vx32in"; 30916} 30917def V6_vandnqrt_acc_alt : HInst< 30918(outs HvxVR:$Vx32), 30919(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30920"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)", 30921PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30922let hasNewValue = 1; 30923let opNewValue = 0; 30924let isAccumulator = 1; 30925let isCVI = 1; 30926let isPseudo = 1; 30927let isCodeGenOnly = 1; 30928let DecoderNamespace = "EXT_mmvec"; 30929let Constraints = "$Vx32 = $Vx32in"; 30930} 30931def V6_vandnqrt_alt : HInst< 30932(outs HvxVR:$Vd32), 30933(ins HvxQR:$Qu4, IntRegs:$Rt32), 30934"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)", 30935PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30936let hasNewValue = 1; 30937let opNewValue = 0; 30938let isCVI = 1; 30939let isPseudo = 1; 30940let isCodeGenOnly = 1; 30941let DecoderNamespace = "EXT_mmvec"; 30942} 30943def V6_vandqrt : HInst< 30944(outs HvxVR:$Vd32), 30945(ins HvxQR:$Qu4, IntRegs:$Rt32), 30946"$Vd32 = vand($Qu4,$Rt32)", 30947tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> { 30948let Inst{7-5} = 0b101; 30949let Inst{13-10} = 0b0000; 30950let Inst{31-21} = 0b00011001101; 30951let hasNewValue = 1; 30952let opNewValue = 0; 30953let isCVI = 1; 30954let DecoderNamespace = "EXT_mmvec"; 30955} 30956def V6_vandqrt_acc : HInst< 30957(outs HvxVR:$Vx32), 30958(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30959"$Vx32 |= vand($Qu4,$Rt32)", 30960tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> { 30961let Inst{7-5} = 0b011; 30962let Inst{13-10} = 0b1000; 30963let Inst{31-21} = 0b00011001011; 30964let hasNewValue = 1; 30965let opNewValue = 0; 30966let isAccumulator = 1; 30967let isCVI = 1; 30968let DecoderNamespace = "EXT_mmvec"; 30969let Constraints = "$Vx32 = $Vx32in"; 30970} 30971def V6_vandqrt_acc_alt : HInst< 30972(outs HvxVR:$Vx32), 30973(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30974"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)", 30975PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30976let hasNewValue = 1; 30977let opNewValue = 0; 30978let isAccumulator = 1; 30979let isCVI = 1; 30980let isPseudo = 1; 30981let isCodeGenOnly = 1; 30982let DecoderNamespace = "EXT_mmvec"; 30983let Constraints = "$Vx32 = $Vx32in"; 30984} 30985def V6_vandqrt_alt : HInst< 30986(outs HvxVR:$Vd32), 30987(ins HvxQR:$Qu4, IntRegs:$Rt32), 30988"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)", 30989PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30990let hasNewValue = 1; 30991let opNewValue = 0; 30992let isCVI = 1; 30993let isPseudo = 1; 30994let isCodeGenOnly = 1; 30995let DecoderNamespace = "EXT_mmvec"; 30996} 30997def V6_vandvnqv : HInst< 30998(outs HvxVR:$Vd32), 30999(ins HvxQR:$Qv4, HvxVR:$Vu32), 31000"$Vd32 = vand(!$Qv4,$Vu32)", 31001tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 31002let Inst{7-5} = 0b001; 31003let Inst{13-13} = 0b1; 31004let Inst{21-16} = 0b000011; 31005let Inst{31-24} = 0b00011110; 31006let hasNewValue = 1; 31007let opNewValue = 0; 31008let isCVI = 1; 31009let DecoderNamespace = "EXT_mmvec"; 31010} 31011def V6_vandvqv : HInst< 31012(outs HvxVR:$Vd32), 31013(ins HvxQR:$Qv4, HvxVR:$Vu32), 31014"$Vd32 = vand($Qv4,$Vu32)", 31015tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 31016let Inst{7-5} = 0b000; 31017let Inst{13-13} = 0b1; 31018let Inst{21-16} = 0b000011; 31019let Inst{31-24} = 0b00011110; 31020let hasNewValue = 1; 31021let opNewValue = 0; 31022let isCVI = 1; 31023let DecoderNamespace = "EXT_mmvec"; 31024} 31025def V6_vandvrt : HInst< 31026(outs HvxQR:$Qd4), 31027(ins HvxVR:$Vu32, IntRegs:$Rt32), 31028"$Qd4 = vand($Vu32,$Rt32)", 31029tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> { 31030let Inst{7-2} = 0b010010; 31031let Inst{13-13} = 0b0; 31032let Inst{31-21} = 0b00011001101; 31033let hasNewValue = 1; 31034let opNewValue = 0; 31035let isCVI = 1; 31036let DecoderNamespace = "EXT_mmvec"; 31037} 31038def V6_vandvrt_acc : HInst< 31039(outs HvxQR:$Qx4), 31040(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 31041"$Qx4 |= vand($Vu32,$Rt32)", 31042tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> { 31043let Inst{7-2} = 0b100000; 31044let Inst{13-13} = 0b1; 31045let Inst{31-21} = 0b00011001011; 31046let isAccumulator = 1; 31047let isCVI = 1; 31048let DecoderNamespace = "EXT_mmvec"; 31049let Constraints = "$Qx4 = $Qx4in"; 31050} 31051def V6_vandvrt_acc_alt : HInst< 31052(outs HvxQR:$Qx4), 31053(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 31054"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)", 31055PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31056let isAccumulator = 1; 31057let isCVI = 1; 31058let isPseudo = 1; 31059let isCodeGenOnly = 1; 31060let DecoderNamespace = "EXT_mmvec"; 31061let Constraints = "$Qx4 = $Qx4in"; 31062} 31063def V6_vandvrt_alt : HInst< 31064(outs HvxQR:$Qd4), 31065(ins HvxVR:$Vu32, IntRegs:$Rt32), 31066"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)", 31067PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31068let hasNewValue = 1; 31069let opNewValue = 0; 31070let isCVI = 1; 31071let isPseudo = 1; 31072let isCodeGenOnly = 1; 31073let DecoderNamespace = "EXT_mmvec"; 31074} 31075def V6_vaslh : HInst< 31076(outs HvxVR:$Vd32), 31077(ins HvxVR:$Vu32, IntRegs:$Rt32), 31078"$Vd32.h = vasl($Vu32.h,$Rt32)", 31079tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31080let Inst{7-5} = 0b000; 31081let Inst{13-13} = 0b0; 31082let Inst{31-21} = 0b00011001100; 31083let hasNewValue = 1; 31084let opNewValue = 0; 31085let isCVI = 1; 31086let DecoderNamespace = "EXT_mmvec"; 31087} 31088def V6_vaslh_acc : HInst< 31089(outs HvxVR:$Vx32), 31090(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31091"$Vx32.h += vasl($Vu32.h,$Rt32)", 31092tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 31093let Inst{7-5} = 0b101; 31094let Inst{13-13} = 0b1; 31095let Inst{31-21} = 0b00011001101; 31096let hasNewValue = 1; 31097let opNewValue = 0; 31098let isAccumulator = 1; 31099let isCVI = 1; 31100let DecoderNamespace = "EXT_mmvec"; 31101let Constraints = "$Vx32 = $Vx32in"; 31102} 31103def V6_vaslh_acc_alt : HInst< 31104(outs HvxVR:$Vx32), 31105(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31106"$Vx32 += vaslh($Vu32,$Rt32)", 31107PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31108let hasNewValue = 1; 31109let opNewValue = 0; 31110let isAccumulator = 1; 31111let isCVI = 1; 31112let isPseudo = 1; 31113let isCodeGenOnly = 1; 31114let DecoderNamespace = "EXT_mmvec"; 31115let Constraints = "$Vx32 = $Vx32in"; 31116} 31117def V6_vaslh_alt : HInst< 31118(outs HvxVR:$Vd32), 31119(ins HvxVR:$Vu32, IntRegs:$Rt32), 31120"$Vd32 = vaslh($Vu32,$Rt32)", 31121PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31122let hasNewValue = 1; 31123let opNewValue = 0; 31124let isCVI = 1; 31125let isPseudo = 1; 31126let isCodeGenOnly = 1; 31127let DecoderNamespace = "EXT_mmvec"; 31128} 31129def V6_vaslhv : HInst< 31130(outs HvxVR:$Vd32), 31131(ins HvxVR:$Vu32, HvxVR:$Vv32), 31132"$Vd32.h = vasl($Vu32.h,$Vv32.h)", 31133tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31134let Inst{7-5} = 0b101; 31135let Inst{13-13} = 0b0; 31136let Inst{31-21} = 0b00011111101; 31137let hasNewValue = 1; 31138let opNewValue = 0; 31139let isCVI = 1; 31140let DecoderNamespace = "EXT_mmvec"; 31141} 31142def V6_vaslhv_alt : HInst< 31143(outs HvxVR:$Vd32), 31144(ins HvxVR:$Vu32, HvxVR:$Vv32), 31145"$Vd32 = vaslh($Vu32,$Vv32)", 31146PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31147let hasNewValue = 1; 31148let opNewValue = 0; 31149let isCVI = 1; 31150let isPseudo = 1; 31151let isCodeGenOnly = 1; 31152let DecoderNamespace = "EXT_mmvec"; 31153} 31154def V6_vaslw : HInst< 31155(outs HvxVR:$Vd32), 31156(ins HvxVR:$Vu32, IntRegs:$Rt32), 31157"$Vd32.w = vasl($Vu32.w,$Rt32)", 31158tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31159let Inst{7-5} = 0b111; 31160let Inst{13-13} = 0b0; 31161let Inst{31-21} = 0b00011001011; 31162let hasNewValue = 1; 31163let opNewValue = 0; 31164let isCVI = 1; 31165let DecoderNamespace = "EXT_mmvec"; 31166} 31167def V6_vaslw_acc : HInst< 31168(outs HvxVR:$Vx32), 31169(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31170"$Vx32.w += vasl($Vu32.w,$Rt32)", 31171tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 31172let Inst{7-5} = 0b010; 31173let Inst{13-13} = 0b1; 31174let Inst{31-21} = 0b00011001011; 31175let hasNewValue = 1; 31176let opNewValue = 0; 31177let isAccumulator = 1; 31178let isCVI = 1; 31179let DecoderNamespace = "EXT_mmvec"; 31180let Constraints = "$Vx32 = $Vx32in"; 31181} 31182def V6_vaslw_acc_alt : HInst< 31183(outs HvxVR:$Vx32), 31184(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31185"$Vx32 += vaslw($Vu32,$Rt32)", 31186PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31187let hasNewValue = 1; 31188let opNewValue = 0; 31189let isAccumulator = 1; 31190let isCVI = 1; 31191let isPseudo = 1; 31192let isCodeGenOnly = 1; 31193let DecoderNamespace = "EXT_mmvec"; 31194let Constraints = "$Vx32 = $Vx32in"; 31195} 31196def V6_vaslw_alt : HInst< 31197(outs HvxVR:$Vd32), 31198(ins HvxVR:$Vu32, IntRegs:$Rt32), 31199"$Vd32 = vaslw($Vu32,$Rt32)", 31200PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31201let hasNewValue = 1; 31202let opNewValue = 0; 31203let isCVI = 1; 31204let isPseudo = 1; 31205let isCodeGenOnly = 1; 31206let DecoderNamespace = "EXT_mmvec"; 31207} 31208def V6_vaslwv : HInst< 31209(outs HvxVR:$Vd32), 31210(ins HvxVR:$Vu32, HvxVR:$Vv32), 31211"$Vd32.w = vasl($Vu32.w,$Vv32.w)", 31212tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31213let Inst{7-5} = 0b100; 31214let Inst{13-13} = 0b0; 31215let Inst{31-21} = 0b00011111101; 31216let hasNewValue = 1; 31217let opNewValue = 0; 31218let isCVI = 1; 31219let DecoderNamespace = "EXT_mmvec"; 31220} 31221def V6_vaslwv_alt : HInst< 31222(outs HvxVR:$Vd32), 31223(ins HvxVR:$Vu32, HvxVR:$Vv32), 31224"$Vd32 = vaslw($Vu32,$Vv32)", 31225PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31226let hasNewValue = 1; 31227let opNewValue = 0; 31228let isCVI = 1; 31229let isPseudo = 1; 31230let isCodeGenOnly = 1; 31231let DecoderNamespace = "EXT_mmvec"; 31232} 31233def V6_vasr_into : HInst< 31234(outs HvxWR:$Vxx32), 31235(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31236"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)", 31237tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> { 31238let Inst{7-5} = 0b111; 31239let Inst{13-13} = 0b1; 31240let Inst{31-21} = 0b00011010101; 31241let hasNewValue = 1; 31242let opNewValue = 0; 31243let isCVI = 1; 31244let DecoderNamespace = "EXT_mmvec"; 31245let Constraints = "$Vxx32 = $Vxx32in"; 31246} 31247def V6_vasr_into_alt : HInst< 31248(outs HvxWR:$Vxx32), 31249(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31250"$Vxx32 = vasrinto($Vu32,$Vv32)", 31251PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 31252let hasNewValue = 1; 31253let opNewValue = 0; 31254let isCVI = 1; 31255let isPseudo = 1; 31256let isCodeGenOnly = 1; 31257let DecoderNamespace = "EXT_mmvec"; 31258let Constraints = "$Vxx32 = $Vxx32in"; 31259} 31260def V6_vasrh : HInst< 31261(outs HvxVR:$Vd32), 31262(ins HvxVR:$Vu32, IntRegs:$Rt32), 31263"$Vd32.h = vasr($Vu32.h,$Rt32)", 31264tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31265let Inst{7-5} = 0b110; 31266let Inst{13-13} = 0b0; 31267let Inst{31-21} = 0b00011001011; 31268let hasNewValue = 1; 31269let opNewValue = 0; 31270let isCVI = 1; 31271let DecoderNamespace = "EXT_mmvec"; 31272} 31273def V6_vasrh_acc : HInst< 31274(outs HvxVR:$Vx32), 31275(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31276"$Vx32.h += vasr($Vu32.h,$Rt32)", 31277tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 31278let Inst{7-5} = 0b111; 31279let Inst{13-13} = 0b1; 31280let Inst{31-21} = 0b00011001100; 31281let hasNewValue = 1; 31282let opNewValue = 0; 31283let isAccumulator = 1; 31284let isCVI = 1; 31285let DecoderNamespace = "EXT_mmvec"; 31286let Constraints = "$Vx32 = $Vx32in"; 31287} 31288def V6_vasrh_acc_alt : HInst< 31289(outs HvxVR:$Vx32), 31290(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31291"$Vx32 += vasrh($Vu32,$Rt32)", 31292PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31293let hasNewValue = 1; 31294let opNewValue = 0; 31295let isAccumulator = 1; 31296let isCVI = 1; 31297let isPseudo = 1; 31298let isCodeGenOnly = 1; 31299let DecoderNamespace = "EXT_mmvec"; 31300let Constraints = "$Vx32 = $Vx32in"; 31301} 31302def V6_vasrh_alt : HInst< 31303(outs HvxVR:$Vd32), 31304(ins HvxVR:$Vu32, IntRegs:$Rt32), 31305"$Vd32 = vasrh($Vu32,$Rt32)", 31306PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31307let hasNewValue = 1; 31308let opNewValue = 0; 31309let isCVI = 1; 31310let isPseudo = 1; 31311let isCodeGenOnly = 1; 31312let DecoderNamespace = "EXT_mmvec"; 31313} 31314def V6_vasrhbrndsat : HInst< 31315(outs HvxVR:$Vd32), 31316(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31317"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31318tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31319let Inst{7-5} = 0b000; 31320let Inst{13-13} = 0b1; 31321let Inst{31-24} = 0b00011011; 31322let hasNewValue = 1; 31323let opNewValue = 0; 31324let isCVI = 1; 31325let DecoderNamespace = "EXT_mmvec"; 31326} 31327def V6_vasrhbsat : HInst< 31328(outs HvxVR:$Vd32), 31329(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31330"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31331tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31332let Inst{7-5} = 0b000; 31333let Inst{13-13} = 0b0; 31334let Inst{31-24} = 0b00011000; 31335let hasNewValue = 1; 31336let opNewValue = 0; 31337let isCVI = 1; 31338let DecoderNamespace = "EXT_mmvec"; 31339} 31340def V6_vasrhubrndsat : HInst< 31341(outs HvxVR:$Vd32), 31342(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31343"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31344tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31345let Inst{7-5} = 0b111; 31346let Inst{13-13} = 0b0; 31347let Inst{31-24} = 0b00011011; 31348let hasNewValue = 1; 31349let opNewValue = 0; 31350let isCVI = 1; 31351let DecoderNamespace = "EXT_mmvec"; 31352} 31353def V6_vasrhubsat : HInst< 31354(outs HvxVR:$Vd32), 31355(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31356"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31357tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31358let Inst{7-5} = 0b110; 31359let Inst{13-13} = 0b0; 31360let Inst{31-24} = 0b00011011; 31361let hasNewValue = 1; 31362let opNewValue = 0; 31363let isCVI = 1; 31364let DecoderNamespace = "EXT_mmvec"; 31365} 31366def V6_vasrhv : HInst< 31367(outs HvxVR:$Vd32), 31368(ins HvxVR:$Vu32, HvxVR:$Vv32), 31369"$Vd32.h = vasr($Vu32.h,$Vv32.h)", 31370tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31371let Inst{7-5} = 0b011; 31372let Inst{13-13} = 0b0; 31373let Inst{31-21} = 0b00011111101; 31374let hasNewValue = 1; 31375let opNewValue = 0; 31376let isCVI = 1; 31377let DecoderNamespace = "EXT_mmvec"; 31378} 31379def V6_vasrhv_alt : HInst< 31380(outs HvxVR:$Vd32), 31381(ins HvxVR:$Vu32, HvxVR:$Vv32), 31382"$Vd32 = vasrh($Vu32,$Vv32)", 31383PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31384let hasNewValue = 1; 31385let opNewValue = 0; 31386let isCVI = 1; 31387let isPseudo = 1; 31388let isCodeGenOnly = 1; 31389let DecoderNamespace = "EXT_mmvec"; 31390} 31391def V6_vasruhubrndsat : HInst< 31392(outs HvxVR:$Vd32), 31393(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31394"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat", 31395tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31396let Inst{7-5} = 0b111; 31397let Inst{13-13} = 0b0; 31398let Inst{31-24} = 0b00011000; 31399let hasNewValue = 1; 31400let opNewValue = 0; 31401let isCVI = 1; 31402let DecoderNamespace = "EXT_mmvec"; 31403} 31404def V6_vasruhubsat : HInst< 31405(outs HvxVR:$Vd32), 31406(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31407"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat", 31408tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31409let Inst{7-5} = 0b101; 31410let Inst{13-13} = 0b1; 31411let Inst{31-24} = 0b00011000; 31412let hasNewValue = 1; 31413let opNewValue = 0; 31414let isCVI = 1; 31415let DecoderNamespace = "EXT_mmvec"; 31416} 31417def V6_vasruwuhrndsat : HInst< 31418(outs HvxVR:$Vd32), 31419(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31420"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat", 31421tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31422let Inst{7-5} = 0b001; 31423let Inst{13-13} = 0b0; 31424let Inst{31-24} = 0b00011000; 31425let hasNewValue = 1; 31426let opNewValue = 0; 31427let isCVI = 1; 31428let DecoderNamespace = "EXT_mmvec"; 31429} 31430def V6_vasruwuhsat : HInst< 31431(outs HvxVR:$Vd32), 31432(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31433"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat", 31434tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31435let Inst{7-5} = 0b100; 31436let Inst{13-13} = 0b1; 31437let Inst{31-24} = 0b00011000; 31438let hasNewValue = 1; 31439let opNewValue = 0; 31440let isCVI = 1; 31441let DecoderNamespace = "EXT_mmvec"; 31442} 31443def V6_vasrw : HInst< 31444(outs HvxVR:$Vd32), 31445(ins HvxVR:$Vu32, IntRegs:$Rt32), 31446"$Vd32.w = vasr($Vu32.w,$Rt32)", 31447tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31448let Inst{7-5} = 0b101; 31449let Inst{13-13} = 0b0; 31450let Inst{31-21} = 0b00011001011; 31451let hasNewValue = 1; 31452let opNewValue = 0; 31453let isCVI = 1; 31454let DecoderNamespace = "EXT_mmvec"; 31455} 31456def V6_vasrw_acc : HInst< 31457(outs HvxVR:$Vx32), 31458(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31459"$Vx32.w += vasr($Vu32.w,$Rt32)", 31460tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 31461let Inst{7-5} = 0b101; 31462let Inst{13-13} = 0b1; 31463let Inst{31-21} = 0b00011001011; 31464let hasNewValue = 1; 31465let opNewValue = 0; 31466let isAccumulator = 1; 31467let isCVI = 1; 31468let DecoderNamespace = "EXT_mmvec"; 31469let Constraints = "$Vx32 = $Vx32in"; 31470} 31471def V6_vasrw_acc_alt : HInst< 31472(outs HvxVR:$Vx32), 31473(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31474"$Vx32 += vasrw($Vu32,$Rt32)", 31475PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31476let hasNewValue = 1; 31477let opNewValue = 0; 31478let isAccumulator = 1; 31479let isCVI = 1; 31480let isPseudo = 1; 31481let isCodeGenOnly = 1; 31482let DecoderNamespace = "EXT_mmvec"; 31483let Constraints = "$Vx32 = $Vx32in"; 31484} 31485def V6_vasrw_alt : HInst< 31486(outs HvxVR:$Vd32), 31487(ins HvxVR:$Vu32, IntRegs:$Rt32), 31488"$Vd32 = vasrw($Vu32,$Rt32)", 31489PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31490let hasNewValue = 1; 31491let opNewValue = 0; 31492let isCVI = 1; 31493let isPseudo = 1; 31494let isCodeGenOnly = 1; 31495let DecoderNamespace = "EXT_mmvec"; 31496} 31497def V6_vasrwh : HInst< 31498(outs HvxVR:$Vd32), 31499(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31500"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)", 31501tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31502let Inst{7-5} = 0b010; 31503let Inst{13-13} = 0b0; 31504let Inst{31-24} = 0b00011011; 31505let hasNewValue = 1; 31506let opNewValue = 0; 31507let isCVI = 1; 31508let DecoderNamespace = "EXT_mmvec"; 31509} 31510def V6_vasrwhrndsat : HInst< 31511(outs HvxVR:$Vd32), 31512(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31513"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31514tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31515let Inst{7-5} = 0b100; 31516let Inst{13-13} = 0b0; 31517let Inst{31-24} = 0b00011011; 31518let hasNewValue = 1; 31519let opNewValue = 0; 31520let isCVI = 1; 31521let DecoderNamespace = "EXT_mmvec"; 31522} 31523def V6_vasrwhsat : HInst< 31524(outs HvxVR:$Vd32), 31525(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31526"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 31527tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31528let Inst{7-5} = 0b011; 31529let Inst{13-13} = 0b0; 31530let Inst{31-24} = 0b00011011; 31531let hasNewValue = 1; 31532let opNewValue = 0; 31533let isCVI = 1; 31534let DecoderNamespace = "EXT_mmvec"; 31535} 31536def V6_vasrwuhrndsat : HInst< 31537(outs HvxVR:$Vd32), 31538(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31539"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31540tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31541let Inst{7-5} = 0b010; 31542let Inst{13-13} = 0b0; 31543let Inst{31-24} = 0b00011000; 31544let hasNewValue = 1; 31545let opNewValue = 0; 31546let isCVI = 1; 31547let DecoderNamespace = "EXT_mmvec"; 31548} 31549def V6_vasrwuhsat : HInst< 31550(outs HvxVR:$Vd32), 31551(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31552"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 31553tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31554let Inst{7-5} = 0b101; 31555let Inst{13-13} = 0b0; 31556let Inst{31-24} = 0b00011011; 31557let hasNewValue = 1; 31558let opNewValue = 0; 31559let isCVI = 1; 31560let DecoderNamespace = "EXT_mmvec"; 31561} 31562def V6_vasrwv : HInst< 31563(outs HvxVR:$Vd32), 31564(ins HvxVR:$Vu32, HvxVR:$Vv32), 31565"$Vd32.w = vasr($Vu32.w,$Vv32.w)", 31566tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31567let Inst{7-5} = 0b000; 31568let Inst{13-13} = 0b0; 31569let Inst{31-21} = 0b00011111101; 31570let hasNewValue = 1; 31571let opNewValue = 0; 31572let isCVI = 1; 31573let DecoderNamespace = "EXT_mmvec"; 31574} 31575def V6_vasrwv_alt : HInst< 31576(outs HvxVR:$Vd32), 31577(ins HvxVR:$Vu32, HvxVR:$Vv32), 31578"$Vd32 = vasrw($Vu32,$Vv32)", 31579PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31580let hasNewValue = 1; 31581let opNewValue = 0; 31582let isCVI = 1; 31583let isPseudo = 1; 31584let isCodeGenOnly = 1; 31585let DecoderNamespace = "EXT_mmvec"; 31586} 31587def V6_vassign : HInst< 31588(outs HvxVR:$Vd32), 31589(ins HvxVR:$Vu32), 31590"$Vd32 = $Vu32", 31591tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 31592let Inst{7-5} = 0b111; 31593let Inst{13-13} = 0b1; 31594let Inst{31-16} = 0b0001111000000011; 31595let hasNewValue = 1; 31596let opNewValue = 0; 31597let isCVI = 1; 31598let DecoderNamespace = "EXT_mmvec"; 31599} 31600def V6_vassignp : HInst< 31601(outs HvxWR:$Vdd32), 31602(ins HvxWR:$Vuu32), 31603"$Vdd32 = $Vuu32", 31604CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> { 31605let hasNewValue = 1; 31606let opNewValue = 0; 31607let isCVI = 1; 31608let isPseudo = 1; 31609let DecoderNamespace = "EXT_mmvec"; 31610} 31611def V6_vavgb : HInst< 31612(outs HvxVR:$Vd32), 31613(ins HvxVR:$Vu32, HvxVR:$Vv32), 31614"$Vd32.b = vavg($Vu32.b,$Vv32.b)", 31615tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31616let Inst{7-5} = 0b100; 31617let Inst{13-13} = 0b1; 31618let Inst{31-21} = 0b00011111000; 31619let hasNewValue = 1; 31620let opNewValue = 0; 31621let isCVI = 1; 31622let DecoderNamespace = "EXT_mmvec"; 31623} 31624def V6_vavgb_alt : HInst< 31625(outs HvxVR:$Vd32), 31626(ins HvxVR:$Vu32, HvxVR:$Vv32), 31627"$Vd32 = vavgb($Vu32,$Vv32)", 31628PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31629let hasNewValue = 1; 31630let opNewValue = 0; 31631let isCVI = 1; 31632let isPseudo = 1; 31633let isCodeGenOnly = 1; 31634let DecoderNamespace = "EXT_mmvec"; 31635} 31636def V6_vavgbrnd : HInst< 31637(outs HvxVR:$Vd32), 31638(ins HvxVR:$Vu32, HvxVR:$Vv32), 31639"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd", 31640tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31641let Inst{7-5} = 0b101; 31642let Inst{13-13} = 0b1; 31643let Inst{31-21} = 0b00011111000; 31644let hasNewValue = 1; 31645let opNewValue = 0; 31646let isCVI = 1; 31647let DecoderNamespace = "EXT_mmvec"; 31648} 31649def V6_vavgbrnd_alt : HInst< 31650(outs HvxVR:$Vd32), 31651(ins HvxVR:$Vu32, HvxVR:$Vv32), 31652"$Vd32 = vavgb($Vu32,$Vv32):rnd", 31653PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31654let hasNewValue = 1; 31655let opNewValue = 0; 31656let isCVI = 1; 31657let isPseudo = 1; 31658let isCodeGenOnly = 1; 31659let DecoderNamespace = "EXT_mmvec"; 31660} 31661def V6_vavgh : HInst< 31662(outs HvxVR:$Vd32), 31663(ins HvxVR:$Vu32, HvxVR:$Vv32), 31664"$Vd32.h = vavg($Vu32.h,$Vv32.h)", 31665tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31666let Inst{7-5} = 0b110; 31667let Inst{13-13} = 0b0; 31668let Inst{31-21} = 0b00011100110; 31669let hasNewValue = 1; 31670let opNewValue = 0; 31671let isCVI = 1; 31672let DecoderNamespace = "EXT_mmvec"; 31673} 31674def V6_vavgh_alt : HInst< 31675(outs HvxVR:$Vd32), 31676(ins HvxVR:$Vu32, HvxVR:$Vv32), 31677"$Vd32 = vavgh($Vu32,$Vv32)", 31678PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31679let hasNewValue = 1; 31680let opNewValue = 0; 31681let isCVI = 1; 31682let isPseudo = 1; 31683let isCodeGenOnly = 1; 31684let DecoderNamespace = "EXT_mmvec"; 31685} 31686def V6_vavghrnd : HInst< 31687(outs HvxVR:$Vd32), 31688(ins HvxVR:$Vu32, HvxVR:$Vv32), 31689"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd", 31690tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31691let Inst{7-5} = 0b101; 31692let Inst{13-13} = 0b0; 31693let Inst{31-21} = 0b00011100111; 31694let hasNewValue = 1; 31695let opNewValue = 0; 31696let isCVI = 1; 31697let DecoderNamespace = "EXT_mmvec"; 31698} 31699def V6_vavghrnd_alt : HInst< 31700(outs HvxVR:$Vd32), 31701(ins HvxVR:$Vu32, HvxVR:$Vv32), 31702"$Vd32 = vavgh($Vu32,$Vv32):rnd", 31703PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31704let hasNewValue = 1; 31705let opNewValue = 0; 31706let isCVI = 1; 31707let isPseudo = 1; 31708let isCodeGenOnly = 1; 31709let DecoderNamespace = "EXT_mmvec"; 31710} 31711def V6_vavgub : HInst< 31712(outs HvxVR:$Vd32), 31713(ins HvxVR:$Vu32, HvxVR:$Vv32), 31714"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)", 31715tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31716let Inst{7-5} = 0b100; 31717let Inst{13-13} = 0b0; 31718let Inst{31-21} = 0b00011100110; 31719let hasNewValue = 1; 31720let opNewValue = 0; 31721let isCVI = 1; 31722let DecoderNamespace = "EXT_mmvec"; 31723} 31724def V6_vavgub_alt : HInst< 31725(outs HvxVR:$Vd32), 31726(ins HvxVR:$Vu32, HvxVR:$Vv32), 31727"$Vd32 = vavgub($Vu32,$Vv32)", 31728PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31729let hasNewValue = 1; 31730let opNewValue = 0; 31731let isCVI = 1; 31732let isPseudo = 1; 31733let isCodeGenOnly = 1; 31734let DecoderNamespace = "EXT_mmvec"; 31735} 31736def V6_vavgubrnd : HInst< 31737(outs HvxVR:$Vd32), 31738(ins HvxVR:$Vu32, HvxVR:$Vv32), 31739"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd", 31740tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31741let Inst{7-5} = 0b011; 31742let Inst{13-13} = 0b0; 31743let Inst{31-21} = 0b00011100111; 31744let hasNewValue = 1; 31745let opNewValue = 0; 31746let isCVI = 1; 31747let DecoderNamespace = "EXT_mmvec"; 31748} 31749def V6_vavgubrnd_alt : HInst< 31750(outs HvxVR:$Vd32), 31751(ins HvxVR:$Vu32, HvxVR:$Vv32), 31752"$Vd32 = vavgub($Vu32,$Vv32):rnd", 31753PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31754let hasNewValue = 1; 31755let opNewValue = 0; 31756let isCVI = 1; 31757let isPseudo = 1; 31758let isCodeGenOnly = 1; 31759let DecoderNamespace = "EXT_mmvec"; 31760} 31761def V6_vavguh : HInst< 31762(outs HvxVR:$Vd32), 31763(ins HvxVR:$Vu32, HvxVR:$Vv32), 31764"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)", 31765tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31766let Inst{7-5} = 0b101; 31767let Inst{13-13} = 0b0; 31768let Inst{31-21} = 0b00011100110; 31769let hasNewValue = 1; 31770let opNewValue = 0; 31771let isCVI = 1; 31772let DecoderNamespace = "EXT_mmvec"; 31773} 31774def V6_vavguh_alt : HInst< 31775(outs HvxVR:$Vd32), 31776(ins HvxVR:$Vu32, HvxVR:$Vv32), 31777"$Vd32 = vavguh($Vu32,$Vv32)", 31778PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31779let hasNewValue = 1; 31780let opNewValue = 0; 31781let isCVI = 1; 31782let isPseudo = 1; 31783let isCodeGenOnly = 1; 31784let DecoderNamespace = "EXT_mmvec"; 31785} 31786def V6_vavguhrnd : HInst< 31787(outs HvxVR:$Vd32), 31788(ins HvxVR:$Vu32, HvxVR:$Vv32), 31789"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd", 31790tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31791let Inst{7-5} = 0b100; 31792let Inst{13-13} = 0b0; 31793let Inst{31-21} = 0b00011100111; 31794let hasNewValue = 1; 31795let opNewValue = 0; 31796let isCVI = 1; 31797let DecoderNamespace = "EXT_mmvec"; 31798} 31799def V6_vavguhrnd_alt : HInst< 31800(outs HvxVR:$Vd32), 31801(ins HvxVR:$Vu32, HvxVR:$Vv32), 31802"$Vd32 = vavguh($Vu32,$Vv32):rnd", 31803PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31804let hasNewValue = 1; 31805let opNewValue = 0; 31806let isCVI = 1; 31807let isPseudo = 1; 31808let isCodeGenOnly = 1; 31809let DecoderNamespace = "EXT_mmvec"; 31810} 31811def V6_vavguw : HInst< 31812(outs HvxVR:$Vd32), 31813(ins HvxVR:$Vu32, HvxVR:$Vv32), 31814"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)", 31815tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31816let Inst{7-5} = 0b010; 31817let Inst{13-13} = 0b1; 31818let Inst{31-21} = 0b00011111000; 31819let hasNewValue = 1; 31820let opNewValue = 0; 31821let isCVI = 1; 31822let DecoderNamespace = "EXT_mmvec"; 31823} 31824def V6_vavguw_alt : HInst< 31825(outs HvxVR:$Vd32), 31826(ins HvxVR:$Vu32, HvxVR:$Vv32), 31827"$Vd32 = vavguw($Vu32,$Vv32)", 31828PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31829let hasNewValue = 1; 31830let opNewValue = 0; 31831let isCVI = 1; 31832let isPseudo = 1; 31833let isCodeGenOnly = 1; 31834let DecoderNamespace = "EXT_mmvec"; 31835} 31836def V6_vavguwrnd : HInst< 31837(outs HvxVR:$Vd32), 31838(ins HvxVR:$Vu32, HvxVR:$Vv32), 31839"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd", 31840tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31841let Inst{7-5} = 0b011; 31842let Inst{13-13} = 0b1; 31843let Inst{31-21} = 0b00011111000; 31844let hasNewValue = 1; 31845let opNewValue = 0; 31846let isCVI = 1; 31847let DecoderNamespace = "EXT_mmvec"; 31848} 31849def V6_vavguwrnd_alt : HInst< 31850(outs HvxVR:$Vd32), 31851(ins HvxVR:$Vu32, HvxVR:$Vv32), 31852"$Vd32 = vavguw($Vu32,$Vv32):rnd", 31853PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31854let hasNewValue = 1; 31855let opNewValue = 0; 31856let isCVI = 1; 31857let isPseudo = 1; 31858let isCodeGenOnly = 1; 31859let DecoderNamespace = "EXT_mmvec"; 31860} 31861def V6_vavgw : HInst< 31862(outs HvxVR:$Vd32), 31863(ins HvxVR:$Vu32, HvxVR:$Vv32), 31864"$Vd32.w = vavg($Vu32.w,$Vv32.w)", 31865tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31866let Inst{7-5} = 0b111; 31867let Inst{13-13} = 0b0; 31868let Inst{31-21} = 0b00011100110; 31869let hasNewValue = 1; 31870let opNewValue = 0; 31871let isCVI = 1; 31872let DecoderNamespace = "EXT_mmvec"; 31873} 31874def V6_vavgw_alt : HInst< 31875(outs HvxVR:$Vd32), 31876(ins HvxVR:$Vu32, HvxVR:$Vv32), 31877"$Vd32 = vavgw($Vu32,$Vv32)", 31878PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31879let hasNewValue = 1; 31880let opNewValue = 0; 31881let isCVI = 1; 31882let isPseudo = 1; 31883let isCodeGenOnly = 1; 31884let DecoderNamespace = "EXT_mmvec"; 31885} 31886def V6_vavgwrnd : HInst< 31887(outs HvxVR:$Vd32), 31888(ins HvxVR:$Vu32, HvxVR:$Vv32), 31889"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd", 31890tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31891let Inst{7-5} = 0b110; 31892let Inst{13-13} = 0b0; 31893let Inst{31-21} = 0b00011100111; 31894let hasNewValue = 1; 31895let opNewValue = 0; 31896let isCVI = 1; 31897let DecoderNamespace = "EXT_mmvec"; 31898} 31899def V6_vavgwrnd_alt : HInst< 31900(outs HvxVR:$Vd32), 31901(ins HvxVR:$Vu32, HvxVR:$Vv32), 31902"$Vd32 = vavgw($Vu32,$Vv32):rnd", 31903PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31904let hasNewValue = 1; 31905let opNewValue = 0; 31906let isCVI = 1; 31907let isPseudo = 1; 31908let isCodeGenOnly = 1; 31909let DecoderNamespace = "EXT_mmvec"; 31910} 31911def V6_vccombine : HInst< 31912(outs HvxWR:$Vdd32), 31913(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 31914"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 31915tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 31916let Inst{7-7} = 0b0; 31917let Inst{13-13} = 0b0; 31918let Inst{31-21} = 0b00011010011; 31919let isPredicated = 1; 31920let hasNewValue = 1; 31921let opNewValue = 0; 31922let isCVI = 1; 31923let DecoderNamespace = "EXT_mmvec"; 31924} 31925def V6_vcl0h : HInst< 31926(outs HvxVR:$Vd32), 31927(ins HvxVR:$Vu32), 31928"$Vd32.uh = vcl0($Vu32.uh)", 31929tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 31930let Inst{7-5} = 0b111; 31931let Inst{13-13} = 0b0; 31932let Inst{31-16} = 0b0001111000000010; 31933let hasNewValue = 1; 31934let opNewValue = 0; 31935let isCVI = 1; 31936let DecoderNamespace = "EXT_mmvec"; 31937} 31938def V6_vcl0h_alt : HInst< 31939(outs HvxVR:$Vd32), 31940(ins HvxVR:$Vu32), 31941"$Vd32 = vcl0h($Vu32)", 31942PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31943let hasNewValue = 1; 31944let opNewValue = 0; 31945let isCVI = 1; 31946let isPseudo = 1; 31947let isCodeGenOnly = 1; 31948let DecoderNamespace = "EXT_mmvec"; 31949} 31950def V6_vcl0w : HInst< 31951(outs HvxVR:$Vd32), 31952(ins HvxVR:$Vu32), 31953"$Vd32.uw = vcl0($Vu32.uw)", 31954tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 31955let Inst{7-5} = 0b101; 31956let Inst{13-13} = 0b0; 31957let Inst{31-16} = 0b0001111000000010; 31958let hasNewValue = 1; 31959let opNewValue = 0; 31960let isCVI = 1; 31961let DecoderNamespace = "EXT_mmvec"; 31962} 31963def V6_vcl0w_alt : HInst< 31964(outs HvxVR:$Vd32), 31965(ins HvxVR:$Vu32), 31966"$Vd32 = vcl0w($Vu32)", 31967PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31968let hasNewValue = 1; 31969let opNewValue = 0; 31970let isCVI = 1; 31971let isPseudo = 1; 31972let isCodeGenOnly = 1; 31973let DecoderNamespace = "EXT_mmvec"; 31974} 31975def V6_vcmov : HInst< 31976(outs HvxVR:$Vd32), 31977(ins PredRegs:$Ps4, HvxVR:$Vu32), 31978"if ($Ps4) $Vd32 = $Vu32", 31979tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 31980let Inst{7-7} = 0b0; 31981let Inst{13-13} = 0b0; 31982let Inst{31-16} = 0b0001101000000000; 31983let isPredicated = 1; 31984let hasNewValue = 1; 31985let opNewValue = 0; 31986let isCVI = 1; 31987let DecoderNamespace = "EXT_mmvec"; 31988} 31989def V6_vcombine : HInst< 31990(outs HvxWR:$Vdd32), 31991(ins HvxVR:$Vu32, HvxVR:$Vv32), 31992"$Vdd32 = vcombine($Vu32,$Vv32)", 31993tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 31994let Inst{7-5} = 0b111; 31995let Inst{13-13} = 0b0; 31996let Inst{31-21} = 0b00011111010; 31997let hasNewValue = 1; 31998let opNewValue = 0; 31999let isCVI = 1; 32000let isRegSequence = 1; 32001let DecoderNamespace = "EXT_mmvec"; 32002} 32003def V6_vd0 : HInst< 32004(outs HvxVR:$Vd32), 32005(ins), 32006"$Vd32 = #0", 32007CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 32008let hasNewValue = 1; 32009let opNewValue = 0; 32010let isCVI = 1; 32011let isPseudo = 1; 32012let isCodeGenOnly = 1; 32013let DecoderNamespace = "EXT_mmvec"; 32014} 32015def V6_vdd0 : HInst< 32016(outs HvxWR:$Vdd32), 32017(ins), 32018"$Vdd32 = #0", 32019tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> { 32020let hasNewValue = 1; 32021let opNewValue = 0; 32022let isCVI = 1; 32023let isPseudo = 1; 32024let isCodeGenOnly = 1; 32025let DecoderNamespace = "EXT_mmvec"; 32026} 32027def V6_vdeal : HInst< 32028(outs HvxVR:$Vy32, HvxVR:$Vx32), 32029(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 32030"vdeal($Vy32,$Vx32,$Rt32)", 32031tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 32032let Inst{7-5} = 0b010; 32033let Inst{13-13} = 0b1; 32034let Inst{31-21} = 0b00011001111; 32035let hasNewValue = 1; 32036let opNewValue = 0; 32037let hasNewValue2 = 1; 32038let opNewValue2 = 1; 32039let isCVI = 1; 32040let DecoderNamespace = "EXT_mmvec"; 32041let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 32042} 32043def V6_vdealb : HInst< 32044(outs HvxVR:$Vd32), 32045(ins HvxVR:$Vu32), 32046"$Vd32.b = vdeal($Vu32.b)", 32047tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 32048let Inst{7-5} = 0b111; 32049let Inst{13-13} = 0b0; 32050let Inst{31-16} = 0b0001111000000000; 32051let hasNewValue = 1; 32052let opNewValue = 0; 32053let isCVI = 1; 32054let DecoderNamespace = "EXT_mmvec"; 32055} 32056def V6_vdealb4w : HInst< 32057(outs HvxVR:$Vd32), 32058(ins HvxVR:$Vu32, HvxVR:$Vv32), 32059"$Vd32.b = vdeale($Vu32.b,$Vv32.b)", 32060tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 32061let Inst{7-5} = 0b111; 32062let Inst{13-13} = 0b0; 32063let Inst{31-21} = 0b00011111001; 32064let hasNewValue = 1; 32065let opNewValue = 0; 32066let isCVI = 1; 32067let DecoderNamespace = "EXT_mmvec"; 32068} 32069def V6_vdealb4w_alt : HInst< 32070(outs HvxVR:$Vd32), 32071(ins HvxVR:$Vu32, HvxVR:$Vv32), 32072"$Vd32 = vdealb4w($Vu32,$Vv32)", 32073PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32074let hasNewValue = 1; 32075let opNewValue = 0; 32076let isCVI = 1; 32077let isPseudo = 1; 32078let isCodeGenOnly = 1; 32079let DecoderNamespace = "EXT_mmvec"; 32080} 32081def V6_vdealb_alt : HInst< 32082(outs HvxVR:$Vd32), 32083(ins HvxVR:$Vu32), 32084"$Vd32 = vdealb($Vu32)", 32085PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32086let hasNewValue = 1; 32087let opNewValue = 0; 32088let isCVI = 1; 32089let isPseudo = 1; 32090let isCodeGenOnly = 1; 32091let DecoderNamespace = "EXT_mmvec"; 32092} 32093def V6_vdealh : HInst< 32094(outs HvxVR:$Vd32), 32095(ins HvxVR:$Vu32), 32096"$Vd32.h = vdeal($Vu32.h)", 32097tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 32098let Inst{7-5} = 0b110; 32099let Inst{13-13} = 0b0; 32100let Inst{31-16} = 0b0001111000000000; 32101let hasNewValue = 1; 32102let opNewValue = 0; 32103let isCVI = 1; 32104let DecoderNamespace = "EXT_mmvec"; 32105} 32106def V6_vdealh_alt : HInst< 32107(outs HvxVR:$Vd32), 32108(ins HvxVR:$Vu32), 32109"$Vd32 = vdealh($Vu32)", 32110PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32111let hasNewValue = 1; 32112let opNewValue = 0; 32113let isCVI = 1; 32114let isPseudo = 1; 32115let isCodeGenOnly = 1; 32116let DecoderNamespace = "EXT_mmvec"; 32117} 32118def V6_vdealvdd : HInst< 32119(outs HvxWR:$Vdd32), 32120(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32121"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)", 32122tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 32123let Inst{7-5} = 0b100; 32124let Inst{13-13} = 0b1; 32125let Inst{31-24} = 0b00011011; 32126let hasNewValue = 1; 32127let opNewValue = 0; 32128let isCVI = 1; 32129let DecoderNamespace = "EXT_mmvec"; 32130} 32131def V6_vdelta : HInst< 32132(outs HvxVR:$Vd32), 32133(ins HvxVR:$Vu32, HvxVR:$Vv32), 32134"$Vd32 = vdelta($Vu32,$Vv32)", 32135tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 32136let Inst{7-5} = 0b001; 32137let Inst{13-13} = 0b0; 32138let Inst{31-21} = 0b00011111001; 32139let hasNewValue = 1; 32140let opNewValue = 0; 32141let isCVI = 1; 32142let DecoderNamespace = "EXT_mmvec"; 32143} 32144def V6_vdmpybus : HInst< 32145(outs HvxVR:$Vd32), 32146(ins HvxVR:$Vu32, IntRegs:$Rt32), 32147"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)", 32148tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 32149let Inst{7-5} = 0b110; 32150let Inst{13-13} = 0b0; 32151let Inst{31-21} = 0b00011001000; 32152let hasNewValue = 1; 32153let opNewValue = 0; 32154let isCVI = 1; 32155let DecoderNamespace = "EXT_mmvec"; 32156} 32157def V6_vdmpybus_acc : HInst< 32158(outs HvxVR:$Vx32), 32159(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32160"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)", 32161tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 32162let Inst{7-5} = 0b110; 32163let Inst{13-13} = 0b1; 32164let Inst{31-21} = 0b00011001000; 32165let hasNewValue = 1; 32166let opNewValue = 0; 32167let isAccumulator = 1; 32168let isCVI = 1; 32169let DecoderNamespace = "EXT_mmvec"; 32170let Constraints = "$Vx32 = $Vx32in"; 32171} 32172def V6_vdmpybus_acc_alt : HInst< 32173(outs HvxVR:$Vx32), 32174(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32175"$Vx32 += vdmpybus($Vu32,$Rt32)", 32176PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32177let hasNewValue = 1; 32178let opNewValue = 0; 32179let isAccumulator = 1; 32180let isCVI = 1; 32181let isPseudo = 1; 32182let isCodeGenOnly = 1; 32183let DecoderNamespace = "EXT_mmvec"; 32184let Constraints = "$Vx32 = $Vx32in"; 32185} 32186def V6_vdmpybus_alt : HInst< 32187(outs HvxVR:$Vd32), 32188(ins HvxVR:$Vu32, IntRegs:$Rt32), 32189"$Vd32 = vdmpybus($Vu32,$Rt32)", 32190PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32191let hasNewValue = 1; 32192let opNewValue = 0; 32193let isCVI = 1; 32194let isPseudo = 1; 32195let isCodeGenOnly = 1; 32196let DecoderNamespace = "EXT_mmvec"; 32197} 32198def V6_vdmpybus_dv : HInst< 32199(outs HvxWR:$Vdd32), 32200(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32201"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)", 32202tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32203let Inst{7-5} = 0b111; 32204let Inst{13-13} = 0b0; 32205let Inst{31-21} = 0b00011001000; 32206let hasNewValue = 1; 32207let opNewValue = 0; 32208let isCVI = 1; 32209let DecoderNamespace = "EXT_mmvec"; 32210} 32211def V6_vdmpybus_dv_acc : HInst< 32212(outs HvxWR:$Vxx32), 32213(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32214"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)", 32215tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32216let Inst{7-5} = 0b111; 32217let Inst{13-13} = 0b1; 32218let Inst{31-21} = 0b00011001000; 32219let hasNewValue = 1; 32220let opNewValue = 0; 32221let isAccumulator = 1; 32222let isCVI = 1; 32223let DecoderNamespace = "EXT_mmvec"; 32224let Constraints = "$Vxx32 = $Vxx32in"; 32225} 32226def V6_vdmpybus_dv_acc_alt : HInst< 32227(outs HvxWR:$Vxx32), 32228(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32229"$Vxx32 += vdmpybus($Vuu32,$Rt32)", 32230PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32231let hasNewValue = 1; 32232let opNewValue = 0; 32233let isAccumulator = 1; 32234let isCVI = 1; 32235let isPseudo = 1; 32236let isCodeGenOnly = 1; 32237let DecoderNamespace = "EXT_mmvec"; 32238let Constraints = "$Vxx32 = $Vxx32in"; 32239} 32240def V6_vdmpybus_dv_alt : HInst< 32241(outs HvxWR:$Vdd32), 32242(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32243"$Vdd32 = vdmpybus($Vuu32,$Rt32)", 32244PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32245let hasNewValue = 1; 32246let opNewValue = 0; 32247let isCVI = 1; 32248let isPseudo = 1; 32249let isCodeGenOnly = 1; 32250let DecoderNamespace = "EXT_mmvec"; 32251} 32252def V6_vdmpyhb : HInst< 32253(outs HvxVR:$Vd32), 32254(ins HvxVR:$Vu32, IntRegs:$Rt32), 32255"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)", 32256tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 32257let Inst{7-5} = 0b010; 32258let Inst{13-13} = 0b0; 32259let Inst{31-21} = 0b00011001000; 32260let hasNewValue = 1; 32261let opNewValue = 0; 32262let isCVI = 1; 32263let DecoderNamespace = "EXT_mmvec"; 32264} 32265def V6_vdmpyhb_acc : HInst< 32266(outs HvxVR:$Vx32), 32267(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32268"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)", 32269tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 32270let Inst{7-5} = 0b011; 32271let Inst{13-13} = 0b1; 32272let Inst{31-21} = 0b00011001000; 32273let hasNewValue = 1; 32274let opNewValue = 0; 32275let isAccumulator = 1; 32276let isCVI = 1; 32277let DecoderNamespace = "EXT_mmvec"; 32278let Constraints = "$Vx32 = $Vx32in"; 32279} 32280def V6_vdmpyhb_acc_alt : HInst< 32281(outs HvxVR:$Vx32), 32282(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32283"$Vx32 += vdmpyhb($Vu32,$Rt32)", 32284PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32285let hasNewValue = 1; 32286let opNewValue = 0; 32287let isAccumulator = 1; 32288let isCVI = 1; 32289let isPseudo = 1; 32290let isCodeGenOnly = 1; 32291let DecoderNamespace = "EXT_mmvec"; 32292let Constraints = "$Vx32 = $Vx32in"; 32293} 32294def V6_vdmpyhb_alt : HInst< 32295(outs HvxVR:$Vd32), 32296(ins HvxVR:$Vu32, IntRegs:$Rt32), 32297"$Vd32 = vdmpyhb($Vu32,$Rt32)", 32298PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32299let hasNewValue = 1; 32300let opNewValue = 0; 32301let isCVI = 1; 32302let isPseudo = 1; 32303let isCodeGenOnly = 1; 32304let DecoderNamespace = "EXT_mmvec"; 32305} 32306def V6_vdmpyhb_dv : HInst< 32307(outs HvxWR:$Vdd32), 32308(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32309"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)", 32310tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32311let Inst{7-5} = 0b100; 32312let Inst{13-13} = 0b0; 32313let Inst{31-21} = 0b00011001001; 32314let hasNewValue = 1; 32315let opNewValue = 0; 32316let isCVI = 1; 32317let DecoderNamespace = "EXT_mmvec"; 32318} 32319def V6_vdmpyhb_dv_acc : HInst< 32320(outs HvxWR:$Vxx32), 32321(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32322"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)", 32323tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32324let Inst{7-5} = 0b100; 32325let Inst{13-13} = 0b1; 32326let Inst{31-21} = 0b00011001001; 32327let hasNewValue = 1; 32328let opNewValue = 0; 32329let isAccumulator = 1; 32330let isCVI = 1; 32331let DecoderNamespace = "EXT_mmvec"; 32332let Constraints = "$Vxx32 = $Vxx32in"; 32333} 32334def V6_vdmpyhb_dv_acc_alt : HInst< 32335(outs HvxWR:$Vxx32), 32336(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32337"$Vxx32 += vdmpyhb($Vuu32,$Rt32)", 32338PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32339let hasNewValue = 1; 32340let opNewValue = 0; 32341let isAccumulator = 1; 32342let isCVI = 1; 32343let isPseudo = 1; 32344let isCodeGenOnly = 1; 32345let DecoderNamespace = "EXT_mmvec"; 32346let Constraints = "$Vxx32 = $Vxx32in"; 32347} 32348def V6_vdmpyhb_dv_alt : HInst< 32349(outs HvxWR:$Vdd32), 32350(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32351"$Vdd32 = vdmpyhb($Vuu32,$Rt32)", 32352PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32353let hasNewValue = 1; 32354let opNewValue = 0; 32355let isCVI = 1; 32356let isPseudo = 1; 32357let isCodeGenOnly = 1; 32358let DecoderNamespace = "EXT_mmvec"; 32359} 32360def V6_vdmpyhisat : HInst< 32361(outs HvxVR:$Vd32), 32362(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32363"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat", 32364tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 32365let Inst{7-5} = 0b011; 32366let Inst{13-13} = 0b0; 32367let Inst{31-21} = 0b00011001001; 32368let hasNewValue = 1; 32369let opNewValue = 0; 32370let isCVI = 1; 32371let DecoderNamespace = "EXT_mmvec"; 32372} 32373def V6_vdmpyhisat_acc : HInst< 32374(outs HvxVR:$Vx32), 32375(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32376"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat", 32377tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 32378let Inst{7-5} = 0b010; 32379let Inst{13-13} = 0b1; 32380let Inst{31-21} = 0b00011001001; 32381let hasNewValue = 1; 32382let opNewValue = 0; 32383let isAccumulator = 1; 32384let isCVI = 1; 32385let DecoderNamespace = "EXT_mmvec"; 32386let Constraints = "$Vx32 = $Vx32in"; 32387} 32388def V6_vdmpyhisat_acc_alt : HInst< 32389(outs HvxVR:$Vx32), 32390(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32391"$Vx32 += vdmpyh($Vuu32,$Rt32):sat", 32392PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32393let hasNewValue = 1; 32394let opNewValue = 0; 32395let isAccumulator = 1; 32396let isCVI = 1; 32397let isPseudo = 1; 32398let isCodeGenOnly = 1; 32399let DecoderNamespace = "EXT_mmvec"; 32400let Constraints = "$Vx32 = $Vx32in"; 32401} 32402def V6_vdmpyhisat_alt : HInst< 32403(outs HvxVR:$Vd32), 32404(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32405"$Vd32 = vdmpyh($Vuu32,$Rt32):sat", 32406PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32407let hasNewValue = 1; 32408let opNewValue = 0; 32409let isCVI = 1; 32410let isPseudo = 1; 32411let isCodeGenOnly = 1; 32412let DecoderNamespace = "EXT_mmvec"; 32413} 32414def V6_vdmpyhsat : HInst< 32415(outs HvxVR:$Vd32), 32416(ins HvxVR:$Vu32, IntRegs:$Rt32), 32417"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat", 32418tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 32419let Inst{7-5} = 0b010; 32420let Inst{13-13} = 0b0; 32421let Inst{31-21} = 0b00011001001; 32422let hasNewValue = 1; 32423let opNewValue = 0; 32424let isCVI = 1; 32425let DecoderNamespace = "EXT_mmvec"; 32426} 32427def V6_vdmpyhsat_acc : HInst< 32428(outs HvxVR:$Vx32), 32429(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32430"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat", 32431tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 32432let Inst{7-5} = 0b011; 32433let Inst{13-13} = 0b1; 32434let Inst{31-21} = 0b00011001001; 32435let hasNewValue = 1; 32436let opNewValue = 0; 32437let isAccumulator = 1; 32438let isCVI = 1; 32439let DecoderNamespace = "EXT_mmvec"; 32440let Constraints = "$Vx32 = $Vx32in"; 32441} 32442def V6_vdmpyhsat_acc_alt : HInst< 32443(outs HvxVR:$Vx32), 32444(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32445"$Vx32 += vdmpyh($Vu32,$Rt32):sat", 32446PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32447let hasNewValue = 1; 32448let opNewValue = 0; 32449let isAccumulator = 1; 32450let isCVI = 1; 32451let isPseudo = 1; 32452let isCodeGenOnly = 1; 32453let DecoderNamespace = "EXT_mmvec"; 32454let Constraints = "$Vx32 = $Vx32in"; 32455} 32456def V6_vdmpyhsat_alt : HInst< 32457(outs HvxVR:$Vd32), 32458(ins HvxVR:$Vu32, IntRegs:$Rt32), 32459"$Vd32 = vdmpyh($Vu32,$Rt32):sat", 32460PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32461let hasNewValue = 1; 32462let opNewValue = 0; 32463let isCVI = 1; 32464let isPseudo = 1; 32465let isCodeGenOnly = 1; 32466let DecoderNamespace = "EXT_mmvec"; 32467} 32468def V6_vdmpyhsuisat : HInst< 32469(outs HvxVR:$Vd32), 32470(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32471"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 32472tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 32473let Inst{7-5} = 0b001; 32474let Inst{13-13} = 0b0; 32475let Inst{31-21} = 0b00011001001; 32476let hasNewValue = 1; 32477let opNewValue = 0; 32478let isCVI = 1; 32479let DecoderNamespace = "EXT_mmvec"; 32480} 32481def V6_vdmpyhsuisat_acc : HInst< 32482(outs HvxVR:$Vx32), 32483(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32484"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 32485tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 32486let Inst{7-5} = 0b001; 32487let Inst{13-13} = 0b1; 32488let Inst{31-21} = 0b00011001001; 32489let hasNewValue = 1; 32490let opNewValue = 0; 32491let isAccumulator = 1; 32492let isCVI = 1; 32493let DecoderNamespace = "EXT_mmvec"; 32494let Constraints = "$Vx32 = $Vx32in"; 32495} 32496def V6_vdmpyhsuisat_acc_alt : HInst< 32497(outs HvxVR:$Vx32), 32498(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32499"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat", 32500PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32501let hasNewValue = 1; 32502let opNewValue = 0; 32503let isAccumulator = 1; 32504let isCVI = 1; 32505let isPseudo = 1; 32506let isCodeGenOnly = 1; 32507let DecoderNamespace = "EXT_mmvec"; 32508let Constraints = "$Vx32 = $Vx32in"; 32509} 32510def V6_vdmpyhsuisat_alt : HInst< 32511(outs HvxVR:$Vd32), 32512(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32513"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat", 32514PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32515let hasNewValue = 1; 32516let opNewValue = 0; 32517let isCVI = 1; 32518let isPseudo = 1; 32519let isCodeGenOnly = 1; 32520let DecoderNamespace = "EXT_mmvec"; 32521} 32522def V6_vdmpyhsusat : HInst< 32523(outs HvxVR:$Vd32), 32524(ins HvxVR:$Vu32, IntRegs:$Rt32), 32525"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat", 32526tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 32527let Inst{7-5} = 0b000; 32528let Inst{13-13} = 0b0; 32529let Inst{31-21} = 0b00011001001; 32530let hasNewValue = 1; 32531let opNewValue = 0; 32532let isCVI = 1; 32533let DecoderNamespace = "EXT_mmvec"; 32534} 32535def V6_vdmpyhsusat_acc : HInst< 32536(outs HvxVR:$Vx32), 32537(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32538"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat", 32539tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 32540let Inst{7-5} = 0b000; 32541let Inst{13-13} = 0b1; 32542let Inst{31-21} = 0b00011001001; 32543let hasNewValue = 1; 32544let opNewValue = 0; 32545let isAccumulator = 1; 32546let isCVI = 1; 32547let DecoderNamespace = "EXT_mmvec"; 32548let Constraints = "$Vx32 = $Vx32in"; 32549} 32550def V6_vdmpyhsusat_acc_alt : HInst< 32551(outs HvxVR:$Vx32), 32552(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32553"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat", 32554PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32555let hasNewValue = 1; 32556let opNewValue = 0; 32557let isAccumulator = 1; 32558let isCVI = 1; 32559let isPseudo = 1; 32560let isCodeGenOnly = 1; 32561let DecoderNamespace = "EXT_mmvec"; 32562let Constraints = "$Vx32 = $Vx32in"; 32563} 32564def V6_vdmpyhsusat_alt : HInst< 32565(outs HvxVR:$Vd32), 32566(ins HvxVR:$Vu32, IntRegs:$Rt32), 32567"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat", 32568PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32569let hasNewValue = 1; 32570let opNewValue = 0; 32571let isCVI = 1; 32572let isPseudo = 1; 32573let isCodeGenOnly = 1; 32574let DecoderNamespace = "EXT_mmvec"; 32575} 32576def V6_vdmpyhvsat : HInst< 32577(outs HvxVR:$Vd32), 32578(ins HvxVR:$Vu32, HvxVR:$Vv32), 32579"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat", 32580tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 32581let Inst{7-5} = 0b011; 32582let Inst{13-13} = 0b0; 32583let Inst{31-21} = 0b00011100000; 32584let hasNewValue = 1; 32585let opNewValue = 0; 32586let isCVI = 1; 32587let DecoderNamespace = "EXT_mmvec"; 32588} 32589def V6_vdmpyhvsat_acc : HInst< 32590(outs HvxVR:$Vx32), 32591(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 32592"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat", 32593tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 32594let Inst{7-5} = 0b011; 32595let Inst{13-13} = 0b1; 32596let Inst{31-21} = 0b00011100000; 32597let hasNewValue = 1; 32598let opNewValue = 0; 32599let isAccumulator = 1; 32600let isCVI = 1; 32601let DecoderNamespace = "EXT_mmvec"; 32602let Constraints = "$Vx32 = $Vx32in"; 32603} 32604def V6_vdmpyhvsat_acc_alt : HInst< 32605(outs HvxVR:$Vx32), 32606(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 32607"$Vx32 += vdmpyh($Vu32,$Vv32):sat", 32608PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32609let hasNewValue = 1; 32610let opNewValue = 0; 32611let isAccumulator = 1; 32612let isCVI = 1; 32613let isPseudo = 1; 32614let isCodeGenOnly = 1; 32615let DecoderNamespace = "EXT_mmvec"; 32616let Constraints = "$Vx32 = $Vx32in"; 32617} 32618def V6_vdmpyhvsat_alt : HInst< 32619(outs HvxVR:$Vd32), 32620(ins HvxVR:$Vu32, HvxVR:$Vv32), 32621"$Vd32 = vdmpyh($Vu32,$Vv32):sat", 32622PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32623let hasNewValue = 1; 32624let opNewValue = 0; 32625let isCVI = 1; 32626let isPseudo = 1; 32627let isCodeGenOnly = 1; 32628let DecoderNamespace = "EXT_mmvec"; 32629} 32630def V6_vdsaduh : HInst< 32631(outs HvxWR:$Vdd32), 32632(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32633"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)", 32634tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32635let Inst{7-5} = 0b101; 32636let Inst{13-13} = 0b0; 32637let Inst{31-21} = 0b00011001000; 32638let hasNewValue = 1; 32639let opNewValue = 0; 32640let isCVI = 1; 32641let DecoderNamespace = "EXT_mmvec"; 32642} 32643def V6_vdsaduh_acc : HInst< 32644(outs HvxWR:$Vxx32), 32645(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32646"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)", 32647tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32648let Inst{7-5} = 0b000; 32649let Inst{13-13} = 0b1; 32650let Inst{31-21} = 0b00011001011; 32651let hasNewValue = 1; 32652let opNewValue = 0; 32653let isAccumulator = 1; 32654let isCVI = 1; 32655let DecoderNamespace = "EXT_mmvec"; 32656let Constraints = "$Vxx32 = $Vxx32in"; 32657} 32658def V6_vdsaduh_acc_alt : HInst< 32659(outs HvxWR:$Vxx32), 32660(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32661"$Vxx32 += vdsaduh($Vuu32,$Rt32)", 32662PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32663let hasNewValue = 1; 32664let opNewValue = 0; 32665let isAccumulator = 1; 32666let isCVI = 1; 32667let isPseudo = 1; 32668let isCodeGenOnly = 1; 32669let DecoderNamespace = "EXT_mmvec"; 32670let Constraints = "$Vxx32 = $Vxx32in"; 32671} 32672def V6_vdsaduh_alt : HInst< 32673(outs HvxWR:$Vdd32), 32674(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32675"$Vdd32 = vdsaduh($Vuu32,$Rt32)", 32676PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32677let hasNewValue = 1; 32678let opNewValue = 0; 32679let isCVI = 1; 32680let isPseudo = 1; 32681let isCodeGenOnly = 1; 32682let DecoderNamespace = "EXT_mmvec"; 32683} 32684def V6_veqb : HInst< 32685(outs HvxQR:$Qd4), 32686(ins HvxVR:$Vu32, HvxVR:$Vv32), 32687"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)", 32688tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32689let Inst{7-2} = 0b000000; 32690let Inst{13-13} = 0b0; 32691let Inst{31-21} = 0b00011111100; 32692let hasNewValue = 1; 32693let opNewValue = 0; 32694let isCVI = 1; 32695let DecoderNamespace = "EXT_mmvec"; 32696} 32697def V6_veqb_and : HInst< 32698(outs HvxQR:$Qx4), 32699(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32700"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)", 32701tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32702let Inst{7-2} = 0b000000; 32703let Inst{13-13} = 0b1; 32704let Inst{31-21} = 0b00011100100; 32705let isCVI = 1; 32706let DecoderNamespace = "EXT_mmvec"; 32707let Constraints = "$Qx4 = $Qx4in"; 32708} 32709def V6_veqb_or : HInst< 32710(outs HvxQR:$Qx4), 32711(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32712"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)", 32713tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32714let Inst{7-2} = 0b010000; 32715let Inst{13-13} = 0b1; 32716let Inst{31-21} = 0b00011100100; 32717let isAccumulator = 1; 32718let isCVI = 1; 32719let DecoderNamespace = "EXT_mmvec"; 32720let Constraints = "$Qx4 = $Qx4in"; 32721} 32722def V6_veqb_xor : HInst< 32723(outs HvxQR:$Qx4), 32724(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32725"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)", 32726tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32727let Inst{7-2} = 0b100000; 32728let Inst{13-13} = 0b1; 32729let Inst{31-21} = 0b00011100100; 32730let isCVI = 1; 32731let DecoderNamespace = "EXT_mmvec"; 32732let Constraints = "$Qx4 = $Qx4in"; 32733} 32734def V6_veqh : HInst< 32735(outs HvxQR:$Qd4), 32736(ins HvxVR:$Vu32, HvxVR:$Vv32), 32737"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)", 32738tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32739let Inst{7-2} = 0b000001; 32740let Inst{13-13} = 0b0; 32741let Inst{31-21} = 0b00011111100; 32742let hasNewValue = 1; 32743let opNewValue = 0; 32744let isCVI = 1; 32745let DecoderNamespace = "EXT_mmvec"; 32746} 32747def V6_veqh_and : HInst< 32748(outs HvxQR:$Qx4), 32749(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32750"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)", 32751tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32752let Inst{7-2} = 0b000001; 32753let Inst{13-13} = 0b1; 32754let Inst{31-21} = 0b00011100100; 32755let isCVI = 1; 32756let DecoderNamespace = "EXT_mmvec"; 32757let Constraints = "$Qx4 = $Qx4in"; 32758} 32759def V6_veqh_or : HInst< 32760(outs HvxQR:$Qx4), 32761(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32762"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)", 32763tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32764let Inst{7-2} = 0b010001; 32765let Inst{13-13} = 0b1; 32766let Inst{31-21} = 0b00011100100; 32767let isAccumulator = 1; 32768let isCVI = 1; 32769let DecoderNamespace = "EXT_mmvec"; 32770let Constraints = "$Qx4 = $Qx4in"; 32771} 32772def V6_veqh_xor : HInst< 32773(outs HvxQR:$Qx4), 32774(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32775"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)", 32776tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32777let Inst{7-2} = 0b100001; 32778let Inst{13-13} = 0b1; 32779let Inst{31-21} = 0b00011100100; 32780let isCVI = 1; 32781let DecoderNamespace = "EXT_mmvec"; 32782let Constraints = "$Qx4 = $Qx4in"; 32783} 32784def V6_veqw : HInst< 32785(outs HvxQR:$Qd4), 32786(ins HvxVR:$Vu32, HvxVR:$Vv32), 32787"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)", 32788tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32789let Inst{7-2} = 0b000010; 32790let Inst{13-13} = 0b0; 32791let Inst{31-21} = 0b00011111100; 32792let hasNewValue = 1; 32793let opNewValue = 0; 32794let isCVI = 1; 32795let DecoderNamespace = "EXT_mmvec"; 32796} 32797def V6_veqw_and : HInst< 32798(outs HvxQR:$Qx4), 32799(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32800"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)", 32801tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32802let Inst{7-2} = 0b000010; 32803let Inst{13-13} = 0b1; 32804let Inst{31-21} = 0b00011100100; 32805let isCVI = 1; 32806let DecoderNamespace = "EXT_mmvec"; 32807let Constraints = "$Qx4 = $Qx4in"; 32808} 32809def V6_veqw_or : HInst< 32810(outs HvxQR:$Qx4), 32811(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32812"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)", 32813tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32814let Inst{7-2} = 0b010010; 32815let Inst{13-13} = 0b1; 32816let Inst{31-21} = 0b00011100100; 32817let isAccumulator = 1; 32818let isCVI = 1; 32819let DecoderNamespace = "EXT_mmvec"; 32820let Constraints = "$Qx4 = $Qx4in"; 32821} 32822def V6_veqw_xor : HInst< 32823(outs HvxQR:$Qx4), 32824(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32825"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)", 32826tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32827let Inst{7-2} = 0b100010; 32828let Inst{13-13} = 0b1; 32829let Inst{31-21} = 0b00011100100; 32830let isCVI = 1; 32831let DecoderNamespace = "EXT_mmvec"; 32832let Constraints = "$Qx4 = $Qx4in"; 32833} 32834def V6_vgathermh : HInst< 32835(outs), 32836(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32837"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 32838tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 32839let Inst{12-5} = 0b00001000; 32840let Inst{31-21} = 0b00101111000; 32841let hasNewValue = 1; 32842let opNewValue = 0; 32843let accessSize = HalfWordAccess; 32844let isCVLoad = 1; 32845let isCVI = 1; 32846let hasTmpDst = 1; 32847let mayLoad = 1; 32848let Defs = [VTMP]; 32849let DecoderNamespace = "EXT_mmvec"; 32850} 32851def V6_vgathermhq : HInst< 32852(outs), 32853(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32854"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 32855tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 32856let Inst{12-7} = 0b001010; 32857let Inst{31-21} = 0b00101111000; 32858let hasNewValue = 1; 32859let opNewValue = 0; 32860let accessSize = HalfWordAccess; 32861let isCVLoad = 1; 32862let isCVI = 1; 32863let hasTmpDst = 1; 32864let mayLoad = 1; 32865let Defs = [VTMP]; 32866let DecoderNamespace = "EXT_mmvec"; 32867} 32868def V6_vgathermhw : HInst< 32869(outs), 32870(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 32871"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 32872tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> { 32873let Inst{12-5} = 0b00010000; 32874let Inst{31-21} = 0b00101111000; 32875let hasNewValue = 1; 32876let opNewValue = 0; 32877let accessSize = HalfWordAccess; 32878let isCVLoad = 1; 32879let isCVI = 1; 32880let hasTmpDst = 1; 32881let mayLoad = 1; 32882let Defs = [VTMP]; 32883let DecoderNamespace = "EXT_mmvec"; 32884} 32885def V6_vgathermhwq : HInst< 32886(outs), 32887(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 32888"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 32889tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> { 32890let Inst{12-7} = 0b001100; 32891let Inst{31-21} = 0b00101111000; 32892let hasNewValue = 1; 32893let opNewValue = 0; 32894let accessSize = HalfWordAccess; 32895let isCVLoad = 1; 32896let isCVI = 1; 32897let hasTmpDst = 1; 32898let mayLoad = 1; 32899let Defs = [VTMP]; 32900let DecoderNamespace = "EXT_mmvec"; 32901} 32902def V6_vgathermw : HInst< 32903(outs), 32904(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32905"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 32906tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 32907let Inst{12-5} = 0b00000000; 32908let Inst{31-21} = 0b00101111000; 32909let hasNewValue = 1; 32910let opNewValue = 0; 32911let accessSize = WordAccess; 32912let isCVLoad = 1; 32913let isCVI = 1; 32914let hasTmpDst = 1; 32915let mayLoad = 1; 32916let Defs = [VTMP]; 32917let DecoderNamespace = "EXT_mmvec"; 32918} 32919def V6_vgathermwq : HInst< 32920(outs), 32921(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32922"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 32923tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 32924let Inst{12-7} = 0b001000; 32925let Inst{31-21} = 0b00101111000; 32926let hasNewValue = 1; 32927let opNewValue = 0; 32928let accessSize = WordAccess; 32929let isCVLoad = 1; 32930let isCVI = 1; 32931let hasTmpDst = 1; 32932let mayLoad = 1; 32933let Defs = [VTMP]; 32934let DecoderNamespace = "EXT_mmvec"; 32935} 32936def V6_vgtb : HInst< 32937(outs HvxQR:$Qd4), 32938(ins HvxVR:$Vu32, HvxVR:$Vv32), 32939"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)", 32940tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32941let Inst{7-2} = 0b000100; 32942let Inst{13-13} = 0b0; 32943let Inst{31-21} = 0b00011111100; 32944let hasNewValue = 1; 32945let opNewValue = 0; 32946let isCVI = 1; 32947let DecoderNamespace = "EXT_mmvec"; 32948} 32949def V6_vgtb_and : HInst< 32950(outs HvxQR:$Qx4), 32951(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32952"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)", 32953tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32954let Inst{7-2} = 0b000100; 32955let Inst{13-13} = 0b1; 32956let Inst{31-21} = 0b00011100100; 32957let isCVI = 1; 32958let DecoderNamespace = "EXT_mmvec"; 32959let Constraints = "$Qx4 = $Qx4in"; 32960} 32961def V6_vgtb_or : HInst< 32962(outs HvxQR:$Qx4), 32963(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32964"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)", 32965tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32966let Inst{7-2} = 0b010100; 32967let Inst{13-13} = 0b1; 32968let Inst{31-21} = 0b00011100100; 32969let isAccumulator = 1; 32970let isCVI = 1; 32971let DecoderNamespace = "EXT_mmvec"; 32972let Constraints = "$Qx4 = $Qx4in"; 32973} 32974def V6_vgtb_xor : HInst< 32975(outs HvxQR:$Qx4), 32976(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32977"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)", 32978tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32979let Inst{7-2} = 0b100100; 32980let Inst{13-13} = 0b1; 32981let Inst{31-21} = 0b00011100100; 32982let isCVI = 1; 32983let DecoderNamespace = "EXT_mmvec"; 32984let Constraints = "$Qx4 = $Qx4in"; 32985} 32986def V6_vgth : HInst< 32987(outs HvxQR:$Qd4), 32988(ins HvxVR:$Vu32, HvxVR:$Vv32), 32989"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)", 32990tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32991let Inst{7-2} = 0b000101; 32992let Inst{13-13} = 0b0; 32993let Inst{31-21} = 0b00011111100; 32994let hasNewValue = 1; 32995let opNewValue = 0; 32996let isCVI = 1; 32997let DecoderNamespace = "EXT_mmvec"; 32998} 32999def V6_vgth_and : HInst< 33000(outs HvxQR:$Qx4), 33001(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33002"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)", 33003tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33004let Inst{7-2} = 0b000101; 33005let Inst{13-13} = 0b1; 33006let Inst{31-21} = 0b00011100100; 33007let isCVI = 1; 33008let DecoderNamespace = "EXT_mmvec"; 33009let Constraints = "$Qx4 = $Qx4in"; 33010} 33011def V6_vgth_or : HInst< 33012(outs HvxQR:$Qx4), 33013(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33014"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)", 33015tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33016let Inst{7-2} = 0b010101; 33017let Inst{13-13} = 0b1; 33018let Inst{31-21} = 0b00011100100; 33019let isAccumulator = 1; 33020let isCVI = 1; 33021let DecoderNamespace = "EXT_mmvec"; 33022let Constraints = "$Qx4 = $Qx4in"; 33023} 33024def V6_vgth_xor : HInst< 33025(outs HvxQR:$Qx4), 33026(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33027"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)", 33028tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33029let Inst{7-2} = 0b100101; 33030let Inst{13-13} = 0b1; 33031let Inst{31-21} = 0b00011100100; 33032let isCVI = 1; 33033let DecoderNamespace = "EXT_mmvec"; 33034let Constraints = "$Qx4 = $Qx4in"; 33035} 33036def V6_vgtub : HInst< 33037(outs HvxQR:$Qd4), 33038(ins HvxVR:$Vu32, HvxVR:$Vv32), 33039"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)", 33040tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33041let Inst{7-2} = 0b001000; 33042let Inst{13-13} = 0b0; 33043let Inst{31-21} = 0b00011111100; 33044let hasNewValue = 1; 33045let opNewValue = 0; 33046let isCVI = 1; 33047let DecoderNamespace = "EXT_mmvec"; 33048} 33049def V6_vgtub_and : HInst< 33050(outs HvxQR:$Qx4), 33051(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33052"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)", 33053tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33054let Inst{7-2} = 0b001000; 33055let Inst{13-13} = 0b1; 33056let Inst{31-21} = 0b00011100100; 33057let isCVI = 1; 33058let DecoderNamespace = "EXT_mmvec"; 33059let Constraints = "$Qx4 = $Qx4in"; 33060} 33061def V6_vgtub_or : HInst< 33062(outs HvxQR:$Qx4), 33063(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33064"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)", 33065tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33066let Inst{7-2} = 0b011000; 33067let Inst{13-13} = 0b1; 33068let Inst{31-21} = 0b00011100100; 33069let isAccumulator = 1; 33070let isCVI = 1; 33071let DecoderNamespace = "EXT_mmvec"; 33072let Constraints = "$Qx4 = $Qx4in"; 33073} 33074def V6_vgtub_xor : HInst< 33075(outs HvxQR:$Qx4), 33076(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33077"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)", 33078tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33079let Inst{7-2} = 0b101000; 33080let Inst{13-13} = 0b1; 33081let Inst{31-21} = 0b00011100100; 33082let isCVI = 1; 33083let DecoderNamespace = "EXT_mmvec"; 33084let Constraints = "$Qx4 = $Qx4in"; 33085} 33086def V6_vgtuh : HInst< 33087(outs HvxQR:$Qd4), 33088(ins HvxVR:$Vu32, HvxVR:$Vv32), 33089"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)", 33090tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33091let Inst{7-2} = 0b001001; 33092let Inst{13-13} = 0b0; 33093let Inst{31-21} = 0b00011111100; 33094let hasNewValue = 1; 33095let opNewValue = 0; 33096let isCVI = 1; 33097let DecoderNamespace = "EXT_mmvec"; 33098} 33099def V6_vgtuh_and : HInst< 33100(outs HvxQR:$Qx4), 33101(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33102"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)", 33103tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33104let Inst{7-2} = 0b001001; 33105let Inst{13-13} = 0b1; 33106let Inst{31-21} = 0b00011100100; 33107let isCVI = 1; 33108let DecoderNamespace = "EXT_mmvec"; 33109let Constraints = "$Qx4 = $Qx4in"; 33110} 33111def V6_vgtuh_or : HInst< 33112(outs HvxQR:$Qx4), 33113(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33114"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)", 33115tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33116let Inst{7-2} = 0b011001; 33117let Inst{13-13} = 0b1; 33118let Inst{31-21} = 0b00011100100; 33119let isAccumulator = 1; 33120let isCVI = 1; 33121let DecoderNamespace = "EXT_mmvec"; 33122let Constraints = "$Qx4 = $Qx4in"; 33123} 33124def V6_vgtuh_xor : HInst< 33125(outs HvxQR:$Qx4), 33126(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33127"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)", 33128tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33129let Inst{7-2} = 0b101001; 33130let Inst{13-13} = 0b1; 33131let Inst{31-21} = 0b00011100100; 33132let isCVI = 1; 33133let DecoderNamespace = "EXT_mmvec"; 33134let Constraints = "$Qx4 = $Qx4in"; 33135} 33136def V6_vgtuw : HInst< 33137(outs HvxQR:$Qd4), 33138(ins HvxVR:$Vu32, HvxVR:$Vv32), 33139"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)", 33140tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33141let Inst{7-2} = 0b001010; 33142let Inst{13-13} = 0b0; 33143let Inst{31-21} = 0b00011111100; 33144let hasNewValue = 1; 33145let opNewValue = 0; 33146let isCVI = 1; 33147let DecoderNamespace = "EXT_mmvec"; 33148} 33149def V6_vgtuw_and : HInst< 33150(outs HvxQR:$Qx4), 33151(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33152"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)", 33153tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33154let Inst{7-2} = 0b001010; 33155let Inst{13-13} = 0b1; 33156let Inst{31-21} = 0b00011100100; 33157let isCVI = 1; 33158let DecoderNamespace = "EXT_mmvec"; 33159let Constraints = "$Qx4 = $Qx4in"; 33160} 33161def V6_vgtuw_or : HInst< 33162(outs HvxQR:$Qx4), 33163(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33164"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)", 33165tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33166let Inst{7-2} = 0b011010; 33167let Inst{13-13} = 0b1; 33168let Inst{31-21} = 0b00011100100; 33169let isAccumulator = 1; 33170let isCVI = 1; 33171let DecoderNamespace = "EXT_mmvec"; 33172let Constraints = "$Qx4 = $Qx4in"; 33173} 33174def V6_vgtuw_xor : HInst< 33175(outs HvxQR:$Qx4), 33176(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33177"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)", 33178tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33179let Inst{7-2} = 0b101010; 33180let Inst{13-13} = 0b1; 33181let Inst{31-21} = 0b00011100100; 33182let isCVI = 1; 33183let DecoderNamespace = "EXT_mmvec"; 33184let Constraints = "$Qx4 = $Qx4in"; 33185} 33186def V6_vgtw : HInst< 33187(outs HvxQR:$Qd4), 33188(ins HvxVR:$Vu32, HvxVR:$Vv32), 33189"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)", 33190tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33191let Inst{7-2} = 0b000110; 33192let Inst{13-13} = 0b0; 33193let Inst{31-21} = 0b00011111100; 33194let hasNewValue = 1; 33195let opNewValue = 0; 33196let isCVI = 1; 33197let DecoderNamespace = "EXT_mmvec"; 33198} 33199def V6_vgtw_and : HInst< 33200(outs HvxQR:$Qx4), 33201(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33202"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)", 33203tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33204let Inst{7-2} = 0b000110; 33205let Inst{13-13} = 0b1; 33206let Inst{31-21} = 0b00011100100; 33207let isCVI = 1; 33208let DecoderNamespace = "EXT_mmvec"; 33209let Constraints = "$Qx4 = $Qx4in"; 33210} 33211def V6_vgtw_or : HInst< 33212(outs HvxQR:$Qx4), 33213(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33214"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)", 33215tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33216let Inst{7-2} = 0b010110; 33217let Inst{13-13} = 0b1; 33218let Inst{31-21} = 0b00011100100; 33219let isAccumulator = 1; 33220let isCVI = 1; 33221let DecoderNamespace = "EXT_mmvec"; 33222let Constraints = "$Qx4 = $Qx4in"; 33223} 33224def V6_vgtw_xor : HInst< 33225(outs HvxQR:$Qx4), 33226(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33227"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)", 33228tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33229let Inst{7-2} = 0b100110; 33230let Inst{13-13} = 0b1; 33231let Inst{31-21} = 0b00011100100; 33232let isCVI = 1; 33233let DecoderNamespace = "EXT_mmvec"; 33234let Constraints = "$Qx4 = $Qx4in"; 33235} 33236def V6_vhist : HInst< 33237(outs), 33238(ins), 33239"vhist", 33240tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> { 33241let Inst{13-0} = 0b10000010000000; 33242let Inst{31-16} = 0b0001111000000000; 33243let isCVI = 1; 33244let DecoderNamespace = "EXT_mmvec"; 33245} 33246def V6_vhistq : HInst< 33247(outs), 33248(ins HvxQR:$Qv4), 33249"vhist($Qv4)", 33250tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> { 33251let Inst{13-0} = 0b10000010000000; 33252let Inst{21-16} = 0b000010; 33253let Inst{31-24} = 0b00011110; 33254let isCVI = 1; 33255let DecoderNamespace = "EXT_mmvec"; 33256} 33257def V6_vinsertwr : HInst< 33258(outs HvxVR:$Vx32), 33259(ins HvxVR:$Vx32in, IntRegs:$Rt32), 33260"$Vx32.w = vinsert($Rt32)", 33261tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> { 33262let Inst{13-5} = 0b100000001; 33263let Inst{31-21} = 0b00011001101; 33264let hasNewValue = 1; 33265let opNewValue = 0; 33266let isCVI = 1; 33267let DecoderNamespace = "EXT_mmvec"; 33268let Constraints = "$Vx32 = $Vx32in"; 33269} 33270def V6_vlalignb : HInst< 33271(outs HvxVR:$Vd32), 33272(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33273"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)", 33274tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 33275let Inst{7-5} = 0b001; 33276let Inst{13-13} = 0b0; 33277let Inst{31-24} = 0b00011011; 33278let hasNewValue = 1; 33279let opNewValue = 0; 33280let isCVI = 1; 33281let DecoderNamespace = "EXT_mmvec"; 33282} 33283def V6_vlalignbi : HInst< 33284(outs HvxVR:$Vd32), 33285(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33286"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)", 33287tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 33288let Inst{13-13} = 0b1; 33289let Inst{31-21} = 0b00011110011; 33290let hasNewValue = 1; 33291let opNewValue = 0; 33292let isCVI = 1; 33293let DecoderNamespace = "EXT_mmvec"; 33294} 33295def V6_vlsrb : HInst< 33296(outs HvxVR:$Vd32), 33297(ins HvxVR:$Vu32, IntRegs:$Rt32), 33298"$Vd32.ub = vlsr($Vu32.ub,$Rt32)", 33299tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> { 33300let Inst{7-5} = 0b011; 33301let Inst{13-13} = 0b0; 33302let Inst{31-21} = 0b00011001100; 33303let hasNewValue = 1; 33304let opNewValue = 0; 33305let isCVI = 1; 33306let DecoderNamespace = "EXT_mmvec"; 33307} 33308def V6_vlsrh : HInst< 33309(outs HvxVR:$Vd32), 33310(ins HvxVR:$Vu32, IntRegs:$Rt32), 33311"$Vd32.uh = vlsr($Vu32.uh,$Rt32)", 33312tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 33313let Inst{7-5} = 0b010; 33314let Inst{13-13} = 0b0; 33315let Inst{31-21} = 0b00011001100; 33316let hasNewValue = 1; 33317let opNewValue = 0; 33318let isCVI = 1; 33319let DecoderNamespace = "EXT_mmvec"; 33320} 33321def V6_vlsrh_alt : HInst< 33322(outs HvxVR:$Vd32), 33323(ins HvxVR:$Vu32, IntRegs:$Rt32), 33324"$Vd32 = vlsrh($Vu32,$Rt32)", 33325PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33326let hasNewValue = 1; 33327let opNewValue = 0; 33328let isCVI = 1; 33329let isPseudo = 1; 33330let isCodeGenOnly = 1; 33331let DecoderNamespace = "EXT_mmvec"; 33332} 33333def V6_vlsrhv : HInst< 33334(outs HvxVR:$Vd32), 33335(ins HvxVR:$Vu32, HvxVR:$Vv32), 33336"$Vd32.h = vlsr($Vu32.h,$Vv32.h)", 33337tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 33338let Inst{7-5} = 0b010; 33339let Inst{13-13} = 0b0; 33340let Inst{31-21} = 0b00011111101; 33341let hasNewValue = 1; 33342let opNewValue = 0; 33343let isCVI = 1; 33344let DecoderNamespace = "EXT_mmvec"; 33345} 33346def V6_vlsrhv_alt : HInst< 33347(outs HvxVR:$Vd32), 33348(ins HvxVR:$Vu32, HvxVR:$Vv32), 33349"$Vd32 = vlsrh($Vu32,$Vv32)", 33350PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33351let hasNewValue = 1; 33352let opNewValue = 0; 33353let isCVI = 1; 33354let isPseudo = 1; 33355let isCodeGenOnly = 1; 33356let DecoderNamespace = "EXT_mmvec"; 33357} 33358def V6_vlsrw : HInst< 33359(outs HvxVR:$Vd32), 33360(ins HvxVR:$Vu32, IntRegs:$Rt32), 33361"$Vd32.uw = vlsr($Vu32.uw,$Rt32)", 33362tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 33363let Inst{7-5} = 0b001; 33364let Inst{13-13} = 0b0; 33365let Inst{31-21} = 0b00011001100; 33366let hasNewValue = 1; 33367let opNewValue = 0; 33368let isCVI = 1; 33369let DecoderNamespace = "EXT_mmvec"; 33370} 33371def V6_vlsrw_alt : HInst< 33372(outs HvxVR:$Vd32), 33373(ins HvxVR:$Vu32, IntRegs:$Rt32), 33374"$Vd32 = vlsrw($Vu32,$Rt32)", 33375PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33376let hasNewValue = 1; 33377let opNewValue = 0; 33378let isCVI = 1; 33379let isPseudo = 1; 33380let isCodeGenOnly = 1; 33381let DecoderNamespace = "EXT_mmvec"; 33382} 33383def V6_vlsrwv : HInst< 33384(outs HvxVR:$Vd32), 33385(ins HvxVR:$Vu32, HvxVR:$Vv32), 33386"$Vd32.w = vlsr($Vu32.w,$Vv32.w)", 33387tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 33388let Inst{7-5} = 0b001; 33389let Inst{13-13} = 0b0; 33390let Inst{31-21} = 0b00011111101; 33391let hasNewValue = 1; 33392let opNewValue = 0; 33393let isCVI = 1; 33394let DecoderNamespace = "EXT_mmvec"; 33395} 33396def V6_vlsrwv_alt : HInst< 33397(outs HvxVR:$Vd32), 33398(ins HvxVR:$Vu32, HvxVR:$Vv32), 33399"$Vd32 = vlsrw($Vu32,$Vv32)", 33400PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33401let hasNewValue = 1; 33402let opNewValue = 0; 33403let isCVI = 1; 33404let isPseudo = 1; 33405let isCodeGenOnly = 1; 33406let DecoderNamespace = "EXT_mmvec"; 33407} 33408def V6_vlut4 : HInst< 33409(outs HvxVR:$Vd32), 33410(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 33411"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)", 33412tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> { 33413let Inst{7-5} = 0b100; 33414let Inst{13-13} = 0b0; 33415let Inst{31-21} = 0b00011001011; 33416let hasNewValue = 1; 33417let opNewValue = 0; 33418let isCVI = 1; 33419let DecoderNamespace = "EXT_mmvec"; 33420} 33421def V6_vlutvvb : HInst< 33422(outs HvxVR:$Vd32), 33423(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33424"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)", 33425tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 33426let Inst{7-5} = 0b001; 33427let Inst{13-13} = 0b1; 33428let Inst{31-24} = 0b00011011; 33429let hasNewValue = 1; 33430let opNewValue = 0; 33431let isCVI = 1; 33432let DecoderNamespace = "EXT_mmvec"; 33433} 33434def V6_vlutvvb_nm : HInst< 33435(outs HvxVR:$Vd32), 33436(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33437"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch", 33438tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> { 33439let Inst{7-5} = 0b011; 33440let Inst{13-13} = 0b0; 33441let Inst{31-24} = 0b00011000; 33442let hasNewValue = 1; 33443let opNewValue = 0; 33444let isCVI = 1; 33445let DecoderNamespace = "EXT_mmvec"; 33446} 33447def V6_vlutvvb_oracc : HInst< 33448(outs HvxVR:$Vx32), 33449(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33450"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)", 33451tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> { 33452let Inst{7-5} = 0b101; 33453let Inst{13-13} = 0b1; 33454let Inst{31-24} = 0b00011011; 33455let hasNewValue = 1; 33456let opNewValue = 0; 33457let isAccumulator = 1; 33458let isCVI = 1; 33459let DecoderNamespace = "EXT_mmvec"; 33460let Constraints = "$Vx32 = $Vx32in"; 33461} 33462def V6_vlutvvb_oracci : HInst< 33463(outs HvxVR:$Vx32), 33464(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33465"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)", 33466tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> { 33467let Inst{13-13} = 0b1; 33468let Inst{31-21} = 0b00011100110; 33469let hasNewValue = 1; 33470let opNewValue = 0; 33471let isAccumulator = 1; 33472let isCVI = 1; 33473let DecoderNamespace = "EXT_mmvec"; 33474let Constraints = "$Vx32 = $Vx32in"; 33475} 33476def V6_vlutvvbi : HInst< 33477(outs HvxVR:$Vd32), 33478(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33479"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)", 33480tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> { 33481let Inst{13-13} = 0b0; 33482let Inst{31-21} = 0b00011110001; 33483let hasNewValue = 1; 33484let opNewValue = 0; 33485let isCVI = 1; 33486let DecoderNamespace = "EXT_mmvec"; 33487} 33488def V6_vlutvwh : HInst< 33489(outs HvxWR:$Vdd32), 33490(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33491"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)", 33492tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 33493let Inst{7-5} = 0b110; 33494let Inst{13-13} = 0b1; 33495let Inst{31-24} = 0b00011011; 33496let hasNewValue = 1; 33497let opNewValue = 0; 33498let isCVI = 1; 33499let DecoderNamespace = "EXT_mmvec"; 33500} 33501def V6_vlutvwh_nm : HInst< 33502(outs HvxWR:$Vdd32), 33503(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33504"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch", 33505tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> { 33506let Inst{7-5} = 0b100; 33507let Inst{13-13} = 0b0; 33508let Inst{31-24} = 0b00011000; 33509let hasNewValue = 1; 33510let opNewValue = 0; 33511let isCVI = 1; 33512let DecoderNamespace = "EXT_mmvec"; 33513} 33514def V6_vlutvwh_oracc : HInst< 33515(outs HvxWR:$Vxx32), 33516(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33517"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)", 33518tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> { 33519let Inst{7-5} = 0b111; 33520let Inst{13-13} = 0b1; 33521let Inst{31-24} = 0b00011011; 33522let hasNewValue = 1; 33523let opNewValue = 0; 33524let isAccumulator = 1; 33525let isCVI = 1; 33526let DecoderNamespace = "EXT_mmvec"; 33527let Constraints = "$Vxx32 = $Vxx32in"; 33528} 33529def V6_vlutvwh_oracci : HInst< 33530(outs HvxWR:$Vxx32), 33531(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33532"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)", 33533tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> { 33534let Inst{13-13} = 0b1; 33535let Inst{31-21} = 0b00011100111; 33536let hasNewValue = 1; 33537let opNewValue = 0; 33538let isAccumulator = 1; 33539let isCVI = 1; 33540let DecoderNamespace = "EXT_mmvec"; 33541let Constraints = "$Vxx32 = $Vxx32in"; 33542} 33543def V6_vlutvwhi : HInst< 33544(outs HvxWR:$Vdd32), 33545(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33546"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)", 33547tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> { 33548let Inst{13-13} = 0b0; 33549let Inst{31-21} = 0b00011110011; 33550let hasNewValue = 1; 33551let opNewValue = 0; 33552let isCVI = 1; 33553let DecoderNamespace = "EXT_mmvec"; 33554} 33555def V6_vmaxb : HInst< 33556(outs HvxVR:$Vd32), 33557(ins HvxVR:$Vu32, HvxVR:$Vv32), 33558"$Vd32.b = vmax($Vu32.b,$Vv32.b)", 33559tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 33560let Inst{7-5} = 0b101; 33561let Inst{13-13} = 0b0; 33562let Inst{31-21} = 0b00011111001; 33563let hasNewValue = 1; 33564let opNewValue = 0; 33565let isCVI = 1; 33566let DecoderNamespace = "EXT_mmvec"; 33567} 33568def V6_vmaxb_alt : HInst< 33569(outs HvxVR:$Vd32), 33570(ins HvxVR:$Vu32, HvxVR:$Vv32), 33571"$Vd32 = vmaxb($Vu32,$Vv32)", 33572PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33573let hasNewValue = 1; 33574let opNewValue = 0; 33575let isCVI = 1; 33576let isPseudo = 1; 33577let isCodeGenOnly = 1; 33578let DecoderNamespace = "EXT_mmvec"; 33579} 33580def V6_vmaxh : HInst< 33581(outs HvxVR:$Vd32), 33582(ins HvxVR:$Vu32, HvxVR:$Vv32), 33583"$Vd32.h = vmax($Vu32.h,$Vv32.h)", 33584tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33585let Inst{7-5} = 0b111; 33586let Inst{13-13} = 0b0; 33587let Inst{31-21} = 0b00011111000; 33588let hasNewValue = 1; 33589let opNewValue = 0; 33590let isCVI = 1; 33591let DecoderNamespace = "EXT_mmvec"; 33592} 33593def V6_vmaxh_alt : HInst< 33594(outs HvxVR:$Vd32), 33595(ins HvxVR:$Vu32, HvxVR:$Vv32), 33596"$Vd32 = vmaxh($Vu32,$Vv32)", 33597PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33598let hasNewValue = 1; 33599let opNewValue = 0; 33600let isCVI = 1; 33601let isPseudo = 1; 33602let isCodeGenOnly = 1; 33603let DecoderNamespace = "EXT_mmvec"; 33604} 33605def V6_vmaxub : HInst< 33606(outs HvxVR:$Vd32), 33607(ins HvxVR:$Vu32, HvxVR:$Vv32), 33608"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)", 33609tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33610let Inst{7-5} = 0b101; 33611let Inst{13-13} = 0b0; 33612let Inst{31-21} = 0b00011111000; 33613let hasNewValue = 1; 33614let opNewValue = 0; 33615let isCVI = 1; 33616let DecoderNamespace = "EXT_mmvec"; 33617} 33618def V6_vmaxub_alt : HInst< 33619(outs HvxVR:$Vd32), 33620(ins HvxVR:$Vu32, HvxVR:$Vv32), 33621"$Vd32 = vmaxub($Vu32,$Vv32)", 33622PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33623let hasNewValue = 1; 33624let opNewValue = 0; 33625let isCVI = 1; 33626let isPseudo = 1; 33627let isCodeGenOnly = 1; 33628let DecoderNamespace = "EXT_mmvec"; 33629} 33630def V6_vmaxuh : HInst< 33631(outs HvxVR:$Vd32), 33632(ins HvxVR:$Vu32, HvxVR:$Vv32), 33633"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)", 33634tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33635let Inst{7-5} = 0b110; 33636let Inst{13-13} = 0b0; 33637let Inst{31-21} = 0b00011111000; 33638let hasNewValue = 1; 33639let opNewValue = 0; 33640let isCVI = 1; 33641let DecoderNamespace = "EXT_mmvec"; 33642} 33643def V6_vmaxuh_alt : HInst< 33644(outs HvxVR:$Vd32), 33645(ins HvxVR:$Vu32, HvxVR:$Vv32), 33646"$Vd32 = vmaxuh($Vu32,$Vv32)", 33647PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33648let hasNewValue = 1; 33649let opNewValue = 0; 33650let isCVI = 1; 33651let isPseudo = 1; 33652let isCodeGenOnly = 1; 33653let DecoderNamespace = "EXT_mmvec"; 33654} 33655def V6_vmaxw : HInst< 33656(outs HvxVR:$Vd32), 33657(ins HvxVR:$Vu32, HvxVR:$Vv32), 33658"$Vd32.w = vmax($Vu32.w,$Vv32.w)", 33659tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33660let Inst{7-5} = 0b000; 33661let Inst{13-13} = 0b0; 33662let Inst{31-21} = 0b00011111001; 33663let hasNewValue = 1; 33664let opNewValue = 0; 33665let isCVI = 1; 33666let DecoderNamespace = "EXT_mmvec"; 33667} 33668def V6_vmaxw_alt : HInst< 33669(outs HvxVR:$Vd32), 33670(ins HvxVR:$Vu32, HvxVR:$Vv32), 33671"$Vd32 = vmaxw($Vu32,$Vv32)", 33672PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33673let hasNewValue = 1; 33674let opNewValue = 0; 33675let isCVI = 1; 33676let isPseudo = 1; 33677let isCodeGenOnly = 1; 33678let DecoderNamespace = "EXT_mmvec"; 33679} 33680def V6_vminb : HInst< 33681(outs HvxVR:$Vd32), 33682(ins HvxVR:$Vu32, HvxVR:$Vv32), 33683"$Vd32.b = vmin($Vu32.b,$Vv32.b)", 33684tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 33685let Inst{7-5} = 0b100; 33686let Inst{13-13} = 0b0; 33687let Inst{31-21} = 0b00011111001; 33688let hasNewValue = 1; 33689let opNewValue = 0; 33690let isCVI = 1; 33691let DecoderNamespace = "EXT_mmvec"; 33692} 33693def V6_vminb_alt : HInst< 33694(outs HvxVR:$Vd32), 33695(ins HvxVR:$Vu32, HvxVR:$Vv32), 33696"$Vd32 = vminb($Vu32,$Vv32)", 33697PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33698let hasNewValue = 1; 33699let opNewValue = 0; 33700let isCVI = 1; 33701let isPseudo = 1; 33702let isCodeGenOnly = 1; 33703let DecoderNamespace = "EXT_mmvec"; 33704} 33705def V6_vminh : HInst< 33706(outs HvxVR:$Vd32), 33707(ins HvxVR:$Vu32, HvxVR:$Vv32), 33708"$Vd32.h = vmin($Vu32.h,$Vv32.h)", 33709tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33710let Inst{7-5} = 0b011; 33711let Inst{13-13} = 0b0; 33712let Inst{31-21} = 0b00011111000; 33713let hasNewValue = 1; 33714let opNewValue = 0; 33715let isCVI = 1; 33716let DecoderNamespace = "EXT_mmvec"; 33717} 33718def V6_vminh_alt : HInst< 33719(outs HvxVR:$Vd32), 33720(ins HvxVR:$Vu32, HvxVR:$Vv32), 33721"$Vd32 = vminh($Vu32,$Vv32)", 33722PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33723let hasNewValue = 1; 33724let opNewValue = 0; 33725let isCVI = 1; 33726let isPseudo = 1; 33727let isCodeGenOnly = 1; 33728let DecoderNamespace = "EXT_mmvec"; 33729} 33730def V6_vminub : HInst< 33731(outs HvxVR:$Vd32), 33732(ins HvxVR:$Vu32, HvxVR:$Vv32), 33733"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)", 33734tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33735let Inst{7-5} = 0b001; 33736let Inst{13-13} = 0b0; 33737let Inst{31-21} = 0b00011111000; 33738let hasNewValue = 1; 33739let opNewValue = 0; 33740let isCVI = 1; 33741let DecoderNamespace = "EXT_mmvec"; 33742} 33743def V6_vminub_alt : HInst< 33744(outs HvxVR:$Vd32), 33745(ins HvxVR:$Vu32, HvxVR:$Vv32), 33746"$Vd32 = vminub($Vu32,$Vv32)", 33747PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33748let hasNewValue = 1; 33749let opNewValue = 0; 33750let isCVI = 1; 33751let isPseudo = 1; 33752let isCodeGenOnly = 1; 33753let DecoderNamespace = "EXT_mmvec"; 33754} 33755def V6_vminuh : HInst< 33756(outs HvxVR:$Vd32), 33757(ins HvxVR:$Vu32, HvxVR:$Vv32), 33758"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)", 33759tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33760let Inst{7-5} = 0b010; 33761let Inst{13-13} = 0b0; 33762let Inst{31-21} = 0b00011111000; 33763let hasNewValue = 1; 33764let opNewValue = 0; 33765let isCVI = 1; 33766let DecoderNamespace = "EXT_mmvec"; 33767} 33768def V6_vminuh_alt : HInst< 33769(outs HvxVR:$Vd32), 33770(ins HvxVR:$Vu32, HvxVR:$Vv32), 33771"$Vd32 = vminuh($Vu32,$Vv32)", 33772PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33773let hasNewValue = 1; 33774let opNewValue = 0; 33775let isCVI = 1; 33776let isPseudo = 1; 33777let isCodeGenOnly = 1; 33778let DecoderNamespace = "EXT_mmvec"; 33779} 33780def V6_vminw : HInst< 33781(outs HvxVR:$Vd32), 33782(ins HvxVR:$Vu32, HvxVR:$Vv32), 33783"$Vd32.w = vmin($Vu32.w,$Vv32.w)", 33784tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33785let Inst{7-5} = 0b100; 33786let Inst{13-13} = 0b0; 33787let Inst{31-21} = 0b00011111000; 33788let hasNewValue = 1; 33789let opNewValue = 0; 33790let isCVI = 1; 33791let DecoderNamespace = "EXT_mmvec"; 33792} 33793def V6_vminw_alt : HInst< 33794(outs HvxVR:$Vd32), 33795(ins HvxVR:$Vu32, HvxVR:$Vv32), 33796"$Vd32 = vminw($Vu32,$Vv32)", 33797PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33798let hasNewValue = 1; 33799let opNewValue = 0; 33800let isCVI = 1; 33801let isPseudo = 1; 33802let isCodeGenOnly = 1; 33803let DecoderNamespace = "EXT_mmvec"; 33804} 33805def V6_vmpabus : HInst< 33806(outs HvxWR:$Vdd32), 33807(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33808"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)", 33809tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33810let Inst{7-5} = 0b110; 33811let Inst{13-13} = 0b0; 33812let Inst{31-21} = 0b00011001001; 33813let hasNewValue = 1; 33814let opNewValue = 0; 33815let isCVI = 1; 33816let DecoderNamespace = "EXT_mmvec"; 33817} 33818def V6_vmpabus_acc : HInst< 33819(outs HvxWR:$Vxx32), 33820(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33821"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)", 33822tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33823let Inst{7-5} = 0b110; 33824let Inst{13-13} = 0b1; 33825let Inst{31-21} = 0b00011001001; 33826let hasNewValue = 1; 33827let opNewValue = 0; 33828let isAccumulator = 1; 33829let isCVI = 1; 33830let DecoderNamespace = "EXT_mmvec"; 33831let Constraints = "$Vxx32 = $Vxx32in"; 33832} 33833def V6_vmpabus_acc_alt : HInst< 33834(outs HvxWR:$Vxx32), 33835(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33836"$Vxx32 += vmpabus($Vuu32,$Rt32)", 33837PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33838let hasNewValue = 1; 33839let opNewValue = 0; 33840let isAccumulator = 1; 33841let isCVI = 1; 33842let isPseudo = 1; 33843let isCodeGenOnly = 1; 33844let DecoderNamespace = "EXT_mmvec"; 33845let Constraints = "$Vxx32 = $Vxx32in"; 33846} 33847def V6_vmpabus_alt : HInst< 33848(outs HvxWR:$Vdd32), 33849(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33850"$Vdd32 = vmpabus($Vuu32,$Rt32)", 33851PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33852let hasNewValue = 1; 33853let opNewValue = 0; 33854let isCVI = 1; 33855let isPseudo = 1; 33856let isCodeGenOnly = 1; 33857let DecoderNamespace = "EXT_mmvec"; 33858} 33859def V6_vmpabusv : HInst< 33860(outs HvxWR:$Vdd32), 33861(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33862"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)", 33863tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 33864let Inst{7-5} = 0b011; 33865let Inst{13-13} = 0b0; 33866let Inst{31-21} = 0b00011100001; 33867let hasNewValue = 1; 33868let opNewValue = 0; 33869let isCVI = 1; 33870let DecoderNamespace = "EXT_mmvec"; 33871} 33872def V6_vmpabusv_alt : HInst< 33873(outs HvxWR:$Vdd32), 33874(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33875"$Vdd32 = vmpabus($Vuu32,$Vvv32)", 33876PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33877let hasNewValue = 1; 33878let opNewValue = 0; 33879let isCVI = 1; 33880let isPseudo = 1; 33881let isCodeGenOnly = 1; 33882let DecoderNamespace = "EXT_mmvec"; 33883} 33884def V6_vmpabuu : HInst< 33885(outs HvxWR:$Vdd32), 33886(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33887"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)", 33888tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> { 33889let Inst{7-5} = 0b011; 33890let Inst{13-13} = 0b0; 33891let Inst{31-21} = 0b00011001011; 33892let hasNewValue = 1; 33893let opNewValue = 0; 33894let isCVI = 1; 33895let DecoderNamespace = "EXT_mmvec"; 33896} 33897def V6_vmpabuu_acc : HInst< 33898(outs HvxWR:$Vxx32), 33899(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33900"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)", 33901tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> { 33902let Inst{7-5} = 0b100; 33903let Inst{13-13} = 0b1; 33904let Inst{31-21} = 0b00011001101; 33905let hasNewValue = 1; 33906let opNewValue = 0; 33907let isAccumulator = 1; 33908let isCVI = 1; 33909let DecoderNamespace = "EXT_mmvec"; 33910let Constraints = "$Vxx32 = $Vxx32in"; 33911} 33912def V6_vmpabuu_acc_alt : HInst< 33913(outs HvxWR:$Vxx32), 33914(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33915"$Vxx32 += vmpabuu($Vuu32,$Rt32)", 33916PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 33917let hasNewValue = 1; 33918let opNewValue = 0; 33919let isAccumulator = 1; 33920let isCVI = 1; 33921let isPseudo = 1; 33922let isCodeGenOnly = 1; 33923let DecoderNamespace = "EXT_mmvec"; 33924let Constraints = "$Vxx32 = $Vxx32in"; 33925} 33926def V6_vmpabuu_alt : HInst< 33927(outs HvxWR:$Vdd32), 33928(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33929"$Vdd32 = vmpabuu($Vuu32,$Rt32)", 33930PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 33931let hasNewValue = 1; 33932let opNewValue = 0; 33933let isCVI = 1; 33934let isPseudo = 1; 33935let isCodeGenOnly = 1; 33936let DecoderNamespace = "EXT_mmvec"; 33937} 33938def V6_vmpabuuv : HInst< 33939(outs HvxWR:$Vdd32), 33940(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33941"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)", 33942tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 33943let Inst{7-5} = 0b111; 33944let Inst{13-13} = 0b0; 33945let Inst{31-21} = 0b00011100111; 33946let hasNewValue = 1; 33947let opNewValue = 0; 33948let isCVI = 1; 33949let DecoderNamespace = "EXT_mmvec"; 33950} 33951def V6_vmpabuuv_alt : HInst< 33952(outs HvxWR:$Vdd32), 33953(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33954"$Vdd32 = vmpabuu($Vuu32,$Vvv32)", 33955PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33956let hasNewValue = 1; 33957let opNewValue = 0; 33958let isCVI = 1; 33959let isPseudo = 1; 33960let isCodeGenOnly = 1; 33961let DecoderNamespace = "EXT_mmvec"; 33962} 33963def V6_vmpahb : HInst< 33964(outs HvxWR:$Vdd32), 33965(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33966"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)", 33967tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33968let Inst{7-5} = 0b111; 33969let Inst{13-13} = 0b0; 33970let Inst{31-21} = 0b00011001001; 33971let hasNewValue = 1; 33972let opNewValue = 0; 33973let isCVI = 1; 33974let DecoderNamespace = "EXT_mmvec"; 33975} 33976def V6_vmpahb_acc : HInst< 33977(outs HvxWR:$Vxx32), 33978(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33979"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)", 33980tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33981let Inst{7-5} = 0b111; 33982let Inst{13-13} = 0b1; 33983let Inst{31-21} = 0b00011001001; 33984let hasNewValue = 1; 33985let opNewValue = 0; 33986let isAccumulator = 1; 33987let isCVI = 1; 33988let DecoderNamespace = "EXT_mmvec"; 33989let Constraints = "$Vxx32 = $Vxx32in"; 33990} 33991def V6_vmpahb_acc_alt : HInst< 33992(outs HvxWR:$Vxx32), 33993(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33994"$Vxx32 += vmpahb($Vuu32,$Rt32)", 33995PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33996let hasNewValue = 1; 33997let opNewValue = 0; 33998let isAccumulator = 1; 33999let isCVI = 1; 34000let isPseudo = 1; 34001let isCodeGenOnly = 1; 34002let DecoderNamespace = "EXT_mmvec"; 34003let Constraints = "$Vxx32 = $Vxx32in"; 34004} 34005def V6_vmpahb_alt : HInst< 34006(outs HvxWR:$Vdd32), 34007(ins HvxWR:$Vuu32, IntRegs:$Rt32), 34008"$Vdd32 = vmpahb($Vuu32,$Rt32)", 34009PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34010let hasNewValue = 1; 34011let opNewValue = 0; 34012let isCVI = 1; 34013let isPseudo = 1; 34014let isCodeGenOnly = 1; 34015let DecoderNamespace = "EXT_mmvec"; 34016} 34017def V6_vmpahhsat : HInst< 34018(outs HvxVR:$Vx32), 34019(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34020"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat", 34021tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 34022let Inst{7-5} = 0b100; 34023let Inst{13-13} = 0b1; 34024let Inst{31-21} = 0b00011001100; 34025let hasNewValue = 1; 34026let opNewValue = 0; 34027let isCVI = 1; 34028let DecoderNamespace = "EXT_mmvec"; 34029let Constraints = "$Vx32 = $Vx32in"; 34030} 34031def V6_vmpauhb : HInst< 34032(outs HvxWR:$Vdd32), 34033(ins HvxWR:$Vuu32, IntRegs:$Rt32), 34034"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)", 34035tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> { 34036let Inst{7-5} = 0b101; 34037let Inst{13-13} = 0b0; 34038let Inst{31-21} = 0b00011001100; 34039let hasNewValue = 1; 34040let opNewValue = 0; 34041let isCVI = 1; 34042let DecoderNamespace = "EXT_mmvec"; 34043} 34044def V6_vmpauhb_acc : HInst< 34045(outs HvxWR:$Vxx32), 34046(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 34047"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)", 34048tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> { 34049let Inst{7-5} = 0b010; 34050let Inst{13-13} = 0b1; 34051let Inst{31-21} = 0b00011001100; 34052let hasNewValue = 1; 34053let opNewValue = 0; 34054let isAccumulator = 1; 34055let isCVI = 1; 34056let DecoderNamespace = "EXT_mmvec"; 34057let Constraints = "$Vxx32 = $Vxx32in"; 34058} 34059def V6_vmpauhb_acc_alt : HInst< 34060(outs HvxWR:$Vxx32), 34061(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 34062"$Vxx32 += vmpauhb($Vuu32,$Rt32)", 34063PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34064let hasNewValue = 1; 34065let opNewValue = 0; 34066let isAccumulator = 1; 34067let isCVI = 1; 34068let isPseudo = 1; 34069let isCodeGenOnly = 1; 34070let DecoderNamespace = "EXT_mmvec"; 34071let Constraints = "$Vxx32 = $Vxx32in"; 34072} 34073def V6_vmpauhb_alt : HInst< 34074(outs HvxWR:$Vdd32), 34075(ins HvxWR:$Vuu32, IntRegs:$Rt32), 34076"$Vdd32 = vmpauhb($Vuu32,$Rt32)", 34077PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34078let hasNewValue = 1; 34079let opNewValue = 0; 34080let isCVI = 1; 34081let isPseudo = 1; 34082let isCodeGenOnly = 1; 34083let DecoderNamespace = "EXT_mmvec"; 34084} 34085def V6_vmpauhuhsat : HInst< 34086(outs HvxVR:$Vx32), 34087(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34088"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 34089tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 34090let Inst{7-5} = 0b101; 34091let Inst{13-13} = 0b1; 34092let Inst{31-21} = 0b00011001100; 34093let hasNewValue = 1; 34094let opNewValue = 0; 34095let isCVI = 1; 34096let DecoderNamespace = "EXT_mmvec"; 34097let Constraints = "$Vx32 = $Vx32in"; 34098} 34099def V6_vmpsuhuhsat : HInst< 34100(outs HvxVR:$Vx32), 34101(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 34102"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 34103tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 34104let Inst{7-5} = 0b110; 34105let Inst{13-13} = 0b1; 34106let Inst{31-21} = 0b00011001100; 34107let hasNewValue = 1; 34108let opNewValue = 0; 34109let isCVI = 1; 34110let DecoderNamespace = "EXT_mmvec"; 34111let Constraints = "$Vx32 = $Vx32in"; 34112} 34113def V6_vmpybus : HInst< 34114(outs HvxWR:$Vdd32), 34115(ins HvxVR:$Vu32, IntRegs:$Rt32), 34116"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)", 34117tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 34118let Inst{7-5} = 0b101; 34119let Inst{13-13} = 0b0; 34120let Inst{31-21} = 0b00011001001; 34121let hasNewValue = 1; 34122let opNewValue = 0; 34123let isCVI = 1; 34124let DecoderNamespace = "EXT_mmvec"; 34125} 34126def V6_vmpybus_acc : HInst< 34127(outs HvxWR:$Vxx32), 34128(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34129"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)", 34130tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 34131let Inst{7-5} = 0b101; 34132let Inst{13-13} = 0b1; 34133let Inst{31-21} = 0b00011001001; 34134let hasNewValue = 1; 34135let opNewValue = 0; 34136let isAccumulator = 1; 34137let isCVI = 1; 34138let DecoderNamespace = "EXT_mmvec"; 34139let Constraints = "$Vxx32 = $Vxx32in"; 34140} 34141def V6_vmpybus_acc_alt : HInst< 34142(outs HvxWR:$Vxx32), 34143(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34144"$Vxx32 += vmpybus($Vu32,$Rt32)", 34145PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34146let hasNewValue = 1; 34147let opNewValue = 0; 34148let isAccumulator = 1; 34149let isCVI = 1; 34150let isPseudo = 1; 34151let isCodeGenOnly = 1; 34152let DecoderNamespace = "EXT_mmvec"; 34153let Constraints = "$Vxx32 = $Vxx32in"; 34154} 34155def V6_vmpybus_alt : HInst< 34156(outs HvxWR:$Vdd32), 34157(ins HvxVR:$Vu32, IntRegs:$Rt32), 34158"$Vdd32 = vmpybus($Vu32,$Rt32)", 34159PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34160let hasNewValue = 1; 34161let opNewValue = 0; 34162let isCVI = 1; 34163let isPseudo = 1; 34164let isCodeGenOnly = 1; 34165let DecoderNamespace = "EXT_mmvec"; 34166} 34167def V6_vmpybusv : HInst< 34168(outs HvxWR:$Vdd32), 34169(ins HvxVR:$Vu32, HvxVR:$Vv32), 34170"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)", 34171tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34172let Inst{7-5} = 0b110; 34173let Inst{13-13} = 0b0; 34174let Inst{31-21} = 0b00011100000; 34175let hasNewValue = 1; 34176let opNewValue = 0; 34177let isCVI = 1; 34178let DecoderNamespace = "EXT_mmvec"; 34179} 34180def V6_vmpybusv_acc : HInst< 34181(outs HvxWR:$Vxx32), 34182(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34183"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)", 34184tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34185let Inst{7-5} = 0b110; 34186let Inst{13-13} = 0b1; 34187let Inst{31-21} = 0b00011100000; 34188let hasNewValue = 1; 34189let opNewValue = 0; 34190let isAccumulator = 1; 34191let isCVI = 1; 34192let DecoderNamespace = "EXT_mmvec"; 34193let Constraints = "$Vxx32 = $Vxx32in"; 34194} 34195def V6_vmpybusv_acc_alt : HInst< 34196(outs HvxWR:$Vxx32), 34197(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34198"$Vxx32 += vmpybus($Vu32,$Vv32)", 34199PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34200let hasNewValue = 1; 34201let opNewValue = 0; 34202let isAccumulator = 1; 34203let isCVI = 1; 34204let isPseudo = 1; 34205let isCodeGenOnly = 1; 34206let DecoderNamespace = "EXT_mmvec"; 34207let Constraints = "$Vxx32 = $Vxx32in"; 34208} 34209def V6_vmpybusv_alt : HInst< 34210(outs HvxWR:$Vdd32), 34211(ins HvxVR:$Vu32, HvxVR:$Vv32), 34212"$Vdd32 = vmpybus($Vu32,$Vv32)", 34213PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34214let hasNewValue = 1; 34215let opNewValue = 0; 34216let isCVI = 1; 34217let isPseudo = 1; 34218let isCodeGenOnly = 1; 34219let DecoderNamespace = "EXT_mmvec"; 34220} 34221def V6_vmpybv : HInst< 34222(outs HvxWR:$Vdd32), 34223(ins HvxVR:$Vu32, HvxVR:$Vv32), 34224"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)", 34225tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34226let Inst{7-5} = 0b100; 34227let Inst{13-13} = 0b0; 34228let Inst{31-21} = 0b00011100000; 34229let hasNewValue = 1; 34230let opNewValue = 0; 34231let isCVI = 1; 34232let DecoderNamespace = "EXT_mmvec"; 34233} 34234def V6_vmpybv_acc : HInst< 34235(outs HvxWR:$Vxx32), 34236(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34237"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)", 34238tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34239let Inst{7-5} = 0b100; 34240let Inst{13-13} = 0b1; 34241let Inst{31-21} = 0b00011100000; 34242let hasNewValue = 1; 34243let opNewValue = 0; 34244let isAccumulator = 1; 34245let isCVI = 1; 34246let DecoderNamespace = "EXT_mmvec"; 34247let Constraints = "$Vxx32 = $Vxx32in"; 34248} 34249def V6_vmpybv_acc_alt : HInst< 34250(outs HvxWR:$Vxx32), 34251(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34252"$Vxx32 += vmpyb($Vu32,$Vv32)", 34253PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34254let hasNewValue = 1; 34255let opNewValue = 0; 34256let isAccumulator = 1; 34257let isCVI = 1; 34258let isPseudo = 1; 34259let isCodeGenOnly = 1; 34260let DecoderNamespace = "EXT_mmvec"; 34261let Constraints = "$Vxx32 = $Vxx32in"; 34262} 34263def V6_vmpybv_alt : HInst< 34264(outs HvxWR:$Vdd32), 34265(ins HvxVR:$Vu32, HvxVR:$Vv32), 34266"$Vdd32 = vmpyb($Vu32,$Vv32)", 34267PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34268let hasNewValue = 1; 34269let opNewValue = 0; 34270let isCVI = 1; 34271let isPseudo = 1; 34272let isCodeGenOnly = 1; 34273let DecoderNamespace = "EXT_mmvec"; 34274} 34275def V6_vmpyewuh : HInst< 34276(outs HvxVR:$Vd32), 34277(ins HvxVR:$Vu32, HvxVR:$Vv32), 34278"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)", 34279tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34280let Inst{7-5} = 0b101; 34281let Inst{13-13} = 0b0; 34282let Inst{31-21} = 0b00011111111; 34283let hasNewValue = 1; 34284let opNewValue = 0; 34285let isCVI = 1; 34286let DecoderNamespace = "EXT_mmvec"; 34287} 34288def V6_vmpyewuh_64 : HInst< 34289(outs HvxWR:$Vdd32), 34290(ins HvxVR:$Vu32, HvxVR:$Vv32), 34291"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)", 34292tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> { 34293let Inst{7-5} = 0b110; 34294let Inst{13-13} = 0b0; 34295let Inst{31-21} = 0b00011110101; 34296let hasNewValue = 1; 34297let opNewValue = 0; 34298let isCVI = 1; 34299let DecoderNamespace = "EXT_mmvec"; 34300} 34301def V6_vmpyewuh_alt : HInst< 34302(outs HvxVR:$Vd32), 34303(ins HvxVR:$Vu32, HvxVR:$Vv32), 34304"$Vd32 = vmpyewuh($Vu32,$Vv32)", 34305PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34306let hasNewValue = 1; 34307let opNewValue = 0; 34308let isCVI = 1; 34309let isPseudo = 1; 34310let isCodeGenOnly = 1; 34311let DecoderNamespace = "EXT_mmvec"; 34312} 34313def V6_vmpyh : HInst< 34314(outs HvxWR:$Vdd32), 34315(ins HvxVR:$Vu32, IntRegs:$Rt32), 34316"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)", 34317tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 34318let Inst{7-5} = 0b000; 34319let Inst{13-13} = 0b0; 34320let Inst{31-21} = 0b00011001010; 34321let hasNewValue = 1; 34322let opNewValue = 0; 34323let isCVI = 1; 34324let DecoderNamespace = "EXT_mmvec"; 34325} 34326def V6_vmpyh_acc : HInst< 34327(outs HvxWR:$Vxx32), 34328(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34329"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)", 34330tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> { 34331let Inst{7-5} = 0b110; 34332let Inst{13-13} = 0b1; 34333let Inst{31-21} = 0b00011001101; 34334let hasNewValue = 1; 34335let opNewValue = 0; 34336let isAccumulator = 1; 34337let isCVI = 1; 34338let DecoderNamespace = "EXT_mmvec"; 34339let Constraints = "$Vxx32 = $Vxx32in"; 34340} 34341def V6_vmpyh_acc_alt : HInst< 34342(outs HvxWR:$Vxx32), 34343(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34344"$Vxx32 += vmpyh($Vu32,$Rt32)", 34345PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34346let hasNewValue = 1; 34347let opNewValue = 0; 34348let isAccumulator = 1; 34349let isCVI = 1; 34350let isPseudo = 1; 34351let isCodeGenOnly = 1; 34352let DecoderNamespace = "EXT_mmvec"; 34353let Constraints = "$Vxx32 = $Vxx32in"; 34354} 34355def V6_vmpyh_alt : HInst< 34356(outs HvxWR:$Vdd32), 34357(ins HvxVR:$Vu32, IntRegs:$Rt32), 34358"$Vdd32 = vmpyh($Vu32,$Rt32)", 34359PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34360let hasNewValue = 1; 34361let opNewValue = 0; 34362let isCVI = 1; 34363let isPseudo = 1; 34364let isCodeGenOnly = 1; 34365let DecoderNamespace = "EXT_mmvec"; 34366} 34367def V6_vmpyhsat_acc : HInst< 34368(outs HvxWR:$Vxx32), 34369(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34370"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat", 34371tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 34372let Inst{7-5} = 0b000; 34373let Inst{13-13} = 0b1; 34374let Inst{31-21} = 0b00011001010; 34375let hasNewValue = 1; 34376let opNewValue = 0; 34377let isAccumulator = 1; 34378let isCVI = 1; 34379let DecoderNamespace = "EXT_mmvec"; 34380let Constraints = "$Vxx32 = $Vxx32in"; 34381} 34382def V6_vmpyhsat_acc_alt : HInst< 34383(outs HvxWR:$Vxx32), 34384(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34385"$Vxx32 += vmpyh($Vu32,$Rt32):sat", 34386PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34387let hasNewValue = 1; 34388let opNewValue = 0; 34389let isAccumulator = 1; 34390let isCVI = 1; 34391let isPseudo = 1; 34392let isCodeGenOnly = 1; 34393let DecoderNamespace = "EXT_mmvec"; 34394let Constraints = "$Vxx32 = $Vxx32in"; 34395} 34396def V6_vmpyhsrs : HInst< 34397(outs HvxVR:$Vd32), 34398(ins HvxVR:$Vu32, IntRegs:$Rt32), 34399"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat", 34400tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34401let Inst{7-5} = 0b010; 34402let Inst{13-13} = 0b0; 34403let Inst{31-21} = 0b00011001010; 34404let hasNewValue = 1; 34405let opNewValue = 0; 34406let isCVI = 1; 34407let DecoderNamespace = "EXT_mmvec"; 34408} 34409def V6_vmpyhsrs_alt : HInst< 34410(outs HvxVR:$Vd32), 34411(ins HvxVR:$Vu32, IntRegs:$Rt32), 34412"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat", 34413PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34414let hasNewValue = 1; 34415let opNewValue = 0; 34416let isCVI = 1; 34417let isPseudo = 1; 34418let isCodeGenOnly = 1; 34419let DecoderNamespace = "EXT_mmvec"; 34420} 34421def V6_vmpyhss : HInst< 34422(outs HvxVR:$Vd32), 34423(ins HvxVR:$Vu32, IntRegs:$Rt32), 34424"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat", 34425tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34426let Inst{7-5} = 0b001; 34427let Inst{13-13} = 0b0; 34428let Inst{31-21} = 0b00011001010; 34429let hasNewValue = 1; 34430let opNewValue = 0; 34431let isCVI = 1; 34432let DecoderNamespace = "EXT_mmvec"; 34433} 34434def V6_vmpyhss_alt : HInst< 34435(outs HvxVR:$Vd32), 34436(ins HvxVR:$Vu32, IntRegs:$Rt32), 34437"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat", 34438PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34439let hasNewValue = 1; 34440let opNewValue = 0; 34441let isCVI = 1; 34442let isPseudo = 1; 34443let isCodeGenOnly = 1; 34444let DecoderNamespace = "EXT_mmvec"; 34445} 34446def V6_vmpyhus : HInst< 34447(outs HvxWR:$Vdd32), 34448(ins HvxVR:$Vu32, HvxVR:$Vv32), 34449"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)", 34450tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34451let Inst{7-5} = 0b010; 34452let Inst{13-13} = 0b0; 34453let Inst{31-21} = 0b00011100001; 34454let hasNewValue = 1; 34455let opNewValue = 0; 34456let isCVI = 1; 34457let DecoderNamespace = "EXT_mmvec"; 34458} 34459def V6_vmpyhus_acc : HInst< 34460(outs HvxWR:$Vxx32), 34461(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34462"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)", 34463tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34464let Inst{7-5} = 0b001; 34465let Inst{13-13} = 0b1; 34466let Inst{31-21} = 0b00011100001; 34467let hasNewValue = 1; 34468let opNewValue = 0; 34469let isAccumulator = 1; 34470let isCVI = 1; 34471let DecoderNamespace = "EXT_mmvec"; 34472let Constraints = "$Vxx32 = $Vxx32in"; 34473} 34474def V6_vmpyhus_acc_alt : HInst< 34475(outs HvxWR:$Vxx32), 34476(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34477"$Vxx32 += vmpyhus($Vu32,$Vv32)", 34478PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34479let hasNewValue = 1; 34480let opNewValue = 0; 34481let isAccumulator = 1; 34482let isCVI = 1; 34483let isPseudo = 1; 34484let isCodeGenOnly = 1; 34485let DecoderNamespace = "EXT_mmvec"; 34486let Constraints = "$Vxx32 = $Vxx32in"; 34487} 34488def V6_vmpyhus_alt : HInst< 34489(outs HvxWR:$Vdd32), 34490(ins HvxVR:$Vu32, HvxVR:$Vv32), 34491"$Vdd32 = vmpyhus($Vu32,$Vv32)", 34492PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34493let hasNewValue = 1; 34494let opNewValue = 0; 34495let isCVI = 1; 34496let isPseudo = 1; 34497let isCodeGenOnly = 1; 34498let DecoderNamespace = "EXT_mmvec"; 34499} 34500def V6_vmpyhv : HInst< 34501(outs HvxWR:$Vdd32), 34502(ins HvxVR:$Vu32, HvxVR:$Vv32), 34503"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)", 34504tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34505let Inst{7-5} = 0b111; 34506let Inst{13-13} = 0b0; 34507let Inst{31-21} = 0b00011100000; 34508let hasNewValue = 1; 34509let opNewValue = 0; 34510let isCVI = 1; 34511let DecoderNamespace = "EXT_mmvec"; 34512} 34513def V6_vmpyhv_acc : HInst< 34514(outs HvxWR:$Vxx32), 34515(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34516"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)", 34517tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34518let Inst{7-5} = 0b111; 34519let Inst{13-13} = 0b1; 34520let Inst{31-21} = 0b00011100000; 34521let hasNewValue = 1; 34522let opNewValue = 0; 34523let isAccumulator = 1; 34524let isCVI = 1; 34525let DecoderNamespace = "EXT_mmvec"; 34526let Constraints = "$Vxx32 = $Vxx32in"; 34527} 34528def V6_vmpyhv_acc_alt : HInst< 34529(outs HvxWR:$Vxx32), 34530(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34531"$Vxx32 += vmpyh($Vu32,$Vv32)", 34532PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34533let hasNewValue = 1; 34534let opNewValue = 0; 34535let isAccumulator = 1; 34536let isCVI = 1; 34537let isPseudo = 1; 34538let isCodeGenOnly = 1; 34539let DecoderNamespace = "EXT_mmvec"; 34540let Constraints = "$Vxx32 = $Vxx32in"; 34541} 34542def V6_vmpyhv_alt : HInst< 34543(outs HvxWR:$Vdd32), 34544(ins HvxVR:$Vu32, HvxVR:$Vv32), 34545"$Vdd32 = vmpyh($Vu32,$Vv32)", 34546PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34547let hasNewValue = 1; 34548let opNewValue = 0; 34549let isCVI = 1; 34550let isPseudo = 1; 34551let isCodeGenOnly = 1; 34552let DecoderNamespace = "EXT_mmvec"; 34553} 34554def V6_vmpyhvsrs : HInst< 34555(outs HvxVR:$Vd32), 34556(ins HvxVR:$Vu32, HvxVR:$Vv32), 34557"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat", 34558tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34559let Inst{7-5} = 0b001; 34560let Inst{13-13} = 0b0; 34561let Inst{31-21} = 0b00011100001; 34562let hasNewValue = 1; 34563let opNewValue = 0; 34564let isCVI = 1; 34565let DecoderNamespace = "EXT_mmvec"; 34566} 34567def V6_vmpyhvsrs_alt : HInst< 34568(outs HvxVR:$Vd32), 34569(ins HvxVR:$Vu32, HvxVR:$Vv32), 34570"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat", 34571PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34572let hasNewValue = 1; 34573let opNewValue = 0; 34574let isCVI = 1; 34575let isPseudo = 1; 34576let isCodeGenOnly = 1; 34577let DecoderNamespace = "EXT_mmvec"; 34578} 34579def V6_vmpyieoh : HInst< 34580(outs HvxVR:$Vd32), 34581(ins HvxVR:$Vu32, HvxVR:$Vv32), 34582"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)", 34583tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 34584let Inst{7-5} = 0b000; 34585let Inst{13-13} = 0b0; 34586let Inst{31-21} = 0b00011111011; 34587let hasNewValue = 1; 34588let opNewValue = 0; 34589let isCVI = 1; 34590let DecoderNamespace = "EXT_mmvec"; 34591} 34592def V6_vmpyiewh_acc : HInst< 34593(outs HvxVR:$Vx32), 34594(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34595"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)", 34596tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34597let Inst{7-5} = 0b000; 34598let Inst{13-13} = 0b1; 34599let Inst{31-21} = 0b00011100010; 34600let hasNewValue = 1; 34601let opNewValue = 0; 34602let isAccumulator = 1; 34603let isCVI = 1; 34604let DecoderNamespace = "EXT_mmvec"; 34605let Constraints = "$Vx32 = $Vx32in"; 34606} 34607def V6_vmpyiewh_acc_alt : HInst< 34608(outs HvxVR:$Vx32), 34609(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34610"$Vx32 += vmpyiewh($Vu32,$Vv32)", 34611PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34612let hasNewValue = 1; 34613let opNewValue = 0; 34614let isAccumulator = 1; 34615let isCVI = 1; 34616let isPseudo = 1; 34617let isCodeGenOnly = 1; 34618let DecoderNamespace = "EXT_mmvec"; 34619let Constraints = "$Vx32 = $Vx32in"; 34620} 34621def V6_vmpyiewuh : HInst< 34622(outs HvxVR:$Vd32), 34623(ins HvxVR:$Vu32, HvxVR:$Vv32), 34624"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)", 34625tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34626let Inst{7-5} = 0b000; 34627let Inst{13-13} = 0b0; 34628let Inst{31-21} = 0b00011111110; 34629let hasNewValue = 1; 34630let opNewValue = 0; 34631let isCVI = 1; 34632let DecoderNamespace = "EXT_mmvec"; 34633} 34634def V6_vmpyiewuh_acc : HInst< 34635(outs HvxVR:$Vx32), 34636(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34637"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)", 34638tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34639let Inst{7-5} = 0b101; 34640let Inst{13-13} = 0b1; 34641let Inst{31-21} = 0b00011100001; 34642let hasNewValue = 1; 34643let opNewValue = 0; 34644let isAccumulator = 1; 34645let isCVI = 1; 34646let DecoderNamespace = "EXT_mmvec"; 34647let Constraints = "$Vx32 = $Vx32in"; 34648} 34649def V6_vmpyiewuh_acc_alt : HInst< 34650(outs HvxVR:$Vx32), 34651(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34652"$Vx32 += vmpyiewuh($Vu32,$Vv32)", 34653PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34654let hasNewValue = 1; 34655let opNewValue = 0; 34656let isAccumulator = 1; 34657let isCVI = 1; 34658let isPseudo = 1; 34659let isCodeGenOnly = 1; 34660let DecoderNamespace = "EXT_mmvec"; 34661let Constraints = "$Vx32 = $Vx32in"; 34662} 34663def V6_vmpyiewuh_alt : HInst< 34664(outs HvxVR:$Vd32), 34665(ins HvxVR:$Vu32, HvxVR:$Vv32), 34666"$Vd32 = vmpyiewuh($Vu32,$Vv32)", 34667PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34668let hasNewValue = 1; 34669let opNewValue = 0; 34670let isCVI = 1; 34671let isPseudo = 1; 34672let isCodeGenOnly = 1; 34673let DecoderNamespace = "EXT_mmvec"; 34674} 34675def V6_vmpyih : HInst< 34676(outs HvxVR:$Vd32), 34677(ins HvxVR:$Vu32, HvxVR:$Vv32), 34678"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)", 34679tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34680let Inst{7-5} = 0b100; 34681let Inst{13-13} = 0b0; 34682let Inst{31-21} = 0b00011100001; 34683let hasNewValue = 1; 34684let opNewValue = 0; 34685let isCVI = 1; 34686let DecoderNamespace = "EXT_mmvec"; 34687} 34688def V6_vmpyih_acc : HInst< 34689(outs HvxVR:$Vx32), 34690(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34691"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)", 34692tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34693let Inst{7-5} = 0b100; 34694let Inst{13-13} = 0b1; 34695let Inst{31-21} = 0b00011100001; 34696let hasNewValue = 1; 34697let opNewValue = 0; 34698let isAccumulator = 1; 34699let isCVI = 1; 34700let DecoderNamespace = "EXT_mmvec"; 34701let Constraints = "$Vx32 = $Vx32in"; 34702} 34703def V6_vmpyih_acc_alt : HInst< 34704(outs HvxVR:$Vx32), 34705(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34706"$Vx32 += vmpyih($Vu32,$Vv32)", 34707PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34708let hasNewValue = 1; 34709let opNewValue = 0; 34710let isAccumulator = 1; 34711let isCVI = 1; 34712let isPseudo = 1; 34713let isCodeGenOnly = 1; 34714let DecoderNamespace = "EXT_mmvec"; 34715let Constraints = "$Vx32 = $Vx32in"; 34716} 34717def V6_vmpyih_alt : HInst< 34718(outs HvxVR:$Vd32), 34719(ins HvxVR:$Vu32, HvxVR:$Vv32), 34720"$Vd32 = vmpyih($Vu32,$Vv32)", 34721PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34722let hasNewValue = 1; 34723let opNewValue = 0; 34724let isCVI = 1; 34725let isPseudo = 1; 34726let isCodeGenOnly = 1; 34727let DecoderNamespace = "EXT_mmvec"; 34728} 34729def V6_vmpyihb : HInst< 34730(outs HvxVR:$Vd32), 34731(ins HvxVR:$Vu32, IntRegs:$Rt32), 34732"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)", 34733tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34734let Inst{7-5} = 0b000; 34735let Inst{13-13} = 0b0; 34736let Inst{31-21} = 0b00011001011; 34737let hasNewValue = 1; 34738let opNewValue = 0; 34739let isCVI = 1; 34740let DecoderNamespace = "EXT_mmvec"; 34741} 34742def V6_vmpyihb_acc : HInst< 34743(outs HvxVR:$Vx32), 34744(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34745"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)", 34746tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34747let Inst{7-5} = 0b001; 34748let Inst{13-13} = 0b1; 34749let Inst{31-21} = 0b00011001011; 34750let hasNewValue = 1; 34751let opNewValue = 0; 34752let isAccumulator = 1; 34753let isCVI = 1; 34754let DecoderNamespace = "EXT_mmvec"; 34755let Constraints = "$Vx32 = $Vx32in"; 34756} 34757def V6_vmpyihb_acc_alt : HInst< 34758(outs HvxVR:$Vx32), 34759(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34760"$Vx32 += vmpyihb($Vu32,$Rt32)", 34761PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34762let hasNewValue = 1; 34763let opNewValue = 0; 34764let isAccumulator = 1; 34765let isCVI = 1; 34766let isPseudo = 1; 34767let isCodeGenOnly = 1; 34768let DecoderNamespace = "EXT_mmvec"; 34769let Constraints = "$Vx32 = $Vx32in"; 34770} 34771def V6_vmpyihb_alt : HInst< 34772(outs HvxVR:$Vd32), 34773(ins HvxVR:$Vu32, IntRegs:$Rt32), 34774"$Vd32 = vmpyihb($Vu32,$Rt32)", 34775PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34776let hasNewValue = 1; 34777let opNewValue = 0; 34778let isCVI = 1; 34779let isPseudo = 1; 34780let isCodeGenOnly = 1; 34781let DecoderNamespace = "EXT_mmvec"; 34782} 34783def V6_vmpyiowh : HInst< 34784(outs HvxVR:$Vd32), 34785(ins HvxVR:$Vu32, HvxVR:$Vv32), 34786"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)", 34787tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34788let Inst{7-5} = 0b001; 34789let Inst{13-13} = 0b0; 34790let Inst{31-21} = 0b00011111110; 34791let hasNewValue = 1; 34792let opNewValue = 0; 34793let isCVI = 1; 34794let DecoderNamespace = "EXT_mmvec"; 34795} 34796def V6_vmpyiowh_alt : HInst< 34797(outs HvxVR:$Vd32), 34798(ins HvxVR:$Vu32, HvxVR:$Vv32), 34799"$Vd32 = vmpyiowh($Vu32,$Vv32)", 34800PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34801let hasNewValue = 1; 34802let opNewValue = 0; 34803let isCVI = 1; 34804let isPseudo = 1; 34805let isCodeGenOnly = 1; 34806let DecoderNamespace = "EXT_mmvec"; 34807} 34808def V6_vmpyiwb : HInst< 34809(outs HvxVR:$Vd32), 34810(ins HvxVR:$Vu32, IntRegs:$Rt32), 34811"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)", 34812tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34813let Inst{7-5} = 0b000; 34814let Inst{13-13} = 0b0; 34815let Inst{31-21} = 0b00011001101; 34816let hasNewValue = 1; 34817let opNewValue = 0; 34818let isCVI = 1; 34819let DecoderNamespace = "EXT_mmvec"; 34820} 34821def V6_vmpyiwb_acc : HInst< 34822(outs HvxVR:$Vx32), 34823(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34824"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)", 34825tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34826let Inst{7-5} = 0b010; 34827let Inst{13-13} = 0b1; 34828let Inst{31-21} = 0b00011001010; 34829let hasNewValue = 1; 34830let opNewValue = 0; 34831let isAccumulator = 1; 34832let isCVI = 1; 34833let DecoderNamespace = "EXT_mmvec"; 34834let Constraints = "$Vx32 = $Vx32in"; 34835} 34836def V6_vmpyiwb_acc_alt : HInst< 34837(outs HvxVR:$Vx32), 34838(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34839"$Vx32 += vmpyiwb($Vu32,$Rt32)", 34840PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34841let hasNewValue = 1; 34842let opNewValue = 0; 34843let isAccumulator = 1; 34844let isCVI = 1; 34845let isPseudo = 1; 34846let isCodeGenOnly = 1; 34847let DecoderNamespace = "EXT_mmvec"; 34848let Constraints = "$Vx32 = $Vx32in"; 34849} 34850def V6_vmpyiwb_alt : HInst< 34851(outs HvxVR:$Vd32), 34852(ins HvxVR:$Vu32, IntRegs:$Rt32), 34853"$Vd32 = vmpyiwb($Vu32,$Rt32)", 34854PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34855let hasNewValue = 1; 34856let opNewValue = 0; 34857let isCVI = 1; 34858let isPseudo = 1; 34859let isCodeGenOnly = 1; 34860let DecoderNamespace = "EXT_mmvec"; 34861} 34862def V6_vmpyiwh : HInst< 34863(outs HvxVR:$Vd32), 34864(ins HvxVR:$Vu32, IntRegs:$Rt32), 34865"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)", 34866tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34867let Inst{7-5} = 0b111; 34868let Inst{13-13} = 0b0; 34869let Inst{31-21} = 0b00011001100; 34870let hasNewValue = 1; 34871let opNewValue = 0; 34872let isCVI = 1; 34873let DecoderNamespace = "EXT_mmvec"; 34874} 34875def V6_vmpyiwh_acc : HInst< 34876(outs HvxVR:$Vx32), 34877(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34878"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)", 34879tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 34880let Inst{7-5} = 0b011; 34881let Inst{13-13} = 0b1; 34882let Inst{31-21} = 0b00011001010; 34883let hasNewValue = 1; 34884let opNewValue = 0; 34885let isAccumulator = 1; 34886let isCVI = 1; 34887let DecoderNamespace = "EXT_mmvec"; 34888let Constraints = "$Vx32 = $Vx32in"; 34889} 34890def V6_vmpyiwh_acc_alt : HInst< 34891(outs HvxVR:$Vx32), 34892(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34893"$Vx32 += vmpyiwh($Vu32,$Rt32)", 34894PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34895let hasNewValue = 1; 34896let opNewValue = 0; 34897let isAccumulator = 1; 34898let isCVI = 1; 34899let isPseudo = 1; 34900let isCodeGenOnly = 1; 34901let DecoderNamespace = "EXT_mmvec"; 34902let Constraints = "$Vx32 = $Vx32in"; 34903} 34904def V6_vmpyiwh_alt : HInst< 34905(outs HvxVR:$Vd32), 34906(ins HvxVR:$Vu32, IntRegs:$Rt32), 34907"$Vd32 = vmpyiwh($Vu32,$Rt32)", 34908PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34909let hasNewValue = 1; 34910let opNewValue = 0; 34911let isCVI = 1; 34912let isPseudo = 1; 34913let isCodeGenOnly = 1; 34914let DecoderNamespace = "EXT_mmvec"; 34915} 34916def V6_vmpyiwub : HInst< 34917(outs HvxVR:$Vd32), 34918(ins HvxVR:$Vu32, IntRegs:$Rt32), 34919"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)", 34920tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> { 34921let Inst{7-5} = 0b110; 34922let Inst{13-13} = 0b0; 34923let Inst{31-21} = 0b00011001100; 34924let hasNewValue = 1; 34925let opNewValue = 0; 34926let isCVI = 1; 34927let DecoderNamespace = "EXT_mmvec"; 34928} 34929def V6_vmpyiwub_acc : HInst< 34930(outs HvxVR:$Vx32), 34931(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34932"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)", 34933tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> { 34934let Inst{7-5} = 0b001; 34935let Inst{13-13} = 0b1; 34936let Inst{31-21} = 0b00011001100; 34937let hasNewValue = 1; 34938let opNewValue = 0; 34939let isAccumulator = 1; 34940let isCVI = 1; 34941let DecoderNamespace = "EXT_mmvec"; 34942let Constraints = "$Vx32 = $Vx32in"; 34943} 34944def V6_vmpyiwub_acc_alt : HInst< 34945(outs HvxVR:$Vx32), 34946(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34947"$Vx32 += vmpyiwub($Vu32,$Rt32)", 34948PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34949let hasNewValue = 1; 34950let opNewValue = 0; 34951let isAccumulator = 1; 34952let isCVI = 1; 34953let isPseudo = 1; 34954let isCodeGenOnly = 1; 34955let DecoderNamespace = "EXT_mmvec"; 34956let Constraints = "$Vx32 = $Vx32in"; 34957} 34958def V6_vmpyiwub_alt : HInst< 34959(outs HvxVR:$Vd32), 34960(ins HvxVR:$Vu32, IntRegs:$Rt32), 34961"$Vd32 = vmpyiwub($Vu32,$Rt32)", 34962PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34963let hasNewValue = 1; 34964let opNewValue = 0; 34965let isCVI = 1; 34966let isPseudo = 1; 34967let isCodeGenOnly = 1; 34968let DecoderNamespace = "EXT_mmvec"; 34969} 34970def V6_vmpyowh : HInst< 34971(outs HvxVR:$Vd32), 34972(ins HvxVR:$Vu32, HvxVR:$Vv32), 34973"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat", 34974tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34975let Inst{7-5} = 0b111; 34976let Inst{13-13} = 0b0; 34977let Inst{31-21} = 0b00011111111; 34978let hasNewValue = 1; 34979let opNewValue = 0; 34980let isCVI = 1; 34981let DecoderNamespace = "EXT_mmvec"; 34982} 34983def V6_vmpyowh_64_acc : HInst< 34984(outs HvxWR:$Vxx32), 34985(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34986"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)", 34987tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 34988let Inst{7-5} = 0b011; 34989let Inst{13-13} = 0b1; 34990let Inst{31-21} = 0b00011100001; 34991let hasNewValue = 1; 34992let opNewValue = 0; 34993let isAccumulator = 1; 34994let isCVI = 1; 34995let DecoderNamespace = "EXT_mmvec"; 34996let Constraints = "$Vxx32 = $Vxx32in"; 34997} 34998def V6_vmpyowh_alt : HInst< 34999(outs HvxVR:$Vd32), 35000(ins HvxVR:$Vu32, HvxVR:$Vv32), 35001"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat", 35002PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35003let hasNewValue = 1; 35004let opNewValue = 0; 35005let isCVI = 1; 35006let isPseudo = 1; 35007let isCodeGenOnly = 1; 35008let DecoderNamespace = "EXT_mmvec"; 35009} 35010def V6_vmpyowh_rnd : HInst< 35011(outs HvxVR:$Vd32), 35012(ins HvxVR:$Vu32, HvxVR:$Vv32), 35013"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat", 35014tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 35015let Inst{7-5} = 0b000; 35016let Inst{13-13} = 0b0; 35017let Inst{31-21} = 0b00011111010; 35018let hasNewValue = 1; 35019let opNewValue = 0; 35020let isCVI = 1; 35021let DecoderNamespace = "EXT_mmvec"; 35022} 35023def V6_vmpyowh_rnd_alt : HInst< 35024(outs HvxVR:$Vd32), 35025(ins HvxVR:$Vu32, HvxVR:$Vv32), 35026"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat", 35027PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35028let hasNewValue = 1; 35029let opNewValue = 0; 35030let isCVI = 1; 35031let isPseudo = 1; 35032let isCodeGenOnly = 1; 35033let DecoderNamespace = "EXT_mmvec"; 35034} 35035def V6_vmpyowh_rnd_sacc : HInst< 35036(outs HvxVR:$Vx32), 35037(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35038"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift", 35039tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 35040let Inst{7-5} = 0b111; 35041let Inst{13-13} = 0b1; 35042let Inst{31-21} = 0b00011100001; 35043let hasNewValue = 1; 35044let opNewValue = 0; 35045let isAccumulator = 1; 35046let isCVI = 1; 35047let DecoderNamespace = "EXT_mmvec"; 35048let Constraints = "$Vx32 = $Vx32in"; 35049} 35050def V6_vmpyowh_rnd_sacc_alt : HInst< 35051(outs HvxVR:$Vx32), 35052(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35053"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift", 35054PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35055let hasNewValue = 1; 35056let opNewValue = 0; 35057let isAccumulator = 1; 35058let isCVI = 1; 35059let isPseudo = 1; 35060let DecoderNamespace = "EXT_mmvec"; 35061let Constraints = "$Vx32 = $Vx32in"; 35062} 35063def V6_vmpyowh_sacc : HInst< 35064(outs HvxVR:$Vx32), 35065(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35066"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift", 35067tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 35068let Inst{7-5} = 0b110; 35069let Inst{13-13} = 0b1; 35070let Inst{31-21} = 0b00011100001; 35071let hasNewValue = 1; 35072let opNewValue = 0; 35073let isAccumulator = 1; 35074let isCVI = 1; 35075let DecoderNamespace = "EXT_mmvec"; 35076let Constraints = "$Vx32 = $Vx32in"; 35077} 35078def V6_vmpyowh_sacc_alt : HInst< 35079(outs HvxVR:$Vx32), 35080(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35081"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift", 35082PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35083let hasNewValue = 1; 35084let opNewValue = 0; 35085let isAccumulator = 1; 35086let isCVI = 1; 35087let isPseudo = 1; 35088let DecoderNamespace = "EXT_mmvec"; 35089let Constraints = "$Vx32 = $Vx32in"; 35090} 35091def V6_vmpyub : HInst< 35092(outs HvxWR:$Vdd32), 35093(ins HvxVR:$Vu32, IntRegs:$Rt32), 35094"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)", 35095tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 35096let Inst{7-5} = 0b000; 35097let Inst{13-13} = 0b0; 35098let Inst{31-21} = 0b00011001110; 35099let hasNewValue = 1; 35100let opNewValue = 0; 35101let isCVI = 1; 35102let DecoderNamespace = "EXT_mmvec"; 35103} 35104def V6_vmpyub_acc : HInst< 35105(outs HvxWR:$Vxx32), 35106(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35107"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)", 35108tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 35109let Inst{7-5} = 0b000; 35110let Inst{13-13} = 0b1; 35111let Inst{31-21} = 0b00011001100; 35112let hasNewValue = 1; 35113let opNewValue = 0; 35114let isAccumulator = 1; 35115let isCVI = 1; 35116let DecoderNamespace = "EXT_mmvec"; 35117let Constraints = "$Vxx32 = $Vxx32in"; 35118} 35119def V6_vmpyub_acc_alt : HInst< 35120(outs HvxWR:$Vxx32), 35121(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35122"$Vxx32 += vmpyub($Vu32,$Rt32)", 35123PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35124let hasNewValue = 1; 35125let opNewValue = 0; 35126let isAccumulator = 1; 35127let isCVI = 1; 35128let isPseudo = 1; 35129let isCodeGenOnly = 1; 35130let DecoderNamespace = "EXT_mmvec"; 35131let Constraints = "$Vxx32 = $Vxx32in"; 35132} 35133def V6_vmpyub_alt : HInst< 35134(outs HvxWR:$Vdd32), 35135(ins HvxVR:$Vu32, IntRegs:$Rt32), 35136"$Vdd32 = vmpyub($Vu32,$Rt32)", 35137PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35138let hasNewValue = 1; 35139let opNewValue = 0; 35140let isCVI = 1; 35141let isPseudo = 1; 35142let isCodeGenOnly = 1; 35143let DecoderNamespace = "EXT_mmvec"; 35144} 35145def V6_vmpyubv : HInst< 35146(outs HvxWR:$Vdd32), 35147(ins HvxVR:$Vu32, HvxVR:$Vv32), 35148"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)", 35149tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35150let Inst{7-5} = 0b101; 35151let Inst{13-13} = 0b0; 35152let Inst{31-21} = 0b00011100000; 35153let hasNewValue = 1; 35154let opNewValue = 0; 35155let isCVI = 1; 35156let DecoderNamespace = "EXT_mmvec"; 35157} 35158def V6_vmpyubv_acc : HInst< 35159(outs HvxWR:$Vxx32), 35160(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35161"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)", 35162tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35163let Inst{7-5} = 0b101; 35164let Inst{13-13} = 0b1; 35165let Inst{31-21} = 0b00011100000; 35166let hasNewValue = 1; 35167let opNewValue = 0; 35168let isAccumulator = 1; 35169let isCVI = 1; 35170let DecoderNamespace = "EXT_mmvec"; 35171let Constraints = "$Vxx32 = $Vxx32in"; 35172} 35173def V6_vmpyubv_acc_alt : HInst< 35174(outs HvxWR:$Vxx32), 35175(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35176"$Vxx32 += vmpyub($Vu32,$Vv32)", 35177PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35178let hasNewValue = 1; 35179let opNewValue = 0; 35180let isAccumulator = 1; 35181let isCVI = 1; 35182let isPseudo = 1; 35183let isCodeGenOnly = 1; 35184let DecoderNamespace = "EXT_mmvec"; 35185let Constraints = "$Vxx32 = $Vxx32in"; 35186} 35187def V6_vmpyubv_alt : HInst< 35188(outs HvxWR:$Vdd32), 35189(ins HvxVR:$Vu32, HvxVR:$Vv32), 35190"$Vdd32 = vmpyub($Vu32,$Vv32)", 35191PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35192let hasNewValue = 1; 35193let opNewValue = 0; 35194let isCVI = 1; 35195let isPseudo = 1; 35196let isCodeGenOnly = 1; 35197let DecoderNamespace = "EXT_mmvec"; 35198} 35199def V6_vmpyuh : HInst< 35200(outs HvxWR:$Vdd32), 35201(ins HvxVR:$Vu32, IntRegs:$Rt32), 35202"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)", 35203tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 35204let Inst{7-5} = 0b011; 35205let Inst{13-13} = 0b0; 35206let Inst{31-21} = 0b00011001010; 35207let hasNewValue = 1; 35208let opNewValue = 0; 35209let isCVI = 1; 35210let DecoderNamespace = "EXT_mmvec"; 35211} 35212def V6_vmpyuh_acc : HInst< 35213(outs HvxWR:$Vxx32), 35214(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35215"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)", 35216tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 35217let Inst{7-5} = 0b001; 35218let Inst{13-13} = 0b1; 35219let Inst{31-21} = 0b00011001010; 35220let hasNewValue = 1; 35221let opNewValue = 0; 35222let isAccumulator = 1; 35223let isCVI = 1; 35224let DecoderNamespace = "EXT_mmvec"; 35225let Constraints = "$Vxx32 = $Vxx32in"; 35226} 35227def V6_vmpyuh_acc_alt : HInst< 35228(outs HvxWR:$Vxx32), 35229(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35230"$Vxx32 += vmpyuh($Vu32,$Rt32)", 35231PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35232let hasNewValue = 1; 35233let opNewValue = 0; 35234let isAccumulator = 1; 35235let isCVI = 1; 35236let isPseudo = 1; 35237let isCodeGenOnly = 1; 35238let DecoderNamespace = "EXT_mmvec"; 35239let Constraints = "$Vxx32 = $Vxx32in"; 35240} 35241def V6_vmpyuh_alt : HInst< 35242(outs HvxWR:$Vdd32), 35243(ins HvxVR:$Vu32, IntRegs:$Rt32), 35244"$Vdd32 = vmpyuh($Vu32,$Rt32)", 35245PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35246let hasNewValue = 1; 35247let opNewValue = 0; 35248let isCVI = 1; 35249let isPseudo = 1; 35250let isCodeGenOnly = 1; 35251let DecoderNamespace = "EXT_mmvec"; 35252} 35253def V6_vmpyuhe : HInst< 35254(outs HvxVR:$Vd32), 35255(ins HvxVR:$Vu32, IntRegs:$Rt32), 35256"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)", 35257tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> { 35258let Inst{7-5} = 0b010; 35259let Inst{13-13} = 0b0; 35260let Inst{31-21} = 0b00011001011; 35261let hasNewValue = 1; 35262let opNewValue = 0; 35263let isCVI = 1; 35264let DecoderNamespace = "EXT_mmvec"; 35265} 35266def V6_vmpyuhe_acc : HInst< 35267(outs HvxVR:$Vx32), 35268(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35269"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)", 35270tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> { 35271let Inst{7-5} = 0b011; 35272let Inst{13-13} = 0b1; 35273let Inst{31-21} = 0b00011001100; 35274let hasNewValue = 1; 35275let opNewValue = 0; 35276let isAccumulator = 1; 35277let isCVI = 1; 35278let DecoderNamespace = "EXT_mmvec"; 35279let Constraints = "$Vx32 = $Vx32in"; 35280} 35281def V6_vmpyuhv : HInst< 35282(outs HvxWR:$Vdd32), 35283(ins HvxVR:$Vu32, HvxVR:$Vv32), 35284"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)", 35285tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35286let Inst{7-5} = 0b000; 35287let Inst{13-13} = 0b0; 35288let Inst{31-21} = 0b00011100001; 35289let hasNewValue = 1; 35290let opNewValue = 0; 35291let isCVI = 1; 35292let DecoderNamespace = "EXT_mmvec"; 35293} 35294def V6_vmpyuhv_acc : HInst< 35295(outs HvxWR:$Vxx32), 35296(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35297"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)", 35298tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35299let Inst{7-5} = 0b000; 35300let Inst{13-13} = 0b1; 35301let Inst{31-21} = 0b00011100001; 35302let hasNewValue = 1; 35303let opNewValue = 0; 35304let isAccumulator = 1; 35305let isCVI = 1; 35306let DecoderNamespace = "EXT_mmvec"; 35307let Constraints = "$Vxx32 = $Vxx32in"; 35308} 35309def V6_vmpyuhv_acc_alt : HInst< 35310(outs HvxWR:$Vxx32), 35311(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35312"$Vxx32 += vmpyuh($Vu32,$Vv32)", 35313PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35314let hasNewValue = 1; 35315let opNewValue = 0; 35316let isAccumulator = 1; 35317let isCVI = 1; 35318let isPseudo = 1; 35319let isCodeGenOnly = 1; 35320let DecoderNamespace = "EXT_mmvec"; 35321let Constraints = "$Vxx32 = $Vxx32in"; 35322} 35323def V6_vmpyuhv_alt : HInst< 35324(outs HvxWR:$Vdd32), 35325(ins HvxVR:$Vu32, HvxVR:$Vv32), 35326"$Vdd32 = vmpyuh($Vu32,$Vv32)", 35327PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35328let hasNewValue = 1; 35329let opNewValue = 0; 35330let isCVI = 1; 35331let isPseudo = 1; 35332let isCodeGenOnly = 1; 35333let DecoderNamespace = "EXT_mmvec"; 35334} 35335def V6_vmux : HInst< 35336(outs HvxVR:$Vd32), 35337(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 35338"$Vd32 = vmux($Qt4,$Vu32,$Vv32)", 35339tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> { 35340let Inst{7-7} = 0b0; 35341let Inst{13-13} = 0b1; 35342let Inst{31-21} = 0b00011110111; 35343let hasNewValue = 1; 35344let opNewValue = 0; 35345let isCVI = 1; 35346let DecoderNamespace = "EXT_mmvec"; 35347} 35348def V6_vnavgb : HInst< 35349(outs HvxVR:$Vd32), 35350(ins HvxVR:$Vu32, HvxVR:$Vv32), 35351"$Vd32.b = vnavg($Vu32.b,$Vv32.b)", 35352tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 35353let Inst{7-5} = 0b110; 35354let Inst{13-13} = 0b1; 35355let Inst{31-21} = 0b00011111000; 35356let hasNewValue = 1; 35357let opNewValue = 0; 35358let isCVI = 1; 35359let DecoderNamespace = "EXT_mmvec"; 35360} 35361def V6_vnavgb_alt : HInst< 35362(outs HvxVR:$Vd32), 35363(ins HvxVR:$Vu32, HvxVR:$Vv32), 35364"$Vd32 = vnavgb($Vu32,$Vv32)", 35365PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35366let hasNewValue = 1; 35367let opNewValue = 0; 35368let isCVI = 1; 35369let isPseudo = 1; 35370let isCodeGenOnly = 1; 35371let DecoderNamespace = "EXT_mmvec"; 35372} 35373def V6_vnavgh : HInst< 35374(outs HvxVR:$Vd32), 35375(ins HvxVR:$Vu32, HvxVR:$Vv32), 35376"$Vd32.h = vnavg($Vu32.h,$Vv32.h)", 35377tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35378let Inst{7-5} = 0b001; 35379let Inst{13-13} = 0b0; 35380let Inst{31-21} = 0b00011100111; 35381let hasNewValue = 1; 35382let opNewValue = 0; 35383let isCVI = 1; 35384let DecoderNamespace = "EXT_mmvec"; 35385} 35386def V6_vnavgh_alt : HInst< 35387(outs HvxVR:$Vd32), 35388(ins HvxVR:$Vu32, HvxVR:$Vv32), 35389"$Vd32 = vnavgh($Vu32,$Vv32)", 35390PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35391let hasNewValue = 1; 35392let opNewValue = 0; 35393let isCVI = 1; 35394let isPseudo = 1; 35395let isCodeGenOnly = 1; 35396let DecoderNamespace = "EXT_mmvec"; 35397} 35398def V6_vnavgub : HInst< 35399(outs HvxVR:$Vd32), 35400(ins HvxVR:$Vu32, HvxVR:$Vv32), 35401"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)", 35402tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35403let Inst{7-5} = 0b000; 35404let Inst{13-13} = 0b0; 35405let Inst{31-21} = 0b00011100111; 35406let hasNewValue = 1; 35407let opNewValue = 0; 35408let isCVI = 1; 35409let DecoderNamespace = "EXT_mmvec"; 35410} 35411def V6_vnavgub_alt : HInst< 35412(outs HvxVR:$Vd32), 35413(ins HvxVR:$Vu32, HvxVR:$Vv32), 35414"$Vd32 = vnavgub($Vu32,$Vv32)", 35415PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35416let hasNewValue = 1; 35417let opNewValue = 0; 35418let isCVI = 1; 35419let isPseudo = 1; 35420let isCodeGenOnly = 1; 35421let DecoderNamespace = "EXT_mmvec"; 35422} 35423def V6_vnavgw : HInst< 35424(outs HvxVR:$Vd32), 35425(ins HvxVR:$Vu32, HvxVR:$Vv32), 35426"$Vd32.w = vnavg($Vu32.w,$Vv32.w)", 35427tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35428let Inst{7-5} = 0b010; 35429let Inst{13-13} = 0b0; 35430let Inst{31-21} = 0b00011100111; 35431let hasNewValue = 1; 35432let opNewValue = 0; 35433let isCVI = 1; 35434let DecoderNamespace = "EXT_mmvec"; 35435} 35436def V6_vnavgw_alt : HInst< 35437(outs HvxVR:$Vd32), 35438(ins HvxVR:$Vu32, HvxVR:$Vv32), 35439"$Vd32 = vnavgw($Vu32,$Vv32)", 35440PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35441let hasNewValue = 1; 35442let opNewValue = 0; 35443let isCVI = 1; 35444let isPseudo = 1; 35445let isCodeGenOnly = 1; 35446let DecoderNamespace = "EXT_mmvec"; 35447} 35448def V6_vnccombine : HInst< 35449(outs HvxWR:$Vdd32), 35450(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 35451"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 35452tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 35453let Inst{7-7} = 0b0; 35454let Inst{13-13} = 0b0; 35455let Inst{31-21} = 0b00011010010; 35456let isPredicated = 1; 35457let isPredicatedFalse = 1; 35458let hasNewValue = 1; 35459let opNewValue = 0; 35460let isCVI = 1; 35461let DecoderNamespace = "EXT_mmvec"; 35462} 35463def V6_vncmov : HInst< 35464(outs HvxVR:$Vd32), 35465(ins PredRegs:$Ps4, HvxVR:$Vu32), 35466"if (!$Ps4) $Vd32 = $Vu32", 35467tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 35468let Inst{7-7} = 0b0; 35469let Inst{13-13} = 0b0; 35470let Inst{31-16} = 0b0001101000100000; 35471let isPredicated = 1; 35472let isPredicatedFalse = 1; 35473let hasNewValue = 1; 35474let opNewValue = 0; 35475let isCVI = 1; 35476let DecoderNamespace = "EXT_mmvec"; 35477} 35478def V6_vnormamth : HInst< 35479(outs HvxVR:$Vd32), 35480(ins HvxVR:$Vu32), 35481"$Vd32.h = vnormamt($Vu32.h)", 35482tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35483let Inst{7-5} = 0b101; 35484let Inst{13-13} = 0b0; 35485let Inst{31-16} = 0b0001111000000011; 35486let hasNewValue = 1; 35487let opNewValue = 0; 35488let isCVI = 1; 35489let DecoderNamespace = "EXT_mmvec"; 35490} 35491def V6_vnormamth_alt : HInst< 35492(outs HvxVR:$Vd32), 35493(ins HvxVR:$Vu32), 35494"$Vd32 = vnormamth($Vu32)", 35495PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35496let hasNewValue = 1; 35497let opNewValue = 0; 35498let isCVI = 1; 35499let isPseudo = 1; 35500let isCodeGenOnly = 1; 35501let DecoderNamespace = "EXT_mmvec"; 35502} 35503def V6_vnormamtw : HInst< 35504(outs HvxVR:$Vd32), 35505(ins HvxVR:$Vu32), 35506"$Vd32.w = vnormamt($Vu32.w)", 35507tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35508let Inst{7-5} = 0b100; 35509let Inst{13-13} = 0b0; 35510let Inst{31-16} = 0b0001111000000011; 35511let hasNewValue = 1; 35512let opNewValue = 0; 35513let isCVI = 1; 35514let DecoderNamespace = "EXT_mmvec"; 35515} 35516def V6_vnormamtw_alt : HInst< 35517(outs HvxVR:$Vd32), 35518(ins HvxVR:$Vu32), 35519"$Vd32 = vnormamtw($Vu32)", 35520PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35521let hasNewValue = 1; 35522let opNewValue = 0; 35523let isCVI = 1; 35524let isPseudo = 1; 35525let isCodeGenOnly = 1; 35526let DecoderNamespace = "EXT_mmvec"; 35527} 35528def V6_vnot : HInst< 35529(outs HvxVR:$Vd32), 35530(ins HvxVR:$Vu32), 35531"$Vd32 = vnot($Vu32)", 35532tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 35533let Inst{7-5} = 0b100; 35534let Inst{13-13} = 0b0; 35535let Inst{31-16} = 0b0001111000000000; 35536let hasNewValue = 1; 35537let opNewValue = 0; 35538let isCVI = 1; 35539let DecoderNamespace = "EXT_mmvec"; 35540} 35541def V6_vor : HInst< 35542(outs HvxVR:$Vd32), 35543(ins HvxVR:$Vu32, HvxVR:$Vv32), 35544"$Vd32 = vor($Vu32,$Vv32)", 35545tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35546let Inst{7-5} = 0b110; 35547let Inst{13-13} = 0b0; 35548let Inst{31-21} = 0b00011100001; 35549let hasNewValue = 1; 35550let opNewValue = 0; 35551let isCVI = 1; 35552let DecoderNamespace = "EXT_mmvec"; 35553} 35554def V6_vpackeb : HInst< 35555(outs HvxVR:$Vd32), 35556(ins HvxVR:$Vu32, HvxVR:$Vv32), 35557"$Vd32.b = vpacke($Vu32.h,$Vv32.h)", 35558tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35559let Inst{7-5} = 0b010; 35560let Inst{13-13} = 0b0; 35561let Inst{31-21} = 0b00011111110; 35562let hasNewValue = 1; 35563let opNewValue = 0; 35564let isCVI = 1; 35565let DecoderNamespace = "EXT_mmvec"; 35566} 35567def V6_vpackeb_alt : HInst< 35568(outs HvxVR:$Vd32), 35569(ins HvxVR:$Vu32, HvxVR:$Vv32), 35570"$Vd32 = vpackeb($Vu32,$Vv32)", 35571PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35572let hasNewValue = 1; 35573let opNewValue = 0; 35574let isCVI = 1; 35575let isPseudo = 1; 35576let isCodeGenOnly = 1; 35577let DecoderNamespace = "EXT_mmvec"; 35578} 35579def V6_vpackeh : HInst< 35580(outs HvxVR:$Vd32), 35581(ins HvxVR:$Vu32, HvxVR:$Vv32), 35582"$Vd32.h = vpacke($Vu32.w,$Vv32.w)", 35583tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35584let Inst{7-5} = 0b011; 35585let Inst{13-13} = 0b0; 35586let Inst{31-21} = 0b00011111110; 35587let hasNewValue = 1; 35588let opNewValue = 0; 35589let isCVI = 1; 35590let DecoderNamespace = "EXT_mmvec"; 35591} 35592def V6_vpackeh_alt : HInst< 35593(outs HvxVR:$Vd32), 35594(ins HvxVR:$Vu32, HvxVR:$Vv32), 35595"$Vd32 = vpackeh($Vu32,$Vv32)", 35596PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35597let hasNewValue = 1; 35598let opNewValue = 0; 35599let isCVI = 1; 35600let isPseudo = 1; 35601let isCodeGenOnly = 1; 35602let DecoderNamespace = "EXT_mmvec"; 35603} 35604def V6_vpackhb_sat : HInst< 35605(outs HvxVR:$Vd32), 35606(ins HvxVR:$Vu32, HvxVR:$Vv32), 35607"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat", 35608tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35609let Inst{7-5} = 0b110; 35610let Inst{13-13} = 0b0; 35611let Inst{31-21} = 0b00011111110; 35612let hasNewValue = 1; 35613let opNewValue = 0; 35614let isCVI = 1; 35615let DecoderNamespace = "EXT_mmvec"; 35616} 35617def V6_vpackhb_sat_alt : HInst< 35618(outs HvxVR:$Vd32), 35619(ins HvxVR:$Vu32, HvxVR:$Vv32), 35620"$Vd32 = vpackhb($Vu32,$Vv32):sat", 35621PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35622let hasNewValue = 1; 35623let opNewValue = 0; 35624let isCVI = 1; 35625let isPseudo = 1; 35626let isCodeGenOnly = 1; 35627let DecoderNamespace = "EXT_mmvec"; 35628} 35629def V6_vpackhub_sat : HInst< 35630(outs HvxVR:$Vd32), 35631(ins HvxVR:$Vu32, HvxVR:$Vv32), 35632"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat", 35633tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35634let Inst{7-5} = 0b101; 35635let Inst{13-13} = 0b0; 35636let Inst{31-21} = 0b00011111110; 35637let hasNewValue = 1; 35638let opNewValue = 0; 35639let isCVI = 1; 35640let DecoderNamespace = "EXT_mmvec"; 35641} 35642def V6_vpackhub_sat_alt : HInst< 35643(outs HvxVR:$Vd32), 35644(ins HvxVR:$Vu32, HvxVR:$Vv32), 35645"$Vd32 = vpackhub($Vu32,$Vv32):sat", 35646PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35647let hasNewValue = 1; 35648let opNewValue = 0; 35649let isCVI = 1; 35650let isPseudo = 1; 35651let isCodeGenOnly = 1; 35652let DecoderNamespace = "EXT_mmvec"; 35653} 35654def V6_vpackob : HInst< 35655(outs HvxVR:$Vd32), 35656(ins HvxVR:$Vu32, HvxVR:$Vv32), 35657"$Vd32.b = vpacko($Vu32.h,$Vv32.h)", 35658tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35659let Inst{7-5} = 0b001; 35660let Inst{13-13} = 0b0; 35661let Inst{31-21} = 0b00011111111; 35662let hasNewValue = 1; 35663let opNewValue = 0; 35664let isCVI = 1; 35665let DecoderNamespace = "EXT_mmvec"; 35666} 35667def V6_vpackob_alt : HInst< 35668(outs HvxVR:$Vd32), 35669(ins HvxVR:$Vu32, HvxVR:$Vv32), 35670"$Vd32 = vpackob($Vu32,$Vv32)", 35671PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35672let hasNewValue = 1; 35673let opNewValue = 0; 35674let isCVI = 1; 35675let isPseudo = 1; 35676let isCodeGenOnly = 1; 35677let DecoderNamespace = "EXT_mmvec"; 35678} 35679def V6_vpackoh : HInst< 35680(outs HvxVR:$Vd32), 35681(ins HvxVR:$Vu32, HvxVR:$Vv32), 35682"$Vd32.h = vpacko($Vu32.w,$Vv32.w)", 35683tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35684let Inst{7-5} = 0b010; 35685let Inst{13-13} = 0b0; 35686let Inst{31-21} = 0b00011111111; 35687let hasNewValue = 1; 35688let opNewValue = 0; 35689let isCVI = 1; 35690let DecoderNamespace = "EXT_mmvec"; 35691} 35692def V6_vpackoh_alt : HInst< 35693(outs HvxVR:$Vd32), 35694(ins HvxVR:$Vu32, HvxVR:$Vv32), 35695"$Vd32 = vpackoh($Vu32,$Vv32)", 35696PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35697let hasNewValue = 1; 35698let opNewValue = 0; 35699let isCVI = 1; 35700let isPseudo = 1; 35701let isCodeGenOnly = 1; 35702let DecoderNamespace = "EXT_mmvec"; 35703} 35704def V6_vpackwh_sat : HInst< 35705(outs HvxVR:$Vd32), 35706(ins HvxVR:$Vu32, HvxVR:$Vv32), 35707"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat", 35708tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35709let Inst{7-5} = 0b000; 35710let Inst{13-13} = 0b0; 35711let Inst{31-21} = 0b00011111111; 35712let hasNewValue = 1; 35713let opNewValue = 0; 35714let isCVI = 1; 35715let DecoderNamespace = "EXT_mmvec"; 35716} 35717def V6_vpackwh_sat_alt : HInst< 35718(outs HvxVR:$Vd32), 35719(ins HvxVR:$Vu32, HvxVR:$Vv32), 35720"$Vd32 = vpackwh($Vu32,$Vv32):sat", 35721PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35722let hasNewValue = 1; 35723let opNewValue = 0; 35724let isCVI = 1; 35725let isPseudo = 1; 35726let isCodeGenOnly = 1; 35727let DecoderNamespace = "EXT_mmvec"; 35728} 35729def V6_vpackwuh_sat : HInst< 35730(outs HvxVR:$Vd32), 35731(ins HvxVR:$Vu32, HvxVR:$Vv32), 35732"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat", 35733tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35734let Inst{7-5} = 0b111; 35735let Inst{13-13} = 0b0; 35736let Inst{31-21} = 0b00011111110; 35737let hasNewValue = 1; 35738let opNewValue = 0; 35739let isCVI = 1; 35740let DecoderNamespace = "EXT_mmvec"; 35741} 35742def V6_vpackwuh_sat_alt : HInst< 35743(outs HvxVR:$Vd32), 35744(ins HvxVR:$Vu32, HvxVR:$Vv32), 35745"$Vd32 = vpackwuh($Vu32,$Vv32):sat", 35746PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35747let hasNewValue = 1; 35748let opNewValue = 0; 35749let isCVI = 1; 35750let isPseudo = 1; 35751let isCodeGenOnly = 1; 35752let DecoderNamespace = "EXT_mmvec"; 35753} 35754def V6_vpopcounth : HInst< 35755(outs HvxVR:$Vd32), 35756(ins HvxVR:$Vu32), 35757"$Vd32.h = vpopcount($Vu32.h)", 35758tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35759let Inst{7-5} = 0b110; 35760let Inst{13-13} = 0b0; 35761let Inst{31-16} = 0b0001111000000010; 35762let hasNewValue = 1; 35763let opNewValue = 0; 35764let isCVI = 1; 35765let DecoderNamespace = "EXT_mmvec"; 35766} 35767def V6_vpopcounth_alt : HInst< 35768(outs HvxVR:$Vd32), 35769(ins HvxVR:$Vu32), 35770"$Vd32 = vpopcounth($Vu32)", 35771PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35772let hasNewValue = 1; 35773let opNewValue = 0; 35774let isCVI = 1; 35775let isPseudo = 1; 35776let isCodeGenOnly = 1; 35777let DecoderNamespace = "EXT_mmvec"; 35778} 35779def V6_vprefixqb : HInst< 35780(outs HvxVR:$Vd32), 35781(ins HvxQR:$Qv4), 35782"$Vd32.b = prefixsum($Qv4)", 35783tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35784let Inst{13-5} = 0b100000010; 35785let Inst{21-16} = 0b000011; 35786let Inst{31-24} = 0b00011110; 35787let hasNewValue = 1; 35788let opNewValue = 0; 35789let isCVI = 1; 35790let DecoderNamespace = "EXT_mmvec"; 35791} 35792def V6_vprefixqh : HInst< 35793(outs HvxVR:$Vd32), 35794(ins HvxQR:$Qv4), 35795"$Vd32.h = prefixsum($Qv4)", 35796tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35797let Inst{13-5} = 0b100001010; 35798let Inst{21-16} = 0b000011; 35799let Inst{31-24} = 0b00011110; 35800let hasNewValue = 1; 35801let opNewValue = 0; 35802let isCVI = 1; 35803let DecoderNamespace = "EXT_mmvec"; 35804} 35805def V6_vprefixqw : HInst< 35806(outs HvxVR:$Vd32), 35807(ins HvxQR:$Qv4), 35808"$Vd32.w = prefixsum($Qv4)", 35809tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35810let Inst{13-5} = 0b100010010; 35811let Inst{21-16} = 0b000011; 35812let Inst{31-24} = 0b00011110; 35813let hasNewValue = 1; 35814let opNewValue = 0; 35815let isCVI = 1; 35816let DecoderNamespace = "EXT_mmvec"; 35817} 35818def V6_vrdelta : HInst< 35819(outs HvxVR:$Vd32), 35820(ins HvxVR:$Vu32, HvxVR:$Vv32), 35821"$Vd32 = vrdelta($Vu32,$Vv32)", 35822tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35823let Inst{7-5} = 0b011; 35824let Inst{13-13} = 0b0; 35825let Inst{31-21} = 0b00011111001; 35826let hasNewValue = 1; 35827let opNewValue = 0; 35828let isCVI = 1; 35829let DecoderNamespace = "EXT_mmvec"; 35830} 35831def V6_vrmpybub_rtt : HInst< 35832(outs HvxWR:$Vdd32), 35833(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 35834"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 35835tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 35836let Inst{7-5} = 0b101; 35837let Inst{13-13} = 0b0; 35838let Inst{31-21} = 0b00011001110; 35839let hasNewValue = 1; 35840let opNewValue = 0; 35841let isCVI = 1; 35842let DecoderNamespace = "EXT_mmvec"; 35843} 35844def V6_vrmpybub_rtt_acc : HInst< 35845(outs HvxWR:$Vxx32), 35846(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35847"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 35848tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 35849let Inst{7-5} = 0b000; 35850let Inst{13-13} = 0b1; 35851let Inst{31-21} = 0b00011001101; 35852let hasNewValue = 1; 35853let opNewValue = 0; 35854let isAccumulator = 1; 35855let isCVI = 1; 35856let DecoderNamespace = "EXT_mmvec"; 35857let Constraints = "$Vxx32 = $Vxx32in"; 35858} 35859def V6_vrmpybub_rtt_acc_alt : HInst< 35860(outs HvxWR:$Vxx32), 35861(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35862"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 35863PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35864let hasNewValue = 1; 35865let opNewValue = 0; 35866let isAccumulator = 1; 35867let isCVI = 1; 35868let isPseudo = 1; 35869let isCodeGenOnly = 1; 35870let DecoderNamespace = "EXT_mmvec"; 35871let Constraints = "$Vxx32 = $Vxx32in"; 35872} 35873def V6_vrmpybub_rtt_alt : HInst< 35874(outs HvxWR:$Vdd32), 35875(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 35876"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 35877PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35878let hasNewValue = 1; 35879let opNewValue = 0; 35880let isCVI = 1; 35881let isPseudo = 1; 35882let isCodeGenOnly = 1; 35883let DecoderNamespace = "EXT_mmvec"; 35884} 35885def V6_vrmpybus : HInst< 35886(outs HvxVR:$Vd32), 35887(ins HvxVR:$Vu32, IntRegs:$Rt32), 35888"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)", 35889tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 35890let Inst{7-5} = 0b100; 35891let Inst{13-13} = 0b0; 35892let Inst{31-21} = 0b00011001000; 35893let hasNewValue = 1; 35894let opNewValue = 0; 35895let isCVI = 1; 35896let DecoderNamespace = "EXT_mmvec"; 35897} 35898def V6_vrmpybus_acc : HInst< 35899(outs HvxVR:$Vx32), 35900(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35901"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)", 35902tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 35903let Inst{7-5} = 0b101; 35904let Inst{13-13} = 0b1; 35905let Inst{31-21} = 0b00011001000; 35906let hasNewValue = 1; 35907let opNewValue = 0; 35908let isAccumulator = 1; 35909let isCVI = 1; 35910let DecoderNamespace = "EXT_mmvec"; 35911let Constraints = "$Vx32 = $Vx32in"; 35912} 35913def V6_vrmpybus_acc_alt : HInst< 35914(outs HvxVR:$Vx32), 35915(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35916"$Vx32 += vrmpybus($Vu32,$Rt32)", 35917PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35918let hasNewValue = 1; 35919let opNewValue = 0; 35920let isAccumulator = 1; 35921let isCVI = 1; 35922let isPseudo = 1; 35923let isCodeGenOnly = 1; 35924let DecoderNamespace = "EXT_mmvec"; 35925let Constraints = "$Vx32 = $Vx32in"; 35926} 35927def V6_vrmpybus_alt : HInst< 35928(outs HvxVR:$Vd32), 35929(ins HvxVR:$Vu32, IntRegs:$Rt32), 35930"$Vd32 = vrmpybus($Vu32,$Rt32)", 35931PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35932let hasNewValue = 1; 35933let opNewValue = 0; 35934let isCVI = 1; 35935let isPseudo = 1; 35936let isCodeGenOnly = 1; 35937let DecoderNamespace = "EXT_mmvec"; 35938} 35939def V6_vrmpybusi : HInst< 35940(outs HvxWR:$Vdd32), 35941(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35942"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 35943tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 35944let Inst{7-6} = 0b10; 35945let Inst{13-13} = 0b0; 35946let Inst{31-21} = 0b00011001010; 35947let hasNewValue = 1; 35948let opNewValue = 0; 35949let isCVI = 1; 35950let DecoderNamespace = "EXT_mmvec"; 35951} 35952def V6_vrmpybusi_acc : HInst< 35953(outs HvxWR:$Vxx32), 35954(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35955"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 35956tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 35957let Inst{7-6} = 0b10; 35958let Inst{13-13} = 0b1; 35959let Inst{31-21} = 0b00011001010; 35960let hasNewValue = 1; 35961let opNewValue = 0; 35962let isAccumulator = 1; 35963let isCVI = 1; 35964let DecoderNamespace = "EXT_mmvec"; 35965let Constraints = "$Vxx32 = $Vxx32in"; 35966} 35967def V6_vrmpybusi_acc_alt : HInst< 35968(outs HvxWR:$Vxx32), 35969(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35970"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)", 35971PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35972let hasNewValue = 1; 35973let opNewValue = 0; 35974let isAccumulator = 1; 35975let isCVI = 1; 35976let isPseudo = 1; 35977let isCodeGenOnly = 1; 35978let DecoderNamespace = "EXT_mmvec"; 35979let Constraints = "$Vxx32 = $Vxx32in"; 35980} 35981def V6_vrmpybusi_alt : HInst< 35982(outs HvxWR:$Vdd32), 35983(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35984"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)", 35985PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35986let hasNewValue = 1; 35987let opNewValue = 0; 35988let isCVI = 1; 35989let isPseudo = 1; 35990let isCodeGenOnly = 1; 35991let DecoderNamespace = "EXT_mmvec"; 35992} 35993def V6_vrmpybusv : HInst< 35994(outs HvxVR:$Vd32), 35995(ins HvxVR:$Vu32, HvxVR:$Vv32), 35996"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)", 35997tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 35998let Inst{7-5} = 0b010; 35999let Inst{13-13} = 0b0; 36000let Inst{31-21} = 0b00011100000; 36001let hasNewValue = 1; 36002let opNewValue = 0; 36003let isCVI = 1; 36004let DecoderNamespace = "EXT_mmvec"; 36005} 36006def V6_vrmpybusv_acc : HInst< 36007(outs HvxVR:$Vx32), 36008(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36009"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)", 36010tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36011let Inst{7-5} = 0b010; 36012let Inst{13-13} = 0b1; 36013let Inst{31-21} = 0b00011100000; 36014let hasNewValue = 1; 36015let opNewValue = 0; 36016let isAccumulator = 1; 36017let isCVI = 1; 36018let DecoderNamespace = "EXT_mmvec"; 36019let Constraints = "$Vx32 = $Vx32in"; 36020} 36021def V6_vrmpybusv_acc_alt : HInst< 36022(outs HvxVR:$Vx32), 36023(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36024"$Vx32 += vrmpybus($Vu32,$Vv32)", 36025PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36026let hasNewValue = 1; 36027let opNewValue = 0; 36028let isAccumulator = 1; 36029let isCVI = 1; 36030let isPseudo = 1; 36031let isCodeGenOnly = 1; 36032let DecoderNamespace = "EXT_mmvec"; 36033let Constraints = "$Vx32 = $Vx32in"; 36034} 36035def V6_vrmpybusv_alt : HInst< 36036(outs HvxVR:$Vd32), 36037(ins HvxVR:$Vu32, HvxVR:$Vv32), 36038"$Vd32 = vrmpybus($Vu32,$Vv32)", 36039PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36040let hasNewValue = 1; 36041let opNewValue = 0; 36042let isCVI = 1; 36043let isPseudo = 1; 36044let isCodeGenOnly = 1; 36045let DecoderNamespace = "EXT_mmvec"; 36046} 36047def V6_vrmpybv : HInst< 36048(outs HvxVR:$Vd32), 36049(ins HvxVR:$Vu32, HvxVR:$Vv32), 36050"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)", 36051tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 36052let Inst{7-5} = 0b001; 36053let Inst{13-13} = 0b0; 36054let Inst{31-21} = 0b00011100000; 36055let hasNewValue = 1; 36056let opNewValue = 0; 36057let isCVI = 1; 36058let DecoderNamespace = "EXT_mmvec"; 36059} 36060def V6_vrmpybv_acc : HInst< 36061(outs HvxVR:$Vx32), 36062(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36063"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)", 36064tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36065let Inst{7-5} = 0b001; 36066let Inst{13-13} = 0b1; 36067let Inst{31-21} = 0b00011100000; 36068let hasNewValue = 1; 36069let opNewValue = 0; 36070let isAccumulator = 1; 36071let isCVI = 1; 36072let DecoderNamespace = "EXT_mmvec"; 36073let Constraints = "$Vx32 = $Vx32in"; 36074} 36075def V6_vrmpybv_acc_alt : HInst< 36076(outs HvxVR:$Vx32), 36077(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36078"$Vx32 += vrmpyb($Vu32,$Vv32)", 36079PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36080let hasNewValue = 1; 36081let opNewValue = 0; 36082let isAccumulator = 1; 36083let isCVI = 1; 36084let isPseudo = 1; 36085let isCodeGenOnly = 1; 36086let DecoderNamespace = "EXT_mmvec"; 36087let Constraints = "$Vx32 = $Vx32in"; 36088} 36089def V6_vrmpybv_alt : HInst< 36090(outs HvxVR:$Vd32), 36091(ins HvxVR:$Vu32, HvxVR:$Vv32), 36092"$Vd32 = vrmpyb($Vu32,$Vv32)", 36093PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36094let hasNewValue = 1; 36095let opNewValue = 0; 36096let isCVI = 1; 36097let isPseudo = 1; 36098let isCodeGenOnly = 1; 36099let DecoderNamespace = "EXT_mmvec"; 36100} 36101def V6_vrmpyub : HInst< 36102(outs HvxVR:$Vd32), 36103(ins HvxVR:$Vu32, IntRegs:$Rt32), 36104"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)", 36105tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 36106let Inst{7-5} = 0b011; 36107let Inst{13-13} = 0b0; 36108let Inst{31-21} = 0b00011001000; 36109let hasNewValue = 1; 36110let opNewValue = 0; 36111let isCVI = 1; 36112let DecoderNamespace = "EXT_mmvec"; 36113} 36114def V6_vrmpyub_acc : HInst< 36115(outs HvxVR:$Vx32), 36116(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36117"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)", 36118tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 36119let Inst{7-5} = 0b100; 36120let Inst{13-13} = 0b1; 36121let Inst{31-21} = 0b00011001000; 36122let hasNewValue = 1; 36123let opNewValue = 0; 36124let isAccumulator = 1; 36125let isCVI = 1; 36126let DecoderNamespace = "EXT_mmvec"; 36127let Constraints = "$Vx32 = $Vx32in"; 36128} 36129def V6_vrmpyub_acc_alt : HInst< 36130(outs HvxVR:$Vx32), 36131(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36132"$Vx32 += vrmpyub($Vu32,$Rt32)", 36133PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36134let hasNewValue = 1; 36135let opNewValue = 0; 36136let isAccumulator = 1; 36137let isCVI = 1; 36138let isPseudo = 1; 36139let isCodeGenOnly = 1; 36140let DecoderNamespace = "EXT_mmvec"; 36141let Constraints = "$Vx32 = $Vx32in"; 36142} 36143def V6_vrmpyub_alt : HInst< 36144(outs HvxVR:$Vd32), 36145(ins HvxVR:$Vu32, IntRegs:$Rt32), 36146"$Vd32 = vrmpyub($Vu32,$Rt32)", 36147PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36148let hasNewValue = 1; 36149let opNewValue = 0; 36150let isCVI = 1; 36151let isPseudo = 1; 36152let isCodeGenOnly = 1; 36153let DecoderNamespace = "EXT_mmvec"; 36154} 36155def V6_vrmpyub_rtt : HInst< 36156(outs HvxWR:$Vdd32), 36157(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 36158"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 36159tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 36160let Inst{7-5} = 0b100; 36161let Inst{13-13} = 0b0; 36162let Inst{31-21} = 0b00011001110; 36163let hasNewValue = 1; 36164let opNewValue = 0; 36165let isCVI = 1; 36166let DecoderNamespace = "EXT_mmvec"; 36167} 36168def V6_vrmpyub_rtt_acc : HInst< 36169(outs HvxWR:$Vxx32), 36170(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 36171"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 36172tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 36173let Inst{7-5} = 0b111; 36174let Inst{13-13} = 0b1; 36175let Inst{31-21} = 0b00011001101; 36176let hasNewValue = 1; 36177let opNewValue = 0; 36178let isAccumulator = 1; 36179let isCVI = 1; 36180let DecoderNamespace = "EXT_mmvec"; 36181let Constraints = "$Vxx32 = $Vxx32in"; 36182} 36183def V6_vrmpyub_rtt_acc_alt : HInst< 36184(outs HvxWR:$Vxx32), 36185(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 36186"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 36187PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36188let hasNewValue = 1; 36189let opNewValue = 0; 36190let isAccumulator = 1; 36191let isCVI = 1; 36192let isPseudo = 1; 36193let isCodeGenOnly = 1; 36194let DecoderNamespace = "EXT_mmvec"; 36195let Constraints = "$Vxx32 = $Vxx32in"; 36196} 36197def V6_vrmpyub_rtt_alt : HInst< 36198(outs HvxWR:$Vdd32), 36199(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 36200"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 36201PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36202let hasNewValue = 1; 36203let opNewValue = 0; 36204let isCVI = 1; 36205let isPseudo = 1; 36206let isCodeGenOnly = 1; 36207let DecoderNamespace = "EXT_mmvec"; 36208} 36209def V6_vrmpyubi : HInst< 36210(outs HvxWR:$Vdd32), 36211(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36212"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 36213tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 36214let Inst{7-6} = 0b11; 36215let Inst{13-13} = 0b0; 36216let Inst{31-21} = 0b00011001101; 36217let hasNewValue = 1; 36218let opNewValue = 0; 36219let isCVI = 1; 36220let DecoderNamespace = "EXT_mmvec"; 36221} 36222def V6_vrmpyubi_acc : HInst< 36223(outs HvxWR:$Vxx32), 36224(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36225"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 36226tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 36227let Inst{7-6} = 0b11; 36228let Inst{13-13} = 0b1; 36229let Inst{31-21} = 0b00011001011; 36230let hasNewValue = 1; 36231let opNewValue = 0; 36232let isAccumulator = 1; 36233let isCVI = 1; 36234let DecoderNamespace = "EXT_mmvec"; 36235let Constraints = "$Vxx32 = $Vxx32in"; 36236} 36237def V6_vrmpyubi_acc_alt : HInst< 36238(outs HvxWR:$Vxx32), 36239(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36240"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)", 36241PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36242let hasNewValue = 1; 36243let opNewValue = 0; 36244let isAccumulator = 1; 36245let isCVI = 1; 36246let isPseudo = 1; 36247let isCodeGenOnly = 1; 36248let DecoderNamespace = "EXT_mmvec"; 36249let Constraints = "$Vxx32 = $Vxx32in"; 36250} 36251def V6_vrmpyubi_alt : HInst< 36252(outs HvxWR:$Vdd32), 36253(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36254"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)", 36255PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36256let hasNewValue = 1; 36257let opNewValue = 0; 36258let isCVI = 1; 36259let isPseudo = 1; 36260let isCodeGenOnly = 1; 36261let DecoderNamespace = "EXT_mmvec"; 36262} 36263def V6_vrmpyubv : HInst< 36264(outs HvxVR:$Vd32), 36265(ins HvxVR:$Vu32, HvxVR:$Vv32), 36266"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)", 36267tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 36268let Inst{7-5} = 0b000; 36269let Inst{13-13} = 0b0; 36270let Inst{31-21} = 0b00011100000; 36271let hasNewValue = 1; 36272let opNewValue = 0; 36273let isCVI = 1; 36274let DecoderNamespace = "EXT_mmvec"; 36275} 36276def V6_vrmpyubv_acc : HInst< 36277(outs HvxVR:$Vx32), 36278(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36279"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)", 36280tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36281let Inst{7-5} = 0b000; 36282let Inst{13-13} = 0b1; 36283let Inst{31-21} = 0b00011100000; 36284let hasNewValue = 1; 36285let opNewValue = 0; 36286let isAccumulator = 1; 36287let isCVI = 1; 36288let DecoderNamespace = "EXT_mmvec"; 36289let Constraints = "$Vx32 = $Vx32in"; 36290} 36291def V6_vrmpyubv_acc_alt : HInst< 36292(outs HvxVR:$Vx32), 36293(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36294"$Vx32 += vrmpyub($Vu32,$Vv32)", 36295PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36296let hasNewValue = 1; 36297let opNewValue = 0; 36298let isAccumulator = 1; 36299let isCVI = 1; 36300let isPseudo = 1; 36301let isCodeGenOnly = 1; 36302let DecoderNamespace = "EXT_mmvec"; 36303let Constraints = "$Vx32 = $Vx32in"; 36304} 36305def V6_vrmpyubv_alt : HInst< 36306(outs HvxVR:$Vd32), 36307(ins HvxVR:$Vu32, HvxVR:$Vv32), 36308"$Vd32 = vrmpyub($Vu32,$Vv32)", 36309PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36310let hasNewValue = 1; 36311let opNewValue = 0; 36312let isCVI = 1; 36313let isPseudo = 1; 36314let isCodeGenOnly = 1; 36315let DecoderNamespace = "EXT_mmvec"; 36316} 36317def V6_vrmpyzbb_rt : HInst< 36318(outs HvxVQR:$Vdddd32), 36319(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36320"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)", 36321tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36322let Inst{7-5} = 0b000; 36323let Inst{13-13} = 0b0; 36324let Inst{31-19} = 0b0001100111101; 36325let hasNewValue = 1; 36326let opNewValue = 0; 36327let isCVI = 1; 36328let DecoderNamespace = "EXT_mmvec"; 36329} 36330def V6_vrmpyzbb_rt_acc : HInst< 36331(outs HvxVQR:$Vyyyy32), 36332(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36333"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)", 36334tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36335let Inst{7-5} = 0b010; 36336let Inst{13-13} = 0b1; 36337let Inst{31-19} = 0b0001100111000; 36338let hasNewValue = 1; 36339let opNewValue = 0; 36340let isAccumulator = 1; 36341let isCVI = 1; 36342let DecoderNamespace = "EXT_mmvec"; 36343let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36344} 36345def V6_vrmpyzbb_rx : HInst< 36346(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36347(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36348"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)", 36349tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36350let Inst{7-5} = 0b000; 36351let Inst{13-13} = 0b0; 36352let Inst{31-19} = 0b0001100111100; 36353let hasNewValue = 1; 36354let opNewValue = 0; 36355let isCVI = 1; 36356let DecoderNamespace = "EXT_mmvec"; 36357let Constraints = "$Rx8 = $Rx8in"; 36358} 36359def V6_vrmpyzbb_rx_acc : HInst< 36360(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36361(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36362"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)", 36363tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36364let Inst{7-5} = 0b010; 36365let Inst{13-13} = 0b1; 36366let Inst{31-19} = 0b0001100111001; 36367let hasNewValue = 1; 36368let opNewValue = 0; 36369let isAccumulator = 1; 36370let isCVI = 1; 36371let DecoderNamespace = "EXT_mmvec"; 36372let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36373} 36374def V6_vrmpyzbub_rt : HInst< 36375(outs HvxVQR:$Vdddd32), 36376(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36377"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)", 36378tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36379let Inst{7-5} = 0b010; 36380let Inst{13-13} = 0b0; 36381let Inst{31-19} = 0b0001100111111; 36382let hasNewValue = 1; 36383let opNewValue = 0; 36384let isCVI = 1; 36385let DecoderNamespace = "EXT_mmvec"; 36386} 36387def V6_vrmpyzbub_rt_acc : HInst< 36388(outs HvxVQR:$Vyyyy32), 36389(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36390"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)", 36391tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36392let Inst{7-5} = 0b001; 36393let Inst{13-13} = 0b1; 36394let Inst{31-19} = 0b0001100111010; 36395let hasNewValue = 1; 36396let opNewValue = 0; 36397let isAccumulator = 1; 36398let isCVI = 1; 36399let DecoderNamespace = "EXT_mmvec"; 36400let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36401} 36402def V6_vrmpyzbub_rx : HInst< 36403(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36404(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36405"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)", 36406tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36407let Inst{7-5} = 0b010; 36408let Inst{13-13} = 0b0; 36409let Inst{31-19} = 0b0001100111110; 36410let hasNewValue = 1; 36411let opNewValue = 0; 36412let isCVI = 1; 36413let DecoderNamespace = "EXT_mmvec"; 36414let Constraints = "$Rx8 = $Rx8in"; 36415} 36416def V6_vrmpyzbub_rx_acc : HInst< 36417(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36418(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36419"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)", 36420tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36421let Inst{7-5} = 0b001; 36422let Inst{13-13} = 0b1; 36423let Inst{31-19} = 0b0001100111011; 36424let hasNewValue = 1; 36425let opNewValue = 0; 36426let isAccumulator = 1; 36427let isCVI = 1; 36428let DecoderNamespace = "EXT_mmvec"; 36429let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36430} 36431def V6_vrmpyzcb_rt : HInst< 36432(outs HvxVQR:$Vdddd32), 36433(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36434"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)", 36435tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36436let Inst{7-5} = 0b001; 36437let Inst{13-13} = 0b0; 36438let Inst{31-19} = 0b0001100111101; 36439let hasNewValue = 1; 36440let opNewValue = 0; 36441let isCVI = 1; 36442let DecoderNamespace = "EXT_mmvec"; 36443} 36444def V6_vrmpyzcb_rt_acc : HInst< 36445(outs HvxVQR:$Vyyyy32), 36446(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36447"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)", 36448tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36449let Inst{7-5} = 0b011; 36450let Inst{13-13} = 0b1; 36451let Inst{31-19} = 0b0001100111000; 36452let hasNewValue = 1; 36453let opNewValue = 0; 36454let isAccumulator = 1; 36455let isCVI = 1; 36456let DecoderNamespace = "EXT_mmvec"; 36457let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36458} 36459def V6_vrmpyzcb_rx : HInst< 36460(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36461(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36462"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)", 36463tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36464let Inst{7-5} = 0b001; 36465let Inst{13-13} = 0b0; 36466let Inst{31-19} = 0b0001100111100; 36467let hasNewValue = 1; 36468let opNewValue = 0; 36469let isCVI = 1; 36470let DecoderNamespace = "EXT_mmvec"; 36471let Constraints = "$Rx8 = $Rx8in"; 36472} 36473def V6_vrmpyzcb_rx_acc : HInst< 36474(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36475(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36476"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)", 36477tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36478let Inst{7-5} = 0b011; 36479let Inst{13-13} = 0b1; 36480let Inst{31-19} = 0b0001100111001; 36481let hasNewValue = 1; 36482let opNewValue = 0; 36483let isAccumulator = 1; 36484let isCVI = 1; 36485let DecoderNamespace = "EXT_mmvec"; 36486let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36487} 36488def V6_vrmpyzcbs_rt : HInst< 36489(outs HvxVQR:$Vdddd32), 36490(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36491"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)", 36492tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36493let Inst{7-5} = 0b010; 36494let Inst{13-13} = 0b0; 36495let Inst{31-19} = 0b0001100111101; 36496let hasNewValue = 1; 36497let opNewValue = 0; 36498let isCVI = 1; 36499let DecoderNamespace = "EXT_mmvec"; 36500} 36501def V6_vrmpyzcbs_rt_acc : HInst< 36502(outs HvxVQR:$Vyyyy32), 36503(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36504"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)", 36505tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36506let Inst{7-5} = 0b001; 36507let Inst{13-13} = 0b1; 36508let Inst{31-19} = 0b0001100111000; 36509let hasNewValue = 1; 36510let opNewValue = 0; 36511let isAccumulator = 1; 36512let isCVI = 1; 36513let DecoderNamespace = "EXT_mmvec"; 36514let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36515} 36516def V6_vrmpyzcbs_rx : HInst< 36517(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36518(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36519"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)", 36520tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36521let Inst{7-5} = 0b010; 36522let Inst{13-13} = 0b0; 36523let Inst{31-19} = 0b0001100111100; 36524let hasNewValue = 1; 36525let opNewValue = 0; 36526let isCVI = 1; 36527let DecoderNamespace = "EXT_mmvec"; 36528let Constraints = "$Rx8 = $Rx8in"; 36529} 36530def V6_vrmpyzcbs_rx_acc : HInst< 36531(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36532(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36533"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)", 36534tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36535let Inst{7-5} = 0b001; 36536let Inst{13-13} = 0b1; 36537let Inst{31-19} = 0b0001100111001; 36538let hasNewValue = 1; 36539let opNewValue = 0; 36540let isAccumulator = 1; 36541let isCVI = 1; 36542let DecoderNamespace = "EXT_mmvec"; 36543let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36544} 36545def V6_vrmpyznb_rt : HInst< 36546(outs HvxVQR:$Vdddd32), 36547(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36548"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)", 36549tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36550let Inst{7-5} = 0b000; 36551let Inst{13-13} = 0b0; 36552let Inst{31-19} = 0b0001100111111; 36553let hasNewValue = 1; 36554let opNewValue = 0; 36555let isCVI = 1; 36556let DecoderNamespace = "EXT_mmvec"; 36557} 36558def V6_vrmpyznb_rt_acc : HInst< 36559(outs HvxVQR:$Vyyyy32), 36560(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36561"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)", 36562tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36563let Inst{7-5} = 0b010; 36564let Inst{13-13} = 0b1; 36565let Inst{31-19} = 0b0001100111010; 36566let hasNewValue = 1; 36567let opNewValue = 0; 36568let isAccumulator = 1; 36569let isCVI = 1; 36570let DecoderNamespace = "EXT_mmvec"; 36571let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36572} 36573def V6_vrmpyznb_rx : HInst< 36574(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36575(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36576"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)", 36577tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36578let Inst{7-5} = 0b000; 36579let Inst{13-13} = 0b0; 36580let Inst{31-19} = 0b0001100111110; 36581let hasNewValue = 1; 36582let opNewValue = 0; 36583let isCVI = 1; 36584let DecoderNamespace = "EXT_mmvec"; 36585let Constraints = "$Rx8 = $Rx8in"; 36586} 36587def V6_vrmpyznb_rx_acc : HInst< 36588(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36589(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 36590"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)", 36591tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36592let Inst{7-5} = 0b010; 36593let Inst{13-13} = 0b1; 36594let Inst{31-19} = 0b0001100111011; 36595let hasNewValue = 1; 36596let opNewValue = 0; 36597let isAccumulator = 1; 36598let isCVI = 1; 36599let DecoderNamespace = "EXT_mmvec"; 36600let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36601} 36602def V6_vror : HInst< 36603(outs HvxVR:$Vd32), 36604(ins HvxVR:$Vu32, IntRegs:$Rt32), 36605"$Vd32 = vror($Vu32,$Rt32)", 36606tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> { 36607let Inst{7-5} = 0b001; 36608let Inst{13-13} = 0b0; 36609let Inst{31-21} = 0b00011001011; 36610let hasNewValue = 1; 36611let opNewValue = 0; 36612let isCVI = 1; 36613let DecoderNamespace = "EXT_mmvec"; 36614} 36615def V6_vrotr : HInst< 36616(outs HvxVR:$Vd32), 36617(ins HvxVR:$Vu32, HvxVR:$Vv32), 36618"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)", 36619tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> { 36620let Inst{7-5} = 0b111; 36621let Inst{13-13} = 0b1; 36622let Inst{31-21} = 0b00011010100; 36623let hasNewValue = 1; 36624let opNewValue = 0; 36625let isCVI = 1; 36626let DecoderNamespace = "EXT_mmvec"; 36627} 36628def V6_vrotr_alt : HInst< 36629(outs HvxVR:$Vd32), 36630(ins HvxVR:$Vu32, HvxVR:$Vv32), 36631"$Vd32 = vrotr($Vu32,$Vv32)", 36632PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 36633let hasNewValue = 1; 36634let opNewValue = 0; 36635let isCVI = 1; 36636let isPseudo = 1; 36637let isCodeGenOnly = 1; 36638let DecoderNamespace = "EXT_mmvec"; 36639} 36640def V6_vroundhb : HInst< 36641(outs HvxVR:$Vd32), 36642(ins HvxVR:$Vu32, HvxVR:$Vv32), 36643"$Vd32.b = vround($Vu32.h,$Vv32.h):sat", 36644tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36645let Inst{7-5} = 0b110; 36646let Inst{13-13} = 0b0; 36647let Inst{31-21} = 0b00011111011; 36648let hasNewValue = 1; 36649let opNewValue = 0; 36650let isCVI = 1; 36651let DecoderNamespace = "EXT_mmvec"; 36652} 36653def V6_vroundhb_alt : HInst< 36654(outs HvxVR:$Vd32), 36655(ins HvxVR:$Vu32, HvxVR:$Vv32), 36656"$Vd32 = vroundhb($Vu32,$Vv32):sat", 36657PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36658let hasNewValue = 1; 36659let opNewValue = 0; 36660let isCVI = 1; 36661let isPseudo = 1; 36662let isCodeGenOnly = 1; 36663let DecoderNamespace = "EXT_mmvec"; 36664} 36665def V6_vroundhub : HInst< 36666(outs HvxVR:$Vd32), 36667(ins HvxVR:$Vu32, HvxVR:$Vv32), 36668"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat", 36669tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36670let Inst{7-5} = 0b111; 36671let Inst{13-13} = 0b0; 36672let Inst{31-21} = 0b00011111011; 36673let hasNewValue = 1; 36674let opNewValue = 0; 36675let isCVI = 1; 36676let DecoderNamespace = "EXT_mmvec"; 36677} 36678def V6_vroundhub_alt : HInst< 36679(outs HvxVR:$Vd32), 36680(ins HvxVR:$Vu32, HvxVR:$Vv32), 36681"$Vd32 = vroundhub($Vu32,$Vv32):sat", 36682PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36683let hasNewValue = 1; 36684let opNewValue = 0; 36685let isCVI = 1; 36686let isPseudo = 1; 36687let isCodeGenOnly = 1; 36688let DecoderNamespace = "EXT_mmvec"; 36689} 36690def V6_vrounduhub : HInst< 36691(outs HvxVR:$Vd32), 36692(ins HvxVR:$Vu32, HvxVR:$Vv32), 36693"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat", 36694tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 36695let Inst{7-5} = 0b011; 36696let Inst{13-13} = 0b0; 36697let Inst{31-21} = 0b00011111111; 36698let hasNewValue = 1; 36699let opNewValue = 0; 36700let isCVI = 1; 36701let DecoderNamespace = "EXT_mmvec"; 36702} 36703def V6_vrounduhub_alt : HInst< 36704(outs HvxVR:$Vd32), 36705(ins HvxVR:$Vu32, HvxVR:$Vv32), 36706"$Vd32 = vrounduhub($Vu32,$Vv32):sat", 36707PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36708let hasNewValue = 1; 36709let opNewValue = 0; 36710let isCVI = 1; 36711let isPseudo = 1; 36712let isCodeGenOnly = 1; 36713let DecoderNamespace = "EXT_mmvec"; 36714} 36715def V6_vrounduwuh : HInst< 36716(outs HvxVR:$Vd32), 36717(ins HvxVR:$Vu32, HvxVR:$Vv32), 36718"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat", 36719tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 36720let Inst{7-5} = 0b100; 36721let Inst{13-13} = 0b0; 36722let Inst{31-21} = 0b00011111111; 36723let hasNewValue = 1; 36724let opNewValue = 0; 36725let isCVI = 1; 36726let DecoderNamespace = "EXT_mmvec"; 36727} 36728def V6_vrounduwuh_alt : HInst< 36729(outs HvxVR:$Vd32), 36730(ins HvxVR:$Vu32, HvxVR:$Vv32), 36731"$Vd32 = vrounduwuh($Vu32,$Vv32):sat", 36732PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36733let hasNewValue = 1; 36734let opNewValue = 0; 36735let isCVI = 1; 36736let isPseudo = 1; 36737let isCodeGenOnly = 1; 36738let DecoderNamespace = "EXT_mmvec"; 36739} 36740def V6_vroundwh : HInst< 36741(outs HvxVR:$Vd32), 36742(ins HvxVR:$Vu32, HvxVR:$Vv32), 36743"$Vd32.h = vround($Vu32.w,$Vv32.w):sat", 36744tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36745let Inst{7-5} = 0b100; 36746let Inst{13-13} = 0b0; 36747let Inst{31-21} = 0b00011111011; 36748let hasNewValue = 1; 36749let opNewValue = 0; 36750let isCVI = 1; 36751let DecoderNamespace = "EXT_mmvec"; 36752} 36753def V6_vroundwh_alt : HInst< 36754(outs HvxVR:$Vd32), 36755(ins HvxVR:$Vu32, HvxVR:$Vv32), 36756"$Vd32 = vroundwh($Vu32,$Vv32):sat", 36757PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36758let hasNewValue = 1; 36759let opNewValue = 0; 36760let isCVI = 1; 36761let isPseudo = 1; 36762let isCodeGenOnly = 1; 36763let DecoderNamespace = "EXT_mmvec"; 36764} 36765def V6_vroundwuh : HInst< 36766(outs HvxVR:$Vd32), 36767(ins HvxVR:$Vu32, HvxVR:$Vv32), 36768"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat", 36769tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36770let Inst{7-5} = 0b101; 36771let Inst{13-13} = 0b0; 36772let Inst{31-21} = 0b00011111011; 36773let hasNewValue = 1; 36774let opNewValue = 0; 36775let isCVI = 1; 36776let DecoderNamespace = "EXT_mmvec"; 36777} 36778def V6_vroundwuh_alt : HInst< 36779(outs HvxVR:$Vd32), 36780(ins HvxVR:$Vu32, HvxVR:$Vv32), 36781"$Vd32 = vroundwuh($Vu32,$Vv32):sat", 36782PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36783let hasNewValue = 1; 36784let opNewValue = 0; 36785let isCVI = 1; 36786let isPseudo = 1; 36787let isCodeGenOnly = 1; 36788let DecoderNamespace = "EXT_mmvec"; 36789} 36790def V6_vrsadubi : HInst< 36791(outs HvxWR:$Vdd32), 36792(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36793"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 36794tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 36795let Inst{7-6} = 0b11; 36796let Inst{13-13} = 0b0; 36797let Inst{31-21} = 0b00011001010; 36798let hasNewValue = 1; 36799let opNewValue = 0; 36800let isCVI = 1; 36801let DecoderNamespace = "EXT_mmvec"; 36802} 36803def V6_vrsadubi_acc : HInst< 36804(outs HvxWR:$Vxx32), 36805(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36806"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 36807tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 36808let Inst{7-6} = 0b11; 36809let Inst{13-13} = 0b1; 36810let Inst{31-21} = 0b00011001010; 36811let hasNewValue = 1; 36812let opNewValue = 0; 36813let isAccumulator = 1; 36814let isCVI = 1; 36815let DecoderNamespace = "EXT_mmvec"; 36816let Constraints = "$Vxx32 = $Vxx32in"; 36817} 36818def V6_vrsadubi_acc_alt : HInst< 36819(outs HvxWR:$Vxx32), 36820(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36821"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)", 36822PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36823let hasNewValue = 1; 36824let opNewValue = 0; 36825let isAccumulator = 1; 36826let isCVI = 1; 36827let isPseudo = 1; 36828let isCodeGenOnly = 1; 36829let DecoderNamespace = "EXT_mmvec"; 36830let Constraints = "$Vxx32 = $Vxx32in"; 36831} 36832def V6_vrsadubi_alt : HInst< 36833(outs HvxWR:$Vdd32), 36834(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36835"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)", 36836PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36837let hasNewValue = 1; 36838let opNewValue = 0; 36839let isCVI = 1; 36840let isPseudo = 1; 36841let isCodeGenOnly = 1; 36842let DecoderNamespace = "EXT_mmvec"; 36843} 36844def V6_vsatdw : HInst< 36845(outs HvxVR:$Vd32), 36846(ins HvxVR:$Vu32, HvxVR:$Vv32), 36847"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)", 36848tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> { 36849let Inst{7-5} = 0b111; 36850let Inst{13-13} = 0b1; 36851let Inst{31-21} = 0b00011101100; 36852let hasNewValue = 1; 36853let opNewValue = 0; 36854let isCVI = 1; 36855let DecoderNamespace = "EXT_mmvec"; 36856} 36857def V6_vsathub : HInst< 36858(outs HvxVR:$Vd32), 36859(ins HvxVR:$Vu32, HvxVR:$Vv32), 36860"$Vd32.ub = vsat($Vu32.h,$Vv32.h)", 36861tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36862let Inst{7-5} = 0b010; 36863let Inst{13-13} = 0b0; 36864let Inst{31-21} = 0b00011111011; 36865let hasNewValue = 1; 36866let opNewValue = 0; 36867let isCVI = 1; 36868let DecoderNamespace = "EXT_mmvec"; 36869} 36870def V6_vsathub_alt : HInst< 36871(outs HvxVR:$Vd32), 36872(ins HvxVR:$Vu32, HvxVR:$Vv32), 36873"$Vd32 = vsathub($Vu32,$Vv32)", 36874PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36875let hasNewValue = 1; 36876let opNewValue = 0; 36877let isCVI = 1; 36878let isPseudo = 1; 36879let isCodeGenOnly = 1; 36880let DecoderNamespace = "EXT_mmvec"; 36881} 36882def V6_vsatuwuh : HInst< 36883(outs HvxVR:$Vd32), 36884(ins HvxVR:$Vu32, HvxVR:$Vv32), 36885"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)", 36886tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 36887let Inst{7-5} = 0b110; 36888let Inst{13-13} = 0b0; 36889let Inst{31-21} = 0b00011111001; 36890let hasNewValue = 1; 36891let opNewValue = 0; 36892let isCVI = 1; 36893let DecoderNamespace = "EXT_mmvec"; 36894} 36895def V6_vsatuwuh_alt : HInst< 36896(outs HvxVR:$Vd32), 36897(ins HvxVR:$Vu32, HvxVR:$Vv32), 36898"$Vd32 = vsatuwuh($Vu32,$Vv32)", 36899PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36900let hasNewValue = 1; 36901let opNewValue = 0; 36902let isCVI = 1; 36903let isPseudo = 1; 36904let isCodeGenOnly = 1; 36905let DecoderNamespace = "EXT_mmvec"; 36906} 36907def V6_vsatwh : HInst< 36908(outs HvxVR:$Vd32), 36909(ins HvxVR:$Vu32, HvxVR:$Vv32), 36910"$Vd32.h = vsat($Vu32.w,$Vv32.w)", 36911tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36912let Inst{7-5} = 0b011; 36913let Inst{13-13} = 0b0; 36914let Inst{31-21} = 0b00011111011; 36915let hasNewValue = 1; 36916let opNewValue = 0; 36917let isCVI = 1; 36918let DecoderNamespace = "EXT_mmvec"; 36919} 36920def V6_vsatwh_alt : HInst< 36921(outs HvxVR:$Vd32), 36922(ins HvxVR:$Vu32, HvxVR:$Vv32), 36923"$Vd32 = vsatwh($Vu32,$Vv32)", 36924PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36925let hasNewValue = 1; 36926let opNewValue = 0; 36927let isCVI = 1; 36928let isPseudo = 1; 36929let isCodeGenOnly = 1; 36930let DecoderNamespace = "EXT_mmvec"; 36931} 36932def V6_vsb : HInst< 36933(outs HvxWR:$Vdd32), 36934(ins HvxVR:$Vu32), 36935"$Vdd32.h = vsxt($Vu32.b)", 36936tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 36937let Inst{7-5} = 0b011; 36938let Inst{13-13} = 0b0; 36939let Inst{31-16} = 0b0001111000000010; 36940let hasNewValue = 1; 36941let opNewValue = 0; 36942let isCVI = 1; 36943let DecoderNamespace = "EXT_mmvec"; 36944} 36945def V6_vsb_alt : HInst< 36946(outs HvxWR:$Vdd32), 36947(ins HvxVR:$Vu32), 36948"$Vdd32 = vsxtb($Vu32)", 36949PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36950let hasNewValue = 1; 36951let opNewValue = 0; 36952let isCVI = 1; 36953let isPseudo = 1; 36954let isCodeGenOnly = 1; 36955let DecoderNamespace = "EXT_mmvec"; 36956} 36957def V6_vscattermh : HInst< 36958(outs), 36959(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36960"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 36961tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36962let Inst{7-5} = 0b001; 36963let Inst{31-21} = 0b00101111001; 36964let accessSize = HalfWordAccess; 36965let isCVI = 1; 36966let mayStore = 1; 36967let DecoderNamespace = "EXT_mmvec"; 36968} 36969def V6_vscattermh_add : HInst< 36970(outs), 36971(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36972"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32", 36973tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36974let Inst{7-5} = 0b101; 36975let Inst{31-21} = 0b00101111001; 36976let accessSize = HalfWordAccess; 36977let isAccumulator = 1; 36978let isCVI = 1; 36979let mayStore = 1; 36980let DecoderNamespace = "EXT_mmvec"; 36981} 36982def V6_vscattermh_add_alt : HInst< 36983(outs), 36984(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36985"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h", 36986PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36987let isAccumulator = 1; 36988let isCVI = 1; 36989let isPseudo = 1; 36990let isCodeGenOnly = 1; 36991let DecoderNamespace = "EXT_mmvec"; 36992} 36993def V6_vscattermh_alt : HInst< 36994(outs), 36995(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36996"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 36997PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36998let isCVI = 1; 36999let isPseudo = 1; 37000let isCodeGenOnly = 1; 37001let DecoderNamespace = "EXT_mmvec"; 37002} 37003def V6_vscattermhq : HInst< 37004(outs), 37005(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37006"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 37007tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 37008let Inst{7-7} = 0b1; 37009let Inst{31-21} = 0b00101111100; 37010let accessSize = HalfWordAccess; 37011let isCVI = 1; 37012let mayStore = 1; 37013let DecoderNamespace = "EXT_mmvec"; 37014} 37015def V6_vscattermhq_alt : HInst< 37016(outs), 37017(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37018"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 37019PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37020let isCVI = 1; 37021let isPseudo = 1; 37022let isCodeGenOnly = 1; 37023let DecoderNamespace = "EXT_mmvec"; 37024} 37025def V6_vscattermhw : HInst< 37026(outs), 37027(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37028"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 37029tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 37030let Inst{7-5} = 0b010; 37031let Inst{31-21} = 0b00101111001; 37032let accessSize = HalfWordAccess; 37033let isCVI = 1; 37034let mayStore = 1; 37035let DecoderNamespace = "EXT_mmvec"; 37036} 37037def V6_vscattermhw_add : HInst< 37038(outs), 37039(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37040"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32", 37041tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 37042let Inst{7-5} = 0b110; 37043let Inst{31-21} = 0b00101111001; 37044let accessSize = HalfWordAccess; 37045let isAccumulator = 1; 37046let isCVI = 1; 37047let mayStore = 1; 37048let DecoderNamespace = "EXT_mmvec"; 37049} 37050def V6_vscattermhwq : HInst< 37051(outs), 37052(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37053"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 37054tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> { 37055let Inst{7-7} = 0b0; 37056let Inst{31-21} = 0b00101111101; 37057let accessSize = HalfWordAccess; 37058let isCVI = 1; 37059let mayStore = 1; 37060let DecoderNamespace = "EXT_mmvec"; 37061} 37062def V6_vscattermw : HInst< 37063(outs), 37064(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37065"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 37066tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 37067let Inst{7-5} = 0b000; 37068let Inst{31-21} = 0b00101111001; 37069let accessSize = WordAccess; 37070let isCVI = 1; 37071let mayStore = 1; 37072let DecoderNamespace = "EXT_mmvec"; 37073} 37074def V6_vscattermw_add : HInst< 37075(outs), 37076(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37077"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32", 37078tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 37079let Inst{7-5} = 0b100; 37080let Inst{31-21} = 0b00101111001; 37081let accessSize = WordAccess; 37082let isAccumulator = 1; 37083let isCVI = 1; 37084let mayStore = 1; 37085let DecoderNamespace = "EXT_mmvec"; 37086} 37087def V6_vscattermw_add_alt : HInst< 37088(outs), 37089(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37090"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w", 37091PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37092let isAccumulator = 1; 37093let isCVI = 1; 37094let isPseudo = 1; 37095let isCodeGenOnly = 1; 37096let DecoderNamespace = "EXT_mmvec"; 37097} 37098def V6_vscattermw_alt : HInst< 37099(outs), 37100(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37101"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 37102PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37103let isCVI = 1; 37104let isPseudo = 1; 37105let isCodeGenOnly = 1; 37106let DecoderNamespace = "EXT_mmvec"; 37107} 37108def V6_vscattermwh_add_alt : HInst< 37109(outs), 37110(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37111"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h", 37112PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37113let isAccumulator = 1; 37114let isCVI = 1; 37115let isPseudo = 1; 37116let isCodeGenOnly = 1; 37117let DecoderNamespace = "EXT_mmvec"; 37118} 37119def V6_vscattermwh_alt : HInst< 37120(outs), 37121(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37122"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 37123PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37124let isCVI = 1; 37125let isPseudo = 1; 37126let isCodeGenOnly = 1; 37127let DecoderNamespace = "EXT_mmvec"; 37128} 37129def V6_vscattermwhq_alt : HInst< 37130(outs), 37131(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 37132"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 37133PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37134let isCVI = 1; 37135let isPseudo = 1; 37136let isCodeGenOnly = 1; 37137let DecoderNamespace = "EXT_mmvec"; 37138} 37139def V6_vscattermwq : HInst< 37140(outs), 37141(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37142"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 37143tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 37144let Inst{7-7} = 0b0; 37145let Inst{31-21} = 0b00101111100; 37146let accessSize = WordAccess; 37147let isCVI = 1; 37148let mayStore = 1; 37149let DecoderNamespace = "EXT_mmvec"; 37150} 37151def V6_vscattermwq_alt : HInst< 37152(outs), 37153(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 37154"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 37155PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37156let isCVI = 1; 37157let isPseudo = 1; 37158let isCodeGenOnly = 1; 37159let DecoderNamespace = "EXT_mmvec"; 37160} 37161def V6_vsh : HInst< 37162(outs HvxWR:$Vdd32), 37163(ins HvxVR:$Vu32), 37164"$Vdd32.w = vsxt($Vu32.h)", 37165tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 37166let Inst{7-5} = 0b100; 37167let Inst{13-13} = 0b0; 37168let Inst{31-16} = 0b0001111000000010; 37169let hasNewValue = 1; 37170let opNewValue = 0; 37171let isCVI = 1; 37172let DecoderNamespace = "EXT_mmvec"; 37173} 37174def V6_vsh_alt : HInst< 37175(outs HvxWR:$Vdd32), 37176(ins HvxVR:$Vu32), 37177"$Vdd32 = vsxth($Vu32)", 37178PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37179let hasNewValue = 1; 37180let opNewValue = 0; 37181let isCVI = 1; 37182let isPseudo = 1; 37183let isCodeGenOnly = 1; 37184let DecoderNamespace = "EXT_mmvec"; 37185} 37186def V6_vshufeh : HInst< 37187(outs HvxVR:$Vd32), 37188(ins HvxVR:$Vu32, HvxVR:$Vv32), 37189"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)", 37190tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37191let Inst{7-5} = 0b011; 37192let Inst{13-13} = 0b0; 37193let Inst{31-21} = 0b00011111010; 37194let hasNewValue = 1; 37195let opNewValue = 0; 37196let isCVI = 1; 37197let DecoderNamespace = "EXT_mmvec"; 37198} 37199def V6_vshufeh_alt : HInst< 37200(outs HvxVR:$Vd32), 37201(ins HvxVR:$Vu32, HvxVR:$Vv32), 37202"$Vd32 = vshuffeh($Vu32,$Vv32)", 37203PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37204let hasNewValue = 1; 37205let opNewValue = 0; 37206let isCVI = 1; 37207let isPseudo = 1; 37208let isCodeGenOnly = 1; 37209let DecoderNamespace = "EXT_mmvec"; 37210} 37211def V6_vshuff : HInst< 37212(outs HvxVR:$Vy32, HvxVR:$Vx32), 37213(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 37214"vshuff($Vy32,$Vx32,$Rt32)", 37215tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 37216let Inst{7-5} = 0b001; 37217let Inst{13-13} = 0b1; 37218let Inst{31-21} = 0b00011001111; 37219let hasNewValue = 1; 37220let opNewValue = 0; 37221let hasNewValue2 = 1; 37222let opNewValue2 = 1; 37223let isCVI = 1; 37224let DecoderNamespace = "EXT_mmvec"; 37225let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 37226} 37227def V6_vshuffb : HInst< 37228(outs HvxVR:$Vd32), 37229(ins HvxVR:$Vu32), 37230"$Vd32.b = vshuff($Vu32.b)", 37231tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 37232let Inst{7-5} = 0b000; 37233let Inst{13-13} = 0b0; 37234let Inst{31-16} = 0b0001111000000010; 37235let hasNewValue = 1; 37236let opNewValue = 0; 37237let isCVI = 1; 37238let DecoderNamespace = "EXT_mmvec"; 37239} 37240def V6_vshuffb_alt : HInst< 37241(outs HvxVR:$Vd32), 37242(ins HvxVR:$Vu32), 37243"$Vd32 = vshuffb($Vu32)", 37244PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37245let hasNewValue = 1; 37246let opNewValue = 0; 37247let isCVI = 1; 37248let isPseudo = 1; 37249let isCodeGenOnly = 1; 37250let DecoderNamespace = "EXT_mmvec"; 37251} 37252def V6_vshuffeb : HInst< 37253(outs HvxVR:$Vd32), 37254(ins HvxVR:$Vu32, HvxVR:$Vv32), 37255"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)", 37256tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37257let Inst{7-5} = 0b001; 37258let Inst{13-13} = 0b0; 37259let Inst{31-21} = 0b00011111010; 37260let hasNewValue = 1; 37261let opNewValue = 0; 37262let isCVI = 1; 37263let DecoderNamespace = "EXT_mmvec"; 37264} 37265def V6_vshuffeb_alt : HInst< 37266(outs HvxVR:$Vd32), 37267(ins HvxVR:$Vu32, HvxVR:$Vv32), 37268"$Vd32 = vshuffeb($Vu32,$Vv32)", 37269PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37270let hasNewValue = 1; 37271let opNewValue = 0; 37272let isCVI = 1; 37273let isPseudo = 1; 37274let isCodeGenOnly = 1; 37275let DecoderNamespace = "EXT_mmvec"; 37276} 37277def V6_vshuffh : HInst< 37278(outs HvxVR:$Vd32), 37279(ins HvxVR:$Vu32), 37280"$Vd32.h = vshuff($Vu32.h)", 37281tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 37282let Inst{7-5} = 0b111; 37283let Inst{13-13} = 0b0; 37284let Inst{31-16} = 0b0001111000000001; 37285let hasNewValue = 1; 37286let opNewValue = 0; 37287let isCVI = 1; 37288let DecoderNamespace = "EXT_mmvec"; 37289} 37290def V6_vshuffh_alt : HInst< 37291(outs HvxVR:$Vd32), 37292(ins HvxVR:$Vu32), 37293"$Vd32 = vshuffh($Vu32)", 37294PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37295let hasNewValue = 1; 37296let opNewValue = 0; 37297let isCVI = 1; 37298let isPseudo = 1; 37299let isCodeGenOnly = 1; 37300let DecoderNamespace = "EXT_mmvec"; 37301} 37302def V6_vshuffob : HInst< 37303(outs HvxVR:$Vd32), 37304(ins HvxVR:$Vu32, HvxVR:$Vv32), 37305"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)", 37306tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37307let Inst{7-5} = 0b010; 37308let Inst{13-13} = 0b0; 37309let Inst{31-21} = 0b00011111010; 37310let hasNewValue = 1; 37311let opNewValue = 0; 37312let isCVI = 1; 37313let DecoderNamespace = "EXT_mmvec"; 37314} 37315def V6_vshuffob_alt : HInst< 37316(outs HvxVR:$Vd32), 37317(ins HvxVR:$Vu32, HvxVR:$Vv32), 37318"$Vd32 = vshuffob($Vu32,$Vv32)", 37319PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37320let hasNewValue = 1; 37321let opNewValue = 0; 37322let isCVI = 1; 37323let isPseudo = 1; 37324let isCodeGenOnly = 1; 37325let DecoderNamespace = "EXT_mmvec"; 37326} 37327def V6_vshuffvdd : HInst< 37328(outs HvxWR:$Vdd32), 37329(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 37330"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)", 37331tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 37332let Inst{7-5} = 0b011; 37333let Inst{13-13} = 0b1; 37334let Inst{31-24} = 0b00011011; 37335let hasNewValue = 1; 37336let opNewValue = 0; 37337let isCVI = 1; 37338let DecoderNamespace = "EXT_mmvec"; 37339} 37340def V6_vshufoeb : HInst< 37341(outs HvxWR:$Vdd32), 37342(ins HvxVR:$Vu32, HvxVR:$Vv32), 37343"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)", 37344tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37345let Inst{7-5} = 0b110; 37346let Inst{13-13} = 0b0; 37347let Inst{31-21} = 0b00011111010; 37348let hasNewValue = 1; 37349let opNewValue = 0; 37350let isCVI = 1; 37351let DecoderNamespace = "EXT_mmvec"; 37352} 37353def V6_vshufoeb_alt : HInst< 37354(outs HvxWR:$Vdd32), 37355(ins HvxVR:$Vu32, HvxVR:$Vv32), 37356"$Vdd32 = vshuffoeb($Vu32,$Vv32)", 37357PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37358let hasNewValue = 1; 37359let opNewValue = 0; 37360let isCVI = 1; 37361let isPseudo = 1; 37362let isCodeGenOnly = 1; 37363let DecoderNamespace = "EXT_mmvec"; 37364} 37365def V6_vshufoeh : HInst< 37366(outs HvxWR:$Vdd32), 37367(ins HvxVR:$Vu32, HvxVR:$Vv32), 37368"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)", 37369tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37370let Inst{7-5} = 0b101; 37371let Inst{13-13} = 0b0; 37372let Inst{31-21} = 0b00011111010; 37373let hasNewValue = 1; 37374let opNewValue = 0; 37375let isCVI = 1; 37376let DecoderNamespace = "EXT_mmvec"; 37377} 37378def V6_vshufoeh_alt : HInst< 37379(outs HvxWR:$Vdd32), 37380(ins HvxVR:$Vu32, HvxVR:$Vv32), 37381"$Vdd32 = vshuffoeh($Vu32,$Vv32)", 37382PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37383let hasNewValue = 1; 37384let opNewValue = 0; 37385let isCVI = 1; 37386let isPseudo = 1; 37387let isCodeGenOnly = 1; 37388let DecoderNamespace = "EXT_mmvec"; 37389} 37390def V6_vshufoh : HInst< 37391(outs HvxVR:$Vd32), 37392(ins HvxVR:$Vu32, HvxVR:$Vv32), 37393"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)", 37394tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37395let Inst{7-5} = 0b100; 37396let Inst{13-13} = 0b0; 37397let Inst{31-21} = 0b00011111010; 37398let hasNewValue = 1; 37399let opNewValue = 0; 37400let isCVI = 1; 37401let DecoderNamespace = "EXT_mmvec"; 37402} 37403def V6_vshufoh_alt : HInst< 37404(outs HvxVR:$Vd32), 37405(ins HvxVR:$Vu32, HvxVR:$Vv32), 37406"$Vd32 = vshuffoh($Vu32,$Vv32)", 37407PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37408let hasNewValue = 1; 37409let opNewValue = 0; 37410let isCVI = 1; 37411let isPseudo = 1; 37412let isCodeGenOnly = 1; 37413let DecoderNamespace = "EXT_mmvec"; 37414} 37415def V6_vsubb : HInst< 37416(outs HvxVR:$Vd32), 37417(ins HvxVR:$Vu32, HvxVR:$Vv32), 37418"$Vd32.b = vsub($Vu32.b,$Vv32.b)", 37419tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37420let Inst{7-5} = 0b101; 37421let Inst{13-13} = 0b0; 37422let Inst{31-21} = 0b00011100010; 37423let hasNewValue = 1; 37424let opNewValue = 0; 37425let isCVI = 1; 37426let DecoderNamespace = "EXT_mmvec"; 37427} 37428def V6_vsubb_alt : HInst< 37429(outs HvxVR:$Vd32), 37430(ins HvxVR:$Vu32, HvxVR:$Vv32), 37431"$Vd32 = vsubb($Vu32,$Vv32)", 37432PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37433let hasNewValue = 1; 37434let opNewValue = 0; 37435let isCVI = 1; 37436let isPseudo = 1; 37437let isCodeGenOnly = 1; 37438let DecoderNamespace = "EXT_mmvec"; 37439} 37440def V6_vsubb_dv : HInst< 37441(outs HvxWR:$Vdd32), 37442(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37443"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)", 37444tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37445let Inst{7-5} = 0b011; 37446let Inst{13-13} = 0b0; 37447let Inst{31-21} = 0b00011100100; 37448let hasNewValue = 1; 37449let opNewValue = 0; 37450let isCVI = 1; 37451let DecoderNamespace = "EXT_mmvec"; 37452} 37453def V6_vsubb_dv_alt : HInst< 37454(outs HvxWR:$Vdd32), 37455(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37456"$Vdd32 = vsubb($Vuu32,$Vvv32)", 37457PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37458let hasNewValue = 1; 37459let opNewValue = 0; 37460let isCVI = 1; 37461let isPseudo = 1; 37462let isCodeGenOnly = 1; 37463let DecoderNamespace = "EXT_mmvec"; 37464} 37465def V6_vsubbnq : HInst< 37466(outs HvxVR:$Vx32), 37467(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37468"if (!$Qv4) $Vx32.b -= $Vu32.b", 37469tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37470let Inst{7-5} = 0b001; 37471let Inst{13-13} = 0b1; 37472let Inst{21-16} = 0b000010; 37473let Inst{31-24} = 0b00011110; 37474let hasNewValue = 1; 37475let opNewValue = 0; 37476let isCVI = 1; 37477let DecoderNamespace = "EXT_mmvec"; 37478let Constraints = "$Vx32 = $Vx32in"; 37479} 37480def V6_vsubbnq_alt : HInst< 37481(outs HvxVR:$Vx32), 37482(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37483"if (!$Qv4.b) $Vx32.b -= $Vu32.b", 37484PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37485let hasNewValue = 1; 37486let opNewValue = 0; 37487let isCVI = 1; 37488let isPseudo = 1; 37489let isCodeGenOnly = 1; 37490let DecoderNamespace = "EXT_mmvec"; 37491let Constraints = "$Vx32 = $Vx32in"; 37492} 37493def V6_vsubbq : HInst< 37494(outs HvxVR:$Vx32), 37495(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37496"if ($Qv4) $Vx32.b -= $Vu32.b", 37497tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37498let Inst{7-5} = 0b110; 37499let Inst{13-13} = 0b1; 37500let Inst{21-16} = 0b000001; 37501let Inst{31-24} = 0b00011110; 37502let hasNewValue = 1; 37503let opNewValue = 0; 37504let isCVI = 1; 37505let DecoderNamespace = "EXT_mmvec"; 37506let Constraints = "$Vx32 = $Vx32in"; 37507} 37508def V6_vsubbq_alt : HInst< 37509(outs HvxVR:$Vx32), 37510(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37511"if ($Qv4.b) $Vx32.b -= $Vu32.b", 37512PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37513let hasNewValue = 1; 37514let opNewValue = 0; 37515let isCVI = 1; 37516let isPseudo = 1; 37517let isCodeGenOnly = 1; 37518let DecoderNamespace = "EXT_mmvec"; 37519let Constraints = "$Vx32 = $Vx32in"; 37520} 37521def V6_vsubbsat : HInst< 37522(outs HvxVR:$Vd32), 37523(ins HvxVR:$Vu32, HvxVR:$Vv32), 37524"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat", 37525tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37526let Inst{7-5} = 0b010; 37527let Inst{13-13} = 0b0; 37528let Inst{31-21} = 0b00011111001; 37529let hasNewValue = 1; 37530let opNewValue = 0; 37531let isCVI = 1; 37532let DecoderNamespace = "EXT_mmvec"; 37533} 37534def V6_vsubbsat_alt : HInst< 37535(outs HvxVR:$Vd32), 37536(ins HvxVR:$Vu32, HvxVR:$Vv32), 37537"$Vd32 = vsubb($Vu32,$Vv32):sat", 37538PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37539let hasNewValue = 1; 37540let opNewValue = 0; 37541let isCVI = 1; 37542let isPseudo = 1; 37543let isCodeGenOnly = 1; 37544let DecoderNamespace = "EXT_mmvec"; 37545} 37546def V6_vsubbsat_dv : HInst< 37547(outs HvxWR:$Vdd32), 37548(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37549"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat", 37550tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 37551let Inst{7-5} = 0b001; 37552let Inst{13-13} = 0b0; 37553let Inst{31-21} = 0b00011110101; 37554let hasNewValue = 1; 37555let opNewValue = 0; 37556let isCVI = 1; 37557let DecoderNamespace = "EXT_mmvec"; 37558} 37559def V6_vsubbsat_dv_alt : HInst< 37560(outs HvxWR:$Vdd32), 37561(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37562"$Vdd32 = vsubb($Vuu32,$Vvv32):sat", 37563PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37564let hasNewValue = 1; 37565let opNewValue = 0; 37566let isCVI = 1; 37567let isPseudo = 1; 37568let isCodeGenOnly = 1; 37569let DecoderNamespace = "EXT_mmvec"; 37570} 37571def V6_vsubcarry : HInst< 37572(outs HvxVR:$Vd32, HvxQR:$Qx4), 37573(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 37574"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry", 37575tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 37576let Inst{7-7} = 0b1; 37577let Inst{13-13} = 0b1; 37578let Inst{31-21} = 0b00011100101; 37579let hasNewValue = 1; 37580let opNewValue = 0; 37581let isCVI = 1; 37582let DecoderNamespace = "EXT_mmvec"; 37583let Constraints = "$Qx4 = $Qx4in"; 37584} 37585def V6_vsubcarryo : HInst< 37586(outs HvxVR:$Vd32, HvxQR:$Qe4), 37587(ins HvxVR:$Vu32, HvxVR:$Vv32), 37588"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry", 37589tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 37590let Inst{7-7} = 0b1; 37591let Inst{13-13} = 0b1; 37592let Inst{31-21} = 0b00011101101; 37593let hasNewValue = 1; 37594let opNewValue = 0; 37595let hasNewValue2 = 1; 37596let opNewValue2 = 1; 37597let isCVI = 1; 37598let DecoderNamespace = "EXT_mmvec"; 37599} 37600def V6_vsubh : HInst< 37601(outs HvxVR:$Vd32), 37602(ins HvxVR:$Vu32, HvxVR:$Vv32), 37603"$Vd32.h = vsub($Vu32.h,$Vv32.h)", 37604tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37605let Inst{7-5} = 0b110; 37606let Inst{13-13} = 0b0; 37607let Inst{31-21} = 0b00011100010; 37608let hasNewValue = 1; 37609let opNewValue = 0; 37610let isCVI = 1; 37611let DecoderNamespace = "EXT_mmvec"; 37612} 37613def V6_vsubh_alt : HInst< 37614(outs HvxVR:$Vd32), 37615(ins HvxVR:$Vu32, HvxVR:$Vv32), 37616"$Vd32 = vsubh($Vu32,$Vv32)", 37617PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37618let hasNewValue = 1; 37619let opNewValue = 0; 37620let isCVI = 1; 37621let isPseudo = 1; 37622let isCodeGenOnly = 1; 37623let DecoderNamespace = "EXT_mmvec"; 37624} 37625def V6_vsubh_dv : HInst< 37626(outs HvxWR:$Vdd32), 37627(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37628"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)", 37629tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37630let Inst{7-5} = 0b100; 37631let Inst{13-13} = 0b0; 37632let Inst{31-21} = 0b00011100100; 37633let hasNewValue = 1; 37634let opNewValue = 0; 37635let isCVI = 1; 37636let DecoderNamespace = "EXT_mmvec"; 37637} 37638def V6_vsubh_dv_alt : HInst< 37639(outs HvxWR:$Vdd32), 37640(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37641"$Vdd32 = vsubh($Vuu32,$Vvv32)", 37642PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37643let hasNewValue = 1; 37644let opNewValue = 0; 37645let isCVI = 1; 37646let isPseudo = 1; 37647let isCodeGenOnly = 1; 37648let DecoderNamespace = "EXT_mmvec"; 37649} 37650def V6_vsubhnq : HInst< 37651(outs HvxVR:$Vx32), 37652(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37653"if (!$Qv4) $Vx32.h -= $Vu32.h", 37654tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37655let Inst{7-5} = 0b010; 37656let Inst{13-13} = 0b1; 37657let Inst{21-16} = 0b000010; 37658let Inst{31-24} = 0b00011110; 37659let hasNewValue = 1; 37660let opNewValue = 0; 37661let isCVI = 1; 37662let DecoderNamespace = "EXT_mmvec"; 37663let Constraints = "$Vx32 = $Vx32in"; 37664} 37665def V6_vsubhnq_alt : HInst< 37666(outs HvxVR:$Vx32), 37667(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37668"if (!$Qv4.h) $Vx32.h -= $Vu32.h", 37669PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37670let hasNewValue = 1; 37671let opNewValue = 0; 37672let isCVI = 1; 37673let isPseudo = 1; 37674let isCodeGenOnly = 1; 37675let DecoderNamespace = "EXT_mmvec"; 37676let Constraints = "$Vx32 = $Vx32in"; 37677} 37678def V6_vsubhq : HInst< 37679(outs HvxVR:$Vx32), 37680(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37681"if ($Qv4) $Vx32.h -= $Vu32.h", 37682tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37683let Inst{7-5} = 0b111; 37684let Inst{13-13} = 0b1; 37685let Inst{21-16} = 0b000001; 37686let Inst{31-24} = 0b00011110; 37687let hasNewValue = 1; 37688let opNewValue = 0; 37689let isCVI = 1; 37690let DecoderNamespace = "EXT_mmvec"; 37691let Constraints = "$Vx32 = $Vx32in"; 37692} 37693def V6_vsubhq_alt : HInst< 37694(outs HvxVR:$Vx32), 37695(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37696"if ($Qv4.h) $Vx32.h -= $Vu32.h", 37697PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37698let hasNewValue = 1; 37699let opNewValue = 0; 37700let isCVI = 1; 37701let isPseudo = 1; 37702let isCodeGenOnly = 1; 37703let DecoderNamespace = "EXT_mmvec"; 37704let Constraints = "$Vx32 = $Vx32in"; 37705} 37706def V6_vsubhsat : HInst< 37707(outs HvxVR:$Vd32), 37708(ins HvxVR:$Vu32, HvxVR:$Vv32), 37709"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat", 37710tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37711let Inst{7-5} = 0b010; 37712let Inst{13-13} = 0b0; 37713let Inst{31-21} = 0b00011100011; 37714let hasNewValue = 1; 37715let opNewValue = 0; 37716let isCVI = 1; 37717let DecoderNamespace = "EXT_mmvec"; 37718} 37719def V6_vsubhsat_alt : HInst< 37720(outs HvxVR:$Vd32), 37721(ins HvxVR:$Vu32, HvxVR:$Vv32), 37722"$Vd32 = vsubh($Vu32,$Vv32):sat", 37723PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37724let hasNewValue = 1; 37725let opNewValue = 0; 37726let isCVI = 1; 37727let isPseudo = 1; 37728let isCodeGenOnly = 1; 37729let DecoderNamespace = "EXT_mmvec"; 37730} 37731def V6_vsubhsat_dv : HInst< 37732(outs HvxWR:$Vdd32), 37733(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37734"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat", 37735tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37736let Inst{7-5} = 0b000; 37737let Inst{13-13} = 0b0; 37738let Inst{31-21} = 0b00011100101; 37739let hasNewValue = 1; 37740let opNewValue = 0; 37741let isCVI = 1; 37742let DecoderNamespace = "EXT_mmvec"; 37743} 37744def V6_vsubhsat_dv_alt : HInst< 37745(outs HvxWR:$Vdd32), 37746(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37747"$Vdd32 = vsubh($Vuu32,$Vvv32):sat", 37748PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37749let hasNewValue = 1; 37750let opNewValue = 0; 37751let isCVI = 1; 37752let isPseudo = 1; 37753let isCodeGenOnly = 1; 37754let DecoderNamespace = "EXT_mmvec"; 37755} 37756def V6_vsubhw : HInst< 37757(outs HvxWR:$Vdd32), 37758(ins HvxVR:$Vu32, HvxVR:$Vv32), 37759"$Vdd32.w = vsub($Vu32.h,$Vv32.h)", 37760tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37761let Inst{7-5} = 0b111; 37762let Inst{13-13} = 0b0; 37763let Inst{31-21} = 0b00011100101; 37764let hasNewValue = 1; 37765let opNewValue = 0; 37766let isCVI = 1; 37767let DecoderNamespace = "EXT_mmvec"; 37768} 37769def V6_vsubhw_alt : HInst< 37770(outs HvxWR:$Vdd32), 37771(ins HvxVR:$Vu32, HvxVR:$Vv32), 37772"$Vdd32 = vsubh($Vu32,$Vv32)", 37773PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37774let hasNewValue = 1; 37775let opNewValue = 0; 37776let isCVI = 1; 37777let isPseudo = 1; 37778let isCodeGenOnly = 1; 37779let DecoderNamespace = "EXT_mmvec"; 37780} 37781def V6_vsububh : HInst< 37782(outs HvxWR:$Vdd32), 37783(ins HvxVR:$Vu32, HvxVR:$Vv32), 37784"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)", 37785tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37786let Inst{7-5} = 0b101; 37787let Inst{13-13} = 0b0; 37788let Inst{31-21} = 0b00011100101; 37789let hasNewValue = 1; 37790let opNewValue = 0; 37791let isCVI = 1; 37792let DecoderNamespace = "EXT_mmvec"; 37793} 37794def V6_vsububh_alt : HInst< 37795(outs HvxWR:$Vdd32), 37796(ins HvxVR:$Vu32, HvxVR:$Vv32), 37797"$Vdd32 = vsubub($Vu32,$Vv32)", 37798PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37799let hasNewValue = 1; 37800let opNewValue = 0; 37801let isCVI = 1; 37802let isPseudo = 1; 37803let isCodeGenOnly = 1; 37804let DecoderNamespace = "EXT_mmvec"; 37805} 37806def V6_vsububsat : HInst< 37807(outs HvxVR:$Vd32), 37808(ins HvxVR:$Vu32, HvxVR:$Vv32), 37809"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat", 37810tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37811let Inst{7-5} = 0b000; 37812let Inst{13-13} = 0b0; 37813let Inst{31-21} = 0b00011100011; 37814let hasNewValue = 1; 37815let opNewValue = 0; 37816let isCVI = 1; 37817let DecoderNamespace = "EXT_mmvec"; 37818} 37819def V6_vsububsat_alt : HInst< 37820(outs HvxVR:$Vd32), 37821(ins HvxVR:$Vu32, HvxVR:$Vv32), 37822"$Vd32 = vsubub($Vu32,$Vv32):sat", 37823PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37824let hasNewValue = 1; 37825let opNewValue = 0; 37826let isCVI = 1; 37827let isPseudo = 1; 37828let isCodeGenOnly = 1; 37829let DecoderNamespace = "EXT_mmvec"; 37830} 37831def V6_vsububsat_dv : HInst< 37832(outs HvxWR:$Vdd32), 37833(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37834"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat", 37835tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37836let Inst{7-5} = 0b110; 37837let Inst{13-13} = 0b0; 37838let Inst{31-21} = 0b00011100100; 37839let hasNewValue = 1; 37840let opNewValue = 0; 37841let isCVI = 1; 37842let DecoderNamespace = "EXT_mmvec"; 37843} 37844def V6_vsububsat_dv_alt : HInst< 37845(outs HvxWR:$Vdd32), 37846(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37847"$Vdd32 = vsubub($Vuu32,$Vvv32):sat", 37848PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37849let hasNewValue = 1; 37850let opNewValue = 0; 37851let isCVI = 1; 37852let isPseudo = 1; 37853let isCodeGenOnly = 1; 37854let DecoderNamespace = "EXT_mmvec"; 37855} 37856def V6_vsubububb_sat : HInst< 37857(outs HvxVR:$Vd32), 37858(ins HvxVR:$Vu32, HvxVR:$Vv32), 37859"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat", 37860tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37861let Inst{7-5} = 0b101; 37862let Inst{13-13} = 0b0; 37863let Inst{31-21} = 0b00011110101; 37864let hasNewValue = 1; 37865let opNewValue = 0; 37866let isCVI = 1; 37867let DecoderNamespace = "EXT_mmvec"; 37868} 37869def V6_vsubuhsat : HInst< 37870(outs HvxVR:$Vd32), 37871(ins HvxVR:$Vu32, HvxVR:$Vv32), 37872"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat", 37873tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37874let Inst{7-5} = 0b001; 37875let Inst{13-13} = 0b0; 37876let Inst{31-21} = 0b00011100011; 37877let hasNewValue = 1; 37878let opNewValue = 0; 37879let isCVI = 1; 37880let DecoderNamespace = "EXT_mmvec"; 37881} 37882def V6_vsubuhsat_alt : HInst< 37883(outs HvxVR:$Vd32), 37884(ins HvxVR:$Vu32, HvxVR:$Vv32), 37885"$Vd32 = vsubuh($Vu32,$Vv32):sat", 37886PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37887let hasNewValue = 1; 37888let opNewValue = 0; 37889let isCVI = 1; 37890let isPseudo = 1; 37891let isCodeGenOnly = 1; 37892let DecoderNamespace = "EXT_mmvec"; 37893} 37894def V6_vsubuhsat_dv : HInst< 37895(outs HvxWR:$Vdd32), 37896(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37897"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat", 37898tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37899let Inst{7-5} = 0b111; 37900let Inst{13-13} = 0b0; 37901let Inst{31-21} = 0b00011100100; 37902let hasNewValue = 1; 37903let opNewValue = 0; 37904let isCVI = 1; 37905let DecoderNamespace = "EXT_mmvec"; 37906} 37907def V6_vsubuhsat_dv_alt : HInst< 37908(outs HvxWR:$Vdd32), 37909(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37910"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat", 37911PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37912let hasNewValue = 1; 37913let opNewValue = 0; 37914let isCVI = 1; 37915let isPseudo = 1; 37916let isCodeGenOnly = 1; 37917let DecoderNamespace = "EXT_mmvec"; 37918} 37919def V6_vsubuhw : HInst< 37920(outs HvxWR:$Vdd32), 37921(ins HvxVR:$Vu32, HvxVR:$Vv32), 37922"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)", 37923tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37924let Inst{7-5} = 0b110; 37925let Inst{13-13} = 0b0; 37926let Inst{31-21} = 0b00011100101; 37927let hasNewValue = 1; 37928let opNewValue = 0; 37929let isCVI = 1; 37930let DecoderNamespace = "EXT_mmvec"; 37931} 37932def V6_vsubuhw_alt : HInst< 37933(outs HvxWR:$Vdd32), 37934(ins HvxVR:$Vu32, HvxVR:$Vv32), 37935"$Vdd32 = vsubuh($Vu32,$Vv32)", 37936PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37937let hasNewValue = 1; 37938let opNewValue = 0; 37939let isCVI = 1; 37940let isPseudo = 1; 37941let isCodeGenOnly = 1; 37942let DecoderNamespace = "EXT_mmvec"; 37943} 37944def V6_vsubuwsat : HInst< 37945(outs HvxVR:$Vd32), 37946(ins HvxVR:$Vu32, HvxVR:$Vv32), 37947"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat", 37948tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37949let Inst{7-5} = 0b100; 37950let Inst{13-13} = 0b0; 37951let Inst{31-21} = 0b00011111110; 37952let hasNewValue = 1; 37953let opNewValue = 0; 37954let isCVI = 1; 37955let DecoderNamespace = "EXT_mmvec"; 37956} 37957def V6_vsubuwsat_alt : HInst< 37958(outs HvxVR:$Vd32), 37959(ins HvxVR:$Vu32, HvxVR:$Vv32), 37960"$Vd32 = vsubuw($Vu32,$Vv32):sat", 37961PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37962let hasNewValue = 1; 37963let opNewValue = 0; 37964let isCVI = 1; 37965let isPseudo = 1; 37966let isCodeGenOnly = 1; 37967let DecoderNamespace = "EXT_mmvec"; 37968} 37969def V6_vsubuwsat_dv : HInst< 37970(outs HvxWR:$Vdd32), 37971(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37972"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat", 37973tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 37974let Inst{7-5} = 0b011; 37975let Inst{13-13} = 0b0; 37976let Inst{31-21} = 0b00011110101; 37977let hasNewValue = 1; 37978let opNewValue = 0; 37979let isCVI = 1; 37980let DecoderNamespace = "EXT_mmvec"; 37981} 37982def V6_vsubuwsat_dv_alt : HInst< 37983(outs HvxWR:$Vdd32), 37984(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37985"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat", 37986PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37987let hasNewValue = 1; 37988let opNewValue = 0; 37989let isCVI = 1; 37990let isPseudo = 1; 37991let isCodeGenOnly = 1; 37992let DecoderNamespace = "EXT_mmvec"; 37993} 37994def V6_vsubw : HInst< 37995(outs HvxVR:$Vd32), 37996(ins HvxVR:$Vu32, HvxVR:$Vv32), 37997"$Vd32.w = vsub($Vu32.w,$Vv32.w)", 37998tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37999let Inst{7-5} = 0b111; 38000let Inst{13-13} = 0b0; 38001let Inst{31-21} = 0b00011100010; 38002let hasNewValue = 1; 38003let opNewValue = 0; 38004let isCVI = 1; 38005let DecoderNamespace = "EXT_mmvec"; 38006} 38007def V6_vsubw_alt : HInst< 38008(outs HvxVR:$Vd32), 38009(ins HvxVR:$Vu32, HvxVR:$Vv32), 38010"$Vd32 = vsubw($Vu32,$Vv32)", 38011PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38012let hasNewValue = 1; 38013let opNewValue = 0; 38014let isCVI = 1; 38015let isPseudo = 1; 38016let isCodeGenOnly = 1; 38017let DecoderNamespace = "EXT_mmvec"; 38018} 38019def V6_vsubw_dv : HInst< 38020(outs HvxWR:$Vdd32), 38021(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 38022"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)", 38023tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 38024let Inst{7-5} = 0b101; 38025let Inst{13-13} = 0b0; 38026let Inst{31-21} = 0b00011100100; 38027let hasNewValue = 1; 38028let opNewValue = 0; 38029let isCVI = 1; 38030let DecoderNamespace = "EXT_mmvec"; 38031} 38032def V6_vsubw_dv_alt : HInst< 38033(outs HvxWR:$Vdd32), 38034(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 38035"$Vdd32 = vsubw($Vuu32,$Vvv32)", 38036PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38037let hasNewValue = 1; 38038let opNewValue = 0; 38039let isCVI = 1; 38040let isPseudo = 1; 38041let isCodeGenOnly = 1; 38042let DecoderNamespace = "EXT_mmvec"; 38043} 38044def V6_vsubwnq : HInst< 38045(outs HvxVR:$Vx32), 38046(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 38047"if (!$Qv4) $Vx32.w -= $Vu32.w", 38048tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 38049let Inst{7-5} = 0b011; 38050let Inst{13-13} = 0b1; 38051let Inst{21-16} = 0b000010; 38052let Inst{31-24} = 0b00011110; 38053let hasNewValue = 1; 38054let opNewValue = 0; 38055let isCVI = 1; 38056let DecoderNamespace = "EXT_mmvec"; 38057let Constraints = "$Vx32 = $Vx32in"; 38058} 38059def V6_vsubwnq_alt : HInst< 38060(outs HvxVR:$Vx32), 38061(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 38062"if (!$Qv4.w) $Vx32.w -= $Vu32.w", 38063PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38064let hasNewValue = 1; 38065let opNewValue = 0; 38066let isCVI = 1; 38067let isPseudo = 1; 38068let isCodeGenOnly = 1; 38069let DecoderNamespace = "EXT_mmvec"; 38070let Constraints = "$Vx32 = $Vx32in"; 38071} 38072def V6_vsubwq : HInst< 38073(outs HvxVR:$Vx32), 38074(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 38075"if ($Qv4) $Vx32.w -= $Vu32.w", 38076tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 38077let Inst{7-5} = 0b000; 38078let Inst{13-13} = 0b1; 38079let Inst{21-16} = 0b000010; 38080let Inst{31-24} = 0b00011110; 38081let hasNewValue = 1; 38082let opNewValue = 0; 38083let isCVI = 1; 38084let DecoderNamespace = "EXT_mmvec"; 38085let Constraints = "$Vx32 = $Vx32in"; 38086} 38087def V6_vsubwq_alt : HInst< 38088(outs HvxVR:$Vx32), 38089(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 38090"if ($Qv4.w) $Vx32.w -= $Vu32.w", 38091PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38092let hasNewValue = 1; 38093let opNewValue = 0; 38094let isCVI = 1; 38095let isPseudo = 1; 38096let isCodeGenOnly = 1; 38097let DecoderNamespace = "EXT_mmvec"; 38098let Constraints = "$Vx32 = $Vx32in"; 38099} 38100def V6_vsubwsat : HInst< 38101(outs HvxVR:$Vd32), 38102(ins HvxVR:$Vu32, HvxVR:$Vv32), 38103"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat", 38104tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38105let Inst{7-5} = 0b011; 38106let Inst{13-13} = 0b0; 38107let Inst{31-21} = 0b00011100011; 38108let hasNewValue = 1; 38109let opNewValue = 0; 38110let isCVI = 1; 38111let DecoderNamespace = "EXT_mmvec"; 38112} 38113def V6_vsubwsat_alt : HInst< 38114(outs HvxVR:$Vd32), 38115(ins HvxVR:$Vu32, HvxVR:$Vv32), 38116"$Vd32 = vsubw($Vu32,$Vv32):sat", 38117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38118let hasNewValue = 1; 38119let opNewValue = 0; 38120let isCVI = 1; 38121let isPseudo = 1; 38122let isCodeGenOnly = 1; 38123let DecoderNamespace = "EXT_mmvec"; 38124} 38125def V6_vsubwsat_dv : HInst< 38126(outs HvxWR:$Vdd32), 38127(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 38128"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat", 38129tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 38130let Inst{7-5} = 0b001; 38131let Inst{13-13} = 0b0; 38132let Inst{31-21} = 0b00011100101; 38133let hasNewValue = 1; 38134let opNewValue = 0; 38135let isCVI = 1; 38136let DecoderNamespace = "EXT_mmvec"; 38137} 38138def V6_vsubwsat_dv_alt : HInst< 38139(outs HvxWR:$Vdd32), 38140(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 38141"$Vdd32 = vsubw($Vuu32,$Vvv32):sat", 38142PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38143let hasNewValue = 1; 38144let opNewValue = 0; 38145let isCVI = 1; 38146let isPseudo = 1; 38147let isCodeGenOnly = 1; 38148let DecoderNamespace = "EXT_mmvec"; 38149} 38150def V6_vswap : HInst< 38151(outs HvxWR:$Vdd32), 38152(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 38153"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)", 38154tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> { 38155let Inst{7-7} = 0b0; 38156let Inst{13-13} = 0b1; 38157let Inst{31-21} = 0b00011110101; 38158let hasNewValue = 1; 38159let opNewValue = 0; 38160let isCVI = 1; 38161let DecoderNamespace = "EXT_mmvec"; 38162} 38163def V6_vtmpyb : HInst< 38164(outs HvxWR:$Vdd32), 38165(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38166"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)", 38167tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 38168let Inst{7-5} = 0b000; 38169let Inst{13-13} = 0b0; 38170let Inst{31-21} = 0b00011001000; 38171let hasNewValue = 1; 38172let opNewValue = 0; 38173let isCVI = 1; 38174let DecoderNamespace = "EXT_mmvec"; 38175} 38176def V6_vtmpyb_acc : HInst< 38177(outs HvxWR:$Vxx32), 38178(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38179"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)", 38180tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 38181let Inst{7-5} = 0b000; 38182let Inst{13-13} = 0b1; 38183let Inst{31-21} = 0b00011001000; 38184let hasNewValue = 1; 38185let opNewValue = 0; 38186let isAccumulator = 1; 38187let isCVI = 1; 38188let DecoderNamespace = "EXT_mmvec"; 38189let Constraints = "$Vxx32 = $Vxx32in"; 38190} 38191def V6_vtmpyb_acc_alt : HInst< 38192(outs HvxWR:$Vxx32), 38193(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38194"$Vxx32 += vtmpyb($Vuu32,$Rt32)", 38195PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38196let hasNewValue = 1; 38197let opNewValue = 0; 38198let isAccumulator = 1; 38199let isCVI = 1; 38200let isPseudo = 1; 38201let isCodeGenOnly = 1; 38202let DecoderNamespace = "EXT_mmvec"; 38203let Constraints = "$Vxx32 = $Vxx32in"; 38204} 38205def V6_vtmpyb_alt : HInst< 38206(outs HvxWR:$Vdd32), 38207(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38208"$Vdd32 = vtmpyb($Vuu32,$Rt32)", 38209PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38210let hasNewValue = 1; 38211let opNewValue = 0; 38212let isCVI = 1; 38213let isPseudo = 1; 38214let isCodeGenOnly = 1; 38215let DecoderNamespace = "EXT_mmvec"; 38216} 38217def V6_vtmpybus : HInst< 38218(outs HvxWR:$Vdd32), 38219(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38220"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)", 38221tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 38222let Inst{7-5} = 0b001; 38223let Inst{13-13} = 0b0; 38224let Inst{31-21} = 0b00011001000; 38225let hasNewValue = 1; 38226let opNewValue = 0; 38227let isCVI = 1; 38228let DecoderNamespace = "EXT_mmvec"; 38229} 38230def V6_vtmpybus_acc : HInst< 38231(outs HvxWR:$Vxx32), 38232(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38233"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)", 38234tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 38235let Inst{7-5} = 0b001; 38236let Inst{13-13} = 0b1; 38237let Inst{31-21} = 0b00011001000; 38238let hasNewValue = 1; 38239let opNewValue = 0; 38240let isAccumulator = 1; 38241let isCVI = 1; 38242let DecoderNamespace = "EXT_mmvec"; 38243let Constraints = "$Vxx32 = $Vxx32in"; 38244} 38245def V6_vtmpybus_acc_alt : HInst< 38246(outs HvxWR:$Vxx32), 38247(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38248"$Vxx32 += vtmpybus($Vuu32,$Rt32)", 38249PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38250let hasNewValue = 1; 38251let opNewValue = 0; 38252let isAccumulator = 1; 38253let isCVI = 1; 38254let isPseudo = 1; 38255let isCodeGenOnly = 1; 38256let DecoderNamespace = "EXT_mmvec"; 38257let Constraints = "$Vxx32 = $Vxx32in"; 38258} 38259def V6_vtmpybus_alt : HInst< 38260(outs HvxWR:$Vdd32), 38261(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38262"$Vdd32 = vtmpybus($Vuu32,$Rt32)", 38263PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38264let hasNewValue = 1; 38265let opNewValue = 0; 38266let isCVI = 1; 38267let isPseudo = 1; 38268let isCodeGenOnly = 1; 38269let DecoderNamespace = "EXT_mmvec"; 38270} 38271def V6_vtmpyhb : HInst< 38272(outs HvxWR:$Vdd32), 38273(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38274"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)", 38275tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 38276let Inst{7-5} = 0b100; 38277let Inst{13-13} = 0b0; 38278let Inst{31-21} = 0b00011001101; 38279let hasNewValue = 1; 38280let opNewValue = 0; 38281let isCVI = 1; 38282let DecoderNamespace = "EXT_mmvec"; 38283} 38284def V6_vtmpyhb_acc : HInst< 38285(outs HvxWR:$Vxx32), 38286(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38287"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)", 38288tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 38289let Inst{7-5} = 0b010; 38290let Inst{13-13} = 0b1; 38291let Inst{31-21} = 0b00011001000; 38292let hasNewValue = 1; 38293let opNewValue = 0; 38294let isAccumulator = 1; 38295let isCVI = 1; 38296let DecoderNamespace = "EXT_mmvec"; 38297let Constraints = "$Vxx32 = $Vxx32in"; 38298} 38299def V6_vtmpyhb_acc_alt : HInst< 38300(outs HvxWR:$Vxx32), 38301(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38302"$Vxx32 += vtmpyhb($Vuu32,$Rt32)", 38303PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38304let hasNewValue = 1; 38305let opNewValue = 0; 38306let isAccumulator = 1; 38307let isCVI = 1; 38308let isPseudo = 1; 38309let isCodeGenOnly = 1; 38310let DecoderNamespace = "EXT_mmvec"; 38311let Constraints = "$Vxx32 = $Vxx32in"; 38312} 38313def V6_vtmpyhb_alt : HInst< 38314(outs HvxWR:$Vdd32), 38315(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38316"$Vdd32 = vtmpyhb($Vuu32,$Rt32)", 38317PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38318let hasNewValue = 1; 38319let opNewValue = 0; 38320let isCVI = 1; 38321let isPseudo = 1; 38322let isCodeGenOnly = 1; 38323let DecoderNamespace = "EXT_mmvec"; 38324} 38325def V6_vtran2x2_map : HInst< 38326(outs HvxVR:$Vy32, HvxVR:$Vx32), 38327(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 38328"vtrans2x2($Vy32,$Vx32,$Rt32)", 38329PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38330let hasNewValue = 1; 38331let opNewValue = 0; 38332let hasNewValue2 = 1; 38333let opNewValue2 = 1; 38334let isCVI = 1; 38335let isPseudo = 1; 38336let isCodeGenOnly = 1; 38337let DecoderNamespace = "EXT_mmvec"; 38338let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 38339} 38340def V6_vunpackb : HInst< 38341(outs HvxWR:$Vdd32), 38342(ins HvxVR:$Vu32), 38343"$Vdd32.h = vunpack($Vu32.b)", 38344tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38345let Inst{7-5} = 0b010; 38346let Inst{13-13} = 0b0; 38347let Inst{31-16} = 0b0001111000000001; 38348let hasNewValue = 1; 38349let opNewValue = 0; 38350let isCVI = 1; 38351let DecoderNamespace = "EXT_mmvec"; 38352} 38353def V6_vunpackb_alt : HInst< 38354(outs HvxWR:$Vdd32), 38355(ins HvxVR:$Vu32), 38356"$Vdd32 = vunpackb($Vu32)", 38357PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38358let hasNewValue = 1; 38359let opNewValue = 0; 38360let isCVI = 1; 38361let isPseudo = 1; 38362let isCodeGenOnly = 1; 38363let DecoderNamespace = "EXT_mmvec"; 38364} 38365def V6_vunpackh : HInst< 38366(outs HvxWR:$Vdd32), 38367(ins HvxVR:$Vu32), 38368"$Vdd32.w = vunpack($Vu32.h)", 38369tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38370let Inst{7-5} = 0b011; 38371let Inst{13-13} = 0b0; 38372let Inst{31-16} = 0b0001111000000001; 38373let hasNewValue = 1; 38374let opNewValue = 0; 38375let isCVI = 1; 38376let DecoderNamespace = "EXT_mmvec"; 38377} 38378def V6_vunpackh_alt : HInst< 38379(outs HvxWR:$Vdd32), 38380(ins HvxVR:$Vu32), 38381"$Vdd32 = vunpackh($Vu32)", 38382PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38383let hasNewValue = 1; 38384let opNewValue = 0; 38385let isCVI = 1; 38386let isPseudo = 1; 38387let isCodeGenOnly = 1; 38388let DecoderNamespace = "EXT_mmvec"; 38389} 38390def V6_vunpackob : HInst< 38391(outs HvxWR:$Vxx32), 38392(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38393"$Vxx32.h |= vunpacko($Vu32.b)", 38394tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 38395let Inst{7-5} = 0b000; 38396let Inst{13-13} = 0b1; 38397let Inst{31-16} = 0b0001111000000000; 38398let hasNewValue = 1; 38399let opNewValue = 0; 38400let isAccumulator = 1; 38401let isCVI = 1; 38402let DecoderNamespace = "EXT_mmvec"; 38403let Constraints = "$Vxx32 = $Vxx32in"; 38404} 38405def V6_vunpackob_alt : HInst< 38406(outs HvxWR:$Vxx32), 38407(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38408"$Vxx32 |= vunpackob($Vu32)", 38409PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38410let hasNewValue = 1; 38411let opNewValue = 0; 38412let isAccumulator = 1; 38413let isCVI = 1; 38414let isPseudo = 1; 38415let DecoderNamespace = "EXT_mmvec"; 38416let Constraints = "$Vxx32 = $Vxx32in"; 38417} 38418def V6_vunpackoh : HInst< 38419(outs HvxWR:$Vxx32), 38420(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38421"$Vxx32.w |= vunpacko($Vu32.h)", 38422tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 38423let Inst{7-5} = 0b001; 38424let Inst{13-13} = 0b1; 38425let Inst{31-16} = 0b0001111000000000; 38426let hasNewValue = 1; 38427let opNewValue = 0; 38428let isAccumulator = 1; 38429let isCVI = 1; 38430let DecoderNamespace = "EXT_mmvec"; 38431let Constraints = "$Vxx32 = $Vxx32in"; 38432} 38433def V6_vunpackoh_alt : HInst< 38434(outs HvxWR:$Vxx32), 38435(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38436"$Vxx32 |= vunpackoh($Vu32)", 38437PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38438let hasNewValue = 1; 38439let opNewValue = 0; 38440let isAccumulator = 1; 38441let isCVI = 1; 38442let isPseudo = 1; 38443let isCodeGenOnly = 1; 38444let DecoderNamespace = "EXT_mmvec"; 38445let Constraints = "$Vxx32 = $Vxx32in"; 38446} 38447def V6_vunpackub : HInst< 38448(outs HvxWR:$Vdd32), 38449(ins HvxVR:$Vu32), 38450"$Vdd32.uh = vunpack($Vu32.ub)", 38451tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38452let Inst{7-5} = 0b000; 38453let Inst{13-13} = 0b0; 38454let Inst{31-16} = 0b0001111000000001; 38455let hasNewValue = 1; 38456let opNewValue = 0; 38457let isCVI = 1; 38458let DecoderNamespace = "EXT_mmvec"; 38459} 38460def V6_vunpackub_alt : HInst< 38461(outs HvxWR:$Vdd32), 38462(ins HvxVR:$Vu32), 38463"$Vdd32 = vunpackub($Vu32)", 38464PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38465let hasNewValue = 1; 38466let opNewValue = 0; 38467let isCVI = 1; 38468let isPseudo = 1; 38469let isCodeGenOnly = 1; 38470let DecoderNamespace = "EXT_mmvec"; 38471} 38472def V6_vunpackuh : HInst< 38473(outs HvxWR:$Vdd32), 38474(ins HvxVR:$Vu32), 38475"$Vdd32.uw = vunpack($Vu32.uh)", 38476tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38477let Inst{7-5} = 0b001; 38478let Inst{13-13} = 0b0; 38479let Inst{31-16} = 0b0001111000000001; 38480let hasNewValue = 1; 38481let opNewValue = 0; 38482let isCVI = 1; 38483let DecoderNamespace = "EXT_mmvec"; 38484} 38485def V6_vunpackuh_alt : HInst< 38486(outs HvxWR:$Vdd32), 38487(ins HvxVR:$Vu32), 38488"$Vdd32 = vunpackuh($Vu32)", 38489PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38490let hasNewValue = 1; 38491let opNewValue = 0; 38492let isCVI = 1; 38493let isPseudo = 1; 38494let isCodeGenOnly = 1; 38495let DecoderNamespace = "EXT_mmvec"; 38496} 38497def V6_vwhist128 : HInst< 38498(outs), 38499(ins), 38500"vwhist128", 38501tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38502let Inst{13-0} = 0b10010010000000; 38503let Inst{31-16} = 0b0001111000000000; 38504let isCVI = 1; 38505let DecoderNamespace = "EXT_mmvec"; 38506} 38507def V6_vwhist128m : HInst< 38508(outs), 38509(ins u1_0Imm:$Ii), 38510"vwhist128(#$Ii)", 38511tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> { 38512let Inst{7-0} = 0b10000000; 38513let Inst{13-9} = 0b10011; 38514let Inst{31-16} = 0b0001111000000000; 38515let isCVI = 1; 38516let DecoderNamespace = "EXT_mmvec"; 38517} 38518def V6_vwhist128q : HInst< 38519(outs), 38520(ins HvxQR:$Qv4), 38521"vwhist128($Qv4)", 38522tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38523let Inst{13-0} = 0b10010010000000; 38524let Inst{21-16} = 0b000010; 38525let Inst{31-24} = 0b00011110; 38526let isCVI = 1; 38527let DecoderNamespace = "EXT_mmvec"; 38528} 38529def V6_vwhist128qm : HInst< 38530(outs), 38531(ins HvxQR:$Qv4, u1_0Imm:$Ii), 38532"vwhist128($Qv4,#$Ii)", 38533tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> { 38534let Inst{7-0} = 0b10000000; 38535let Inst{13-9} = 0b10011; 38536let Inst{21-16} = 0b000010; 38537let Inst{31-24} = 0b00011110; 38538let isCVI = 1; 38539let DecoderNamespace = "EXT_mmvec"; 38540} 38541def V6_vwhist256 : HInst< 38542(outs), 38543(ins), 38544"vwhist256", 38545tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38546let Inst{13-0} = 0b10001010000000; 38547let Inst{31-16} = 0b0001111000000000; 38548let isCVI = 1; 38549let DecoderNamespace = "EXT_mmvec"; 38550} 38551def V6_vwhist256_sat : HInst< 38552(outs), 38553(ins), 38554"vwhist256:sat", 38555tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38556let Inst{13-0} = 0b10001110000000; 38557let Inst{31-16} = 0b0001111000000000; 38558let isCVI = 1; 38559let DecoderNamespace = "EXT_mmvec"; 38560} 38561def V6_vwhist256q : HInst< 38562(outs), 38563(ins HvxQR:$Qv4), 38564"vwhist256($Qv4)", 38565tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38566let Inst{13-0} = 0b10001010000000; 38567let Inst{21-16} = 0b000010; 38568let Inst{31-24} = 0b00011110; 38569let isCVI = 1; 38570let DecoderNamespace = "EXT_mmvec"; 38571} 38572def V6_vwhist256q_sat : HInst< 38573(outs), 38574(ins HvxQR:$Qv4), 38575"vwhist256($Qv4):sat", 38576tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38577let Inst{13-0} = 0b10001110000000; 38578let Inst{21-16} = 0b000010; 38579let Inst{31-24} = 0b00011110; 38580let isCVI = 1; 38581let DecoderNamespace = "EXT_mmvec"; 38582} 38583def V6_vxor : HInst< 38584(outs HvxVR:$Vd32), 38585(ins HvxVR:$Vu32, HvxVR:$Vv32), 38586"$Vd32 = vxor($Vu32,$Vv32)", 38587tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38588let Inst{7-5} = 0b111; 38589let Inst{13-13} = 0b0; 38590let Inst{31-21} = 0b00011100001; 38591let hasNewValue = 1; 38592let opNewValue = 0; 38593let isCVI = 1; 38594let DecoderNamespace = "EXT_mmvec"; 38595} 38596def V6_vzb : HInst< 38597(outs HvxWR:$Vdd32), 38598(ins HvxVR:$Vu32), 38599"$Vdd32.uh = vzxt($Vu32.ub)", 38600tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38601let Inst{7-5} = 0b001; 38602let Inst{13-13} = 0b0; 38603let Inst{31-16} = 0b0001111000000010; 38604let hasNewValue = 1; 38605let opNewValue = 0; 38606let isCVI = 1; 38607let DecoderNamespace = "EXT_mmvec"; 38608} 38609def V6_vzb_alt : HInst< 38610(outs HvxWR:$Vdd32), 38611(ins HvxVR:$Vu32), 38612"$Vdd32 = vzxtb($Vu32)", 38613PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38614let hasNewValue = 1; 38615let opNewValue = 0; 38616let isCVI = 1; 38617let isPseudo = 1; 38618let isCodeGenOnly = 1; 38619let DecoderNamespace = "EXT_mmvec"; 38620} 38621def V6_vzh : HInst< 38622(outs HvxWR:$Vdd32), 38623(ins HvxVR:$Vu32), 38624"$Vdd32.uw = vzxt($Vu32.uh)", 38625tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38626let Inst{7-5} = 0b010; 38627let Inst{13-13} = 0b0; 38628let Inst{31-16} = 0b0001111000000010; 38629let hasNewValue = 1; 38630let opNewValue = 0; 38631let isCVI = 1; 38632let DecoderNamespace = "EXT_mmvec"; 38633} 38634def V6_vzh_alt : HInst< 38635(outs HvxWR:$Vdd32), 38636(ins HvxVR:$Vu32), 38637"$Vdd32 = vzxth($Vu32)", 38638PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38639let hasNewValue = 1; 38640let opNewValue = 0; 38641let isCVI = 1; 38642let isPseudo = 1; 38643let isCodeGenOnly = 1; 38644let DecoderNamespace = "EXT_mmvec"; 38645} 38646def V6_zLd_ai : HInst< 38647(outs), 38648(ins IntRegs:$Rt32, s4_0Imm:$Ii), 38649"z = vmem($Rt32+#$Ii)", 38650tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> { 38651let Inst{7-0} = 0b00000000; 38652let Inst{12-11} = 0b00; 38653let Inst{31-21} = 0b00101100000; 38654let addrMode = BaseImmOffset; 38655let isCVI = 1; 38656let mayLoad = 1; 38657let isRestrictNoSlot1Store = 1; 38658let DecoderNamespace = "EXT_mmvec"; 38659} 38660def V6_zLd_pi : HInst< 38661(outs IntRegs:$Rx32), 38662(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 38663"z = vmem($Rx32++#$Ii)", 38664tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> { 38665let Inst{7-0} = 0b00000000; 38666let Inst{13-11} = 0b000; 38667let Inst{31-21} = 0b00101101000; 38668let addrMode = PostInc; 38669let isCVI = 1; 38670let mayLoad = 1; 38671let isRestrictNoSlot1Store = 1; 38672let DecoderNamespace = "EXT_mmvec"; 38673let Constraints = "$Rx32 = $Rx32in"; 38674} 38675def V6_zLd_ppu : HInst< 38676(outs IntRegs:$Rx32), 38677(ins IntRegs:$Rx32in, ModRegs:$Mu2), 38678"z = vmem($Rx32++$Mu2)", 38679tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> { 38680let Inst{12-0} = 0b0000000000001; 38681let Inst{31-21} = 0b00101101000; 38682let addrMode = PostInc; 38683let isCVI = 1; 38684let mayLoad = 1; 38685let isRestrictNoSlot1Store = 1; 38686let DecoderNamespace = "EXT_mmvec"; 38687let Constraints = "$Rx32 = $Rx32in"; 38688} 38689def V6_zLd_pred_ai : HInst< 38690(outs), 38691(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 38692"if ($Pv4) z = vmem($Rt32+#$Ii)", 38693tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> { 38694let Inst{7-0} = 0b00000000; 38695let Inst{31-21} = 0b00101100100; 38696let isPredicated = 1; 38697let addrMode = BaseImmOffset; 38698let isCVI = 1; 38699let mayLoad = 1; 38700let isRestrictNoSlot1Store = 1; 38701let DecoderNamespace = "EXT_mmvec"; 38702} 38703def V6_zLd_pred_pi : HInst< 38704(outs IntRegs:$Rx32), 38705(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 38706"if ($Pv4) z = vmem($Rx32++#$Ii)", 38707tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> { 38708let Inst{7-0} = 0b00000000; 38709let Inst{13-13} = 0b0; 38710let Inst{31-21} = 0b00101101100; 38711let isPredicated = 1; 38712let addrMode = PostInc; 38713let isCVI = 1; 38714let mayLoad = 1; 38715let isRestrictNoSlot1Store = 1; 38716let DecoderNamespace = "EXT_mmvec"; 38717let Constraints = "$Rx32 = $Rx32in"; 38718} 38719def V6_zLd_pred_ppu : HInst< 38720(outs IntRegs:$Rx32), 38721(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 38722"if ($Pv4) z = vmem($Rx32++$Mu2)", 38723tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> { 38724let Inst{10-0} = 0b00000000001; 38725let Inst{31-21} = 0b00101101100; 38726let isPredicated = 1; 38727let addrMode = PostInc; 38728let isCVI = 1; 38729let mayLoad = 1; 38730let isRestrictNoSlot1Store = 1; 38731let DecoderNamespace = "EXT_mmvec"; 38732let Constraints = "$Rx32 = $Rx32in"; 38733} 38734def V6_zextract : HInst< 38735(outs HvxVR:$Vd32), 38736(ins IntRegs:$Rt32), 38737"$Vd32 = zextract($Rt32)", 38738tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> { 38739let Inst{13-5} = 0b000001001; 38740let Inst{31-21} = 0b00011001101; 38741let hasNewValue = 1; 38742let opNewValue = 0; 38743let isCVI = 1; 38744let DecoderNamespace = "EXT_mmvec"; 38745} 38746def V6_zld0 : HInst< 38747(outs), 38748(ins IntRegs:$Rt32), 38749"z = vmem($Rt32)", 38750PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 38751let isCVI = 1; 38752let isPseudo = 1; 38753let isCodeGenOnly = 1; 38754let DecoderNamespace = "EXT_mmvec"; 38755} 38756def V6_zldp0 : HInst< 38757(outs), 38758(ins PredRegs:$Pv4, IntRegs:$Rt32), 38759"if ($Pv4) z = vmem($Rt32)", 38760PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 38761let isCVI = 1; 38762let isPseudo = 1; 38763let isCodeGenOnly = 1; 38764let DecoderNamespace = "EXT_mmvec"; 38765} 38766def Y2_barrier : HInst< 38767(outs), 38768(ins), 38769"barrier", 38770tc_77f94a5e, TypeST>, Enc_e3b0c4 { 38771let Inst{13-0} = 0b00000000000000; 38772let Inst{31-16} = 0b1010100000000000; 38773let isSoloAX = 1; 38774let hasSideEffects = 1; 38775} 38776def Y2_break : HInst< 38777(outs), 38778(ins), 38779"brkpt", 38780tc_55255f2b, TypeCR>, Enc_e3b0c4 { 38781let Inst{13-0} = 0b00000000000000; 38782let Inst{31-16} = 0b0110110000100000; 38783let isSolo = 1; 38784} 38785def Y2_dccleana : HInst< 38786(outs), 38787(ins IntRegs:$Rs32), 38788"dccleana($Rs32)", 38789tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38790let Inst{13-0} = 0b00000000000000; 38791let Inst{31-21} = 0b10100000000; 38792let isRestrictSlot1AOK = 1; 38793let hasSideEffects = 1; 38794} 38795def Y2_dccleaninva : HInst< 38796(outs), 38797(ins IntRegs:$Rs32), 38798"dccleaninva($Rs32)", 38799tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38800let Inst{13-0} = 0b00000000000000; 38801let Inst{31-21} = 0b10100000010; 38802let isRestrictSlot1AOK = 1; 38803let hasSideEffects = 1; 38804} 38805def Y2_dcfetch : HInst< 38806(outs), 38807(ins IntRegs:$Rs32), 38808"dcfetch($Rs32)", 38809tc_d45ba9cd, TypeMAPPING> { 38810let hasSideEffects = 1; 38811let isPseudo = 1; 38812let isCodeGenOnly = 1; 38813} 38814def Y2_dcfetchbo : HInst< 38815(outs), 38816(ins IntRegs:$Rs32, u11_3Imm:$Ii), 38817"dcfetch($Rs32+#$Ii)", 38818tc_2237d952, TypeLD>, Enc_2d829e { 38819let Inst{13-11} = 0b000; 38820let Inst{31-21} = 0b10010100000; 38821let addrMode = BaseImmOffset; 38822let isRestrictNoSlot1Store = 1; 38823let hasSideEffects = 1; 38824} 38825def Y2_dcinva : HInst< 38826(outs), 38827(ins IntRegs:$Rs32), 38828"dcinva($Rs32)", 38829tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38830let Inst{13-0} = 0b00000000000000; 38831let Inst{31-21} = 0b10100000001; 38832let isRestrictSlot1AOK = 1; 38833let hasSideEffects = 1; 38834} 38835def Y2_dczeroa : HInst< 38836(outs), 38837(ins IntRegs:$Rs32), 38838"dczeroa($Rs32)", 38839tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38840let Inst{13-0} = 0b00000000000000; 38841let Inst{31-21} = 0b10100000110; 38842let isRestrictSlot1AOK = 1; 38843let mayStore = 1; 38844let hasSideEffects = 1; 38845} 38846def Y2_icinva : HInst< 38847(outs), 38848(ins IntRegs:$Rs32), 38849"icinva($Rs32)", 38850tc_0ba0d5da, TypeJ>, Enc_ecbcc8 { 38851let Inst{13-0} = 0b00000000000000; 38852let Inst{31-21} = 0b01010110110; 38853let isSolo = 1; 38854} 38855def Y2_isync : HInst< 38856(outs), 38857(ins), 38858"isync", 38859tc_9b34f5e0, TypeJ>, Enc_e3b0c4 { 38860let Inst{13-0} = 0b00000000000010; 38861let Inst{31-16} = 0b0101011111000000; 38862let isSolo = 1; 38863} 38864def Y2_syncht : HInst< 38865(outs), 38866(ins), 38867"syncht", 38868tc_77f94a5e, TypeST>, Enc_e3b0c4 { 38869let Inst{13-0} = 0b00000000000000; 38870let Inst{31-16} = 0b1010100001000000; 38871let isSolo = 1; 38872} 38873def Y2_wait : HInst< 38874(outs), 38875(ins IntRegs:$Rs32), 38876"wait($Rs32)", 38877tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> { 38878let Inst{13-0} = 0b00000000000000; 38879let Inst{31-21} = 0b01100100010; 38880let isSolo = 1; 38881} 38882def Y4_l2fetch : HInst< 38883(outs), 38884(ins IntRegs:$Rs32, IntRegs:$Rt32), 38885"l2fetch($Rs32,$Rt32)", 38886tc_a3070909, TypeST>, Enc_ca3887 { 38887let Inst{7-0} = 0b00000000; 38888let Inst{13-13} = 0b0; 38889let Inst{31-21} = 0b10100110000; 38890let isSoloAX = 1; 38891let hasSideEffects = 1; 38892let mayStore = 1; 38893} 38894def Y4_trace : HInst< 38895(outs), 38896(ins IntRegs:$Rs32), 38897"trace($Rs32)", 38898tc_d7718fbe, TypeCR>, Enc_ecbcc8 { 38899let Inst{13-0} = 0b00000000000000; 38900let Inst{31-21} = 0b01100010010; 38901let isSoloAX = 1; 38902} 38903def Y5_l2fetch : HInst< 38904(outs), 38905(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 38906"l2fetch($Rs32,$Rtt32)", 38907tc_a3070909, TypeST>, Enc_e6abcf { 38908let Inst{7-0} = 0b00000000; 38909let Inst{13-13} = 0b0; 38910let Inst{31-21} = 0b10100110100; 38911let isSoloAX = 1; 38912let hasSideEffects = 1; 38913let mayStore = 1; 38914} 38915def Y6_diag : HInst< 38916(outs), 38917(ins IntRegs:$Rs32), 38918"diag($Rs32)", 38919tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> { 38920let Inst{13-0} = 0b00000000100000; 38921let Inst{31-21} = 0b01100010010; 38922} 38923def Y6_diag0 : HInst< 38924(outs), 38925(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 38926"diag0($Rss32,$Rtt32)", 38927tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 38928let Inst{7-0} = 0b01000000; 38929let Inst{13-13} = 0b0; 38930let Inst{31-21} = 0b01100010010; 38931} 38932def Y6_diag1 : HInst< 38933(outs), 38934(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 38935"diag1($Rss32,$Rtt32)", 38936tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 38937let Inst{7-0} = 0b01100000; 38938let Inst{13-13} = 0b0; 38939let Inst{31-21} = 0b01100010010; 38940} 38941def Y6_dmlink : HInst< 38942(outs), 38943(ins IntRegs:$Rs32, IntRegs:$Rt32), 38944"dmlink($Rs32,$Rt32)", 38945tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 38946let Inst{7-0} = 0b01000000; 38947let Inst{13-13} = 0b0; 38948let Inst{31-21} = 0b10100110000; 38949let hasSideEffects = 1; 38950let isSolo = 1; 38951let mayStore = 1; 38952} 38953def Y6_dmpause : HInst< 38954(outs IntRegs:$Rd32), 38955(ins), 38956"$Rd32 = dmpause", 38957tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 38958let Inst{13-5} = 0b000000011; 38959let Inst{31-16} = 0b1010100000000000; 38960let hasNewValue = 1; 38961let opNewValue = 0; 38962let hasSideEffects = 1; 38963let isSolo = 1; 38964} 38965def Y6_dmpoll : HInst< 38966(outs IntRegs:$Rd32), 38967(ins), 38968"$Rd32 = dmpoll", 38969tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 38970let Inst{13-5} = 0b000000010; 38971let Inst{31-16} = 0b1010100000000000; 38972let hasNewValue = 1; 38973let opNewValue = 0; 38974let hasSideEffects = 1; 38975let isSolo = 1; 38976} 38977def Y6_dmresume : HInst< 38978(outs), 38979(ins IntRegs:$Rs32), 38980"dmresume($Rs32)", 38981tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 38982let Inst{13-0} = 0b00000010000000; 38983let Inst{31-21} = 0b10100110000; 38984let hasSideEffects = 1; 38985let isSolo = 1; 38986} 38987def Y6_dmstart : HInst< 38988(outs), 38989(ins IntRegs:$Rs32), 38990"dmstart($Rs32)", 38991tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 38992let Inst{13-0} = 0b00000000100000; 38993let Inst{31-21} = 0b10100110000; 38994let hasSideEffects = 1; 38995let isSolo = 1; 38996} 38997def Y6_dmwait : HInst< 38998(outs IntRegs:$Rd32), 38999(ins), 39000"$Rd32 = dmwait", 39001tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 39002let Inst{13-5} = 0b000000001; 39003let Inst{31-16} = 0b1010100000000000; 39004let hasNewValue = 1; 39005let opNewValue = 0; 39006let hasSideEffects = 1; 39007let isSolo = 1; 39008} 39009def dep_A2_addsat : HInst< 39010(outs IntRegs:$Rd32), 39011(ins IntRegs:$Rs32, IntRegs:$Rt32), 39012"$Rd32 = add($Rs32,$Rt32):sat:deprecated", 39013tc_8a825db2, TypeALU64>, Enc_5ab2be { 39014let Inst{7-5} = 0b000; 39015let Inst{13-13} = 0b0; 39016let Inst{31-21} = 0b11010101100; 39017let hasNewValue = 1; 39018let opNewValue = 0; 39019let prefersSlot3 = 1; 39020let Defs = [USR_OVF]; 39021} 39022def dep_A2_subsat : HInst< 39023(outs IntRegs:$Rd32), 39024(ins IntRegs:$Rt32, IntRegs:$Rs32), 39025"$Rd32 = sub($Rt32,$Rs32):sat:deprecated", 39026tc_8a825db2, TypeALU64>, Enc_bd6011 { 39027let Inst{7-5} = 0b100; 39028let Inst{13-13} = 0b0; 39029let Inst{31-21} = 0b11010101100; 39030let hasNewValue = 1; 39031let opNewValue = 0; 39032let prefersSlot3 = 1; 39033let Defs = [USR_OVF]; 39034} 39035def dep_S2_packhl : HInst< 39036(outs DoubleRegs:$Rdd32), 39037(ins IntRegs:$Rs32, IntRegs:$Rt32), 39038"$Rdd32 = packhl($Rs32,$Rt32):deprecated", 39039tc_5da50c4b, TypeALU64>, Enc_be32a5 { 39040let Inst{7-5} = 0b000; 39041let Inst{13-13} = 0b0; 39042let Inst{31-21} = 0b11010100000; 39043} 39044def dup_A2_add : HInst< 39045(outs IntRegs:$Rd32), 39046(ins IntRegs:$Rs32, IntRegs:$Rt32), 39047"$Rd32 = add($Rs32,$Rt32)", 39048tc_388f9897, TypeALU32_3op>, Requires<[HasV68]> { 39049let hasNewValue = 1; 39050let opNewValue = 0; 39051let AsmVariantName = "NonParsable"; 39052let isPseudo = 1; 39053} 39054def dup_A2_addi : HInst< 39055(outs IntRegs:$Rd32), 39056(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39057"$Rd32 = add($Rs32,#$Ii)", 39058tc_388f9897, TypeALU32_ADDI>, Requires<[HasV68]> { 39059let hasNewValue = 1; 39060let opNewValue = 0; 39061let AsmVariantName = "NonParsable"; 39062let isPseudo = 1; 39063let isExtendable = 1; 39064let opExtendable = 2; 39065let isExtentSigned = 1; 39066let opExtentBits = 16; 39067let opExtentAlign = 0; 39068} 39069def dup_A2_andir : HInst< 39070(outs IntRegs:$Rd32), 39071(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39072"$Rd32 = and($Rs32,#$Ii)", 39073tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39074let hasNewValue = 1; 39075let opNewValue = 0; 39076let AsmVariantName = "NonParsable"; 39077let isPseudo = 1; 39078let isExtendable = 1; 39079let opExtendable = 2; 39080let isExtentSigned = 1; 39081let opExtentBits = 10; 39082let opExtentAlign = 0; 39083} 39084def dup_A2_combineii : HInst< 39085(outs DoubleRegs:$Rdd32), 39086(ins s32_0Imm:$Ii, s8_0Imm:$II), 39087"$Rdd32 = combine(#$Ii,#$II)", 39088tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39089let AsmVariantName = "NonParsable"; 39090let isPseudo = 1; 39091let isExtendable = 1; 39092let opExtendable = 1; 39093let isExtentSigned = 1; 39094let opExtentBits = 8; 39095let opExtentAlign = 0; 39096} 39097def dup_A2_sxtb : HInst< 39098(outs IntRegs:$Rd32), 39099(ins IntRegs:$Rs32), 39100"$Rd32 = sxtb($Rs32)", 39101tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> { 39102let hasNewValue = 1; 39103let opNewValue = 0; 39104let AsmVariantName = "NonParsable"; 39105let isPseudo = 1; 39106} 39107def dup_A2_sxth : HInst< 39108(outs IntRegs:$Rd32), 39109(ins IntRegs:$Rs32), 39110"$Rd32 = sxth($Rs32)", 39111tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> { 39112let hasNewValue = 1; 39113let opNewValue = 0; 39114let AsmVariantName = "NonParsable"; 39115let isPseudo = 1; 39116} 39117def dup_A2_tfr : HInst< 39118(outs IntRegs:$Rd32), 39119(ins IntRegs:$Rs32), 39120"$Rd32 = $Rs32", 39121tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> { 39122let hasNewValue = 1; 39123let opNewValue = 0; 39124let AsmVariantName = "NonParsable"; 39125let isPseudo = 1; 39126} 39127def dup_A2_tfrsi : HInst< 39128(outs IntRegs:$Rd32), 39129(ins s32_0Imm:$Ii), 39130"$Rd32 = #$Ii", 39131tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> { 39132let hasNewValue = 1; 39133let opNewValue = 0; 39134let AsmVariantName = "NonParsable"; 39135let isPseudo = 1; 39136let isExtendable = 1; 39137let opExtendable = 1; 39138let isExtentSigned = 1; 39139let opExtentBits = 16; 39140let opExtentAlign = 0; 39141} 39142def dup_A2_zxtb : HInst< 39143(outs IntRegs:$Rd32), 39144(ins IntRegs:$Rs32), 39145"$Rd32 = zxtb($Rs32)", 39146PSEUDO, TypeMAPPING>, Requires<[HasV68]> { 39147let hasNewValue = 1; 39148let opNewValue = 0; 39149let AsmVariantName = "NonParsable"; 39150let isPseudo = 1; 39151} 39152def dup_A2_zxth : HInst< 39153(outs IntRegs:$Rd32), 39154(ins IntRegs:$Rs32), 39155"$Rd32 = zxth($Rs32)", 39156tc_9124c04f, TypeALU32_2op>, Requires<[HasV68]> { 39157let hasNewValue = 1; 39158let opNewValue = 0; 39159let AsmVariantName = "NonParsable"; 39160let isPseudo = 1; 39161} 39162def dup_A4_combineii : HInst< 39163(outs DoubleRegs:$Rdd32), 39164(ins s8_0Imm:$Ii, u32_0Imm:$II), 39165"$Rdd32 = combine(#$Ii,#$II)", 39166tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39167let AsmVariantName = "NonParsable"; 39168let isPseudo = 1; 39169let isExtendable = 1; 39170let opExtendable = 2; 39171let isExtentSigned = 0; 39172let opExtentBits = 6; 39173let opExtentAlign = 0; 39174} 39175def dup_A4_combineir : HInst< 39176(outs DoubleRegs:$Rdd32), 39177(ins s32_0Imm:$Ii, IntRegs:$Rs32), 39178"$Rdd32 = combine(#$Ii,$Rs32)", 39179tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39180let AsmVariantName = "NonParsable"; 39181let isPseudo = 1; 39182let isExtendable = 1; 39183let opExtendable = 1; 39184let isExtentSigned = 1; 39185let opExtentBits = 8; 39186let opExtentAlign = 0; 39187} 39188def dup_A4_combineri : HInst< 39189(outs DoubleRegs:$Rdd32), 39190(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39191"$Rdd32 = combine($Rs32,#$Ii)", 39192tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39193let AsmVariantName = "NonParsable"; 39194let isPseudo = 1; 39195let isExtendable = 1; 39196let opExtendable = 2; 39197let isExtentSigned = 1; 39198let opExtentBits = 8; 39199let opExtentAlign = 0; 39200} 39201def dup_C2_cmoveif : HInst< 39202(outs IntRegs:$Rd32), 39203(ins PredRegs:$Pu4, s32_0Imm:$Ii), 39204"if (!$Pu4) $Rd32 = #$Ii", 39205tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39206let isPredicated = 1; 39207let isPredicatedFalse = 1; 39208let hasNewValue = 1; 39209let opNewValue = 0; 39210let AsmVariantName = "NonParsable"; 39211let isPseudo = 1; 39212let isExtendable = 1; 39213let opExtendable = 2; 39214let isExtentSigned = 1; 39215let opExtentBits = 12; 39216let opExtentAlign = 0; 39217} 39218def dup_C2_cmoveit : HInst< 39219(outs IntRegs:$Rd32), 39220(ins PredRegs:$Pu4, s32_0Imm:$Ii), 39221"if ($Pu4) $Rd32 = #$Ii", 39222tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39223let isPredicated = 1; 39224let hasNewValue = 1; 39225let opNewValue = 0; 39226let AsmVariantName = "NonParsable"; 39227let isPseudo = 1; 39228let isExtendable = 1; 39229let opExtendable = 2; 39230let isExtentSigned = 1; 39231let opExtentBits = 12; 39232let opExtentAlign = 0; 39233} 39234def dup_C2_cmovenewif : HInst< 39235(outs IntRegs:$Rd32), 39236(ins PredRegs:$Pu4, s32_0Imm:$Ii), 39237"if (!$Pu4.new) $Rd32 = #$Ii", 39238tc_4ac61d92, TypeALU32_2op>, Requires<[HasV68]> { 39239let isPredicated = 1; 39240let isPredicatedFalse = 1; 39241let hasNewValue = 1; 39242let opNewValue = 0; 39243let AsmVariantName = "NonParsable"; 39244let isPredicatedNew = 1; 39245let isPseudo = 1; 39246let isExtendable = 1; 39247let opExtendable = 2; 39248let isExtentSigned = 1; 39249let opExtentBits = 12; 39250let opExtentAlign = 0; 39251} 39252def dup_C2_cmovenewit : HInst< 39253(outs IntRegs:$Rd32), 39254(ins PredRegs:$Pu4, s32_0Imm:$Ii), 39255"if ($Pu4.new) $Rd32 = #$Ii", 39256tc_4ac61d92, TypeALU32_2op>, Requires<[HasV68]> { 39257let isPredicated = 1; 39258let hasNewValue = 1; 39259let opNewValue = 0; 39260let AsmVariantName = "NonParsable"; 39261let isPredicatedNew = 1; 39262let isPseudo = 1; 39263let isExtendable = 1; 39264let opExtendable = 2; 39265let isExtentSigned = 1; 39266let opExtentBits = 12; 39267let opExtentAlign = 0; 39268} 39269def dup_C2_cmpeqi : HInst< 39270(outs PredRegs:$Pd4), 39271(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39272"$Pd4 = cmp.eq($Rs32,#$Ii)", 39273tc_388f9897, TypeALU32_2op>, Requires<[HasV68]> { 39274let AsmVariantName = "NonParsable"; 39275let isPseudo = 1; 39276let isExtendable = 1; 39277let opExtendable = 2; 39278let isExtentSigned = 1; 39279let opExtentBits = 10; 39280let opExtentAlign = 0; 39281} 39282def dup_L2_deallocframe : HInst< 39283(outs DoubleRegs:$Rdd32), 39284(ins IntRegs:$Rs32), 39285"$Rdd32 = deallocframe($Rs32):raw", 39286tc_aee6250c, TypeLD>, Requires<[HasV68]> { 39287let accessSize = DoubleWordAccess; 39288let AsmVariantName = "NonParsable"; 39289let mayLoad = 1; 39290let Uses = [FRAMEKEY]; 39291let Defs = [R29]; 39292let isPseudo = 1; 39293} 39294def dup_L2_loadrb_io : HInst< 39295(outs IntRegs:$Rd32), 39296(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39297"$Rd32 = memb($Rs32+#$Ii)", 39298tc_eed07714, TypeLD>, Requires<[HasV68]> { 39299let hasNewValue = 1; 39300let opNewValue = 0; 39301let addrMode = BaseImmOffset; 39302let accessSize = ByteAccess; 39303let AsmVariantName = "NonParsable"; 39304let mayLoad = 1; 39305let isPseudo = 1; 39306let isExtendable = 1; 39307let opExtendable = 2; 39308let isExtentSigned = 1; 39309let opExtentBits = 11; 39310let opExtentAlign = 0; 39311} 39312def dup_L2_loadrd_io : HInst< 39313(outs DoubleRegs:$Rdd32), 39314(ins IntRegs:$Rs32, s29_3Imm:$Ii), 39315"$Rdd32 = memd($Rs32+#$Ii)", 39316tc_eed07714, TypeLD>, Requires<[HasV68]> { 39317let addrMode = BaseImmOffset; 39318let accessSize = DoubleWordAccess; 39319let AsmVariantName = "NonParsable"; 39320let mayLoad = 1; 39321let isPseudo = 1; 39322let isExtendable = 1; 39323let opExtendable = 2; 39324let isExtentSigned = 1; 39325let opExtentBits = 14; 39326let opExtentAlign = 3; 39327} 39328def dup_L2_loadrh_io : HInst< 39329(outs IntRegs:$Rd32), 39330(ins IntRegs:$Rs32, s31_1Imm:$Ii), 39331"$Rd32 = memh($Rs32+#$Ii)", 39332tc_eed07714, TypeLD>, Requires<[HasV68]> { 39333let hasNewValue = 1; 39334let opNewValue = 0; 39335let addrMode = BaseImmOffset; 39336let accessSize = HalfWordAccess; 39337let AsmVariantName = "NonParsable"; 39338let mayLoad = 1; 39339let isPseudo = 1; 39340let isExtendable = 1; 39341let opExtendable = 2; 39342let isExtentSigned = 1; 39343let opExtentBits = 12; 39344let opExtentAlign = 1; 39345} 39346def dup_L2_loadri_io : HInst< 39347(outs IntRegs:$Rd32), 39348(ins IntRegs:$Rs32, s30_2Imm:$Ii), 39349"$Rd32 = memw($Rs32+#$Ii)", 39350tc_eed07714, TypeLD>, Requires<[HasV68]> { 39351let hasNewValue = 1; 39352let opNewValue = 0; 39353let addrMode = BaseImmOffset; 39354let accessSize = WordAccess; 39355let AsmVariantName = "NonParsable"; 39356let mayLoad = 1; 39357let isPseudo = 1; 39358let isExtendable = 1; 39359let opExtendable = 2; 39360let isExtentSigned = 1; 39361let opExtentBits = 13; 39362let opExtentAlign = 2; 39363} 39364def dup_L2_loadrub_io : HInst< 39365(outs IntRegs:$Rd32), 39366(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39367"$Rd32 = memub($Rs32+#$Ii)", 39368tc_eed07714, TypeLD>, Requires<[HasV68]> { 39369let hasNewValue = 1; 39370let opNewValue = 0; 39371let addrMode = BaseImmOffset; 39372let accessSize = ByteAccess; 39373let AsmVariantName = "NonParsable"; 39374let mayLoad = 1; 39375let isPseudo = 1; 39376let isExtendable = 1; 39377let opExtendable = 2; 39378let isExtentSigned = 1; 39379let opExtentBits = 11; 39380let opExtentAlign = 0; 39381} 39382def dup_L2_loadruh_io : HInst< 39383(outs IntRegs:$Rd32), 39384(ins IntRegs:$Rs32, s31_1Imm:$Ii), 39385"$Rd32 = memuh($Rs32+#$Ii)", 39386tc_eed07714, TypeLD>, Requires<[HasV68]> { 39387let hasNewValue = 1; 39388let opNewValue = 0; 39389let addrMode = BaseImmOffset; 39390let accessSize = HalfWordAccess; 39391let AsmVariantName = "NonParsable"; 39392let mayLoad = 1; 39393let isPseudo = 1; 39394let isExtendable = 1; 39395let opExtendable = 2; 39396let isExtentSigned = 1; 39397let opExtentBits = 12; 39398let opExtentAlign = 1; 39399} 39400def dup_S2_allocframe : HInst< 39401(outs IntRegs:$Rx32), 39402(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 39403"allocframe($Rx32,#$Ii):raw", 39404tc_74a42bda, TypeST>, Requires<[HasV68]> { 39405let hasNewValue = 1; 39406let opNewValue = 0; 39407let addrMode = BaseImmOffset; 39408let accessSize = DoubleWordAccess; 39409let AsmVariantName = "NonParsable"; 39410let mayStore = 1; 39411let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 39412let Defs = [R30]; 39413let isPseudo = 1; 39414let Constraints = "$Rx32 = $Rx32in"; 39415} 39416def dup_S2_storerb_io : HInst< 39417(outs), 39418(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 39419"memb($Rs32+#$Ii) = $Rt32", 39420tc_a9edeffa, TypeST>, Requires<[HasV68]> { 39421let addrMode = BaseImmOffset; 39422let accessSize = ByteAccess; 39423let AsmVariantName = "NonParsable"; 39424let mayStore = 1; 39425let isPseudo = 1; 39426let isExtendable = 1; 39427let opExtendable = 1; 39428let isExtentSigned = 1; 39429let opExtentBits = 11; 39430let opExtentAlign = 0; 39431} 39432def dup_S2_storerd_io : HInst< 39433(outs), 39434(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 39435"memd($Rs32+#$Ii) = $Rtt32", 39436tc_a9edeffa, TypeST>, Requires<[HasV68]> { 39437let addrMode = BaseImmOffset; 39438let accessSize = DoubleWordAccess; 39439let AsmVariantName = "NonParsable"; 39440let mayStore = 1; 39441let isPseudo = 1; 39442let isExtendable = 1; 39443let opExtendable = 1; 39444let isExtentSigned = 1; 39445let opExtentBits = 14; 39446let opExtentAlign = 3; 39447} 39448def dup_S2_storerh_io : HInst< 39449(outs), 39450(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 39451"memh($Rs32+#$Ii) = $Rt32", 39452tc_a9edeffa, TypeST>, Requires<[HasV68]> { 39453let addrMode = BaseImmOffset; 39454let accessSize = HalfWordAccess; 39455let AsmVariantName = "NonParsable"; 39456let mayStore = 1; 39457let isPseudo = 1; 39458let isExtendable = 1; 39459let opExtendable = 1; 39460let isExtentSigned = 1; 39461let opExtentBits = 12; 39462let opExtentAlign = 1; 39463} 39464def dup_S2_storeri_io : HInst< 39465(outs), 39466(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 39467"memw($Rs32+#$Ii) = $Rt32", 39468tc_a9edeffa, TypeST>, Requires<[HasV68]> { 39469let addrMode = BaseImmOffset; 39470let accessSize = WordAccess; 39471let AsmVariantName = "NonParsable"; 39472let mayStore = 1; 39473let isPseudo = 1; 39474let isExtendable = 1; 39475let opExtendable = 1; 39476let isExtentSigned = 1; 39477let opExtentBits = 13; 39478let opExtentAlign = 2; 39479} 39480def dup_S4_storeirb_io : HInst< 39481(outs), 39482(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 39483"memb($Rs32+#$Ii) = #$II", 39484tc_838c4d7a, TypeV4LDST>, Requires<[HasV68]> { 39485let addrMode = BaseImmOffset; 39486let accessSize = ByteAccess; 39487let AsmVariantName = "NonParsable"; 39488let mayStore = 1; 39489let isPseudo = 1; 39490let isExtendable = 1; 39491let opExtendable = 2; 39492let isExtentSigned = 1; 39493let opExtentBits = 8; 39494let opExtentAlign = 0; 39495} 39496def dup_S4_storeiri_io : HInst< 39497(outs), 39498(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 39499"memw($Rs32+#$Ii) = #$II", 39500tc_838c4d7a, TypeV4LDST>, Requires<[HasV68]> { 39501let addrMode = BaseImmOffset; 39502let accessSize = WordAccess; 39503let AsmVariantName = "NonParsable"; 39504let mayStore = 1; 39505let isPseudo = 1; 39506let isExtendable = 1; 39507let opExtendable = 2; 39508let isExtentSigned = 1; 39509let opExtentBits = 8; 39510let opExtentAlign = 0; 39511} 39512