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 isPredicable = 1; 221let isAdd = 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 isCommutable = 1; 237let isAdd = 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 isReMaterializable = 1; 414let isAsCheapAsAMove = 1; 415let isMoveImm = 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 isReMaterializable = 1; 1537let isAsCheapAsAMove = 1; 1538let isMoveImm = 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 isPredicable = 1; 1583let isReMaterializable = 1; 1584let isAsCheapAsAMove = 1; 1585let isMoveImm = 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 isPredicable = 1; 4896let hasSideEffects = 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_locked : HInst< 10135(outs IntRegs:$Rd32), 10136(ins IntRegs:$Rs32), 10137"$Rd32 = memw_locked($Rs32)", 10138tc_64b00d8a, TypeLD>, Enc_5e2823 { 10139let Inst{13-5} = 0b000000000; 10140let Inst{31-21} = 0b10010010000; 10141let hasNewValue = 1; 10142let opNewValue = 0; 10143let accessSize = WordAccess; 10144let mayLoad = 1; 10145let isSoloAX = 1; 10146} 10147def L2_ploadrbf_io : HInst< 10148(outs IntRegs:$Rd32), 10149(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10150"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)", 10151tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10152let Inst{13-13} = 0b0; 10153let Inst{31-21} = 0b01000101000; 10154let isPredicated = 1; 10155let isPredicatedFalse = 1; 10156let hasNewValue = 1; 10157let opNewValue = 0; 10158let addrMode = BaseImmOffset; 10159let accessSize = ByteAccess; 10160let mayLoad = 1; 10161let BaseOpcode = "L2_loadrb_io"; 10162let CextOpcode = "L2_loadrb"; 10163let isExtendable = 1; 10164let opExtendable = 3; 10165let isExtentSigned = 0; 10166let opExtentBits = 6; 10167let opExtentAlign = 0; 10168} 10169def L2_ploadrbf_pi : HInst< 10170(outs IntRegs:$Rd32, IntRegs:$Rx32), 10171(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10172"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)", 10173tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10174let Inst{13-11} = 0b101; 10175let Inst{31-21} = 0b10011011000; 10176let isPredicated = 1; 10177let isPredicatedFalse = 1; 10178let hasNewValue = 1; 10179let opNewValue = 0; 10180let addrMode = PostInc; 10181let accessSize = ByteAccess; 10182let mayLoad = 1; 10183let BaseOpcode = "L2_loadrb_pi"; 10184let Constraints = "$Rx32 = $Rx32in"; 10185} 10186def L2_ploadrbf_zomap : HInst< 10187(outs IntRegs:$Rd32), 10188(ins PredRegs:$Pt4, IntRegs:$Rs32), 10189"if (!$Pt4) $Rd32 = memb($Rs32)", 10190tc_fedb7e19, TypeMAPPING> { 10191let hasNewValue = 1; 10192let opNewValue = 0; 10193let isPseudo = 1; 10194let isCodeGenOnly = 1; 10195} 10196def L2_ploadrbfnew_io : HInst< 10197(outs IntRegs:$Rd32), 10198(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10199"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10200tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10201let Inst{13-13} = 0b0; 10202let Inst{31-21} = 0b01000111000; 10203let isPredicated = 1; 10204let isPredicatedFalse = 1; 10205let hasNewValue = 1; 10206let opNewValue = 0; 10207let addrMode = BaseImmOffset; 10208let accessSize = ByteAccess; 10209let isPredicatedNew = 1; 10210let mayLoad = 1; 10211let BaseOpcode = "L2_loadrb_io"; 10212let CextOpcode = "L2_loadrb"; 10213let isExtendable = 1; 10214let opExtendable = 3; 10215let isExtentSigned = 0; 10216let opExtentBits = 6; 10217let opExtentAlign = 0; 10218} 10219def L2_ploadrbfnew_pi : HInst< 10220(outs IntRegs:$Rd32, IntRegs:$Rx32), 10221(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10222"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10223tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10224let Inst{13-11} = 0b111; 10225let Inst{31-21} = 0b10011011000; 10226let isPredicated = 1; 10227let isPredicatedFalse = 1; 10228let hasNewValue = 1; 10229let opNewValue = 0; 10230let addrMode = PostInc; 10231let accessSize = ByteAccess; 10232let isPredicatedNew = 1; 10233let mayLoad = 1; 10234let BaseOpcode = "L2_loadrb_pi"; 10235let Constraints = "$Rx32 = $Rx32in"; 10236} 10237def L2_ploadrbfnew_zomap : HInst< 10238(outs IntRegs:$Rd32), 10239(ins PredRegs:$Pt4, IntRegs:$Rs32), 10240"if (!$Pt4.new) $Rd32 = memb($Rs32)", 10241tc_075c8dd8, TypeMAPPING> { 10242let hasNewValue = 1; 10243let opNewValue = 0; 10244let isPseudo = 1; 10245let isCodeGenOnly = 1; 10246} 10247def L2_ploadrbt_io : HInst< 10248(outs IntRegs:$Rd32), 10249(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10250"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)", 10251tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10252let Inst{13-13} = 0b0; 10253let Inst{31-21} = 0b01000001000; 10254let isPredicated = 1; 10255let hasNewValue = 1; 10256let opNewValue = 0; 10257let addrMode = BaseImmOffset; 10258let accessSize = ByteAccess; 10259let mayLoad = 1; 10260let BaseOpcode = "L2_loadrb_io"; 10261let CextOpcode = "L2_loadrb"; 10262let isExtendable = 1; 10263let opExtendable = 3; 10264let isExtentSigned = 0; 10265let opExtentBits = 6; 10266let opExtentAlign = 0; 10267} 10268def L2_ploadrbt_pi : HInst< 10269(outs IntRegs:$Rd32, IntRegs:$Rx32), 10270(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10271"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)", 10272tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10273let Inst{13-11} = 0b100; 10274let Inst{31-21} = 0b10011011000; 10275let isPredicated = 1; 10276let hasNewValue = 1; 10277let opNewValue = 0; 10278let addrMode = PostInc; 10279let accessSize = ByteAccess; 10280let mayLoad = 1; 10281let BaseOpcode = "L2_loadrb_pi"; 10282let Constraints = "$Rx32 = $Rx32in"; 10283} 10284def L2_ploadrbt_zomap : HInst< 10285(outs IntRegs:$Rd32), 10286(ins PredRegs:$Pt4, IntRegs:$Rs32), 10287"if ($Pt4) $Rd32 = memb($Rs32)", 10288tc_fedb7e19, TypeMAPPING> { 10289let hasNewValue = 1; 10290let opNewValue = 0; 10291let isPseudo = 1; 10292let isCodeGenOnly = 1; 10293} 10294def L2_ploadrbtnew_io : HInst< 10295(outs IntRegs:$Rd32), 10296(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10297"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10298tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10299let Inst{13-13} = 0b0; 10300let Inst{31-21} = 0b01000011000; 10301let isPredicated = 1; 10302let hasNewValue = 1; 10303let opNewValue = 0; 10304let addrMode = BaseImmOffset; 10305let accessSize = ByteAccess; 10306let isPredicatedNew = 1; 10307let mayLoad = 1; 10308let BaseOpcode = "L2_loadrb_io"; 10309let CextOpcode = "L2_loadrb"; 10310let isExtendable = 1; 10311let opExtendable = 3; 10312let isExtentSigned = 0; 10313let opExtentBits = 6; 10314let opExtentAlign = 0; 10315} 10316def L2_ploadrbtnew_pi : HInst< 10317(outs IntRegs:$Rd32, IntRegs:$Rx32), 10318(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10319"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10320tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10321let Inst{13-11} = 0b110; 10322let Inst{31-21} = 0b10011011000; 10323let isPredicated = 1; 10324let hasNewValue = 1; 10325let opNewValue = 0; 10326let addrMode = PostInc; 10327let accessSize = ByteAccess; 10328let isPredicatedNew = 1; 10329let mayLoad = 1; 10330let BaseOpcode = "L2_loadrb_pi"; 10331let Constraints = "$Rx32 = $Rx32in"; 10332} 10333def L2_ploadrbtnew_zomap : HInst< 10334(outs IntRegs:$Rd32), 10335(ins PredRegs:$Pt4, IntRegs:$Rs32), 10336"if ($Pt4.new) $Rd32 = memb($Rs32)", 10337tc_075c8dd8, TypeMAPPING> { 10338let hasNewValue = 1; 10339let opNewValue = 0; 10340let isPseudo = 1; 10341let isCodeGenOnly = 1; 10342} 10343def L2_ploadrdf_io : HInst< 10344(outs DoubleRegs:$Rdd32), 10345(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10346"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10347tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10348let Inst{13-13} = 0b0; 10349let Inst{31-21} = 0b01000101110; 10350let isPredicated = 1; 10351let isPredicatedFalse = 1; 10352let addrMode = BaseImmOffset; 10353let accessSize = DoubleWordAccess; 10354let mayLoad = 1; 10355let BaseOpcode = "L2_loadrd_io"; 10356let CextOpcode = "L2_loadrd"; 10357let isExtendable = 1; 10358let opExtendable = 3; 10359let isExtentSigned = 0; 10360let opExtentBits = 9; 10361let opExtentAlign = 3; 10362} 10363def L2_ploadrdf_pi : HInst< 10364(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10365(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10366"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10367tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10368let Inst{13-11} = 0b101; 10369let Inst{31-21} = 0b10011011110; 10370let isPredicated = 1; 10371let isPredicatedFalse = 1; 10372let addrMode = PostInc; 10373let accessSize = DoubleWordAccess; 10374let mayLoad = 1; 10375let BaseOpcode = "L2_loadrd_pi"; 10376let Constraints = "$Rx32 = $Rx32in"; 10377} 10378def L2_ploadrdf_zomap : HInst< 10379(outs DoubleRegs:$Rdd32), 10380(ins PredRegs:$Pt4, IntRegs:$Rs32), 10381"if (!$Pt4) $Rdd32 = memd($Rs32)", 10382tc_fedb7e19, TypeMAPPING> { 10383let isPseudo = 1; 10384let isCodeGenOnly = 1; 10385} 10386def L2_ploadrdfnew_io : HInst< 10387(outs DoubleRegs:$Rdd32), 10388(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10389"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10390tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10391let Inst{13-13} = 0b0; 10392let Inst{31-21} = 0b01000111110; 10393let isPredicated = 1; 10394let isPredicatedFalse = 1; 10395let addrMode = BaseImmOffset; 10396let accessSize = DoubleWordAccess; 10397let isPredicatedNew = 1; 10398let mayLoad = 1; 10399let BaseOpcode = "L2_loadrd_io"; 10400let CextOpcode = "L2_loadrd"; 10401let isExtendable = 1; 10402let opExtendable = 3; 10403let isExtentSigned = 0; 10404let opExtentBits = 9; 10405let opExtentAlign = 3; 10406} 10407def L2_ploadrdfnew_pi : HInst< 10408(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10409(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10410"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10411tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10412let Inst{13-11} = 0b111; 10413let Inst{31-21} = 0b10011011110; 10414let isPredicated = 1; 10415let isPredicatedFalse = 1; 10416let addrMode = PostInc; 10417let accessSize = DoubleWordAccess; 10418let isPredicatedNew = 1; 10419let mayLoad = 1; 10420let BaseOpcode = "L2_loadrd_pi"; 10421let Constraints = "$Rx32 = $Rx32in"; 10422} 10423def L2_ploadrdfnew_zomap : HInst< 10424(outs DoubleRegs:$Rdd32), 10425(ins PredRegs:$Pt4, IntRegs:$Rs32), 10426"if (!$Pt4.new) $Rdd32 = memd($Rs32)", 10427tc_075c8dd8, TypeMAPPING> { 10428let isPseudo = 1; 10429let isCodeGenOnly = 1; 10430} 10431def L2_ploadrdt_io : HInst< 10432(outs DoubleRegs:$Rdd32), 10433(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10434"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10435tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10436let Inst{13-13} = 0b0; 10437let Inst{31-21} = 0b01000001110; 10438let isPredicated = 1; 10439let addrMode = BaseImmOffset; 10440let accessSize = DoubleWordAccess; 10441let mayLoad = 1; 10442let BaseOpcode = "L2_loadrd_io"; 10443let CextOpcode = "L2_loadrd"; 10444let isExtendable = 1; 10445let opExtendable = 3; 10446let isExtentSigned = 0; 10447let opExtentBits = 9; 10448let opExtentAlign = 3; 10449} 10450def L2_ploadrdt_pi : HInst< 10451(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10452(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10453"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10454tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10455let Inst{13-11} = 0b100; 10456let Inst{31-21} = 0b10011011110; 10457let isPredicated = 1; 10458let addrMode = PostInc; 10459let accessSize = DoubleWordAccess; 10460let mayLoad = 1; 10461let BaseOpcode = "L2_loadrd_pi"; 10462let Constraints = "$Rx32 = $Rx32in"; 10463} 10464def L2_ploadrdt_zomap : HInst< 10465(outs DoubleRegs:$Rdd32), 10466(ins PredRegs:$Pt4, IntRegs:$Rs32), 10467"if ($Pt4) $Rdd32 = memd($Rs32)", 10468tc_fedb7e19, TypeMAPPING> { 10469let isPseudo = 1; 10470let isCodeGenOnly = 1; 10471} 10472def L2_ploadrdtnew_io : HInst< 10473(outs DoubleRegs:$Rdd32), 10474(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10475"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10476tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10477let Inst{13-13} = 0b0; 10478let Inst{31-21} = 0b01000011110; 10479let isPredicated = 1; 10480let addrMode = BaseImmOffset; 10481let accessSize = DoubleWordAccess; 10482let isPredicatedNew = 1; 10483let mayLoad = 1; 10484let BaseOpcode = "L2_loadrd_io"; 10485let CextOpcode = "L2_loadrd"; 10486let isExtendable = 1; 10487let opExtendable = 3; 10488let isExtentSigned = 0; 10489let opExtentBits = 9; 10490let opExtentAlign = 3; 10491} 10492def L2_ploadrdtnew_pi : HInst< 10493(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10494(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10495"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10496tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10497let Inst{13-11} = 0b110; 10498let Inst{31-21} = 0b10011011110; 10499let isPredicated = 1; 10500let addrMode = PostInc; 10501let accessSize = DoubleWordAccess; 10502let isPredicatedNew = 1; 10503let mayLoad = 1; 10504let BaseOpcode = "L2_loadrd_pi"; 10505let Constraints = "$Rx32 = $Rx32in"; 10506} 10507def L2_ploadrdtnew_zomap : HInst< 10508(outs DoubleRegs:$Rdd32), 10509(ins PredRegs:$Pt4, IntRegs:$Rs32), 10510"if ($Pt4.new) $Rdd32 = memd($Rs32)", 10511tc_075c8dd8, TypeMAPPING> { 10512let isPseudo = 1; 10513let isCodeGenOnly = 1; 10514} 10515def L2_ploadrhf_io : HInst< 10516(outs IntRegs:$Rd32), 10517(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10518"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)", 10519tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10520let Inst{13-13} = 0b0; 10521let Inst{31-21} = 0b01000101010; 10522let isPredicated = 1; 10523let isPredicatedFalse = 1; 10524let hasNewValue = 1; 10525let opNewValue = 0; 10526let addrMode = BaseImmOffset; 10527let accessSize = HalfWordAccess; 10528let mayLoad = 1; 10529let BaseOpcode = "L2_loadrh_io"; 10530let CextOpcode = "L2_loadrh"; 10531let isExtendable = 1; 10532let opExtendable = 3; 10533let isExtentSigned = 0; 10534let opExtentBits = 7; 10535let opExtentAlign = 1; 10536} 10537def L2_ploadrhf_pi : HInst< 10538(outs IntRegs:$Rd32, IntRegs:$Rx32), 10539(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10540"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)", 10541tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10542let Inst{13-11} = 0b101; 10543let Inst{31-21} = 0b10011011010; 10544let isPredicated = 1; 10545let isPredicatedFalse = 1; 10546let hasNewValue = 1; 10547let opNewValue = 0; 10548let addrMode = PostInc; 10549let accessSize = HalfWordAccess; 10550let mayLoad = 1; 10551let BaseOpcode = "L2_loadrh_pi"; 10552let Constraints = "$Rx32 = $Rx32in"; 10553} 10554def L2_ploadrhf_zomap : HInst< 10555(outs IntRegs:$Rd32), 10556(ins PredRegs:$Pt4, IntRegs:$Rs32), 10557"if (!$Pt4) $Rd32 = memh($Rs32)", 10558tc_fedb7e19, TypeMAPPING> { 10559let hasNewValue = 1; 10560let opNewValue = 0; 10561let isPseudo = 1; 10562let isCodeGenOnly = 1; 10563} 10564def L2_ploadrhfnew_io : HInst< 10565(outs IntRegs:$Rd32), 10566(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10567"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10568tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10569let Inst{13-13} = 0b0; 10570let Inst{31-21} = 0b01000111010; 10571let isPredicated = 1; 10572let isPredicatedFalse = 1; 10573let hasNewValue = 1; 10574let opNewValue = 0; 10575let addrMode = BaseImmOffset; 10576let accessSize = HalfWordAccess; 10577let isPredicatedNew = 1; 10578let mayLoad = 1; 10579let BaseOpcode = "L2_loadrh_io"; 10580let CextOpcode = "L2_loadrh"; 10581let isExtendable = 1; 10582let opExtendable = 3; 10583let isExtentSigned = 0; 10584let opExtentBits = 7; 10585let opExtentAlign = 1; 10586} 10587def L2_ploadrhfnew_pi : HInst< 10588(outs IntRegs:$Rd32, IntRegs:$Rx32), 10589(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10590"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10591tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10592let Inst{13-11} = 0b111; 10593let Inst{31-21} = 0b10011011010; 10594let isPredicated = 1; 10595let isPredicatedFalse = 1; 10596let hasNewValue = 1; 10597let opNewValue = 0; 10598let addrMode = PostInc; 10599let accessSize = HalfWordAccess; 10600let isPredicatedNew = 1; 10601let mayLoad = 1; 10602let BaseOpcode = "L2_loadrh_pi"; 10603let Constraints = "$Rx32 = $Rx32in"; 10604} 10605def L2_ploadrhfnew_zomap : HInst< 10606(outs IntRegs:$Rd32), 10607(ins PredRegs:$Pt4, IntRegs:$Rs32), 10608"if (!$Pt4.new) $Rd32 = memh($Rs32)", 10609tc_075c8dd8, TypeMAPPING> { 10610let hasNewValue = 1; 10611let opNewValue = 0; 10612let isPseudo = 1; 10613let isCodeGenOnly = 1; 10614} 10615def L2_ploadrht_io : HInst< 10616(outs IntRegs:$Rd32), 10617(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10618"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)", 10619tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10620let Inst{13-13} = 0b0; 10621let Inst{31-21} = 0b01000001010; 10622let isPredicated = 1; 10623let hasNewValue = 1; 10624let opNewValue = 0; 10625let addrMode = BaseImmOffset; 10626let accessSize = HalfWordAccess; 10627let mayLoad = 1; 10628let BaseOpcode = "L2_loadrh_io"; 10629let CextOpcode = "L2_loadrh"; 10630let isExtendable = 1; 10631let opExtendable = 3; 10632let isExtentSigned = 0; 10633let opExtentBits = 7; 10634let opExtentAlign = 1; 10635} 10636def L2_ploadrht_pi : HInst< 10637(outs IntRegs:$Rd32, IntRegs:$Rx32), 10638(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10639"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)", 10640tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10641let Inst{13-11} = 0b100; 10642let Inst{31-21} = 0b10011011010; 10643let isPredicated = 1; 10644let hasNewValue = 1; 10645let opNewValue = 0; 10646let addrMode = PostInc; 10647let accessSize = HalfWordAccess; 10648let mayLoad = 1; 10649let BaseOpcode = "L2_loadrh_pi"; 10650let Constraints = "$Rx32 = $Rx32in"; 10651} 10652def L2_ploadrht_zomap : HInst< 10653(outs IntRegs:$Rd32), 10654(ins PredRegs:$Pt4, IntRegs:$Rs32), 10655"if ($Pt4) $Rd32 = memh($Rs32)", 10656tc_fedb7e19, TypeMAPPING> { 10657let hasNewValue = 1; 10658let opNewValue = 0; 10659let isPseudo = 1; 10660let isCodeGenOnly = 1; 10661} 10662def L2_ploadrhtnew_io : HInst< 10663(outs IntRegs:$Rd32), 10664(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10665"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10666tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10667let Inst{13-13} = 0b0; 10668let Inst{31-21} = 0b01000011010; 10669let isPredicated = 1; 10670let hasNewValue = 1; 10671let opNewValue = 0; 10672let addrMode = BaseImmOffset; 10673let accessSize = HalfWordAccess; 10674let isPredicatedNew = 1; 10675let mayLoad = 1; 10676let BaseOpcode = "L2_loadrh_io"; 10677let CextOpcode = "L2_loadrh"; 10678let isExtendable = 1; 10679let opExtendable = 3; 10680let isExtentSigned = 0; 10681let opExtentBits = 7; 10682let opExtentAlign = 1; 10683} 10684def L2_ploadrhtnew_pi : HInst< 10685(outs IntRegs:$Rd32, IntRegs:$Rx32), 10686(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10687"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10688tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10689let Inst{13-11} = 0b110; 10690let Inst{31-21} = 0b10011011010; 10691let isPredicated = 1; 10692let hasNewValue = 1; 10693let opNewValue = 0; 10694let addrMode = PostInc; 10695let accessSize = HalfWordAccess; 10696let isPredicatedNew = 1; 10697let mayLoad = 1; 10698let BaseOpcode = "L2_loadrh_pi"; 10699let Constraints = "$Rx32 = $Rx32in"; 10700} 10701def L2_ploadrhtnew_zomap : HInst< 10702(outs IntRegs:$Rd32), 10703(ins PredRegs:$Pt4, IntRegs:$Rs32), 10704"if ($Pt4.new) $Rd32 = memh($Rs32)", 10705tc_075c8dd8, TypeMAPPING> { 10706let hasNewValue = 1; 10707let opNewValue = 0; 10708let isPseudo = 1; 10709let isCodeGenOnly = 1; 10710} 10711def L2_ploadrif_io : HInst< 10712(outs IntRegs:$Rd32), 10713(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10714"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)", 10715tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10716let Inst{13-13} = 0b0; 10717let Inst{31-21} = 0b01000101100; 10718let isPredicated = 1; 10719let isPredicatedFalse = 1; 10720let hasNewValue = 1; 10721let opNewValue = 0; 10722let addrMode = BaseImmOffset; 10723let accessSize = WordAccess; 10724let mayLoad = 1; 10725let BaseOpcode = "L2_loadri_io"; 10726let CextOpcode = "L2_loadri"; 10727let isExtendable = 1; 10728let opExtendable = 3; 10729let isExtentSigned = 0; 10730let opExtentBits = 8; 10731let opExtentAlign = 2; 10732} 10733def L2_ploadrif_pi : HInst< 10734(outs IntRegs:$Rd32, IntRegs:$Rx32), 10735(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10736"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)", 10737tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10738let Inst{13-11} = 0b101; 10739let Inst{31-21} = 0b10011011100; 10740let isPredicated = 1; 10741let isPredicatedFalse = 1; 10742let hasNewValue = 1; 10743let opNewValue = 0; 10744let addrMode = PostInc; 10745let accessSize = WordAccess; 10746let mayLoad = 1; 10747let BaseOpcode = "L2_loadri_pi"; 10748let Constraints = "$Rx32 = $Rx32in"; 10749} 10750def L2_ploadrif_zomap : HInst< 10751(outs IntRegs:$Rd32), 10752(ins PredRegs:$Pt4, IntRegs:$Rs32), 10753"if (!$Pt4) $Rd32 = memw($Rs32)", 10754tc_fedb7e19, TypeMAPPING> { 10755let hasNewValue = 1; 10756let opNewValue = 0; 10757let isPseudo = 1; 10758let isCodeGenOnly = 1; 10759} 10760def L2_ploadrifnew_io : HInst< 10761(outs IntRegs:$Rd32), 10762(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10763"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10764tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10765let Inst{13-13} = 0b0; 10766let Inst{31-21} = 0b01000111100; 10767let isPredicated = 1; 10768let isPredicatedFalse = 1; 10769let hasNewValue = 1; 10770let opNewValue = 0; 10771let addrMode = BaseImmOffset; 10772let accessSize = WordAccess; 10773let isPredicatedNew = 1; 10774let mayLoad = 1; 10775let BaseOpcode = "L2_loadri_io"; 10776let CextOpcode = "L2_loadri"; 10777let isExtendable = 1; 10778let opExtendable = 3; 10779let isExtentSigned = 0; 10780let opExtentBits = 8; 10781let opExtentAlign = 2; 10782} 10783def L2_ploadrifnew_pi : HInst< 10784(outs IntRegs:$Rd32, IntRegs:$Rx32), 10785(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10786"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10787tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10788let Inst{13-11} = 0b111; 10789let Inst{31-21} = 0b10011011100; 10790let isPredicated = 1; 10791let isPredicatedFalse = 1; 10792let hasNewValue = 1; 10793let opNewValue = 0; 10794let addrMode = PostInc; 10795let accessSize = WordAccess; 10796let isPredicatedNew = 1; 10797let mayLoad = 1; 10798let BaseOpcode = "L2_loadri_pi"; 10799let Constraints = "$Rx32 = $Rx32in"; 10800} 10801def L2_ploadrifnew_zomap : HInst< 10802(outs IntRegs:$Rd32), 10803(ins PredRegs:$Pt4, IntRegs:$Rs32), 10804"if (!$Pt4.new) $Rd32 = memw($Rs32)", 10805tc_075c8dd8, TypeMAPPING> { 10806let hasNewValue = 1; 10807let opNewValue = 0; 10808let isPseudo = 1; 10809let isCodeGenOnly = 1; 10810} 10811def L2_ploadrit_io : HInst< 10812(outs IntRegs:$Rd32), 10813(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10814"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)", 10815tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10816let Inst{13-13} = 0b0; 10817let Inst{31-21} = 0b01000001100; 10818let isPredicated = 1; 10819let hasNewValue = 1; 10820let opNewValue = 0; 10821let addrMode = BaseImmOffset; 10822let accessSize = WordAccess; 10823let mayLoad = 1; 10824let BaseOpcode = "L2_loadri_io"; 10825let CextOpcode = "L2_loadri"; 10826let isExtendable = 1; 10827let opExtendable = 3; 10828let isExtentSigned = 0; 10829let opExtentBits = 8; 10830let opExtentAlign = 2; 10831} 10832def L2_ploadrit_pi : HInst< 10833(outs IntRegs:$Rd32, IntRegs:$Rx32), 10834(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10835"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)", 10836tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10837let Inst{13-11} = 0b100; 10838let Inst{31-21} = 0b10011011100; 10839let isPredicated = 1; 10840let hasNewValue = 1; 10841let opNewValue = 0; 10842let addrMode = PostInc; 10843let accessSize = WordAccess; 10844let mayLoad = 1; 10845let BaseOpcode = "L2_loadri_pi"; 10846let Constraints = "$Rx32 = $Rx32in"; 10847} 10848def L2_ploadrit_zomap : HInst< 10849(outs IntRegs:$Rd32), 10850(ins PredRegs:$Pt4, IntRegs:$Rs32), 10851"if ($Pt4) $Rd32 = memw($Rs32)", 10852tc_fedb7e19, TypeMAPPING> { 10853let hasNewValue = 1; 10854let opNewValue = 0; 10855let isPseudo = 1; 10856let isCodeGenOnly = 1; 10857} 10858def L2_ploadritnew_io : HInst< 10859(outs IntRegs:$Rd32), 10860(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10861"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10862tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10863let Inst{13-13} = 0b0; 10864let Inst{31-21} = 0b01000011100; 10865let isPredicated = 1; 10866let hasNewValue = 1; 10867let opNewValue = 0; 10868let addrMode = BaseImmOffset; 10869let accessSize = WordAccess; 10870let isPredicatedNew = 1; 10871let mayLoad = 1; 10872let BaseOpcode = "L2_loadri_io"; 10873let CextOpcode = "L2_loadri"; 10874let isExtendable = 1; 10875let opExtendable = 3; 10876let isExtentSigned = 0; 10877let opExtentBits = 8; 10878let opExtentAlign = 2; 10879} 10880def L2_ploadritnew_pi : HInst< 10881(outs IntRegs:$Rd32, IntRegs:$Rx32), 10882(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10883"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10884tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10885let Inst{13-11} = 0b110; 10886let Inst{31-21} = 0b10011011100; 10887let isPredicated = 1; 10888let hasNewValue = 1; 10889let opNewValue = 0; 10890let addrMode = PostInc; 10891let accessSize = WordAccess; 10892let isPredicatedNew = 1; 10893let mayLoad = 1; 10894let BaseOpcode = "L2_loadri_pi"; 10895let Constraints = "$Rx32 = $Rx32in"; 10896} 10897def L2_ploadritnew_zomap : HInst< 10898(outs IntRegs:$Rd32), 10899(ins PredRegs:$Pt4, IntRegs:$Rs32), 10900"if ($Pt4.new) $Rd32 = memw($Rs32)", 10901tc_075c8dd8, TypeMAPPING> { 10902let hasNewValue = 1; 10903let opNewValue = 0; 10904let isPseudo = 1; 10905let isCodeGenOnly = 1; 10906} 10907def L2_ploadrubf_io : HInst< 10908(outs IntRegs:$Rd32), 10909(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10910"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)", 10911tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10912let Inst{13-13} = 0b0; 10913let Inst{31-21} = 0b01000101001; 10914let isPredicated = 1; 10915let isPredicatedFalse = 1; 10916let hasNewValue = 1; 10917let opNewValue = 0; 10918let addrMode = BaseImmOffset; 10919let accessSize = ByteAccess; 10920let mayLoad = 1; 10921let BaseOpcode = "L2_loadrub_io"; 10922let CextOpcode = "L2_loadrub"; 10923let isExtendable = 1; 10924let opExtendable = 3; 10925let isExtentSigned = 0; 10926let opExtentBits = 6; 10927let opExtentAlign = 0; 10928} 10929def L2_ploadrubf_pi : HInst< 10930(outs IntRegs:$Rd32, IntRegs:$Rx32), 10931(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10932"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)", 10933tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10934let Inst{13-11} = 0b101; 10935let Inst{31-21} = 0b10011011001; 10936let isPredicated = 1; 10937let isPredicatedFalse = 1; 10938let hasNewValue = 1; 10939let opNewValue = 0; 10940let addrMode = PostInc; 10941let accessSize = ByteAccess; 10942let mayLoad = 1; 10943let BaseOpcode = "L2_loadrub_pi"; 10944let Constraints = "$Rx32 = $Rx32in"; 10945} 10946def L2_ploadrubf_zomap : HInst< 10947(outs IntRegs:$Rd32), 10948(ins PredRegs:$Pt4, IntRegs:$Rs32), 10949"if (!$Pt4) $Rd32 = memub($Rs32)", 10950tc_fedb7e19, TypeMAPPING> { 10951let hasNewValue = 1; 10952let opNewValue = 0; 10953let isPseudo = 1; 10954let isCodeGenOnly = 1; 10955} 10956def L2_ploadrubfnew_io : HInst< 10957(outs IntRegs:$Rd32), 10958(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10959"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 10960tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10961let Inst{13-13} = 0b0; 10962let Inst{31-21} = 0b01000111001; 10963let isPredicated = 1; 10964let isPredicatedFalse = 1; 10965let hasNewValue = 1; 10966let opNewValue = 0; 10967let addrMode = BaseImmOffset; 10968let accessSize = ByteAccess; 10969let isPredicatedNew = 1; 10970let mayLoad = 1; 10971let BaseOpcode = "L2_loadrub_io"; 10972let CextOpcode = "L2_loadrub"; 10973let isExtendable = 1; 10974let opExtendable = 3; 10975let isExtentSigned = 0; 10976let opExtentBits = 6; 10977let opExtentAlign = 0; 10978} 10979def L2_ploadrubfnew_pi : HInst< 10980(outs IntRegs:$Rd32, IntRegs:$Rx32), 10981(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10982"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 10983tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10984let Inst{13-11} = 0b111; 10985let Inst{31-21} = 0b10011011001; 10986let isPredicated = 1; 10987let isPredicatedFalse = 1; 10988let hasNewValue = 1; 10989let opNewValue = 0; 10990let addrMode = PostInc; 10991let accessSize = ByteAccess; 10992let isPredicatedNew = 1; 10993let mayLoad = 1; 10994let BaseOpcode = "L2_loadrub_pi"; 10995let Constraints = "$Rx32 = $Rx32in"; 10996} 10997def L2_ploadrubfnew_zomap : HInst< 10998(outs IntRegs:$Rd32), 10999(ins PredRegs:$Pt4, IntRegs:$Rs32), 11000"if (!$Pt4.new) $Rd32 = memub($Rs32)", 11001tc_075c8dd8, TypeMAPPING> { 11002let hasNewValue = 1; 11003let opNewValue = 0; 11004let isPseudo = 1; 11005let isCodeGenOnly = 1; 11006} 11007def L2_ploadrubt_io : HInst< 11008(outs IntRegs:$Rd32), 11009(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11010"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)", 11011tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11012let Inst{13-13} = 0b0; 11013let Inst{31-21} = 0b01000001001; 11014let isPredicated = 1; 11015let hasNewValue = 1; 11016let opNewValue = 0; 11017let addrMode = BaseImmOffset; 11018let accessSize = ByteAccess; 11019let mayLoad = 1; 11020let BaseOpcode = "L2_loadrub_io"; 11021let CextOpcode = "L2_loadrub"; 11022let isExtendable = 1; 11023let opExtendable = 3; 11024let isExtentSigned = 0; 11025let opExtentBits = 6; 11026let opExtentAlign = 0; 11027} 11028def L2_ploadrubt_pi : HInst< 11029(outs IntRegs:$Rd32, IntRegs:$Rx32), 11030(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11031"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)", 11032tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 11033let Inst{13-11} = 0b100; 11034let Inst{31-21} = 0b10011011001; 11035let isPredicated = 1; 11036let hasNewValue = 1; 11037let opNewValue = 0; 11038let addrMode = PostInc; 11039let accessSize = ByteAccess; 11040let mayLoad = 1; 11041let BaseOpcode = "L2_loadrub_pi"; 11042let Constraints = "$Rx32 = $Rx32in"; 11043} 11044def L2_ploadrubt_zomap : HInst< 11045(outs IntRegs:$Rd32), 11046(ins PredRegs:$Pt4, IntRegs:$Rs32), 11047"if ($Pt4) $Rd32 = memub($Rs32)", 11048tc_fedb7e19, TypeMAPPING> { 11049let hasNewValue = 1; 11050let opNewValue = 0; 11051let isPseudo = 1; 11052let isCodeGenOnly = 1; 11053} 11054def L2_ploadrubtnew_io : HInst< 11055(outs IntRegs:$Rd32), 11056(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11057"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 11058tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11059let Inst{13-13} = 0b0; 11060let Inst{31-21} = 0b01000011001; 11061let isPredicated = 1; 11062let hasNewValue = 1; 11063let opNewValue = 0; 11064let addrMode = BaseImmOffset; 11065let accessSize = ByteAccess; 11066let isPredicatedNew = 1; 11067let mayLoad = 1; 11068let BaseOpcode = "L2_loadrub_io"; 11069let CextOpcode = "L2_loadrub"; 11070let isExtendable = 1; 11071let opExtendable = 3; 11072let isExtentSigned = 0; 11073let opExtentBits = 6; 11074let opExtentAlign = 0; 11075} 11076def L2_ploadrubtnew_pi : HInst< 11077(outs IntRegs:$Rd32, IntRegs:$Rx32), 11078(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11079"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 11080tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 11081let Inst{13-11} = 0b110; 11082let Inst{31-21} = 0b10011011001; 11083let isPredicated = 1; 11084let hasNewValue = 1; 11085let opNewValue = 0; 11086let addrMode = PostInc; 11087let accessSize = ByteAccess; 11088let isPredicatedNew = 1; 11089let mayLoad = 1; 11090let BaseOpcode = "L2_loadrub_pi"; 11091let Constraints = "$Rx32 = $Rx32in"; 11092} 11093def L2_ploadrubtnew_zomap : HInst< 11094(outs IntRegs:$Rd32), 11095(ins PredRegs:$Pt4, IntRegs:$Rs32), 11096"if ($Pt4.new) $Rd32 = memub($Rs32)", 11097tc_075c8dd8, TypeMAPPING> { 11098let hasNewValue = 1; 11099let opNewValue = 0; 11100let isPseudo = 1; 11101let isCodeGenOnly = 1; 11102} 11103def L2_ploadruhf_io : HInst< 11104(outs IntRegs:$Rd32), 11105(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11106"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11107tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11108let Inst{13-13} = 0b0; 11109let Inst{31-21} = 0b01000101011; 11110let isPredicated = 1; 11111let isPredicatedFalse = 1; 11112let hasNewValue = 1; 11113let opNewValue = 0; 11114let addrMode = BaseImmOffset; 11115let accessSize = HalfWordAccess; 11116let mayLoad = 1; 11117let BaseOpcode = "L2_loadruh_io"; 11118let CextOpcode = "L2_loadruh"; 11119let isExtendable = 1; 11120let opExtendable = 3; 11121let isExtentSigned = 0; 11122let opExtentBits = 7; 11123let opExtentAlign = 1; 11124} 11125def L2_ploadruhf_pi : HInst< 11126(outs IntRegs:$Rd32, IntRegs:$Rx32), 11127(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11128"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11129tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11130let Inst{13-11} = 0b101; 11131let Inst{31-21} = 0b10011011011; 11132let isPredicated = 1; 11133let isPredicatedFalse = 1; 11134let hasNewValue = 1; 11135let opNewValue = 0; 11136let addrMode = PostInc; 11137let accessSize = HalfWordAccess; 11138let mayLoad = 1; 11139let BaseOpcode = "L2_loadruh_pi"; 11140let Constraints = "$Rx32 = $Rx32in"; 11141} 11142def L2_ploadruhf_zomap : HInst< 11143(outs IntRegs:$Rd32), 11144(ins PredRegs:$Pt4, IntRegs:$Rs32), 11145"if (!$Pt4) $Rd32 = memuh($Rs32)", 11146tc_fedb7e19, TypeMAPPING> { 11147let hasNewValue = 1; 11148let opNewValue = 0; 11149let isPseudo = 1; 11150let isCodeGenOnly = 1; 11151} 11152def L2_ploadruhfnew_io : HInst< 11153(outs IntRegs:$Rd32), 11154(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11155"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11156tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11157let Inst{13-13} = 0b0; 11158let Inst{31-21} = 0b01000111011; 11159let isPredicated = 1; 11160let isPredicatedFalse = 1; 11161let hasNewValue = 1; 11162let opNewValue = 0; 11163let addrMode = BaseImmOffset; 11164let accessSize = HalfWordAccess; 11165let isPredicatedNew = 1; 11166let mayLoad = 1; 11167let BaseOpcode = "L2_loadruh_io"; 11168let CextOpcode = "L2_loadruh"; 11169let isExtendable = 1; 11170let opExtendable = 3; 11171let isExtentSigned = 0; 11172let opExtentBits = 7; 11173let opExtentAlign = 1; 11174} 11175def L2_ploadruhfnew_pi : HInst< 11176(outs IntRegs:$Rd32, IntRegs:$Rx32), 11177(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11178"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11179tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11180let Inst{13-11} = 0b111; 11181let Inst{31-21} = 0b10011011011; 11182let isPredicated = 1; 11183let isPredicatedFalse = 1; 11184let hasNewValue = 1; 11185let opNewValue = 0; 11186let addrMode = PostInc; 11187let accessSize = HalfWordAccess; 11188let isPredicatedNew = 1; 11189let mayLoad = 1; 11190let BaseOpcode = "L2_loadruh_pi"; 11191let Constraints = "$Rx32 = $Rx32in"; 11192} 11193def L2_ploadruhfnew_zomap : HInst< 11194(outs IntRegs:$Rd32), 11195(ins PredRegs:$Pt4, IntRegs:$Rs32), 11196"if (!$Pt4.new) $Rd32 = memuh($Rs32)", 11197tc_075c8dd8, TypeMAPPING> { 11198let hasNewValue = 1; 11199let opNewValue = 0; 11200let isPseudo = 1; 11201let isCodeGenOnly = 1; 11202} 11203def L2_ploadruht_io : HInst< 11204(outs IntRegs:$Rd32), 11205(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11206"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11207tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11208let Inst{13-13} = 0b0; 11209let Inst{31-21} = 0b01000001011; 11210let isPredicated = 1; 11211let hasNewValue = 1; 11212let opNewValue = 0; 11213let addrMode = BaseImmOffset; 11214let accessSize = HalfWordAccess; 11215let mayLoad = 1; 11216let BaseOpcode = "L2_loadruh_io"; 11217let CextOpcode = "L2_loadruh"; 11218let isExtendable = 1; 11219let opExtendable = 3; 11220let isExtentSigned = 0; 11221let opExtentBits = 7; 11222let opExtentAlign = 1; 11223} 11224def L2_ploadruht_pi : HInst< 11225(outs IntRegs:$Rd32, IntRegs:$Rx32), 11226(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11227"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11228tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11229let Inst{13-11} = 0b100; 11230let Inst{31-21} = 0b10011011011; 11231let isPredicated = 1; 11232let hasNewValue = 1; 11233let opNewValue = 0; 11234let addrMode = PostInc; 11235let accessSize = HalfWordAccess; 11236let mayLoad = 1; 11237let BaseOpcode = "L2_loadruh_pi"; 11238let Constraints = "$Rx32 = $Rx32in"; 11239} 11240def L2_ploadruht_zomap : HInst< 11241(outs IntRegs:$Rd32), 11242(ins PredRegs:$Pt4, IntRegs:$Rs32), 11243"if ($Pt4) $Rd32 = memuh($Rs32)", 11244tc_fedb7e19, TypeMAPPING> { 11245let hasNewValue = 1; 11246let opNewValue = 0; 11247let isPseudo = 1; 11248let isCodeGenOnly = 1; 11249} 11250def L2_ploadruhtnew_io : HInst< 11251(outs IntRegs:$Rd32), 11252(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11253"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11254tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11255let Inst{13-13} = 0b0; 11256let Inst{31-21} = 0b01000011011; 11257let isPredicated = 1; 11258let hasNewValue = 1; 11259let opNewValue = 0; 11260let addrMode = BaseImmOffset; 11261let accessSize = HalfWordAccess; 11262let isPredicatedNew = 1; 11263let mayLoad = 1; 11264let BaseOpcode = "L2_loadruh_io"; 11265let CextOpcode = "L2_loadruh"; 11266let isExtendable = 1; 11267let opExtendable = 3; 11268let isExtentSigned = 0; 11269let opExtentBits = 7; 11270let opExtentAlign = 1; 11271} 11272def L2_ploadruhtnew_pi : HInst< 11273(outs IntRegs:$Rd32, IntRegs:$Rx32), 11274(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11275"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11276tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11277let Inst{13-11} = 0b110; 11278let Inst{31-21} = 0b10011011011; 11279let isPredicated = 1; 11280let hasNewValue = 1; 11281let opNewValue = 0; 11282let addrMode = PostInc; 11283let accessSize = HalfWordAccess; 11284let isPredicatedNew = 1; 11285let mayLoad = 1; 11286let BaseOpcode = "L2_loadruh_pi"; 11287let Constraints = "$Rx32 = $Rx32in"; 11288} 11289def L2_ploadruhtnew_zomap : HInst< 11290(outs IntRegs:$Rd32), 11291(ins PredRegs:$Pt4, IntRegs:$Rs32), 11292"if ($Pt4.new) $Rd32 = memuh($Rs32)", 11293tc_075c8dd8, TypeMAPPING> { 11294let hasNewValue = 1; 11295let opNewValue = 0; 11296let isPseudo = 1; 11297let isCodeGenOnly = 1; 11298} 11299def L4_add_memopb_io : HInst< 11300(outs), 11301(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11302"memb($Rs32+#$Ii) += $Rt32", 11303tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11304let Inst{6-5} = 0b00; 11305let Inst{13-13} = 0b0; 11306let Inst{31-21} = 0b00111110000; 11307let addrMode = BaseImmOffset; 11308let accessSize = ByteAccess; 11309let mayLoad = 1; 11310let isRestrictNoSlot1Store = 1; 11311let mayStore = 1; 11312let isExtendable = 1; 11313let opExtendable = 1; 11314let isExtentSigned = 0; 11315let opExtentBits = 6; 11316let opExtentAlign = 0; 11317} 11318def L4_add_memopb_zomap : HInst< 11319(outs), 11320(ins IntRegs:$Rs32, IntRegs:$Rt32), 11321"memb($Rs32) += $Rt32", 11322tc_9bcfb2ee, TypeMAPPING> { 11323let isPseudo = 1; 11324let isCodeGenOnly = 1; 11325} 11326def L4_add_memoph_io : HInst< 11327(outs), 11328(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11329"memh($Rs32+#$Ii) += $Rt32", 11330tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11331let Inst{6-5} = 0b00; 11332let Inst{13-13} = 0b0; 11333let Inst{31-21} = 0b00111110001; 11334let addrMode = BaseImmOffset; 11335let accessSize = HalfWordAccess; 11336let mayLoad = 1; 11337let isRestrictNoSlot1Store = 1; 11338let mayStore = 1; 11339let isExtendable = 1; 11340let opExtendable = 1; 11341let isExtentSigned = 0; 11342let opExtentBits = 7; 11343let opExtentAlign = 1; 11344} 11345def L4_add_memoph_zomap : HInst< 11346(outs), 11347(ins IntRegs:$Rs32, IntRegs:$Rt32), 11348"memh($Rs32) += $Rt32", 11349tc_9bcfb2ee, TypeMAPPING> { 11350let isPseudo = 1; 11351let isCodeGenOnly = 1; 11352} 11353def L4_add_memopw_io : HInst< 11354(outs), 11355(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11356"memw($Rs32+#$Ii) += $Rt32", 11357tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11358let Inst{6-5} = 0b00; 11359let Inst{13-13} = 0b0; 11360let Inst{31-21} = 0b00111110010; 11361let addrMode = BaseImmOffset; 11362let accessSize = WordAccess; 11363let mayLoad = 1; 11364let isRestrictNoSlot1Store = 1; 11365let mayStore = 1; 11366let isExtendable = 1; 11367let opExtendable = 1; 11368let isExtentSigned = 0; 11369let opExtentBits = 8; 11370let opExtentAlign = 2; 11371} 11372def L4_add_memopw_zomap : HInst< 11373(outs), 11374(ins IntRegs:$Rs32, IntRegs:$Rt32), 11375"memw($Rs32) += $Rt32", 11376tc_9bcfb2ee, TypeMAPPING> { 11377let isPseudo = 1; 11378let isCodeGenOnly = 1; 11379} 11380def L4_and_memopb_io : HInst< 11381(outs), 11382(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11383"memb($Rs32+#$Ii) &= $Rt32", 11384tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11385let Inst{6-5} = 0b10; 11386let Inst{13-13} = 0b0; 11387let Inst{31-21} = 0b00111110000; 11388let addrMode = BaseImmOffset; 11389let accessSize = ByteAccess; 11390let mayLoad = 1; 11391let isRestrictNoSlot1Store = 1; 11392let mayStore = 1; 11393let isExtendable = 1; 11394let opExtendable = 1; 11395let isExtentSigned = 0; 11396let opExtentBits = 6; 11397let opExtentAlign = 0; 11398} 11399def L4_and_memopb_zomap : HInst< 11400(outs), 11401(ins IntRegs:$Rs32, IntRegs:$Rt32), 11402"memb($Rs32) &= $Rt32", 11403tc_9bcfb2ee, TypeMAPPING> { 11404let isPseudo = 1; 11405let isCodeGenOnly = 1; 11406} 11407def L4_and_memoph_io : HInst< 11408(outs), 11409(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11410"memh($Rs32+#$Ii) &= $Rt32", 11411tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11412let Inst{6-5} = 0b10; 11413let Inst{13-13} = 0b0; 11414let Inst{31-21} = 0b00111110001; 11415let addrMode = BaseImmOffset; 11416let accessSize = HalfWordAccess; 11417let mayLoad = 1; 11418let isRestrictNoSlot1Store = 1; 11419let mayStore = 1; 11420let isExtendable = 1; 11421let opExtendable = 1; 11422let isExtentSigned = 0; 11423let opExtentBits = 7; 11424let opExtentAlign = 1; 11425} 11426def L4_and_memoph_zomap : HInst< 11427(outs), 11428(ins IntRegs:$Rs32, IntRegs:$Rt32), 11429"memh($Rs32) &= $Rt32", 11430tc_9bcfb2ee, TypeMAPPING> { 11431let isPseudo = 1; 11432let isCodeGenOnly = 1; 11433} 11434def L4_and_memopw_io : HInst< 11435(outs), 11436(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11437"memw($Rs32+#$Ii) &= $Rt32", 11438tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11439let Inst{6-5} = 0b10; 11440let Inst{13-13} = 0b0; 11441let Inst{31-21} = 0b00111110010; 11442let addrMode = BaseImmOffset; 11443let accessSize = WordAccess; 11444let mayLoad = 1; 11445let isRestrictNoSlot1Store = 1; 11446let mayStore = 1; 11447let isExtendable = 1; 11448let opExtendable = 1; 11449let isExtentSigned = 0; 11450let opExtentBits = 8; 11451let opExtentAlign = 2; 11452} 11453def L4_and_memopw_zomap : HInst< 11454(outs), 11455(ins IntRegs:$Rs32, IntRegs:$Rt32), 11456"memw($Rs32) &= $Rt32", 11457tc_9bcfb2ee, TypeMAPPING> { 11458let isPseudo = 1; 11459let isCodeGenOnly = 1; 11460} 11461def L4_iadd_memopb_io : HInst< 11462(outs), 11463(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11464"memb($Rs32+#$Ii) += #$II", 11465tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11466let Inst{6-5} = 0b00; 11467let Inst{13-13} = 0b0; 11468let Inst{31-21} = 0b00111111000; 11469let addrMode = BaseImmOffset; 11470let accessSize = ByteAccess; 11471let mayLoad = 1; 11472let isRestrictNoSlot1Store = 1; 11473let mayStore = 1; 11474let isExtendable = 1; 11475let opExtendable = 1; 11476let isExtentSigned = 0; 11477let opExtentBits = 6; 11478let opExtentAlign = 0; 11479} 11480def L4_iadd_memopb_zomap : HInst< 11481(outs), 11482(ins IntRegs:$Rs32, u5_0Imm:$II), 11483"memb($Rs32) += #$II", 11484tc_158aa3f7, TypeMAPPING> { 11485let isPseudo = 1; 11486let isCodeGenOnly = 1; 11487} 11488def L4_iadd_memoph_io : HInst< 11489(outs), 11490(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11491"memh($Rs32+#$Ii) += #$II", 11492tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11493let Inst{6-5} = 0b00; 11494let Inst{13-13} = 0b0; 11495let Inst{31-21} = 0b00111111001; 11496let addrMode = BaseImmOffset; 11497let accessSize = HalfWordAccess; 11498let mayLoad = 1; 11499let isRestrictNoSlot1Store = 1; 11500let mayStore = 1; 11501let isExtendable = 1; 11502let opExtendable = 1; 11503let isExtentSigned = 0; 11504let opExtentBits = 7; 11505let opExtentAlign = 1; 11506} 11507def L4_iadd_memoph_zomap : HInst< 11508(outs), 11509(ins IntRegs:$Rs32, u5_0Imm:$II), 11510"memh($Rs32) += #$II", 11511tc_158aa3f7, TypeMAPPING> { 11512let isPseudo = 1; 11513let isCodeGenOnly = 1; 11514} 11515def L4_iadd_memopw_io : HInst< 11516(outs), 11517(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11518"memw($Rs32+#$Ii) += #$II", 11519tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11520let Inst{6-5} = 0b00; 11521let Inst{13-13} = 0b0; 11522let Inst{31-21} = 0b00111111010; 11523let addrMode = BaseImmOffset; 11524let accessSize = WordAccess; 11525let mayLoad = 1; 11526let isRestrictNoSlot1Store = 1; 11527let mayStore = 1; 11528let isExtendable = 1; 11529let opExtendable = 1; 11530let isExtentSigned = 0; 11531let opExtentBits = 8; 11532let opExtentAlign = 2; 11533} 11534def L4_iadd_memopw_zomap : HInst< 11535(outs), 11536(ins IntRegs:$Rs32, u5_0Imm:$II), 11537"memw($Rs32) += #$II", 11538tc_158aa3f7, TypeMAPPING> { 11539let isPseudo = 1; 11540let isCodeGenOnly = 1; 11541} 11542def L4_iand_memopb_io : HInst< 11543(outs), 11544(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11545"memb($Rs32+#$Ii) = clrbit(#$II)", 11546tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11547let Inst{6-5} = 0b10; 11548let Inst{13-13} = 0b0; 11549let Inst{31-21} = 0b00111111000; 11550let addrMode = BaseImmOffset; 11551let accessSize = ByteAccess; 11552let mayLoad = 1; 11553let isRestrictNoSlot1Store = 1; 11554let mayStore = 1; 11555let isExtendable = 1; 11556let opExtendable = 1; 11557let isExtentSigned = 0; 11558let opExtentBits = 6; 11559let opExtentAlign = 0; 11560} 11561def L4_iand_memopb_zomap : HInst< 11562(outs), 11563(ins IntRegs:$Rs32, u5_0Imm:$II), 11564"memb($Rs32) = clrbit(#$II)", 11565tc_158aa3f7, TypeMAPPING> { 11566let isPseudo = 1; 11567let isCodeGenOnly = 1; 11568} 11569def L4_iand_memoph_io : HInst< 11570(outs), 11571(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11572"memh($Rs32+#$Ii) = clrbit(#$II)", 11573tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11574let Inst{6-5} = 0b10; 11575let Inst{13-13} = 0b0; 11576let Inst{31-21} = 0b00111111001; 11577let addrMode = BaseImmOffset; 11578let accessSize = HalfWordAccess; 11579let mayLoad = 1; 11580let isRestrictNoSlot1Store = 1; 11581let mayStore = 1; 11582let isExtendable = 1; 11583let opExtendable = 1; 11584let isExtentSigned = 0; 11585let opExtentBits = 7; 11586let opExtentAlign = 1; 11587} 11588def L4_iand_memoph_zomap : HInst< 11589(outs), 11590(ins IntRegs:$Rs32, u5_0Imm:$II), 11591"memh($Rs32) = clrbit(#$II)", 11592tc_158aa3f7, TypeMAPPING> { 11593let isPseudo = 1; 11594let isCodeGenOnly = 1; 11595} 11596def L4_iand_memopw_io : HInst< 11597(outs), 11598(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11599"memw($Rs32+#$Ii) = clrbit(#$II)", 11600tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11601let Inst{6-5} = 0b10; 11602let Inst{13-13} = 0b0; 11603let Inst{31-21} = 0b00111111010; 11604let addrMode = BaseImmOffset; 11605let accessSize = WordAccess; 11606let mayLoad = 1; 11607let isRestrictNoSlot1Store = 1; 11608let mayStore = 1; 11609let isExtendable = 1; 11610let opExtendable = 1; 11611let isExtentSigned = 0; 11612let opExtentBits = 8; 11613let opExtentAlign = 2; 11614} 11615def L4_iand_memopw_zomap : HInst< 11616(outs), 11617(ins IntRegs:$Rs32, u5_0Imm:$II), 11618"memw($Rs32) = clrbit(#$II)", 11619tc_158aa3f7, TypeMAPPING> { 11620let isPseudo = 1; 11621let isCodeGenOnly = 1; 11622} 11623def L4_ior_memopb_io : HInst< 11624(outs), 11625(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11626"memb($Rs32+#$Ii) = setbit(#$II)", 11627tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11628let Inst{6-5} = 0b11; 11629let Inst{13-13} = 0b0; 11630let Inst{31-21} = 0b00111111000; 11631let addrMode = BaseImmOffset; 11632let accessSize = ByteAccess; 11633let mayLoad = 1; 11634let isRestrictNoSlot1Store = 1; 11635let mayStore = 1; 11636let isExtendable = 1; 11637let opExtendable = 1; 11638let isExtentSigned = 0; 11639let opExtentBits = 6; 11640let opExtentAlign = 0; 11641} 11642def L4_ior_memopb_zomap : HInst< 11643(outs), 11644(ins IntRegs:$Rs32, u5_0Imm:$II), 11645"memb($Rs32) = setbit(#$II)", 11646tc_158aa3f7, TypeMAPPING> { 11647let isPseudo = 1; 11648let isCodeGenOnly = 1; 11649} 11650def L4_ior_memoph_io : HInst< 11651(outs), 11652(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11653"memh($Rs32+#$Ii) = setbit(#$II)", 11654tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11655let Inst{6-5} = 0b11; 11656let Inst{13-13} = 0b0; 11657let Inst{31-21} = 0b00111111001; 11658let addrMode = BaseImmOffset; 11659let accessSize = HalfWordAccess; 11660let mayLoad = 1; 11661let isRestrictNoSlot1Store = 1; 11662let mayStore = 1; 11663let isExtendable = 1; 11664let opExtendable = 1; 11665let isExtentSigned = 0; 11666let opExtentBits = 7; 11667let opExtentAlign = 1; 11668} 11669def L4_ior_memoph_zomap : HInst< 11670(outs), 11671(ins IntRegs:$Rs32, u5_0Imm:$II), 11672"memh($Rs32) = setbit(#$II)", 11673tc_158aa3f7, TypeMAPPING> { 11674let isPseudo = 1; 11675let isCodeGenOnly = 1; 11676} 11677def L4_ior_memopw_io : HInst< 11678(outs), 11679(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11680"memw($Rs32+#$Ii) = setbit(#$II)", 11681tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11682let Inst{6-5} = 0b11; 11683let Inst{13-13} = 0b0; 11684let Inst{31-21} = 0b00111111010; 11685let addrMode = BaseImmOffset; 11686let accessSize = WordAccess; 11687let mayLoad = 1; 11688let isRestrictNoSlot1Store = 1; 11689let mayStore = 1; 11690let isExtendable = 1; 11691let opExtendable = 1; 11692let isExtentSigned = 0; 11693let opExtentBits = 8; 11694let opExtentAlign = 2; 11695} 11696def L4_ior_memopw_zomap : HInst< 11697(outs), 11698(ins IntRegs:$Rs32, u5_0Imm:$II), 11699"memw($Rs32) = setbit(#$II)", 11700tc_158aa3f7, TypeMAPPING> { 11701let isPseudo = 1; 11702let isCodeGenOnly = 1; 11703} 11704def L4_isub_memopb_io : HInst< 11705(outs), 11706(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11707"memb($Rs32+#$Ii) -= #$II", 11708tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11709let Inst{6-5} = 0b01; 11710let Inst{13-13} = 0b0; 11711let Inst{31-21} = 0b00111111000; 11712let addrMode = BaseImmOffset; 11713let accessSize = ByteAccess; 11714let mayLoad = 1; 11715let isRestrictNoSlot1Store = 1; 11716let mayStore = 1; 11717let isExtendable = 1; 11718let opExtendable = 1; 11719let isExtentSigned = 0; 11720let opExtentBits = 6; 11721let opExtentAlign = 0; 11722} 11723def L4_isub_memopb_zomap : HInst< 11724(outs), 11725(ins IntRegs:$Rs32, u5_0Imm:$II), 11726"memb($Rs32) -= #$II", 11727tc_158aa3f7, TypeMAPPING> { 11728let isPseudo = 1; 11729let isCodeGenOnly = 1; 11730} 11731def L4_isub_memoph_io : HInst< 11732(outs), 11733(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11734"memh($Rs32+#$Ii) -= #$II", 11735tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11736let Inst{6-5} = 0b01; 11737let Inst{13-13} = 0b0; 11738let Inst{31-21} = 0b00111111001; 11739let addrMode = BaseImmOffset; 11740let accessSize = HalfWordAccess; 11741let mayLoad = 1; 11742let isRestrictNoSlot1Store = 1; 11743let mayStore = 1; 11744let isExtendable = 1; 11745let opExtendable = 1; 11746let isExtentSigned = 0; 11747let opExtentBits = 7; 11748let opExtentAlign = 1; 11749} 11750def L4_isub_memoph_zomap : HInst< 11751(outs), 11752(ins IntRegs:$Rs32, u5_0Imm:$II), 11753"memh($Rs32) -= #$II", 11754tc_158aa3f7, TypeMAPPING> { 11755let isPseudo = 1; 11756let isCodeGenOnly = 1; 11757} 11758def L4_isub_memopw_io : HInst< 11759(outs), 11760(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11761"memw($Rs32+#$Ii) -= #$II", 11762tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11763let Inst{6-5} = 0b01; 11764let Inst{13-13} = 0b0; 11765let Inst{31-21} = 0b00111111010; 11766let addrMode = BaseImmOffset; 11767let accessSize = WordAccess; 11768let mayLoad = 1; 11769let isRestrictNoSlot1Store = 1; 11770let mayStore = 1; 11771let isExtendable = 1; 11772let opExtendable = 1; 11773let isExtentSigned = 0; 11774let opExtentBits = 8; 11775let opExtentAlign = 2; 11776} 11777def L4_isub_memopw_zomap : HInst< 11778(outs), 11779(ins IntRegs:$Rs32, u5_0Imm:$II), 11780"memw($Rs32) -= #$II", 11781tc_158aa3f7, TypeMAPPING> { 11782let isPseudo = 1; 11783let isCodeGenOnly = 1; 11784} 11785def L4_loadalignb_ap : HInst< 11786(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11787(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11788"$Ryy32 = memb_fifo($Re32=#$II)", 11789tc_ac65613f, TypeLD>, Enc_f394d3 { 11790let Inst{7-7} = 0b0; 11791let Inst{13-12} = 0b01; 11792let Inst{31-21} = 0b10011010100; 11793let addrMode = AbsoluteSet; 11794let accessSize = ByteAccess; 11795let mayLoad = 1; 11796let isExtended = 1; 11797let DecoderNamespace = "MustExtend"; 11798let isExtendable = 1; 11799let opExtendable = 3; 11800let isExtentSigned = 0; 11801let opExtentBits = 6; 11802let opExtentAlign = 0; 11803let Constraints = "$Ryy32 = $Ryy32in"; 11804} 11805def L4_loadalignb_ur : HInst< 11806(outs DoubleRegs:$Ryy32), 11807(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11808"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)", 11809tc_a32e03e7, TypeLD>, Enc_04c959 { 11810let Inst{12-12} = 0b1; 11811let Inst{31-21} = 0b10011100100; 11812let addrMode = BaseLongOffset; 11813let accessSize = ByteAccess; 11814let mayLoad = 1; 11815let isExtended = 1; 11816let InputType = "imm"; 11817let DecoderNamespace = "MustExtend"; 11818let isExtendable = 1; 11819let opExtendable = 4; 11820let isExtentSigned = 0; 11821let opExtentBits = 6; 11822let opExtentAlign = 0; 11823let Constraints = "$Ryy32 = $Ryy32in"; 11824} 11825def L4_loadalignh_ap : HInst< 11826(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11827(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11828"$Ryy32 = memh_fifo($Re32=#$II)", 11829tc_ac65613f, TypeLD>, Enc_f394d3 { 11830let Inst{7-7} = 0b0; 11831let Inst{13-12} = 0b01; 11832let Inst{31-21} = 0b10011010010; 11833let addrMode = AbsoluteSet; 11834let accessSize = HalfWordAccess; 11835let mayLoad = 1; 11836let isExtended = 1; 11837let DecoderNamespace = "MustExtend"; 11838let isExtendable = 1; 11839let opExtendable = 3; 11840let isExtentSigned = 0; 11841let opExtentBits = 6; 11842let opExtentAlign = 0; 11843let Constraints = "$Ryy32 = $Ryy32in"; 11844} 11845def L4_loadalignh_ur : HInst< 11846(outs DoubleRegs:$Ryy32), 11847(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11848"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)", 11849tc_a32e03e7, TypeLD>, Enc_04c959 { 11850let Inst{12-12} = 0b1; 11851let Inst{31-21} = 0b10011100010; 11852let addrMode = BaseLongOffset; 11853let accessSize = HalfWordAccess; 11854let mayLoad = 1; 11855let isExtended = 1; 11856let InputType = "imm"; 11857let DecoderNamespace = "MustExtend"; 11858let isExtendable = 1; 11859let opExtendable = 4; 11860let isExtentSigned = 0; 11861let opExtentBits = 6; 11862let opExtentAlign = 0; 11863let Constraints = "$Ryy32 = $Ryy32in"; 11864} 11865def L4_loadbsw2_ap : HInst< 11866(outs IntRegs:$Rd32, IntRegs:$Re32), 11867(ins u32_0Imm:$II), 11868"$Rd32 = membh($Re32=#$II)", 11869tc_822c3c68, TypeLD>, Enc_323f2d { 11870let Inst{7-7} = 0b0; 11871let Inst{13-12} = 0b01; 11872let Inst{31-21} = 0b10011010001; 11873let hasNewValue = 1; 11874let opNewValue = 0; 11875let addrMode = AbsoluteSet; 11876let accessSize = HalfWordAccess; 11877let mayLoad = 1; 11878let isExtended = 1; 11879let DecoderNamespace = "MustExtend"; 11880let isExtendable = 1; 11881let opExtendable = 2; 11882let isExtentSigned = 0; 11883let opExtentBits = 6; 11884let opExtentAlign = 0; 11885} 11886def L4_loadbsw2_ur : HInst< 11887(outs IntRegs:$Rd32), 11888(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11889"$Rd32 = membh($Rt32<<#$Ii+#$II)", 11890tc_abfd9a6d, TypeLD>, Enc_4f677b { 11891let Inst{12-12} = 0b1; 11892let Inst{31-21} = 0b10011100001; 11893let hasNewValue = 1; 11894let opNewValue = 0; 11895let addrMode = BaseLongOffset; 11896let accessSize = HalfWordAccess; 11897let mayLoad = 1; 11898let isExtended = 1; 11899let InputType = "imm"; 11900let DecoderNamespace = "MustExtend"; 11901let isExtendable = 1; 11902let opExtendable = 3; 11903let isExtentSigned = 0; 11904let opExtentBits = 6; 11905let opExtentAlign = 0; 11906} 11907def L4_loadbsw4_ap : HInst< 11908(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11909(ins u32_0Imm:$II), 11910"$Rdd32 = membh($Re32=#$II)", 11911tc_822c3c68, TypeLD>, Enc_7fa7f6 { 11912let Inst{7-7} = 0b0; 11913let Inst{13-12} = 0b01; 11914let Inst{31-21} = 0b10011010111; 11915let addrMode = AbsoluteSet; 11916let accessSize = WordAccess; 11917let mayLoad = 1; 11918let isExtended = 1; 11919let DecoderNamespace = "MustExtend"; 11920let isExtendable = 1; 11921let opExtendable = 2; 11922let isExtentSigned = 0; 11923let opExtentBits = 6; 11924let opExtentAlign = 0; 11925} 11926def L4_loadbsw4_ur : HInst< 11927(outs DoubleRegs:$Rdd32), 11928(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11929"$Rdd32 = membh($Rt32<<#$Ii+#$II)", 11930tc_abfd9a6d, TypeLD>, Enc_6185fe { 11931let Inst{12-12} = 0b1; 11932let Inst{31-21} = 0b10011100111; 11933let addrMode = BaseLongOffset; 11934let accessSize = WordAccess; 11935let mayLoad = 1; 11936let isExtended = 1; 11937let InputType = "imm"; 11938let DecoderNamespace = "MustExtend"; 11939let isExtendable = 1; 11940let opExtendable = 3; 11941let isExtentSigned = 0; 11942let opExtentBits = 6; 11943let opExtentAlign = 0; 11944} 11945def L4_loadbzw2_ap : HInst< 11946(outs IntRegs:$Rd32, IntRegs:$Re32), 11947(ins u32_0Imm:$II), 11948"$Rd32 = memubh($Re32=#$II)", 11949tc_822c3c68, TypeLD>, Enc_323f2d { 11950let Inst{7-7} = 0b0; 11951let Inst{13-12} = 0b01; 11952let Inst{31-21} = 0b10011010011; 11953let hasNewValue = 1; 11954let opNewValue = 0; 11955let addrMode = AbsoluteSet; 11956let accessSize = HalfWordAccess; 11957let mayLoad = 1; 11958let isExtended = 1; 11959let DecoderNamespace = "MustExtend"; 11960let isExtendable = 1; 11961let opExtendable = 2; 11962let isExtentSigned = 0; 11963let opExtentBits = 6; 11964let opExtentAlign = 0; 11965} 11966def L4_loadbzw2_ur : HInst< 11967(outs IntRegs:$Rd32), 11968(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11969"$Rd32 = memubh($Rt32<<#$Ii+#$II)", 11970tc_abfd9a6d, TypeLD>, Enc_4f677b { 11971let Inst{12-12} = 0b1; 11972let Inst{31-21} = 0b10011100011; 11973let hasNewValue = 1; 11974let opNewValue = 0; 11975let addrMode = BaseLongOffset; 11976let accessSize = HalfWordAccess; 11977let mayLoad = 1; 11978let isExtended = 1; 11979let InputType = "imm"; 11980let DecoderNamespace = "MustExtend"; 11981let isExtendable = 1; 11982let opExtendable = 3; 11983let isExtentSigned = 0; 11984let opExtentBits = 6; 11985let opExtentAlign = 0; 11986} 11987def L4_loadbzw4_ap : HInst< 11988(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11989(ins u32_0Imm:$II), 11990"$Rdd32 = memubh($Re32=#$II)", 11991tc_822c3c68, TypeLD>, Enc_7fa7f6 { 11992let Inst{7-7} = 0b0; 11993let Inst{13-12} = 0b01; 11994let Inst{31-21} = 0b10011010101; 11995let addrMode = AbsoluteSet; 11996let accessSize = WordAccess; 11997let mayLoad = 1; 11998let isExtended = 1; 11999let DecoderNamespace = "MustExtend"; 12000let isExtendable = 1; 12001let opExtendable = 2; 12002let isExtentSigned = 0; 12003let opExtentBits = 6; 12004let opExtentAlign = 0; 12005} 12006def L4_loadbzw4_ur : HInst< 12007(outs DoubleRegs:$Rdd32), 12008(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12009"$Rdd32 = memubh($Rt32<<#$Ii+#$II)", 12010tc_abfd9a6d, TypeLD>, Enc_6185fe { 12011let Inst{12-12} = 0b1; 12012let Inst{31-21} = 0b10011100101; 12013let addrMode = BaseLongOffset; 12014let accessSize = WordAccess; 12015let mayLoad = 1; 12016let isExtended = 1; 12017let InputType = "imm"; 12018let DecoderNamespace = "MustExtend"; 12019let isExtendable = 1; 12020let opExtendable = 3; 12021let isExtentSigned = 0; 12022let opExtentBits = 6; 12023let opExtentAlign = 0; 12024} 12025def L4_loadd_locked : HInst< 12026(outs DoubleRegs:$Rdd32), 12027(ins IntRegs:$Rs32), 12028"$Rdd32 = memd_locked($Rs32)", 12029tc_64b00d8a, TypeLD>, Enc_3a3d62 { 12030let Inst{13-5} = 0b010000000; 12031let Inst{31-21} = 0b10010010000; 12032let accessSize = DoubleWordAccess; 12033let mayLoad = 1; 12034let isSoloAX = 1; 12035} 12036def L4_loadrb_ap : HInst< 12037(outs IntRegs:$Rd32, IntRegs:$Re32), 12038(ins u32_0Imm:$II), 12039"$Rd32 = memb($Re32=#$II)", 12040tc_822c3c68, TypeLD>, Enc_323f2d { 12041let Inst{7-7} = 0b0; 12042let Inst{13-12} = 0b01; 12043let Inst{31-21} = 0b10011011000; 12044let hasNewValue = 1; 12045let opNewValue = 0; 12046let addrMode = AbsoluteSet; 12047let accessSize = ByteAccess; 12048let mayLoad = 1; 12049let isExtended = 1; 12050let DecoderNamespace = "MustExtend"; 12051let isExtendable = 1; 12052let opExtendable = 2; 12053let isExtentSigned = 0; 12054let opExtentBits = 6; 12055let opExtentAlign = 0; 12056} 12057def L4_loadrb_rr : HInst< 12058(outs IntRegs:$Rd32), 12059(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12060"$Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12061tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12062let Inst{6-5} = 0b00; 12063let Inst{31-21} = 0b00111010000; 12064let hasNewValue = 1; 12065let opNewValue = 0; 12066let addrMode = BaseRegOffset; 12067let accessSize = ByteAccess; 12068let mayLoad = 1; 12069let BaseOpcode = "L4_loadrb_rr"; 12070let CextOpcode = "L2_loadrb"; 12071let InputType = "reg"; 12072let isPredicable = 1; 12073} 12074def L4_loadrb_ur : HInst< 12075(outs IntRegs:$Rd32), 12076(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12077"$Rd32 = memb($Rt32<<#$Ii+#$II)", 12078tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12079let Inst{12-12} = 0b1; 12080let Inst{31-21} = 0b10011101000; 12081let hasNewValue = 1; 12082let opNewValue = 0; 12083let addrMode = BaseLongOffset; 12084let accessSize = ByteAccess; 12085let mayLoad = 1; 12086let isExtended = 1; 12087let CextOpcode = "L2_loadrb"; 12088let InputType = "imm"; 12089let DecoderNamespace = "MustExtend"; 12090let isExtendable = 1; 12091let opExtendable = 3; 12092let isExtentSigned = 0; 12093let opExtentBits = 6; 12094let opExtentAlign = 0; 12095} 12096def L4_loadrd_ap : HInst< 12097(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 12098(ins u32_0Imm:$II), 12099"$Rdd32 = memd($Re32=#$II)", 12100tc_822c3c68, TypeLD>, Enc_7fa7f6 { 12101let Inst{7-7} = 0b0; 12102let Inst{13-12} = 0b01; 12103let Inst{31-21} = 0b10011011110; 12104let addrMode = AbsoluteSet; 12105let accessSize = DoubleWordAccess; 12106let mayLoad = 1; 12107let isExtended = 1; 12108let DecoderNamespace = "MustExtend"; 12109let isExtendable = 1; 12110let opExtendable = 2; 12111let isExtentSigned = 0; 12112let opExtentBits = 6; 12113let opExtentAlign = 0; 12114} 12115def L4_loadrd_rr : HInst< 12116(outs DoubleRegs:$Rdd32), 12117(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12118"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12119tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl { 12120let Inst{6-5} = 0b00; 12121let Inst{31-21} = 0b00111010110; 12122let addrMode = BaseRegOffset; 12123let accessSize = DoubleWordAccess; 12124let mayLoad = 1; 12125let BaseOpcode = "L4_loadrd_rr"; 12126let CextOpcode = "L2_loadrd"; 12127let InputType = "reg"; 12128let isPredicable = 1; 12129} 12130def L4_loadrd_ur : HInst< 12131(outs DoubleRegs:$Rdd32), 12132(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12133"$Rdd32 = memd($Rt32<<#$Ii+#$II)", 12134tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl { 12135let Inst{12-12} = 0b1; 12136let Inst{31-21} = 0b10011101110; 12137let addrMode = BaseLongOffset; 12138let accessSize = DoubleWordAccess; 12139let mayLoad = 1; 12140let isExtended = 1; 12141let CextOpcode = "L2_loadrd"; 12142let InputType = "imm"; 12143let DecoderNamespace = "MustExtend"; 12144let isExtendable = 1; 12145let opExtendable = 3; 12146let isExtentSigned = 0; 12147let opExtentBits = 6; 12148let opExtentAlign = 0; 12149} 12150def L4_loadrh_ap : HInst< 12151(outs IntRegs:$Rd32, IntRegs:$Re32), 12152(ins u32_0Imm:$II), 12153"$Rd32 = memh($Re32=#$II)", 12154tc_822c3c68, TypeLD>, Enc_323f2d { 12155let Inst{7-7} = 0b0; 12156let Inst{13-12} = 0b01; 12157let Inst{31-21} = 0b10011011010; 12158let hasNewValue = 1; 12159let opNewValue = 0; 12160let addrMode = AbsoluteSet; 12161let accessSize = HalfWordAccess; 12162let mayLoad = 1; 12163let isExtended = 1; 12164let DecoderNamespace = "MustExtend"; 12165let isExtendable = 1; 12166let opExtendable = 2; 12167let isExtentSigned = 0; 12168let opExtentBits = 6; 12169let opExtentAlign = 0; 12170} 12171def L4_loadrh_rr : HInst< 12172(outs IntRegs:$Rd32), 12173(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12174"$Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12175tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12176let Inst{6-5} = 0b00; 12177let Inst{31-21} = 0b00111010010; 12178let hasNewValue = 1; 12179let opNewValue = 0; 12180let addrMode = BaseRegOffset; 12181let accessSize = HalfWordAccess; 12182let mayLoad = 1; 12183let BaseOpcode = "L4_loadrh_rr"; 12184let CextOpcode = "L2_loadrh"; 12185let InputType = "reg"; 12186let isPredicable = 1; 12187} 12188def L4_loadrh_ur : HInst< 12189(outs IntRegs:$Rd32), 12190(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12191"$Rd32 = memh($Rt32<<#$Ii+#$II)", 12192tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12193let Inst{12-12} = 0b1; 12194let Inst{31-21} = 0b10011101010; 12195let hasNewValue = 1; 12196let opNewValue = 0; 12197let addrMode = BaseLongOffset; 12198let accessSize = HalfWordAccess; 12199let mayLoad = 1; 12200let isExtended = 1; 12201let CextOpcode = "L2_loadrh"; 12202let InputType = "imm"; 12203let DecoderNamespace = "MustExtend"; 12204let isExtendable = 1; 12205let opExtendable = 3; 12206let isExtentSigned = 0; 12207let opExtentBits = 6; 12208let opExtentAlign = 0; 12209} 12210def L4_loadri_ap : HInst< 12211(outs IntRegs:$Rd32, IntRegs:$Re32), 12212(ins u32_0Imm:$II), 12213"$Rd32 = memw($Re32=#$II)", 12214tc_822c3c68, TypeLD>, Enc_323f2d { 12215let Inst{7-7} = 0b0; 12216let Inst{13-12} = 0b01; 12217let Inst{31-21} = 0b10011011100; 12218let hasNewValue = 1; 12219let opNewValue = 0; 12220let addrMode = AbsoluteSet; 12221let accessSize = WordAccess; 12222let mayLoad = 1; 12223let isExtended = 1; 12224let DecoderNamespace = "MustExtend"; 12225let isExtendable = 1; 12226let opExtendable = 2; 12227let isExtentSigned = 0; 12228let opExtentBits = 6; 12229let opExtentAlign = 0; 12230} 12231def L4_loadri_rr : HInst< 12232(outs IntRegs:$Rd32), 12233(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12234"$Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12235tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12236let Inst{6-5} = 0b00; 12237let Inst{31-21} = 0b00111010100; 12238let hasNewValue = 1; 12239let opNewValue = 0; 12240let addrMode = BaseRegOffset; 12241let accessSize = WordAccess; 12242let mayLoad = 1; 12243let BaseOpcode = "L4_loadri_rr"; 12244let CextOpcode = "L2_loadri"; 12245let InputType = "reg"; 12246let isPredicable = 1; 12247} 12248def L4_loadri_ur : HInst< 12249(outs IntRegs:$Rd32), 12250(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12251"$Rd32 = memw($Rt32<<#$Ii+#$II)", 12252tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12253let Inst{12-12} = 0b1; 12254let Inst{31-21} = 0b10011101100; 12255let hasNewValue = 1; 12256let opNewValue = 0; 12257let addrMode = BaseLongOffset; 12258let accessSize = WordAccess; 12259let mayLoad = 1; 12260let isExtended = 1; 12261let CextOpcode = "L2_loadri"; 12262let InputType = "imm"; 12263let DecoderNamespace = "MustExtend"; 12264let isExtendable = 1; 12265let opExtendable = 3; 12266let isExtentSigned = 0; 12267let opExtentBits = 6; 12268let opExtentAlign = 0; 12269} 12270def L4_loadrub_ap : HInst< 12271(outs IntRegs:$Rd32, IntRegs:$Re32), 12272(ins u32_0Imm:$II), 12273"$Rd32 = memub($Re32=#$II)", 12274tc_822c3c68, TypeLD>, Enc_323f2d { 12275let Inst{7-7} = 0b0; 12276let Inst{13-12} = 0b01; 12277let Inst{31-21} = 0b10011011001; 12278let hasNewValue = 1; 12279let opNewValue = 0; 12280let addrMode = AbsoluteSet; 12281let accessSize = ByteAccess; 12282let mayLoad = 1; 12283let isExtended = 1; 12284let DecoderNamespace = "MustExtend"; 12285let isExtendable = 1; 12286let opExtendable = 2; 12287let isExtentSigned = 0; 12288let opExtentBits = 6; 12289let opExtentAlign = 0; 12290} 12291def L4_loadrub_rr : HInst< 12292(outs IntRegs:$Rd32), 12293(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12294"$Rd32 = memub($Rs32+$Rt32<<#$Ii)", 12295tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12296let Inst{6-5} = 0b00; 12297let Inst{31-21} = 0b00111010001; 12298let hasNewValue = 1; 12299let opNewValue = 0; 12300let addrMode = BaseRegOffset; 12301let accessSize = ByteAccess; 12302let mayLoad = 1; 12303let BaseOpcode = "L4_loadrub_rr"; 12304let CextOpcode = "L2_loadrub"; 12305let InputType = "reg"; 12306let isPredicable = 1; 12307} 12308def L4_loadrub_ur : HInst< 12309(outs IntRegs:$Rd32), 12310(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12311"$Rd32 = memub($Rt32<<#$Ii+#$II)", 12312tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12313let Inst{12-12} = 0b1; 12314let Inst{31-21} = 0b10011101001; 12315let hasNewValue = 1; 12316let opNewValue = 0; 12317let addrMode = BaseLongOffset; 12318let accessSize = ByteAccess; 12319let mayLoad = 1; 12320let isExtended = 1; 12321let CextOpcode = "L2_loadrub"; 12322let InputType = "imm"; 12323let DecoderNamespace = "MustExtend"; 12324let isExtendable = 1; 12325let opExtendable = 3; 12326let isExtentSigned = 0; 12327let opExtentBits = 6; 12328let opExtentAlign = 0; 12329} 12330def L4_loadruh_ap : HInst< 12331(outs IntRegs:$Rd32, IntRegs:$Re32), 12332(ins u32_0Imm:$II), 12333"$Rd32 = memuh($Re32=#$II)", 12334tc_822c3c68, TypeLD>, Enc_323f2d { 12335let Inst{7-7} = 0b0; 12336let Inst{13-12} = 0b01; 12337let Inst{31-21} = 0b10011011011; 12338let hasNewValue = 1; 12339let opNewValue = 0; 12340let addrMode = AbsoluteSet; 12341let accessSize = HalfWordAccess; 12342let mayLoad = 1; 12343let isExtended = 1; 12344let DecoderNamespace = "MustExtend"; 12345let isExtendable = 1; 12346let opExtendable = 2; 12347let isExtentSigned = 0; 12348let opExtentBits = 6; 12349let opExtentAlign = 0; 12350} 12351def L4_loadruh_rr : HInst< 12352(outs IntRegs:$Rd32), 12353(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12354"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 12355tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12356let Inst{6-5} = 0b00; 12357let Inst{31-21} = 0b00111010011; 12358let hasNewValue = 1; 12359let opNewValue = 0; 12360let addrMode = BaseRegOffset; 12361let accessSize = HalfWordAccess; 12362let mayLoad = 1; 12363let BaseOpcode = "L4_loadruh_rr"; 12364let CextOpcode = "L2_loadruh"; 12365let InputType = "reg"; 12366let isPredicable = 1; 12367} 12368def L4_loadruh_ur : HInst< 12369(outs IntRegs:$Rd32), 12370(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12371"$Rd32 = memuh($Rt32<<#$Ii+#$II)", 12372tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12373let Inst{12-12} = 0b1; 12374let Inst{31-21} = 0b10011101011; 12375let hasNewValue = 1; 12376let opNewValue = 0; 12377let addrMode = BaseLongOffset; 12378let accessSize = HalfWordAccess; 12379let mayLoad = 1; 12380let isExtended = 1; 12381let CextOpcode = "L2_loadruh"; 12382let InputType = "imm"; 12383let DecoderNamespace = "MustExtend"; 12384let isExtendable = 1; 12385let opExtendable = 3; 12386let isExtentSigned = 0; 12387let opExtentBits = 6; 12388let opExtentAlign = 0; 12389} 12390def L4_or_memopb_io : HInst< 12391(outs), 12392(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 12393"memb($Rs32+#$Ii) |= $Rt32", 12394tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 12395let Inst{6-5} = 0b11; 12396let Inst{13-13} = 0b0; 12397let Inst{31-21} = 0b00111110000; 12398let addrMode = BaseImmOffset; 12399let accessSize = ByteAccess; 12400let mayLoad = 1; 12401let isRestrictNoSlot1Store = 1; 12402let mayStore = 1; 12403let isExtendable = 1; 12404let opExtendable = 1; 12405let isExtentSigned = 0; 12406let opExtentBits = 6; 12407let opExtentAlign = 0; 12408} 12409def L4_or_memopb_zomap : HInst< 12410(outs), 12411(ins IntRegs:$Rs32, IntRegs:$Rt32), 12412"memb($Rs32) |= $Rt32", 12413tc_9bcfb2ee, TypeMAPPING> { 12414let isPseudo = 1; 12415let isCodeGenOnly = 1; 12416} 12417def L4_or_memoph_io : HInst< 12418(outs), 12419(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 12420"memh($Rs32+#$Ii) |= $Rt32", 12421tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 12422let Inst{6-5} = 0b11; 12423let Inst{13-13} = 0b0; 12424let Inst{31-21} = 0b00111110001; 12425let addrMode = BaseImmOffset; 12426let accessSize = HalfWordAccess; 12427let mayLoad = 1; 12428let isRestrictNoSlot1Store = 1; 12429let mayStore = 1; 12430let isExtendable = 1; 12431let opExtendable = 1; 12432let isExtentSigned = 0; 12433let opExtentBits = 7; 12434let opExtentAlign = 1; 12435} 12436def L4_or_memoph_zomap : HInst< 12437(outs), 12438(ins IntRegs:$Rs32, IntRegs:$Rt32), 12439"memh($Rs32) |= $Rt32", 12440tc_9bcfb2ee, TypeMAPPING> { 12441let isPseudo = 1; 12442let isCodeGenOnly = 1; 12443} 12444def L4_or_memopw_io : HInst< 12445(outs), 12446(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 12447"memw($Rs32+#$Ii) |= $Rt32", 12448tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 12449let Inst{6-5} = 0b11; 12450let Inst{13-13} = 0b0; 12451let Inst{31-21} = 0b00111110010; 12452let addrMode = BaseImmOffset; 12453let accessSize = WordAccess; 12454let mayLoad = 1; 12455let isRestrictNoSlot1Store = 1; 12456let mayStore = 1; 12457let isExtendable = 1; 12458let opExtendable = 1; 12459let isExtentSigned = 0; 12460let opExtentBits = 8; 12461let opExtentAlign = 2; 12462} 12463def L4_or_memopw_zomap : HInst< 12464(outs), 12465(ins IntRegs:$Rs32, IntRegs:$Rt32), 12466"memw($Rs32) |= $Rt32", 12467tc_9bcfb2ee, TypeMAPPING> { 12468let isPseudo = 1; 12469let isCodeGenOnly = 1; 12470} 12471def L4_ploadrbf_abs : HInst< 12472(outs IntRegs:$Rd32), 12473(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12474"if (!$Pt4) $Rd32 = memb(#$Ii)", 12475tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12476let Inst{7-5} = 0b100; 12477let Inst{13-11} = 0b101; 12478let Inst{31-21} = 0b10011111000; 12479let isPredicated = 1; 12480let isPredicatedFalse = 1; 12481let hasNewValue = 1; 12482let opNewValue = 0; 12483let addrMode = Absolute; 12484let accessSize = ByteAccess; 12485let mayLoad = 1; 12486let isExtended = 1; 12487let BaseOpcode = "L4_loadrb_abs"; 12488let CextOpcode = "L2_loadrb"; 12489let DecoderNamespace = "MustExtend"; 12490let isExtendable = 1; 12491let opExtendable = 2; 12492let isExtentSigned = 0; 12493let opExtentBits = 6; 12494let opExtentAlign = 0; 12495} 12496def L4_ploadrbf_rr : HInst< 12497(outs IntRegs:$Rd32), 12498(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12499"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12500tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12501let Inst{31-21} = 0b00110001000; 12502let isPredicated = 1; 12503let isPredicatedFalse = 1; 12504let hasNewValue = 1; 12505let opNewValue = 0; 12506let addrMode = BaseRegOffset; 12507let accessSize = ByteAccess; 12508let mayLoad = 1; 12509let BaseOpcode = "L4_loadrb_rr"; 12510let CextOpcode = "L2_loadrb"; 12511let InputType = "reg"; 12512} 12513def L4_ploadrbfnew_abs : HInst< 12514(outs IntRegs:$Rd32), 12515(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12516"if (!$Pt4.new) $Rd32 = memb(#$Ii)", 12517tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12518let Inst{7-5} = 0b100; 12519let Inst{13-11} = 0b111; 12520let Inst{31-21} = 0b10011111000; 12521let isPredicated = 1; 12522let isPredicatedFalse = 1; 12523let hasNewValue = 1; 12524let opNewValue = 0; 12525let addrMode = Absolute; 12526let accessSize = ByteAccess; 12527let isPredicatedNew = 1; 12528let mayLoad = 1; 12529let isExtended = 1; 12530let BaseOpcode = "L4_loadrb_abs"; 12531let CextOpcode = "L2_loadrb"; 12532let DecoderNamespace = "MustExtend"; 12533let isExtendable = 1; 12534let opExtendable = 2; 12535let isExtentSigned = 0; 12536let opExtentBits = 6; 12537let opExtentAlign = 0; 12538} 12539def L4_ploadrbfnew_rr : HInst< 12540(outs IntRegs:$Rd32), 12541(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12542"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12543tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12544let Inst{31-21} = 0b00110011000; 12545let isPredicated = 1; 12546let isPredicatedFalse = 1; 12547let hasNewValue = 1; 12548let opNewValue = 0; 12549let addrMode = BaseRegOffset; 12550let accessSize = ByteAccess; 12551let isPredicatedNew = 1; 12552let mayLoad = 1; 12553let BaseOpcode = "L4_loadrb_rr"; 12554let CextOpcode = "L2_loadrb"; 12555let InputType = "reg"; 12556} 12557def L4_ploadrbt_abs : HInst< 12558(outs IntRegs:$Rd32), 12559(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12560"if ($Pt4) $Rd32 = memb(#$Ii)", 12561tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12562let Inst{7-5} = 0b100; 12563let Inst{13-11} = 0b100; 12564let Inst{31-21} = 0b10011111000; 12565let isPredicated = 1; 12566let hasNewValue = 1; 12567let opNewValue = 0; 12568let addrMode = Absolute; 12569let accessSize = ByteAccess; 12570let mayLoad = 1; 12571let isExtended = 1; 12572let BaseOpcode = "L4_loadrb_abs"; 12573let CextOpcode = "L2_loadrb"; 12574let DecoderNamespace = "MustExtend"; 12575let isExtendable = 1; 12576let opExtendable = 2; 12577let isExtentSigned = 0; 12578let opExtentBits = 6; 12579let opExtentAlign = 0; 12580} 12581def L4_ploadrbt_rr : HInst< 12582(outs IntRegs:$Rd32), 12583(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12584"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12585tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12586let Inst{31-21} = 0b00110000000; 12587let isPredicated = 1; 12588let hasNewValue = 1; 12589let opNewValue = 0; 12590let addrMode = BaseRegOffset; 12591let accessSize = ByteAccess; 12592let mayLoad = 1; 12593let BaseOpcode = "L4_loadrb_rr"; 12594let CextOpcode = "L2_loadrb"; 12595let InputType = "reg"; 12596} 12597def L4_ploadrbtnew_abs : HInst< 12598(outs IntRegs:$Rd32), 12599(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12600"if ($Pt4.new) $Rd32 = memb(#$Ii)", 12601tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12602let Inst{7-5} = 0b100; 12603let Inst{13-11} = 0b110; 12604let Inst{31-21} = 0b10011111000; 12605let isPredicated = 1; 12606let hasNewValue = 1; 12607let opNewValue = 0; 12608let addrMode = Absolute; 12609let accessSize = ByteAccess; 12610let isPredicatedNew = 1; 12611let mayLoad = 1; 12612let isExtended = 1; 12613let BaseOpcode = "L4_loadrb_abs"; 12614let CextOpcode = "L2_loadrb"; 12615let DecoderNamespace = "MustExtend"; 12616let isExtendable = 1; 12617let opExtendable = 2; 12618let isExtentSigned = 0; 12619let opExtentBits = 6; 12620let opExtentAlign = 0; 12621} 12622def L4_ploadrbtnew_rr : HInst< 12623(outs IntRegs:$Rd32), 12624(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12625"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12626tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12627let Inst{31-21} = 0b00110010000; 12628let isPredicated = 1; 12629let hasNewValue = 1; 12630let opNewValue = 0; 12631let addrMode = BaseRegOffset; 12632let accessSize = ByteAccess; 12633let isPredicatedNew = 1; 12634let mayLoad = 1; 12635let BaseOpcode = "L4_loadrb_rr"; 12636let CextOpcode = "L2_loadrb"; 12637let InputType = "reg"; 12638} 12639def L4_ploadrdf_abs : HInst< 12640(outs DoubleRegs:$Rdd32), 12641(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12642"if (!$Pt4) $Rdd32 = memd(#$Ii)", 12643tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12644let Inst{7-5} = 0b100; 12645let Inst{13-11} = 0b101; 12646let Inst{31-21} = 0b10011111110; 12647let isPredicated = 1; 12648let isPredicatedFalse = 1; 12649let addrMode = Absolute; 12650let accessSize = DoubleWordAccess; 12651let mayLoad = 1; 12652let isExtended = 1; 12653let BaseOpcode = "L4_loadrd_abs"; 12654let CextOpcode = "L2_loadrd"; 12655let DecoderNamespace = "MustExtend"; 12656let isExtendable = 1; 12657let opExtendable = 2; 12658let isExtentSigned = 0; 12659let opExtentBits = 6; 12660let opExtentAlign = 0; 12661} 12662def L4_ploadrdf_rr : HInst< 12663(outs DoubleRegs:$Rdd32), 12664(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12665"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12666tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12667let Inst{31-21} = 0b00110001110; 12668let isPredicated = 1; 12669let isPredicatedFalse = 1; 12670let addrMode = BaseRegOffset; 12671let accessSize = DoubleWordAccess; 12672let mayLoad = 1; 12673let BaseOpcode = "L4_loadrd_rr"; 12674let CextOpcode = "L2_loadrd"; 12675let InputType = "reg"; 12676} 12677def L4_ploadrdfnew_abs : HInst< 12678(outs DoubleRegs:$Rdd32), 12679(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12680"if (!$Pt4.new) $Rdd32 = memd(#$Ii)", 12681tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12682let Inst{7-5} = 0b100; 12683let Inst{13-11} = 0b111; 12684let Inst{31-21} = 0b10011111110; 12685let isPredicated = 1; 12686let isPredicatedFalse = 1; 12687let addrMode = Absolute; 12688let accessSize = DoubleWordAccess; 12689let isPredicatedNew = 1; 12690let mayLoad = 1; 12691let isExtended = 1; 12692let BaseOpcode = "L4_loadrd_abs"; 12693let CextOpcode = "L2_loadrd"; 12694let DecoderNamespace = "MustExtend"; 12695let isExtendable = 1; 12696let opExtendable = 2; 12697let isExtentSigned = 0; 12698let opExtentBits = 6; 12699let opExtentAlign = 0; 12700} 12701def L4_ploadrdfnew_rr : HInst< 12702(outs DoubleRegs:$Rdd32), 12703(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12704"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12705tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12706let Inst{31-21} = 0b00110011110; 12707let isPredicated = 1; 12708let isPredicatedFalse = 1; 12709let addrMode = BaseRegOffset; 12710let accessSize = DoubleWordAccess; 12711let isPredicatedNew = 1; 12712let mayLoad = 1; 12713let BaseOpcode = "L4_loadrd_rr"; 12714let CextOpcode = "L2_loadrd"; 12715let InputType = "reg"; 12716} 12717def L4_ploadrdt_abs : HInst< 12718(outs DoubleRegs:$Rdd32), 12719(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12720"if ($Pt4) $Rdd32 = memd(#$Ii)", 12721tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12722let Inst{7-5} = 0b100; 12723let Inst{13-11} = 0b100; 12724let Inst{31-21} = 0b10011111110; 12725let isPredicated = 1; 12726let addrMode = Absolute; 12727let accessSize = DoubleWordAccess; 12728let mayLoad = 1; 12729let isExtended = 1; 12730let BaseOpcode = "L4_loadrd_abs"; 12731let CextOpcode = "L2_loadrd"; 12732let DecoderNamespace = "MustExtend"; 12733let isExtendable = 1; 12734let opExtendable = 2; 12735let isExtentSigned = 0; 12736let opExtentBits = 6; 12737let opExtentAlign = 0; 12738} 12739def L4_ploadrdt_rr : HInst< 12740(outs DoubleRegs:$Rdd32), 12741(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12742"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12743tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12744let Inst{31-21} = 0b00110000110; 12745let isPredicated = 1; 12746let addrMode = BaseRegOffset; 12747let accessSize = DoubleWordAccess; 12748let mayLoad = 1; 12749let BaseOpcode = "L4_loadrd_rr"; 12750let CextOpcode = "L2_loadrd"; 12751let InputType = "reg"; 12752} 12753def L4_ploadrdtnew_abs : HInst< 12754(outs DoubleRegs:$Rdd32), 12755(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12756"if ($Pt4.new) $Rdd32 = memd(#$Ii)", 12757tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12758let Inst{7-5} = 0b100; 12759let Inst{13-11} = 0b110; 12760let Inst{31-21} = 0b10011111110; 12761let isPredicated = 1; 12762let addrMode = Absolute; 12763let accessSize = DoubleWordAccess; 12764let isPredicatedNew = 1; 12765let mayLoad = 1; 12766let isExtended = 1; 12767let BaseOpcode = "L4_loadrd_abs"; 12768let CextOpcode = "L2_loadrd"; 12769let DecoderNamespace = "MustExtend"; 12770let isExtendable = 1; 12771let opExtendable = 2; 12772let isExtentSigned = 0; 12773let opExtentBits = 6; 12774let opExtentAlign = 0; 12775} 12776def L4_ploadrdtnew_rr : HInst< 12777(outs DoubleRegs:$Rdd32), 12778(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12779"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12780tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12781let Inst{31-21} = 0b00110010110; 12782let isPredicated = 1; 12783let addrMode = BaseRegOffset; 12784let accessSize = DoubleWordAccess; 12785let isPredicatedNew = 1; 12786let mayLoad = 1; 12787let BaseOpcode = "L4_loadrd_rr"; 12788let CextOpcode = "L2_loadrd"; 12789let InputType = "reg"; 12790} 12791def L4_ploadrhf_abs : HInst< 12792(outs IntRegs:$Rd32), 12793(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12794"if (!$Pt4) $Rd32 = memh(#$Ii)", 12795tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12796let Inst{7-5} = 0b100; 12797let Inst{13-11} = 0b101; 12798let Inst{31-21} = 0b10011111010; 12799let isPredicated = 1; 12800let isPredicatedFalse = 1; 12801let hasNewValue = 1; 12802let opNewValue = 0; 12803let addrMode = Absolute; 12804let accessSize = HalfWordAccess; 12805let mayLoad = 1; 12806let isExtended = 1; 12807let BaseOpcode = "L4_loadrh_abs"; 12808let CextOpcode = "L2_loadrh"; 12809let DecoderNamespace = "MustExtend"; 12810let isExtendable = 1; 12811let opExtendable = 2; 12812let isExtentSigned = 0; 12813let opExtentBits = 6; 12814let opExtentAlign = 0; 12815} 12816def L4_ploadrhf_rr : HInst< 12817(outs IntRegs:$Rd32), 12818(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12819"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12820tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12821let Inst{31-21} = 0b00110001010; 12822let isPredicated = 1; 12823let isPredicatedFalse = 1; 12824let hasNewValue = 1; 12825let opNewValue = 0; 12826let addrMode = BaseRegOffset; 12827let accessSize = HalfWordAccess; 12828let mayLoad = 1; 12829let BaseOpcode = "L4_loadrh_rr"; 12830let CextOpcode = "L2_loadrh"; 12831let InputType = "reg"; 12832} 12833def L4_ploadrhfnew_abs : HInst< 12834(outs IntRegs:$Rd32), 12835(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12836"if (!$Pt4.new) $Rd32 = memh(#$Ii)", 12837tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12838let Inst{7-5} = 0b100; 12839let Inst{13-11} = 0b111; 12840let Inst{31-21} = 0b10011111010; 12841let isPredicated = 1; 12842let isPredicatedFalse = 1; 12843let hasNewValue = 1; 12844let opNewValue = 0; 12845let addrMode = Absolute; 12846let accessSize = HalfWordAccess; 12847let isPredicatedNew = 1; 12848let mayLoad = 1; 12849let isExtended = 1; 12850let BaseOpcode = "L4_loadrh_abs"; 12851let CextOpcode = "L2_loadrh"; 12852let DecoderNamespace = "MustExtend"; 12853let isExtendable = 1; 12854let opExtendable = 2; 12855let isExtentSigned = 0; 12856let opExtentBits = 6; 12857let opExtentAlign = 0; 12858} 12859def L4_ploadrhfnew_rr : HInst< 12860(outs IntRegs:$Rd32), 12861(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12862"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12863tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12864let Inst{31-21} = 0b00110011010; 12865let isPredicated = 1; 12866let isPredicatedFalse = 1; 12867let hasNewValue = 1; 12868let opNewValue = 0; 12869let addrMode = BaseRegOffset; 12870let accessSize = HalfWordAccess; 12871let isPredicatedNew = 1; 12872let mayLoad = 1; 12873let BaseOpcode = "L4_loadrh_rr"; 12874let CextOpcode = "L2_loadrh"; 12875let InputType = "reg"; 12876} 12877def L4_ploadrht_abs : HInst< 12878(outs IntRegs:$Rd32), 12879(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12880"if ($Pt4) $Rd32 = memh(#$Ii)", 12881tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12882let Inst{7-5} = 0b100; 12883let Inst{13-11} = 0b100; 12884let Inst{31-21} = 0b10011111010; 12885let isPredicated = 1; 12886let hasNewValue = 1; 12887let opNewValue = 0; 12888let addrMode = Absolute; 12889let accessSize = HalfWordAccess; 12890let mayLoad = 1; 12891let isExtended = 1; 12892let BaseOpcode = "L4_loadrh_abs"; 12893let CextOpcode = "L2_loadrh"; 12894let DecoderNamespace = "MustExtend"; 12895let isExtendable = 1; 12896let opExtendable = 2; 12897let isExtentSigned = 0; 12898let opExtentBits = 6; 12899let opExtentAlign = 0; 12900} 12901def L4_ploadrht_rr : HInst< 12902(outs IntRegs:$Rd32), 12903(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12904"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12905tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12906let Inst{31-21} = 0b00110000010; 12907let isPredicated = 1; 12908let hasNewValue = 1; 12909let opNewValue = 0; 12910let addrMode = BaseRegOffset; 12911let accessSize = HalfWordAccess; 12912let mayLoad = 1; 12913let BaseOpcode = "L4_loadrh_rr"; 12914let CextOpcode = "L2_loadrh"; 12915let InputType = "reg"; 12916} 12917def L4_ploadrhtnew_abs : HInst< 12918(outs IntRegs:$Rd32), 12919(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12920"if ($Pt4.new) $Rd32 = memh(#$Ii)", 12921tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12922let Inst{7-5} = 0b100; 12923let Inst{13-11} = 0b110; 12924let Inst{31-21} = 0b10011111010; 12925let isPredicated = 1; 12926let hasNewValue = 1; 12927let opNewValue = 0; 12928let addrMode = Absolute; 12929let accessSize = HalfWordAccess; 12930let isPredicatedNew = 1; 12931let mayLoad = 1; 12932let isExtended = 1; 12933let BaseOpcode = "L4_loadrh_abs"; 12934let CextOpcode = "L2_loadrh"; 12935let DecoderNamespace = "MustExtend"; 12936let isExtendable = 1; 12937let opExtendable = 2; 12938let isExtentSigned = 0; 12939let opExtentBits = 6; 12940let opExtentAlign = 0; 12941} 12942def L4_ploadrhtnew_rr : HInst< 12943(outs IntRegs:$Rd32), 12944(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12945"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12946tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12947let Inst{31-21} = 0b00110010010; 12948let isPredicated = 1; 12949let hasNewValue = 1; 12950let opNewValue = 0; 12951let addrMode = BaseRegOffset; 12952let accessSize = HalfWordAccess; 12953let isPredicatedNew = 1; 12954let mayLoad = 1; 12955let BaseOpcode = "L4_loadrh_rr"; 12956let CextOpcode = "L2_loadrh"; 12957let InputType = "reg"; 12958} 12959def L4_ploadrif_abs : HInst< 12960(outs IntRegs:$Rd32), 12961(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12962"if (!$Pt4) $Rd32 = memw(#$Ii)", 12963tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12964let Inst{7-5} = 0b100; 12965let Inst{13-11} = 0b101; 12966let Inst{31-21} = 0b10011111100; 12967let isPredicated = 1; 12968let isPredicatedFalse = 1; 12969let hasNewValue = 1; 12970let opNewValue = 0; 12971let addrMode = Absolute; 12972let accessSize = WordAccess; 12973let mayLoad = 1; 12974let isExtended = 1; 12975let BaseOpcode = "L4_loadri_abs"; 12976let CextOpcode = "L2_loadri"; 12977let DecoderNamespace = "MustExtend"; 12978let isExtendable = 1; 12979let opExtendable = 2; 12980let isExtentSigned = 0; 12981let opExtentBits = 6; 12982let opExtentAlign = 0; 12983} 12984def L4_ploadrif_rr : HInst< 12985(outs IntRegs:$Rd32), 12986(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12987"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12988tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12989let Inst{31-21} = 0b00110001100; 12990let isPredicated = 1; 12991let isPredicatedFalse = 1; 12992let hasNewValue = 1; 12993let opNewValue = 0; 12994let addrMode = BaseRegOffset; 12995let accessSize = WordAccess; 12996let mayLoad = 1; 12997let BaseOpcode = "L4_loadri_rr"; 12998let CextOpcode = "L2_loadri"; 12999let InputType = "reg"; 13000} 13001def L4_ploadrifnew_abs : HInst< 13002(outs IntRegs:$Rd32), 13003(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13004"if (!$Pt4.new) $Rd32 = memw(#$Ii)", 13005tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13006let Inst{7-5} = 0b100; 13007let Inst{13-11} = 0b111; 13008let Inst{31-21} = 0b10011111100; 13009let isPredicated = 1; 13010let isPredicatedFalse = 1; 13011let hasNewValue = 1; 13012let opNewValue = 0; 13013let addrMode = Absolute; 13014let accessSize = WordAccess; 13015let isPredicatedNew = 1; 13016let mayLoad = 1; 13017let isExtended = 1; 13018let BaseOpcode = "L4_loadri_abs"; 13019let CextOpcode = "L2_loadri"; 13020let DecoderNamespace = "MustExtend"; 13021let isExtendable = 1; 13022let opExtendable = 2; 13023let isExtentSigned = 0; 13024let opExtentBits = 6; 13025let opExtentAlign = 0; 13026} 13027def L4_ploadrifnew_rr : HInst< 13028(outs IntRegs:$Rd32), 13029(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13030"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13031tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13032let Inst{31-21} = 0b00110011100; 13033let isPredicated = 1; 13034let isPredicatedFalse = 1; 13035let hasNewValue = 1; 13036let opNewValue = 0; 13037let addrMode = BaseRegOffset; 13038let accessSize = WordAccess; 13039let isPredicatedNew = 1; 13040let mayLoad = 1; 13041let BaseOpcode = "L4_loadri_rr"; 13042let CextOpcode = "L2_loadri"; 13043let InputType = "reg"; 13044} 13045def L4_ploadrit_abs : HInst< 13046(outs IntRegs:$Rd32), 13047(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13048"if ($Pt4) $Rd32 = memw(#$Ii)", 13049tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13050let Inst{7-5} = 0b100; 13051let Inst{13-11} = 0b100; 13052let Inst{31-21} = 0b10011111100; 13053let isPredicated = 1; 13054let hasNewValue = 1; 13055let opNewValue = 0; 13056let addrMode = Absolute; 13057let accessSize = WordAccess; 13058let mayLoad = 1; 13059let isExtended = 1; 13060let BaseOpcode = "L4_loadri_abs"; 13061let CextOpcode = "L2_loadri"; 13062let DecoderNamespace = "MustExtend"; 13063let isExtendable = 1; 13064let opExtendable = 2; 13065let isExtentSigned = 0; 13066let opExtentBits = 6; 13067let opExtentAlign = 0; 13068} 13069def L4_ploadrit_rr : HInst< 13070(outs IntRegs:$Rd32), 13071(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13072"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13073tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13074let Inst{31-21} = 0b00110000100; 13075let isPredicated = 1; 13076let hasNewValue = 1; 13077let opNewValue = 0; 13078let addrMode = BaseRegOffset; 13079let accessSize = WordAccess; 13080let mayLoad = 1; 13081let BaseOpcode = "L4_loadri_rr"; 13082let CextOpcode = "L2_loadri"; 13083let InputType = "reg"; 13084} 13085def L4_ploadritnew_abs : HInst< 13086(outs IntRegs:$Rd32), 13087(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13088"if ($Pt4.new) $Rd32 = memw(#$Ii)", 13089tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13090let Inst{7-5} = 0b100; 13091let Inst{13-11} = 0b110; 13092let Inst{31-21} = 0b10011111100; 13093let isPredicated = 1; 13094let hasNewValue = 1; 13095let opNewValue = 0; 13096let addrMode = Absolute; 13097let accessSize = WordAccess; 13098let isPredicatedNew = 1; 13099let mayLoad = 1; 13100let isExtended = 1; 13101let BaseOpcode = "L4_loadri_abs"; 13102let CextOpcode = "L2_loadri"; 13103let DecoderNamespace = "MustExtend"; 13104let isExtendable = 1; 13105let opExtendable = 2; 13106let isExtentSigned = 0; 13107let opExtentBits = 6; 13108let opExtentAlign = 0; 13109} 13110def L4_ploadritnew_rr : HInst< 13111(outs IntRegs:$Rd32), 13112(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13113"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13114tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13115let Inst{31-21} = 0b00110010100; 13116let isPredicated = 1; 13117let hasNewValue = 1; 13118let opNewValue = 0; 13119let addrMode = BaseRegOffset; 13120let accessSize = WordAccess; 13121let isPredicatedNew = 1; 13122let mayLoad = 1; 13123let BaseOpcode = "L4_loadri_rr"; 13124let CextOpcode = "L2_loadri"; 13125let InputType = "reg"; 13126} 13127def L4_ploadrubf_abs : HInst< 13128(outs IntRegs:$Rd32), 13129(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13130"if (!$Pt4) $Rd32 = memub(#$Ii)", 13131tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13132let Inst{7-5} = 0b100; 13133let Inst{13-11} = 0b101; 13134let Inst{31-21} = 0b10011111001; 13135let isPredicated = 1; 13136let isPredicatedFalse = 1; 13137let hasNewValue = 1; 13138let opNewValue = 0; 13139let addrMode = Absolute; 13140let accessSize = ByteAccess; 13141let mayLoad = 1; 13142let isExtended = 1; 13143let BaseOpcode = "L4_loadrub_abs"; 13144let CextOpcode = "L2_loadrub"; 13145let DecoderNamespace = "MustExtend"; 13146let isExtendable = 1; 13147let opExtendable = 2; 13148let isExtentSigned = 0; 13149let opExtentBits = 6; 13150let opExtentAlign = 0; 13151} 13152def L4_ploadrubf_rr : HInst< 13153(outs IntRegs:$Rd32), 13154(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13155"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13156tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13157let Inst{31-21} = 0b00110001001; 13158let isPredicated = 1; 13159let isPredicatedFalse = 1; 13160let hasNewValue = 1; 13161let opNewValue = 0; 13162let addrMode = BaseRegOffset; 13163let accessSize = ByteAccess; 13164let mayLoad = 1; 13165let BaseOpcode = "L4_loadrub_rr"; 13166let CextOpcode = "L2_loadrub"; 13167let InputType = "reg"; 13168} 13169def L4_ploadrubfnew_abs : HInst< 13170(outs IntRegs:$Rd32), 13171(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13172"if (!$Pt4.new) $Rd32 = memub(#$Ii)", 13173tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13174let Inst{7-5} = 0b100; 13175let Inst{13-11} = 0b111; 13176let Inst{31-21} = 0b10011111001; 13177let isPredicated = 1; 13178let isPredicatedFalse = 1; 13179let hasNewValue = 1; 13180let opNewValue = 0; 13181let addrMode = Absolute; 13182let accessSize = ByteAccess; 13183let isPredicatedNew = 1; 13184let mayLoad = 1; 13185let isExtended = 1; 13186let BaseOpcode = "L4_loadrub_abs"; 13187let CextOpcode = "L2_loadrub"; 13188let DecoderNamespace = "MustExtend"; 13189let isExtendable = 1; 13190let opExtendable = 2; 13191let isExtentSigned = 0; 13192let opExtentBits = 6; 13193let opExtentAlign = 0; 13194} 13195def L4_ploadrubfnew_rr : HInst< 13196(outs IntRegs:$Rd32), 13197(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13198"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13199tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13200let Inst{31-21} = 0b00110011001; 13201let isPredicated = 1; 13202let isPredicatedFalse = 1; 13203let hasNewValue = 1; 13204let opNewValue = 0; 13205let addrMode = BaseRegOffset; 13206let accessSize = ByteAccess; 13207let isPredicatedNew = 1; 13208let mayLoad = 1; 13209let BaseOpcode = "L4_loadrub_rr"; 13210let CextOpcode = "L2_loadrub"; 13211let InputType = "reg"; 13212} 13213def L4_ploadrubt_abs : HInst< 13214(outs IntRegs:$Rd32), 13215(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13216"if ($Pt4) $Rd32 = memub(#$Ii)", 13217tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13218let Inst{7-5} = 0b100; 13219let Inst{13-11} = 0b100; 13220let Inst{31-21} = 0b10011111001; 13221let isPredicated = 1; 13222let hasNewValue = 1; 13223let opNewValue = 0; 13224let addrMode = Absolute; 13225let accessSize = ByteAccess; 13226let mayLoad = 1; 13227let isExtended = 1; 13228let BaseOpcode = "L4_loadrub_abs"; 13229let CextOpcode = "L2_loadrub"; 13230let DecoderNamespace = "MustExtend"; 13231let isExtendable = 1; 13232let opExtendable = 2; 13233let isExtentSigned = 0; 13234let opExtentBits = 6; 13235let opExtentAlign = 0; 13236} 13237def L4_ploadrubt_rr : HInst< 13238(outs IntRegs:$Rd32), 13239(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13240"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13241tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13242let Inst{31-21} = 0b00110000001; 13243let isPredicated = 1; 13244let hasNewValue = 1; 13245let opNewValue = 0; 13246let addrMode = BaseRegOffset; 13247let accessSize = ByteAccess; 13248let mayLoad = 1; 13249let BaseOpcode = "L4_loadrub_rr"; 13250let CextOpcode = "L2_loadrub"; 13251let InputType = "reg"; 13252} 13253def L4_ploadrubtnew_abs : HInst< 13254(outs IntRegs:$Rd32), 13255(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13256"if ($Pt4.new) $Rd32 = memub(#$Ii)", 13257tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13258let Inst{7-5} = 0b100; 13259let Inst{13-11} = 0b110; 13260let Inst{31-21} = 0b10011111001; 13261let isPredicated = 1; 13262let hasNewValue = 1; 13263let opNewValue = 0; 13264let addrMode = Absolute; 13265let accessSize = ByteAccess; 13266let isPredicatedNew = 1; 13267let mayLoad = 1; 13268let isExtended = 1; 13269let BaseOpcode = "L4_loadrub_abs"; 13270let CextOpcode = "L2_loadrub"; 13271let DecoderNamespace = "MustExtend"; 13272let isExtendable = 1; 13273let opExtendable = 2; 13274let isExtentSigned = 0; 13275let opExtentBits = 6; 13276let opExtentAlign = 0; 13277} 13278def L4_ploadrubtnew_rr : HInst< 13279(outs IntRegs:$Rd32), 13280(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13281"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13282tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13283let Inst{31-21} = 0b00110010001; 13284let isPredicated = 1; 13285let hasNewValue = 1; 13286let opNewValue = 0; 13287let addrMode = BaseRegOffset; 13288let accessSize = ByteAccess; 13289let isPredicatedNew = 1; 13290let mayLoad = 1; 13291let BaseOpcode = "L4_loadrub_rr"; 13292let CextOpcode = "L2_loadrub"; 13293let InputType = "reg"; 13294} 13295def L4_ploadruhf_abs : HInst< 13296(outs IntRegs:$Rd32), 13297(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13298"if (!$Pt4) $Rd32 = memuh(#$Ii)", 13299tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13300let Inst{7-5} = 0b100; 13301let Inst{13-11} = 0b101; 13302let Inst{31-21} = 0b10011111011; 13303let isPredicated = 1; 13304let isPredicatedFalse = 1; 13305let hasNewValue = 1; 13306let opNewValue = 0; 13307let addrMode = Absolute; 13308let accessSize = HalfWordAccess; 13309let mayLoad = 1; 13310let isExtended = 1; 13311let BaseOpcode = "L4_loadruh_abs"; 13312let CextOpcode = "L2_loadruh"; 13313let DecoderNamespace = "MustExtend"; 13314let isExtendable = 1; 13315let opExtendable = 2; 13316let isExtentSigned = 0; 13317let opExtentBits = 6; 13318let opExtentAlign = 0; 13319} 13320def L4_ploadruhf_rr : HInst< 13321(outs IntRegs:$Rd32), 13322(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13323"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13324tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13325let Inst{31-21} = 0b00110001011; 13326let isPredicated = 1; 13327let isPredicatedFalse = 1; 13328let hasNewValue = 1; 13329let opNewValue = 0; 13330let addrMode = BaseRegOffset; 13331let accessSize = HalfWordAccess; 13332let mayLoad = 1; 13333let BaseOpcode = "L4_loadruh_rr"; 13334let CextOpcode = "L2_loadruh"; 13335let InputType = "reg"; 13336} 13337def L4_ploadruhfnew_abs : HInst< 13338(outs IntRegs:$Rd32), 13339(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13340"if (!$Pt4.new) $Rd32 = memuh(#$Ii)", 13341tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13342let Inst{7-5} = 0b100; 13343let Inst{13-11} = 0b111; 13344let Inst{31-21} = 0b10011111011; 13345let isPredicated = 1; 13346let isPredicatedFalse = 1; 13347let hasNewValue = 1; 13348let opNewValue = 0; 13349let addrMode = Absolute; 13350let accessSize = HalfWordAccess; 13351let isPredicatedNew = 1; 13352let mayLoad = 1; 13353let isExtended = 1; 13354let BaseOpcode = "L4_loadruh_abs"; 13355let CextOpcode = "L2_loadruh"; 13356let DecoderNamespace = "MustExtend"; 13357let isExtendable = 1; 13358let opExtendable = 2; 13359let isExtentSigned = 0; 13360let opExtentBits = 6; 13361let opExtentAlign = 0; 13362} 13363def L4_ploadruhfnew_rr : HInst< 13364(outs IntRegs:$Rd32), 13365(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13366"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13367tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13368let Inst{31-21} = 0b00110011011; 13369let isPredicated = 1; 13370let isPredicatedFalse = 1; 13371let hasNewValue = 1; 13372let opNewValue = 0; 13373let addrMode = BaseRegOffset; 13374let accessSize = HalfWordAccess; 13375let isPredicatedNew = 1; 13376let mayLoad = 1; 13377let BaseOpcode = "L4_loadruh_rr"; 13378let CextOpcode = "L2_loadruh"; 13379let InputType = "reg"; 13380} 13381def L4_ploadruht_abs : HInst< 13382(outs IntRegs:$Rd32), 13383(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13384"if ($Pt4) $Rd32 = memuh(#$Ii)", 13385tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13386let Inst{7-5} = 0b100; 13387let Inst{13-11} = 0b100; 13388let Inst{31-21} = 0b10011111011; 13389let isPredicated = 1; 13390let hasNewValue = 1; 13391let opNewValue = 0; 13392let addrMode = Absolute; 13393let accessSize = HalfWordAccess; 13394let mayLoad = 1; 13395let isExtended = 1; 13396let BaseOpcode = "L4_loadruh_abs"; 13397let CextOpcode = "L2_loadruh"; 13398let DecoderNamespace = "MustExtend"; 13399let isExtendable = 1; 13400let opExtendable = 2; 13401let isExtentSigned = 0; 13402let opExtentBits = 6; 13403let opExtentAlign = 0; 13404} 13405def L4_ploadruht_rr : HInst< 13406(outs IntRegs:$Rd32), 13407(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13408"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13409tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13410let Inst{31-21} = 0b00110000011; 13411let isPredicated = 1; 13412let hasNewValue = 1; 13413let opNewValue = 0; 13414let addrMode = BaseRegOffset; 13415let accessSize = HalfWordAccess; 13416let mayLoad = 1; 13417let BaseOpcode = "L4_loadruh_rr"; 13418let CextOpcode = "L2_loadruh"; 13419let InputType = "reg"; 13420} 13421def L4_ploadruhtnew_abs : HInst< 13422(outs IntRegs:$Rd32), 13423(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13424"if ($Pt4.new) $Rd32 = memuh(#$Ii)", 13425tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13426let Inst{7-5} = 0b100; 13427let Inst{13-11} = 0b110; 13428let Inst{31-21} = 0b10011111011; 13429let isPredicated = 1; 13430let hasNewValue = 1; 13431let opNewValue = 0; 13432let addrMode = Absolute; 13433let accessSize = HalfWordAccess; 13434let isPredicatedNew = 1; 13435let mayLoad = 1; 13436let isExtended = 1; 13437let BaseOpcode = "L4_loadruh_abs"; 13438let CextOpcode = "L2_loadruh"; 13439let DecoderNamespace = "MustExtend"; 13440let isExtendable = 1; 13441let opExtendable = 2; 13442let isExtentSigned = 0; 13443let opExtentBits = 6; 13444let opExtentAlign = 0; 13445} 13446def L4_ploadruhtnew_rr : HInst< 13447(outs IntRegs:$Rd32), 13448(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13449"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13450tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13451let Inst{31-21} = 0b00110010011; 13452let isPredicated = 1; 13453let hasNewValue = 1; 13454let opNewValue = 0; 13455let addrMode = BaseRegOffset; 13456let accessSize = HalfWordAccess; 13457let isPredicatedNew = 1; 13458let mayLoad = 1; 13459let BaseOpcode = "L4_loadruh_rr"; 13460let CextOpcode = "L2_loadruh"; 13461let InputType = "reg"; 13462} 13463def L4_return : HInst< 13464(outs DoubleRegs:$Rdd32), 13465(ins IntRegs:$Rs32), 13466"$Rdd32 = dealloc_return($Rs32):raw", 13467tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel { 13468let Inst{13-5} = 0b000000000; 13469let Inst{31-21} = 0b10010110000; 13470let isTerminator = 1; 13471let isIndirectBranch = 1; 13472let accessSize = DoubleWordAccess; 13473let mayLoad = 1; 13474let cofMax1 = 1; 13475let isRestrictNoSlot1Store = 1; 13476let isReturn = 1; 13477let Uses = [FRAMEKEY]; 13478let Defs = [PC, R29]; 13479let BaseOpcode = "L4_return"; 13480let isBarrier = 1; 13481let isPredicable = 1; 13482let isTaken = 1; 13483} 13484def L4_return_f : HInst< 13485(outs DoubleRegs:$Rdd32), 13486(ins PredRegs:$Pv4, IntRegs:$Rs32), 13487"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13488tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13489let Inst{7-5} = 0b000; 13490let Inst{13-10} = 0b1100; 13491let Inst{31-21} = 0b10010110000; 13492let isPredicated = 1; 13493let isPredicatedFalse = 1; 13494let isTerminator = 1; 13495let isIndirectBranch = 1; 13496let accessSize = DoubleWordAccess; 13497let mayLoad = 1; 13498let cofMax1 = 1; 13499let isRestrictNoSlot1Store = 1; 13500let isReturn = 1; 13501let Uses = [FRAMEKEY]; 13502let Defs = [PC, R29]; 13503let BaseOpcode = "L4_return"; 13504let isTaken = Inst{12}; 13505} 13506def L4_return_fnew_pnt : HInst< 13507(outs DoubleRegs:$Rdd32), 13508(ins PredRegs:$Pv4, IntRegs:$Rs32), 13509"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13510tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13511let Inst{7-5} = 0b000; 13512let Inst{13-10} = 0b1010; 13513let Inst{31-21} = 0b10010110000; 13514let isPredicated = 1; 13515let isPredicatedFalse = 1; 13516let isTerminator = 1; 13517let isIndirectBranch = 1; 13518let accessSize = DoubleWordAccess; 13519let isPredicatedNew = 1; 13520let mayLoad = 1; 13521let cofMax1 = 1; 13522let isRestrictNoSlot1Store = 1; 13523let isReturn = 1; 13524let Uses = [FRAMEKEY]; 13525let Defs = [PC, R29]; 13526let BaseOpcode = "L4_return"; 13527let isTaken = Inst{12}; 13528} 13529def L4_return_fnew_pt : HInst< 13530(outs DoubleRegs:$Rdd32), 13531(ins PredRegs:$Pv4, IntRegs:$Rs32), 13532"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13533tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13534let Inst{7-5} = 0b000; 13535let Inst{13-10} = 0b1110; 13536let Inst{31-21} = 0b10010110000; 13537let isPredicated = 1; 13538let isPredicatedFalse = 1; 13539let isTerminator = 1; 13540let isIndirectBranch = 1; 13541let accessSize = DoubleWordAccess; 13542let isPredicatedNew = 1; 13543let mayLoad = 1; 13544let cofMax1 = 1; 13545let isRestrictNoSlot1Store = 1; 13546let isReturn = 1; 13547let Uses = [FRAMEKEY]; 13548let Defs = [PC, R29]; 13549let BaseOpcode = "L4_return"; 13550let isTaken = Inst{12}; 13551} 13552def L4_return_map_to_raw_f : HInst< 13553(outs), 13554(ins PredRegs:$Pv4), 13555"if (!$Pv4) dealloc_return", 13556tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> { 13557let isPseudo = 1; 13558let isCodeGenOnly = 1; 13559} 13560def L4_return_map_to_raw_fnew_pnt : HInst< 13561(outs), 13562(ins PredRegs:$Pv4), 13563"if (!$Pv4.new) dealloc_return:nt", 13564tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13565let isPseudo = 1; 13566let isCodeGenOnly = 1; 13567} 13568def L4_return_map_to_raw_fnew_pt : HInst< 13569(outs), 13570(ins PredRegs:$Pv4), 13571"if (!$Pv4.new) dealloc_return:t", 13572tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13573let isPseudo = 1; 13574let isCodeGenOnly = 1; 13575} 13576def L4_return_map_to_raw_t : HInst< 13577(outs), 13578(ins PredRegs:$Pv4), 13579"if ($Pv4) dealloc_return", 13580tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> { 13581let isPseudo = 1; 13582let isCodeGenOnly = 1; 13583} 13584def L4_return_map_to_raw_tnew_pnt : HInst< 13585(outs), 13586(ins PredRegs:$Pv4), 13587"if ($Pv4.new) dealloc_return:nt", 13588tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13589let isPseudo = 1; 13590let isCodeGenOnly = 1; 13591} 13592def L4_return_map_to_raw_tnew_pt : HInst< 13593(outs), 13594(ins PredRegs:$Pv4), 13595"if ($Pv4.new) dealloc_return:t", 13596tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13597let isPseudo = 1; 13598let isCodeGenOnly = 1; 13599} 13600def L4_return_t : HInst< 13601(outs DoubleRegs:$Rdd32), 13602(ins PredRegs:$Pv4, IntRegs:$Rs32), 13603"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13604tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13605let Inst{7-5} = 0b000; 13606let Inst{13-10} = 0b0100; 13607let Inst{31-21} = 0b10010110000; 13608let isPredicated = 1; 13609let isTerminator = 1; 13610let isIndirectBranch = 1; 13611let accessSize = DoubleWordAccess; 13612let mayLoad = 1; 13613let cofMax1 = 1; 13614let isRestrictNoSlot1Store = 1; 13615let isReturn = 1; 13616let Uses = [FRAMEKEY]; 13617let Defs = [PC, R29]; 13618let BaseOpcode = "L4_return"; 13619let isTaken = Inst{12}; 13620} 13621def L4_return_tnew_pnt : HInst< 13622(outs DoubleRegs:$Rdd32), 13623(ins PredRegs:$Pv4, IntRegs:$Rs32), 13624"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13625tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13626let Inst{7-5} = 0b000; 13627let Inst{13-10} = 0b0010; 13628let Inst{31-21} = 0b10010110000; 13629let isPredicated = 1; 13630let isTerminator = 1; 13631let isIndirectBranch = 1; 13632let accessSize = DoubleWordAccess; 13633let isPredicatedNew = 1; 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_pt : HInst< 13644(outs DoubleRegs:$Rdd32), 13645(ins PredRegs:$Pv4, IntRegs:$Rs32), 13646"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13647tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13648let Inst{7-5} = 0b000; 13649let Inst{13-10} = 0b0110; 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_sub_memopb_io : HInst< 13666(outs), 13667(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 13668"memb($Rs32+#$Ii) -= $Rt32", 13669tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 13670let Inst{6-5} = 0b01; 13671let Inst{13-13} = 0b0; 13672let Inst{31-21} = 0b00111110000; 13673let addrMode = BaseImmOffset; 13674let accessSize = ByteAccess; 13675let mayLoad = 1; 13676let isRestrictNoSlot1Store = 1; 13677let mayStore = 1; 13678let isExtendable = 1; 13679let opExtendable = 1; 13680let isExtentSigned = 0; 13681let opExtentBits = 6; 13682let opExtentAlign = 0; 13683} 13684def L4_sub_memopb_zomap : HInst< 13685(outs), 13686(ins IntRegs:$Rs32, IntRegs:$Rt32), 13687"memb($Rs32) -= $Rt32", 13688tc_9bcfb2ee, TypeMAPPING> { 13689let isPseudo = 1; 13690let isCodeGenOnly = 1; 13691} 13692def L4_sub_memoph_io : HInst< 13693(outs), 13694(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 13695"memh($Rs32+#$Ii) -= $Rt32", 13696tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 13697let Inst{6-5} = 0b01; 13698let Inst{13-13} = 0b0; 13699let Inst{31-21} = 0b00111110001; 13700let addrMode = BaseImmOffset; 13701let accessSize = HalfWordAccess; 13702let mayLoad = 1; 13703let isRestrictNoSlot1Store = 1; 13704let mayStore = 1; 13705let isExtendable = 1; 13706let opExtendable = 1; 13707let isExtentSigned = 0; 13708let opExtentBits = 7; 13709let opExtentAlign = 1; 13710} 13711def L4_sub_memoph_zomap : HInst< 13712(outs), 13713(ins IntRegs:$Rs32, IntRegs:$Rt32), 13714"memh($Rs32) -= $Rt32", 13715tc_9bcfb2ee, TypeMAPPING> { 13716let isPseudo = 1; 13717let isCodeGenOnly = 1; 13718} 13719def L4_sub_memopw_io : HInst< 13720(outs), 13721(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 13722"memw($Rs32+#$Ii) -= $Rt32", 13723tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 13724let Inst{6-5} = 0b01; 13725let Inst{13-13} = 0b0; 13726let Inst{31-21} = 0b00111110010; 13727let addrMode = BaseImmOffset; 13728let accessSize = WordAccess; 13729let mayLoad = 1; 13730let isRestrictNoSlot1Store = 1; 13731let mayStore = 1; 13732let isExtendable = 1; 13733let opExtendable = 1; 13734let isExtentSigned = 0; 13735let opExtentBits = 8; 13736let opExtentAlign = 2; 13737} 13738def L4_sub_memopw_zomap : HInst< 13739(outs), 13740(ins IntRegs:$Rs32, IntRegs:$Rt32), 13741"memw($Rs32) -= $Rt32", 13742tc_9bcfb2ee, TypeMAPPING> { 13743let isPseudo = 1; 13744let isCodeGenOnly = 1; 13745} 13746def L6_deallocframe_map_to_raw : HInst< 13747(outs), 13748(ins), 13749"deallocframe", 13750tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> { 13751let isPseudo = 1; 13752let isCodeGenOnly = 1; 13753} 13754def L6_memcpy : HInst< 13755(outs), 13756(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2), 13757"memcpy($Rs32,$Rt32,$Mu2)", 13758tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> { 13759let Inst{7-0} = 0b01000000; 13760let Inst{31-21} = 0b10010010000; 13761let mayLoad = 1; 13762let isSolo = 1; 13763let mayStore = 1; 13764} 13765def L6_return_map_to_raw : HInst< 13766(outs), 13767(ins), 13768"dealloc_return", 13769tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> { 13770let isPseudo = 1; 13771let isCodeGenOnly = 1; 13772} 13773def M2_acci : HInst< 13774(outs IntRegs:$Rx32), 13775(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13776"$Rx32 += add($Rs32,$Rt32)", 13777tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel { 13778let Inst{7-5} = 0b001; 13779let Inst{13-13} = 0b0; 13780let Inst{31-21} = 0b11101111000; 13781let hasNewValue = 1; 13782let opNewValue = 0; 13783let prefersSlot3 = 1; 13784let CextOpcode = "M2_acci"; 13785let InputType = "reg"; 13786let Constraints = "$Rx32 = $Rx32in"; 13787} 13788def M2_accii : HInst< 13789(outs IntRegs:$Rx32), 13790(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 13791"$Rx32 += add($Rs32,#$Ii)", 13792tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel { 13793let Inst{13-13} = 0b0; 13794let Inst{31-21} = 0b11100010000; 13795let hasNewValue = 1; 13796let opNewValue = 0; 13797let prefersSlot3 = 1; 13798let CextOpcode = "M2_acci"; 13799let InputType = "imm"; 13800let isExtendable = 1; 13801let opExtendable = 3; 13802let isExtentSigned = 1; 13803let opExtentBits = 8; 13804let opExtentAlign = 0; 13805let Constraints = "$Rx32 = $Rx32in"; 13806} 13807def M2_cmaci_s0 : HInst< 13808(outs DoubleRegs:$Rxx32), 13809(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13810"$Rxx32 += cmpyi($Rs32,$Rt32)", 13811tc_7f8ae742, TypeM>, Enc_61f0b0 { 13812let Inst{7-5} = 0b001; 13813let Inst{13-13} = 0b0; 13814let Inst{31-21} = 0b11100111000; 13815let prefersSlot3 = 1; 13816let Constraints = "$Rxx32 = $Rxx32in"; 13817} 13818def M2_cmacr_s0 : HInst< 13819(outs DoubleRegs:$Rxx32), 13820(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13821"$Rxx32 += cmpyr($Rs32,$Rt32)", 13822tc_7f8ae742, TypeM>, Enc_61f0b0 { 13823let Inst{7-5} = 0b010; 13824let Inst{13-13} = 0b0; 13825let Inst{31-21} = 0b11100111000; 13826let prefersSlot3 = 1; 13827let Constraints = "$Rxx32 = $Rxx32in"; 13828} 13829def M2_cmacs_s0 : HInst< 13830(outs DoubleRegs:$Rxx32), 13831(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13832"$Rxx32 += cmpy($Rs32,$Rt32):sat", 13833tc_7f8ae742, TypeM>, Enc_61f0b0 { 13834let Inst{7-5} = 0b110; 13835let Inst{13-13} = 0b0; 13836let Inst{31-21} = 0b11100111000; 13837let prefersSlot3 = 1; 13838let Defs = [USR_OVF]; 13839let Constraints = "$Rxx32 = $Rxx32in"; 13840} 13841def M2_cmacs_s1 : HInst< 13842(outs DoubleRegs:$Rxx32), 13843(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13844"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat", 13845tc_7f8ae742, TypeM>, Enc_61f0b0 { 13846let Inst{7-5} = 0b110; 13847let Inst{13-13} = 0b0; 13848let Inst{31-21} = 0b11100111100; 13849let prefersSlot3 = 1; 13850let Defs = [USR_OVF]; 13851let Constraints = "$Rxx32 = $Rxx32in"; 13852} 13853def M2_cmacsc_s0 : HInst< 13854(outs DoubleRegs:$Rxx32), 13855(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13856"$Rxx32 += cmpy($Rs32,$Rt32*):sat", 13857tc_7f8ae742, TypeM>, Enc_61f0b0 { 13858let Inst{7-5} = 0b110; 13859let Inst{13-13} = 0b0; 13860let Inst{31-21} = 0b11100111010; 13861let prefersSlot3 = 1; 13862let Defs = [USR_OVF]; 13863let Constraints = "$Rxx32 = $Rxx32in"; 13864} 13865def M2_cmacsc_s1 : HInst< 13866(outs DoubleRegs:$Rxx32), 13867(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13868"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat", 13869tc_7f8ae742, TypeM>, Enc_61f0b0 { 13870let Inst{7-5} = 0b110; 13871let Inst{13-13} = 0b0; 13872let Inst{31-21} = 0b11100111110; 13873let prefersSlot3 = 1; 13874let Defs = [USR_OVF]; 13875let Constraints = "$Rxx32 = $Rxx32in"; 13876} 13877def M2_cmpyi_s0 : HInst< 13878(outs DoubleRegs:$Rdd32), 13879(ins IntRegs:$Rs32, IntRegs:$Rt32), 13880"$Rdd32 = cmpyi($Rs32,$Rt32)", 13881tc_c21d7447, TypeM>, Enc_be32a5 { 13882let Inst{7-5} = 0b001; 13883let Inst{13-13} = 0b0; 13884let Inst{31-21} = 0b11100101000; 13885let prefersSlot3 = 1; 13886} 13887def M2_cmpyr_s0 : HInst< 13888(outs DoubleRegs:$Rdd32), 13889(ins IntRegs:$Rs32, IntRegs:$Rt32), 13890"$Rdd32 = cmpyr($Rs32,$Rt32)", 13891tc_c21d7447, TypeM>, Enc_be32a5 { 13892let Inst{7-5} = 0b010; 13893let Inst{13-13} = 0b0; 13894let Inst{31-21} = 0b11100101000; 13895let prefersSlot3 = 1; 13896} 13897def M2_cmpyrs_s0 : HInst< 13898(outs IntRegs:$Rd32), 13899(ins IntRegs:$Rs32, IntRegs:$Rt32), 13900"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat", 13901tc_c21d7447, TypeM>, Enc_5ab2be { 13902let Inst{7-5} = 0b110; 13903let Inst{13-13} = 0b0; 13904let Inst{31-21} = 0b11101101001; 13905let hasNewValue = 1; 13906let opNewValue = 0; 13907let prefersSlot3 = 1; 13908let Defs = [USR_OVF]; 13909} 13910def M2_cmpyrs_s1 : HInst< 13911(outs IntRegs:$Rd32), 13912(ins IntRegs:$Rs32, IntRegs:$Rt32), 13913"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat", 13914tc_c21d7447, TypeM>, Enc_5ab2be { 13915let Inst{7-5} = 0b110; 13916let Inst{13-13} = 0b0; 13917let Inst{31-21} = 0b11101101101; 13918let hasNewValue = 1; 13919let opNewValue = 0; 13920let prefersSlot3 = 1; 13921let Defs = [USR_OVF]; 13922} 13923def M2_cmpyrsc_s0 : HInst< 13924(outs IntRegs:$Rd32), 13925(ins IntRegs:$Rs32, IntRegs:$Rt32), 13926"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat", 13927tc_c21d7447, TypeM>, Enc_5ab2be { 13928let Inst{7-5} = 0b110; 13929let Inst{13-13} = 0b0; 13930let Inst{31-21} = 0b11101101011; 13931let hasNewValue = 1; 13932let opNewValue = 0; 13933let prefersSlot3 = 1; 13934let Defs = [USR_OVF]; 13935} 13936def M2_cmpyrsc_s1 : HInst< 13937(outs IntRegs:$Rd32), 13938(ins IntRegs:$Rs32, IntRegs:$Rt32), 13939"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat", 13940tc_c21d7447, TypeM>, Enc_5ab2be { 13941let Inst{7-5} = 0b110; 13942let Inst{13-13} = 0b0; 13943let Inst{31-21} = 0b11101101111; 13944let hasNewValue = 1; 13945let opNewValue = 0; 13946let prefersSlot3 = 1; 13947let Defs = [USR_OVF]; 13948} 13949def M2_cmpys_s0 : HInst< 13950(outs DoubleRegs:$Rdd32), 13951(ins IntRegs:$Rs32, IntRegs:$Rt32), 13952"$Rdd32 = cmpy($Rs32,$Rt32):sat", 13953tc_c21d7447, TypeM>, Enc_be32a5 { 13954let Inst{7-5} = 0b110; 13955let Inst{13-13} = 0b0; 13956let Inst{31-21} = 0b11100101000; 13957let prefersSlot3 = 1; 13958let Defs = [USR_OVF]; 13959} 13960def M2_cmpys_s1 : HInst< 13961(outs DoubleRegs:$Rdd32), 13962(ins IntRegs:$Rs32, IntRegs:$Rt32), 13963"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat", 13964tc_c21d7447, TypeM>, Enc_be32a5 { 13965let Inst{7-5} = 0b110; 13966let Inst{13-13} = 0b0; 13967let Inst{31-21} = 0b11100101100; 13968let prefersSlot3 = 1; 13969let Defs = [USR_OVF]; 13970} 13971def M2_cmpysc_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} = 0b11100101010; 13979let prefersSlot3 = 1; 13980let Defs = [USR_OVF]; 13981} 13982def M2_cmpysc_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} = 0b11100101110; 13990let prefersSlot3 = 1; 13991let Defs = [USR_OVF]; 13992} 13993def M2_cnacs_s0 : HInst< 13994(outs DoubleRegs:$Rxx32), 13995(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13996"$Rxx32 -= cmpy($Rs32,$Rt32):sat", 13997tc_7f8ae742, TypeM>, Enc_61f0b0 { 13998let Inst{7-5} = 0b111; 13999let Inst{13-13} = 0b0; 14000let Inst{31-21} = 0b11100111000; 14001let prefersSlot3 = 1; 14002let Defs = [USR_OVF]; 14003let Constraints = "$Rxx32 = $Rxx32in"; 14004} 14005def M2_cnacs_s1 : HInst< 14006(outs DoubleRegs:$Rxx32), 14007(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14008"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat", 14009tc_7f8ae742, TypeM>, Enc_61f0b0 { 14010let Inst{7-5} = 0b111; 14011let Inst{13-13} = 0b0; 14012let Inst{31-21} = 0b11100111100; 14013let prefersSlot3 = 1; 14014let Defs = [USR_OVF]; 14015let Constraints = "$Rxx32 = $Rxx32in"; 14016} 14017def M2_cnacsc_s0 : HInst< 14018(outs DoubleRegs:$Rxx32), 14019(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14020"$Rxx32 -= cmpy($Rs32,$Rt32*):sat", 14021tc_7f8ae742, TypeM>, Enc_61f0b0 { 14022let Inst{7-5} = 0b111; 14023let Inst{13-13} = 0b0; 14024let Inst{31-21} = 0b11100111010; 14025let prefersSlot3 = 1; 14026let Defs = [USR_OVF]; 14027let Constraints = "$Rxx32 = $Rxx32in"; 14028} 14029def M2_cnacsc_s1 : HInst< 14030(outs DoubleRegs:$Rxx32), 14031(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14032"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat", 14033tc_7f8ae742, TypeM>, Enc_61f0b0 { 14034let Inst{7-5} = 0b111; 14035let Inst{13-13} = 0b0; 14036let Inst{31-21} = 0b11100111110; 14037let prefersSlot3 = 1; 14038let Defs = [USR_OVF]; 14039let Constraints = "$Rxx32 = $Rxx32in"; 14040} 14041def M2_dpmpyss_acc_s0 : HInst< 14042(outs DoubleRegs:$Rxx32), 14043(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14044"$Rxx32 += mpy($Rs32,$Rt32)", 14045tc_7f8ae742, TypeM>, Enc_61f0b0 { 14046let Inst{7-5} = 0b000; 14047let Inst{13-13} = 0b0; 14048let Inst{31-21} = 0b11100111000; 14049let prefersSlot3 = 1; 14050let Constraints = "$Rxx32 = $Rxx32in"; 14051} 14052def M2_dpmpyss_nac_s0 : HInst< 14053(outs DoubleRegs:$Rxx32), 14054(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14055"$Rxx32 -= mpy($Rs32,$Rt32)", 14056tc_7f8ae742, TypeM>, Enc_61f0b0 { 14057let Inst{7-5} = 0b000; 14058let Inst{13-13} = 0b0; 14059let Inst{31-21} = 0b11100111001; 14060let prefersSlot3 = 1; 14061let Constraints = "$Rxx32 = $Rxx32in"; 14062} 14063def M2_dpmpyss_rnd_s0 : HInst< 14064(outs IntRegs:$Rd32), 14065(ins IntRegs:$Rs32, IntRegs:$Rt32), 14066"$Rd32 = mpy($Rs32,$Rt32):rnd", 14067tc_c21d7447, TypeM>, Enc_5ab2be { 14068let Inst{7-5} = 0b001; 14069let Inst{13-13} = 0b0; 14070let Inst{31-21} = 0b11101101001; 14071let hasNewValue = 1; 14072let opNewValue = 0; 14073let prefersSlot3 = 1; 14074} 14075def M2_dpmpyss_s0 : HInst< 14076(outs DoubleRegs:$Rdd32), 14077(ins IntRegs:$Rs32, IntRegs:$Rt32), 14078"$Rdd32 = mpy($Rs32,$Rt32)", 14079tc_c21d7447, TypeM>, Enc_be32a5 { 14080let Inst{7-5} = 0b000; 14081let Inst{13-13} = 0b0; 14082let Inst{31-21} = 0b11100101000; 14083let prefersSlot3 = 1; 14084} 14085def M2_dpmpyuu_acc_s0 : HInst< 14086(outs DoubleRegs:$Rxx32), 14087(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14088"$Rxx32 += mpyu($Rs32,$Rt32)", 14089tc_7f8ae742, TypeM>, Enc_61f0b0 { 14090let Inst{7-5} = 0b000; 14091let Inst{13-13} = 0b0; 14092let Inst{31-21} = 0b11100111010; 14093let prefersSlot3 = 1; 14094let Constraints = "$Rxx32 = $Rxx32in"; 14095} 14096def M2_dpmpyuu_nac_s0 : HInst< 14097(outs DoubleRegs:$Rxx32), 14098(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14099"$Rxx32 -= mpyu($Rs32,$Rt32)", 14100tc_7f8ae742, TypeM>, Enc_61f0b0 { 14101let Inst{7-5} = 0b000; 14102let Inst{13-13} = 0b0; 14103let Inst{31-21} = 0b11100111011; 14104let prefersSlot3 = 1; 14105let Constraints = "$Rxx32 = $Rxx32in"; 14106} 14107def M2_dpmpyuu_s0 : HInst< 14108(outs DoubleRegs:$Rdd32), 14109(ins IntRegs:$Rs32, IntRegs:$Rt32), 14110"$Rdd32 = mpyu($Rs32,$Rt32)", 14111tc_c21d7447, TypeM>, Enc_be32a5 { 14112let Inst{7-5} = 0b000; 14113let Inst{13-13} = 0b0; 14114let Inst{31-21} = 0b11100101010; 14115let prefersSlot3 = 1; 14116} 14117def M2_hmmpyh_rs1 : HInst< 14118(outs IntRegs:$Rd32), 14119(ins IntRegs:$Rs32, IntRegs:$Rt32), 14120"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat", 14121tc_c21d7447, TypeM>, Enc_5ab2be { 14122let Inst{7-5} = 0b100; 14123let Inst{13-13} = 0b0; 14124let Inst{31-21} = 0b11101101101; 14125let hasNewValue = 1; 14126let opNewValue = 0; 14127let prefersSlot3 = 1; 14128let Defs = [USR_OVF]; 14129} 14130def M2_hmmpyh_s1 : HInst< 14131(outs IntRegs:$Rd32), 14132(ins IntRegs:$Rs32, IntRegs:$Rt32), 14133"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat", 14134tc_c21d7447, TypeM>, Enc_5ab2be { 14135let Inst{7-5} = 0b000; 14136let Inst{13-13} = 0b0; 14137let Inst{31-21} = 0b11101101101; 14138let hasNewValue = 1; 14139let opNewValue = 0; 14140let prefersSlot3 = 1; 14141let Defs = [USR_OVF]; 14142} 14143def M2_hmmpyl_rs1 : HInst< 14144(outs IntRegs:$Rd32), 14145(ins IntRegs:$Rs32, IntRegs:$Rt32), 14146"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat", 14147tc_c21d7447, TypeM>, Enc_5ab2be { 14148let Inst{7-5} = 0b100; 14149let Inst{13-13} = 0b0; 14150let Inst{31-21} = 0b11101101111; 14151let hasNewValue = 1; 14152let opNewValue = 0; 14153let prefersSlot3 = 1; 14154let Defs = [USR_OVF]; 14155} 14156def M2_hmmpyl_s1 : HInst< 14157(outs IntRegs:$Rd32), 14158(ins IntRegs:$Rs32, IntRegs:$Rt32), 14159"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat", 14160tc_c21d7447, TypeM>, Enc_5ab2be { 14161let Inst{7-5} = 0b001; 14162let Inst{13-13} = 0b0; 14163let Inst{31-21} = 0b11101101101; 14164let hasNewValue = 1; 14165let opNewValue = 0; 14166let prefersSlot3 = 1; 14167let Defs = [USR_OVF]; 14168} 14169def M2_maci : HInst< 14170(outs IntRegs:$Rx32), 14171(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14172"$Rx32 += mpyi($Rs32,$Rt32)", 14173tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel { 14174let Inst{7-5} = 0b000; 14175let Inst{13-13} = 0b0; 14176let Inst{31-21} = 0b11101111000; 14177let hasNewValue = 1; 14178let opNewValue = 0; 14179let prefersSlot3 = 1; 14180let CextOpcode = "M2_maci"; 14181let InputType = "reg"; 14182let Constraints = "$Rx32 = $Rx32in"; 14183} 14184def M2_macsin : HInst< 14185(outs IntRegs:$Rx32), 14186(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14187"$Rx32 -= mpyi($Rs32,#$Ii)", 14188tc_a154b476, TypeM>, Enc_c90aca { 14189let Inst{13-13} = 0b0; 14190let Inst{31-21} = 0b11100001100; 14191let hasNewValue = 1; 14192let opNewValue = 0; 14193let prefersSlot3 = 1; 14194let InputType = "imm"; 14195let isExtendable = 1; 14196let opExtendable = 3; 14197let isExtentSigned = 0; 14198let opExtentBits = 8; 14199let opExtentAlign = 0; 14200let Constraints = "$Rx32 = $Rx32in"; 14201} 14202def M2_macsip : HInst< 14203(outs IntRegs:$Rx32), 14204(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14205"$Rx32 += mpyi($Rs32,#$Ii)", 14206tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel { 14207let Inst{13-13} = 0b0; 14208let Inst{31-21} = 0b11100001000; 14209let hasNewValue = 1; 14210let opNewValue = 0; 14211let prefersSlot3 = 1; 14212let CextOpcode = "M2_maci"; 14213let InputType = "imm"; 14214let isExtendable = 1; 14215let opExtendable = 3; 14216let isExtentSigned = 0; 14217let opExtentBits = 8; 14218let opExtentAlign = 0; 14219let Constraints = "$Rx32 = $Rx32in"; 14220} 14221def M2_mmachs_rs0 : HInst< 14222(outs DoubleRegs:$Rxx32), 14223(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14224"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat", 14225tc_7f8ae742, TypeM>, Enc_88c16c { 14226let Inst{7-5} = 0b111; 14227let Inst{13-13} = 0b0; 14228let Inst{31-21} = 0b11101010001; 14229let prefersSlot3 = 1; 14230let Defs = [USR_OVF]; 14231let Constraints = "$Rxx32 = $Rxx32in"; 14232} 14233def M2_mmachs_rs1 : HInst< 14234(outs DoubleRegs:$Rxx32), 14235(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14236"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14237tc_7f8ae742, TypeM>, Enc_88c16c { 14238let Inst{7-5} = 0b111; 14239let Inst{13-13} = 0b0; 14240let Inst{31-21} = 0b11101010101; 14241let prefersSlot3 = 1; 14242let Defs = [USR_OVF]; 14243let Constraints = "$Rxx32 = $Rxx32in"; 14244} 14245def M2_mmachs_s0 : HInst< 14246(outs DoubleRegs:$Rxx32), 14247(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14248"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat", 14249tc_7f8ae742, TypeM>, Enc_88c16c { 14250let Inst{7-5} = 0b111; 14251let Inst{13-13} = 0b0; 14252let Inst{31-21} = 0b11101010000; 14253let prefersSlot3 = 1; 14254let Defs = [USR_OVF]; 14255let Constraints = "$Rxx32 = $Rxx32in"; 14256} 14257def M2_mmachs_s1 : HInst< 14258(outs DoubleRegs:$Rxx32), 14259(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14260"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat", 14261tc_7f8ae742, TypeM>, Enc_88c16c { 14262let Inst{7-5} = 0b111; 14263let Inst{13-13} = 0b0; 14264let Inst{31-21} = 0b11101010100; 14265let prefersSlot3 = 1; 14266let Defs = [USR_OVF]; 14267let Constraints = "$Rxx32 = $Rxx32in"; 14268} 14269def M2_mmacls_rs0 : HInst< 14270(outs DoubleRegs:$Rxx32), 14271(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14272"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat", 14273tc_7f8ae742, TypeM>, Enc_88c16c { 14274let Inst{7-5} = 0b101; 14275let Inst{13-13} = 0b0; 14276let Inst{31-21} = 0b11101010001; 14277let prefersSlot3 = 1; 14278let Defs = [USR_OVF]; 14279let Constraints = "$Rxx32 = $Rxx32in"; 14280} 14281def M2_mmacls_rs1 : HInst< 14282(outs DoubleRegs:$Rxx32), 14283(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14284"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14285tc_7f8ae742, TypeM>, Enc_88c16c { 14286let Inst{7-5} = 0b101; 14287let Inst{13-13} = 0b0; 14288let Inst{31-21} = 0b11101010101; 14289let prefersSlot3 = 1; 14290let Defs = [USR_OVF]; 14291let Constraints = "$Rxx32 = $Rxx32in"; 14292} 14293def M2_mmacls_s0 : HInst< 14294(outs DoubleRegs:$Rxx32), 14295(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14296"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat", 14297tc_7f8ae742, TypeM>, Enc_88c16c { 14298let Inst{7-5} = 0b101; 14299let Inst{13-13} = 0b0; 14300let Inst{31-21} = 0b11101010000; 14301let prefersSlot3 = 1; 14302let Defs = [USR_OVF]; 14303let Constraints = "$Rxx32 = $Rxx32in"; 14304} 14305def M2_mmacls_s1 : HInst< 14306(outs DoubleRegs:$Rxx32), 14307(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14308"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat", 14309tc_7f8ae742, TypeM>, Enc_88c16c { 14310let Inst{7-5} = 0b101; 14311let Inst{13-13} = 0b0; 14312let Inst{31-21} = 0b11101010100; 14313let prefersSlot3 = 1; 14314let Defs = [USR_OVF]; 14315let Constraints = "$Rxx32 = $Rxx32in"; 14316} 14317def M2_mmacuhs_rs0 : HInst< 14318(outs DoubleRegs:$Rxx32), 14319(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14320"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat", 14321tc_7f8ae742, TypeM>, Enc_88c16c { 14322let Inst{7-5} = 0b111; 14323let Inst{13-13} = 0b0; 14324let Inst{31-21} = 0b11101010011; 14325let prefersSlot3 = 1; 14326let Defs = [USR_OVF]; 14327let Constraints = "$Rxx32 = $Rxx32in"; 14328} 14329def M2_mmacuhs_rs1 : HInst< 14330(outs DoubleRegs:$Rxx32), 14331(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14332"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14333tc_7f8ae742, TypeM>, Enc_88c16c { 14334let Inst{7-5} = 0b111; 14335let Inst{13-13} = 0b0; 14336let Inst{31-21} = 0b11101010111; 14337let prefersSlot3 = 1; 14338let Defs = [USR_OVF]; 14339let Constraints = "$Rxx32 = $Rxx32in"; 14340} 14341def M2_mmacuhs_s0 : HInst< 14342(outs DoubleRegs:$Rxx32), 14343(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14344"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat", 14345tc_7f8ae742, TypeM>, Enc_88c16c { 14346let Inst{7-5} = 0b111; 14347let Inst{13-13} = 0b0; 14348let Inst{31-21} = 0b11101010010; 14349let prefersSlot3 = 1; 14350let Defs = [USR_OVF]; 14351let Constraints = "$Rxx32 = $Rxx32in"; 14352} 14353def M2_mmacuhs_s1 : HInst< 14354(outs DoubleRegs:$Rxx32), 14355(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14356"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat", 14357tc_7f8ae742, TypeM>, Enc_88c16c { 14358let Inst{7-5} = 0b111; 14359let Inst{13-13} = 0b0; 14360let Inst{31-21} = 0b11101010110; 14361let prefersSlot3 = 1; 14362let Defs = [USR_OVF]; 14363let Constraints = "$Rxx32 = $Rxx32in"; 14364} 14365def M2_mmaculs_rs0 : HInst< 14366(outs DoubleRegs:$Rxx32), 14367(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14368"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat", 14369tc_7f8ae742, TypeM>, Enc_88c16c { 14370let Inst{7-5} = 0b101; 14371let Inst{13-13} = 0b0; 14372let Inst{31-21} = 0b11101010011; 14373let prefersSlot3 = 1; 14374let Defs = [USR_OVF]; 14375let Constraints = "$Rxx32 = $Rxx32in"; 14376} 14377def M2_mmaculs_rs1 : HInst< 14378(outs DoubleRegs:$Rxx32), 14379(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14380"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14381tc_7f8ae742, TypeM>, Enc_88c16c { 14382let Inst{7-5} = 0b101; 14383let Inst{13-13} = 0b0; 14384let Inst{31-21} = 0b11101010111; 14385let prefersSlot3 = 1; 14386let Defs = [USR_OVF]; 14387let Constraints = "$Rxx32 = $Rxx32in"; 14388} 14389def M2_mmaculs_s0 : HInst< 14390(outs DoubleRegs:$Rxx32), 14391(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14392"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat", 14393tc_7f8ae742, TypeM>, Enc_88c16c { 14394let Inst{7-5} = 0b101; 14395let Inst{13-13} = 0b0; 14396let Inst{31-21} = 0b11101010010; 14397let prefersSlot3 = 1; 14398let Defs = [USR_OVF]; 14399let Constraints = "$Rxx32 = $Rxx32in"; 14400} 14401def M2_mmaculs_s1 : HInst< 14402(outs DoubleRegs:$Rxx32), 14403(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14404"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat", 14405tc_7f8ae742, TypeM>, Enc_88c16c { 14406let Inst{7-5} = 0b101; 14407let Inst{13-13} = 0b0; 14408let Inst{31-21} = 0b11101010110; 14409let prefersSlot3 = 1; 14410let Defs = [USR_OVF]; 14411let Constraints = "$Rxx32 = $Rxx32in"; 14412} 14413def M2_mmpyh_rs0 : HInst< 14414(outs DoubleRegs:$Rdd32), 14415(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14416"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat", 14417tc_c21d7447, TypeM>, Enc_a56825 { 14418let Inst{7-5} = 0b111; 14419let Inst{13-13} = 0b0; 14420let Inst{31-21} = 0b11101000001; 14421let prefersSlot3 = 1; 14422let Defs = [USR_OVF]; 14423} 14424def M2_mmpyh_rs1 : HInst< 14425(outs DoubleRegs:$Rdd32), 14426(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14427"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14428tc_c21d7447, TypeM>, Enc_a56825 { 14429let Inst{7-5} = 0b111; 14430let Inst{13-13} = 0b0; 14431let Inst{31-21} = 0b11101000101; 14432let prefersSlot3 = 1; 14433let Defs = [USR_OVF]; 14434} 14435def M2_mmpyh_s0 : HInst< 14436(outs DoubleRegs:$Rdd32), 14437(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14438"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat", 14439tc_c21d7447, TypeM>, Enc_a56825 { 14440let Inst{7-5} = 0b111; 14441let Inst{13-13} = 0b0; 14442let Inst{31-21} = 0b11101000000; 14443let prefersSlot3 = 1; 14444let Defs = [USR_OVF]; 14445} 14446def M2_mmpyh_s1 : HInst< 14447(outs DoubleRegs:$Rdd32), 14448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14449"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat", 14450tc_c21d7447, TypeM>, Enc_a56825 { 14451let Inst{7-5} = 0b111; 14452let Inst{13-13} = 0b0; 14453let Inst{31-21} = 0b11101000100; 14454let prefersSlot3 = 1; 14455let Defs = [USR_OVF]; 14456} 14457def M2_mmpyl_rs0 : HInst< 14458(outs DoubleRegs:$Rdd32), 14459(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14460"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat", 14461tc_c21d7447, TypeM>, Enc_a56825 { 14462let Inst{7-5} = 0b101; 14463let Inst{13-13} = 0b0; 14464let Inst{31-21} = 0b11101000001; 14465let prefersSlot3 = 1; 14466let Defs = [USR_OVF]; 14467} 14468def M2_mmpyl_rs1 : HInst< 14469(outs DoubleRegs:$Rdd32), 14470(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14471"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14472tc_c21d7447, TypeM>, Enc_a56825 { 14473let Inst{7-5} = 0b101; 14474let Inst{13-13} = 0b0; 14475let Inst{31-21} = 0b11101000101; 14476let prefersSlot3 = 1; 14477let Defs = [USR_OVF]; 14478} 14479def M2_mmpyl_s0 : HInst< 14480(outs DoubleRegs:$Rdd32), 14481(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14482"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat", 14483tc_c21d7447, TypeM>, Enc_a56825 { 14484let Inst{7-5} = 0b101; 14485let Inst{13-13} = 0b0; 14486let Inst{31-21} = 0b11101000000; 14487let prefersSlot3 = 1; 14488let Defs = [USR_OVF]; 14489} 14490def M2_mmpyl_s1 : HInst< 14491(outs DoubleRegs:$Rdd32), 14492(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14493"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat", 14494tc_c21d7447, TypeM>, Enc_a56825 { 14495let Inst{7-5} = 0b101; 14496let Inst{13-13} = 0b0; 14497let Inst{31-21} = 0b11101000100; 14498let prefersSlot3 = 1; 14499let Defs = [USR_OVF]; 14500} 14501def M2_mmpyuh_rs0 : HInst< 14502(outs DoubleRegs:$Rdd32), 14503(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14504"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat", 14505tc_c21d7447, TypeM>, Enc_a56825 { 14506let Inst{7-5} = 0b111; 14507let Inst{13-13} = 0b0; 14508let Inst{31-21} = 0b11101000011; 14509let prefersSlot3 = 1; 14510let Defs = [USR_OVF]; 14511} 14512def M2_mmpyuh_rs1 : HInst< 14513(outs DoubleRegs:$Rdd32), 14514(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14515"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14516tc_c21d7447, TypeM>, Enc_a56825 { 14517let Inst{7-5} = 0b111; 14518let Inst{13-13} = 0b0; 14519let Inst{31-21} = 0b11101000111; 14520let prefersSlot3 = 1; 14521let Defs = [USR_OVF]; 14522} 14523def M2_mmpyuh_s0 : HInst< 14524(outs DoubleRegs:$Rdd32), 14525(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14526"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat", 14527tc_c21d7447, TypeM>, Enc_a56825 { 14528let Inst{7-5} = 0b111; 14529let Inst{13-13} = 0b0; 14530let Inst{31-21} = 0b11101000010; 14531let prefersSlot3 = 1; 14532let Defs = [USR_OVF]; 14533} 14534def M2_mmpyuh_s1 : HInst< 14535(outs DoubleRegs:$Rdd32), 14536(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14537"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat", 14538tc_c21d7447, TypeM>, Enc_a56825 { 14539let Inst{7-5} = 0b111; 14540let Inst{13-13} = 0b0; 14541let Inst{31-21} = 0b11101000110; 14542let prefersSlot3 = 1; 14543let Defs = [USR_OVF]; 14544} 14545def M2_mmpyul_rs0 : HInst< 14546(outs DoubleRegs:$Rdd32), 14547(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14548"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat", 14549tc_c21d7447, TypeM>, Enc_a56825 { 14550let Inst{7-5} = 0b101; 14551let Inst{13-13} = 0b0; 14552let Inst{31-21} = 0b11101000011; 14553let prefersSlot3 = 1; 14554let Defs = [USR_OVF]; 14555} 14556def M2_mmpyul_rs1 : HInst< 14557(outs DoubleRegs:$Rdd32), 14558(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14559"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14560tc_c21d7447, TypeM>, Enc_a56825 { 14561let Inst{7-5} = 0b101; 14562let Inst{13-13} = 0b0; 14563let Inst{31-21} = 0b11101000111; 14564let prefersSlot3 = 1; 14565let Defs = [USR_OVF]; 14566} 14567def M2_mmpyul_s0 : HInst< 14568(outs DoubleRegs:$Rdd32), 14569(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14570"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat", 14571tc_c21d7447, TypeM>, Enc_a56825 { 14572let Inst{7-5} = 0b101; 14573let Inst{13-13} = 0b0; 14574let Inst{31-21} = 0b11101000010; 14575let prefersSlot3 = 1; 14576let Defs = [USR_OVF]; 14577} 14578def M2_mmpyul_s1 : HInst< 14579(outs DoubleRegs:$Rdd32), 14580(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14581"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat", 14582tc_c21d7447, TypeM>, Enc_a56825 { 14583let Inst{7-5} = 0b101; 14584let Inst{13-13} = 0b0; 14585let Inst{31-21} = 0b11101000110; 14586let prefersSlot3 = 1; 14587let Defs = [USR_OVF]; 14588} 14589def M2_mnaci : HInst< 14590(outs IntRegs:$Rx32), 14591(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14592"$Rx32 -= mpyi($Rs32,$Rt32)", 14593tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> { 14594let Inst{7-5} = 0b000; 14595let Inst{13-13} = 0b0; 14596let Inst{31-21} = 0b11101111100; 14597let hasNewValue = 1; 14598let opNewValue = 0; 14599let prefersSlot3 = 1; 14600let Constraints = "$Rx32 = $Rx32in"; 14601} 14602def M2_mpy_acc_hh_s0 : HInst< 14603(outs IntRegs:$Rx32), 14604(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14605"$Rx32 += mpy($Rs32.h,$Rt32.h)", 14606tc_7f8ae742, TypeM>, Enc_2ae154 { 14607let Inst{7-5} = 0b011; 14608let Inst{13-13} = 0b0; 14609let Inst{31-21} = 0b11101110000; 14610let hasNewValue = 1; 14611let opNewValue = 0; 14612let prefersSlot3 = 1; 14613let Constraints = "$Rx32 = $Rx32in"; 14614} 14615def M2_mpy_acc_hh_s1 : HInst< 14616(outs IntRegs:$Rx32), 14617(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14618"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1", 14619tc_7f8ae742, TypeM>, Enc_2ae154 { 14620let Inst{7-5} = 0b011; 14621let Inst{13-13} = 0b0; 14622let Inst{31-21} = 0b11101110100; 14623let hasNewValue = 1; 14624let opNewValue = 0; 14625let prefersSlot3 = 1; 14626let Constraints = "$Rx32 = $Rx32in"; 14627} 14628def M2_mpy_acc_hl_s0 : HInst< 14629(outs IntRegs:$Rx32), 14630(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14631"$Rx32 += mpy($Rs32.h,$Rt32.l)", 14632tc_7f8ae742, TypeM>, Enc_2ae154 { 14633let Inst{7-5} = 0b010; 14634let Inst{13-13} = 0b0; 14635let Inst{31-21} = 0b11101110000; 14636let hasNewValue = 1; 14637let opNewValue = 0; 14638let prefersSlot3 = 1; 14639let Constraints = "$Rx32 = $Rx32in"; 14640} 14641def M2_mpy_acc_hl_s1 : HInst< 14642(outs IntRegs:$Rx32), 14643(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14644"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1", 14645tc_7f8ae742, TypeM>, Enc_2ae154 { 14646let Inst{7-5} = 0b010; 14647let Inst{13-13} = 0b0; 14648let Inst{31-21} = 0b11101110100; 14649let hasNewValue = 1; 14650let opNewValue = 0; 14651let prefersSlot3 = 1; 14652let Constraints = "$Rx32 = $Rx32in"; 14653} 14654def M2_mpy_acc_lh_s0 : HInst< 14655(outs IntRegs:$Rx32), 14656(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14657"$Rx32 += mpy($Rs32.l,$Rt32.h)", 14658tc_7f8ae742, TypeM>, Enc_2ae154 { 14659let Inst{7-5} = 0b001; 14660let Inst{13-13} = 0b0; 14661let Inst{31-21} = 0b11101110000; 14662let hasNewValue = 1; 14663let opNewValue = 0; 14664let prefersSlot3 = 1; 14665let Constraints = "$Rx32 = $Rx32in"; 14666} 14667def M2_mpy_acc_lh_s1 : HInst< 14668(outs IntRegs:$Rx32), 14669(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14670"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1", 14671tc_7f8ae742, TypeM>, Enc_2ae154 { 14672let Inst{7-5} = 0b001; 14673let Inst{13-13} = 0b0; 14674let Inst{31-21} = 0b11101110100; 14675let hasNewValue = 1; 14676let opNewValue = 0; 14677let prefersSlot3 = 1; 14678let Constraints = "$Rx32 = $Rx32in"; 14679} 14680def M2_mpy_acc_ll_s0 : HInst< 14681(outs IntRegs:$Rx32), 14682(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14683"$Rx32 += mpy($Rs32.l,$Rt32.l)", 14684tc_7f8ae742, TypeM>, Enc_2ae154 { 14685let Inst{7-5} = 0b000; 14686let Inst{13-13} = 0b0; 14687let Inst{31-21} = 0b11101110000; 14688let hasNewValue = 1; 14689let opNewValue = 0; 14690let prefersSlot3 = 1; 14691let Constraints = "$Rx32 = $Rx32in"; 14692} 14693def M2_mpy_acc_ll_s1 : HInst< 14694(outs IntRegs:$Rx32), 14695(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14696"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1", 14697tc_7f8ae742, TypeM>, Enc_2ae154 { 14698let Inst{7-5} = 0b000; 14699let Inst{13-13} = 0b0; 14700let Inst{31-21} = 0b11101110100; 14701let hasNewValue = 1; 14702let opNewValue = 0; 14703let prefersSlot3 = 1; 14704let Constraints = "$Rx32 = $Rx32in"; 14705} 14706def M2_mpy_acc_sat_hh_s0 : HInst< 14707(outs IntRegs:$Rx32), 14708(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14709"$Rx32 += mpy($Rs32.h,$Rt32.h):sat", 14710tc_7f8ae742, TypeM>, Enc_2ae154 { 14711let Inst{7-5} = 0b111; 14712let Inst{13-13} = 0b0; 14713let Inst{31-21} = 0b11101110000; 14714let hasNewValue = 1; 14715let opNewValue = 0; 14716let prefersSlot3 = 1; 14717let Defs = [USR_OVF]; 14718let Constraints = "$Rx32 = $Rx32in"; 14719} 14720def M2_mpy_acc_sat_hh_s1 : HInst< 14721(outs IntRegs:$Rx32), 14722(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14723"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat", 14724tc_7f8ae742, TypeM>, Enc_2ae154 { 14725let Inst{7-5} = 0b111; 14726let Inst{13-13} = 0b0; 14727let Inst{31-21} = 0b11101110100; 14728let hasNewValue = 1; 14729let opNewValue = 0; 14730let prefersSlot3 = 1; 14731let Defs = [USR_OVF]; 14732let Constraints = "$Rx32 = $Rx32in"; 14733} 14734def M2_mpy_acc_sat_hl_s0 : HInst< 14735(outs IntRegs:$Rx32), 14736(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14737"$Rx32 += mpy($Rs32.h,$Rt32.l):sat", 14738tc_7f8ae742, TypeM>, Enc_2ae154 { 14739let Inst{7-5} = 0b110; 14740let Inst{13-13} = 0b0; 14741let Inst{31-21} = 0b11101110000; 14742let hasNewValue = 1; 14743let opNewValue = 0; 14744let prefersSlot3 = 1; 14745let Defs = [USR_OVF]; 14746let Constraints = "$Rx32 = $Rx32in"; 14747} 14748def M2_mpy_acc_sat_hl_s1 : HInst< 14749(outs IntRegs:$Rx32), 14750(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14751"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat", 14752tc_7f8ae742, TypeM>, Enc_2ae154 { 14753let Inst{7-5} = 0b110; 14754let Inst{13-13} = 0b0; 14755let Inst{31-21} = 0b11101110100; 14756let hasNewValue = 1; 14757let opNewValue = 0; 14758let prefersSlot3 = 1; 14759let Defs = [USR_OVF]; 14760let Constraints = "$Rx32 = $Rx32in"; 14761} 14762def M2_mpy_acc_sat_lh_s0 : HInst< 14763(outs IntRegs:$Rx32), 14764(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14765"$Rx32 += mpy($Rs32.l,$Rt32.h):sat", 14766tc_7f8ae742, TypeM>, Enc_2ae154 { 14767let Inst{7-5} = 0b101; 14768let Inst{13-13} = 0b0; 14769let Inst{31-21} = 0b11101110000; 14770let hasNewValue = 1; 14771let opNewValue = 0; 14772let prefersSlot3 = 1; 14773let Defs = [USR_OVF]; 14774let Constraints = "$Rx32 = $Rx32in"; 14775} 14776def M2_mpy_acc_sat_lh_s1 : HInst< 14777(outs IntRegs:$Rx32), 14778(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14779"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat", 14780tc_7f8ae742, TypeM>, Enc_2ae154 { 14781let Inst{7-5} = 0b101; 14782let Inst{13-13} = 0b0; 14783let Inst{31-21} = 0b11101110100; 14784let hasNewValue = 1; 14785let opNewValue = 0; 14786let prefersSlot3 = 1; 14787let Defs = [USR_OVF]; 14788let Constraints = "$Rx32 = $Rx32in"; 14789} 14790def M2_mpy_acc_sat_ll_s0 : HInst< 14791(outs IntRegs:$Rx32), 14792(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14793"$Rx32 += mpy($Rs32.l,$Rt32.l):sat", 14794tc_7f8ae742, TypeM>, Enc_2ae154 { 14795let Inst{7-5} = 0b100; 14796let Inst{13-13} = 0b0; 14797let Inst{31-21} = 0b11101110000; 14798let hasNewValue = 1; 14799let opNewValue = 0; 14800let prefersSlot3 = 1; 14801let Defs = [USR_OVF]; 14802let Constraints = "$Rx32 = $Rx32in"; 14803} 14804def M2_mpy_acc_sat_ll_s1 : HInst< 14805(outs IntRegs:$Rx32), 14806(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14807"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat", 14808tc_7f8ae742, TypeM>, Enc_2ae154 { 14809let Inst{7-5} = 0b100; 14810let Inst{13-13} = 0b0; 14811let Inst{31-21} = 0b11101110100; 14812let hasNewValue = 1; 14813let opNewValue = 0; 14814let prefersSlot3 = 1; 14815let Defs = [USR_OVF]; 14816let Constraints = "$Rx32 = $Rx32in"; 14817} 14818def M2_mpy_hh_s0 : HInst< 14819(outs IntRegs:$Rd32), 14820(ins IntRegs:$Rs32, IntRegs:$Rt32), 14821"$Rd32 = mpy($Rs32.h,$Rt32.h)", 14822tc_c21d7447, TypeM>, Enc_5ab2be { 14823let Inst{7-5} = 0b011; 14824let Inst{13-13} = 0b0; 14825let Inst{31-21} = 0b11101100000; 14826let hasNewValue = 1; 14827let opNewValue = 0; 14828let prefersSlot3 = 1; 14829} 14830def M2_mpy_hh_s1 : HInst< 14831(outs IntRegs:$Rd32), 14832(ins IntRegs:$Rs32, IntRegs:$Rt32), 14833"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1", 14834tc_c21d7447, TypeM>, Enc_5ab2be { 14835let Inst{7-5} = 0b011; 14836let Inst{13-13} = 0b0; 14837let Inst{31-21} = 0b11101100100; 14838let hasNewValue = 1; 14839let opNewValue = 0; 14840let prefersSlot3 = 1; 14841} 14842def M2_mpy_hl_s0 : HInst< 14843(outs IntRegs:$Rd32), 14844(ins IntRegs:$Rs32, IntRegs:$Rt32), 14845"$Rd32 = mpy($Rs32.h,$Rt32.l)", 14846tc_c21d7447, TypeM>, Enc_5ab2be { 14847let Inst{7-5} = 0b010; 14848let Inst{13-13} = 0b0; 14849let Inst{31-21} = 0b11101100000; 14850let hasNewValue = 1; 14851let opNewValue = 0; 14852let prefersSlot3 = 1; 14853} 14854def M2_mpy_hl_s1 : HInst< 14855(outs IntRegs:$Rd32), 14856(ins IntRegs:$Rs32, IntRegs:$Rt32), 14857"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1", 14858tc_c21d7447, TypeM>, Enc_5ab2be { 14859let Inst{7-5} = 0b010; 14860let Inst{13-13} = 0b0; 14861let Inst{31-21} = 0b11101100100; 14862let hasNewValue = 1; 14863let opNewValue = 0; 14864let prefersSlot3 = 1; 14865} 14866def M2_mpy_lh_s0 : HInst< 14867(outs IntRegs:$Rd32), 14868(ins IntRegs:$Rs32, IntRegs:$Rt32), 14869"$Rd32 = mpy($Rs32.l,$Rt32.h)", 14870tc_c21d7447, TypeM>, Enc_5ab2be { 14871let Inst{7-5} = 0b001; 14872let Inst{13-13} = 0b0; 14873let Inst{31-21} = 0b11101100000; 14874let hasNewValue = 1; 14875let opNewValue = 0; 14876let prefersSlot3 = 1; 14877} 14878def M2_mpy_lh_s1 : HInst< 14879(outs IntRegs:$Rd32), 14880(ins IntRegs:$Rs32, IntRegs:$Rt32), 14881"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1", 14882tc_c21d7447, TypeM>, Enc_5ab2be { 14883let Inst{7-5} = 0b001; 14884let Inst{13-13} = 0b0; 14885let Inst{31-21} = 0b11101100100; 14886let hasNewValue = 1; 14887let opNewValue = 0; 14888let prefersSlot3 = 1; 14889} 14890def M2_mpy_ll_s0 : HInst< 14891(outs IntRegs:$Rd32), 14892(ins IntRegs:$Rs32, IntRegs:$Rt32), 14893"$Rd32 = mpy($Rs32.l,$Rt32.l)", 14894tc_c21d7447, TypeM>, Enc_5ab2be { 14895let Inst{7-5} = 0b000; 14896let Inst{13-13} = 0b0; 14897let Inst{31-21} = 0b11101100000; 14898let hasNewValue = 1; 14899let opNewValue = 0; 14900let prefersSlot3 = 1; 14901} 14902def M2_mpy_ll_s1 : HInst< 14903(outs IntRegs:$Rd32), 14904(ins IntRegs:$Rs32, IntRegs:$Rt32), 14905"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1", 14906tc_c21d7447, TypeM>, Enc_5ab2be { 14907let Inst{7-5} = 0b000; 14908let Inst{13-13} = 0b0; 14909let Inst{31-21} = 0b11101100100; 14910let hasNewValue = 1; 14911let opNewValue = 0; 14912let prefersSlot3 = 1; 14913} 14914def M2_mpy_nac_hh_s0 : HInst< 14915(outs IntRegs:$Rx32), 14916(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14917"$Rx32 -= mpy($Rs32.h,$Rt32.h)", 14918tc_7f8ae742, TypeM>, Enc_2ae154 { 14919let Inst{7-5} = 0b011; 14920let Inst{13-13} = 0b0; 14921let Inst{31-21} = 0b11101110001; 14922let hasNewValue = 1; 14923let opNewValue = 0; 14924let prefersSlot3 = 1; 14925let Constraints = "$Rx32 = $Rx32in"; 14926} 14927def M2_mpy_nac_hh_s1 : HInst< 14928(outs IntRegs:$Rx32), 14929(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14930"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1", 14931tc_7f8ae742, TypeM>, Enc_2ae154 { 14932let Inst{7-5} = 0b011; 14933let Inst{13-13} = 0b0; 14934let Inst{31-21} = 0b11101110101; 14935let hasNewValue = 1; 14936let opNewValue = 0; 14937let prefersSlot3 = 1; 14938let Constraints = "$Rx32 = $Rx32in"; 14939} 14940def M2_mpy_nac_hl_s0 : HInst< 14941(outs IntRegs:$Rx32), 14942(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14943"$Rx32 -= mpy($Rs32.h,$Rt32.l)", 14944tc_7f8ae742, TypeM>, Enc_2ae154 { 14945let Inst{7-5} = 0b010; 14946let Inst{13-13} = 0b0; 14947let Inst{31-21} = 0b11101110001; 14948let hasNewValue = 1; 14949let opNewValue = 0; 14950let prefersSlot3 = 1; 14951let Constraints = "$Rx32 = $Rx32in"; 14952} 14953def M2_mpy_nac_hl_s1 : HInst< 14954(outs IntRegs:$Rx32), 14955(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14956"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1", 14957tc_7f8ae742, TypeM>, Enc_2ae154 { 14958let Inst{7-5} = 0b010; 14959let Inst{13-13} = 0b0; 14960let Inst{31-21} = 0b11101110101; 14961let hasNewValue = 1; 14962let opNewValue = 0; 14963let prefersSlot3 = 1; 14964let Constraints = "$Rx32 = $Rx32in"; 14965} 14966def M2_mpy_nac_lh_s0 : HInst< 14967(outs IntRegs:$Rx32), 14968(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14969"$Rx32 -= mpy($Rs32.l,$Rt32.h)", 14970tc_7f8ae742, TypeM>, Enc_2ae154 { 14971let Inst{7-5} = 0b001; 14972let Inst{13-13} = 0b0; 14973let Inst{31-21} = 0b11101110001; 14974let hasNewValue = 1; 14975let opNewValue = 0; 14976let prefersSlot3 = 1; 14977let Constraints = "$Rx32 = $Rx32in"; 14978} 14979def M2_mpy_nac_lh_s1 : HInst< 14980(outs IntRegs:$Rx32), 14981(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14982"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1", 14983tc_7f8ae742, TypeM>, Enc_2ae154 { 14984let Inst{7-5} = 0b001; 14985let Inst{13-13} = 0b0; 14986let Inst{31-21} = 0b11101110101; 14987let hasNewValue = 1; 14988let opNewValue = 0; 14989let prefersSlot3 = 1; 14990let Constraints = "$Rx32 = $Rx32in"; 14991} 14992def M2_mpy_nac_ll_s0 : HInst< 14993(outs IntRegs:$Rx32), 14994(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14995"$Rx32 -= mpy($Rs32.l,$Rt32.l)", 14996tc_7f8ae742, TypeM>, Enc_2ae154 { 14997let Inst{7-5} = 0b000; 14998let Inst{13-13} = 0b0; 14999let Inst{31-21} = 0b11101110001; 15000let hasNewValue = 1; 15001let opNewValue = 0; 15002let prefersSlot3 = 1; 15003let Constraints = "$Rx32 = $Rx32in"; 15004} 15005def M2_mpy_nac_ll_s1 : HInst< 15006(outs IntRegs:$Rx32), 15007(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15008"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15009tc_7f8ae742, TypeM>, Enc_2ae154 { 15010let Inst{7-5} = 0b000; 15011let Inst{13-13} = 0b0; 15012let Inst{31-21} = 0b11101110101; 15013let hasNewValue = 1; 15014let opNewValue = 0; 15015let prefersSlot3 = 1; 15016let Constraints = "$Rx32 = $Rx32in"; 15017} 15018def M2_mpy_nac_sat_hh_s0 : HInst< 15019(outs IntRegs:$Rx32), 15020(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15021"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat", 15022tc_7f8ae742, TypeM>, Enc_2ae154 { 15023let Inst{7-5} = 0b111; 15024let Inst{13-13} = 0b0; 15025let Inst{31-21} = 0b11101110001; 15026let hasNewValue = 1; 15027let opNewValue = 0; 15028let prefersSlot3 = 1; 15029let Defs = [USR_OVF]; 15030let Constraints = "$Rx32 = $Rx32in"; 15031} 15032def M2_mpy_nac_sat_hh_s1 : HInst< 15033(outs IntRegs:$Rx32), 15034(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15035"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat", 15036tc_7f8ae742, TypeM>, Enc_2ae154 { 15037let Inst{7-5} = 0b111; 15038let Inst{13-13} = 0b0; 15039let Inst{31-21} = 0b11101110101; 15040let hasNewValue = 1; 15041let opNewValue = 0; 15042let prefersSlot3 = 1; 15043let Defs = [USR_OVF]; 15044let Constraints = "$Rx32 = $Rx32in"; 15045} 15046def M2_mpy_nac_sat_hl_s0 : HInst< 15047(outs IntRegs:$Rx32), 15048(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15049"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat", 15050tc_7f8ae742, TypeM>, Enc_2ae154 { 15051let Inst{7-5} = 0b110; 15052let Inst{13-13} = 0b0; 15053let Inst{31-21} = 0b11101110001; 15054let hasNewValue = 1; 15055let opNewValue = 0; 15056let prefersSlot3 = 1; 15057let Defs = [USR_OVF]; 15058let Constraints = "$Rx32 = $Rx32in"; 15059} 15060def M2_mpy_nac_sat_hl_s1 : HInst< 15061(outs IntRegs:$Rx32), 15062(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15063"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat", 15064tc_7f8ae742, TypeM>, Enc_2ae154 { 15065let Inst{7-5} = 0b110; 15066let Inst{13-13} = 0b0; 15067let Inst{31-21} = 0b11101110101; 15068let hasNewValue = 1; 15069let opNewValue = 0; 15070let prefersSlot3 = 1; 15071let Defs = [USR_OVF]; 15072let Constraints = "$Rx32 = $Rx32in"; 15073} 15074def M2_mpy_nac_sat_lh_s0 : HInst< 15075(outs IntRegs:$Rx32), 15076(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15077"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat", 15078tc_7f8ae742, TypeM>, Enc_2ae154 { 15079let Inst{7-5} = 0b101; 15080let Inst{13-13} = 0b0; 15081let Inst{31-21} = 0b11101110001; 15082let hasNewValue = 1; 15083let opNewValue = 0; 15084let prefersSlot3 = 1; 15085let Defs = [USR_OVF]; 15086let Constraints = "$Rx32 = $Rx32in"; 15087} 15088def M2_mpy_nac_sat_lh_s1 : HInst< 15089(outs IntRegs:$Rx32), 15090(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15091"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat", 15092tc_7f8ae742, TypeM>, Enc_2ae154 { 15093let Inst{7-5} = 0b101; 15094let Inst{13-13} = 0b0; 15095let Inst{31-21} = 0b11101110101; 15096let hasNewValue = 1; 15097let opNewValue = 0; 15098let prefersSlot3 = 1; 15099let Defs = [USR_OVF]; 15100let Constraints = "$Rx32 = $Rx32in"; 15101} 15102def M2_mpy_nac_sat_ll_s0 : HInst< 15103(outs IntRegs:$Rx32), 15104(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15105"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat", 15106tc_7f8ae742, TypeM>, Enc_2ae154 { 15107let Inst{7-5} = 0b100; 15108let Inst{13-13} = 0b0; 15109let Inst{31-21} = 0b11101110001; 15110let hasNewValue = 1; 15111let opNewValue = 0; 15112let prefersSlot3 = 1; 15113let Defs = [USR_OVF]; 15114let Constraints = "$Rx32 = $Rx32in"; 15115} 15116def M2_mpy_nac_sat_ll_s1 : HInst< 15117(outs IntRegs:$Rx32), 15118(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15119"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat", 15120tc_7f8ae742, TypeM>, Enc_2ae154 { 15121let Inst{7-5} = 0b100; 15122let Inst{13-13} = 0b0; 15123let Inst{31-21} = 0b11101110101; 15124let hasNewValue = 1; 15125let opNewValue = 0; 15126let prefersSlot3 = 1; 15127let Defs = [USR_OVF]; 15128let Constraints = "$Rx32 = $Rx32in"; 15129} 15130def M2_mpy_rnd_hh_s0 : HInst< 15131(outs IntRegs:$Rd32), 15132(ins IntRegs:$Rs32, IntRegs:$Rt32), 15133"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd", 15134tc_c21d7447, TypeM>, Enc_5ab2be { 15135let Inst{7-5} = 0b011; 15136let Inst{13-13} = 0b0; 15137let Inst{31-21} = 0b11101100001; 15138let hasNewValue = 1; 15139let opNewValue = 0; 15140let prefersSlot3 = 1; 15141} 15142def M2_mpy_rnd_hh_s1 : HInst< 15143(outs IntRegs:$Rd32), 15144(ins IntRegs:$Rs32, IntRegs:$Rt32), 15145"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15146tc_c21d7447, TypeM>, Enc_5ab2be { 15147let Inst{7-5} = 0b011; 15148let Inst{13-13} = 0b0; 15149let Inst{31-21} = 0b11101100101; 15150let hasNewValue = 1; 15151let opNewValue = 0; 15152let prefersSlot3 = 1; 15153} 15154def M2_mpy_rnd_hl_s0 : HInst< 15155(outs IntRegs:$Rd32), 15156(ins IntRegs:$Rs32, IntRegs:$Rt32), 15157"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd", 15158tc_c21d7447, TypeM>, Enc_5ab2be { 15159let Inst{7-5} = 0b010; 15160let Inst{13-13} = 0b0; 15161let Inst{31-21} = 0b11101100001; 15162let hasNewValue = 1; 15163let opNewValue = 0; 15164let prefersSlot3 = 1; 15165} 15166def M2_mpy_rnd_hl_s1 : HInst< 15167(outs IntRegs:$Rd32), 15168(ins IntRegs:$Rs32, IntRegs:$Rt32), 15169"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15170tc_c21d7447, TypeM>, Enc_5ab2be { 15171let Inst{7-5} = 0b010; 15172let Inst{13-13} = 0b0; 15173let Inst{31-21} = 0b11101100101; 15174let hasNewValue = 1; 15175let opNewValue = 0; 15176let prefersSlot3 = 1; 15177} 15178def M2_mpy_rnd_lh_s0 : HInst< 15179(outs IntRegs:$Rd32), 15180(ins IntRegs:$Rs32, IntRegs:$Rt32), 15181"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd", 15182tc_c21d7447, TypeM>, Enc_5ab2be { 15183let Inst{7-5} = 0b001; 15184let Inst{13-13} = 0b0; 15185let Inst{31-21} = 0b11101100001; 15186let hasNewValue = 1; 15187let opNewValue = 0; 15188let prefersSlot3 = 1; 15189} 15190def M2_mpy_rnd_lh_s1 : HInst< 15191(outs IntRegs:$Rd32), 15192(ins IntRegs:$Rs32, IntRegs:$Rt32), 15193"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15194tc_c21d7447, TypeM>, Enc_5ab2be { 15195let Inst{7-5} = 0b001; 15196let Inst{13-13} = 0b0; 15197let Inst{31-21} = 0b11101100101; 15198let hasNewValue = 1; 15199let opNewValue = 0; 15200let prefersSlot3 = 1; 15201} 15202def M2_mpy_rnd_ll_s0 : HInst< 15203(outs IntRegs:$Rd32), 15204(ins IntRegs:$Rs32, IntRegs:$Rt32), 15205"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd", 15206tc_c21d7447, TypeM>, Enc_5ab2be { 15207let Inst{7-5} = 0b000; 15208let Inst{13-13} = 0b0; 15209let Inst{31-21} = 0b11101100001; 15210let hasNewValue = 1; 15211let opNewValue = 0; 15212let prefersSlot3 = 1; 15213} 15214def M2_mpy_rnd_ll_s1 : HInst< 15215(outs IntRegs:$Rd32), 15216(ins IntRegs:$Rs32, IntRegs:$Rt32), 15217"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15218tc_c21d7447, TypeM>, Enc_5ab2be { 15219let Inst{7-5} = 0b000; 15220let Inst{13-13} = 0b0; 15221let Inst{31-21} = 0b11101100101; 15222let hasNewValue = 1; 15223let opNewValue = 0; 15224let prefersSlot3 = 1; 15225} 15226def M2_mpy_sat_hh_s0 : HInst< 15227(outs IntRegs:$Rd32), 15228(ins IntRegs:$Rs32, IntRegs:$Rt32), 15229"$Rd32 = mpy($Rs32.h,$Rt32.h):sat", 15230tc_c21d7447, TypeM>, Enc_5ab2be { 15231let Inst{7-5} = 0b111; 15232let Inst{13-13} = 0b0; 15233let Inst{31-21} = 0b11101100000; 15234let hasNewValue = 1; 15235let opNewValue = 0; 15236let prefersSlot3 = 1; 15237let Defs = [USR_OVF]; 15238} 15239def M2_mpy_sat_hh_s1 : HInst< 15240(outs IntRegs:$Rd32), 15241(ins IntRegs:$Rs32, IntRegs:$Rt32), 15242"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat", 15243tc_c21d7447, TypeM>, Enc_5ab2be { 15244let Inst{7-5} = 0b111; 15245let Inst{13-13} = 0b0; 15246let Inst{31-21} = 0b11101100100; 15247let hasNewValue = 1; 15248let opNewValue = 0; 15249let prefersSlot3 = 1; 15250let Defs = [USR_OVF]; 15251} 15252def M2_mpy_sat_hl_s0 : HInst< 15253(outs IntRegs:$Rd32), 15254(ins IntRegs:$Rs32, IntRegs:$Rt32), 15255"$Rd32 = mpy($Rs32.h,$Rt32.l):sat", 15256tc_c21d7447, TypeM>, Enc_5ab2be { 15257let Inst{7-5} = 0b110; 15258let Inst{13-13} = 0b0; 15259let Inst{31-21} = 0b11101100000; 15260let hasNewValue = 1; 15261let opNewValue = 0; 15262let prefersSlot3 = 1; 15263let Defs = [USR_OVF]; 15264} 15265def M2_mpy_sat_hl_s1 : HInst< 15266(outs IntRegs:$Rd32), 15267(ins IntRegs:$Rs32, IntRegs:$Rt32), 15268"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat", 15269tc_c21d7447, TypeM>, Enc_5ab2be { 15270let Inst{7-5} = 0b110; 15271let Inst{13-13} = 0b0; 15272let Inst{31-21} = 0b11101100100; 15273let hasNewValue = 1; 15274let opNewValue = 0; 15275let prefersSlot3 = 1; 15276let Defs = [USR_OVF]; 15277} 15278def M2_mpy_sat_lh_s0 : HInst< 15279(outs IntRegs:$Rd32), 15280(ins IntRegs:$Rs32, IntRegs:$Rt32), 15281"$Rd32 = mpy($Rs32.l,$Rt32.h):sat", 15282tc_c21d7447, TypeM>, Enc_5ab2be { 15283let Inst{7-5} = 0b101; 15284let Inst{13-13} = 0b0; 15285let Inst{31-21} = 0b11101100000; 15286let hasNewValue = 1; 15287let opNewValue = 0; 15288let prefersSlot3 = 1; 15289let Defs = [USR_OVF]; 15290} 15291def M2_mpy_sat_lh_s1 : HInst< 15292(outs IntRegs:$Rd32), 15293(ins IntRegs:$Rs32, IntRegs:$Rt32), 15294"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat", 15295tc_c21d7447, TypeM>, Enc_5ab2be { 15296let Inst{7-5} = 0b101; 15297let Inst{13-13} = 0b0; 15298let Inst{31-21} = 0b11101100100; 15299let hasNewValue = 1; 15300let opNewValue = 0; 15301let prefersSlot3 = 1; 15302let Defs = [USR_OVF]; 15303} 15304def M2_mpy_sat_ll_s0 : HInst< 15305(outs IntRegs:$Rd32), 15306(ins IntRegs:$Rs32, IntRegs:$Rt32), 15307"$Rd32 = mpy($Rs32.l,$Rt32.l):sat", 15308tc_c21d7447, TypeM>, Enc_5ab2be { 15309let Inst{7-5} = 0b100; 15310let Inst{13-13} = 0b0; 15311let Inst{31-21} = 0b11101100000; 15312let hasNewValue = 1; 15313let opNewValue = 0; 15314let prefersSlot3 = 1; 15315let Defs = [USR_OVF]; 15316} 15317def M2_mpy_sat_ll_s1 : HInst< 15318(outs IntRegs:$Rd32), 15319(ins IntRegs:$Rs32, IntRegs:$Rt32), 15320"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat", 15321tc_c21d7447, TypeM>, Enc_5ab2be { 15322let Inst{7-5} = 0b100; 15323let Inst{13-13} = 0b0; 15324let Inst{31-21} = 0b11101100100; 15325let hasNewValue = 1; 15326let opNewValue = 0; 15327let prefersSlot3 = 1; 15328let Defs = [USR_OVF]; 15329} 15330def M2_mpy_sat_rnd_hh_s0 : HInst< 15331(outs IntRegs:$Rd32), 15332(ins IntRegs:$Rs32, IntRegs:$Rt32), 15333"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat", 15334tc_c21d7447, TypeM>, Enc_5ab2be { 15335let Inst{7-5} = 0b111; 15336let Inst{13-13} = 0b0; 15337let Inst{31-21} = 0b11101100001; 15338let hasNewValue = 1; 15339let opNewValue = 0; 15340let prefersSlot3 = 1; 15341let Defs = [USR_OVF]; 15342} 15343def M2_mpy_sat_rnd_hh_s1 : HInst< 15344(outs IntRegs:$Rd32), 15345(ins IntRegs:$Rs32, IntRegs:$Rt32), 15346"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat", 15347tc_c21d7447, TypeM>, Enc_5ab2be { 15348let Inst{7-5} = 0b111; 15349let Inst{13-13} = 0b0; 15350let Inst{31-21} = 0b11101100101; 15351let hasNewValue = 1; 15352let opNewValue = 0; 15353let prefersSlot3 = 1; 15354let Defs = [USR_OVF]; 15355} 15356def M2_mpy_sat_rnd_hl_s0 : HInst< 15357(outs IntRegs:$Rd32), 15358(ins IntRegs:$Rs32, IntRegs:$Rt32), 15359"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat", 15360tc_c21d7447, TypeM>, Enc_5ab2be { 15361let Inst{7-5} = 0b110; 15362let Inst{13-13} = 0b0; 15363let Inst{31-21} = 0b11101100001; 15364let hasNewValue = 1; 15365let opNewValue = 0; 15366let prefersSlot3 = 1; 15367let Defs = [USR_OVF]; 15368} 15369def M2_mpy_sat_rnd_hl_s1 : HInst< 15370(outs IntRegs:$Rd32), 15371(ins IntRegs:$Rs32, IntRegs:$Rt32), 15372"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat", 15373tc_c21d7447, TypeM>, Enc_5ab2be { 15374let Inst{7-5} = 0b110; 15375let Inst{13-13} = 0b0; 15376let Inst{31-21} = 0b11101100101; 15377let hasNewValue = 1; 15378let opNewValue = 0; 15379let prefersSlot3 = 1; 15380let Defs = [USR_OVF]; 15381} 15382def M2_mpy_sat_rnd_lh_s0 : HInst< 15383(outs IntRegs:$Rd32), 15384(ins IntRegs:$Rs32, IntRegs:$Rt32), 15385"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat", 15386tc_c21d7447, TypeM>, Enc_5ab2be { 15387let Inst{7-5} = 0b101; 15388let Inst{13-13} = 0b0; 15389let Inst{31-21} = 0b11101100001; 15390let hasNewValue = 1; 15391let opNewValue = 0; 15392let prefersSlot3 = 1; 15393let Defs = [USR_OVF]; 15394} 15395def M2_mpy_sat_rnd_lh_s1 : HInst< 15396(outs IntRegs:$Rd32), 15397(ins IntRegs:$Rs32, IntRegs:$Rt32), 15398"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat", 15399tc_c21d7447, TypeM>, Enc_5ab2be { 15400let Inst{7-5} = 0b101; 15401let Inst{13-13} = 0b0; 15402let Inst{31-21} = 0b11101100101; 15403let hasNewValue = 1; 15404let opNewValue = 0; 15405let prefersSlot3 = 1; 15406let Defs = [USR_OVF]; 15407} 15408def M2_mpy_sat_rnd_ll_s0 : HInst< 15409(outs IntRegs:$Rd32), 15410(ins IntRegs:$Rs32, IntRegs:$Rt32), 15411"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat", 15412tc_c21d7447, TypeM>, Enc_5ab2be { 15413let Inst{7-5} = 0b100; 15414let Inst{13-13} = 0b0; 15415let Inst{31-21} = 0b11101100001; 15416let hasNewValue = 1; 15417let opNewValue = 0; 15418let prefersSlot3 = 1; 15419let Defs = [USR_OVF]; 15420} 15421def M2_mpy_sat_rnd_ll_s1 : HInst< 15422(outs IntRegs:$Rd32), 15423(ins IntRegs:$Rs32, IntRegs:$Rt32), 15424"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat", 15425tc_c21d7447, TypeM>, Enc_5ab2be { 15426let Inst{7-5} = 0b100; 15427let Inst{13-13} = 0b0; 15428let Inst{31-21} = 0b11101100101; 15429let hasNewValue = 1; 15430let opNewValue = 0; 15431let prefersSlot3 = 1; 15432let Defs = [USR_OVF]; 15433} 15434def M2_mpy_up : HInst< 15435(outs IntRegs:$Rd32), 15436(ins IntRegs:$Rs32, IntRegs:$Rt32), 15437"$Rd32 = mpy($Rs32,$Rt32)", 15438tc_c21d7447, TypeM>, Enc_5ab2be { 15439let Inst{7-5} = 0b001; 15440let Inst{13-13} = 0b0; 15441let Inst{31-21} = 0b11101101000; 15442let hasNewValue = 1; 15443let opNewValue = 0; 15444let prefersSlot3 = 1; 15445} 15446def M2_mpy_up_s1 : HInst< 15447(outs IntRegs:$Rd32), 15448(ins IntRegs:$Rs32, IntRegs:$Rt32), 15449"$Rd32 = mpy($Rs32,$Rt32):<<1", 15450tc_c21d7447, TypeM>, Enc_5ab2be { 15451let Inst{7-5} = 0b010; 15452let Inst{13-13} = 0b0; 15453let Inst{31-21} = 0b11101101101; 15454let hasNewValue = 1; 15455let opNewValue = 0; 15456let prefersSlot3 = 1; 15457} 15458def M2_mpy_up_s1_sat : HInst< 15459(outs IntRegs:$Rd32), 15460(ins IntRegs:$Rs32, IntRegs:$Rt32), 15461"$Rd32 = mpy($Rs32,$Rt32):<<1:sat", 15462tc_c21d7447, TypeM>, Enc_5ab2be { 15463let Inst{7-5} = 0b000; 15464let Inst{13-13} = 0b0; 15465let Inst{31-21} = 0b11101101111; 15466let hasNewValue = 1; 15467let opNewValue = 0; 15468let prefersSlot3 = 1; 15469let Defs = [USR_OVF]; 15470} 15471def M2_mpyd_acc_hh_s0 : HInst< 15472(outs DoubleRegs:$Rxx32), 15473(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15474"$Rxx32 += mpy($Rs32.h,$Rt32.h)", 15475tc_7f8ae742, TypeM>, Enc_61f0b0 { 15476let Inst{7-5} = 0b011; 15477let Inst{13-13} = 0b0; 15478let Inst{31-21} = 0b11100110000; 15479let prefersSlot3 = 1; 15480let Constraints = "$Rxx32 = $Rxx32in"; 15481} 15482def M2_mpyd_acc_hh_s1 : HInst< 15483(outs DoubleRegs:$Rxx32), 15484(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15485"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1", 15486tc_7f8ae742, TypeM>, Enc_61f0b0 { 15487let Inst{7-5} = 0b011; 15488let Inst{13-13} = 0b0; 15489let Inst{31-21} = 0b11100110100; 15490let prefersSlot3 = 1; 15491let Constraints = "$Rxx32 = $Rxx32in"; 15492} 15493def M2_mpyd_acc_hl_s0 : HInst< 15494(outs DoubleRegs:$Rxx32), 15495(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15496"$Rxx32 += mpy($Rs32.h,$Rt32.l)", 15497tc_7f8ae742, TypeM>, Enc_61f0b0 { 15498let Inst{7-5} = 0b010; 15499let Inst{13-13} = 0b0; 15500let Inst{31-21} = 0b11100110000; 15501let prefersSlot3 = 1; 15502let Constraints = "$Rxx32 = $Rxx32in"; 15503} 15504def M2_mpyd_acc_hl_s1 : HInst< 15505(outs DoubleRegs:$Rxx32), 15506(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15507"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1", 15508tc_7f8ae742, TypeM>, Enc_61f0b0 { 15509let Inst{7-5} = 0b010; 15510let Inst{13-13} = 0b0; 15511let Inst{31-21} = 0b11100110100; 15512let prefersSlot3 = 1; 15513let Constraints = "$Rxx32 = $Rxx32in"; 15514} 15515def M2_mpyd_acc_lh_s0 : HInst< 15516(outs DoubleRegs:$Rxx32), 15517(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15518"$Rxx32 += mpy($Rs32.l,$Rt32.h)", 15519tc_7f8ae742, TypeM>, Enc_61f0b0 { 15520let Inst{7-5} = 0b001; 15521let Inst{13-13} = 0b0; 15522let Inst{31-21} = 0b11100110000; 15523let prefersSlot3 = 1; 15524let Constraints = "$Rxx32 = $Rxx32in"; 15525} 15526def M2_mpyd_acc_lh_s1 : HInst< 15527(outs DoubleRegs:$Rxx32), 15528(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15529"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1", 15530tc_7f8ae742, TypeM>, Enc_61f0b0 { 15531let Inst{7-5} = 0b001; 15532let Inst{13-13} = 0b0; 15533let Inst{31-21} = 0b11100110100; 15534let prefersSlot3 = 1; 15535let Constraints = "$Rxx32 = $Rxx32in"; 15536} 15537def M2_mpyd_acc_ll_s0 : HInst< 15538(outs DoubleRegs:$Rxx32), 15539(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15540"$Rxx32 += mpy($Rs32.l,$Rt32.l)", 15541tc_7f8ae742, TypeM>, Enc_61f0b0 { 15542let Inst{7-5} = 0b000; 15543let Inst{13-13} = 0b0; 15544let Inst{31-21} = 0b11100110000; 15545let prefersSlot3 = 1; 15546let Constraints = "$Rxx32 = $Rxx32in"; 15547} 15548def M2_mpyd_acc_ll_s1 : HInst< 15549(outs DoubleRegs:$Rxx32), 15550(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15551"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1", 15552tc_7f8ae742, TypeM>, Enc_61f0b0 { 15553let Inst{7-5} = 0b000; 15554let Inst{13-13} = 0b0; 15555let Inst{31-21} = 0b11100110100; 15556let prefersSlot3 = 1; 15557let Constraints = "$Rxx32 = $Rxx32in"; 15558} 15559def M2_mpyd_hh_s0 : HInst< 15560(outs DoubleRegs:$Rdd32), 15561(ins IntRegs:$Rs32, IntRegs:$Rt32), 15562"$Rdd32 = mpy($Rs32.h,$Rt32.h)", 15563tc_c21d7447, TypeM>, Enc_be32a5 { 15564let Inst{7-5} = 0b011; 15565let Inst{13-13} = 0b0; 15566let Inst{31-21} = 0b11100100000; 15567let prefersSlot3 = 1; 15568} 15569def M2_mpyd_hh_s1 : HInst< 15570(outs DoubleRegs:$Rdd32), 15571(ins IntRegs:$Rs32, IntRegs:$Rt32), 15572"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1", 15573tc_c21d7447, TypeM>, Enc_be32a5 { 15574let Inst{7-5} = 0b011; 15575let Inst{13-13} = 0b0; 15576let Inst{31-21} = 0b11100100100; 15577let prefersSlot3 = 1; 15578} 15579def M2_mpyd_hl_s0 : HInst< 15580(outs DoubleRegs:$Rdd32), 15581(ins IntRegs:$Rs32, IntRegs:$Rt32), 15582"$Rdd32 = mpy($Rs32.h,$Rt32.l)", 15583tc_c21d7447, TypeM>, Enc_be32a5 { 15584let Inst{7-5} = 0b010; 15585let Inst{13-13} = 0b0; 15586let Inst{31-21} = 0b11100100000; 15587let prefersSlot3 = 1; 15588} 15589def M2_mpyd_hl_s1 : HInst< 15590(outs DoubleRegs:$Rdd32), 15591(ins IntRegs:$Rs32, IntRegs:$Rt32), 15592"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1", 15593tc_c21d7447, TypeM>, Enc_be32a5 { 15594let Inst{7-5} = 0b010; 15595let Inst{13-13} = 0b0; 15596let Inst{31-21} = 0b11100100100; 15597let prefersSlot3 = 1; 15598} 15599def M2_mpyd_lh_s0 : HInst< 15600(outs DoubleRegs:$Rdd32), 15601(ins IntRegs:$Rs32, IntRegs:$Rt32), 15602"$Rdd32 = mpy($Rs32.l,$Rt32.h)", 15603tc_c21d7447, TypeM>, Enc_be32a5 { 15604let Inst{7-5} = 0b001; 15605let Inst{13-13} = 0b0; 15606let Inst{31-21} = 0b11100100000; 15607let prefersSlot3 = 1; 15608} 15609def M2_mpyd_lh_s1 : HInst< 15610(outs DoubleRegs:$Rdd32), 15611(ins IntRegs:$Rs32, IntRegs:$Rt32), 15612"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1", 15613tc_c21d7447, TypeM>, Enc_be32a5 { 15614let Inst{7-5} = 0b001; 15615let Inst{13-13} = 0b0; 15616let Inst{31-21} = 0b11100100100; 15617let prefersSlot3 = 1; 15618} 15619def M2_mpyd_ll_s0 : HInst< 15620(outs DoubleRegs:$Rdd32), 15621(ins IntRegs:$Rs32, IntRegs:$Rt32), 15622"$Rdd32 = mpy($Rs32.l,$Rt32.l)", 15623tc_c21d7447, TypeM>, Enc_be32a5 { 15624let Inst{7-5} = 0b000; 15625let Inst{13-13} = 0b0; 15626let Inst{31-21} = 0b11100100000; 15627let prefersSlot3 = 1; 15628} 15629def M2_mpyd_ll_s1 : HInst< 15630(outs DoubleRegs:$Rdd32), 15631(ins IntRegs:$Rs32, IntRegs:$Rt32), 15632"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1", 15633tc_c21d7447, TypeM>, Enc_be32a5 { 15634let Inst{7-5} = 0b000; 15635let Inst{13-13} = 0b0; 15636let Inst{31-21} = 0b11100100100; 15637let prefersSlot3 = 1; 15638} 15639def M2_mpyd_nac_hh_s0 : HInst< 15640(outs DoubleRegs:$Rxx32), 15641(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15642"$Rxx32 -= mpy($Rs32.h,$Rt32.h)", 15643tc_7f8ae742, TypeM>, Enc_61f0b0 { 15644let Inst{7-5} = 0b011; 15645let Inst{13-13} = 0b0; 15646let Inst{31-21} = 0b11100110001; 15647let prefersSlot3 = 1; 15648let Constraints = "$Rxx32 = $Rxx32in"; 15649} 15650def M2_mpyd_nac_hh_s1 : HInst< 15651(outs DoubleRegs:$Rxx32), 15652(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15653"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1", 15654tc_7f8ae742, TypeM>, Enc_61f0b0 { 15655let Inst{7-5} = 0b011; 15656let Inst{13-13} = 0b0; 15657let Inst{31-21} = 0b11100110101; 15658let prefersSlot3 = 1; 15659let Constraints = "$Rxx32 = $Rxx32in"; 15660} 15661def M2_mpyd_nac_hl_s0 : HInst< 15662(outs DoubleRegs:$Rxx32), 15663(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15664"$Rxx32 -= mpy($Rs32.h,$Rt32.l)", 15665tc_7f8ae742, TypeM>, Enc_61f0b0 { 15666let Inst{7-5} = 0b010; 15667let Inst{13-13} = 0b0; 15668let Inst{31-21} = 0b11100110001; 15669let prefersSlot3 = 1; 15670let Constraints = "$Rxx32 = $Rxx32in"; 15671} 15672def M2_mpyd_nac_hl_s1 : HInst< 15673(outs DoubleRegs:$Rxx32), 15674(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15675"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1", 15676tc_7f8ae742, TypeM>, Enc_61f0b0 { 15677let Inst{7-5} = 0b010; 15678let Inst{13-13} = 0b0; 15679let Inst{31-21} = 0b11100110101; 15680let prefersSlot3 = 1; 15681let Constraints = "$Rxx32 = $Rxx32in"; 15682} 15683def M2_mpyd_nac_lh_s0 : HInst< 15684(outs DoubleRegs:$Rxx32), 15685(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15686"$Rxx32 -= mpy($Rs32.l,$Rt32.h)", 15687tc_7f8ae742, TypeM>, Enc_61f0b0 { 15688let Inst{7-5} = 0b001; 15689let Inst{13-13} = 0b0; 15690let Inst{31-21} = 0b11100110001; 15691let prefersSlot3 = 1; 15692let Constraints = "$Rxx32 = $Rxx32in"; 15693} 15694def M2_mpyd_nac_lh_s1 : HInst< 15695(outs DoubleRegs:$Rxx32), 15696(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15697"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15698tc_7f8ae742, TypeM>, Enc_61f0b0 { 15699let Inst{7-5} = 0b001; 15700let Inst{13-13} = 0b0; 15701let Inst{31-21} = 0b11100110101; 15702let prefersSlot3 = 1; 15703let Constraints = "$Rxx32 = $Rxx32in"; 15704} 15705def M2_mpyd_nac_ll_s0 : HInst< 15706(outs DoubleRegs:$Rxx32), 15707(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15708"$Rxx32 -= mpy($Rs32.l,$Rt32.l)", 15709tc_7f8ae742, TypeM>, Enc_61f0b0 { 15710let Inst{7-5} = 0b000; 15711let Inst{13-13} = 0b0; 15712let Inst{31-21} = 0b11100110001; 15713let prefersSlot3 = 1; 15714let Constraints = "$Rxx32 = $Rxx32in"; 15715} 15716def M2_mpyd_nac_ll_s1 : HInst< 15717(outs DoubleRegs:$Rxx32), 15718(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15719"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15720tc_7f8ae742, TypeM>, Enc_61f0b0 { 15721let Inst{7-5} = 0b000; 15722let Inst{13-13} = 0b0; 15723let Inst{31-21} = 0b11100110101; 15724let prefersSlot3 = 1; 15725let Constraints = "$Rxx32 = $Rxx32in"; 15726} 15727def M2_mpyd_rnd_hh_s0 : HInst< 15728(outs DoubleRegs:$Rdd32), 15729(ins IntRegs:$Rs32, IntRegs:$Rt32), 15730"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd", 15731tc_c21d7447, TypeM>, Enc_be32a5 { 15732let Inst{7-5} = 0b011; 15733let Inst{13-13} = 0b0; 15734let Inst{31-21} = 0b11100100001; 15735let prefersSlot3 = 1; 15736} 15737def M2_mpyd_rnd_hh_s1 : HInst< 15738(outs DoubleRegs:$Rdd32), 15739(ins IntRegs:$Rs32, IntRegs:$Rt32), 15740"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15741tc_c21d7447, TypeM>, Enc_be32a5 { 15742let Inst{7-5} = 0b011; 15743let Inst{13-13} = 0b0; 15744let Inst{31-21} = 0b11100100101; 15745let prefersSlot3 = 1; 15746} 15747def M2_mpyd_rnd_hl_s0 : HInst< 15748(outs DoubleRegs:$Rdd32), 15749(ins IntRegs:$Rs32, IntRegs:$Rt32), 15750"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd", 15751tc_c21d7447, TypeM>, Enc_be32a5 { 15752let Inst{7-5} = 0b010; 15753let Inst{13-13} = 0b0; 15754let Inst{31-21} = 0b11100100001; 15755let prefersSlot3 = 1; 15756} 15757def M2_mpyd_rnd_hl_s1 : HInst< 15758(outs DoubleRegs:$Rdd32), 15759(ins IntRegs:$Rs32, IntRegs:$Rt32), 15760"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15761tc_c21d7447, TypeM>, Enc_be32a5 { 15762let Inst{7-5} = 0b010; 15763let Inst{13-13} = 0b0; 15764let Inst{31-21} = 0b11100100101; 15765let prefersSlot3 = 1; 15766} 15767def M2_mpyd_rnd_lh_s0 : HInst< 15768(outs DoubleRegs:$Rdd32), 15769(ins IntRegs:$Rs32, IntRegs:$Rt32), 15770"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd", 15771tc_c21d7447, TypeM>, Enc_be32a5 { 15772let Inst{7-5} = 0b001; 15773let Inst{13-13} = 0b0; 15774let Inst{31-21} = 0b11100100001; 15775let prefersSlot3 = 1; 15776} 15777def M2_mpyd_rnd_lh_s1 : HInst< 15778(outs DoubleRegs:$Rdd32), 15779(ins IntRegs:$Rs32, IntRegs:$Rt32), 15780"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15781tc_c21d7447, TypeM>, Enc_be32a5 { 15782let Inst{7-5} = 0b001; 15783let Inst{13-13} = 0b0; 15784let Inst{31-21} = 0b11100100101; 15785let prefersSlot3 = 1; 15786} 15787def M2_mpyd_rnd_ll_s0 : HInst< 15788(outs DoubleRegs:$Rdd32), 15789(ins IntRegs:$Rs32, IntRegs:$Rt32), 15790"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd", 15791tc_c21d7447, TypeM>, Enc_be32a5 { 15792let Inst{7-5} = 0b000; 15793let Inst{13-13} = 0b0; 15794let Inst{31-21} = 0b11100100001; 15795let prefersSlot3 = 1; 15796} 15797def M2_mpyd_rnd_ll_s1 : HInst< 15798(outs DoubleRegs:$Rdd32), 15799(ins IntRegs:$Rs32, IntRegs:$Rt32), 15800"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15801tc_c21d7447, TypeM>, Enc_be32a5 { 15802let Inst{7-5} = 0b000; 15803let Inst{13-13} = 0b0; 15804let Inst{31-21} = 0b11100100101; 15805let prefersSlot3 = 1; 15806} 15807def M2_mpyi : HInst< 15808(outs IntRegs:$Rd32), 15809(ins IntRegs:$Rs32, IntRegs:$Rt32), 15810"$Rd32 = mpyi($Rs32,$Rt32)", 15811tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel { 15812let Inst{7-5} = 0b000; 15813let Inst{13-13} = 0b0; 15814let Inst{31-21} = 0b11101101000; 15815let hasNewValue = 1; 15816let opNewValue = 0; 15817let prefersSlot3 = 1; 15818let CextOpcode = "M2_mpyi"; 15819let InputType = "reg"; 15820} 15821def M2_mpysin : HInst< 15822(outs IntRegs:$Rd32), 15823(ins IntRegs:$Rs32, u8_0Imm:$Ii), 15824"$Rd32 = -mpyi($Rs32,#$Ii)", 15825tc_38382228, TypeM>, Enc_b8c967 { 15826let Inst{13-13} = 0b0; 15827let Inst{31-21} = 0b11100000100; 15828let hasNewValue = 1; 15829let opNewValue = 0; 15830let prefersSlot3 = 1; 15831} 15832def M2_mpysip : HInst< 15833(outs IntRegs:$Rd32), 15834(ins IntRegs:$Rs32, u32_0Imm:$Ii), 15835"$Rd32 = +mpyi($Rs32,#$Ii)", 15836tc_38382228, TypeM>, Enc_b8c967 { 15837let Inst{13-13} = 0b0; 15838let Inst{31-21} = 0b11100000000; 15839let hasNewValue = 1; 15840let opNewValue = 0; 15841let prefersSlot3 = 1; 15842let isExtendable = 1; 15843let opExtendable = 2; 15844let isExtentSigned = 0; 15845let opExtentBits = 8; 15846let opExtentAlign = 0; 15847} 15848def M2_mpysmi : HInst< 15849(outs IntRegs:$Rd32), 15850(ins IntRegs:$Rs32, m32_0Imm:$Ii), 15851"$Rd32 = mpyi($Rs32,#$Ii)", 15852tc_38382228, TypeM>, ImmRegRel { 15853let hasNewValue = 1; 15854let opNewValue = 0; 15855let CextOpcode = "M2_mpyi"; 15856let InputType = "imm"; 15857let isPseudo = 1; 15858let isExtendable = 1; 15859let opExtendable = 2; 15860let isExtentSigned = 1; 15861let opExtentBits = 9; 15862let opExtentAlign = 0; 15863} 15864def M2_mpysu_up : HInst< 15865(outs IntRegs:$Rd32), 15866(ins IntRegs:$Rs32, IntRegs:$Rt32), 15867"$Rd32 = mpysu($Rs32,$Rt32)", 15868tc_c21d7447, TypeM>, Enc_5ab2be { 15869let Inst{7-5} = 0b001; 15870let Inst{13-13} = 0b0; 15871let Inst{31-21} = 0b11101101011; 15872let hasNewValue = 1; 15873let opNewValue = 0; 15874let prefersSlot3 = 1; 15875} 15876def M2_mpyu_acc_hh_s0 : HInst< 15877(outs IntRegs:$Rx32), 15878(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15879"$Rx32 += mpyu($Rs32.h,$Rt32.h)", 15880tc_7f8ae742, TypeM>, Enc_2ae154 { 15881let Inst{7-5} = 0b011; 15882let Inst{13-13} = 0b0; 15883let Inst{31-21} = 0b11101110010; 15884let hasNewValue = 1; 15885let opNewValue = 0; 15886let prefersSlot3 = 1; 15887let Constraints = "$Rx32 = $Rx32in"; 15888} 15889def M2_mpyu_acc_hh_s1 : HInst< 15890(outs IntRegs:$Rx32), 15891(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15892"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1", 15893tc_7f8ae742, TypeM>, Enc_2ae154 { 15894let Inst{7-5} = 0b011; 15895let Inst{13-13} = 0b0; 15896let Inst{31-21} = 0b11101110110; 15897let hasNewValue = 1; 15898let opNewValue = 0; 15899let prefersSlot3 = 1; 15900let Constraints = "$Rx32 = $Rx32in"; 15901} 15902def M2_mpyu_acc_hl_s0 : HInst< 15903(outs IntRegs:$Rx32), 15904(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15905"$Rx32 += mpyu($Rs32.h,$Rt32.l)", 15906tc_7f8ae742, TypeM>, Enc_2ae154 { 15907let Inst{7-5} = 0b010; 15908let Inst{13-13} = 0b0; 15909let Inst{31-21} = 0b11101110010; 15910let hasNewValue = 1; 15911let opNewValue = 0; 15912let prefersSlot3 = 1; 15913let Constraints = "$Rx32 = $Rx32in"; 15914} 15915def M2_mpyu_acc_hl_s1 : HInst< 15916(outs IntRegs:$Rx32), 15917(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15918"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1", 15919tc_7f8ae742, TypeM>, Enc_2ae154 { 15920let Inst{7-5} = 0b010; 15921let Inst{13-13} = 0b0; 15922let Inst{31-21} = 0b11101110110; 15923let hasNewValue = 1; 15924let opNewValue = 0; 15925let prefersSlot3 = 1; 15926let Constraints = "$Rx32 = $Rx32in"; 15927} 15928def M2_mpyu_acc_lh_s0 : HInst< 15929(outs IntRegs:$Rx32), 15930(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15931"$Rx32 += mpyu($Rs32.l,$Rt32.h)", 15932tc_7f8ae742, TypeM>, Enc_2ae154 { 15933let Inst{7-5} = 0b001; 15934let Inst{13-13} = 0b0; 15935let Inst{31-21} = 0b11101110010; 15936let hasNewValue = 1; 15937let opNewValue = 0; 15938let prefersSlot3 = 1; 15939let Constraints = "$Rx32 = $Rx32in"; 15940} 15941def M2_mpyu_acc_lh_s1 : HInst< 15942(outs IntRegs:$Rx32), 15943(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15944"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1", 15945tc_7f8ae742, TypeM>, Enc_2ae154 { 15946let Inst{7-5} = 0b001; 15947let Inst{13-13} = 0b0; 15948let Inst{31-21} = 0b11101110110; 15949let hasNewValue = 1; 15950let opNewValue = 0; 15951let prefersSlot3 = 1; 15952let Constraints = "$Rx32 = $Rx32in"; 15953} 15954def M2_mpyu_acc_ll_s0 : HInst< 15955(outs IntRegs:$Rx32), 15956(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15957"$Rx32 += mpyu($Rs32.l,$Rt32.l)", 15958tc_7f8ae742, TypeM>, Enc_2ae154 { 15959let Inst{7-5} = 0b000; 15960let Inst{13-13} = 0b0; 15961let Inst{31-21} = 0b11101110010; 15962let hasNewValue = 1; 15963let opNewValue = 0; 15964let prefersSlot3 = 1; 15965let Constraints = "$Rx32 = $Rx32in"; 15966} 15967def M2_mpyu_acc_ll_s1 : HInst< 15968(outs IntRegs:$Rx32), 15969(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15970"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1", 15971tc_7f8ae742, TypeM>, Enc_2ae154 { 15972let Inst{7-5} = 0b000; 15973let Inst{13-13} = 0b0; 15974let Inst{31-21} = 0b11101110110; 15975let hasNewValue = 1; 15976let opNewValue = 0; 15977let prefersSlot3 = 1; 15978let Constraints = "$Rx32 = $Rx32in"; 15979} 15980def M2_mpyu_hh_s0 : HInst< 15981(outs IntRegs:$Rd32), 15982(ins IntRegs:$Rs32, IntRegs:$Rt32), 15983"$Rd32 = mpyu($Rs32.h,$Rt32.h)", 15984tc_c21d7447, TypeM>, Enc_5ab2be { 15985let Inst{7-5} = 0b011; 15986let Inst{13-13} = 0b0; 15987let Inst{31-21} = 0b11101100010; 15988let hasNewValue = 1; 15989let opNewValue = 0; 15990let prefersSlot3 = 1; 15991} 15992def M2_mpyu_hh_s1 : HInst< 15993(outs IntRegs:$Rd32), 15994(ins IntRegs:$Rs32, IntRegs:$Rt32), 15995"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1", 15996tc_c21d7447, TypeM>, Enc_5ab2be { 15997let Inst{7-5} = 0b011; 15998let Inst{13-13} = 0b0; 15999let Inst{31-21} = 0b11101100110; 16000let hasNewValue = 1; 16001let opNewValue = 0; 16002let prefersSlot3 = 1; 16003} 16004def M2_mpyu_hl_s0 : HInst< 16005(outs IntRegs:$Rd32), 16006(ins IntRegs:$Rs32, IntRegs:$Rt32), 16007"$Rd32 = mpyu($Rs32.h,$Rt32.l)", 16008tc_c21d7447, TypeM>, Enc_5ab2be { 16009let Inst{7-5} = 0b010; 16010let Inst{13-13} = 0b0; 16011let Inst{31-21} = 0b11101100010; 16012let hasNewValue = 1; 16013let opNewValue = 0; 16014let prefersSlot3 = 1; 16015} 16016def M2_mpyu_hl_s1 : HInst< 16017(outs IntRegs:$Rd32), 16018(ins IntRegs:$Rs32, IntRegs:$Rt32), 16019"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16020tc_c21d7447, TypeM>, Enc_5ab2be { 16021let Inst{7-5} = 0b010; 16022let Inst{13-13} = 0b0; 16023let Inst{31-21} = 0b11101100110; 16024let hasNewValue = 1; 16025let opNewValue = 0; 16026let prefersSlot3 = 1; 16027} 16028def M2_mpyu_lh_s0 : HInst< 16029(outs IntRegs:$Rd32), 16030(ins IntRegs:$Rs32, IntRegs:$Rt32), 16031"$Rd32 = mpyu($Rs32.l,$Rt32.h)", 16032tc_c21d7447, TypeM>, Enc_5ab2be { 16033let Inst{7-5} = 0b001; 16034let Inst{13-13} = 0b0; 16035let Inst{31-21} = 0b11101100010; 16036let hasNewValue = 1; 16037let opNewValue = 0; 16038let prefersSlot3 = 1; 16039} 16040def M2_mpyu_lh_s1 : HInst< 16041(outs IntRegs:$Rd32), 16042(ins IntRegs:$Rs32, IntRegs:$Rt32), 16043"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16044tc_c21d7447, TypeM>, Enc_5ab2be { 16045let Inst{7-5} = 0b001; 16046let Inst{13-13} = 0b0; 16047let Inst{31-21} = 0b11101100110; 16048let hasNewValue = 1; 16049let opNewValue = 0; 16050let prefersSlot3 = 1; 16051} 16052def M2_mpyu_ll_s0 : HInst< 16053(outs IntRegs:$Rd32), 16054(ins IntRegs:$Rs32, IntRegs:$Rt32), 16055"$Rd32 = mpyu($Rs32.l,$Rt32.l)", 16056tc_c21d7447, TypeM>, Enc_5ab2be { 16057let Inst{7-5} = 0b000; 16058let Inst{13-13} = 0b0; 16059let Inst{31-21} = 0b11101100010; 16060let hasNewValue = 1; 16061let opNewValue = 0; 16062let prefersSlot3 = 1; 16063} 16064def M2_mpyu_ll_s1 : HInst< 16065(outs IntRegs:$Rd32), 16066(ins IntRegs:$Rs32, IntRegs:$Rt32), 16067"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16068tc_c21d7447, TypeM>, Enc_5ab2be { 16069let Inst{7-5} = 0b000; 16070let Inst{13-13} = 0b0; 16071let Inst{31-21} = 0b11101100110; 16072let hasNewValue = 1; 16073let opNewValue = 0; 16074let prefersSlot3 = 1; 16075} 16076def M2_mpyu_nac_hh_s0 : HInst< 16077(outs IntRegs:$Rx32), 16078(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16079"$Rx32 -= mpyu($Rs32.h,$Rt32.h)", 16080tc_7f8ae742, TypeM>, Enc_2ae154 { 16081let Inst{7-5} = 0b011; 16082let Inst{13-13} = 0b0; 16083let Inst{31-21} = 0b11101110011; 16084let hasNewValue = 1; 16085let opNewValue = 0; 16086let prefersSlot3 = 1; 16087let Constraints = "$Rx32 = $Rx32in"; 16088} 16089def M2_mpyu_nac_hh_s1 : HInst< 16090(outs IntRegs:$Rx32), 16091(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16092"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16093tc_7f8ae742, TypeM>, Enc_2ae154 { 16094let Inst{7-5} = 0b011; 16095let Inst{13-13} = 0b0; 16096let Inst{31-21} = 0b11101110111; 16097let hasNewValue = 1; 16098let opNewValue = 0; 16099let prefersSlot3 = 1; 16100let Constraints = "$Rx32 = $Rx32in"; 16101} 16102def M2_mpyu_nac_hl_s0 : HInst< 16103(outs IntRegs:$Rx32), 16104(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16105"$Rx32 -= mpyu($Rs32.h,$Rt32.l)", 16106tc_7f8ae742, TypeM>, Enc_2ae154 { 16107let Inst{7-5} = 0b010; 16108let Inst{13-13} = 0b0; 16109let Inst{31-21} = 0b11101110011; 16110let hasNewValue = 1; 16111let opNewValue = 0; 16112let prefersSlot3 = 1; 16113let Constraints = "$Rx32 = $Rx32in"; 16114} 16115def M2_mpyu_nac_hl_s1 : HInst< 16116(outs IntRegs:$Rx32), 16117(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16118"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16119tc_7f8ae742, TypeM>, Enc_2ae154 { 16120let Inst{7-5} = 0b010; 16121let Inst{13-13} = 0b0; 16122let Inst{31-21} = 0b11101110111; 16123let hasNewValue = 1; 16124let opNewValue = 0; 16125let prefersSlot3 = 1; 16126let Constraints = "$Rx32 = $Rx32in"; 16127} 16128def M2_mpyu_nac_lh_s0 : HInst< 16129(outs IntRegs:$Rx32), 16130(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16131"$Rx32 -= mpyu($Rs32.l,$Rt32.h)", 16132tc_7f8ae742, TypeM>, Enc_2ae154 { 16133let Inst{7-5} = 0b001; 16134let Inst{13-13} = 0b0; 16135let Inst{31-21} = 0b11101110011; 16136let hasNewValue = 1; 16137let opNewValue = 0; 16138let prefersSlot3 = 1; 16139let Constraints = "$Rx32 = $Rx32in"; 16140} 16141def M2_mpyu_nac_lh_s1 : HInst< 16142(outs IntRegs:$Rx32), 16143(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16144"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16145tc_7f8ae742, TypeM>, Enc_2ae154 { 16146let Inst{7-5} = 0b001; 16147let Inst{13-13} = 0b0; 16148let Inst{31-21} = 0b11101110111; 16149let hasNewValue = 1; 16150let opNewValue = 0; 16151let prefersSlot3 = 1; 16152let Constraints = "$Rx32 = $Rx32in"; 16153} 16154def M2_mpyu_nac_ll_s0 : HInst< 16155(outs IntRegs:$Rx32), 16156(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16157"$Rx32 -= mpyu($Rs32.l,$Rt32.l)", 16158tc_7f8ae742, TypeM>, Enc_2ae154 { 16159let Inst{7-5} = 0b000; 16160let Inst{13-13} = 0b0; 16161let Inst{31-21} = 0b11101110011; 16162let hasNewValue = 1; 16163let opNewValue = 0; 16164let prefersSlot3 = 1; 16165let Constraints = "$Rx32 = $Rx32in"; 16166} 16167def M2_mpyu_nac_ll_s1 : HInst< 16168(outs IntRegs:$Rx32), 16169(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16170"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16171tc_7f8ae742, TypeM>, Enc_2ae154 { 16172let Inst{7-5} = 0b000; 16173let Inst{13-13} = 0b0; 16174let Inst{31-21} = 0b11101110111; 16175let hasNewValue = 1; 16176let opNewValue = 0; 16177let prefersSlot3 = 1; 16178let Constraints = "$Rx32 = $Rx32in"; 16179} 16180def M2_mpyu_up : HInst< 16181(outs IntRegs:$Rd32), 16182(ins IntRegs:$Rs32, IntRegs:$Rt32), 16183"$Rd32 = mpyu($Rs32,$Rt32)", 16184tc_c21d7447, TypeM>, Enc_5ab2be { 16185let Inst{7-5} = 0b001; 16186let Inst{13-13} = 0b0; 16187let Inst{31-21} = 0b11101101010; 16188let hasNewValue = 1; 16189let opNewValue = 0; 16190let prefersSlot3 = 1; 16191} 16192def M2_mpyud_acc_hh_s0 : HInst< 16193(outs DoubleRegs:$Rxx32), 16194(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16195"$Rxx32 += mpyu($Rs32.h,$Rt32.h)", 16196tc_7f8ae742, TypeM>, Enc_61f0b0 { 16197let Inst{7-5} = 0b011; 16198let Inst{13-13} = 0b0; 16199let Inst{31-21} = 0b11100110010; 16200let prefersSlot3 = 1; 16201let Constraints = "$Rxx32 = $Rxx32in"; 16202} 16203def M2_mpyud_acc_hh_s1 : HInst< 16204(outs DoubleRegs:$Rxx32), 16205(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16206"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1", 16207tc_7f8ae742, TypeM>, Enc_61f0b0 { 16208let Inst{7-5} = 0b011; 16209let Inst{13-13} = 0b0; 16210let Inst{31-21} = 0b11100110110; 16211let prefersSlot3 = 1; 16212let Constraints = "$Rxx32 = $Rxx32in"; 16213} 16214def M2_mpyud_acc_hl_s0 : HInst< 16215(outs DoubleRegs:$Rxx32), 16216(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16217"$Rxx32 += mpyu($Rs32.h,$Rt32.l)", 16218tc_7f8ae742, TypeM>, Enc_61f0b0 { 16219let Inst{7-5} = 0b010; 16220let Inst{13-13} = 0b0; 16221let Inst{31-21} = 0b11100110010; 16222let prefersSlot3 = 1; 16223let Constraints = "$Rxx32 = $Rxx32in"; 16224} 16225def M2_mpyud_acc_hl_s1 : HInst< 16226(outs DoubleRegs:$Rxx32), 16227(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16228"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1", 16229tc_7f8ae742, TypeM>, Enc_61f0b0 { 16230let Inst{7-5} = 0b010; 16231let Inst{13-13} = 0b0; 16232let Inst{31-21} = 0b11100110110; 16233let prefersSlot3 = 1; 16234let Constraints = "$Rxx32 = $Rxx32in"; 16235} 16236def M2_mpyud_acc_lh_s0 : HInst< 16237(outs DoubleRegs:$Rxx32), 16238(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16239"$Rxx32 += mpyu($Rs32.l,$Rt32.h)", 16240tc_7f8ae742, TypeM>, Enc_61f0b0 { 16241let Inst{7-5} = 0b001; 16242let Inst{13-13} = 0b0; 16243let Inst{31-21} = 0b11100110010; 16244let prefersSlot3 = 1; 16245let Constraints = "$Rxx32 = $Rxx32in"; 16246} 16247def M2_mpyud_acc_lh_s1 : HInst< 16248(outs DoubleRegs:$Rxx32), 16249(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16250"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1", 16251tc_7f8ae742, TypeM>, Enc_61f0b0 { 16252let Inst{7-5} = 0b001; 16253let Inst{13-13} = 0b0; 16254let Inst{31-21} = 0b11100110110; 16255let prefersSlot3 = 1; 16256let Constraints = "$Rxx32 = $Rxx32in"; 16257} 16258def M2_mpyud_acc_ll_s0 : HInst< 16259(outs DoubleRegs:$Rxx32), 16260(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16261"$Rxx32 += mpyu($Rs32.l,$Rt32.l)", 16262tc_7f8ae742, TypeM>, Enc_61f0b0 { 16263let Inst{7-5} = 0b000; 16264let Inst{13-13} = 0b0; 16265let Inst{31-21} = 0b11100110010; 16266let prefersSlot3 = 1; 16267let Constraints = "$Rxx32 = $Rxx32in"; 16268} 16269def M2_mpyud_acc_ll_s1 : HInst< 16270(outs DoubleRegs:$Rxx32), 16271(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16272"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1", 16273tc_7f8ae742, TypeM>, Enc_61f0b0 { 16274let Inst{7-5} = 0b000; 16275let Inst{13-13} = 0b0; 16276let Inst{31-21} = 0b11100110110; 16277let prefersSlot3 = 1; 16278let Constraints = "$Rxx32 = $Rxx32in"; 16279} 16280def M2_mpyud_hh_s0 : HInst< 16281(outs DoubleRegs:$Rdd32), 16282(ins IntRegs:$Rs32, IntRegs:$Rt32), 16283"$Rdd32 = mpyu($Rs32.h,$Rt32.h)", 16284tc_c21d7447, TypeM>, Enc_be32a5 { 16285let Inst{7-5} = 0b011; 16286let Inst{13-13} = 0b0; 16287let Inst{31-21} = 0b11100100010; 16288let prefersSlot3 = 1; 16289} 16290def M2_mpyud_hh_s1 : HInst< 16291(outs DoubleRegs:$Rdd32), 16292(ins IntRegs:$Rs32, IntRegs:$Rt32), 16293"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16294tc_c21d7447, TypeM>, Enc_be32a5 { 16295let Inst{7-5} = 0b011; 16296let Inst{13-13} = 0b0; 16297let Inst{31-21} = 0b11100100110; 16298let prefersSlot3 = 1; 16299} 16300def M2_mpyud_hl_s0 : HInst< 16301(outs DoubleRegs:$Rdd32), 16302(ins IntRegs:$Rs32, IntRegs:$Rt32), 16303"$Rdd32 = mpyu($Rs32.h,$Rt32.l)", 16304tc_c21d7447, TypeM>, Enc_be32a5 { 16305let Inst{7-5} = 0b010; 16306let Inst{13-13} = 0b0; 16307let Inst{31-21} = 0b11100100010; 16308let prefersSlot3 = 1; 16309} 16310def M2_mpyud_hl_s1 : HInst< 16311(outs DoubleRegs:$Rdd32), 16312(ins IntRegs:$Rs32, IntRegs:$Rt32), 16313"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16314tc_c21d7447, TypeM>, Enc_be32a5 { 16315let Inst{7-5} = 0b010; 16316let Inst{13-13} = 0b0; 16317let Inst{31-21} = 0b11100100110; 16318let prefersSlot3 = 1; 16319} 16320def M2_mpyud_lh_s0 : HInst< 16321(outs DoubleRegs:$Rdd32), 16322(ins IntRegs:$Rs32, IntRegs:$Rt32), 16323"$Rdd32 = mpyu($Rs32.l,$Rt32.h)", 16324tc_c21d7447, TypeM>, Enc_be32a5 { 16325let Inst{7-5} = 0b001; 16326let Inst{13-13} = 0b0; 16327let Inst{31-21} = 0b11100100010; 16328let prefersSlot3 = 1; 16329} 16330def M2_mpyud_lh_s1 : HInst< 16331(outs DoubleRegs:$Rdd32), 16332(ins IntRegs:$Rs32, IntRegs:$Rt32), 16333"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16334tc_c21d7447, TypeM>, Enc_be32a5 { 16335let Inst{7-5} = 0b001; 16336let Inst{13-13} = 0b0; 16337let Inst{31-21} = 0b11100100110; 16338let prefersSlot3 = 1; 16339} 16340def M2_mpyud_ll_s0 : HInst< 16341(outs DoubleRegs:$Rdd32), 16342(ins IntRegs:$Rs32, IntRegs:$Rt32), 16343"$Rdd32 = mpyu($Rs32.l,$Rt32.l)", 16344tc_c21d7447, TypeM>, Enc_be32a5 { 16345let Inst{7-5} = 0b000; 16346let Inst{13-13} = 0b0; 16347let Inst{31-21} = 0b11100100010; 16348let prefersSlot3 = 1; 16349} 16350def M2_mpyud_ll_s1 : HInst< 16351(outs DoubleRegs:$Rdd32), 16352(ins IntRegs:$Rs32, IntRegs:$Rt32), 16353"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16354tc_c21d7447, TypeM>, Enc_be32a5 { 16355let Inst{7-5} = 0b000; 16356let Inst{13-13} = 0b0; 16357let Inst{31-21} = 0b11100100110; 16358let prefersSlot3 = 1; 16359} 16360def M2_mpyud_nac_hh_s0 : HInst< 16361(outs DoubleRegs:$Rxx32), 16362(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16363"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)", 16364tc_7f8ae742, TypeM>, Enc_61f0b0 { 16365let Inst{7-5} = 0b011; 16366let Inst{13-13} = 0b0; 16367let Inst{31-21} = 0b11100110011; 16368let prefersSlot3 = 1; 16369let Constraints = "$Rxx32 = $Rxx32in"; 16370} 16371def M2_mpyud_nac_hh_s1 : HInst< 16372(outs DoubleRegs:$Rxx32), 16373(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16374"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16375tc_7f8ae742, TypeM>, Enc_61f0b0 { 16376let Inst{7-5} = 0b011; 16377let Inst{13-13} = 0b0; 16378let Inst{31-21} = 0b11100110111; 16379let prefersSlot3 = 1; 16380let Constraints = "$Rxx32 = $Rxx32in"; 16381} 16382def M2_mpyud_nac_hl_s0 : HInst< 16383(outs DoubleRegs:$Rxx32), 16384(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16385"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)", 16386tc_7f8ae742, TypeM>, Enc_61f0b0 { 16387let Inst{7-5} = 0b010; 16388let Inst{13-13} = 0b0; 16389let Inst{31-21} = 0b11100110011; 16390let prefersSlot3 = 1; 16391let Constraints = "$Rxx32 = $Rxx32in"; 16392} 16393def M2_mpyud_nac_hl_s1 : HInst< 16394(outs DoubleRegs:$Rxx32), 16395(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16396"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16397tc_7f8ae742, TypeM>, Enc_61f0b0 { 16398let Inst{7-5} = 0b010; 16399let Inst{13-13} = 0b0; 16400let Inst{31-21} = 0b11100110111; 16401let prefersSlot3 = 1; 16402let Constraints = "$Rxx32 = $Rxx32in"; 16403} 16404def M2_mpyud_nac_lh_s0 : HInst< 16405(outs DoubleRegs:$Rxx32), 16406(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16407"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)", 16408tc_7f8ae742, TypeM>, Enc_61f0b0 { 16409let Inst{7-5} = 0b001; 16410let Inst{13-13} = 0b0; 16411let Inst{31-21} = 0b11100110011; 16412let prefersSlot3 = 1; 16413let Constraints = "$Rxx32 = $Rxx32in"; 16414} 16415def M2_mpyud_nac_lh_s1 : HInst< 16416(outs DoubleRegs:$Rxx32), 16417(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16418"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16419tc_7f8ae742, TypeM>, Enc_61f0b0 { 16420let Inst{7-5} = 0b001; 16421let Inst{13-13} = 0b0; 16422let Inst{31-21} = 0b11100110111; 16423let prefersSlot3 = 1; 16424let Constraints = "$Rxx32 = $Rxx32in"; 16425} 16426def M2_mpyud_nac_ll_s0 : HInst< 16427(outs DoubleRegs:$Rxx32), 16428(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16429"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)", 16430tc_7f8ae742, TypeM>, Enc_61f0b0 { 16431let Inst{7-5} = 0b000; 16432let Inst{13-13} = 0b0; 16433let Inst{31-21} = 0b11100110011; 16434let prefersSlot3 = 1; 16435let Constraints = "$Rxx32 = $Rxx32in"; 16436} 16437def M2_mpyud_nac_ll_s1 : HInst< 16438(outs DoubleRegs:$Rxx32), 16439(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16440"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16441tc_7f8ae742, TypeM>, Enc_61f0b0 { 16442let Inst{7-5} = 0b000; 16443let Inst{13-13} = 0b0; 16444let Inst{31-21} = 0b11100110111; 16445let prefersSlot3 = 1; 16446let Constraints = "$Rxx32 = $Rxx32in"; 16447} 16448def M2_mpyui : HInst< 16449(outs IntRegs:$Rd32), 16450(ins IntRegs:$Rs32, IntRegs:$Rt32), 16451"$Rd32 = mpyui($Rs32,$Rt32)", 16452tc_c21d7447, TypeM> { 16453let hasNewValue = 1; 16454let opNewValue = 0; 16455let isPseudo = 1; 16456let isCodeGenOnly = 1; 16457} 16458def M2_nacci : HInst< 16459(outs IntRegs:$Rx32), 16460(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16461"$Rx32 -= add($Rs32,$Rt32)", 16462tc_2c13e7f5, TypeM>, Enc_2ae154 { 16463let Inst{7-5} = 0b001; 16464let Inst{13-13} = 0b0; 16465let Inst{31-21} = 0b11101111100; 16466let hasNewValue = 1; 16467let opNewValue = 0; 16468let prefersSlot3 = 1; 16469let InputType = "reg"; 16470let Constraints = "$Rx32 = $Rx32in"; 16471} 16472def M2_naccii : HInst< 16473(outs IntRegs:$Rx32), 16474(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 16475"$Rx32 -= add($Rs32,#$Ii)", 16476tc_2c13e7f5, TypeM>, Enc_c90aca { 16477let Inst{13-13} = 0b0; 16478let Inst{31-21} = 0b11100010100; 16479let hasNewValue = 1; 16480let opNewValue = 0; 16481let prefersSlot3 = 1; 16482let InputType = "imm"; 16483let isExtendable = 1; 16484let opExtendable = 3; 16485let isExtentSigned = 1; 16486let opExtentBits = 8; 16487let opExtentAlign = 0; 16488let Constraints = "$Rx32 = $Rx32in"; 16489} 16490def M2_subacc : HInst< 16491(outs IntRegs:$Rx32), 16492(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32), 16493"$Rx32 += sub($Rt32,$Rs32)", 16494tc_2c13e7f5, TypeM>, Enc_a568d4 { 16495let Inst{7-5} = 0b011; 16496let Inst{13-13} = 0b0; 16497let Inst{31-21} = 0b11101111000; 16498let hasNewValue = 1; 16499let opNewValue = 0; 16500let prefersSlot3 = 1; 16501let InputType = "reg"; 16502let Constraints = "$Rx32 = $Rx32in"; 16503} 16504def M2_vabsdiffh : HInst< 16505(outs DoubleRegs:$Rdd32), 16506(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16507"$Rdd32 = vabsdiffh($Rtt32,$Rss32)", 16508tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16509let Inst{7-5} = 0b000; 16510let Inst{13-13} = 0b0; 16511let Inst{31-21} = 0b11101000011; 16512let prefersSlot3 = 1; 16513} 16514def M2_vabsdiffw : HInst< 16515(outs DoubleRegs:$Rdd32), 16516(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16517"$Rdd32 = vabsdiffw($Rtt32,$Rss32)", 16518tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16519let Inst{7-5} = 0b000; 16520let Inst{13-13} = 0b0; 16521let Inst{31-21} = 0b11101000001; 16522let prefersSlot3 = 1; 16523} 16524def M2_vcmac_s0_sat_i : HInst< 16525(outs DoubleRegs:$Rxx32), 16526(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16527"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat", 16528tc_7f8ae742, TypeM>, Enc_88c16c { 16529let Inst{7-5} = 0b100; 16530let Inst{13-13} = 0b0; 16531let Inst{31-21} = 0b11101010010; 16532let prefersSlot3 = 1; 16533let Defs = [USR_OVF]; 16534let Constraints = "$Rxx32 = $Rxx32in"; 16535} 16536def M2_vcmac_s0_sat_r : HInst< 16537(outs DoubleRegs:$Rxx32), 16538(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16539"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat", 16540tc_7f8ae742, TypeM>, Enc_88c16c { 16541let Inst{7-5} = 0b100; 16542let Inst{13-13} = 0b0; 16543let Inst{31-21} = 0b11101010001; 16544let prefersSlot3 = 1; 16545let Defs = [USR_OVF]; 16546let Constraints = "$Rxx32 = $Rxx32in"; 16547} 16548def M2_vcmpy_s0_sat_i : HInst< 16549(outs DoubleRegs:$Rdd32), 16550(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16551"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat", 16552tc_c21d7447, TypeM>, Enc_a56825 { 16553let Inst{7-5} = 0b110; 16554let Inst{13-13} = 0b0; 16555let Inst{31-21} = 0b11101000010; 16556let prefersSlot3 = 1; 16557let Defs = [USR_OVF]; 16558} 16559def M2_vcmpy_s0_sat_r : HInst< 16560(outs DoubleRegs:$Rdd32), 16561(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16562"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat", 16563tc_c21d7447, TypeM>, Enc_a56825 { 16564let Inst{7-5} = 0b110; 16565let Inst{13-13} = 0b0; 16566let Inst{31-21} = 0b11101000001; 16567let prefersSlot3 = 1; 16568let Defs = [USR_OVF]; 16569} 16570def M2_vcmpy_s1_sat_i : HInst< 16571(outs DoubleRegs:$Rdd32), 16572(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16573"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat", 16574tc_c21d7447, TypeM>, Enc_a56825 { 16575let Inst{7-5} = 0b110; 16576let Inst{13-13} = 0b0; 16577let Inst{31-21} = 0b11101000110; 16578let prefersSlot3 = 1; 16579let Defs = [USR_OVF]; 16580} 16581def M2_vcmpy_s1_sat_r : HInst< 16582(outs DoubleRegs:$Rdd32), 16583(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16584"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat", 16585tc_c21d7447, TypeM>, Enc_a56825 { 16586let Inst{7-5} = 0b110; 16587let Inst{13-13} = 0b0; 16588let Inst{31-21} = 0b11101000101; 16589let prefersSlot3 = 1; 16590let Defs = [USR_OVF]; 16591} 16592def M2_vdmacs_s0 : HInst< 16593(outs DoubleRegs:$Rxx32), 16594(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16595"$Rxx32 += vdmpy($Rss32,$Rtt32):sat", 16596tc_7f8ae742, TypeM>, Enc_88c16c { 16597let Inst{7-5} = 0b100; 16598let Inst{13-13} = 0b0; 16599let Inst{31-21} = 0b11101010000; 16600let prefersSlot3 = 1; 16601let Defs = [USR_OVF]; 16602let Constraints = "$Rxx32 = $Rxx32in"; 16603} 16604def M2_vdmacs_s1 : HInst< 16605(outs DoubleRegs:$Rxx32), 16606(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16607"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat", 16608tc_7f8ae742, TypeM>, Enc_88c16c { 16609let Inst{7-5} = 0b100; 16610let Inst{13-13} = 0b0; 16611let Inst{31-21} = 0b11101010100; 16612let prefersSlot3 = 1; 16613let Defs = [USR_OVF]; 16614let Constraints = "$Rxx32 = $Rxx32in"; 16615} 16616def M2_vdmpyrs_s0 : HInst< 16617(outs IntRegs:$Rd32), 16618(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16619"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat", 16620tc_c21d7447, TypeM>, Enc_d2216a { 16621let Inst{7-5} = 0b000; 16622let Inst{13-13} = 0b0; 16623let Inst{31-21} = 0b11101001000; 16624let hasNewValue = 1; 16625let opNewValue = 0; 16626let prefersSlot3 = 1; 16627let Defs = [USR_OVF]; 16628} 16629def M2_vdmpyrs_s1 : HInst< 16630(outs IntRegs:$Rd32), 16631(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16632"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat", 16633tc_c21d7447, TypeM>, Enc_d2216a { 16634let Inst{7-5} = 0b000; 16635let Inst{13-13} = 0b0; 16636let Inst{31-21} = 0b11101001100; 16637let hasNewValue = 1; 16638let opNewValue = 0; 16639let prefersSlot3 = 1; 16640let Defs = [USR_OVF]; 16641} 16642def M2_vdmpys_s0 : HInst< 16643(outs DoubleRegs:$Rdd32), 16644(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16645"$Rdd32 = vdmpy($Rss32,$Rtt32):sat", 16646tc_c21d7447, TypeM>, Enc_a56825 { 16647let Inst{7-5} = 0b100; 16648let Inst{13-13} = 0b0; 16649let Inst{31-21} = 0b11101000000; 16650let prefersSlot3 = 1; 16651let Defs = [USR_OVF]; 16652} 16653def M2_vdmpys_s1 : HInst< 16654(outs DoubleRegs:$Rdd32), 16655(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16656"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat", 16657tc_c21d7447, TypeM>, Enc_a56825 { 16658let Inst{7-5} = 0b100; 16659let Inst{13-13} = 0b0; 16660let Inst{31-21} = 0b11101000100; 16661let prefersSlot3 = 1; 16662let Defs = [USR_OVF]; 16663} 16664def M2_vmac2 : HInst< 16665(outs DoubleRegs:$Rxx32), 16666(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16667"$Rxx32 += vmpyh($Rs32,$Rt32)", 16668tc_7f8ae742, TypeM>, Enc_61f0b0 { 16669let Inst{7-5} = 0b001; 16670let Inst{13-13} = 0b0; 16671let Inst{31-21} = 0b11100111001; 16672let prefersSlot3 = 1; 16673let Constraints = "$Rxx32 = $Rxx32in"; 16674} 16675def M2_vmac2es : HInst< 16676(outs DoubleRegs:$Rxx32), 16677(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16678"$Rxx32 += vmpyeh($Rss32,$Rtt32)", 16679tc_7f8ae742, TypeM>, Enc_88c16c { 16680let Inst{7-5} = 0b010; 16681let Inst{13-13} = 0b0; 16682let Inst{31-21} = 0b11101010001; 16683let prefersSlot3 = 1; 16684let Constraints = "$Rxx32 = $Rxx32in"; 16685} 16686def M2_vmac2es_s0 : HInst< 16687(outs DoubleRegs:$Rxx32), 16688(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16689"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat", 16690tc_7f8ae742, TypeM>, Enc_88c16c { 16691let Inst{7-5} = 0b110; 16692let Inst{13-13} = 0b0; 16693let Inst{31-21} = 0b11101010000; 16694let prefersSlot3 = 1; 16695let Defs = [USR_OVF]; 16696let Constraints = "$Rxx32 = $Rxx32in"; 16697} 16698def M2_vmac2es_s1 : HInst< 16699(outs DoubleRegs:$Rxx32), 16700(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16701"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat", 16702tc_7f8ae742, TypeM>, Enc_88c16c { 16703let Inst{7-5} = 0b110; 16704let Inst{13-13} = 0b0; 16705let Inst{31-21} = 0b11101010100; 16706let prefersSlot3 = 1; 16707let Defs = [USR_OVF]; 16708let Constraints = "$Rxx32 = $Rxx32in"; 16709} 16710def M2_vmac2s_s0 : HInst< 16711(outs DoubleRegs:$Rxx32), 16712(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16713"$Rxx32 += vmpyh($Rs32,$Rt32):sat", 16714tc_7f8ae742, TypeM>, Enc_61f0b0 { 16715let Inst{7-5} = 0b101; 16716let Inst{13-13} = 0b0; 16717let Inst{31-21} = 0b11100111000; 16718let prefersSlot3 = 1; 16719let Defs = [USR_OVF]; 16720let Constraints = "$Rxx32 = $Rxx32in"; 16721} 16722def M2_vmac2s_s1 : HInst< 16723(outs DoubleRegs:$Rxx32), 16724(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16725"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat", 16726tc_7f8ae742, TypeM>, Enc_61f0b0 { 16727let Inst{7-5} = 0b101; 16728let Inst{13-13} = 0b0; 16729let Inst{31-21} = 0b11100111100; 16730let prefersSlot3 = 1; 16731let Defs = [USR_OVF]; 16732let Constraints = "$Rxx32 = $Rxx32in"; 16733} 16734def M2_vmac2su_s0 : HInst< 16735(outs DoubleRegs:$Rxx32), 16736(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16737"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat", 16738tc_7f8ae742, TypeM>, Enc_61f0b0 { 16739let Inst{7-5} = 0b101; 16740let Inst{13-13} = 0b0; 16741let Inst{31-21} = 0b11100111011; 16742let prefersSlot3 = 1; 16743let Defs = [USR_OVF]; 16744let Constraints = "$Rxx32 = $Rxx32in"; 16745} 16746def M2_vmac2su_s1 : HInst< 16747(outs DoubleRegs:$Rxx32), 16748(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16749"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat", 16750tc_7f8ae742, TypeM>, Enc_61f0b0 { 16751let Inst{7-5} = 0b101; 16752let Inst{13-13} = 0b0; 16753let Inst{31-21} = 0b11100111111; 16754let prefersSlot3 = 1; 16755let Defs = [USR_OVF]; 16756let Constraints = "$Rxx32 = $Rxx32in"; 16757} 16758def M2_vmpy2es_s0 : HInst< 16759(outs DoubleRegs:$Rdd32), 16760(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16761"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat", 16762tc_c21d7447, TypeM>, Enc_a56825 { 16763let Inst{7-5} = 0b110; 16764let Inst{13-13} = 0b0; 16765let Inst{31-21} = 0b11101000000; 16766let prefersSlot3 = 1; 16767let Defs = [USR_OVF]; 16768} 16769def M2_vmpy2es_s1 : HInst< 16770(outs DoubleRegs:$Rdd32), 16771(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16772"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat", 16773tc_c21d7447, TypeM>, Enc_a56825 { 16774let Inst{7-5} = 0b110; 16775let Inst{13-13} = 0b0; 16776let Inst{31-21} = 0b11101000100; 16777let prefersSlot3 = 1; 16778let Defs = [USR_OVF]; 16779} 16780def M2_vmpy2s_s0 : HInst< 16781(outs DoubleRegs:$Rdd32), 16782(ins IntRegs:$Rs32, IntRegs:$Rt32), 16783"$Rdd32 = vmpyh($Rs32,$Rt32):sat", 16784tc_c21d7447, TypeM>, Enc_be32a5 { 16785let Inst{7-5} = 0b101; 16786let Inst{13-13} = 0b0; 16787let Inst{31-21} = 0b11100101000; 16788let prefersSlot3 = 1; 16789let Defs = [USR_OVF]; 16790} 16791def M2_vmpy2s_s0pack : HInst< 16792(outs IntRegs:$Rd32), 16793(ins IntRegs:$Rs32, IntRegs:$Rt32), 16794"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat", 16795tc_c21d7447, TypeM>, Enc_5ab2be { 16796let Inst{7-5} = 0b111; 16797let Inst{13-13} = 0b0; 16798let Inst{31-21} = 0b11101101001; 16799let hasNewValue = 1; 16800let opNewValue = 0; 16801let prefersSlot3 = 1; 16802let Defs = [USR_OVF]; 16803} 16804def M2_vmpy2s_s1 : HInst< 16805(outs DoubleRegs:$Rdd32), 16806(ins IntRegs:$Rs32, IntRegs:$Rt32), 16807"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat", 16808tc_c21d7447, TypeM>, Enc_be32a5 { 16809let Inst{7-5} = 0b101; 16810let Inst{13-13} = 0b0; 16811let Inst{31-21} = 0b11100101100; 16812let prefersSlot3 = 1; 16813let Defs = [USR_OVF]; 16814} 16815def M2_vmpy2s_s1pack : HInst< 16816(outs IntRegs:$Rd32), 16817(ins IntRegs:$Rs32, IntRegs:$Rt32), 16818"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat", 16819tc_c21d7447, TypeM>, Enc_5ab2be { 16820let Inst{7-5} = 0b111; 16821let Inst{13-13} = 0b0; 16822let Inst{31-21} = 0b11101101101; 16823let hasNewValue = 1; 16824let opNewValue = 0; 16825let prefersSlot3 = 1; 16826let Defs = [USR_OVF]; 16827} 16828def M2_vmpy2su_s0 : HInst< 16829(outs DoubleRegs:$Rdd32), 16830(ins IntRegs:$Rs32, IntRegs:$Rt32), 16831"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat", 16832tc_c21d7447, TypeM>, Enc_be32a5 { 16833let Inst{7-5} = 0b111; 16834let Inst{13-13} = 0b0; 16835let Inst{31-21} = 0b11100101000; 16836let prefersSlot3 = 1; 16837let Defs = [USR_OVF]; 16838} 16839def M2_vmpy2su_s1 : HInst< 16840(outs DoubleRegs:$Rdd32), 16841(ins IntRegs:$Rs32, IntRegs:$Rt32), 16842"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat", 16843tc_c21d7447, TypeM>, Enc_be32a5 { 16844let Inst{7-5} = 0b111; 16845let Inst{13-13} = 0b0; 16846let Inst{31-21} = 0b11100101100; 16847let prefersSlot3 = 1; 16848let Defs = [USR_OVF]; 16849} 16850def M2_vraddh : HInst< 16851(outs IntRegs:$Rd32), 16852(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16853"$Rd32 = vraddh($Rss32,$Rtt32)", 16854tc_c21d7447, TypeM>, Enc_d2216a { 16855let Inst{7-5} = 0b111; 16856let Inst{13-13} = 0b0; 16857let Inst{31-21} = 0b11101001001; 16858let hasNewValue = 1; 16859let opNewValue = 0; 16860let prefersSlot3 = 1; 16861} 16862def M2_vradduh : HInst< 16863(outs IntRegs:$Rd32), 16864(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16865"$Rd32 = vradduh($Rss32,$Rtt32)", 16866tc_c21d7447, TypeM>, Enc_d2216a { 16867let Inst{7-5} = 0b001; 16868let Inst{13-13} = 0b0; 16869let Inst{31-21} = 0b11101001000; 16870let hasNewValue = 1; 16871let opNewValue = 0; 16872let prefersSlot3 = 1; 16873} 16874def M2_vrcmaci_s0 : HInst< 16875(outs DoubleRegs:$Rxx32), 16876(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16877"$Rxx32 += vrcmpyi($Rss32,$Rtt32)", 16878tc_7f8ae742, TypeM>, Enc_88c16c { 16879let Inst{7-5} = 0b000; 16880let Inst{13-13} = 0b0; 16881let Inst{31-21} = 0b11101010000; 16882let prefersSlot3 = 1; 16883let Constraints = "$Rxx32 = $Rxx32in"; 16884} 16885def M2_vrcmaci_s0c : HInst< 16886(outs DoubleRegs:$Rxx32), 16887(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16888"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)", 16889tc_7f8ae742, TypeM>, Enc_88c16c { 16890let Inst{7-5} = 0b000; 16891let Inst{13-13} = 0b0; 16892let Inst{31-21} = 0b11101010010; 16893let prefersSlot3 = 1; 16894let Constraints = "$Rxx32 = $Rxx32in"; 16895} 16896def M2_vrcmacr_s0 : HInst< 16897(outs DoubleRegs:$Rxx32), 16898(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16899"$Rxx32 += vrcmpyr($Rss32,$Rtt32)", 16900tc_7f8ae742, TypeM>, Enc_88c16c { 16901let Inst{7-5} = 0b001; 16902let Inst{13-13} = 0b0; 16903let Inst{31-21} = 0b11101010000; 16904let prefersSlot3 = 1; 16905let Constraints = "$Rxx32 = $Rxx32in"; 16906} 16907def M2_vrcmacr_s0c : HInst< 16908(outs DoubleRegs:$Rxx32), 16909(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16910"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)", 16911tc_7f8ae742, TypeM>, Enc_88c16c { 16912let Inst{7-5} = 0b001; 16913let Inst{13-13} = 0b0; 16914let Inst{31-21} = 0b11101010011; 16915let prefersSlot3 = 1; 16916let Constraints = "$Rxx32 = $Rxx32in"; 16917} 16918def M2_vrcmpyi_s0 : HInst< 16919(outs DoubleRegs:$Rdd32), 16920(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16921"$Rdd32 = vrcmpyi($Rss32,$Rtt32)", 16922tc_c21d7447, TypeM>, Enc_a56825 { 16923let Inst{7-5} = 0b000; 16924let Inst{13-13} = 0b0; 16925let Inst{31-21} = 0b11101000000; 16926let prefersSlot3 = 1; 16927} 16928def M2_vrcmpyi_s0c : HInst< 16929(outs DoubleRegs:$Rdd32), 16930(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16931"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)", 16932tc_c21d7447, TypeM>, Enc_a56825 { 16933let Inst{7-5} = 0b000; 16934let Inst{13-13} = 0b0; 16935let Inst{31-21} = 0b11101000010; 16936let prefersSlot3 = 1; 16937} 16938def M2_vrcmpyr_s0 : HInst< 16939(outs DoubleRegs:$Rdd32), 16940(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16941"$Rdd32 = vrcmpyr($Rss32,$Rtt32)", 16942tc_c21d7447, TypeM>, Enc_a56825 { 16943let Inst{7-5} = 0b001; 16944let Inst{13-13} = 0b0; 16945let Inst{31-21} = 0b11101000000; 16946let prefersSlot3 = 1; 16947} 16948def M2_vrcmpyr_s0c : HInst< 16949(outs DoubleRegs:$Rdd32), 16950(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16951"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)", 16952tc_c21d7447, TypeM>, Enc_a56825 { 16953let Inst{7-5} = 0b001; 16954let Inst{13-13} = 0b0; 16955let Inst{31-21} = 0b11101000011; 16956let prefersSlot3 = 1; 16957} 16958def M2_vrcmpys_acc_s1 : HInst< 16959(outs DoubleRegs:$Rxx32), 16960(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 16961"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat", 16962tc_7f8ae742, TypeM> { 16963let isPseudo = 1; 16964let Constraints = "$Rxx32 = $Rxx32in"; 16965} 16966def M2_vrcmpys_acc_s1_h : HInst< 16967(outs DoubleRegs:$Rxx32), 16968(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16969"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 16970tc_7f8ae742, TypeM>, Enc_88c16c { 16971let Inst{7-5} = 0b100; 16972let Inst{13-13} = 0b0; 16973let Inst{31-21} = 0b11101010101; 16974let prefersSlot3 = 1; 16975let Defs = [USR_OVF]; 16976let Constraints = "$Rxx32 = $Rxx32in"; 16977} 16978def M2_vrcmpys_acc_s1_l : HInst< 16979(outs DoubleRegs:$Rxx32), 16980(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16981"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 16982tc_7f8ae742, TypeM>, Enc_88c16c { 16983let Inst{7-5} = 0b100; 16984let Inst{13-13} = 0b0; 16985let Inst{31-21} = 0b11101010111; 16986let prefersSlot3 = 1; 16987let Defs = [USR_OVF]; 16988let Constraints = "$Rxx32 = $Rxx32in"; 16989} 16990def M2_vrcmpys_s1 : HInst< 16991(outs DoubleRegs:$Rdd32), 16992(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 16993"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat", 16994tc_c21d7447, TypeM> { 16995let isPseudo = 1; 16996} 16997def M2_vrcmpys_s1_h : HInst< 16998(outs DoubleRegs:$Rdd32), 16999(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17000"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 17001tc_c21d7447, TypeM>, Enc_a56825 { 17002let Inst{7-5} = 0b100; 17003let Inst{13-13} = 0b0; 17004let Inst{31-21} = 0b11101000101; 17005let prefersSlot3 = 1; 17006let Defs = [USR_OVF]; 17007} 17008def M2_vrcmpys_s1_l : HInst< 17009(outs DoubleRegs:$Rdd32), 17010(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17011"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 17012tc_c21d7447, TypeM>, Enc_a56825 { 17013let Inst{7-5} = 0b100; 17014let Inst{13-13} = 0b0; 17015let Inst{31-21} = 0b11101000111; 17016let prefersSlot3 = 1; 17017let Defs = [USR_OVF]; 17018} 17019def M2_vrcmpys_s1rp : HInst< 17020(outs IntRegs:$Rd32), 17021(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17022"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat", 17023tc_c21d7447, TypeM> { 17024let hasNewValue = 1; 17025let opNewValue = 0; 17026let isPseudo = 1; 17027} 17028def M2_vrcmpys_s1rp_h : HInst< 17029(outs IntRegs:$Rd32), 17030(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17031"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi", 17032tc_c21d7447, TypeM>, Enc_d2216a { 17033let Inst{7-5} = 0b110; 17034let Inst{13-13} = 0b0; 17035let Inst{31-21} = 0b11101001101; 17036let hasNewValue = 1; 17037let opNewValue = 0; 17038let prefersSlot3 = 1; 17039let Defs = [USR_OVF]; 17040} 17041def M2_vrcmpys_s1rp_l : HInst< 17042(outs IntRegs:$Rd32), 17043(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17044"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo", 17045tc_c21d7447, TypeM>, Enc_d2216a { 17046let Inst{7-5} = 0b111; 17047let Inst{13-13} = 0b0; 17048let Inst{31-21} = 0b11101001101; 17049let hasNewValue = 1; 17050let opNewValue = 0; 17051let prefersSlot3 = 1; 17052let Defs = [USR_OVF]; 17053} 17054def M2_vrmac_s0 : HInst< 17055(outs DoubleRegs:$Rxx32), 17056(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17057"$Rxx32 += vrmpyh($Rss32,$Rtt32)", 17058tc_7f8ae742, TypeM>, Enc_88c16c { 17059let Inst{7-5} = 0b010; 17060let Inst{13-13} = 0b0; 17061let Inst{31-21} = 0b11101010000; 17062let prefersSlot3 = 1; 17063let Constraints = "$Rxx32 = $Rxx32in"; 17064} 17065def M2_vrmpy_s0 : HInst< 17066(outs DoubleRegs:$Rdd32), 17067(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17068"$Rdd32 = vrmpyh($Rss32,$Rtt32)", 17069tc_c21d7447, TypeM>, Enc_a56825 { 17070let Inst{7-5} = 0b010; 17071let Inst{13-13} = 0b0; 17072let Inst{31-21} = 0b11101000000; 17073let prefersSlot3 = 1; 17074} 17075def M2_xor_xacc : HInst< 17076(outs IntRegs:$Rx32), 17077(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17078"$Rx32 ^= xor($Rs32,$Rt32)", 17079tc_a4e22bbd, TypeM>, Enc_2ae154 { 17080let Inst{7-5} = 0b011; 17081let Inst{13-13} = 0b0; 17082let Inst{31-21} = 0b11101111100; 17083let hasNewValue = 1; 17084let opNewValue = 0; 17085let prefersSlot3 = 1; 17086let InputType = "reg"; 17087let Constraints = "$Rx32 = $Rx32in"; 17088} 17089def M4_and_and : HInst< 17090(outs IntRegs:$Rx32), 17091(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17092"$Rx32 &= and($Rs32,$Rt32)", 17093tc_a4e22bbd, TypeM>, Enc_2ae154 { 17094let Inst{7-5} = 0b000; 17095let Inst{13-13} = 0b0; 17096let Inst{31-21} = 0b11101111010; 17097let hasNewValue = 1; 17098let opNewValue = 0; 17099let prefersSlot3 = 1; 17100let InputType = "reg"; 17101let Constraints = "$Rx32 = $Rx32in"; 17102} 17103def M4_and_andn : HInst< 17104(outs IntRegs:$Rx32), 17105(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17106"$Rx32 &= and($Rs32,~$Rt32)", 17107tc_a4e22bbd, TypeM>, Enc_2ae154 { 17108let Inst{7-5} = 0b001; 17109let Inst{13-13} = 0b0; 17110let Inst{31-21} = 0b11101111001; 17111let hasNewValue = 1; 17112let opNewValue = 0; 17113let prefersSlot3 = 1; 17114let InputType = "reg"; 17115let Constraints = "$Rx32 = $Rx32in"; 17116} 17117def M4_and_or : HInst< 17118(outs IntRegs:$Rx32), 17119(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17120"$Rx32 &= or($Rs32,$Rt32)", 17121tc_a4e22bbd, TypeM>, Enc_2ae154 { 17122let Inst{7-5} = 0b001; 17123let Inst{13-13} = 0b0; 17124let Inst{31-21} = 0b11101111010; 17125let hasNewValue = 1; 17126let opNewValue = 0; 17127let prefersSlot3 = 1; 17128let InputType = "reg"; 17129let Constraints = "$Rx32 = $Rx32in"; 17130} 17131def M4_and_xor : HInst< 17132(outs IntRegs:$Rx32), 17133(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17134"$Rx32 &= xor($Rs32,$Rt32)", 17135tc_a4e22bbd, TypeM>, Enc_2ae154 { 17136let Inst{7-5} = 0b010; 17137let Inst{13-13} = 0b0; 17138let Inst{31-21} = 0b11101111010; 17139let hasNewValue = 1; 17140let opNewValue = 0; 17141let prefersSlot3 = 1; 17142let InputType = "reg"; 17143let Constraints = "$Rx32 = $Rx32in"; 17144} 17145def M4_cmpyi_wh : HInst< 17146(outs IntRegs:$Rd32), 17147(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17148"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat", 17149tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17150let Inst{7-5} = 0b100; 17151let Inst{13-13} = 0b0; 17152let Inst{31-21} = 0b11000101000; 17153let hasNewValue = 1; 17154let opNewValue = 0; 17155let prefersSlot3 = 1; 17156let Defs = [USR_OVF]; 17157} 17158def M4_cmpyi_whc : HInst< 17159(outs IntRegs:$Rd32), 17160(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17161"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat", 17162tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17163let Inst{7-5} = 0b101; 17164let Inst{13-13} = 0b0; 17165let Inst{31-21} = 0b11000101000; 17166let hasNewValue = 1; 17167let opNewValue = 0; 17168let prefersSlot3 = 1; 17169let Defs = [USR_OVF]; 17170} 17171def M4_cmpyr_wh : HInst< 17172(outs IntRegs:$Rd32), 17173(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17174"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat", 17175tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17176let Inst{7-5} = 0b110; 17177let Inst{13-13} = 0b0; 17178let Inst{31-21} = 0b11000101000; 17179let hasNewValue = 1; 17180let opNewValue = 0; 17181let prefersSlot3 = 1; 17182let Defs = [USR_OVF]; 17183} 17184def M4_cmpyr_whc : HInst< 17185(outs IntRegs:$Rd32), 17186(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17187"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat", 17188tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17189let Inst{7-5} = 0b111; 17190let Inst{13-13} = 0b0; 17191let Inst{31-21} = 0b11000101000; 17192let hasNewValue = 1; 17193let opNewValue = 0; 17194let prefersSlot3 = 1; 17195let Defs = [USR_OVF]; 17196} 17197def M4_mac_up_s1_sat : HInst< 17198(outs IntRegs:$Rx32), 17199(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17200"$Rx32 += mpy($Rs32,$Rt32):<<1:sat", 17201tc_7f8ae742, TypeM>, Enc_2ae154 { 17202let Inst{7-5} = 0b000; 17203let Inst{13-13} = 0b0; 17204let Inst{31-21} = 0b11101111011; 17205let hasNewValue = 1; 17206let opNewValue = 0; 17207let prefersSlot3 = 1; 17208let Defs = [USR_OVF]; 17209let InputType = "reg"; 17210let Constraints = "$Rx32 = $Rx32in"; 17211} 17212def M4_mpyri_addi : HInst< 17213(outs IntRegs:$Rd32), 17214(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II), 17215"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))", 17216tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel { 17217let Inst{31-24} = 0b11011000; 17218let hasNewValue = 1; 17219let opNewValue = 0; 17220let prefersSlot3 = 1; 17221let CextOpcode = "M4_mpyri_addr"; 17222let isExtendable = 1; 17223let opExtendable = 1; 17224let isExtentSigned = 0; 17225let opExtentBits = 6; 17226let opExtentAlign = 0; 17227} 17228def M4_mpyri_addr : HInst< 17229(outs IntRegs:$Rd32), 17230(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii), 17231"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))", 17232tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel { 17233let Inst{31-23} = 0b110111111; 17234let hasNewValue = 1; 17235let opNewValue = 0; 17236let prefersSlot3 = 1; 17237let CextOpcode = "M4_mpyri_addr"; 17238let InputType = "imm"; 17239let isExtendable = 1; 17240let opExtendable = 3; 17241let isExtentSigned = 0; 17242let opExtentBits = 6; 17243let opExtentAlign = 0; 17244} 17245def M4_mpyri_addr_u2 : HInst< 17246(outs IntRegs:$Rd32), 17247(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32), 17248"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))", 17249tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> { 17250let Inst{31-23} = 0b110111110; 17251let hasNewValue = 1; 17252let opNewValue = 0; 17253let prefersSlot3 = 1; 17254} 17255def M4_mpyrr_addi : HInst< 17256(outs IntRegs:$Rd32), 17257(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32), 17258"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))", 17259tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel { 17260let Inst{31-23} = 0b110101110; 17261let hasNewValue = 1; 17262let opNewValue = 0; 17263let prefersSlot3 = 1; 17264let CextOpcode = "M4_mpyrr_addr"; 17265let InputType = "imm"; 17266let isExtendable = 1; 17267let opExtendable = 1; 17268let isExtentSigned = 0; 17269let opExtentBits = 6; 17270let opExtentAlign = 0; 17271} 17272def M4_mpyrr_addr : HInst< 17273(outs IntRegs:$Ry32), 17274(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32), 17275"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))", 17276tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel { 17277let Inst{7-5} = 0b000; 17278let Inst{13-13} = 0b0; 17279let Inst{31-21} = 0b11100011000; 17280let hasNewValue = 1; 17281let opNewValue = 0; 17282let prefersSlot3 = 1; 17283let CextOpcode = "M4_mpyrr_addr"; 17284let InputType = "reg"; 17285let Constraints = "$Ry32 = $Ry32in"; 17286} 17287def M4_nac_up_s1_sat : HInst< 17288(outs IntRegs:$Rx32), 17289(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17290"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat", 17291tc_7f8ae742, TypeM>, Enc_2ae154 { 17292let Inst{7-5} = 0b001; 17293let Inst{13-13} = 0b0; 17294let Inst{31-21} = 0b11101111011; 17295let hasNewValue = 1; 17296let opNewValue = 0; 17297let prefersSlot3 = 1; 17298let Defs = [USR_OVF]; 17299let InputType = "reg"; 17300let Constraints = "$Rx32 = $Rx32in"; 17301} 17302def M4_or_and : HInst< 17303(outs IntRegs:$Rx32), 17304(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17305"$Rx32 |= and($Rs32,$Rt32)", 17306tc_a4e22bbd, TypeM>, Enc_2ae154 { 17307let Inst{7-5} = 0b011; 17308let Inst{13-13} = 0b0; 17309let Inst{31-21} = 0b11101111010; 17310let hasNewValue = 1; 17311let opNewValue = 0; 17312let prefersSlot3 = 1; 17313let InputType = "reg"; 17314let Constraints = "$Rx32 = $Rx32in"; 17315} 17316def M4_or_andn : HInst< 17317(outs IntRegs:$Rx32), 17318(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17319"$Rx32 |= and($Rs32,~$Rt32)", 17320tc_a4e22bbd, TypeM>, Enc_2ae154 { 17321let Inst{7-5} = 0b000; 17322let Inst{13-13} = 0b0; 17323let Inst{31-21} = 0b11101111001; 17324let hasNewValue = 1; 17325let opNewValue = 0; 17326let prefersSlot3 = 1; 17327let InputType = "reg"; 17328let Constraints = "$Rx32 = $Rx32in"; 17329} 17330def M4_or_or : HInst< 17331(outs IntRegs:$Rx32), 17332(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17333"$Rx32 |= or($Rs32,$Rt32)", 17334tc_a4e22bbd, TypeM>, Enc_2ae154 { 17335let Inst{7-5} = 0b000; 17336let Inst{13-13} = 0b0; 17337let Inst{31-21} = 0b11101111110; 17338let hasNewValue = 1; 17339let opNewValue = 0; 17340let prefersSlot3 = 1; 17341let InputType = "reg"; 17342let Constraints = "$Rx32 = $Rx32in"; 17343} 17344def M4_or_xor : HInst< 17345(outs IntRegs:$Rx32), 17346(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17347"$Rx32 |= xor($Rs32,$Rt32)", 17348tc_a4e22bbd, TypeM>, Enc_2ae154 { 17349let Inst{7-5} = 0b001; 17350let Inst{13-13} = 0b0; 17351let Inst{31-21} = 0b11101111110; 17352let hasNewValue = 1; 17353let opNewValue = 0; 17354let prefersSlot3 = 1; 17355let InputType = "reg"; 17356let Constraints = "$Rx32 = $Rx32in"; 17357} 17358def M4_pmpyw : HInst< 17359(outs DoubleRegs:$Rdd32), 17360(ins IntRegs:$Rs32, IntRegs:$Rt32), 17361"$Rdd32 = pmpyw($Rs32,$Rt32)", 17362tc_c21d7447, TypeM>, Enc_be32a5 { 17363let Inst{7-5} = 0b111; 17364let Inst{13-13} = 0b0; 17365let Inst{31-21} = 0b11100101010; 17366let prefersSlot3 = 1; 17367} 17368def M4_pmpyw_acc : HInst< 17369(outs DoubleRegs:$Rxx32), 17370(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17371"$Rxx32 ^= pmpyw($Rs32,$Rt32)", 17372tc_7f8ae742, TypeM>, Enc_61f0b0 { 17373let Inst{7-5} = 0b111; 17374let Inst{13-13} = 0b0; 17375let Inst{31-21} = 0b11100111001; 17376let prefersSlot3 = 1; 17377let Constraints = "$Rxx32 = $Rxx32in"; 17378} 17379def M4_vpmpyh : HInst< 17380(outs DoubleRegs:$Rdd32), 17381(ins IntRegs:$Rs32, IntRegs:$Rt32), 17382"$Rdd32 = vpmpyh($Rs32,$Rt32)", 17383tc_c21d7447, TypeM>, Enc_be32a5 { 17384let Inst{7-5} = 0b111; 17385let Inst{13-13} = 0b0; 17386let Inst{31-21} = 0b11100101110; 17387let prefersSlot3 = 1; 17388} 17389def M4_vpmpyh_acc : HInst< 17390(outs DoubleRegs:$Rxx32), 17391(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17392"$Rxx32 ^= vpmpyh($Rs32,$Rt32)", 17393tc_7f8ae742, TypeM>, Enc_61f0b0 { 17394let Inst{7-5} = 0b111; 17395let Inst{13-13} = 0b0; 17396let Inst{31-21} = 0b11100111101; 17397let prefersSlot3 = 1; 17398let Constraints = "$Rxx32 = $Rxx32in"; 17399} 17400def M4_vrmpyeh_acc_s0 : HInst< 17401(outs DoubleRegs:$Rxx32), 17402(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17403"$Rxx32 += vrmpyweh($Rss32,$Rtt32)", 17404tc_7f8ae742, TypeM>, Enc_88c16c { 17405let Inst{7-5} = 0b110; 17406let Inst{13-13} = 0b0; 17407let Inst{31-21} = 0b11101010001; 17408let prefersSlot3 = 1; 17409let Constraints = "$Rxx32 = $Rxx32in"; 17410} 17411def M4_vrmpyeh_acc_s1 : HInst< 17412(outs DoubleRegs:$Rxx32), 17413(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17414"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1", 17415tc_7f8ae742, TypeM>, Enc_88c16c { 17416let Inst{7-5} = 0b110; 17417let Inst{13-13} = 0b0; 17418let Inst{31-21} = 0b11101010101; 17419let prefersSlot3 = 1; 17420let Constraints = "$Rxx32 = $Rxx32in"; 17421} 17422def M4_vrmpyeh_s0 : HInst< 17423(outs DoubleRegs:$Rdd32), 17424(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17425"$Rdd32 = vrmpyweh($Rss32,$Rtt32)", 17426tc_c21d7447, TypeM>, Enc_a56825 { 17427let Inst{7-5} = 0b100; 17428let Inst{13-13} = 0b0; 17429let Inst{31-21} = 0b11101000010; 17430let prefersSlot3 = 1; 17431} 17432def M4_vrmpyeh_s1 : HInst< 17433(outs DoubleRegs:$Rdd32), 17434(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17435"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1", 17436tc_c21d7447, TypeM>, Enc_a56825 { 17437let Inst{7-5} = 0b100; 17438let Inst{13-13} = 0b0; 17439let Inst{31-21} = 0b11101000110; 17440let prefersSlot3 = 1; 17441} 17442def M4_vrmpyoh_acc_s0 : HInst< 17443(outs DoubleRegs:$Rxx32), 17444(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17445"$Rxx32 += vrmpywoh($Rss32,$Rtt32)", 17446tc_7f8ae742, TypeM>, Enc_88c16c { 17447let Inst{7-5} = 0b110; 17448let Inst{13-13} = 0b0; 17449let Inst{31-21} = 0b11101010011; 17450let prefersSlot3 = 1; 17451let Constraints = "$Rxx32 = $Rxx32in"; 17452} 17453def M4_vrmpyoh_acc_s1 : HInst< 17454(outs DoubleRegs:$Rxx32), 17455(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17456"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1", 17457tc_7f8ae742, TypeM>, Enc_88c16c { 17458let Inst{7-5} = 0b110; 17459let Inst{13-13} = 0b0; 17460let Inst{31-21} = 0b11101010111; 17461let prefersSlot3 = 1; 17462let Constraints = "$Rxx32 = $Rxx32in"; 17463} 17464def M4_vrmpyoh_s0 : HInst< 17465(outs DoubleRegs:$Rdd32), 17466(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17467"$Rdd32 = vrmpywoh($Rss32,$Rtt32)", 17468tc_c21d7447, TypeM>, Enc_a56825 { 17469let Inst{7-5} = 0b010; 17470let Inst{13-13} = 0b0; 17471let Inst{31-21} = 0b11101000001; 17472let prefersSlot3 = 1; 17473} 17474def M4_vrmpyoh_s1 : HInst< 17475(outs DoubleRegs:$Rdd32), 17476(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17477"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1", 17478tc_c21d7447, TypeM>, Enc_a56825 { 17479let Inst{7-5} = 0b010; 17480let Inst{13-13} = 0b0; 17481let Inst{31-21} = 0b11101000101; 17482let prefersSlot3 = 1; 17483} 17484def M4_xor_and : HInst< 17485(outs IntRegs:$Rx32), 17486(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17487"$Rx32 ^= and($Rs32,$Rt32)", 17488tc_a4e22bbd, TypeM>, Enc_2ae154 { 17489let Inst{7-5} = 0b010; 17490let Inst{13-13} = 0b0; 17491let Inst{31-21} = 0b11101111110; 17492let hasNewValue = 1; 17493let opNewValue = 0; 17494let prefersSlot3 = 1; 17495let InputType = "reg"; 17496let Constraints = "$Rx32 = $Rx32in"; 17497} 17498def M4_xor_andn : HInst< 17499(outs IntRegs:$Rx32), 17500(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17501"$Rx32 ^= and($Rs32,~$Rt32)", 17502tc_a4e22bbd, TypeM>, Enc_2ae154 { 17503let Inst{7-5} = 0b010; 17504let Inst{13-13} = 0b0; 17505let Inst{31-21} = 0b11101111001; 17506let hasNewValue = 1; 17507let opNewValue = 0; 17508let prefersSlot3 = 1; 17509let InputType = "reg"; 17510let Constraints = "$Rx32 = $Rx32in"; 17511} 17512def M4_xor_or : HInst< 17513(outs IntRegs:$Rx32), 17514(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17515"$Rx32 ^= or($Rs32,$Rt32)", 17516tc_a4e22bbd, TypeM>, Enc_2ae154 { 17517let Inst{7-5} = 0b011; 17518let Inst{13-13} = 0b0; 17519let Inst{31-21} = 0b11101111110; 17520let hasNewValue = 1; 17521let opNewValue = 0; 17522let prefersSlot3 = 1; 17523let InputType = "reg"; 17524let Constraints = "$Rx32 = $Rx32in"; 17525} 17526def M4_xor_xacc : HInst< 17527(outs DoubleRegs:$Rxx32), 17528(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17529"$Rxx32 ^= xor($Rss32,$Rtt32)", 17530tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 17531let Inst{7-5} = 0b000; 17532let Inst{13-13} = 0b0; 17533let Inst{31-21} = 0b11001010100; 17534let prefersSlot3 = 1; 17535let Constraints = "$Rxx32 = $Rxx32in"; 17536} 17537def M5_vdmacbsu : HInst< 17538(outs DoubleRegs:$Rxx32), 17539(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17540"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat", 17541tc_7f8ae742, TypeM>, Enc_88c16c { 17542let Inst{7-5} = 0b001; 17543let Inst{13-13} = 0b0; 17544let Inst{31-21} = 0b11101010001; 17545let prefersSlot3 = 1; 17546let Defs = [USR_OVF]; 17547let Constraints = "$Rxx32 = $Rxx32in"; 17548} 17549def M5_vdmpybsu : HInst< 17550(outs DoubleRegs:$Rdd32), 17551(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17552"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat", 17553tc_c21d7447, TypeM>, Enc_a56825 { 17554let Inst{7-5} = 0b001; 17555let Inst{13-13} = 0b0; 17556let Inst{31-21} = 0b11101000101; 17557let prefersSlot3 = 1; 17558let Defs = [USR_OVF]; 17559} 17560def M5_vmacbsu : HInst< 17561(outs DoubleRegs:$Rxx32), 17562(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17563"$Rxx32 += vmpybsu($Rs32,$Rt32)", 17564tc_7f8ae742, TypeM>, Enc_61f0b0 { 17565let Inst{7-5} = 0b001; 17566let Inst{13-13} = 0b0; 17567let Inst{31-21} = 0b11100111110; 17568let prefersSlot3 = 1; 17569let Constraints = "$Rxx32 = $Rxx32in"; 17570} 17571def M5_vmacbuu : HInst< 17572(outs DoubleRegs:$Rxx32), 17573(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17574"$Rxx32 += vmpybu($Rs32,$Rt32)", 17575tc_7f8ae742, TypeM>, Enc_61f0b0 { 17576let Inst{7-5} = 0b001; 17577let Inst{13-13} = 0b0; 17578let Inst{31-21} = 0b11100111100; 17579let prefersSlot3 = 1; 17580let Constraints = "$Rxx32 = $Rxx32in"; 17581} 17582def M5_vmpybsu : HInst< 17583(outs DoubleRegs:$Rdd32), 17584(ins IntRegs:$Rs32, IntRegs:$Rt32), 17585"$Rdd32 = vmpybsu($Rs32,$Rt32)", 17586tc_c21d7447, TypeM>, Enc_be32a5 { 17587let Inst{7-5} = 0b001; 17588let Inst{13-13} = 0b0; 17589let Inst{31-21} = 0b11100101010; 17590let prefersSlot3 = 1; 17591} 17592def M5_vmpybuu : HInst< 17593(outs DoubleRegs:$Rdd32), 17594(ins IntRegs:$Rs32, IntRegs:$Rt32), 17595"$Rdd32 = vmpybu($Rs32,$Rt32)", 17596tc_c21d7447, TypeM>, Enc_be32a5 { 17597let Inst{7-5} = 0b001; 17598let Inst{13-13} = 0b0; 17599let Inst{31-21} = 0b11100101100; 17600let prefersSlot3 = 1; 17601} 17602def M5_vrmacbsu : HInst< 17603(outs DoubleRegs:$Rxx32), 17604(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17605"$Rxx32 += vrmpybsu($Rss32,$Rtt32)", 17606tc_7f8ae742, TypeM>, Enc_88c16c { 17607let Inst{7-5} = 0b001; 17608let Inst{13-13} = 0b0; 17609let Inst{31-21} = 0b11101010110; 17610let prefersSlot3 = 1; 17611let Constraints = "$Rxx32 = $Rxx32in"; 17612} 17613def M5_vrmacbuu : HInst< 17614(outs DoubleRegs:$Rxx32), 17615(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17616"$Rxx32 += vrmpybu($Rss32,$Rtt32)", 17617tc_7f8ae742, TypeM>, Enc_88c16c { 17618let Inst{7-5} = 0b001; 17619let Inst{13-13} = 0b0; 17620let Inst{31-21} = 0b11101010100; 17621let prefersSlot3 = 1; 17622let Constraints = "$Rxx32 = $Rxx32in"; 17623} 17624def M5_vrmpybsu : HInst< 17625(outs DoubleRegs:$Rdd32), 17626(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17627"$Rdd32 = vrmpybsu($Rss32,$Rtt32)", 17628tc_c21d7447, TypeM>, Enc_a56825 { 17629let Inst{7-5} = 0b001; 17630let Inst{13-13} = 0b0; 17631let Inst{31-21} = 0b11101000110; 17632let prefersSlot3 = 1; 17633} 17634def M5_vrmpybuu : HInst< 17635(outs DoubleRegs:$Rdd32), 17636(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17637"$Rdd32 = vrmpybu($Rss32,$Rtt32)", 17638tc_c21d7447, TypeM>, Enc_a56825 { 17639let Inst{7-5} = 0b001; 17640let Inst{13-13} = 0b0; 17641let Inst{31-21} = 0b11101000100; 17642let prefersSlot3 = 1; 17643} 17644def M6_vabsdiffb : HInst< 17645(outs DoubleRegs:$Rdd32), 17646(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17647"$Rdd32 = vabsdiffb($Rtt32,$Rss32)", 17648tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17649let Inst{7-5} = 0b000; 17650let Inst{13-13} = 0b0; 17651let Inst{31-21} = 0b11101000111; 17652let prefersSlot3 = 1; 17653} 17654def M6_vabsdiffub : HInst< 17655(outs DoubleRegs:$Rdd32), 17656(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17657"$Rdd32 = vabsdiffub($Rtt32,$Rss32)", 17658tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17659let Inst{7-5} = 0b000; 17660let Inst{13-13} = 0b0; 17661let Inst{31-21} = 0b11101000101; 17662let prefersSlot3 = 1; 17663} 17664def M7_dcmpyiw : HInst< 17665(outs DoubleRegs:$Rdd32), 17666(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17667"$Rdd32 = cmpyiw($Rss32,$Rtt32)", 17668tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17669let Inst{7-5} = 0b010; 17670let Inst{13-13} = 0b0; 17671let Inst{31-21} = 0b11101000011; 17672let prefersSlot3 = 1; 17673} 17674def M7_dcmpyiw_acc : HInst< 17675(outs DoubleRegs:$Rxx32), 17676(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17677"$Rxx32 += cmpyiw($Rss32,$Rtt32)", 17678tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17679let Inst{7-5} = 0b010; 17680let Inst{13-13} = 0b0; 17681let Inst{31-21} = 0b11101010011; 17682let prefersSlot3 = 1; 17683let Constraints = "$Rxx32 = $Rxx32in"; 17684} 17685def M7_dcmpyiwc : HInst< 17686(outs DoubleRegs:$Rdd32), 17687(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17688"$Rdd32 = cmpyiw($Rss32,$Rtt32*)", 17689tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17690let Inst{7-5} = 0b010; 17691let Inst{13-13} = 0b0; 17692let Inst{31-21} = 0b11101000111; 17693let prefersSlot3 = 1; 17694} 17695def M7_dcmpyiwc_acc : HInst< 17696(outs DoubleRegs:$Rxx32), 17697(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17698"$Rxx32 += cmpyiw($Rss32,$Rtt32*)", 17699tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17700let Inst{7-5} = 0b110; 17701let Inst{13-13} = 0b0; 17702let Inst{31-21} = 0b11101010010; 17703let prefersSlot3 = 1; 17704let Constraints = "$Rxx32 = $Rxx32in"; 17705} 17706def M7_dcmpyrw : HInst< 17707(outs DoubleRegs:$Rdd32), 17708(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17709"$Rdd32 = cmpyrw($Rss32,$Rtt32)", 17710tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17711let Inst{7-5} = 0b010; 17712let Inst{13-13} = 0b0; 17713let Inst{31-21} = 0b11101000100; 17714let prefersSlot3 = 1; 17715} 17716def M7_dcmpyrw_acc : HInst< 17717(outs DoubleRegs:$Rxx32), 17718(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17719"$Rxx32 += cmpyrw($Rss32,$Rtt32)", 17720tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17721let Inst{7-5} = 0b010; 17722let Inst{13-13} = 0b0; 17723let Inst{31-21} = 0b11101010100; 17724let prefersSlot3 = 1; 17725let Constraints = "$Rxx32 = $Rxx32in"; 17726} 17727def M7_dcmpyrwc : HInst< 17728(outs DoubleRegs:$Rdd32), 17729(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17730"$Rdd32 = cmpyrw($Rss32,$Rtt32*)", 17731tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17732let Inst{7-5} = 0b010; 17733let Inst{13-13} = 0b0; 17734let Inst{31-21} = 0b11101000110; 17735let prefersSlot3 = 1; 17736} 17737def M7_dcmpyrwc_acc : HInst< 17738(outs DoubleRegs:$Rxx32), 17739(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17740"$Rxx32 += cmpyrw($Rss32,$Rtt32*)", 17741tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17742let Inst{7-5} = 0b010; 17743let Inst{13-13} = 0b0; 17744let Inst{31-21} = 0b11101010110; 17745let prefersSlot3 = 1; 17746let Constraints = "$Rxx32 = $Rxx32in"; 17747} 17748def M7_vdmpy : HInst< 17749(outs DoubleRegs:$Rdd32), 17750(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17751"$Rdd32 = vdmpyw($Rss32,$Rtt32)", 17752tc_5a4b5e58, TypeM>, Requires<[HasV67]> { 17753let isPseudo = 1; 17754let isCodeGenOnly = 1; 17755} 17756def M7_vdmpy_acc : HInst< 17757(outs DoubleRegs:$Rxx32), 17758(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17759"$Rxx32 += vdmpyw($Rss32,$Rtt32)", 17760tc_197dce51, TypeM>, Requires<[HasV67]> { 17761let isPseudo = 1; 17762let isCodeGenOnly = 1; 17763let Constraints = "$Rxx32 = $Rxx32in"; 17764} 17765def M7_wcmpyiw : HInst< 17766(outs IntRegs:$Rd32), 17767(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17768"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat", 17769tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17770let Inst{7-5} = 0b000; 17771let Inst{13-13} = 0b0; 17772let Inst{31-21} = 0b11101001001; 17773let hasNewValue = 1; 17774let opNewValue = 0; 17775let prefersSlot3 = 1; 17776let Defs = [USR_OVF]; 17777} 17778def M7_wcmpyiw_rnd : HInst< 17779(outs IntRegs:$Rd32), 17780(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17781"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat", 17782tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17783let Inst{7-5} = 0b000; 17784let Inst{13-13} = 0b0; 17785let Inst{31-21} = 0b11101001101; 17786let hasNewValue = 1; 17787let opNewValue = 0; 17788let prefersSlot3 = 1; 17789let Defs = [USR_OVF]; 17790} 17791def M7_wcmpyiwc : HInst< 17792(outs IntRegs:$Rd32), 17793(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17794"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat", 17795tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17796let Inst{7-5} = 0b100; 17797let Inst{13-13} = 0b0; 17798let Inst{31-21} = 0b11101001000; 17799let hasNewValue = 1; 17800let opNewValue = 0; 17801let prefersSlot3 = 1; 17802let Defs = [USR_OVF]; 17803} 17804def M7_wcmpyiwc_rnd : HInst< 17805(outs IntRegs:$Rd32), 17806(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17807"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat", 17808tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17809let Inst{7-5} = 0b100; 17810let Inst{13-13} = 0b0; 17811let Inst{31-21} = 0b11101001100; 17812let hasNewValue = 1; 17813let opNewValue = 0; 17814let prefersSlot3 = 1; 17815let Defs = [USR_OVF]; 17816} 17817def M7_wcmpyrw : HInst< 17818(outs IntRegs:$Rd32), 17819(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17820"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat", 17821tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17822let Inst{7-5} = 0b000; 17823let Inst{13-13} = 0b0; 17824let Inst{31-21} = 0b11101001010; 17825let hasNewValue = 1; 17826let opNewValue = 0; 17827let prefersSlot3 = 1; 17828let Defs = [USR_OVF]; 17829} 17830def M7_wcmpyrw_rnd : HInst< 17831(outs IntRegs:$Rd32), 17832(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17833"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat", 17834tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17835let Inst{7-5} = 0b000; 17836let Inst{13-13} = 0b0; 17837let Inst{31-21} = 0b11101001110; 17838let hasNewValue = 1; 17839let opNewValue = 0; 17840let prefersSlot3 = 1; 17841let Defs = [USR_OVF]; 17842} 17843def M7_wcmpyrwc : HInst< 17844(outs IntRegs:$Rd32), 17845(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17846"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat", 17847tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17848let Inst{7-5} = 0b000; 17849let Inst{13-13} = 0b0; 17850let Inst{31-21} = 0b11101001011; 17851let hasNewValue = 1; 17852let opNewValue = 0; 17853let prefersSlot3 = 1; 17854let Defs = [USR_OVF]; 17855} 17856def M7_wcmpyrwc_rnd : HInst< 17857(outs IntRegs:$Rd32), 17858(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17859"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat", 17860tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17861let Inst{7-5} = 0b000; 17862let Inst{13-13} = 0b0; 17863let Inst{31-21} = 0b11101001111; 17864let hasNewValue = 1; 17865let opNewValue = 0; 17866let prefersSlot3 = 1; 17867let Defs = [USR_OVF]; 17868} 17869def PS_loadrbabs : HInst< 17870(outs IntRegs:$Rd32), 17871(ins u32_0Imm:$Ii), 17872"$Rd32 = memb(#$Ii)", 17873tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17874let Inst{24-21} = 0b1000; 17875let Inst{31-27} = 0b01001; 17876let hasNewValue = 1; 17877let opNewValue = 0; 17878let addrMode = Absolute; 17879let accessSize = ByteAccess; 17880let mayLoad = 1; 17881let isExtended = 1; 17882let BaseOpcode = "L4_loadrb_abs"; 17883let CextOpcode = "L2_loadrb"; 17884let isPredicable = 1; 17885let DecoderNamespace = "MustExtend"; 17886let isExtended = 1; 17887let opExtendable = 1; 17888let isExtentSigned = 0; 17889let opExtentBits = 16; 17890let opExtentAlign = 0; 17891} 17892def PS_loadrdabs : HInst< 17893(outs DoubleRegs:$Rdd32), 17894(ins u29_3Imm:$Ii), 17895"$Rdd32 = memd(#$Ii)", 17896tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel { 17897let Inst{24-21} = 0b1110; 17898let Inst{31-27} = 0b01001; 17899let addrMode = Absolute; 17900let accessSize = DoubleWordAccess; 17901let mayLoad = 1; 17902let isExtended = 1; 17903let BaseOpcode = "L4_loadrd_abs"; 17904let CextOpcode = "L2_loadrd"; 17905let isPredicable = 1; 17906let DecoderNamespace = "MustExtend"; 17907let isExtended = 1; 17908let opExtendable = 1; 17909let isExtentSigned = 0; 17910let opExtentBits = 19; 17911let opExtentAlign = 3; 17912} 17913def PS_loadrhabs : HInst< 17914(outs IntRegs:$Rd32), 17915(ins u31_1Imm:$Ii), 17916"$Rd32 = memh(#$Ii)", 17917tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 17918let Inst{24-21} = 0b1010; 17919let Inst{31-27} = 0b01001; 17920let hasNewValue = 1; 17921let opNewValue = 0; 17922let addrMode = Absolute; 17923let accessSize = HalfWordAccess; 17924let mayLoad = 1; 17925let isExtended = 1; 17926let BaseOpcode = "L4_loadrh_abs"; 17927let CextOpcode = "L2_loadrh"; 17928let isPredicable = 1; 17929let DecoderNamespace = "MustExtend"; 17930let isExtended = 1; 17931let opExtendable = 1; 17932let isExtentSigned = 0; 17933let opExtentBits = 17; 17934let opExtentAlign = 1; 17935} 17936def PS_loadriabs : HInst< 17937(outs IntRegs:$Rd32), 17938(ins u30_2Imm:$Ii), 17939"$Rd32 = memw(#$Ii)", 17940tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 17941let Inst{24-21} = 0b1100; 17942let Inst{31-27} = 0b01001; 17943let hasNewValue = 1; 17944let opNewValue = 0; 17945let addrMode = Absolute; 17946let accessSize = WordAccess; 17947let mayLoad = 1; 17948let isExtended = 1; 17949let BaseOpcode = "L4_loadri_abs"; 17950let CextOpcode = "L2_loadri"; 17951let isPredicable = 1; 17952let DecoderNamespace = "MustExtend"; 17953let isExtended = 1; 17954let opExtendable = 1; 17955let isExtentSigned = 0; 17956let opExtentBits = 18; 17957let opExtentAlign = 2; 17958} 17959def PS_loadrubabs : HInst< 17960(outs IntRegs:$Rd32), 17961(ins u32_0Imm:$Ii), 17962"$Rd32 = memub(#$Ii)", 17963tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17964let Inst{24-21} = 0b1001; 17965let Inst{31-27} = 0b01001; 17966let hasNewValue = 1; 17967let opNewValue = 0; 17968let addrMode = Absolute; 17969let accessSize = ByteAccess; 17970let mayLoad = 1; 17971let isExtended = 1; 17972let BaseOpcode = "L4_loadrub_abs"; 17973let CextOpcode = "L2_loadrub"; 17974let isPredicable = 1; 17975let DecoderNamespace = "MustExtend"; 17976let isExtended = 1; 17977let opExtendable = 1; 17978let isExtentSigned = 0; 17979let opExtentBits = 16; 17980let opExtentAlign = 0; 17981} 17982def PS_loadruhabs : HInst< 17983(outs IntRegs:$Rd32), 17984(ins u31_1Imm:$Ii), 17985"$Rd32 = memuh(#$Ii)", 17986tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 17987let Inst{24-21} = 0b1011; 17988let Inst{31-27} = 0b01001; 17989let hasNewValue = 1; 17990let opNewValue = 0; 17991let addrMode = Absolute; 17992let accessSize = HalfWordAccess; 17993let mayLoad = 1; 17994let isExtended = 1; 17995let BaseOpcode = "L4_loadruh_abs"; 17996let CextOpcode = "L2_loadruh"; 17997let isPredicable = 1; 17998let DecoderNamespace = "MustExtend"; 17999let isExtended = 1; 18000let opExtendable = 1; 18001let isExtentSigned = 0; 18002let opExtentBits = 17; 18003let opExtentAlign = 1; 18004} 18005def PS_storerbabs : HInst< 18006(outs), 18007(ins u32_0Imm:$Ii, IntRegs:$Rt32), 18008"memb(#$Ii) = $Rt32", 18009tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 18010let Inst{24-21} = 0b0000; 18011let Inst{31-27} = 0b01001; 18012let addrMode = Absolute; 18013let accessSize = ByteAccess; 18014let isExtended = 1; 18015let mayStore = 1; 18016let BaseOpcode = "S2_storerbabs"; 18017let CextOpcode = "S2_storerb"; 18018let isPredicable = 1; 18019let isNVStorable = 1; 18020let DecoderNamespace = "MustExtend"; 18021let isExtended = 1; 18022let opExtendable = 0; 18023let isExtentSigned = 0; 18024let opExtentBits = 16; 18025let opExtentAlign = 0; 18026} 18027def PS_storerbnewabs : HInst< 18028(outs), 18029(ins u32_0Imm:$Ii, IntRegs:$Nt8), 18030"memb(#$Ii) = $Nt8.new", 18031tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 18032let Inst{12-11} = 0b00; 18033let Inst{24-21} = 0b0101; 18034let Inst{31-27} = 0b01001; 18035let addrMode = Absolute; 18036let accessSize = ByteAccess; 18037let isNVStore = 1; 18038let isNewValue = 1; 18039let isExtended = 1; 18040let isRestrictNoSlot1Store = 1; 18041let mayStore = 1; 18042let BaseOpcode = "S2_storerbabs"; 18043let CextOpcode = "S2_storerb"; 18044let isPredicable = 1; 18045let DecoderNamespace = "MustExtend"; 18046let isExtended = 1; 18047let opExtendable = 0; 18048let isExtentSigned = 0; 18049let opExtentBits = 16; 18050let opExtentAlign = 0; 18051let opNewValue = 1; 18052} 18053def PS_storerdabs : HInst< 18054(outs), 18055(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 18056"memd(#$Ii) = $Rtt32", 18057tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 18058let Inst{24-21} = 0b0110; 18059let Inst{31-27} = 0b01001; 18060let addrMode = Absolute; 18061let accessSize = DoubleWordAccess; 18062let isExtended = 1; 18063let mayStore = 1; 18064let BaseOpcode = "S2_storerdabs"; 18065let CextOpcode = "S2_storerd"; 18066let isPredicable = 1; 18067let DecoderNamespace = "MustExtend"; 18068let isExtended = 1; 18069let opExtendable = 0; 18070let isExtentSigned = 0; 18071let opExtentBits = 19; 18072let opExtentAlign = 3; 18073} 18074def PS_storerfabs : HInst< 18075(outs), 18076(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18077"memh(#$Ii) = $Rt32.h", 18078tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18079let Inst{24-21} = 0b0011; 18080let Inst{31-27} = 0b01001; 18081let addrMode = Absolute; 18082let accessSize = HalfWordAccess; 18083let isExtended = 1; 18084let mayStore = 1; 18085let BaseOpcode = "S2_storerfabs"; 18086let CextOpcode = "S2_storerf"; 18087let isPredicable = 1; 18088let DecoderNamespace = "MustExtend"; 18089let isExtended = 1; 18090let opExtendable = 0; 18091let isExtentSigned = 0; 18092let opExtentBits = 17; 18093let opExtentAlign = 1; 18094} 18095def PS_storerhabs : HInst< 18096(outs), 18097(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18098"memh(#$Ii) = $Rt32", 18099tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18100let Inst{24-21} = 0b0010; 18101let Inst{31-27} = 0b01001; 18102let addrMode = Absolute; 18103let accessSize = HalfWordAccess; 18104let isExtended = 1; 18105let mayStore = 1; 18106let BaseOpcode = "S2_storerhabs"; 18107let CextOpcode = "S2_storerh"; 18108let isPredicable = 1; 18109let isNVStorable = 1; 18110let DecoderNamespace = "MustExtend"; 18111let isExtended = 1; 18112let opExtendable = 0; 18113let isExtentSigned = 0; 18114let opExtentBits = 17; 18115let opExtentAlign = 1; 18116} 18117def PS_storerhnewabs : HInst< 18118(outs), 18119(ins u31_1Imm:$Ii, IntRegs:$Nt8), 18120"memh(#$Ii) = $Nt8.new", 18121tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 18122let Inst{12-11} = 0b01; 18123let Inst{24-21} = 0b0101; 18124let Inst{31-27} = 0b01001; 18125let addrMode = Absolute; 18126let accessSize = HalfWordAccess; 18127let isNVStore = 1; 18128let isNewValue = 1; 18129let isExtended = 1; 18130let isRestrictNoSlot1Store = 1; 18131let mayStore = 1; 18132let BaseOpcode = "S2_storerhabs"; 18133let CextOpcode = "S2_storerh"; 18134let isPredicable = 1; 18135let DecoderNamespace = "MustExtend"; 18136let isExtended = 1; 18137let opExtendable = 0; 18138let isExtentSigned = 0; 18139let opExtentBits = 17; 18140let opExtentAlign = 1; 18141let opNewValue = 1; 18142} 18143def PS_storeriabs : HInst< 18144(outs), 18145(ins u30_2Imm:$Ii, IntRegs:$Rt32), 18146"memw(#$Ii) = $Rt32", 18147tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 18148let Inst{24-21} = 0b0100; 18149let Inst{31-27} = 0b01001; 18150let addrMode = Absolute; 18151let accessSize = WordAccess; 18152let isExtended = 1; 18153let mayStore = 1; 18154let BaseOpcode = "S2_storeriabs"; 18155let CextOpcode = "S2_storeri"; 18156let isPredicable = 1; 18157let isNVStorable = 1; 18158let DecoderNamespace = "MustExtend"; 18159let isExtended = 1; 18160let opExtendable = 0; 18161let isExtentSigned = 0; 18162let opExtentBits = 18; 18163let opExtentAlign = 2; 18164} 18165def PS_storerinewabs : HInst< 18166(outs), 18167(ins u30_2Imm:$Ii, IntRegs:$Nt8), 18168"memw(#$Ii) = $Nt8.new", 18169tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 18170let Inst{12-11} = 0b10; 18171let Inst{24-21} = 0b0101; 18172let Inst{31-27} = 0b01001; 18173let addrMode = Absolute; 18174let accessSize = WordAccess; 18175let isNVStore = 1; 18176let isNewValue = 1; 18177let isExtended = 1; 18178let isRestrictNoSlot1Store = 1; 18179let mayStore = 1; 18180let BaseOpcode = "S2_storeriabs"; 18181let CextOpcode = "S2_storeri"; 18182let isPredicable = 1; 18183let DecoderNamespace = "MustExtend"; 18184let isExtended = 1; 18185let opExtendable = 0; 18186let isExtentSigned = 0; 18187let opExtentBits = 18; 18188let opExtentAlign = 2; 18189let opNewValue = 1; 18190} 18191def PS_trap1 : HInst< 18192(outs), 18193(ins u8_0Imm:$Ii), 18194"trap1(#$Ii)", 18195tc_53c851ab, TypeJ>, Enc_a51a9a, Requires<[HasPreV65]> { 18196let Inst{1-0} = 0b00; 18197let Inst{7-5} = 0b000; 18198let Inst{13-13} = 0b0; 18199let Inst{31-16} = 0b0101010010000000; 18200let isSolo = 1; 18201} 18202def S2_addasl_rrri : HInst< 18203(outs IntRegs:$Rd32), 18204(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii), 18205"$Rd32 = addasl($Rt32,$Rs32,#$Ii)", 18206tc_2c13e7f5, TypeS_3op>, Enc_47ef61 { 18207let Inst{13-13} = 0b0; 18208let Inst{31-21} = 0b11000100000; 18209let hasNewValue = 1; 18210let opNewValue = 0; 18211let prefersSlot3 = 1; 18212} 18213def S2_allocframe : HInst< 18214(outs IntRegs:$Rx32), 18215(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 18216"allocframe($Rx32,#$Ii):raw", 18217tc_934753bb, TypeST>, Enc_22c845 { 18218let Inst{13-11} = 0b000; 18219let Inst{31-21} = 0b10100000100; 18220let hasNewValue = 1; 18221let opNewValue = 0; 18222let addrMode = BaseImmOffset; 18223let accessSize = DoubleWordAccess; 18224let mayStore = 1; 18225let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 18226let Defs = [R30]; 18227let Constraints = "$Rx32 = $Rx32in"; 18228} 18229def S2_asl_i_p : HInst< 18230(outs DoubleRegs:$Rdd32), 18231(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18232"$Rdd32 = asl($Rss32,#$Ii)", 18233tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18234let Inst{7-5} = 0b010; 18235let Inst{31-21} = 0b10000000000; 18236} 18237def S2_asl_i_p_acc : HInst< 18238(outs DoubleRegs:$Rxx32), 18239(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18240"$Rxx32 += asl($Rss32,#$Ii)", 18241tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18242let Inst{7-5} = 0b110; 18243let Inst{31-21} = 0b10000010000; 18244let prefersSlot3 = 1; 18245let Constraints = "$Rxx32 = $Rxx32in"; 18246} 18247def S2_asl_i_p_and : HInst< 18248(outs DoubleRegs:$Rxx32), 18249(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18250"$Rxx32 &= asl($Rss32,#$Ii)", 18251tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18252let Inst{7-5} = 0b010; 18253let Inst{31-21} = 0b10000010010; 18254let prefersSlot3 = 1; 18255let Constraints = "$Rxx32 = $Rxx32in"; 18256} 18257def S2_asl_i_p_nac : HInst< 18258(outs DoubleRegs:$Rxx32), 18259(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18260"$Rxx32 -= asl($Rss32,#$Ii)", 18261tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18262let Inst{7-5} = 0b010; 18263let Inst{31-21} = 0b10000010000; 18264let prefersSlot3 = 1; 18265let Constraints = "$Rxx32 = $Rxx32in"; 18266} 18267def S2_asl_i_p_or : HInst< 18268(outs DoubleRegs:$Rxx32), 18269(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18270"$Rxx32 |= asl($Rss32,#$Ii)", 18271tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18272let Inst{7-5} = 0b110; 18273let Inst{31-21} = 0b10000010010; 18274let prefersSlot3 = 1; 18275let Constraints = "$Rxx32 = $Rxx32in"; 18276} 18277def S2_asl_i_p_xacc : HInst< 18278(outs DoubleRegs:$Rxx32), 18279(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18280"$Rxx32 ^= asl($Rss32,#$Ii)", 18281tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18282let Inst{7-5} = 0b010; 18283let Inst{31-21} = 0b10000010100; 18284let prefersSlot3 = 1; 18285let Constraints = "$Rxx32 = $Rxx32in"; 18286} 18287def S2_asl_i_r : HInst< 18288(outs IntRegs:$Rd32), 18289(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18290"$Rd32 = asl($Rs32,#$Ii)", 18291tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18292let Inst{7-5} = 0b010; 18293let Inst{13-13} = 0b0; 18294let Inst{31-21} = 0b10001100000; 18295let hasNewValue = 1; 18296let opNewValue = 0; 18297} 18298def S2_asl_i_r_acc : HInst< 18299(outs IntRegs:$Rx32), 18300(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18301"$Rx32 += asl($Rs32,#$Ii)", 18302tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18303let Inst{7-5} = 0b110; 18304let Inst{13-13} = 0b0; 18305let Inst{31-21} = 0b10001110000; 18306let hasNewValue = 1; 18307let opNewValue = 0; 18308let prefersSlot3 = 1; 18309let Constraints = "$Rx32 = $Rx32in"; 18310} 18311def S2_asl_i_r_and : HInst< 18312(outs IntRegs:$Rx32), 18313(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18314"$Rx32 &= asl($Rs32,#$Ii)", 18315tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18316let Inst{7-5} = 0b010; 18317let Inst{13-13} = 0b0; 18318let Inst{31-21} = 0b10001110010; 18319let hasNewValue = 1; 18320let opNewValue = 0; 18321let prefersSlot3 = 1; 18322let Constraints = "$Rx32 = $Rx32in"; 18323} 18324def S2_asl_i_r_nac : HInst< 18325(outs IntRegs:$Rx32), 18326(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18327"$Rx32 -= asl($Rs32,#$Ii)", 18328tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18329let Inst{7-5} = 0b010; 18330let Inst{13-13} = 0b0; 18331let Inst{31-21} = 0b10001110000; 18332let hasNewValue = 1; 18333let opNewValue = 0; 18334let prefersSlot3 = 1; 18335let Constraints = "$Rx32 = $Rx32in"; 18336} 18337def S2_asl_i_r_or : HInst< 18338(outs IntRegs:$Rx32), 18339(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18340"$Rx32 |= asl($Rs32,#$Ii)", 18341tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18342let Inst{7-5} = 0b110; 18343let Inst{13-13} = 0b0; 18344let Inst{31-21} = 0b10001110010; 18345let hasNewValue = 1; 18346let opNewValue = 0; 18347let prefersSlot3 = 1; 18348let Constraints = "$Rx32 = $Rx32in"; 18349} 18350def S2_asl_i_r_sat : HInst< 18351(outs IntRegs:$Rd32), 18352(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18353"$Rd32 = asl($Rs32,#$Ii):sat", 18354tc_8a825db2, TypeS_2op>, Enc_a05677 { 18355let Inst{7-5} = 0b010; 18356let Inst{13-13} = 0b0; 18357let Inst{31-21} = 0b10001100010; 18358let hasNewValue = 1; 18359let opNewValue = 0; 18360let prefersSlot3 = 1; 18361let Defs = [USR_OVF]; 18362} 18363def S2_asl_i_r_xacc : HInst< 18364(outs IntRegs:$Rx32), 18365(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18366"$Rx32 ^= asl($Rs32,#$Ii)", 18367tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18368let Inst{7-5} = 0b010; 18369let Inst{13-13} = 0b0; 18370let Inst{31-21} = 0b10001110100; 18371let hasNewValue = 1; 18372let opNewValue = 0; 18373let prefersSlot3 = 1; 18374let Constraints = "$Rx32 = $Rx32in"; 18375} 18376def S2_asl_i_vh : HInst< 18377(outs DoubleRegs:$Rdd32), 18378(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18379"$Rdd32 = vaslh($Rss32,#$Ii)", 18380tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18381let Inst{7-5} = 0b010; 18382let Inst{13-12} = 0b00; 18383let Inst{31-21} = 0b10000000100; 18384} 18385def S2_asl_i_vw : HInst< 18386(outs DoubleRegs:$Rdd32), 18387(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18388"$Rdd32 = vaslw($Rss32,#$Ii)", 18389tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18390let Inst{7-5} = 0b010; 18391let Inst{13-13} = 0b0; 18392let Inst{31-21} = 0b10000000010; 18393} 18394def S2_asl_r_p : HInst< 18395(outs DoubleRegs:$Rdd32), 18396(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18397"$Rdd32 = asl($Rss32,$Rt32)", 18398tc_5da50c4b, TypeS_3op>, Enc_927852 { 18399let Inst{7-5} = 0b100; 18400let Inst{13-13} = 0b0; 18401let Inst{31-21} = 0b11000011100; 18402} 18403def S2_asl_r_p_acc : HInst< 18404(outs DoubleRegs:$Rxx32), 18405(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18406"$Rxx32 += asl($Rss32,$Rt32)", 18407tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18408let Inst{7-5} = 0b100; 18409let Inst{13-13} = 0b0; 18410let Inst{31-21} = 0b11001011110; 18411let prefersSlot3 = 1; 18412let Constraints = "$Rxx32 = $Rxx32in"; 18413} 18414def S2_asl_r_p_and : HInst< 18415(outs DoubleRegs:$Rxx32), 18416(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18417"$Rxx32 &= asl($Rss32,$Rt32)", 18418tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18419let Inst{7-5} = 0b100; 18420let Inst{13-13} = 0b0; 18421let Inst{31-21} = 0b11001011010; 18422let prefersSlot3 = 1; 18423let Constraints = "$Rxx32 = $Rxx32in"; 18424} 18425def S2_asl_r_p_nac : HInst< 18426(outs DoubleRegs:$Rxx32), 18427(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18428"$Rxx32 -= asl($Rss32,$Rt32)", 18429tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18430let Inst{7-5} = 0b100; 18431let Inst{13-13} = 0b0; 18432let Inst{31-21} = 0b11001011100; 18433let prefersSlot3 = 1; 18434let Constraints = "$Rxx32 = $Rxx32in"; 18435} 18436def S2_asl_r_p_or : HInst< 18437(outs DoubleRegs:$Rxx32), 18438(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18439"$Rxx32 |= asl($Rss32,$Rt32)", 18440tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18441let Inst{7-5} = 0b100; 18442let Inst{13-13} = 0b0; 18443let Inst{31-21} = 0b11001011000; 18444let prefersSlot3 = 1; 18445let Constraints = "$Rxx32 = $Rxx32in"; 18446} 18447def S2_asl_r_p_xor : HInst< 18448(outs DoubleRegs:$Rxx32), 18449(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18450"$Rxx32 ^= asl($Rss32,$Rt32)", 18451tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18452let Inst{7-5} = 0b100; 18453let Inst{13-13} = 0b0; 18454let Inst{31-21} = 0b11001011011; 18455let prefersSlot3 = 1; 18456let Constraints = "$Rxx32 = $Rxx32in"; 18457} 18458def S2_asl_r_r : HInst< 18459(outs IntRegs:$Rd32), 18460(ins IntRegs:$Rs32, IntRegs:$Rt32), 18461"$Rd32 = asl($Rs32,$Rt32)", 18462tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18463let Inst{7-5} = 0b100; 18464let Inst{13-13} = 0b0; 18465let Inst{31-21} = 0b11000110010; 18466let hasNewValue = 1; 18467let opNewValue = 0; 18468} 18469def S2_asl_r_r_acc : HInst< 18470(outs IntRegs:$Rx32), 18471(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18472"$Rx32 += asl($Rs32,$Rt32)", 18473tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18474let Inst{7-5} = 0b100; 18475let Inst{13-13} = 0b0; 18476let Inst{31-21} = 0b11001100110; 18477let hasNewValue = 1; 18478let opNewValue = 0; 18479let prefersSlot3 = 1; 18480let Constraints = "$Rx32 = $Rx32in"; 18481} 18482def S2_asl_r_r_and : HInst< 18483(outs IntRegs:$Rx32), 18484(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18485"$Rx32 &= asl($Rs32,$Rt32)", 18486tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18487let Inst{7-5} = 0b100; 18488let Inst{13-13} = 0b0; 18489let Inst{31-21} = 0b11001100010; 18490let hasNewValue = 1; 18491let opNewValue = 0; 18492let prefersSlot3 = 1; 18493let Constraints = "$Rx32 = $Rx32in"; 18494} 18495def S2_asl_r_r_nac : HInst< 18496(outs IntRegs:$Rx32), 18497(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18498"$Rx32 -= asl($Rs32,$Rt32)", 18499tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18500let Inst{7-5} = 0b100; 18501let Inst{13-13} = 0b0; 18502let Inst{31-21} = 0b11001100100; 18503let hasNewValue = 1; 18504let opNewValue = 0; 18505let prefersSlot3 = 1; 18506let Constraints = "$Rx32 = $Rx32in"; 18507} 18508def S2_asl_r_r_or : HInst< 18509(outs IntRegs:$Rx32), 18510(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18511"$Rx32 |= asl($Rs32,$Rt32)", 18512tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18513let Inst{7-5} = 0b100; 18514let Inst{13-13} = 0b0; 18515let Inst{31-21} = 0b11001100000; 18516let hasNewValue = 1; 18517let opNewValue = 0; 18518let prefersSlot3 = 1; 18519let Constraints = "$Rx32 = $Rx32in"; 18520} 18521def S2_asl_r_r_sat : HInst< 18522(outs IntRegs:$Rd32), 18523(ins IntRegs:$Rs32, IntRegs:$Rt32), 18524"$Rd32 = asl($Rs32,$Rt32):sat", 18525tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18526let Inst{7-5} = 0b100; 18527let Inst{13-13} = 0b0; 18528let Inst{31-21} = 0b11000110000; 18529let hasNewValue = 1; 18530let opNewValue = 0; 18531let prefersSlot3 = 1; 18532let Defs = [USR_OVF]; 18533} 18534def S2_asl_r_vh : HInst< 18535(outs DoubleRegs:$Rdd32), 18536(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18537"$Rdd32 = vaslh($Rss32,$Rt32)", 18538tc_5da50c4b, TypeS_3op>, Enc_927852 { 18539let Inst{7-5} = 0b100; 18540let Inst{13-13} = 0b0; 18541let Inst{31-21} = 0b11000011010; 18542} 18543def S2_asl_r_vw : HInst< 18544(outs DoubleRegs:$Rdd32), 18545(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18546"$Rdd32 = vaslw($Rss32,$Rt32)", 18547tc_5da50c4b, TypeS_3op>, Enc_927852 { 18548let Inst{7-5} = 0b100; 18549let Inst{13-13} = 0b0; 18550let Inst{31-21} = 0b11000011000; 18551} 18552def S2_asr_i_p : HInst< 18553(outs DoubleRegs:$Rdd32), 18554(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18555"$Rdd32 = asr($Rss32,#$Ii)", 18556tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18557let Inst{7-5} = 0b000; 18558let Inst{31-21} = 0b10000000000; 18559} 18560def S2_asr_i_p_acc : HInst< 18561(outs DoubleRegs:$Rxx32), 18562(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18563"$Rxx32 += asr($Rss32,#$Ii)", 18564tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18565let Inst{7-5} = 0b100; 18566let Inst{31-21} = 0b10000010000; 18567let prefersSlot3 = 1; 18568let Constraints = "$Rxx32 = $Rxx32in"; 18569} 18570def S2_asr_i_p_and : HInst< 18571(outs DoubleRegs:$Rxx32), 18572(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18573"$Rxx32 &= asr($Rss32,#$Ii)", 18574tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18575let Inst{7-5} = 0b000; 18576let Inst{31-21} = 0b10000010010; 18577let prefersSlot3 = 1; 18578let Constraints = "$Rxx32 = $Rxx32in"; 18579} 18580def S2_asr_i_p_nac : HInst< 18581(outs DoubleRegs:$Rxx32), 18582(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18583"$Rxx32 -= asr($Rss32,#$Ii)", 18584tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18585let Inst{7-5} = 0b000; 18586let Inst{31-21} = 0b10000010000; 18587let prefersSlot3 = 1; 18588let Constraints = "$Rxx32 = $Rxx32in"; 18589} 18590def S2_asr_i_p_or : HInst< 18591(outs DoubleRegs:$Rxx32), 18592(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18593"$Rxx32 |= asr($Rss32,#$Ii)", 18594tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18595let Inst{7-5} = 0b100; 18596let Inst{31-21} = 0b10000010010; 18597let prefersSlot3 = 1; 18598let Constraints = "$Rxx32 = $Rxx32in"; 18599} 18600def S2_asr_i_p_rnd : HInst< 18601(outs DoubleRegs:$Rdd32), 18602(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18603"$Rdd32 = asr($Rss32,#$Ii):rnd", 18604tc_0dfac0a7, TypeS_2op>, Enc_5eac98 { 18605let Inst{7-5} = 0b111; 18606let Inst{31-21} = 0b10000000110; 18607let prefersSlot3 = 1; 18608} 18609def S2_asr_i_p_rnd_goodsyntax : HInst< 18610(outs DoubleRegs:$Rdd32), 18611(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18612"$Rdd32 = asrrnd($Rss32,#$Ii)", 18613tc_0dfac0a7, TypeS_2op> { 18614let isPseudo = 1; 18615} 18616def S2_asr_i_r : HInst< 18617(outs IntRegs:$Rd32), 18618(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18619"$Rd32 = asr($Rs32,#$Ii)", 18620tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18621let Inst{7-5} = 0b000; 18622let Inst{13-13} = 0b0; 18623let Inst{31-21} = 0b10001100000; 18624let hasNewValue = 1; 18625let opNewValue = 0; 18626} 18627def S2_asr_i_r_acc : HInst< 18628(outs IntRegs:$Rx32), 18629(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18630"$Rx32 += asr($Rs32,#$Ii)", 18631tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18632let Inst{7-5} = 0b100; 18633let Inst{13-13} = 0b0; 18634let Inst{31-21} = 0b10001110000; 18635let hasNewValue = 1; 18636let opNewValue = 0; 18637let prefersSlot3 = 1; 18638let Constraints = "$Rx32 = $Rx32in"; 18639} 18640def S2_asr_i_r_and : HInst< 18641(outs IntRegs:$Rx32), 18642(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18643"$Rx32 &= asr($Rs32,#$Ii)", 18644tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18645let Inst{7-5} = 0b000; 18646let Inst{13-13} = 0b0; 18647let Inst{31-21} = 0b10001110010; 18648let hasNewValue = 1; 18649let opNewValue = 0; 18650let prefersSlot3 = 1; 18651let Constraints = "$Rx32 = $Rx32in"; 18652} 18653def S2_asr_i_r_nac : HInst< 18654(outs IntRegs:$Rx32), 18655(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18656"$Rx32 -= asr($Rs32,#$Ii)", 18657tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18658let Inst{7-5} = 0b000; 18659let Inst{13-13} = 0b0; 18660let Inst{31-21} = 0b10001110000; 18661let hasNewValue = 1; 18662let opNewValue = 0; 18663let prefersSlot3 = 1; 18664let Constraints = "$Rx32 = $Rx32in"; 18665} 18666def S2_asr_i_r_or : HInst< 18667(outs IntRegs:$Rx32), 18668(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18669"$Rx32 |= asr($Rs32,#$Ii)", 18670tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18671let Inst{7-5} = 0b100; 18672let Inst{13-13} = 0b0; 18673let Inst{31-21} = 0b10001110010; 18674let hasNewValue = 1; 18675let opNewValue = 0; 18676let prefersSlot3 = 1; 18677let Constraints = "$Rx32 = $Rx32in"; 18678} 18679def S2_asr_i_r_rnd : HInst< 18680(outs IntRegs:$Rd32), 18681(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18682"$Rd32 = asr($Rs32,#$Ii):rnd", 18683tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 18684let Inst{7-5} = 0b000; 18685let Inst{13-13} = 0b0; 18686let Inst{31-21} = 0b10001100010; 18687let hasNewValue = 1; 18688let opNewValue = 0; 18689let prefersSlot3 = 1; 18690} 18691def S2_asr_i_r_rnd_goodsyntax : HInst< 18692(outs IntRegs:$Rd32), 18693(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18694"$Rd32 = asrrnd($Rs32,#$Ii)", 18695tc_0dfac0a7, TypeS_2op> { 18696let hasNewValue = 1; 18697let opNewValue = 0; 18698let isPseudo = 1; 18699} 18700def S2_asr_i_svw_trun : HInst< 18701(outs IntRegs:$Rd32), 18702(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18703"$Rd32 = vasrw($Rss32,#$Ii)", 18704tc_f34c1c21, TypeS_2op>, Enc_8dec2e { 18705let Inst{7-5} = 0b010; 18706let Inst{13-13} = 0b0; 18707let Inst{31-21} = 0b10001000110; 18708let hasNewValue = 1; 18709let opNewValue = 0; 18710let prefersSlot3 = 1; 18711} 18712def S2_asr_i_vh : HInst< 18713(outs DoubleRegs:$Rdd32), 18714(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18715"$Rdd32 = vasrh($Rss32,#$Ii)", 18716tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18717let Inst{7-5} = 0b000; 18718let Inst{13-12} = 0b00; 18719let Inst{31-21} = 0b10000000100; 18720} 18721def S2_asr_i_vw : HInst< 18722(outs DoubleRegs:$Rdd32), 18723(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18724"$Rdd32 = vasrw($Rss32,#$Ii)", 18725tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18726let Inst{7-5} = 0b000; 18727let Inst{13-13} = 0b0; 18728let Inst{31-21} = 0b10000000010; 18729} 18730def S2_asr_r_p : HInst< 18731(outs DoubleRegs:$Rdd32), 18732(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18733"$Rdd32 = asr($Rss32,$Rt32)", 18734tc_5da50c4b, TypeS_3op>, Enc_927852 { 18735let Inst{7-5} = 0b000; 18736let Inst{13-13} = 0b0; 18737let Inst{31-21} = 0b11000011100; 18738} 18739def S2_asr_r_p_acc : HInst< 18740(outs DoubleRegs:$Rxx32), 18741(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18742"$Rxx32 += asr($Rss32,$Rt32)", 18743tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18744let Inst{7-5} = 0b000; 18745let Inst{13-13} = 0b0; 18746let Inst{31-21} = 0b11001011110; 18747let prefersSlot3 = 1; 18748let Constraints = "$Rxx32 = $Rxx32in"; 18749} 18750def S2_asr_r_p_and : HInst< 18751(outs DoubleRegs:$Rxx32), 18752(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18753"$Rxx32 &= asr($Rss32,$Rt32)", 18754tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18755let Inst{7-5} = 0b000; 18756let Inst{13-13} = 0b0; 18757let Inst{31-21} = 0b11001011010; 18758let prefersSlot3 = 1; 18759let Constraints = "$Rxx32 = $Rxx32in"; 18760} 18761def S2_asr_r_p_nac : HInst< 18762(outs DoubleRegs:$Rxx32), 18763(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18764"$Rxx32 -= asr($Rss32,$Rt32)", 18765tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18766let Inst{7-5} = 0b000; 18767let Inst{13-13} = 0b0; 18768let Inst{31-21} = 0b11001011100; 18769let prefersSlot3 = 1; 18770let Constraints = "$Rxx32 = $Rxx32in"; 18771} 18772def S2_asr_r_p_or : HInst< 18773(outs DoubleRegs:$Rxx32), 18774(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18775"$Rxx32 |= asr($Rss32,$Rt32)", 18776tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18777let Inst{7-5} = 0b000; 18778let Inst{13-13} = 0b0; 18779let Inst{31-21} = 0b11001011000; 18780let prefersSlot3 = 1; 18781let Constraints = "$Rxx32 = $Rxx32in"; 18782} 18783def S2_asr_r_p_xor : HInst< 18784(outs DoubleRegs:$Rxx32), 18785(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18786"$Rxx32 ^= asr($Rss32,$Rt32)", 18787tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18788let Inst{7-5} = 0b000; 18789let Inst{13-13} = 0b0; 18790let Inst{31-21} = 0b11001011011; 18791let prefersSlot3 = 1; 18792let Constraints = "$Rxx32 = $Rxx32in"; 18793} 18794def S2_asr_r_r : HInst< 18795(outs IntRegs:$Rd32), 18796(ins IntRegs:$Rs32, IntRegs:$Rt32), 18797"$Rd32 = asr($Rs32,$Rt32)", 18798tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18799let Inst{7-5} = 0b000; 18800let Inst{13-13} = 0b0; 18801let Inst{31-21} = 0b11000110010; 18802let hasNewValue = 1; 18803let opNewValue = 0; 18804} 18805def S2_asr_r_r_acc : HInst< 18806(outs IntRegs:$Rx32), 18807(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18808"$Rx32 += asr($Rs32,$Rt32)", 18809tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18810let Inst{7-5} = 0b000; 18811let Inst{13-13} = 0b0; 18812let Inst{31-21} = 0b11001100110; 18813let hasNewValue = 1; 18814let opNewValue = 0; 18815let prefersSlot3 = 1; 18816let Constraints = "$Rx32 = $Rx32in"; 18817} 18818def S2_asr_r_r_and : HInst< 18819(outs IntRegs:$Rx32), 18820(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18821"$Rx32 &= asr($Rs32,$Rt32)", 18822tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18823let Inst{7-5} = 0b000; 18824let Inst{13-13} = 0b0; 18825let Inst{31-21} = 0b11001100010; 18826let hasNewValue = 1; 18827let opNewValue = 0; 18828let prefersSlot3 = 1; 18829let Constraints = "$Rx32 = $Rx32in"; 18830} 18831def S2_asr_r_r_nac : HInst< 18832(outs IntRegs:$Rx32), 18833(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18834"$Rx32 -= asr($Rs32,$Rt32)", 18835tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18836let Inst{7-5} = 0b000; 18837let Inst{13-13} = 0b0; 18838let Inst{31-21} = 0b11001100100; 18839let hasNewValue = 1; 18840let opNewValue = 0; 18841let prefersSlot3 = 1; 18842let Constraints = "$Rx32 = $Rx32in"; 18843} 18844def S2_asr_r_r_or : HInst< 18845(outs IntRegs:$Rx32), 18846(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18847"$Rx32 |= asr($Rs32,$Rt32)", 18848tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18849let Inst{7-5} = 0b000; 18850let Inst{13-13} = 0b0; 18851let Inst{31-21} = 0b11001100000; 18852let hasNewValue = 1; 18853let opNewValue = 0; 18854let prefersSlot3 = 1; 18855let Constraints = "$Rx32 = $Rx32in"; 18856} 18857def S2_asr_r_r_sat : HInst< 18858(outs IntRegs:$Rd32), 18859(ins IntRegs:$Rs32, IntRegs:$Rt32), 18860"$Rd32 = asr($Rs32,$Rt32):sat", 18861tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18862let Inst{7-5} = 0b000; 18863let Inst{13-13} = 0b0; 18864let Inst{31-21} = 0b11000110000; 18865let hasNewValue = 1; 18866let opNewValue = 0; 18867let prefersSlot3 = 1; 18868let Defs = [USR_OVF]; 18869} 18870def S2_asr_r_svw_trun : HInst< 18871(outs IntRegs:$Rd32), 18872(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18873"$Rd32 = vasrw($Rss32,$Rt32)", 18874tc_f34c1c21, TypeS_3op>, Enc_3d5b28 { 18875let Inst{7-5} = 0b010; 18876let Inst{13-13} = 0b0; 18877let Inst{31-21} = 0b11000101000; 18878let hasNewValue = 1; 18879let opNewValue = 0; 18880let prefersSlot3 = 1; 18881} 18882def S2_asr_r_vh : HInst< 18883(outs DoubleRegs:$Rdd32), 18884(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18885"$Rdd32 = vasrh($Rss32,$Rt32)", 18886tc_5da50c4b, TypeS_3op>, Enc_927852 { 18887let Inst{7-5} = 0b000; 18888let Inst{13-13} = 0b0; 18889let Inst{31-21} = 0b11000011010; 18890} 18891def S2_asr_r_vw : HInst< 18892(outs DoubleRegs:$Rdd32), 18893(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18894"$Rdd32 = vasrw($Rss32,$Rt32)", 18895tc_5da50c4b, TypeS_3op>, Enc_927852 { 18896let Inst{7-5} = 0b000; 18897let Inst{13-13} = 0b0; 18898let Inst{31-21} = 0b11000011000; 18899} 18900def S2_brev : HInst< 18901(outs IntRegs:$Rd32), 18902(ins IntRegs:$Rs32), 18903"$Rd32 = brev($Rs32)", 18904tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18905let Inst{13-5} = 0b000000110; 18906let Inst{31-21} = 0b10001100010; 18907let hasNewValue = 1; 18908let opNewValue = 0; 18909let prefersSlot3 = 1; 18910} 18911def S2_brevp : HInst< 18912(outs DoubleRegs:$Rdd32), 18913(ins DoubleRegs:$Rss32), 18914"$Rdd32 = brev($Rss32)", 18915tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 18916let Inst{13-5} = 0b000000110; 18917let Inst{31-21} = 0b10000000110; 18918let prefersSlot3 = 1; 18919} 18920def S2_cabacdecbin : HInst< 18921(outs DoubleRegs:$Rdd32), 18922(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 18923"$Rdd32 = decbin($Rss32,$Rtt32)", 18924tc_db596beb, TypeS_3op>, Enc_a56825 { 18925let Inst{7-5} = 0b110; 18926let Inst{13-13} = 0b0; 18927let Inst{31-21} = 0b11000001110; 18928let isPredicateLate = 1; 18929let prefersSlot3 = 1; 18930let Defs = [P0]; 18931} 18932def S2_cl0 : HInst< 18933(outs IntRegs:$Rd32), 18934(ins IntRegs:$Rs32), 18935"$Rd32 = cl0($Rs32)", 18936tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18937let Inst{13-5} = 0b000000101; 18938let Inst{31-21} = 0b10001100000; 18939let hasNewValue = 1; 18940let opNewValue = 0; 18941let prefersSlot3 = 1; 18942} 18943def S2_cl0p : HInst< 18944(outs IntRegs:$Rd32), 18945(ins DoubleRegs:$Rss32), 18946"$Rd32 = cl0($Rss32)", 18947tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 18948let Inst{13-5} = 0b000000010; 18949let Inst{31-21} = 0b10001000010; 18950let hasNewValue = 1; 18951let opNewValue = 0; 18952let prefersSlot3 = 1; 18953} 18954def S2_cl1 : HInst< 18955(outs IntRegs:$Rd32), 18956(ins IntRegs:$Rs32), 18957"$Rd32 = cl1($Rs32)", 18958tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18959let Inst{13-5} = 0b000000110; 18960let Inst{31-21} = 0b10001100000; 18961let hasNewValue = 1; 18962let opNewValue = 0; 18963let prefersSlot3 = 1; 18964} 18965def S2_cl1p : HInst< 18966(outs IntRegs:$Rd32), 18967(ins DoubleRegs:$Rss32), 18968"$Rd32 = cl1($Rss32)", 18969tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 18970let Inst{13-5} = 0b000000100; 18971let Inst{31-21} = 0b10001000010; 18972let hasNewValue = 1; 18973let opNewValue = 0; 18974let prefersSlot3 = 1; 18975} 18976def S2_clb : HInst< 18977(outs IntRegs:$Rd32), 18978(ins IntRegs:$Rs32), 18979"$Rd32 = clb($Rs32)", 18980tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18981let Inst{13-5} = 0b000000100; 18982let Inst{31-21} = 0b10001100000; 18983let hasNewValue = 1; 18984let opNewValue = 0; 18985let prefersSlot3 = 1; 18986} 18987def S2_clbnorm : HInst< 18988(outs IntRegs:$Rd32), 18989(ins IntRegs:$Rs32), 18990"$Rd32 = normamt($Rs32)", 18991tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18992let Inst{13-5} = 0b000000111; 18993let Inst{31-21} = 0b10001100000; 18994let hasNewValue = 1; 18995let opNewValue = 0; 18996let prefersSlot3 = 1; 18997} 18998def S2_clbp : HInst< 18999(outs IntRegs:$Rd32), 19000(ins DoubleRegs:$Rss32), 19001"$Rd32 = clb($Rss32)", 19002tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19003let Inst{13-5} = 0b000000000; 19004let Inst{31-21} = 0b10001000010; 19005let hasNewValue = 1; 19006let opNewValue = 0; 19007let prefersSlot3 = 1; 19008} 19009def S2_clrbit_i : HInst< 19010(outs IntRegs:$Rd32), 19011(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19012"$Rd32 = clrbit($Rs32,#$Ii)", 19013tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19014let Inst{7-5} = 0b001; 19015let Inst{13-13} = 0b0; 19016let Inst{31-21} = 0b10001100110; 19017let hasNewValue = 1; 19018let opNewValue = 0; 19019} 19020def S2_clrbit_r : HInst< 19021(outs IntRegs:$Rd32), 19022(ins IntRegs:$Rs32, IntRegs:$Rt32), 19023"$Rd32 = clrbit($Rs32,$Rt32)", 19024tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19025let Inst{7-5} = 0b010; 19026let Inst{13-13} = 0b0; 19027let Inst{31-21} = 0b11000110100; 19028let hasNewValue = 1; 19029let opNewValue = 0; 19030} 19031def S2_ct0 : HInst< 19032(outs IntRegs:$Rd32), 19033(ins IntRegs:$Rs32), 19034"$Rd32 = ct0($Rs32)", 19035tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19036let Inst{13-5} = 0b000000100; 19037let Inst{31-21} = 0b10001100010; 19038let hasNewValue = 1; 19039let opNewValue = 0; 19040let prefersSlot3 = 1; 19041} 19042def S2_ct0p : HInst< 19043(outs IntRegs:$Rd32), 19044(ins DoubleRegs:$Rss32), 19045"$Rd32 = ct0($Rss32)", 19046tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19047let Inst{13-5} = 0b000000010; 19048let Inst{31-21} = 0b10001000111; 19049let hasNewValue = 1; 19050let opNewValue = 0; 19051let prefersSlot3 = 1; 19052} 19053def S2_ct1 : HInst< 19054(outs IntRegs:$Rd32), 19055(ins IntRegs:$Rs32), 19056"$Rd32 = ct1($Rs32)", 19057tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19058let Inst{13-5} = 0b000000101; 19059let Inst{31-21} = 0b10001100010; 19060let hasNewValue = 1; 19061let opNewValue = 0; 19062let prefersSlot3 = 1; 19063} 19064def S2_ct1p : HInst< 19065(outs IntRegs:$Rd32), 19066(ins DoubleRegs:$Rss32), 19067"$Rd32 = ct1($Rss32)", 19068tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19069let Inst{13-5} = 0b000000100; 19070let Inst{31-21} = 0b10001000111; 19071let hasNewValue = 1; 19072let opNewValue = 0; 19073let prefersSlot3 = 1; 19074} 19075def S2_deinterleave : HInst< 19076(outs DoubleRegs:$Rdd32), 19077(ins DoubleRegs:$Rss32), 19078"$Rdd32 = deinterleave($Rss32)", 19079tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19080let Inst{13-5} = 0b000000100; 19081let Inst{31-21} = 0b10000000110; 19082let prefersSlot3 = 1; 19083} 19084def S2_extractu : HInst< 19085(outs IntRegs:$Rd32), 19086(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19087"$Rd32 = extractu($Rs32,#$Ii,#$II)", 19088tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 19089let Inst{13-13} = 0b0; 19090let Inst{31-23} = 0b100011010; 19091let hasNewValue = 1; 19092let opNewValue = 0; 19093let prefersSlot3 = 1; 19094} 19095def S2_extractu_rp : HInst< 19096(outs IntRegs:$Rd32), 19097(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 19098"$Rd32 = extractu($Rs32,$Rtt32)", 19099tc_a08b630b, TypeS_3op>, Enc_e07374 { 19100let Inst{7-5} = 0b000; 19101let Inst{13-13} = 0b0; 19102let Inst{31-21} = 0b11001001000; 19103let hasNewValue = 1; 19104let opNewValue = 0; 19105let prefersSlot3 = 1; 19106} 19107def S2_extractup : HInst< 19108(outs DoubleRegs:$Rdd32), 19109(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19110"$Rdd32 = extractu($Rss32,#$Ii,#$II)", 19111tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 19112let Inst{31-24} = 0b10000001; 19113let prefersSlot3 = 1; 19114} 19115def S2_extractup_rp : HInst< 19116(outs DoubleRegs:$Rdd32), 19117(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19118"$Rdd32 = extractu($Rss32,$Rtt32)", 19119tc_a08b630b, TypeS_3op>, Enc_a56825 { 19120let Inst{7-5} = 0b000; 19121let Inst{13-13} = 0b0; 19122let Inst{31-21} = 0b11000001000; 19123let prefersSlot3 = 1; 19124} 19125def S2_insert : HInst< 19126(outs IntRegs:$Rx32), 19127(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19128"$Rx32 = insert($Rs32,#$Ii,#$II)", 19129tc_bb831a7c, TypeS_2op>, Enc_a1e29d { 19130let Inst{13-13} = 0b0; 19131let Inst{31-23} = 0b100011110; 19132let hasNewValue = 1; 19133let opNewValue = 0; 19134let prefersSlot3 = 1; 19135let Constraints = "$Rx32 = $Rx32in"; 19136} 19137def S2_insert_rp : HInst< 19138(outs IntRegs:$Rx32), 19139(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19140"$Rx32 = insert($Rs32,$Rtt32)", 19141tc_a4e22bbd, TypeS_3op>, Enc_179b35 { 19142let Inst{7-5} = 0b000; 19143let Inst{13-13} = 0b0; 19144let Inst{31-21} = 0b11001000000; 19145let hasNewValue = 1; 19146let opNewValue = 0; 19147let prefersSlot3 = 1; 19148let Constraints = "$Rx32 = $Rx32in"; 19149} 19150def S2_insertp : HInst< 19151(outs DoubleRegs:$Rxx32), 19152(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19153"$Rxx32 = insert($Rss32,#$Ii,#$II)", 19154tc_bb831a7c, TypeS_2op>, Enc_143a3c { 19155let Inst{31-24} = 0b10000011; 19156let prefersSlot3 = 1; 19157let Constraints = "$Rxx32 = $Rxx32in"; 19158} 19159def S2_insertp_rp : HInst< 19160(outs DoubleRegs:$Rxx32), 19161(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19162"$Rxx32 = insert($Rss32,$Rtt32)", 19163tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 19164let Inst{7-5} = 0b000; 19165let Inst{13-13} = 0b0; 19166let Inst{31-21} = 0b11001010000; 19167let prefersSlot3 = 1; 19168let Constraints = "$Rxx32 = $Rxx32in"; 19169} 19170def S2_interleave : HInst< 19171(outs DoubleRegs:$Rdd32), 19172(ins DoubleRegs:$Rss32), 19173"$Rdd32 = interleave($Rss32)", 19174tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19175let Inst{13-5} = 0b000000101; 19176let Inst{31-21} = 0b10000000110; 19177let prefersSlot3 = 1; 19178} 19179def S2_lfsp : HInst< 19180(outs DoubleRegs:$Rdd32), 19181(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19182"$Rdd32 = lfs($Rss32,$Rtt32)", 19183tc_a08b630b, TypeS_3op>, Enc_a56825 { 19184let Inst{7-5} = 0b110; 19185let Inst{13-13} = 0b0; 19186let Inst{31-21} = 0b11000001100; 19187let prefersSlot3 = 1; 19188} 19189def S2_lsl_r_p : HInst< 19190(outs DoubleRegs:$Rdd32), 19191(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19192"$Rdd32 = lsl($Rss32,$Rt32)", 19193tc_5da50c4b, TypeS_3op>, Enc_927852 { 19194let Inst{7-5} = 0b110; 19195let Inst{13-13} = 0b0; 19196let Inst{31-21} = 0b11000011100; 19197} 19198def S2_lsl_r_p_acc : HInst< 19199(outs DoubleRegs:$Rxx32), 19200(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19201"$Rxx32 += lsl($Rss32,$Rt32)", 19202tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19203let Inst{7-5} = 0b110; 19204let Inst{13-13} = 0b0; 19205let Inst{31-21} = 0b11001011110; 19206let prefersSlot3 = 1; 19207let Constraints = "$Rxx32 = $Rxx32in"; 19208} 19209def S2_lsl_r_p_and : HInst< 19210(outs DoubleRegs:$Rxx32), 19211(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19212"$Rxx32 &= lsl($Rss32,$Rt32)", 19213tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19214let Inst{7-5} = 0b110; 19215let Inst{13-13} = 0b0; 19216let Inst{31-21} = 0b11001011010; 19217let prefersSlot3 = 1; 19218let Constraints = "$Rxx32 = $Rxx32in"; 19219} 19220def S2_lsl_r_p_nac : HInst< 19221(outs DoubleRegs:$Rxx32), 19222(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19223"$Rxx32 -= lsl($Rss32,$Rt32)", 19224tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19225let Inst{7-5} = 0b110; 19226let Inst{13-13} = 0b0; 19227let Inst{31-21} = 0b11001011100; 19228let prefersSlot3 = 1; 19229let Constraints = "$Rxx32 = $Rxx32in"; 19230} 19231def S2_lsl_r_p_or : HInst< 19232(outs DoubleRegs:$Rxx32), 19233(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19234"$Rxx32 |= lsl($Rss32,$Rt32)", 19235tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19236let Inst{7-5} = 0b110; 19237let Inst{13-13} = 0b0; 19238let Inst{31-21} = 0b11001011000; 19239let prefersSlot3 = 1; 19240let Constraints = "$Rxx32 = $Rxx32in"; 19241} 19242def S2_lsl_r_p_xor : HInst< 19243(outs DoubleRegs:$Rxx32), 19244(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19245"$Rxx32 ^= lsl($Rss32,$Rt32)", 19246tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19247let Inst{7-5} = 0b110; 19248let Inst{13-13} = 0b0; 19249let Inst{31-21} = 0b11001011011; 19250let prefersSlot3 = 1; 19251let Constraints = "$Rxx32 = $Rxx32in"; 19252} 19253def S2_lsl_r_r : HInst< 19254(outs IntRegs:$Rd32), 19255(ins IntRegs:$Rs32, IntRegs:$Rt32), 19256"$Rd32 = lsl($Rs32,$Rt32)", 19257tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19258let Inst{7-5} = 0b110; 19259let Inst{13-13} = 0b0; 19260let Inst{31-21} = 0b11000110010; 19261let hasNewValue = 1; 19262let opNewValue = 0; 19263} 19264def S2_lsl_r_r_acc : HInst< 19265(outs IntRegs:$Rx32), 19266(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19267"$Rx32 += lsl($Rs32,$Rt32)", 19268tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19269let Inst{7-5} = 0b110; 19270let Inst{13-13} = 0b0; 19271let Inst{31-21} = 0b11001100110; 19272let hasNewValue = 1; 19273let opNewValue = 0; 19274let prefersSlot3 = 1; 19275let Constraints = "$Rx32 = $Rx32in"; 19276} 19277def S2_lsl_r_r_and : HInst< 19278(outs IntRegs:$Rx32), 19279(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19280"$Rx32 &= lsl($Rs32,$Rt32)", 19281tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19282let Inst{7-5} = 0b110; 19283let Inst{13-13} = 0b0; 19284let Inst{31-21} = 0b11001100010; 19285let hasNewValue = 1; 19286let opNewValue = 0; 19287let prefersSlot3 = 1; 19288let Constraints = "$Rx32 = $Rx32in"; 19289} 19290def S2_lsl_r_r_nac : HInst< 19291(outs IntRegs:$Rx32), 19292(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19293"$Rx32 -= lsl($Rs32,$Rt32)", 19294tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19295let Inst{7-5} = 0b110; 19296let Inst{13-13} = 0b0; 19297let Inst{31-21} = 0b11001100100; 19298let hasNewValue = 1; 19299let opNewValue = 0; 19300let prefersSlot3 = 1; 19301let Constraints = "$Rx32 = $Rx32in"; 19302} 19303def S2_lsl_r_r_or : HInst< 19304(outs IntRegs:$Rx32), 19305(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19306"$Rx32 |= lsl($Rs32,$Rt32)", 19307tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19308let Inst{7-5} = 0b110; 19309let Inst{13-13} = 0b0; 19310let Inst{31-21} = 0b11001100000; 19311let hasNewValue = 1; 19312let opNewValue = 0; 19313let prefersSlot3 = 1; 19314let Constraints = "$Rx32 = $Rx32in"; 19315} 19316def S2_lsl_r_vh : HInst< 19317(outs DoubleRegs:$Rdd32), 19318(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19319"$Rdd32 = vlslh($Rss32,$Rt32)", 19320tc_5da50c4b, TypeS_3op>, Enc_927852 { 19321let Inst{7-5} = 0b110; 19322let Inst{13-13} = 0b0; 19323let Inst{31-21} = 0b11000011010; 19324} 19325def S2_lsl_r_vw : HInst< 19326(outs DoubleRegs:$Rdd32), 19327(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19328"$Rdd32 = vlslw($Rss32,$Rt32)", 19329tc_5da50c4b, TypeS_3op>, Enc_927852 { 19330let Inst{7-5} = 0b110; 19331let Inst{13-13} = 0b0; 19332let Inst{31-21} = 0b11000011000; 19333} 19334def S2_lsr_i_p : HInst< 19335(outs DoubleRegs:$Rdd32), 19336(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 19337"$Rdd32 = lsr($Rss32,#$Ii)", 19338tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 19339let Inst{7-5} = 0b001; 19340let Inst{31-21} = 0b10000000000; 19341} 19342def S2_lsr_i_p_acc : HInst< 19343(outs DoubleRegs:$Rxx32), 19344(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19345"$Rxx32 += lsr($Rss32,#$Ii)", 19346tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19347let Inst{7-5} = 0b101; 19348let Inst{31-21} = 0b10000010000; 19349let prefersSlot3 = 1; 19350let Constraints = "$Rxx32 = $Rxx32in"; 19351} 19352def S2_lsr_i_p_and : HInst< 19353(outs DoubleRegs:$Rxx32), 19354(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19355"$Rxx32 &= lsr($Rss32,#$Ii)", 19356tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19357let Inst{7-5} = 0b001; 19358let Inst{31-21} = 0b10000010010; 19359let prefersSlot3 = 1; 19360let Constraints = "$Rxx32 = $Rxx32in"; 19361} 19362def S2_lsr_i_p_nac : HInst< 19363(outs DoubleRegs:$Rxx32), 19364(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19365"$Rxx32 -= lsr($Rss32,#$Ii)", 19366tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19367let Inst{7-5} = 0b001; 19368let Inst{31-21} = 0b10000010000; 19369let prefersSlot3 = 1; 19370let Constraints = "$Rxx32 = $Rxx32in"; 19371} 19372def S2_lsr_i_p_or : HInst< 19373(outs DoubleRegs:$Rxx32), 19374(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19375"$Rxx32 |= lsr($Rss32,#$Ii)", 19376tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19377let Inst{7-5} = 0b101; 19378let Inst{31-21} = 0b10000010010; 19379let prefersSlot3 = 1; 19380let Constraints = "$Rxx32 = $Rxx32in"; 19381} 19382def S2_lsr_i_p_xacc : HInst< 19383(outs DoubleRegs:$Rxx32), 19384(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19385"$Rxx32 ^= lsr($Rss32,#$Ii)", 19386tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19387let Inst{7-5} = 0b001; 19388let Inst{31-21} = 0b10000010100; 19389let prefersSlot3 = 1; 19390let Constraints = "$Rxx32 = $Rxx32in"; 19391} 19392def S2_lsr_i_r : HInst< 19393(outs IntRegs:$Rd32), 19394(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19395"$Rd32 = lsr($Rs32,#$Ii)", 19396tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19397let Inst{7-5} = 0b001; 19398let Inst{13-13} = 0b0; 19399let Inst{31-21} = 0b10001100000; 19400let hasNewValue = 1; 19401let opNewValue = 0; 19402} 19403def S2_lsr_i_r_acc : HInst< 19404(outs IntRegs:$Rx32), 19405(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19406"$Rx32 += lsr($Rs32,#$Ii)", 19407tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19408let Inst{7-5} = 0b101; 19409let Inst{13-13} = 0b0; 19410let Inst{31-21} = 0b10001110000; 19411let hasNewValue = 1; 19412let opNewValue = 0; 19413let prefersSlot3 = 1; 19414let Constraints = "$Rx32 = $Rx32in"; 19415} 19416def S2_lsr_i_r_and : HInst< 19417(outs IntRegs:$Rx32), 19418(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19419"$Rx32 &= lsr($Rs32,#$Ii)", 19420tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19421let Inst{7-5} = 0b001; 19422let Inst{13-13} = 0b0; 19423let Inst{31-21} = 0b10001110010; 19424let hasNewValue = 1; 19425let opNewValue = 0; 19426let prefersSlot3 = 1; 19427let Constraints = "$Rx32 = $Rx32in"; 19428} 19429def S2_lsr_i_r_nac : HInst< 19430(outs IntRegs:$Rx32), 19431(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19432"$Rx32 -= lsr($Rs32,#$Ii)", 19433tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19434let Inst{7-5} = 0b001; 19435let Inst{13-13} = 0b0; 19436let Inst{31-21} = 0b10001110000; 19437let hasNewValue = 1; 19438let opNewValue = 0; 19439let prefersSlot3 = 1; 19440let Constraints = "$Rx32 = $Rx32in"; 19441} 19442def S2_lsr_i_r_or : HInst< 19443(outs IntRegs:$Rx32), 19444(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19445"$Rx32 |= lsr($Rs32,#$Ii)", 19446tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19447let Inst{7-5} = 0b101; 19448let Inst{13-13} = 0b0; 19449let Inst{31-21} = 0b10001110010; 19450let hasNewValue = 1; 19451let opNewValue = 0; 19452let prefersSlot3 = 1; 19453let Constraints = "$Rx32 = $Rx32in"; 19454} 19455def S2_lsr_i_r_xacc : HInst< 19456(outs IntRegs:$Rx32), 19457(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19458"$Rx32 ^= lsr($Rs32,#$Ii)", 19459tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19460let Inst{7-5} = 0b001; 19461let Inst{13-13} = 0b0; 19462let Inst{31-21} = 0b10001110100; 19463let hasNewValue = 1; 19464let opNewValue = 0; 19465let prefersSlot3 = 1; 19466let Constraints = "$Rx32 = $Rx32in"; 19467} 19468def S2_lsr_i_vh : HInst< 19469(outs DoubleRegs:$Rdd32), 19470(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 19471"$Rdd32 = vlsrh($Rss32,#$Ii)", 19472tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 19473let Inst{7-5} = 0b001; 19474let Inst{13-12} = 0b00; 19475let Inst{31-21} = 0b10000000100; 19476} 19477def S2_lsr_i_vw : HInst< 19478(outs DoubleRegs:$Rdd32), 19479(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 19480"$Rdd32 = vlsrw($Rss32,#$Ii)", 19481tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 19482let Inst{7-5} = 0b001; 19483let Inst{13-13} = 0b0; 19484let Inst{31-21} = 0b10000000010; 19485} 19486def S2_lsr_r_p : HInst< 19487(outs DoubleRegs:$Rdd32), 19488(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19489"$Rdd32 = lsr($Rss32,$Rt32)", 19490tc_5da50c4b, TypeS_3op>, Enc_927852 { 19491let Inst{7-5} = 0b010; 19492let Inst{13-13} = 0b0; 19493let Inst{31-21} = 0b11000011100; 19494} 19495def S2_lsr_r_p_acc : HInst< 19496(outs DoubleRegs:$Rxx32), 19497(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19498"$Rxx32 += lsr($Rss32,$Rt32)", 19499tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19500let Inst{7-5} = 0b010; 19501let Inst{13-13} = 0b0; 19502let Inst{31-21} = 0b11001011110; 19503let prefersSlot3 = 1; 19504let Constraints = "$Rxx32 = $Rxx32in"; 19505} 19506def S2_lsr_r_p_and : HInst< 19507(outs DoubleRegs:$Rxx32), 19508(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19509"$Rxx32 &= lsr($Rss32,$Rt32)", 19510tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19511let Inst{7-5} = 0b010; 19512let Inst{13-13} = 0b0; 19513let Inst{31-21} = 0b11001011010; 19514let prefersSlot3 = 1; 19515let Constraints = "$Rxx32 = $Rxx32in"; 19516} 19517def S2_lsr_r_p_nac : HInst< 19518(outs DoubleRegs:$Rxx32), 19519(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19520"$Rxx32 -= lsr($Rss32,$Rt32)", 19521tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19522let Inst{7-5} = 0b010; 19523let Inst{13-13} = 0b0; 19524let Inst{31-21} = 0b11001011100; 19525let prefersSlot3 = 1; 19526let Constraints = "$Rxx32 = $Rxx32in"; 19527} 19528def S2_lsr_r_p_or : HInst< 19529(outs DoubleRegs:$Rxx32), 19530(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19531"$Rxx32 |= lsr($Rss32,$Rt32)", 19532tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19533let Inst{7-5} = 0b010; 19534let Inst{13-13} = 0b0; 19535let Inst{31-21} = 0b11001011000; 19536let prefersSlot3 = 1; 19537let Constraints = "$Rxx32 = $Rxx32in"; 19538} 19539def S2_lsr_r_p_xor : HInst< 19540(outs DoubleRegs:$Rxx32), 19541(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19542"$Rxx32 ^= lsr($Rss32,$Rt32)", 19543tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19544let Inst{7-5} = 0b010; 19545let Inst{13-13} = 0b0; 19546let Inst{31-21} = 0b11001011011; 19547let prefersSlot3 = 1; 19548let Constraints = "$Rxx32 = $Rxx32in"; 19549} 19550def S2_lsr_r_r : HInst< 19551(outs IntRegs:$Rd32), 19552(ins IntRegs:$Rs32, IntRegs:$Rt32), 19553"$Rd32 = lsr($Rs32,$Rt32)", 19554tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19555let Inst{7-5} = 0b010; 19556let Inst{13-13} = 0b0; 19557let Inst{31-21} = 0b11000110010; 19558let hasNewValue = 1; 19559let opNewValue = 0; 19560} 19561def S2_lsr_r_r_acc : HInst< 19562(outs IntRegs:$Rx32), 19563(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19564"$Rx32 += lsr($Rs32,$Rt32)", 19565tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19566let Inst{7-5} = 0b010; 19567let Inst{13-13} = 0b0; 19568let Inst{31-21} = 0b11001100110; 19569let hasNewValue = 1; 19570let opNewValue = 0; 19571let prefersSlot3 = 1; 19572let Constraints = "$Rx32 = $Rx32in"; 19573} 19574def S2_lsr_r_r_and : HInst< 19575(outs IntRegs:$Rx32), 19576(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19577"$Rx32 &= lsr($Rs32,$Rt32)", 19578tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19579let Inst{7-5} = 0b010; 19580let Inst{13-13} = 0b0; 19581let Inst{31-21} = 0b11001100010; 19582let hasNewValue = 1; 19583let opNewValue = 0; 19584let prefersSlot3 = 1; 19585let Constraints = "$Rx32 = $Rx32in"; 19586} 19587def S2_lsr_r_r_nac : HInst< 19588(outs IntRegs:$Rx32), 19589(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19590"$Rx32 -= lsr($Rs32,$Rt32)", 19591tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19592let Inst{7-5} = 0b010; 19593let Inst{13-13} = 0b0; 19594let Inst{31-21} = 0b11001100100; 19595let hasNewValue = 1; 19596let opNewValue = 0; 19597let prefersSlot3 = 1; 19598let Constraints = "$Rx32 = $Rx32in"; 19599} 19600def S2_lsr_r_r_or : HInst< 19601(outs IntRegs:$Rx32), 19602(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19603"$Rx32 |= lsr($Rs32,$Rt32)", 19604tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19605let Inst{7-5} = 0b010; 19606let Inst{13-13} = 0b0; 19607let Inst{31-21} = 0b11001100000; 19608let hasNewValue = 1; 19609let opNewValue = 0; 19610let prefersSlot3 = 1; 19611let Constraints = "$Rx32 = $Rx32in"; 19612} 19613def S2_lsr_r_vh : HInst< 19614(outs DoubleRegs:$Rdd32), 19615(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19616"$Rdd32 = vlsrh($Rss32,$Rt32)", 19617tc_5da50c4b, TypeS_3op>, Enc_927852 { 19618let Inst{7-5} = 0b010; 19619let Inst{13-13} = 0b0; 19620let Inst{31-21} = 0b11000011010; 19621} 19622def S2_lsr_r_vw : HInst< 19623(outs DoubleRegs:$Rdd32), 19624(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19625"$Rdd32 = vlsrw($Rss32,$Rt32)", 19626tc_5da50c4b, TypeS_3op>, Enc_927852 { 19627let Inst{7-5} = 0b010; 19628let Inst{13-13} = 0b0; 19629let Inst{31-21} = 0b11000011000; 19630} 19631def S2_mask : HInst< 19632(outs IntRegs:$Rd32), 19633(ins u5_0Imm:$Ii, u5_0Imm:$II), 19634"$Rd32 = mask(#$Ii,#$II)", 19635tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> { 19636let Inst{13-13} = 0b1; 19637let Inst{20-16} = 0b00000; 19638let Inst{31-23} = 0b100011010; 19639let hasNewValue = 1; 19640let opNewValue = 0; 19641let prefersSlot3 = 1; 19642} 19643def S2_packhl : HInst< 19644(outs DoubleRegs:$Rdd32), 19645(ins IntRegs:$Rs32, IntRegs:$Rt32), 19646"$Rdd32 = packhl($Rs32,$Rt32)", 19647tc_713b66bf, TypeALU32_3op>, Enc_be32a5 { 19648let Inst{7-5} = 0b000; 19649let Inst{13-13} = 0b0; 19650let Inst{31-21} = 0b11110101100; 19651let InputType = "reg"; 19652} 19653def S2_parityp : HInst< 19654(outs IntRegs:$Rd32), 19655(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19656"$Rd32 = parity($Rss32,$Rtt32)", 19657tc_a08b630b, TypeALU64>, Enc_d2216a { 19658let Inst{7-5} = 0b000; 19659let Inst{13-13} = 0b0; 19660let Inst{31-21} = 0b11010000000; 19661let hasNewValue = 1; 19662let opNewValue = 0; 19663let prefersSlot3 = 1; 19664} 19665def S2_pstorerbf_io : HInst< 19666(outs), 19667(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19668"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32", 19669tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19670let Inst{2-2} = 0b0; 19671let Inst{31-21} = 0b01000100000; 19672let isPredicated = 1; 19673let isPredicatedFalse = 1; 19674let addrMode = BaseImmOffset; 19675let accessSize = ByteAccess; 19676let mayStore = 1; 19677let BaseOpcode = "S2_storerb_io"; 19678let CextOpcode = "S2_storerb"; 19679let InputType = "imm"; 19680let isNVStorable = 1; 19681let isExtendable = 1; 19682let opExtendable = 2; 19683let isExtentSigned = 0; 19684let opExtentBits = 6; 19685let opExtentAlign = 0; 19686} 19687def S2_pstorerbf_pi : HInst< 19688(outs IntRegs:$Rx32), 19689(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19690"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32", 19691tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 19692let Inst{2-2} = 0b1; 19693let Inst{7-7} = 0b0; 19694let Inst{13-13} = 0b1; 19695let Inst{31-21} = 0b10101011000; 19696let isPredicated = 1; 19697let isPredicatedFalse = 1; 19698let addrMode = PostInc; 19699let accessSize = ByteAccess; 19700let mayStore = 1; 19701let BaseOpcode = "S2_storerb_pi"; 19702let isNVStorable = 1; 19703let Constraints = "$Rx32 = $Rx32in"; 19704} 19705def S2_pstorerbf_zomap : HInst< 19706(outs), 19707(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19708"if (!$Pv4) memb($Rs32) = $Rt32", 19709tc_8035e91f, TypeMAPPING> { 19710let isPseudo = 1; 19711let isCodeGenOnly = 1; 19712} 19713def S2_pstorerbfnew_pi : HInst< 19714(outs IntRegs:$Rx32), 19715(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19716"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19717tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 19718let Inst{2-2} = 0b1; 19719let Inst{7-7} = 0b1; 19720let Inst{13-13} = 0b1; 19721let Inst{31-21} = 0b10101011000; 19722let isPredicated = 1; 19723let isPredicatedFalse = 1; 19724let addrMode = PostInc; 19725let accessSize = ByteAccess; 19726let isPredicatedNew = 1; 19727let mayStore = 1; 19728let BaseOpcode = "S2_storerb_pi"; 19729let isNVStorable = 1; 19730let Constraints = "$Rx32 = $Rx32in"; 19731} 19732def S2_pstorerbnewf_io : HInst< 19733(outs), 19734(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19735"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19736tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19737let Inst{2-2} = 0b0; 19738let Inst{12-11} = 0b00; 19739let Inst{31-21} = 0b01000100101; 19740let isPredicated = 1; 19741let isPredicatedFalse = 1; 19742let addrMode = BaseImmOffset; 19743let accessSize = ByteAccess; 19744let isNVStore = 1; 19745let isNewValue = 1; 19746let isRestrictNoSlot1Store = 1; 19747let mayStore = 1; 19748let BaseOpcode = "S2_storerb_io"; 19749let CextOpcode = "S2_storerb"; 19750let InputType = "imm"; 19751let isExtendable = 1; 19752let opExtendable = 2; 19753let isExtentSigned = 0; 19754let opExtentBits = 6; 19755let opExtentAlign = 0; 19756let opNewValue = 3; 19757} 19758def S2_pstorerbnewf_pi : HInst< 19759(outs IntRegs:$Rx32), 19760(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19761"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19762tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19763let Inst{2-2} = 0b1; 19764let Inst{7-7} = 0b0; 19765let Inst{13-11} = 0b100; 19766let Inst{31-21} = 0b10101011101; 19767let isPredicated = 1; 19768let isPredicatedFalse = 1; 19769let addrMode = PostInc; 19770let accessSize = ByteAccess; 19771let isNVStore = 1; 19772let isNewValue = 1; 19773let isRestrictNoSlot1Store = 1; 19774let mayStore = 1; 19775let BaseOpcode = "S2_storerb_pi"; 19776let CextOpcode = "S2_storerb"; 19777let opNewValue = 4; 19778let Constraints = "$Rx32 = $Rx32in"; 19779} 19780def S2_pstorerbnewf_zomap : HInst< 19781(outs), 19782(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19783"if (!$Pv4) memb($Rs32) = $Nt8.new", 19784tc_011e0e9d, TypeMAPPING> { 19785let isPseudo = 1; 19786let isCodeGenOnly = 1; 19787let opNewValue = 2; 19788} 19789def S2_pstorerbnewfnew_pi : HInst< 19790(outs IntRegs:$Rx32), 19791(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19792"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19793tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19794let Inst{2-2} = 0b1; 19795let Inst{7-7} = 0b1; 19796let Inst{13-11} = 0b100; 19797let Inst{31-21} = 0b10101011101; 19798let isPredicated = 1; 19799let isPredicatedFalse = 1; 19800let addrMode = PostInc; 19801let accessSize = ByteAccess; 19802let isNVStore = 1; 19803let isPredicatedNew = 1; 19804let isNewValue = 1; 19805let isRestrictNoSlot1Store = 1; 19806let mayStore = 1; 19807let BaseOpcode = "S2_storerb_pi"; 19808let CextOpcode = "S2_storerb"; 19809let opNewValue = 4; 19810let Constraints = "$Rx32 = $Rx32in"; 19811} 19812def S2_pstorerbnewt_io : HInst< 19813(outs), 19814(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19815"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19816tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19817let Inst{2-2} = 0b0; 19818let Inst{12-11} = 0b00; 19819let Inst{31-21} = 0b01000000101; 19820let isPredicated = 1; 19821let addrMode = BaseImmOffset; 19822let accessSize = ByteAccess; 19823let isNVStore = 1; 19824let isNewValue = 1; 19825let isRestrictNoSlot1Store = 1; 19826let mayStore = 1; 19827let BaseOpcode = "S2_storerb_io"; 19828let CextOpcode = "S2_storerb"; 19829let InputType = "imm"; 19830let isExtendable = 1; 19831let opExtendable = 2; 19832let isExtentSigned = 0; 19833let opExtentBits = 6; 19834let opExtentAlign = 0; 19835let opNewValue = 3; 19836} 19837def S2_pstorerbnewt_pi : HInst< 19838(outs IntRegs:$Rx32), 19839(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19840"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19841tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19842let Inst{2-2} = 0b0; 19843let Inst{7-7} = 0b0; 19844let Inst{13-11} = 0b100; 19845let Inst{31-21} = 0b10101011101; 19846let isPredicated = 1; 19847let addrMode = PostInc; 19848let accessSize = ByteAccess; 19849let isNVStore = 1; 19850let isNewValue = 1; 19851let isRestrictNoSlot1Store = 1; 19852let mayStore = 1; 19853let BaseOpcode = "S2_storerb_pi"; 19854let CextOpcode = "S2_storerb"; 19855let opNewValue = 4; 19856let Constraints = "$Rx32 = $Rx32in"; 19857} 19858def S2_pstorerbnewt_zomap : HInst< 19859(outs), 19860(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19861"if ($Pv4) memb($Rs32) = $Nt8.new", 19862tc_011e0e9d, TypeMAPPING> { 19863let isPseudo = 1; 19864let isCodeGenOnly = 1; 19865let opNewValue = 2; 19866} 19867def S2_pstorerbnewtnew_pi : HInst< 19868(outs IntRegs:$Rx32), 19869(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19870"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19871tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19872let Inst{2-2} = 0b0; 19873let Inst{7-7} = 0b1; 19874let Inst{13-11} = 0b100; 19875let Inst{31-21} = 0b10101011101; 19876let isPredicated = 1; 19877let addrMode = PostInc; 19878let accessSize = ByteAccess; 19879let isNVStore = 1; 19880let isPredicatedNew = 1; 19881let isNewValue = 1; 19882let isRestrictNoSlot1Store = 1; 19883let mayStore = 1; 19884let BaseOpcode = "S2_storerb_pi"; 19885let CextOpcode = "S2_storerb"; 19886let opNewValue = 4; 19887let Constraints = "$Rx32 = $Rx32in"; 19888} 19889def S2_pstorerbt_io : HInst< 19890(outs), 19891(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19892"if ($Pv4) memb($Rs32+#$Ii) = $Rt32", 19893tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19894let Inst{2-2} = 0b0; 19895let Inst{31-21} = 0b01000000000; 19896let isPredicated = 1; 19897let addrMode = BaseImmOffset; 19898let accessSize = ByteAccess; 19899let mayStore = 1; 19900let BaseOpcode = "S2_storerb_io"; 19901let CextOpcode = "S2_storerb"; 19902let InputType = "imm"; 19903let isNVStorable = 1; 19904let isExtendable = 1; 19905let opExtendable = 2; 19906let isExtentSigned = 0; 19907let opExtentBits = 6; 19908let opExtentAlign = 0; 19909} 19910def S2_pstorerbt_pi : HInst< 19911(outs IntRegs:$Rx32), 19912(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19913"if ($Pv4) memb($Rx32++#$Ii) = $Rt32", 19914tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 19915let Inst{2-2} = 0b0; 19916let Inst{7-7} = 0b0; 19917let Inst{13-13} = 0b1; 19918let Inst{31-21} = 0b10101011000; 19919let isPredicated = 1; 19920let addrMode = PostInc; 19921let accessSize = ByteAccess; 19922let mayStore = 1; 19923let BaseOpcode = "S2_storerb_pi"; 19924let isNVStorable = 1; 19925let Constraints = "$Rx32 = $Rx32in"; 19926} 19927def S2_pstorerbt_zomap : HInst< 19928(outs), 19929(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19930"if ($Pv4) memb($Rs32) = $Rt32", 19931tc_8035e91f, TypeMAPPING> { 19932let isPseudo = 1; 19933let isCodeGenOnly = 1; 19934} 19935def S2_pstorerbtnew_pi : HInst< 19936(outs IntRegs:$Rx32), 19937(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19938"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19939tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 19940let Inst{2-2} = 0b0; 19941let Inst{7-7} = 0b1; 19942let Inst{13-13} = 0b1; 19943let Inst{31-21} = 0b10101011000; 19944let isPredicated = 1; 19945let addrMode = PostInc; 19946let accessSize = ByteAccess; 19947let isPredicatedNew = 1; 19948let mayStore = 1; 19949let BaseOpcode = "S2_storerb_pi"; 19950let isNVStorable = 1; 19951let Constraints = "$Rx32 = $Rx32in"; 19952} 19953def S2_pstorerdf_io : HInst< 19954(outs), 19955(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 19956"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32", 19957tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 19958let Inst{2-2} = 0b0; 19959let Inst{31-21} = 0b01000100110; 19960let isPredicated = 1; 19961let isPredicatedFalse = 1; 19962let addrMode = BaseImmOffset; 19963let accessSize = DoubleWordAccess; 19964let mayStore = 1; 19965let BaseOpcode = "S2_storerd_io"; 19966let CextOpcode = "S2_storerd"; 19967let InputType = "imm"; 19968let isExtendable = 1; 19969let opExtendable = 2; 19970let isExtentSigned = 0; 19971let opExtentBits = 9; 19972let opExtentAlign = 3; 19973} 19974def S2_pstorerdf_pi : HInst< 19975(outs IntRegs:$Rx32), 19976(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 19977"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32", 19978tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 19979let Inst{2-2} = 0b1; 19980let Inst{7-7} = 0b0; 19981let Inst{13-13} = 0b1; 19982let Inst{31-21} = 0b10101011110; 19983let isPredicated = 1; 19984let isPredicatedFalse = 1; 19985let addrMode = PostInc; 19986let accessSize = DoubleWordAccess; 19987let mayStore = 1; 19988let BaseOpcode = "S2_storerd_pi"; 19989let CextOpcode = "S2_storerd"; 19990let Constraints = "$Rx32 = $Rx32in"; 19991} 19992def S2_pstorerdf_zomap : HInst< 19993(outs), 19994(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19995"if (!$Pv4) memd($Rs32) = $Rtt32", 19996tc_8035e91f, TypeMAPPING> { 19997let isPseudo = 1; 19998let isCodeGenOnly = 1; 19999} 20000def S2_pstorerdfnew_pi : HInst< 20001(outs IntRegs:$Rx32), 20002(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20003"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20004tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20005let Inst{2-2} = 0b1; 20006let Inst{7-7} = 0b1; 20007let Inst{13-13} = 0b1; 20008let Inst{31-21} = 0b10101011110; 20009let isPredicated = 1; 20010let isPredicatedFalse = 1; 20011let addrMode = PostInc; 20012let accessSize = DoubleWordAccess; 20013let isPredicatedNew = 1; 20014let mayStore = 1; 20015let BaseOpcode = "S2_storerd_pi"; 20016let CextOpcode = "S2_storerd"; 20017let Constraints = "$Rx32 = $Rx32in"; 20018} 20019def S2_pstorerdt_io : HInst< 20020(outs), 20021(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 20022"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32", 20023tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 20024let Inst{2-2} = 0b0; 20025let Inst{31-21} = 0b01000000110; 20026let isPredicated = 1; 20027let addrMode = BaseImmOffset; 20028let accessSize = DoubleWordAccess; 20029let mayStore = 1; 20030let BaseOpcode = "S2_storerd_io"; 20031let CextOpcode = "S2_storerd"; 20032let InputType = "imm"; 20033let isExtendable = 1; 20034let opExtendable = 2; 20035let isExtentSigned = 0; 20036let opExtentBits = 9; 20037let opExtentAlign = 3; 20038} 20039def S2_pstorerdt_pi : HInst< 20040(outs IntRegs:$Rx32), 20041(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20042"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32", 20043tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 20044let Inst{2-2} = 0b0; 20045let Inst{7-7} = 0b0; 20046let Inst{13-13} = 0b1; 20047let Inst{31-21} = 0b10101011110; 20048let isPredicated = 1; 20049let addrMode = PostInc; 20050let accessSize = DoubleWordAccess; 20051let mayStore = 1; 20052let BaseOpcode = "S2_storerd_pi"; 20053let CextOpcode = "S2_storerd"; 20054let Constraints = "$Rx32 = $Rx32in"; 20055} 20056def S2_pstorerdt_zomap : HInst< 20057(outs), 20058(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 20059"if ($Pv4) memd($Rs32) = $Rtt32", 20060tc_8035e91f, TypeMAPPING> { 20061let isPseudo = 1; 20062let isCodeGenOnly = 1; 20063} 20064def S2_pstorerdtnew_pi : HInst< 20065(outs IntRegs:$Rx32), 20066(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20067"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20068tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20069let Inst{2-2} = 0b0; 20070let Inst{7-7} = 0b1; 20071let Inst{13-13} = 0b1; 20072let Inst{31-21} = 0b10101011110; 20073let isPredicated = 1; 20074let addrMode = PostInc; 20075let accessSize = DoubleWordAccess; 20076let isPredicatedNew = 1; 20077let mayStore = 1; 20078let BaseOpcode = "S2_storerd_pi"; 20079let CextOpcode = "S2_storerd"; 20080let Constraints = "$Rx32 = $Rx32in"; 20081} 20082def S2_pstorerff_io : HInst< 20083(outs), 20084(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20085"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20086tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20087let Inst{2-2} = 0b0; 20088let Inst{31-21} = 0b01000100011; 20089let isPredicated = 1; 20090let isPredicatedFalse = 1; 20091let addrMode = BaseImmOffset; 20092let accessSize = HalfWordAccess; 20093let mayStore = 1; 20094let BaseOpcode = "S2_storerf_io"; 20095let CextOpcode = "S2_storerf"; 20096let InputType = "imm"; 20097let isExtendable = 1; 20098let opExtendable = 2; 20099let isExtentSigned = 0; 20100let opExtentBits = 7; 20101let opExtentAlign = 1; 20102} 20103def S2_pstorerff_pi : HInst< 20104(outs IntRegs:$Rx32), 20105(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20106"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20107tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20108let Inst{2-2} = 0b1; 20109let Inst{7-7} = 0b0; 20110let Inst{13-13} = 0b1; 20111let Inst{31-21} = 0b10101011011; 20112let isPredicated = 1; 20113let isPredicatedFalse = 1; 20114let addrMode = PostInc; 20115let accessSize = HalfWordAccess; 20116let mayStore = 1; 20117let BaseOpcode = "S2_storerf_pi"; 20118let CextOpcode = "S2_storerf"; 20119let Constraints = "$Rx32 = $Rx32in"; 20120} 20121def S2_pstorerff_zomap : HInst< 20122(outs), 20123(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20124"if (!$Pv4) memh($Rs32) = $Rt32.h", 20125tc_8035e91f, TypeMAPPING> { 20126let isPseudo = 1; 20127let isCodeGenOnly = 1; 20128} 20129def S2_pstorerffnew_pi : HInst< 20130(outs IntRegs:$Rx32), 20131(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20132"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20133tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20134let Inst{2-2} = 0b1; 20135let Inst{7-7} = 0b1; 20136let Inst{13-13} = 0b1; 20137let Inst{31-21} = 0b10101011011; 20138let isPredicated = 1; 20139let isPredicatedFalse = 1; 20140let addrMode = PostInc; 20141let accessSize = HalfWordAccess; 20142let isPredicatedNew = 1; 20143let mayStore = 1; 20144let BaseOpcode = "S2_storerf_pi"; 20145let CextOpcode = "S2_storerf"; 20146let Constraints = "$Rx32 = $Rx32in"; 20147} 20148def S2_pstorerft_io : HInst< 20149(outs), 20150(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20151"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20152tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20153let Inst{2-2} = 0b0; 20154let Inst{31-21} = 0b01000000011; 20155let isPredicated = 1; 20156let addrMode = BaseImmOffset; 20157let accessSize = HalfWordAccess; 20158let mayStore = 1; 20159let BaseOpcode = "S2_storerf_io"; 20160let CextOpcode = "S2_storerf"; 20161let InputType = "imm"; 20162let isExtendable = 1; 20163let opExtendable = 2; 20164let isExtentSigned = 0; 20165let opExtentBits = 7; 20166let opExtentAlign = 1; 20167} 20168def S2_pstorerft_pi : HInst< 20169(outs IntRegs:$Rx32), 20170(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20171"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20172tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20173let Inst{2-2} = 0b0; 20174let Inst{7-7} = 0b0; 20175let Inst{13-13} = 0b1; 20176let Inst{31-21} = 0b10101011011; 20177let isPredicated = 1; 20178let addrMode = PostInc; 20179let accessSize = HalfWordAccess; 20180let mayStore = 1; 20181let BaseOpcode = "S2_storerf_pi"; 20182let CextOpcode = "S2_storerf"; 20183let Constraints = "$Rx32 = $Rx32in"; 20184} 20185def S2_pstorerft_zomap : HInst< 20186(outs), 20187(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20188"if ($Pv4) memh($Rs32) = $Rt32.h", 20189tc_8035e91f, TypeMAPPING> { 20190let isPseudo = 1; 20191let isCodeGenOnly = 1; 20192} 20193def S2_pstorerftnew_pi : HInst< 20194(outs IntRegs:$Rx32), 20195(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20196"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20197tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20198let Inst{2-2} = 0b0; 20199let Inst{7-7} = 0b1; 20200let Inst{13-13} = 0b1; 20201let Inst{31-21} = 0b10101011011; 20202let isPredicated = 1; 20203let addrMode = PostInc; 20204let accessSize = HalfWordAccess; 20205let isPredicatedNew = 1; 20206let mayStore = 1; 20207let BaseOpcode = "S2_storerf_pi"; 20208let CextOpcode = "S2_storerf"; 20209let Constraints = "$Rx32 = $Rx32in"; 20210} 20211def S2_pstorerhf_io : HInst< 20212(outs), 20213(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20214"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32", 20215tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20216let Inst{2-2} = 0b0; 20217let Inst{31-21} = 0b01000100010; 20218let isPredicated = 1; 20219let isPredicatedFalse = 1; 20220let addrMode = BaseImmOffset; 20221let accessSize = HalfWordAccess; 20222let mayStore = 1; 20223let BaseOpcode = "S2_storerh_io"; 20224let CextOpcode = "S2_storerh"; 20225let InputType = "imm"; 20226let isNVStorable = 1; 20227let isExtendable = 1; 20228let opExtendable = 2; 20229let isExtentSigned = 0; 20230let opExtentBits = 7; 20231let opExtentAlign = 1; 20232} 20233def S2_pstorerhf_pi : HInst< 20234(outs IntRegs:$Rx32), 20235(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20236"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32", 20237tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20238let Inst{2-2} = 0b1; 20239let Inst{7-7} = 0b0; 20240let Inst{13-13} = 0b1; 20241let Inst{31-21} = 0b10101011010; 20242let isPredicated = 1; 20243let isPredicatedFalse = 1; 20244let addrMode = PostInc; 20245let accessSize = HalfWordAccess; 20246let mayStore = 1; 20247let BaseOpcode = "S2_storerh_pi"; 20248let isNVStorable = 1; 20249let Constraints = "$Rx32 = $Rx32in"; 20250} 20251def S2_pstorerhf_zomap : HInst< 20252(outs), 20253(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20254"if (!$Pv4) memh($Rs32) = $Rt32", 20255tc_8035e91f, TypeMAPPING> { 20256let isPseudo = 1; 20257let isCodeGenOnly = 1; 20258} 20259def S2_pstorerhfnew_pi : HInst< 20260(outs IntRegs:$Rx32), 20261(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20262"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20263tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20264let Inst{2-2} = 0b1; 20265let Inst{7-7} = 0b1; 20266let Inst{13-13} = 0b1; 20267let Inst{31-21} = 0b10101011010; 20268let isPredicated = 1; 20269let isPredicatedFalse = 1; 20270let addrMode = PostInc; 20271let accessSize = HalfWordAccess; 20272let isPredicatedNew = 1; 20273let mayStore = 1; 20274let BaseOpcode = "S2_storerh_pi"; 20275let isNVStorable = 1; 20276let Constraints = "$Rx32 = $Rx32in"; 20277} 20278def S2_pstorerhnewf_io : HInst< 20279(outs), 20280(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20281"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20282tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20283let Inst{2-2} = 0b0; 20284let Inst{12-11} = 0b01; 20285let Inst{31-21} = 0b01000100101; 20286let isPredicated = 1; 20287let isPredicatedFalse = 1; 20288let addrMode = BaseImmOffset; 20289let accessSize = HalfWordAccess; 20290let isNVStore = 1; 20291let isNewValue = 1; 20292let isRestrictNoSlot1Store = 1; 20293let mayStore = 1; 20294let BaseOpcode = "S2_storerh_io"; 20295let CextOpcode = "S2_storerh"; 20296let InputType = "imm"; 20297let isExtendable = 1; 20298let opExtendable = 2; 20299let isExtentSigned = 0; 20300let opExtentBits = 7; 20301let opExtentAlign = 1; 20302let opNewValue = 3; 20303} 20304def S2_pstorerhnewf_pi : HInst< 20305(outs IntRegs:$Rx32), 20306(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20307"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20308tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20309let Inst{2-2} = 0b1; 20310let Inst{7-7} = 0b0; 20311let Inst{13-11} = 0b101; 20312let Inst{31-21} = 0b10101011101; 20313let isPredicated = 1; 20314let isPredicatedFalse = 1; 20315let addrMode = PostInc; 20316let accessSize = HalfWordAccess; 20317let isNVStore = 1; 20318let isNewValue = 1; 20319let isRestrictNoSlot1Store = 1; 20320let mayStore = 1; 20321let BaseOpcode = "S2_storerh_pi"; 20322let CextOpcode = "S2_storerh"; 20323let opNewValue = 4; 20324let Constraints = "$Rx32 = $Rx32in"; 20325} 20326def S2_pstorerhnewf_zomap : HInst< 20327(outs), 20328(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20329"if (!$Pv4) memh($Rs32) = $Nt8.new", 20330tc_011e0e9d, TypeMAPPING> { 20331let isPseudo = 1; 20332let isCodeGenOnly = 1; 20333let opNewValue = 2; 20334} 20335def S2_pstorerhnewfnew_pi : HInst< 20336(outs IntRegs:$Rx32), 20337(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20338"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20339tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20340let Inst{2-2} = 0b1; 20341let Inst{7-7} = 0b1; 20342let Inst{13-11} = 0b101; 20343let Inst{31-21} = 0b10101011101; 20344let isPredicated = 1; 20345let isPredicatedFalse = 1; 20346let addrMode = PostInc; 20347let accessSize = HalfWordAccess; 20348let isNVStore = 1; 20349let isPredicatedNew = 1; 20350let isNewValue = 1; 20351let isRestrictNoSlot1Store = 1; 20352let mayStore = 1; 20353let BaseOpcode = "S2_storerh_pi"; 20354let CextOpcode = "S2_storerh"; 20355let opNewValue = 4; 20356let Constraints = "$Rx32 = $Rx32in"; 20357} 20358def S2_pstorerhnewt_io : HInst< 20359(outs), 20360(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20361"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20362tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20363let Inst{2-2} = 0b0; 20364let Inst{12-11} = 0b01; 20365let Inst{31-21} = 0b01000000101; 20366let isPredicated = 1; 20367let addrMode = BaseImmOffset; 20368let accessSize = HalfWordAccess; 20369let isNVStore = 1; 20370let isNewValue = 1; 20371let isRestrictNoSlot1Store = 1; 20372let mayStore = 1; 20373let BaseOpcode = "S2_storerh_io"; 20374let CextOpcode = "S2_storerh"; 20375let InputType = "imm"; 20376let isExtendable = 1; 20377let opExtendable = 2; 20378let isExtentSigned = 0; 20379let opExtentBits = 7; 20380let opExtentAlign = 1; 20381let opNewValue = 3; 20382} 20383def S2_pstorerhnewt_pi : HInst< 20384(outs IntRegs:$Rx32), 20385(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20386"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20387tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20388let Inst{2-2} = 0b0; 20389let Inst{7-7} = 0b0; 20390let Inst{13-11} = 0b101; 20391let Inst{31-21} = 0b10101011101; 20392let isPredicated = 1; 20393let addrMode = PostInc; 20394let accessSize = HalfWordAccess; 20395let isNVStore = 1; 20396let isNewValue = 1; 20397let isRestrictNoSlot1Store = 1; 20398let mayStore = 1; 20399let BaseOpcode = "S2_storerh_pi"; 20400let CextOpcode = "S2_storerh"; 20401let opNewValue = 4; 20402let Constraints = "$Rx32 = $Rx32in"; 20403} 20404def S2_pstorerhnewt_zomap : HInst< 20405(outs), 20406(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20407"if ($Pv4) memh($Rs32) = $Nt8.new", 20408tc_011e0e9d, TypeMAPPING> { 20409let isPseudo = 1; 20410let isCodeGenOnly = 1; 20411let opNewValue = 2; 20412} 20413def S2_pstorerhnewtnew_pi : HInst< 20414(outs IntRegs:$Rx32), 20415(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20416"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20417tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20418let Inst{2-2} = 0b0; 20419let Inst{7-7} = 0b1; 20420let Inst{13-11} = 0b101; 20421let Inst{31-21} = 0b10101011101; 20422let isPredicated = 1; 20423let addrMode = PostInc; 20424let accessSize = HalfWordAccess; 20425let isNVStore = 1; 20426let isPredicatedNew = 1; 20427let isNewValue = 1; 20428let isRestrictNoSlot1Store = 1; 20429let mayStore = 1; 20430let BaseOpcode = "S2_storerh_pi"; 20431let CextOpcode = "S2_storerh"; 20432let opNewValue = 4; 20433let Constraints = "$Rx32 = $Rx32in"; 20434} 20435def S2_pstorerht_io : HInst< 20436(outs), 20437(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20438"if ($Pv4) memh($Rs32+#$Ii) = $Rt32", 20439tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20440let Inst{2-2} = 0b0; 20441let Inst{31-21} = 0b01000000010; 20442let isPredicated = 1; 20443let addrMode = BaseImmOffset; 20444let accessSize = HalfWordAccess; 20445let mayStore = 1; 20446let BaseOpcode = "S2_storerh_io"; 20447let CextOpcode = "S2_storerh"; 20448let InputType = "imm"; 20449let isNVStorable = 1; 20450let isExtendable = 1; 20451let opExtendable = 2; 20452let isExtentSigned = 0; 20453let opExtentBits = 7; 20454let opExtentAlign = 1; 20455} 20456def S2_pstorerht_pi : HInst< 20457(outs IntRegs:$Rx32), 20458(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20459"if ($Pv4) memh($Rx32++#$Ii) = $Rt32", 20460tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20461let Inst{2-2} = 0b0; 20462let Inst{7-7} = 0b0; 20463let Inst{13-13} = 0b1; 20464let Inst{31-21} = 0b10101011010; 20465let isPredicated = 1; 20466let addrMode = PostInc; 20467let accessSize = HalfWordAccess; 20468let mayStore = 1; 20469let BaseOpcode = "S2_storerh_pi"; 20470let isNVStorable = 1; 20471let Constraints = "$Rx32 = $Rx32in"; 20472} 20473def S2_pstorerht_zomap : HInst< 20474(outs), 20475(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20476"if ($Pv4) memh($Rs32) = $Rt32", 20477tc_8035e91f, TypeMAPPING> { 20478let isPseudo = 1; 20479let isCodeGenOnly = 1; 20480} 20481def S2_pstorerhtnew_pi : HInst< 20482(outs IntRegs:$Rx32), 20483(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20484"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20485tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20486let Inst{2-2} = 0b0; 20487let Inst{7-7} = 0b1; 20488let Inst{13-13} = 0b1; 20489let Inst{31-21} = 0b10101011010; 20490let isPredicated = 1; 20491let addrMode = PostInc; 20492let accessSize = HalfWordAccess; 20493let isPredicatedNew = 1; 20494let mayStore = 1; 20495let BaseOpcode = "S2_storerh_pi"; 20496let isNVStorable = 1; 20497let Constraints = "$Rx32 = $Rx32in"; 20498} 20499def S2_pstorerif_io : HInst< 20500(outs), 20501(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20502"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32", 20503tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20504let Inst{2-2} = 0b0; 20505let Inst{31-21} = 0b01000100100; 20506let isPredicated = 1; 20507let isPredicatedFalse = 1; 20508let addrMode = BaseImmOffset; 20509let accessSize = WordAccess; 20510let mayStore = 1; 20511let BaseOpcode = "S2_storeri_io"; 20512let CextOpcode = "S2_storeri"; 20513let InputType = "imm"; 20514let isNVStorable = 1; 20515let isExtendable = 1; 20516let opExtendable = 2; 20517let isExtentSigned = 0; 20518let opExtentBits = 8; 20519let opExtentAlign = 2; 20520} 20521def S2_pstorerif_pi : HInst< 20522(outs IntRegs:$Rx32), 20523(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20524"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32", 20525tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20526let Inst{2-2} = 0b1; 20527let Inst{7-7} = 0b0; 20528let Inst{13-13} = 0b1; 20529let Inst{31-21} = 0b10101011100; 20530let isPredicated = 1; 20531let isPredicatedFalse = 1; 20532let addrMode = PostInc; 20533let accessSize = WordAccess; 20534let mayStore = 1; 20535let BaseOpcode = "S2_storeri_pi"; 20536let isNVStorable = 1; 20537let Constraints = "$Rx32 = $Rx32in"; 20538} 20539def S2_pstorerif_zomap : HInst< 20540(outs), 20541(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20542"if (!$Pv4) memw($Rs32) = $Rt32", 20543tc_8035e91f, TypeMAPPING> { 20544let isPseudo = 1; 20545let isCodeGenOnly = 1; 20546} 20547def S2_pstorerifnew_pi : HInst< 20548(outs IntRegs:$Rx32), 20549(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20550"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20551tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20552let Inst{2-2} = 0b1; 20553let Inst{7-7} = 0b1; 20554let Inst{13-13} = 0b1; 20555let Inst{31-21} = 0b10101011100; 20556let isPredicated = 1; 20557let isPredicatedFalse = 1; 20558let addrMode = PostInc; 20559let accessSize = WordAccess; 20560let isPredicatedNew = 1; 20561let mayStore = 1; 20562let BaseOpcode = "S2_storeri_pi"; 20563let CextOpcode = "S2_storeri"; 20564let isNVStorable = 1; 20565let Constraints = "$Rx32 = $Rx32in"; 20566} 20567def S2_pstorerinewf_io : HInst< 20568(outs), 20569(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20570"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20571tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20572let Inst{2-2} = 0b0; 20573let Inst{12-11} = 0b10; 20574let Inst{31-21} = 0b01000100101; 20575let isPredicated = 1; 20576let isPredicatedFalse = 1; 20577let addrMode = BaseImmOffset; 20578let accessSize = WordAccess; 20579let isNVStore = 1; 20580let isNewValue = 1; 20581let isRestrictNoSlot1Store = 1; 20582let mayStore = 1; 20583let BaseOpcode = "S2_storeri_io"; 20584let CextOpcode = "S2_storeri"; 20585let InputType = "imm"; 20586let isExtendable = 1; 20587let opExtendable = 2; 20588let isExtentSigned = 0; 20589let opExtentBits = 8; 20590let opExtentAlign = 2; 20591let opNewValue = 3; 20592} 20593def S2_pstorerinewf_pi : HInst< 20594(outs IntRegs:$Rx32), 20595(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20596"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20597tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20598let Inst{2-2} = 0b1; 20599let Inst{7-7} = 0b0; 20600let Inst{13-11} = 0b110; 20601let Inst{31-21} = 0b10101011101; 20602let isPredicated = 1; 20603let isPredicatedFalse = 1; 20604let addrMode = PostInc; 20605let accessSize = WordAccess; 20606let isNVStore = 1; 20607let isNewValue = 1; 20608let isRestrictNoSlot1Store = 1; 20609let mayStore = 1; 20610let BaseOpcode = "S2_storeri_pi"; 20611let CextOpcode = "S2_storeri"; 20612let opNewValue = 4; 20613let Constraints = "$Rx32 = $Rx32in"; 20614} 20615def S2_pstorerinewf_zomap : HInst< 20616(outs), 20617(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20618"if (!$Pv4) memw($Rs32) = $Nt8.new", 20619tc_011e0e9d, TypeMAPPING> { 20620let isPseudo = 1; 20621let isCodeGenOnly = 1; 20622let opNewValue = 2; 20623} 20624def S2_pstorerinewfnew_pi : HInst< 20625(outs IntRegs:$Rx32), 20626(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20627"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20628tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20629let Inst{2-2} = 0b1; 20630let Inst{7-7} = 0b1; 20631let Inst{13-11} = 0b110; 20632let Inst{31-21} = 0b10101011101; 20633let isPredicated = 1; 20634let isPredicatedFalse = 1; 20635let addrMode = PostInc; 20636let accessSize = WordAccess; 20637let isNVStore = 1; 20638let isPredicatedNew = 1; 20639let isNewValue = 1; 20640let isRestrictNoSlot1Store = 1; 20641let mayStore = 1; 20642let BaseOpcode = "S2_storeri_pi"; 20643let CextOpcode = "S2_storeri"; 20644let opNewValue = 4; 20645let Constraints = "$Rx32 = $Rx32in"; 20646} 20647def S2_pstorerinewt_io : HInst< 20648(outs), 20649(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20650"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20651tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20652let Inst{2-2} = 0b0; 20653let Inst{12-11} = 0b10; 20654let Inst{31-21} = 0b01000000101; 20655let isPredicated = 1; 20656let addrMode = BaseImmOffset; 20657let accessSize = WordAccess; 20658let isNVStore = 1; 20659let isNewValue = 1; 20660let isRestrictNoSlot1Store = 1; 20661let mayStore = 1; 20662let BaseOpcode = "S2_storeri_io"; 20663let CextOpcode = "S2_storeri"; 20664let InputType = "imm"; 20665let isExtendable = 1; 20666let opExtendable = 2; 20667let isExtentSigned = 0; 20668let opExtentBits = 8; 20669let opExtentAlign = 2; 20670let opNewValue = 3; 20671} 20672def S2_pstorerinewt_pi : HInst< 20673(outs IntRegs:$Rx32), 20674(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20675"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20676tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20677let Inst{2-2} = 0b0; 20678let Inst{7-7} = 0b0; 20679let Inst{13-11} = 0b110; 20680let Inst{31-21} = 0b10101011101; 20681let isPredicated = 1; 20682let addrMode = PostInc; 20683let accessSize = WordAccess; 20684let isNVStore = 1; 20685let isNewValue = 1; 20686let isRestrictNoSlot1Store = 1; 20687let mayStore = 1; 20688let BaseOpcode = "S2_storeri_pi"; 20689let CextOpcode = "S2_storeri"; 20690let opNewValue = 4; 20691let Constraints = "$Rx32 = $Rx32in"; 20692} 20693def S2_pstorerinewt_zomap : HInst< 20694(outs), 20695(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20696"if ($Pv4) memw($Rs32) = $Nt8.new", 20697tc_011e0e9d, TypeMAPPING> { 20698let isPseudo = 1; 20699let isCodeGenOnly = 1; 20700let opNewValue = 2; 20701} 20702def S2_pstorerinewtnew_pi : HInst< 20703(outs IntRegs:$Rx32), 20704(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20705"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20706tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20707let Inst{2-2} = 0b0; 20708let Inst{7-7} = 0b1; 20709let Inst{13-11} = 0b110; 20710let Inst{31-21} = 0b10101011101; 20711let isPredicated = 1; 20712let addrMode = PostInc; 20713let accessSize = WordAccess; 20714let isNVStore = 1; 20715let isPredicatedNew = 1; 20716let isNewValue = 1; 20717let isRestrictNoSlot1Store = 1; 20718let mayStore = 1; 20719let BaseOpcode = "S2_storeri_pi"; 20720let CextOpcode = "S2_storeri"; 20721let opNewValue = 4; 20722let Constraints = "$Rx32 = $Rx32in"; 20723} 20724def S2_pstorerit_io : HInst< 20725(outs), 20726(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20727"if ($Pv4) memw($Rs32+#$Ii) = $Rt32", 20728tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20729let Inst{2-2} = 0b0; 20730let Inst{31-21} = 0b01000000100; 20731let isPredicated = 1; 20732let addrMode = BaseImmOffset; 20733let accessSize = WordAccess; 20734let mayStore = 1; 20735let BaseOpcode = "S2_storeri_io"; 20736let CextOpcode = "S2_storeri"; 20737let InputType = "imm"; 20738let isNVStorable = 1; 20739let isExtendable = 1; 20740let opExtendable = 2; 20741let isExtentSigned = 0; 20742let opExtentBits = 8; 20743let opExtentAlign = 2; 20744} 20745def S2_pstorerit_pi : HInst< 20746(outs IntRegs:$Rx32), 20747(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20748"if ($Pv4) memw($Rx32++#$Ii) = $Rt32", 20749tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20750let Inst{2-2} = 0b0; 20751let Inst{7-7} = 0b0; 20752let Inst{13-13} = 0b1; 20753let Inst{31-21} = 0b10101011100; 20754let isPredicated = 1; 20755let addrMode = PostInc; 20756let accessSize = WordAccess; 20757let mayStore = 1; 20758let BaseOpcode = "S2_storeri_pi"; 20759let isNVStorable = 1; 20760let Constraints = "$Rx32 = $Rx32in"; 20761} 20762def S2_pstorerit_zomap : HInst< 20763(outs), 20764(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20765"if ($Pv4) memw($Rs32) = $Rt32", 20766tc_8035e91f, TypeMAPPING> { 20767let isPseudo = 1; 20768let isCodeGenOnly = 1; 20769} 20770def S2_pstoreritnew_pi : HInst< 20771(outs IntRegs:$Rx32), 20772(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20773"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20774tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20775let Inst{2-2} = 0b0; 20776let Inst{7-7} = 0b1; 20777let Inst{13-13} = 0b1; 20778let Inst{31-21} = 0b10101011100; 20779let isPredicated = 1; 20780let addrMode = PostInc; 20781let accessSize = WordAccess; 20782let isPredicatedNew = 1; 20783let mayStore = 1; 20784let BaseOpcode = "S2_storeri_pi"; 20785let isNVStorable = 1; 20786let Constraints = "$Rx32 = $Rx32in"; 20787} 20788def S2_setbit_i : HInst< 20789(outs IntRegs:$Rd32), 20790(ins IntRegs:$Rs32, u5_0Imm:$Ii), 20791"$Rd32 = setbit($Rs32,#$Ii)", 20792tc_5da50c4b, TypeS_2op>, Enc_a05677 { 20793let Inst{7-5} = 0b000; 20794let Inst{13-13} = 0b0; 20795let Inst{31-21} = 0b10001100110; 20796let hasNewValue = 1; 20797let opNewValue = 0; 20798} 20799def S2_setbit_r : HInst< 20800(outs IntRegs:$Rd32), 20801(ins IntRegs:$Rs32, IntRegs:$Rt32), 20802"$Rd32 = setbit($Rs32,$Rt32)", 20803tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 20804let Inst{7-5} = 0b000; 20805let Inst{13-13} = 0b0; 20806let Inst{31-21} = 0b11000110100; 20807let hasNewValue = 1; 20808let opNewValue = 0; 20809} 20810def S2_shuffeb : HInst< 20811(outs DoubleRegs:$Rdd32), 20812(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20813"$Rdd32 = shuffeb($Rss32,$Rtt32)", 20814tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20815let Inst{7-5} = 0b010; 20816let Inst{13-13} = 0b0; 20817let Inst{31-21} = 0b11000001000; 20818} 20819def S2_shuffeh : HInst< 20820(outs DoubleRegs:$Rdd32), 20821(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20822"$Rdd32 = shuffeh($Rss32,$Rtt32)", 20823tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20824let Inst{7-5} = 0b110; 20825let Inst{13-13} = 0b0; 20826let Inst{31-21} = 0b11000001000; 20827} 20828def S2_shuffob : HInst< 20829(outs DoubleRegs:$Rdd32), 20830(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20831"$Rdd32 = shuffob($Rtt32,$Rss32)", 20832tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20833let Inst{7-5} = 0b100; 20834let Inst{13-13} = 0b0; 20835let Inst{31-21} = 0b11000001000; 20836} 20837def S2_shuffoh : HInst< 20838(outs DoubleRegs:$Rdd32), 20839(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20840"$Rdd32 = shuffoh($Rtt32,$Rss32)", 20841tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20842let Inst{7-5} = 0b000; 20843let Inst{13-13} = 0b0; 20844let Inst{31-21} = 0b11000001100; 20845} 20846def S2_storerb_io : HInst< 20847(outs), 20848(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 20849"memb($Rs32+#$Ii) = $Rt32", 20850tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { 20851let Inst{24-21} = 0b1000; 20852let Inst{31-27} = 0b10100; 20853let addrMode = BaseImmOffset; 20854let accessSize = ByteAccess; 20855let mayStore = 1; 20856let BaseOpcode = "S2_storerb_io"; 20857let CextOpcode = "S2_storerb"; 20858let InputType = "imm"; 20859let isPredicable = 1; 20860let isNVStorable = 1; 20861let isExtendable = 1; 20862let opExtendable = 1; 20863let isExtentSigned = 1; 20864let opExtentBits = 11; 20865let opExtentAlign = 0; 20866} 20867def S2_storerb_pbr : HInst< 20868(outs IntRegs:$Rx32), 20869(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20870"memb($Rx32++$Mu2:brev) = $Rt32", 20871tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20872let Inst{7-0} = 0b00000000; 20873let Inst{31-21} = 0b10101111000; 20874let addrMode = PostInc; 20875let accessSize = ByteAccess; 20876let mayStore = 1; 20877let BaseOpcode = "S2_storerb_pbr"; 20878let isNVStorable = 1; 20879let Constraints = "$Rx32 = $Rx32in"; 20880} 20881def S2_storerb_pci : HInst< 20882(outs IntRegs:$Rx32), 20883(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20884"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32", 20885tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel { 20886let Inst{2-0} = 0b000; 20887let Inst{7-7} = 0b0; 20888let Inst{31-21} = 0b10101001000; 20889let addrMode = PostInc; 20890let accessSize = ByteAccess; 20891let mayStore = 1; 20892let Uses = [CS]; 20893let BaseOpcode = "S2_storerb_pci"; 20894let isNVStorable = 1; 20895let Constraints = "$Rx32 = $Rx32in"; 20896} 20897def S2_storerb_pcr : HInst< 20898(outs IntRegs:$Rx32), 20899(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20900"memb($Rx32++I:circ($Mu2)) = $Rt32", 20901tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20902let Inst{7-0} = 0b00000010; 20903let Inst{31-21} = 0b10101001000; 20904let addrMode = PostInc; 20905let accessSize = ByteAccess; 20906let mayStore = 1; 20907let Uses = [CS]; 20908let BaseOpcode = "S2_storerb_pcr"; 20909let isNVStorable = 1; 20910let Constraints = "$Rx32 = $Rx32in"; 20911} 20912def S2_storerb_pi : HInst< 20913(outs IntRegs:$Rx32), 20914(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 20915"memb($Rx32++#$Ii) = $Rt32", 20916tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { 20917let Inst{2-0} = 0b000; 20918let Inst{7-7} = 0b0; 20919let Inst{13-13} = 0b0; 20920let Inst{31-21} = 0b10101011000; 20921let addrMode = PostInc; 20922let accessSize = ByteAccess; 20923let mayStore = 1; 20924let BaseOpcode = "S2_storerb_pi"; 20925let CextOpcode = "S2_storerb"; 20926let isPredicable = 1; 20927let isNVStorable = 1; 20928let Constraints = "$Rx32 = $Rx32in"; 20929} 20930def S2_storerb_pr : HInst< 20931(outs IntRegs:$Rx32), 20932(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20933"memb($Rx32++$Mu2) = $Rt32", 20934tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20935let Inst{7-0} = 0b00000000; 20936let Inst{31-21} = 0b10101101000; 20937let addrMode = PostInc; 20938let accessSize = ByteAccess; 20939let mayStore = 1; 20940let BaseOpcode = "S2_storerb_pr"; 20941let isNVStorable = 1; 20942let Constraints = "$Rx32 = $Rx32in"; 20943} 20944def S2_storerb_zomap : HInst< 20945(outs), 20946(ins IntRegs:$Rs32, IntRegs:$Rt32), 20947"memb($Rs32) = $Rt32", 20948tc_ae5babd7, TypeMAPPING> { 20949let isPseudo = 1; 20950let isCodeGenOnly = 1; 20951} 20952def S2_storerbgp : HInst< 20953(outs), 20954(ins u32_0Imm:$Ii, IntRegs:$Rt32), 20955"memb(gp+#$Ii) = $Rt32", 20956tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 20957let Inst{24-21} = 0b0000; 20958let Inst{31-27} = 0b01001; 20959let accessSize = ByteAccess; 20960let mayStore = 1; 20961let Uses = [GP]; 20962let BaseOpcode = "S2_storerbabs"; 20963let isPredicable = 1; 20964let isNVStorable = 1; 20965let opExtendable = 0; 20966let isExtentSigned = 0; 20967let opExtentBits = 16; 20968let opExtentAlign = 0; 20969} 20970def S2_storerbnew_io : HInst< 20971(outs), 20972(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8), 20973"memb($Rs32+#$Ii) = $Nt8.new", 20974tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel { 20975let Inst{12-11} = 0b00; 20976let Inst{24-21} = 0b1101; 20977let Inst{31-27} = 0b10100; 20978let addrMode = BaseImmOffset; 20979let accessSize = ByteAccess; 20980let isNVStore = 1; 20981let isNewValue = 1; 20982let isRestrictNoSlot1Store = 1; 20983let mayStore = 1; 20984let BaseOpcode = "S2_storerb_io"; 20985let CextOpcode = "S2_storerb"; 20986let InputType = "imm"; 20987let isPredicable = 1; 20988let isExtendable = 1; 20989let opExtendable = 1; 20990let isExtentSigned = 1; 20991let opExtentBits = 11; 20992let opExtentAlign = 0; 20993let opNewValue = 2; 20994} 20995def S2_storerbnew_pbr : HInst< 20996(outs IntRegs:$Rx32), 20997(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 20998"memb($Rx32++$Mu2:brev) = $Nt8.new", 20999tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21000let Inst{7-0} = 0b00000000; 21001let Inst{12-11} = 0b00; 21002let Inst{31-21} = 0b10101111101; 21003let addrMode = PostInc; 21004let accessSize = ByteAccess; 21005let isNVStore = 1; 21006let isNewValue = 1; 21007let isRestrictNoSlot1Store = 1; 21008let mayStore = 1; 21009let BaseOpcode = "S2_storerb_pbr"; 21010let opNewValue = 3; 21011let Constraints = "$Rx32 = $Rx32in"; 21012} 21013def S2_storerbnew_pci : HInst< 21014(outs IntRegs:$Rx32), 21015(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21016"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21017tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel { 21018let Inst{2-0} = 0b000; 21019let Inst{7-7} = 0b0; 21020let Inst{12-11} = 0b00; 21021let Inst{31-21} = 0b10101001101; 21022let addrMode = PostInc; 21023let accessSize = ByteAccess; 21024let isNVStore = 1; 21025let isNewValue = 1; 21026let isRestrictNoSlot1Store = 1; 21027let mayStore = 1; 21028let Uses = [CS]; 21029let BaseOpcode = "S2_storerb_pci"; 21030let opNewValue = 4; 21031let Constraints = "$Rx32 = $Rx32in"; 21032} 21033def S2_storerbnew_pcr : HInst< 21034(outs IntRegs:$Rx32), 21035(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21036"memb($Rx32++I:circ($Mu2)) = $Nt8.new", 21037tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21038let Inst{7-0} = 0b00000010; 21039let Inst{12-11} = 0b00; 21040let Inst{31-21} = 0b10101001101; 21041let addrMode = PostInc; 21042let accessSize = ByteAccess; 21043let isNVStore = 1; 21044let isNewValue = 1; 21045let isRestrictNoSlot1Store = 1; 21046let mayStore = 1; 21047let Uses = [CS]; 21048let BaseOpcode = "S2_storerb_pcr"; 21049let opNewValue = 3; 21050let Constraints = "$Rx32 = $Rx32in"; 21051} 21052def S2_storerbnew_pi : HInst< 21053(outs IntRegs:$Rx32), 21054(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 21055"memb($Rx32++#$Ii) = $Nt8.new", 21056tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel { 21057let Inst{2-0} = 0b000; 21058let Inst{7-7} = 0b0; 21059let Inst{13-11} = 0b000; 21060let Inst{31-21} = 0b10101011101; 21061let addrMode = PostInc; 21062let accessSize = ByteAccess; 21063let isNVStore = 1; 21064let isNewValue = 1; 21065let isRestrictNoSlot1Store = 1; 21066let mayStore = 1; 21067let BaseOpcode = "S2_storerb_pi"; 21068let isPredicable = 1; 21069let isNVStorable = 1; 21070let opNewValue = 3; 21071let Constraints = "$Rx32 = $Rx32in"; 21072} 21073def S2_storerbnew_pr : HInst< 21074(outs IntRegs:$Rx32), 21075(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21076"memb($Rx32++$Mu2) = $Nt8.new", 21077tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21078let Inst{7-0} = 0b00000000; 21079let Inst{12-11} = 0b00; 21080let Inst{31-21} = 0b10101101101; 21081let addrMode = PostInc; 21082let accessSize = ByteAccess; 21083let isNVStore = 1; 21084let isNewValue = 1; 21085let isRestrictNoSlot1Store = 1; 21086let mayStore = 1; 21087let BaseOpcode = "S2_storerb_pr"; 21088let opNewValue = 3; 21089let Constraints = "$Rx32 = $Rx32in"; 21090} 21091def S2_storerbnew_zomap : HInst< 21092(outs), 21093(ins IntRegs:$Rs32, IntRegs:$Nt8), 21094"memb($Rs32) = $Nt8.new", 21095tc_5deb5e47, TypeMAPPING> { 21096let isPseudo = 1; 21097let isCodeGenOnly = 1; 21098let opNewValue = 1; 21099} 21100def S2_storerbnewgp : HInst< 21101(outs), 21102(ins u32_0Imm:$Ii, IntRegs:$Nt8), 21103"memb(gp+#$Ii) = $Nt8.new", 21104tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 21105let Inst{12-11} = 0b00; 21106let Inst{24-21} = 0b0101; 21107let Inst{31-27} = 0b01001; 21108let accessSize = ByteAccess; 21109let isNVStore = 1; 21110let isNewValue = 1; 21111let isRestrictNoSlot1Store = 1; 21112let mayStore = 1; 21113let Uses = [GP]; 21114let BaseOpcode = "S2_storerbabs"; 21115let isPredicable = 1; 21116let opExtendable = 0; 21117let isExtentSigned = 0; 21118let opExtentBits = 16; 21119let opExtentAlign = 0; 21120let opNewValue = 1; 21121} 21122def S2_storerd_io : HInst< 21123(outs), 21124(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 21125"memd($Rs32+#$Ii) = $Rtt32", 21126tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { 21127let Inst{24-21} = 0b1110; 21128let Inst{31-27} = 0b10100; 21129let addrMode = BaseImmOffset; 21130let accessSize = DoubleWordAccess; 21131let mayStore = 1; 21132let BaseOpcode = "S2_storerd_io"; 21133let CextOpcode = "S2_storerd"; 21134let InputType = "imm"; 21135let isPredicable = 1; 21136let isExtendable = 1; 21137let opExtendable = 1; 21138let isExtentSigned = 1; 21139let opExtentBits = 14; 21140let opExtentAlign = 3; 21141} 21142def S2_storerd_pbr : HInst< 21143(outs IntRegs:$Rx32), 21144(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21145"memd($Rx32++$Mu2:brev) = $Rtt32", 21146tc_a2b365d2, TypeST>, Enc_928ca1 { 21147let Inst{7-0} = 0b00000000; 21148let Inst{31-21} = 0b10101111110; 21149let addrMode = PostInc; 21150let accessSize = DoubleWordAccess; 21151let mayStore = 1; 21152let Constraints = "$Rx32 = $Rx32in"; 21153} 21154def S2_storerd_pci : HInst< 21155(outs IntRegs:$Rx32), 21156(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21157"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32", 21158tc_b4dc7630, TypeST>, Enc_395cc4 { 21159let Inst{2-0} = 0b000; 21160let Inst{7-7} = 0b0; 21161let Inst{31-21} = 0b10101001110; 21162let addrMode = PostInc; 21163let accessSize = DoubleWordAccess; 21164let mayStore = 1; 21165let Uses = [CS]; 21166let Constraints = "$Rx32 = $Rx32in"; 21167} 21168def S2_storerd_pcr : HInst< 21169(outs IntRegs:$Rx32), 21170(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21171"memd($Rx32++I:circ($Mu2)) = $Rtt32", 21172tc_a2b365d2, TypeST>, Enc_928ca1 { 21173let Inst{7-0} = 0b00000010; 21174let Inst{31-21} = 0b10101001110; 21175let addrMode = PostInc; 21176let accessSize = DoubleWordAccess; 21177let mayStore = 1; 21178let Uses = [CS]; 21179let Constraints = "$Rx32 = $Rx32in"; 21180} 21181def S2_storerd_pi : HInst< 21182(outs IntRegs:$Rx32), 21183(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 21184"memd($Rx32++#$Ii) = $Rtt32", 21185tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { 21186let Inst{2-0} = 0b000; 21187let Inst{7-7} = 0b0; 21188let Inst{13-13} = 0b0; 21189let Inst{31-21} = 0b10101011110; 21190let addrMode = PostInc; 21191let accessSize = DoubleWordAccess; 21192let mayStore = 1; 21193let BaseOpcode = "S2_storerd_pi"; 21194let CextOpcode = "S2_storerd"; 21195let isPredicable = 1; 21196let Constraints = "$Rx32 = $Rx32in"; 21197} 21198def S2_storerd_pr : HInst< 21199(outs IntRegs:$Rx32), 21200(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21201"memd($Rx32++$Mu2) = $Rtt32", 21202tc_a2b365d2, TypeST>, Enc_928ca1 { 21203let Inst{7-0} = 0b00000000; 21204let Inst{31-21} = 0b10101101110; 21205let addrMode = PostInc; 21206let accessSize = DoubleWordAccess; 21207let mayStore = 1; 21208let Constraints = "$Rx32 = $Rx32in"; 21209} 21210def S2_storerd_zomap : HInst< 21211(outs), 21212(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 21213"memd($Rs32) = $Rtt32", 21214tc_ae5babd7, TypeMAPPING> { 21215let isPseudo = 1; 21216let isCodeGenOnly = 1; 21217} 21218def S2_storerdgp : HInst< 21219(outs), 21220(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 21221"memd(gp+#$Ii) = $Rtt32", 21222tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 21223let Inst{24-21} = 0b0110; 21224let Inst{31-27} = 0b01001; 21225let accessSize = DoubleWordAccess; 21226let mayStore = 1; 21227let Uses = [GP]; 21228let BaseOpcode = "S2_storerdabs"; 21229let isPredicable = 1; 21230let opExtendable = 0; 21231let isExtentSigned = 0; 21232let opExtentBits = 19; 21233let opExtentAlign = 3; 21234} 21235def S2_storerf_io : HInst< 21236(outs), 21237(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21238"memh($Rs32+#$Ii) = $Rt32.h", 21239tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21240let Inst{24-21} = 0b1011; 21241let Inst{31-27} = 0b10100; 21242let addrMode = BaseImmOffset; 21243let accessSize = HalfWordAccess; 21244let mayStore = 1; 21245let BaseOpcode = "S2_storerf_io"; 21246let CextOpcode = "S2_storerf"; 21247let InputType = "imm"; 21248let isPredicable = 1; 21249let isExtendable = 1; 21250let opExtendable = 1; 21251let isExtentSigned = 1; 21252let opExtentBits = 12; 21253let opExtentAlign = 1; 21254} 21255def S2_storerf_pbr : HInst< 21256(outs IntRegs:$Rx32), 21257(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21258"memh($Rx32++$Mu2:brev) = $Rt32.h", 21259tc_a2b365d2, TypeST>, Enc_d5c73f { 21260let Inst{7-0} = 0b00000000; 21261let Inst{31-21} = 0b10101111011; 21262let addrMode = PostInc; 21263let accessSize = HalfWordAccess; 21264let mayStore = 1; 21265let Constraints = "$Rx32 = $Rx32in"; 21266} 21267def S2_storerf_pci : HInst< 21268(outs IntRegs:$Rx32), 21269(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21270"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h", 21271tc_b4dc7630, TypeST>, Enc_935d9b { 21272let Inst{2-0} = 0b000; 21273let Inst{7-7} = 0b0; 21274let Inst{31-21} = 0b10101001011; 21275let addrMode = PostInc; 21276let accessSize = HalfWordAccess; 21277let mayStore = 1; 21278let Uses = [CS]; 21279let Constraints = "$Rx32 = $Rx32in"; 21280} 21281def S2_storerf_pcr : HInst< 21282(outs IntRegs:$Rx32), 21283(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21284"memh($Rx32++I:circ($Mu2)) = $Rt32.h", 21285tc_a2b365d2, TypeST>, Enc_d5c73f { 21286let Inst{7-0} = 0b00000010; 21287let Inst{31-21} = 0b10101001011; 21288let addrMode = PostInc; 21289let accessSize = HalfWordAccess; 21290let mayStore = 1; 21291let Uses = [CS]; 21292let Constraints = "$Rx32 = $Rx32in"; 21293} 21294def S2_storerf_pi : HInst< 21295(outs IntRegs:$Rx32), 21296(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21297"memh($Rx32++#$Ii) = $Rt32.h", 21298tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21299let Inst{2-0} = 0b000; 21300let Inst{7-7} = 0b0; 21301let Inst{13-13} = 0b0; 21302let Inst{31-21} = 0b10101011011; 21303let addrMode = PostInc; 21304let accessSize = HalfWordAccess; 21305let mayStore = 1; 21306let BaseOpcode = "S2_storerf_pi"; 21307let CextOpcode = "S2_storerf"; 21308let isPredicable = 1; 21309let Constraints = "$Rx32 = $Rx32in"; 21310} 21311def S2_storerf_pr : HInst< 21312(outs IntRegs:$Rx32), 21313(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21314"memh($Rx32++$Mu2) = $Rt32.h", 21315tc_a2b365d2, TypeST>, Enc_d5c73f { 21316let Inst{7-0} = 0b00000000; 21317let Inst{31-21} = 0b10101101011; 21318let addrMode = PostInc; 21319let accessSize = HalfWordAccess; 21320let mayStore = 1; 21321let Constraints = "$Rx32 = $Rx32in"; 21322} 21323def S2_storerf_zomap : HInst< 21324(outs), 21325(ins IntRegs:$Rs32, IntRegs:$Rt32), 21326"memh($Rs32) = $Rt32.h", 21327tc_ae5babd7, TypeMAPPING> { 21328let isPseudo = 1; 21329let isCodeGenOnly = 1; 21330} 21331def S2_storerfgp : HInst< 21332(outs), 21333(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21334"memh(gp+#$Ii) = $Rt32.h", 21335tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21336let Inst{24-21} = 0b0011; 21337let Inst{31-27} = 0b01001; 21338let accessSize = HalfWordAccess; 21339let mayStore = 1; 21340let Uses = [GP]; 21341let BaseOpcode = "S2_storerfabs"; 21342let isPredicable = 1; 21343let opExtendable = 0; 21344let isExtentSigned = 0; 21345let opExtentBits = 17; 21346let opExtentAlign = 1; 21347} 21348def S2_storerh_io : HInst< 21349(outs), 21350(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21351"memh($Rs32+#$Ii) = $Rt32", 21352tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21353let Inst{24-21} = 0b1010; 21354let Inst{31-27} = 0b10100; 21355let addrMode = BaseImmOffset; 21356let accessSize = HalfWordAccess; 21357let mayStore = 1; 21358let BaseOpcode = "S2_storerh_io"; 21359let CextOpcode = "S2_storerh"; 21360let InputType = "imm"; 21361let isPredicable = 1; 21362let isNVStorable = 1; 21363let isExtendable = 1; 21364let opExtendable = 1; 21365let isExtentSigned = 1; 21366let opExtentBits = 12; 21367let opExtentAlign = 1; 21368} 21369def S2_storerh_pbr : HInst< 21370(outs IntRegs:$Rx32), 21371(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21372"memh($Rx32++$Mu2:brev) = $Rt32", 21373tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21374let Inst{7-0} = 0b00000000; 21375let Inst{31-21} = 0b10101111010; 21376let addrMode = PostInc; 21377let accessSize = HalfWordAccess; 21378let mayStore = 1; 21379let BaseOpcode = "S2_storerh_pbr"; 21380let isNVStorable = 1; 21381let Constraints = "$Rx32 = $Rx32in"; 21382} 21383def S2_storerh_pci : HInst< 21384(outs IntRegs:$Rx32), 21385(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21386"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21387tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel { 21388let Inst{2-0} = 0b000; 21389let Inst{7-7} = 0b0; 21390let Inst{31-21} = 0b10101001010; 21391let addrMode = PostInc; 21392let accessSize = HalfWordAccess; 21393let mayStore = 1; 21394let Uses = [CS]; 21395let BaseOpcode = "S2_storerh_pci"; 21396let isNVStorable = 1; 21397let Constraints = "$Rx32 = $Rx32in"; 21398} 21399def S2_storerh_pcr : HInst< 21400(outs IntRegs:$Rx32), 21401(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21402"memh($Rx32++I:circ($Mu2)) = $Rt32", 21403tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21404let Inst{7-0} = 0b00000010; 21405let Inst{31-21} = 0b10101001010; 21406let addrMode = PostInc; 21407let accessSize = HalfWordAccess; 21408let mayStore = 1; 21409let Uses = [CS]; 21410let BaseOpcode = "S2_storerh_pcr"; 21411let isNVStorable = 1; 21412let Constraints = "$Rx32 = $Rx32in"; 21413} 21414def S2_storerh_pi : HInst< 21415(outs IntRegs:$Rx32), 21416(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21417"memh($Rx32++#$Ii) = $Rt32", 21418tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21419let Inst{2-0} = 0b000; 21420let Inst{7-7} = 0b0; 21421let Inst{13-13} = 0b0; 21422let Inst{31-21} = 0b10101011010; 21423let addrMode = PostInc; 21424let accessSize = HalfWordAccess; 21425let mayStore = 1; 21426let BaseOpcode = "S2_storerh_pi"; 21427let CextOpcode = "S2_storerh"; 21428let isPredicable = 1; 21429let isNVStorable = 1; 21430let Constraints = "$Rx32 = $Rx32in"; 21431} 21432def S2_storerh_pr : HInst< 21433(outs IntRegs:$Rx32), 21434(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21435"memh($Rx32++$Mu2) = $Rt32", 21436tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21437let Inst{7-0} = 0b00000000; 21438let Inst{31-21} = 0b10101101010; 21439let addrMode = PostInc; 21440let accessSize = HalfWordAccess; 21441let mayStore = 1; 21442let BaseOpcode = "S2_storerh_pr"; 21443let isNVStorable = 1; 21444let Constraints = "$Rx32 = $Rx32in"; 21445} 21446def S2_storerh_zomap : HInst< 21447(outs), 21448(ins IntRegs:$Rs32, IntRegs:$Rt32), 21449"memh($Rs32) = $Rt32", 21450tc_ae5babd7, TypeMAPPING> { 21451let isPseudo = 1; 21452let isCodeGenOnly = 1; 21453} 21454def S2_storerhgp : HInst< 21455(outs), 21456(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21457"memh(gp+#$Ii) = $Rt32", 21458tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21459let Inst{24-21} = 0b0010; 21460let Inst{31-27} = 0b01001; 21461let accessSize = HalfWordAccess; 21462let mayStore = 1; 21463let Uses = [GP]; 21464let BaseOpcode = "S2_storerhabs"; 21465let isPredicable = 1; 21466let isNVStorable = 1; 21467let opExtendable = 0; 21468let isExtentSigned = 0; 21469let opExtentBits = 17; 21470let opExtentAlign = 1; 21471} 21472def S2_storerhnew_io : HInst< 21473(outs), 21474(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8), 21475"memh($Rs32+#$Ii) = $Nt8.new", 21476tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel { 21477let Inst{12-11} = 0b01; 21478let Inst{24-21} = 0b1101; 21479let Inst{31-27} = 0b10100; 21480let addrMode = BaseImmOffset; 21481let accessSize = HalfWordAccess; 21482let isNVStore = 1; 21483let isNewValue = 1; 21484let isRestrictNoSlot1Store = 1; 21485let mayStore = 1; 21486let BaseOpcode = "S2_storerh_io"; 21487let CextOpcode = "S2_storerh"; 21488let InputType = "imm"; 21489let isPredicable = 1; 21490let isExtendable = 1; 21491let opExtendable = 1; 21492let isExtentSigned = 1; 21493let opExtentBits = 12; 21494let opExtentAlign = 1; 21495let opNewValue = 2; 21496} 21497def S2_storerhnew_pbr : HInst< 21498(outs IntRegs:$Rx32), 21499(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21500"memh($Rx32++$Mu2:brev) = $Nt8.new", 21501tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21502let Inst{7-0} = 0b00000000; 21503let Inst{12-11} = 0b01; 21504let Inst{31-21} = 0b10101111101; 21505let addrMode = PostInc; 21506let accessSize = HalfWordAccess; 21507let isNVStore = 1; 21508let isNewValue = 1; 21509let isRestrictNoSlot1Store = 1; 21510let mayStore = 1; 21511let BaseOpcode = "S2_storerh_pbr"; 21512let opNewValue = 3; 21513let Constraints = "$Rx32 = $Rx32in"; 21514} 21515def S2_storerhnew_pci : HInst< 21516(outs IntRegs:$Rx32), 21517(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21518"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21519tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel { 21520let Inst{2-0} = 0b000; 21521let Inst{7-7} = 0b0; 21522let Inst{12-11} = 0b01; 21523let Inst{31-21} = 0b10101001101; 21524let addrMode = PostInc; 21525let accessSize = HalfWordAccess; 21526let isNVStore = 1; 21527let isNewValue = 1; 21528let isRestrictNoSlot1Store = 1; 21529let mayStore = 1; 21530let Uses = [CS]; 21531let BaseOpcode = "S2_storerh_pci"; 21532let opNewValue = 4; 21533let Constraints = "$Rx32 = $Rx32in"; 21534} 21535def S2_storerhnew_pcr : HInst< 21536(outs IntRegs:$Rx32), 21537(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21538"memh($Rx32++I:circ($Mu2)) = $Nt8.new", 21539tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21540let Inst{7-0} = 0b00000010; 21541let Inst{12-11} = 0b01; 21542let Inst{31-21} = 0b10101001101; 21543let addrMode = PostInc; 21544let accessSize = HalfWordAccess; 21545let isNVStore = 1; 21546let isNewValue = 1; 21547let isRestrictNoSlot1Store = 1; 21548let mayStore = 1; 21549let Uses = [CS]; 21550let BaseOpcode = "S2_storerh_pcr"; 21551let opNewValue = 3; 21552let Constraints = "$Rx32 = $Rx32in"; 21553} 21554def S2_storerhnew_pi : HInst< 21555(outs IntRegs:$Rx32), 21556(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 21557"memh($Rx32++#$Ii) = $Nt8.new", 21558tc_92240447, TypeST>, Enc_e26546, AddrModeRel { 21559let Inst{2-0} = 0b000; 21560let Inst{7-7} = 0b0; 21561let Inst{13-11} = 0b001; 21562let Inst{31-21} = 0b10101011101; 21563let addrMode = PostInc; 21564let accessSize = HalfWordAccess; 21565let isNVStore = 1; 21566let isNewValue = 1; 21567let isRestrictNoSlot1Store = 1; 21568let mayStore = 1; 21569let BaseOpcode = "S2_storerh_pi"; 21570let isNVStorable = 1; 21571let isPredicable = 1; 21572let opNewValue = 3; 21573let Constraints = "$Rx32 = $Rx32in"; 21574} 21575def S2_storerhnew_pr : HInst< 21576(outs IntRegs:$Rx32), 21577(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21578"memh($Rx32++$Mu2) = $Nt8.new", 21579tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21580let Inst{7-0} = 0b00000000; 21581let Inst{12-11} = 0b01; 21582let Inst{31-21} = 0b10101101101; 21583let addrMode = PostInc; 21584let accessSize = HalfWordAccess; 21585let isNVStore = 1; 21586let isNewValue = 1; 21587let isRestrictNoSlot1Store = 1; 21588let mayStore = 1; 21589let BaseOpcode = "S2_storerh_pr"; 21590let opNewValue = 3; 21591let Constraints = "$Rx32 = $Rx32in"; 21592} 21593def S2_storerhnew_zomap : HInst< 21594(outs), 21595(ins IntRegs:$Rs32, IntRegs:$Nt8), 21596"memh($Rs32) = $Nt8.new", 21597tc_5deb5e47, TypeMAPPING> { 21598let isPseudo = 1; 21599let isCodeGenOnly = 1; 21600let opNewValue = 1; 21601} 21602def S2_storerhnewgp : HInst< 21603(outs), 21604(ins u31_1Imm:$Ii, IntRegs:$Nt8), 21605"memh(gp+#$Ii) = $Nt8.new", 21606tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 21607let Inst{12-11} = 0b01; 21608let Inst{24-21} = 0b0101; 21609let Inst{31-27} = 0b01001; 21610let accessSize = HalfWordAccess; 21611let isNVStore = 1; 21612let isNewValue = 1; 21613let isRestrictNoSlot1Store = 1; 21614let mayStore = 1; 21615let Uses = [GP]; 21616let BaseOpcode = "S2_storerhabs"; 21617let isPredicable = 1; 21618let opExtendable = 0; 21619let isExtentSigned = 0; 21620let opExtentBits = 17; 21621let opExtentAlign = 1; 21622let opNewValue = 1; 21623} 21624def S2_storeri_io : HInst< 21625(outs), 21626(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 21627"memw($Rs32+#$Ii) = $Rt32", 21628tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { 21629let Inst{24-21} = 0b1100; 21630let Inst{31-27} = 0b10100; 21631let addrMode = BaseImmOffset; 21632let accessSize = WordAccess; 21633let mayStore = 1; 21634let BaseOpcode = "S2_storeri_io"; 21635let CextOpcode = "S2_storeri"; 21636let InputType = "imm"; 21637let isPredicable = 1; 21638let isNVStorable = 1; 21639let isExtendable = 1; 21640let opExtendable = 1; 21641let isExtentSigned = 1; 21642let opExtentBits = 13; 21643let opExtentAlign = 2; 21644} 21645def S2_storeri_pbr : HInst< 21646(outs IntRegs:$Rx32), 21647(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21648"memw($Rx32++$Mu2:brev) = $Rt32", 21649tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21650let Inst{7-0} = 0b00000000; 21651let Inst{31-21} = 0b10101111100; 21652let addrMode = PostInc; 21653let accessSize = WordAccess; 21654let mayStore = 1; 21655let BaseOpcode = "S2_storeri_pbr"; 21656let isNVStorable = 1; 21657let Constraints = "$Rx32 = $Rx32in"; 21658} 21659def S2_storeri_pci : HInst< 21660(outs IntRegs:$Rx32), 21661(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21662"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21663tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel { 21664let Inst{2-0} = 0b000; 21665let Inst{7-7} = 0b0; 21666let Inst{31-21} = 0b10101001100; 21667let addrMode = PostInc; 21668let accessSize = WordAccess; 21669let mayStore = 1; 21670let Uses = [CS]; 21671let BaseOpcode = "S2_storeri_pci"; 21672let isNVStorable = 1; 21673let Constraints = "$Rx32 = $Rx32in"; 21674} 21675def S2_storeri_pcr : HInst< 21676(outs IntRegs:$Rx32), 21677(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21678"memw($Rx32++I:circ($Mu2)) = $Rt32", 21679tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21680let Inst{7-0} = 0b00000010; 21681let Inst{31-21} = 0b10101001100; 21682let addrMode = PostInc; 21683let accessSize = WordAccess; 21684let mayStore = 1; 21685let Uses = [CS]; 21686let BaseOpcode = "S2_storeri_pcr"; 21687let isNVStorable = 1; 21688let Constraints = "$Rx32 = $Rx32in"; 21689} 21690def S2_storeri_pi : HInst< 21691(outs IntRegs:$Rx32), 21692(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 21693"memw($Rx32++#$Ii) = $Rt32", 21694tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { 21695let Inst{2-0} = 0b000; 21696let Inst{7-7} = 0b0; 21697let Inst{13-13} = 0b0; 21698let Inst{31-21} = 0b10101011100; 21699let addrMode = PostInc; 21700let accessSize = WordAccess; 21701let mayStore = 1; 21702let BaseOpcode = "S2_storeri_pi"; 21703let CextOpcode = "S2_storeri"; 21704let isPredicable = 1; 21705let isNVStorable = 1; 21706let Constraints = "$Rx32 = $Rx32in"; 21707} 21708def S2_storeri_pr : HInst< 21709(outs IntRegs:$Rx32), 21710(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21711"memw($Rx32++$Mu2) = $Rt32", 21712tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21713let Inst{7-0} = 0b00000000; 21714let Inst{31-21} = 0b10101101100; 21715let addrMode = PostInc; 21716let accessSize = WordAccess; 21717let mayStore = 1; 21718let BaseOpcode = "S2_storeri_pr"; 21719let isNVStorable = 1; 21720let Constraints = "$Rx32 = $Rx32in"; 21721} 21722def S2_storeri_zomap : HInst< 21723(outs), 21724(ins IntRegs:$Rs32, IntRegs:$Rt32), 21725"memw($Rs32) = $Rt32", 21726tc_ae5babd7, TypeMAPPING> { 21727let isPseudo = 1; 21728let isCodeGenOnly = 1; 21729} 21730def S2_storerigp : HInst< 21731(outs), 21732(ins u30_2Imm:$Ii, IntRegs:$Rt32), 21733"memw(gp+#$Ii) = $Rt32", 21734tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 21735let Inst{24-21} = 0b0100; 21736let Inst{31-27} = 0b01001; 21737let accessSize = WordAccess; 21738let mayStore = 1; 21739let Uses = [GP]; 21740let BaseOpcode = "S2_storeriabs"; 21741let isPredicable = 1; 21742let isNVStorable = 1; 21743let opExtendable = 0; 21744let isExtentSigned = 0; 21745let opExtentBits = 18; 21746let opExtentAlign = 2; 21747} 21748def S2_storerinew_io : HInst< 21749(outs), 21750(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8), 21751"memw($Rs32+#$Ii) = $Nt8.new", 21752tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel { 21753let Inst{12-11} = 0b10; 21754let Inst{24-21} = 0b1101; 21755let Inst{31-27} = 0b10100; 21756let addrMode = BaseImmOffset; 21757let accessSize = WordAccess; 21758let isNVStore = 1; 21759let isNewValue = 1; 21760let isRestrictNoSlot1Store = 1; 21761let mayStore = 1; 21762let BaseOpcode = "S2_storeri_io"; 21763let CextOpcode = "S2_storeri"; 21764let InputType = "imm"; 21765let isPredicable = 1; 21766let isExtendable = 1; 21767let opExtendable = 1; 21768let isExtentSigned = 1; 21769let opExtentBits = 13; 21770let opExtentAlign = 2; 21771let opNewValue = 2; 21772} 21773def S2_storerinew_pbr : HInst< 21774(outs IntRegs:$Rx32), 21775(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21776"memw($Rx32++$Mu2:brev) = $Nt8.new", 21777tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21778let Inst{7-0} = 0b00000000; 21779let Inst{12-11} = 0b10; 21780let Inst{31-21} = 0b10101111101; 21781let addrMode = PostInc; 21782let accessSize = WordAccess; 21783let isNVStore = 1; 21784let isNewValue = 1; 21785let isRestrictNoSlot1Store = 1; 21786let mayStore = 1; 21787let BaseOpcode = "S2_storeri_pbr"; 21788let opNewValue = 3; 21789let Constraints = "$Rx32 = $Rx32in"; 21790} 21791def S2_storerinew_pci : HInst< 21792(outs IntRegs:$Rx32), 21793(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21794"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21795tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel { 21796let Inst{2-0} = 0b000; 21797let Inst{7-7} = 0b0; 21798let Inst{12-11} = 0b10; 21799let Inst{31-21} = 0b10101001101; 21800let addrMode = PostInc; 21801let accessSize = WordAccess; 21802let isNVStore = 1; 21803let isNewValue = 1; 21804let isRestrictNoSlot1Store = 1; 21805let mayStore = 1; 21806let Uses = [CS]; 21807let BaseOpcode = "S2_storeri_pci"; 21808let opNewValue = 4; 21809let Constraints = "$Rx32 = $Rx32in"; 21810} 21811def S2_storerinew_pcr : HInst< 21812(outs IntRegs:$Rx32), 21813(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21814"memw($Rx32++I:circ($Mu2)) = $Nt8.new", 21815tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21816let Inst{7-0} = 0b00000010; 21817let Inst{12-11} = 0b10; 21818let Inst{31-21} = 0b10101001101; 21819let addrMode = PostInc; 21820let accessSize = WordAccess; 21821let isNVStore = 1; 21822let isNewValue = 1; 21823let isRestrictNoSlot1Store = 1; 21824let mayStore = 1; 21825let Uses = [CS]; 21826let BaseOpcode = "S2_storeri_pcr"; 21827let opNewValue = 3; 21828let Constraints = "$Rx32 = $Rx32in"; 21829} 21830def S2_storerinew_pi : HInst< 21831(outs IntRegs:$Rx32), 21832(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 21833"memw($Rx32++#$Ii) = $Nt8.new", 21834tc_92240447, TypeST>, Enc_223005, AddrModeRel { 21835let Inst{2-0} = 0b000; 21836let Inst{7-7} = 0b0; 21837let Inst{13-11} = 0b010; 21838let Inst{31-21} = 0b10101011101; 21839let addrMode = PostInc; 21840let accessSize = WordAccess; 21841let isNVStore = 1; 21842let isNewValue = 1; 21843let isRestrictNoSlot1Store = 1; 21844let mayStore = 1; 21845let BaseOpcode = "S2_storeri_pi"; 21846let isPredicable = 1; 21847let opNewValue = 3; 21848let Constraints = "$Rx32 = $Rx32in"; 21849} 21850def S2_storerinew_pr : HInst< 21851(outs IntRegs:$Rx32), 21852(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21853"memw($Rx32++$Mu2) = $Nt8.new", 21854tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21855let Inst{7-0} = 0b00000000; 21856let Inst{12-11} = 0b10; 21857let Inst{31-21} = 0b10101101101; 21858let addrMode = PostInc; 21859let accessSize = WordAccess; 21860let isNVStore = 1; 21861let isNewValue = 1; 21862let isRestrictNoSlot1Store = 1; 21863let mayStore = 1; 21864let BaseOpcode = "S2_storeri_pr"; 21865let opNewValue = 3; 21866let Constraints = "$Rx32 = $Rx32in"; 21867} 21868def S2_storerinew_zomap : HInst< 21869(outs), 21870(ins IntRegs:$Rs32, IntRegs:$Nt8), 21871"memw($Rs32) = $Nt8.new", 21872tc_5deb5e47, TypeMAPPING> { 21873let isPseudo = 1; 21874let isCodeGenOnly = 1; 21875let opNewValue = 1; 21876} 21877def S2_storerinewgp : HInst< 21878(outs), 21879(ins u30_2Imm:$Ii, IntRegs:$Nt8), 21880"memw(gp+#$Ii) = $Nt8.new", 21881tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 21882let Inst{12-11} = 0b10; 21883let Inst{24-21} = 0b0101; 21884let Inst{31-27} = 0b01001; 21885let accessSize = WordAccess; 21886let isNVStore = 1; 21887let isNewValue = 1; 21888let isRestrictNoSlot1Store = 1; 21889let mayStore = 1; 21890let Uses = [GP]; 21891let BaseOpcode = "S2_storeriabs"; 21892let isPredicable = 1; 21893let opExtendable = 0; 21894let isExtentSigned = 0; 21895let opExtentBits = 18; 21896let opExtentAlign = 2; 21897let opNewValue = 1; 21898} 21899def S2_storew_locked : HInst< 21900(outs PredRegs:$Pd4), 21901(ins IntRegs:$Rs32, IntRegs:$Rt32), 21902"memw_locked($Rs32,$Pd4) = $Rt32", 21903tc_6f42bc60, TypeST>, Enc_c2b48e { 21904let Inst{7-2} = 0b000000; 21905let Inst{13-13} = 0b0; 21906let Inst{31-21} = 0b10100000101; 21907let accessSize = WordAccess; 21908let isPredicateLate = 1; 21909let isSoloAX = 1; 21910let mayStore = 1; 21911} 21912def S2_svsathb : HInst< 21913(outs IntRegs:$Rd32), 21914(ins IntRegs:$Rs32), 21915"$Rd32 = vsathb($Rs32)", 21916tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 21917let Inst{13-5} = 0b000000000; 21918let Inst{31-21} = 0b10001100100; 21919let hasNewValue = 1; 21920let opNewValue = 0; 21921let Defs = [USR_OVF]; 21922} 21923def S2_svsathub : HInst< 21924(outs IntRegs:$Rd32), 21925(ins IntRegs:$Rs32), 21926"$Rd32 = vsathub($Rs32)", 21927tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 21928let Inst{13-5} = 0b000000010; 21929let Inst{31-21} = 0b10001100100; 21930let hasNewValue = 1; 21931let opNewValue = 0; 21932let Defs = [USR_OVF]; 21933} 21934def S2_tableidxb : HInst< 21935(outs IntRegs:$Rx32), 21936(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21937"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw", 21938tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 21939let Inst{31-22} = 0b1000011100; 21940let hasNewValue = 1; 21941let opNewValue = 0; 21942let prefersSlot3 = 1; 21943let Constraints = "$Rx32 = $Rx32in"; 21944} 21945def S2_tableidxb_goodsyntax : HInst< 21946(outs IntRegs:$Rx32), 21947(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21948"$Rx32 = tableidxb($Rs32,#$Ii,#$II)", 21949tc_bb831a7c, TypeS_2op> { 21950let hasNewValue = 1; 21951let opNewValue = 0; 21952let isPseudo = 1; 21953let isCodeGenOnly = 1; 21954let Constraints = "$Rx32 = $Rx32in"; 21955} 21956def S2_tableidxd : HInst< 21957(outs IntRegs:$Rx32), 21958(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21959"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw", 21960tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 21961let Inst{31-22} = 0b1000011111; 21962let hasNewValue = 1; 21963let opNewValue = 0; 21964let prefersSlot3 = 1; 21965let Constraints = "$Rx32 = $Rx32in"; 21966} 21967def S2_tableidxd_goodsyntax : HInst< 21968(outs IntRegs:$Rx32), 21969(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21970"$Rx32 = tableidxd($Rs32,#$Ii,#$II)", 21971tc_bb831a7c, TypeS_2op> { 21972let hasNewValue = 1; 21973let opNewValue = 0; 21974let isPseudo = 1; 21975let Constraints = "$Rx32 = $Rx32in"; 21976} 21977def S2_tableidxh : HInst< 21978(outs IntRegs:$Rx32), 21979(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 21980"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw", 21981tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 21982let Inst{31-22} = 0b1000011101; 21983let hasNewValue = 1; 21984let opNewValue = 0; 21985let prefersSlot3 = 1; 21986let Constraints = "$Rx32 = $Rx32in"; 21987} 21988def S2_tableidxh_goodsyntax : HInst< 21989(outs IntRegs:$Rx32), 21990(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 21991"$Rx32 = tableidxh($Rs32,#$Ii,#$II)", 21992tc_bb831a7c, TypeS_2op> { 21993let hasNewValue = 1; 21994let opNewValue = 0; 21995let isPseudo = 1; 21996let Constraints = "$Rx32 = $Rx32in"; 21997} 21998def S2_tableidxw : HInst< 21999(outs IntRegs:$Rx32), 22000(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22001"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw", 22002tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22003let Inst{31-22} = 0b1000011110; 22004let hasNewValue = 1; 22005let opNewValue = 0; 22006let prefersSlot3 = 1; 22007let Constraints = "$Rx32 = $Rx32in"; 22008} 22009def S2_tableidxw_goodsyntax : HInst< 22010(outs IntRegs:$Rx32), 22011(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22012"$Rx32 = tableidxw($Rs32,#$Ii,#$II)", 22013tc_bb831a7c, TypeS_2op> { 22014let hasNewValue = 1; 22015let opNewValue = 0; 22016let isPseudo = 1; 22017let Constraints = "$Rx32 = $Rx32in"; 22018} 22019def S2_togglebit_i : HInst< 22020(outs IntRegs:$Rd32), 22021(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22022"$Rd32 = togglebit($Rs32,#$Ii)", 22023tc_5da50c4b, TypeS_2op>, Enc_a05677 { 22024let Inst{7-5} = 0b010; 22025let Inst{13-13} = 0b0; 22026let Inst{31-21} = 0b10001100110; 22027let hasNewValue = 1; 22028let opNewValue = 0; 22029} 22030def S2_togglebit_r : HInst< 22031(outs IntRegs:$Rd32), 22032(ins IntRegs:$Rs32, IntRegs:$Rt32), 22033"$Rd32 = togglebit($Rs32,$Rt32)", 22034tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 22035let Inst{7-5} = 0b100; 22036let Inst{13-13} = 0b0; 22037let Inst{31-21} = 0b11000110100; 22038let hasNewValue = 1; 22039let opNewValue = 0; 22040} 22041def S2_tstbit_i : HInst< 22042(outs PredRegs:$Pd4), 22043(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22044"$Pd4 = tstbit($Rs32,#$Ii)", 22045tc_a1297125, TypeS_2op>, Enc_83ee64 { 22046let Inst{7-2} = 0b000000; 22047let Inst{13-13} = 0b0; 22048let Inst{31-21} = 0b10000101000; 22049} 22050def S2_tstbit_r : HInst< 22051(outs PredRegs:$Pd4), 22052(ins IntRegs:$Rs32, IntRegs:$Rt32), 22053"$Pd4 = tstbit($Rs32,$Rt32)", 22054tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22055let Inst{7-2} = 0b000000; 22056let Inst{13-13} = 0b0; 22057let Inst{31-21} = 0b11000111000; 22058} 22059def S2_valignib : HInst< 22060(outs DoubleRegs:$Rdd32), 22061(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii), 22062"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)", 22063tc_6fc5dbea, TypeS_3op>, Enc_729ff7 { 22064let Inst{13-13} = 0b0; 22065let Inst{31-21} = 0b11000000000; 22066} 22067def S2_valignrb : HInst< 22068(outs DoubleRegs:$Rdd32), 22069(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4), 22070"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)", 22071tc_6fc5dbea, TypeS_3op>, Enc_8c6530 { 22072let Inst{7-7} = 0b0; 22073let Inst{13-13} = 0b0; 22074let Inst{31-21} = 0b11000010000; 22075} 22076def S2_vcnegh : HInst< 22077(outs DoubleRegs:$Rdd32), 22078(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22079"$Rdd32 = vcnegh($Rss32,$Rt32)", 22080tc_8a825db2, TypeS_3op>, Enc_927852 { 22081let Inst{7-5} = 0b010; 22082let Inst{13-13} = 0b0; 22083let Inst{31-21} = 0b11000011110; 22084let prefersSlot3 = 1; 22085let Defs = [USR_OVF]; 22086} 22087def S2_vcrotate : HInst< 22088(outs DoubleRegs:$Rdd32), 22089(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22090"$Rdd32 = vcrotate($Rss32,$Rt32)", 22091tc_0dfac0a7, TypeS_3op>, Enc_927852 { 22092let Inst{7-5} = 0b000; 22093let Inst{13-13} = 0b0; 22094let Inst{31-21} = 0b11000011110; 22095let prefersSlot3 = 1; 22096let Defs = [USR_OVF]; 22097} 22098def S2_vrcnegh : HInst< 22099(outs DoubleRegs:$Rxx32), 22100(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 22101"$Rxx32 += vrcnegh($Rss32,$Rt32)", 22102tc_7f8ae742, TypeS_3op>, Enc_1aa186 { 22103let Inst{7-5} = 0b111; 22104let Inst{13-13} = 0b1; 22105let Inst{31-21} = 0b11001011001; 22106let prefersSlot3 = 1; 22107let Constraints = "$Rxx32 = $Rxx32in"; 22108} 22109def S2_vrndpackwh : HInst< 22110(outs IntRegs:$Rd32), 22111(ins DoubleRegs:$Rss32), 22112"$Rd32 = vrndwh($Rss32)", 22113tc_e3d699e3, TypeS_2op>, Enc_90cd8b { 22114let Inst{13-5} = 0b000000100; 22115let Inst{31-21} = 0b10001000100; 22116let hasNewValue = 1; 22117let opNewValue = 0; 22118let prefersSlot3 = 1; 22119} 22120def S2_vrndpackwhs : HInst< 22121(outs IntRegs:$Rd32), 22122(ins DoubleRegs:$Rss32), 22123"$Rd32 = vrndwh($Rss32):sat", 22124tc_d61dfdc3, TypeS_2op>, Enc_90cd8b { 22125let Inst{13-5} = 0b000000110; 22126let Inst{31-21} = 0b10001000100; 22127let hasNewValue = 1; 22128let opNewValue = 0; 22129let prefersSlot3 = 1; 22130let Defs = [USR_OVF]; 22131} 22132def S2_vsathb : HInst< 22133(outs IntRegs:$Rd32), 22134(ins DoubleRegs:$Rss32), 22135"$Rd32 = vsathb($Rss32)", 22136tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22137let Inst{13-5} = 0b000000110; 22138let Inst{31-21} = 0b10001000000; 22139let hasNewValue = 1; 22140let opNewValue = 0; 22141let Defs = [USR_OVF]; 22142} 22143def S2_vsathb_nopack : HInst< 22144(outs DoubleRegs:$Rdd32), 22145(ins DoubleRegs:$Rss32), 22146"$Rdd32 = vsathb($Rss32)", 22147tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22148let Inst{13-5} = 0b000000111; 22149let Inst{31-21} = 0b10000000000; 22150let Defs = [USR_OVF]; 22151} 22152def S2_vsathub : HInst< 22153(outs IntRegs:$Rd32), 22154(ins DoubleRegs:$Rss32), 22155"$Rd32 = vsathub($Rss32)", 22156tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22157let Inst{13-5} = 0b000000000; 22158let Inst{31-21} = 0b10001000000; 22159let hasNewValue = 1; 22160let opNewValue = 0; 22161let Defs = [USR_OVF]; 22162} 22163def S2_vsathub_nopack : HInst< 22164(outs DoubleRegs:$Rdd32), 22165(ins DoubleRegs:$Rss32), 22166"$Rdd32 = vsathub($Rss32)", 22167tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22168let Inst{13-5} = 0b000000100; 22169let Inst{31-21} = 0b10000000000; 22170let Defs = [USR_OVF]; 22171} 22172def S2_vsatwh : HInst< 22173(outs IntRegs:$Rd32), 22174(ins DoubleRegs:$Rss32), 22175"$Rd32 = vsatwh($Rss32)", 22176tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22177let Inst{13-5} = 0b000000010; 22178let Inst{31-21} = 0b10001000000; 22179let hasNewValue = 1; 22180let opNewValue = 0; 22181let Defs = [USR_OVF]; 22182} 22183def S2_vsatwh_nopack : HInst< 22184(outs DoubleRegs:$Rdd32), 22185(ins DoubleRegs:$Rss32), 22186"$Rdd32 = vsatwh($Rss32)", 22187tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22188let Inst{13-5} = 0b000000110; 22189let Inst{31-21} = 0b10000000000; 22190let Defs = [USR_OVF]; 22191} 22192def S2_vsatwuh : HInst< 22193(outs IntRegs:$Rd32), 22194(ins DoubleRegs:$Rss32), 22195"$Rd32 = vsatwuh($Rss32)", 22196tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22197let Inst{13-5} = 0b000000100; 22198let Inst{31-21} = 0b10001000000; 22199let hasNewValue = 1; 22200let opNewValue = 0; 22201let Defs = [USR_OVF]; 22202} 22203def S2_vsatwuh_nopack : HInst< 22204(outs DoubleRegs:$Rdd32), 22205(ins DoubleRegs:$Rss32), 22206"$Rdd32 = vsatwuh($Rss32)", 22207tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22208let Inst{13-5} = 0b000000101; 22209let Inst{31-21} = 0b10000000000; 22210let Defs = [USR_OVF]; 22211} 22212def S2_vsplatrb : HInst< 22213(outs IntRegs:$Rd32), 22214(ins IntRegs:$Rs32), 22215"$Rd32 = vsplatb($Rs32)", 22216tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 22217let Inst{13-5} = 0b000000111; 22218let Inst{31-21} = 0b10001100010; 22219let hasNewValue = 1; 22220let opNewValue = 0; 22221let isReMaterializable = 1; 22222let isAsCheapAsAMove = 1; 22223} 22224def S2_vsplatrh : HInst< 22225(outs DoubleRegs:$Rdd32), 22226(ins IntRegs:$Rs32), 22227"$Rdd32 = vsplath($Rs32)", 22228tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22229let Inst{13-5} = 0b000000010; 22230let Inst{31-21} = 0b10000100010; 22231let isReMaterializable = 1; 22232let isAsCheapAsAMove = 1; 22233} 22234def S2_vspliceib : HInst< 22235(outs DoubleRegs:$Rdd32), 22236(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii), 22237"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)", 22238tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 { 22239let Inst{13-13} = 0b0; 22240let Inst{31-21} = 0b11000000100; 22241} 22242def S2_vsplicerb : HInst< 22243(outs DoubleRegs:$Rdd32), 22244(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4), 22245"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)", 22246tc_6fc5dbea, TypeS_3op>, Enc_dbd70c { 22247let Inst{7-7} = 0b0; 22248let Inst{13-13} = 0b0; 22249let Inst{31-21} = 0b11000010100; 22250} 22251def S2_vsxtbh : HInst< 22252(outs DoubleRegs:$Rdd32), 22253(ins IntRegs:$Rs32), 22254"$Rdd32 = vsxtbh($Rs32)", 22255tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22256let Inst{13-5} = 0b000000000; 22257let Inst{31-21} = 0b10000100000; 22258let isReMaterializable = 1; 22259let isAsCheapAsAMove = 1; 22260} 22261def S2_vsxthw : HInst< 22262(outs DoubleRegs:$Rdd32), 22263(ins IntRegs:$Rs32), 22264"$Rdd32 = vsxthw($Rs32)", 22265tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22266let Inst{13-5} = 0b000000100; 22267let Inst{31-21} = 0b10000100000; 22268let isReMaterializable = 1; 22269let isAsCheapAsAMove = 1; 22270} 22271def S2_vtrunehb : HInst< 22272(outs IntRegs:$Rd32), 22273(ins DoubleRegs:$Rss32), 22274"$Rd32 = vtrunehb($Rss32)", 22275tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22276let Inst{13-5} = 0b000000010; 22277let Inst{31-21} = 0b10001000100; 22278let hasNewValue = 1; 22279let opNewValue = 0; 22280} 22281def S2_vtrunewh : HInst< 22282(outs DoubleRegs:$Rdd32), 22283(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22284"$Rdd32 = vtrunewh($Rss32,$Rtt32)", 22285tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22286let Inst{7-5} = 0b010; 22287let Inst{13-13} = 0b0; 22288let Inst{31-21} = 0b11000001100; 22289} 22290def S2_vtrunohb : HInst< 22291(outs IntRegs:$Rd32), 22292(ins DoubleRegs:$Rss32), 22293"$Rd32 = vtrunohb($Rss32)", 22294tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22295let Inst{13-5} = 0b000000000; 22296let Inst{31-21} = 0b10001000100; 22297let hasNewValue = 1; 22298let opNewValue = 0; 22299} 22300def S2_vtrunowh : HInst< 22301(outs DoubleRegs:$Rdd32), 22302(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22303"$Rdd32 = vtrunowh($Rss32,$Rtt32)", 22304tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22305let Inst{7-5} = 0b100; 22306let Inst{13-13} = 0b0; 22307let Inst{31-21} = 0b11000001100; 22308} 22309def S2_vzxtbh : HInst< 22310(outs DoubleRegs:$Rdd32), 22311(ins IntRegs:$Rs32), 22312"$Rdd32 = vzxtbh($Rs32)", 22313tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22314let Inst{13-5} = 0b000000010; 22315let Inst{31-21} = 0b10000100000; 22316let isReMaterializable = 1; 22317let isAsCheapAsAMove = 1; 22318} 22319def S2_vzxthw : HInst< 22320(outs DoubleRegs:$Rdd32), 22321(ins IntRegs:$Rs32), 22322"$Rdd32 = vzxthw($Rs32)", 22323tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22324let Inst{13-5} = 0b000000110; 22325let Inst{31-21} = 0b10000100000; 22326let isReMaterializable = 1; 22327let isAsCheapAsAMove = 1; 22328} 22329def S4_addaddi : HInst< 22330(outs IntRegs:$Rd32), 22331(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii), 22332"$Rd32 = add($Rs32,add($Ru32,#$Ii))", 22333tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 22334let Inst{31-23} = 0b110110110; 22335let hasNewValue = 1; 22336let opNewValue = 0; 22337let prefersSlot3 = 1; 22338let isExtendable = 1; 22339let opExtendable = 3; 22340let isExtentSigned = 1; 22341let opExtentBits = 6; 22342let opExtentAlign = 0; 22343} 22344def S4_addi_asl_ri : HInst< 22345(outs IntRegs:$Rx32), 22346(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22347"$Rx32 = add(#$Ii,asl($Rx32in,#$II))", 22348tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22349let Inst{2-0} = 0b100; 22350let Inst{4-4} = 0b0; 22351let Inst{31-24} = 0b11011110; 22352let hasNewValue = 1; 22353let opNewValue = 0; 22354let prefersSlot3 = 1; 22355let isExtendable = 1; 22356let opExtendable = 1; 22357let isExtentSigned = 0; 22358let opExtentBits = 8; 22359let opExtentAlign = 0; 22360let Constraints = "$Rx32 = $Rx32in"; 22361} 22362def S4_addi_lsr_ri : HInst< 22363(outs IntRegs:$Rx32), 22364(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22365"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))", 22366tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22367let Inst{2-0} = 0b100; 22368let Inst{4-4} = 0b1; 22369let Inst{31-24} = 0b11011110; 22370let hasNewValue = 1; 22371let opNewValue = 0; 22372let prefersSlot3 = 1; 22373let isExtendable = 1; 22374let opExtendable = 1; 22375let isExtentSigned = 0; 22376let opExtentBits = 8; 22377let opExtentAlign = 0; 22378let Constraints = "$Rx32 = $Rx32in"; 22379} 22380def S4_andi_asl_ri : HInst< 22381(outs IntRegs:$Rx32), 22382(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22383"$Rx32 = and(#$Ii,asl($Rx32in,#$II))", 22384tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22385let Inst{2-0} = 0b000; 22386let Inst{4-4} = 0b0; 22387let Inst{31-24} = 0b11011110; 22388let hasNewValue = 1; 22389let opNewValue = 0; 22390let prefersSlot3 = 1; 22391let isExtendable = 1; 22392let opExtendable = 1; 22393let isExtentSigned = 0; 22394let opExtentBits = 8; 22395let opExtentAlign = 0; 22396let Constraints = "$Rx32 = $Rx32in"; 22397} 22398def S4_andi_lsr_ri : HInst< 22399(outs IntRegs:$Rx32), 22400(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22401"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))", 22402tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22403let Inst{2-0} = 0b000; 22404let Inst{4-4} = 0b1; 22405let Inst{31-24} = 0b11011110; 22406let hasNewValue = 1; 22407let opNewValue = 0; 22408let prefersSlot3 = 1; 22409let isExtendable = 1; 22410let opExtendable = 1; 22411let isExtentSigned = 0; 22412let opExtentBits = 8; 22413let opExtentAlign = 0; 22414let Constraints = "$Rx32 = $Rx32in"; 22415} 22416def S4_clbaddi : HInst< 22417(outs IntRegs:$Rd32), 22418(ins IntRegs:$Rs32, s6_0Imm:$Ii), 22419"$Rd32 = add(clb($Rs32),#$Ii)", 22420tc_a08b630b, TypeS_2op>, Enc_9fae8a { 22421let Inst{7-5} = 0b000; 22422let Inst{31-21} = 0b10001100001; 22423let hasNewValue = 1; 22424let opNewValue = 0; 22425let prefersSlot3 = 1; 22426} 22427def S4_clbpaddi : HInst< 22428(outs IntRegs:$Rd32), 22429(ins DoubleRegs:$Rss32, s6_0Imm:$Ii), 22430"$Rd32 = add(clb($Rss32),#$Ii)", 22431tc_a08b630b, TypeS_2op>, Enc_a1640c { 22432let Inst{7-5} = 0b010; 22433let Inst{31-21} = 0b10001000011; 22434let hasNewValue = 1; 22435let opNewValue = 0; 22436let prefersSlot3 = 1; 22437} 22438def S4_clbpnorm : HInst< 22439(outs IntRegs:$Rd32), 22440(ins DoubleRegs:$Rss32), 22441"$Rd32 = normamt($Rss32)", 22442tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 22443let Inst{13-5} = 0b000000000; 22444let Inst{31-21} = 0b10001000011; 22445let hasNewValue = 1; 22446let opNewValue = 0; 22447let prefersSlot3 = 1; 22448} 22449def S4_extract : HInst< 22450(outs IntRegs:$Rd32), 22451(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 22452"$Rd32 = extract($Rs32,#$Ii,#$II)", 22453tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 22454let Inst{13-13} = 0b0; 22455let Inst{31-23} = 0b100011011; 22456let hasNewValue = 1; 22457let opNewValue = 0; 22458let prefersSlot3 = 1; 22459} 22460def S4_extract_rp : HInst< 22461(outs IntRegs:$Rd32), 22462(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 22463"$Rd32 = extract($Rs32,$Rtt32)", 22464tc_a08b630b, TypeS_3op>, Enc_e07374 { 22465let Inst{7-5} = 0b010; 22466let Inst{13-13} = 0b0; 22467let Inst{31-21} = 0b11001001000; 22468let hasNewValue = 1; 22469let opNewValue = 0; 22470let prefersSlot3 = 1; 22471} 22472def S4_extractp : HInst< 22473(outs DoubleRegs:$Rdd32), 22474(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 22475"$Rdd32 = extract($Rss32,#$Ii,#$II)", 22476tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 22477let Inst{31-24} = 0b10001010; 22478let prefersSlot3 = 1; 22479} 22480def S4_extractp_rp : HInst< 22481(outs DoubleRegs:$Rdd32), 22482(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22483"$Rdd32 = extract($Rss32,$Rtt32)", 22484tc_a08b630b, TypeS_3op>, Enc_a56825 { 22485let Inst{7-5} = 0b100; 22486let Inst{13-13} = 0b0; 22487let Inst{31-21} = 0b11000001110; 22488let prefersSlot3 = 1; 22489} 22490def S4_lsli : HInst< 22491(outs IntRegs:$Rd32), 22492(ins s6_0Imm:$Ii, IntRegs:$Rt32), 22493"$Rd32 = lsl(#$Ii,$Rt32)", 22494tc_5da50c4b, TypeS_3op>, Enc_fef969 { 22495let Inst{7-6} = 0b11; 22496let Inst{13-13} = 0b0; 22497let Inst{31-21} = 0b11000110100; 22498let hasNewValue = 1; 22499let opNewValue = 0; 22500} 22501def S4_ntstbit_i : HInst< 22502(outs PredRegs:$Pd4), 22503(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22504"$Pd4 = !tstbit($Rs32,#$Ii)", 22505tc_a1297125, TypeS_2op>, Enc_83ee64 { 22506let Inst{7-2} = 0b000000; 22507let Inst{13-13} = 0b0; 22508let Inst{31-21} = 0b10000101001; 22509} 22510def S4_ntstbit_r : HInst< 22511(outs PredRegs:$Pd4), 22512(ins IntRegs:$Rs32, IntRegs:$Rt32), 22513"$Pd4 = !tstbit($Rs32,$Rt32)", 22514tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22515let Inst{7-2} = 0b000000; 22516let Inst{13-13} = 0b0; 22517let Inst{31-21} = 0b11000111001; 22518} 22519def S4_or_andi : HInst< 22520(outs IntRegs:$Rx32), 22521(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22522"$Rx32 |= and($Rs32,#$Ii)", 22523tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22524let Inst{31-22} = 0b1101101000; 22525let hasNewValue = 1; 22526let opNewValue = 0; 22527let prefersSlot3 = 1; 22528let InputType = "imm"; 22529let isExtendable = 1; 22530let opExtendable = 3; 22531let isExtentSigned = 1; 22532let opExtentBits = 10; 22533let opExtentAlign = 0; 22534let Constraints = "$Rx32 = $Rx32in"; 22535} 22536def S4_or_andix : HInst< 22537(outs IntRegs:$Rx32), 22538(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii), 22539"$Rx32 = or($Ru32,and($Rx32in,#$Ii))", 22540tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> { 22541let Inst{31-22} = 0b1101101001; 22542let hasNewValue = 1; 22543let opNewValue = 0; 22544let prefersSlot3 = 1; 22545let isExtendable = 1; 22546let opExtendable = 3; 22547let isExtentSigned = 1; 22548let opExtentBits = 10; 22549let opExtentAlign = 0; 22550let Constraints = "$Rx32 = $Rx32in"; 22551} 22552def S4_or_ori : HInst< 22553(outs IntRegs:$Rx32), 22554(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22555"$Rx32 |= or($Rs32,#$Ii)", 22556tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22557let Inst{31-22} = 0b1101101010; 22558let hasNewValue = 1; 22559let opNewValue = 0; 22560let prefersSlot3 = 1; 22561let InputType = "imm"; 22562let isExtendable = 1; 22563let opExtendable = 3; 22564let isExtentSigned = 1; 22565let opExtentBits = 10; 22566let opExtentAlign = 0; 22567let Constraints = "$Rx32 = $Rx32in"; 22568} 22569def S4_ori_asl_ri : HInst< 22570(outs IntRegs:$Rx32), 22571(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22572"$Rx32 = or(#$Ii,asl($Rx32in,#$II))", 22573tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22574let Inst{2-0} = 0b010; 22575let Inst{4-4} = 0b0; 22576let Inst{31-24} = 0b11011110; 22577let hasNewValue = 1; 22578let opNewValue = 0; 22579let prefersSlot3 = 1; 22580let isExtendable = 1; 22581let opExtendable = 1; 22582let isExtentSigned = 0; 22583let opExtentBits = 8; 22584let opExtentAlign = 0; 22585let Constraints = "$Rx32 = $Rx32in"; 22586} 22587def S4_ori_lsr_ri : HInst< 22588(outs IntRegs:$Rx32), 22589(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22590"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))", 22591tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22592let Inst{2-0} = 0b010; 22593let Inst{4-4} = 0b1; 22594let Inst{31-24} = 0b11011110; 22595let hasNewValue = 1; 22596let opNewValue = 0; 22597let prefersSlot3 = 1; 22598let isExtendable = 1; 22599let opExtendable = 1; 22600let isExtentSigned = 0; 22601let opExtentBits = 8; 22602let opExtentAlign = 0; 22603let Constraints = "$Rx32 = $Rx32in"; 22604} 22605def S4_parity : HInst< 22606(outs IntRegs:$Rd32), 22607(ins IntRegs:$Rs32, IntRegs:$Rt32), 22608"$Rd32 = parity($Rs32,$Rt32)", 22609tc_a08b630b, TypeALU64>, Enc_5ab2be { 22610let Inst{7-5} = 0b000; 22611let Inst{13-13} = 0b0; 22612let Inst{31-21} = 0b11010101111; 22613let hasNewValue = 1; 22614let opNewValue = 0; 22615let prefersSlot3 = 1; 22616} 22617def S4_pstorerbf_abs : HInst< 22618(outs), 22619(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22620"if (!$Pv4) memb(#$Ii) = $Rt32", 22621tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 22622let Inst{2-2} = 0b1; 22623let Inst{7-7} = 0b1; 22624let Inst{13-13} = 0b0; 22625let Inst{31-18} = 0b10101111000000; 22626let isPredicated = 1; 22627let isPredicatedFalse = 1; 22628let addrMode = Absolute; 22629let accessSize = ByteAccess; 22630let isExtended = 1; 22631let mayStore = 1; 22632let BaseOpcode = "S2_storerbabs"; 22633let CextOpcode = "S2_storerb"; 22634let isNVStorable = 1; 22635let DecoderNamespace = "MustExtend"; 22636let isExtendable = 1; 22637let opExtendable = 1; 22638let isExtentSigned = 0; 22639let opExtentBits = 6; 22640let opExtentAlign = 0; 22641} 22642def S4_pstorerbf_rr : HInst< 22643(outs), 22644(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22645"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22646tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 22647let Inst{31-21} = 0b00110101000; 22648let isPredicated = 1; 22649let isPredicatedFalse = 1; 22650let addrMode = BaseRegOffset; 22651let accessSize = ByteAccess; 22652let mayStore = 1; 22653let BaseOpcode = "S4_storerb_rr"; 22654let CextOpcode = "S2_storerb"; 22655let InputType = "reg"; 22656let isNVStorable = 1; 22657} 22658def S4_pstorerbfnew_abs : HInst< 22659(outs), 22660(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22661"if (!$Pv4.new) memb(#$Ii) = $Rt32", 22662tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 22663let Inst{2-2} = 0b1; 22664let Inst{7-7} = 0b1; 22665let Inst{13-13} = 0b1; 22666let Inst{31-18} = 0b10101111000000; 22667let isPredicated = 1; 22668let isPredicatedFalse = 1; 22669let addrMode = Absolute; 22670let accessSize = ByteAccess; 22671let isPredicatedNew = 1; 22672let isExtended = 1; 22673let mayStore = 1; 22674let BaseOpcode = "S2_storerbabs"; 22675let CextOpcode = "S2_storerb"; 22676let isNVStorable = 1; 22677let DecoderNamespace = "MustExtend"; 22678let isExtendable = 1; 22679let opExtendable = 1; 22680let isExtentSigned = 0; 22681let opExtentBits = 6; 22682let opExtentAlign = 0; 22683} 22684def S4_pstorerbfnew_io : HInst< 22685(outs), 22686(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 22687"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32", 22688tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 22689let Inst{2-2} = 0b0; 22690let Inst{31-21} = 0b01000110000; 22691let isPredicated = 1; 22692let isPredicatedFalse = 1; 22693let addrMode = BaseImmOffset; 22694let accessSize = ByteAccess; 22695let isPredicatedNew = 1; 22696let mayStore = 1; 22697let BaseOpcode = "S2_storerb_io"; 22698let CextOpcode = "S2_storerb"; 22699let InputType = "imm"; 22700let isNVStorable = 1; 22701let isExtendable = 1; 22702let opExtendable = 2; 22703let isExtentSigned = 0; 22704let opExtentBits = 6; 22705let opExtentAlign = 0; 22706} 22707def S4_pstorerbfnew_rr : HInst< 22708(outs), 22709(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22710"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22711tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 22712let Inst{31-21} = 0b00110111000; 22713let isPredicated = 1; 22714let isPredicatedFalse = 1; 22715let addrMode = BaseRegOffset; 22716let accessSize = ByteAccess; 22717let isPredicatedNew = 1; 22718let mayStore = 1; 22719let BaseOpcode = "S4_storerb_rr"; 22720let CextOpcode = "S2_storerb"; 22721let InputType = "reg"; 22722let isNVStorable = 1; 22723} 22724def S4_pstorerbfnew_zomap : HInst< 22725(outs), 22726(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 22727"if (!$Pv4.new) memb($Rs32) = $Rt32", 22728tc_a2b365d2, TypeMAPPING> { 22729let isPseudo = 1; 22730let isCodeGenOnly = 1; 22731} 22732def S4_pstorerbnewf_abs : HInst< 22733(outs), 22734(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22735"if (!$Pv4) memb(#$Ii) = $Nt8.new", 22736tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22737let Inst{2-2} = 0b1; 22738let Inst{7-7} = 0b1; 22739let Inst{13-11} = 0b000; 22740let Inst{31-18} = 0b10101111101000; 22741let isPredicated = 1; 22742let isPredicatedFalse = 1; 22743let addrMode = Absolute; 22744let accessSize = ByteAccess; 22745let isNVStore = 1; 22746let isNewValue = 1; 22747let isExtended = 1; 22748let isRestrictNoSlot1Store = 1; 22749let mayStore = 1; 22750let BaseOpcode = "S2_storerbabs"; 22751let CextOpcode = "S2_storerb"; 22752let DecoderNamespace = "MustExtend"; 22753let isExtendable = 1; 22754let opExtendable = 1; 22755let isExtentSigned = 0; 22756let opExtentBits = 6; 22757let opExtentAlign = 0; 22758let opNewValue = 2; 22759} 22760def S4_pstorerbnewf_rr : HInst< 22761(outs), 22762(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22763"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22764tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 22765let Inst{4-3} = 0b00; 22766let Inst{31-21} = 0b00110101101; 22767let isPredicated = 1; 22768let isPredicatedFalse = 1; 22769let addrMode = BaseRegOffset; 22770let accessSize = ByteAccess; 22771let isNVStore = 1; 22772let isNewValue = 1; 22773let isRestrictNoSlot1Store = 1; 22774let mayStore = 1; 22775let BaseOpcode = "S4_storerb_rr"; 22776let CextOpcode = "S2_storerb"; 22777let InputType = "reg"; 22778let opNewValue = 4; 22779} 22780def S4_pstorerbnewfnew_abs : HInst< 22781(outs), 22782(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22783"if (!$Pv4.new) memb(#$Ii) = $Nt8.new", 22784tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 22785let Inst{2-2} = 0b1; 22786let Inst{7-7} = 0b1; 22787let Inst{13-11} = 0b100; 22788let Inst{31-18} = 0b10101111101000; 22789let isPredicated = 1; 22790let isPredicatedFalse = 1; 22791let addrMode = Absolute; 22792let accessSize = ByteAccess; 22793let isNVStore = 1; 22794let isPredicatedNew = 1; 22795let isNewValue = 1; 22796let isExtended = 1; 22797let isRestrictNoSlot1Store = 1; 22798let mayStore = 1; 22799let BaseOpcode = "S2_storerbabs"; 22800let CextOpcode = "S2_storerb"; 22801let DecoderNamespace = "MustExtend"; 22802let isExtendable = 1; 22803let opExtendable = 1; 22804let isExtentSigned = 0; 22805let opExtentBits = 6; 22806let opExtentAlign = 0; 22807let opNewValue = 2; 22808} 22809def S4_pstorerbnewfnew_io : HInst< 22810(outs), 22811(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22812"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22813tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 22814let Inst{2-2} = 0b0; 22815let Inst{12-11} = 0b00; 22816let Inst{31-21} = 0b01000110101; 22817let isPredicated = 1; 22818let isPredicatedFalse = 1; 22819let addrMode = BaseImmOffset; 22820let accessSize = ByteAccess; 22821let isNVStore = 1; 22822let isPredicatedNew = 1; 22823let isNewValue = 1; 22824let isRestrictNoSlot1Store = 1; 22825let mayStore = 1; 22826let BaseOpcode = "S2_storerb_io"; 22827let CextOpcode = "S2_storerb"; 22828let InputType = "imm"; 22829let isExtendable = 1; 22830let opExtendable = 2; 22831let isExtentSigned = 0; 22832let opExtentBits = 6; 22833let opExtentAlign = 0; 22834let opNewValue = 3; 22835} 22836def S4_pstorerbnewfnew_rr : HInst< 22837(outs), 22838(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22839"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22840tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 22841let Inst{4-3} = 0b00; 22842let Inst{31-21} = 0b00110111101; 22843let isPredicated = 1; 22844let isPredicatedFalse = 1; 22845let addrMode = BaseRegOffset; 22846let accessSize = ByteAccess; 22847let isNVStore = 1; 22848let isPredicatedNew = 1; 22849let isNewValue = 1; 22850let isRestrictNoSlot1Store = 1; 22851let mayStore = 1; 22852let BaseOpcode = "S4_storerb_rr"; 22853let CextOpcode = "S2_storerb"; 22854let InputType = "reg"; 22855let opNewValue = 4; 22856} 22857def S4_pstorerbnewfnew_zomap : HInst< 22858(outs), 22859(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22860"if (!$Pv4.new) memb($Rs32) = $Nt8.new", 22861tc_92240447, TypeMAPPING> { 22862let isPseudo = 1; 22863let isCodeGenOnly = 1; 22864let opNewValue = 2; 22865} 22866def S4_pstorerbnewt_abs : HInst< 22867(outs), 22868(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22869"if ($Pv4) memb(#$Ii) = $Nt8.new", 22870tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22871let Inst{2-2} = 0b0; 22872let Inst{7-7} = 0b1; 22873let Inst{13-11} = 0b000; 22874let Inst{31-18} = 0b10101111101000; 22875let isPredicated = 1; 22876let addrMode = Absolute; 22877let accessSize = ByteAccess; 22878let isNVStore = 1; 22879let isNewValue = 1; 22880let isExtended = 1; 22881let isRestrictNoSlot1Store = 1; 22882let mayStore = 1; 22883let BaseOpcode = "S2_storerbabs"; 22884let CextOpcode = "S2_storerb"; 22885let DecoderNamespace = "MustExtend"; 22886let isExtendable = 1; 22887let opExtendable = 1; 22888let isExtentSigned = 0; 22889let opExtentBits = 6; 22890let opExtentAlign = 0; 22891let opNewValue = 2; 22892} 22893def S4_pstorerbnewt_rr : HInst< 22894(outs), 22895(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22896"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22897tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 22898let Inst{4-3} = 0b00; 22899let Inst{31-21} = 0b00110100101; 22900let isPredicated = 1; 22901let addrMode = BaseRegOffset; 22902let accessSize = ByteAccess; 22903let isNVStore = 1; 22904let isNewValue = 1; 22905let isRestrictNoSlot1Store = 1; 22906let mayStore = 1; 22907let BaseOpcode = "S4_storerb_rr"; 22908let CextOpcode = "S2_storerb"; 22909let InputType = "reg"; 22910let opNewValue = 4; 22911} 22912def S4_pstorerbnewtnew_abs : HInst< 22913(outs), 22914(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22915"if ($Pv4.new) memb(#$Ii) = $Nt8.new", 22916tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 22917let Inst{2-2} = 0b0; 22918let Inst{7-7} = 0b1; 22919let Inst{13-11} = 0b100; 22920let Inst{31-18} = 0b10101111101000; 22921let isPredicated = 1; 22922let addrMode = Absolute; 22923let accessSize = ByteAccess; 22924let isNVStore = 1; 22925let isPredicatedNew = 1; 22926let isNewValue = 1; 22927let isExtended = 1; 22928let isRestrictNoSlot1Store = 1; 22929let mayStore = 1; 22930let BaseOpcode = "S2_storerbabs"; 22931let CextOpcode = "S2_storerb"; 22932let DecoderNamespace = "MustExtend"; 22933let isExtendable = 1; 22934let opExtendable = 1; 22935let isExtentSigned = 0; 22936let opExtentBits = 6; 22937let opExtentAlign = 0; 22938let opNewValue = 2; 22939} 22940def S4_pstorerbnewtnew_io : HInst< 22941(outs), 22942(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22943"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22944tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 22945let Inst{2-2} = 0b0; 22946let Inst{12-11} = 0b00; 22947let Inst{31-21} = 0b01000010101; 22948let isPredicated = 1; 22949let addrMode = BaseImmOffset; 22950let accessSize = ByteAccess; 22951let isNVStore = 1; 22952let isPredicatedNew = 1; 22953let isNewValue = 1; 22954let isRestrictNoSlot1Store = 1; 22955let mayStore = 1; 22956let BaseOpcode = "S2_storerb_io"; 22957let CextOpcode = "S2_storerb"; 22958let InputType = "imm"; 22959let isExtendable = 1; 22960let opExtendable = 2; 22961let isExtentSigned = 0; 22962let opExtentBits = 6; 22963let opExtentAlign = 0; 22964let opNewValue = 3; 22965} 22966def S4_pstorerbnewtnew_rr : HInst< 22967(outs), 22968(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22969"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22970tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 22971let Inst{4-3} = 0b00; 22972let Inst{31-21} = 0b00110110101; 22973let isPredicated = 1; 22974let addrMode = BaseRegOffset; 22975let accessSize = ByteAccess; 22976let isNVStore = 1; 22977let isPredicatedNew = 1; 22978let isNewValue = 1; 22979let isRestrictNoSlot1Store = 1; 22980let mayStore = 1; 22981let BaseOpcode = "S4_storerb_rr"; 22982let CextOpcode = "S2_storerb"; 22983let InputType = "reg"; 22984let opNewValue = 4; 22985} 22986def S4_pstorerbnewtnew_zomap : HInst< 22987(outs), 22988(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22989"if ($Pv4.new) memb($Rs32) = $Nt8.new", 22990tc_92240447, TypeMAPPING> { 22991let isPseudo = 1; 22992let isCodeGenOnly = 1; 22993let opNewValue = 2; 22994} 22995def S4_pstorerbt_abs : HInst< 22996(outs), 22997(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22998"if ($Pv4) memb(#$Ii) = $Rt32", 22999tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23000let Inst{2-2} = 0b0; 23001let Inst{7-7} = 0b1; 23002let Inst{13-13} = 0b0; 23003let Inst{31-18} = 0b10101111000000; 23004let isPredicated = 1; 23005let addrMode = Absolute; 23006let accessSize = ByteAccess; 23007let isExtended = 1; 23008let mayStore = 1; 23009let BaseOpcode = "S2_storerbabs"; 23010let CextOpcode = "S2_storerb"; 23011let isNVStorable = 1; 23012let DecoderNamespace = "MustExtend"; 23013let isExtendable = 1; 23014let opExtendable = 1; 23015let isExtentSigned = 0; 23016let opExtentBits = 6; 23017let opExtentAlign = 0; 23018} 23019def S4_pstorerbt_rr : HInst< 23020(outs), 23021(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23022"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23023tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23024let Inst{31-21} = 0b00110100000; 23025let isPredicated = 1; 23026let addrMode = BaseRegOffset; 23027let accessSize = ByteAccess; 23028let mayStore = 1; 23029let BaseOpcode = "S4_storerb_rr"; 23030let CextOpcode = "S2_storerb"; 23031let InputType = "reg"; 23032let isNVStorable = 1; 23033} 23034def S4_pstorerbtnew_abs : HInst< 23035(outs), 23036(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23037"if ($Pv4.new) memb(#$Ii) = $Rt32", 23038tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23039let Inst{2-2} = 0b0; 23040let Inst{7-7} = 0b1; 23041let Inst{13-13} = 0b1; 23042let Inst{31-18} = 0b10101111000000; 23043let isPredicated = 1; 23044let addrMode = Absolute; 23045let accessSize = ByteAccess; 23046let isPredicatedNew = 1; 23047let isExtended = 1; 23048let mayStore = 1; 23049let BaseOpcode = "S2_storerbabs"; 23050let CextOpcode = "S2_storerb"; 23051let isNVStorable = 1; 23052let DecoderNamespace = "MustExtend"; 23053let isExtendable = 1; 23054let opExtendable = 1; 23055let isExtentSigned = 0; 23056let opExtentBits = 6; 23057let opExtentAlign = 0; 23058} 23059def S4_pstorerbtnew_io : HInst< 23060(outs), 23061(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 23062"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32", 23063tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 23064let Inst{2-2} = 0b0; 23065let Inst{31-21} = 0b01000010000; 23066let isPredicated = 1; 23067let addrMode = BaseImmOffset; 23068let accessSize = ByteAccess; 23069let isPredicatedNew = 1; 23070let mayStore = 1; 23071let BaseOpcode = "S2_storerb_io"; 23072let CextOpcode = "S2_storerb"; 23073let InputType = "imm"; 23074let isNVStorable = 1; 23075let isExtendable = 1; 23076let opExtendable = 2; 23077let isExtentSigned = 0; 23078let opExtentBits = 6; 23079let opExtentAlign = 0; 23080} 23081def S4_pstorerbtnew_rr : HInst< 23082(outs), 23083(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23084"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23085tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23086let Inst{31-21} = 0b00110110000; 23087let isPredicated = 1; 23088let addrMode = BaseRegOffset; 23089let accessSize = ByteAccess; 23090let isPredicatedNew = 1; 23091let mayStore = 1; 23092let BaseOpcode = "S4_storerb_rr"; 23093let CextOpcode = "S2_storerb"; 23094let InputType = "reg"; 23095let isNVStorable = 1; 23096} 23097def S4_pstorerbtnew_zomap : HInst< 23098(outs), 23099(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23100"if ($Pv4.new) memb($Rs32) = $Rt32", 23101tc_a2b365d2, TypeMAPPING> { 23102let isPseudo = 1; 23103let isCodeGenOnly = 1; 23104} 23105def S4_pstorerdf_abs : HInst< 23106(outs), 23107(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23108"if (!$Pv4) memd(#$Ii) = $Rtt32", 23109tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23110let Inst{2-2} = 0b1; 23111let Inst{7-7} = 0b1; 23112let Inst{13-13} = 0b0; 23113let Inst{31-18} = 0b10101111110000; 23114let isPredicated = 1; 23115let isPredicatedFalse = 1; 23116let addrMode = Absolute; 23117let accessSize = DoubleWordAccess; 23118let isExtended = 1; 23119let mayStore = 1; 23120let BaseOpcode = "S2_storerdabs"; 23121let CextOpcode = "S2_storerd"; 23122let DecoderNamespace = "MustExtend"; 23123let isExtendable = 1; 23124let opExtendable = 1; 23125let isExtentSigned = 0; 23126let opExtentBits = 6; 23127let opExtentAlign = 0; 23128} 23129def S4_pstorerdf_rr : HInst< 23130(outs), 23131(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23132"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23133tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23134let Inst{31-21} = 0b00110101110; 23135let isPredicated = 1; 23136let isPredicatedFalse = 1; 23137let addrMode = BaseRegOffset; 23138let accessSize = DoubleWordAccess; 23139let mayStore = 1; 23140let BaseOpcode = "S2_storerd_rr"; 23141let CextOpcode = "S2_storerd"; 23142let InputType = "reg"; 23143} 23144def S4_pstorerdfnew_abs : HInst< 23145(outs), 23146(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23147"if (!$Pv4.new) memd(#$Ii) = $Rtt32", 23148tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23149let Inst{2-2} = 0b1; 23150let Inst{7-7} = 0b1; 23151let Inst{13-13} = 0b1; 23152let Inst{31-18} = 0b10101111110000; 23153let isPredicated = 1; 23154let isPredicatedFalse = 1; 23155let addrMode = Absolute; 23156let accessSize = DoubleWordAccess; 23157let isPredicatedNew = 1; 23158let isExtended = 1; 23159let mayStore = 1; 23160let BaseOpcode = "S2_storerdabs"; 23161let CextOpcode = "S2_storerd"; 23162let DecoderNamespace = "MustExtend"; 23163let isExtendable = 1; 23164let opExtendable = 1; 23165let isExtentSigned = 0; 23166let opExtentBits = 6; 23167let opExtentAlign = 0; 23168} 23169def S4_pstorerdfnew_io : HInst< 23170(outs), 23171(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23172"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23173tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23174let Inst{2-2} = 0b0; 23175let Inst{31-21} = 0b01000110110; 23176let isPredicated = 1; 23177let isPredicatedFalse = 1; 23178let addrMode = BaseImmOffset; 23179let accessSize = DoubleWordAccess; 23180let isPredicatedNew = 1; 23181let mayStore = 1; 23182let BaseOpcode = "S2_storerd_io"; 23183let CextOpcode = "S2_storerd"; 23184let InputType = "imm"; 23185let isExtendable = 1; 23186let opExtendable = 2; 23187let isExtentSigned = 0; 23188let opExtentBits = 9; 23189let opExtentAlign = 3; 23190} 23191def S4_pstorerdfnew_rr : HInst< 23192(outs), 23193(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23194"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23195tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23196let Inst{31-21} = 0b00110111110; 23197let isPredicated = 1; 23198let isPredicatedFalse = 1; 23199let addrMode = BaseRegOffset; 23200let accessSize = DoubleWordAccess; 23201let isPredicatedNew = 1; 23202let mayStore = 1; 23203let BaseOpcode = "S2_storerd_rr"; 23204let CextOpcode = "S2_storerd"; 23205let InputType = "reg"; 23206} 23207def S4_pstorerdfnew_zomap : HInst< 23208(outs), 23209(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23210"if (!$Pv4.new) memd($Rs32) = $Rtt32", 23211tc_a2b365d2, TypeMAPPING> { 23212let isPseudo = 1; 23213let isCodeGenOnly = 1; 23214} 23215def S4_pstorerdt_abs : HInst< 23216(outs), 23217(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23218"if ($Pv4) memd(#$Ii) = $Rtt32", 23219tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23220let Inst{2-2} = 0b0; 23221let Inst{7-7} = 0b1; 23222let Inst{13-13} = 0b0; 23223let Inst{31-18} = 0b10101111110000; 23224let isPredicated = 1; 23225let addrMode = Absolute; 23226let accessSize = DoubleWordAccess; 23227let isExtended = 1; 23228let mayStore = 1; 23229let BaseOpcode = "S2_storerdabs"; 23230let CextOpcode = "S2_storerd"; 23231let DecoderNamespace = "MustExtend"; 23232let isExtendable = 1; 23233let opExtendable = 1; 23234let isExtentSigned = 0; 23235let opExtentBits = 6; 23236let opExtentAlign = 0; 23237} 23238def S4_pstorerdt_rr : HInst< 23239(outs), 23240(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23241"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23242tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23243let Inst{31-21} = 0b00110100110; 23244let isPredicated = 1; 23245let addrMode = BaseRegOffset; 23246let accessSize = DoubleWordAccess; 23247let mayStore = 1; 23248let BaseOpcode = "S2_storerd_rr"; 23249let CextOpcode = "S2_storerd"; 23250let InputType = "reg"; 23251} 23252def S4_pstorerdtnew_abs : HInst< 23253(outs), 23254(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23255"if ($Pv4.new) memd(#$Ii) = $Rtt32", 23256tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23257let Inst{2-2} = 0b0; 23258let Inst{7-7} = 0b1; 23259let Inst{13-13} = 0b1; 23260let Inst{31-18} = 0b10101111110000; 23261let isPredicated = 1; 23262let addrMode = Absolute; 23263let accessSize = DoubleWordAccess; 23264let isPredicatedNew = 1; 23265let isExtended = 1; 23266let mayStore = 1; 23267let BaseOpcode = "S2_storerdabs"; 23268let CextOpcode = "S2_storerd"; 23269let DecoderNamespace = "MustExtend"; 23270let isExtendable = 1; 23271let opExtendable = 1; 23272let isExtentSigned = 0; 23273let opExtentBits = 6; 23274let opExtentAlign = 0; 23275} 23276def S4_pstorerdtnew_io : HInst< 23277(outs), 23278(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23279"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23280tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23281let Inst{2-2} = 0b0; 23282let Inst{31-21} = 0b01000010110; 23283let isPredicated = 1; 23284let addrMode = BaseImmOffset; 23285let accessSize = DoubleWordAccess; 23286let isPredicatedNew = 1; 23287let mayStore = 1; 23288let BaseOpcode = "S2_storerd_io"; 23289let CextOpcode = "S2_storerd"; 23290let InputType = "imm"; 23291let isExtendable = 1; 23292let opExtendable = 2; 23293let isExtentSigned = 0; 23294let opExtentBits = 9; 23295let opExtentAlign = 3; 23296} 23297def S4_pstorerdtnew_rr : HInst< 23298(outs), 23299(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23300"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23301tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23302let Inst{31-21} = 0b00110110110; 23303let isPredicated = 1; 23304let addrMode = BaseRegOffset; 23305let accessSize = DoubleWordAccess; 23306let isPredicatedNew = 1; 23307let mayStore = 1; 23308let BaseOpcode = "S2_storerd_rr"; 23309let CextOpcode = "S2_storerd"; 23310let InputType = "reg"; 23311} 23312def S4_pstorerdtnew_zomap : HInst< 23313(outs), 23314(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23315"if ($Pv4.new) memd($Rs32) = $Rtt32", 23316tc_a2b365d2, TypeMAPPING> { 23317let isPseudo = 1; 23318let isCodeGenOnly = 1; 23319} 23320def S4_pstorerff_abs : HInst< 23321(outs), 23322(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23323"if (!$Pv4) memh(#$Ii) = $Rt32.h", 23324tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23325let Inst{2-2} = 0b1; 23326let Inst{7-7} = 0b1; 23327let Inst{13-13} = 0b0; 23328let Inst{31-18} = 0b10101111011000; 23329let isPredicated = 1; 23330let isPredicatedFalse = 1; 23331let addrMode = Absolute; 23332let accessSize = HalfWordAccess; 23333let isExtended = 1; 23334let mayStore = 1; 23335let BaseOpcode = "S2_storerfabs"; 23336let CextOpcode = "S2_storerf"; 23337let DecoderNamespace = "MustExtend"; 23338let isExtendable = 1; 23339let opExtendable = 1; 23340let isExtentSigned = 0; 23341let opExtentBits = 6; 23342let opExtentAlign = 0; 23343} 23344def S4_pstorerff_rr : HInst< 23345(outs), 23346(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23347"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23348tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23349let Inst{31-21} = 0b00110101011; 23350let isPredicated = 1; 23351let isPredicatedFalse = 1; 23352let addrMode = BaseRegOffset; 23353let accessSize = HalfWordAccess; 23354let mayStore = 1; 23355let BaseOpcode = "S4_storerf_rr"; 23356let CextOpcode = "S2_storerf"; 23357let InputType = "reg"; 23358} 23359def S4_pstorerffnew_abs : HInst< 23360(outs), 23361(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23362"if (!$Pv4.new) memh(#$Ii) = $Rt32.h", 23363tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23364let Inst{2-2} = 0b1; 23365let Inst{7-7} = 0b1; 23366let Inst{13-13} = 0b1; 23367let Inst{31-18} = 0b10101111011000; 23368let isPredicated = 1; 23369let isPredicatedFalse = 1; 23370let addrMode = Absolute; 23371let accessSize = HalfWordAccess; 23372let isPredicatedNew = 1; 23373let isExtended = 1; 23374let mayStore = 1; 23375let BaseOpcode = "S2_storerfabs"; 23376let CextOpcode = "S2_storerf"; 23377let DecoderNamespace = "MustExtend"; 23378let isExtendable = 1; 23379let opExtendable = 1; 23380let isExtentSigned = 0; 23381let opExtentBits = 6; 23382let opExtentAlign = 0; 23383} 23384def S4_pstorerffnew_io : HInst< 23385(outs), 23386(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23387"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23388tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23389let Inst{2-2} = 0b0; 23390let Inst{31-21} = 0b01000110011; 23391let isPredicated = 1; 23392let isPredicatedFalse = 1; 23393let addrMode = BaseImmOffset; 23394let accessSize = HalfWordAccess; 23395let isPredicatedNew = 1; 23396let mayStore = 1; 23397let BaseOpcode = "S2_storerf_io"; 23398let CextOpcode = "S2_storerf"; 23399let InputType = "imm"; 23400let isExtendable = 1; 23401let opExtendable = 2; 23402let isExtentSigned = 0; 23403let opExtentBits = 7; 23404let opExtentAlign = 1; 23405} 23406def S4_pstorerffnew_rr : HInst< 23407(outs), 23408(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23409"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23410tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23411let Inst{31-21} = 0b00110111011; 23412let isPredicated = 1; 23413let isPredicatedFalse = 1; 23414let addrMode = BaseRegOffset; 23415let accessSize = HalfWordAccess; 23416let isPredicatedNew = 1; 23417let mayStore = 1; 23418let BaseOpcode = "S4_storerf_rr"; 23419let CextOpcode = "S2_storerf"; 23420let InputType = "reg"; 23421} 23422def S4_pstorerffnew_zomap : HInst< 23423(outs), 23424(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23425"if (!$Pv4.new) memh($Rs32) = $Rt32.h", 23426tc_a2b365d2, TypeMAPPING> { 23427let isPseudo = 1; 23428let isCodeGenOnly = 1; 23429} 23430def S4_pstorerft_abs : HInst< 23431(outs), 23432(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23433"if ($Pv4) memh(#$Ii) = $Rt32.h", 23434tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23435let Inst{2-2} = 0b0; 23436let Inst{7-7} = 0b1; 23437let Inst{13-13} = 0b0; 23438let Inst{31-18} = 0b10101111011000; 23439let isPredicated = 1; 23440let addrMode = Absolute; 23441let accessSize = HalfWordAccess; 23442let isExtended = 1; 23443let mayStore = 1; 23444let BaseOpcode = "S2_storerfabs"; 23445let CextOpcode = "S2_storerf"; 23446let DecoderNamespace = "MustExtend"; 23447let isExtendable = 1; 23448let opExtendable = 1; 23449let isExtentSigned = 0; 23450let opExtentBits = 6; 23451let opExtentAlign = 0; 23452} 23453def S4_pstorerft_rr : HInst< 23454(outs), 23455(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23456"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23457tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23458let Inst{31-21} = 0b00110100011; 23459let isPredicated = 1; 23460let addrMode = BaseRegOffset; 23461let accessSize = HalfWordAccess; 23462let mayStore = 1; 23463let BaseOpcode = "S4_storerf_rr"; 23464let CextOpcode = "S2_storerf"; 23465let InputType = "reg"; 23466} 23467def S4_pstorerftnew_abs : HInst< 23468(outs), 23469(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23470"if ($Pv4.new) memh(#$Ii) = $Rt32.h", 23471tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23472let Inst{2-2} = 0b0; 23473let Inst{7-7} = 0b1; 23474let Inst{13-13} = 0b1; 23475let Inst{31-18} = 0b10101111011000; 23476let isPredicated = 1; 23477let addrMode = Absolute; 23478let accessSize = HalfWordAccess; 23479let isPredicatedNew = 1; 23480let isExtended = 1; 23481let mayStore = 1; 23482let BaseOpcode = "S2_storerfabs"; 23483let CextOpcode = "S2_storerf"; 23484let DecoderNamespace = "MustExtend"; 23485let isExtendable = 1; 23486let opExtendable = 1; 23487let isExtentSigned = 0; 23488let opExtentBits = 6; 23489let opExtentAlign = 0; 23490} 23491def S4_pstorerftnew_io : HInst< 23492(outs), 23493(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23494"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23495tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23496let Inst{2-2} = 0b0; 23497let Inst{31-21} = 0b01000010011; 23498let isPredicated = 1; 23499let addrMode = BaseImmOffset; 23500let accessSize = HalfWordAccess; 23501let isPredicatedNew = 1; 23502let mayStore = 1; 23503let BaseOpcode = "S2_storerf_io"; 23504let CextOpcode = "S2_storerf"; 23505let InputType = "imm"; 23506let isExtendable = 1; 23507let opExtendable = 2; 23508let isExtentSigned = 0; 23509let opExtentBits = 7; 23510let opExtentAlign = 1; 23511} 23512def S4_pstorerftnew_rr : HInst< 23513(outs), 23514(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23515"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23516tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23517let Inst{31-21} = 0b00110110011; 23518let isPredicated = 1; 23519let addrMode = BaseRegOffset; 23520let accessSize = HalfWordAccess; 23521let isPredicatedNew = 1; 23522let mayStore = 1; 23523let BaseOpcode = "S4_storerf_rr"; 23524let CextOpcode = "S2_storerf"; 23525let InputType = "reg"; 23526} 23527def S4_pstorerftnew_zomap : HInst< 23528(outs), 23529(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23530"if ($Pv4.new) memh($Rs32) = $Rt32.h", 23531tc_a2b365d2, TypeMAPPING> { 23532let isPseudo = 1; 23533let isCodeGenOnly = 1; 23534} 23535def S4_pstorerhf_abs : HInst< 23536(outs), 23537(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23538"if (!$Pv4) memh(#$Ii) = $Rt32", 23539tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23540let Inst{2-2} = 0b1; 23541let Inst{7-7} = 0b1; 23542let Inst{13-13} = 0b0; 23543let Inst{31-18} = 0b10101111010000; 23544let isPredicated = 1; 23545let isPredicatedFalse = 1; 23546let addrMode = Absolute; 23547let accessSize = HalfWordAccess; 23548let isExtended = 1; 23549let mayStore = 1; 23550let BaseOpcode = "S2_storerhabs"; 23551let CextOpcode = "S2_storerh"; 23552let isNVStorable = 1; 23553let DecoderNamespace = "MustExtend"; 23554let isExtendable = 1; 23555let opExtendable = 1; 23556let isExtentSigned = 0; 23557let opExtentBits = 6; 23558let opExtentAlign = 0; 23559} 23560def S4_pstorerhf_rr : HInst< 23561(outs), 23562(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23563"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23564tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23565let Inst{31-21} = 0b00110101010; 23566let isPredicated = 1; 23567let isPredicatedFalse = 1; 23568let addrMode = BaseRegOffset; 23569let accessSize = HalfWordAccess; 23570let mayStore = 1; 23571let BaseOpcode = "S2_storerh_rr"; 23572let CextOpcode = "S2_storerh"; 23573let InputType = "reg"; 23574let isNVStorable = 1; 23575} 23576def S4_pstorerhfnew_abs : HInst< 23577(outs), 23578(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23579"if (!$Pv4.new) memh(#$Ii) = $Rt32", 23580tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23581let Inst{2-2} = 0b1; 23582let Inst{7-7} = 0b1; 23583let Inst{13-13} = 0b1; 23584let Inst{31-18} = 0b10101111010000; 23585let isPredicated = 1; 23586let isPredicatedFalse = 1; 23587let addrMode = Absolute; 23588let accessSize = HalfWordAccess; 23589let isPredicatedNew = 1; 23590let isExtended = 1; 23591let mayStore = 1; 23592let BaseOpcode = "S2_storerhabs"; 23593let CextOpcode = "S2_storerh"; 23594let isNVStorable = 1; 23595let DecoderNamespace = "MustExtend"; 23596let isExtendable = 1; 23597let opExtendable = 1; 23598let isExtentSigned = 0; 23599let opExtentBits = 6; 23600let opExtentAlign = 0; 23601} 23602def S4_pstorerhfnew_io : HInst< 23603(outs), 23604(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23605"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23606tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23607let Inst{2-2} = 0b0; 23608let Inst{31-21} = 0b01000110010; 23609let isPredicated = 1; 23610let isPredicatedFalse = 1; 23611let addrMode = BaseImmOffset; 23612let accessSize = HalfWordAccess; 23613let isPredicatedNew = 1; 23614let mayStore = 1; 23615let BaseOpcode = "S2_storerh_io"; 23616let CextOpcode = "S2_storerh"; 23617let InputType = "imm"; 23618let isNVStorable = 1; 23619let isExtendable = 1; 23620let opExtendable = 2; 23621let isExtentSigned = 0; 23622let opExtentBits = 7; 23623let opExtentAlign = 1; 23624} 23625def S4_pstorerhfnew_rr : HInst< 23626(outs), 23627(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23628"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23629tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23630let Inst{31-21} = 0b00110111010; 23631let isPredicated = 1; 23632let isPredicatedFalse = 1; 23633let addrMode = BaseRegOffset; 23634let accessSize = HalfWordAccess; 23635let isPredicatedNew = 1; 23636let mayStore = 1; 23637let BaseOpcode = "S2_storerh_rr"; 23638let CextOpcode = "S2_storerh"; 23639let InputType = "reg"; 23640let isNVStorable = 1; 23641} 23642def S4_pstorerhfnew_zomap : HInst< 23643(outs), 23644(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23645"if (!$Pv4.new) memh($Rs32) = $Rt32", 23646tc_a2b365d2, TypeMAPPING> { 23647let isPseudo = 1; 23648let isCodeGenOnly = 1; 23649} 23650def S4_pstorerhnewf_abs : HInst< 23651(outs), 23652(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23653"if (!$Pv4) memh(#$Ii) = $Nt8.new", 23654tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23655let Inst{2-2} = 0b1; 23656let Inst{7-7} = 0b1; 23657let Inst{13-11} = 0b001; 23658let Inst{31-18} = 0b10101111101000; 23659let isPredicated = 1; 23660let isPredicatedFalse = 1; 23661let addrMode = Absolute; 23662let accessSize = HalfWordAccess; 23663let isNVStore = 1; 23664let isNewValue = 1; 23665let isExtended = 1; 23666let isRestrictNoSlot1Store = 1; 23667let mayStore = 1; 23668let BaseOpcode = "S2_storerhabs"; 23669let CextOpcode = "S2_storerh"; 23670let DecoderNamespace = "MustExtend"; 23671let isExtendable = 1; 23672let opExtendable = 1; 23673let isExtentSigned = 0; 23674let opExtentBits = 6; 23675let opExtentAlign = 0; 23676let opNewValue = 2; 23677} 23678def S4_pstorerhnewf_rr : HInst< 23679(outs), 23680(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23681"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23682tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23683let Inst{4-3} = 0b01; 23684let Inst{31-21} = 0b00110101101; 23685let isPredicated = 1; 23686let isPredicatedFalse = 1; 23687let addrMode = BaseRegOffset; 23688let accessSize = HalfWordAccess; 23689let isNVStore = 1; 23690let isNewValue = 1; 23691let isRestrictNoSlot1Store = 1; 23692let mayStore = 1; 23693let BaseOpcode = "S2_storerh_rr"; 23694let CextOpcode = "S2_storerh"; 23695let InputType = "reg"; 23696let opNewValue = 4; 23697} 23698def S4_pstorerhnewfnew_abs : HInst< 23699(outs), 23700(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23701"if (!$Pv4.new) memh(#$Ii) = $Nt8.new", 23702tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23703let Inst{2-2} = 0b1; 23704let Inst{7-7} = 0b1; 23705let Inst{13-11} = 0b101; 23706let Inst{31-18} = 0b10101111101000; 23707let isPredicated = 1; 23708let isPredicatedFalse = 1; 23709let addrMode = Absolute; 23710let accessSize = HalfWordAccess; 23711let isNVStore = 1; 23712let isPredicatedNew = 1; 23713let isNewValue = 1; 23714let isExtended = 1; 23715let isRestrictNoSlot1Store = 1; 23716let mayStore = 1; 23717let BaseOpcode = "S2_storerhabs"; 23718let CextOpcode = "S2_storerh"; 23719let DecoderNamespace = "MustExtend"; 23720let isExtendable = 1; 23721let opExtendable = 1; 23722let isExtentSigned = 0; 23723let opExtentBits = 6; 23724let opExtentAlign = 0; 23725let opNewValue = 2; 23726} 23727def S4_pstorerhnewfnew_io : HInst< 23728(outs), 23729(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23730"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23731tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23732let Inst{2-2} = 0b0; 23733let Inst{12-11} = 0b01; 23734let Inst{31-21} = 0b01000110101; 23735let isPredicated = 1; 23736let isPredicatedFalse = 1; 23737let addrMode = BaseImmOffset; 23738let accessSize = HalfWordAccess; 23739let isNVStore = 1; 23740let isPredicatedNew = 1; 23741let isNewValue = 1; 23742let isRestrictNoSlot1Store = 1; 23743let mayStore = 1; 23744let BaseOpcode = "S2_storerh_io"; 23745let CextOpcode = "S2_storerh"; 23746let InputType = "imm"; 23747let isExtendable = 1; 23748let opExtendable = 2; 23749let isExtentSigned = 0; 23750let opExtentBits = 7; 23751let opExtentAlign = 1; 23752let opNewValue = 3; 23753} 23754def S4_pstorerhnewfnew_rr : HInst< 23755(outs), 23756(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23757"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23758tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23759let Inst{4-3} = 0b01; 23760let Inst{31-21} = 0b00110111101; 23761let isPredicated = 1; 23762let isPredicatedFalse = 1; 23763let addrMode = BaseRegOffset; 23764let accessSize = HalfWordAccess; 23765let isNVStore = 1; 23766let isPredicatedNew = 1; 23767let isNewValue = 1; 23768let isRestrictNoSlot1Store = 1; 23769let mayStore = 1; 23770let BaseOpcode = "S2_storerh_rr"; 23771let CextOpcode = "S2_storerh"; 23772let InputType = "reg"; 23773let opNewValue = 4; 23774} 23775def S4_pstorerhnewfnew_zomap : HInst< 23776(outs), 23777(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23778"if (!$Pv4.new) memh($Rs32) = $Nt8.new", 23779tc_92240447, TypeMAPPING> { 23780let isPseudo = 1; 23781let isCodeGenOnly = 1; 23782let opNewValue = 2; 23783} 23784def S4_pstorerhnewt_abs : HInst< 23785(outs), 23786(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23787"if ($Pv4) memh(#$Ii) = $Nt8.new", 23788tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23789let Inst{2-2} = 0b0; 23790let Inst{7-7} = 0b1; 23791let Inst{13-11} = 0b001; 23792let Inst{31-18} = 0b10101111101000; 23793let isPredicated = 1; 23794let addrMode = Absolute; 23795let accessSize = HalfWordAccess; 23796let isNVStore = 1; 23797let isNewValue = 1; 23798let isExtended = 1; 23799let isRestrictNoSlot1Store = 1; 23800let mayStore = 1; 23801let BaseOpcode = "S2_storerhabs"; 23802let CextOpcode = "S2_storerh"; 23803let DecoderNamespace = "MustExtend"; 23804let isExtendable = 1; 23805let opExtendable = 1; 23806let isExtentSigned = 0; 23807let opExtentBits = 6; 23808let opExtentAlign = 0; 23809let opNewValue = 2; 23810} 23811def S4_pstorerhnewt_rr : HInst< 23812(outs), 23813(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23814"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23815tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23816let Inst{4-3} = 0b01; 23817let Inst{31-21} = 0b00110100101; 23818let isPredicated = 1; 23819let addrMode = BaseRegOffset; 23820let accessSize = HalfWordAccess; 23821let isNVStore = 1; 23822let isNewValue = 1; 23823let isRestrictNoSlot1Store = 1; 23824let mayStore = 1; 23825let BaseOpcode = "S2_storerh_rr"; 23826let CextOpcode = "S2_storerh"; 23827let InputType = "reg"; 23828let opNewValue = 4; 23829} 23830def S4_pstorerhnewtnew_abs : HInst< 23831(outs), 23832(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23833"if ($Pv4.new) memh(#$Ii) = $Nt8.new", 23834tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23835let Inst{2-2} = 0b0; 23836let Inst{7-7} = 0b1; 23837let Inst{13-11} = 0b101; 23838let Inst{31-18} = 0b10101111101000; 23839let isPredicated = 1; 23840let addrMode = Absolute; 23841let accessSize = HalfWordAccess; 23842let isNVStore = 1; 23843let isPredicatedNew = 1; 23844let isNewValue = 1; 23845let isExtended = 1; 23846let isRestrictNoSlot1Store = 1; 23847let mayStore = 1; 23848let BaseOpcode = "S2_storerhabs"; 23849let CextOpcode = "S2_storerh"; 23850let DecoderNamespace = "MustExtend"; 23851let isExtendable = 1; 23852let opExtendable = 1; 23853let isExtentSigned = 0; 23854let opExtentBits = 6; 23855let opExtentAlign = 0; 23856let opNewValue = 2; 23857} 23858def S4_pstorerhnewtnew_io : HInst< 23859(outs), 23860(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23861"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23862tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23863let Inst{2-2} = 0b0; 23864let Inst{12-11} = 0b01; 23865let Inst{31-21} = 0b01000010101; 23866let isPredicated = 1; 23867let addrMode = BaseImmOffset; 23868let accessSize = HalfWordAccess; 23869let isNVStore = 1; 23870let isPredicatedNew = 1; 23871let isNewValue = 1; 23872let isRestrictNoSlot1Store = 1; 23873let mayStore = 1; 23874let BaseOpcode = "S2_storerh_io"; 23875let CextOpcode = "S2_storerh"; 23876let InputType = "imm"; 23877let isExtendable = 1; 23878let opExtendable = 2; 23879let isExtentSigned = 0; 23880let opExtentBits = 7; 23881let opExtentAlign = 1; 23882let opNewValue = 3; 23883} 23884def S4_pstorerhnewtnew_rr : HInst< 23885(outs), 23886(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23887"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23888tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23889let Inst{4-3} = 0b01; 23890let Inst{31-21} = 0b00110110101; 23891let isPredicated = 1; 23892let addrMode = BaseRegOffset; 23893let accessSize = HalfWordAccess; 23894let isNVStore = 1; 23895let isPredicatedNew = 1; 23896let isNewValue = 1; 23897let isRestrictNoSlot1Store = 1; 23898let mayStore = 1; 23899let BaseOpcode = "S2_storerh_rr"; 23900let CextOpcode = "S2_storerh"; 23901let InputType = "reg"; 23902let opNewValue = 4; 23903} 23904def S4_pstorerhnewtnew_zomap : HInst< 23905(outs), 23906(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23907"if ($Pv4.new) memh($Rs32) = $Nt8.new", 23908tc_92240447, TypeMAPPING> { 23909let isPseudo = 1; 23910let isCodeGenOnly = 1; 23911let opNewValue = 2; 23912} 23913def S4_pstorerht_abs : HInst< 23914(outs), 23915(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23916"if ($Pv4) memh(#$Ii) = $Rt32", 23917tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23918let Inst{2-2} = 0b0; 23919let Inst{7-7} = 0b1; 23920let Inst{13-13} = 0b0; 23921let Inst{31-18} = 0b10101111010000; 23922let isPredicated = 1; 23923let addrMode = Absolute; 23924let accessSize = HalfWordAccess; 23925let isExtended = 1; 23926let mayStore = 1; 23927let BaseOpcode = "S2_storerhabs"; 23928let CextOpcode = "S2_storerh"; 23929let isNVStorable = 1; 23930let DecoderNamespace = "MustExtend"; 23931let isExtendable = 1; 23932let opExtendable = 1; 23933let isExtentSigned = 0; 23934let opExtentBits = 6; 23935let opExtentAlign = 0; 23936} 23937def S4_pstorerht_rr : HInst< 23938(outs), 23939(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23940"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23941tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23942let Inst{31-21} = 0b00110100010; 23943let isPredicated = 1; 23944let addrMode = BaseRegOffset; 23945let accessSize = HalfWordAccess; 23946let mayStore = 1; 23947let BaseOpcode = "S2_storerh_rr"; 23948let CextOpcode = "S2_storerh"; 23949let InputType = "reg"; 23950let isNVStorable = 1; 23951} 23952def S4_pstorerhtnew_abs : HInst< 23953(outs), 23954(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23955"if ($Pv4.new) memh(#$Ii) = $Rt32", 23956tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23957let Inst{2-2} = 0b0; 23958let Inst{7-7} = 0b1; 23959let Inst{13-13} = 0b1; 23960let Inst{31-18} = 0b10101111010000; 23961let isPredicated = 1; 23962let addrMode = Absolute; 23963let accessSize = HalfWordAccess; 23964let isPredicatedNew = 1; 23965let isExtended = 1; 23966let mayStore = 1; 23967let BaseOpcode = "S2_storerhabs"; 23968let CextOpcode = "S2_storerh"; 23969let isNVStorable = 1; 23970let DecoderNamespace = "MustExtend"; 23971let isExtendable = 1; 23972let opExtendable = 1; 23973let isExtentSigned = 0; 23974let opExtentBits = 6; 23975let opExtentAlign = 0; 23976} 23977def S4_pstorerhtnew_io : HInst< 23978(outs), 23979(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23980"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23981tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23982let Inst{2-2} = 0b0; 23983let Inst{31-21} = 0b01000010010; 23984let isPredicated = 1; 23985let addrMode = BaseImmOffset; 23986let accessSize = HalfWordAccess; 23987let isPredicatedNew = 1; 23988let mayStore = 1; 23989let BaseOpcode = "S2_storerh_io"; 23990let CextOpcode = "S2_storerh"; 23991let InputType = "imm"; 23992let isNVStorable = 1; 23993let isExtendable = 1; 23994let opExtendable = 2; 23995let isExtentSigned = 0; 23996let opExtentBits = 7; 23997let opExtentAlign = 1; 23998} 23999def S4_pstorerhtnew_rr : HInst< 24000(outs), 24001(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24002"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24003tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24004let Inst{31-21} = 0b00110110010; 24005let isPredicated = 1; 24006let addrMode = BaseRegOffset; 24007let accessSize = HalfWordAccess; 24008let isPredicatedNew = 1; 24009let mayStore = 1; 24010let BaseOpcode = "S2_storerh_rr"; 24011let CextOpcode = "S2_storerh"; 24012let InputType = "reg"; 24013let isNVStorable = 1; 24014} 24015def S4_pstorerhtnew_zomap : HInst< 24016(outs), 24017(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24018"if ($Pv4.new) memh($Rs32) = $Rt32", 24019tc_a2b365d2, TypeMAPPING> { 24020let isPseudo = 1; 24021let isCodeGenOnly = 1; 24022} 24023def S4_pstorerif_abs : HInst< 24024(outs), 24025(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24026"if (!$Pv4) memw(#$Ii) = $Rt32", 24027tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24028let Inst{2-2} = 0b1; 24029let Inst{7-7} = 0b1; 24030let Inst{13-13} = 0b0; 24031let Inst{31-18} = 0b10101111100000; 24032let isPredicated = 1; 24033let isPredicatedFalse = 1; 24034let addrMode = Absolute; 24035let accessSize = WordAccess; 24036let isExtended = 1; 24037let mayStore = 1; 24038let BaseOpcode = "S2_storeriabs"; 24039let CextOpcode = "S2_storeri"; 24040let isNVStorable = 1; 24041let DecoderNamespace = "MustExtend"; 24042let isExtendable = 1; 24043let opExtendable = 1; 24044let isExtentSigned = 0; 24045let opExtentBits = 6; 24046let opExtentAlign = 0; 24047} 24048def S4_pstorerif_rr : HInst< 24049(outs), 24050(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24051"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24052tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24053let Inst{31-21} = 0b00110101100; 24054let isPredicated = 1; 24055let isPredicatedFalse = 1; 24056let addrMode = BaseRegOffset; 24057let accessSize = WordAccess; 24058let mayStore = 1; 24059let BaseOpcode = "S2_storeri_rr"; 24060let CextOpcode = "S2_storeri"; 24061let InputType = "reg"; 24062let isNVStorable = 1; 24063} 24064def S4_pstorerifnew_abs : HInst< 24065(outs), 24066(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24067"if (!$Pv4.new) memw(#$Ii) = $Rt32", 24068tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24069let Inst{2-2} = 0b1; 24070let Inst{7-7} = 0b1; 24071let Inst{13-13} = 0b1; 24072let Inst{31-18} = 0b10101111100000; 24073let isPredicated = 1; 24074let isPredicatedFalse = 1; 24075let addrMode = Absolute; 24076let accessSize = WordAccess; 24077let isPredicatedNew = 1; 24078let isExtended = 1; 24079let mayStore = 1; 24080let BaseOpcode = "S2_storeriabs"; 24081let CextOpcode = "S2_storeri"; 24082let isNVStorable = 1; 24083let DecoderNamespace = "MustExtend"; 24084let isExtendable = 1; 24085let opExtendable = 1; 24086let isExtentSigned = 0; 24087let opExtentBits = 6; 24088let opExtentAlign = 0; 24089} 24090def S4_pstorerifnew_io : HInst< 24091(outs), 24092(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24093"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24094tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24095let Inst{2-2} = 0b0; 24096let Inst{31-21} = 0b01000110100; 24097let isPredicated = 1; 24098let isPredicatedFalse = 1; 24099let addrMode = BaseImmOffset; 24100let accessSize = WordAccess; 24101let isPredicatedNew = 1; 24102let mayStore = 1; 24103let BaseOpcode = "S2_storeri_io"; 24104let CextOpcode = "S2_storeri"; 24105let InputType = "imm"; 24106let isNVStorable = 1; 24107let isExtendable = 1; 24108let opExtendable = 2; 24109let isExtentSigned = 0; 24110let opExtentBits = 8; 24111let opExtentAlign = 2; 24112} 24113def S4_pstorerifnew_rr : HInst< 24114(outs), 24115(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24116"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24117tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24118let Inst{31-21} = 0b00110111100; 24119let isPredicated = 1; 24120let isPredicatedFalse = 1; 24121let addrMode = BaseRegOffset; 24122let accessSize = WordAccess; 24123let isPredicatedNew = 1; 24124let mayStore = 1; 24125let BaseOpcode = "S2_storeri_rr"; 24126let CextOpcode = "S2_storeri"; 24127let InputType = "reg"; 24128let isNVStorable = 1; 24129} 24130def S4_pstorerifnew_zomap : HInst< 24131(outs), 24132(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24133"if (!$Pv4.new) memw($Rs32) = $Rt32", 24134tc_a2b365d2, TypeMAPPING> { 24135let isPseudo = 1; 24136let isCodeGenOnly = 1; 24137} 24138def S4_pstorerinewf_abs : HInst< 24139(outs), 24140(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24141"if (!$Pv4) memw(#$Ii) = $Nt8.new", 24142tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24143let Inst{2-2} = 0b1; 24144let Inst{7-7} = 0b1; 24145let Inst{13-11} = 0b010; 24146let Inst{31-18} = 0b10101111101000; 24147let isPredicated = 1; 24148let isPredicatedFalse = 1; 24149let addrMode = Absolute; 24150let accessSize = WordAccess; 24151let isNVStore = 1; 24152let isNewValue = 1; 24153let isExtended = 1; 24154let isRestrictNoSlot1Store = 1; 24155let mayStore = 1; 24156let BaseOpcode = "S2_storeriabs"; 24157let CextOpcode = "S2_storeri"; 24158let DecoderNamespace = "MustExtend"; 24159let isExtendable = 1; 24160let opExtendable = 1; 24161let isExtentSigned = 0; 24162let opExtentBits = 6; 24163let opExtentAlign = 0; 24164let opNewValue = 2; 24165} 24166def S4_pstorerinewf_rr : HInst< 24167(outs), 24168(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24169"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24170tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24171let Inst{4-3} = 0b10; 24172let Inst{31-21} = 0b00110101101; 24173let isPredicated = 1; 24174let isPredicatedFalse = 1; 24175let addrMode = BaseRegOffset; 24176let accessSize = WordAccess; 24177let isNVStore = 1; 24178let isNewValue = 1; 24179let isRestrictNoSlot1Store = 1; 24180let mayStore = 1; 24181let BaseOpcode = "S2_storeri_rr"; 24182let CextOpcode = "S2_storeri"; 24183let InputType = "reg"; 24184let opNewValue = 4; 24185} 24186def S4_pstorerinewfnew_abs : HInst< 24187(outs), 24188(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24189"if (!$Pv4.new) memw(#$Ii) = $Nt8.new", 24190tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24191let Inst{2-2} = 0b1; 24192let Inst{7-7} = 0b1; 24193let Inst{13-11} = 0b110; 24194let Inst{31-18} = 0b10101111101000; 24195let isPredicated = 1; 24196let isPredicatedFalse = 1; 24197let addrMode = Absolute; 24198let accessSize = WordAccess; 24199let isNVStore = 1; 24200let isPredicatedNew = 1; 24201let isNewValue = 1; 24202let isExtended = 1; 24203let isRestrictNoSlot1Store = 1; 24204let mayStore = 1; 24205let BaseOpcode = "S2_storeriabs"; 24206let CextOpcode = "S2_storeri"; 24207let DecoderNamespace = "MustExtend"; 24208let isExtendable = 1; 24209let opExtendable = 1; 24210let isExtentSigned = 0; 24211let opExtentBits = 6; 24212let opExtentAlign = 0; 24213let opNewValue = 2; 24214} 24215def S4_pstorerinewfnew_io : HInst< 24216(outs), 24217(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24218"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24219tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24220let Inst{2-2} = 0b0; 24221let Inst{12-11} = 0b10; 24222let Inst{31-21} = 0b01000110101; 24223let isPredicated = 1; 24224let isPredicatedFalse = 1; 24225let addrMode = BaseImmOffset; 24226let accessSize = WordAccess; 24227let isNVStore = 1; 24228let isPredicatedNew = 1; 24229let isNewValue = 1; 24230let isRestrictNoSlot1Store = 1; 24231let mayStore = 1; 24232let BaseOpcode = "S2_storeri_io"; 24233let CextOpcode = "S2_storeri"; 24234let InputType = "imm"; 24235let isExtendable = 1; 24236let opExtendable = 2; 24237let isExtentSigned = 0; 24238let opExtentBits = 8; 24239let opExtentAlign = 2; 24240let opNewValue = 3; 24241} 24242def S4_pstorerinewfnew_rr : HInst< 24243(outs), 24244(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24245"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24246tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24247let Inst{4-3} = 0b10; 24248let Inst{31-21} = 0b00110111101; 24249let isPredicated = 1; 24250let isPredicatedFalse = 1; 24251let addrMode = BaseRegOffset; 24252let accessSize = WordAccess; 24253let isNVStore = 1; 24254let isPredicatedNew = 1; 24255let isNewValue = 1; 24256let isRestrictNoSlot1Store = 1; 24257let mayStore = 1; 24258let BaseOpcode = "S2_storeri_rr"; 24259let CextOpcode = "S2_storeri"; 24260let InputType = "reg"; 24261let opNewValue = 4; 24262} 24263def S4_pstorerinewfnew_zomap : HInst< 24264(outs), 24265(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24266"if (!$Pv4.new) memw($Rs32) = $Nt8.new", 24267tc_92240447, TypeMAPPING> { 24268let isPseudo = 1; 24269let isCodeGenOnly = 1; 24270let opNewValue = 2; 24271} 24272def S4_pstorerinewt_abs : HInst< 24273(outs), 24274(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24275"if ($Pv4) memw(#$Ii) = $Nt8.new", 24276tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24277let Inst{2-2} = 0b0; 24278let Inst{7-7} = 0b1; 24279let Inst{13-11} = 0b010; 24280let Inst{31-18} = 0b10101111101000; 24281let isPredicated = 1; 24282let addrMode = Absolute; 24283let accessSize = WordAccess; 24284let isNVStore = 1; 24285let isNewValue = 1; 24286let isExtended = 1; 24287let isRestrictNoSlot1Store = 1; 24288let mayStore = 1; 24289let BaseOpcode = "S2_storeriabs"; 24290let CextOpcode = "S2_storeri"; 24291let DecoderNamespace = "MustExtend"; 24292let isExtendable = 1; 24293let opExtendable = 1; 24294let isExtentSigned = 0; 24295let opExtentBits = 6; 24296let opExtentAlign = 0; 24297let opNewValue = 2; 24298} 24299def S4_pstorerinewt_rr : HInst< 24300(outs), 24301(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24302"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24303tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24304let Inst{4-3} = 0b10; 24305let Inst{31-21} = 0b00110100101; 24306let isPredicated = 1; 24307let addrMode = BaseRegOffset; 24308let accessSize = WordAccess; 24309let isNVStore = 1; 24310let isNewValue = 1; 24311let isRestrictNoSlot1Store = 1; 24312let mayStore = 1; 24313let BaseOpcode = "S2_storeri_rr"; 24314let CextOpcode = "S2_storeri"; 24315let InputType = "reg"; 24316let opNewValue = 4; 24317} 24318def S4_pstorerinewtnew_abs : HInst< 24319(outs), 24320(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24321"if ($Pv4.new) memw(#$Ii) = $Nt8.new", 24322tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24323let Inst{2-2} = 0b0; 24324let Inst{7-7} = 0b1; 24325let Inst{13-11} = 0b110; 24326let Inst{31-18} = 0b10101111101000; 24327let isPredicated = 1; 24328let addrMode = Absolute; 24329let accessSize = WordAccess; 24330let isNVStore = 1; 24331let isPredicatedNew = 1; 24332let isNewValue = 1; 24333let isExtended = 1; 24334let isRestrictNoSlot1Store = 1; 24335let mayStore = 1; 24336let BaseOpcode = "S2_storeriabs"; 24337let CextOpcode = "S2_storeri"; 24338let DecoderNamespace = "MustExtend"; 24339let isExtendable = 1; 24340let opExtendable = 1; 24341let isExtentSigned = 0; 24342let opExtentBits = 6; 24343let opExtentAlign = 0; 24344let opNewValue = 2; 24345} 24346def S4_pstorerinewtnew_io : HInst< 24347(outs), 24348(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24349"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24350tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24351let Inst{2-2} = 0b0; 24352let Inst{12-11} = 0b10; 24353let Inst{31-21} = 0b01000010101; 24354let isPredicated = 1; 24355let addrMode = BaseImmOffset; 24356let accessSize = WordAccess; 24357let isNVStore = 1; 24358let isPredicatedNew = 1; 24359let isNewValue = 1; 24360let isRestrictNoSlot1Store = 1; 24361let mayStore = 1; 24362let BaseOpcode = "S2_storeri_io"; 24363let CextOpcode = "S2_storeri"; 24364let InputType = "imm"; 24365let isExtendable = 1; 24366let opExtendable = 2; 24367let isExtentSigned = 0; 24368let opExtentBits = 8; 24369let opExtentAlign = 2; 24370let opNewValue = 3; 24371} 24372def S4_pstorerinewtnew_rr : HInst< 24373(outs), 24374(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24375"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24376tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24377let Inst{4-3} = 0b10; 24378let Inst{31-21} = 0b00110110101; 24379let isPredicated = 1; 24380let addrMode = BaseRegOffset; 24381let accessSize = WordAccess; 24382let isNVStore = 1; 24383let isPredicatedNew = 1; 24384let isNewValue = 1; 24385let isRestrictNoSlot1Store = 1; 24386let mayStore = 1; 24387let BaseOpcode = "S2_storeri_rr"; 24388let CextOpcode = "S2_storeri"; 24389let InputType = "reg"; 24390let opNewValue = 4; 24391} 24392def S4_pstorerinewtnew_zomap : HInst< 24393(outs), 24394(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24395"if ($Pv4.new) memw($Rs32) = $Nt8.new", 24396tc_92240447, TypeMAPPING> { 24397let isPseudo = 1; 24398let isCodeGenOnly = 1; 24399let opNewValue = 2; 24400} 24401def S4_pstorerit_abs : HInst< 24402(outs), 24403(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24404"if ($Pv4) memw(#$Ii) = $Rt32", 24405tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24406let Inst{2-2} = 0b0; 24407let Inst{7-7} = 0b1; 24408let Inst{13-13} = 0b0; 24409let Inst{31-18} = 0b10101111100000; 24410let isPredicated = 1; 24411let addrMode = Absolute; 24412let accessSize = WordAccess; 24413let isExtended = 1; 24414let mayStore = 1; 24415let BaseOpcode = "S2_storeriabs"; 24416let CextOpcode = "S2_storeri"; 24417let isNVStorable = 1; 24418let DecoderNamespace = "MustExtend"; 24419let isExtendable = 1; 24420let opExtendable = 1; 24421let isExtentSigned = 0; 24422let opExtentBits = 6; 24423let opExtentAlign = 0; 24424} 24425def S4_pstorerit_rr : HInst< 24426(outs), 24427(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24428"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24429tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24430let Inst{31-21} = 0b00110100100; 24431let isPredicated = 1; 24432let addrMode = BaseRegOffset; 24433let accessSize = WordAccess; 24434let mayStore = 1; 24435let BaseOpcode = "S2_storeri_rr"; 24436let CextOpcode = "S2_storeri"; 24437let InputType = "reg"; 24438let isNVStorable = 1; 24439} 24440def S4_pstoreritnew_abs : HInst< 24441(outs), 24442(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24443"if ($Pv4.new) memw(#$Ii) = $Rt32", 24444tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24445let Inst{2-2} = 0b0; 24446let Inst{7-7} = 0b1; 24447let Inst{13-13} = 0b1; 24448let Inst{31-18} = 0b10101111100000; 24449let isPredicated = 1; 24450let addrMode = Absolute; 24451let accessSize = WordAccess; 24452let isPredicatedNew = 1; 24453let isExtended = 1; 24454let mayStore = 1; 24455let BaseOpcode = "S2_storeriabs"; 24456let CextOpcode = "S2_storeri"; 24457let isNVStorable = 1; 24458let DecoderNamespace = "MustExtend"; 24459let isExtendable = 1; 24460let opExtendable = 1; 24461let isExtentSigned = 0; 24462let opExtentBits = 6; 24463let opExtentAlign = 0; 24464} 24465def S4_pstoreritnew_io : HInst< 24466(outs), 24467(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24468"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24469tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24470let Inst{2-2} = 0b0; 24471let Inst{31-21} = 0b01000010100; 24472let isPredicated = 1; 24473let addrMode = BaseImmOffset; 24474let accessSize = WordAccess; 24475let isPredicatedNew = 1; 24476let mayStore = 1; 24477let BaseOpcode = "S2_storeri_io"; 24478let CextOpcode = "S2_storeri"; 24479let InputType = "imm"; 24480let isNVStorable = 1; 24481let isExtendable = 1; 24482let opExtendable = 2; 24483let isExtentSigned = 0; 24484let opExtentBits = 8; 24485let opExtentAlign = 2; 24486} 24487def S4_pstoreritnew_rr : HInst< 24488(outs), 24489(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24490"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24491tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24492let Inst{31-21} = 0b00110110100; 24493let isPredicated = 1; 24494let addrMode = BaseRegOffset; 24495let accessSize = WordAccess; 24496let isPredicatedNew = 1; 24497let mayStore = 1; 24498let BaseOpcode = "S2_storeri_rr"; 24499let CextOpcode = "S2_storeri"; 24500let InputType = "reg"; 24501let isNVStorable = 1; 24502} 24503def S4_pstoreritnew_zomap : HInst< 24504(outs), 24505(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24506"if ($Pv4.new) memw($Rs32) = $Rt32", 24507tc_a2b365d2, TypeMAPPING> { 24508let isPseudo = 1; 24509let isCodeGenOnly = 1; 24510} 24511def S4_stored_locked : HInst< 24512(outs PredRegs:$Pd4), 24513(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24514"memd_locked($Rs32,$Pd4) = $Rtt32", 24515tc_6f42bc60, TypeST>, Enc_d7dc10 { 24516let Inst{7-2} = 0b000000; 24517let Inst{13-13} = 0b0; 24518let Inst{31-21} = 0b10100000111; 24519let accessSize = DoubleWordAccess; 24520let isPredicateLate = 1; 24521let isSoloAX = 1; 24522let mayStore = 1; 24523} 24524def S4_storeirb_io : HInst< 24525(outs), 24526(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24527"memb($Rs32+#$Ii) = #$II", 24528tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel { 24529let Inst{31-21} = 0b00111100000; 24530let addrMode = BaseImmOffset; 24531let accessSize = ByteAccess; 24532let mayStore = 1; 24533let BaseOpcode = "S4_storeirb_io"; 24534let CextOpcode = "S2_storerb"; 24535let InputType = "imm"; 24536let isPredicable = 1; 24537let isExtendable = 1; 24538let opExtendable = 2; 24539let isExtentSigned = 1; 24540let opExtentBits = 8; 24541let opExtentAlign = 0; 24542} 24543def S4_storeirb_zomap : HInst< 24544(outs), 24545(ins IntRegs:$Rs32, s8_0Imm:$II), 24546"memb($Rs32) = #$II", 24547tc_7c31e19a, TypeMAPPING> { 24548let isPseudo = 1; 24549let isCodeGenOnly = 1; 24550} 24551def S4_storeirbf_io : HInst< 24552(outs), 24553(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24554"if (!$Pv4) memb($Rs32+#$Ii) = #$II", 24555tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24556let Inst{31-21} = 0b00111000100; 24557let isPredicated = 1; 24558let isPredicatedFalse = 1; 24559let addrMode = BaseImmOffset; 24560let accessSize = ByteAccess; 24561let mayStore = 1; 24562let BaseOpcode = "S4_storeirb_io"; 24563let CextOpcode = "S2_storerb"; 24564let InputType = "imm"; 24565let isExtendable = 1; 24566let opExtendable = 3; 24567let isExtentSigned = 1; 24568let opExtentBits = 6; 24569let opExtentAlign = 0; 24570} 24571def S4_storeirbf_zomap : HInst< 24572(outs), 24573(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24574"if (!$Pv4) memb($Rs32) = #$II", 24575tc_d03278fd, TypeMAPPING> { 24576let isPseudo = 1; 24577let isCodeGenOnly = 1; 24578} 24579def S4_storeirbfnew_io : HInst< 24580(outs), 24581(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24582"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II", 24583tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24584let Inst{31-21} = 0b00111001100; 24585let isPredicated = 1; 24586let isPredicatedFalse = 1; 24587let addrMode = BaseImmOffset; 24588let accessSize = ByteAccess; 24589let isPredicatedNew = 1; 24590let mayStore = 1; 24591let BaseOpcode = "S4_storeirb_io"; 24592let CextOpcode = "S2_storerb"; 24593let InputType = "imm"; 24594let isExtendable = 1; 24595let opExtendable = 3; 24596let isExtentSigned = 1; 24597let opExtentBits = 6; 24598let opExtentAlign = 0; 24599} 24600def S4_storeirbfnew_zomap : HInst< 24601(outs), 24602(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24603"if (!$Pv4.new) memb($Rs32) = #$II", 24604tc_65cbd974, TypeMAPPING> { 24605let isPseudo = 1; 24606let isCodeGenOnly = 1; 24607} 24608def S4_storeirbt_io : HInst< 24609(outs), 24610(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24611"if ($Pv4) memb($Rs32+#$Ii) = #$II", 24612tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24613let Inst{31-21} = 0b00111000000; 24614let isPredicated = 1; 24615let addrMode = BaseImmOffset; 24616let accessSize = ByteAccess; 24617let mayStore = 1; 24618let BaseOpcode = "S4_storeirb_io"; 24619let CextOpcode = "S2_storerb"; 24620let InputType = "imm"; 24621let isExtendable = 1; 24622let opExtendable = 3; 24623let isExtentSigned = 1; 24624let opExtentBits = 6; 24625let opExtentAlign = 0; 24626} 24627def S4_storeirbt_zomap : HInst< 24628(outs), 24629(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24630"if ($Pv4) memb($Rs32) = #$II", 24631tc_d03278fd, TypeMAPPING> { 24632let isPseudo = 1; 24633let isCodeGenOnly = 1; 24634} 24635def S4_storeirbtnew_io : HInst< 24636(outs), 24637(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24638"if ($Pv4.new) memb($Rs32+#$Ii) = #$II", 24639tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24640let Inst{31-21} = 0b00111001000; 24641let isPredicated = 1; 24642let addrMode = BaseImmOffset; 24643let accessSize = ByteAccess; 24644let isPredicatedNew = 1; 24645let mayStore = 1; 24646let BaseOpcode = "S4_storeirb_io"; 24647let CextOpcode = "S2_storerb"; 24648let InputType = "imm"; 24649let isExtendable = 1; 24650let opExtendable = 3; 24651let isExtentSigned = 1; 24652let opExtentBits = 6; 24653let opExtentAlign = 0; 24654} 24655def S4_storeirbtnew_zomap : HInst< 24656(outs), 24657(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24658"if ($Pv4.new) memb($Rs32) = #$II", 24659tc_65cbd974, TypeMAPPING> { 24660let isPseudo = 1; 24661let isCodeGenOnly = 1; 24662} 24663def S4_storeirh_io : HInst< 24664(outs), 24665(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24666"memh($Rs32+#$Ii) = #$II", 24667tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel { 24668let Inst{31-21} = 0b00111100001; 24669let addrMode = BaseImmOffset; 24670let accessSize = HalfWordAccess; 24671let mayStore = 1; 24672let BaseOpcode = "S4_storeirh_io"; 24673let CextOpcode = "S2_storerh"; 24674let InputType = "imm"; 24675let isPredicable = 1; 24676let isExtendable = 1; 24677let opExtendable = 2; 24678let isExtentSigned = 1; 24679let opExtentBits = 8; 24680let opExtentAlign = 0; 24681} 24682def S4_storeirh_zomap : HInst< 24683(outs), 24684(ins IntRegs:$Rs32, s8_0Imm:$II), 24685"memh($Rs32) = #$II", 24686tc_7c31e19a, TypeMAPPING> { 24687let isPseudo = 1; 24688let isCodeGenOnly = 1; 24689} 24690def S4_storeirhf_io : HInst< 24691(outs), 24692(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24693"if (!$Pv4) memh($Rs32+#$Ii) = #$II", 24694tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24695let Inst{31-21} = 0b00111000101; 24696let isPredicated = 1; 24697let isPredicatedFalse = 1; 24698let addrMode = BaseImmOffset; 24699let accessSize = HalfWordAccess; 24700let mayStore = 1; 24701let BaseOpcode = "S4_storeirh_io"; 24702let CextOpcode = "S2_storerh"; 24703let InputType = "imm"; 24704let isExtendable = 1; 24705let opExtendable = 3; 24706let isExtentSigned = 1; 24707let opExtentBits = 6; 24708let opExtentAlign = 0; 24709} 24710def S4_storeirhf_zomap : HInst< 24711(outs), 24712(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24713"if (!$Pv4) memh($Rs32) = #$II", 24714tc_d03278fd, TypeMAPPING> { 24715let isPseudo = 1; 24716let isCodeGenOnly = 1; 24717} 24718def S4_storeirhfnew_io : HInst< 24719(outs), 24720(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24721"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II", 24722tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24723let Inst{31-21} = 0b00111001101; 24724let isPredicated = 1; 24725let isPredicatedFalse = 1; 24726let addrMode = BaseImmOffset; 24727let accessSize = HalfWordAccess; 24728let isPredicatedNew = 1; 24729let mayStore = 1; 24730let BaseOpcode = "S4_storeirh_io"; 24731let CextOpcode = "S2_storerh"; 24732let InputType = "imm"; 24733let isExtendable = 1; 24734let opExtendable = 3; 24735let isExtentSigned = 1; 24736let opExtentBits = 6; 24737let opExtentAlign = 0; 24738} 24739def S4_storeirhfnew_zomap : HInst< 24740(outs), 24741(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24742"if (!$Pv4.new) memh($Rs32) = #$II", 24743tc_65cbd974, TypeMAPPING> { 24744let isPseudo = 1; 24745let isCodeGenOnly = 1; 24746} 24747def S4_storeirht_io : HInst< 24748(outs), 24749(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24750"if ($Pv4) memh($Rs32+#$Ii) = #$II", 24751tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24752let Inst{31-21} = 0b00111000001; 24753let isPredicated = 1; 24754let addrMode = BaseImmOffset; 24755let accessSize = HalfWordAccess; 24756let mayStore = 1; 24757let BaseOpcode = "S4_storeirh_io"; 24758let CextOpcode = "S2_storerh"; 24759let InputType = "imm"; 24760let isExtendable = 1; 24761let opExtendable = 3; 24762let isExtentSigned = 1; 24763let opExtentBits = 6; 24764let opExtentAlign = 0; 24765} 24766def S4_storeirht_zomap : HInst< 24767(outs), 24768(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24769"if ($Pv4) memh($Rs32) = #$II", 24770tc_d03278fd, TypeMAPPING> { 24771let isPseudo = 1; 24772let isCodeGenOnly = 1; 24773} 24774def S4_storeirhtnew_io : HInst< 24775(outs), 24776(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24777"if ($Pv4.new) memh($Rs32+#$Ii) = #$II", 24778tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24779let Inst{31-21} = 0b00111001001; 24780let isPredicated = 1; 24781let addrMode = BaseImmOffset; 24782let accessSize = HalfWordAccess; 24783let isPredicatedNew = 1; 24784let mayStore = 1; 24785let BaseOpcode = "S4_storeirh_io"; 24786let CextOpcode = "S2_storerh"; 24787let InputType = "imm"; 24788let isExtendable = 1; 24789let opExtendable = 3; 24790let isExtentSigned = 1; 24791let opExtentBits = 6; 24792let opExtentAlign = 0; 24793} 24794def S4_storeirhtnew_zomap : HInst< 24795(outs), 24796(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24797"if ($Pv4.new) memh($Rs32) = #$II", 24798tc_65cbd974, TypeMAPPING> { 24799let isPseudo = 1; 24800let isCodeGenOnly = 1; 24801} 24802def S4_storeiri_io : HInst< 24803(outs), 24804(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24805"memw($Rs32+#$Ii) = #$II", 24806tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel { 24807let Inst{31-21} = 0b00111100010; 24808let addrMode = BaseImmOffset; 24809let accessSize = WordAccess; 24810let mayStore = 1; 24811let BaseOpcode = "S4_storeiri_io"; 24812let CextOpcode = "S2_storeri"; 24813let InputType = "imm"; 24814let isPredicable = 1; 24815let isExtendable = 1; 24816let opExtendable = 2; 24817let isExtentSigned = 1; 24818let opExtentBits = 8; 24819let opExtentAlign = 0; 24820} 24821def S4_storeiri_zomap : HInst< 24822(outs), 24823(ins IntRegs:$Rs32, s8_0Imm:$II), 24824"memw($Rs32) = #$II", 24825tc_7c31e19a, TypeMAPPING> { 24826let isPseudo = 1; 24827let isCodeGenOnly = 1; 24828} 24829def S4_storeirif_io : HInst< 24830(outs), 24831(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24832"if (!$Pv4) memw($Rs32+#$Ii) = #$II", 24833tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 24834let Inst{31-21} = 0b00111000110; 24835let isPredicated = 1; 24836let isPredicatedFalse = 1; 24837let addrMode = BaseImmOffset; 24838let accessSize = WordAccess; 24839let mayStore = 1; 24840let BaseOpcode = "S4_storeiri_io"; 24841let CextOpcode = "S2_storeri"; 24842let InputType = "imm"; 24843let isExtendable = 1; 24844let opExtendable = 3; 24845let isExtentSigned = 1; 24846let opExtentBits = 6; 24847let opExtentAlign = 0; 24848} 24849def S4_storeirif_zomap : HInst< 24850(outs), 24851(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24852"if (!$Pv4) memw($Rs32) = #$II", 24853tc_d03278fd, TypeMAPPING> { 24854let isPseudo = 1; 24855let isCodeGenOnly = 1; 24856} 24857def S4_storeirifnew_io : HInst< 24858(outs), 24859(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24860"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II", 24861tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 24862let Inst{31-21} = 0b00111001110; 24863let isPredicated = 1; 24864let isPredicatedFalse = 1; 24865let addrMode = BaseImmOffset; 24866let accessSize = WordAccess; 24867let isPredicatedNew = 1; 24868let mayStore = 1; 24869let BaseOpcode = "S4_storeiri_io"; 24870let CextOpcode = "S2_storeri"; 24871let InputType = "imm"; 24872let isExtendable = 1; 24873let opExtendable = 3; 24874let isExtentSigned = 1; 24875let opExtentBits = 6; 24876let opExtentAlign = 0; 24877} 24878def S4_storeirifnew_zomap : HInst< 24879(outs), 24880(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24881"if (!$Pv4.new) memw($Rs32) = #$II", 24882tc_65cbd974, TypeMAPPING> { 24883let isPseudo = 1; 24884let isCodeGenOnly = 1; 24885} 24886def S4_storeirit_io : HInst< 24887(outs), 24888(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24889"if ($Pv4) memw($Rs32+#$Ii) = #$II", 24890tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 24891let Inst{31-21} = 0b00111000010; 24892let isPredicated = 1; 24893let addrMode = BaseImmOffset; 24894let accessSize = WordAccess; 24895let mayStore = 1; 24896let BaseOpcode = "S4_storeiri_io"; 24897let CextOpcode = "S2_storeri"; 24898let InputType = "imm"; 24899let isExtendable = 1; 24900let opExtendable = 3; 24901let isExtentSigned = 1; 24902let opExtentBits = 6; 24903let opExtentAlign = 0; 24904} 24905def S4_storeirit_zomap : HInst< 24906(outs), 24907(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24908"if ($Pv4) memw($Rs32) = #$II", 24909tc_d03278fd, TypeMAPPING> { 24910let isPseudo = 1; 24911let isCodeGenOnly = 1; 24912} 24913def S4_storeiritnew_io : HInst< 24914(outs), 24915(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24916"if ($Pv4.new) memw($Rs32+#$Ii) = #$II", 24917tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 24918let Inst{31-21} = 0b00111001010; 24919let isPredicated = 1; 24920let addrMode = BaseImmOffset; 24921let accessSize = WordAccess; 24922let isPredicatedNew = 1; 24923let mayStore = 1; 24924let BaseOpcode = "S4_storeiri_io"; 24925let CextOpcode = "S2_storeri"; 24926let InputType = "imm"; 24927let isExtendable = 1; 24928let opExtendable = 3; 24929let isExtentSigned = 1; 24930let opExtentBits = 6; 24931let opExtentAlign = 0; 24932} 24933def S4_storeiritnew_zomap : HInst< 24934(outs), 24935(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24936"if ($Pv4.new) memw($Rs32) = #$II", 24937tc_65cbd974, TypeMAPPING> { 24938let isPseudo = 1; 24939let isCodeGenOnly = 1; 24940} 24941def S4_storerb_ap : HInst< 24942(outs IntRegs:$Re32), 24943(ins u32_0Imm:$II, IntRegs:$Rt32), 24944"memb($Re32=#$II) = $Rt32", 24945tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 24946let Inst{7-6} = 0b10; 24947let Inst{13-13} = 0b0; 24948let Inst{31-21} = 0b10101011000; 24949let addrMode = AbsoluteSet; 24950let accessSize = ByteAccess; 24951let isExtended = 1; 24952let mayStore = 1; 24953let BaseOpcode = "S2_storerb_ap"; 24954let isNVStorable = 1; 24955let DecoderNamespace = "MustExtend"; 24956let isExtendable = 1; 24957let opExtendable = 1; 24958let isExtentSigned = 0; 24959let opExtentBits = 6; 24960let opExtentAlign = 0; 24961} 24962def S4_storerb_rr : HInst< 24963(outs), 24964(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24965"memb($Rs32+$Ru32<<#$Ii) = $Rt32", 24966tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 24967let Inst{6-5} = 0b00; 24968let Inst{31-21} = 0b00111011000; 24969let addrMode = BaseRegOffset; 24970let accessSize = ByteAccess; 24971let mayStore = 1; 24972let BaseOpcode = "S4_storerb_rr"; 24973let CextOpcode = "S2_storerb"; 24974let InputType = "reg"; 24975let isNVStorable = 1; 24976let isPredicable = 1; 24977} 24978def S4_storerb_ur : HInst< 24979(outs), 24980(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 24981"memb($Ru32<<#$Ii+#$II) = $Rt32", 24982tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 24983let Inst{7-7} = 0b1; 24984let Inst{31-21} = 0b10101101000; 24985let addrMode = BaseLongOffset; 24986let accessSize = ByteAccess; 24987let isExtended = 1; 24988let mayStore = 1; 24989let BaseOpcode = "S4_storerb_ur"; 24990let CextOpcode = "S2_storerb"; 24991let InputType = "imm"; 24992let isNVStorable = 1; 24993let DecoderNamespace = "MustExtend"; 24994let isExtendable = 1; 24995let opExtendable = 2; 24996let isExtentSigned = 0; 24997let opExtentBits = 6; 24998let opExtentAlign = 0; 24999} 25000def S4_storerbnew_ap : HInst< 25001(outs IntRegs:$Re32), 25002(ins u32_0Imm:$II, IntRegs:$Nt8), 25003"memb($Re32=#$II) = $Nt8.new", 25004tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25005let Inst{7-6} = 0b10; 25006let Inst{13-11} = 0b000; 25007let Inst{31-21} = 0b10101011101; 25008let addrMode = AbsoluteSet; 25009let accessSize = ByteAccess; 25010let isNVStore = 1; 25011let isNewValue = 1; 25012let isExtended = 1; 25013let isRestrictNoSlot1Store = 1; 25014let mayStore = 1; 25015let BaseOpcode = "S2_storerb_ap"; 25016let DecoderNamespace = "MustExtend"; 25017let isExtendable = 1; 25018let opExtendable = 1; 25019let isExtentSigned = 0; 25020let opExtentBits = 6; 25021let opExtentAlign = 0; 25022let opNewValue = 2; 25023} 25024def S4_storerbnew_rr : HInst< 25025(outs), 25026(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25027"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25028tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25029let Inst{6-3} = 0b0000; 25030let Inst{31-21} = 0b00111011101; 25031let addrMode = BaseRegOffset; 25032let accessSize = ByteAccess; 25033let isNVStore = 1; 25034let isNewValue = 1; 25035let isRestrictNoSlot1Store = 1; 25036let mayStore = 1; 25037let BaseOpcode = "S4_storerb_rr"; 25038let CextOpcode = "S2_storerb"; 25039let InputType = "reg"; 25040let isPredicable = 1; 25041let opNewValue = 3; 25042} 25043def S4_storerbnew_ur : HInst< 25044(outs), 25045(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25046"memb($Ru32<<#$Ii+#$II) = $Nt8.new", 25047tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25048let Inst{7-7} = 0b1; 25049let Inst{12-11} = 0b00; 25050let Inst{31-21} = 0b10101101101; 25051let addrMode = BaseLongOffset; 25052let accessSize = ByteAccess; 25053let isNVStore = 1; 25054let isNewValue = 1; 25055let isExtended = 1; 25056let isRestrictNoSlot1Store = 1; 25057let mayStore = 1; 25058let BaseOpcode = "S4_storerb_ur"; 25059let CextOpcode = "S2_storerb"; 25060let DecoderNamespace = "MustExtend"; 25061let isExtendable = 1; 25062let opExtendable = 2; 25063let isExtentSigned = 0; 25064let opExtentBits = 6; 25065let opExtentAlign = 0; 25066let opNewValue = 3; 25067} 25068def S4_storerd_ap : HInst< 25069(outs IntRegs:$Re32), 25070(ins u32_0Imm:$II, DoubleRegs:$Rtt32), 25071"memd($Re32=#$II) = $Rtt32", 25072tc_bb07f2c5, TypeST>, Enc_c7a204 { 25073let Inst{7-6} = 0b10; 25074let Inst{13-13} = 0b0; 25075let Inst{31-21} = 0b10101011110; 25076let addrMode = AbsoluteSet; 25077let accessSize = DoubleWordAccess; 25078let isExtended = 1; 25079let mayStore = 1; 25080let BaseOpcode = "S4_storerd_ap"; 25081let DecoderNamespace = "MustExtend"; 25082let isExtendable = 1; 25083let opExtendable = 1; 25084let isExtentSigned = 0; 25085let opExtentBits = 6; 25086let opExtentAlign = 0; 25087} 25088def S4_storerd_rr : HInst< 25089(outs), 25090(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 25091"memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 25092tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { 25093let Inst{6-5} = 0b00; 25094let Inst{31-21} = 0b00111011110; 25095let addrMode = BaseRegOffset; 25096let accessSize = DoubleWordAccess; 25097let mayStore = 1; 25098let BaseOpcode = "S2_storerd_rr"; 25099let CextOpcode = "S2_storerd"; 25100let InputType = "reg"; 25101let isPredicable = 1; 25102} 25103def S4_storerd_ur : HInst< 25104(outs), 25105(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32), 25106"memd($Ru32<<#$Ii+#$II) = $Rtt32", 25107tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { 25108let Inst{7-7} = 0b1; 25109let Inst{31-21} = 0b10101101110; 25110let addrMode = BaseLongOffset; 25111let accessSize = DoubleWordAccess; 25112let isExtended = 1; 25113let mayStore = 1; 25114let BaseOpcode = "S2_storerd_ur"; 25115let CextOpcode = "S2_storerd"; 25116let InputType = "imm"; 25117let DecoderNamespace = "MustExtend"; 25118let isExtendable = 1; 25119let opExtendable = 2; 25120let isExtentSigned = 0; 25121let opExtentBits = 6; 25122let opExtentAlign = 0; 25123} 25124def S4_storerf_ap : HInst< 25125(outs IntRegs:$Re32), 25126(ins u32_0Imm:$II, IntRegs:$Rt32), 25127"memh($Re32=#$II) = $Rt32.h", 25128tc_bb07f2c5, TypeST>, Enc_8bcba4 { 25129let Inst{7-6} = 0b10; 25130let Inst{13-13} = 0b0; 25131let Inst{31-21} = 0b10101011011; 25132let addrMode = AbsoluteSet; 25133let accessSize = HalfWordAccess; 25134let isExtended = 1; 25135let mayStore = 1; 25136let BaseOpcode = "S4_storerf_ap"; 25137let DecoderNamespace = "MustExtend"; 25138let isExtendable = 1; 25139let opExtendable = 1; 25140let isExtentSigned = 0; 25141let opExtentBits = 6; 25142let opExtentAlign = 0; 25143} 25144def S4_storerf_rr : HInst< 25145(outs), 25146(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25147"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 25148tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25149let Inst{6-5} = 0b00; 25150let Inst{31-21} = 0b00111011011; 25151let addrMode = BaseRegOffset; 25152let accessSize = HalfWordAccess; 25153let mayStore = 1; 25154let BaseOpcode = "S4_storerf_rr"; 25155let CextOpcode = "S2_storerf"; 25156let InputType = "reg"; 25157let isPredicable = 1; 25158} 25159def S4_storerf_ur : HInst< 25160(outs), 25161(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25162"memh($Ru32<<#$Ii+#$II) = $Rt32.h", 25163tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25164let Inst{7-7} = 0b1; 25165let Inst{31-21} = 0b10101101011; 25166let addrMode = BaseLongOffset; 25167let accessSize = HalfWordAccess; 25168let isExtended = 1; 25169let mayStore = 1; 25170let BaseOpcode = "S4_storerf_rr"; 25171let CextOpcode = "S2_storerf"; 25172let InputType = "imm"; 25173let DecoderNamespace = "MustExtend"; 25174let isExtendable = 1; 25175let opExtendable = 2; 25176let isExtentSigned = 0; 25177let opExtentBits = 6; 25178let opExtentAlign = 0; 25179} 25180def S4_storerh_ap : HInst< 25181(outs IntRegs:$Re32), 25182(ins u32_0Imm:$II, IntRegs:$Rt32), 25183"memh($Re32=#$II) = $Rt32", 25184tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25185let Inst{7-6} = 0b10; 25186let Inst{13-13} = 0b0; 25187let Inst{31-21} = 0b10101011010; 25188let addrMode = AbsoluteSet; 25189let accessSize = HalfWordAccess; 25190let isExtended = 1; 25191let mayStore = 1; 25192let BaseOpcode = "S2_storerh_ap"; 25193let isNVStorable = 1; 25194let DecoderNamespace = "MustExtend"; 25195let isExtendable = 1; 25196let opExtendable = 1; 25197let isExtentSigned = 0; 25198let opExtentBits = 6; 25199let opExtentAlign = 0; 25200} 25201def S4_storerh_rr : HInst< 25202(outs), 25203(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25204"memh($Rs32+$Ru32<<#$Ii) = $Rt32", 25205tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25206let Inst{6-5} = 0b00; 25207let Inst{31-21} = 0b00111011010; 25208let addrMode = BaseRegOffset; 25209let accessSize = HalfWordAccess; 25210let mayStore = 1; 25211let BaseOpcode = "S2_storerh_rr"; 25212let CextOpcode = "S2_storerh"; 25213let InputType = "reg"; 25214let isNVStorable = 1; 25215let isPredicable = 1; 25216} 25217def S4_storerh_ur : HInst< 25218(outs), 25219(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25220"memh($Ru32<<#$Ii+#$II) = $Rt32", 25221tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25222let Inst{7-7} = 0b1; 25223let Inst{31-21} = 0b10101101010; 25224let addrMode = BaseLongOffset; 25225let accessSize = HalfWordAccess; 25226let isExtended = 1; 25227let mayStore = 1; 25228let BaseOpcode = "S2_storerh_ur"; 25229let CextOpcode = "S2_storerh"; 25230let InputType = "imm"; 25231let isNVStorable = 1; 25232let DecoderNamespace = "MustExtend"; 25233let isExtendable = 1; 25234let opExtendable = 2; 25235let isExtentSigned = 0; 25236let opExtentBits = 6; 25237let opExtentAlign = 0; 25238} 25239def S4_storerhnew_ap : HInst< 25240(outs IntRegs:$Re32), 25241(ins u32_0Imm:$II, IntRegs:$Nt8), 25242"memh($Re32=#$II) = $Nt8.new", 25243tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25244let Inst{7-6} = 0b10; 25245let Inst{13-11} = 0b001; 25246let Inst{31-21} = 0b10101011101; 25247let addrMode = AbsoluteSet; 25248let accessSize = HalfWordAccess; 25249let isNVStore = 1; 25250let isNewValue = 1; 25251let isExtended = 1; 25252let isRestrictNoSlot1Store = 1; 25253let mayStore = 1; 25254let BaseOpcode = "S2_storerh_ap"; 25255let DecoderNamespace = "MustExtend"; 25256let isExtendable = 1; 25257let opExtendable = 1; 25258let isExtentSigned = 0; 25259let opExtentBits = 6; 25260let opExtentAlign = 0; 25261let opNewValue = 2; 25262} 25263def S4_storerhnew_rr : HInst< 25264(outs), 25265(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25266"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25267tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25268let Inst{6-3} = 0b0001; 25269let Inst{31-21} = 0b00111011101; 25270let addrMode = BaseRegOffset; 25271let accessSize = HalfWordAccess; 25272let isNVStore = 1; 25273let isNewValue = 1; 25274let isRestrictNoSlot1Store = 1; 25275let mayStore = 1; 25276let BaseOpcode = "S2_storerh_rr"; 25277let CextOpcode = "S2_storerh"; 25278let InputType = "reg"; 25279let isPredicable = 1; 25280let opNewValue = 3; 25281} 25282def S4_storerhnew_ur : HInst< 25283(outs), 25284(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25285"memh($Ru32<<#$Ii+#$II) = $Nt8.new", 25286tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25287let Inst{7-7} = 0b1; 25288let Inst{12-11} = 0b01; 25289let Inst{31-21} = 0b10101101101; 25290let addrMode = BaseLongOffset; 25291let accessSize = HalfWordAccess; 25292let isNVStore = 1; 25293let isNewValue = 1; 25294let isExtended = 1; 25295let isRestrictNoSlot1Store = 1; 25296let mayStore = 1; 25297let BaseOpcode = "S2_storerh_ur"; 25298let CextOpcode = "S2_storerh"; 25299let DecoderNamespace = "MustExtend"; 25300let isExtendable = 1; 25301let opExtendable = 2; 25302let isExtentSigned = 0; 25303let opExtentBits = 6; 25304let opExtentAlign = 0; 25305let opNewValue = 3; 25306} 25307def S4_storeri_ap : HInst< 25308(outs IntRegs:$Re32), 25309(ins u32_0Imm:$II, IntRegs:$Rt32), 25310"memw($Re32=#$II) = $Rt32", 25311tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25312let Inst{7-6} = 0b10; 25313let Inst{13-13} = 0b0; 25314let Inst{31-21} = 0b10101011100; 25315let addrMode = AbsoluteSet; 25316let accessSize = WordAccess; 25317let isExtended = 1; 25318let mayStore = 1; 25319let BaseOpcode = "S2_storeri_ap"; 25320let isNVStorable = 1; 25321let DecoderNamespace = "MustExtend"; 25322let isExtendable = 1; 25323let opExtendable = 1; 25324let isExtentSigned = 0; 25325let opExtentBits = 6; 25326let opExtentAlign = 0; 25327} 25328def S4_storeri_rr : HInst< 25329(outs), 25330(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25331"memw($Rs32+$Ru32<<#$Ii) = $Rt32", 25332tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25333let Inst{6-5} = 0b00; 25334let Inst{31-21} = 0b00111011100; 25335let addrMode = BaseRegOffset; 25336let accessSize = WordAccess; 25337let mayStore = 1; 25338let BaseOpcode = "S2_storeri_rr"; 25339let CextOpcode = "S2_storeri"; 25340let InputType = "reg"; 25341let isNVStorable = 1; 25342let isPredicable = 1; 25343} 25344def S4_storeri_ur : HInst< 25345(outs), 25346(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25347"memw($Ru32<<#$Ii+#$II) = $Rt32", 25348tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25349let Inst{7-7} = 0b1; 25350let Inst{31-21} = 0b10101101100; 25351let addrMode = BaseLongOffset; 25352let accessSize = WordAccess; 25353let isExtended = 1; 25354let mayStore = 1; 25355let BaseOpcode = "S2_storeri_ur"; 25356let CextOpcode = "S2_storeri"; 25357let InputType = "imm"; 25358let isNVStorable = 1; 25359let DecoderNamespace = "MustExtend"; 25360let isExtendable = 1; 25361let opExtendable = 2; 25362let isExtentSigned = 0; 25363let opExtentBits = 6; 25364let opExtentAlign = 0; 25365} 25366def S4_storerinew_ap : HInst< 25367(outs IntRegs:$Re32), 25368(ins u32_0Imm:$II, IntRegs:$Nt8), 25369"memw($Re32=#$II) = $Nt8.new", 25370tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25371let Inst{7-6} = 0b10; 25372let Inst{13-11} = 0b010; 25373let Inst{31-21} = 0b10101011101; 25374let addrMode = AbsoluteSet; 25375let accessSize = WordAccess; 25376let isNVStore = 1; 25377let isNewValue = 1; 25378let isExtended = 1; 25379let isRestrictNoSlot1Store = 1; 25380let mayStore = 1; 25381let BaseOpcode = "S2_storeri_ap"; 25382let DecoderNamespace = "MustExtend"; 25383let isExtendable = 1; 25384let opExtendable = 1; 25385let isExtentSigned = 0; 25386let opExtentBits = 6; 25387let opExtentAlign = 0; 25388let opNewValue = 2; 25389} 25390def S4_storerinew_rr : HInst< 25391(outs), 25392(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25393"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25394tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25395let Inst{6-3} = 0b0010; 25396let Inst{31-21} = 0b00111011101; 25397let addrMode = BaseRegOffset; 25398let accessSize = WordAccess; 25399let isNVStore = 1; 25400let isNewValue = 1; 25401let isRestrictNoSlot1Store = 1; 25402let mayStore = 1; 25403let BaseOpcode = "S2_storeri_rr"; 25404let CextOpcode = "S2_storeri"; 25405let InputType = "reg"; 25406let isPredicable = 1; 25407let opNewValue = 3; 25408} 25409def S4_storerinew_ur : HInst< 25410(outs), 25411(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25412"memw($Ru32<<#$Ii+#$II) = $Nt8.new", 25413tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25414let Inst{7-7} = 0b1; 25415let Inst{12-11} = 0b10; 25416let Inst{31-21} = 0b10101101101; 25417let addrMode = BaseLongOffset; 25418let accessSize = WordAccess; 25419let isNVStore = 1; 25420let isNewValue = 1; 25421let isExtended = 1; 25422let isRestrictNoSlot1Store = 1; 25423let mayStore = 1; 25424let BaseOpcode = "S2_storeri_ur"; 25425let CextOpcode = "S2_storeri"; 25426let DecoderNamespace = "MustExtend"; 25427let isExtendable = 1; 25428let opExtendable = 2; 25429let isExtentSigned = 0; 25430let opExtentBits = 6; 25431let opExtentAlign = 0; 25432let opNewValue = 3; 25433} 25434def S4_subaddi : HInst< 25435(outs IntRegs:$Rd32), 25436(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32), 25437"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))", 25438tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 25439let Inst{31-23} = 0b110110111; 25440let hasNewValue = 1; 25441let opNewValue = 0; 25442let prefersSlot3 = 1; 25443let isExtendable = 1; 25444let opExtendable = 2; 25445let isExtentSigned = 1; 25446let opExtentBits = 6; 25447let opExtentAlign = 0; 25448} 25449def S4_subi_asl_ri : HInst< 25450(outs IntRegs:$Rx32), 25451(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25452"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))", 25453tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25454let Inst{2-0} = 0b110; 25455let Inst{4-4} = 0b0; 25456let Inst{31-24} = 0b11011110; 25457let hasNewValue = 1; 25458let opNewValue = 0; 25459let prefersSlot3 = 1; 25460let isExtendable = 1; 25461let opExtendable = 1; 25462let isExtentSigned = 0; 25463let opExtentBits = 8; 25464let opExtentAlign = 0; 25465let Constraints = "$Rx32 = $Rx32in"; 25466} 25467def S4_subi_lsr_ri : HInst< 25468(outs IntRegs:$Rx32), 25469(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25470"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))", 25471tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25472let Inst{2-0} = 0b110; 25473let Inst{4-4} = 0b1; 25474let Inst{31-24} = 0b11011110; 25475let hasNewValue = 1; 25476let opNewValue = 0; 25477let prefersSlot3 = 1; 25478let isExtendable = 1; 25479let opExtendable = 1; 25480let isExtentSigned = 0; 25481let opExtentBits = 8; 25482let opExtentAlign = 0; 25483let Constraints = "$Rx32 = $Rx32in"; 25484} 25485def S4_vrcrotate : HInst< 25486(outs DoubleRegs:$Rdd32), 25487(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25488"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)", 25489tc_f0cdeccf, TypeS_3op>, Enc_645d54 { 25490let Inst{7-6} = 0b11; 25491let Inst{31-21} = 0b11000011110; 25492let prefersSlot3 = 1; 25493} 25494def S4_vrcrotate_acc : HInst< 25495(outs DoubleRegs:$Rxx32), 25496(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25497"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)", 25498tc_a38c45dc, TypeS_3op>, Enc_b72622 { 25499let Inst{7-6} = 0b00; 25500let Inst{31-21} = 0b11001011101; 25501let prefersSlot3 = 1; 25502let Constraints = "$Rxx32 = $Rxx32in"; 25503} 25504def S4_vxaddsubh : HInst< 25505(outs DoubleRegs:$Rdd32), 25506(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25507"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat", 25508tc_8a825db2, TypeS_3op>, Enc_a56825 { 25509let Inst{7-5} = 0b100; 25510let Inst{13-13} = 0b0; 25511let Inst{31-21} = 0b11000001010; 25512let prefersSlot3 = 1; 25513let Defs = [USR_OVF]; 25514} 25515def S4_vxaddsubhr : HInst< 25516(outs DoubleRegs:$Rdd32), 25517(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25518"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat", 25519tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25520let Inst{7-5} = 0b000; 25521let Inst{13-13} = 0b0; 25522let Inst{31-21} = 0b11000001110; 25523let prefersSlot3 = 1; 25524let Defs = [USR_OVF]; 25525} 25526def S4_vxaddsubw : HInst< 25527(outs DoubleRegs:$Rdd32), 25528(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25529"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat", 25530tc_8a825db2, TypeS_3op>, Enc_a56825 { 25531let Inst{7-5} = 0b000; 25532let Inst{13-13} = 0b0; 25533let Inst{31-21} = 0b11000001010; 25534let prefersSlot3 = 1; 25535let Defs = [USR_OVF]; 25536} 25537def S4_vxsubaddh : HInst< 25538(outs DoubleRegs:$Rdd32), 25539(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25540"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat", 25541tc_8a825db2, TypeS_3op>, Enc_a56825 { 25542let Inst{7-5} = 0b110; 25543let Inst{13-13} = 0b0; 25544let Inst{31-21} = 0b11000001010; 25545let prefersSlot3 = 1; 25546let Defs = [USR_OVF]; 25547} 25548def S4_vxsubaddhr : HInst< 25549(outs DoubleRegs:$Rdd32), 25550(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25551"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat", 25552tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25553let Inst{7-5} = 0b010; 25554let Inst{13-13} = 0b0; 25555let Inst{31-21} = 0b11000001110; 25556let prefersSlot3 = 1; 25557let Defs = [USR_OVF]; 25558} 25559def S4_vxsubaddw : HInst< 25560(outs DoubleRegs:$Rdd32), 25561(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25562"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat", 25563tc_8a825db2, TypeS_3op>, Enc_a56825 { 25564let Inst{7-5} = 0b010; 25565let Inst{13-13} = 0b0; 25566let Inst{31-21} = 0b11000001010; 25567let prefersSlot3 = 1; 25568let Defs = [USR_OVF]; 25569} 25570def S5_asrhub_rnd_sat : HInst< 25571(outs IntRegs:$Rd32), 25572(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25573"$Rd32 = vasrhub($Rss32,#$Ii):raw", 25574tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25575let Inst{7-5} = 0b100; 25576let Inst{13-12} = 0b00; 25577let Inst{31-21} = 0b10001000011; 25578let hasNewValue = 1; 25579let opNewValue = 0; 25580let prefersSlot3 = 1; 25581let Defs = [USR_OVF]; 25582} 25583def S5_asrhub_rnd_sat_goodsyntax : HInst< 25584(outs IntRegs:$Rd32), 25585(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25586"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat", 25587tc_0dfac0a7, TypeS_2op> { 25588let hasNewValue = 1; 25589let opNewValue = 0; 25590let isPseudo = 1; 25591} 25592def S5_asrhub_sat : HInst< 25593(outs IntRegs:$Rd32), 25594(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25595"$Rd32 = vasrhub($Rss32,#$Ii):sat", 25596tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25597let Inst{7-5} = 0b101; 25598let Inst{13-12} = 0b00; 25599let Inst{31-21} = 0b10001000011; 25600let hasNewValue = 1; 25601let opNewValue = 0; 25602let prefersSlot3 = 1; 25603let Defs = [USR_OVF]; 25604} 25605def S5_popcountp : HInst< 25606(outs IntRegs:$Rd32), 25607(ins DoubleRegs:$Rss32), 25608"$Rd32 = popcount($Rss32)", 25609tc_d3632d88, TypeS_2op>, Enc_90cd8b { 25610let Inst{13-5} = 0b000000011; 25611let Inst{31-21} = 0b10001000011; 25612let hasNewValue = 1; 25613let opNewValue = 0; 25614let prefersSlot3 = 1; 25615} 25616def S5_vasrhrnd : HInst< 25617(outs DoubleRegs:$Rdd32), 25618(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25619"$Rdd32 = vasrh($Rss32,#$Ii):raw", 25620tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 { 25621let Inst{7-5} = 0b000; 25622let Inst{13-12} = 0b00; 25623let Inst{31-21} = 0b10000000001; 25624let prefersSlot3 = 1; 25625} 25626def S5_vasrhrnd_goodsyntax : HInst< 25627(outs DoubleRegs:$Rdd32), 25628(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25629"$Rdd32 = vasrh($Rss32,#$Ii):rnd", 25630tc_0dfac0a7, TypeS_2op> { 25631let isPseudo = 1; 25632} 25633def S6_allocframe_to_raw : HInst< 25634(outs), 25635(ins u11_3Imm:$Ii), 25636"allocframe(#$Ii)", 25637tc_934753bb, TypeMAPPING>, Requires<[HasV65]> { 25638let isPseudo = 1; 25639let isCodeGenOnly = 1; 25640} 25641def S6_rol_i_p : HInst< 25642(outs DoubleRegs:$Rdd32), 25643(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 25644"$Rdd32 = rol($Rss32,#$Ii)", 25645tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> { 25646let Inst{7-5} = 0b011; 25647let Inst{31-21} = 0b10000000000; 25648} 25649def S6_rol_i_p_acc : HInst< 25650(outs DoubleRegs:$Rxx32), 25651(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25652"$Rxx32 += rol($Rss32,#$Ii)", 25653tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25654let Inst{7-5} = 0b111; 25655let Inst{31-21} = 0b10000010000; 25656let prefersSlot3 = 1; 25657let Constraints = "$Rxx32 = $Rxx32in"; 25658} 25659def S6_rol_i_p_and : HInst< 25660(outs DoubleRegs:$Rxx32), 25661(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25662"$Rxx32 &= rol($Rss32,#$Ii)", 25663tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25664let Inst{7-5} = 0b011; 25665let Inst{31-21} = 0b10000010010; 25666let prefersSlot3 = 1; 25667let Constraints = "$Rxx32 = $Rxx32in"; 25668} 25669def S6_rol_i_p_nac : HInst< 25670(outs DoubleRegs:$Rxx32), 25671(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25672"$Rxx32 -= rol($Rss32,#$Ii)", 25673tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25674let Inst{7-5} = 0b011; 25675let Inst{31-21} = 0b10000010000; 25676let prefersSlot3 = 1; 25677let Constraints = "$Rxx32 = $Rxx32in"; 25678} 25679def S6_rol_i_p_or : HInst< 25680(outs DoubleRegs:$Rxx32), 25681(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25682"$Rxx32 |= rol($Rss32,#$Ii)", 25683tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25684let Inst{7-5} = 0b111; 25685let Inst{31-21} = 0b10000010010; 25686let prefersSlot3 = 1; 25687let Constraints = "$Rxx32 = $Rxx32in"; 25688} 25689def S6_rol_i_p_xacc : HInst< 25690(outs DoubleRegs:$Rxx32), 25691(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25692"$Rxx32 ^= rol($Rss32,#$Ii)", 25693tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25694let Inst{7-5} = 0b011; 25695let Inst{31-21} = 0b10000010100; 25696let prefersSlot3 = 1; 25697let Constraints = "$Rxx32 = $Rxx32in"; 25698} 25699def S6_rol_i_r : HInst< 25700(outs IntRegs:$Rd32), 25701(ins IntRegs:$Rs32, u5_0Imm:$Ii), 25702"$Rd32 = rol($Rs32,#$Ii)", 25703tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> { 25704let Inst{7-5} = 0b011; 25705let Inst{13-13} = 0b0; 25706let Inst{31-21} = 0b10001100000; 25707let hasNewValue = 1; 25708let opNewValue = 0; 25709} 25710def S6_rol_i_r_acc : HInst< 25711(outs IntRegs:$Rx32), 25712(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25713"$Rx32 += rol($Rs32,#$Ii)", 25714tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25715let Inst{7-5} = 0b111; 25716let Inst{13-13} = 0b0; 25717let Inst{31-21} = 0b10001110000; 25718let hasNewValue = 1; 25719let opNewValue = 0; 25720let prefersSlot3 = 1; 25721let Constraints = "$Rx32 = $Rx32in"; 25722} 25723def S6_rol_i_r_and : HInst< 25724(outs IntRegs:$Rx32), 25725(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25726"$Rx32 &= rol($Rs32,#$Ii)", 25727tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25728let Inst{7-5} = 0b011; 25729let Inst{13-13} = 0b0; 25730let Inst{31-21} = 0b10001110010; 25731let hasNewValue = 1; 25732let opNewValue = 0; 25733let prefersSlot3 = 1; 25734let Constraints = "$Rx32 = $Rx32in"; 25735} 25736def S6_rol_i_r_nac : HInst< 25737(outs IntRegs:$Rx32), 25738(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25739"$Rx32 -= rol($Rs32,#$Ii)", 25740tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25741let Inst{7-5} = 0b011; 25742let Inst{13-13} = 0b0; 25743let Inst{31-21} = 0b10001110000; 25744let hasNewValue = 1; 25745let opNewValue = 0; 25746let prefersSlot3 = 1; 25747let Constraints = "$Rx32 = $Rx32in"; 25748} 25749def S6_rol_i_r_or : HInst< 25750(outs IntRegs:$Rx32), 25751(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25752"$Rx32 |= rol($Rs32,#$Ii)", 25753tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25754let Inst{7-5} = 0b111; 25755let Inst{13-13} = 0b0; 25756let Inst{31-21} = 0b10001110010; 25757let hasNewValue = 1; 25758let opNewValue = 0; 25759let prefersSlot3 = 1; 25760let Constraints = "$Rx32 = $Rx32in"; 25761} 25762def S6_rol_i_r_xacc : HInst< 25763(outs IntRegs:$Rx32), 25764(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25765"$Rx32 ^= rol($Rs32,#$Ii)", 25766tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25767let Inst{7-5} = 0b011; 25768let Inst{13-13} = 0b0; 25769let Inst{31-21} = 0b10001110100; 25770let hasNewValue = 1; 25771let opNewValue = 0; 25772let prefersSlot3 = 1; 25773let Constraints = "$Rx32 = $Rx32in"; 25774} 25775def S6_vsplatrbp : HInst< 25776(outs DoubleRegs:$Rdd32), 25777(ins IntRegs:$Rs32), 25778"$Rdd32 = vsplatb($Rs32)", 25779tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> { 25780let Inst{13-5} = 0b000000100; 25781let Inst{31-21} = 0b10000100010; 25782} 25783def S6_vtrunehb_ppp : HInst< 25784(outs DoubleRegs:$Rdd32), 25785(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25786"$Rdd32 = vtrunehb($Rss32,$Rtt32)", 25787tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25788let Inst{7-5} = 0b011; 25789let Inst{13-13} = 0b0; 25790let Inst{31-21} = 0b11000001100; 25791} 25792def S6_vtrunohb_ppp : HInst< 25793(outs DoubleRegs:$Rdd32), 25794(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25795"$Rdd32 = vtrunohb($Rss32,$Rtt32)", 25796tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25797let Inst{7-5} = 0b101; 25798let Inst{13-13} = 0b0; 25799let Inst{31-21} = 0b11000001100; 25800} 25801def SA1_addi : HInst< 25802(outs GeneralSubRegs:$Rx16), 25803(ins IntRegs:$Rx16in, s32_0Imm:$Ii), 25804"$Rx16 = add($Rx16in,#$Ii)", 25805tc_5b347363, TypeSUBINSN>, Enc_93af4c { 25806let Inst{12-11} = 0b00; 25807let hasNewValue = 1; 25808let opNewValue = 0; 25809let AsmVariantName = "NonParsable"; 25810let DecoderNamespace = "SUBINSN_A"; 25811let isExtendable = 1; 25812let opExtendable = 2; 25813let isExtentSigned = 1; 25814let opExtentBits = 7; 25815let opExtentAlign = 0; 25816let Constraints = "$Rx16 = $Rx16in"; 25817} 25818def SA1_addrx : HInst< 25819(outs GeneralSubRegs:$Rx16), 25820(ins IntRegs:$Rx16in, GeneralSubRegs:$Rs16), 25821"$Rx16 = add($Rx16in,$Rs16)", 25822tc_5b347363, TypeSUBINSN>, Enc_0527db { 25823let Inst{12-8} = 0b11000; 25824let hasNewValue = 1; 25825let opNewValue = 0; 25826let AsmVariantName = "NonParsable"; 25827let DecoderNamespace = "SUBINSN_A"; 25828let Constraints = "$Rx16 = $Rx16in"; 25829} 25830def SA1_addsp : HInst< 25831(outs GeneralSubRegs:$Rd16), 25832(ins u6_2Imm:$Ii), 25833"$Rd16 = add(r29,#$Ii)", 25834tc_3d14a17b, TypeSUBINSN>, Enc_2df31d { 25835let Inst{12-10} = 0b011; 25836let hasNewValue = 1; 25837let opNewValue = 0; 25838let AsmVariantName = "NonParsable"; 25839let Uses = [R29]; 25840let DecoderNamespace = "SUBINSN_A"; 25841} 25842def SA1_and1 : HInst< 25843(outs GeneralSubRegs:$Rd16), 25844(ins GeneralSubRegs:$Rs16), 25845"$Rd16 = and($Rs16,#1)", 25846tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 25847let Inst{12-8} = 0b10010; 25848let hasNewValue = 1; 25849let opNewValue = 0; 25850let AsmVariantName = "NonParsable"; 25851let DecoderNamespace = "SUBINSN_A"; 25852} 25853def SA1_clrf : HInst< 25854(outs GeneralSubRegs:$Rd16), 25855(ins), 25856"if (!p0) $Rd16 = #0", 25857tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 25858let Inst{12-4} = 0b110100111; 25859let isPredicated = 1; 25860let isPredicatedFalse = 1; 25861let hasNewValue = 1; 25862let opNewValue = 0; 25863let AsmVariantName = "NonParsable"; 25864let Uses = [P0]; 25865let DecoderNamespace = "SUBINSN_A"; 25866} 25867def SA1_clrfnew : HInst< 25868(outs GeneralSubRegs:$Rd16), 25869(ins), 25870"if (!p0.new) $Rd16 = #0", 25871tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 25872let Inst{12-4} = 0b110100101; 25873let isPredicated = 1; 25874let isPredicatedFalse = 1; 25875let hasNewValue = 1; 25876let opNewValue = 0; 25877let AsmVariantName = "NonParsable"; 25878let isPredicatedNew = 1; 25879let Uses = [P0]; 25880let DecoderNamespace = "SUBINSN_A"; 25881} 25882def SA1_clrt : HInst< 25883(outs GeneralSubRegs:$Rd16), 25884(ins), 25885"if (p0) $Rd16 = #0", 25886tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 25887let Inst{12-4} = 0b110100110; 25888let isPredicated = 1; 25889let hasNewValue = 1; 25890let opNewValue = 0; 25891let AsmVariantName = "NonParsable"; 25892let Uses = [P0]; 25893let DecoderNamespace = "SUBINSN_A"; 25894} 25895def SA1_clrtnew : HInst< 25896(outs GeneralSubRegs:$Rd16), 25897(ins), 25898"if (p0.new) $Rd16 = #0", 25899tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 25900let Inst{12-4} = 0b110100100; 25901let isPredicated = 1; 25902let hasNewValue = 1; 25903let opNewValue = 0; 25904let AsmVariantName = "NonParsable"; 25905let isPredicatedNew = 1; 25906let Uses = [P0]; 25907let DecoderNamespace = "SUBINSN_A"; 25908} 25909def SA1_cmpeqi : HInst< 25910(outs), 25911(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii), 25912"p0 = cmp.eq($Rs16,#$Ii)", 25913tc_59a7822c, TypeSUBINSN>, Enc_63eaeb { 25914let Inst{3-2} = 0b00; 25915let Inst{12-8} = 0b11001; 25916let AsmVariantName = "NonParsable"; 25917let Defs = [P0]; 25918let DecoderNamespace = "SUBINSN_A"; 25919} 25920def SA1_combine0i : HInst< 25921(outs GeneralDoubleLow8Regs:$Rdd8), 25922(ins u2_0Imm:$Ii), 25923"$Rdd8 = combine(#0,#$Ii)", 25924tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 25925let Inst{4-3} = 0b00; 25926let Inst{12-7} = 0b111000; 25927let hasNewValue = 1; 25928let opNewValue = 0; 25929let AsmVariantName = "NonParsable"; 25930let DecoderNamespace = "SUBINSN_A"; 25931} 25932def SA1_combine1i : HInst< 25933(outs GeneralDoubleLow8Regs:$Rdd8), 25934(ins u2_0Imm:$Ii), 25935"$Rdd8 = combine(#1,#$Ii)", 25936tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 25937let Inst{4-3} = 0b01; 25938let Inst{12-7} = 0b111000; 25939let hasNewValue = 1; 25940let opNewValue = 0; 25941let AsmVariantName = "NonParsable"; 25942let DecoderNamespace = "SUBINSN_A"; 25943} 25944def SA1_combine2i : HInst< 25945(outs GeneralDoubleLow8Regs:$Rdd8), 25946(ins u2_0Imm:$Ii), 25947"$Rdd8 = combine(#2,#$Ii)", 25948tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 25949let Inst{4-3} = 0b10; 25950let Inst{12-7} = 0b111000; 25951let hasNewValue = 1; 25952let opNewValue = 0; 25953let AsmVariantName = "NonParsable"; 25954let DecoderNamespace = "SUBINSN_A"; 25955} 25956def SA1_combine3i : HInst< 25957(outs GeneralDoubleLow8Regs:$Rdd8), 25958(ins u2_0Imm:$Ii), 25959"$Rdd8 = combine(#3,#$Ii)", 25960tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 25961let Inst{4-3} = 0b11; 25962let Inst{12-7} = 0b111000; 25963let hasNewValue = 1; 25964let opNewValue = 0; 25965let AsmVariantName = "NonParsable"; 25966let DecoderNamespace = "SUBINSN_A"; 25967} 25968def SA1_combinerz : HInst< 25969(outs GeneralDoubleLow8Regs:$Rdd8), 25970(ins GeneralSubRegs:$Rs16), 25971"$Rdd8 = combine($Rs16,#0)", 25972tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 25973let Inst{3-3} = 0b1; 25974let Inst{12-8} = 0b11101; 25975let hasNewValue = 1; 25976let opNewValue = 0; 25977let AsmVariantName = "NonParsable"; 25978let DecoderNamespace = "SUBINSN_A"; 25979} 25980def SA1_combinezr : HInst< 25981(outs GeneralDoubleLow8Regs:$Rdd8), 25982(ins GeneralSubRegs:$Rs16), 25983"$Rdd8 = combine(#0,$Rs16)", 25984tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 25985let Inst{3-3} = 0b0; 25986let Inst{12-8} = 0b11101; 25987let hasNewValue = 1; 25988let opNewValue = 0; 25989let AsmVariantName = "NonParsable"; 25990let DecoderNamespace = "SUBINSN_A"; 25991} 25992def SA1_dec : HInst< 25993(outs GeneralSubRegs:$Rd16), 25994(ins GeneralSubRegs:$Rs16, n1Const:$n1), 25995"$Rd16 = add($Rs16,#$n1)", 25996tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 { 25997let Inst{12-8} = 0b10011; 25998let hasNewValue = 1; 25999let opNewValue = 0; 26000let AsmVariantName = "NonParsable"; 26001let DecoderNamespace = "SUBINSN_A"; 26002} 26003def SA1_inc : HInst< 26004(outs GeneralSubRegs:$Rd16), 26005(ins GeneralSubRegs:$Rs16), 26006"$Rd16 = add($Rs16,#1)", 26007tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26008let Inst{12-8} = 0b10001; 26009let hasNewValue = 1; 26010let opNewValue = 0; 26011let AsmVariantName = "NonParsable"; 26012let DecoderNamespace = "SUBINSN_A"; 26013} 26014def SA1_seti : HInst< 26015(outs GeneralSubRegs:$Rd16), 26016(ins u32_0Imm:$Ii), 26017"$Rd16 = #$Ii", 26018tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 { 26019let Inst{12-10} = 0b010; 26020let hasNewValue = 1; 26021let opNewValue = 0; 26022let AsmVariantName = "NonParsable"; 26023let DecoderNamespace = "SUBINSN_A"; 26024let isExtendable = 1; 26025let opExtendable = 1; 26026let isExtentSigned = 0; 26027let opExtentBits = 6; 26028let opExtentAlign = 0; 26029} 26030def SA1_setin1 : HInst< 26031(outs GeneralSubRegs:$Rd16), 26032(ins n1Const:$n1), 26033"$Rd16 = #$n1", 26034tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 { 26035let Inst{12-4} = 0b110100000; 26036let hasNewValue = 1; 26037let opNewValue = 0; 26038let AsmVariantName = "NonParsable"; 26039let DecoderNamespace = "SUBINSN_A"; 26040} 26041def SA1_sxtb : HInst< 26042(outs GeneralSubRegs:$Rd16), 26043(ins GeneralSubRegs:$Rs16), 26044"$Rd16 = sxtb($Rs16)", 26045tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26046let Inst{12-8} = 0b10101; 26047let hasNewValue = 1; 26048let opNewValue = 0; 26049let AsmVariantName = "NonParsable"; 26050let DecoderNamespace = "SUBINSN_A"; 26051} 26052def SA1_sxth : HInst< 26053(outs GeneralSubRegs:$Rd16), 26054(ins GeneralSubRegs:$Rs16), 26055"$Rd16 = sxth($Rs16)", 26056tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26057let Inst{12-8} = 0b10100; 26058let hasNewValue = 1; 26059let opNewValue = 0; 26060let AsmVariantName = "NonParsable"; 26061let DecoderNamespace = "SUBINSN_A"; 26062} 26063def SA1_tfr : HInst< 26064(outs GeneralSubRegs:$Rd16), 26065(ins GeneralSubRegs:$Rs16), 26066"$Rd16 = $Rs16", 26067tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26068let Inst{12-8} = 0b10000; 26069let hasNewValue = 1; 26070let opNewValue = 0; 26071let AsmVariantName = "NonParsable"; 26072let DecoderNamespace = "SUBINSN_A"; 26073} 26074def SA1_zxtb : HInst< 26075(outs GeneralSubRegs:$Rd16), 26076(ins GeneralSubRegs:$Rs16), 26077"$Rd16 = and($Rs16,#255)", 26078tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26079let Inst{12-8} = 0b10111; 26080let hasNewValue = 1; 26081let opNewValue = 0; 26082let AsmVariantName = "NonParsable"; 26083let DecoderNamespace = "SUBINSN_A"; 26084} 26085def SA1_zxth : HInst< 26086(outs GeneralSubRegs:$Rd16), 26087(ins GeneralSubRegs:$Rs16), 26088"$Rd16 = zxth($Rs16)", 26089tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26090let Inst{12-8} = 0b10110; 26091let hasNewValue = 1; 26092let opNewValue = 0; 26093let AsmVariantName = "NonParsable"; 26094let DecoderNamespace = "SUBINSN_A"; 26095} 26096def SL1_loadri_io : HInst< 26097(outs GeneralSubRegs:$Rd16), 26098(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26099"$Rd16 = memw($Rs16+#$Ii)", 26100tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 { 26101let Inst{12-12} = 0b0; 26102let hasNewValue = 1; 26103let opNewValue = 0; 26104let addrMode = BaseImmOffset; 26105let accessSize = WordAccess; 26106let AsmVariantName = "NonParsable"; 26107let mayLoad = 1; 26108let DecoderNamespace = "SUBINSN_L1"; 26109} 26110def SL1_loadrub_io : HInst< 26111(outs GeneralSubRegs:$Rd16), 26112(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26113"$Rd16 = memub($Rs16+#$Ii)", 26114tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 { 26115let Inst{12-12} = 0b1; 26116let hasNewValue = 1; 26117let opNewValue = 0; 26118let addrMode = BaseImmOffset; 26119let accessSize = ByteAccess; 26120let AsmVariantName = "NonParsable"; 26121let mayLoad = 1; 26122let DecoderNamespace = "SUBINSN_L1"; 26123} 26124def SL2_deallocframe : HInst< 26125(outs), 26126(ins), 26127"deallocframe", 26128tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 { 26129let Inst{12-0} = 0b1111100000000; 26130let accessSize = DoubleWordAccess; 26131let AsmVariantName = "NonParsable"; 26132let mayLoad = 1; 26133let Uses = [FRAMEKEY, R30]; 26134let Defs = [R29, R30, R31]; 26135let DecoderNamespace = "SUBINSN_L2"; 26136} 26137def SL2_jumpr31 : HInst< 26138(outs), 26139(ins), 26140"jumpr r31", 26141tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26142let Inst{12-0} = 0b1111111000000; 26143let isTerminator = 1; 26144let isIndirectBranch = 1; 26145let AsmVariantName = "NonParsable"; 26146let cofMax1 = 1; 26147let isReturn = 1; 26148let Uses = [R31]; 26149let Defs = [PC]; 26150let DecoderNamespace = "SUBINSN_L2"; 26151} 26152def SL2_jumpr31_f : HInst< 26153(outs), 26154(ins), 26155"if (!p0) jumpr r31", 26156tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26157let Inst{12-0} = 0b1111111000101; 26158let isPredicated = 1; 26159let isPredicatedFalse = 1; 26160let isTerminator = 1; 26161let isIndirectBranch = 1; 26162let AsmVariantName = "NonParsable"; 26163let cofMax1 = 1; 26164let isReturn = 1; 26165let Uses = [P0, R31]; 26166let Defs = [PC]; 26167let isTaken = Inst{4}; 26168let DecoderNamespace = "SUBINSN_L2"; 26169} 26170def SL2_jumpr31_fnew : HInst< 26171(outs), 26172(ins), 26173"if (!p0.new) jumpr:nt r31", 26174tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26175let Inst{12-0} = 0b1111111000111; 26176let isPredicated = 1; 26177let isPredicatedFalse = 1; 26178let isTerminator = 1; 26179let isIndirectBranch = 1; 26180let AsmVariantName = "NonParsable"; 26181let isPredicatedNew = 1; 26182let cofMax1 = 1; 26183let isReturn = 1; 26184let Uses = [P0, R31]; 26185let Defs = [PC]; 26186let isTaken = Inst{4}; 26187let DecoderNamespace = "SUBINSN_L2"; 26188} 26189def SL2_jumpr31_t : HInst< 26190(outs), 26191(ins), 26192"if (p0) jumpr r31", 26193tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26194let Inst{12-0} = 0b1111111000100; 26195let isPredicated = 1; 26196let isTerminator = 1; 26197let isIndirectBranch = 1; 26198let AsmVariantName = "NonParsable"; 26199let cofMax1 = 1; 26200let isReturn = 1; 26201let Uses = [P0, R31]; 26202let Defs = [PC]; 26203let isTaken = Inst{4}; 26204let DecoderNamespace = "SUBINSN_L2"; 26205} 26206def SL2_jumpr31_tnew : HInst< 26207(outs), 26208(ins), 26209"if (p0.new) jumpr:nt r31", 26210tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26211let Inst{12-0} = 0b1111111000110; 26212let isPredicated = 1; 26213let isTerminator = 1; 26214let isIndirectBranch = 1; 26215let AsmVariantName = "NonParsable"; 26216let isPredicatedNew = 1; 26217let cofMax1 = 1; 26218let isReturn = 1; 26219let Uses = [P0, R31]; 26220let Defs = [PC]; 26221let isTaken = Inst{4}; 26222let DecoderNamespace = "SUBINSN_L2"; 26223} 26224def SL2_loadrb_io : HInst< 26225(outs GeneralSubRegs:$Rd16), 26226(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii), 26227"$Rd16 = memb($Rs16+#$Ii)", 26228tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c { 26229let Inst{12-11} = 0b10; 26230let hasNewValue = 1; 26231let opNewValue = 0; 26232let addrMode = BaseImmOffset; 26233let accessSize = ByteAccess; 26234let AsmVariantName = "NonParsable"; 26235let mayLoad = 1; 26236let DecoderNamespace = "SUBINSN_L2"; 26237} 26238def SL2_loadrd_sp : HInst< 26239(outs GeneralDoubleLow8Regs:$Rdd8), 26240(ins u5_3Imm:$Ii), 26241"$Rdd8 = memd(r29+#$Ii)", 26242tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b { 26243let Inst{12-8} = 0b11110; 26244let hasNewValue = 1; 26245let opNewValue = 0; 26246let addrMode = BaseImmOffset; 26247let accessSize = DoubleWordAccess; 26248let AsmVariantName = "NonParsable"; 26249let mayLoad = 1; 26250let Uses = [R29]; 26251let DecoderNamespace = "SUBINSN_L2"; 26252} 26253def SL2_loadrh_io : HInst< 26254(outs GeneralSubRegs:$Rd16), 26255(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26256"$Rd16 = memh($Rs16+#$Ii)", 26257tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26258let Inst{12-11} = 0b00; 26259let hasNewValue = 1; 26260let opNewValue = 0; 26261let addrMode = BaseImmOffset; 26262let accessSize = HalfWordAccess; 26263let AsmVariantName = "NonParsable"; 26264let mayLoad = 1; 26265let DecoderNamespace = "SUBINSN_L2"; 26266} 26267def SL2_loadri_sp : HInst< 26268(outs GeneralSubRegs:$Rd16), 26269(ins u5_2Imm:$Ii), 26270"$Rd16 = memw(r29+#$Ii)", 26271tc_8a6d0d94, TypeSUBINSN>, Enc_51635c { 26272let Inst{12-9} = 0b1110; 26273let hasNewValue = 1; 26274let opNewValue = 0; 26275let addrMode = BaseImmOffset; 26276let accessSize = WordAccess; 26277let AsmVariantName = "NonParsable"; 26278let mayLoad = 1; 26279let Uses = [R29]; 26280let DecoderNamespace = "SUBINSN_L2"; 26281} 26282def SL2_loadruh_io : HInst< 26283(outs GeneralSubRegs:$Rd16), 26284(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26285"$Rd16 = memuh($Rs16+#$Ii)", 26286tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26287let Inst{12-11} = 0b01; 26288let hasNewValue = 1; 26289let opNewValue = 0; 26290let addrMode = BaseImmOffset; 26291let accessSize = HalfWordAccess; 26292let AsmVariantName = "NonParsable"; 26293let mayLoad = 1; 26294let DecoderNamespace = "SUBINSN_L2"; 26295} 26296def SL2_return : HInst< 26297(outs), 26298(ins), 26299"dealloc_return", 26300tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26301let Inst{12-0} = 0b1111101000000; 26302let isTerminator = 1; 26303let isIndirectBranch = 1; 26304let accessSize = DoubleWordAccess; 26305let AsmVariantName = "NonParsable"; 26306let mayLoad = 1; 26307let cofMax1 = 1; 26308let isRestrictNoSlot1Store = 1; 26309let isReturn = 1; 26310let Uses = [FRAMEKEY, R30]; 26311let Defs = [PC, R29, R30, R31]; 26312let DecoderNamespace = "SUBINSN_L2"; 26313} 26314def SL2_return_f : HInst< 26315(outs), 26316(ins), 26317"if (!p0) dealloc_return", 26318tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26319let Inst{12-0} = 0b1111101000101; 26320let isPredicated = 1; 26321let isPredicatedFalse = 1; 26322let isTerminator = 1; 26323let isIndirectBranch = 1; 26324let accessSize = DoubleWordAccess; 26325let AsmVariantName = "NonParsable"; 26326let mayLoad = 1; 26327let cofMax1 = 1; 26328let isRestrictNoSlot1Store = 1; 26329let isReturn = 1; 26330let Uses = [FRAMEKEY, P0, R30]; 26331let Defs = [PC, R29, R30, R31]; 26332let isTaken = Inst{4}; 26333let DecoderNamespace = "SUBINSN_L2"; 26334} 26335def SL2_return_fnew : HInst< 26336(outs), 26337(ins), 26338"if (!p0.new) dealloc_return:nt", 26339tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26340let Inst{12-0} = 0b1111101000111; 26341let isPredicated = 1; 26342let isPredicatedFalse = 1; 26343let isTerminator = 1; 26344let isIndirectBranch = 1; 26345let accessSize = DoubleWordAccess; 26346let AsmVariantName = "NonParsable"; 26347let isPredicatedNew = 1; 26348let mayLoad = 1; 26349let cofMax1 = 1; 26350let isRestrictNoSlot1Store = 1; 26351let isReturn = 1; 26352let Uses = [FRAMEKEY, P0, R30]; 26353let Defs = [PC, R29, R30, R31]; 26354let isTaken = Inst{4}; 26355let DecoderNamespace = "SUBINSN_L2"; 26356} 26357def SL2_return_t : HInst< 26358(outs), 26359(ins), 26360"if (p0) dealloc_return", 26361tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26362let Inst{12-0} = 0b1111101000100; 26363let isPredicated = 1; 26364let isTerminator = 1; 26365let isIndirectBranch = 1; 26366let accessSize = DoubleWordAccess; 26367let AsmVariantName = "NonParsable"; 26368let mayLoad = 1; 26369let cofMax1 = 1; 26370let isRestrictNoSlot1Store = 1; 26371let isReturn = 1; 26372let Uses = [FRAMEKEY, P0, R30]; 26373let Defs = [PC, R29, R30, R31]; 26374let isTaken = Inst{4}; 26375let DecoderNamespace = "SUBINSN_L2"; 26376} 26377def SL2_return_tnew : HInst< 26378(outs), 26379(ins), 26380"if (p0.new) dealloc_return:nt", 26381tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26382let Inst{12-0} = 0b1111101000110; 26383let isPredicated = 1; 26384let isTerminator = 1; 26385let isIndirectBranch = 1; 26386let accessSize = DoubleWordAccess; 26387let AsmVariantName = "NonParsable"; 26388let isPredicatedNew = 1; 26389let mayLoad = 1; 26390let cofMax1 = 1; 26391let isRestrictNoSlot1Store = 1; 26392let isReturn = 1; 26393let Uses = [FRAMEKEY, P0, R30]; 26394let Defs = [PC, R29, R30, R31]; 26395let isTaken = Inst{4}; 26396let DecoderNamespace = "SUBINSN_L2"; 26397} 26398def SS1_storeb_io : HInst< 26399(outs), 26400(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16), 26401"memb($Rs16+#$Ii) = $Rt16", 26402tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc { 26403let Inst{12-12} = 0b1; 26404let addrMode = BaseImmOffset; 26405let accessSize = ByteAccess; 26406let AsmVariantName = "NonParsable"; 26407let mayStore = 1; 26408let DecoderNamespace = "SUBINSN_S1"; 26409} 26410def SS1_storew_io : HInst< 26411(outs), 26412(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16), 26413"memw($Rs16+#$Ii) = $Rt16", 26414tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c { 26415let Inst{12-12} = 0b0; 26416let addrMode = BaseImmOffset; 26417let accessSize = WordAccess; 26418let AsmVariantName = "NonParsable"; 26419let mayStore = 1; 26420let DecoderNamespace = "SUBINSN_S1"; 26421} 26422def SS2_allocframe : HInst< 26423(outs), 26424(ins u5_3Imm:$Ii), 26425"allocframe(#$Ii)", 26426tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca { 26427let Inst{3-0} = 0b0000; 26428let Inst{12-9} = 0b1110; 26429let addrMode = BaseImmOffset; 26430let accessSize = DoubleWordAccess; 26431let AsmVariantName = "NonParsable"; 26432let mayStore = 1; 26433let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31]; 26434let Defs = [R29, R30]; 26435let DecoderNamespace = "SUBINSN_S2"; 26436} 26437def SS2_storebi0 : HInst< 26438(outs), 26439(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26440"memb($Rs16+#$Ii) = #0", 26441tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26442let Inst{12-8} = 0b10010; 26443let addrMode = BaseImmOffset; 26444let accessSize = ByteAccess; 26445let AsmVariantName = "NonParsable"; 26446let mayStore = 1; 26447let DecoderNamespace = "SUBINSN_S2"; 26448} 26449def SS2_storebi1 : HInst< 26450(outs), 26451(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26452"memb($Rs16+#$Ii) = #1", 26453tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26454let Inst{12-8} = 0b10011; 26455let addrMode = BaseImmOffset; 26456let accessSize = ByteAccess; 26457let AsmVariantName = "NonParsable"; 26458let mayStore = 1; 26459let DecoderNamespace = "SUBINSN_S2"; 26460} 26461def SS2_stored_sp : HInst< 26462(outs), 26463(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8), 26464"memd(r29+#$Ii) = $Rtt8", 26465tc_0655b949, TypeSUBINSN>, Enc_b8309d { 26466let Inst{12-9} = 0b0101; 26467let addrMode = BaseImmOffset; 26468let accessSize = DoubleWordAccess; 26469let AsmVariantName = "NonParsable"; 26470let mayStore = 1; 26471let Uses = [R29]; 26472let DecoderNamespace = "SUBINSN_S2"; 26473} 26474def SS2_storeh_io : HInst< 26475(outs), 26476(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16), 26477"memh($Rs16+#$Ii) = $Rt16", 26478tc_ae5babd7, TypeSUBINSN>, Enc_625deb { 26479let Inst{12-11} = 0b00; 26480let addrMode = BaseImmOffset; 26481let accessSize = HalfWordAccess; 26482let AsmVariantName = "NonParsable"; 26483let mayStore = 1; 26484let DecoderNamespace = "SUBINSN_S2"; 26485} 26486def SS2_storew_sp : HInst< 26487(outs), 26488(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16), 26489"memw(r29+#$Ii) = $Rt16", 26490tc_0655b949, TypeSUBINSN>, Enc_87c142 { 26491let Inst{12-9} = 0b0100; 26492let addrMode = BaseImmOffset; 26493let accessSize = WordAccess; 26494let AsmVariantName = "NonParsable"; 26495let mayStore = 1; 26496let Uses = [R29]; 26497let DecoderNamespace = "SUBINSN_S2"; 26498} 26499def SS2_storewi0 : HInst< 26500(outs), 26501(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26502"memw($Rs16+#$Ii) = #0", 26503tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26504let Inst{12-8} = 0b10000; 26505let addrMode = BaseImmOffset; 26506let accessSize = WordAccess; 26507let AsmVariantName = "NonParsable"; 26508let mayStore = 1; 26509let DecoderNamespace = "SUBINSN_S2"; 26510} 26511def SS2_storewi1 : HInst< 26512(outs), 26513(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26514"memw($Rs16+#$Ii) = #1", 26515tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26516let Inst{12-8} = 0b10001; 26517let addrMode = BaseImmOffset; 26518let accessSize = WordAccess; 26519let AsmVariantName = "NonParsable"; 26520let mayStore = 1; 26521let DecoderNamespace = "SUBINSN_S2"; 26522} 26523def V6_MAP_equb : HInst< 26524(outs HvxQR:$Qd4), 26525(ins HvxVR:$Vu32, HvxVR:$Vv32), 26526"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)", 26527PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26528let hasNewValue = 1; 26529let opNewValue = 0; 26530let isCVI = 1; 26531let isPseudo = 1; 26532let isCodeGenOnly = 1; 26533let DecoderNamespace = "EXT_mmvec"; 26534} 26535def V6_MAP_equb_and : HInst< 26536(outs HvxQR:$Qx4), 26537(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26538"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)", 26539PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26540let isCVI = 1; 26541let isPseudo = 1; 26542let isCodeGenOnly = 1; 26543let DecoderNamespace = "EXT_mmvec"; 26544let Constraints = "$Qx4 = $Qx4in"; 26545} 26546def V6_MAP_equb_ior : HInst< 26547(outs HvxQR:$Qx4), 26548(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26549"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)", 26550PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26551let isAccumulator = 1; 26552let isCVI = 1; 26553let isPseudo = 1; 26554let isCodeGenOnly = 1; 26555let DecoderNamespace = "EXT_mmvec"; 26556let Constraints = "$Qx4 = $Qx4in"; 26557} 26558def V6_MAP_equb_xor : HInst< 26559(outs HvxQR:$Qx4), 26560(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26561"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)", 26562PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26563let isCVI = 1; 26564let isPseudo = 1; 26565let isCodeGenOnly = 1; 26566let DecoderNamespace = "EXT_mmvec"; 26567let Constraints = "$Qx4 = $Qx4in"; 26568} 26569def V6_MAP_equh : HInst< 26570(outs HvxQR:$Qd4), 26571(ins HvxVR:$Vu32, HvxVR:$Vv32), 26572"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)", 26573PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26574let hasNewValue = 1; 26575let opNewValue = 0; 26576let isCVI = 1; 26577let isPseudo = 1; 26578let isCodeGenOnly = 1; 26579let DecoderNamespace = "EXT_mmvec"; 26580} 26581def V6_MAP_equh_and : HInst< 26582(outs HvxQR:$Qx4), 26583(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26584"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)", 26585PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26586let isCVI = 1; 26587let isPseudo = 1; 26588let isCodeGenOnly = 1; 26589let DecoderNamespace = "EXT_mmvec"; 26590let Constraints = "$Qx4 = $Qx4in"; 26591} 26592def V6_MAP_equh_ior : HInst< 26593(outs HvxQR:$Qx4), 26594(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26595"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)", 26596PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26597let isAccumulator = 1; 26598let isCVI = 1; 26599let isPseudo = 1; 26600let isCodeGenOnly = 1; 26601let DecoderNamespace = "EXT_mmvec"; 26602let Constraints = "$Qx4 = $Qx4in"; 26603} 26604def V6_MAP_equh_xor : HInst< 26605(outs HvxQR:$Qx4), 26606(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26607"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)", 26608PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26609let isCVI = 1; 26610let isPseudo = 1; 26611let isCodeGenOnly = 1; 26612let DecoderNamespace = "EXT_mmvec"; 26613let Constraints = "$Qx4 = $Qx4in"; 26614} 26615def V6_MAP_equw : HInst< 26616(outs HvxQR:$Qd4), 26617(ins HvxVR:$Vu32, HvxVR:$Vv32), 26618"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)", 26619PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26620let hasNewValue = 1; 26621let opNewValue = 0; 26622let isCVI = 1; 26623let isPseudo = 1; 26624let isCodeGenOnly = 1; 26625let DecoderNamespace = "EXT_mmvec"; 26626} 26627def V6_MAP_equw_and : HInst< 26628(outs HvxQR:$Qx4), 26629(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26630"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)", 26631PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26632let isCVI = 1; 26633let isPseudo = 1; 26634let isCodeGenOnly = 1; 26635let DecoderNamespace = "EXT_mmvec"; 26636let Constraints = "$Qx4 = $Qx4in"; 26637} 26638def V6_MAP_equw_ior : HInst< 26639(outs HvxQR:$Qx4), 26640(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26641"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)", 26642PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26643let isAccumulator = 1; 26644let isCVI = 1; 26645let isPseudo = 1; 26646let isCodeGenOnly = 1; 26647let DecoderNamespace = "EXT_mmvec"; 26648let Constraints = "$Qx4 = $Qx4in"; 26649} 26650def V6_MAP_equw_xor : HInst< 26651(outs HvxQR:$Qx4), 26652(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26653"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)", 26654PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26655let isCVI = 1; 26656let isPseudo = 1; 26657let isCodeGenOnly = 1; 26658let DecoderNamespace = "EXT_mmvec"; 26659let Constraints = "$Qx4 = $Qx4in"; 26660} 26661def V6_extractw : HInst< 26662(outs IntRegs:$Rd32), 26663(ins HvxVR:$Vu32, IntRegs:$Rs32), 26664"$Rd32 = vextract($Vu32,$Rs32)", 26665tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> { 26666let Inst{7-5} = 0b001; 26667let Inst{13-13} = 0b0; 26668let Inst{31-21} = 0b10010010000; 26669let hasNewValue = 1; 26670let opNewValue = 0; 26671let isCVI = 1; 26672let isSolo = 1; 26673let mayLoad = 1; 26674let DecoderNamespace = "EXT_mmvec"; 26675} 26676def V6_extractw_alt : HInst< 26677(outs IntRegs:$Rd32), 26678(ins HvxVR:$Vu32, IntRegs:$Rs32), 26679"$Rd32.w = vextract($Vu32,$Rs32)", 26680PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26681let hasNewValue = 1; 26682let opNewValue = 0; 26683let isCVI = 1; 26684let isPseudo = 1; 26685let isCodeGenOnly = 1; 26686let DecoderNamespace = "EXT_mmvec"; 26687} 26688def V6_hi : HInst< 26689(outs HvxVR:$Vd32), 26690(ins HvxWR:$Vss32), 26691"$Vd32 = hi($Vss32)", 26692CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26693let hasNewValue = 1; 26694let opNewValue = 0; 26695let isCVI = 1; 26696let isPseudo = 1; 26697let DecoderNamespace = "EXT_mmvec"; 26698} 26699def V6_ld0 : HInst< 26700(outs HvxVR:$Vd32), 26701(ins IntRegs:$Rt32), 26702"$Vd32 = vmem($Rt32)", 26703PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26704let hasNewValue = 1; 26705let opNewValue = 0; 26706let isCVI = 1; 26707let isPseudo = 1; 26708let isCodeGenOnly = 1; 26709let DecoderNamespace = "EXT_mmvec"; 26710} 26711def V6_ldcnp0 : HInst< 26712(outs HvxVR:$Vd32), 26713(ins PredRegs:$Pv4, IntRegs:$Rt32), 26714"if (!$Pv4) $Vd32.cur = vmem($Rt32)", 26715PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26716let hasNewValue = 1; 26717let opNewValue = 0; 26718let isCVI = 1; 26719let isPseudo = 1; 26720let isCodeGenOnly = 1; 26721let DecoderNamespace = "EXT_mmvec"; 26722} 26723def V6_ldcnpnt0 : HInst< 26724(outs HvxVR:$Vd32), 26725(ins PredRegs:$Pv4, IntRegs:$Rt32), 26726"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt", 26727PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26728let hasNewValue = 1; 26729let opNewValue = 0; 26730let isCVI = 1; 26731let isPseudo = 1; 26732let isCodeGenOnly = 1; 26733let DecoderNamespace = "EXT_mmvec"; 26734} 26735def V6_ldcp0 : HInst< 26736(outs HvxVR:$Vd32), 26737(ins PredRegs:$Pv4, IntRegs:$Rt32), 26738"if ($Pv4) $Vd32.cur = vmem($Rt32)", 26739PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26740let hasNewValue = 1; 26741let opNewValue = 0; 26742let isCVI = 1; 26743let isPseudo = 1; 26744let isCodeGenOnly = 1; 26745let DecoderNamespace = "EXT_mmvec"; 26746} 26747def V6_ldcpnt0 : HInst< 26748(outs HvxVR:$Vd32), 26749(ins PredRegs:$Pv4, IntRegs:$Rt32), 26750"if ($Pv4) $Vd32.cur = vmem($Rt32):nt", 26751PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26752let hasNewValue = 1; 26753let opNewValue = 0; 26754let isCVI = 1; 26755let isPseudo = 1; 26756let isCodeGenOnly = 1; 26757let DecoderNamespace = "EXT_mmvec"; 26758} 26759def V6_ldnp0 : HInst< 26760(outs HvxVR:$Vd32), 26761(ins PredRegs:$Pv4, IntRegs:$Rt32), 26762"if (!$Pv4) $Vd32 = vmem($Rt32)", 26763PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26764let hasNewValue = 1; 26765let opNewValue = 0; 26766let isCVI = 1; 26767let isPseudo = 1; 26768let isCodeGenOnly = 1; 26769let DecoderNamespace = "EXT_mmvec"; 26770} 26771def V6_ldnpnt0 : HInst< 26772(outs HvxVR:$Vd32), 26773(ins PredRegs:$Pv4, IntRegs:$Rt32), 26774"if (!$Pv4) $Vd32 = vmem($Rt32):nt", 26775PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26776let hasNewValue = 1; 26777let opNewValue = 0; 26778let isCVI = 1; 26779let isPseudo = 1; 26780let isCodeGenOnly = 1; 26781let DecoderNamespace = "EXT_mmvec"; 26782} 26783def V6_ldnt0 : HInst< 26784(outs HvxVR:$Vd32), 26785(ins IntRegs:$Rt32), 26786"$Vd32 = vmem($Rt32):nt", 26787PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26788let hasNewValue = 1; 26789let opNewValue = 0; 26790let isCVI = 1; 26791let isPseudo = 1; 26792let isCodeGenOnly = 1; 26793let DecoderNamespace = "EXT_mmvec"; 26794} 26795def V6_ldntnt0 : HInst< 26796(outs HvxVR:$Vd32), 26797(ins IntRegs:$Rt32), 26798"$Vd32 = vmem($Rt32):nt", 26799PSEUDO, TypeMAPPING>, Requires<[HasV62]> { 26800let hasNewValue = 1; 26801let opNewValue = 0; 26802let isPseudo = 1; 26803let isCodeGenOnly = 1; 26804let DecoderNamespace = "EXT_mmvec"; 26805} 26806def V6_ldp0 : HInst< 26807(outs HvxVR:$Vd32), 26808(ins PredRegs:$Pv4, IntRegs:$Rt32), 26809"if ($Pv4) $Vd32 = vmem($Rt32)", 26810PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26811let hasNewValue = 1; 26812let opNewValue = 0; 26813let isCVI = 1; 26814let isPseudo = 1; 26815let isCodeGenOnly = 1; 26816let DecoderNamespace = "EXT_mmvec"; 26817} 26818def V6_ldpnt0 : HInst< 26819(outs HvxVR:$Vd32), 26820(ins PredRegs:$Pv4, IntRegs:$Rt32), 26821"if ($Pv4) $Vd32 = vmem($Rt32):nt", 26822PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26823let hasNewValue = 1; 26824let opNewValue = 0; 26825let isCVI = 1; 26826let isPseudo = 1; 26827let isCodeGenOnly = 1; 26828let DecoderNamespace = "EXT_mmvec"; 26829} 26830def V6_ldtnp0 : HInst< 26831(outs HvxVR:$Vd32), 26832(ins PredRegs:$Pv4, IntRegs:$Rt32), 26833"if (!$Pv4) $Vd32.tmp = vmem($Rt32)", 26834PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26835let hasNewValue = 1; 26836let opNewValue = 0; 26837let isCVI = 1; 26838let isPseudo = 1; 26839let isCodeGenOnly = 1; 26840let DecoderNamespace = "EXT_mmvec"; 26841} 26842def V6_ldtnpnt0 : HInst< 26843(outs HvxVR:$Vd32), 26844(ins PredRegs:$Pv4, IntRegs:$Rt32), 26845"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt", 26846PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26847let hasNewValue = 1; 26848let opNewValue = 0; 26849let isCVI = 1; 26850let isPseudo = 1; 26851let isCodeGenOnly = 1; 26852let DecoderNamespace = "EXT_mmvec"; 26853} 26854def V6_ldtp0 : HInst< 26855(outs HvxVR:$Vd32), 26856(ins PredRegs:$Pv4, IntRegs:$Rt32), 26857"if ($Pv4) $Vd32.tmp = vmem($Rt32)", 26858PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26859let hasNewValue = 1; 26860let opNewValue = 0; 26861let isCVI = 1; 26862let isPseudo = 1; 26863let isCodeGenOnly = 1; 26864let DecoderNamespace = "EXT_mmvec"; 26865} 26866def V6_ldtpnt0 : HInst< 26867(outs HvxVR:$Vd32), 26868(ins PredRegs:$Pv4, IntRegs:$Rt32), 26869"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt", 26870PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26871let hasNewValue = 1; 26872let opNewValue = 0; 26873let isCVI = 1; 26874let isPseudo = 1; 26875let isCodeGenOnly = 1; 26876let DecoderNamespace = "EXT_mmvec"; 26877} 26878def V6_ldu0 : HInst< 26879(outs HvxVR:$Vd32), 26880(ins IntRegs:$Rt32), 26881"$Vd32 = vmemu($Rt32)", 26882PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26883let hasNewValue = 1; 26884let opNewValue = 0; 26885let isCVI = 1; 26886let isPseudo = 1; 26887let isCodeGenOnly = 1; 26888let DecoderNamespace = "EXT_mmvec"; 26889} 26890def V6_lo : HInst< 26891(outs HvxVR:$Vd32), 26892(ins HvxWR:$Vss32), 26893"$Vd32 = lo($Vss32)", 26894CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26895let hasNewValue = 1; 26896let opNewValue = 0; 26897let isCVI = 1; 26898let isPseudo = 1; 26899let DecoderNamespace = "EXT_mmvec"; 26900} 26901def V6_lvsplatb : HInst< 26902(outs HvxVR:$Vd32), 26903(ins IntRegs:$Rt32), 26904"$Vd32.b = vsplat($Rt32)", 26905tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 26906let Inst{13-5} = 0b000000010; 26907let Inst{31-21} = 0b00011001110; 26908let hasNewValue = 1; 26909let opNewValue = 0; 26910let isCVI = 1; 26911let DecoderNamespace = "EXT_mmvec"; 26912} 26913def V6_lvsplath : HInst< 26914(outs HvxVR:$Vd32), 26915(ins IntRegs:$Rt32), 26916"$Vd32.h = vsplat($Rt32)", 26917tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 26918let Inst{13-5} = 0b000000001; 26919let Inst{31-21} = 0b00011001110; 26920let hasNewValue = 1; 26921let opNewValue = 0; 26922let isCVI = 1; 26923let DecoderNamespace = "EXT_mmvec"; 26924} 26925def V6_lvsplatw : HInst< 26926(outs HvxVR:$Vd32), 26927(ins IntRegs:$Rt32), 26928"$Vd32 = vsplat($Rt32)", 26929tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> { 26930let Inst{13-5} = 0b000000001; 26931let Inst{31-21} = 0b00011001101; 26932let hasNewValue = 1; 26933let opNewValue = 0; 26934let isCVI = 1; 26935let DecoderNamespace = "EXT_mmvec"; 26936} 26937def V6_pred_and : HInst< 26938(outs HvxQR:$Qd4), 26939(ins HvxQR:$Qs4, HvxQR:$Qt4), 26940"$Qd4 = and($Qs4,$Qt4)", 26941tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26942let Inst{7-2} = 0b000000; 26943let Inst{13-10} = 0b0000; 26944let Inst{21-16} = 0b000011; 26945let Inst{31-24} = 0b00011110; 26946let hasNewValue = 1; 26947let opNewValue = 0; 26948let isCVI = 1; 26949let DecoderNamespace = "EXT_mmvec"; 26950} 26951def V6_pred_and_n : HInst< 26952(outs HvxQR:$Qd4), 26953(ins HvxQR:$Qs4, HvxQR:$Qt4), 26954"$Qd4 = and($Qs4,!$Qt4)", 26955tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26956let Inst{7-2} = 0b000101; 26957let Inst{13-10} = 0b0000; 26958let Inst{21-16} = 0b000011; 26959let Inst{31-24} = 0b00011110; 26960let hasNewValue = 1; 26961let opNewValue = 0; 26962let isCVI = 1; 26963let DecoderNamespace = "EXT_mmvec"; 26964} 26965def V6_pred_not : HInst< 26966(outs HvxQR:$Qd4), 26967(ins HvxQR:$Qs4), 26968"$Qd4 = not($Qs4)", 26969tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> { 26970let Inst{7-2} = 0b000010; 26971let Inst{13-10} = 0b0000; 26972let Inst{31-16} = 0b0001111000000011; 26973let hasNewValue = 1; 26974let opNewValue = 0; 26975let isCVI = 1; 26976let DecoderNamespace = "EXT_mmvec"; 26977} 26978def V6_pred_or : HInst< 26979(outs HvxQR:$Qd4), 26980(ins HvxQR:$Qs4, HvxQR:$Qt4), 26981"$Qd4 = or($Qs4,$Qt4)", 26982tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26983let Inst{7-2} = 0b000001; 26984let Inst{13-10} = 0b0000; 26985let Inst{21-16} = 0b000011; 26986let Inst{31-24} = 0b00011110; 26987let hasNewValue = 1; 26988let opNewValue = 0; 26989let isCVI = 1; 26990let DecoderNamespace = "EXT_mmvec"; 26991} 26992def V6_pred_or_n : HInst< 26993(outs HvxQR:$Qd4), 26994(ins HvxQR:$Qs4, HvxQR:$Qt4), 26995"$Qd4 = or($Qs4,!$Qt4)", 26996tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 26997let Inst{7-2} = 0b000100; 26998let Inst{13-10} = 0b0000; 26999let Inst{21-16} = 0b000011; 27000let Inst{31-24} = 0b00011110; 27001let hasNewValue = 1; 27002let opNewValue = 0; 27003let isCVI = 1; 27004let DecoderNamespace = "EXT_mmvec"; 27005} 27006def V6_pred_scalar2 : HInst< 27007(outs HvxQR:$Qd4), 27008(ins IntRegs:$Rt32), 27009"$Qd4 = vsetq($Rt32)", 27010tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> { 27011let Inst{13-2} = 0b000000010001; 27012let Inst{31-21} = 0b00011001101; 27013let hasNewValue = 1; 27014let opNewValue = 0; 27015let isCVI = 1; 27016let DecoderNamespace = "EXT_mmvec"; 27017} 27018def V6_pred_scalar2v2 : HInst< 27019(outs HvxQR:$Qd4), 27020(ins IntRegs:$Rt32), 27021"$Qd4 = vsetq2($Rt32)", 27022tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> { 27023let Inst{13-2} = 0b000000010011; 27024let Inst{31-21} = 0b00011001101; 27025let hasNewValue = 1; 27026let opNewValue = 0; 27027let isCVI = 1; 27028let DecoderNamespace = "EXT_mmvec"; 27029} 27030def V6_pred_xor : HInst< 27031(outs HvxQR:$Qd4), 27032(ins HvxQR:$Qs4, HvxQR:$Qt4), 27033"$Qd4 = xor($Qs4,$Qt4)", 27034tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27035let Inst{7-2} = 0b000011; 27036let Inst{13-10} = 0b0000; 27037let Inst{21-16} = 0b000011; 27038let Inst{31-24} = 0b00011110; 27039let hasNewValue = 1; 27040let opNewValue = 0; 27041let isCVI = 1; 27042let DecoderNamespace = "EXT_mmvec"; 27043} 27044def V6_shuffeqh : HInst< 27045(outs HvxQR:$Qd4), 27046(ins HvxQR:$Qs4, HvxQR:$Qt4), 27047"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)", 27048tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27049let Inst{7-2} = 0b000110; 27050let Inst{13-10} = 0b0000; 27051let Inst{21-16} = 0b000011; 27052let Inst{31-24} = 0b00011110; 27053let hasNewValue = 1; 27054let opNewValue = 0; 27055let isCVI = 1; 27056let DecoderNamespace = "EXT_mmvec"; 27057} 27058def V6_shuffeqw : HInst< 27059(outs HvxQR:$Qd4), 27060(ins HvxQR:$Qs4, HvxQR:$Qt4), 27061"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)", 27062tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27063let Inst{7-2} = 0b000111; 27064let Inst{13-10} = 0b0000; 27065let Inst{21-16} = 0b000011; 27066let Inst{31-24} = 0b00011110; 27067let hasNewValue = 1; 27068let opNewValue = 0; 27069let isCVI = 1; 27070let DecoderNamespace = "EXT_mmvec"; 27071} 27072def V6_st0 : HInst< 27073(outs), 27074(ins IntRegs:$Rt32, HvxVR:$Vs32), 27075"vmem($Rt32) = $Vs32", 27076PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27077let isCVI = 1; 27078let isPseudo = 1; 27079let isCodeGenOnly = 1; 27080let DecoderNamespace = "EXT_mmvec"; 27081} 27082def V6_stn0 : HInst< 27083(outs), 27084(ins IntRegs:$Rt32, HvxVR:$Os8), 27085"vmem($Rt32) = $Os8.new", 27086PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27087let isCVI = 1; 27088let isPseudo = 1; 27089let isCodeGenOnly = 1; 27090let DecoderNamespace = "EXT_mmvec"; 27091let opNewValue = 1; 27092} 27093def V6_stnnt0 : HInst< 27094(outs), 27095(ins IntRegs:$Rt32, HvxVR:$Os8), 27096"vmem($Rt32):nt = $Os8.new", 27097PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27098let isCVI = 1; 27099let isPseudo = 1; 27100let isCodeGenOnly = 1; 27101let DecoderNamespace = "EXT_mmvec"; 27102let opNewValue = 1; 27103} 27104def V6_stnp0 : HInst< 27105(outs), 27106(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27107"if (!$Pv4) vmem($Rt32) = $Vs32", 27108PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27109let isCVI = 1; 27110let isPseudo = 1; 27111let isCodeGenOnly = 1; 27112let DecoderNamespace = "EXT_mmvec"; 27113} 27114def V6_stnpnt0 : HInst< 27115(outs), 27116(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27117"if (!$Pv4) vmem($Rt32):nt = $Vs32", 27118PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27119let isCVI = 1; 27120let isPseudo = 1; 27121let isCodeGenOnly = 1; 27122let DecoderNamespace = "EXT_mmvec"; 27123} 27124def V6_stnq0 : HInst< 27125(outs), 27126(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27127"if (!$Qv4) vmem($Rt32) = $Vs32", 27128PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27129let isCVI = 1; 27130let isPseudo = 1; 27131let isCodeGenOnly = 1; 27132let DecoderNamespace = "EXT_mmvec"; 27133} 27134def V6_stnqnt0 : HInst< 27135(outs), 27136(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27137"if (!$Qv4) vmem($Rt32):nt = $Vs32", 27138PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27139let isCVI = 1; 27140let isPseudo = 1; 27141let isCodeGenOnly = 1; 27142let DecoderNamespace = "EXT_mmvec"; 27143} 27144def V6_stnt0 : HInst< 27145(outs), 27146(ins IntRegs:$Rt32, HvxVR:$Vs32), 27147"vmem($Rt32):nt = $Vs32", 27148PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27149let isCVI = 1; 27150let isPseudo = 1; 27151let isCodeGenOnly = 1; 27152let DecoderNamespace = "EXT_mmvec"; 27153} 27154def V6_stp0 : HInst< 27155(outs), 27156(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27157"if ($Pv4) vmem($Rt32) = $Vs32", 27158PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27159let isCVI = 1; 27160let isPseudo = 1; 27161let isCodeGenOnly = 1; 27162let DecoderNamespace = "EXT_mmvec"; 27163} 27164def V6_stpnt0 : HInst< 27165(outs), 27166(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27167"if ($Pv4) vmem($Rt32):nt = $Vs32", 27168PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27169let isCVI = 1; 27170let isPseudo = 1; 27171let isCodeGenOnly = 1; 27172let DecoderNamespace = "EXT_mmvec"; 27173} 27174def V6_stq0 : HInst< 27175(outs), 27176(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27177"if ($Qv4) vmem($Rt32) = $Vs32", 27178PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27179let isCVI = 1; 27180let isPseudo = 1; 27181let isCodeGenOnly = 1; 27182let DecoderNamespace = "EXT_mmvec"; 27183} 27184def V6_stqnt0 : HInst< 27185(outs), 27186(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27187"if ($Qv4) vmem($Rt32):nt = $Vs32", 27188PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27189let isCVI = 1; 27190let isPseudo = 1; 27191let isCodeGenOnly = 1; 27192let DecoderNamespace = "EXT_mmvec"; 27193} 27194def V6_stu0 : HInst< 27195(outs), 27196(ins IntRegs:$Rt32, HvxVR:$Vs32), 27197"vmemu($Rt32) = $Vs32", 27198PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27199let isCVI = 1; 27200let isPseudo = 1; 27201let isCodeGenOnly = 1; 27202let DecoderNamespace = "EXT_mmvec"; 27203} 27204def V6_stunp0 : HInst< 27205(outs), 27206(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27207"if (!$Pv4) vmemu($Rt32) = $Vs32", 27208PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27209let isCVI = 1; 27210let isPseudo = 1; 27211let isCodeGenOnly = 1; 27212let DecoderNamespace = "EXT_mmvec"; 27213} 27214def V6_stup0 : HInst< 27215(outs), 27216(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27217"if ($Pv4) vmemu($Rt32) = $Vs32", 27218PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27219let isCVI = 1; 27220let isPseudo = 1; 27221let isCodeGenOnly = 1; 27222let DecoderNamespace = "EXT_mmvec"; 27223} 27224def V6_vL32Ub_ai : HInst< 27225(outs HvxVR:$Vd32), 27226(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27227"$Vd32 = vmemu($Rt32+#$Ii)", 27228tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> { 27229let Inst{7-5} = 0b111; 27230let Inst{12-11} = 0b00; 27231let Inst{31-21} = 0b00101000000; 27232let hasNewValue = 1; 27233let opNewValue = 0; 27234let addrMode = BaseImmOffset; 27235let accessSize = HVXVectorAccess; 27236let isCVLoad = 1; 27237let isCVI = 1; 27238let mayLoad = 1; 27239let isRestrictNoSlot1Store = 1; 27240let DecoderNamespace = "EXT_mmvec"; 27241} 27242def V6_vL32Ub_pi : HInst< 27243(outs HvxVR:$Vd32, IntRegs:$Rx32), 27244(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27245"$Vd32 = vmemu($Rx32++#$Ii)", 27246tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> { 27247let Inst{7-5} = 0b111; 27248let Inst{13-11} = 0b000; 27249let Inst{31-21} = 0b00101001000; 27250let hasNewValue = 1; 27251let opNewValue = 0; 27252let addrMode = PostInc; 27253let accessSize = HVXVectorAccess; 27254let isCVLoad = 1; 27255let isCVI = 1; 27256let mayLoad = 1; 27257let isRestrictNoSlot1Store = 1; 27258let BaseOpcode = "V6_vL32b_pi"; 27259let DecoderNamespace = "EXT_mmvec"; 27260let Constraints = "$Rx32 = $Rx32in"; 27261} 27262def V6_vL32Ub_ppu : HInst< 27263(outs HvxVR:$Vd32, IntRegs:$Rx32), 27264(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27265"$Vd32 = vmemu($Rx32++$Mu2)", 27266tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> { 27267let Inst{12-5} = 0b00000111; 27268let Inst{31-21} = 0b00101011000; 27269let hasNewValue = 1; 27270let opNewValue = 0; 27271let addrMode = PostInc; 27272let accessSize = HVXVectorAccess; 27273let isCVLoad = 1; 27274let isCVI = 1; 27275let mayLoad = 1; 27276let isRestrictNoSlot1Store = 1; 27277let DecoderNamespace = "EXT_mmvec"; 27278let Constraints = "$Rx32 = $Rx32in"; 27279} 27280def V6_vL32b_ai : HInst< 27281(outs HvxVR:$Vd32), 27282(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27283"$Vd32 = vmem($Rt32+#$Ii)", 27284tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27285let Inst{7-5} = 0b000; 27286let Inst{12-11} = 0b00; 27287let Inst{31-21} = 0b00101000000; 27288let hasNewValue = 1; 27289let opNewValue = 0; 27290let addrMode = BaseImmOffset; 27291let accessSize = HVXVectorAccess; 27292let isCVLoad = 1; 27293let isCVI = 1; 27294let mayLoad = 1; 27295let isRestrictNoSlot1Store = 1; 27296let BaseOpcode = "V6_vL32b_ai"; 27297let isCVLoadable = 1; 27298let isPredicable = 1; 27299let DecoderNamespace = "EXT_mmvec"; 27300} 27301def V6_vL32b_cur_ai : HInst< 27302(outs HvxVR:$Vd32), 27303(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27304"$Vd32.cur = vmem($Rt32+#$Ii)", 27305tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27306let Inst{7-5} = 0b001; 27307let Inst{12-11} = 0b00; 27308let Inst{31-21} = 0b00101000000; 27309let hasNewValue = 1; 27310let opNewValue = 0; 27311let addrMode = BaseImmOffset; 27312let accessSize = HVXVectorAccess; 27313let isCVLoad = 1; 27314let isCVI = 1; 27315let CVINew = 1; 27316let mayLoad = 1; 27317let isRestrictNoSlot1Store = 1; 27318let BaseOpcode = "V6_vL32b_cur_ai"; 27319let isPredicable = 1; 27320let DecoderNamespace = "EXT_mmvec"; 27321} 27322def V6_vL32b_cur_npred_ai : HInst< 27323(outs HvxVR:$Vd32), 27324(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27325"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27326tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27327let Inst{7-5} = 0b101; 27328let Inst{31-21} = 0b00101000100; 27329let isPredicated = 1; 27330let isPredicatedFalse = 1; 27331let hasNewValue = 1; 27332let opNewValue = 0; 27333let addrMode = BaseImmOffset; 27334let accessSize = HVXVectorAccess; 27335let isCVLoad = 1; 27336let isCVI = 1; 27337let CVINew = 1; 27338let mayLoad = 1; 27339let isRestrictNoSlot1Store = 1; 27340let BaseOpcode = "V6_vL32b_cur_ai"; 27341let DecoderNamespace = "EXT_mmvec"; 27342} 27343def V6_vL32b_cur_npred_pi : HInst< 27344(outs HvxVR:$Vd32, IntRegs:$Rx32), 27345(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27346"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27347tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27348let Inst{7-5} = 0b101; 27349let Inst{13-13} = 0b0; 27350let Inst{31-21} = 0b00101001100; 27351let isPredicated = 1; 27352let isPredicatedFalse = 1; 27353let hasNewValue = 1; 27354let opNewValue = 0; 27355let addrMode = PostInc; 27356let accessSize = HVXVectorAccess; 27357let isCVLoad = 1; 27358let isCVI = 1; 27359let CVINew = 1; 27360let mayLoad = 1; 27361let isRestrictNoSlot1Store = 1; 27362let BaseOpcode = "V6_vL32b_cur_pi"; 27363let DecoderNamespace = "EXT_mmvec"; 27364let Constraints = "$Rx32 = $Rx32in"; 27365} 27366def V6_vL32b_cur_npred_ppu : HInst< 27367(outs HvxVR:$Vd32, IntRegs:$Rx32), 27368(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27369"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27370tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27371let Inst{10-5} = 0b000101; 27372let Inst{31-21} = 0b00101011100; 27373let isPredicated = 1; 27374let isPredicatedFalse = 1; 27375let hasNewValue = 1; 27376let opNewValue = 0; 27377let addrMode = PostInc; 27378let accessSize = HVXVectorAccess; 27379let isCVLoad = 1; 27380let isCVI = 1; 27381let CVINew = 1; 27382let mayLoad = 1; 27383let isRestrictNoSlot1Store = 1; 27384let BaseOpcode = "V6_vL32b_cur_ppu"; 27385let DecoderNamespace = "EXT_mmvec"; 27386let Constraints = "$Rx32 = $Rx32in"; 27387} 27388def V6_vL32b_cur_pi : HInst< 27389(outs HvxVR:$Vd32, IntRegs:$Rx32), 27390(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27391"$Vd32.cur = vmem($Rx32++#$Ii)", 27392tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27393let Inst{7-5} = 0b001; 27394let Inst{13-11} = 0b000; 27395let Inst{31-21} = 0b00101001000; 27396let hasNewValue = 1; 27397let opNewValue = 0; 27398let addrMode = PostInc; 27399let accessSize = HVXVectorAccess; 27400let isCVLoad = 1; 27401let isCVI = 1; 27402let CVINew = 1; 27403let mayLoad = 1; 27404let isRestrictNoSlot1Store = 1; 27405let BaseOpcode = "V6_vL32b_cur_pi"; 27406let isPredicable = 1; 27407let DecoderNamespace = "EXT_mmvec"; 27408let Constraints = "$Rx32 = $Rx32in"; 27409} 27410def V6_vL32b_cur_ppu : HInst< 27411(outs HvxVR:$Vd32, IntRegs:$Rx32), 27412(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27413"$Vd32.cur = vmem($Rx32++$Mu2)", 27414tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27415let Inst{12-5} = 0b00000001; 27416let Inst{31-21} = 0b00101011000; 27417let hasNewValue = 1; 27418let opNewValue = 0; 27419let addrMode = PostInc; 27420let accessSize = HVXVectorAccess; 27421let isCVLoad = 1; 27422let isCVI = 1; 27423let CVINew = 1; 27424let mayLoad = 1; 27425let isRestrictNoSlot1Store = 1; 27426let BaseOpcode = "V6_vL32b_cur_ppu"; 27427let isPredicable = 1; 27428let DecoderNamespace = "EXT_mmvec"; 27429let Constraints = "$Rx32 = $Rx32in"; 27430} 27431def V6_vL32b_cur_pred_ai : HInst< 27432(outs HvxVR:$Vd32), 27433(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27434"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27435tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27436let Inst{7-5} = 0b100; 27437let Inst{31-21} = 0b00101000100; 27438let isPredicated = 1; 27439let hasNewValue = 1; 27440let opNewValue = 0; 27441let addrMode = BaseImmOffset; 27442let accessSize = HVXVectorAccess; 27443let isCVLoad = 1; 27444let isCVI = 1; 27445let CVINew = 1; 27446let mayLoad = 1; 27447let isRestrictNoSlot1Store = 1; 27448let BaseOpcode = "V6_vL32b_cur_ai"; 27449let DecoderNamespace = "EXT_mmvec"; 27450} 27451def V6_vL32b_cur_pred_pi : HInst< 27452(outs HvxVR:$Vd32, IntRegs:$Rx32), 27453(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27454"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27455tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27456let Inst{7-5} = 0b100; 27457let Inst{13-13} = 0b0; 27458let Inst{31-21} = 0b00101001100; 27459let isPredicated = 1; 27460let hasNewValue = 1; 27461let opNewValue = 0; 27462let addrMode = PostInc; 27463let accessSize = HVXVectorAccess; 27464let isCVLoad = 1; 27465let isCVI = 1; 27466let CVINew = 1; 27467let mayLoad = 1; 27468let isRestrictNoSlot1Store = 1; 27469let BaseOpcode = "V6_vL32b_cur_pi"; 27470let DecoderNamespace = "EXT_mmvec"; 27471let Constraints = "$Rx32 = $Rx32in"; 27472} 27473def V6_vL32b_cur_pred_ppu : HInst< 27474(outs HvxVR:$Vd32, IntRegs:$Rx32), 27475(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27476"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27477tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27478let Inst{10-5} = 0b000100; 27479let Inst{31-21} = 0b00101011100; 27480let isPredicated = 1; 27481let hasNewValue = 1; 27482let opNewValue = 0; 27483let addrMode = PostInc; 27484let accessSize = HVXVectorAccess; 27485let isCVLoad = 1; 27486let isCVI = 1; 27487let CVINew = 1; 27488let mayLoad = 1; 27489let isRestrictNoSlot1Store = 1; 27490let BaseOpcode = "V6_vL32b_cur_ppu"; 27491let DecoderNamespace = "EXT_mmvec"; 27492let Constraints = "$Rx32 = $Rx32in"; 27493} 27494def V6_vL32b_npred_ai : HInst< 27495(outs HvxVR:$Vd32), 27496(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27497"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)", 27498tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27499let Inst{7-5} = 0b011; 27500let Inst{31-21} = 0b00101000100; 27501let isPredicated = 1; 27502let isPredicatedFalse = 1; 27503let hasNewValue = 1; 27504let opNewValue = 0; 27505let addrMode = BaseImmOffset; 27506let accessSize = HVXVectorAccess; 27507let isCVLoad = 1; 27508let isCVI = 1; 27509let mayLoad = 1; 27510let isRestrictNoSlot1Store = 1; 27511let BaseOpcode = "V6_vL32b_ai"; 27512let DecoderNamespace = "EXT_mmvec"; 27513} 27514def V6_vL32b_npred_pi : HInst< 27515(outs HvxVR:$Vd32, IntRegs:$Rx32), 27516(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27517"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)", 27518tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27519let Inst{7-5} = 0b011; 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 mayLoad = 1; 27531let isRestrictNoSlot1Store = 1; 27532let BaseOpcode = "V6_vL32b_pi"; 27533let DecoderNamespace = "EXT_mmvec"; 27534let Constraints = "$Rx32 = $Rx32in"; 27535} 27536def V6_vL32b_npred_ppu : HInst< 27537(outs HvxVR:$Vd32, IntRegs:$Rx32), 27538(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27539"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)", 27540tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27541let Inst{10-5} = 0b000011; 27542let Inst{31-21} = 0b00101011100; 27543let isPredicated = 1; 27544let isPredicatedFalse = 1; 27545let hasNewValue = 1; 27546let opNewValue = 0; 27547let addrMode = PostInc; 27548let accessSize = HVXVectorAccess; 27549let isCVLoad = 1; 27550let isCVI = 1; 27551let mayLoad = 1; 27552let isRestrictNoSlot1Store = 1; 27553let BaseOpcode = "V6_vL32b_ppu"; 27554let DecoderNamespace = "EXT_mmvec"; 27555let Constraints = "$Rx32 = $Rx32in"; 27556} 27557def V6_vL32b_nt_ai : HInst< 27558(outs HvxVR:$Vd32), 27559(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27560"$Vd32 = vmem($Rt32+#$Ii):nt", 27561tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27562let Inst{7-5} = 0b000; 27563let Inst{12-11} = 0b00; 27564let Inst{31-21} = 0b00101000010; 27565let hasNewValue = 1; 27566let opNewValue = 0; 27567let addrMode = BaseImmOffset; 27568let accessSize = HVXVectorAccess; 27569let isCVLoad = 1; 27570let isCVI = 1; 27571let mayLoad = 1; 27572let isNonTemporal = 1; 27573let isRestrictNoSlot1Store = 1; 27574let BaseOpcode = "V6_vL32b_nt_ai"; 27575let isCVLoadable = 1; 27576let isPredicable = 1; 27577let DecoderNamespace = "EXT_mmvec"; 27578} 27579def V6_vL32b_nt_cur_ai : HInst< 27580(outs HvxVR:$Vd32), 27581(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27582"$Vd32.cur = vmem($Rt32+#$Ii):nt", 27583tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27584let Inst{7-5} = 0b001; 27585let Inst{12-11} = 0b00; 27586let Inst{31-21} = 0b00101000010; 27587let hasNewValue = 1; 27588let opNewValue = 0; 27589let addrMode = BaseImmOffset; 27590let accessSize = HVXVectorAccess; 27591let isCVLoad = 1; 27592let isCVI = 1; 27593let CVINew = 1; 27594let mayLoad = 1; 27595let isNonTemporal = 1; 27596let isRestrictNoSlot1Store = 1; 27597let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27598let isPredicable = 1; 27599let DecoderNamespace = "EXT_mmvec"; 27600} 27601def V6_vL32b_nt_cur_npred_ai : HInst< 27602(outs HvxVR:$Vd32), 27603(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27604"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27605tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27606let Inst{7-5} = 0b101; 27607let Inst{31-21} = 0b00101000110; 27608let isPredicated = 1; 27609let isPredicatedFalse = 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 isNonTemporal = 1; 27619let isRestrictNoSlot1Store = 1; 27620let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27621let DecoderNamespace = "EXT_mmvec"; 27622} 27623def V6_vL32b_nt_cur_npred_pi : HInst< 27624(outs HvxVR:$Vd32, IntRegs:$Rx32), 27625(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27626"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27627tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27628let Inst{7-5} = 0b101; 27629let Inst{13-13} = 0b0; 27630let Inst{31-21} = 0b00101001110; 27631let isPredicated = 1; 27632let isPredicatedFalse = 1; 27633let hasNewValue = 1; 27634let opNewValue = 0; 27635let addrMode = PostInc; 27636let accessSize = HVXVectorAccess; 27637let isCVLoad = 1; 27638let isCVI = 1; 27639let CVINew = 1; 27640let mayLoad = 1; 27641let isNonTemporal = 1; 27642let isRestrictNoSlot1Store = 1; 27643let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27644let DecoderNamespace = "EXT_mmvec"; 27645let Constraints = "$Rx32 = $Rx32in"; 27646} 27647def V6_vL32b_nt_cur_npred_ppu : HInst< 27648(outs HvxVR:$Vd32, IntRegs:$Rx32), 27649(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27650"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27651tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27652let Inst{10-5} = 0b000101; 27653let Inst{31-21} = 0b00101011110; 27654let isPredicated = 1; 27655let isPredicatedFalse = 1; 27656let hasNewValue = 1; 27657let opNewValue = 0; 27658let addrMode = PostInc; 27659let accessSize = HVXVectorAccess; 27660let isCVLoad = 1; 27661let isCVI = 1; 27662let CVINew = 1; 27663let mayLoad = 1; 27664let isNonTemporal = 1; 27665let isRestrictNoSlot1Store = 1; 27666let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27667let DecoderNamespace = "EXT_mmvec"; 27668let Constraints = "$Rx32 = $Rx32in"; 27669} 27670def V6_vL32b_nt_cur_pi : HInst< 27671(outs HvxVR:$Vd32, IntRegs:$Rx32), 27672(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27673"$Vd32.cur = vmem($Rx32++#$Ii):nt", 27674tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27675let Inst{7-5} = 0b001; 27676let Inst{13-11} = 0b000; 27677let Inst{31-21} = 0b00101001010; 27678let hasNewValue = 1; 27679let opNewValue = 0; 27680let addrMode = PostInc; 27681let accessSize = HVXVectorAccess; 27682let isCVLoad = 1; 27683let isCVI = 1; 27684let CVINew = 1; 27685let mayLoad = 1; 27686let isNonTemporal = 1; 27687let isRestrictNoSlot1Store = 1; 27688let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27689let isPredicable = 1; 27690let DecoderNamespace = "EXT_mmvec"; 27691let Constraints = "$Rx32 = $Rx32in"; 27692} 27693def V6_vL32b_nt_cur_ppu : HInst< 27694(outs HvxVR:$Vd32, IntRegs:$Rx32), 27695(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27696"$Vd32.cur = vmem($Rx32++$Mu2):nt", 27697tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27698let Inst{12-5} = 0b00000001; 27699let Inst{31-21} = 0b00101011010; 27700let hasNewValue = 1; 27701let opNewValue = 0; 27702let addrMode = PostInc; 27703let accessSize = HVXVectorAccess; 27704let isCVLoad = 1; 27705let isCVI = 1; 27706let CVINew = 1; 27707let mayLoad = 1; 27708let isNonTemporal = 1; 27709let isRestrictNoSlot1Store = 1; 27710let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27711let isPredicable = 1; 27712let DecoderNamespace = "EXT_mmvec"; 27713let Constraints = "$Rx32 = $Rx32in"; 27714} 27715def V6_vL32b_nt_cur_pred_ai : HInst< 27716(outs HvxVR:$Vd32), 27717(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27718"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27719tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27720let Inst{7-5} = 0b100; 27721let Inst{31-21} = 0b00101000110; 27722let isPredicated = 1; 27723let hasNewValue = 1; 27724let opNewValue = 0; 27725let addrMode = BaseImmOffset; 27726let accessSize = HVXVectorAccess; 27727let isCVLoad = 1; 27728let isCVI = 1; 27729let CVINew = 1; 27730let mayLoad = 1; 27731let isNonTemporal = 1; 27732let isRestrictNoSlot1Store = 1; 27733let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27734let DecoderNamespace = "EXT_mmvec"; 27735} 27736def V6_vL32b_nt_cur_pred_pi : HInst< 27737(outs HvxVR:$Vd32, IntRegs:$Rx32), 27738(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27739"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27740tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27741let Inst{7-5} = 0b100; 27742let Inst{13-13} = 0b0; 27743let Inst{31-21} = 0b00101001110; 27744let isPredicated = 1; 27745let hasNewValue = 1; 27746let opNewValue = 0; 27747let addrMode = PostInc; 27748let accessSize = HVXVectorAccess; 27749let isCVLoad = 1; 27750let isCVI = 1; 27751let CVINew = 1; 27752let mayLoad = 1; 27753let isNonTemporal = 1; 27754let isRestrictNoSlot1Store = 1; 27755let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27756let DecoderNamespace = "EXT_mmvec"; 27757let Constraints = "$Rx32 = $Rx32in"; 27758} 27759def V6_vL32b_nt_cur_pred_ppu : HInst< 27760(outs HvxVR:$Vd32, IntRegs:$Rx32), 27761(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27762"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27763tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27764let Inst{10-5} = 0b000100; 27765let Inst{31-21} = 0b00101011110; 27766let isPredicated = 1; 27767let hasNewValue = 1; 27768let opNewValue = 0; 27769let addrMode = PostInc; 27770let accessSize = HVXVectorAccess; 27771let isCVLoad = 1; 27772let isCVI = 1; 27773let CVINew = 1; 27774let mayLoad = 1; 27775let isNonTemporal = 1; 27776let isRestrictNoSlot1Store = 1; 27777let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27778let DecoderNamespace = "EXT_mmvec"; 27779let Constraints = "$Rx32 = $Rx32in"; 27780} 27781def V6_vL32b_nt_npred_ai : HInst< 27782(outs HvxVR:$Vd32), 27783(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27784"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 27785tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27786let Inst{7-5} = 0b011; 27787let Inst{31-21} = 0b00101000110; 27788let isPredicated = 1; 27789let isPredicatedFalse = 1; 27790let hasNewValue = 1; 27791let opNewValue = 0; 27792let addrMode = BaseImmOffset; 27793let accessSize = HVXVectorAccess; 27794let isCVLoad = 1; 27795let isCVI = 1; 27796let mayLoad = 1; 27797let isNonTemporal = 1; 27798let isRestrictNoSlot1Store = 1; 27799let BaseOpcode = "V6_vL32b_nt_ai"; 27800let DecoderNamespace = "EXT_mmvec"; 27801} 27802def V6_vL32b_nt_npred_pi : HInst< 27803(outs HvxVR:$Vd32, IntRegs:$Rx32), 27804(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27805"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 27806tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27807let Inst{7-5} = 0b011; 27808let Inst{13-13} = 0b0; 27809let Inst{31-21} = 0b00101001110; 27810let isPredicated = 1; 27811let isPredicatedFalse = 1; 27812let hasNewValue = 1; 27813let opNewValue = 0; 27814let addrMode = PostInc; 27815let accessSize = HVXVectorAccess; 27816let isCVLoad = 1; 27817let isCVI = 1; 27818let mayLoad = 1; 27819let isNonTemporal = 1; 27820let isRestrictNoSlot1Store = 1; 27821let BaseOpcode = "V6_vL32b_nt_pi"; 27822let DecoderNamespace = "EXT_mmvec"; 27823let Constraints = "$Rx32 = $Rx32in"; 27824} 27825def V6_vL32b_nt_npred_ppu : HInst< 27826(outs HvxVR:$Vd32, IntRegs:$Rx32), 27827(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27828"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 27829tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27830let Inst{10-5} = 0b000011; 27831let Inst{31-21} = 0b00101011110; 27832let isPredicated = 1; 27833let isPredicatedFalse = 1; 27834let hasNewValue = 1; 27835let opNewValue = 0; 27836let addrMode = PostInc; 27837let accessSize = HVXVectorAccess; 27838let isCVLoad = 1; 27839let isCVI = 1; 27840let mayLoad = 1; 27841let isNonTemporal = 1; 27842let isRestrictNoSlot1Store = 1; 27843let BaseOpcode = "V6_vL32b_nt_ppu"; 27844let DecoderNamespace = "EXT_mmvec"; 27845let Constraints = "$Rx32 = $Rx32in"; 27846} 27847def V6_vL32b_nt_pi : HInst< 27848(outs HvxVR:$Vd32, IntRegs:$Rx32), 27849(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27850"$Vd32 = vmem($Rx32++#$Ii):nt", 27851tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 27852let Inst{7-5} = 0b000; 27853let Inst{13-11} = 0b000; 27854let Inst{31-21} = 0b00101001010; 27855let hasNewValue = 1; 27856let opNewValue = 0; 27857let addrMode = PostInc; 27858let accessSize = HVXVectorAccess; 27859let isCVLoad = 1; 27860let isCVI = 1; 27861let mayLoad = 1; 27862let isNonTemporal = 1; 27863let isRestrictNoSlot1Store = 1; 27864let BaseOpcode = "V6_vL32b_nt_pi"; 27865let isCVLoadable = 1; 27866let isPredicable = 1; 27867let DecoderNamespace = "EXT_mmvec"; 27868let Constraints = "$Rx32 = $Rx32in"; 27869} 27870def V6_vL32b_nt_ppu : HInst< 27871(outs HvxVR:$Vd32, IntRegs:$Rx32), 27872(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27873"$Vd32 = vmem($Rx32++$Mu2):nt", 27874tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27875let Inst{12-5} = 0b00000000; 27876let Inst{31-21} = 0b00101011010; 27877let hasNewValue = 1; 27878let opNewValue = 0; 27879let addrMode = PostInc; 27880let accessSize = HVXVectorAccess; 27881let isCVLoad = 1; 27882let isCVI = 1; 27883let mayLoad = 1; 27884let isNonTemporal = 1; 27885let isRestrictNoSlot1Store = 1; 27886let BaseOpcode = "V6_vL32b_nt_ppu"; 27887let isCVLoadable = 1; 27888let isPredicable = 1; 27889let DecoderNamespace = "EXT_mmvec"; 27890let Constraints = "$Rx32 = $Rx32in"; 27891} 27892def V6_vL32b_nt_pred_ai : HInst< 27893(outs HvxVR:$Vd32), 27894(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27895"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 27896tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27897let Inst{7-5} = 0b010; 27898let Inst{31-21} = 0b00101000110; 27899let isPredicated = 1; 27900let hasNewValue = 1; 27901let opNewValue = 0; 27902let addrMode = BaseImmOffset; 27903let accessSize = HVXVectorAccess; 27904let isCVLoad = 1; 27905let isCVI = 1; 27906let mayLoad = 1; 27907let isNonTemporal = 1; 27908let isRestrictNoSlot1Store = 1; 27909let BaseOpcode = "V6_vL32b_nt_ai"; 27910let DecoderNamespace = "EXT_mmvec"; 27911} 27912def V6_vL32b_nt_pred_pi : HInst< 27913(outs HvxVR:$Vd32, IntRegs:$Rx32), 27914(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27915"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 27916tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27917let Inst{7-5} = 0b010; 27918let Inst{13-13} = 0b0; 27919let Inst{31-21} = 0b00101001110; 27920let isPredicated = 1; 27921let hasNewValue = 1; 27922let opNewValue = 0; 27923let addrMode = PostInc; 27924let accessSize = HVXVectorAccess; 27925let isCVLoad = 1; 27926let isCVI = 1; 27927let mayLoad = 1; 27928let isNonTemporal = 1; 27929let isRestrictNoSlot1Store = 1; 27930let BaseOpcode = "V6_vL32b_nt_pi"; 27931let DecoderNamespace = "EXT_mmvec"; 27932let Constraints = "$Rx32 = $Rx32in"; 27933} 27934def V6_vL32b_nt_pred_ppu : HInst< 27935(outs HvxVR:$Vd32, IntRegs:$Rx32), 27936(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27937"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 27938tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27939let Inst{10-5} = 0b000010; 27940let Inst{31-21} = 0b00101011110; 27941let isPredicated = 1; 27942let hasNewValue = 1; 27943let opNewValue = 0; 27944let addrMode = PostInc; 27945let accessSize = HVXVectorAccess; 27946let isCVLoad = 1; 27947let isCVI = 1; 27948let mayLoad = 1; 27949let isNonTemporal = 1; 27950let isRestrictNoSlot1Store = 1; 27951let BaseOpcode = "V6_vL32b_nt_ppu"; 27952let DecoderNamespace = "EXT_mmvec"; 27953let Constraints = "$Rx32 = $Rx32in"; 27954} 27955def V6_vL32b_nt_tmp_ai : HInst< 27956(outs HvxVR:$Vd32), 27957(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27958"$Vd32.tmp = vmem($Rt32+#$Ii):nt", 27959tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 27960let Inst{7-5} = 0b010; 27961let Inst{12-11} = 0b00; 27962let Inst{31-21} = 0b00101000010; 27963let hasNewValue = 1; 27964let opNewValue = 0; 27965let addrMode = BaseImmOffset; 27966let accessSize = HVXVectorAccess; 27967let isCVLoad = 1; 27968let isCVI = 1; 27969let mayLoad = 1; 27970let isNonTemporal = 1; 27971let isRestrictNoSlot1Store = 1; 27972let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 27973let isPredicable = 1; 27974let DecoderNamespace = "EXT_mmvec"; 27975} 27976def V6_vL32b_nt_tmp_npred_ai : HInst< 27977(outs HvxVR:$Vd32), 27978(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27979"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 27980tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27981let Inst{7-5} = 0b111; 27982let Inst{31-21} = 0b00101000110; 27983let isPredicated = 1; 27984let isPredicatedFalse = 1; 27985let hasNewValue = 1; 27986let opNewValue = 0; 27987let addrMode = BaseImmOffset; 27988let accessSize = HVXVectorAccess; 27989let isCVLoad = 1; 27990let isCVI = 1; 27991let mayLoad = 1; 27992let isNonTemporal = 1; 27993let isRestrictNoSlot1Store = 1; 27994let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 27995let DecoderNamespace = "EXT_mmvec"; 27996} 27997def V6_vL32b_nt_tmp_npred_pi : HInst< 27998(outs HvxVR:$Vd32, IntRegs:$Rx32), 27999(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28000"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28001tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28002let Inst{7-5} = 0b111; 28003let Inst{13-13} = 0b0; 28004let Inst{31-21} = 0b00101001110; 28005let isPredicated = 1; 28006let isPredicatedFalse = 1; 28007let hasNewValue = 1; 28008let opNewValue = 0; 28009let addrMode = PostInc; 28010let accessSize = HVXVectorAccess; 28011let isCVLoad = 1; 28012let isCVI = 1; 28013let mayLoad = 1; 28014let isNonTemporal = 1; 28015let isRestrictNoSlot1Store = 1; 28016let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28017let DecoderNamespace = "EXT_mmvec"; 28018let Constraints = "$Rx32 = $Rx32in"; 28019} 28020def V6_vL32b_nt_tmp_npred_ppu : HInst< 28021(outs HvxVR:$Vd32, IntRegs:$Rx32), 28022(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28023"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28024tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28025let Inst{10-5} = 0b000111; 28026let Inst{31-21} = 0b00101011110; 28027let isPredicated = 1; 28028let isPredicatedFalse = 1; 28029let hasNewValue = 1; 28030let opNewValue = 0; 28031let addrMode = PostInc; 28032let accessSize = HVXVectorAccess; 28033let isCVLoad = 1; 28034let isCVI = 1; 28035let mayLoad = 1; 28036let isNonTemporal = 1; 28037let isRestrictNoSlot1Store = 1; 28038let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28039let DecoderNamespace = "EXT_mmvec"; 28040let Constraints = "$Rx32 = $Rx32in"; 28041} 28042def V6_vL32b_nt_tmp_pi : HInst< 28043(outs HvxVR:$Vd32, IntRegs:$Rx32), 28044(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28045"$Vd32.tmp = vmem($Rx32++#$Ii):nt", 28046tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28047let Inst{7-5} = 0b010; 28048let Inst{13-11} = 0b000; 28049let Inst{31-21} = 0b00101001010; 28050let hasNewValue = 1; 28051let opNewValue = 0; 28052let addrMode = PostInc; 28053let accessSize = HVXVectorAccess; 28054let isCVLoad = 1; 28055let isCVI = 1; 28056let mayLoad = 1; 28057let isNonTemporal = 1; 28058let isRestrictNoSlot1Store = 1; 28059let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28060let isPredicable = 1; 28061let DecoderNamespace = "EXT_mmvec"; 28062let Constraints = "$Rx32 = $Rx32in"; 28063} 28064def V6_vL32b_nt_tmp_ppu : HInst< 28065(outs HvxVR:$Vd32, IntRegs:$Rx32), 28066(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28067"$Vd32.tmp = vmem($Rx32++$Mu2):nt", 28068tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28069let Inst{12-5} = 0b00000010; 28070let Inst{31-21} = 0b00101011010; 28071let hasNewValue = 1; 28072let opNewValue = 0; 28073let addrMode = PostInc; 28074let accessSize = HVXVectorAccess; 28075let isCVLoad = 1; 28076let isCVI = 1; 28077let mayLoad = 1; 28078let isNonTemporal = 1; 28079let isRestrictNoSlot1Store = 1; 28080let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28081let isPredicable = 1; 28082let DecoderNamespace = "EXT_mmvec"; 28083let Constraints = "$Rx32 = $Rx32in"; 28084} 28085def V6_vL32b_nt_tmp_pred_ai : HInst< 28086(outs HvxVR:$Vd32), 28087(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28088"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 28089tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28090let Inst{7-5} = 0b110; 28091let Inst{31-21} = 0b00101000110; 28092let isPredicated = 1; 28093let hasNewValue = 1; 28094let opNewValue = 0; 28095let addrMode = BaseImmOffset; 28096let accessSize = HVXVectorAccess; 28097let isCVLoad = 1; 28098let isCVI = 1; 28099let mayLoad = 1; 28100let isNonTemporal = 1; 28101let isRestrictNoSlot1Store = 1; 28102let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28103let DecoderNamespace = "EXT_mmvec"; 28104} 28105def V6_vL32b_nt_tmp_pred_pi : HInst< 28106(outs HvxVR:$Vd32, IntRegs:$Rx32), 28107(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28108"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28109tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28110let Inst{7-5} = 0b110; 28111let Inst{13-13} = 0b0; 28112let Inst{31-21} = 0b00101001110; 28113let isPredicated = 1; 28114let hasNewValue = 1; 28115let opNewValue = 0; 28116let addrMode = PostInc; 28117let accessSize = HVXVectorAccess; 28118let isCVLoad = 1; 28119let isCVI = 1; 28120let mayLoad = 1; 28121let isNonTemporal = 1; 28122let isRestrictNoSlot1Store = 1; 28123let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28124let DecoderNamespace = "EXT_mmvec"; 28125let Constraints = "$Rx32 = $Rx32in"; 28126} 28127def V6_vL32b_nt_tmp_pred_ppu : HInst< 28128(outs HvxVR:$Vd32, IntRegs:$Rx32), 28129(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28130"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28131tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28132let Inst{10-5} = 0b000110; 28133let Inst{31-21} = 0b00101011110; 28134let isPredicated = 1; 28135let hasNewValue = 1; 28136let opNewValue = 0; 28137let addrMode = PostInc; 28138let accessSize = HVXVectorAccess; 28139let isCVLoad = 1; 28140let isCVI = 1; 28141let mayLoad = 1; 28142let isNonTemporal = 1; 28143let isRestrictNoSlot1Store = 1; 28144let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28145let DecoderNamespace = "EXT_mmvec"; 28146let Constraints = "$Rx32 = $Rx32in"; 28147} 28148def V6_vL32b_pi : HInst< 28149(outs HvxVR:$Vd32, IntRegs:$Rx32), 28150(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28151"$Vd32 = vmem($Rx32++#$Ii)", 28152tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28153let Inst{7-5} = 0b000; 28154let Inst{13-11} = 0b000; 28155let Inst{31-21} = 0b00101001000; 28156let hasNewValue = 1; 28157let opNewValue = 0; 28158let addrMode = PostInc; 28159let accessSize = HVXVectorAccess; 28160let isCVLoad = 1; 28161let isCVI = 1; 28162let mayLoad = 1; 28163let isRestrictNoSlot1Store = 1; 28164let BaseOpcode = "V6_vL32b_pi"; 28165let isCVLoadable = 1; 28166let isPredicable = 1; 28167let DecoderNamespace = "EXT_mmvec"; 28168let Constraints = "$Rx32 = $Rx32in"; 28169} 28170def V6_vL32b_ppu : HInst< 28171(outs HvxVR:$Vd32, IntRegs:$Rx32), 28172(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28173"$Vd32 = vmem($Rx32++$Mu2)", 28174tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28175let Inst{12-5} = 0b00000000; 28176let Inst{31-21} = 0b00101011000; 28177let hasNewValue = 1; 28178let opNewValue = 0; 28179let addrMode = PostInc; 28180let accessSize = HVXVectorAccess; 28181let isCVLoad = 1; 28182let isCVI = 1; 28183let mayLoad = 1; 28184let isRestrictNoSlot1Store = 1; 28185let BaseOpcode = "V6_vL32b_ppu"; 28186let isCVLoadable = 1; 28187let isPredicable = 1; 28188let DecoderNamespace = "EXT_mmvec"; 28189let Constraints = "$Rx32 = $Rx32in"; 28190} 28191def V6_vL32b_pred_ai : HInst< 28192(outs HvxVR:$Vd32), 28193(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28194"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)", 28195tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28196let Inst{7-5} = 0b010; 28197let Inst{31-21} = 0b00101000100; 28198let isPredicated = 1; 28199let hasNewValue = 1; 28200let opNewValue = 0; 28201let addrMode = BaseImmOffset; 28202let accessSize = HVXVectorAccess; 28203let isCVLoad = 1; 28204let isCVI = 1; 28205let mayLoad = 1; 28206let isRestrictNoSlot1Store = 1; 28207let BaseOpcode = "V6_vL32b_ai"; 28208let DecoderNamespace = "EXT_mmvec"; 28209} 28210def V6_vL32b_pred_pi : HInst< 28211(outs HvxVR:$Vd32, IntRegs:$Rx32), 28212(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28213"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)", 28214tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28215let Inst{7-5} = 0b010; 28216let Inst{13-13} = 0b0; 28217let Inst{31-21} = 0b00101001100; 28218let isPredicated = 1; 28219let hasNewValue = 1; 28220let opNewValue = 0; 28221let addrMode = PostInc; 28222let accessSize = HVXVectorAccess; 28223let isCVLoad = 1; 28224let isCVI = 1; 28225let mayLoad = 1; 28226let isRestrictNoSlot1Store = 1; 28227let BaseOpcode = "V6_vL32b_pi"; 28228let DecoderNamespace = "EXT_mmvec"; 28229let Constraints = "$Rx32 = $Rx32in"; 28230} 28231def V6_vL32b_pred_ppu : HInst< 28232(outs HvxVR:$Vd32, IntRegs:$Rx32), 28233(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28234"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)", 28235tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28236let Inst{10-5} = 0b000010; 28237let Inst{31-21} = 0b00101011100; 28238let isPredicated = 1; 28239let hasNewValue = 1; 28240let opNewValue = 0; 28241let addrMode = PostInc; 28242let accessSize = HVXVectorAccess; 28243let isCVLoad = 1; 28244let isCVI = 1; 28245let mayLoad = 1; 28246let isRestrictNoSlot1Store = 1; 28247let BaseOpcode = "V6_vL32b_ppu"; 28248let DecoderNamespace = "EXT_mmvec"; 28249let Constraints = "$Rx32 = $Rx32in"; 28250} 28251def V6_vL32b_tmp_ai : HInst< 28252(outs HvxVR:$Vd32), 28253(ins IntRegs:$Rt32, s4_0Imm:$Ii), 28254"$Vd32.tmp = vmem($Rt32+#$Ii)", 28255tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel { 28256let Inst{7-5} = 0b010; 28257let Inst{12-11} = 0b00; 28258let Inst{31-21} = 0b00101000000; 28259let hasNewValue = 1; 28260let opNewValue = 0; 28261let addrMode = BaseImmOffset; 28262let accessSize = HVXVectorAccess; 28263let isCVLoad = 1; 28264let isCVI = 1; 28265let mayLoad = 1; 28266let isRestrictNoSlot1Store = 1; 28267let BaseOpcode = "V6_vL32b_tmp_ai"; 28268let isPredicable = 1; 28269let DecoderNamespace = "EXT_mmvec"; 28270} 28271def V6_vL32b_tmp_npred_ai : HInst< 28272(outs HvxVR:$Vd32), 28273(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28274"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28275tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28276let Inst{7-5} = 0b111; 28277let Inst{31-21} = 0b00101000100; 28278let isPredicated = 1; 28279let isPredicatedFalse = 1; 28280let hasNewValue = 1; 28281let opNewValue = 0; 28282let addrMode = BaseImmOffset; 28283let accessSize = HVXVectorAccess; 28284let isCVLoad = 1; 28285let isCVI = 1; 28286let mayLoad = 1; 28287let isRestrictNoSlot1Store = 1; 28288let BaseOpcode = "V6_vL32b_tmp_ai"; 28289let DecoderNamespace = "EXT_mmvec"; 28290} 28291def V6_vL32b_tmp_npred_pi : HInst< 28292(outs HvxVR:$Vd32, IntRegs:$Rx32), 28293(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28294"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28295tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28296let Inst{7-5} = 0b111; 28297let Inst{13-13} = 0b0; 28298let Inst{31-21} = 0b00101001100; 28299let isPredicated = 1; 28300let isPredicatedFalse = 1; 28301let hasNewValue = 1; 28302let opNewValue = 0; 28303let addrMode = PostInc; 28304let accessSize = HVXVectorAccess; 28305let isCVLoad = 1; 28306let isCVI = 1; 28307let mayLoad = 1; 28308let isRestrictNoSlot1Store = 1; 28309let BaseOpcode = "V6_vL32b_tmp_pi"; 28310let DecoderNamespace = "EXT_mmvec"; 28311let Constraints = "$Rx32 = $Rx32in"; 28312} 28313def V6_vL32b_tmp_npred_ppu : HInst< 28314(outs HvxVR:$Vd32, IntRegs:$Rx32), 28315(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28316"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28317tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28318let Inst{10-5} = 0b000111; 28319let Inst{31-21} = 0b00101011100; 28320let isPredicated = 1; 28321let isPredicatedFalse = 1; 28322let hasNewValue = 1; 28323let opNewValue = 0; 28324let addrMode = PostInc; 28325let accessSize = HVXVectorAccess; 28326let isCVLoad = 1; 28327let isCVI = 1; 28328let mayLoad = 1; 28329let isRestrictNoSlot1Store = 1; 28330let BaseOpcode = "V6_vL32b_tmp_ppu"; 28331let DecoderNamespace = "EXT_mmvec"; 28332let Constraints = "$Rx32 = $Rx32in"; 28333} 28334def V6_vL32b_tmp_pi : HInst< 28335(outs HvxVR:$Vd32, IntRegs:$Rx32), 28336(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28337"$Vd32.tmp = vmem($Rx32++#$Ii)", 28338tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel { 28339let Inst{7-5} = 0b010; 28340let Inst{13-11} = 0b000; 28341let Inst{31-21} = 0b00101001000; 28342let hasNewValue = 1; 28343let opNewValue = 0; 28344let addrMode = PostInc; 28345let accessSize = HVXVectorAccess; 28346let isCVLoad = 1; 28347let isCVI = 1; 28348let mayLoad = 1; 28349let isRestrictNoSlot1Store = 1; 28350let BaseOpcode = "V6_vL32b_tmp_pi"; 28351let isPredicable = 1; 28352let DecoderNamespace = "EXT_mmvec"; 28353let Constraints = "$Rx32 = $Rx32in"; 28354} 28355def V6_vL32b_tmp_ppu : HInst< 28356(outs HvxVR:$Vd32, IntRegs:$Rx32), 28357(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28358"$Vd32.tmp = vmem($Rx32++$Mu2)", 28359tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28360let Inst{12-5} = 0b00000010; 28361let Inst{31-21} = 0b00101011000; 28362let hasNewValue = 1; 28363let opNewValue = 0; 28364let addrMode = PostInc; 28365let accessSize = HVXVectorAccess; 28366let isCVLoad = 1; 28367let isCVI = 1; 28368let mayLoad = 1; 28369let isRestrictNoSlot1Store = 1; 28370let BaseOpcode = "V6_vL32b_tmp_ppu"; 28371let isPredicable = 1; 28372let DecoderNamespace = "EXT_mmvec"; 28373let Constraints = "$Rx32 = $Rx32in"; 28374} 28375def V6_vL32b_tmp_pred_ai : HInst< 28376(outs HvxVR:$Vd32), 28377(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28378"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28379tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28380let Inst{7-5} = 0b110; 28381let Inst{31-21} = 0b00101000100; 28382let isPredicated = 1; 28383let hasNewValue = 1; 28384let opNewValue = 0; 28385let addrMode = BaseImmOffset; 28386let accessSize = HVXVectorAccess; 28387let isCVLoad = 1; 28388let isCVI = 1; 28389let mayLoad = 1; 28390let isRestrictNoSlot1Store = 1; 28391let BaseOpcode = "V6_vL32b_tmp_ai"; 28392let DecoderNamespace = "EXT_mmvec"; 28393} 28394def V6_vL32b_tmp_pred_pi : HInst< 28395(outs HvxVR:$Vd32, IntRegs:$Rx32), 28396(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28397"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28398tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28399let Inst{7-5} = 0b110; 28400let Inst{13-13} = 0b0; 28401let Inst{31-21} = 0b00101001100; 28402let isPredicated = 1; 28403let hasNewValue = 1; 28404let opNewValue = 0; 28405let addrMode = PostInc; 28406let accessSize = HVXVectorAccess; 28407let isCVLoad = 1; 28408let isCVI = 1; 28409let mayLoad = 1; 28410let isRestrictNoSlot1Store = 1; 28411let BaseOpcode = "V6_vL32b_tmp_pi"; 28412let DecoderNamespace = "EXT_mmvec"; 28413let Constraints = "$Rx32 = $Rx32in"; 28414} 28415def V6_vL32b_tmp_pred_ppu : HInst< 28416(outs HvxVR:$Vd32, IntRegs:$Rx32), 28417(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28418"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28419tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28420let Inst{10-5} = 0b000110; 28421let Inst{31-21} = 0b00101011100; 28422let isPredicated = 1; 28423let hasNewValue = 1; 28424let opNewValue = 0; 28425let addrMode = PostInc; 28426let accessSize = HVXVectorAccess; 28427let isCVLoad = 1; 28428let isCVI = 1; 28429let mayLoad = 1; 28430let isRestrictNoSlot1Store = 1; 28431let BaseOpcode = "V6_vL32b_tmp_ppu"; 28432let DecoderNamespace = "EXT_mmvec"; 28433let Constraints = "$Rx32 = $Rx32in"; 28434} 28435def V6_vS32Ub_ai : HInst< 28436(outs), 28437(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28438"vmemu($Rt32+#$Ii) = $Vs32", 28439tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28440let Inst{7-5} = 0b111; 28441let Inst{12-11} = 0b00; 28442let Inst{31-21} = 0b00101000001; 28443let addrMode = BaseImmOffset; 28444let accessSize = HVXVectorAccess; 28445let isCVI = 1; 28446let mayStore = 1; 28447let BaseOpcode = "V6_vS32Ub_ai"; 28448let isPredicable = 1; 28449let DecoderNamespace = "EXT_mmvec"; 28450} 28451def V6_vS32Ub_npred_ai : HInst< 28452(outs), 28453(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28454"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28455tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28456let Inst{7-5} = 0b111; 28457let Inst{31-21} = 0b00101000101; 28458let isPredicated = 1; 28459let isPredicatedFalse = 1; 28460let addrMode = BaseImmOffset; 28461let accessSize = HVXVectorAccess; 28462let isCVI = 1; 28463let mayStore = 1; 28464let BaseOpcode = "V6_vS32Ub_ai"; 28465let DecoderNamespace = "EXT_mmvec"; 28466} 28467def V6_vS32Ub_npred_pi : HInst< 28468(outs IntRegs:$Rx32), 28469(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28470"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28471tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28472let Inst{7-5} = 0b111; 28473let Inst{13-13} = 0b0; 28474let Inst{31-21} = 0b00101001101; 28475let isPredicated = 1; 28476let isPredicatedFalse = 1; 28477let addrMode = PostInc; 28478let accessSize = HVXVectorAccess; 28479let isCVI = 1; 28480let mayStore = 1; 28481let BaseOpcode = "V6_vS32Ub_pi"; 28482let DecoderNamespace = "EXT_mmvec"; 28483let Constraints = "$Rx32 = $Rx32in"; 28484} 28485def V6_vS32Ub_npred_ppu : HInst< 28486(outs IntRegs:$Rx32), 28487(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28488"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28489tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28490let Inst{10-5} = 0b000111; 28491let Inst{31-21} = 0b00101011101; 28492let isPredicated = 1; 28493let isPredicatedFalse = 1; 28494let addrMode = PostInc; 28495let accessSize = HVXVectorAccess; 28496let isCVI = 1; 28497let mayStore = 1; 28498let BaseOpcode = "V6_vS32Ub_ppu"; 28499let DecoderNamespace = "EXT_mmvec"; 28500let Constraints = "$Rx32 = $Rx32in"; 28501} 28502def V6_vS32Ub_pi : HInst< 28503(outs IntRegs:$Rx32), 28504(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28505"vmemu($Rx32++#$Ii) = $Vs32", 28506tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 28507let Inst{7-5} = 0b111; 28508let Inst{13-11} = 0b000; 28509let Inst{31-21} = 0b00101001001; 28510let addrMode = PostInc; 28511let accessSize = HVXVectorAccess; 28512let isCVI = 1; 28513let mayStore = 1; 28514let BaseOpcode = "V6_vS32Ub_pi"; 28515let isPredicable = 1; 28516let DecoderNamespace = "EXT_mmvec"; 28517let Constraints = "$Rx32 = $Rx32in"; 28518} 28519def V6_vS32Ub_ppu : HInst< 28520(outs IntRegs:$Rx32), 28521(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28522"vmemu($Rx32++$Mu2) = $Vs32", 28523tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 28524let Inst{12-5} = 0b00000111; 28525let Inst{31-21} = 0b00101011001; 28526let addrMode = PostInc; 28527let accessSize = HVXVectorAccess; 28528let isCVI = 1; 28529let mayStore = 1; 28530let BaseOpcode = "V6_vS32Ub_ppu"; 28531let isPredicable = 1; 28532let DecoderNamespace = "EXT_mmvec"; 28533let Constraints = "$Rx32 = $Rx32in"; 28534} 28535def V6_vS32Ub_pred_ai : HInst< 28536(outs), 28537(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28538"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28539tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28540let Inst{7-5} = 0b110; 28541let Inst{31-21} = 0b00101000101; 28542let isPredicated = 1; 28543let addrMode = BaseImmOffset; 28544let accessSize = HVXVectorAccess; 28545let isCVI = 1; 28546let mayStore = 1; 28547let BaseOpcode = "V6_vS32Ub_ai"; 28548let DecoderNamespace = "EXT_mmvec"; 28549} 28550def V6_vS32Ub_pred_pi : HInst< 28551(outs IntRegs:$Rx32), 28552(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28553"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28554tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28555let Inst{7-5} = 0b110; 28556let Inst{13-13} = 0b0; 28557let Inst{31-21} = 0b00101001101; 28558let isPredicated = 1; 28559let addrMode = PostInc; 28560let accessSize = HVXVectorAccess; 28561let isCVI = 1; 28562let mayStore = 1; 28563let BaseOpcode = "V6_vS32Ub_pi"; 28564let DecoderNamespace = "EXT_mmvec"; 28565let Constraints = "$Rx32 = $Rx32in"; 28566} 28567def V6_vS32Ub_pred_ppu : HInst< 28568(outs IntRegs:$Rx32), 28569(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28570"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28571tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28572let Inst{10-5} = 0b000110; 28573let Inst{31-21} = 0b00101011101; 28574let isPredicated = 1; 28575let addrMode = PostInc; 28576let accessSize = HVXVectorAccess; 28577let isCVI = 1; 28578let mayStore = 1; 28579let BaseOpcode = "V6_vS32Ub_ppu"; 28580let DecoderNamespace = "EXT_mmvec"; 28581let Constraints = "$Rx32 = $Rx32in"; 28582} 28583def V6_vS32b_ai : HInst< 28584(outs), 28585(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28586"vmem($Rt32+#$Ii) = $Vs32", 28587tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28588let Inst{7-5} = 0b000; 28589let Inst{12-11} = 0b00; 28590let Inst{31-21} = 0b00101000001; 28591let addrMode = BaseImmOffset; 28592let accessSize = HVXVectorAccess; 28593let isCVI = 1; 28594let mayStore = 1; 28595let BaseOpcode = "V6_vS32b_ai"; 28596let isNVStorable = 1; 28597let isPredicable = 1; 28598let DecoderNamespace = "EXT_mmvec"; 28599} 28600def V6_vS32b_new_ai : HInst< 28601(outs), 28602(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28603"vmem($Rt32+#$Ii) = $Os8.new", 28604tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 28605let Inst{7-3} = 0b00100; 28606let Inst{12-11} = 0b00; 28607let Inst{31-21} = 0b00101000001; 28608let addrMode = BaseImmOffset; 28609let accessSize = HVXVectorAccess; 28610let isNVStore = 1; 28611let isCVI = 1; 28612let CVINew = 1; 28613let isNewValue = 1; 28614let mayStore = 1; 28615let BaseOpcode = "V6_vS32b_ai"; 28616let isPredicable = 1; 28617let DecoderNamespace = "EXT_mmvec"; 28618let opNewValue = 2; 28619} 28620def V6_vS32b_new_npred_ai : HInst< 28621(outs), 28622(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28623"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28624tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28625let Inst{7-3} = 0b01101; 28626let Inst{31-21} = 0b00101000101; 28627let isPredicated = 1; 28628let isPredicatedFalse = 1; 28629let addrMode = BaseImmOffset; 28630let accessSize = HVXVectorAccess; 28631let isNVStore = 1; 28632let isCVI = 1; 28633let CVINew = 1; 28634let isNewValue = 1; 28635let mayStore = 1; 28636let BaseOpcode = "V6_vS32b_ai"; 28637let DecoderNamespace = "EXT_mmvec"; 28638let opNewValue = 3; 28639} 28640def V6_vS32b_new_npred_pi : HInst< 28641(outs IntRegs:$Rx32), 28642(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28643"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28644tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28645let Inst{7-3} = 0b01101; 28646let Inst{13-13} = 0b0; 28647let Inst{31-21} = 0b00101001101; 28648let isPredicated = 1; 28649let isPredicatedFalse = 1; 28650let addrMode = PostInc; 28651let accessSize = HVXVectorAccess; 28652let isNVStore = 1; 28653let isCVI = 1; 28654let CVINew = 1; 28655let isNewValue = 1; 28656let mayStore = 1; 28657let BaseOpcode = "V6_vS32b_pi"; 28658let DecoderNamespace = "EXT_mmvec"; 28659let opNewValue = 4; 28660let Constraints = "$Rx32 = $Rx32in"; 28661} 28662def V6_vS32b_new_npred_ppu : HInst< 28663(outs IntRegs:$Rx32), 28664(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28665"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28666tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28667let Inst{10-3} = 0b00001101; 28668let Inst{31-21} = 0b00101011101; 28669let isPredicated = 1; 28670let isPredicatedFalse = 1; 28671let addrMode = PostInc; 28672let accessSize = HVXVectorAccess; 28673let isNVStore = 1; 28674let isCVI = 1; 28675let CVINew = 1; 28676let isNewValue = 1; 28677let mayStore = 1; 28678let BaseOpcode = "V6_vS32b_ppu"; 28679let DecoderNamespace = "EXT_mmvec"; 28680let opNewValue = 4; 28681let Constraints = "$Rx32 = $Rx32in"; 28682} 28683def V6_vS32b_new_pi : HInst< 28684(outs IntRegs:$Rx32), 28685(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28686"vmem($Rx32++#$Ii) = $Os8.new", 28687tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 28688let Inst{7-3} = 0b00100; 28689let Inst{13-11} = 0b000; 28690let Inst{31-21} = 0b00101001001; 28691let addrMode = PostInc; 28692let accessSize = HVXVectorAccess; 28693let isNVStore = 1; 28694let isCVI = 1; 28695let CVINew = 1; 28696let isNewValue = 1; 28697let mayStore = 1; 28698let BaseOpcode = "V6_vS32b_pi"; 28699let isPredicable = 1; 28700let DecoderNamespace = "EXT_mmvec"; 28701let opNewValue = 3; 28702let Constraints = "$Rx32 = $Rx32in"; 28703} 28704def V6_vS32b_new_ppu : HInst< 28705(outs IntRegs:$Rx32), 28706(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28707"vmem($Rx32++$Mu2) = $Os8.new", 28708tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 28709let Inst{12-3} = 0b0000000100; 28710let Inst{31-21} = 0b00101011001; 28711let addrMode = PostInc; 28712let accessSize = HVXVectorAccess; 28713let isNVStore = 1; 28714let isCVI = 1; 28715let CVINew = 1; 28716let isNewValue = 1; 28717let mayStore = 1; 28718let BaseOpcode = "V6_vS32b_ppu"; 28719let isPredicable = 1; 28720let DecoderNamespace = "EXT_mmvec"; 28721let opNewValue = 3; 28722let Constraints = "$Rx32 = $Rx32in"; 28723} 28724def V6_vS32b_new_pred_ai : HInst< 28725(outs), 28726(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28727"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28728tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28729let Inst{7-3} = 0b01000; 28730let Inst{31-21} = 0b00101000101; 28731let isPredicated = 1; 28732let addrMode = BaseImmOffset; 28733let accessSize = HVXVectorAccess; 28734let isNVStore = 1; 28735let isCVI = 1; 28736let CVINew = 1; 28737let isNewValue = 1; 28738let mayStore = 1; 28739let BaseOpcode = "V6_vS32b_ai"; 28740let DecoderNamespace = "EXT_mmvec"; 28741let opNewValue = 3; 28742} 28743def V6_vS32b_new_pred_pi : HInst< 28744(outs IntRegs:$Rx32), 28745(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28746"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28747tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28748let Inst{7-3} = 0b01000; 28749let Inst{13-13} = 0b0; 28750let Inst{31-21} = 0b00101001101; 28751let isPredicated = 1; 28752let addrMode = PostInc; 28753let accessSize = HVXVectorAccess; 28754let isNVStore = 1; 28755let isCVI = 1; 28756let CVINew = 1; 28757let isNewValue = 1; 28758let mayStore = 1; 28759let BaseOpcode = "V6_vS32b_pi"; 28760let DecoderNamespace = "EXT_mmvec"; 28761let opNewValue = 4; 28762let Constraints = "$Rx32 = $Rx32in"; 28763} 28764def V6_vS32b_new_pred_ppu : HInst< 28765(outs IntRegs:$Rx32), 28766(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28767"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new", 28768tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28769let Inst{10-3} = 0b00001000; 28770let Inst{31-21} = 0b00101011101; 28771let isPredicated = 1; 28772let addrMode = PostInc; 28773let accessSize = HVXVectorAccess; 28774let isNVStore = 1; 28775let isCVI = 1; 28776let CVINew = 1; 28777let isNewValue = 1; 28778let mayStore = 1; 28779let BaseOpcode = "V6_vS32b_ppu"; 28780let DecoderNamespace = "EXT_mmvec"; 28781let opNewValue = 4; 28782let Constraints = "$Rx32 = $Rx32in"; 28783} 28784def V6_vS32b_npred_ai : HInst< 28785(outs), 28786(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28787"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32", 28788tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28789let Inst{7-5} = 0b001; 28790let Inst{31-21} = 0b00101000101; 28791let isPredicated = 1; 28792let isPredicatedFalse = 1; 28793let addrMode = BaseImmOffset; 28794let accessSize = HVXVectorAccess; 28795let isCVI = 1; 28796let mayStore = 1; 28797let BaseOpcode = "V6_vS32b_ai"; 28798let isNVStorable = 1; 28799let DecoderNamespace = "EXT_mmvec"; 28800} 28801def V6_vS32b_npred_pi : HInst< 28802(outs IntRegs:$Rx32), 28803(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28804"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32", 28805tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28806let Inst{7-5} = 0b001; 28807let Inst{13-13} = 0b0; 28808let Inst{31-21} = 0b00101001101; 28809let isPredicated = 1; 28810let isPredicatedFalse = 1; 28811let addrMode = PostInc; 28812let accessSize = HVXVectorAccess; 28813let isCVI = 1; 28814let mayStore = 1; 28815let BaseOpcode = "V6_vS32b_pi"; 28816let isNVStorable = 1; 28817let DecoderNamespace = "EXT_mmvec"; 28818let Constraints = "$Rx32 = $Rx32in"; 28819} 28820def V6_vS32b_npred_ppu : HInst< 28821(outs IntRegs:$Rx32), 28822(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28823"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32", 28824tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28825let Inst{10-5} = 0b000001; 28826let Inst{31-21} = 0b00101011101; 28827let isPredicated = 1; 28828let isPredicatedFalse = 1; 28829let addrMode = PostInc; 28830let accessSize = HVXVectorAccess; 28831let isCVI = 1; 28832let mayStore = 1; 28833let BaseOpcode = "V6_vS32b_ppu"; 28834let isNVStorable = 1; 28835let DecoderNamespace = "EXT_mmvec"; 28836let Constraints = "$Rx32 = $Rx32in"; 28837} 28838def V6_vS32b_nqpred_ai : HInst< 28839(outs), 28840(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28841"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32", 28842tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 28843let Inst{7-5} = 0b001; 28844let Inst{31-21} = 0b00101000100; 28845let addrMode = BaseImmOffset; 28846let accessSize = HVXVectorAccess; 28847let isCVI = 1; 28848let mayStore = 1; 28849let DecoderNamespace = "EXT_mmvec"; 28850} 28851def V6_vS32b_nqpred_pi : HInst< 28852(outs IntRegs:$Rx32), 28853(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28854"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32", 28855tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 28856let Inst{7-5} = 0b001; 28857let Inst{13-13} = 0b0; 28858let Inst{31-21} = 0b00101001100; 28859let addrMode = PostInc; 28860let accessSize = HVXVectorAccess; 28861let isCVI = 1; 28862let mayStore = 1; 28863let DecoderNamespace = "EXT_mmvec"; 28864let Constraints = "$Rx32 = $Rx32in"; 28865} 28866def V6_vS32b_nqpred_ppu : HInst< 28867(outs IntRegs:$Rx32), 28868(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28869"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32", 28870tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 28871let Inst{10-5} = 0b000001; 28872let Inst{31-21} = 0b00101011100; 28873let addrMode = PostInc; 28874let accessSize = HVXVectorAccess; 28875let isCVI = 1; 28876let mayStore = 1; 28877let DecoderNamespace = "EXT_mmvec"; 28878let Constraints = "$Rx32 = $Rx32in"; 28879} 28880def V6_vS32b_nt_ai : HInst< 28881(outs), 28882(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28883"vmem($Rt32+#$Ii):nt = $Vs32", 28884tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel { 28885let Inst{7-5} = 0b000; 28886let Inst{12-11} = 0b00; 28887let Inst{31-21} = 0b00101000011; 28888let addrMode = BaseImmOffset; 28889let accessSize = HVXVectorAccess; 28890let isCVI = 1; 28891let isNonTemporal = 1; 28892let mayStore = 1; 28893let BaseOpcode = "V6_vS32b_ai"; 28894let isNVStorable = 1; 28895let isPredicable = 1; 28896let DecoderNamespace = "EXT_mmvec"; 28897} 28898def V6_vS32b_nt_new_ai : HInst< 28899(outs), 28900(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28901"vmem($Rt32+#$Ii):nt = $Os8.new", 28902tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel { 28903let Inst{7-3} = 0b00100; 28904let Inst{12-11} = 0b00; 28905let Inst{31-21} = 0b00101000011; 28906let addrMode = BaseImmOffset; 28907let accessSize = HVXVectorAccess; 28908let isNVStore = 1; 28909let isCVI = 1; 28910let CVINew = 1; 28911let isNewValue = 1; 28912let isNonTemporal = 1; 28913let mayStore = 1; 28914let BaseOpcode = "V6_vS32b_ai"; 28915let isPredicable = 1; 28916let DecoderNamespace = "EXT_mmvec"; 28917let opNewValue = 2; 28918} 28919def V6_vS32b_nt_new_npred_ai : HInst< 28920(outs), 28921(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28922"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 28923tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28924let Inst{7-3} = 0b01111; 28925let Inst{31-21} = 0b00101000111; 28926let isPredicated = 1; 28927let isPredicatedFalse = 1; 28928let addrMode = BaseImmOffset; 28929let accessSize = HVXVectorAccess; 28930let isNVStore = 1; 28931let isCVI = 1; 28932let CVINew = 1; 28933let isNewValue = 1; 28934let isNonTemporal = 1; 28935let mayStore = 1; 28936let BaseOpcode = "V6_vS32b_ai"; 28937let DecoderNamespace = "EXT_mmvec"; 28938let opNewValue = 3; 28939} 28940def V6_vS32b_nt_new_npred_pi : HInst< 28941(outs IntRegs:$Rx32), 28942(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28943"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 28944tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28945let Inst{7-3} = 0b01111; 28946let Inst{13-13} = 0b0; 28947let Inst{31-21} = 0b00101001111; 28948let isPredicated = 1; 28949let isPredicatedFalse = 1; 28950let addrMode = PostInc; 28951let accessSize = HVXVectorAccess; 28952let isNVStore = 1; 28953let isCVI = 1; 28954let CVINew = 1; 28955let isNewValue = 1; 28956let isNonTemporal = 1; 28957let mayStore = 1; 28958let BaseOpcode = "V6_vS32b_pi"; 28959let DecoderNamespace = "EXT_mmvec"; 28960let opNewValue = 4; 28961let Constraints = "$Rx32 = $Rx32in"; 28962} 28963def V6_vS32b_nt_new_npred_ppu : HInst< 28964(outs IntRegs:$Rx32), 28965(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 28966"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 28967tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 28968let Inst{10-3} = 0b00001111; 28969let Inst{31-21} = 0b00101011111; 28970let isPredicated = 1; 28971let isPredicatedFalse = 1; 28972let addrMode = PostInc; 28973let accessSize = HVXVectorAccess; 28974let isNVStore = 1; 28975let isCVI = 1; 28976let CVINew = 1; 28977let isNewValue = 1; 28978let isNonTemporal = 1; 28979let mayStore = 1; 28980let BaseOpcode = "V6_vS32b_ppu"; 28981let DecoderNamespace = "EXT_mmvec"; 28982let opNewValue = 4; 28983let Constraints = "$Rx32 = $Rx32in"; 28984} 28985def V6_vS32b_nt_new_pi : HInst< 28986(outs IntRegs:$Rx32), 28987(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28988"vmem($Rx32++#$Ii):nt = $Os8.new", 28989tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel { 28990let Inst{7-3} = 0b00100; 28991let Inst{13-11} = 0b000; 28992let Inst{31-21} = 0b00101001011; 28993let addrMode = PostInc; 28994let accessSize = HVXVectorAccess; 28995let isNVStore = 1; 28996let isCVI = 1; 28997let CVINew = 1; 28998let isNewValue = 1; 28999let isNonTemporal = 1; 29000let mayStore = 1; 29001let BaseOpcode = "V6_vS32b_pi"; 29002let isPredicable = 1; 29003let DecoderNamespace = "EXT_mmvec"; 29004let opNewValue = 3; 29005let Constraints = "$Rx32 = $Rx32in"; 29006} 29007def V6_vS32b_nt_new_ppu : HInst< 29008(outs IntRegs:$Rx32), 29009(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29010"vmem($Rx32++$Mu2):nt = $Os8.new", 29011tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 29012let Inst{12-3} = 0b0000000100; 29013let Inst{31-21} = 0b00101011011; 29014let addrMode = PostInc; 29015let accessSize = HVXVectorAccess; 29016let isNVStore = 1; 29017let isCVI = 1; 29018let CVINew = 1; 29019let isNewValue = 1; 29020let isNonTemporal = 1; 29021let mayStore = 1; 29022let BaseOpcode = "V6_vS32b_ppu"; 29023let isPredicable = 1; 29024let DecoderNamespace = "EXT_mmvec"; 29025let opNewValue = 3; 29026let Constraints = "$Rx32 = $Rx32in"; 29027} 29028def V6_vS32b_nt_new_pred_ai : HInst< 29029(outs), 29030(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29031"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 29032tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29033let Inst{7-3} = 0b01010; 29034let Inst{31-21} = 0b00101000111; 29035let isPredicated = 1; 29036let addrMode = BaseImmOffset; 29037let accessSize = HVXVectorAccess; 29038let isNVStore = 1; 29039let isCVI = 1; 29040let CVINew = 1; 29041let isNewValue = 1; 29042let isNonTemporal = 1; 29043let mayStore = 1; 29044let BaseOpcode = "V6_vS32b_ai"; 29045let DecoderNamespace = "EXT_mmvec"; 29046let opNewValue = 3; 29047} 29048def V6_vS32b_nt_new_pred_pi : HInst< 29049(outs IntRegs:$Rx32), 29050(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29051"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 29052tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29053let Inst{7-3} = 0b01010; 29054let Inst{13-13} = 0b0; 29055let Inst{31-21} = 0b00101001111; 29056let isPredicated = 1; 29057let addrMode = PostInc; 29058let accessSize = HVXVectorAccess; 29059let isNVStore = 1; 29060let isCVI = 1; 29061let CVINew = 1; 29062let isNewValue = 1; 29063let isNonTemporal = 1; 29064let mayStore = 1; 29065let BaseOpcode = "V6_vS32b_pi"; 29066let DecoderNamespace = "EXT_mmvec"; 29067let opNewValue = 4; 29068let Constraints = "$Rx32 = $Rx32in"; 29069} 29070def V6_vS32b_nt_new_pred_ppu : HInst< 29071(outs IntRegs:$Rx32), 29072(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29073"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 29074tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29075let Inst{10-3} = 0b00001010; 29076let Inst{31-21} = 0b00101011111; 29077let isPredicated = 1; 29078let addrMode = PostInc; 29079let accessSize = HVXVectorAccess; 29080let isNVStore = 1; 29081let isCVI = 1; 29082let CVINew = 1; 29083let isNewValue = 1; 29084let isNonTemporal = 1; 29085let mayStore = 1; 29086let BaseOpcode = "V6_vS32b_ppu"; 29087let DecoderNamespace = "EXT_mmvec"; 29088let opNewValue = 4; 29089let Constraints = "$Rx32 = $Rx32in"; 29090} 29091def V6_vS32b_nt_npred_ai : HInst< 29092(outs), 29093(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29094"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29095tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29096let Inst{7-5} = 0b001; 29097let Inst{31-21} = 0b00101000111; 29098let isPredicated = 1; 29099let isPredicatedFalse = 1; 29100let addrMode = BaseImmOffset; 29101let accessSize = HVXVectorAccess; 29102let isCVI = 1; 29103let isNonTemporal = 1; 29104let mayStore = 1; 29105let BaseOpcode = "V6_vS32b_ai"; 29106let isNVStorable = 1; 29107let DecoderNamespace = "EXT_mmvec"; 29108} 29109def V6_vS32b_nt_npred_pi : HInst< 29110(outs IntRegs:$Rx32), 29111(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29112"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29113tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29114let Inst{7-5} = 0b001; 29115let Inst{13-13} = 0b0; 29116let Inst{31-21} = 0b00101001111; 29117let isPredicated = 1; 29118let isPredicatedFalse = 1; 29119let addrMode = PostInc; 29120let accessSize = HVXVectorAccess; 29121let isCVI = 1; 29122let isNonTemporal = 1; 29123let mayStore = 1; 29124let BaseOpcode = "V6_vS32b_pi"; 29125let isNVStorable = 1; 29126let DecoderNamespace = "EXT_mmvec"; 29127let Constraints = "$Rx32 = $Rx32in"; 29128} 29129def V6_vS32b_nt_npred_ppu : HInst< 29130(outs IntRegs:$Rx32), 29131(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29132"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29133tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29134let Inst{10-5} = 0b000001; 29135let Inst{31-21} = 0b00101011111; 29136let isPredicated = 1; 29137let isPredicatedFalse = 1; 29138let addrMode = PostInc; 29139let accessSize = HVXVectorAccess; 29140let isCVI = 1; 29141let isNonTemporal = 1; 29142let mayStore = 1; 29143let BaseOpcode = "V6_vS32b_ppu"; 29144let isNVStorable = 1; 29145let DecoderNamespace = "EXT_mmvec"; 29146let Constraints = "$Rx32 = $Rx32in"; 29147} 29148def V6_vS32b_nt_nqpred_ai : HInst< 29149(outs), 29150(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29151"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29152tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29153let Inst{7-5} = 0b001; 29154let Inst{31-21} = 0b00101000110; 29155let addrMode = BaseImmOffset; 29156let accessSize = HVXVectorAccess; 29157let isCVI = 1; 29158let isNonTemporal = 1; 29159let mayStore = 1; 29160let DecoderNamespace = "EXT_mmvec"; 29161} 29162def V6_vS32b_nt_nqpred_pi : HInst< 29163(outs IntRegs:$Rx32), 29164(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29165"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29166tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29167let Inst{7-5} = 0b001; 29168let Inst{13-13} = 0b0; 29169let Inst{31-21} = 0b00101001110; 29170let addrMode = PostInc; 29171let accessSize = HVXVectorAccess; 29172let isCVI = 1; 29173let isNonTemporal = 1; 29174let mayStore = 1; 29175let DecoderNamespace = "EXT_mmvec"; 29176let Constraints = "$Rx32 = $Rx32in"; 29177} 29178def V6_vS32b_nt_nqpred_ppu : HInst< 29179(outs IntRegs:$Rx32), 29180(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29181"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29182tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29183let Inst{10-5} = 0b000001; 29184let Inst{31-21} = 0b00101011110; 29185let addrMode = PostInc; 29186let accessSize = HVXVectorAccess; 29187let isCVI = 1; 29188let isNonTemporal = 1; 29189let mayStore = 1; 29190let DecoderNamespace = "EXT_mmvec"; 29191let Constraints = "$Rx32 = $Rx32in"; 29192} 29193def V6_vS32b_nt_pi : HInst< 29194(outs IntRegs:$Rx32), 29195(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29196"vmem($Rx32++#$Ii):nt = $Vs32", 29197tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 29198let Inst{7-5} = 0b000; 29199let Inst{13-11} = 0b000; 29200let Inst{31-21} = 0b00101001011; 29201let addrMode = PostInc; 29202let accessSize = HVXVectorAccess; 29203let isCVI = 1; 29204let isNonTemporal = 1; 29205let mayStore = 1; 29206let BaseOpcode = "V6_vS32b_pi"; 29207let isNVStorable = 1; 29208let isPredicable = 1; 29209let DecoderNamespace = "EXT_mmvec"; 29210let Constraints = "$Rx32 = $Rx32in"; 29211} 29212def V6_vS32b_nt_ppu : HInst< 29213(outs IntRegs:$Rx32), 29214(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29215"vmem($Rx32++$Mu2):nt = $Vs32", 29216tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29217let Inst{12-5} = 0b00000000; 29218let Inst{31-21} = 0b00101011011; 29219let addrMode = PostInc; 29220let accessSize = HVXVectorAccess; 29221let isCVI = 1; 29222let isNonTemporal = 1; 29223let mayStore = 1; 29224let BaseOpcode = "V6_vS32b_ppu"; 29225let isNVStorable = 1; 29226let isPredicable = 1; 29227let DecoderNamespace = "EXT_mmvec"; 29228let Constraints = "$Rx32 = $Rx32in"; 29229} 29230def V6_vS32b_nt_pred_ai : HInst< 29231(outs), 29232(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29233"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29234tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29235let Inst{7-5} = 0b000; 29236let Inst{31-21} = 0b00101000111; 29237let isPredicated = 1; 29238let addrMode = BaseImmOffset; 29239let accessSize = HVXVectorAccess; 29240let isCVI = 1; 29241let isNonTemporal = 1; 29242let mayStore = 1; 29243let BaseOpcode = "V6_vS32b_ai"; 29244let isNVStorable = 1; 29245let DecoderNamespace = "EXT_mmvec"; 29246} 29247def V6_vS32b_nt_pred_pi : HInst< 29248(outs IntRegs:$Rx32), 29249(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29250"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29251tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29252let Inst{7-5} = 0b000; 29253let Inst{13-13} = 0b0; 29254let Inst{31-21} = 0b00101001111; 29255let isPredicated = 1; 29256let addrMode = PostInc; 29257let accessSize = HVXVectorAccess; 29258let isCVI = 1; 29259let isNonTemporal = 1; 29260let mayStore = 1; 29261let BaseOpcode = "V6_vS32b_pi"; 29262let isNVStorable = 1; 29263let DecoderNamespace = "EXT_mmvec"; 29264let Constraints = "$Rx32 = $Rx32in"; 29265} 29266def V6_vS32b_nt_pred_ppu : HInst< 29267(outs IntRegs:$Rx32), 29268(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29269"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29270tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29271let Inst{10-5} = 0b000000; 29272let Inst{31-21} = 0b00101011111; 29273let isPredicated = 1; 29274let addrMode = PostInc; 29275let accessSize = HVXVectorAccess; 29276let isCVI = 1; 29277let isNonTemporal = 1; 29278let mayStore = 1; 29279let BaseOpcode = "V6_vS32b_ppu"; 29280let isNVStorable = 1; 29281let DecoderNamespace = "EXT_mmvec"; 29282let Constraints = "$Rx32 = $Rx32in"; 29283} 29284def V6_vS32b_nt_qpred_ai : HInst< 29285(outs), 29286(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29287"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29288tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29289let Inst{7-5} = 0b000; 29290let Inst{31-21} = 0b00101000110; 29291let addrMode = BaseImmOffset; 29292let accessSize = HVXVectorAccess; 29293let isCVI = 1; 29294let isNonTemporal = 1; 29295let mayStore = 1; 29296let DecoderNamespace = "EXT_mmvec"; 29297} 29298def V6_vS32b_nt_qpred_pi : HInst< 29299(outs IntRegs:$Rx32), 29300(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29301"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29302tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29303let Inst{7-5} = 0b000; 29304let Inst{13-13} = 0b0; 29305let Inst{31-21} = 0b00101001110; 29306let addrMode = PostInc; 29307let accessSize = HVXVectorAccess; 29308let isCVI = 1; 29309let isNonTemporal = 1; 29310let mayStore = 1; 29311let DecoderNamespace = "EXT_mmvec"; 29312let Constraints = "$Rx32 = $Rx32in"; 29313} 29314def V6_vS32b_nt_qpred_ppu : HInst< 29315(outs IntRegs:$Rx32), 29316(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29317"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29318tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29319let Inst{10-5} = 0b000000; 29320let Inst{31-21} = 0b00101011110; 29321let addrMode = PostInc; 29322let accessSize = HVXVectorAccess; 29323let isCVI = 1; 29324let isNonTemporal = 1; 29325let mayStore = 1; 29326let DecoderNamespace = "EXT_mmvec"; 29327let Constraints = "$Rx32 = $Rx32in"; 29328} 29329def V6_vS32b_pi : HInst< 29330(outs IntRegs:$Rx32), 29331(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29332"vmem($Rx32++#$Ii) = $Vs32", 29333tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel { 29334let Inst{7-5} = 0b000; 29335let Inst{13-11} = 0b000; 29336let Inst{31-21} = 0b00101001001; 29337let addrMode = PostInc; 29338let accessSize = HVXVectorAccess; 29339let isCVI = 1; 29340let mayStore = 1; 29341let BaseOpcode = "V6_vS32b_pi"; 29342let isNVStorable = 1; 29343let isPredicable = 1; 29344let DecoderNamespace = "EXT_mmvec"; 29345let Constraints = "$Rx32 = $Rx32in"; 29346} 29347def V6_vS32b_ppu : HInst< 29348(outs IntRegs:$Rx32), 29349(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29350"vmem($Rx32++$Mu2) = $Vs32", 29351tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29352let Inst{12-5} = 0b00000000; 29353let Inst{31-21} = 0b00101011001; 29354let addrMode = PostInc; 29355let accessSize = HVXVectorAccess; 29356let isCVI = 1; 29357let mayStore = 1; 29358let BaseOpcode = "V6_vS32b_ppu"; 29359let isNVStorable = 1; 29360let isPredicable = 1; 29361let DecoderNamespace = "EXT_mmvec"; 29362let Constraints = "$Rx32 = $Rx32in"; 29363} 29364def V6_vS32b_pred_ai : HInst< 29365(outs), 29366(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29367"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32", 29368tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29369let Inst{7-5} = 0b000; 29370let Inst{31-21} = 0b00101000101; 29371let isPredicated = 1; 29372let addrMode = BaseImmOffset; 29373let accessSize = HVXVectorAccess; 29374let isCVI = 1; 29375let mayStore = 1; 29376let BaseOpcode = "V6_vS32b_ai"; 29377let isNVStorable = 1; 29378let DecoderNamespace = "EXT_mmvec"; 29379} 29380def V6_vS32b_pred_pi : HInst< 29381(outs IntRegs:$Rx32), 29382(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29383"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32", 29384tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29385let Inst{7-5} = 0b000; 29386let Inst{13-13} = 0b0; 29387let Inst{31-21} = 0b00101001101; 29388let isPredicated = 1; 29389let addrMode = PostInc; 29390let accessSize = HVXVectorAccess; 29391let isCVI = 1; 29392let mayStore = 1; 29393let BaseOpcode = "V6_vS32b_pi"; 29394let isNVStorable = 1; 29395let DecoderNamespace = "EXT_mmvec"; 29396let Constraints = "$Rx32 = $Rx32in"; 29397} 29398def V6_vS32b_pred_ppu : HInst< 29399(outs IntRegs:$Rx32), 29400(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29401"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32", 29402tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29403let Inst{10-5} = 0b000000; 29404let Inst{31-21} = 0b00101011101; 29405let isPredicated = 1; 29406let addrMode = PostInc; 29407let accessSize = HVXVectorAccess; 29408let isCVI = 1; 29409let mayStore = 1; 29410let BaseOpcode = "V6_vS32b_ppu"; 29411let isNVStorable = 1; 29412let DecoderNamespace = "EXT_mmvec"; 29413let Constraints = "$Rx32 = $Rx32in"; 29414} 29415def V6_vS32b_qpred_ai : HInst< 29416(outs), 29417(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29418"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32", 29419tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29420let Inst{7-5} = 0b000; 29421let Inst{31-21} = 0b00101000100; 29422let addrMode = BaseImmOffset; 29423let accessSize = HVXVectorAccess; 29424let isCVI = 1; 29425let mayStore = 1; 29426let DecoderNamespace = "EXT_mmvec"; 29427} 29428def V6_vS32b_qpred_pi : HInst< 29429(outs IntRegs:$Rx32), 29430(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29431"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32", 29432tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29433let Inst{7-5} = 0b000; 29434let Inst{13-13} = 0b0; 29435let Inst{31-21} = 0b00101001100; 29436let addrMode = PostInc; 29437let accessSize = HVXVectorAccess; 29438let isCVI = 1; 29439let mayStore = 1; 29440let DecoderNamespace = "EXT_mmvec"; 29441let Constraints = "$Rx32 = $Rx32in"; 29442} 29443def V6_vS32b_qpred_ppu : HInst< 29444(outs IntRegs:$Rx32), 29445(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29446"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32", 29447tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29448let Inst{10-5} = 0b000000; 29449let Inst{31-21} = 0b00101011100; 29450let addrMode = PostInc; 29451let accessSize = HVXVectorAccess; 29452let isCVI = 1; 29453let mayStore = 1; 29454let DecoderNamespace = "EXT_mmvec"; 29455let Constraints = "$Rx32 = $Rx32in"; 29456} 29457def V6_vS32b_srls_ai : HInst< 29458(outs), 29459(ins IntRegs:$Rt32, s4_0Imm:$Ii), 29460"vmem($Rt32+#$Ii):scatter_release", 29461tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> { 29462let Inst{7-0} = 0b00101000; 29463let Inst{12-11} = 0b00; 29464let Inst{31-21} = 0b00101000001; 29465let addrMode = BaseImmOffset; 29466let accessSize = HVXVectorAccess; 29467let isCVI = 1; 29468let CVINew = 1; 29469let mayStore = 1; 29470let DecoderNamespace = "EXT_mmvec"; 29471} 29472def V6_vS32b_srls_pi : HInst< 29473(outs IntRegs:$Rx32), 29474(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 29475"vmem($Rx32++#$Ii):scatter_release", 29476tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> { 29477let Inst{7-0} = 0b00101000; 29478let Inst{13-11} = 0b000; 29479let Inst{31-21} = 0b00101001001; 29480let addrMode = PostInc; 29481let accessSize = HVXVectorAccess; 29482let isCVI = 1; 29483let CVINew = 1; 29484let mayStore = 1; 29485let DecoderNamespace = "EXT_mmvec"; 29486let Constraints = "$Rx32 = $Rx32in"; 29487} 29488def V6_vS32b_srls_ppu : HInst< 29489(outs IntRegs:$Rx32), 29490(ins IntRegs:$Rx32in, ModRegs:$Mu2), 29491"vmem($Rx32++$Mu2):scatter_release", 29492tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> { 29493let Inst{12-0} = 0b0000000101000; 29494let Inst{31-21} = 0b00101011001; 29495let addrMode = PostInc; 29496let accessSize = HVXVectorAccess; 29497let isCVI = 1; 29498let CVINew = 1; 29499let mayStore = 1; 29500let DecoderNamespace = "EXT_mmvec"; 29501let Constraints = "$Rx32 = $Rx32in"; 29502} 29503def V6_vabsb : HInst< 29504(outs HvxVR:$Vd32), 29505(ins HvxVR:$Vu32), 29506"$Vd32.b = vabs($Vu32.b)", 29507tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29508let Inst{7-5} = 0b100; 29509let Inst{13-13} = 0b0; 29510let Inst{31-16} = 0b0001111000000001; 29511let hasNewValue = 1; 29512let opNewValue = 0; 29513let isCVI = 1; 29514let DecoderNamespace = "EXT_mmvec"; 29515} 29516def V6_vabsb_alt : HInst< 29517(outs HvxVR:$Vd32), 29518(ins HvxVR:$Vu32), 29519"$Vd32 = vabsb($Vu32)", 29520PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29521let hasNewValue = 1; 29522let opNewValue = 0; 29523let isCVI = 1; 29524let isPseudo = 1; 29525let isCodeGenOnly = 1; 29526let DecoderNamespace = "EXT_mmvec"; 29527} 29528def V6_vabsb_sat : HInst< 29529(outs HvxVR:$Vd32), 29530(ins HvxVR:$Vu32), 29531"$Vd32.b = vabs($Vu32.b):sat", 29532tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29533let Inst{7-5} = 0b101; 29534let Inst{13-13} = 0b0; 29535let Inst{31-16} = 0b0001111000000001; 29536let hasNewValue = 1; 29537let opNewValue = 0; 29538let isCVI = 1; 29539let DecoderNamespace = "EXT_mmvec"; 29540} 29541def V6_vabsb_sat_alt : HInst< 29542(outs HvxVR:$Vd32), 29543(ins HvxVR:$Vu32), 29544"$Vd32 = vabsb($Vu32):sat", 29545PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29546let hasNewValue = 1; 29547let opNewValue = 0; 29548let isCVI = 1; 29549let isPseudo = 1; 29550let isCodeGenOnly = 1; 29551let DecoderNamespace = "EXT_mmvec"; 29552} 29553def V6_vabsdiffh : HInst< 29554(outs HvxVR:$Vd32), 29555(ins HvxVR:$Vu32, HvxVR:$Vv32), 29556"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)", 29557tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29558let Inst{7-5} = 0b001; 29559let Inst{13-13} = 0b0; 29560let Inst{31-21} = 0b00011100110; 29561let hasNewValue = 1; 29562let opNewValue = 0; 29563let isCVI = 1; 29564let DecoderNamespace = "EXT_mmvec"; 29565} 29566def V6_vabsdiffh_alt : HInst< 29567(outs HvxVR:$Vd32), 29568(ins HvxVR:$Vu32, HvxVR:$Vv32), 29569"$Vd32 = vabsdiffh($Vu32,$Vv32)", 29570PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29571let hasNewValue = 1; 29572let opNewValue = 0; 29573let isCVI = 1; 29574let isPseudo = 1; 29575let isCodeGenOnly = 1; 29576let DecoderNamespace = "EXT_mmvec"; 29577} 29578def V6_vabsdiffub : HInst< 29579(outs HvxVR:$Vd32), 29580(ins HvxVR:$Vu32, HvxVR:$Vv32), 29581"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)", 29582tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29583let Inst{7-5} = 0b000; 29584let Inst{13-13} = 0b0; 29585let Inst{31-21} = 0b00011100110; 29586let hasNewValue = 1; 29587let opNewValue = 0; 29588let isCVI = 1; 29589let DecoderNamespace = "EXT_mmvec"; 29590} 29591def V6_vabsdiffub_alt : HInst< 29592(outs HvxVR:$Vd32), 29593(ins HvxVR:$Vu32, HvxVR:$Vv32), 29594"$Vd32 = vabsdiffub($Vu32,$Vv32)", 29595PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29596let hasNewValue = 1; 29597let opNewValue = 0; 29598let isCVI = 1; 29599let isPseudo = 1; 29600let isCodeGenOnly = 1; 29601let DecoderNamespace = "EXT_mmvec"; 29602} 29603def V6_vabsdiffuh : HInst< 29604(outs HvxVR:$Vd32), 29605(ins HvxVR:$Vu32, HvxVR:$Vv32), 29606"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)", 29607tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29608let Inst{7-5} = 0b010; 29609let Inst{13-13} = 0b0; 29610let Inst{31-21} = 0b00011100110; 29611let hasNewValue = 1; 29612let opNewValue = 0; 29613let isCVI = 1; 29614let DecoderNamespace = "EXT_mmvec"; 29615} 29616def V6_vabsdiffuh_alt : HInst< 29617(outs HvxVR:$Vd32), 29618(ins HvxVR:$Vu32, HvxVR:$Vv32), 29619"$Vd32 = vabsdiffuh($Vu32,$Vv32)", 29620PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29621let hasNewValue = 1; 29622let opNewValue = 0; 29623let isCVI = 1; 29624let isPseudo = 1; 29625let isCodeGenOnly = 1; 29626let DecoderNamespace = "EXT_mmvec"; 29627} 29628def V6_vabsdiffw : HInst< 29629(outs HvxVR:$Vd32), 29630(ins HvxVR:$Vu32, HvxVR:$Vv32), 29631"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)", 29632tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29633let Inst{7-5} = 0b011; 29634let Inst{13-13} = 0b0; 29635let Inst{31-21} = 0b00011100110; 29636let hasNewValue = 1; 29637let opNewValue = 0; 29638let isCVI = 1; 29639let DecoderNamespace = "EXT_mmvec"; 29640} 29641def V6_vabsdiffw_alt : HInst< 29642(outs HvxVR:$Vd32), 29643(ins HvxVR:$Vu32, HvxVR:$Vv32), 29644"$Vd32 = vabsdiffw($Vu32,$Vv32)", 29645PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29646let hasNewValue = 1; 29647let opNewValue = 0; 29648let isCVI = 1; 29649let isPseudo = 1; 29650let isCodeGenOnly = 1; 29651let DecoderNamespace = "EXT_mmvec"; 29652} 29653def V6_vabsh : HInst< 29654(outs HvxVR:$Vd32), 29655(ins HvxVR:$Vu32), 29656"$Vd32.h = vabs($Vu32.h)", 29657tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29658let Inst{7-5} = 0b000; 29659let Inst{13-13} = 0b0; 29660let Inst{31-16} = 0b0001111000000000; 29661let hasNewValue = 1; 29662let opNewValue = 0; 29663let isCVI = 1; 29664let DecoderNamespace = "EXT_mmvec"; 29665} 29666def V6_vabsh_alt : HInst< 29667(outs HvxVR:$Vd32), 29668(ins HvxVR:$Vu32), 29669"$Vd32 = vabsh($Vu32)", 29670PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29671let hasNewValue = 1; 29672let opNewValue = 0; 29673let isCVI = 1; 29674let isPseudo = 1; 29675let isCodeGenOnly = 1; 29676let DecoderNamespace = "EXT_mmvec"; 29677} 29678def V6_vabsh_sat : HInst< 29679(outs HvxVR:$Vd32), 29680(ins HvxVR:$Vu32), 29681"$Vd32.h = vabs($Vu32.h):sat", 29682tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29683let Inst{7-5} = 0b001; 29684let Inst{13-13} = 0b0; 29685let Inst{31-16} = 0b0001111000000000; 29686let hasNewValue = 1; 29687let opNewValue = 0; 29688let isCVI = 1; 29689let DecoderNamespace = "EXT_mmvec"; 29690} 29691def V6_vabsh_sat_alt : HInst< 29692(outs HvxVR:$Vd32), 29693(ins HvxVR:$Vu32), 29694"$Vd32 = vabsh($Vu32):sat", 29695PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29696let hasNewValue = 1; 29697let opNewValue = 0; 29698let isCVI = 1; 29699let isPseudo = 1; 29700let isCodeGenOnly = 1; 29701let DecoderNamespace = "EXT_mmvec"; 29702} 29703def V6_vabsub_alt : HInst< 29704(outs HvxVR:$Vd32), 29705(ins HvxVR:$Vu32), 29706"$Vd32.ub = vabs($Vu32.b)", 29707tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29708let hasNewValue = 1; 29709let opNewValue = 0; 29710let isCVI = 1; 29711let isPseudo = 1; 29712let isCodeGenOnly = 1; 29713let DecoderNamespace = "EXT_mmvec"; 29714} 29715def V6_vabsuh_alt : HInst< 29716(outs HvxVR:$Vd32), 29717(ins HvxVR:$Vu32), 29718"$Vd32.uh = vabs($Vu32.h)", 29719tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29720let hasNewValue = 1; 29721let opNewValue = 0; 29722let isCVI = 1; 29723let isPseudo = 1; 29724let isCodeGenOnly = 1; 29725let DecoderNamespace = "EXT_mmvec"; 29726} 29727def V6_vabsuw_alt : HInst< 29728(outs HvxVR:$Vd32), 29729(ins HvxVR:$Vu32), 29730"$Vd32.uw = vabs($Vu32.w)", 29731tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 29732let hasNewValue = 1; 29733let opNewValue = 0; 29734let isCVI = 1; 29735let isPseudo = 1; 29736let isCodeGenOnly = 1; 29737let DecoderNamespace = "EXT_mmvec"; 29738} 29739def V6_vabsw : HInst< 29740(outs HvxVR:$Vd32), 29741(ins HvxVR:$Vu32), 29742"$Vd32.w = vabs($Vu32.w)", 29743tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29744let Inst{7-5} = 0b010; 29745let Inst{13-13} = 0b0; 29746let Inst{31-16} = 0b0001111000000000; 29747let hasNewValue = 1; 29748let opNewValue = 0; 29749let isCVI = 1; 29750let DecoderNamespace = "EXT_mmvec"; 29751} 29752def V6_vabsw_alt : HInst< 29753(outs HvxVR:$Vd32), 29754(ins HvxVR:$Vu32), 29755"$Vd32 = vabsw($Vu32)", 29756PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29757let hasNewValue = 1; 29758let opNewValue = 0; 29759let isCVI = 1; 29760let isPseudo = 1; 29761let isCodeGenOnly = 1; 29762let DecoderNamespace = "EXT_mmvec"; 29763} 29764def V6_vabsw_sat : HInst< 29765(outs HvxVR:$Vd32), 29766(ins HvxVR:$Vu32), 29767"$Vd32.w = vabs($Vu32.w):sat", 29768tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 29769let Inst{7-5} = 0b011; 29770let Inst{13-13} = 0b0; 29771let Inst{31-16} = 0b0001111000000000; 29772let hasNewValue = 1; 29773let opNewValue = 0; 29774let isCVI = 1; 29775let DecoderNamespace = "EXT_mmvec"; 29776} 29777def V6_vabsw_sat_alt : HInst< 29778(outs HvxVR:$Vd32), 29779(ins HvxVR:$Vu32), 29780"$Vd32 = vabsw($Vu32):sat", 29781PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29782let hasNewValue = 1; 29783let opNewValue = 0; 29784let isCVI = 1; 29785let isPseudo = 1; 29786let isCodeGenOnly = 1; 29787let DecoderNamespace = "EXT_mmvec"; 29788} 29789def V6_vaddb : HInst< 29790(outs HvxVR:$Vd32), 29791(ins HvxVR:$Vu32, HvxVR:$Vv32), 29792"$Vd32.b = vadd($Vu32.b,$Vv32.b)", 29793tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 29794let Inst{7-5} = 0b110; 29795let Inst{13-13} = 0b0; 29796let Inst{31-21} = 0b00011111101; 29797let hasNewValue = 1; 29798let opNewValue = 0; 29799let isCVI = 1; 29800let DecoderNamespace = "EXT_mmvec"; 29801} 29802def V6_vaddb_alt : HInst< 29803(outs HvxVR:$Vd32), 29804(ins HvxVR:$Vu32, HvxVR:$Vv32), 29805"$Vd32 = vaddb($Vu32,$Vv32)", 29806PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29807let hasNewValue = 1; 29808let opNewValue = 0; 29809let isCVI = 1; 29810let isPseudo = 1; 29811let isCodeGenOnly = 1; 29812let DecoderNamespace = "EXT_mmvec"; 29813} 29814def V6_vaddb_dv : HInst< 29815(outs HvxWR:$Vdd32), 29816(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29817"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)", 29818tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 29819let Inst{7-5} = 0b100; 29820let Inst{13-13} = 0b0; 29821let Inst{31-21} = 0b00011100011; 29822let hasNewValue = 1; 29823let opNewValue = 0; 29824let isCVI = 1; 29825let DecoderNamespace = "EXT_mmvec"; 29826} 29827def V6_vaddb_dv_alt : HInst< 29828(outs HvxWR:$Vdd32), 29829(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29830"$Vdd32 = vaddb($Vuu32,$Vvv32)", 29831PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29832let hasNewValue = 1; 29833let opNewValue = 0; 29834let isCVI = 1; 29835let isPseudo = 1; 29836let isCodeGenOnly = 1; 29837let DecoderNamespace = "EXT_mmvec"; 29838} 29839def V6_vaddbnq : HInst< 29840(outs HvxVR:$Vx32), 29841(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29842"if (!$Qv4) $Vx32.b += $Vu32.b", 29843tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29844let Inst{7-5} = 0b011; 29845let Inst{13-13} = 0b1; 29846let Inst{21-16} = 0b000001; 29847let Inst{31-24} = 0b00011110; 29848let hasNewValue = 1; 29849let opNewValue = 0; 29850let isAccumulator = 1; 29851let isCVI = 1; 29852let DecoderNamespace = "EXT_mmvec"; 29853let Constraints = "$Vx32 = $Vx32in"; 29854} 29855def V6_vaddbnq_alt : HInst< 29856(outs HvxVR:$Vx32), 29857(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29858"if (!$Qv4.b) $Vx32.b += $Vu32.b", 29859PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29860let hasNewValue = 1; 29861let opNewValue = 0; 29862let isAccumulator = 1; 29863let isCVI = 1; 29864let isPseudo = 1; 29865let isCodeGenOnly = 1; 29866let DecoderNamespace = "EXT_mmvec"; 29867let Constraints = "$Vx32 = $Vx32in"; 29868} 29869def V6_vaddbq : HInst< 29870(outs HvxVR:$Vx32), 29871(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29872"if ($Qv4) $Vx32.b += $Vu32.b", 29873tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 29874let Inst{7-5} = 0b000; 29875let Inst{13-13} = 0b1; 29876let Inst{21-16} = 0b000001; 29877let Inst{31-24} = 0b00011110; 29878let hasNewValue = 1; 29879let opNewValue = 0; 29880let isAccumulator = 1; 29881let isCVI = 1; 29882let DecoderNamespace = "EXT_mmvec"; 29883let Constraints = "$Vx32 = $Vx32in"; 29884} 29885def V6_vaddbq_alt : HInst< 29886(outs HvxVR:$Vx32), 29887(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 29888"if ($Qv4.b) $Vx32.b += $Vu32.b", 29889PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29890let hasNewValue = 1; 29891let opNewValue = 0; 29892let isAccumulator = 1; 29893let isCVI = 1; 29894let isPseudo = 1; 29895let isCodeGenOnly = 1; 29896let DecoderNamespace = "EXT_mmvec"; 29897let Constraints = "$Vx32 = $Vx32in"; 29898} 29899def V6_vaddbsat : HInst< 29900(outs HvxVR:$Vd32), 29901(ins HvxVR:$Vu32, HvxVR:$Vv32), 29902"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat", 29903tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 29904let Inst{7-5} = 0b000; 29905let Inst{13-13} = 0b0; 29906let Inst{31-21} = 0b00011111000; 29907let hasNewValue = 1; 29908let opNewValue = 0; 29909let isCVI = 1; 29910let DecoderNamespace = "EXT_mmvec"; 29911} 29912def V6_vaddbsat_alt : HInst< 29913(outs HvxVR:$Vd32), 29914(ins HvxVR:$Vu32, HvxVR:$Vv32), 29915"$Vd32 = vaddb($Vu32,$Vv32):sat", 29916PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29917let hasNewValue = 1; 29918let opNewValue = 0; 29919let isCVI = 1; 29920let isPseudo = 1; 29921let isCodeGenOnly = 1; 29922let DecoderNamespace = "EXT_mmvec"; 29923} 29924def V6_vaddbsat_dv : HInst< 29925(outs HvxWR:$Vdd32), 29926(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29927"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat", 29928tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 29929let Inst{7-5} = 0b000; 29930let Inst{13-13} = 0b0; 29931let Inst{31-21} = 0b00011110101; 29932let hasNewValue = 1; 29933let opNewValue = 0; 29934let isCVI = 1; 29935let DecoderNamespace = "EXT_mmvec"; 29936} 29937def V6_vaddbsat_dv_alt : HInst< 29938(outs HvxWR:$Vdd32), 29939(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 29940"$Vdd32 = vaddb($Vuu32,$Vvv32):sat", 29941PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 29942let hasNewValue = 1; 29943let opNewValue = 0; 29944let isCVI = 1; 29945let isPseudo = 1; 29946let isCodeGenOnly = 1; 29947let DecoderNamespace = "EXT_mmvec"; 29948} 29949def V6_vaddcarry : HInst< 29950(outs HvxVR:$Vd32, HvxQR:$Qx4), 29951(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 29952"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry", 29953tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 29954let Inst{7-7} = 0b0; 29955let Inst{13-13} = 0b1; 29956let Inst{31-21} = 0b00011100101; 29957let hasNewValue = 1; 29958let opNewValue = 0; 29959let isCVI = 1; 29960let DecoderNamespace = "EXT_mmvec"; 29961let Constraints = "$Qx4 = $Qx4in"; 29962} 29963def V6_vaddcarryo : HInst< 29964(outs HvxVR:$Vd32, HvxQR:$Qe4), 29965(ins HvxVR:$Vu32, HvxVR:$Vv32), 29966"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry", 29967tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 29968let Inst{7-7} = 0b0; 29969let Inst{13-13} = 0b1; 29970let Inst{31-21} = 0b00011101101; 29971let hasNewValue = 1; 29972let opNewValue = 0; 29973let hasNewValue2 = 1; 29974let opNewValue2 = 1; 29975let isCVI = 1; 29976let DecoderNamespace = "EXT_mmvec"; 29977} 29978def V6_vaddcarrysat : HInst< 29979(outs HvxVR:$Vd32), 29980(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4), 29981"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat", 29982tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> { 29983let Inst{7-7} = 0b0; 29984let Inst{13-13} = 0b1; 29985let Inst{31-21} = 0b00011101100; 29986let hasNewValue = 1; 29987let opNewValue = 0; 29988let isCVI = 1; 29989let DecoderNamespace = "EXT_mmvec"; 29990} 29991def V6_vaddclbh : HInst< 29992(outs HvxVR:$Vd32), 29993(ins HvxVR:$Vu32, HvxVR:$Vv32), 29994"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)", 29995tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 29996let Inst{7-5} = 0b000; 29997let Inst{13-13} = 0b1; 29998let Inst{31-21} = 0b00011111000; 29999let hasNewValue = 1; 30000let opNewValue = 0; 30001let isCVI = 1; 30002let DecoderNamespace = "EXT_mmvec"; 30003} 30004def V6_vaddclbw : HInst< 30005(outs HvxVR:$Vd32), 30006(ins HvxVR:$Vu32, HvxVR:$Vv32), 30007"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)", 30008tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 30009let Inst{7-5} = 0b001; 30010let Inst{13-13} = 0b1; 30011let Inst{31-21} = 0b00011111000; 30012let hasNewValue = 1; 30013let opNewValue = 0; 30014let isCVI = 1; 30015let DecoderNamespace = "EXT_mmvec"; 30016} 30017def V6_vaddh : HInst< 30018(outs HvxVR:$Vd32), 30019(ins HvxVR:$Vu32, HvxVR:$Vv32), 30020"$Vd32.h = vadd($Vu32.h,$Vv32.h)", 30021tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30022let Inst{7-5} = 0b111; 30023let Inst{13-13} = 0b0; 30024let Inst{31-21} = 0b00011111101; 30025let hasNewValue = 1; 30026let opNewValue = 0; 30027let isCVI = 1; 30028let DecoderNamespace = "EXT_mmvec"; 30029} 30030def V6_vaddh_alt : HInst< 30031(outs HvxVR:$Vd32), 30032(ins HvxVR:$Vu32, HvxVR:$Vv32), 30033"$Vd32 = vaddh($Vu32,$Vv32)", 30034PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30035let hasNewValue = 1; 30036let opNewValue = 0; 30037let isCVI = 1; 30038let isPseudo = 1; 30039let isCodeGenOnly = 1; 30040let DecoderNamespace = "EXT_mmvec"; 30041} 30042def V6_vaddh_dv : HInst< 30043(outs HvxWR:$Vdd32), 30044(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30045"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)", 30046tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30047let Inst{7-5} = 0b101; 30048let Inst{13-13} = 0b0; 30049let Inst{31-21} = 0b00011100011; 30050let hasNewValue = 1; 30051let opNewValue = 0; 30052let isCVI = 1; 30053let DecoderNamespace = "EXT_mmvec"; 30054} 30055def V6_vaddh_dv_alt : HInst< 30056(outs HvxWR:$Vdd32), 30057(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30058"$Vdd32 = vaddh($Vuu32,$Vvv32)", 30059PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30060let hasNewValue = 1; 30061let opNewValue = 0; 30062let isCVI = 1; 30063let isPseudo = 1; 30064let isCodeGenOnly = 1; 30065let DecoderNamespace = "EXT_mmvec"; 30066} 30067def V6_vaddhnq : HInst< 30068(outs HvxVR:$Vx32), 30069(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30070"if (!$Qv4) $Vx32.h += $Vu32.h", 30071tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30072let Inst{7-5} = 0b100; 30073let Inst{13-13} = 0b1; 30074let Inst{21-16} = 0b000001; 30075let Inst{31-24} = 0b00011110; 30076let hasNewValue = 1; 30077let opNewValue = 0; 30078let isAccumulator = 1; 30079let isCVI = 1; 30080let DecoderNamespace = "EXT_mmvec"; 30081let Constraints = "$Vx32 = $Vx32in"; 30082} 30083def V6_vaddhnq_alt : HInst< 30084(outs HvxVR:$Vx32), 30085(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30086"if (!$Qv4.h) $Vx32.h += $Vu32.h", 30087PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30088let hasNewValue = 1; 30089let opNewValue = 0; 30090let isAccumulator = 1; 30091let isCVI = 1; 30092let isPseudo = 1; 30093let isCodeGenOnly = 1; 30094let DecoderNamespace = "EXT_mmvec"; 30095let Constraints = "$Vx32 = $Vx32in"; 30096} 30097def V6_vaddhq : HInst< 30098(outs HvxVR:$Vx32), 30099(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30100"if ($Qv4) $Vx32.h += $Vu32.h", 30101tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30102let Inst{7-5} = 0b001; 30103let Inst{13-13} = 0b1; 30104let Inst{21-16} = 0b000001; 30105let Inst{31-24} = 0b00011110; 30106let hasNewValue = 1; 30107let opNewValue = 0; 30108let isAccumulator = 1; 30109let isCVI = 1; 30110let DecoderNamespace = "EXT_mmvec"; 30111let Constraints = "$Vx32 = $Vx32in"; 30112} 30113def V6_vaddhq_alt : HInst< 30114(outs HvxVR:$Vx32), 30115(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30116"if ($Qv4.h) $Vx32.h += $Vu32.h", 30117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30118let hasNewValue = 1; 30119let opNewValue = 0; 30120let isAccumulator = 1; 30121let isCVI = 1; 30122let isPseudo = 1; 30123let isCodeGenOnly = 1; 30124let DecoderNamespace = "EXT_mmvec"; 30125let Constraints = "$Vx32 = $Vx32in"; 30126} 30127def V6_vaddhsat : HInst< 30128(outs HvxVR:$Vd32), 30129(ins HvxVR:$Vu32, HvxVR:$Vv32), 30130"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat", 30131tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30132let Inst{7-5} = 0b011; 30133let Inst{13-13} = 0b0; 30134let Inst{31-21} = 0b00011100010; 30135let hasNewValue = 1; 30136let opNewValue = 0; 30137let isCVI = 1; 30138let DecoderNamespace = "EXT_mmvec"; 30139} 30140def V6_vaddhsat_alt : HInst< 30141(outs HvxVR:$Vd32), 30142(ins HvxVR:$Vu32, HvxVR:$Vv32), 30143"$Vd32 = vaddh($Vu32,$Vv32):sat", 30144PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30145let hasNewValue = 1; 30146let opNewValue = 0; 30147let isCVI = 1; 30148let isPseudo = 1; 30149let isCodeGenOnly = 1; 30150let DecoderNamespace = "EXT_mmvec"; 30151} 30152def V6_vaddhsat_dv : HInst< 30153(outs HvxWR:$Vdd32), 30154(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30155"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat", 30156tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30157let Inst{7-5} = 0b001; 30158let Inst{13-13} = 0b0; 30159let Inst{31-21} = 0b00011100100; 30160let hasNewValue = 1; 30161let opNewValue = 0; 30162let isCVI = 1; 30163let DecoderNamespace = "EXT_mmvec"; 30164} 30165def V6_vaddhsat_dv_alt : HInst< 30166(outs HvxWR:$Vdd32), 30167(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30168"$Vdd32 = vaddh($Vuu32,$Vvv32):sat", 30169PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30170let hasNewValue = 1; 30171let opNewValue = 0; 30172let isCVI = 1; 30173let isPseudo = 1; 30174let isCodeGenOnly = 1; 30175let DecoderNamespace = "EXT_mmvec"; 30176} 30177def V6_vaddhw : HInst< 30178(outs HvxWR:$Vdd32), 30179(ins HvxVR:$Vu32, HvxVR:$Vv32), 30180"$Vdd32.w = vadd($Vu32.h,$Vv32.h)", 30181tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30182let Inst{7-5} = 0b100; 30183let Inst{13-13} = 0b0; 30184let Inst{31-21} = 0b00011100101; 30185let hasNewValue = 1; 30186let opNewValue = 0; 30187let isCVI = 1; 30188let DecoderNamespace = "EXT_mmvec"; 30189} 30190def V6_vaddhw_acc : HInst< 30191(outs HvxWR:$Vxx32), 30192(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30193"$Vxx32.w += vadd($Vu32.h,$Vv32.h)", 30194tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30195let Inst{7-5} = 0b010; 30196let Inst{13-13} = 0b1; 30197let Inst{31-21} = 0b00011100001; 30198let hasNewValue = 1; 30199let opNewValue = 0; 30200let isAccumulator = 1; 30201let isCVI = 1; 30202let DecoderNamespace = "EXT_mmvec"; 30203let Constraints = "$Vxx32 = $Vxx32in"; 30204} 30205def V6_vaddhw_acc_alt : HInst< 30206(outs HvxWR:$Vxx32), 30207(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30208"$Vxx32 += vaddh($Vu32,$Vv32)", 30209PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30210let hasNewValue = 1; 30211let opNewValue = 0; 30212let isAccumulator = 1; 30213let isCVI = 1; 30214let isPseudo = 1; 30215let isCodeGenOnly = 1; 30216let DecoderNamespace = "EXT_mmvec"; 30217let Constraints = "$Vxx32 = $Vxx32in"; 30218} 30219def V6_vaddhw_alt : HInst< 30220(outs HvxWR:$Vdd32), 30221(ins HvxVR:$Vu32, HvxVR:$Vv32), 30222"$Vdd32 = 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_vaddubh : HInst< 30232(outs HvxWR:$Vdd32), 30233(ins HvxVR:$Vu32, HvxVR:$Vv32), 30234"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)", 30235tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30236let Inst{7-5} = 0b010; 30237let Inst{13-13} = 0b0; 30238let Inst{31-21} = 0b00011100101; 30239let hasNewValue = 1; 30240let opNewValue = 0; 30241let isCVI = 1; 30242let DecoderNamespace = "EXT_mmvec"; 30243} 30244def V6_vaddubh_acc : HInst< 30245(outs HvxWR:$Vxx32), 30246(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30247"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)", 30248tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30249let Inst{7-5} = 0b101; 30250let Inst{13-13} = 0b1; 30251let Inst{31-21} = 0b00011100010; 30252let hasNewValue = 1; 30253let opNewValue = 0; 30254let isAccumulator = 1; 30255let isCVI = 1; 30256let DecoderNamespace = "EXT_mmvec"; 30257let Constraints = "$Vxx32 = $Vxx32in"; 30258} 30259def V6_vaddubh_acc_alt : HInst< 30260(outs HvxWR:$Vxx32), 30261(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30262"$Vxx32 += vaddub($Vu32,$Vv32)", 30263PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30264let hasNewValue = 1; 30265let opNewValue = 0; 30266let isAccumulator = 1; 30267let isCVI = 1; 30268let isPseudo = 1; 30269let isCodeGenOnly = 1; 30270let DecoderNamespace = "EXT_mmvec"; 30271let Constraints = "$Vxx32 = $Vxx32in"; 30272} 30273def V6_vaddubh_alt : HInst< 30274(outs HvxWR:$Vdd32), 30275(ins HvxVR:$Vu32, HvxVR:$Vv32), 30276"$Vdd32 = vaddub($Vu32,$Vv32)", 30277PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30278let hasNewValue = 1; 30279let opNewValue = 0; 30280let isCVI = 1; 30281let isPseudo = 1; 30282let isCodeGenOnly = 1; 30283let DecoderNamespace = "EXT_mmvec"; 30284} 30285def V6_vaddubsat : HInst< 30286(outs HvxVR:$Vd32), 30287(ins HvxVR:$Vu32, HvxVR:$Vv32), 30288"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat", 30289tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30290let Inst{7-5} = 0b001; 30291let Inst{13-13} = 0b0; 30292let Inst{31-21} = 0b00011100010; 30293let hasNewValue = 1; 30294let opNewValue = 0; 30295let isCVI = 1; 30296let DecoderNamespace = "EXT_mmvec"; 30297} 30298def V6_vaddubsat_alt : HInst< 30299(outs HvxVR:$Vd32), 30300(ins HvxVR:$Vu32, HvxVR:$Vv32), 30301"$Vd32 = vaddub($Vu32,$Vv32):sat", 30302PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30303let hasNewValue = 1; 30304let opNewValue = 0; 30305let isCVI = 1; 30306let isPseudo = 1; 30307let isCodeGenOnly = 1; 30308let DecoderNamespace = "EXT_mmvec"; 30309} 30310def V6_vaddubsat_dv : HInst< 30311(outs HvxWR:$Vdd32), 30312(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30313"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat", 30314tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30315let Inst{7-5} = 0b111; 30316let Inst{13-13} = 0b0; 30317let Inst{31-21} = 0b00011100011; 30318let hasNewValue = 1; 30319let opNewValue = 0; 30320let isCVI = 1; 30321let DecoderNamespace = "EXT_mmvec"; 30322} 30323def V6_vaddubsat_dv_alt : HInst< 30324(outs HvxWR:$Vdd32), 30325(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30326"$Vdd32 = vaddub($Vuu32,$Vvv32):sat", 30327PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30328let hasNewValue = 1; 30329let opNewValue = 0; 30330let isCVI = 1; 30331let isPseudo = 1; 30332let isCodeGenOnly = 1; 30333let DecoderNamespace = "EXT_mmvec"; 30334} 30335def V6_vaddububb_sat : HInst< 30336(outs HvxVR:$Vd32), 30337(ins HvxVR:$Vu32, HvxVR:$Vv32), 30338"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat", 30339tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30340let Inst{7-5} = 0b100; 30341let Inst{13-13} = 0b0; 30342let Inst{31-21} = 0b00011110101; 30343let hasNewValue = 1; 30344let opNewValue = 0; 30345let isCVI = 1; 30346let DecoderNamespace = "EXT_mmvec"; 30347} 30348def V6_vadduhsat : HInst< 30349(outs HvxVR:$Vd32), 30350(ins HvxVR:$Vu32, HvxVR:$Vv32), 30351"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat", 30352tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30353let Inst{7-5} = 0b010; 30354let Inst{13-13} = 0b0; 30355let Inst{31-21} = 0b00011100010; 30356let hasNewValue = 1; 30357let opNewValue = 0; 30358let isCVI = 1; 30359let DecoderNamespace = "EXT_mmvec"; 30360} 30361def V6_vadduhsat_alt : HInst< 30362(outs HvxVR:$Vd32), 30363(ins HvxVR:$Vu32, HvxVR:$Vv32), 30364"$Vd32 = vadduh($Vu32,$Vv32):sat", 30365PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30366let hasNewValue = 1; 30367let opNewValue = 0; 30368let isCVI = 1; 30369let isPseudo = 1; 30370let isCodeGenOnly = 1; 30371let DecoderNamespace = "EXT_mmvec"; 30372} 30373def V6_vadduhsat_dv : HInst< 30374(outs HvxWR:$Vdd32), 30375(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30376"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat", 30377tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30378let Inst{7-5} = 0b000; 30379let Inst{13-13} = 0b0; 30380let Inst{31-21} = 0b00011100100; 30381let hasNewValue = 1; 30382let opNewValue = 0; 30383let isCVI = 1; 30384let DecoderNamespace = "EXT_mmvec"; 30385} 30386def V6_vadduhsat_dv_alt : HInst< 30387(outs HvxWR:$Vdd32), 30388(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30389"$Vdd32 = vadduh($Vuu32,$Vvv32):sat", 30390PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30391let hasNewValue = 1; 30392let opNewValue = 0; 30393let isCVI = 1; 30394let isPseudo = 1; 30395let isCodeGenOnly = 1; 30396let DecoderNamespace = "EXT_mmvec"; 30397} 30398def V6_vadduhw : HInst< 30399(outs HvxWR:$Vdd32), 30400(ins HvxVR:$Vu32, HvxVR:$Vv32), 30401"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)", 30402tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30403let Inst{7-5} = 0b011; 30404let Inst{13-13} = 0b0; 30405let Inst{31-21} = 0b00011100101; 30406let hasNewValue = 1; 30407let opNewValue = 0; 30408let isCVI = 1; 30409let DecoderNamespace = "EXT_mmvec"; 30410} 30411def V6_vadduhw_acc : HInst< 30412(outs HvxWR:$Vxx32), 30413(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30414"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)", 30415tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30416let Inst{7-5} = 0b100; 30417let Inst{13-13} = 0b1; 30418let Inst{31-21} = 0b00011100010; 30419let hasNewValue = 1; 30420let opNewValue = 0; 30421let isAccumulator = 1; 30422let isCVI = 1; 30423let DecoderNamespace = "EXT_mmvec"; 30424let Constraints = "$Vxx32 = $Vxx32in"; 30425} 30426def V6_vadduhw_acc_alt : HInst< 30427(outs HvxWR:$Vxx32), 30428(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30429"$Vxx32 += vadduh($Vu32,$Vv32)", 30430PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30431let hasNewValue = 1; 30432let opNewValue = 0; 30433let isAccumulator = 1; 30434let isCVI = 1; 30435let isPseudo = 1; 30436let isCodeGenOnly = 1; 30437let DecoderNamespace = "EXT_mmvec"; 30438let Constraints = "$Vxx32 = $Vxx32in"; 30439} 30440def V6_vadduhw_alt : HInst< 30441(outs HvxWR:$Vdd32), 30442(ins HvxVR:$Vu32, HvxVR:$Vv32), 30443"$Vdd32 = vadduh($Vu32,$Vv32)", 30444PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30445let hasNewValue = 1; 30446let opNewValue = 0; 30447let isCVI = 1; 30448let isPseudo = 1; 30449let isCodeGenOnly = 1; 30450let DecoderNamespace = "EXT_mmvec"; 30451} 30452def V6_vadduwsat : HInst< 30453(outs HvxVR:$Vd32), 30454(ins HvxVR:$Vu32, HvxVR:$Vv32), 30455"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat", 30456tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30457let Inst{7-5} = 0b001; 30458let Inst{13-13} = 0b0; 30459let Inst{31-21} = 0b00011111011; 30460let hasNewValue = 1; 30461let opNewValue = 0; 30462let isCVI = 1; 30463let DecoderNamespace = "EXT_mmvec"; 30464} 30465def V6_vadduwsat_alt : HInst< 30466(outs HvxVR:$Vd32), 30467(ins HvxVR:$Vu32, HvxVR:$Vv32), 30468"$Vd32 = vadduw($Vu32,$Vv32):sat", 30469PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30470let hasNewValue = 1; 30471let opNewValue = 0; 30472let isCVI = 1; 30473let isPseudo = 1; 30474let isCodeGenOnly = 1; 30475let DecoderNamespace = "EXT_mmvec"; 30476} 30477def V6_vadduwsat_dv : HInst< 30478(outs HvxWR:$Vdd32), 30479(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30480"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat", 30481tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 30482let Inst{7-5} = 0b010; 30483let Inst{13-13} = 0b0; 30484let Inst{31-21} = 0b00011110101; 30485let hasNewValue = 1; 30486let opNewValue = 0; 30487let isCVI = 1; 30488let DecoderNamespace = "EXT_mmvec"; 30489} 30490def V6_vadduwsat_dv_alt : HInst< 30491(outs HvxWR:$Vdd32), 30492(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30493"$Vdd32 = vadduw($Vuu32,$Vvv32):sat", 30494PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30495let hasNewValue = 1; 30496let opNewValue = 0; 30497let isCVI = 1; 30498let isPseudo = 1; 30499let isCodeGenOnly = 1; 30500let DecoderNamespace = "EXT_mmvec"; 30501} 30502def V6_vaddw : HInst< 30503(outs HvxVR:$Vd32), 30504(ins HvxVR:$Vu32, HvxVR:$Vv32), 30505"$Vd32.w = vadd($Vu32.w,$Vv32.w)", 30506tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30507let Inst{7-5} = 0b000; 30508let Inst{13-13} = 0b0; 30509let Inst{31-21} = 0b00011100010; 30510let hasNewValue = 1; 30511let opNewValue = 0; 30512let isCVI = 1; 30513let DecoderNamespace = "EXT_mmvec"; 30514} 30515def V6_vaddw_alt : HInst< 30516(outs HvxVR:$Vd32), 30517(ins HvxVR:$Vu32, HvxVR:$Vv32), 30518"$Vd32 = vaddw($Vu32,$Vv32)", 30519PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30520let hasNewValue = 1; 30521let opNewValue = 0; 30522let isCVI = 1; 30523let isPseudo = 1; 30524let isCodeGenOnly = 1; 30525let DecoderNamespace = "EXT_mmvec"; 30526} 30527def V6_vaddw_dv : HInst< 30528(outs HvxWR:$Vdd32), 30529(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30530"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)", 30531tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30532let Inst{7-5} = 0b110; 30533let Inst{13-13} = 0b0; 30534let Inst{31-21} = 0b00011100011; 30535let hasNewValue = 1; 30536let opNewValue = 0; 30537let isCVI = 1; 30538let DecoderNamespace = "EXT_mmvec"; 30539} 30540def V6_vaddw_dv_alt : HInst< 30541(outs HvxWR:$Vdd32), 30542(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30543"$Vdd32 = vaddw($Vuu32,$Vvv32)", 30544PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30545let hasNewValue = 1; 30546let opNewValue = 0; 30547let isCVI = 1; 30548let isPseudo = 1; 30549let isCodeGenOnly = 1; 30550let DecoderNamespace = "EXT_mmvec"; 30551} 30552def V6_vaddwnq : HInst< 30553(outs HvxVR:$Vx32), 30554(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30555"if (!$Qv4) $Vx32.w += $Vu32.w", 30556tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30557let Inst{7-5} = 0b101; 30558let Inst{13-13} = 0b1; 30559let Inst{21-16} = 0b000001; 30560let Inst{31-24} = 0b00011110; 30561let hasNewValue = 1; 30562let opNewValue = 0; 30563let isAccumulator = 1; 30564let isCVI = 1; 30565let DecoderNamespace = "EXT_mmvec"; 30566let Constraints = "$Vx32 = $Vx32in"; 30567} 30568def V6_vaddwnq_alt : HInst< 30569(outs HvxVR:$Vx32), 30570(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30571"if (!$Qv4.w) $Vx32.w += $Vu32.w", 30572PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30573let hasNewValue = 1; 30574let opNewValue = 0; 30575let isAccumulator = 1; 30576let isCVI = 1; 30577let isPseudo = 1; 30578let isCodeGenOnly = 1; 30579let DecoderNamespace = "EXT_mmvec"; 30580let Constraints = "$Vx32 = $Vx32in"; 30581} 30582def V6_vaddwq : HInst< 30583(outs HvxVR:$Vx32), 30584(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30585"if ($Qv4) $Vx32.w += $Vu32.w", 30586tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30587let Inst{7-5} = 0b010; 30588let Inst{13-13} = 0b1; 30589let Inst{21-16} = 0b000001; 30590let Inst{31-24} = 0b00011110; 30591let hasNewValue = 1; 30592let opNewValue = 0; 30593let isAccumulator = 1; 30594let isCVI = 1; 30595let DecoderNamespace = "EXT_mmvec"; 30596let Constraints = "$Vx32 = $Vx32in"; 30597} 30598def V6_vaddwq_alt : HInst< 30599(outs HvxVR:$Vx32), 30600(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30601"if ($Qv4.w) $Vx32.w += $Vu32.w", 30602PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30603let hasNewValue = 1; 30604let opNewValue = 0; 30605let isAccumulator = 1; 30606let isCVI = 1; 30607let isPseudo = 1; 30608let isCodeGenOnly = 1; 30609let DecoderNamespace = "EXT_mmvec"; 30610let Constraints = "$Vx32 = $Vx32in"; 30611} 30612def V6_vaddwsat : HInst< 30613(outs HvxVR:$Vd32), 30614(ins HvxVR:$Vu32, HvxVR:$Vv32), 30615"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat", 30616tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30617let Inst{7-5} = 0b100; 30618let Inst{13-13} = 0b0; 30619let Inst{31-21} = 0b00011100010; 30620let hasNewValue = 1; 30621let opNewValue = 0; 30622let isCVI = 1; 30623let DecoderNamespace = "EXT_mmvec"; 30624} 30625def V6_vaddwsat_alt : HInst< 30626(outs HvxVR:$Vd32), 30627(ins HvxVR:$Vu32, HvxVR:$Vv32), 30628"$Vd32 = vaddw($Vu32,$Vv32):sat", 30629PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30630let hasNewValue = 1; 30631let opNewValue = 0; 30632let isCVI = 1; 30633let isPseudo = 1; 30634let isCodeGenOnly = 1; 30635let DecoderNamespace = "EXT_mmvec"; 30636} 30637def V6_vaddwsat_dv : HInst< 30638(outs HvxWR:$Vdd32), 30639(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30640"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat", 30641tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30642let Inst{7-5} = 0b010; 30643let Inst{13-13} = 0b0; 30644let Inst{31-21} = 0b00011100100; 30645let hasNewValue = 1; 30646let opNewValue = 0; 30647let isCVI = 1; 30648let DecoderNamespace = "EXT_mmvec"; 30649} 30650def V6_vaddwsat_dv_alt : HInst< 30651(outs HvxWR:$Vdd32), 30652(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30653"$Vdd32 = vaddw($Vuu32,$Vvv32):sat", 30654PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30655let hasNewValue = 1; 30656let opNewValue = 0; 30657let isCVI = 1; 30658let isPseudo = 1; 30659let isCodeGenOnly = 1; 30660let DecoderNamespace = "EXT_mmvec"; 30661} 30662def V6_valignb : HInst< 30663(outs HvxVR:$Vd32), 30664(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 30665"$Vd32 = valign($Vu32,$Vv32,$Rt8)", 30666tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 30667let Inst{7-5} = 0b000; 30668let Inst{13-13} = 0b0; 30669let Inst{31-24} = 0b00011011; 30670let hasNewValue = 1; 30671let opNewValue = 0; 30672let isCVI = 1; 30673let DecoderNamespace = "EXT_mmvec"; 30674} 30675def V6_valignbi : HInst< 30676(outs HvxVR:$Vd32), 30677(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 30678"$Vd32 = valign($Vu32,$Vv32,#$Ii)", 30679tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 30680let Inst{13-13} = 0b1; 30681let Inst{31-21} = 0b00011110001; 30682let hasNewValue = 1; 30683let opNewValue = 0; 30684let isCVI = 1; 30685let DecoderNamespace = "EXT_mmvec"; 30686} 30687def V6_vand : HInst< 30688(outs HvxVR:$Vd32), 30689(ins HvxVR:$Vu32, HvxVR:$Vv32), 30690"$Vd32 = vand($Vu32,$Vv32)", 30691tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30692let Inst{7-5} = 0b101; 30693let Inst{13-13} = 0b0; 30694let Inst{31-21} = 0b00011100001; 30695let hasNewValue = 1; 30696let opNewValue = 0; 30697let isCVI = 1; 30698let DecoderNamespace = "EXT_mmvec"; 30699} 30700def V6_vandnqrt : HInst< 30701(outs HvxVR:$Vd32), 30702(ins HvxQR:$Qu4, IntRegs:$Rt32), 30703"$Vd32 = vand(!$Qu4,$Rt32)", 30704tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> { 30705let Inst{7-5} = 0b101; 30706let Inst{13-10} = 0b0001; 30707let Inst{31-21} = 0b00011001101; 30708let hasNewValue = 1; 30709let opNewValue = 0; 30710let isCVI = 1; 30711let DecoderNamespace = "EXT_mmvec"; 30712} 30713def V6_vandnqrt_acc : HInst< 30714(outs HvxVR:$Vx32), 30715(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30716"$Vx32 |= vand(!$Qu4,$Rt32)", 30717tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> { 30718let Inst{7-5} = 0b011; 30719let Inst{13-10} = 0b1001; 30720let Inst{31-21} = 0b00011001011; 30721let hasNewValue = 1; 30722let opNewValue = 0; 30723let isAccumulator = 1; 30724let isCVI = 1; 30725let DecoderNamespace = "EXT_mmvec"; 30726let Constraints = "$Vx32 = $Vx32in"; 30727} 30728def V6_vandnqrt_acc_alt : HInst< 30729(outs HvxVR:$Vx32), 30730(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30731"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)", 30732PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30733let hasNewValue = 1; 30734let opNewValue = 0; 30735let isAccumulator = 1; 30736let isCVI = 1; 30737let isPseudo = 1; 30738let isCodeGenOnly = 1; 30739let DecoderNamespace = "EXT_mmvec"; 30740let Constraints = "$Vx32 = $Vx32in"; 30741} 30742def V6_vandnqrt_alt : HInst< 30743(outs HvxVR:$Vd32), 30744(ins HvxQR:$Qu4, IntRegs:$Rt32), 30745"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)", 30746PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30747let hasNewValue = 1; 30748let opNewValue = 0; 30749let isCVI = 1; 30750let isPseudo = 1; 30751let isCodeGenOnly = 1; 30752let DecoderNamespace = "EXT_mmvec"; 30753} 30754def V6_vandqrt : HInst< 30755(outs HvxVR:$Vd32), 30756(ins HvxQR:$Qu4, IntRegs:$Rt32), 30757"$Vd32 = vand($Qu4,$Rt32)", 30758tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> { 30759let Inst{7-5} = 0b101; 30760let Inst{13-10} = 0b0000; 30761let Inst{31-21} = 0b00011001101; 30762let hasNewValue = 1; 30763let opNewValue = 0; 30764let isCVI = 1; 30765let DecoderNamespace = "EXT_mmvec"; 30766} 30767def V6_vandqrt_acc : HInst< 30768(outs HvxVR:$Vx32), 30769(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30770"$Vx32 |= vand($Qu4,$Rt32)", 30771tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> { 30772let Inst{7-5} = 0b011; 30773let Inst{13-10} = 0b1000; 30774let Inst{31-21} = 0b00011001011; 30775let hasNewValue = 1; 30776let opNewValue = 0; 30777let isAccumulator = 1; 30778let isCVI = 1; 30779let DecoderNamespace = "EXT_mmvec"; 30780let Constraints = "$Vx32 = $Vx32in"; 30781} 30782def V6_vandqrt_acc_alt : HInst< 30783(outs HvxVR:$Vx32), 30784(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 30785"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)", 30786PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30787let hasNewValue = 1; 30788let opNewValue = 0; 30789let isAccumulator = 1; 30790let isCVI = 1; 30791let isPseudo = 1; 30792let isCodeGenOnly = 1; 30793let DecoderNamespace = "EXT_mmvec"; 30794let Constraints = "$Vx32 = $Vx32in"; 30795} 30796def V6_vandqrt_alt : HInst< 30797(outs HvxVR:$Vd32), 30798(ins HvxQR:$Qu4, IntRegs:$Rt32), 30799"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)", 30800PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30801let hasNewValue = 1; 30802let opNewValue = 0; 30803let isCVI = 1; 30804let isPseudo = 1; 30805let isCodeGenOnly = 1; 30806let DecoderNamespace = "EXT_mmvec"; 30807} 30808def V6_vandvnqv : HInst< 30809(outs HvxVR:$Vd32), 30810(ins HvxQR:$Qv4, HvxVR:$Vu32), 30811"$Vd32 = vand(!$Qv4,$Vu32)", 30812tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 30813let Inst{7-5} = 0b001; 30814let Inst{13-13} = 0b1; 30815let Inst{21-16} = 0b000011; 30816let Inst{31-24} = 0b00011110; 30817let hasNewValue = 1; 30818let opNewValue = 0; 30819let isCVI = 1; 30820let DecoderNamespace = "EXT_mmvec"; 30821} 30822def V6_vandvqv : HInst< 30823(outs HvxVR:$Vd32), 30824(ins HvxQR:$Qv4, HvxVR:$Vu32), 30825"$Vd32 = vand($Qv4,$Vu32)", 30826tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 30827let Inst{7-5} = 0b000; 30828let Inst{13-13} = 0b1; 30829let Inst{21-16} = 0b000011; 30830let Inst{31-24} = 0b00011110; 30831let hasNewValue = 1; 30832let opNewValue = 0; 30833let isCVI = 1; 30834let DecoderNamespace = "EXT_mmvec"; 30835} 30836def V6_vandvrt : HInst< 30837(outs HvxQR:$Qd4), 30838(ins HvxVR:$Vu32, IntRegs:$Rt32), 30839"$Qd4 = vand($Vu32,$Rt32)", 30840tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> { 30841let Inst{7-2} = 0b010010; 30842let Inst{13-13} = 0b0; 30843let Inst{31-21} = 0b00011001101; 30844let hasNewValue = 1; 30845let opNewValue = 0; 30846let isCVI = 1; 30847let DecoderNamespace = "EXT_mmvec"; 30848} 30849def V6_vandvrt_acc : HInst< 30850(outs HvxQR:$Qx4), 30851(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 30852"$Qx4 |= vand($Vu32,$Rt32)", 30853tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> { 30854let Inst{7-2} = 0b100000; 30855let Inst{13-13} = 0b1; 30856let Inst{31-21} = 0b00011001011; 30857let isAccumulator = 1; 30858let isCVI = 1; 30859let DecoderNamespace = "EXT_mmvec"; 30860let Constraints = "$Qx4 = $Qx4in"; 30861} 30862def V6_vandvrt_acc_alt : HInst< 30863(outs HvxQR:$Qx4), 30864(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 30865"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)", 30866PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30867let isAccumulator = 1; 30868let isCVI = 1; 30869let isPseudo = 1; 30870let isCodeGenOnly = 1; 30871let DecoderNamespace = "EXT_mmvec"; 30872let Constraints = "$Qx4 = $Qx4in"; 30873} 30874def V6_vandvrt_alt : HInst< 30875(outs HvxQR:$Qd4), 30876(ins HvxVR:$Vu32, IntRegs:$Rt32), 30877"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)", 30878PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30879let hasNewValue = 1; 30880let opNewValue = 0; 30881let isCVI = 1; 30882let isPseudo = 1; 30883let isCodeGenOnly = 1; 30884let DecoderNamespace = "EXT_mmvec"; 30885} 30886def V6_vaslh : HInst< 30887(outs HvxVR:$Vd32), 30888(ins HvxVR:$Vu32, IntRegs:$Rt32), 30889"$Vd32.h = vasl($Vu32.h,$Rt32)", 30890tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30891let Inst{7-5} = 0b000; 30892let Inst{13-13} = 0b0; 30893let Inst{31-21} = 0b00011001100; 30894let hasNewValue = 1; 30895let opNewValue = 0; 30896let isCVI = 1; 30897let DecoderNamespace = "EXT_mmvec"; 30898} 30899def V6_vaslh_acc : HInst< 30900(outs HvxVR:$Vx32), 30901(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30902"$Vx32.h += vasl($Vu32.h,$Rt32)", 30903tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 30904let Inst{7-5} = 0b101; 30905let Inst{13-13} = 0b1; 30906let Inst{31-21} = 0b00011001101; 30907let hasNewValue = 1; 30908let opNewValue = 0; 30909let isAccumulator = 1; 30910let isCVI = 1; 30911let DecoderNamespace = "EXT_mmvec"; 30912let Constraints = "$Vx32 = $Vx32in"; 30913} 30914def V6_vaslh_acc_alt : HInst< 30915(outs HvxVR:$Vx32), 30916(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30917"$Vx32 += vaslh($Vu32,$Rt32)", 30918PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 30919let hasNewValue = 1; 30920let opNewValue = 0; 30921let isAccumulator = 1; 30922let isCVI = 1; 30923let isPseudo = 1; 30924let isCodeGenOnly = 1; 30925let DecoderNamespace = "EXT_mmvec"; 30926let Constraints = "$Vx32 = $Vx32in"; 30927} 30928def V6_vaslh_alt : HInst< 30929(outs HvxVR:$Vd32), 30930(ins HvxVR:$Vu32, IntRegs:$Rt32), 30931"$Vd32 = vaslh($Vu32,$Rt32)", 30932PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30933let hasNewValue = 1; 30934let opNewValue = 0; 30935let isCVI = 1; 30936let isPseudo = 1; 30937let isCodeGenOnly = 1; 30938let DecoderNamespace = "EXT_mmvec"; 30939} 30940def V6_vaslhv : HInst< 30941(outs HvxVR:$Vd32), 30942(ins HvxVR:$Vu32, HvxVR:$Vv32), 30943"$Vd32.h = vasl($Vu32.h,$Vv32.h)", 30944tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 30945let Inst{7-5} = 0b101; 30946let Inst{13-13} = 0b0; 30947let Inst{31-21} = 0b00011111101; 30948let hasNewValue = 1; 30949let opNewValue = 0; 30950let isCVI = 1; 30951let DecoderNamespace = "EXT_mmvec"; 30952} 30953def V6_vaslhv_alt : HInst< 30954(outs HvxVR:$Vd32), 30955(ins HvxVR:$Vu32, HvxVR:$Vv32), 30956"$Vd32 = vaslh($Vu32,$Vv32)", 30957PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30958let hasNewValue = 1; 30959let opNewValue = 0; 30960let isCVI = 1; 30961let isPseudo = 1; 30962let isCodeGenOnly = 1; 30963let DecoderNamespace = "EXT_mmvec"; 30964} 30965def V6_vaslw : HInst< 30966(outs HvxVR:$Vd32), 30967(ins HvxVR:$Vu32, IntRegs:$Rt32), 30968"$Vd32.w = vasl($Vu32.w,$Rt32)", 30969tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 30970let Inst{7-5} = 0b111; 30971let Inst{13-13} = 0b0; 30972let Inst{31-21} = 0b00011001011; 30973let hasNewValue = 1; 30974let opNewValue = 0; 30975let isCVI = 1; 30976let DecoderNamespace = "EXT_mmvec"; 30977} 30978def V6_vaslw_acc : HInst< 30979(outs HvxVR:$Vx32), 30980(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30981"$Vx32.w += vasl($Vu32.w,$Rt32)", 30982tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 30983let Inst{7-5} = 0b010; 30984let Inst{13-13} = 0b1; 30985let Inst{31-21} = 0b00011001011; 30986let hasNewValue = 1; 30987let opNewValue = 0; 30988let isAccumulator = 1; 30989let isCVI = 1; 30990let DecoderNamespace = "EXT_mmvec"; 30991let Constraints = "$Vx32 = $Vx32in"; 30992} 30993def V6_vaslw_acc_alt : HInst< 30994(outs HvxVR:$Vx32), 30995(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 30996"$Vx32 += vaslw($Vu32,$Rt32)", 30997PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30998let hasNewValue = 1; 30999let opNewValue = 0; 31000let isAccumulator = 1; 31001let isCVI = 1; 31002let isPseudo = 1; 31003let isCodeGenOnly = 1; 31004let DecoderNamespace = "EXT_mmvec"; 31005let Constraints = "$Vx32 = $Vx32in"; 31006} 31007def V6_vaslw_alt : HInst< 31008(outs HvxVR:$Vd32), 31009(ins HvxVR:$Vu32, IntRegs:$Rt32), 31010"$Vd32 = vaslw($Vu32,$Rt32)", 31011PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31012let hasNewValue = 1; 31013let opNewValue = 0; 31014let isCVI = 1; 31015let isPseudo = 1; 31016let isCodeGenOnly = 1; 31017let DecoderNamespace = "EXT_mmvec"; 31018} 31019def V6_vaslwv : HInst< 31020(outs HvxVR:$Vd32), 31021(ins HvxVR:$Vu32, HvxVR:$Vv32), 31022"$Vd32.w = vasl($Vu32.w,$Vv32.w)", 31023tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31024let Inst{7-5} = 0b100; 31025let Inst{13-13} = 0b0; 31026let Inst{31-21} = 0b00011111101; 31027let hasNewValue = 1; 31028let opNewValue = 0; 31029let isCVI = 1; 31030let DecoderNamespace = "EXT_mmvec"; 31031} 31032def V6_vaslwv_alt : HInst< 31033(outs HvxVR:$Vd32), 31034(ins HvxVR:$Vu32, HvxVR:$Vv32), 31035"$Vd32 = vaslw($Vu32,$Vv32)", 31036PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31037let hasNewValue = 1; 31038let opNewValue = 0; 31039let isCVI = 1; 31040let isPseudo = 1; 31041let isCodeGenOnly = 1; 31042let DecoderNamespace = "EXT_mmvec"; 31043} 31044def V6_vasr_into : HInst< 31045(outs HvxWR:$Vxx32), 31046(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31047"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)", 31048tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> { 31049let Inst{7-5} = 0b111; 31050let Inst{13-13} = 0b1; 31051let Inst{31-21} = 0b00011010101; 31052let hasNewValue = 1; 31053let opNewValue = 0; 31054let isCVI = 1; 31055let DecoderNamespace = "EXT_mmvec"; 31056let Constraints = "$Vxx32 = $Vxx32in"; 31057} 31058def V6_vasr_into_alt : HInst< 31059(outs HvxWR:$Vxx32), 31060(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31061"$Vxx32 = vasrinto($Vu32,$Vv32)", 31062PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 31063let hasNewValue = 1; 31064let opNewValue = 0; 31065let isCVI = 1; 31066let isPseudo = 1; 31067let isCodeGenOnly = 1; 31068let DecoderNamespace = "EXT_mmvec"; 31069let Constraints = "$Vxx32 = $Vxx32in"; 31070} 31071def V6_vasrh : HInst< 31072(outs HvxVR:$Vd32), 31073(ins HvxVR:$Vu32, IntRegs:$Rt32), 31074"$Vd32.h = vasr($Vu32.h,$Rt32)", 31075tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31076let Inst{7-5} = 0b110; 31077let Inst{13-13} = 0b0; 31078let Inst{31-21} = 0b00011001011; 31079let hasNewValue = 1; 31080let opNewValue = 0; 31081let isCVI = 1; 31082let DecoderNamespace = "EXT_mmvec"; 31083} 31084def V6_vasrh_acc : HInst< 31085(outs HvxVR:$Vx32), 31086(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31087"$Vx32.h += vasr($Vu32.h,$Rt32)", 31088tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 31089let Inst{7-5} = 0b111; 31090let Inst{13-13} = 0b1; 31091let Inst{31-21} = 0b00011001100; 31092let hasNewValue = 1; 31093let opNewValue = 0; 31094let isAccumulator = 1; 31095let isCVI = 1; 31096let DecoderNamespace = "EXT_mmvec"; 31097let Constraints = "$Vx32 = $Vx32in"; 31098} 31099def V6_vasrh_acc_alt : HInst< 31100(outs HvxVR:$Vx32), 31101(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31102"$Vx32 += vasrh($Vu32,$Rt32)", 31103PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31104let hasNewValue = 1; 31105let opNewValue = 0; 31106let isAccumulator = 1; 31107let isCVI = 1; 31108let isPseudo = 1; 31109let isCodeGenOnly = 1; 31110let DecoderNamespace = "EXT_mmvec"; 31111let Constraints = "$Vx32 = $Vx32in"; 31112} 31113def V6_vasrh_alt : HInst< 31114(outs HvxVR:$Vd32), 31115(ins HvxVR:$Vu32, IntRegs:$Rt32), 31116"$Vd32 = vasrh($Vu32,$Rt32)", 31117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31118let hasNewValue = 1; 31119let opNewValue = 0; 31120let isCVI = 1; 31121let isPseudo = 1; 31122let isCodeGenOnly = 1; 31123let DecoderNamespace = "EXT_mmvec"; 31124} 31125def V6_vasrhbrndsat : HInst< 31126(outs HvxVR:$Vd32), 31127(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31128"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31129tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31130let Inst{7-5} = 0b000; 31131let Inst{13-13} = 0b1; 31132let Inst{31-24} = 0b00011011; 31133let hasNewValue = 1; 31134let opNewValue = 0; 31135let isCVI = 1; 31136let DecoderNamespace = "EXT_mmvec"; 31137} 31138def V6_vasrhbsat : HInst< 31139(outs HvxVR:$Vd32), 31140(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31141"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31142tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31143let Inst{7-5} = 0b000; 31144let Inst{13-13} = 0b0; 31145let Inst{31-24} = 0b00011000; 31146let hasNewValue = 1; 31147let opNewValue = 0; 31148let isCVI = 1; 31149let DecoderNamespace = "EXT_mmvec"; 31150} 31151def V6_vasrhubrndsat : HInst< 31152(outs HvxVR:$Vd32), 31153(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31154"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31155tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31156let Inst{7-5} = 0b111; 31157let Inst{13-13} = 0b0; 31158let Inst{31-24} = 0b00011011; 31159let hasNewValue = 1; 31160let opNewValue = 0; 31161let isCVI = 1; 31162let DecoderNamespace = "EXT_mmvec"; 31163} 31164def V6_vasrhubsat : HInst< 31165(outs HvxVR:$Vd32), 31166(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31167"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31168tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31169let Inst{7-5} = 0b110; 31170let Inst{13-13} = 0b0; 31171let Inst{31-24} = 0b00011011; 31172let hasNewValue = 1; 31173let opNewValue = 0; 31174let isCVI = 1; 31175let DecoderNamespace = "EXT_mmvec"; 31176} 31177def V6_vasrhv : HInst< 31178(outs HvxVR:$Vd32), 31179(ins HvxVR:$Vu32, HvxVR:$Vv32), 31180"$Vd32.h = vasr($Vu32.h,$Vv32.h)", 31181tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31182let Inst{7-5} = 0b011; 31183let Inst{13-13} = 0b0; 31184let Inst{31-21} = 0b00011111101; 31185let hasNewValue = 1; 31186let opNewValue = 0; 31187let isCVI = 1; 31188let DecoderNamespace = "EXT_mmvec"; 31189} 31190def V6_vasrhv_alt : HInst< 31191(outs HvxVR:$Vd32), 31192(ins HvxVR:$Vu32, HvxVR:$Vv32), 31193"$Vd32 = vasrh($Vu32,$Vv32)", 31194PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31195let hasNewValue = 1; 31196let opNewValue = 0; 31197let isCVI = 1; 31198let isPseudo = 1; 31199let isCodeGenOnly = 1; 31200let DecoderNamespace = "EXT_mmvec"; 31201} 31202def V6_vasruhubrndsat : HInst< 31203(outs HvxVR:$Vd32), 31204(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31205"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat", 31206tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31207let Inst{7-5} = 0b111; 31208let Inst{13-13} = 0b0; 31209let Inst{31-24} = 0b00011000; 31210let hasNewValue = 1; 31211let opNewValue = 0; 31212let isCVI = 1; 31213let DecoderNamespace = "EXT_mmvec"; 31214} 31215def V6_vasruhubsat : HInst< 31216(outs HvxVR:$Vd32), 31217(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31218"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat", 31219tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31220let Inst{7-5} = 0b101; 31221let Inst{13-13} = 0b1; 31222let Inst{31-24} = 0b00011000; 31223let hasNewValue = 1; 31224let opNewValue = 0; 31225let isCVI = 1; 31226let DecoderNamespace = "EXT_mmvec"; 31227} 31228def V6_vasruwuhrndsat : HInst< 31229(outs HvxVR:$Vd32), 31230(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31231"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat", 31232tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31233let Inst{7-5} = 0b001; 31234let Inst{13-13} = 0b0; 31235let Inst{31-24} = 0b00011000; 31236let hasNewValue = 1; 31237let opNewValue = 0; 31238let isCVI = 1; 31239let DecoderNamespace = "EXT_mmvec"; 31240} 31241def V6_vasruwuhsat : HInst< 31242(outs HvxVR:$Vd32), 31243(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31244"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat", 31245tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31246let Inst{7-5} = 0b100; 31247let Inst{13-13} = 0b1; 31248let Inst{31-24} = 0b00011000; 31249let hasNewValue = 1; 31250let opNewValue = 0; 31251let isCVI = 1; 31252let DecoderNamespace = "EXT_mmvec"; 31253} 31254def V6_vasrw : HInst< 31255(outs HvxVR:$Vd32), 31256(ins HvxVR:$Vu32, IntRegs:$Rt32), 31257"$Vd32.w = vasr($Vu32.w,$Rt32)", 31258tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31259let Inst{7-5} = 0b101; 31260let Inst{13-13} = 0b0; 31261let Inst{31-21} = 0b00011001011; 31262let hasNewValue = 1; 31263let opNewValue = 0; 31264let isCVI = 1; 31265let DecoderNamespace = "EXT_mmvec"; 31266} 31267def V6_vasrw_acc : HInst< 31268(outs HvxVR:$Vx32), 31269(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31270"$Vx32.w += vasr($Vu32.w,$Rt32)", 31271tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 31272let Inst{7-5} = 0b101; 31273let Inst{13-13} = 0b1; 31274let Inst{31-21} = 0b00011001011; 31275let hasNewValue = 1; 31276let opNewValue = 0; 31277let isAccumulator = 1; 31278let isCVI = 1; 31279let DecoderNamespace = "EXT_mmvec"; 31280let Constraints = "$Vx32 = $Vx32in"; 31281} 31282def V6_vasrw_acc_alt : HInst< 31283(outs HvxVR:$Vx32), 31284(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31285"$Vx32 += vasrw($Vu32,$Rt32)", 31286PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31287let hasNewValue = 1; 31288let opNewValue = 0; 31289let isAccumulator = 1; 31290let isCVI = 1; 31291let isPseudo = 1; 31292let isCodeGenOnly = 1; 31293let DecoderNamespace = "EXT_mmvec"; 31294let Constraints = "$Vx32 = $Vx32in"; 31295} 31296def V6_vasrw_alt : HInst< 31297(outs HvxVR:$Vd32), 31298(ins HvxVR:$Vu32, IntRegs:$Rt32), 31299"$Vd32 = vasrw($Vu32,$Rt32)", 31300PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31301let hasNewValue = 1; 31302let opNewValue = 0; 31303let isCVI = 1; 31304let isPseudo = 1; 31305let isCodeGenOnly = 1; 31306let DecoderNamespace = "EXT_mmvec"; 31307} 31308def V6_vasrwh : HInst< 31309(outs HvxVR:$Vd32), 31310(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31311"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)", 31312tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31313let Inst{7-5} = 0b010; 31314let Inst{13-13} = 0b0; 31315let Inst{31-24} = 0b00011011; 31316let hasNewValue = 1; 31317let opNewValue = 0; 31318let isCVI = 1; 31319let DecoderNamespace = "EXT_mmvec"; 31320} 31321def V6_vasrwhrndsat : HInst< 31322(outs HvxVR:$Vd32), 31323(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31324"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31325tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31326let Inst{7-5} = 0b100; 31327let Inst{13-13} = 0b0; 31328let Inst{31-24} = 0b00011011; 31329let hasNewValue = 1; 31330let opNewValue = 0; 31331let isCVI = 1; 31332let DecoderNamespace = "EXT_mmvec"; 31333} 31334def V6_vasrwhsat : HInst< 31335(outs HvxVR:$Vd32), 31336(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31337"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 31338tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31339let Inst{7-5} = 0b011; 31340let Inst{13-13} = 0b0; 31341let Inst{31-24} = 0b00011011; 31342let hasNewValue = 1; 31343let opNewValue = 0; 31344let isCVI = 1; 31345let DecoderNamespace = "EXT_mmvec"; 31346} 31347def V6_vasrwuhrndsat : HInst< 31348(outs HvxVR:$Vd32), 31349(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31350"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31351tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31352let Inst{7-5} = 0b010; 31353let Inst{13-13} = 0b0; 31354let Inst{31-24} = 0b00011000; 31355let hasNewValue = 1; 31356let opNewValue = 0; 31357let isCVI = 1; 31358let DecoderNamespace = "EXT_mmvec"; 31359} 31360def V6_vasrwuhsat : HInst< 31361(outs HvxVR:$Vd32), 31362(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31363"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 31364tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31365let Inst{7-5} = 0b101; 31366let Inst{13-13} = 0b0; 31367let Inst{31-24} = 0b00011011; 31368let hasNewValue = 1; 31369let opNewValue = 0; 31370let isCVI = 1; 31371let DecoderNamespace = "EXT_mmvec"; 31372} 31373def V6_vasrwv : HInst< 31374(outs HvxVR:$Vd32), 31375(ins HvxVR:$Vu32, HvxVR:$Vv32), 31376"$Vd32.w = vasr($Vu32.w,$Vv32.w)", 31377tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31378let Inst{7-5} = 0b000; 31379let Inst{13-13} = 0b0; 31380let Inst{31-21} = 0b00011111101; 31381let hasNewValue = 1; 31382let opNewValue = 0; 31383let isCVI = 1; 31384let DecoderNamespace = "EXT_mmvec"; 31385} 31386def V6_vasrwv_alt : HInst< 31387(outs HvxVR:$Vd32), 31388(ins HvxVR:$Vu32, HvxVR:$Vv32), 31389"$Vd32 = vasrw($Vu32,$Vv32)", 31390PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31391let hasNewValue = 1; 31392let opNewValue = 0; 31393let isCVI = 1; 31394let isPseudo = 1; 31395let isCodeGenOnly = 1; 31396let DecoderNamespace = "EXT_mmvec"; 31397} 31398def V6_vassign : HInst< 31399(outs HvxVR:$Vd32), 31400(ins HvxVR:$Vu32), 31401"$Vd32 = $Vu32", 31402tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 31403let Inst{7-5} = 0b111; 31404let Inst{13-13} = 0b1; 31405let Inst{31-16} = 0b0001111000000011; 31406let hasNewValue = 1; 31407let opNewValue = 0; 31408let isCVI = 1; 31409let DecoderNamespace = "EXT_mmvec"; 31410} 31411def V6_vassignp : HInst< 31412(outs HvxWR:$Vdd32), 31413(ins HvxWR:$Vuu32), 31414"$Vdd32 = $Vuu32", 31415CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> { 31416let hasNewValue = 1; 31417let opNewValue = 0; 31418let isCVI = 1; 31419let isPseudo = 1; 31420let DecoderNamespace = "EXT_mmvec"; 31421} 31422def V6_vavgb : HInst< 31423(outs HvxVR:$Vd32), 31424(ins HvxVR:$Vu32, HvxVR:$Vv32), 31425"$Vd32.b = vavg($Vu32.b,$Vv32.b)", 31426tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31427let Inst{7-5} = 0b100; 31428let Inst{13-13} = 0b1; 31429let Inst{31-21} = 0b00011111000; 31430let hasNewValue = 1; 31431let opNewValue = 0; 31432let isCVI = 1; 31433let DecoderNamespace = "EXT_mmvec"; 31434} 31435def V6_vavgb_alt : HInst< 31436(outs HvxVR:$Vd32), 31437(ins HvxVR:$Vu32, HvxVR:$Vv32), 31438"$Vd32 = vavgb($Vu32,$Vv32)", 31439PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31440let hasNewValue = 1; 31441let opNewValue = 0; 31442let isCVI = 1; 31443let isPseudo = 1; 31444let isCodeGenOnly = 1; 31445let DecoderNamespace = "EXT_mmvec"; 31446} 31447def V6_vavgbrnd : HInst< 31448(outs HvxVR:$Vd32), 31449(ins HvxVR:$Vu32, HvxVR:$Vv32), 31450"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd", 31451tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31452let Inst{7-5} = 0b101; 31453let Inst{13-13} = 0b1; 31454let Inst{31-21} = 0b00011111000; 31455let hasNewValue = 1; 31456let opNewValue = 0; 31457let isCVI = 1; 31458let DecoderNamespace = "EXT_mmvec"; 31459} 31460def V6_vavgbrnd_alt : HInst< 31461(outs HvxVR:$Vd32), 31462(ins HvxVR:$Vu32, HvxVR:$Vv32), 31463"$Vd32 = vavgb($Vu32,$Vv32):rnd", 31464PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31465let hasNewValue = 1; 31466let opNewValue = 0; 31467let isCVI = 1; 31468let isPseudo = 1; 31469let isCodeGenOnly = 1; 31470let DecoderNamespace = "EXT_mmvec"; 31471} 31472def V6_vavgh : HInst< 31473(outs HvxVR:$Vd32), 31474(ins HvxVR:$Vu32, HvxVR:$Vv32), 31475"$Vd32.h = vavg($Vu32.h,$Vv32.h)", 31476tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31477let Inst{7-5} = 0b110; 31478let Inst{13-13} = 0b0; 31479let Inst{31-21} = 0b00011100110; 31480let hasNewValue = 1; 31481let opNewValue = 0; 31482let isCVI = 1; 31483let DecoderNamespace = "EXT_mmvec"; 31484} 31485def V6_vavgh_alt : HInst< 31486(outs HvxVR:$Vd32), 31487(ins HvxVR:$Vu32, HvxVR:$Vv32), 31488"$Vd32 = vavgh($Vu32,$Vv32)", 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_vavghrnd : HInst< 31498(outs HvxVR:$Vd32), 31499(ins HvxVR:$Vu32, HvxVR:$Vv32), 31500"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd", 31501tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31502let Inst{7-5} = 0b101; 31503let Inst{13-13} = 0b0; 31504let Inst{31-21} = 0b00011100111; 31505let hasNewValue = 1; 31506let opNewValue = 0; 31507let isCVI = 1; 31508let DecoderNamespace = "EXT_mmvec"; 31509} 31510def V6_vavghrnd_alt : HInst< 31511(outs HvxVR:$Vd32), 31512(ins HvxVR:$Vu32, HvxVR:$Vv32), 31513"$Vd32 = vavgh($Vu32,$Vv32):rnd", 31514PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31515let hasNewValue = 1; 31516let opNewValue = 0; 31517let isCVI = 1; 31518let isPseudo = 1; 31519let isCodeGenOnly = 1; 31520let DecoderNamespace = "EXT_mmvec"; 31521} 31522def V6_vavgub : HInst< 31523(outs HvxVR:$Vd32), 31524(ins HvxVR:$Vu32, HvxVR:$Vv32), 31525"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)", 31526tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31527let Inst{7-5} = 0b100; 31528let Inst{13-13} = 0b0; 31529let Inst{31-21} = 0b00011100110; 31530let hasNewValue = 1; 31531let opNewValue = 0; 31532let isCVI = 1; 31533let DecoderNamespace = "EXT_mmvec"; 31534} 31535def V6_vavgub_alt : HInst< 31536(outs HvxVR:$Vd32), 31537(ins HvxVR:$Vu32, HvxVR:$Vv32), 31538"$Vd32 = vavgub($Vu32,$Vv32)", 31539PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31540let hasNewValue = 1; 31541let opNewValue = 0; 31542let isCVI = 1; 31543let isPseudo = 1; 31544let isCodeGenOnly = 1; 31545let DecoderNamespace = "EXT_mmvec"; 31546} 31547def V6_vavgubrnd : HInst< 31548(outs HvxVR:$Vd32), 31549(ins HvxVR:$Vu32, HvxVR:$Vv32), 31550"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd", 31551tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31552let Inst{7-5} = 0b011; 31553let Inst{13-13} = 0b0; 31554let Inst{31-21} = 0b00011100111; 31555let hasNewValue = 1; 31556let opNewValue = 0; 31557let isCVI = 1; 31558let DecoderNamespace = "EXT_mmvec"; 31559} 31560def V6_vavgubrnd_alt : HInst< 31561(outs HvxVR:$Vd32), 31562(ins HvxVR:$Vu32, HvxVR:$Vv32), 31563"$Vd32 = vavgub($Vu32,$Vv32):rnd", 31564PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31565let hasNewValue = 1; 31566let opNewValue = 0; 31567let isCVI = 1; 31568let isPseudo = 1; 31569let isCodeGenOnly = 1; 31570let DecoderNamespace = "EXT_mmvec"; 31571} 31572def V6_vavguh : HInst< 31573(outs HvxVR:$Vd32), 31574(ins HvxVR:$Vu32, HvxVR:$Vv32), 31575"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)", 31576tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31577let Inst{7-5} = 0b101; 31578let Inst{13-13} = 0b0; 31579let Inst{31-21} = 0b00011100110; 31580let hasNewValue = 1; 31581let opNewValue = 0; 31582let isCVI = 1; 31583let DecoderNamespace = "EXT_mmvec"; 31584} 31585def V6_vavguh_alt : HInst< 31586(outs HvxVR:$Vd32), 31587(ins HvxVR:$Vu32, HvxVR:$Vv32), 31588"$Vd32 = vavguh($Vu32,$Vv32)", 31589PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31590let hasNewValue = 1; 31591let opNewValue = 0; 31592let isCVI = 1; 31593let isPseudo = 1; 31594let isCodeGenOnly = 1; 31595let DecoderNamespace = "EXT_mmvec"; 31596} 31597def V6_vavguhrnd : HInst< 31598(outs HvxVR:$Vd32), 31599(ins HvxVR:$Vu32, HvxVR:$Vv32), 31600"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd", 31601tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31602let Inst{7-5} = 0b100; 31603let Inst{13-13} = 0b0; 31604let Inst{31-21} = 0b00011100111; 31605let hasNewValue = 1; 31606let opNewValue = 0; 31607let isCVI = 1; 31608let DecoderNamespace = "EXT_mmvec"; 31609} 31610def V6_vavguhrnd_alt : HInst< 31611(outs HvxVR:$Vd32), 31612(ins HvxVR:$Vu32, HvxVR:$Vv32), 31613"$Vd32 = vavguh($Vu32,$Vv32):rnd", 31614PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31615let hasNewValue = 1; 31616let opNewValue = 0; 31617let isCVI = 1; 31618let isPseudo = 1; 31619let isCodeGenOnly = 1; 31620let DecoderNamespace = "EXT_mmvec"; 31621} 31622def V6_vavguw : HInst< 31623(outs HvxVR:$Vd32), 31624(ins HvxVR:$Vu32, HvxVR:$Vv32), 31625"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)", 31626tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31627let Inst{7-5} = 0b010; 31628let Inst{13-13} = 0b1; 31629let Inst{31-21} = 0b00011111000; 31630let hasNewValue = 1; 31631let opNewValue = 0; 31632let isCVI = 1; 31633let DecoderNamespace = "EXT_mmvec"; 31634} 31635def V6_vavguw_alt : HInst< 31636(outs HvxVR:$Vd32), 31637(ins HvxVR:$Vu32, HvxVR:$Vv32), 31638"$Vd32 = vavguw($Vu32,$Vv32)", 31639PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31640let hasNewValue = 1; 31641let opNewValue = 0; 31642let isCVI = 1; 31643let isPseudo = 1; 31644let isCodeGenOnly = 1; 31645let DecoderNamespace = "EXT_mmvec"; 31646} 31647def V6_vavguwrnd : HInst< 31648(outs HvxVR:$Vd32), 31649(ins HvxVR:$Vu32, HvxVR:$Vv32), 31650"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd", 31651tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 31652let Inst{7-5} = 0b011; 31653let Inst{13-13} = 0b1; 31654let Inst{31-21} = 0b00011111000; 31655let hasNewValue = 1; 31656let opNewValue = 0; 31657let isCVI = 1; 31658let DecoderNamespace = "EXT_mmvec"; 31659} 31660def V6_vavguwrnd_alt : HInst< 31661(outs HvxVR:$Vd32), 31662(ins HvxVR:$Vu32, HvxVR:$Vv32), 31663"$Vd32 = vavguw($Vu32,$Vv32):rnd", 31664PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31665let hasNewValue = 1; 31666let opNewValue = 0; 31667let isCVI = 1; 31668let isPseudo = 1; 31669let isCodeGenOnly = 1; 31670let DecoderNamespace = "EXT_mmvec"; 31671} 31672def V6_vavgw : HInst< 31673(outs HvxVR:$Vd32), 31674(ins HvxVR:$Vu32, HvxVR:$Vv32), 31675"$Vd32.w = vavg($Vu32.w,$Vv32.w)", 31676tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31677let Inst{7-5} = 0b111; 31678let Inst{13-13} = 0b0; 31679let Inst{31-21} = 0b00011100110; 31680let hasNewValue = 1; 31681let opNewValue = 0; 31682let isCVI = 1; 31683let DecoderNamespace = "EXT_mmvec"; 31684} 31685def V6_vavgw_alt : HInst< 31686(outs HvxVR:$Vd32), 31687(ins HvxVR:$Vu32, HvxVR:$Vv32), 31688"$Vd32 = vavgw($Vu32,$Vv32)", 31689PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31690let hasNewValue = 1; 31691let opNewValue = 0; 31692let isCVI = 1; 31693let isPseudo = 1; 31694let isCodeGenOnly = 1; 31695let DecoderNamespace = "EXT_mmvec"; 31696} 31697def V6_vavgwrnd : HInst< 31698(outs HvxVR:$Vd32), 31699(ins HvxVR:$Vu32, HvxVR:$Vv32), 31700"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd", 31701tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31702let Inst{7-5} = 0b110; 31703let Inst{13-13} = 0b0; 31704let Inst{31-21} = 0b00011100111; 31705let hasNewValue = 1; 31706let opNewValue = 0; 31707let isCVI = 1; 31708let DecoderNamespace = "EXT_mmvec"; 31709} 31710def V6_vavgwrnd_alt : HInst< 31711(outs HvxVR:$Vd32), 31712(ins HvxVR:$Vu32, HvxVR:$Vv32), 31713"$Vd32 = vavgw($Vu32,$Vv32):rnd", 31714PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31715let hasNewValue = 1; 31716let opNewValue = 0; 31717let isCVI = 1; 31718let isPseudo = 1; 31719let isCodeGenOnly = 1; 31720let DecoderNamespace = "EXT_mmvec"; 31721} 31722def V6_vccombine : HInst< 31723(outs HvxWR:$Vdd32), 31724(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 31725"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 31726tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 31727let Inst{7-7} = 0b0; 31728let Inst{13-13} = 0b0; 31729let Inst{31-21} = 0b00011010011; 31730let isPredicated = 1; 31731let hasNewValue = 1; 31732let opNewValue = 0; 31733let isCVI = 1; 31734let DecoderNamespace = "EXT_mmvec"; 31735} 31736def V6_vcl0h : HInst< 31737(outs HvxVR:$Vd32), 31738(ins HvxVR:$Vu32), 31739"$Vd32.uh = vcl0($Vu32.uh)", 31740tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 31741let Inst{7-5} = 0b111; 31742let Inst{13-13} = 0b0; 31743let Inst{31-16} = 0b0001111000000010; 31744let hasNewValue = 1; 31745let opNewValue = 0; 31746let isCVI = 1; 31747let DecoderNamespace = "EXT_mmvec"; 31748} 31749def V6_vcl0h_alt : HInst< 31750(outs HvxVR:$Vd32), 31751(ins HvxVR:$Vu32), 31752"$Vd32 = vcl0h($Vu32)", 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_vcl0w : HInst< 31762(outs HvxVR:$Vd32), 31763(ins HvxVR:$Vu32), 31764"$Vd32.uw = vcl0($Vu32.uw)", 31765tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 31766let Inst{7-5} = 0b101; 31767let Inst{13-13} = 0b0; 31768let Inst{31-16} = 0b0001111000000010; 31769let hasNewValue = 1; 31770let opNewValue = 0; 31771let isCVI = 1; 31772let DecoderNamespace = "EXT_mmvec"; 31773} 31774def V6_vcl0w_alt : HInst< 31775(outs HvxVR:$Vd32), 31776(ins HvxVR:$Vu32), 31777"$Vd32 = vcl0w($Vu32)", 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_vcmov : HInst< 31787(outs HvxVR:$Vd32), 31788(ins PredRegs:$Ps4, HvxVR:$Vu32), 31789"if ($Ps4) $Vd32 = $Vu32", 31790tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 31791let Inst{7-7} = 0b0; 31792let Inst{13-13} = 0b0; 31793let Inst{31-16} = 0b0001101000000000; 31794let isPredicated = 1; 31795let hasNewValue = 1; 31796let opNewValue = 0; 31797let isCVI = 1; 31798let DecoderNamespace = "EXT_mmvec"; 31799} 31800def V6_vcombine : HInst< 31801(outs HvxWR:$Vdd32), 31802(ins HvxVR:$Vu32, HvxVR:$Vv32), 31803"$Vdd32 = vcombine($Vu32,$Vv32)", 31804tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 31805let Inst{7-5} = 0b111; 31806let Inst{13-13} = 0b0; 31807let Inst{31-21} = 0b00011111010; 31808let hasNewValue = 1; 31809let opNewValue = 0; 31810let isCVI = 1; 31811let isRegSequence = 1; 31812let DecoderNamespace = "EXT_mmvec"; 31813} 31814def V6_vd0 : HInst< 31815(outs HvxVR:$Vd32), 31816(ins), 31817"$Vd32 = #0", 31818CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 31819let hasNewValue = 1; 31820let opNewValue = 0; 31821let isCVI = 1; 31822let isPseudo = 1; 31823let isCodeGenOnly = 1; 31824let DecoderNamespace = "EXT_mmvec"; 31825} 31826def V6_vdd0 : HInst< 31827(outs HvxWR:$Vdd32), 31828(ins), 31829"$Vdd32 = #0", 31830tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> { 31831let hasNewValue = 1; 31832let opNewValue = 0; 31833let isCVI = 1; 31834let isPseudo = 1; 31835let isCodeGenOnly = 1; 31836let DecoderNamespace = "EXT_mmvec"; 31837} 31838def V6_vdeal : HInst< 31839(outs HvxVR:$Vy32, HvxVR:$Vx32), 31840(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 31841"vdeal($Vy32,$Vx32,$Rt32)", 31842tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 31843let Inst{7-5} = 0b010; 31844let Inst{13-13} = 0b1; 31845let Inst{31-21} = 0b00011001111; 31846let hasNewValue = 1; 31847let opNewValue = 0; 31848let hasNewValue2 = 1; 31849let opNewValue2 = 1; 31850let isCVI = 1; 31851let DecoderNamespace = "EXT_mmvec"; 31852let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 31853} 31854def V6_vdealb : HInst< 31855(outs HvxVR:$Vd32), 31856(ins HvxVR:$Vu32), 31857"$Vd32.b = vdeal($Vu32.b)", 31858tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 31859let Inst{7-5} = 0b111; 31860let Inst{13-13} = 0b0; 31861let Inst{31-16} = 0b0001111000000000; 31862let hasNewValue = 1; 31863let opNewValue = 0; 31864let isCVI = 1; 31865let DecoderNamespace = "EXT_mmvec"; 31866} 31867def V6_vdealb4w : HInst< 31868(outs HvxVR:$Vd32), 31869(ins HvxVR:$Vu32, HvxVR:$Vv32), 31870"$Vd32.b = vdeale($Vu32.b,$Vv32.b)", 31871tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 31872let Inst{7-5} = 0b111; 31873let Inst{13-13} = 0b0; 31874let Inst{31-21} = 0b00011111001; 31875let hasNewValue = 1; 31876let opNewValue = 0; 31877let isCVI = 1; 31878let DecoderNamespace = "EXT_mmvec"; 31879} 31880def V6_vdealb4w_alt : HInst< 31881(outs HvxVR:$Vd32), 31882(ins HvxVR:$Vu32, HvxVR:$Vv32), 31883"$Vd32 = vdealb4w($Vu32,$Vv32)", 31884PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31885let hasNewValue = 1; 31886let opNewValue = 0; 31887let isCVI = 1; 31888let isPseudo = 1; 31889let isCodeGenOnly = 1; 31890let DecoderNamespace = "EXT_mmvec"; 31891} 31892def V6_vdealb_alt : HInst< 31893(outs HvxVR:$Vd32), 31894(ins HvxVR:$Vu32), 31895"$Vd32 = vdealb($Vu32)", 31896PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31897let hasNewValue = 1; 31898let opNewValue = 0; 31899let isCVI = 1; 31900let isPseudo = 1; 31901let isCodeGenOnly = 1; 31902let DecoderNamespace = "EXT_mmvec"; 31903} 31904def V6_vdealh : HInst< 31905(outs HvxVR:$Vd32), 31906(ins HvxVR:$Vu32), 31907"$Vd32.h = vdeal($Vu32.h)", 31908tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 31909let Inst{7-5} = 0b110; 31910let Inst{13-13} = 0b0; 31911let Inst{31-16} = 0b0001111000000000; 31912let hasNewValue = 1; 31913let opNewValue = 0; 31914let isCVI = 1; 31915let DecoderNamespace = "EXT_mmvec"; 31916} 31917def V6_vdealh_alt : HInst< 31918(outs HvxVR:$Vd32), 31919(ins HvxVR:$Vu32), 31920"$Vd32 = vdealh($Vu32)", 31921PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31922let hasNewValue = 1; 31923let opNewValue = 0; 31924let isCVI = 1; 31925let isPseudo = 1; 31926let isCodeGenOnly = 1; 31927let DecoderNamespace = "EXT_mmvec"; 31928} 31929def V6_vdealvdd : HInst< 31930(outs HvxWR:$Vdd32), 31931(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31932"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)", 31933tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 31934let Inst{7-5} = 0b100; 31935let Inst{13-13} = 0b1; 31936let Inst{31-24} = 0b00011011; 31937let hasNewValue = 1; 31938let opNewValue = 0; 31939let isCVI = 1; 31940let DecoderNamespace = "EXT_mmvec"; 31941} 31942def V6_vdelta : HInst< 31943(outs HvxVR:$Vd32), 31944(ins HvxVR:$Vu32, HvxVR:$Vv32), 31945"$Vd32 = vdelta($Vu32,$Vv32)", 31946tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 31947let Inst{7-5} = 0b001; 31948let Inst{13-13} = 0b0; 31949let Inst{31-21} = 0b00011111001; 31950let hasNewValue = 1; 31951let opNewValue = 0; 31952let isCVI = 1; 31953let DecoderNamespace = "EXT_mmvec"; 31954} 31955def V6_vdmpybus : HInst< 31956(outs HvxVR:$Vd32), 31957(ins HvxVR:$Vu32, IntRegs:$Rt32), 31958"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)", 31959tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 31960let Inst{7-5} = 0b110; 31961let Inst{13-13} = 0b0; 31962let Inst{31-21} = 0b00011001000; 31963let hasNewValue = 1; 31964let opNewValue = 0; 31965let isCVI = 1; 31966let DecoderNamespace = "EXT_mmvec"; 31967} 31968def V6_vdmpybus_acc : HInst< 31969(outs HvxVR:$Vx32), 31970(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31971"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)", 31972tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 31973let Inst{7-5} = 0b110; 31974let Inst{13-13} = 0b1; 31975let Inst{31-21} = 0b00011001000; 31976let hasNewValue = 1; 31977let opNewValue = 0; 31978let isAccumulator = 1; 31979let isCVI = 1; 31980let DecoderNamespace = "EXT_mmvec"; 31981let Constraints = "$Vx32 = $Vx32in"; 31982} 31983def V6_vdmpybus_acc_alt : HInst< 31984(outs HvxVR:$Vx32), 31985(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31986"$Vx32 += vdmpybus($Vu32,$Rt32)", 31987PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31988let hasNewValue = 1; 31989let opNewValue = 0; 31990let isAccumulator = 1; 31991let isCVI = 1; 31992let isPseudo = 1; 31993let isCodeGenOnly = 1; 31994let DecoderNamespace = "EXT_mmvec"; 31995let Constraints = "$Vx32 = $Vx32in"; 31996} 31997def V6_vdmpybus_alt : HInst< 31998(outs HvxVR:$Vd32), 31999(ins HvxVR:$Vu32, IntRegs:$Rt32), 32000"$Vd32 = vdmpybus($Vu32,$Rt32)", 32001PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32002let hasNewValue = 1; 32003let opNewValue = 0; 32004let isCVI = 1; 32005let isPseudo = 1; 32006let isCodeGenOnly = 1; 32007let DecoderNamespace = "EXT_mmvec"; 32008} 32009def V6_vdmpybus_dv : HInst< 32010(outs HvxWR:$Vdd32), 32011(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32012"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)", 32013tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32014let Inst{7-5} = 0b111; 32015let Inst{13-13} = 0b0; 32016let Inst{31-21} = 0b00011001000; 32017let hasNewValue = 1; 32018let opNewValue = 0; 32019let isCVI = 1; 32020let DecoderNamespace = "EXT_mmvec"; 32021} 32022def V6_vdmpybus_dv_acc : HInst< 32023(outs HvxWR:$Vxx32), 32024(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32025"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)", 32026tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32027let Inst{7-5} = 0b111; 32028let Inst{13-13} = 0b1; 32029let Inst{31-21} = 0b00011001000; 32030let hasNewValue = 1; 32031let opNewValue = 0; 32032let isAccumulator = 1; 32033let isCVI = 1; 32034let DecoderNamespace = "EXT_mmvec"; 32035let Constraints = "$Vxx32 = $Vxx32in"; 32036} 32037def V6_vdmpybus_dv_acc_alt : HInst< 32038(outs HvxWR:$Vxx32), 32039(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32040"$Vxx32 += vdmpybus($Vuu32,$Rt32)", 32041PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32042let hasNewValue = 1; 32043let opNewValue = 0; 32044let isAccumulator = 1; 32045let isCVI = 1; 32046let isPseudo = 1; 32047let isCodeGenOnly = 1; 32048let DecoderNamespace = "EXT_mmvec"; 32049let Constraints = "$Vxx32 = $Vxx32in"; 32050} 32051def V6_vdmpybus_dv_alt : HInst< 32052(outs HvxWR:$Vdd32), 32053(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32054"$Vdd32 = vdmpybus($Vuu32,$Rt32)", 32055PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32056let hasNewValue = 1; 32057let opNewValue = 0; 32058let isCVI = 1; 32059let isPseudo = 1; 32060let isCodeGenOnly = 1; 32061let DecoderNamespace = "EXT_mmvec"; 32062} 32063def V6_vdmpyhb : HInst< 32064(outs HvxVR:$Vd32), 32065(ins HvxVR:$Vu32, IntRegs:$Rt32), 32066"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)", 32067tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 32068let Inst{7-5} = 0b010; 32069let Inst{13-13} = 0b0; 32070let Inst{31-21} = 0b00011001000; 32071let hasNewValue = 1; 32072let opNewValue = 0; 32073let isCVI = 1; 32074let DecoderNamespace = "EXT_mmvec"; 32075} 32076def V6_vdmpyhb_acc : HInst< 32077(outs HvxVR:$Vx32), 32078(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32079"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)", 32080tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 32081let Inst{7-5} = 0b011; 32082let Inst{13-13} = 0b1; 32083let Inst{31-21} = 0b00011001000; 32084let hasNewValue = 1; 32085let opNewValue = 0; 32086let isAccumulator = 1; 32087let isCVI = 1; 32088let DecoderNamespace = "EXT_mmvec"; 32089let Constraints = "$Vx32 = $Vx32in"; 32090} 32091def V6_vdmpyhb_acc_alt : HInst< 32092(outs HvxVR:$Vx32), 32093(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32094"$Vx32 += vdmpyhb($Vu32,$Rt32)", 32095PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32096let hasNewValue = 1; 32097let opNewValue = 0; 32098let isAccumulator = 1; 32099let isCVI = 1; 32100let isPseudo = 1; 32101let isCodeGenOnly = 1; 32102let DecoderNamespace = "EXT_mmvec"; 32103let Constraints = "$Vx32 = $Vx32in"; 32104} 32105def V6_vdmpyhb_alt : HInst< 32106(outs HvxVR:$Vd32), 32107(ins HvxVR:$Vu32, IntRegs:$Rt32), 32108"$Vd32 = vdmpyhb($Vu32,$Rt32)", 32109PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32110let hasNewValue = 1; 32111let opNewValue = 0; 32112let isCVI = 1; 32113let isPseudo = 1; 32114let isCodeGenOnly = 1; 32115let DecoderNamespace = "EXT_mmvec"; 32116} 32117def V6_vdmpyhb_dv : HInst< 32118(outs HvxWR:$Vdd32), 32119(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32120"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)", 32121tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32122let Inst{7-5} = 0b100; 32123let Inst{13-13} = 0b0; 32124let Inst{31-21} = 0b00011001001; 32125let hasNewValue = 1; 32126let opNewValue = 0; 32127let isCVI = 1; 32128let DecoderNamespace = "EXT_mmvec"; 32129} 32130def V6_vdmpyhb_dv_acc : HInst< 32131(outs HvxWR:$Vxx32), 32132(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32133"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)", 32134tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32135let Inst{7-5} = 0b100; 32136let Inst{13-13} = 0b1; 32137let Inst{31-21} = 0b00011001001; 32138let hasNewValue = 1; 32139let opNewValue = 0; 32140let isAccumulator = 1; 32141let isCVI = 1; 32142let DecoderNamespace = "EXT_mmvec"; 32143let Constraints = "$Vxx32 = $Vxx32in"; 32144} 32145def V6_vdmpyhb_dv_acc_alt : HInst< 32146(outs HvxWR:$Vxx32), 32147(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32148"$Vxx32 += vdmpyhb($Vuu32,$Rt32)", 32149PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32150let hasNewValue = 1; 32151let opNewValue = 0; 32152let isAccumulator = 1; 32153let isCVI = 1; 32154let isPseudo = 1; 32155let isCodeGenOnly = 1; 32156let DecoderNamespace = "EXT_mmvec"; 32157let Constraints = "$Vxx32 = $Vxx32in"; 32158} 32159def V6_vdmpyhb_dv_alt : HInst< 32160(outs HvxWR:$Vdd32), 32161(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32162"$Vdd32 = vdmpyhb($Vuu32,$Rt32)", 32163PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32164let hasNewValue = 1; 32165let opNewValue = 0; 32166let isCVI = 1; 32167let isPseudo = 1; 32168let isCodeGenOnly = 1; 32169let DecoderNamespace = "EXT_mmvec"; 32170} 32171def V6_vdmpyhisat : HInst< 32172(outs HvxVR:$Vd32), 32173(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32174"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat", 32175tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 32176let Inst{7-5} = 0b011; 32177let Inst{13-13} = 0b0; 32178let Inst{31-21} = 0b00011001001; 32179let hasNewValue = 1; 32180let opNewValue = 0; 32181let isCVI = 1; 32182let DecoderNamespace = "EXT_mmvec"; 32183} 32184def V6_vdmpyhisat_acc : HInst< 32185(outs HvxVR:$Vx32), 32186(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32187"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat", 32188tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 32189let Inst{7-5} = 0b010; 32190let Inst{13-13} = 0b1; 32191let Inst{31-21} = 0b00011001001; 32192let hasNewValue = 1; 32193let opNewValue = 0; 32194let isAccumulator = 1; 32195let isCVI = 1; 32196let DecoderNamespace = "EXT_mmvec"; 32197let Constraints = "$Vx32 = $Vx32in"; 32198} 32199def V6_vdmpyhisat_acc_alt : HInst< 32200(outs HvxVR:$Vx32), 32201(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32202"$Vx32 += vdmpyh($Vuu32,$Rt32):sat", 32203PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32204let hasNewValue = 1; 32205let opNewValue = 0; 32206let isAccumulator = 1; 32207let isCVI = 1; 32208let isPseudo = 1; 32209let isCodeGenOnly = 1; 32210let DecoderNamespace = "EXT_mmvec"; 32211let Constraints = "$Vx32 = $Vx32in"; 32212} 32213def V6_vdmpyhisat_alt : HInst< 32214(outs HvxVR:$Vd32), 32215(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32216"$Vd32 = vdmpyh($Vuu32,$Rt32):sat", 32217PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32218let hasNewValue = 1; 32219let opNewValue = 0; 32220let isCVI = 1; 32221let isPseudo = 1; 32222let isCodeGenOnly = 1; 32223let DecoderNamespace = "EXT_mmvec"; 32224} 32225def V6_vdmpyhsat : HInst< 32226(outs HvxVR:$Vd32), 32227(ins HvxVR:$Vu32, IntRegs:$Rt32), 32228"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat", 32229tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 32230let Inst{7-5} = 0b010; 32231let Inst{13-13} = 0b0; 32232let Inst{31-21} = 0b00011001001; 32233let hasNewValue = 1; 32234let opNewValue = 0; 32235let isCVI = 1; 32236let DecoderNamespace = "EXT_mmvec"; 32237} 32238def V6_vdmpyhsat_acc : HInst< 32239(outs HvxVR:$Vx32), 32240(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32241"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat", 32242tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 32243let Inst{7-5} = 0b011; 32244let Inst{13-13} = 0b1; 32245let Inst{31-21} = 0b00011001001; 32246let hasNewValue = 1; 32247let opNewValue = 0; 32248let isAccumulator = 1; 32249let isCVI = 1; 32250let DecoderNamespace = "EXT_mmvec"; 32251let Constraints = "$Vx32 = $Vx32in"; 32252} 32253def V6_vdmpyhsat_acc_alt : HInst< 32254(outs HvxVR:$Vx32), 32255(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32256"$Vx32 += vdmpyh($Vu32,$Rt32):sat", 32257PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32258let hasNewValue = 1; 32259let opNewValue = 0; 32260let isAccumulator = 1; 32261let isCVI = 1; 32262let isPseudo = 1; 32263let isCodeGenOnly = 1; 32264let DecoderNamespace = "EXT_mmvec"; 32265let Constraints = "$Vx32 = $Vx32in"; 32266} 32267def V6_vdmpyhsat_alt : HInst< 32268(outs HvxVR:$Vd32), 32269(ins HvxVR:$Vu32, IntRegs:$Rt32), 32270"$Vd32 = vdmpyh($Vu32,$Rt32):sat", 32271PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32272let hasNewValue = 1; 32273let opNewValue = 0; 32274let isCVI = 1; 32275let isPseudo = 1; 32276let isCodeGenOnly = 1; 32277let DecoderNamespace = "EXT_mmvec"; 32278} 32279def V6_vdmpyhsuisat : HInst< 32280(outs HvxVR:$Vd32), 32281(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32282"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 32283tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 32284let Inst{7-5} = 0b001; 32285let Inst{13-13} = 0b0; 32286let Inst{31-21} = 0b00011001001; 32287let hasNewValue = 1; 32288let opNewValue = 0; 32289let isCVI = 1; 32290let DecoderNamespace = "EXT_mmvec"; 32291} 32292def V6_vdmpyhsuisat_acc : HInst< 32293(outs HvxVR:$Vx32), 32294(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32295"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 32296tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 32297let Inst{7-5} = 0b001; 32298let Inst{13-13} = 0b1; 32299let Inst{31-21} = 0b00011001001; 32300let hasNewValue = 1; 32301let opNewValue = 0; 32302let isAccumulator = 1; 32303let isCVI = 1; 32304let DecoderNamespace = "EXT_mmvec"; 32305let Constraints = "$Vx32 = $Vx32in"; 32306} 32307def V6_vdmpyhsuisat_acc_alt : HInst< 32308(outs HvxVR:$Vx32), 32309(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32310"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat", 32311PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32312let hasNewValue = 1; 32313let opNewValue = 0; 32314let isAccumulator = 1; 32315let isCVI = 1; 32316let isPseudo = 1; 32317let isCodeGenOnly = 1; 32318let DecoderNamespace = "EXT_mmvec"; 32319let Constraints = "$Vx32 = $Vx32in"; 32320} 32321def V6_vdmpyhsuisat_alt : HInst< 32322(outs HvxVR:$Vd32), 32323(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32324"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat", 32325PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32326let hasNewValue = 1; 32327let opNewValue = 0; 32328let isCVI = 1; 32329let isPseudo = 1; 32330let isCodeGenOnly = 1; 32331let DecoderNamespace = "EXT_mmvec"; 32332} 32333def V6_vdmpyhsusat : HInst< 32334(outs HvxVR:$Vd32), 32335(ins HvxVR:$Vu32, IntRegs:$Rt32), 32336"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat", 32337tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 32338let Inst{7-5} = 0b000; 32339let Inst{13-13} = 0b0; 32340let Inst{31-21} = 0b00011001001; 32341let hasNewValue = 1; 32342let opNewValue = 0; 32343let isCVI = 1; 32344let DecoderNamespace = "EXT_mmvec"; 32345} 32346def V6_vdmpyhsusat_acc : HInst< 32347(outs HvxVR:$Vx32), 32348(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32349"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat", 32350tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 32351let Inst{7-5} = 0b000; 32352let Inst{13-13} = 0b1; 32353let Inst{31-21} = 0b00011001001; 32354let hasNewValue = 1; 32355let opNewValue = 0; 32356let isAccumulator = 1; 32357let isCVI = 1; 32358let DecoderNamespace = "EXT_mmvec"; 32359let Constraints = "$Vx32 = $Vx32in"; 32360} 32361def V6_vdmpyhsusat_acc_alt : HInst< 32362(outs HvxVR:$Vx32), 32363(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32364"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat", 32365PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32366let hasNewValue = 1; 32367let opNewValue = 0; 32368let isAccumulator = 1; 32369let isCVI = 1; 32370let isPseudo = 1; 32371let isCodeGenOnly = 1; 32372let DecoderNamespace = "EXT_mmvec"; 32373let Constraints = "$Vx32 = $Vx32in"; 32374} 32375def V6_vdmpyhsusat_alt : HInst< 32376(outs HvxVR:$Vd32), 32377(ins HvxVR:$Vu32, IntRegs:$Rt32), 32378"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat", 32379PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32380let hasNewValue = 1; 32381let opNewValue = 0; 32382let isCVI = 1; 32383let isPseudo = 1; 32384let isCodeGenOnly = 1; 32385let DecoderNamespace = "EXT_mmvec"; 32386} 32387def V6_vdmpyhvsat : HInst< 32388(outs HvxVR:$Vd32), 32389(ins HvxVR:$Vu32, HvxVR:$Vv32), 32390"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat", 32391tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 32392let Inst{7-5} = 0b011; 32393let Inst{13-13} = 0b0; 32394let Inst{31-21} = 0b00011100000; 32395let hasNewValue = 1; 32396let opNewValue = 0; 32397let isCVI = 1; 32398let DecoderNamespace = "EXT_mmvec"; 32399} 32400def V6_vdmpyhvsat_acc : HInst< 32401(outs HvxVR:$Vx32), 32402(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 32403"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat", 32404tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 32405let Inst{7-5} = 0b011; 32406let Inst{13-13} = 0b1; 32407let Inst{31-21} = 0b00011100000; 32408let hasNewValue = 1; 32409let opNewValue = 0; 32410let isAccumulator = 1; 32411let isCVI = 1; 32412let DecoderNamespace = "EXT_mmvec"; 32413let Constraints = "$Vx32 = $Vx32in"; 32414} 32415def V6_vdmpyhvsat_acc_alt : HInst< 32416(outs HvxVR:$Vx32), 32417(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 32418"$Vx32 += vdmpyh($Vu32,$Vv32):sat", 32419PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32420let hasNewValue = 1; 32421let opNewValue = 0; 32422let isAccumulator = 1; 32423let isCVI = 1; 32424let isPseudo = 1; 32425let isCodeGenOnly = 1; 32426let DecoderNamespace = "EXT_mmvec"; 32427let Constraints = "$Vx32 = $Vx32in"; 32428} 32429def V6_vdmpyhvsat_alt : HInst< 32430(outs HvxVR:$Vd32), 32431(ins HvxVR:$Vu32, HvxVR:$Vv32), 32432"$Vd32 = vdmpyh($Vu32,$Vv32):sat", 32433PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32434let hasNewValue = 1; 32435let opNewValue = 0; 32436let isCVI = 1; 32437let isPseudo = 1; 32438let isCodeGenOnly = 1; 32439let DecoderNamespace = "EXT_mmvec"; 32440} 32441def V6_vdsaduh : HInst< 32442(outs HvxWR:$Vdd32), 32443(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32444"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)", 32445tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32446let Inst{7-5} = 0b101; 32447let Inst{13-13} = 0b0; 32448let Inst{31-21} = 0b00011001000; 32449let hasNewValue = 1; 32450let opNewValue = 0; 32451let isCVI = 1; 32452let DecoderNamespace = "EXT_mmvec"; 32453} 32454def V6_vdsaduh_acc : HInst< 32455(outs HvxWR:$Vxx32), 32456(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32457"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)", 32458tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32459let Inst{7-5} = 0b000; 32460let Inst{13-13} = 0b1; 32461let Inst{31-21} = 0b00011001011; 32462let hasNewValue = 1; 32463let opNewValue = 0; 32464let isAccumulator = 1; 32465let isCVI = 1; 32466let DecoderNamespace = "EXT_mmvec"; 32467let Constraints = "$Vxx32 = $Vxx32in"; 32468} 32469def V6_vdsaduh_acc_alt : HInst< 32470(outs HvxWR:$Vxx32), 32471(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32472"$Vxx32 += vdsaduh($Vuu32,$Rt32)", 32473PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32474let hasNewValue = 1; 32475let opNewValue = 0; 32476let isAccumulator = 1; 32477let isCVI = 1; 32478let isPseudo = 1; 32479let isCodeGenOnly = 1; 32480let DecoderNamespace = "EXT_mmvec"; 32481let Constraints = "$Vxx32 = $Vxx32in"; 32482} 32483def V6_vdsaduh_alt : HInst< 32484(outs HvxWR:$Vdd32), 32485(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32486"$Vdd32 = vdsaduh($Vuu32,$Rt32)", 32487PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32488let hasNewValue = 1; 32489let opNewValue = 0; 32490let isCVI = 1; 32491let isPseudo = 1; 32492let isCodeGenOnly = 1; 32493let DecoderNamespace = "EXT_mmvec"; 32494} 32495def V6_veqb : HInst< 32496(outs HvxQR:$Qd4), 32497(ins HvxVR:$Vu32, HvxVR:$Vv32), 32498"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)", 32499tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32500let Inst{7-2} = 0b000000; 32501let Inst{13-13} = 0b0; 32502let Inst{31-21} = 0b00011111100; 32503let hasNewValue = 1; 32504let opNewValue = 0; 32505let isCVI = 1; 32506let DecoderNamespace = "EXT_mmvec"; 32507} 32508def V6_veqb_and : HInst< 32509(outs HvxQR:$Qx4), 32510(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32511"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)", 32512tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32513let Inst{7-2} = 0b000000; 32514let Inst{13-13} = 0b1; 32515let Inst{31-21} = 0b00011100100; 32516let isCVI = 1; 32517let DecoderNamespace = "EXT_mmvec"; 32518let Constraints = "$Qx4 = $Qx4in"; 32519} 32520def V6_veqb_or : HInst< 32521(outs HvxQR:$Qx4), 32522(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32523"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)", 32524tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32525let Inst{7-2} = 0b010000; 32526let Inst{13-13} = 0b1; 32527let Inst{31-21} = 0b00011100100; 32528let isAccumulator = 1; 32529let isCVI = 1; 32530let DecoderNamespace = "EXT_mmvec"; 32531let Constraints = "$Qx4 = $Qx4in"; 32532} 32533def V6_veqb_xor : HInst< 32534(outs HvxQR:$Qx4), 32535(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32536"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)", 32537tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32538let Inst{7-2} = 0b100000; 32539let Inst{13-13} = 0b1; 32540let Inst{31-21} = 0b00011100100; 32541let isCVI = 1; 32542let DecoderNamespace = "EXT_mmvec"; 32543let Constraints = "$Qx4 = $Qx4in"; 32544} 32545def V6_veqh : HInst< 32546(outs HvxQR:$Qd4), 32547(ins HvxVR:$Vu32, HvxVR:$Vv32), 32548"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)", 32549tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32550let Inst{7-2} = 0b000001; 32551let Inst{13-13} = 0b0; 32552let Inst{31-21} = 0b00011111100; 32553let hasNewValue = 1; 32554let opNewValue = 0; 32555let isCVI = 1; 32556let DecoderNamespace = "EXT_mmvec"; 32557} 32558def V6_veqh_and : HInst< 32559(outs HvxQR:$Qx4), 32560(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32561"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)", 32562tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32563let Inst{7-2} = 0b000001; 32564let Inst{13-13} = 0b1; 32565let Inst{31-21} = 0b00011100100; 32566let isCVI = 1; 32567let DecoderNamespace = "EXT_mmvec"; 32568let Constraints = "$Qx4 = $Qx4in"; 32569} 32570def V6_veqh_or : HInst< 32571(outs HvxQR:$Qx4), 32572(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32573"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)", 32574tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32575let Inst{7-2} = 0b010001; 32576let Inst{13-13} = 0b1; 32577let Inst{31-21} = 0b00011100100; 32578let isAccumulator = 1; 32579let isCVI = 1; 32580let DecoderNamespace = "EXT_mmvec"; 32581let Constraints = "$Qx4 = $Qx4in"; 32582} 32583def V6_veqh_xor : HInst< 32584(outs HvxQR:$Qx4), 32585(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32586"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)", 32587tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32588let Inst{7-2} = 0b100001; 32589let Inst{13-13} = 0b1; 32590let Inst{31-21} = 0b00011100100; 32591let isCVI = 1; 32592let DecoderNamespace = "EXT_mmvec"; 32593let Constraints = "$Qx4 = $Qx4in"; 32594} 32595def V6_veqw : HInst< 32596(outs HvxQR:$Qd4), 32597(ins HvxVR:$Vu32, HvxVR:$Vv32), 32598"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)", 32599tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32600let Inst{7-2} = 0b000010; 32601let Inst{13-13} = 0b0; 32602let Inst{31-21} = 0b00011111100; 32603let hasNewValue = 1; 32604let opNewValue = 0; 32605let isCVI = 1; 32606let DecoderNamespace = "EXT_mmvec"; 32607} 32608def V6_veqw_and : HInst< 32609(outs HvxQR:$Qx4), 32610(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32611"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)", 32612tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32613let Inst{7-2} = 0b000010; 32614let Inst{13-13} = 0b1; 32615let Inst{31-21} = 0b00011100100; 32616let isCVI = 1; 32617let DecoderNamespace = "EXT_mmvec"; 32618let Constraints = "$Qx4 = $Qx4in"; 32619} 32620def V6_veqw_or : HInst< 32621(outs HvxQR:$Qx4), 32622(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32623"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)", 32624tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32625let Inst{7-2} = 0b010010; 32626let Inst{13-13} = 0b1; 32627let Inst{31-21} = 0b00011100100; 32628let isAccumulator = 1; 32629let isCVI = 1; 32630let DecoderNamespace = "EXT_mmvec"; 32631let Constraints = "$Qx4 = $Qx4in"; 32632} 32633def V6_veqw_xor : HInst< 32634(outs HvxQR:$Qx4), 32635(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32636"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)", 32637tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32638let Inst{7-2} = 0b100010; 32639let Inst{13-13} = 0b1; 32640let Inst{31-21} = 0b00011100100; 32641let isCVI = 1; 32642let DecoderNamespace = "EXT_mmvec"; 32643let Constraints = "$Qx4 = $Qx4in"; 32644} 32645def V6_vgathermh : HInst< 32646(outs), 32647(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32648"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 32649tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 32650let Inst{12-5} = 0b00001000; 32651let Inst{31-21} = 0b00101111000; 32652let hasNewValue = 1; 32653let opNewValue = 0; 32654let accessSize = HalfWordAccess; 32655let isCVLoad = 1; 32656let isCVI = 1; 32657let hasTmpDst = 1; 32658let mayLoad = 1; 32659let Defs = [VTMP]; 32660let DecoderNamespace = "EXT_mmvec"; 32661} 32662def V6_vgathermhq : HInst< 32663(outs), 32664(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32665"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 32666tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 32667let Inst{12-7} = 0b001010; 32668let Inst{31-21} = 0b00101111000; 32669let hasNewValue = 1; 32670let opNewValue = 0; 32671let accessSize = HalfWordAccess; 32672let isCVLoad = 1; 32673let isCVI = 1; 32674let hasTmpDst = 1; 32675let mayLoad = 1; 32676let Defs = [VTMP]; 32677let DecoderNamespace = "EXT_mmvec"; 32678} 32679def V6_vgathermhw : HInst< 32680(outs), 32681(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 32682"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 32683tc_05058f6f, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> { 32684let Inst{12-5} = 0b00010000; 32685let Inst{31-21} = 0b00101111000; 32686let hasNewValue = 1; 32687let opNewValue = 0; 32688let accessSize = HalfWordAccess; 32689let isCVLoad = 1; 32690let isCVI = 1; 32691let hasTmpDst = 1; 32692let mayLoad = 1; 32693let Defs = [VTMP]; 32694let DecoderNamespace = "EXT_mmvec"; 32695} 32696def V6_vgathermhwq : HInst< 32697(outs), 32698(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 32699"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 32700tc_fd7610da, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> { 32701let Inst{12-7} = 0b001100; 32702let Inst{31-21} = 0b00101111000; 32703let hasNewValue = 1; 32704let opNewValue = 0; 32705let accessSize = HalfWordAccess; 32706let isCVLoad = 1; 32707let isCVI = 1; 32708let hasTmpDst = 1; 32709let mayLoad = 1; 32710let Defs = [VTMP]; 32711let DecoderNamespace = "EXT_mmvec"; 32712} 32713def V6_vgathermw : HInst< 32714(outs), 32715(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32716"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 32717tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 32718let Inst{12-5} = 0b00000000; 32719let Inst{31-21} = 0b00101111000; 32720let hasNewValue = 1; 32721let opNewValue = 0; 32722let accessSize = WordAccess; 32723let isCVLoad = 1; 32724let isCVI = 1; 32725let hasTmpDst = 1; 32726let mayLoad = 1; 32727let Defs = [VTMP]; 32728let DecoderNamespace = "EXT_mmvec"; 32729} 32730def V6_vgathermwq : HInst< 32731(outs), 32732(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 32733"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 32734tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 32735let Inst{12-7} = 0b001000; 32736let Inst{31-21} = 0b00101111000; 32737let hasNewValue = 1; 32738let opNewValue = 0; 32739let accessSize = WordAccess; 32740let isCVLoad = 1; 32741let isCVI = 1; 32742let hasTmpDst = 1; 32743let mayLoad = 1; 32744let Defs = [VTMP]; 32745let DecoderNamespace = "EXT_mmvec"; 32746} 32747def V6_vgtb : HInst< 32748(outs HvxQR:$Qd4), 32749(ins HvxVR:$Vu32, HvxVR:$Vv32), 32750"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)", 32751tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32752let Inst{7-2} = 0b000100; 32753let Inst{13-13} = 0b0; 32754let Inst{31-21} = 0b00011111100; 32755let hasNewValue = 1; 32756let opNewValue = 0; 32757let isCVI = 1; 32758let DecoderNamespace = "EXT_mmvec"; 32759} 32760def V6_vgtb_and : HInst< 32761(outs HvxQR:$Qx4), 32762(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32763"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)", 32764tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32765let Inst{7-2} = 0b000100; 32766let Inst{13-13} = 0b1; 32767let Inst{31-21} = 0b00011100100; 32768let isCVI = 1; 32769let DecoderNamespace = "EXT_mmvec"; 32770let Constraints = "$Qx4 = $Qx4in"; 32771} 32772def V6_vgtb_or : HInst< 32773(outs HvxQR:$Qx4), 32774(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32775"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)", 32776tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32777let Inst{7-2} = 0b010100; 32778let Inst{13-13} = 0b1; 32779let Inst{31-21} = 0b00011100100; 32780let isAccumulator = 1; 32781let isCVI = 1; 32782let DecoderNamespace = "EXT_mmvec"; 32783let Constraints = "$Qx4 = $Qx4in"; 32784} 32785def V6_vgtb_xor : HInst< 32786(outs HvxQR:$Qx4), 32787(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32788"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)", 32789tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32790let Inst{7-2} = 0b100100; 32791let Inst{13-13} = 0b1; 32792let Inst{31-21} = 0b00011100100; 32793let isCVI = 1; 32794let DecoderNamespace = "EXT_mmvec"; 32795let Constraints = "$Qx4 = $Qx4in"; 32796} 32797def V6_vgth : HInst< 32798(outs HvxQR:$Qd4), 32799(ins HvxVR:$Vu32, HvxVR:$Vv32), 32800"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)", 32801tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32802let Inst{7-2} = 0b000101; 32803let Inst{13-13} = 0b0; 32804let Inst{31-21} = 0b00011111100; 32805let hasNewValue = 1; 32806let opNewValue = 0; 32807let isCVI = 1; 32808let DecoderNamespace = "EXT_mmvec"; 32809} 32810def V6_vgth_and : HInst< 32811(outs HvxQR:$Qx4), 32812(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32813"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)", 32814tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32815let Inst{7-2} = 0b000101; 32816let Inst{13-13} = 0b1; 32817let Inst{31-21} = 0b00011100100; 32818let isCVI = 1; 32819let DecoderNamespace = "EXT_mmvec"; 32820let Constraints = "$Qx4 = $Qx4in"; 32821} 32822def V6_vgth_or : HInst< 32823(outs HvxQR:$Qx4), 32824(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32825"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)", 32826tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32827let Inst{7-2} = 0b010101; 32828let Inst{13-13} = 0b1; 32829let Inst{31-21} = 0b00011100100; 32830let isAccumulator = 1; 32831let isCVI = 1; 32832let DecoderNamespace = "EXT_mmvec"; 32833let Constraints = "$Qx4 = $Qx4in"; 32834} 32835def V6_vgth_xor : HInst< 32836(outs HvxQR:$Qx4), 32837(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32838"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)", 32839tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32840let Inst{7-2} = 0b100101; 32841let Inst{13-13} = 0b1; 32842let Inst{31-21} = 0b00011100100; 32843let isCVI = 1; 32844let DecoderNamespace = "EXT_mmvec"; 32845let Constraints = "$Qx4 = $Qx4in"; 32846} 32847def V6_vgtub : HInst< 32848(outs HvxQR:$Qd4), 32849(ins HvxVR:$Vu32, HvxVR:$Vv32), 32850"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)", 32851tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32852let Inst{7-2} = 0b001000; 32853let Inst{13-13} = 0b0; 32854let Inst{31-21} = 0b00011111100; 32855let hasNewValue = 1; 32856let opNewValue = 0; 32857let isCVI = 1; 32858let DecoderNamespace = "EXT_mmvec"; 32859} 32860def V6_vgtub_and : HInst< 32861(outs HvxQR:$Qx4), 32862(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32863"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)", 32864tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32865let Inst{7-2} = 0b001000; 32866let Inst{13-13} = 0b1; 32867let Inst{31-21} = 0b00011100100; 32868let isCVI = 1; 32869let DecoderNamespace = "EXT_mmvec"; 32870let Constraints = "$Qx4 = $Qx4in"; 32871} 32872def V6_vgtub_or : HInst< 32873(outs HvxQR:$Qx4), 32874(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32875"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)", 32876tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32877let Inst{7-2} = 0b011000; 32878let Inst{13-13} = 0b1; 32879let Inst{31-21} = 0b00011100100; 32880let isAccumulator = 1; 32881let isCVI = 1; 32882let DecoderNamespace = "EXT_mmvec"; 32883let Constraints = "$Qx4 = $Qx4in"; 32884} 32885def V6_vgtub_xor : HInst< 32886(outs HvxQR:$Qx4), 32887(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32888"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)", 32889tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32890let Inst{7-2} = 0b101000; 32891let Inst{13-13} = 0b1; 32892let Inst{31-21} = 0b00011100100; 32893let isCVI = 1; 32894let DecoderNamespace = "EXT_mmvec"; 32895let Constraints = "$Qx4 = $Qx4in"; 32896} 32897def V6_vgtuh : HInst< 32898(outs HvxQR:$Qd4), 32899(ins HvxVR:$Vu32, HvxVR:$Vv32), 32900"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)", 32901tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32902let Inst{7-2} = 0b001001; 32903let Inst{13-13} = 0b0; 32904let Inst{31-21} = 0b00011111100; 32905let hasNewValue = 1; 32906let opNewValue = 0; 32907let isCVI = 1; 32908let DecoderNamespace = "EXT_mmvec"; 32909} 32910def V6_vgtuh_and : HInst< 32911(outs HvxQR:$Qx4), 32912(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32913"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)", 32914tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32915let Inst{7-2} = 0b001001; 32916let Inst{13-13} = 0b1; 32917let Inst{31-21} = 0b00011100100; 32918let isCVI = 1; 32919let DecoderNamespace = "EXT_mmvec"; 32920let Constraints = "$Qx4 = $Qx4in"; 32921} 32922def V6_vgtuh_or : HInst< 32923(outs HvxQR:$Qx4), 32924(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32925"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)", 32926tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32927let Inst{7-2} = 0b011001; 32928let Inst{13-13} = 0b1; 32929let Inst{31-21} = 0b00011100100; 32930let isAccumulator = 1; 32931let isCVI = 1; 32932let DecoderNamespace = "EXT_mmvec"; 32933let Constraints = "$Qx4 = $Qx4in"; 32934} 32935def V6_vgtuh_xor : HInst< 32936(outs HvxQR:$Qx4), 32937(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32938"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)", 32939tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32940let Inst{7-2} = 0b101001; 32941let Inst{13-13} = 0b1; 32942let Inst{31-21} = 0b00011100100; 32943let isCVI = 1; 32944let DecoderNamespace = "EXT_mmvec"; 32945let Constraints = "$Qx4 = $Qx4in"; 32946} 32947def V6_vgtuw : HInst< 32948(outs HvxQR:$Qd4), 32949(ins HvxVR:$Vu32, HvxVR:$Vv32), 32950"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)", 32951tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 32952let Inst{7-2} = 0b001010; 32953let Inst{13-13} = 0b0; 32954let Inst{31-21} = 0b00011111100; 32955let hasNewValue = 1; 32956let opNewValue = 0; 32957let isCVI = 1; 32958let DecoderNamespace = "EXT_mmvec"; 32959} 32960def V6_vgtuw_and : HInst< 32961(outs HvxQR:$Qx4), 32962(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32963"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)", 32964tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32965let Inst{7-2} = 0b001010; 32966let Inst{13-13} = 0b1; 32967let Inst{31-21} = 0b00011100100; 32968let isCVI = 1; 32969let DecoderNamespace = "EXT_mmvec"; 32970let Constraints = "$Qx4 = $Qx4in"; 32971} 32972def V6_vgtuw_or : HInst< 32973(outs HvxQR:$Qx4), 32974(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32975"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)", 32976tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32977let Inst{7-2} = 0b011010; 32978let Inst{13-13} = 0b1; 32979let Inst{31-21} = 0b00011100100; 32980let isAccumulator = 1; 32981let isCVI = 1; 32982let DecoderNamespace = "EXT_mmvec"; 32983let Constraints = "$Qx4 = $Qx4in"; 32984} 32985def V6_vgtuw_xor : HInst< 32986(outs HvxQR:$Qx4), 32987(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 32988"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)", 32989tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 32990let Inst{7-2} = 0b101010; 32991let Inst{13-13} = 0b1; 32992let Inst{31-21} = 0b00011100100; 32993let isCVI = 1; 32994let DecoderNamespace = "EXT_mmvec"; 32995let Constraints = "$Qx4 = $Qx4in"; 32996} 32997def V6_vgtw : HInst< 32998(outs HvxQR:$Qd4), 32999(ins HvxVR:$Vu32, HvxVR:$Vv32), 33000"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)", 33001tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33002let Inst{7-2} = 0b000110; 33003let Inst{13-13} = 0b0; 33004let Inst{31-21} = 0b00011111100; 33005let hasNewValue = 1; 33006let opNewValue = 0; 33007let isCVI = 1; 33008let DecoderNamespace = "EXT_mmvec"; 33009} 33010def V6_vgtw_and : HInst< 33011(outs HvxQR:$Qx4), 33012(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33013"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)", 33014tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33015let Inst{7-2} = 0b000110; 33016let Inst{13-13} = 0b1; 33017let Inst{31-21} = 0b00011100100; 33018let isCVI = 1; 33019let DecoderNamespace = "EXT_mmvec"; 33020let Constraints = "$Qx4 = $Qx4in"; 33021} 33022def V6_vgtw_or : HInst< 33023(outs HvxQR:$Qx4), 33024(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33025"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)", 33026tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33027let Inst{7-2} = 0b010110; 33028let Inst{13-13} = 0b1; 33029let Inst{31-21} = 0b00011100100; 33030let isAccumulator = 1; 33031let isCVI = 1; 33032let DecoderNamespace = "EXT_mmvec"; 33033let Constraints = "$Qx4 = $Qx4in"; 33034} 33035def V6_vgtw_xor : HInst< 33036(outs HvxQR:$Qx4), 33037(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33038"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)", 33039tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33040let Inst{7-2} = 0b100110; 33041let Inst{13-13} = 0b1; 33042let Inst{31-21} = 0b00011100100; 33043let isCVI = 1; 33044let DecoderNamespace = "EXT_mmvec"; 33045let Constraints = "$Qx4 = $Qx4in"; 33046} 33047def V6_vhist : HInst< 33048(outs), 33049(ins), 33050"vhist", 33051tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> { 33052let Inst{13-0} = 0b10000010000000; 33053let Inst{31-16} = 0b0001111000000000; 33054let isCVI = 1; 33055let DecoderNamespace = "EXT_mmvec"; 33056} 33057def V6_vhistq : HInst< 33058(outs), 33059(ins HvxQR:$Qv4), 33060"vhist($Qv4)", 33061tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> { 33062let Inst{13-0} = 0b10000010000000; 33063let Inst{21-16} = 0b000010; 33064let Inst{31-24} = 0b00011110; 33065let isCVI = 1; 33066let DecoderNamespace = "EXT_mmvec"; 33067} 33068def V6_vinsertwr : HInst< 33069(outs HvxVR:$Vx32), 33070(ins HvxVR:$Vx32in, IntRegs:$Rt32), 33071"$Vx32.w = vinsert($Rt32)", 33072tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> { 33073let Inst{13-5} = 0b100000001; 33074let Inst{31-21} = 0b00011001101; 33075let hasNewValue = 1; 33076let opNewValue = 0; 33077let isCVI = 1; 33078let DecoderNamespace = "EXT_mmvec"; 33079let Constraints = "$Vx32 = $Vx32in"; 33080} 33081def V6_vlalignb : HInst< 33082(outs HvxVR:$Vd32), 33083(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33084"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)", 33085tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 33086let Inst{7-5} = 0b001; 33087let Inst{13-13} = 0b0; 33088let Inst{31-24} = 0b00011011; 33089let hasNewValue = 1; 33090let opNewValue = 0; 33091let isCVI = 1; 33092let DecoderNamespace = "EXT_mmvec"; 33093} 33094def V6_vlalignbi : HInst< 33095(outs HvxVR:$Vd32), 33096(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33097"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)", 33098tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 33099let Inst{13-13} = 0b1; 33100let Inst{31-21} = 0b00011110011; 33101let hasNewValue = 1; 33102let opNewValue = 0; 33103let isCVI = 1; 33104let DecoderNamespace = "EXT_mmvec"; 33105} 33106def V6_vlsrb : HInst< 33107(outs HvxVR:$Vd32), 33108(ins HvxVR:$Vu32, IntRegs:$Rt32), 33109"$Vd32.ub = vlsr($Vu32.ub,$Rt32)", 33110tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> { 33111let Inst{7-5} = 0b011; 33112let Inst{13-13} = 0b0; 33113let Inst{31-21} = 0b00011001100; 33114let hasNewValue = 1; 33115let opNewValue = 0; 33116let isCVI = 1; 33117let DecoderNamespace = "EXT_mmvec"; 33118} 33119def V6_vlsrh : HInst< 33120(outs HvxVR:$Vd32), 33121(ins HvxVR:$Vu32, IntRegs:$Rt32), 33122"$Vd32.uh = vlsr($Vu32.uh,$Rt32)", 33123tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 33124let Inst{7-5} = 0b010; 33125let Inst{13-13} = 0b0; 33126let Inst{31-21} = 0b00011001100; 33127let hasNewValue = 1; 33128let opNewValue = 0; 33129let isCVI = 1; 33130let DecoderNamespace = "EXT_mmvec"; 33131} 33132def V6_vlsrh_alt : HInst< 33133(outs HvxVR:$Vd32), 33134(ins HvxVR:$Vu32, IntRegs:$Rt32), 33135"$Vd32 = vlsrh($Vu32,$Rt32)", 33136PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33137let hasNewValue = 1; 33138let opNewValue = 0; 33139let isCVI = 1; 33140let isPseudo = 1; 33141let isCodeGenOnly = 1; 33142let DecoderNamespace = "EXT_mmvec"; 33143} 33144def V6_vlsrhv : HInst< 33145(outs HvxVR:$Vd32), 33146(ins HvxVR:$Vu32, HvxVR:$Vv32), 33147"$Vd32.h = vlsr($Vu32.h,$Vv32.h)", 33148tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 33149let Inst{7-5} = 0b010; 33150let Inst{13-13} = 0b0; 33151let Inst{31-21} = 0b00011111101; 33152let hasNewValue = 1; 33153let opNewValue = 0; 33154let isCVI = 1; 33155let DecoderNamespace = "EXT_mmvec"; 33156} 33157def V6_vlsrhv_alt : HInst< 33158(outs HvxVR:$Vd32), 33159(ins HvxVR:$Vu32, HvxVR:$Vv32), 33160"$Vd32 = vlsrh($Vu32,$Vv32)", 33161PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33162let hasNewValue = 1; 33163let opNewValue = 0; 33164let isCVI = 1; 33165let isPseudo = 1; 33166let isCodeGenOnly = 1; 33167let DecoderNamespace = "EXT_mmvec"; 33168} 33169def V6_vlsrw : HInst< 33170(outs HvxVR:$Vd32), 33171(ins HvxVR:$Vu32, IntRegs:$Rt32), 33172"$Vd32.uw = vlsr($Vu32.uw,$Rt32)", 33173tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 33174let Inst{7-5} = 0b001; 33175let Inst{13-13} = 0b0; 33176let Inst{31-21} = 0b00011001100; 33177let hasNewValue = 1; 33178let opNewValue = 0; 33179let isCVI = 1; 33180let DecoderNamespace = "EXT_mmvec"; 33181} 33182def V6_vlsrw_alt : HInst< 33183(outs HvxVR:$Vd32), 33184(ins HvxVR:$Vu32, IntRegs:$Rt32), 33185"$Vd32 = vlsrw($Vu32,$Rt32)", 33186PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33187let hasNewValue = 1; 33188let opNewValue = 0; 33189let isCVI = 1; 33190let isPseudo = 1; 33191let isCodeGenOnly = 1; 33192let DecoderNamespace = "EXT_mmvec"; 33193} 33194def V6_vlsrwv : HInst< 33195(outs HvxVR:$Vd32), 33196(ins HvxVR:$Vu32, HvxVR:$Vv32), 33197"$Vd32.w = vlsr($Vu32.w,$Vv32.w)", 33198tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 33199let Inst{7-5} = 0b001; 33200let Inst{13-13} = 0b0; 33201let Inst{31-21} = 0b00011111101; 33202let hasNewValue = 1; 33203let opNewValue = 0; 33204let isCVI = 1; 33205let DecoderNamespace = "EXT_mmvec"; 33206} 33207def V6_vlsrwv_alt : HInst< 33208(outs HvxVR:$Vd32), 33209(ins HvxVR:$Vu32, HvxVR:$Vv32), 33210"$Vd32 = vlsrw($Vu32,$Vv32)", 33211PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33212let hasNewValue = 1; 33213let opNewValue = 0; 33214let isCVI = 1; 33215let isPseudo = 1; 33216let isCodeGenOnly = 1; 33217let DecoderNamespace = "EXT_mmvec"; 33218} 33219def V6_vlut4 : HInst< 33220(outs HvxVR:$Vd32), 33221(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 33222"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)", 33223tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> { 33224let Inst{7-5} = 0b100; 33225let Inst{13-13} = 0b0; 33226let Inst{31-21} = 0b00011001011; 33227let hasNewValue = 1; 33228let opNewValue = 0; 33229let isCVI = 1; 33230let DecoderNamespace = "EXT_mmvec"; 33231} 33232def V6_vlutvvb : HInst< 33233(outs HvxVR:$Vd32), 33234(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33235"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)", 33236tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 33237let Inst{7-5} = 0b001; 33238let Inst{13-13} = 0b1; 33239let Inst{31-24} = 0b00011011; 33240let hasNewValue = 1; 33241let opNewValue = 0; 33242let isCVI = 1; 33243let DecoderNamespace = "EXT_mmvec"; 33244} 33245def V6_vlutvvb_nm : HInst< 33246(outs HvxVR:$Vd32), 33247(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33248"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch", 33249tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> { 33250let Inst{7-5} = 0b011; 33251let Inst{13-13} = 0b0; 33252let Inst{31-24} = 0b00011000; 33253let hasNewValue = 1; 33254let opNewValue = 0; 33255let isCVI = 1; 33256let DecoderNamespace = "EXT_mmvec"; 33257} 33258def V6_vlutvvb_oracc : HInst< 33259(outs HvxVR:$Vx32), 33260(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33261"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)", 33262tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> { 33263let Inst{7-5} = 0b101; 33264let Inst{13-13} = 0b1; 33265let Inst{31-24} = 0b00011011; 33266let hasNewValue = 1; 33267let opNewValue = 0; 33268let isAccumulator = 1; 33269let isCVI = 1; 33270let DecoderNamespace = "EXT_mmvec"; 33271let Constraints = "$Vx32 = $Vx32in"; 33272} 33273def V6_vlutvvb_oracci : HInst< 33274(outs HvxVR:$Vx32), 33275(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33276"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)", 33277tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> { 33278let Inst{13-13} = 0b1; 33279let Inst{31-21} = 0b00011100110; 33280let hasNewValue = 1; 33281let opNewValue = 0; 33282let isAccumulator = 1; 33283let isCVI = 1; 33284let DecoderNamespace = "EXT_mmvec"; 33285let Constraints = "$Vx32 = $Vx32in"; 33286} 33287def V6_vlutvvbi : HInst< 33288(outs HvxVR:$Vd32), 33289(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33290"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)", 33291tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> { 33292let Inst{13-13} = 0b0; 33293let Inst{31-21} = 0b00011110001; 33294let hasNewValue = 1; 33295let opNewValue = 0; 33296let isCVI = 1; 33297let DecoderNamespace = "EXT_mmvec"; 33298} 33299def V6_vlutvwh : HInst< 33300(outs HvxWR:$Vdd32), 33301(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33302"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)", 33303tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 33304let Inst{7-5} = 0b110; 33305let Inst{13-13} = 0b1; 33306let Inst{31-24} = 0b00011011; 33307let hasNewValue = 1; 33308let opNewValue = 0; 33309let isCVI = 1; 33310let DecoderNamespace = "EXT_mmvec"; 33311} 33312def V6_vlutvwh_nm : HInst< 33313(outs HvxWR:$Vdd32), 33314(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33315"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch", 33316tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> { 33317let Inst{7-5} = 0b100; 33318let Inst{13-13} = 0b0; 33319let Inst{31-24} = 0b00011000; 33320let hasNewValue = 1; 33321let opNewValue = 0; 33322let isCVI = 1; 33323let DecoderNamespace = "EXT_mmvec"; 33324} 33325def V6_vlutvwh_oracc : HInst< 33326(outs HvxWR:$Vxx32), 33327(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 33328"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)", 33329tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> { 33330let Inst{7-5} = 0b111; 33331let Inst{13-13} = 0b1; 33332let Inst{31-24} = 0b00011011; 33333let hasNewValue = 1; 33334let opNewValue = 0; 33335let isAccumulator = 1; 33336let isCVI = 1; 33337let DecoderNamespace = "EXT_mmvec"; 33338let Constraints = "$Vxx32 = $Vxx32in"; 33339} 33340def V6_vlutvwh_oracci : HInst< 33341(outs HvxWR:$Vxx32), 33342(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33343"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)", 33344tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> { 33345let Inst{13-13} = 0b1; 33346let Inst{31-21} = 0b00011100111; 33347let hasNewValue = 1; 33348let opNewValue = 0; 33349let isAccumulator = 1; 33350let isCVI = 1; 33351let DecoderNamespace = "EXT_mmvec"; 33352let Constraints = "$Vxx32 = $Vxx32in"; 33353} 33354def V6_vlutvwhi : HInst< 33355(outs HvxWR:$Vdd32), 33356(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 33357"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)", 33358tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> { 33359let Inst{13-13} = 0b0; 33360let Inst{31-21} = 0b00011110011; 33361let hasNewValue = 1; 33362let opNewValue = 0; 33363let isCVI = 1; 33364let DecoderNamespace = "EXT_mmvec"; 33365} 33366def V6_vmaxb : HInst< 33367(outs HvxVR:$Vd32), 33368(ins HvxVR:$Vu32, HvxVR:$Vv32), 33369"$Vd32.b = vmax($Vu32.b,$Vv32.b)", 33370tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 33371let Inst{7-5} = 0b101; 33372let Inst{13-13} = 0b0; 33373let Inst{31-21} = 0b00011111001; 33374let hasNewValue = 1; 33375let opNewValue = 0; 33376let isCVI = 1; 33377let DecoderNamespace = "EXT_mmvec"; 33378} 33379def V6_vmaxb_alt : HInst< 33380(outs HvxVR:$Vd32), 33381(ins HvxVR:$Vu32, HvxVR:$Vv32), 33382"$Vd32 = vmaxb($Vu32,$Vv32)", 33383PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33384let hasNewValue = 1; 33385let opNewValue = 0; 33386let isCVI = 1; 33387let isPseudo = 1; 33388let isCodeGenOnly = 1; 33389let DecoderNamespace = "EXT_mmvec"; 33390} 33391def V6_vmaxh : HInst< 33392(outs HvxVR:$Vd32), 33393(ins HvxVR:$Vu32, HvxVR:$Vv32), 33394"$Vd32.h = vmax($Vu32.h,$Vv32.h)", 33395tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33396let Inst{7-5} = 0b111; 33397let Inst{13-13} = 0b0; 33398let Inst{31-21} = 0b00011111000; 33399let hasNewValue = 1; 33400let opNewValue = 0; 33401let isCVI = 1; 33402let DecoderNamespace = "EXT_mmvec"; 33403} 33404def V6_vmaxh_alt : HInst< 33405(outs HvxVR:$Vd32), 33406(ins HvxVR:$Vu32, HvxVR:$Vv32), 33407"$Vd32 = vmaxh($Vu32,$Vv32)", 33408PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33409let hasNewValue = 1; 33410let opNewValue = 0; 33411let isCVI = 1; 33412let isPseudo = 1; 33413let isCodeGenOnly = 1; 33414let DecoderNamespace = "EXT_mmvec"; 33415} 33416def V6_vmaxub : HInst< 33417(outs HvxVR:$Vd32), 33418(ins HvxVR:$Vu32, HvxVR:$Vv32), 33419"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)", 33420tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33421let Inst{7-5} = 0b101; 33422let Inst{13-13} = 0b0; 33423let Inst{31-21} = 0b00011111000; 33424let hasNewValue = 1; 33425let opNewValue = 0; 33426let isCVI = 1; 33427let DecoderNamespace = "EXT_mmvec"; 33428} 33429def V6_vmaxub_alt : HInst< 33430(outs HvxVR:$Vd32), 33431(ins HvxVR:$Vu32, HvxVR:$Vv32), 33432"$Vd32 = vmaxub($Vu32,$Vv32)", 33433PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33434let hasNewValue = 1; 33435let opNewValue = 0; 33436let isCVI = 1; 33437let isPseudo = 1; 33438let isCodeGenOnly = 1; 33439let DecoderNamespace = "EXT_mmvec"; 33440} 33441def V6_vmaxuh : HInst< 33442(outs HvxVR:$Vd32), 33443(ins HvxVR:$Vu32, HvxVR:$Vv32), 33444"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)", 33445tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33446let Inst{7-5} = 0b110; 33447let Inst{13-13} = 0b0; 33448let Inst{31-21} = 0b00011111000; 33449let hasNewValue = 1; 33450let opNewValue = 0; 33451let isCVI = 1; 33452let DecoderNamespace = "EXT_mmvec"; 33453} 33454def V6_vmaxuh_alt : HInst< 33455(outs HvxVR:$Vd32), 33456(ins HvxVR:$Vu32, HvxVR:$Vv32), 33457"$Vd32 = vmaxuh($Vu32,$Vv32)", 33458PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33459let hasNewValue = 1; 33460let opNewValue = 0; 33461let isCVI = 1; 33462let isPseudo = 1; 33463let isCodeGenOnly = 1; 33464let DecoderNamespace = "EXT_mmvec"; 33465} 33466def V6_vmaxw : HInst< 33467(outs HvxVR:$Vd32), 33468(ins HvxVR:$Vu32, HvxVR:$Vv32), 33469"$Vd32.w = vmax($Vu32.w,$Vv32.w)", 33470tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33471let Inst{7-5} = 0b000; 33472let Inst{13-13} = 0b0; 33473let Inst{31-21} = 0b00011111001; 33474let hasNewValue = 1; 33475let opNewValue = 0; 33476let isCVI = 1; 33477let DecoderNamespace = "EXT_mmvec"; 33478} 33479def V6_vmaxw_alt : HInst< 33480(outs HvxVR:$Vd32), 33481(ins HvxVR:$Vu32, HvxVR:$Vv32), 33482"$Vd32 = vmaxw($Vu32,$Vv32)", 33483PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33484let hasNewValue = 1; 33485let opNewValue = 0; 33486let isCVI = 1; 33487let isPseudo = 1; 33488let isCodeGenOnly = 1; 33489let DecoderNamespace = "EXT_mmvec"; 33490} 33491def V6_vminb : HInst< 33492(outs HvxVR:$Vd32), 33493(ins HvxVR:$Vu32, HvxVR:$Vv32), 33494"$Vd32.b = vmin($Vu32.b,$Vv32.b)", 33495tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 33496let Inst{7-5} = 0b100; 33497let Inst{13-13} = 0b0; 33498let Inst{31-21} = 0b00011111001; 33499let hasNewValue = 1; 33500let opNewValue = 0; 33501let isCVI = 1; 33502let DecoderNamespace = "EXT_mmvec"; 33503} 33504def V6_vminb_alt : HInst< 33505(outs HvxVR:$Vd32), 33506(ins HvxVR:$Vu32, HvxVR:$Vv32), 33507"$Vd32 = vminb($Vu32,$Vv32)", 33508PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33509let hasNewValue = 1; 33510let opNewValue = 0; 33511let isCVI = 1; 33512let isPseudo = 1; 33513let isCodeGenOnly = 1; 33514let DecoderNamespace = "EXT_mmvec"; 33515} 33516def V6_vminh : HInst< 33517(outs HvxVR:$Vd32), 33518(ins HvxVR:$Vu32, HvxVR:$Vv32), 33519"$Vd32.h = vmin($Vu32.h,$Vv32.h)", 33520tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33521let Inst{7-5} = 0b011; 33522let Inst{13-13} = 0b0; 33523let Inst{31-21} = 0b00011111000; 33524let hasNewValue = 1; 33525let opNewValue = 0; 33526let isCVI = 1; 33527let DecoderNamespace = "EXT_mmvec"; 33528} 33529def V6_vminh_alt : HInst< 33530(outs HvxVR:$Vd32), 33531(ins HvxVR:$Vu32, HvxVR:$Vv32), 33532"$Vd32 = vminh($Vu32,$Vv32)", 33533PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33534let hasNewValue = 1; 33535let opNewValue = 0; 33536let isCVI = 1; 33537let isPseudo = 1; 33538let isCodeGenOnly = 1; 33539let DecoderNamespace = "EXT_mmvec"; 33540} 33541def V6_vminub : HInst< 33542(outs HvxVR:$Vd32), 33543(ins HvxVR:$Vu32, HvxVR:$Vv32), 33544"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)", 33545tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33546let Inst{7-5} = 0b001; 33547let Inst{13-13} = 0b0; 33548let Inst{31-21} = 0b00011111000; 33549let hasNewValue = 1; 33550let opNewValue = 0; 33551let isCVI = 1; 33552let DecoderNamespace = "EXT_mmvec"; 33553} 33554def V6_vminub_alt : HInst< 33555(outs HvxVR:$Vd32), 33556(ins HvxVR:$Vu32, HvxVR:$Vv32), 33557"$Vd32 = vminub($Vu32,$Vv32)", 33558PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33559let hasNewValue = 1; 33560let opNewValue = 0; 33561let isCVI = 1; 33562let isPseudo = 1; 33563let isCodeGenOnly = 1; 33564let DecoderNamespace = "EXT_mmvec"; 33565} 33566def V6_vminuh : HInst< 33567(outs HvxVR:$Vd32), 33568(ins HvxVR:$Vu32, HvxVR:$Vv32), 33569"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)", 33570tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33571let Inst{7-5} = 0b010; 33572let Inst{13-13} = 0b0; 33573let Inst{31-21} = 0b00011111000; 33574let hasNewValue = 1; 33575let opNewValue = 0; 33576let isCVI = 1; 33577let DecoderNamespace = "EXT_mmvec"; 33578} 33579def V6_vminuh_alt : HInst< 33580(outs HvxVR:$Vd32), 33581(ins HvxVR:$Vu32, HvxVR:$Vv32), 33582"$Vd32 = vminuh($Vu32,$Vv32)", 33583PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33584let hasNewValue = 1; 33585let opNewValue = 0; 33586let isCVI = 1; 33587let isPseudo = 1; 33588let isCodeGenOnly = 1; 33589let DecoderNamespace = "EXT_mmvec"; 33590} 33591def V6_vminw : HInst< 33592(outs HvxVR:$Vd32), 33593(ins HvxVR:$Vu32, HvxVR:$Vv32), 33594"$Vd32.w = vmin($Vu32.w,$Vv32.w)", 33595tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 33596let Inst{7-5} = 0b100; 33597let Inst{13-13} = 0b0; 33598let Inst{31-21} = 0b00011111000; 33599let hasNewValue = 1; 33600let opNewValue = 0; 33601let isCVI = 1; 33602let DecoderNamespace = "EXT_mmvec"; 33603} 33604def V6_vminw_alt : HInst< 33605(outs HvxVR:$Vd32), 33606(ins HvxVR:$Vu32, HvxVR:$Vv32), 33607"$Vd32 = vminw($Vu32,$Vv32)", 33608PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33609let hasNewValue = 1; 33610let opNewValue = 0; 33611let isCVI = 1; 33612let isPseudo = 1; 33613let isCodeGenOnly = 1; 33614let DecoderNamespace = "EXT_mmvec"; 33615} 33616def V6_vmpabus : HInst< 33617(outs HvxWR:$Vdd32), 33618(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33619"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)", 33620tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33621let Inst{7-5} = 0b110; 33622let Inst{13-13} = 0b0; 33623let Inst{31-21} = 0b00011001001; 33624let hasNewValue = 1; 33625let opNewValue = 0; 33626let isCVI = 1; 33627let DecoderNamespace = "EXT_mmvec"; 33628} 33629def V6_vmpabus_acc : HInst< 33630(outs HvxWR:$Vxx32), 33631(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33632"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)", 33633tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33634let Inst{7-5} = 0b110; 33635let Inst{13-13} = 0b1; 33636let Inst{31-21} = 0b00011001001; 33637let hasNewValue = 1; 33638let opNewValue = 0; 33639let isAccumulator = 1; 33640let isCVI = 1; 33641let DecoderNamespace = "EXT_mmvec"; 33642let Constraints = "$Vxx32 = $Vxx32in"; 33643} 33644def V6_vmpabus_acc_alt : HInst< 33645(outs HvxWR:$Vxx32), 33646(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33647"$Vxx32 += vmpabus($Vuu32,$Rt32)", 33648PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33649let hasNewValue = 1; 33650let opNewValue = 0; 33651let isAccumulator = 1; 33652let isCVI = 1; 33653let isPseudo = 1; 33654let isCodeGenOnly = 1; 33655let DecoderNamespace = "EXT_mmvec"; 33656let Constraints = "$Vxx32 = $Vxx32in"; 33657} 33658def V6_vmpabus_alt : HInst< 33659(outs HvxWR:$Vdd32), 33660(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33661"$Vdd32 = vmpabus($Vuu32,$Rt32)", 33662PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33663let hasNewValue = 1; 33664let opNewValue = 0; 33665let isCVI = 1; 33666let isPseudo = 1; 33667let isCodeGenOnly = 1; 33668let DecoderNamespace = "EXT_mmvec"; 33669} 33670def V6_vmpabusv : HInst< 33671(outs HvxWR:$Vdd32), 33672(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33673"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)", 33674tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 33675let Inst{7-5} = 0b011; 33676let Inst{13-13} = 0b0; 33677let Inst{31-21} = 0b00011100001; 33678let hasNewValue = 1; 33679let opNewValue = 0; 33680let isCVI = 1; 33681let DecoderNamespace = "EXT_mmvec"; 33682} 33683def V6_vmpabusv_alt : HInst< 33684(outs HvxWR:$Vdd32), 33685(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33686"$Vdd32 = vmpabus($Vuu32,$Vvv32)", 33687PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33688let hasNewValue = 1; 33689let opNewValue = 0; 33690let isCVI = 1; 33691let isPseudo = 1; 33692let isCodeGenOnly = 1; 33693let DecoderNamespace = "EXT_mmvec"; 33694} 33695def V6_vmpabuu : HInst< 33696(outs HvxWR:$Vdd32), 33697(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33698"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)", 33699tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> { 33700let Inst{7-5} = 0b011; 33701let Inst{13-13} = 0b0; 33702let Inst{31-21} = 0b00011001011; 33703let hasNewValue = 1; 33704let opNewValue = 0; 33705let isCVI = 1; 33706let DecoderNamespace = "EXT_mmvec"; 33707} 33708def V6_vmpabuu_acc : HInst< 33709(outs HvxWR:$Vxx32), 33710(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33711"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)", 33712tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> { 33713let Inst{7-5} = 0b100; 33714let Inst{13-13} = 0b1; 33715let Inst{31-21} = 0b00011001101; 33716let hasNewValue = 1; 33717let opNewValue = 0; 33718let isAccumulator = 1; 33719let isCVI = 1; 33720let DecoderNamespace = "EXT_mmvec"; 33721let Constraints = "$Vxx32 = $Vxx32in"; 33722} 33723def V6_vmpabuu_acc_alt : HInst< 33724(outs HvxWR:$Vxx32), 33725(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33726"$Vxx32 += vmpabuu($Vuu32,$Rt32)", 33727PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 33728let hasNewValue = 1; 33729let opNewValue = 0; 33730let isAccumulator = 1; 33731let isCVI = 1; 33732let isPseudo = 1; 33733let isCodeGenOnly = 1; 33734let DecoderNamespace = "EXT_mmvec"; 33735let Constraints = "$Vxx32 = $Vxx32in"; 33736} 33737def V6_vmpabuu_alt : HInst< 33738(outs HvxWR:$Vdd32), 33739(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33740"$Vdd32 = vmpabuu($Vuu32,$Rt32)", 33741PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 33742let hasNewValue = 1; 33743let opNewValue = 0; 33744let isCVI = 1; 33745let isPseudo = 1; 33746let isCodeGenOnly = 1; 33747let DecoderNamespace = "EXT_mmvec"; 33748} 33749def V6_vmpabuuv : HInst< 33750(outs HvxWR:$Vdd32), 33751(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33752"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)", 33753tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 33754let Inst{7-5} = 0b111; 33755let Inst{13-13} = 0b0; 33756let Inst{31-21} = 0b00011100111; 33757let hasNewValue = 1; 33758let opNewValue = 0; 33759let isCVI = 1; 33760let DecoderNamespace = "EXT_mmvec"; 33761} 33762def V6_vmpabuuv_alt : HInst< 33763(outs HvxWR:$Vdd32), 33764(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 33765"$Vdd32 = vmpabuu($Vuu32,$Vvv32)", 33766PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33767let hasNewValue = 1; 33768let opNewValue = 0; 33769let isCVI = 1; 33770let isPseudo = 1; 33771let isCodeGenOnly = 1; 33772let DecoderNamespace = "EXT_mmvec"; 33773} 33774def V6_vmpahb : HInst< 33775(outs HvxWR:$Vdd32), 33776(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33777"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)", 33778tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33779let Inst{7-5} = 0b111; 33780let Inst{13-13} = 0b0; 33781let Inst{31-21} = 0b00011001001; 33782let hasNewValue = 1; 33783let opNewValue = 0; 33784let isCVI = 1; 33785let DecoderNamespace = "EXT_mmvec"; 33786} 33787def V6_vmpahb_acc : HInst< 33788(outs HvxWR:$Vxx32), 33789(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33790"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)", 33791tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33792let Inst{7-5} = 0b111; 33793let Inst{13-13} = 0b1; 33794let Inst{31-21} = 0b00011001001; 33795let hasNewValue = 1; 33796let opNewValue = 0; 33797let isAccumulator = 1; 33798let isCVI = 1; 33799let DecoderNamespace = "EXT_mmvec"; 33800let Constraints = "$Vxx32 = $Vxx32in"; 33801} 33802def V6_vmpahb_acc_alt : HInst< 33803(outs HvxWR:$Vxx32), 33804(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33805"$Vxx32 += vmpahb($Vuu32,$Rt32)", 33806PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33807let hasNewValue = 1; 33808let opNewValue = 0; 33809let isAccumulator = 1; 33810let isCVI = 1; 33811let isPseudo = 1; 33812let isCodeGenOnly = 1; 33813let DecoderNamespace = "EXT_mmvec"; 33814let Constraints = "$Vxx32 = $Vxx32in"; 33815} 33816def V6_vmpahb_alt : HInst< 33817(outs HvxWR:$Vdd32), 33818(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33819"$Vdd32 = vmpahb($Vuu32,$Rt32)", 33820PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33821let hasNewValue = 1; 33822let opNewValue = 0; 33823let isCVI = 1; 33824let isPseudo = 1; 33825let isCodeGenOnly = 1; 33826let DecoderNamespace = "EXT_mmvec"; 33827} 33828def V6_vmpahhsat : HInst< 33829(outs HvxVR:$Vx32), 33830(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 33831"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat", 33832tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 33833let Inst{7-5} = 0b100; 33834let Inst{13-13} = 0b1; 33835let Inst{31-21} = 0b00011001100; 33836let hasNewValue = 1; 33837let opNewValue = 0; 33838let isCVI = 1; 33839let DecoderNamespace = "EXT_mmvec"; 33840let Constraints = "$Vx32 = $Vx32in"; 33841} 33842def V6_vmpauhb : HInst< 33843(outs HvxWR:$Vdd32), 33844(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33845"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)", 33846tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> { 33847let Inst{7-5} = 0b101; 33848let Inst{13-13} = 0b0; 33849let Inst{31-21} = 0b00011001100; 33850let hasNewValue = 1; 33851let opNewValue = 0; 33852let isCVI = 1; 33853let DecoderNamespace = "EXT_mmvec"; 33854} 33855def V6_vmpauhb_acc : HInst< 33856(outs HvxWR:$Vxx32), 33857(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33858"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)", 33859tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> { 33860let Inst{7-5} = 0b010; 33861let Inst{13-13} = 0b1; 33862let Inst{31-21} = 0b00011001100; 33863let hasNewValue = 1; 33864let opNewValue = 0; 33865let isAccumulator = 1; 33866let isCVI = 1; 33867let DecoderNamespace = "EXT_mmvec"; 33868let Constraints = "$Vxx32 = $Vxx32in"; 33869} 33870def V6_vmpauhb_acc_alt : HInst< 33871(outs HvxWR:$Vxx32), 33872(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33873"$Vxx32 += vmpauhb($Vuu32,$Rt32)", 33874PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33875let hasNewValue = 1; 33876let opNewValue = 0; 33877let isAccumulator = 1; 33878let isCVI = 1; 33879let isPseudo = 1; 33880let isCodeGenOnly = 1; 33881let DecoderNamespace = "EXT_mmvec"; 33882let Constraints = "$Vxx32 = $Vxx32in"; 33883} 33884def V6_vmpauhb_alt : HInst< 33885(outs HvxWR:$Vdd32), 33886(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33887"$Vdd32 = vmpauhb($Vuu32,$Rt32)", 33888PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 33889let hasNewValue = 1; 33890let opNewValue = 0; 33891let isCVI = 1; 33892let isPseudo = 1; 33893let isCodeGenOnly = 1; 33894let DecoderNamespace = "EXT_mmvec"; 33895} 33896def V6_vmpauhuhsat : HInst< 33897(outs HvxVR:$Vx32), 33898(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 33899"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 33900tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 33901let Inst{7-5} = 0b101; 33902let Inst{13-13} = 0b1; 33903let Inst{31-21} = 0b00011001100; 33904let hasNewValue = 1; 33905let opNewValue = 0; 33906let isCVI = 1; 33907let DecoderNamespace = "EXT_mmvec"; 33908let Constraints = "$Vx32 = $Vx32in"; 33909} 33910def V6_vmpsuhuhsat : HInst< 33911(outs HvxVR:$Vx32), 33912(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 33913"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 33914tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 33915let Inst{7-5} = 0b110; 33916let Inst{13-13} = 0b1; 33917let Inst{31-21} = 0b00011001100; 33918let hasNewValue = 1; 33919let opNewValue = 0; 33920let isCVI = 1; 33921let DecoderNamespace = "EXT_mmvec"; 33922let Constraints = "$Vx32 = $Vx32in"; 33923} 33924def V6_vmpybus : HInst< 33925(outs HvxWR:$Vdd32), 33926(ins HvxVR:$Vu32, IntRegs:$Rt32), 33927"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)", 33928tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 33929let Inst{7-5} = 0b101; 33930let Inst{13-13} = 0b0; 33931let Inst{31-21} = 0b00011001001; 33932let hasNewValue = 1; 33933let opNewValue = 0; 33934let isCVI = 1; 33935let DecoderNamespace = "EXT_mmvec"; 33936} 33937def V6_vmpybus_acc : HInst< 33938(outs HvxWR:$Vxx32), 33939(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33940"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)", 33941tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 33942let Inst{7-5} = 0b101; 33943let Inst{13-13} = 0b1; 33944let Inst{31-21} = 0b00011001001; 33945let hasNewValue = 1; 33946let opNewValue = 0; 33947let isAccumulator = 1; 33948let isCVI = 1; 33949let DecoderNamespace = "EXT_mmvec"; 33950let Constraints = "$Vxx32 = $Vxx32in"; 33951} 33952def V6_vmpybus_acc_alt : HInst< 33953(outs HvxWR:$Vxx32), 33954(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33955"$Vxx32 += vmpybus($Vu32,$Rt32)", 33956PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33957let hasNewValue = 1; 33958let opNewValue = 0; 33959let isAccumulator = 1; 33960let isCVI = 1; 33961let isPseudo = 1; 33962let isCodeGenOnly = 1; 33963let DecoderNamespace = "EXT_mmvec"; 33964let Constraints = "$Vxx32 = $Vxx32in"; 33965} 33966def V6_vmpybus_alt : HInst< 33967(outs HvxWR:$Vdd32), 33968(ins HvxVR:$Vu32, IntRegs:$Rt32), 33969"$Vdd32 = vmpybus($Vu32,$Rt32)", 33970PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33971let hasNewValue = 1; 33972let opNewValue = 0; 33973let isCVI = 1; 33974let isPseudo = 1; 33975let isCodeGenOnly = 1; 33976let DecoderNamespace = "EXT_mmvec"; 33977} 33978def V6_vmpybusv : HInst< 33979(outs HvxWR:$Vdd32), 33980(ins HvxVR:$Vu32, HvxVR:$Vv32), 33981"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)", 33982tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 33983let Inst{7-5} = 0b110; 33984let Inst{13-13} = 0b0; 33985let Inst{31-21} = 0b00011100000; 33986let hasNewValue = 1; 33987let opNewValue = 0; 33988let isCVI = 1; 33989let DecoderNamespace = "EXT_mmvec"; 33990} 33991def V6_vmpybusv_acc : HInst< 33992(outs HvxWR:$Vxx32), 33993(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33994"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)", 33995tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 33996let Inst{7-5} = 0b110; 33997let Inst{13-13} = 0b1; 33998let Inst{31-21} = 0b00011100000; 33999let hasNewValue = 1; 34000let opNewValue = 0; 34001let isAccumulator = 1; 34002let isCVI = 1; 34003let DecoderNamespace = "EXT_mmvec"; 34004let Constraints = "$Vxx32 = $Vxx32in"; 34005} 34006def V6_vmpybusv_acc_alt : HInst< 34007(outs HvxWR:$Vxx32), 34008(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34009"$Vxx32 += vmpybus($Vu32,$Vv32)", 34010PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34011let hasNewValue = 1; 34012let opNewValue = 0; 34013let isAccumulator = 1; 34014let isCVI = 1; 34015let isPseudo = 1; 34016let isCodeGenOnly = 1; 34017let DecoderNamespace = "EXT_mmvec"; 34018let Constraints = "$Vxx32 = $Vxx32in"; 34019} 34020def V6_vmpybusv_alt : HInst< 34021(outs HvxWR:$Vdd32), 34022(ins HvxVR:$Vu32, HvxVR:$Vv32), 34023"$Vdd32 = vmpybus($Vu32,$Vv32)", 34024PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34025let hasNewValue = 1; 34026let opNewValue = 0; 34027let isCVI = 1; 34028let isPseudo = 1; 34029let isCodeGenOnly = 1; 34030let DecoderNamespace = "EXT_mmvec"; 34031} 34032def V6_vmpybv : HInst< 34033(outs HvxWR:$Vdd32), 34034(ins HvxVR:$Vu32, HvxVR:$Vv32), 34035"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)", 34036tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34037let Inst{7-5} = 0b100; 34038let Inst{13-13} = 0b0; 34039let Inst{31-21} = 0b00011100000; 34040let hasNewValue = 1; 34041let opNewValue = 0; 34042let isCVI = 1; 34043let DecoderNamespace = "EXT_mmvec"; 34044} 34045def V6_vmpybv_acc : HInst< 34046(outs HvxWR:$Vxx32), 34047(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34048"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)", 34049tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34050let Inst{7-5} = 0b100; 34051let Inst{13-13} = 0b1; 34052let Inst{31-21} = 0b00011100000; 34053let hasNewValue = 1; 34054let opNewValue = 0; 34055let isAccumulator = 1; 34056let isCVI = 1; 34057let DecoderNamespace = "EXT_mmvec"; 34058let Constraints = "$Vxx32 = $Vxx32in"; 34059} 34060def V6_vmpybv_acc_alt : HInst< 34061(outs HvxWR:$Vxx32), 34062(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34063"$Vxx32 += vmpyb($Vu32,$Vv32)", 34064PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34065let hasNewValue = 1; 34066let opNewValue = 0; 34067let isAccumulator = 1; 34068let isCVI = 1; 34069let isPseudo = 1; 34070let isCodeGenOnly = 1; 34071let DecoderNamespace = "EXT_mmvec"; 34072let Constraints = "$Vxx32 = $Vxx32in"; 34073} 34074def V6_vmpybv_alt : HInst< 34075(outs HvxWR:$Vdd32), 34076(ins HvxVR:$Vu32, HvxVR:$Vv32), 34077"$Vdd32 = vmpyb($Vu32,$Vv32)", 34078PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34079let hasNewValue = 1; 34080let opNewValue = 0; 34081let isCVI = 1; 34082let isPseudo = 1; 34083let isCodeGenOnly = 1; 34084let DecoderNamespace = "EXT_mmvec"; 34085} 34086def V6_vmpyewuh : HInst< 34087(outs HvxVR:$Vd32), 34088(ins HvxVR:$Vu32, HvxVR:$Vv32), 34089"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)", 34090tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34091let Inst{7-5} = 0b101; 34092let Inst{13-13} = 0b0; 34093let Inst{31-21} = 0b00011111111; 34094let hasNewValue = 1; 34095let opNewValue = 0; 34096let isCVI = 1; 34097let DecoderNamespace = "EXT_mmvec"; 34098} 34099def V6_vmpyewuh_64 : HInst< 34100(outs HvxWR:$Vdd32), 34101(ins HvxVR:$Vu32, HvxVR:$Vv32), 34102"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)", 34103tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> { 34104let Inst{7-5} = 0b110; 34105let Inst{13-13} = 0b0; 34106let Inst{31-21} = 0b00011110101; 34107let hasNewValue = 1; 34108let opNewValue = 0; 34109let isCVI = 1; 34110let DecoderNamespace = "EXT_mmvec"; 34111} 34112def V6_vmpyewuh_alt : HInst< 34113(outs HvxVR:$Vd32), 34114(ins HvxVR:$Vu32, HvxVR:$Vv32), 34115"$Vd32 = vmpyewuh($Vu32,$Vv32)", 34116PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34117let hasNewValue = 1; 34118let opNewValue = 0; 34119let isCVI = 1; 34120let isPseudo = 1; 34121let isCodeGenOnly = 1; 34122let DecoderNamespace = "EXT_mmvec"; 34123} 34124def V6_vmpyh : HInst< 34125(outs HvxWR:$Vdd32), 34126(ins HvxVR:$Vu32, IntRegs:$Rt32), 34127"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)", 34128tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 34129let Inst{7-5} = 0b000; 34130let Inst{13-13} = 0b0; 34131let Inst{31-21} = 0b00011001010; 34132let hasNewValue = 1; 34133let opNewValue = 0; 34134let isCVI = 1; 34135let DecoderNamespace = "EXT_mmvec"; 34136} 34137def V6_vmpyh_acc : HInst< 34138(outs HvxWR:$Vxx32), 34139(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34140"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)", 34141tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> { 34142let Inst{7-5} = 0b110; 34143let Inst{13-13} = 0b1; 34144let Inst{31-21} = 0b00011001101; 34145let hasNewValue = 1; 34146let opNewValue = 0; 34147let isAccumulator = 1; 34148let isCVI = 1; 34149let DecoderNamespace = "EXT_mmvec"; 34150let Constraints = "$Vxx32 = $Vxx32in"; 34151} 34152def V6_vmpyh_acc_alt : HInst< 34153(outs HvxWR:$Vxx32), 34154(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34155"$Vxx32 += vmpyh($Vu32,$Rt32)", 34156PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 34157let hasNewValue = 1; 34158let opNewValue = 0; 34159let isAccumulator = 1; 34160let isCVI = 1; 34161let isPseudo = 1; 34162let isCodeGenOnly = 1; 34163let DecoderNamespace = "EXT_mmvec"; 34164let Constraints = "$Vxx32 = $Vxx32in"; 34165} 34166def V6_vmpyh_alt : HInst< 34167(outs HvxWR:$Vdd32), 34168(ins HvxVR:$Vu32, IntRegs:$Rt32), 34169"$Vdd32 = vmpyh($Vu32,$Rt32)", 34170PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34171let hasNewValue = 1; 34172let opNewValue = 0; 34173let isCVI = 1; 34174let isPseudo = 1; 34175let isCodeGenOnly = 1; 34176let DecoderNamespace = "EXT_mmvec"; 34177} 34178def V6_vmpyhsat_acc : HInst< 34179(outs HvxWR:$Vxx32), 34180(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34181"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat", 34182tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 34183let Inst{7-5} = 0b000; 34184let Inst{13-13} = 0b1; 34185let Inst{31-21} = 0b00011001010; 34186let hasNewValue = 1; 34187let opNewValue = 0; 34188let isAccumulator = 1; 34189let isCVI = 1; 34190let DecoderNamespace = "EXT_mmvec"; 34191let Constraints = "$Vxx32 = $Vxx32in"; 34192} 34193def V6_vmpyhsat_acc_alt : HInst< 34194(outs HvxWR:$Vxx32), 34195(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34196"$Vxx32 += vmpyh($Vu32,$Rt32):sat", 34197PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34198let hasNewValue = 1; 34199let opNewValue = 0; 34200let isAccumulator = 1; 34201let isCVI = 1; 34202let isPseudo = 1; 34203let isCodeGenOnly = 1; 34204let DecoderNamespace = "EXT_mmvec"; 34205let Constraints = "$Vxx32 = $Vxx32in"; 34206} 34207def V6_vmpyhsrs : HInst< 34208(outs HvxVR:$Vd32), 34209(ins HvxVR:$Vu32, IntRegs:$Rt32), 34210"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat", 34211tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34212let Inst{7-5} = 0b010; 34213let Inst{13-13} = 0b0; 34214let Inst{31-21} = 0b00011001010; 34215let hasNewValue = 1; 34216let opNewValue = 0; 34217let isCVI = 1; 34218let DecoderNamespace = "EXT_mmvec"; 34219} 34220def V6_vmpyhsrs_alt : HInst< 34221(outs HvxVR:$Vd32), 34222(ins HvxVR:$Vu32, IntRegs:$Rt32), 34223"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat", 34224PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34225let hasNewValue = 1; 34226let opNewValue = 0; 34227let isCVI = 1; 34228let isPseudo = 1; 34229let isCodeGenOnly = 1; 34230let DecoderNamespace = "EXT_mmvec"; 34231} 34232def V6_vmpyhss : HInst< 34233(outs HvxVR:$Vd32), 34234(ins HvxVR:$Vu32, IntRegs:$Rt32), 34235"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat", 34236tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34237let Inst{7-5} = 0b001; 34238let Inst{13-13} = 0b0; 34239let Inst{31-21} = 0b00011001010; 34240let hasNewValue = 1; 34241let opNewValue = 0; 34242let isCVI = 1; 34243let DecoderNamespace = "EXT_mmvec"; 34244} 34245def V6_vmpyhss_alt : HInst< 34246(outs HvxVR:$Vd32), 34247(ins HvxVR:$Vu32, IntRegs:$Rt32), 34248"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat", 34249PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34250let hasNewValue = 1; 34251let opNewValue = 0; 34252let isCVI = 1; 34253let isPseudo = 1; 34254let isCodeGenOnly = 1; 34255let DecoderNamespace = "EXT_mmvec"; 34256} 34257def V6_vmpyhus : HInst< 34258(outs HvxWR:$Vdd32), 34259(ins HvxVR:$Vu32, HvxVR:$Vv32), 34260"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)", 34261tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34262let Inst{7-5} = 0b010; 34263let Inst{13-13} = 0b0; 34264let Inst{31-21} = 0b00011100001; 34265let hasNewValue = 1; 34266let opNewValue = 0; 34267let isCVI = 1; 34268let DecoderNamespace = "EXT_mmvec"; 34269} 34270def V6_vmpyhus_acc : HInst< 34271(outs HvxWR:$Vxx32), 34272(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34273"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)", 34274tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34275let Inst{7-5} = 0b001; 34276let Inst{13-13} = 0b1; 34277let Inst{31-21} = 0b00011100001; 34278let hasNewValue = 1; 34279let opNewValue = 0; 34280let isAccumulator = 1; 34281let isCVI = 1; 34282let DecoderNamespace = "EXT_mmvec"; 34283let Constraints = "$Vxx32 = $Vxx32in"; 34284} 34285def V6_vmpyhus_acc_alt : HInst< 34286(outs HvxWR:$Vxx32), 34287(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34288"$Vxx32 += vmpyhus($Vu32,$Vv32)", 34289PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34290let hasNewValue = 1; 34291let opNewValue = 0; 34292let isAccumulator = 1; 34293let isCVI = 1; 34294let isPseudo = 1; 34295let isCodeGenOnly = 1; 34296let DecoderNamespace = "EXT_mmvec"; 34297let Constraints = "$Vxx32 = $Vxx32in"; 34298} 34299def V6_vmpyhus_alt : HInst< 34300(outs HvxWR:$Vdd32), 34301(ins HvxVR:$Vu32, HvxVR:$Vv32), 34302"$Vdd32 = vmpyhus($Vu32,$Vv32)", 34303PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34304let hasNewValue = 1; 34305let opNewValue = 0; 34306let isCVI = 1; 34307let isPseudo = 1; 34308let isCodeGenOnly = 1; 34309let DecoderNamespace = "EXT_mmvec"; 34310} 34311def V6_vmpyhv : HInst< 34312(outs HvxWR:$Vdd32), 34313(ins HvxVR:$Vu32, HvxVR:$Vv32), 34314"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)", 34315tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34316let Inst{7-5} = 0b111; 34317let Inst{13-13} = 0b0; 34318let Inst{31-21} = 0b00011100000; 34319let hasNewValue = 1; 34320let opNewValue = 0; 34321let isCVI = 1; 34322let DecoderNamespace = "EXT_mmvec"; 34323} 34324def V6_vmpyhv_acc : HInst< 34325(outs HvxWR:$Vxx32), 34326(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34327"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)", 34328tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34329let Inst{7-5} = 0b111; 34330let Inst{13-13} = 0b1; 34331let Inst{31-21} = 0b00011100000; 34332let hasNewValue = 1; 34333let opNewValue = 0; 34334let isAccumulator = 1; 34335let isCVI = 1; 34336let DecoderNamespace = "EXT_mmvec"; 34337let Constraints = "$Vxx32 = $Vxx32in"; 34338} 34339def V6_vmpyhv_acc_alt : HInst< 34340(outs HvxWR:$Vxx32), 34341(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34342"$Vxx32 += vmpyh($Vu32,$Vv32)", 34343PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34344let hasNewValue = 1; 34345let opNewValue = 0; 34346let isAccumulator = 1; 34347let isCVI = 1; 34348let isPseudo = 1; 34349let isCodeGenOnly = 1; 34350let DecoderNamespace = "EXT_mmvec"; 34351let Constraints = "$Vxx32 = $Vxx32in"; 34352} 34353def V6_vmpyhv_alt : HInst< 34354(outs HvxWR:$Vdd32), 34355(ins HvxVR:$Vu32, HvxVR:$Vv32), 34356"$Vdd32 = vmpyh($Vu32,$Vv32)", 34357PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34358let hasNewValue = 1; 34359let opNewValue = 0; 34360let isCVI = 1; 34361let isPseudo = 1; 34362let isCodeGenOnly = 1; 34363let DecoderNamespace = "EXT_mmvec"; 34364} 34365def V6_vmpyhvsrs : HInst< 34366(outs HvxVR:$Vd32), 34367(ins HvxVR:$Vu32, HvxVR:$Vv32), 34368"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat", 34369tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34370let Inst{7-5} = 0b001; 34371let Inst{13-13} = 0b0; 34372let Inst{31-21} = 0b00011100001; 34373let hasNewValue = 1; 34374let opNewValue = 0; 34375let isCVI = 1; 34376let DecoderNamespace = "EXT_mmvec"; 34377} 34378def V6_vmpyhvsrs_alt : HInst< 34379(outs HvxVR:$Vd32), 34380(ins HvxVR:$Vu32, HvxVR:$Vv32), 34381"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat", 34382PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34383let hasNewValue = 1; 34384let opNewValue = 0; 34385let isCVI = 1; 34386let isPseudo = 1; 34387let isCodeGenOnly = 1; 34388let DecoderNamespace = "EXT_mmvec"; 34389} 34390def V6_vmpyieoh : HInst< 34391(outs HvxVR:$Vd32), 34392(ins HvxVR:$Vu32, HvxVR:$Vv32), 34393"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)", 34394tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 34395let Inst{7-5} = 0b000; 34396let Inst{13-13} = 0b0; 34397let Inst{31-21} = 0b00011111011; 34398let hasNewValue = 1; 34399let opNewValue = 0; 34400let isCVI = 1; 34401let DecoderNamespace = "EXT_mmvec"; 34402} 34403def V6_vmpyiewh_acc : HInst< 34404(outs HvxVR:$Vx32), 34405(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34406"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)", 34407tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34408let Inst{7-5} = 0b000; 34409let Inst{13-13} = 0b1; 34410let Inst{31-21} = 0b00011100010; 34411let hasNewValue = 1; 34412let opNewValue = 0; 34413let isAccumulator = 1; 34414let isCVI = 1; 34415let DecoderNamespace = "EXT_mmvec"; 34416let Constraints = "$Vx32 = $Vx32in"; 34417} 34418def V6_vmpyiewh_acc_alt : HInst< 34419(outs HvxVR:$Vx32), 34420(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34421"$Vx32 += vmpyiewh($Vu32,$Vv32)", 34422PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34423let hasNewValue = 1; 34424let opNewValue = 0; 34425let isAccumulator = 1; 34426let isCVI = 1; 34427let isPseudo = 1; 34428let isCodeGenOnly = 1; 34429let DecoderNamespace = "EXT_mmvec"; 34430let Constraints = "$Vx32 = $Vx32in"; 34431} 34432def V6_vmpyiewuh : HInst< 34433(outs HvxVR:$Vd32), 34434(ins HvxVR:$Vu32, HvxVR:$Vv32), 34435"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)", 34436tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34437let Inst{7-5} = 0b000; 34438let Inst{13-13} = 0b0; 34439let Inst{31-21} = 0b00011111110; 34440let hasNewValue = 1; 34441let opNewValue = 0; 34442let isCVI = 1; 34443let DecoderNamespace = "EXT_mmvec"; 34444} 34445def V6_vmpyiewuh_acc : HInst< 34446(outs HvxVR:$Vx32), 34447(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34448"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)", 34449tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34450let Inst{7-5} = 0b101; 34451let Inst{13-13} = 0b1; 34452let Inst{31-21} = 0b00011100001; 34453let hasNewValue = 1; 34454let opNewValue = 0; 34455let isAccumulator = 1; 34456let isCVI = 1; 34457let DecoderNamespace = "EXT_mmvec"; 34458let Constraints = "$Vx32 = $Vx32in"; 34459} 34460def V6_vmpyiewuh_acc_alt : HInst< 34461(outs HvxVR:$Vx32), 34462(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34463"$Vx32 += vmpyiewuh($Vu32,$Vv32)", 34464PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34465let hasNewValue = 1; 34466let opNewValue = 0; 34467let isAccumulator = 1; 34468let isCVI = 1; 34469let isPseudo = 1; 34470let isCodeGenOnly = 1; 34471let DecoderNamespace = "EXT_mmvec"; 34472let Constraints = "$Vx32 = $Vx32in"; 34473} 34474def V6_vmpyiewuh_alt : HInst< 34475(outs HvxVR:$Vd32), 34476(ins HvxVR:$Vu32, HvxVR:$Vv32), 34477"$Vd32 = vmpyiewuh($Vu32,$Vv32)", 34478PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34479let hasNewValue = 1; 34480let opNewValue = 0; 34481let isCVI = 1; 34482let isPseudo = 1; 34483let isCodeGenOnly = 1; 34484let DecoderNamespace = "EXT_mmvec"; 34485} 34486def V6_vmpyih : HInst< 34487(outs HvxVR:$Vd32), 34488(ins HvxVR:$Vu32, HvxVR:$Vv32), 34489"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)", 34490tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34491let Inst{7-5} = 0b100; 34492let Inst{13-13} = 0b0; 34493let Inst{31-21} = 0b00011100001; 34494let hasNewValue = 1; 34495let opNewValue = 0; 34496let isCVI = 1; 34497let DecoderNamespace = "EXT_mmvec"; 34498} 34499def V6_vmpyih_acc : HInst< 34500(outs HvxVR:$Vx32), 34501(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34502"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)", 34503tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34504let Inst{7-5} = 0b100; 34505let Inst{13-13} = 0b1; 34506let Inst{31-21} = 0b00011100001; 34507let hasNewValue = 1; 34508let opNewValue = 0; 34509let isAccumulator = 1; 34510let isCVI = 1; 34511let DecoderNamespace = "EXT_mmvec"; 34512let Constraints = "$Vx32 = $Vx32in"; 34513} 34514def V6_vmpyih_acc_alt : HInst< 34515(outs HvxVR:$Vx32), 34516(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34517"$Vx32 += vmpyih($Vu32,$Vv32)", 34518PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34519let hasNewValue = 1; 34520let opNewValue = 0; 34521let isAccumulator = 1; 34522let isCVI = 1; 34523let isPseudo = 1; 34524let isCodeGenOnly = 1; 34525let DecoderNamespace = "EXT_mmvec"; 34526let Constraints = "$Vx32 = $Vx32in"; 34527} 34528def V6_vmpyih_alt : HInst< 34529(outs HvxVR:$Vd32), 34530(ins HvxVR:$Vu32, HvxVR:$Vv32), 34531"$Vd32 = vmpyih($Vu32,$Vv32)", 34532PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34533let hasNewValue = 1; 34534let opNewValue = 0; 34535let isCVI = 1; 34536let isPseudo = 1; 34537let isCodeGenOnly = 1; 34538let DecoderNamespace = "EXT_mmvec"; 34539} 34540def V6_vmpyihb : HInst< 34541(outs HvxVR:$Vd32), 34542(ins HvxVR:$Vu32, IntRegs:$Rt32), 34543"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)", 34544tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34545let Inst{7-5} = 0b000; 34546let Inst{13-13} = 0b0; 34547let Inst{31-21} = 0b00011001011; 34548let hasNewValue = 1; 34549let opNewValue = 0; 34550let isCVI = 1; 34551let DecoderNamespace = "EXT_mmvec"; 34552} 34553def V6_vmpyihb_acc : HInst< 34554(outs HvxVR:$Vx32), 34555(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34556"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)", 34557tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34558let Inst{7-5} = 0b001; 34559let Inst{13-13} = 0b1; 34560let Inst{31-21} = 0b00011001011; 34561let hasNewValue = 1; 34562let opNewValue = 0; 34563let isAccumulator = 1; 34564let isCVI = 1; 34565let DecoderNamespace = "EXT_mmvec"; 34566let Constraints = "$Vx32 = $Vx32in"; 34567} 34568def V6_vmpyihb_acc_alt : HInst< 34569(outs HvxVR:$Vx32), 34570(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34571"$Vx32 += vmpyihb($Vu32,$Rt32)", 34572PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34573let hasNewValue = 1; 34574let opNewValue = 0; 34575let isAccumulator = 1; 34576let isCVI = 1; 34577let isPseudo = 1; 34578let isCodeGenOnly = 1; 34579let DecoderNamespace = "EXT_mmvec"; 34580let Constraints = "$Vx32 = $Vx32in"; 34581} 34582def V6_vmpyihb_alt : HInst< 34583(outs HvxVR:$Vd32), 34584(ins HvxVR:$Vu32, IntRegs:$Rt32), 34585"$Vd32 = vmpyihb($Vu32,$Rt32)", 34586PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34587let hasNewValue = 1; 34588let opNewValue = 0; 34589let isCVI = 1; 34590let isPseudo = 1; 34591let isCodeGenOnly = 1; 34592let DecoderNamespace = "EXT_mmvec"; 34593} 34594def V6_vmpyiowh : HInst< 34595(outs HvxVR:$Vd32), 34596(ins HvxVR:$Vu32, HvxVR:$Vv32), 34597"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)", 34598tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34599let Inst{7-5} = 0b001; 34600let Inst{13-13} = 0b0; 34601let Inst{31-21} = 0b00011111110; 34602let hasNewValue = 1; 34603let opNewValue = 0; 34604let isCVI = 1; 34605let DecoderNamespace = "EXT_mmvec"; 34606} 34607def V6_vmpyiowh_alt : HInst< 34608(outs HvxVR:$Vd32), 34609(ins HvxVR:$Vu32, HvxVR:$Vv32), 34610"$Vd32 = vmpyiowh($Vu32,$Vv32)", 34611PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34612let hasNewValue = 1; 34613let opNewValue = 0; 34614let isCVI = 1; 34615let isPseudo = 1; 34616let isCodeGenOnly = 1; 34617let DecoderNamespace = "EXT_mmvec"; 34618} 34619def V6_vmpyiwb : HInst< 34620(outs HvxVR:$Vd32), 34621(ins HvxVR:$Vu32, IntRegs:$Rt32), 34622"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)", 34623tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 34624let Inst{7-5} = 0b000; 34625let Inst{13-13} = 0b0; 34626let Inst{31-21} = 0b00011001101; 34627let hasNewValue = 1; 34628let opNewValue = 0; 34629let isCVI = 1; 34630let DecoderNamespace = "EXT_mmvec"; 34631} 34632def V6_vmpyiwb_acc : HInst< 34633(outs HvxVR:$Vx32), 34634(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34635"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)", 34636tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 34637let Inst{7-5} = 0b010; 34638let Inst{13-13} = 0b1; 34639let Inst{31-21} = 0b00011001010; 34640let hasNewValue = 1; 34641let opNewValue = 0; 34642let isAccumulator = 1; 34643let isCVI = 1; 34644let DecoderNamespace = "EXT_mmvec"; 34645let Constraints = "$Vx32 = $Vx32in"; 34646} 34647def V6_vmpyiwb_acc_alt : HInst< 34648(outs HvxVR:$Vx32), 34649(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34650"$Vx32 += vmpyiwb($Vu32,$Rt32)", 34651PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34652let hasNewValue = 1; 34653let opNewValue = 0; 34654let isAccumulator = 1; 34655let isCVI = 1; 34656let isPseudo = 1; 34657let isCodeGenOnly = 1; 34658let DecoderNamespace = "EXT_mmvec"; 34659let Constraints = "$Vx32 = $Vx32in"; 34660} 34661def V6_vmpyiwb_alt : HInst< 34662(outs HvxVR:$Vd32), 34663(ins HvxVR:$Vu32, IntRegs:$Rt32), 34664"$Vd32 = vmpyiwb($Vu32,$Rt32)", 34665PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34666let hasNewValue = 1; 34667let opNewValue = 0; 34668let isCVI = 1; 34669let isPseudo = 1; 34670let isCodeGenOnly = 1; 34671let DecoderNamespace = "EXT_mmvec"; 34672} 34673def V6_vmpyiwh : HInst< 34674(outs HvxVR:$Vd32), 34675(ins HvxVR:$Vu32, IntRegs:$Rt32), 34676"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)", 34677tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 34678let Inst{7-5} = 0b111; 34679let Inst{13-13} = 0b0; 34680let Inst{31-21} = 0b00011001100; 34681let hasNewValue = 1; 34682let opNewValue = 0; 34683let isCVI = 1; 34684let DecoderNamespace = "EXT_mmvec"; 34685} 34686def V6_vmpyiwh_acc : HInst< 34687(outs HvxVR:$Vx32), 34688(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34689"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)", 34690tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 34691let Inst{7-5} = 0b011; 34692let Inst{13-13} = 0b1; 34693let Inst{31-21} = 0b00011001010; 34694let hasNewValue = 1; 34695let opNewValue = 0; 34696let isAccumulator = 1; 34697let isCVI = 1; 34698let DecoderNamespace = "EXT_mmvec"; 34699let Constraints = "$Vx32 = $Vx32in"; 34700} 34701def V6_vmpyiwh_acc_alt : HInst< 34702(outs HvxVR:$Vx32), 34703(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34704"$Vx32 += vmpyiwh($Vu32,$Rt32)", 34705PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34706let hasNewValue = 1; 34707let opNewValue = 0; 34708let isAccumulator = 1; 34709let isCVI = 1; 34710let isPseudo = 1; 34711let isCodeGenOnly = 1; 34712let DecoderNamespace = "EXT_mmvec"; 34713let Constraints = "$Vx32 = $Vx32in"; 34714} 34715def V6_vmpyiwh_alt : HInst< 34716(outs HvxVR:$Vd32), 34717(ins HvxVR:$Vu32, IntRegs:$Rt32), 34718"$Vd32 = vmpyiwh($Vu32,$Rt32)", 34719PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34720let hasNewValue = 1; 34721let opNewValue = 0; 34722let isCVI = 1; 34723let isPseudo = 1; 34724let isCodeGenOnly = 1; 34725let DecoderNamespace = "EXT_mmvec"; 34726} 34727def V6_vmpyiwub : HInst< 34728(outs HvxVR:$Vd32), 34729(ins HvxVR:$Vu32, IntRegs:$Rt32), 34730"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)", 34731tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> { 34732let Inst{7-5} = 0b110; 34733let Inst{13-13} = 0b0; 34734let Inst{31-21} = 0b00011001100; 34735let hasNewValue = 1; 34736let opNewValue = 0; 34737let isCVI = 1; 34738let DecoderNamespace = "EXT_mmvec"; 34739} 34740def V6_vmpyiwub_acc : HInst< 34741(outs HvxVR:$Vx32), 34742(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34743"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)", 34744tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> { 34745let Inst{7-5} = 0b001; 34746let Inst{13-13} = 0b1; 34747let Inst{31-21} = 0b00011001100; 34748let hasNewValue = 1; 34749let opNewValue = 0; 34750let isAccumulator = 1; 34751let isCVI = 1; 34752let DecoderNamespace = "EXT_mmvec"; 34753let Constraints = "$Vx32 = $Vx32in"; 34754} 34755def V6_vmpyiwub_acc_alt : HInst< 34756(outs HvxVR:$Vx32), 34757(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34758"$Vx32 += vmpyiwub($Vu32,$Rt32)", 34759PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34760let hasNewValue = 1; 34761let opNewValue = 0; 34762let isAccumulator = 1; 34763let isCVI = 1; 34764let isPseudo = 1; 34765let isCodeGenOnly = 1; 34766let DecoderNamespace = "EXT_mmvec"; 34767let Constraints = "$Vx32 = $Vx32in"; 34768} 34769def V6_vmpyiwub_alt : HInst< 34770(outs HvxVR:$Vd32), 34771(ins HvxVR:$Vu32, IntRegs:$Rt32), 34772"$Vd32 = vmpyiwub($Vu32,$Rt32)", 34773PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34774let hasNewValue = 1; 34775let opNewValue = 0; 34776let isCVI = 1; 34777let isPseudo = 1; 34778let isCodeGenOnly = 1; 34779let DecoderNamespace = "EXT_mmvec"; 34780} 34781def V6_vmpyowh : HInst< 34782(outs HvxVR:$Vd32), 34783(ins HvxVR:$Vu32, HvxVR:$Vv32), 34784"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat", 34785tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34786let Inst{7-5} = 0b111; 34787let Inst{13-13} = 0b0; 34788let Inst{31-21} = 0b00011111111; 34789let hasNewValue = 1; 34790let opNewValue = 0; 34791let isCVI = 1; 34792let DecoderNamespace = "EXT_mmvec"; 34793} 34794def V6_vmpyowh_64_acc : HInst< 34795(outs HvxWR:$Vxx32), 34796(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34797"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)", 34798tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 34799let Inst{7-5} = 0b011; 34800let Inst{13-13} = 0b1; 34801let Inst{31-21} = 0b00011100001; 34802let hasNewValue = 1; 34803let opNewValue = 0; 34804let isAccumulator = 1; 34805let isCVI = 1; 34806let DecoderNamespace = "EXT_mmvec"; 34807let Constraints = "$Vxx32 = $Vxx32in"; 34808} 34809def V6_vmpyowh_alt : HInst< 34810(outs HvxVR:$Vd32), 34811(ins HvxVR:$Vu32, HvxVR:$Vv32), 34812"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat", 34813PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34814let hasNewValue = 1; 34815let opNewValue = 0; 34816let isCVI = 1; 34817let isPseudo = 1; 34818let isCodeGenOnly = 1; 34819let DecoderNamespace = "EXT_mmvec"; 34820} 34821def V6_vmpyowh_rnd : HInst< 34822(outs HvxVR:$Vd32), 34823(ins HvxVR:$Vu32, HvxVR:$Vv32), 34824"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat", 34825tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 34826let Inst{7-5} = 0b000; 34827let Inst{13-13} = 0b0; 34828let Inst{31-21} = 0b00011111010; 34829let hasNewValue = 1; 34830let opNewValue = 0; 34831let isCVI = 1; 34832let DecoderNamespace = "EXT_mmvec"; 34833} 34834def V6_vmpyowh_rnd_alt : HInst< 34835(outs HvxVR:$Vd32), 34836(ins HvxVR:$Vu32, HvxVR:$Vv32), 34837"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat", 34838PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34839let hasNewValue = 1; 34840let opNewValue = 0; 34841let isCVI = 1; 34842let isPseudo = 1; 34843let isCodeGenOnly = 1; 34844let DecoderNamespace = "EXT_mmvec"; 34845} 34846def V6_vmpyowh_rnd_sacc : HInst< 34847(outs HvxVR:$Vx32), 34848(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34849"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift", 34850tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34851let Inst{7-5} = 0b111; 34852let Inst{13-13} = 0b1; 34853let Inst{31-21} = 0b00011100001; 34854let hasNewValue = 1; 34855let opNewValue = 0; 34856let isAccumulator = 1; 34857let isCVI = 1; 34858let DecoderNamespace = "EXT_mmvec"; 34859let Constraints = "$Vx32 = $Vx32in"; 34860} 34861def V6_vmpyowh_rnd_sacc_alt : HInst< 34862(outs HvxVR:$Vx32), 34863(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34864"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift", 34865PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34866let hasNewValue = 1; 34867let opNewValue = 0; 34868let isAccumulator = 1; 34869let isCVI = 1; 34870let isPseudo = 1; 34871let DecoderNamespace = "EXT_mmvec"; 34872let Constraints = "$Vx32 = $Vx32in"; 34873} 34874def V6_vmpyowh_sacc : HInst< 34875(outs HvxVR:$Vx32), 34876(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34877"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift", 34878tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 34879let Inst{7-5} = 0b110; 34880let Inst{13-13} = 0b1; 34881let Inst{31-21} = 0b00011100001; 34882let hasNewValue = 1; 34883let opNewValue = 0; 34884let isAccumulator = 1; 34885let isCVI = 1; 34886let DecoderNamespace = "EXT_mmvec"; 34887let Constraints = "$Vx32 = $Vx32in"; 34888} 34889def V6_vmpyowh_sacc_alt : HInst< 34890(outs HvxVR:$Vx32), 34891(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34892"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift", 34893PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34894let hasNewValue = 1; 34895let opNewValue = 0; 34896let isAccumulator = 1; 34897let isCVI = 1; 34898let isPseudo = 1; 34899let DecoderNamespace = "EXT_mmvec"; 34900let Constraints = "$Vx32 = $Vx32in"; 34901} 34902def V6_vmpyub : HInst< 34903(outs HvxWR:$Vdd32), 34904(ins HvxVR:$Vu32, IntRegs:$Rt32), 34905"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)", 34906tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 34907let Inst{7-5} = 0b000; 34908let Inst{13-13} = 0b0; 34909let Inst{31-21} = 0b00011001110; 34910let hasNewValue = 1; 34911let opNewValue = 0; 34912let isCVI = 1; 34913let DecoderNamespace = "EXT_mmvec"; 34914} 34915def V6_vmpyub_acc : HInst< 34916(outs HvxWR:$Vxx32), 34917(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34918"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)", 34919tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 34920let Inst{7-5} = 0b000; 34921let Inst{13-13} = 0b1; 34922let Inst{31-21} = 0b00011001100; 34923let hasNewValue = 1; 34924let opNewValue = 0; 34925let isAccumulator = 1; 34926let isCVI = 1; 34927let DecoderNamespace = "EXT_mmvec"; 34928let Constraints = "$Vxx32 = $Vxx32in"; 34929} 34930def V6_vmpyub_acc_alt : HInst< 34931(outs HvxWR:$Vxx32), 34932(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 34933"$Vxx32 += vmpyub($Vu32,$Rt32)", 34934PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34935let hasNewValue = 1; 34936let opNewValue = 0; 34937let isAccumulator = 1; 34938let isCVI = 1; 34939let isPseudo = 1; 34940let isCodeGenOnly = 1; 34941let DecoderNamespace = "EXT_mmvec"; 34942let Constraints = "$Vxx32 = $Vxx32in"; 34943} 34944def V6_vmpyub_alt : HInst< 34945(outs HvxWR:$Vdd32), 34946(ins HvxVR:$Vu32, IntRegs:$Rt32), 34947"$Vdd32 = vmpyub($Vu32,$Rt32)", 34948PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34949let hasNewValue = 1; 34950let opNewValue = 0; 34951let isCVI = 1; 34952let isPseudo = 1; 34953let isCodeGenOnly = 1; 34954let DecoderNamespace = "EXT_mmvec"; 34955} 34956def V6_vmpyubv : HInst< 34957(outs HvxWR:$Vdd32), 34958(ins HvxVR:$Vu32, HvxVR:$Vv32), 34959"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)", 34960tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 34961let Inst{7-5} = 0b101; 34962let Inst{13-13} = 0b0; 34963let Inst{31-21} = 0b00011100000; 34964let hasNewValue = 1; 34965let opNewValue = 0; 34966let isCVI = 1; 34967let DecoderNamespace = "EXT_mmvec"; 34968} 34969def V6_vmpyubv_acc : HInst< 34970(outs HvxWR:$Vxx32), 34971(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34972"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)", 34973tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 34974let Inst{7-5} = 0b101; 34975let Inst{13-13} = 0b1; 34976let Inst{31-21} = 0b00011100000; 34977let hasNewValue = 1; 34978let opNewValue = 0; 34979let isAccumulator = 1; 34980let isCVI = 1; 34981let DecoderNamespace = "EXT_mmvec"; 34982let Constraints = "$Vxx32 = $Vxx32in"; 34983} 34984def V6_vmpyubv_acc_alt : HInst< 34985(outs HvxWR:$Vxx32), 34986(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 34987"$Vxx32 += vmpyub($Vu32,$Vv32)", 34988PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34989let hasNewValue = 1; 34990let opNewValue = 0; 34991let isAccumulator = 1; 34992let isCVI = 1; 34993let isPseudo = 1; 34994let isCodeGenOnly = 1; 34995let DecoderNamespace = "EXT_mmvec"; 34996let Constraints = "$Vxx32 = $Vxx32in"; 34997} 34998def V6_vmpyubv_alt : HInst< 34999(outs HvxWR:$Vdd32), 35000(ins HvxVR:$Vu32, HvxVR:$Vv32), 35001"$Vdd32 = vmpyub($Vu32,$Vv32)", 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_vmpyuh : HInst< 35011(outs HvxWR:$Vdd32), 35012(ins HvxVR:$Vu32, IntRegs:$Rt32), 35013"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)", 35014tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 35015let Inst{7-5} = 0b011; 35016let Inst{13-13} = 0b0; 35017let Inst{31-21} = 0b00011001010; 35018let hasNewValue = 1; 35019let opNewValue = 0; 35020let isCVI = 1; 35021let DecoderNamespace = "EXT_mmvec"; 35022} 35023def V6_vmpyuh_acc : HInst< 35024(outs HvxWR:$Vxx32), 35025(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35026"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)", 35027tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 35028let Inst{7-5} = 0b001; 35029let Inst{13-13} = 0b1; 35030let Inst{31-21} = 0b00011001010; 35031let hasNewValue = 1; 35032let opNewValue = 0; 35033let isAccumulator = 1; 35034let isCVI = 1; 35035let DecoderNamespace = "EXT_mmvec"; 35036let Constraints = "$Vxx32 = $Vxx32in"; 35037} 35038def V6_vmpyuh_acc_alt : HInst< 35039(outs HvxWR:$Vxx32), 35040(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35041"$Vxx32 += vmpyuh($Vu32,$Rt32)", 35042PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35043let hasNewValue = 1; 35044let opNewValue = 0; 35045let isAccumulator = 1; 35046let isCVI = 1; 35047let isPseudo = 1; 35048let isCodeGenOnly = 1; 35049let DecoderNamespace = "EXT_mmvec"; 35050let Constraints = "$Vxx32 = $Vxx32in"; 35051} 35052def V6_vmpyuh_alt : HInst< 35053(outs HvxWR:$Vdd32), 35054(ins HvxVR:$Vu32, IntRegs:$Rt32), 35055"$Vdd32 = vmpyuh($Vu32,$Rt32)", 35056PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35057let hasNewValue = 1; 35058let opNewValue = 0; 35059let isCVI = 1; 35060let isPseudo = 1; 35061let isCodeGenOnly = 1; 35062let DecoderNamespace = "EXT_mmvec"; 35063} 35064def V6_vmpyuhe : HInst< 35065(outs HvxVR:$Vd32), 35066(ins HvxVR:$Vu32, IntRegs:$Rt32), 35067"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)", 35068tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> { 35069let Inst{7-5} = 0b010; 35070let Inst{13-13} = 0b0; 35071let Inst{31-21} = 0b00011001011; 35072let hasNewValue = 1; 35073let opNewValue = 0; 35074let isCVI = 1; 35075let DecoderNamespace = "EXT_mmvec"; 35076} 35077def V6_vmpyuhe_acc : HInst< 35078(outs HvxVR:$Vx32), 35079(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35080"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)", 35081tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> { 35082let Inst{7-5} = 0b011; 35083let Inst{13-13} = 0b1; 35084let Inst{31-21} = 0b00011001100; 35085let hasNewValue = 1; 35086let opNewValue = 0; 35087let isAccumulator = 1; 35088let isCVI = 1; 35089let DecoderNamespace = "EXT_mmvec"; 35090let Constraints = "$Vx32 = $Vx32in"; 35091} 35092def V6_vmpyuhv : HInst< 35093(outs HvxWR:$Vdd32), 35094(ins HvxVR:$Vu32, HvxVR:$Vv32), 35095"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)", 35096tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35097let Inst{7-5} = 0b000; 35098let Inst{13-13} = 0b0; 35099let Inst{31-21} = 0b00011100001; 35100let hasNewValue = 1; 35101let opNewValue = 0; 35102let isCVI = 1; 35103let DecoderNamespace = "EXT_mmvec"; 35104} 35105def V6_vmpyuhv_acc : HInst< 35106(outs HvxWR:$Vxx32), 35107(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35108"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)", 35109tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35110let Inst{7-5} = 0b000; 35111let Inst{13-13} = 0b1; 35112let Inst{31-21} = 0b00011100001; 35113let hasNewValue = 1; 35114let opNewValue = 0; 35115let isAccumulator = 1; 35116let isCVI = 1; 35117let DecoderNamespace = "EXT_mmvec"; 35118let Constraints = "$Vxx32 = $Vxx32in"; 35119} 35120def V6_vmpyuhv_acc_alt : HInst< 35121(outs HvxWR:$Vxx32), 35122(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35123"$Vxx32 += vmpyuh($Vu32,$Vv32)", 35124PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35125let hasNewValue = 1; 35126let opNewValue = 0; 35127let isAccumulator = 1; 35128let isCVI = 1; 35129let isPseudo = 1; 35130let isCodeGenOnly = 1; 35131let DecoderNamespace = "EXT_mmvec"; 35132let Constraints = "$Vxx32 = $Vxx32in"; 35133} 35134def V6_vmpyuhv_alt : HInst< 35135(outs HvxWR:$Vdd32), 35136(ins HvxVR:$Vu32, HvxVR:$Vv32), 35137"$Vdd32 = vmpyuh($Vu32,$Vv32)", 35138PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35139let hasNewValue = 1; 35140let opNewValue = 0; 35141let isCVI = 1; 35142let isPseudo = 1; 35143let isCodeGenOnly = 1; 35144let DecoderNamespace = "EXT_mmvec"; 35145} 35146def V6_vmux : HInst< 35147(outs HvxVR:$Vd32), 35148(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 35149"$Vd32 = vmux($Qt4,$Vu32,$Vv32)", 35150tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> { 35151let Inst{7-7} = 0b0; 35152let Inst{13-13} = 0b1; 35153let Inst{31-21} = 0b00011110111; 35154let hasNewValue = 1; 35155let opNewValue = 0; 35156let isCVI = 1; 35157let DecoderNamespace = "EXT_mmvec"; 35158} 35159def V6_vnavgb : HInst< 35160(outs HvxVR:$Vd32), 35161(ins HvxVR:$Vu32, HvxVR:$Vv32), 35162"$Vd32.b = vnavg($Vu32.b,$Vv32.b)", 35163tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 35164let Inst{7-5} = 0b110; 35165let Inst{13-13} = 0b1; 35166let Inst{31-21} = 0b00011111000; 35167let hasNewValue = 1; 35168let opNewValue = 0; 35169let isCVI = 1; 35170let DecoderNamespace = "EXT_mmvec"; 35171} 35172def V6_vnavgb_alt : HInst< 35173(outs HvxVR:$Vd32), 35174(ins HvxVR:$Vu32, HvxVR:$Vv32), 35175"$Vd32 = vnavgb($Vu32,$Vv32)", 35176PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35177let hasNewValue = 1; 35178let opNewValue = 0; 35179let isCVI = 1; 35180let isPseudo = 1; 35181let isCodeGenOnly = 1; 35182let DecoderNamespace = "EXT_mmvec"; 35183} 35184def V6_vnavgh : HInst< 35185(outs HvxVR:$Vd32), 35186(ins HvxVR:$Vu32, HvxVR:$Vv32), 35187"$Vd32.h = vnavg($Vu32.h,$Vv32.h)", 35188tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35189let Inst{7-5} = 0b001; 35190let Inst{13-13} = 0b0; 35191let Inst{31-21} = 0b00011100111; 35192let hasNewValue = 1; 35193let opNewValue = 0; 35194let isCVI = 1; 35195let DecoderNamespace = "EXT_mmvec"; 35196} 35197def V6_vnavgh_alt : HInst< 35198(outs HvxVR:$Vd32), 35199(ins HvxVR:$Vu32, HvxVR:$Vv32), 35200"$Vd32 = vnavgh($Vu32,$Vv32)", 35201PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35202let hasNewValue = 1; 35203let opNewValue = 0; 35204let isCVI = 1; 35205let isPseudo = 1; 35206let isCodeGenOnly = 1; 35207let DecoderNamespace = "EXT_mmvec"; 35208} 35209def V6_vnavgub : HInst< 35210(outs HvxVR:$Vd32), 35211(ins HvxVR:$Vu32, HvxVR:$Vv32), 35212"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)", 35213tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35214let Inst{7-5} = 0b000; 35215let Inst{13-13} = 0b0; 35216let Inst{31-21} = 0b00011100111; 35217let hasNewValue = 1; 35218let opNewValue = 0; 35219let isCVI = 1; 35220let DecoderNamespace = "EXT_mmvec"; 35221} 35222def V6_vnavgub_alt : HInst< 35223(outs HvxVR:$Vd32), 35224(ins HvxVR:$Vu32, HvxVR:$Vv32), 35225"$Vd32 = vnavgub($Vu32,$Vv32)", 35226PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35227let hasNewValue = 1; 35228let opNewValue = 0; 35229let isCVI = 1; 35230let isPseudo = 1; 35231let isCodeGenOnly = 1; 35232let DecoderNamespace = "EXT_mmvec"; 35233} 35234def V6_vnavgw : HInst< 35235(outs HvxVR:$Vd32), 35236(ins HvxVR:$Vu32, HvxVR:$Vv32), 35237"$Vd32.w = vnavg($Vu32.w,$Vv32.w)", 35238tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35239let Inst{7-5} = 0b010; 35240let Inst{13-13} = 0b0; 35241let Inst{31-21} = 0b00011100111; 35242let hasNewValue = 1; 35243let opNewValue = 0; 35244let isCVI = 1; 35245let DecoderNamespace = "EXT_mmvec"; 35246} 35247def V6_vnavgw_alt : HInst< 35248(outs HvxVR:$Vd32), 35249(ins HvxVR:$Vu32, HvxVR:$Vv32), 35250"$Vd32 = vnavgw($Vu32,$Vv32)", 35251PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35252let hasNewValue = 1; 35253let opNewValue = 0; 35254let isCVI = 1; 35255let isPseudo = 1; 35256let isCodeGenOnly = 1; 35257let DecoderNamespace = "EXT_mmvec"; 35258} 35259def V6_vnccombine : HInst< 35260(outs HvxWR:$Vdd32), 35261(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 35262"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 35263tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 35264let Inst{7-7} = 0b0; 35265let Inst{13-13} = 0b0; 35266let Inst{31-21} = 0b00011010010; 35267let isPredicated = 1; 35268let isPredicatedFalse = 1; 35269let hasNewValue = 1; 35270let opNewValue = 0; 35271let isCVI = 1; 35272let DecoderNamespace = "EXT_mmvec"; 35273} 35274def V6_vncmov : HInst< 35275(outs HvxVR:$Vd32), 35276(ins PredRegs:$Ps4, HvxVR:$Vu32), 35277"if (!$Ps4) $Vd32 = $Vu32", 35278tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 35279let Inst{7-7} = 0b0; 35280let Inst{13-13} = 0b0; 35281let Inst{31-16} = 0b0001101000100000; 35282let isPredicated = 1; 35283let isPredicatedFalse = 1; 35284let hasNewValue = 1; 35285let opNewValue = 0; 35286let isCVI = 1; 35287let DecoderNamespace = "EXT_mmvec"; 35288} 35289def V6_vnormamth : HInst< 35290(outs HvxVR:$Vd32), 35291(ins HvxVR:$Vu32), 35292"$Vd32.h = vnormamt($Vu32.h)", 35293tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35294let Inst{7-5} = 0b101; 35295let Inst{13-13} = 0b0; 35296let Inst{31-16} = 0b0001111000000011; 35297let hasNewValue = 1; 35298let opNewValue = 0; 35299let isCVI = 1; 35300let DecoderNamespace = "EXT_mmvec"; 35301} 35302def V6_vnormamth_alt : HInst< 35303(outs HvxVR:$Vd32), 35304(ins HvxVR:$Vu32), 35305"$Vd32 = vnormamth($Vu32)", 35306PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35307let hasNewValue = 1; 35308let opNewValue = 0; 35309let isCVI = 1; 35310let isPseudo = 1; 35311let isCodeGenOnly = 1; 35312let DecoderNamespace = "EXT_mmvec"; 35313} 35314def V6_vnormamtw : HInst< 35315(outs HvxVR:$Vd32), 35316(ins HvxVR:$Vu32), 35317"$Vd32.w = vnormamt($Vu32.w)", 35318tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35319let Inst{7-5} = 0b100; 35320let Inst{13-13} = 0b0; 35321let Inst{31-16} = 0b0001111000000011; 35322let hasNewValue = 1; 35323let opNewValue = 0; 35324let isCVI = 1; 35325let DecoderNamespace = "EXT_mmvec"; 35326} 35327def V6_vnormamtw_alt : HInst< 35328(outs HvxVR:$Vd32), 35329(ins HvxVR:$Vu32), 35330"$Vd32 = vnormamtw($Vu32)", 35331PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35332let hasNewValue = 1; 35333let opNewValue = 0; 35334let isCVI = 1; 35335let isPseudo = 1; 35336let isCodeGenOnly = 1; 35337let DecoderNamespace = "EXT_mmvec"; 35338} 35339def V6_vnot : HInst< 35340(outs HvxVR:$Vd32), 35341(ins HvxVR:$Vu32), 35342"$Vd32 = vnot($Vu32)", 35343tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 35344let Inst{7-5} = 0b100; 35345let Inst{13-13} = 0b0; 35346let Inst{31-16} = 0b0001111000000000; 35347let hasNewValue = 1; 35348let opNewValue = 0; 35349let isCVI = 1; 35350let DecoderNamespace = "EXT_mmvec"; 35351} 35352def V6_vor : HInst< 35353(outs HvxVR:$Vd32), 35354(ins HvxVR:$Vu32, HvxVR:$Vv32), 35355"$Vd32 = vor($Vu32,$Vv32)", 35356tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 35357let Inst{7-5} = 0b110; 35358let Inst{13-13} = 0b0; 35359let Inst{31-21} = 0b00011100001; 35360let hasNewValue = 1; 35361let opNewValue = 0; 35362let isCVI = 1; 35363let DecoderNamespace = "EXT_mmvec"; 35364} 35365def V6_vpackeb : HInst< 35366(outs HvxVR:$Vd32), 35367(ins HvxVR:$Vu32, HvxVR:$Vv32), 35368"$Vd32.b = vpacke($Vu32.h,$Vv32.h)", 35369tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35370let Inst{7-5} = 0b010; 35371let Inst{13-13} = 0b0; 35372let Inst{31-21} = 0b00011111110; 35373let hasNewValue = 1; 35374let opNewValue = 0; 35375let isCVI = 1; 35376let DecoderNamespace = "EXT_mmvec"; 35377} 35378def V6_vpackeb_alt : HInst< 35379(outs HvxVR:$Vd32), 35380(ins HvxVR:$Vu32, HvxVR:$Vv32), 35381"$Vd32 = vpackeb($Vu32,$Vv32)", 35382PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35383let hasNewValue = 1; 35384let opNewValue = 0; 35385let isCVI = 1; 35386let isPseudo = 1; 35387let isCodeGenOnly = 1; 35388let DecoderNamespace = "EXT_mmvec"; 35389} 35390def V6_vpackeh : HInst< 35391(outs HvxVR:$Vd32), 35392(ins HvxVR:$Vu32, HvxVR:$Vv32), 35393"$Vd32.h = vpacke($Vu32.w,$Vv32.w)", 35394tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35395let Inst{7-5} = 0b011; 35396let Inst{13-13} = 0b0; 35397let Inst{31-21} = 0b00011111110; 35398let hasNewValue = 1; 35399let opNewValue = 0; 35400let isCVI = 1; 35401let DecoderNamespace = "EXT_mmvec"; 35402} 35403def V6_vpackeh_alt : HInst< 35404(outs HvxVR:$Vd32), 35405(ins HvxVR:$Vu32, HvxVR:$Vv32), 35406"$Vd32 = vpackeh($Vu32,$Vv32)", 35407PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35408let hasNewValue = 1; 35409let opNewValue = 0; 35410let isCVI = 1; 35411let isPseudo = 1; 35412let isCodeGenOnly = 1; 35413let DecoderNamespace = "EXT_mmvec"; 35414} 35415def V6_vpackhb_sat : HInst< 35416(outs HvxVR:$Vd32), 35417(ins HvxVR:$Vu32, HvxVR:$Vv32), 35418"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat", 35419tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35420let Inst{7-5} = 0b110; 35421let Inst{13-13} = 0b0; 35422let Inst{31-21} = 0b00011111110; 35423let hasNewValue = 1; 35424let opNewValue = 0; 35425let isCVI = 1; 35426let DecoderNamespace = "EXT_mmvec"; 35427} 35428def V6_vpackhb_sat_alt : HInst< 35429(outs HvxVR:$Vd32), 35430(ins HvxVR:$Vu32, HvxVR:$Vv32), 35431"$Vd32 = vpackhb($Vu32,$Vv32):sat", 35432PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35433let hasNewValue = 1; 35434let opNewValue = 0; 35435let isCVI = 1; 35436let isPseudo = 1; 35437let isCodeGenOnly = 1; 35438let DecoderNamespace = "EXT_mmvec"; 35439} 35440def V6_vpackhub_sat : HInst< 35441(outs HvxVR:$Vd32), 35442(ins HvxVR:$Vu32, HvxVR:$Vv32), 35443"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat", 35444tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35445let Inst{7-5} = 0b101; 35446let Inst{13-13} = 0b0; 35447let Inst{31-21} = 0b00011111110; 35448let hasNewValue = 1; 35449let opNewValue = 0; 35450let isCVI = 1; 35451let DecoderNamespace = "EXT_mmvec"; 35452} 35453def V6_vpackhub_sat_alt : HInst< 35454(outs HvxVR:$Vd32), 35455(ins HvxVR:$Vu32, HvxVR:$Vv32), 35456"$Vd32 = vpackhub($Vu32,$Vv32):sat", 35457PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35458let hasNewValue = 1; 35459let opNewValue = 0; 35460let isCVI = 1; 35461let isPseudo = 1; 35462let isCodeGenOnly = 1; 35463let DecoderNamespace = "EXT_mmvec"; 35464} 35465def V6_vpackob : HInst< 35466(outs HvxVR:$Vd32), 35467(ins HvxVR:$Vu32, HvxVR:$Vv32), 35468"$Vd32.b = vpacko($Vu32.h,$Vv32.h)", 35469tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35470let Inst{7-5} = 0b001; 35471let Inst{13-13} = 0b0; 35472let Inst{31-21} = 0b00011111111; 35473let hasNewValue = 1; 35474let opNewValue = 0; 35475let isCVI = 1; 35476let DecoderNamespace = "EXT_mmvec"; 35477} 35478def V6_vpackob_alt : HInst< 35479(outs HvxVR:$Vd32), 35480(ins HvxVR:$Vu32, HvxVR:$Vv32), 35481"$Vd32 = vpackob($Vu32,$Vv32)", 35482PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35483let hasNewValue = 1; 35484let opNewValue = 0; 35485let isCVI = 1; 35486let isPseudo = 1; 35487let isCodeGenOnly = 1; 35488let DecoderNamespace = "EXT_mmvec"; 35489} 35490def V6_vpackoh : HInst< 35491(outs HvxVR:$Vd32), 35492(ins HvxVR:$Vu32, HvxVR:$Vv32), 35493"$Vd32.h = vpacko($Vu32.w,$Vv32.w)", 35494tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35495let Inst{7-5} = 0b010; 35496let Inst{13-13} = 0b0; 35497let Inst{31-21} = 0b00011111111; 35498let hasNewValue = 1; 35499let opNewValue = 0; 35500let isCVI = 1; 35501let DecoderNamespace = "EXT_mmvec"; 35502} 35503def V6_vpackoh_alt : HInst< 35504(outs HvxVR:$Vd32), 35505(ins HvxVR:$Vu32, HvxVR:$Vv32), 35506"$Vd32 = vpackoh($Vu32,$Vv32)", 35507PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35508let hasNewValue = 1; 35509let opNewValue = 0; 35510let isCVI = 1; 35511let isPseudo = 1; 35512let isCodeGenOnly = 1; 35513let DecoderNamespace = "EXT_mmvec"; 35514} 35515def V6_vpackwh_sat : HInst< 35516(outs HvxVR:$Vd32), 35517(ins HvxVR:$Vu32, HvxVR:$Vv32), 35518"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat", 35519tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35520let Inst{7-5} = 0b000; 35521let Inst{13-13} = 0b0; 35522let Inst{31-21} = 0b00011111111; 35523let hasNewValue = 1; 35524let opNewValue = 0; 35525let isCVI = 1; 35526let DecoderNamespace = "EXT_mmvec"; 35527} 35528def V6_vpackwh_sat_alt : HInst< 35529(outs HvxVR:$Vd32), 35530(ins HvxVR:$Vu32, HvxVR:$Vv32), 35531"$Vd32 = vpackwh($Vu32,$Vv32):sat", 35532PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35533let hasNewValue = 1; 35534let opNewValue = 0; 35535let isCVI = 1; 35536let isPseudo = 1; 35537let isCodeGenOnly = 1; 35538let DecoderNamespace = "EXT_mmvec"; 35539} 35540def V6_vpackwuh_sat : HInst< 35541(outs HvxVR:$Vd32), 35542(ins HvxVR:$Vu32, HvxVR:$Vv32), 35543"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat", 35544tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35545let Inst{7-5} = 0b111; 35546let Inst{13-13} = 0b0; 35547let Inst{31-21} = 0b00011111110; 35548let hasNewValue = 1; 35549let opNewValue = 0; 35550let isCVI = 1; 35551let DecoderNamespace = "EXT_mmvec"; 35552} 35553def V6_vpackwuh_sat_alt : HInst< 35554(outs HvxVR:$Vd32), 35555(ins HvxVR:$Vu32, HvxVR:$Vv32), 35556"$Vd32 = vpackwuh($Vu32,$Vv32):sat", 35557PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35558let hasNewValue = 1; 35559let opNewValue = 0; 35560let isCVI = 1; 35561let isPseudo = 1; 35562let isCodeGenOnly = 1; 35563let DecoderNamespace = "EXT_mmvec"; 35564} 35565def V6_vpopcounth : HInst< 35566(outs HvxVR:$Vd32), 35567(ins HvxVR:$Vu32), 35568"$Vd32.h = vpopcount($Vu32.h)", 35569tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 35570let Inst{7-5} = 0b110; 35571let Inst{13-13} = 0b0; 35572let Inst{31-16} = 0b0001111000000010; 35573let hasNewValue = 1; 35574let opNewValue = 0; 35575let isCVI = 1; 35576let DecoderNamespace = "EXT_mmvec"; 35577} 35578def V6_vpopcounth_alt : HInst< 35579(outs HvxVR:$Vd32), 35580(ins HvxVR:$Vu32), 35581"$Vd32 = vpopcounth($Vu32)", 35582PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35583let hasNewValue = 1; 35584let opNewValue = 0; 35585let isCVI = 1; 35586let isPseudo = 1; 35587let isCodeGenOnly = 1; 35588let DecoderNamespace = "EXT_mmvec"; 35589} 35590def V6_vprefixqb : HInst< 35591(outs HvxVR:$Vd32), 35592(ins HvxQR:$Qv4), 35593"$Vd32.b = prefixsum($Qv4)", 35594tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35595let Inst{13-5} = 0b100000010; 35596let Inst{21-16} = 0b000011; 35597let Inst{31-24} = 0b00011110; 35598let hasNewValue = 1; 35599let opNewValue = 0; 35600let isCVI = 1; 35601let DecoderNamespace = "EXT_mmvec"; 35602} 35603def V6_vprefixqh : HInst< 35604(outs HvxVR:$Vd32), 35605(ins HvxQR:$Qv4), 35606"$Vd32.h = prefixsum($Qv4)", 35607tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35608let Inst{13-5} = 0b100001010; 35609let Inst{21-16} = 0b000011; 35610let Inst{31-24} = 0b00011110; 35611let hasNewValue = 1; 35612let opNewValue = 0; 35613let isCVI = 1; 35614let DecoderNamespace = "EXT_mmvec"; 35615} 35616def V6_vprefixqw : HInst< 35617(outs HvxVR:$Vd32), 35618(ins HvxQR:$Qv4), 35619"$Vd32.w = prefixsum($Qv4)", 35620tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 35621let Inst{13-5} = 0b100010010; 35622let Inst{21-16} = 0b000011; 35623let Inst{31-24} = 0b00011110; 35624let hasNewValue = 1; 35625let opNewValue = 0; 35626let isCVI = 1; 35627let DecoderNamespace = "EXT_mmvec"; 35628} 35629def V6_vrdelta : HInst< 35630(outs HvxVR:$Vd32), 35631(ins HvxVR:$Vu32, HvxVR:$Vv32), 35632"$Vd32 = vrdelta($Vu32,$Vv32)", 35633tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 35634let Inst{7-5} = 0b011; 35635let Inst{13-13} = 0b0; 35636let Inst{31-21} = 0b00011111001; 35637let hasNewValue = 1; 35638let opNewValue = 0; 35639let isCVI = 1; 35640let DecoderNamespace = "EXT_mmvec"; 35641} 35642def V6_vrmpybub_rtt : HInst< 35643(outs HvxWR:$Vdd32), 35644(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 35645"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 35646tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 35647let Inst{7-5} = 0b101; 35648let Inst{13-13} = 0b0; 35649let Inst{31-21} = 0b00011001110; 35650let hasNewValue = 1; 35651let opNewValue = 0; 35652let isCVI = 1; 35653let DecoderNamespace = "EXT_mmvec"; 35654} 35655def V6_vrmpybub_rtt_acc : HInst< 35656(outs HvxWR:$Vxx32), 35657(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35658"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 35659tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 35660let Inst{7-5} = 0b000; 35661let Inst{13-13} = 0b1; 35662let Inst{31-21} = 0b00011001101; 35663let hasNewValue = 1; 35664let opNewValue = 0; 35665let isAccumulator = 1; 35666let isCVI = 1; 35667let DecoderNamespace = "EXT_mmvec"; 35668let Constraints = "$Vxx32 = $Vxx32in"; 35669} 35670def V6_vrmpybub_rtt_acc_alt : HInst< 35671(outs HvxWR:$Vxx32), 35672(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35673"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 35674PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35675let hasNewValue = 1; 35676let opNewValue = 0; 35677let isAccumulator = 1; 35678let isCVI = 1; 35679let isPseudo = 1; 35680let isCodeGenOnly = 1; 35681let DecoderNamespace = "EXT_mmvec"; 35682let Constraints = "$Vxx32 = $Vxx32in"; 35683} 35684def V6_vrmpybub_rtt_alt : HInst< 35685(outs HvxWR:$Vdd32), 35686(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 35687"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 35688PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35689let hasNewValue = 1; 35690let opNewValue = 0; 35691let isCVI = 1; 35692let isPseudo = 1; 35693let isCodeGenOnly = 1; 35694let DecoderNamespace = "EXT_mmvec"; 35695} 35696def V6_vrmpybus : HInst< 35697(outs HvxVR:$Vd32), 35698(ins HvxVR:$Vu32, IntRegs:$Rt32), 35699"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)", 35700tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 35701let Inst{7-5} = 0b100; 35702let Inst{13-13} = 0b0; 35703let Inst{31-21} = 0b00011001000; 35704let hasNewValue = 1; 35705let opNewValue = 0; 35706let isCVI = 1; 35707let DecoderNamespace = "EXT_mmvec"; 35708} 35709def V6_vrmpybus_acc : HInst< 35710(outs HvxVR:$Vx32), 35711(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35712"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)", 35713tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 35714let Inst{7-5} = 0b101; 35715let Inst{13-13} = 0b1; 35716let Inst{31-21} = 0b00011001000; 35717let hasNewValue = 1; 35718let opNewValue = 0; 35719let isAccumulator = 1; 35720let isCVI = 1; 35721let DecoderNamespace = "EXT_mmvec"; 35722let Constraints = "$Vx32 = $Vx32in"; 35723} 35724def V6_vrmpybus_acc_alt : HInst< 35725(outs HvxVR:$Vx32), 35726(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35727"$Vx32 += vrmpybus($Vu32,$Rt32)", 35728PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35729let hasNewValue = 1; 35730let opNewValue = 0; 35731let isAccumulator = 1; 35732let isCVI = 1; 35733let isPseudo = 1; 35734let isCodeGenOnly = 1; 35735let DecoderNamespace = "EXT_mmvec"; 35736let Constraints = "$Vx32 = $Vx32in"; 35737} 35738def V6_vrmpybus_alt : HInst< 35739(outs HvxVR:$Vd32), 35740(ins HvxVR:$Vu32, IntRegs:$Rt32), 35741"$Vd32 = vrmpybus($Vu32,$Rt32)", 35742PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35743let hasNewValue = 1; 35744let opNewValue = 0; 35745let isCVI = 1; 35746let isPseudo = 1; 35747let isCodeGenOnly = 1; 35748let DecoderNamespace = "EXT_mmvec"; 35749} 35750def V6_vrmpybusi : HInst< 35751(outs HvxWR:$Vdd32), 35752(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35753"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 35754tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 35755let Inst{7-6} = 0b10; 35756let Inst{13-13} = 0b0; 35757let Inst{31-21} = 0b00011001010; 35758let hasNewValue = 1; 35759let opNewValue = 0; 35760let isCVI = 1; 35761let DecoderNamespace = "EXT_mmvec"; 35762} 35763def V6_vrmpybusi_acc : HInst< 35764(outs HvxWR:$Vxx32), 35765(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35766"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 35767tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 35768let Inst{7-6} = 0b10; 35769let Inst{13-13} = 0b1; 35770let Inst{31-21} = 0b00011001010; 35771let hasNewValue = 1; 35772let opNewValue = 0; 35773let isAccumulator = 1; 35774let isCVI = 1; 35775let DecoderNamespace = "EXT_mmvec"; 35776let Constraints = "$Vxx32 = $Vxx32in"; 35777} 35778def V6_vrmpybusi_acc_alt : HInst< 35779(outs HvxWR:$Vxx32), 35780(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35781"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)", 35782PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35783let hasNewValue = 1; 35784let opNewValue = 0; 35785let isAccumulator = 1; 35786let isCVI = 1; 35787let isPseudo = 1; 35788let isCodeGenOnly = 1; 35789let DecoderNamespace = "EXT_mmvec"; 35790let Constraints = "$Vxx32 = $Vxx32in"; 35791} 35792def V6_vrmpybusi_alt : HInst< 35793(outs HvxWR:$Vdd32), 35794(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 35795"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)", 35796PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35797let hasNewValue = 1; 35798let opNewValue = 0; 35799let isCVI = 1; 35800let isPseudo = 1; 35801let isCodeGenOnly = 1; 35802let DecoderNamespace = "EXT_mmvec"; 35803} 35804def V6_vrmpybusv : HInst< 35805(outs HvxVR:$Vd32), 35806(ins HvxVR:$Vu32, HvxVR:$Vv32), 35807"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)", 35808tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 35809let Inst{7-5} = 0b010; 35810let Inst{13-13} = 0b0; 35811let Inst{31-21} = 0b00011100000; 35812let hasNewValue = 1; 35813let opNewValue = 0; 35814let isCVI = 1; 35815let DecoderNamespace = "EXT_mmvec"; 35816} 35817def V6_vrmpybusv_acc : HInst< 35818(outs HvxVR:$Vx32), 35819(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35820"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)", 35821tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 35822let Inst{7-5} = 0b010; 35823let Inst{13-13} = 0b1; 35824let Inst{31-21} = 0b00011100000; 35825let hasNewValue = 1; 35826let opNewValue = 0; 35827let isAccumulator = 1; 35828let isCVI = 1; 35829let DecoderNamespace = "EXT_mmvec"; 35830let Constraints = "$Vx32 = $Vx32in"; 35831} 35832def V6_vrmpybusv_acc_alt : HInst< 35833(outs HvxVR:$Vx32), 35834(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35835"$Vx32 += vrmpybus($Vu32,$Vv32)", 35836PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35837let hasNewValue = 1; 35838let opNewValue = 0; 35839let isAccumulator = 1; 35840let isCVI = 1; 35841let isPseudo = 1; 35842let isCodeGenOnly = 1; 35843let DecoderNamespace = "EXT_mmvec"; 35844let Constraints = "$Vx32 = $Vx32in"; 35845} 35846def V6_vrmpybusv_alt : HInst< 35847(outs HvxVR:$Vd32), 35848(ins HvxVR:$Vu32, HvxVR:$Vv32), 35849"$Vd32 = vrmpybus($Vu32,$Vv32)", 35850PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35851let hasNewValue = 1; 35852let opNewValue = 0; 35853let isCVI = 1; 35854let isPseudo = 1; 35855let isCodeGenOnly = 1; 35856let DecoderNamespace = "EXT_mmvec"; 35857} 35858def V6_vrmpybv : HInst< 35859(outs HvxVR:$Vd32), 35860(ins HvxVR:$Vu32, HvxVR:$Vv32), 35861"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)", 35862tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 35863let Inst{7-5} = 0b001; 35864let Inst{13-13} = 0b0; 35865let Inst{31-21} = 0b00011100000; 35866let hasNewValue = 1; 35867let opNewValue = 0; 35868let isCVI = 1; 35869let DecoderNamespace = "EXT_mmvec"; 35870} 35871def V6_vrmpybv_acc : HInst< 35872(outs HvxVR:$Vx32), 35873(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35874"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)", 35875tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 35876let Inst{7-5} = 0b001; 35877let Inst{13-13} = 0b1; 35878let Inst{31-21} = 0b00011100000; 35879let hasNewValue = 1; 35880let opNewValue = 0; 35881let isAccumulator = 1; 35882let isCVI = 1; 35883let DecoderNamespace = "EXT_mmvec"; 35884let Constraints = "$Vx32 = $Vx32in"; 35885} 35886def V6_vrmpybv_acc_alt : HInst< 35887(outs HvxVR:$Vx32), 35888(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35889"$Vx32 += vrmpyb($Vu32,$Vv32)", 35890PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35891let hasNewValue = 1; 35892let opNewValue = 0; 35893let isAccumulator = 1; 35894let isCVI = 1; 35895let isPseudo = 1; 35896let isCodeGenOnly = 1; 35897let DecoderNamespace = "EXT_mmvec"; 35898let Constraints = "$Vx32 = $Vx32in"; 35899} 35900def V6_vrmpybv_alt : HInst< 35901(outs HvxVR:$Vd32), 35902(ins HvxVR:$Vu32, HvxVR:$Vv32), 35903"$Vd32 = vrmpyb($Vu32,$Vv32)", 35904PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35905let hasNewValue = 1; 35906let opNewValue = 0; 35907let isCVI = 1; 35908let isPseudo = 1; 35909let isCodeGenOnly = 1; 35910let DecoderNamespace = "EXT_mmvec"; 35911} 35912def V6_vrmpyub : HInst< 35913(outs HvxVR:$Vd32), 35914(ins HvxVR:$Vu32, IntRegs:$Rt32), 35915"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)", 35916tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 35917let Inst{7-5} = 0b011; 35918let Inst{13-13} = 0b0; 35919let Inst{31-21} = 0b00011001000; 35920let hasNewValue = 1; 35921let opNewValue = 0; 35922let isCVI = 1; 35923let DecoderNamespace = "EXT_mmvec"; 35924} 35925def V6_vrmpyub_acc : HInst< 35926(outs HvxVR:$Vx32), 35927(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35928"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)", 35929tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 35930let Inst{7-5} = 0b100; 35931let Inst{13-13} = 0b1; 35932let Inst{31-21} = 0b00011001000; 35933let hasNewValue = 1; 35934let opNewValue = 0; 35935let isAccumulator = 1; 35936let isCVI = 1; 35937let DecoderNamespace = "EXT_mmvec"; 35938let Constraints = "$Vx32 = $Vx32in"; 35939} 35940def V6_vrmpyub_acc_alt : HInst< 35941(outs HvxVR:$Vx32), 35942(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35943"$Vx32 += vrmpyub($Vu32,$Rt32)", 35944PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35945let hasNewValue = 1; 35946let opNewValue = 0; 35947let isAccumulator = 1; 35948let isCVI = 1; 35949let isPseudo = 1; 35950let isCodeGenOnly = 1; 35951let DecoderNamespace = "EXT_mmvec"; 35952let Constraints = "$Vx32 = $Vx32in"; 35953} 35954def V6_vrmpyub_alt : HInst< 35955(outs HvxVR:$Vd32), 35956(ins HvxVR:$Vu32, IntRegs:$Rt32), 35957"$Vd32 = vrmpyub($Vu32,$Rt32)", 35958PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35959let hasNewValue = 1; 35960let opNewValue = 0; 35961let isCVI = 1; 35962let isPseudo = 1; 35963let isCodeGenOnly = 1; 35964let DecoderNamespace = "EXT_mmvec"; 35965} 35966def V6_vrmpyub_rtt : HInst< 35967(outs HvxWR:$Vdd32), 35968(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 35969"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 35970tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 35971let Inst{7-5} = 0b100; 35972let Inst{13-13} = 0b0; 35973let Inst{31-21} = 0b00011001110; 35974let hasNewValue = 1; 35975let opNewValue = 0; 35976let isCVI = 1; 35977let DecoderNamespace = "EXT_mmvec"; 35978} 35979def V6_vrmpyub_rtt_acc : HInst< 35980(outs HvxWR:$Vxx32), 35981(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35982"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 35983tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 35984let Inst{7-5} = 0b111; 35985let Inst{13-13} = 0b1; 35986let Inst{31-21} = 0b00011001101; 35987let hasNewValue = 1; 35988let opNewValue = 0; 35989let isAccumulator = 1; 35990let isCVI = 1; 35991let DecoderNamespace = "EXT_mmvec"; 35992let Constraints = "$Vxx32 = $Vxx32in"; 35993} 35994def V6_vrmpyub_rtt_acc_alt : HInst< 35995(outs HvxWR:$Vxx32), 35996(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35997"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 35998PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35999let hasNewValue = 1; 36000let opNewValue = 0; 36001let isAccumulator = 1; 36002let isCVI = 1; 36003let isPseudo = 1; 36004let isCodeGenOnly = 1; 36005let DecoderNamespace = "EXT_mmvec"; 36006let Constraints = "$Vxx32 = $Vxx32in"; 36007} 36008def V6_vrmpyub_rtt_alt : HInst< 36009(outs HvxWR:$Vdd32), 36010(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 36011"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 36012PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36013let hasNewValue = 1; 36014let opNewValue = 0; 36015let isCVI = 1; 36016let isPseudo = 1; 36017let isCodeGenOnly = 1; 36018let DecoderNamespace = "EXT_mmvec"; 36019} 36020def V6_vrmpyubi : HInst< 36021(outs HvxWR:$Vdd32), 36022(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36023"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 36024tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 36025let Inst{7-6} = 0b11; 36026let Inst{13-13} = 0b0; 36027let Inst{31-21} = 0b00011001101; 36028let hasNewValue = 1; 36029let opNewValue = 0; 36030let isCVI = 1; 36031let DecoderNamespace = "EXT_mmvec"; 36032} 36033def V6_vrmpyubi_acc : HInst< 36034(outs HvxWR:$Vxx32), 36035(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36036"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 36037tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 36038let Inst{7-6} = 0b11; 36039let Inst{13-13} = 0b1; 36040let Inst{31-21} = 0b00011001011; 36041let hasNewValue = 1; 36042let opNewValue = 0; 36043let isAccumulator = 1; 36044let isCVI = 1; 36045let DecoderNamespace = "EXT_mmvec"; 36046let Constraints = "$Vxx32 = $Vxx32in"; 36047} 36048def V6_vrmpyubi_acc_alt : HInst< 36049(outs HvxWR:$Vxx32), 36050(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36051"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)", 36052PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36053let hasNewValue = 1; 36054let opNewValue = 0; 36055let isAccumulator = 1; 36056let isCVI = 1; 36057let isPseudo = 1; 36058let isCodeGenOnly = 1; 36059let DecoderNamespace = "EXT_mmvec"; 36060let Constraints = "$Vxx32 = $Vxx32in"; 36061} 36062def V6_vrmpyubi_alt : HInst< 36063(outs HvxWR:$Vdd32), 36064(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36065"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)", 36066PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36067let hasNewValue = 1; 36068let opNewValue = 0; 36069let isCVI = 1; 36070let isPseudo = 1; 36071let isCodeGenOnly = 1; 36072let DecoderNamespace = "EXT_mmvec"; 36073} 36074def V6_vrmpyubv : HInst< 36075(outs HvxVR:$Vd32), 36076(ins HvxVR:$Vu32, HvxVR:$Vv32), 36077"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)", 36078tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 36079let Inst{7-5} = 0b000; 36080let Inst{13-13} = 0b0; 36081let Inst{31-21} = 0b00011100000; 36082let hasNewValue = 1; 36083let opNewValue = 0; 36084let isCVI = 1; 36085let DecoderNamespace = "EXT_mmvec"; 36086} 36087def V6_vrmpyubv_acc : HInst< 36088(outs HvxVR:$Vx32), 36089(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36090"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)", 36091tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36092let Inst{7-5} = 0b000; 36093let Inst{13-13} = 0b1; 36094let Inst{31-21} = 0b00011100000; 36095let hasNewValue = 1; 36096let opNewValue = 0; 36097let isAccumulator = 1; 36098let isCVI = 1; 36099let DecoderNamespace = "EXT_mmvec"; 36100let Constraints = "$Vx32 = $Vx32in"; 36101} 36102def V6_vrmpyubv_acc_alt : HInst< 36103(outs HvxVR:$Vx32), 36104(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36105"$Vx32 += vrmpyub($Vu32,$Vv32)", 36106PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36107let hasNewValue = 1; 36108let opNewValue = 0; 36109let isAccumulator = 1; 36110let isCVI = 1; 36111let isPseudo = 1; 36112let isCodeGenOnly = 1; 36113let DecoderNamespace = "EXT_mmvec"; 36114let Constraints = "$Vx32 = $Vx32in"; 36115} 36116def V6_vrmpyubv_alt : HInst< 36117(outs HvxVR:$Vd32), 36118(ins HvxVR:$Vu32, HvxVR:$Vv32), 36119"$Vd32 = vrmpyub($Vu32,$Vv32)", 36120PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36121let hasNewValue = 1; 36122let opNewValue = 0; 36123let isCVI = 1; 36124let isPseudo = 1; 36125let isCodeGenOnly = 1; 36126let DecoderNamespace = "EXT_mmvec"; 36127} 36128def V6_vrmpyzbb_rt : HInst< 36129(outs HvxVQR:$Vdddd32), 36130(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36131"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)", 36132tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36133let Inst{7-5} = 0b000; 36134let Inst{13-13} = 0b0; 36135let Inst{31-19} = 0b0001100111101; 36136let hasNewValue = 1; 36137let opNewValue = 0; 36138let isCVI = 1; 36139let DecoderNamespace = "EXT_mmvec"; 36140} 36141def V6_vrmpyzbb_rt_acc : HInst< 36142(outs HvxVQR:$Vyyyy32), 36143(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36144"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)", 36145tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36146let Inst{7-5} = 0b010; 36147let Inst{13-13} = 0b1; 36148let Inst{31-19} = 0b0001100111000; 36149let hasNewValue = 1; 36150let opNewValue = 0; 36151let isAccumulator = 1; 36152let isCVI = 1; 36153let DecoderNamespace = "EXT_mmvec"; 36154let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36155} 36156def V6_vrmpyzbb_rx : HInst< 36157(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36158(ins HvxVR:$Vu32, IntRegs:$Rx8in), 36159"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)", 36160tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36161let Inst{7-5} = 0b000; 36162let Inst{13-13} = 0b0; 36163let Inst{31-19} = 0b0001100111100; 36164let hasNewValue = 1; 36165let opNewValue = 0; 36166let isCVI = 1; 36167let DecoderNamespace = "EXT_mmvec"; 36168let Constraints = "$Rx8 = $Rx8in"; 36169} 36170def V6_vrmpyzbb_rx_acc : HInst< 36171(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36172(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), 36173"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)", 36174tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36175let Inst{7-5} = 0b010; 36176let Inst{13-13} = 0b1; 36177let Inst{31-19} = 0b0001100111001; 36178let hasNewValue = 1; 36179let opNewValue = 0; 36180let isAccumulator = 1; 36181let isCVI = 1; 36182let DecoderNamespace = "EXT_mmvec"; 36183let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36184} 36185def V6_vrmpyzbub_rt : HInst< 36186(outs HvxVQR:$Vdddd32), 36187(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36188"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)", 36189tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36190let Inst{7-5} = 0b010; 36191let Inst{13-13} = 0b0; 36192let Inst{31-19} = 0b0001100111111; 36193let hasNewValue = 1; 36194let opNewValue = 0; 36195let isCVI = 1; 36196let DecoderNamespace = "EXT_mmvec"; 36197} 36198def V6_vrmpyzbub_rt_acc : HInst< 36199(outs HvxVQR:$Vyyyy32), 36200(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36201"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)", 36202tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36203let Inst{7-5} = 0b001; 36204let Inst{13-13} = 0b1; 36205let Inst{31-19} = 0b0001100111010; 36206let hasNewValue = 1; 36207let opNewValue = 0; 36208let isAccumulator = 1; 36209let isCVI = 1; 36210let DecoderNamespace = "EXT_mmvec"; 36211let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36212} 36213def V6_vrmpyzbub_rx : HInst< 36214(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36215(ins HvxVR:$Vu32, IntRegs:$Rx8in), 36216"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)", 36217tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36218let Inst{7-5} = 0b010; 36219let Inst{13-13} = 0b0; 36220let Inst{31-19} = 0b0001100111110; 36221let hasNewValue = 1; 36222let opNewValue = 0; 36223let isCVI = 1; 36224let DecoderNamespace = "EXT_mmvec"; 36225let Constraints = "$Rx8 = $Rx8in"; 36226} 36227def V6_vrmpyzbub_rx_acc : HInst< 36228(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36229(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), 36230"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)", 36231tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36232let Inst{7-5} = 0b001; 36233let Inst{13-13} = 0b1; 36234let Inst{31-19} = 0b0001100111011; 36235let hasNewValue = 1; 36236let opNewValue = 0; 36237let isAccumulator = 1; 36238let isCVI = 1; 36239let DecoderNamespace = "EXT_mmvec"; 36240let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36241} 36242def V6_vrmpyzcb_rt : HInst< 36243(outs HvxVQR:$Vdddd32), 36244(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36245"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)", 36246tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36247let Inst{7-5} = 0b001; 36248let Inst{13-13} = 0b0; 36249let Inst{31-19} = 0b0001100111101; 36250let hasNewValue = 1; 36251let opNewValue = 0; 36252let isCVI = 1; 36253let DecoderNamespace = "EXT_mmvec"; 36254} 36255def V6_vrmpyzcb_rt_acc : HInst< 36256(outs HvxVQR:$Vyyyy32), 36257(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36258"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)", 36259tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36260let Inst{7-5} = 0b011; 36261let Inst{13-13} = 0b1; 36262let Inst{31-19} = 0b0001100111000; 36263let hasNewValue = 1; 36264let opNewValue = 0; 36265let isAccumulator = 1; 36266let isCVI = 1; 36267let DecoderNamespace = "EXT_mmvec"; 36268let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36269} 36270def V6_vrmpyzcb_rx : HInst< 36271(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36272(ins HvxVR:$Vu32, IntRegs:$Rx8in), 36273"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)", 36274tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36275let Inst{7-5} = 0b001; 36276let Inst{13-13} = 0b0; 36277let Inst{31-19} = 0b0001100111100; 36278let hasNewValue = 1; 36279let opNewValue = 0; 36280let isCVI = 1; 36281let DecoderNamespace = "EXT_mmvec"; 36282let Constraints = "$Rx8 = $Rx8in"; 36283} 36284def V6_vrmpyzcb_rx_acc : HInst< 36285(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36286(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), 36287"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)", 36288tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36289let Inst{7-5} = 0b011; 36290let Inst{13-13} = 0b1; 36291let Inst{31-19} = 0b0001100111001; 36292let hasNewValue = 1; 36293let opNewValue = 0; 36294let isAccumulator = 1; 36295let isCVI = 1; 36296let DecoderNamespace = "EXT_mmvec"; 36297let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36298} 36299def V6_vrmpyzcbs_rt : HInst< 36300(outs HvxVQR:$Vdddd32), 36301(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36302"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)", 36303tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36304let Inst{7-5} = 0b010; 36305let Inst{13-13} = 0b0; 36306let Inst{31-19} = 0b0001100111101; 36307let hasNewValue = 1; 36308let opNewValue = 0; 36309let isCVI = 1; 36310let DecoderNamespace = "EXT_mmvec"; 36311} 36312def V6_vrmpyzcbs_rt_acc : HInst< 36313(outs HvxVQR:$Vyyyy32), 36314(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36315"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)", 36316tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36317let Inst{7-5} = 0b001; 36318let Inst{13-13} = 0b1; 36319let Inst{31-19} = 0b0001100111000; 36320let hasNewValue = 1; 36321let opNewValue = 0; 36322let isAccumulator = 1; 36323let isCVI = 1; 36324let DecoderNamespace = "EXT_mmvec"; 36325let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36326} 36327def V6_vrmpyzcbs_rx : HInst< 36328(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36329(ins HvxVR:$Vu32, IntRegs:$Rx8in), 36330"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)", 36331tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36332let Inst{7-5} = 0b010; 36333let Inst{13-13} = 0b0; 36334let Inst{31-19} = 0b0001100111100; 36335let hasNewValue = 1; 36336let opNewValue = 0; 36337let isCVI = 1; 36338let DecoderNamespace = "EXT_mmvec"; 36339let Constraints = "$Rx8 = $Rx8in"; 36340} 36341def V6_vrmpyzcbs_rx_acc : HInst< 36342(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36343(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), 36344"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)", 36345tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36346let Inst{7-5} = 0b001; 36347let Inst{13-13} = 0b1; 36348let Inst{31-19} = 0b0001100111001; 36349let hasNewValue = 1; 36350let opNewValue = 0; 36351let isAccumulator = 1; 36352let isCVI = 1; 36353let DecoderNamespace = "EXT_mmvec"; 36354let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36355} 36356def V6_vrmpyznb_rt : HInst< 36357(outs HvxVQR:$Vdddd32), 36358(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 36359"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)", 36360tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 36361let Inst{7-5} = 0b000; 36362let Inst{13-13} = 0b0; 36363let Inst{31-19} = 0b0001100111111; 36364let hasNewValue = 1; 36365let opNewValue = 0; 36366let isCVI = 1; 36367let DecoderNamespace = "EXT_mmvec"; 36368} 36369def V6_vrmpyznb_rt_acc : HInst< 36370(outs HvxVQR:$Vyyyy32), 36371(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 36372"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)", 36373tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 36374let Inst{7-5} = 0b010; 36375let Inst{13-13} = 0b1; 36376let Inst{31-19} = 0b0001100111010; 36377let hasNewValue = 1; 36378let opNewValue = 0; 36379let isAccumulator = 1; 36380let isCVI = 1; 36381let DecoderNamespace = "EXT_mmvec"; 36382let Constraints = "$Vyyyy32 = $Vyyyy32in"; 36383} 36384def V6_vrmpyznb_rx : HInst< 36385(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 36386(ins HvxVR:$Vu32, IntRegs:$Rx8in), 36387"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)", 36388tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 36389let Inst{7-5} = 0b000; 36390let Inst{13-13} = 0b0; 36391let Inst{31-19} = 0b0001100111110; 36392let hasNewValue = 1; 36393let opNewValue = 0; 36394let isCVI = 1; 36395let DecoderNamespace = "EXT_mmvec"; 36396let Constraints = "$Rx8 = $Rx8in"; 36397} 36398def V6_vrmpyznb_rx_acc : HInst< 36399(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 36400(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), 36401"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)", 36402tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 36403let Inst{7-5} = 0b010; 36404let Inst{13-13} = 0b1; 36405let Inst{31-19} = 0b0001100111011; 36406let hasNewValue = 1; 36407let opNewValue = 0; 36408let isAccumulator = 1; 36409let isCVI = 1; 36410let DecoderNamespace = "EXT_mmvec"; 36411let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 36412} 36413def V6_vror : HInst< 36414(outs HvxVR:$Vd32), 36415(ins HvxVR:$Vu32, IntRegs:$Rt32), 36416"$Vd32 = vror($Vu32,$Rt32)", 36417tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> { 36418let Inst{7-5} = 0b001; 36419let Inst{13-13} = 0b0; 36420let Inst{31-21} = 0b00011001011; 36421let hasNewValue = 1; 36422let opNewValue = 0; 36423let isCVI = 1; 36424let DecoderNamespace = "EXT_mmvec"; 36425} 36426def V6_vrotr : HInst< 36427(outs HvxVR:$Vd32), 36428(ins HvxVR:$Vu32, HvxVR:$Vv32), 36429"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)", 36430tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> { 36431let Inst{7-5} = 0b111; 36432let Inst{13-13} = 0b1; 36433let Inst{31-21} = 0b00011010100; 36434let hasNewValue = 1; 36435let opNewValue = 0; 36436let isCVI = 1; 36437let DecoderNamespace = "EXT_mmvec"; 36438} 36439def V6_vrotr_alt : HInst< 36440(outs HvxVR:$Vd32), 36441(ins HvxVR:$Vu32, HvxVR:$Vv32), 36442"$Vd32 = vrotr($Vu32,$Vv32)", 36443PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 36444let hasNewValue = 1; 36445let opNewValue = 0; 36446let isCVI = 1; 36447let isPseudo = 1; 36448let isCodeGenOnly = 1; 36449let DecoderNamespace = "EXT_mmvec"; 36450} 36451def V6_vroundhb : HInst< 36452(outs HvxVR:$Vd32), 36453(ins HvxVR:$Vu32, HvxVR:$Vv32), 36454"$Vd32.b = vround($Vu32.h,$Vv32.h):sat", 36455tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36456let Inst{7-5} = 0b110; 36457let Inst{13-13} = 0b0; 36458let Inst{31-21} = 0b00011111011; 36459let hasNewValue = 1; 36460let opNewValue = 0; 36461let isCVI = 1; 36462let DecoderNamespace = "EXT_mmvec"; 36463} 36464def V6_vroundhb_alt : HInst< 36465(outs HvxVR:$Vd32), 36466(ins HvxVR:$Vu32, HvxVR:$Vv32), 36467"$Vd32 = vroundhb($Vu32,$Vv32):sat", 36468PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36469let hasNewValue = 1; 36470let opNewValue = 0; 36471let isCVI = 1; 36472let isPseudo = 1; 36473let isCodeGenOnly = 1; 36474let DecoderNamespace = "EXT_mmvec"; 36475} 36476def V6_vroundhub : HInst< 36477(outs HvxVR:$Vd32), 36478(ins HvxVR:$Vu32, HvxVR:$Vv32), 36479"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat", 36480tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36481let Inst{7-5} = 0b111; 36482let Inst{13-13} = 0b0; 36483let Inst{31-21} = 0b00011111011; 36484let hasNewValue = 1; 36485let opNewValue = 0; 36486let isCVI = 1; 36487let DecoderNamespace = "EXT_mmvec"; 36488} 36489def V6_vroundhub_alt : HInst< 36490(outs HvxVR:$Vd32), 36491(ins HvxVR:$Vu32, HvxVR:$Vv32), 36492"$Vd32 = vroundhub($Vu32,$Vv32):sat", 36493PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36494let hasNewValue = 1; 36495let opNewValue = 0; 36496let isCVI = 1; 36497let isPseudo = 1; 36498let isCodeGenOnly = 1; 36499let DecoderNamespace = "EXT_mmvec"; 36500} 36501def V6_vrounduhub : HInst< 36502(outs HvxVR:$Vd32), 36503(ins HvxVR:$Vu32, HvxVR:$Vv32), 36504"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat", 36505tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 36506let Inst{7-5} = 0b011; 36507let Inst{13-13} = 0b0; 36508let Inst{31-21} = 0b00011111111; 36509let hasNewValue = 1; 36510let opNewValue = 0; 36511let isCVI = 1; 36512let DecoderNamespace = "EXT_mmvec"; 36513} 36514def V6_vrounduhub_alt : HInst< 36515(outs HvxVR:$Vd32), 36516(ins HvxVR:$Vu32, HvxVR:$Vv32), 36517"$Vd32 = vrounduhub($Vu32,$Vv32):sat", 36518PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36519let hasNewValue = 1; 36520let opNewValue = 0; 36521let isCVI = 1; 36522let isPseudo = 1; 36523let isCodeGenOnly = 1; 36524let DecoderNamespace = "EXT_mmvec"; 36525} 36526def V6_vrounduwuh : HInst< 36527(outs HvxVR:$Vd32), 36528(ins HvxVR:$Vu32, HvxVR:$Vv32), 36529"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat", 36530tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 36531let Inst{7-5} = 0b100; 36532let Inst{13-13} = 0b0; 36533let Inst{31-21} = 0b00011111111; 36534let hasNewValue = 1; 36535let opNewValue = 0; 36536let isCVI = 1; 36537let DecoderNamespace = "EXT_mmvec"; 36538} 36539def V6_vrounduwuh_alt : HInst< 36540(outs HvxVR:$Vd32), 36541(ins HvxVR:$Vu32, HvxVR:$Vv32), 36542"$Vd32 = vrounduwuh($Vu32,$Vv32):sat", 36543PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36544let hasNewValue = 1; 36545let opNewValue = 0; 36546let isCVI = 1; 36547let isPseudo = 1; 36548let isCodeGenOnly = 1; 36549let DecoderNamespace = "EXT_mmvec"; 36550} 36551def V6_vroundwh : HInst< 36552(outs HvxVR:$Vd32), 36553(ins HvxVR:$Vu32, HvxVR:$Vv32), 36554"$Vd32.h = vround($Vu32.w,$Vv32.w):sat", 36555tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36556let Inst{7-5} = 0b100; 36557let Inst{13-13} = 0b0; 36558let Inst{31-21} = 0b00011111011; 36559let hasNewValue = 1; 36560let opNewValue = 0; 36561let isCVI = 1; 36562let DecoderNamespace = "EXT_mmvec"; 36563} 36564def V6_vroundwh_alt : HInst< 36565(outs HvxVR:$Vd32), 36566(ins HvxVR:$Vu32, HvxVR:$Vv32), 36567"$Vd32 = vroundwh($Vu32,$Vv32):sat", 36568PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36569let hasNewValue = 1; 36570let opNewValue = 0; 36571let isCVI = 1; 36572let isPseudo = 1; 36573let isCodeGenOnly = 1; 36574let DecoderNamespace = "EXT_mmvec"; 36575} 36576def V6_vroundwuh : HInst< 36577(outs HvxVR:$Vd32), 36578(ins HvxVR:$Vu32, HvxVR:$Vv32), 36579"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat", 36580tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 36581let Inst{7-5} = 0b101; 36582let Inst{13-13} = 0b0; 36583let Inst{31-21} = 0b00011111011; 36584let hasNewValue = 1; 36585let opNewValue = 0; 36586let isCVI = 1; 36587let DecoderNamespace = "EXT_mmvec"; 36588} 36589def V6_vroundwuh_alt : HInst< 36590(outs HvxVR:$Vd32), 36591(ins HvxVR:$Vu32, HvxVR:$Vv32), 36592"$Vd32 = vroundwuh($Vu32,$Vv32):sat", 36593PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36594let hasNewValue = 1; 36595let opNewValue = 0; 36596let isCVI = 1; 36597let isPseudo = 1; 36598let isCodeGenOnly = 1; 36599let DecoderNamespace = "EXT_mmvec"; 36600} 36601def V6_vrsadubi : HInst< 36602(outs HvxWR:$Vdd32), 36603(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36604"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 36605tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 36606let Inst{7-6} = 0b11; 36607let Inst{13-13} = 0b0; 36608let Inst{31-21} = 0b00011001010; 36609let hasNewValue = 1; 36610let opNewValue = 0; 36611let isCVI = 1; 36612let DecoderNamespace = "EXT_mmvec"; 36613} 36614def V6_vrsadubi_acc : HInst< 36615(outs HvxWR:$Vxx32), 36616(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36617"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 36618tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 36619let Inst{7-6} = 0b11; 36620let Inst{13-13} = 0b1; 36621let Inst{31-21} = 0b00011001010; 36622let hasNewValue = 1; 36623let opNewValue = 0; 36624let isAccumulator = 1; 36625let isCVI = 1; 36626let DecoderNamespace = "EXT_mmvec"; 36627let Constraints = "$Vxx32 = $Vxx32in"; 36628} 36629def V6_vrsadubi_acc_alt : HInst< 36630(outs HvxWR:$Vxx32), 36631(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36632"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)", 36633PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36634let hasNewValue = 1; 36635let opNewValue = 0; 36636let isAccumulator = 1; 36637let isCVI = 1; 36638let isPseudo = 1; 36639let isCodeGenOnly = 1; 36640let DecoderNamespace = "EXT_mmvec"; 36641let Constraints = "$Vxx32 = $Vxx32in"; 36642} 36643def V6_vrsadubi_alt : HInst< 36644(outs HvxWR:$Vdd32), 36645(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 36646"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)", 36647PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36648let hasNewValue = 1; 36649let opNewValue = 0; 36650let isCVI = 1; 36651let isPseudo = 1; 36652let isCodeGenOnly = 1; 36653let DecoderNamespace = "EXT_mmvec"; 36654} 36655def V6_vsatdw : HInst< 36656(outs HvxVR:$Vd32), 36657(ins HvxVR:$Vu32, HvxVR:$Vv32), 36658"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)", 36659tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> { 36660let Inst{7-5} = 0b111; 36661let Inst{13-13} = 0b1; 36662let Inst{31-21} = 0b00011101100; 36663let hasNewValue = 1; 36664let opNewValue = 0; 36665let isCVI = 1; 36666let DecoderNamespace = "EXT_mmvec"; 36667} 36668def V6_vsathub : HInst< 36669(outs HvxVR:$Vd32), 36670(ins HvxVR:$Vu32, HvxVR:$Vv32), 36671"$Vd32.ub = vsat($Vu32.h,$Vv32.h)", 36672tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36673let Inst{7-5} = 0b010; 36674let Inst{13-13} = 0b0; 36675let Inst{31-21} = 0b00011111011; 36676let hasNewValue = 1; 36677let opNewValue = 0; 36678let isCVI = 1; 36679let DecoderNamespace = "EXT_mmvec"; 36680} 36681def V6_vsathub_alt : HInst< 36682(outs HvxVR:$Vd32), 36683(ins HvxVR:$Vu32, HvxVR:$Vv32), 36684"$Vd32 = vsathub($Vu32,$Vv32)", 36685PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36686let hasNewValue = 1; 36687let opNewValue = 0; 36688let isCVI = 1; 36689let isPseudo = 1; 36690let isCodeGenOnly = 1; 36691let DecoderNamespace = "EXT_mmvec"; 36692} 36693def V6_vsatuwuh : HInst< 36694(outs HvxVR:$Vd32), 36695(ins HvxVR:$Vu32, HvxVR:$Vv32), 36696"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)", 36697tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 36698let Inst{7-5} = 0b110; 36699let Inst{13-13} = 0b0; 36700let Inst{31-21} = 0b00011111001; 36701let hasNewValue = 1; 36702let opNewValue = 0; 36703let isCVI = 1; 36704let DecoderNamespace = "EXT_mmvec"; 36705} 36706def V6_vsatuwuh_alt : HInst< 36707(outs HvxVR:$Vd32), 36708(ins HvxVR:$Vu32, HvxVR:$Vv32), 36709"$Vd32 = vsatuwuh($Vu32,$Vv32)", 36710PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36711let hasNewValue = 1; 36712let opNewValue = 0; 36713let isCVI = 1; 36714let isPseudo = 1; 36715let isCodeGenOnly = 1; 36716let DecoderNamespace = "EXT_mmvec"; 36717} 36718def V6_vsatwh : HInst< 36719(outs HvxVR:$Vd32), 36720(ins HvxVR:$Vu32, HvxVR:$Vv32), 36721"$Vd32.h = vsat($Vu32.w,$Vv32.w)", 36722tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36723let Inst{7-5} = 0b011; 36724let Inst{13-13} = 0b0; 36725let Inst{31-21} = 0b00011111011; 36726let hasNewValue = 1; 36727let opNewValue = 0; 36728let isCVI = 1; 36729let DecoderNamespace = "EXT_mmvec"; 36730} 36731def V6_vsatwh_alt : HInst< 36732(outs HvxVR:$Vd32), 36733(ins HvxVR:$Vu32, HvxVR:$Vv32), 36734"$Vd32 = vsatwh($Vu32,$Vv32)", 36735PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36736let hasNewValue = 1; 36737let opNewValue = 0; 36738let isCVI = 1; 36739let isPseudo = 1; 36740let isCodeGenOnly = 1; 36741let DecoderNamespace = "EXT_mmvec"; 36742} 36743def V6_vsb : HInst< 36744(outs HvxWR:$Vdd32), 36745(ins HvxVR:$Vu32), 36746"$Vdd32.h = vsxt($Vu32.b)", 36747tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 36748let Inst{7-5} = 0b011; 36749let Inst{13-13} = 0b0; 36750let Inst{31-16} = 0b0001111000000010; 36751let hasNewValue = 1; 36752let opNewValue = 0; 36753let isCVI = 1; 36754let DecoderNamespace = "EXT_mmvec"; 36755} 36756def V6_vsb_alt : HInst< 36757(outs HvxWR:$Vdd32), 36758(ins HvxVR:$Vu32), 36759"$Vdd32 = vsxtb($Vu32)", 36760PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36761let hasNewValue = 1; 36762let opNewValue = 0; 36763let isCVI = 1; 36764let isPseudo = 1; 36765let isCodeGenOnly = 1; 36766let DecoderNamespace = "EXT_mmvec"; 36767} 36768def V6_vscattermh : HInst< 36769(outs), 36770(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36771"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 36772tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36773let Inst{7-5} = 0b001; 36774let Inst{31-21} = 0b00101111001; 36775let accessSize = HalfWordAccess; 36776let isCVI = 1; 36777let mayStore = 1; 36778let DecoderNamespace = "EXT_mmvec"; 36779} 36780def V6_vscattermh_add : HInst< 36781(outs), 36782(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36783"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32", 36784tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36785let Inst{7-5} = 0b101; 36786let Inst{31-21} = 0b00101111001; 36787let accessSize = HalfWordAccess; 36788let isAccumulator = 1; 36789let isCVI = 1; 36790let mayStore = 1; 36791let DecoderNamespace = "EXT_mmvec"; 36792} 36793def V6_vscattermh_add_alt : HInst< 36794(outs), 36795(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36796"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h", 36797PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36798let isAccumulator = 1; 36799let isCVI = 1; 36800let isPseudo = 1; 36801let isCodeGenOnly = 1; 36802let DecoderNamespace = "EXT_mmvec"; 36803} 36804def V6_vscattermh_alt : HInst< 36805(outs), 36806(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36807"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 36808PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36809let isCVI = 1; 36810let isPseudo = 1; 36811let isCodeGenOnly = 1; 36812let DecoderNamespace = "EXT_mmvec"; 36813} 36814def V6_vscattermhq : HInst< 36815(outs), 36816(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36817"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 36818tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 36819let Inst{7-7} = 0b1; 36820let Inst{31-21} = 0b00101111100; 36821let accessSize = HalfWordAccess; 36822let isCVI = 1; 36823let mayStore = 1; 36824let DecoderNamespace = "EXT_mmvec"; 36825} 36826def V6_vscattermhq_alt : HInst< 36827(outs), 36828(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36829"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 36830PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36831let isCVI = 1; 36832let isPseudo = 1; 36833let isCodeGenOnly = 1; 36834let DecoderNamespace = "EXT_mmvec"; 36835} 36836def V6_vscattermhw : HInst< 36837(outs), 36838(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36839"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 36840tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 36841let Inst{7-5} = 0b010; 36842let Inst{31-21} = 0b00101111001; 36843let accessSize = HalfWordAccess; 36844let isCVI = 1; 36845let mayStore = 1; 36846let DecoderNamespace = "EXT_mmvec"; 36847} 36848def V6_vscattermhw_add : HInst< 36849(outs), 36850(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36851"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32", 36852tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 36853let Inst{7-5} = 0b110; 36854let Inst{31-21} = 0b00101111001; 36855let accessSize = HalfWordAccess; 36856let isAccumulator = 1; 36857let isCVI = 1; 36858let mayStore = 1; 36859let DecoderNamespace = "EXT_mmvec"; 36860} 36861def V6_vscattermhwq : HInst< 36862(outs), 36863(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36864"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 36865tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> { 36866let Inst{7-7} = 0b0; 36867let Inst{31-21} = 0b00101111101; 36868let accessSize = HalfWordAccess; 36869let isCVI = 1; 36870let mayStore = 1; 36871let DecoderNamespace = "EXT_mmvec"; 36872} 36873def V6_vscattermw : HInst< 36874(outs), 36875(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36876"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 36877tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36878let Inst{7-5} = 0b000; 36879let Inst{31-21} = 0b00101111001; 36880let accessSize = WordAccess; 36881let isCVI = 1; 36882let mayStore = 1; 36883let DecoderNamespace = "EXT_mmvec"; 36884} 36885def V6_vscattermw_add : HInst< 36886(outs), 36887(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36888"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32", 36889tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 36890let Inst{7-5} = 0b100; 36891let Inst{31-21} = 0b00101111001; 36892let accessSize = WordAccess; 36893let isAccumulator = 1; 36894let isCVI = 1; 36895let mayStore = 1; 36896let DecoderNamespace = "EXT_mmvec"; 36897} 36898def V6_vscattermw_add_alt : HInst< 36899(outs), 36900(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36901"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w", 36902PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36903let isAccumulator = 1; 36904let isCVI = 1; 36905let isPseudo = 1; 36906let isCodeGenOnly = 1; 36907let DecoderNamespace = "EXT_mmvec"; 36908} 36909def V6_vscattermw_alt : HInst< 36910(outs), 36911(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36912"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 36913PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36914let isCVI = 1; 36915let isPseudo = 1; 36916let isCodeGenOnly = 1; 36917let DecoderNamespace = "EXT_mmvec"; 36918} 36919def V6_vscattermwh_add_alt : HInst< 36920(outs), 36921(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36922"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h", 36923PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36924let isAccumulator = 1; 36925let isCVI = 1; 36926let isPseudo = 1; 36927let isCodeGenOnly = 1; 36928let DecoderNamespace = "EXT_mmvec"; 36929} 36930def V6_vscattermwh_alt : HInst< 36931(outs), 36932(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36933"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 36934PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36935let isCVI = 1; 36936let isPseudo = 1; 36937let isCodeGenOnly = 1; 36938let DecoderNamespace = "EXT_mmvec"; 36939} 36940def V6_vscattermwhq_alt : HInst< 36941(outs), 36942(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 36943"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 36944PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36945let isCVI = 1; 36946let isPseudo = 1; 36947let isCodeGenOnly = 1; 36948let DecoderNamespace = "EXT_mmvec"; 36949} 36950def V6_vscattermwq : HInst< 36951(outs), 36952(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36953"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 36954tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 36955let Inst{7-7} = 0b0; 36956let Inst{31-21} = 0b00101111100; 36957let accessSize = WordAccess; 36958let isCVI = 1; 36959let mayStore = 1; 36960let DecoderNamespace = "EXT_mmvec"; 36961} 36962def V6_vscattermwq_alt : HInst< 36963(outs), 36964(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 36965"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 36966PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36967let isCVI = 1; 36968let isPseudo = 1; 36969let isCodeGenOnly = 1; 36970let DecoderNamespace = "EXT_mmvec"; 36971} 36972def V6_vsh : HInst< 36973(outs HvxWR:$Vdd32), 36974(ins HvxVR:$Vu32), 36975"$Vdd32.w = vsxt($Vu32.h)", 36976tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 36977let Inst{7-5} = 0b100; 36978let Inst{13-13} = 0b0; 36979let Inst{31-16} = 0b0001111000000010; 36980let hasNewValue = 1; 36981let opNewValue = 0; 36982let isCVI = 1; 36983let DecoderNamespace = "EXT_mmvec"; 36984} 36985def V6_vsh_alt : HInst< 36986(outs HvxWR:$Vdd32), 36987(ins HvxVR:$Vu32), 36988"$Vdd32 = vsxth($Vu32)", 36989PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36990let hasNewValue = 1; 36991let opNewValue = 0; 36992let isCVI = 1; 36993let isPseudo = 1; 36994let isCodeGenOnly = 1; 36995let DecoderNamespace = "EXT_mmvec"; 36996} 36997def V6_vshufeh : HInst< 36998(outs HvxVR:$Vd32), 36999(ins HvxVR:$Vu32, HvxVR:$Vv32), 37000"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)", 37001tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37002let Inst{7-5} = 0b011; 37003let Inst{13-13} = 0b0; 37004let Inst{31-21} = 0b00011111010; 37005let hasNewValue = 1; 37006let opNewValue = 0; 37007let isCVI = 1; 37008let DecoderNamespace = "EXT_mmvec"; 37009} 37010def V6_vshufeh_alt : HInst< 37011(outs HvxVR:$Vd32), 37012(ins HvxVR:$Vu32, HvxVR:$Vv32), 37013"$Vd32 = vshuffeh($Vu32,$Vv32)", 37014PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37015let hasNewValue = 1; 37016let opNewValue = 0; 37017let isCVI = 1; 37018let isPseudo = 1; 37019let isCodeGenOnly = 1; 37020let DecoderNamespace = "EXT_mmvec"; 37021} 37022def V6_vshuff : HInst< 37023(outs HvxVR:$Vy32, HvxVR:$Vx32), 37024(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 37025"vshuff($Vy32,$Vx32,$Rt32)", 37026tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 37027let Inst{7-5} = 0b001; 37028let Inst{13-13} = 0b1; 37029let Inst{31-21} = 0b00011001111; 37030let hasNewValue = 1; 37031let opNewValue = 0; 37032let hasNewValue2 = 1; 37033let opNewValue2 = 1; 37034let isCVI = 1; 37035let DecoderNamespace = "EXT_mmvec"; 37036let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 37037} 37038def V6_vshuffb : HInst< 37039(outs HvxVR:$Vd32), 37040(ins HvxVR:$Vu32), 37041"$Vd32.b = vshuff($Vu32.b)", 37042tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 37043let Inst{7-5} = 0b000; 37044let Inst{13-13} = 0b0; 37045let Inst{31-16} = 0b0001111000000010; 37046let hasNewValue = 1; 37047let opNewValue = 0; 37048let isCVI = 1; 37049let DecoderNamespace = "EXT_mmvec"; 37050} 37051def V6_vshuffb_alt : HInst< 37052(outs HvxVR:$Vd32), 37053(ins HvxVR:$Vu32), 37054"$Vd32 = vshuffb($Vu32)", 37055PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37056let hasNewValue = 1; 37057let opNewValue = 0; 37058let isCVI = 1; 37059let isPseudo = 1; 37060let isCodeGenOnly = 1; 37061let DecoderNamespace = "EXT_mmvec"; 37062} 37063def V6_vshuffeb : HInst< 37064(outs HvxVR:$Vd32), 37065(ins HvxVR:$Vu32, HvxVR:$Vv32), 37066"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)", 37067tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37068let Inst{7-5} = 0b001; 37069let Inst{13-13} = 0b0; 37070let Inst{31-21} = 0b00011111010; 37071let hasNewValue = 1; 37072let opNewValue = 0; 37073let isCVI = 1; 37074let DecoderNamespace = "EXT_mmvec"; 37075} 37076def V6_vshuffeb_alt : HInst< 37077(outs HvxVR:$Vd32), 37078(ins HvxVR:$Vu32, HvxVR:$Vv32), 37079"$Vd32 = vshuffeb($Vu32,$Vv32)", 37080PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37081let hasNewValue = 1; 37082let opNewValue = 0; 37083let isCVI = 1; 37084let isPseudo = 1; 37085let isCodeGenOnly = 1; 37086let DecoderNamespace = "EXT_mmvec"; 37087} 37088def V6_vshuffh : HInst< 37089(outs HvxVR:$Vd32), 37090(ins HvxVR:$Vu32), 37091"$Vd32.h = vshuff($Vu32.h)", 37092tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 37093let Inst{7-5} = 0b111; 37094let Inst{13-13} = 0b0; 37095let Inst{31-16} = 0b0001111000000001; 37096let hasNewValue = 1; 37097let opNewValue = 0; 37098let isCVI = 1; 37099let DecoderNamespace = "EXT_mmvec"; 37100} 37101def V6_vshuffh_alt : HInst< 37102(outs HvxVR:$Vd32), 37103(ins HvxVR:$Vu32), 37104"$Vd32 = vshuffh($Vu32)", 37105PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37106let hasNewValue = 1; 37107let opNewValue = 0; 37108let isCVI = 1; 37109let isPseudo = 1; 37110let isCodeGenOnly = 1; 37111let DecoderNamespace = "EXT_mmvec"; 37112} 37113def V6_vshuffob : HInst< 37114(outs HvxVR:$Vd32), 37115(ins HvxVR:$Vu32, HvxVR:$Vv32), 37116"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)", 37117tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37118let Inst{7-5} = 0b010; 37119let Inst{13-13} = 0b0; 37120let Inst{31-21} = 0b00011111010; 37121let hasNewValue = 1; 37122let opNewValue = 0; 37123let isCVI = 1; 37124let DecoderNamespace = "EXT_mmvec"; 37125} 37126def V6_vshuffob_alt : HInst< 37127(outs HvxVR:$Vd32), 37128(ins HvxVR:$Vu32, HvxVR:$Vv32), 37129"$Vd32 = vshuffob($Vu32,$Vv32)", 37130PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37131let hasNewValue = 1; 37132let opNewValue = 0; 37133let isCVI = 1; 37134let isPseudo = 1; 37135let isCodeGenOnly = 1; 37136let DecoderNamespace = "EXT_mmvec"; 37137} 37138def V6_vshuffvdd : HInst< 37139(outs HvxWR:$Vdd32), 37140(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 37141"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)", 37142tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 37143let Inst{7-5} = 0b011; 37144let Inst{13-13} = 0b1; 37145let Inst{31-24} = 0b00011011; 37146let hasNewValue = 1; 37147let opNewValue = 0; 37148let isCVI = 1; 37149let DecoderNamespace = "EXT_mmvec"; 37150} 37151def V6_vshufoeb : HInst< 37152(outs HvxWR:$Vdd32), 37153(ins HvxVR:$Vu32, HvxVR:$Vv32), 37154"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)", 37155tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37156let Inst{7-5} = 0b110; 37157let Inst{13-13} = 0b0; 37158let Inst{31-21} = 0b00011111010; 37159let hasNewValue = 1; 37160let opNewValue = 0; 37161let isCVI = 1; 37162let DecoderNamespace = "EXT_mmvec"; 37163} 37164def V6_vshufoeb_alt : HInst< 37165(outs HvxWR:$Vdd32), 37166(ins HvxVR:$Vu32, HvxVR:$Vv32), 37167"$Vdd32 = vshuffoeb($Vu32,$Vv32)", 37168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37169let hasNewValue = 1; 37170let opNewValue = 0; 37171let isCVI = 1; 37172let isPseudo = 1; 37173let isCodeGenOnly = 1; 37174let DecoderNamespace = "EXT_mmvec"; 37175} 37176def V6_vshufoeh : HInst< 37177(outs HvxWR:$Vdd32), 37178(ins HvxVR:$Vu32, HvxVR:$Vv32), 37179"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)", 37180tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37181let Inst{7-5} = 0b101; 37182let Inst{13-13} = 0b0; 37183let Inst{31-21} = 0b00011111010; 37184let hasNewValue = 1; 37185let opNewValue = 0; 37186let isCVI = 1; 37187let DecoderNamespace = "EXT_mmvec"; 37188} 37189def V6_vshufoeh_alt : HInst< 37190(outs HvxWR:$Vdd32), 37191(ins HvxVR:$Vu32, HvxVR:$Vv32), 37192"$Vdd32 = vshuffoeh($Vu32,$Vv32)", 37193PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37194let hasNewValue = 1; 37195let opNewValue = 0; 37196let isCVI = 1; 37197let isPseudo = 1; 37198let isCodeGenOnly = 1; 37199let DecoderNamespace = "EXT_mmvec"; 37200} 37201def V6_vshufoh : HInst< 37202(outs HvxVR:$Vd32), 37203(ins HvxVR:$Vu32, HvxVR:$Vv32), 37204"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)", 37205tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37206let Inst{7-5} = 0b100; 37207let Inst{13-13} = 0b0; 37208let Inst{31-21} = 0b00011111010; 37209let hasNewValue = 1; 37210let opNewValue = 0; 37211let isCVI = 1; 37212let DecoderNamespace = "EXT_mmvec"; 37213} 37214def V6_vshufoh_alt : HInst< 37215(outs HvxVR:$Vd32), 37216(ins HvxVR:$Vu32, HvxVR:$Vv32), 37217"$Vd32 = vshuffoh($Vu32,$Vv32)", 37218PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37219let hasNewValue = 1; 37220let opNewValue = 0; 37221let isCVI = 1; 37222let isPseudo = 1; 37223let isCodeGenOnly = 1; 37224let DecoderNamespace = "EXT_mmvec"; 37225} 37226def V6_vsubb : HInst< 37227(outs HvxVR:$Vd32), 37228(ins HvxVR:$Vu32, HvxVR:$Vv32), 37229"$Vd32.b = vsub($Vu32.b,$Vv32.b)", 37230tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37231let Inst{7-5} = 0b101; 37232let Inst{13-13} = 0b0; 37233let Inst{31-21} = 0b00011100010; 37234let hasNewValue = 1; 37235let opNewValue = 0; 37236let isCVI = 1; 37237let DecoderNamespace = "EXT_mmvec"; 37238} 37239def V6_vsubb_alt : HInst< 37240(outs HvxVR:$Vd32), 37241(ins HvxVR:$Vu32, HvxVR:$Vv32), 37242"$Vd32 = vsubb($Vu32,$Vv32)", 37243PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37244let hasNewValue = 1; 37245let opNewValue = 0; 37246let isCVI = 1; 37247let isPseudo = 1; 37248let isCodeGenOnly = 1; 37249let DecoderNamespace = "EXT_mmvec"; 37250} 37251def V6_vsubb_dv : HInst< 37252(outs HvxWR:$Vdd32), 37253(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37254"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)", 37255tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37256let Inst{7-5} = 0b011; 37257let Inst{13-13} = 0b0; 37258let Inst{31-21} = 0b00011100100; 37259let hasNewValue = 1; 37260let opNewValue = 0; 37261let isCVI = 1; 37262let DecoderNamespace = "EXT_mmvec"; 37263} 37264def V6_vsubb_dv_alt : HInst< 37265(outs HvxWR:$Vdd32), 37266(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37267"$Vdd32 = vsubb($Vuu32,$Vvv32)", 37268PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37269let hasNewValue = 1; 37270let opNewValue = 0; 37271let isCVI = 1; 37272let isPseudo = 1; 37273let isCodeGenOnly = 1; 37274let DecoderNamespace = "EXT_mmvec"; 37275} 37276def V6_vsubbnq : HInst< 37277(outs HvxVR:$Vx32), 37278(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37279"if (!$Qv4) $Vx32.b -= $Vu32.b", 37280tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37281let Inst{7-5} = 0b001; 37282let Inst{13-13} = 0b1; 37283let Inst{21-16} = 0b000010; 37284let Inst{31-24} = 0b00011110; 37285let hasNewValue = 1; 37286let opNewValue = 0; 37287let isCVI = 1; 37288let DecoderNamespace = "EXT_mmvec"; 37289let Constraints = "$Vx32 = $Vx32in"; 37290} 37291def V6_vsubbnq_alt : HInst< 37292(outs HvxVR:$Vx32), 37293(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37294"if (!$Qv4.b) $Vx32.b -= $Vu32.b", 37295PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37296let hasNewValue = 1; 37297let opNewValue = 0; 37298let isCVI = 1; 37299let isPseudo = 1; 37300let isCodeGenOnly = 1; 37301let DecoderNamespace = "EXT_mmvec"; 37302let Constraints = "$Vx32 = $Vx32in"; 37303} 37304def V6_vsubbq : HInst< 37305(outs HvxVR:$Vx32), 37306(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37307"if ($Qv4) $Vx32.b -= $Vu32.b", 37308tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37309let Inst{7-5} = 0b110; 37310let Inst{13-13} = 0b1; 37311let Inst{21-16} = 0b000001; 37312let Inst{31-24} = 0b00011110; 37313let hasNewValue = 1; 37314let opNewValue = 0; 37315let isCVI = 1; 37316let DecoderNamespace = "EXT_mmvec"; 37317let Constraints = "$Vx32 = $Vx32in"; 37318} 37319def V6_vsubbq_alt : HInst< 37320(outs HvxVR:$Vx32), 37321(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37322"if ($Qv4.b) $Vx32.b -= $Vu32.b", 37323PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37324let hasNewValue = 1; 37325let opNewValue = 0; 37326let isCVI = 1; 37327let isPseudo = 1; 37328let isCodeGenOnly = 1; 37329let DecoderNamespace = "EXT_mmvec"; 37330let Constraints = "$Vx32 = $Vx32in"; 37331} 37332def V6_vsubbsat : HInst< 37333(outs HvxVR:$Vd32), 37334(ins HvxVR:$Vu32, HvxVR:$Vv32), 37335"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat", 37336tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37337let Inst{7-5} = 0b010; 37338let Inst{13-13} = 0b0; 37339let Inst{31-21} = 0b00011111001; 37340let hasNewValue = 1; 37341let opNewValue = 0; 37342let isCVI = 1; 37343let DecoderNamespace = "EXT_mmvec"; 37344} 37345def V6_vsubbsat_alt : HInst< 37346(outs HvxVR:$Vd32), 37347(ins HvxVR:$Vu32, HvxVR:$Vv32), 37348"$Vd32 = vsubb($Vu32,$Vv32):sat", 37349PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37350let hasNewValue = 1; 37351let opNewValue = 0; 37352let isCVI = 1; 37353let isPseudo = 1; 37354let isCodeGenOnly = 1; 37355let DecoderNamespace = "EXT_mmvec"; 37356} 37357def V6_vsubbsat_dv : HInst< 37358(outs HvxWR:$Vdd32), 37359(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37360"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat", 37361tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 37362let Inst{7-5} = 0b001; 37363let Inst{13-13} = 0b0; 37364let Inst{31-21} = 0b00011110101; 37365let hasNewValue = 1; 37366let opNewValue = 0; 37367let isCVI = 1; 37368let DecoderNamespace = "EXT_mmvec"; 37369} 37370def V6_vsubbsat_dv_alt : HInst< 37371(outs HvxWR:$Vdd32), 37372(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37373"$Vdd32 = vsubb($Vuu32,$Vvv32):sat", 37374PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37375let hasNewValue = 1; 37376let opNewValue = 0; 37377let isCVI = 1; 37378let isPseudo = 1; 37379let isCodeGenOnly = 1; 37380let DecoderNamespace = "EXT_mmvec"; 37381} 37382def V6_vsubcarry : HInst< 37383(outs HvxVR:$Vd32, HvxQR:$Qx4), 37384(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 37385"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry", 37386tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 37387let Inst{7-7} = 0b1; 37388let Inst{13-13} = 0b1; 37389let Inst{31-21} = 0b00011100101; 37390let hasNewValue = 1; 37391let opNewValue = 0; 37392let isCVI = 1; 37393let DecoderNamespace = "EXT_mmvec"; 37394let Constraints = "$Qx4 = $Qx4in"; 37395} 37396def V6_vsubcarryo : HInst< 37397(outs HvxVR:$Vd32, HvxQR:$Qe4), 37398(ins HvxVR:$Vu32, HvxVR:$Vv32), 37399"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry", 37400tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 37401let Inst{7-7} = 0b1; 37402let Inst{13-13} = 0b1; 37403let Inst{31-21} = 0b00011101101; 37404let hasNewValue = 1; 37405let opNewValue = 0; 37406let hasNewValue2 = 1; 37407let opNewValue2 = 1; 37408let isCVI = 1; 37409let DecoderNamespace = "EXT_mmvec"; 37410} 37411def V6_vsubh : HInst< 37412(outs HvxVR:$Vd32), 37413(ins HvxVR:$Vu32, HvxVR:$Vv32), 37414"$Vd32.h = vsub($Vu32.h,$Vv32.h)", 37415tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37416let Inst{7-5} = 0b110; 37417let Inst{13-13} = 0b0; 37418let Inst{31-21} = 0b00011100010; 37419let hasNewValue = 1; 37420let opNewValue = 0; 37421let isCVI = 1; 37422let DecoderNamespace = "EXT_mmvec"; 37423} 37424def V6_vsubh_alt : HInst< 37425(outs HvxVR:$Vd32), 37426(ins HvxVR:$Vu32, HvxVR:$Vv32), 37427"$Vd32 = vsubh($Vu32,$Vv32)", 37428PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37429let hasNewValue = 1; 37430let opNewValue = 0; 37431let isCVI = 1; 37432let isPseudo = 1; 37433let isCodeGenOnly = 1; 37434let DecoderNamespace = "EXT_mmvec"; 37435} 37436def V6_vsubh_dv : HInst< 37437(outs HvxWR:$Vdd32), 37438(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37439"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)", 37440tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37441let Inst{7-5} = 0b100; 37442let Inst{13-13} = 0b0; 37443let Inst{31-21} = 0b00011100100; 37444let hasNewValue = 1; 37445let opNewValue = 0; 37446let isCVI = 1; 37447let DecoderNamespace = "EXT_mmvec"; 37448} 37449def V6_vsubh_dv_alt : HInst< 37450(outs HvxWR:$Vdd32), 37451(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37452"$Vdd32 = vsubh($Vuu32,$Vvv32)", 37453PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37454let hasNewValue = 1; 37455let opNewValue = 0; 37456let isCVI = 1; 37457let isPseudo = 1; 37458let isCodeGenOnly = 1; 37459let DecoderNamespace = "EXT_mmvec"; 37460} 37461def V6_vsubhnq : HInst< 37462(outs HvxVR:$Vx32), 37463(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37464"if (!$Qv4) $Vx32.h -= $Vu32.h", 37465tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37466let Inst{7-5} = 0b010; 37467let Inst{13-13} = 0b1; 37468let Inst{21-16} = 0b000010; 37469let Inst{31-24} = 0b00011110; 37470let hasNewValue = 1; 37471let opNewValue = 0; 37472let isCVI = 1; 37473let DecoderNamespace = "EXT_mmvec"; 37474let Constraints = "$Vx32 = $Vx32in"; 37475} 37476def V6_vsubhnq_alt : HInst< 37477(outs HvxVR:$Vx32), 37478(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37479"if (!$Qv4.h) $Vx32.h -= $Vu32.h", 37480PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37481let hasNewValue = 1; 37482let opNewValue = 0; 37483let isCVI = 1; 37484let isPseudo = 1; 37485let isCodeGenOnly = 1; 37486let DecoderNamespace = "EXT_mmvec"; 37487let Constraints = "$Vx32 = $Vx32in"; 37488} 37489def V6_vsubhq : HInst< 37490(outs HvxVR:$Vx32), 37491(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37492"if ($Qv4) $Vx32.h -= $Vu32.h", 37493tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37494let Inst{7-5} = 0b111; 37495let Inst{13-13} = 0b1; 37496let Inst{21-16} = 0b000001; 37497let Inst{31-24} = 0b00011110; 37498let hasNewValue = 1; 37499let opNewValue = 0; 37500let isCVI = 1; 37501let DecoderNamespace = "EXT_mmvec"; 37502let Constraints = "$Vx32 = $Vx32in"; 37503} 37504def V6_vsubhq_alt : HInst< 37505(outs HvxVR:$Vx32), 37506(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37507"if ($Qv4.h) $Vx32.h -= $Vu32.h", 37508PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37509let hasNewValue = 1; 37510let opNewValue = 0; 37511let isCVI = 1; 37512let isPseudo = 1; 37513let isCodeGenOnly = 1; 37514let DecoderNamespace = "EXT_mmvec"; 37515let Constraints = "$Vx32 = $Vx32in"; 37516} 37517def V6_vsubhsat : HInst< 37518(outs HvxVR:$Vd32), 37519(ins HvxVR:$Vu32, HvxVR:$Vv32), 37520"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat", 37521tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37522let Inst{7-5} = 0b010; 37523let Inst{13-13} = 0b0; 37524let Inst{31-21} = 0b00011100011; 37525let hasNewValue = 1; 37526let opNewValue = 0; 37527let isCVI = 1; 37528let DecoderNamespace = "EXT_mmvec"; 37529} 37530def V6_vsubhsat_alt : HInst< 37531(outs HvxVR:$Vd32), 37532(ins HvxVR:$Vu32, HvxVR:$Vv32), 37533"$Vd32 = vsubh($Vu32,$Vv32):sat", 37534PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37535let hasNewValue = 1; 37536let opNewValue = 0; 37537let isCVI = 1; 37538let isPseudo = 1; 37539let isCodeGenOnly = 1; 37540let DecoderNamespace = "EXT_mmvec"; 37541} 37542def V6_vsubhsat_dv : HInst< 37543(outs HvxWR:$Vdd32), 37544(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37545"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat", 37546tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37547let Inst{7-5} = 0b000; 37548let Inst{13-13} = 0b0; 37549let Inst{31-21} = 0b00011100101; 37550let hasNewValue = 1; 37551let opNewValue = 0; 37552let isCVI = 1; 37553let DecoderNamespace = "EXT_mmvec"; 37554} 37555def V6_vsubhsat_dv_alt : HInst< 37556(outs HvxWR:$Vdd32), 37557(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37558"$Vdd32 = vsubh($Vuu32,$Vvv32):sat", 37559PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37560let hasNewValue = 1; 37561let opNewValue = 0; 37562let isCVI = 1; 37563let isPseudo = 1; 37564let isCodeGenOnly = 1; 37565let DecoderNamespace = "EXT_mmvec"; 37566} 37567def V6_vsubhw : HInst< 37568(outs HvxWR:$Vdd32), 37569(ins HvxVR:$Vu32, HvxVR:$Vv32), 37570"$Vdd32.w = vsub($Vu32.h,$Vv32.h)", 37571tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37572let Inst{7-5} = 0b111; 37573let Inst{13-13} = 0b0; 37574let Inst{31-21} = 0b00011100101; 37575let hasNewValue = 1; 37576let opNewValue = 0; 37577let isCVI = 1; 37578let DecoderNamespace = "EXT_mmvec"; 37579} 37580def V6_vsubhw_alt : HInst< 37581(outs HvxWR:$Vdd32), 37582(ins HvxVR:$Vu32, HvxVR:$Vv32), 37583"$Vdd32 = vsubh($Vu32,$Vv32)", 37584PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37585let hasNewValue = 1; 37586let opNewValue = 0; 37587let isCVI = 1; 37588let isPseudo = 1; 37589let isCodeGenOnly = 1; 37590let DecoderNamespace = "EXT_mmvec"; 37591} 37592def V6_vsububh : HInst< 37593(outs HvxWR:$Vdd32), 37594(ins HvxVR:$Vu32, HvxVR:$Vv32), 37595"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)", 37596tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37597let Inst{7-5} = 0b101; 37598let Inst{13-13} = 0b0; 37599let Inst{31-21} = 0b00011100101; 37600let hasNewValue = 1; 37601let opNewValue = 0; 37602let isCVI = 1; 37603let DecoderNamespace = "EXT_mmvec"; 37604} 37605def V6_vsububh_alt : HInst< 37606(outs HvxWR:$Vdd32), 37607(ins HvxVR:$Vu32, HvxVR:$Vv32), 37608"$Vdd32 = vsubub($Vu32,$Vv32)", 37609PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37610let hasNewValue = 1; 37611let opNewValue = 0; 37612let isCVI = 1; 37613let isPseudo = 1; 37614let isCodeGenOnly = 1; 37615let DecoderNamespace = "EXT_mmvec"; 37616} 37617def V6_vsububsat : HInst< 37618(outs HvxVR:$Vd32), 37619(ins HvxVR:$Vu32, HvxVR:$Vv32), 37620"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat", 37621tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37622let Inst{7-5} = 0b000; 37623let Inst{13-13} = 0b0; 37624let Inst{31-21} = 0b00011100011; 37625let hasNewValue = 1; 37626let opNewValue = 0; 37627let isCVI = 1; 37628let DecoderNamespace = "EXT_mmvec"; 37629} 37630def V6_vsububsat_alt : HInst< 37631(outs HvxVR:$Vd32), 37632(ins HvxVR:$Vu32, HvxVR:$Vv32), 37633"$Vd32 = vsubub($Vu32,$Vv32):sat", 37634PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37635let hasNewValue = 1; 37636let opNewValue = 0; 37637let isCVI = 1; 37638let isPseudo = 1; 37639let isCodeGenOnly = 1; 37640let DecoderNamespace = "EXT_mmvec"; 37641} 37642def V6_vsububsat_dv : HInst< 37643(outs HvxWR:$Vdd32), 37644(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37645"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat", 37646tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37647let Inst{7-5} = 0b110; 37648let Inst{13-13} = 0b0; 37649let Inst{31-21} = 0b00011100100; 37650let hasNewValue = 1; 37651let opNewValue = 0; 37652let isCVI = 1; 37653let DecoderNamespace = "EXT_mmvec"; 37654} 37655def V6_vsububsat_dv_alt : HInst< 37656(outs HvxWR:$Vdd32), 37657(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37658"$Vdd32 = vsubub($Vuu32,$Vvv32):sat", 37659PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37660let hasNewValue = 1; 37661let opNewValue = 0; 37662let isCVI = 1; 37663let isPseudo = 1; 37664let isCodeGenOnly = 1; 37665let DecoderNamespace = "EXT_mmvec"; 37666} 37667def V6_vsubububb_sat : HInst< 37668(outs HvxVR:$Vd32), 37669(ins HvxVR:$Vu32, HvxVR:$Vv32), 37670"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat", 37671tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37672let Inst{7-5} = 0b101; 37673let Inst{13-13} = 0b0; 37674let Inst{31-21} = 0b00011110101; 37675let hasNewValue = 1; 37676let opNewValue = 0; 37677let isCVI = 1; 37678let DecoderNamespace = "EXT_mmvec"; 37679} 37680def V6_vsubuhsat : HInst< 37681(outs HvxVR:$Vd32), 37682(ins HvxVR:$Vu32, HvxVR:$Vv32), 37683"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat", 37684tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37685let Inst{7-5} = 0b001; 37686let Inst{13-13} = 0b0; 37687let Inst{31-21} = 0b00011100011; 37688let hasNewValue = 1; 37689let opNewValue = 0; 37690let isCVI = 1; 37691let DecoderNamespace = "EXT_mmvec"; 37692} 37693def V6_vsubuhsat_alt : HInst< 37694(outs HvxVR:$Vd32), 37695(ins HvxVR:$Vu32, HvxVR:$Vv32), 37696"$Vd32 = vsubuh($Vu32,$Vv32):sat", 37697PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37698let hasNewValue = 1; 37699let opNewValue = 0; 37700let isCVI = 1; 37701let isPseudo = 1; 37702let isCodeGenOnly = 1; 37703let DecoderNamespace = "EXT_mmvec"; 37704} 37705def V6_vsubuhsat_dv : HInst< 37706(outs HvxWR:$Vdd32), 37707(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37708"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat", 37709tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37710let Inst{7-5} = 0b111; 37711let Inst{13-13} = 0b0; 37712let Inst{31-21} = 0b00011100100; 37713let hasNewValue = 1; 37714let opNewValue = 0; 37715let isCVI = 1; 37716let DecoderNamespace = "EXT_mmvec"; 37717} 37718def V6_vsubuhsat_dv_alt : HInst< 37719(outs HvxWR:$Vdd32), 37720(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37721"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat", 37722PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37723let hasNewValue = 1; 37724let opNewValue = 0; 37725let isCVI = 1; 37726let isPseudo = 1; 37727let isCodeGenOnly = 1; 37728let DecoderNamespace = "EXT_mmvec"; 37729} 37730def V6_vsubuhw : HInst< 37731(outs HvxWR:$Vdd32), 37732(ins HvxVR:$Vu32, HvxVR:$Vv32), 37733"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)", 37734tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 37735let Inst{7-5} = 0b110; 37736let Inst{13-13} = 0b0; 37737let Inst{31-21} = 0b00011100101; 37738let hasNewValue = 1; 37739let opNewValue = 0; 37740let isCVI = 1; 37741let DecoderNamespace = "EXT_mmvec"; 37742} 37743def V6_vsubuhw_alt : HInst< 37744(outs HvxWR:$Vdd32), 37745(ins HvxVR:$Vu32, HvxVR:$Vv32), 37746"$Vdd32 = vsubuh($Vu32,$Vv32)", 37747PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37748let hasNewValue = 1; 37749let opNewValue = 0; 37750let isCVI = 1; 37751let isPseudo = 1; 37752let isCodeGenOnly = 1; 37753let DecoderNamespace = "EXT_mmvec"; 37754} 37755def V6_vsubuwsat : HInst< 37756(outs HvxVR:$Vd32), 37757(ins HvxVR:$Vu32, HvxVR:$Vv32), 37758"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat", 37759tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 37760let Inst{7-5} = 0b100; 37761let Inst{13-13} = 0b0; 37762let Inst{31-21} = 0b00011111110; 37763let hasNewValue = 1; 37764let opNewValue = 0; 37765let isCVI = 1; 37766let DecoderNamespace = "EXT_mmvec"; 37767} 37768def V6_vsubuwsat_alt : HInst< 37769(outs HvxVR:$Vd32), 37770(ins HvxVR:$Vu32, HvxVR:$Vv32), 37771"$Vd32 = vsubuw($Vu32,$Vv32):sat", 37772PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37773let hasNewValue = 1; 37774let opNewValue = 0; 37775let isCVI = 1; 37776let isPseudo = 1; 37777let isCodeGenOnly = 1; 37778let DecoderNamespace = "EXT_mmvec"; 37779} 37780def V6_vsubuwsat_dv : HInst< 37781(outs HvxWR:$Vdd32), 37782(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37783"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat", 37784tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 37785let Inst{7-5} = 0b011; 37786let Inst{13-13} = 0b0; 37787let Inst{31-21} = 0b00011110101; 37788let hasNewValue = 1; 37789let opNewValue = 0; 37790let isCVI = 1; 37791let DecoderNamespace = "EXT_mmvec"; 37792} 37793def V6_vsubuwsat_dv_alt : HInst< 37794(outs HvxWR:$Vdd32), 37795(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37796"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat", 37797PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 37798let hasNewValue = 1; 37799let opNewValue = 0; 37800let isCVI = 1; 37801let isPseudo = 1; 37802let isCodeGenOnly = 1; 37803let DecoderNamespace = "EXT_mmvec"; 37804} 37805def V6_vsubw : HInst< 37806(outs HvxVR:$Vd32), 37807(ins HvxVR:$Vu32, HvxVR:$Vv32), 37808"$Vd32.w = vsub($Vu32.w,$Vv32.w)", 37809tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37810let Inst{7-5} = 0b111; 37811let Inst{13-13} = 0b0; 37812let Inst{31-21} = 0b00011100010; 37813let hasNewValue = 1; 37814let opNewValue = 0; 37815let isCVI = 1; 37816let DecoderNamespace = "EXT_mmvec"; 37817} 37818def V6_vsubw_alt : HInst< 37819(outs HvxVR:$Vd32), 37820(ins HvxVR:$Vu32, HvxVR:$Vv32), 37821"$Vd32 = vsubw($Vu32,$Vv32)", 37822PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37823let hasNewValue = 1; 37824let opNewValue = 0; 37825let isCVI = 1; 37826let isPseudo = 1; 37827let isCodeGenOnly = 1; 37828let DecoderNamespace = "EXT_mmvec"; 37829} 37830def V6_vsubw_dv : HInst< 37831(outs HvxWR:$Vdd32), 37832(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37833"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)", 37834tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37835let Inst{7-5} = 0b101; 37836let Inst{13-13} = 0b0; 37837let Inst{31-21} = 0b00011100100; 37838let hasNewValue = 1; 37839let opNewValue = 0; 37840let isCVI = 1; 37841let DecoderNamespace = "EXT_mmvec"; 37842} 37843def V6_vsubw_dv_alt : HInst< 37844(outs HvxWR:$Vdd32), 37845(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37846"$Vdd32 = vsubw($Vuu32,$Vvv32)", 37847PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37848let hasNewValue = 1; 37849let opNewValue = 0; 37850let isCVI = 1; 37851let isPseudo = 1; 37852let isCodeGenOnly = 1; 37853let DecoderNamespace = "EXT_mmvec"; 37854} 37855def V6_vsubwnq : HInst< 37856(outs HvxVR:$Vx32), 37857(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37858"if (!$Qv4) $Vx32.w -= $Vu32.w", 37859tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37860let Inst{7-5} = 0b011; 37861let Inst{13-13} = 0b1; 37862let Inst{21-16} = 0b000010; 37863let Inst{31-24} = 0b00011110; 37864let hasNewValue = 1; 37865let opNewValue = 0; 37866let isCVI = 1; 37867let DecoderNamespace = "EXT_mmvec"; 37868let Constraints = "$Vx32 = $Vx32in"; 37869} 37870def V6_vsubwnq_alt : HInst< 37871(outs HvxVR:$Vx32), 37872(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37873"if (!$Qv4.w) $Vx32.w -= $Vu32.w", 37874PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37875let hasNewValue = 1; 37876let opNewValue = 0; 37877let isCVI = 1; 37878let isPseudo = 1; 37879let isCodeGenOnly = 1; 37880let DecoderNamespace = "EXT_mmvec"; 37881let Constraints = "$Vx32 = $Vx32in"; 37882} 37883def V6_vsubwq : HInst< 37884(outs HvxVR:$Vx32), 37885(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37886"if ($Qv4) $Vx32.w -= $Vu32.w", 37887tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 37888let Inst{7-5} = 0b000; 37889let Inst{13-13} = 0b1; 37890let Inst{21-16} = 0b000010; 37891let Inst{31-24} = 0b00011110; 37892let hasNewValue = 1; 37893let opNewValue = 0; 37894let isCVI = 1; 37895let DecoderNamespace = "EXT_mmvec"; 37896let Constraints = "$Vx32 = $Vx32in"; 37897} 37898def V6_vsubwq_alt : HInst< 37899(outs HvxVR:$Vx32), 37900(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 37901"if ($Qv4.w) $Vx32.w -= $Vu32.w", 37902PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37903let hasNewValue = 1; 37904let opNewValue = 0; 37905let isCVI = 1; 37906let isPseudo = 1; 37907let isCodeGenOnly = 1; 37908let DecoderNamespace = "EXT_mmvec"; 37909let Constraints = "$Vx32 = $Vx32in"; 37910} 37911def V6_vsubwsat : HInst< 37912(outs HvxVR:$Vd32), 37913(ins HvxVR:$Vu32, HvxVR:$Vv32), 37914"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat", 37915tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 37916let Inst{7-5} = 0b011; 37917let Inst{13-13} = 0b0; 37918let Inst{31-21} = 0b00011100011; 37919let hasNewValue = 1; 37920let opNewValue = 0; 37921let isCVI = 1; 37922let DecoderNamespace = "EXT_mmvec"; 37923} 37924def V6_vsubwsat_alt : HInst< 37925(outs HvxVR:$Vd32), 37926(ins HvxVR:$Vu32, HvxVR:$Vv32), 37927"$Vd32 = vsubw($Vu32,$Vv32):sat", 37928PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37929let hasNewValue = 1; 37930let opNewValue = 0; 37931let isCVI = 1; 37932let isPseudo = 1; 37933let isCodeGenOnly = 1; 37934let DecoderNamespace = "EXT_mmvec"; 37935} 37936def V6_vsubwsat_dv : HInst< 37937(outs HvxWR:$Vdd32), 37938(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37939"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat", 37940tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 37941let Inst{7-5} = 0b001; 37942let Inst{13-13} = 0b0; 37943let Inst{31-21} = 0b00011100101; 37944let hasNewValue = 1; 37945let opNewValue = 0; 37946let isCVI = 1; 37947let DecoderNamespace = "EXT_mmvec"; 37948} 37949def V6_vsubwsat_dv_alt : HInst< 37950(outs HvxWR:$Vdd32), 37951(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 37952"$Vdd32 = vsubw($Vuu32,$Vvv32):sat", 37953PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37954let hasNewValue = 1; 37955let opNewValue = 0; 37956let isCVI = 1; 37957let isPseudo = 1; 37958let isCodeGenOnly = 1; 37959let DecoderNamespace = "EXT_mmvec"; 37960} 37961def V6_vswap : HInst< 37962(outs HvxWR:$Vdd32), 37963(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 37964"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)", 37965tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> { 37966let Inst{7-7} = 0b0; 37967let Inst{13-13} = 0b1; 37968let Inst{31-21} = 0b00011110101; 37969let hasNewValue = 1; 37970let opNewValue = 0; 37971let isCVI = 1; 37972let DecoderNamespace = "EXT_mmvec"; 37973} 37974def V6_vtmpyb : HInst< 37975(outs HvxWR:$Vdd32), 37976(ins HvxWR:$Vuu32, IntRegs:$Rt32), 37977"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)", 37978tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 37979let Inst{7-5} = 0b000; 37980let Inst{13-13} = 0b0; 37981let Inst{31-21} = 0b00011001000; 37982let hasNewValue = 1; 37983let opNewValue = 0; 37984let isCVI = 1; 37985let DecoderNamespace = "EXT_mmvec"; 37986} 37987def V6_vtmpyb_acc : HInst< 37988(outs HvxWR:$Vxx32), 37989(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 37990"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)", 37991tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 37992let Inst{7-5} = 0b000; 37993let Inst{13-13} = 0b1; 37994let Inst{31-21} = 0b00011001000; 37995let hasNewValue = 1; 37996let opNewValue = 0; 37997let isAccumulator = 1; 37998let isCVI = 1; 37999let DecoderNamespace = "EXT_mmvec"; 38000let Constraints = "$Vxx32 = $Vxx32in"; 38001} 38002def V6_vtmpyb_acc_alt : HInst< 38003(outs HvxWR:$Vxx32), 38004(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38005"$Vxx32 += vtmpyb($Vuu32,$Rt32)", 38006PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38007let hasNewValue = 1; 38008let opNewValue = 0; 38009let isAccumulator = 1; 38010let isCVI = 1; 38011let isPseudo = 1; 38012let isCodeGenOnly = 1; 38013let DecoderNamespace = "EXT_mmvec"; 38014let Constraints = "$Vxx32 = $Vxx32in"; 38015} 38016def V6_vtmpyb_alt : HInst< 38017(outs HvxWR:$Vdd32), 38018(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38019"$Vdd32 = vtmpyb($Vuu32,$Rt32)", 38020PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38021let hasNewValue = 1; 38022let opNewValue = 0; 38023let isCVI = 1; 38024let isPseudo = 1; 38025let isCodeGenOnly = 1; 38026let DecoderNamespace = "EXT_mmvec"; 38027} 38028def V6_vtmpybus : HInst< 38029(outs HvxWR:$Vdd32), 38030(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38031"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)", 38032tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 38033let Inst{7-5} = 0b001; 38034let Inst{13-13} = 0b0; 38035let Inst{31-21} = 0b00011001000; 38036let hasNewValue = 1; 38037let opNewValue = 0; 38038let isCVI = 1; 38039let DecoderNamespace = "EXT_mmvec"; 38040} 38041def V6_vtmpybus_acc : HInst< 38042(outs HvxWR:$Vxx32), 38043(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38044"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)", 38045tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 38046let Inst{7-5} = 0b001; 38047let Inst{13-13} = 0b1; 38048let Inst{31-21} = 0b00011001000; 38049let hasNewValue = 1; 38050let opNewValue = 0; 38051let isAccumulator = 1; 38052let isCVI = 1; 38053let DecoderNamespace = "EXT_mmvec"; 38054let Constraints = "$Vxx32 = $Vxx32in"; 38055} 38056def V6_vtmpybus_acc_alt : HInst< 38057(outs HvxWR:$Vxx32), 38058(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38059"$Vxx32 += vtmpybus($Vuu32,$Rt32)", 38060PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38061let hasNewValue = 1; 38062let opNewValue = 0; 38063let isAccumulator = 1; 38064let isCVI = 1; 38065let isPseudo = 1; 38066let isCodeGenOnly = 1; 38067let DecoderNamespace = "EXT_mmvec"; 38068let Constraints = "$Vxx32 = $Vxx32in"; 38069} 38070def V6_vtmpybus_alt : HInst< 38071(outs HvxWR:$Vdd32), 38072(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38073"$Vdd32 = vtmpybus($Vuu32,$Rt32)", 38074PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38075let hasNewValue = 1; 38076let opNewValue = 0; 38077let isCVI = 1; 38078let isPseudo = 1; 38079let isCodeGenOnly = 1; 38080let DecoderNamespace = "EXT_mmvec"; 38081} 38082def V6_vtmpyhb : HInst< 38083(outs HvxWR:$Vdd32), 38084(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38085"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)", 38086tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 38087let Inst{7-5} = 0b100; 38088let Inst{13-13} = 0b0; 38089let Inst{31-21} = 0b00011001101; 38090let hasNewValue = 1; 38091let opNewValue = 0; 38092let isCVI = 1; 38093let DecoderNamespace = "EXT_mmvec"; 38094} 38095def V6_vtmpyhb_acc : HInst< 38096(outs HvxWR:$Vxx32), 38097(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38098"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)", 38099tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 38100let Inst{7-5} = 0b010; 38101let Inst{13-13} = 0b1; 38102let Inst{31-21} = 0b00011001000; 38103let hasNewValue = 1; 38104let opNewValue = 0; 38105let isAccumulator = 1; 38106let isCVI = 1; 38107let DecoderNamespace = "EXT_mmvec"; 38108let Constraints = "$Vxx32 = $Vxx32in"; 38109} 38110def V6_vtmpyhb_acc_alt : HInst< 38111(outs HvxWR:$Vxx32), 38112(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 38113"$Vxx32 += vtmpyhb($Vuu32,$Rt32)", 38114PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38115let hasNewValue = 1; 38116let opNewValue = 0; 38117let isAccumulator = 1; 38118let isCVI = 1; 38119let isPseudo = 1; 38120let isCodeGenOnly = 1; 38121let DecoderNamespace = "EXT_mmvec"; 38122let Constraints = "$Vxx32 = $Vxx32in"; 38123} 38124def V6_vtmpyhb_alt : HInst< 38125(outs HvxWR:$Vdd32), 38126(ins HvxWR:$Vuu32, IntRegs:$Rt32), 38127"$Vdd32 = vtmpyhb($Vuu32,$Rt32)", 38128PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38129let hasNewValue = 1; 38130let opNewValue = 0; 38131let isCVI = 1; 38132let isPseudo = 1; 38133let isCodeGenOnly = 1; 38134let DecoderNamespace = "EXT_mmvec"; 38135} 38136def V6_vtran2x2_map : HInst< 38137(outs HvxVR:$Vy32, HvxVR:$Vx32), 38138(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 38139"vtrans2x2($Vy32,$Vx32,$Rt32)", 38140PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38141let hasNewValue = 1; 38142let opNewValue = 0; 38143let hasNewValue2 = 1; 38144let opNewValue2 = 1; 38145let isCVI = 1; 38146let isPseudo = 1; 38147let isCodeGenOnly = 1; 38148let DecoderNamespace = "EXT_mmvec"; 38149let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 38150} 38151def V6_vunpackb : HInst< 38152(outs HvxWR:$Vdd32), 38153(ins HvxVR:$Vu32), 38154"$Vdd32.h = vunpack($Vu32.b)", 38155tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38156let Inst{7-5} = 0b010; 38157let Inst{13-13} = 0b0; 38158let Inst{31-16} = 0b0001111000000001; 38159let hasNewValue = 1; 38160let opNewValue = 0; 38161let isCVI = 1; 38162let DecoderNamespace = "EXT_mmvec"; 38163} 38164def V6_vunpackb_alt : HInst< 38165(outs HvxWR:$Vdd32), 38166(ins HvxVR:$Vu32), 38167"$Vdd32 = vunpackb($Vu32)", 38168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38169let hasNewValue = 1; 38170let opNewValue = 0; 38171let isCVI = 1; 38172let isPseudo = 1; 38173let isCodeGenOnly = 1; 38174let DecoderNamespace = "EXT_mmvec"; 38175} 38176def V6_vunpackh : HInst< 38177(outs HvxWR:$Vdd32), 38178(ins HvxVR:$Vu32), 38179"$Vdd32.w = vunpack($Vu32.h)", 38180tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38181let Inst{7-5} = 0b011; 38182let Inst{13-13} = 0b0; 38183let Inst{31-16} = 0b0001111000000001; 38184let hasNewValue = 1; 38185let opNewValue = 0; 38186let isCVI = 1; 38187let DecoderNamespace = "EXT_mmvec"; 38188} 38189def V6_vunpackh_alt : HInst< 38190(outs HvxWR:$Vdd32), 38191(ins HvxVR:$Vu32), 38192"$Vdd32 = vunpackh($Vu32)", 38193PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38194let hasNewValue = 1; 38195let opNewValue = 0; 38196let isCVI = 1; 38197let isPseudo = 1; 38198let isCodeGenOnly = 1; 38199let DecoderNamespace = "EXT_mmvec"; 38200} 38201def V6_vunpackob : HInst< 38202(outs HvxWR:$Vxx32), 38203(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38204"$Vxx32.h |= vunpacko($Vu32.b)", 38205tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 38206let Inst{7-5} = 0b000; 38207let Inst{13-13} = 0b1; 38208let Inst{31-16} = 0b0001111000000000; 38209let hasNewValue = 1; 38210let opNewValue = 0; 38211let isAccumulator = 1; 38212let isCVI = 1; 38213let DecoderNamespace = "EXT_mmvec"; 38214let Constraints = "$Vxx32 = $Vxx32in"; 38215} 38216def V6_vunpackob_alt : HInst< 38217(outs HvxWR:$Vxx32), 38218(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38219"$Vxx32 |= vunpackob($Vu32)", 38220PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38221let hasNewValue = 1; 38222let opNewValue = 0; 38223let isAccumulator = 1; 38224let isCVI = 1; 38225let isPseudo = 1; 38226let DecoderNamespace = "EXT_mmvec"; 38227let Constraints = "$Vxx32 = $Vxx32in"; 38228} 38229def V6_vunpackoh : HInst< 38230(outs HvxWR:$Vxx32), 38231(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38232"$Vxx32.w |= vunpacko($Vu32.h)", 38233tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 38234let Inst{7-5} = 0b001; 38235let Inst{13-13} = 0b1; 38236let Inst{31-16} = 0b0001111000000000; 38237let hasNewValue = 1; 38238let opNewValue = 0; 38239let isAccumulator = 1; 38240let isCVI = 1; 38241let DecoderNamespace = "EXT_mmvec"; 38242let Constraints = "$Vxx32 = $Vxx32in"; 38243} 38244def V6_vunpackoh_alt : HInst< 38245(outs HvxWR:$Vxx32), 38246(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 38247"$Vxx32 |= vunpackoh($Vu32)", 38248PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38249let hasNewValue = 1; 38250let opNewValue = 0; 38251let isAccumulator = 1; 38252let isCVI = 1; 38253let isPseudo = 1; 38254let isCodeGenOnly = 1; 38255let DecoderNamespace = "EXT_mmvec"; 38256let Constraints = "$Vxx32 = $Vxx32in"; 38257} 38258def V6_vunpackub : HInst< 38259(outs HvxWR:$Vdd32), 38260(ins HvxVR:$Vu32), 38261"$Vdd32.uh = vunpack($Vu32.ub)", 38262tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38263let Inst{7-5} = 0b000; 38264let Inst{13-13} = 0b0; 38265let Inst{31-16} = 0b0001111000000001; 38266let hasNewValue = 1; 38267let opNewValue = 0; 38268let isCVI = 1; 38269let DecoderNamespace = "EXT_mmvec"; 38270} 38271def V6_vunpackub_alt : HInst< 38272(outs HvxWR:$Vdd32), 38273(ins HvxVR:$Vu32), 38274"$Vdd32 = vunpackub($Vu32)", 38275PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38276let hasNewValue = 1; 38277let opNewValue = 0; 38278let isCVI = 1; 38279let isPseudo = 1; 38280let isCodeGenOnly = 1; 38281let DecoderNamespace = "EXT_mmvec"; 38282} 38283def V6_vunpackuh : HInst< 38284(outs HvxWR:$Vdd32), 38285(ins HvxVR:$Vu32), 38286"$Vdd32.uw = vunpack($Vu32.uh)", 38287tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 38288let Inst{7-5} = 0b001; 38289let Inst{13-13} = 0b0; 38290let Inst{31-16} = 0b0001111000000001; 38291let hasNewValue = 1; 38292let opNewValue = 0; 38293let isCVI = 1; 38294let DecoderNamespace = "EXT_mmvec"; 38295} 38296def V6_vunpackuh_alt : HInst< 38297(outs HvxWR:$Vdd32), 38298(ins HvxVR:$Vu32), 38299"$Vdd32 = vunpackuh($Vu32)", 38300PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38301let hasNewValue = 1; 38302let opNewValue = 0; 38303let isCVI = 1; 38304let isPseudo = 1; 38305let isCodeGenOnly = 1; 38306let DecoderNamespace = "EXT_mmvec"; 38307} 38308def V6_vwhist128 : HInst< 38309(outs), 38310(ins), 38311"vwhist128", 38312tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38313let Inst{13-0} = 0b10010010000000; 38314let Inst{31-16} = 0b0001111000000000; 38315let isCVI = 1; 38316let DecoderNamespace = "EXT_mmvec"; 38317} 38318def V6_vwhist128m : HInst< 38319(outs), 38320(ins u1_0Imm:$Ii), 38321"vwhist128(#$Ii)", 38322tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> { 38323let Inst{7-0} = 0b10000000; 38324let Inst{13-9} = 0b10011; 38325let Inst{31-16} = 0b0001111000000000; 38326let isCVI = 1; 38327let DecoderNamespace = "EXT_mmvec"; 38328} 38329def V6_vwhist128q : HInst< 38330(outs), 38331(ins HvxQR:$Qv4), 38332"vwhist128($Qv4)", 38333tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38334let Inst{13-0} = 0b10010010000000; 38335let Inst{21-16} = 0b000010; 38336let Inst{31-24} = 0b00011110; 38337let isCVI = 1; 38338let DecoderNamespace = "EXT_mmvec"; 38339} 38340def V6_vwhist128qm : HInst< 38341(outs), 38342(ins HvxQR:$Qv4, u1_0Imm:$Ii), 38343"vwhist128($Qv4,#$Ii)", 38344tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> { 38345let Inst{7-0} = 0b10000000; 38346let Inst{13-9} = 0b10011; 38347let Inst{21-16} = 0b000010; 38348let Inst{31-24} = 0b00011110; 38349let isCVI = 1; 38350let DecoderNamespace = "EXT_mmvec"; 38351} 38352def V6_vwhist256 : HInst< 38353(outs), 38354(ins), 38355"vwhist256", 38356tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38357let Inst{13-0} = 0b10001010000000; 38358let Inst{31-16} = 0b0001111000000000; 38359let isCVI = 1; 38360let DecoderNamespace = "EXT_mmvec"; 38361} 38362def V6_vwhist256_sat : HInst< 38363(outs), 38364(ins), 38365"vwhist256:sat", 38366tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 38367let Inst{13-0} = 0b10001110000000; 38368let Inst{31-16} = 0b0001111000000000; 38369let isCVI = 1; 38370let DecoderNamespace = "EXT_mmvec"; 38371} 38372def V6_vwhist256q : HInst< 38373(outs), 38374(ins HvxQR:$Qv4), 38375"vwhist256($Qv4)", 38376tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38377let Inst{13-0} = 0b10001010000000; 38378let Inst{21-16} = 0b000010; 38379let Inst{31-24} = 0b00011110; 38380let isCVI = 1; 38381let DecoderNamespace = "EXT_mmvec"; 38382} 38383def V6_vwhist256q_sat : HInst< 38384(outs), 38385(ins HvxQR:$Qv4), 38386"vwhist256($Qv4):sat", 38387tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 38388let Inst{13-0} = 0b10001110000000; 38389let Inst{21-16} = 0b000010; 38390let Inst{31-24} = 0b00011110; 38391let isCVI = 1; 38392let DecoderNamespace = "EXT_mmvec"; 38393} 38394def V6_vxor : HInst< 38395(outs HvxVR:$Vd32), 38396(ins HvxVR:$Vu32, HvxVR:$Vv32), 38397"$Vd32 = vxor($Vu32,$Vv32)", 38398tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38399let Inst{7-5} = 0b111; 38400let Inst{13-13} = 0b0; 38401let Inst{31-21} = 0b00011100001; 38402let hasNewValue = 1; 38403let opNewValue = 0; 38404let isCVI = 1; 38405let DecoderNamespace = "EXT_mmvec"; 38406} 38407def V6_vzb : HInst< 38408(outs HvxWR:$Vdd32), 38409(ins HvxVR:$Vu32), 38410"$Vdd32.uh = vzxt($Vu32.ub)", 38411tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38412let Inst{7-5} = 0b001; 38413let Inst{13-13} = 0b0; 38414let Inst{31-16} = 0b0001111000000010; 38415let hasNewValue = 1; 38416let opNewValue = 0; 38417let isCVI = 1; 38418let DecoderNamespace = "EXT_mmvec"; 38419} 38420def V6_vzb_alt : HInst< 38421(outs HvxWR:$Vdd32), 38422(ins HvxVR:$Vu32), 38423"$Vdd32 = vzxtb($Vu32)", 38424PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38425let hasNewValue = 1; 38426let opNewValue = 0; 38427let isCVI = 1; 38428let isPseudo = 1; 38429let isCodeGenOnly = 1; 38430let DecoderNamespace = "EXT_mmvec"; 38431} 38432def V6_vzh : HInst< 38433(outs HvxWR:$Vdd32), 38434(ins HvxVR:$Vu32), 38435"$Vdd32.uw = vzxt($Vu32.uh)", 38436tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38437let Inst{7-5} = 0b010; 38438let Inst{13-13} = 0b0; 38439let Inst{31-16} = 0b0001111000000010; 38440let hasNewValue = 1; 38441let opNewValue = 0; 38442let isCVI = 1; 38443let DecoderNamespace = "EXT_mmvec"; 38444} 38445def V6_vzh_alt : HInst< 38446(outs HvxWR:$Vdd32), 38447(ins HvxVR:$Vu32), 38448"$Vdd32 = vzxth($Vu32)", 38449PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38450let hasNewValue = 1; 38451let opNewValue = 0; 38452let isCVI = 1; 38453let isPseudo = 1; 38454let isCodeGenOnly = 1; 38455let DecoderNamespace = "EXT_mmvec"; 38456} 38457def V6_zLd_ai : HInst< 38458(outs), 38459(ins IntRegs:$Rt32, s4_0Imm:$Ii), 38460"z = vmem($Rt32+#$Ii)", 38461tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> { 38462let Inst{7-0} = 0b00000000; 38463let Inst{12-11} = 0b00; 38464let Inst{31-21} = 0b00101100000; 38465let addrMode = BaseImmOffset; 38466let isCVI = 1; 38467let mayLoad = 1; 38468let isRestrictNoSlot1Store = 1; 38469let DecoderNamespace = "EXT_mmvec"; 38470} 38471def V6_zLd_pi : HInst< 38472(outs IntRegs:$Rx32), 38473(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 38474"z = vmem($Rx32++#$Ii)", 38475tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> { 38476let Inst{7-0} = 0b00000000; 38477let Inst{13-11} = 0b000; 38478let Inst{31-21} = 0b00101101000; 38479let addrMode = PostInc; 38480let isCVI = 1; 38481let mayLoad = 1; 38482let isRestrictNoSlot1Store = 1; 38483let DecoderNamespace = "EXT_mmvec"; 38484let Constraints = "$Rx32 = $Rx32in"; 38485} 38486def V6_zLd_ppu : HInst< 38487(outs IntRegs:$Rx32), 38488(ins IntRegs:$Rx32in, ModRegs:$Mu2), 38489"z = vmem($Rx32++$Mu2)", 38490tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> { 38491let Inst{12-0} = 0b0000000000001; 38492let Inst{31-21} = 0b00101101000; 38493let addrMode = PostInc; 38494let isCVI = 1; 38495let mayLoad = 1; 38496let isRestrictNoSlot1Store = 1; 38497let DecoderNamespace = "EXT_mmvec"; 38498let Constraints = "$Rx32 = $Rx32in"; 38499} 38500def V6_zLd_pred_ai : HInst< 38501(outs), 38502(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 38503"if ($Pv4) z = vmem($Rt32+#$Ii)", 38504tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> { 38505let Inst{7-0} = 0b00000000; 38506let Inst{31-21} = 0b00101100100; 38507let isPredicated = 1; 38508let addrMode = BaseImmOffset; 38509let isCVI = 1; 38510let mayLoad = 1; 38511let isRestrictNoSlot1Store = 1; 38512let DecoderNamespace = "EXT_mmvec"; 38513} 38514def V6_zLd_pred_pi : HInst< 38515(outs IntRegs:$Rx32), 38516(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 38517"if ($Pv4) z = vmem($Rx32++#$Ii)", 38518tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> { 38519let Inst{7-0} = 0b00000000; 38520let Inst{13-13} = 0b0; 38521let Inst{31-21} = 0b00101101100; 38522let isPredicated = 1; 38523let addrMode = PostInc; 38524let isCVI = 1; 38525let mayLoad = 1; 38526let isRestrictNoSlot1Store = 1; 38527let DecoderNamespace = "EXT_mmvec"; 38528let Constraints = "$Rx32 = $Rx32in"; 38529} 38530def V6_zLd_pred_ppu : HInst< 38531(outs IntRegs:$Rx32), 38532(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 38533"if ($Pv4) z = vmem($Rx32++$Mu2)", 38534tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> { 38535let Inst{10-0} = 0b00000000001; 38536let Inst{31-21} = 0b00101101100; 38537let isPredicated = 1; 38538let addrMode = PostInc; 38539let isCVI = 1; 38540let mayLoad = 1; 38541let isRestrictNoSlot1Store = 1; 38542let DecoderNamespace = "EXT_mmvec"; 38543let Constraints = "$Rx32 = $Rx32in"; 38544} 38545def V6_zextract : HInst< 38546(outs HvxVR:$Vd32), 38547(ins IntRegs:$Rt32), 38548"$Vd32 = zextract($Rt32)", 38549tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> { 38550let Inst{13-5} = 0b000001001; 38551let Inst{31-21} = 0b00011001101; 38552let hasNewValue = 1; 38553let opNewValue = 0; 38554let isCVI = 1; 38555let DecoderNamespace = "EXT_mmvec"; 38556} 38557def V6_zld0 : HInst< 38558(outs), 38559(ins IntRegs:$Rt32), 38560"z = vmem($Rt32)", 38561PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 38562let isCVI = 1; 38563let isPseudo = 1; 38564let isCodeGenOnly = 1; 38565let DecoderNamespace = "EXT_mmvec"; 38566} 38567def V6_zldp0 : HInst< 38568(outs), 38569(ins PredRegs:$Pv4, IntRegs:$Rt32), 38570"if ($Pv4) z = vmem($Rt32)", 38571PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 38572let isCVI = 1; 38573let isPseudo = 1; 38574let isCodeGenOnly = 1; 38575let DecoderNamespace = "EXT_mmvec"; 38576} 38577def Y2_barrier : HInst< 38578(outs), 38579(ins), 38580"barrier", 38581tc_77f94a5e, TypeST>, Enc_e3b0c4 { 38582let Inst{13-0} = 0b00000000000000; 38583let Inst{31-16} = 0b1010100000000000; 38584let isSoloAX = 1; 38585let hasSideEffects = 1; 38586} 38587def Y2_break : HInst< 38588(outs), 38589(ins), 38590"brkpt", 38591tc_55255f2b, TypeCR>, Enc_e3b0c4 { 38592let Inst{13-0} = 0b00000000000000; 38593let Inst{31-16} = 0b0110110000100000; 38594let isSolo = 1; 38595} 38596def Y2_dccleana : HInst< 38597(outs), 38598(ins IntRegs:$Rs32), 38599"dccleana($Rs32)", 38600tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38601let Inst{13-0} = 0b00000000000000; 38602let Inst{31-21} = 0b10100000000; 38603let isRestrictSlot1AOK = 1; 38604let hasSideEffects = 1; 38605} 38606def Y2_dccleaninva : HInst< 38607(outs), 38608(ins IntRegs:$Rs32), 38609"dccleaninva($Rs32)", 38610tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38611let Inst{13-0} = 0b00000000000000; 38612let Inst{31-21} = 0b10100000010; 38613let isRestrictSlot1AOK = 1; 38614let hasSideEffects = 1; 38615} 38616def Y2_dcfetch : HInst< 38617(outs), 38618(ins IntRegs:$Rs32), 38619"dcfetch($Rs32)", 38620tc_d45ba9cd, TypeMAPPING> { 38621let hasSideEffects = 1; 38622let isPseudo = 1; 38623let isCodeGenOnly = 1; 38624} 38625def Y2_dcfetchbo : HInst< 38626(outs), 38627(ins IntRegs:$Rs32, u11_3Imm:$Ii), 38628"dcfetch($Rs32+#$Ii)", 38629tc_2237d952, TypeLD>, Enc_2d829e { 38630let Inst{13-11} = 0b000; 38631let Inst{31-21} = 0b10010100000; 38632let addrMode = BaseImmOffset; 38633let isRestrictNoSlot1Store = 1; 38634let hasSideEffects = 1; 38635} 38636def Y2_dcinva : HInst< 38637(outs), 38638(ins IntRegs:$Rs32), 38639"dcinva($Rs32)", 38640tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38641let Inst{13-0} = 0b00000000000000; 38642let Inst{31-21} = 0b10100000001; 38643let isRestrictSlot1AOK = 1; 38644let hasSideEffects = 1; 38645} 38646def Y2_dczeroa : HInst< 38647(outs), 38648(ins IntRegs:$Rs32), 38649"dczeroa($Rs32)", 38650tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 38651let Inst{13-0} = 0b00000000000000; 38652let Inst{31-21} = 0b10100000110; 38653let isRestrictSlot1AOK = 1; 38654let mayStore = 1; 38655let hasSideEffects = 1; 38656} 38657def Y2_icinva : HInst< 38658(outs), 38659(ins IntRegs:$Rs32), 38660"icinva($Rs32)", 38661tc_0ba0d5da, TypeJ>, Enc_ecbcc8 { 38662let Inst{13-0} = 0b00000000000000; 38663let Inst{31-21} = 0b01010110110; 38664let isSolo = 1; 38665} 38666def Y2_isync : HInst< 38667(outs), 38668(ins), 38669"isync", 38670tc_9b34f5e0, TypeJ>, Enc_e3b0c4 { 38671let Inst{13-0} = 0b00000000000010; 38672let Inst{31-16} = 0b0101011111000000; 38673let isSolo = 1; 38674} 38675def Y2_syncht : HInst< 38676(outs), 38677(ins), 38678"syncht", 38679tc_77f94a5e, TypeST>, Enc_e3b0c4 { 38680let Inst{13-0} = 0b00000000000000; 38681let Inst{31-16} = 0b1010100001000000; 38682let isSolo = 1; 38683} 38684def Y2_wait : HInst< 38685(outs), 38686(ins IntRegs:$Rs32), 38687"wait($Rs32)", 38688tc_d7718fbe, TypeCR>, Enc_ecbcc8 { 38689let Inst{13-0} = 0b00000000000000; 38690let Inst{31-21} = 0b01100100010; 38691let isSolo = 1; 38692} 38693def Y4_l2fetch : HInst< 38694(outs), 38695(ins IntRegs:$Rs32, IntRegs:$Rt32), 38696"l2fetch($Rs32,$Rt32)", 38697tc_a3070909, TypeST>, Enc_ca3887 { 38698let Inst{7-0} = 0b00000000; 38699let Inst{13-13} = 0b0; 38700let Inst{31-21} = 0b10100110000; 38701let isSoloAX = 1; 38702let mayStore = 1; 38703let hasSideEffects = 1; 38704} 38705def Y4_trace : HInst< 38706(outs), 38707(ins IntRegs:$Rs32), 38708"trace($Rs32)", 38709tc_d7718fbe, TypeCR>, Enc_ecbcc8 { 38710let Inst{13-0} = 0b00000000000000; 38711let Inst{31-21} = 0b01100010010; 38712let isSoloAX = 1; 38713} 38714def Y5_l2fetch : HInst< 38715(outs), 38716(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 38717"l2fetch($Rs32,$Rtt32)", 38718tc_a3070909, TypeST>, Enc_e6abcf { 38719let Inst{7-0} = 0b00000000; 38720let Inst{13-13} = 0b0; 38721let Inst{31-21} = 0b10100110100; 38722let isSoloAX = 1; 38723let mayStore = 1; 38724let hasSideEffects = 1; 38725} 38726def Y6_diag : HInst< 38727(outs), 38728(ins IntRegs:$Rs32), 38729"diag($Rs32)", 38730tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> { 38731let Inst{13-0} = 0b00000000100000; 38732let Inst{31-21} = 0b01100010010; 38733} 38734def Y6_diag0 : HInst< 38735(outs), 38736(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 38737"diag0($Rss32,$Rtt32)", 38738tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 38739let Inst{7-0} = 0b01000000; 38740let Inst{13-13} = 0b0; 38741let Inst{31-21} = 0b01100010010; 38742} 38743def Y6_diag1 : HInst< 38744(outs), 38745(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 38746"diag1($Rss32,$Rtt32)", 38747tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 38748let Inst{7-0} = 0b01100000; 38749let Inst{13-13} = 0b0; 38750let Inst{31-21} = 0b01100010010; 38751} 38752def dep_A2_addsat : HInst< 38753(outs IntRegs:$Rd32), 38754(ins IntRegs:$Rs32, IntRegs:$Rt32), 38755"$Rd32 = add($Rs32,$Rt32):sat:deprecated", 38756tc_8a825db2, TypeALU64>, Enc_5ab2be { 38757let Inst{7-5} = 0b000; 38758let Inst{13-13} = 0b0; 38759let Inst{31-21} = 0b11010101100; 38760let hasNewValue = 1; 38761let opNewValue = 0; 38762let prefersSlot3 = 1; 38763let Defs = [USR_OVF]; 38764} 38765def dep_A2_subsat : HInst< 38766(outs IntRegs:$Rd32), 38767(ins IntRegs:$Rt32, IntRegs:$Rs32), 38768"$Rd32 = sub($Rt32,$Rs32):sat:deprecated", 38769tc_8a825db2, TypeALU64>, Enc_bd6011 { 38770let Inst{7-5} = 0b100; 38771let Inst{13-13} = 0b0; 38772let Inst{31-21} = 0b11010101100; 38773let hasNewValue = 1; 38774let opNewValue = 0; 38775let prefersSlot3 = 1; 38776let Defs = [USR_OVF]; 38777} 38778def dep_S2_packhl : HInst< 38779(outs DoubleRegs:$Rdd32), 38780(ins IntRegs:$Rs32, IntRegs:$Rt32), 38781"$Rdd32 = packhl($Rs32,$Rt32):deprecated", 38782tc_5da50c4b, TypeALU64>, Enc_be32a5 { 38783let Inst{7-5} = 0b000; 38784let Inst{13-13} = 0b0; 38785let Inst{31-21} = 0b11010100000; 38786} 38787def dup_A2_add : HInst< 38788(outs IntRegs:$Rd32), 38789(ins IntRegs:$Rs32, IntRegs:$Rt32), 38790"$Rd32 = add($Rs32,$Rt32)", 38791tc_388f9897, TypeALU32_3op>, Requires<[HasV67]> { 38792let hasNewValue = 1; 38793let opNewValue = 0; 38794let AsmVariantName = "NonParsable"; 38795let isPseudo = 1; 38796} 38797def dup_A2_addi : HInst< 38798(outs IntRegs:$Rd32), 38799(ins IntRegs:$Rs32, s32_0Imm:$Ii), 38800"$Rd32 = add($Rs32,#$Ii)", 38801tc_388f9897, TypeALU32_ADDI>, Requires<[HasV67]> { 38802let hasNewValue = 1; 38803let opNewValue = 0; 38804let AsmVariantName = "NonParsable"; 38805let isPseudo = 1; 38806let isExtendable = 1; 38807let opExtendable = 2; 38808let isExtentSigned = 1; 38809let opExtentBits = 16; 38810let opExtentAlign = 0; 38811} 38812def dup_A2_andir : HInst< 38813(outs IntRegs:$Rd32), 38814(ins IntRegs:$Rs32, s32_0Imm:$Ii), 38815"$Rd32 = and($Rs32,#$Ii)", 38816tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38817let hasNewValue = 1; 38818let opNewValue = 0; 38819let AsmVariantName = "NonParsable"; 38820let isPseudo = 1; 38821let isExtendable = 1; 38822let opExtendable = 2; 38823let isExtentSigned = 1; 38824let opExtentBits = 10; 38825let opExtentAlign = 0; 38826} 38827def dup_A2_combineii : HInst< 38828(outs DoubleRegs:$Rdd32), 38829(ins s32_0Imm:$Ii, s8_0Imm:$II), 38830"$Rdd32 = combine(#$Ii,#$II)", 38831tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38832let AsmVariantName = "NonParsable"; 38833let isPseudo = 1; 38834let isExtendable = 1; 38835let opExtendable = 1; 38836let isExtentSigned = 1; 38837let opExtentBits = 8; 38838let opExtentAlign = 0; 38839} 38840def dup_A2_sxtb : HInst< 38841(outs IntRegs:$Rd32), 38842(ins IntRegs:$Rs32), 38843"$Rd32 = sxtb($Rs32)", 38844tc_9124c04f, TypeALU32_2op>, Requires<[HasV67]> { 38845let hasNewValue = 1; 38846let opNewValue = 0; 38847let AsmVariantName = "NonParsable"; 38848let isPseudo = 1; 38849} 38850def dup_A2_sxth : HInst< 38851(outs IntRegs:$Rd32), 38852(ins IntRegs:$Rs32), 38853"$Rd32 = sxth($Rs32)", 38854tc_9124c04f, TypeALU32_2op>, Requires<[HasV67]> { 38855let hasNewValue = 1; 38856let opNewValue = 0; 38857let AsmVariantName = "NonParsable"; 38858let isPseudo = 1; 38859} 38860def dup_A2_tfr : HInst< 38861(outs IntRegs:$Rd32), 38862(ins IntRegs:$Rs32), 38863"$Rd32 = $Rs32", 38864tc_9124c04f, TypeALU32_2op>, Requires<[HasV67]> { 38865let hasNewValue = 1; 38866let opNewValue = 0; 38867let AsmVariantName = "NonParsable"; 38868let isPseudo = 1; 38869} 38870def dup_A2_tfrsi : HInst< 38871(outs IntRegs:$Rd32), 38872(ins s32_0Imm:$Ii), 38873"$Rd32 = #$Ii", 38874tc_9124c04f, TypeALU32_2op>, Requires<[HasV67]> { 38875let hasNewValue = 1; 38876let opNewValue = 0; 38877let AsmVariantName = "NonParsable"; 38878let isPseudo = 1; 38879let isExtendable = 1; 38880let opExtendable = 1; 38881let isExtentSigned = 1; 38882let opExtentBits = 16; 38883let opExtentAlign = 0; 38884} 38885def dup_A2_zxtb : HInst< 38886(outs IntRegs:$Rd32), 38887(ins IntRegs:$Rs32), 38888"$Rd32 = zxtb($Rs32)", 38889PSEUDO, TypeMAPPING>, Requires<[HasV67]> { 38890let hasNewValue = 1; 38891let opNewValue = 0; 38892let AsmVariantName = "NonParsable"; 38893let isPseudo = 1; 38894} 38895def dup_A2_zxth : HInst< 38896(outs IntRegs:$Rd32), 38897(ins IntRegs:$Rs32), 38898"$Rd32 = zxth($Rs32)", 38899tc_9124c04f, TypeALU32_2op>, Requires<[HasV67]> { 38900let hasNewValue = 1; 38901let opNewValue = 0; 38902let AsmVariantName = "NonParsable"; 38903let isPseudo = 1; 38904} 38905def dup_A4_combineii : HInst< 38906(outs DoubleRegs:$Rdd32), 38907(ins s8_0Imm:$Ii, u32_0Imm:$II), 38908"$Rdd32 = combine(#$Ii,#$II)", 38909tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38910let AsmVariantName = "NonParsable"; 38911let isPseudo = 1; 38912let isExtendable = 1; 38913let opExtendable = 2; 38914let isExtentSigned = 0; 38915let opExtentBits = 6; 38916let opExtentAlign = 0; 38917} 38918def dup_A4_combineir : HInst< 38919(outs DoubleRegs:$Rdd32), 38920(ins s32_0Imm:$Ii, IntRegs:$Rs32), 38921"$Rdd32 = combine(#$Ii,$Rs32)", 38922tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38923let AsmVariantName = "NonParsable"; 38924let isPseudo = 1; 38925let isExtendable = 1; 38926let opExtendable = 1; 38927let isExtentSigned = 1; 38928let opExtentBits = 8; 38929let opExtentAlign = 0; 38930} 38931def dup_A4_combineri : HInst< 38932(outs DoubleRegs:$Rdd32), 38933(ins IntRegs:$Rs32, s32_0Imm:$Ii), 38934"$Rdd32 = combine($Rs32,#$Ii)", 38935tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38936let AsmVariantName = "NonParsable"; 38937let isPseudo = 1; 38938let isExtendable = 1; 38939let opExtendable = 2; 38940let isExtentSigned = 1; 38941let opExtentBits = 8; 38942let opExtentAlign = 0; 38943} 38944def dup_C2_cmoveif : HInst< 38945(outs IntRegs:$Rd32), 38946(ins PredRegs:$Pu4, s32_0Imm:$Ii), 38947"if (!$Pu4) $Rd32 = #$Ii", 38948tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38949let isPredicated = 1; 38950let isPredicatedFalse = 1; 38951let hasNewValue = 1; 38952let opNewValue = 0; 38953let AsmVariantName = "NonParsable"; 38954let isPseudo = 1; 38955let isExtendable = 1; 38956let opExtendable = 2; 38957let isExtentSigned = 1; 38958let opExtentBits = 12; 38959let opExtentAlign = 0; 38960} 38961def dup_C2_cmoveit : HInst< 38962(outs IntRegs:$Rd32), 38963(ins PredRegs:$Pu4, s32_0Imm:$Ii), 38964"if ($Pu4) $Rd32 = #$Ii", 38965tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 38966let isPredicated = 1; 38967let hasNewValue = 1; 38968let opNewValue = 0; 38969let AsmVariantName = "NonParsable"; 38970let isPseudo = 1; 38971let isExtendable = 1; 38972let opExtendable = 2; 38973let isExtentSigned = 1; 38974let opExtentBits = 12; 38975let opExtentAlign = 0; 38976} 38977def dup_C2_cmovenewif : HInst< 38978(outs IntRegs:$Rd32), 38979(ins PredRegs:$Pu4, s32_0Imm:$Ii), 38980"if (!$Pu4.new) $Rd32 = #$Ii", 38981tc_4ac61d92, TypeALU32_2op>, Requires<[HasV67]> { 38982let isPredicated = 1; 38983let isPredicatedFalse = 1; 38984let hasNewValue = 1; 38985let opNewValue = 0; 38986let AsmVariantName = "NonParsable"; 38987let isPredicatedNew = 1; 38988let isPseudo = 1; 38989let isExtendable = 1; 38990let opExtendable = 2; 38991let isExtentSigned = 1; 38992let opExtentBits = 12; 38993let opExtentAlign = 0; 38994} 38995def dup_C2_cmovenewit : HInst< 38996(outs IntRegs:$Rd32), 38997(ins PredRegs:$Pu4, s32_0Imm:$Ii), 38998"if ($Pu4.new) $Rd32 = #$Ii", 38999tc_4ac61d92, TypeALU32_2op>, Requires<[HasV67]> { 39000let isPredicated = 1; 39001let hasNewValue = 1; 39002let opNewValue = 0; 39003let AsmVariantName = "NonParsable"; 39004let isPredicatedNew = 1; 39005let isPseudo = 1; 39006let isExtendable = 1; 39007let opExtendable = 2; 39008let isExtentSigned = 1; 39009let opExtentBits = 12; 39010let opExtentAlign = 0; 39011} 39012def dup_C2_cmpeqi : HInst< 39013(outs PredRegs:$Pd4), 39014(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39015"$Pd4 = cmp.eq($Rs32,#$Ii)", 39016tc_388f9897, TypeALU32_2op>, Requires<[HasV67]> { 39017let AsmVariantName = "NonParsable"; 39018let isPseudo = 1; 39019let isExtendable = 1; 39020let opExtendable = 2; 39021let isExtentSigned = 1; 39022let opExtentBits = 10; 39023let opExtentAlign = 0; 39024} 39025def dup_L2_deallocframe : HInst< 39026(outs DoubleRegs:$Rdd32), 39027(ins IntRegs:$Rs32), 39028"$Rdd32 = deallocframe($Rs32):raw", 39029tc_aee6250c, TypeLD>, Requires<[HasV67]> { 39030let accessSize = DoubleWordAccess; 39031let AsmVariantName = "NonParsable"; 39032let mayLoad = 1; 39033let Uses = [FRAMEKEY]; 39034let Defs = [R29]; 39035let isPseudo = 1; 39036} 39037def dup_L2_loadrb_io : HInst< 39038(outs IntRegs:$Rd32), 39039(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39040"$Rd32 = memb($Rs32+#$Ii)", 39041tc_eed07714, TypeLD>, Requires<[HasV67]> { 39042let hasNewValue = 1; 39043let opNewValue = 0; 39044let addrMode = BaseImmOffset; 39045let accessSize = ByteAccess; 39046let AsmVariantName = "NonParsable"; 39047let mayLoad = 1; 39048let isPseudo = 1; 39049let isExtendable = 1; 39050let opExtendable = 2; 39051let isExtentSigned = 1; 39052let opExtentBits = 11; 39053let opExtentAlign = 0; 39054} 39055def dup_L2_loadrd_io : HInst< 39056(outs DoubleRegs:$Rdd32), 39057(ins IntRegs:$Rs32, s29_3Imm:$Ii), 39058"$Rdd32 = memd($Rs32+#$Ii)", 39059tc_eed07714, TypeLD>, Requires<[HasV67]> { 39060let addrMode = BaseImmOffset; 39061let accessSize = DoubleWordAccess; 39062let AsmVariantName = "NonParsable"; 39063let mayLoad = 1; 39064let isPseudo = 1; 39065let isExtendable = 1; 39066let opExtendable = 2; 39067let isExtentSigned = 1; 39068let opExtentBits = 14; 39069let opExtentAlign = 3; 39070} 39071def dup_L2_loadrh_io : HInst< 39072(outs IntRegs:$Rd32), 39073(ins IntRegs:$Rs32, s31_1Imm:$Ii), 39074"$Rd32 = memh($Rs32+#$Ii)", 39075tc_eed07714, TypeLD>, Requires<[HasV67]> { 39076let hasNewValue = 1; 39077let opNewValue = 0; 39078let addrMode = BaseImmOffset; 39079let accessSize = HalfWordAccess; 39080let AsmVariantName = "NonParsable"; 39081let mayLoad = 1; 39082let isPseudo = 1; 39083let isExtendable = 1; 39084let opExtendable = 2; 39085let isExtentSigned = 1; 39086let opExtentBits = 12; 39087let opExtentAlign = 1; 39088} 39089def dup_L2_loadri_io : HInst< 39090(outs IntRegs:$Rd32), 39091(ins IntRegs:$Rs32, s30_2Imm:$Ii), 39092"$Rd32 = memw($Rs32+#$Ii)", 39093tc_eed07714, TypeLD>, Requires<[HasV67]> { 39094let hasNewValue = 1; 39095let opNewValue = 0; 39096let addrMode = BaseImmOffset; 39097let accessSize = WordAccess; 39098let AsmVariantName = "NonParsable"; 39099let mayLoad = 1; 39100let isPseudo = 1; 39101let isExtendable = 1; 39102let opExtendable = 2; 39103let isExtentSigned = 1; 39104let opExtentBits = 13; 39105let opExtentAlign = 2; 39106} 39107def dup_L2_loadrub_io : HInst< 39108(outs IntRegs:$Rd32), 39109(ins IntRegs:$Rs32, s32_0Imm:$Ii), 39110"$Rd32 = memub($Rs32+#$Ii)", 39111tc_eed07714, TypeLD>, Requires<[HasV67]> { 39112let hasNewValue = 1; 39113let opNewValue = 0; 39114let addrMode = BaseImmOffset; 39115let accessSize = ByteAccess; 39116let AsmVariantName = "NonParsable"; 39117let mayLoad = 1; 39118let isPseudo = 1; 39119let isExtendable = 1; 39120let opExtendable = 2; 39121let isExtentSigned = 1; 39122let opExtentBits = 11; 39123let opExtentAlign = 0; 39124} 39125def dup_L2_loadruh_io : HInst< 39126(outs IntRegs:$Rd32), 39127(ins IntRegs:$Rs32, s31_1Imm:$Ii), 39128"$Rd32 = memuh($Rs32+#$Ii)", 39129tc_eed07714, TypeLD>, Requires<[HasV67]> { 39130let hasNewValue = 1; 39131let opNewValue = 0; 39132let addrMode = BaseImmOffset; 39133let accessSize = HalfWordAccess; 39134let AsmVariantName = "NonParsable"; 39135let mayLoad = 1; 39136let isPseudo = 1; 39137let isExtendable = 1; 39138let opExtendable = 2; 39139let isExtentSigned = 1; 39140let opExtentBits = 12; 39141let opExtentAlign = 1; 39142} 39143def dup_S2_allocframe : HInst< 39144(outs IntRegs:$Rx32), 39145(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 39146"allocframe($Rx32,#$Ii):raw", 39147tc_74a42bda, TypeST>, Requires<[HasV67]> { 39148let hasNewValue = 1; 39149let opNewValue = 0; 39150let addrMode = BaseImmOffset; 39151let accessSize = DoubleWordAccess; 39152let AsmVariantName = "NonParsable"; 39153let mayStore = 1; 39154let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 39155let Defs = [R30]; 39156let isPseudo = 1; 39157let Constraints = "$Rx32 = $Rx32in"; 39158} 39159def dup_S2_storerb_io : HInst< 39160(outs), 39161(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 39162"memb($Rs32+#$Ii) = $Rt32", 39163tc_a9edeffa, TypeST>, Requires<[HasV67]> { 39164let addrMode = BaseImmOffset; 39165let accessSize = ByteAccess; 39166let AsmVariantName = "NonParsable"; 39167let mayStore = 1; 39168let isPseudo = 1; 39169let isExtendable = 1; 39170let opExtendable = 1; 39171let isExtentSigned = 1; 39172let opExtentBits = 11; 39173let opExtentAlign = 0; 39174} 39175def dup_S2_storerd_io : HInst< 39176(outs), 39177(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 39178"memd($Rs32+#$Ii) = $Rtt32", 39179tc_a9edeffa, TypeST>, Requires<[HasV67]> { 39180let addrMode = BaseImmOffset; 39181let accessSize = DoubleWordAccess; 39182let AsmVariantName = "NonParsable"; 39183let mayStore = 1; 39184let isPseudo = 1; 39185let isExtendable = 1; 39186let opExtendable = 1; 39187let isExtentSigned = 1; 39188let opExtentBits = 14; 39189let opExtentAlign = 3; 39190} 39191def dup_S2_storerh_io : HInst< 39192(outs), 39193(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 39194"memh($Rs32+#$Ii) = $Rt32", 39195tc_a9edeffa, TypeST>, Requires<[HasV67]> { 39196let addrMode = BaseImmOffset; 39197let accessSize = HalfWordAccess; 39198let AsmVariantName = "NonParsable"; 39199let mayStore = 1; 39200let isPseudo = 1; 39201let isExtendable = 1; 39202let opExtendable = 1; 39203let isExtentSigned = 1; 39204let opExtentBits = 12; 39205let opExtentAlign = 1; 39206} 39207def dup_S2_storeri_io : HInst< 39208(outs), 39209(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 39210"memw($Rs32+#$Ii) = $Rt32", 39211tc_a9edeffa, TypeST>, Requires<[HasV67]> { 39212let addrMode = BaseImmOffset; 39213let accessSize = WordAccess; 39214let AsmVariantName = "NonParsable"; 39215let mayStore = 1; 39216let isPseudo = 1; 39217let isExtendable = 1; 39218let opExtendable = 1; 39219let isExtentSigned = 1; 39220let opExtentBits = 13; 39221let opExtentAlign = 2; 39222} 39223def dup_S4_storeirb_io : HInst< 39224(outs), 39225(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 39226"memb($Rs32+#$Ii) = #$II", 39227tc_838c4d7a, TypeV4LDST>, Requires<[HasV67]> { 39228let addrMode = BaseImmOffset; 39229let accessSize = ByteAccess; 39230let AsmVariantName = "NonParsable"; 39231let mayStore = 1; 39232let isPseudo = 1; 39233let isExtendable = 1; 39234let opExtendable = 2; 39235let isExtentSigned = 1; 39236let opExtentBits = 8; 39237let opExtentAlign = 0; 39238} 39239def dup_S4_storeiri_io : HInst< 39240(outs), 39241(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 39242"memw($Rs32+#$Ii) = #$II", 39243tc_838c4d7a, TypeV4LDST>, Requires<[HasV67]> { 39244let addrMode = BaseImmOffset; 39245let accessSize = WordAccess; 39246let AsmVariantName = "NonParsable"; 39247let mayStore = 1; 39248let isPseudo = 1; 39249let isExtendable = 1; 39250let opExtendable = 2; 39251let isExtentSigned = 1; 39252let opExtentBits = 8; 39253let opExtentAlign = 0; 39254} 39255